Description
Default the Bank Records
Parameters
iiCreditorId | input | integer | Creditor ID |
iiCInvoiceId | input | integer | |
icRowId | input | character | Row ID |
idCInvoiceOriginalTC | input | decimal | Invoice Amount in TC |
tApiCInvoiceBank | output | temp-table | |
tApiCInvoiceBankPayCode | output | temp-table | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program3/bcinvoice.p)
<Q-9 run BankNumberForCIDefault (all) (Read) (NoCache)
(input iiCreditorId, (ParentObjectId)
input ?, (BankNumberIsDefault)
input true, (BankNumberIsActive)
input ?, (CompanyId)
output dataset tqBankNumberForCIDefault) in BBankNumber >
/* Find active defeault banknumber for current entity */
find first tqBankNumberForCIDefault where
tqBankNumberForCIDefault.tiParentObject_ID = iiCreditorId and
tqBankNumberForCIDefault.tlBankNumberIsDefault = true and
tqBankNumberForCIDefault.tlBankNumberIsActive = true and
tqBankNumberForCIDefault.tiCompany_ID = viCompanyId
no-error.
/* If can not find deafault banknumber just find the active banknumber for current entity */
if not available tqBankNumberForCIDefault
then find first tqBankNumberForCIDefault where
tqBankNumberForCIDefault.tiParentObject_ID = iiCreditorId and
tqBankNumberForCIDefault.tlBankNumberIsActive = true and
tqBankNumberForCIDefault.tiCompany_ID = viCompanyId
no-error.
/* if can not find banknumber in the previous step just find the first active banknumber for the customer */
if not available tqBankNumberForCIDefault
then find first tqBankNumberForCIDefault where
tqBankNumberForCIDefault.tiParentObject_ID = iiCreditorId and
tqBankNumberForCIDefault.tlBankNumberIsActive = true and
tqBankNumberForCIDefault.tlBankNumberIsDefault = true
no-error.
if available tqBankNumberForCIDefault
then do:
/* First clear the existing stuff */
for each tCInvoiceBank where
tCInvoiceBank.tc_ParentRowid = icRowId :
for each tCInvoiceBankPayCode where
tCInvoiceBankPayCode.tc_ParentRowid = tCInvoiceBank.tc_Rowid:
if tCInvoiceBankPayCode.tc_Status = "N":U
then delete tCInvoiceBankPayCode.
else assign tCInvoiceBankPayCode.tc_Status = "D":U.
end. /* for each tCInvoiceBankPayCode where */
if tCInvoiceBank.tc_Status = "N":U
then delete tCInvoiceBank.
else assign tCInvoiceBank.tc_Status = "D":U.
end. /* for each tCInvoiceBank where */
<M-2 run AddDetailLine
(input 'CInvoiceBank':U (icTable),
input icRowId (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper < 0 or
oiReturnStatus = 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
assign tCInvoiceBank.CInvoice_ID = iiCInvoiceId
tCInvoiceBank.BankNumber_ID = tqBankNumberForCIDefault.tiBankNumber_ID
tCInvoiceBank.tcBankNumberExtension = tqBankNumberForCIDefault.tcBankNumberExtension
tCInvoiceBank.tiParentObject_ID = tqBankNumberForCIDefault.tiParentObject_ID
tCInvoiceBank.tcBankNumber = tqBankNumberForCIDefault.tcBankNumberFormatted
tCInvoiceBank.tcBankNumberSwiftCode = tqBankNumberForCIDefault.tcBankNumberSwiftCode
tCInvoiceBank.tcBankNumberValidation = tqBankNumberForCIDefault.tcBankNumberValidation
tCInvoiceBank.tcBusinessRelationCode = tqBankNumberForCIDefault.tcBusinessRelationCode
tCInvoiceBank.CInvoiceBankToPayTC = idCInvoiceOriginalTC.
if tqBankNumberForCIDefault.tiBankPayFormat_ID <> 0 and
tqBankNumberForCIDefault.tiBankPayFormat_ID <> ?
then do:
<Q-7 run BankPayFormatByID (all) (Read) (NoCache)
(input tqBankNumberForCIDefault.tiBankPayFormat_ID, (BankPayFormatId)
input viCompanyId, (CompanyId)
output dataset tqBankPayFormatByID) in BBankPayFormat >
find first tqBankPayFormatByID where
tqBankPayFormatByID.tiBankPayFormat_ID = tqBankNumberForCIDefault.tiBankPayFormat_ID and
tqBankPayFormatByID.tiCompany_ID = viCompanyId
no-error.
if available tqBankPayFormatByID
then do:
assign tCInvoiceBank.tcOwnBankNumber = tqBankPayFormatByID.tcBankNumber
tCInvoiceBank.tcOwnGLCode = tqBankPayFormatByID.tcGLCode
tCInvoiceBank.tcPayFormatTypeCode = tqBankPayFormatByID.tcPayFormatTypeCode
tCInvoiceBank.tcPayFormatTypePayInstrument = "?":U.
assign vcPAYFORMATPAYINSTRUMENTS = {&PAYFORMATPAYINSTRUMENTS}.
do viCounter = num-entries(vcPAYFORMATPAYINSTRUMENTS,chr(2)) to 1 by -2 :
if entry(viCounter,vcPAYFORMATPAYINSTRUMENTS,chr(2)) = tqBankPayFormatByID.tcPayFormatTypePayInstrument
then do :
assign tCInvoiceBank.tcPayFormatTypePayInstrument = entry(viCounter - 1,vcPAYFORMATPAYINSTRUMENTS,chr(2)) no-error.
leave.
end. /* if entry */
end.
end.
end.
create tApiCInvoiceBank.
raw-transfer tCInvoiceBank to tApiCInvoiceBank.
<M-8 run DefaultValuesBankCreateCIBankPayCode
(input tCInvoiceBank.CInvoiceBank_ID (iiCInvoiceBankId),
input tCInvoiceBank.BankNumber_ID (iiBankNumberId),
input tCInvoiceBank.tc_Rowid (icCInvoiceBankRowid),
output tApiCInvoiceBankPayCode (tApiCInvoiceBankPayCode),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper < 0 or
oiReturnStatus = 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
end.