Description
This method creates receiver matching lines according based on the original receiver matching for the Supplier Invoice
Parameters
| iiOriginalAPMId | input | integer | |
| oiReturnStatus | output | integer | Return 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.