project QadFinancials > class BCInvoice > method CalculateCInvoiceBank
Description
Calculate calculated fields for CInvoiceBank and CInvoiceBankPayCode.
Parameters
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bcinvoice.p)
for each tCInvoiceBank where
tCInvoiceBank.tc_Status = "":U and
(tCInvoiceBank.tcOwnBankNumber = "":U or
tCInvoiceBank.tcOwnBankNumber = ?):
/* ============================================================== */
/* BankNumber should be displayed in a formatted way */
/* The 'format'-characters are removed again in ValidateComponent */
/* ============================================================== */
if tCInvoiceBank.tcBankNumberFormatted <> "":U and
tCInvoiceBank.tcBankNumberFormatted <> ?
then assign tCInvoiceBank.tcBankNumber = tCInvoiceBank.tcBankNumberFormatted.
<Q-3 run BankNumberPrim (all) (Read) (Cache)
(input tCInvoiceBank.BankNumber_ID, (BankNumberId)
input ?, (ParentObjectId)
input ?, (BankNumber)
input ?, (BankNumberExtension)
input ?, (BankPayFormatID)
output dataset tqBankNumberPrim) in BBankNumber >
find first tqBankNumberPrim where
tqBankNumberPrim.tiBankNumber_ID = tCInvoiceBank.BankNumber_ID
no-error.
if available tqBankNumberPrim
then do:
<Q-4 run BankPayFormatByID (all) (Read) (Cache)
(input tqBankNumberPrim.tiBankPayFormat_ID, (BankPayFormatId)
input viCompanyId, (CompanyId)
output dataset tqBankPayFormatByID) in BBankPayFormat>
find first tqBankPayFormatByID where
tqBankPayFormatByID.tiBankPayFormat_ID = tqBankNumberPrim.tiBankPayFormat_ID
no-error.
if available tqBankPayFormatByID
then do:
assign tCInvoiceBank.tcOwnBankNumber = tqBankPayFormatByID.tcBankNumber
tCInvoiceBank.tcOwnGLCode = tqBankPayFormatByID.tcGLCode
tCInvoiceBank.tcPayFormatTypeCode = tqBankPayFormatByID.tcPayFormatTypeCode
tCInvoiceBank.tcPayFormatTypePayInstrument = "?":U.
if vcPAYFORMATPAYINSTRUMENTS = "":U or
vcPAYFORMATPAYINSTRUMENTS = ?
then 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.
/* Make sure t_iCInvoiceBank is up-to-date */
find t_iCInvoiceBank where
t_iCInvoiceBank.tc_Rowid = tCInvoiceBank.tc_Rowid
no-error.
if available t_iCInvoiceBank
then raw-transfer tCInvoiceBank to t_iCInvoiceBank.
end.
if can-find (first tCInvoiceBankPayCode where
(tCInvoiceBankPayCode.PayFormatCode_ID <> ? and
tCInvoiceBankPayCode.PayFormatCode_ID <> 0 and
(tCInvoiceBankPayCode.tc_Status = "":U or
tCInvoiceBankPayCode.tc_Status = ?)) or
(tCInvoiceBankPayCode.PayFormatGroup_ID <> ? and
tCInvoiceBankPayCode.PayFormatGroup_ID <> 0 and
(tCInvoiceBankPayCode.tcPayFormatGroupCode = "":U or
tCInvoiceBankPayCode.tcPayFormatGroupCode = ?)) )
then do :
for each tCInvoiceBankPayCode where
tCInvoiceBankPayCode.tc_Status = "":U:
if tCInvoiceBankPayCode.PayFormatCode_ID <> ? and
tCInvoiceBankPayCode.PayFormatCode_ID <> 0
then do:
<Q-10 run PayFormatCodePrim (all) (Read) (Cache)
(input tCInvoiceBankPayCode.PayFormatCode_ID, (PayFormatCodeID)
input ?, (PayFormatCode)
output dataset tqPayFormatCodePrim) in BPaymentFormat >
find first tqPayFormatCodePrim where
tqPayFormatCodePrim.tiPayFormatCode_ID = tCInvoiceBankPayCode.PayFormatCode_ID
no-error.
if available tqPayFormatCodePrim and
tCInvoiceBankPayCode.CInvoiceBankPayCodeValue <> tqPayFormatCodePrim.tcPayFormatCode
then assign tCInvoiceBankPayCode.CInvoiceBankPayCodeValue = tqPayFormatCodePrim.tcPayFormatCode
tCInvoiceBankPayCode.tc_Status = (if tCInvoiceBankPayCode.tc_Status = "":U
then "C":U
else tCInvoiceBankPayCode.tc_Status).
end.
<Q-8 run PayFormatGroupPrim (all) (Read) (Cache)
(input tCInvoiceBankPayCode.PayFormatGroup_ID, (PayFormatGroupID)
input ?, (PayFormatTypeCode)
input ?, (PayFormatGroupSequence)
output dataset tqPayFormatGroupPrim) in BPaymentFormat >
find first tqPayFormatGroupPrim where
tqPayFormatGroupPrim.tiPayFormatGroup_ID = tCInvoiceBankPayCode.PayFormatGroup_ID
no-error.
if available tqPayFormatGroupPrim
then assign tCInvoiceBankPayCode.tcPayFormatGroupCode = tqPayFormatGroupPrim.tcPayFormatGroupCode
tCInvoiceBankPayCode.tcPayFormatGroupDescription = tqPayFormatGroupPrim.tcPayFormatGroupDescription
tCInvoiceBankPayCode.tlPayFormatGroupIsMandatory = tqPayFormatGroupPrim.tlPayFormatGroupIsMandatory
tCInvoiceBankPayCode.tcPayFormatGroupInputOption = tqPayFormatGroupPrim.tcPayFormatGroupInputOption
tCInvoiceBankPayCode.tcPayFormatGroupDataType = tqPayFormatGroupPrim.tcPayFormatGroupDataType.
/* Make sure t_iCInvoiceBankPayCode is up-to-date */
find t_iCInvoiceBankPayCode where
t_iCInvoiceBankPayCode.tc_Rowid = tCInvoiceBankPayCode.tc_Rowid
no-error.
if available t_iCInvoiceBankPayCode
then buffer-copy tCInvoiceBankPayCode
except CInvoiceBankPayCodeValue
to t_iCInvoiceBankPayCode.
end.
end. /* if can-find first (tCInvoiceBankPayCode where */