project QadFinancials > class BAPMatching > method ReplaceAPMatching

Description

This method creates receiver matching lines according based on the original receiver matching for the Supplier Invoice


Parameters


iiOriginalAPMIdinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program9/bapmatching.p)

/* =================================================================================================== */
/* Method      : ReplaceAPMatching                                                                     */
/* Desc        : This method creates receiver matching lines according based on the original receiver  */
/*               matching for the Supplier Invoice                                                     */
/* --------------------------------------------------------------------------------------------------- */
/* Params:  (I)  OriginalCInvoiceId   ID of the original Supplier Invoice to be replaced               */
/* Params:  (I)  APMatchingTcRowId    RowID of the new created receiver matching header                */
/* =================================================================================================== */

/* =================================================================================================== */
/* Initialization                                                                                      */
/* =================================================================================================== */
assign oiReturnStatus = -98.

/* =================================================================================================== */
/* Copy APMatching from original APMatching                                                            */
/* =================================================================================================== */
<M-19 run CopyIntoNew
   (input  iiOriginalAPMId (iiOriginalAPMId), 
    input  true (ilClearData), 
    input  true (ilRemoveOriginalAPM), 
    output vcNewAPMRowid (ocNewAPMRowid), 
    output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.

find first tAPMatching where tAPMatching.tc_Rowid = vcNewAPMRowid no-error.
if not available tAPMatching
then do:
    assign vcMsg = #T-25'The system cannot retrieve a copy of the receiver matching.':255(69580)T-25#
           oiReturnStatus = -3.
    <M-20 run SetMessage
       (input  vcMsg (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-8161':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
    return.
end.

<Q-22 run CInvoiceForReplace (all) (Read) (NoCache)
   (input viCompanyId, (CompanyId)
    input tAPMatching.CInvoice_ID, (OrigCInvoiceId)
    output dataset tqCInvoiceForReplace) in BCInvoice >

find first tqCInvoiceForReplace where 
           tqCInvoiceForReplace.tiCInvoice_ID = tAPMatching.CInvoice_ID no-error.

if not available tqCInvoiceForReplace
then do:
    assign vcMsg = #T-24'The system cannot find the replaced supplier invoice.':255(69579)T-24#
           oiReturnStatus = -1.
    <M-23 run SetMessage
       (input  vcMsg (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-8162':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
    return.
end.

assign tAPMatching.tiCInvoicePostingYear    = tqCInvoiceForReplace.tiCInvoicePostingYear
       tAPMatching.tcCInvoiceJournalCode    = tqCInvoiceForReplace.tcJournalCode
       tAPMatching.tiCInvoiceVoucher        = tqCInvoiceForReplace.tiCInvoiceVoucher
       tAPMatching.tcCInvoiceReference      = tqCInvoiceForReplace.tcCInvoiceReference
       tAPMatching.tiCInvoiceRegistrationNr = tqCInvoiceForReplace.tiCInvoiceRegistrationNr
       tAPMatching.tcCreditorCode           = tqCInvoiceForReplace.tcCreditorCode
       tAPMatching.APMatchingDate           = today
       tAPMatching.tiPostingVoucher         = 0
       tAPMatching.APMatchingStatus         = {&APMATCHINGSTATUS-FINISHED}.

<M-21 run DefaultValuesInvoice
   (input  vcNewAPMRowId (icAPMatchingTcRowid), 
    input-output tAPMatching.tiCInvoicePostingYear (biInvoiceYear), 
    input-output tAPMatching.tcCInvoiceJournalCode (bcInvoiceJournal), 
    input-output tAPMatching.tiCInvoiceVoucher (biInvoiceVoucher), 
    input-output tAPMatching.tcCInvoiceReference (bcInvoiceReference), 
    input-output tAPMatching.tiCInvoiceRegistrationNr (biInvoiceRegistrationNr), 
    input-output tAPMatching.tcCreditorCode (bcCreditorCode), 
    input  tqCInvoiceForReplace.tiReason_ID (iiOldReasonID), 
    input-output tAPMatching.Reason_ID (biNewReasonID), 
    input-output tAPMatching.tcReasonCode (bcNewReasonCode), 
    output tAPMatching.tiBusinessRelationID (oiBusinessRelationID), 
    output tAPMatching.tcBusinessRelationCode (ocBusinessRelationCode), 
    output tAPMatching.tcBusinessRelationICCode (ocBusinessRelationICCode), 
    output tAPMatching.tcCurrencyCode (ocCurrencyCode), 
    output tAPMatching.APMatchingTotalAmountTC (odAmountToMatchTC), 
    output tAPMatching.APMatchingTotalAmountLC (odAmountToMatchLC), 
    output tAPMatching.CInvoice_ID (oiCInvoiceId), 
    output tAPMatching.tdCInvoiceExchangeRate (odCInvoiceExchangeRate), 
    output tAPMatching.tdCInvoiceRateScale (odCInvoiceRateScale), 
    output tAPMatching.tdCInvoiceCCRate (odCInvoiceCCRate), 
    output tAPMatching.tdCInvoiceCCScale (odCInvoiceCCScale), 
    output tAPMatching.tdCInvoiceLCCCRate (odCInvoiceLCCCRate), 
    output tAPMatching.tdCInvoiceLCCCScale (odCInvoiceLCCCScale), 
    output tAPMatching.ttCInvoiceDate (otCInvoiceDate), 
    output tAPMatching.ttCInvoicePostingDate (otCInvoicePostingDate), 
    output tAPMatching.ttCInvoiceTaxPointDate (otCInvoiceTaxPointDate), 
    output tAPMatching.tcCInvoiceType (ocCInvoiceType), 
    output tAPMatching.tcCInvoicePaymentConditionCode (ocCInvoicePaymentCondition), 
    output tAPMatching.tlCInvoiceIsInitialStatus (olCInvoiceIsInitialStatus), 
    output tAPMatching.APMatchingARRecTaxTC (odTaxAcrueReceiptRecovTC), 
    output tAPMatching.APMatchingARNRecTaxTC (odTaxAcrueReceiptNonRecovTC), 
    output tAPMatching.APMatchingAIRecTaxTC (odTaxAcrueInvoiceRecovTC), 
    output tAPMatching.APMatchingAINRecTaxTC (odTaxAcrueInvoiceNonRecovTC), 
    output tAPMatching.APMatchingCInvoiceDiscPct (odInvoiceDiscountPercentage), 
    output tAPMatching.tcCreditorAddrTaxIDFederal (ocCreditorAddrTaxIDFederal), 
    output tAPMatching.tcCreditorAddrTaxIDState (ocCreditorAddrTaxIDState), 
    output tAPMatching.tcCreditorAddrTaxIDMisc1 (ocCreditorAddrTaxIDMisc1), 
    output tAPMatching.tcCreditorAddrTaxIDMisc2 (ocCreditorAddrTaxIDMisc2), 
    output tAPMatching.tcCreditorAddrTaxIDMisc3 (ocCreditorAddrTaxIDMisc3), 
    output tAPMatching.tlCreditorAddrIsTaxInCity (olCreditorAddrIsTaxInCity), 
    output tAPMatching.tlCreditorAddrIsEUCountry (olCreditorAddrIsEUCountry), 
    output tAPMatching.tcCreditorAddrCountryCode (ocCreditorAddrCountryCode), 
    output tAPMatching.tiCreditorAddr_ID (oiCreditorAddrID), 
    output tAPMatching.tcShipToAddrTaxIDFederal (ocShipToAddrTaxIDFederal), 
    output tAPMatching.tcShipToAddrTaxIDState (ocShipToAddrTaxIDState), 
    output tAPMatching.tcShipToAddrTaxIDMisc1 (ocShipToAddrTaxIDMisc1), 
    output tAPMatching.tcShipToAddrTaxIDMisc2 (ocShipToAddrTaxIDMisc2), 
    output tAPMatching.tcShipToAddrTaxIDMisc3 (ocShipToAddrTaxIDMisc3), 
    output tAPMatching.tiShipToAddrTaxDeclaration (oiShipToAddrTaxDeclarat), 
    output tAPMatching.tlShipToAddrIsTaxInCity (olShipToAddrIsTaxInCity), 
    output tAPMatching.tlShipToAddrIsEUCountry (olShipToAddrIsEUCountry), 
    output tAPMatching.tcShipToAddrCountryCode (ocShipToAddrCountryCode), 
    output viDummy (oiOriginalAPMatchingID), 
    output tOrderFilterAPM (tOrderFilterAPM), 
    output tAPMatching.APMatchingDate (otPostingDate), 
    output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.

<M-26 run DefaultValuesDate
   (input-output tAPMatching.APMatchingDate (btDate), 
    output tAPMatching.tiPeriodYear (oiYear), 
    output tAPMatching.tiPeriodPeriod (oiPeriod), 
    output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.

/* =================================================================================================== */
/* Return                                                                                              */
/* =================================================================================================== */
if oiReturnStatus = -98 then assign oiReturnStatus = 0.