project QadFinancials > class BCInvoice > method ValidateComponentPreBank
Description
This method is submethod of ValidateComponentPre.
This method fills some necessary fields on Creditor Invoice Bank records.
Parameters
blStart3 | input-output | logical | Is query tqBankNumberPrim already started or not ? |
blStart4 | input-output | logical | Is query tqPayFormatCodeByGroupId already started or not ? |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bcinvoice.p)
for each t_sCInvoiceBank where
t_sCInvoiceBank.tc_ParentRowid = t_sCInvoice.tc_Rowid and
t_sCInvoiceBank.tc_Status <> "D":U:
if t_sCInvoiceBank.tc_Status = "C":U
then do:
find t_iCInvoiceBank where
t_iCInvoiceBank.tc_Rowid = t_sCInvoiceBank.tc_Rowid
no-error.
if not available t_iCInvoiceBank
then do:
<M-1 run SetMessage
(input trim(#T-2'The system cannot find initial values for supplier invoice bank with bank number $1 (Supplier Invoice $2 $3 $4).':255(65483)t-2#) (icMessage),
input t_sCInvoiceBank.tcBankNumber + chr(2) + string(t_sCInvoice.CInvoicePostingYear) + chr(2) + t_sCInvoice.tcJournalCode + chr(2) + string(t_sCInvoice.CInvoiceVoucher) (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '':U (iiSeverity),
input t_sCInvoiceBank.tc_Rowid (icRowid),
input 'QadFin-7087':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign oiReturnStatus = -1.
next.
end.
end.
if t_sCInvoiceBank.tc_Status = "N":U
then assign t_sCInvoiceBank.tiParentObject_ID = t_sCInvoice.Creditor_ID.
if t_sCInvoiceBank.tc_Status = "N":U or
t_sCInvoiceBank.tc_Status = "C":U and
t_sCInvoiceBank.tcBankNumber <> t_iCInvoiceBank.tcBankNumber
then assign t_sCInvoiceBank.tcBankNumber = replace(t_sCInvoiceBank.tcBankNumber, " ":U, "":U)
t_sCInvoiceBank.tcBankNumber = replace(t_sCInvoiceBank.tcBankNumber, ".":U, "":U)
t_sCInvoiceBank.tcBankNumber = replace(t_sCInvoiceBank.tcBankNumber, "/":U, "":U)
t_sCInvoiceBank.tcBankNumber = replace(t_sCInvoiceBank.tcBankNumber, "-":U, "":U).
if (t_sCInvoiceBank.tc_Status = "N":U and
(t_sCInvoiceBank.BankNumber_ID = ? or t_sCInvoiceBank.BankNumber_ID = 0) ) or
t_sCInvoiceBank.tc_Status = "C":U and
(t_sCInvoiceBank.tiParentObject_ID <> t_iCInvoiceBank.tiParentObject_ID or
t_sCInvoiceBank.tcBankNumber <> t_iCInvoiceBank.tcBankNumber or
t_sCInvoiceBank.tcBankNumberExtension <> t_iCInvoiceBank.tcBankNumberExtension or
t_sCInvoiceBank.tiBankPayFormat_ID <> t_iCInvoiceBank.tiBankPayFormat_ID)
then do:
if not blStart3
then do:
<Q-3 run BankNumberPrim (Start) in BBankNumber >
assign blStart3 = true.
end.
if t_sCInvoiceBank.tcOwnBankNumber <> "":U and
t_sCInvoiceBank.tcBankNumber <> "":U
then do:
<Q-23 run BankNumberByPayFormat (all) (Read) (NoCache)
(input t_sCInvoiceBank.tcBankNumber, (BankNumber)
input t_sCInvoice.tcCreditorCode, (CreditorCode)
input t_sCInvoiceBank.tcOwnBankNumber, (OwnBankNumber)
input ?, (PaymentFormat)
input viCompanyId, (CompanyId)
output dataset tqBankNumberByPayFormat) in BBankNumber>
find first tqBankNumberByPayFormat where
tqBankNumberByPayFormat.tcBankNumber = t_sCInvoiceBank.tcBankNumber and
tqBankNumberByPayFormat.tcCreditorCode = t_sCInvoice.tcCreditorCode and
tqBankNumberByPayFormat.tcOwnBankNumber = t_sCInvoiceBank.tcOwnBankNumber and
tqBankNumberByPayFormat.tcBankNumberExtension = t_sCInvoiceBank.tcBankNumberExtension and
tqBankNumberByPayFormat.tcPayFormatTypeCode = t_sCInvoiceBank.tcPayFormatTypeCode and
tqBankNumberByPayFormat.tlBankNumberIsActive = true
no-error.
assign t_sCInvoiceBank.BankNumber_ID = if available tqBankNumberByPayFormat
then tqBankNumberByPayFormat.tiBankNumber_ID
else ?.
end.
else if t_sCInvoiceBank.tcOwnBankNumber = "":U and
t_sCInvoiceBank.tcBankNumber = "":U
then do:
<Q-51 run BankNumberForCIDefault (all) (Read) (NoCache)
(input t_sCInvoice.Creditor_ID, (ParentObjectId)
input ?, (BankNumberIsDefault)
input true, (BankNumberIsActive)
input ?, (CompanyId)
output dataset tqBankNumberForCIDefault) in BBankNumber>
/* Find active default banknumber for current entity */
find first tqBankNumberForCIDefault where
tqBankNumberForCIDefault.tiParentObject_ID = t_sCInvoice.Creditor_ID 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 = t_sCInvoice.Creditor_ID 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 = t_sCInvoice.Creditor_ID and
tqBankNumberForCIDefault.tlBankNumberIsActive = true and
tqBankNumberForCIDefault.tlBankNumberIsDefault = true
no-error.
assign t_sCInvoiceBank.BankNumber_ID = if available tqBankNumberForCIDefault
then tqBankNumberForCIDefault.tiBankNumber_ID
else ?.
end.
else do:
<Q-4 run BankNumberPrim (all) (Read) (Cache)
(input ?, (BankNumberId)
input t_sCInvoiceBank.tiParentObject_ID, (ParentObjectId)
input t_sCInvoiceBank.tcBankNumber, (BankNumber)
input t_sCInvoiceBank.tcBankNumberExtension, (BankNumberExtension)
input t_sCInvoiceBank.tiBankPayFormat_ID, (BankPayFormatID)
output dataset tqBankNumberPrim) in BBankNumber >
find first tqBankNumberPrim where
tqBankNumberPrim.tiParentObject_ID = t_sCInvoiceBank.tiParentObject_ID and
tqBankNumberPrim.tcBankNumber = t_sCInvoiceBank.tcBankNumber
no-error.
assign t_sCInvoiceBank.BankNumber_ID = if available tqBankNumberPrim
then tqBankNumberPrim.tiBankNumber_ID
else ?.
end.
end.
for each t_sCInvoiceBankPayCode where
t_sCInvoiceBankPayCode.tc_ParentRowid = t_sCInvoiceBank.tc_Rowid and
(t_sCInvoiceBankPayCode.tc_Status = "N":U or
t_sCInvoiceBankPayCode.tc_Status = "C":U):
if t_sCInvoiceBankPayCode.tc_Status = "C":U
then do:
find t_iCInvoiceBankPayCode where
t_iCInvoiceBankPayCode.tc_Rowid = t_sCInvoiceBankPayCode.tc_Rowid
no-error.
if not available t_iCInvoiceBankPayCode
then do:
<M-5 run SetMessage
(input trim(#T-6'The system cannot find initial values for supplier invoice bank with bank number $1 (Supplier Invoice $2 $3 $4).':255(65483)t-6#) (icMessage),
input t_sCInvoiceBank.tcBankNumber + chr(2) + string(t_sCInvoice.CInvoicePostingYear) + chr(2) + t_sCInvoice.tcJournalCode + chr(2) + string(t_sCInvoice.CInvoiceVoucher) (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '':U (iiSeverity),
input t_sCInvoiceBankPayCode.tc_Rowid (icRowid),
input 'QadFin-7113':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign oiReturnStatus = -1.
next.
end.
end.
if t_sCInvoiceBankPayCode.tc_Status = "C":U and
t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue = t_iCInvoiceBankPayCode.CInvoiceBankPayCodeValue
then next.
if t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue = "":U or
t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue = ?
then assign t_sCInvoiceBankPayCode.PayFormatCode_ID = 0
t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue = "":U.
else do:
if not blStart4
then do:
<Q-7 run PayFormatCodebyGroupID (Start) in BPaymentFormat >
assign blStart4 = true.
end.
<Q-8 run PayFormatCodebyGroupID (all) (Read) (Cache)
(input ?, (PayFormatCodeID)
input t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue, (PayFormatCode)
input t_sCInvoiceBankPayCode.PayFormatGroup_ID, (PayFormatGroupID)
output dataset tqPayFormatCodebyGroupID) in BPaymentFormat >
find first tqPayFormatCodebyGroupID where
tqPayFormatCodebyGroupID.tcPayFormatCode = t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue and
tqPayFormatCodebyGroupID.tiPayFormatGroup_ID = t_sCInvoiceBankPayCode.PayFormatGroup_ID
no-error.
if available tqPayFormatCodebyGroupID
then assign t_sCInvoiceBankPayCode.PayFormatCode_ID = tqPayFormatCodebyGroupID.tiPayFormatCode_ID
t_sCInvoiceBankPayCode.CInvoiceBankPayCodeValue = tqPayFormatCodebyGroupID.tcPayFormatCode.
else assign t_sCInvoiceBankPayCode.PayFormatCode_ID = 0.
end.
end.
end.