project QadFinancials > class BBankNumber > method ValidateComponentPostDebtor
Description
Validation done for banknumbers of debtors.
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bbanknumber.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0
vlQueryDDocumentStatusPrim = false
vlQueryPayFormatGroup = false
vcDocumentStatusDebtors ={&DOCUMENTSTATUSDEBTORS}.
VALDEBTORBLOCK:
for each t_sBankNumber where
t_sBankNumber.BankNumberParentType = {&BANKNUMBERPARENTTYPE-DEBTOR} and
t_sBankNumber.BankNumberIsActive = true and
(t_sBankNumber.tc_Status = "C":U or
t_sBankNumber.tc_Status = "N":U):
/* ========================================= */
/* Error when Bank is not linked to Own Bank */
/* ========================================= */
if (t_sBankNumber.tcOwnBankNumber = "" or
t_sBankNumber.tcOwnBankNumber = ?)
then do:
assign vcMessage = trim(#T-33'Own bank number cannot be blank or unknown.':50(57162)T-33#)
viLocalReturnStatus = -1.
<M-32 run SetMessage
(input trim(vcMessage) (icMessage),
input '':U (icArguments),
input 'tBankNumber.tcOwnBankNumber':U (icFieldName),
input t_sBankNumber.tcOwnBankNumber (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankNumber.tc_Rowid (icRowid),
input 'QadFin-9720':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
end. /* if (t_sBankNumber.tcOwnBankNumber = "" or */
/* ================================================= */
/* Error when Bank is not linked to a Payment Format */
/* ================================================= */
if (t_sBankNumber.tcPayFormatTypeCode = "":U or
t_sBankNumber.tcPayFormatTypeCode = ?)
then do:
assign vcMessage = trim(#T-35'Payment format code cannot be blank or unknown.':50(999890802)T-35#)
viLocalReturnStatus = -1.
<M-34 run SetMessage
(input trim(vcMessage) (icMessage),
input '':U (icArguments),
input 'tBankNumber.tcPayFormatTypeCode':U (icFieldName),
input t_sBankNumber.tcPayFormatTypeCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankNumber.tc_Rowid (icRowid),
input 'QadFin-9721':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
end. /* if (t_sBankNumber.tcPayFormatTypeCode = "":U or */
/* ======================================================== */
/* Validate the payment status and self bill default values */
/* ======================================================== */
/* First retrieve the database value of the status */
assign vcDocumentStatus = '':U.
do viDocumentStatusCount = num-entries(vcDocumentStatusDebtors, chr(2)) to 1 by -2:
if entry(viDocumentStatusCount - 1, vcDocumentStatusDebtors, chr(2)) = t_sBankNumber.tcDDocumentStatusTR
then do:
assign vcDocumentStatus = entry(viDocumentStatusCount, vcDocumentStatusDebtors, chr(2)).
leave.
end. /* if entry(viDocumentStatusCount, vcDocumentStatusDebtors, chr(2)) = t_sBankNumber.tcDDocumentStatusTR */
end. /* do viDocumentStatusCount = num-entries(vcDocumentStatusDebtors, chr(2)) to 1 by -2: */
if t_sBankNumber.tcDDocumentStatusTR <> "":U and
t_sBankNumber.tcDDocumentStatusTR <> ?
then do:
/* Start query when first time use */
if vlQueryDDocumentStatusPrim = false
then do:
<Q-40 run DDocumentStatusPrim (Start) in BDDocumentStatus >
assign vlQueryDDocumentStatusPrim = true.
end. /* if vlQueryDDocumentStatusPrim = false */
<Q-37 run DDocumentStatusPrim (all) (Read) (NoCache)
(input ?, (DDocumentStatusID)
input vcDocumentStatus, (DDocumentStatusStatus)
input t_sBankNumber.tcPayFormatTypePaymentInstrument, (DDocumentStatusDocumentType)
input t_sBankNumber.tcOwnGLCode, (BankGLCode)
input viCompanyID, (CompanyId)
output dataset tqDDocumentStatusPrim) in BDDocumentStatus >
find first tqDDocumentStatusPrim where
tqDDocumentStatusPrim.tcDDocumentStatusStatus = vcDocumentStatus and
tqDDocumentStatusPrim.tcDDocumentStatusDocType = t_sBankNumber.tcPayFormatTypePaymentInstrument and
tqDDocumentStatusPrim.tcGLCode = t_sBankNumber.tcOwnGLCode
no-lock no-error.
if not available tqDDocumentStatusPrim
then do:
assign vcMessage = trim(#T-39'Invalid Payment Status Specified for Bank Data Specified':255(733760936)T-39#)
viLocalReturnStatus = -1.
<M-38 run SetMessage
(input vcMessage (icMessage),
input '' (icArguments),
input 'tBankNumber.tcDDocumentStatusTR' (icFieldName),
input t_sBankNumber.tcDDocumentStatusTR (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankNumber.tc_Rowid (icRowid),
input 'QadFin-9722':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
end. /* if not available tqDDocumentStatusPrim */
else assign t_sBankNumber.DDocumentStatus_ID = tqDDocumentStatusPrim.tiDDocumentStatus_ID.
end. /* end of DDocumentStatusStatus <> "" */
/* ================================ */
/* Bank must have a bank pay format */
/* ================================ */
if(t_sBankNumber.BankPayFormat_ID = ? or
t_sBankNumber.BankPayFormat_ID = 0)
then do:
assign vcMessage = trim(#T-48'Bank must have a bank pay format':60(733739713)T-48#)
viLocalReturnStatus = -1.
<M-43 run SetMessage
(input vcMessage (icMessage),
input '' (icArguments),
input 'tBankNumber.BankNumber':U (icFieldName),
input t_sBankNumber.BankNumber (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankNumber.tc_Rowid (icRowid),
input 'QadFin-9723':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
end. /* if(t_sBankNumber.BankPayFormat_ID = ? or */
for each t_sBankNumberPayCode where
t_sBankNumberPayCodeRef.BankNumber_ID = t_sBankNumber.BankNumber_ID:
if vlQueryPayFormatGroup = false
then do:
<Q-51 run PayFormatGroupByTypeSeq (Start) in BPaymentFormat >
assign vlQueryPayFormatGroup = true.
end. /* if vlQueryPayFormatGroup = false */
<Q-44 run PayFormatGroupByTypeSeq (all) (Read) (NoCache)
(input t_sBankNumberPayCode.tiPayFormatGroupSequence, (PayFormatGroupSequence)
input true, (PayFormatGroupIsActive)
input t_sBankNumber.tcPayFormatTypeCode, (PayFormatTypeCode)
output dataset tqPayFormatGroupByTypeSeq) in BPaymentFormat >
/* Check if mandatory fields and filled in */
for each tqPayFormatGroupByTypeSeq:
/* Validate Attribute Data Type */
case tqPayFormatGroupByTypeSeq.tcPayFormatGroupDataType:
when {&PAYFORMATGROUPDATATYPE-INTEGER}
then assign viPayFormatIntegerValue = int(t_sBankNumberPayCode.tcPayFormatCodeValue) no-error.
when {&PAYFORMATGROUPDATATYPE-AMOUNT}
then assign vdPayFormatDecimalValue = dec(t_sBankNumberPayCode.tcPayFormatCodeValue) no-error.
when {&PAYFORMATGROUPDATATYPE-DATE}
then assign vtPayFormatDateValue = date(t_sBankNumberPayCode.tcPayFormatCodeValue) no-error.
when {&PAYFORMATGROUPDATATYPE-LOGICAL}
then assign vlPayFormatLogicalValue = logical(t_sBankNumberPayCode.tcPayFormatCodeValue) no-error.
otherwise
assign vcPayFormatTextValue = string(t_sBankNumberPayCode.tcPayFormatCodeValue) no-error.
end case.
/* Log Progress errors for datatype mismatches */
if error-status:error
then do:
assign viLocalReturnStatus = -1.
do viProgressErrorCount = 1 to error-status:num-messages:
<M-46 run SetMessage
(input error-status:get-message(viProgressErrorCount) (icMessage),
input '':U (icArguments),
input 'tBankNumberPayCode.tcPayFormatCodeValue':U (icFieldName),
input t_sBankNumberPayCode.tcPayFormatCodeValue (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankNumberPayCode.tc_Rowid (icRowid),
input 'QadFin-9725':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
end. /* do viProgressErrorCount ... */
end. /* if error-status:error then do */
end. /* for each tqPayFormatGroupByTypeSeq */
end. /* for each t_sBankNumberPayCode */
end. /* for each t_sBankNumber where */
/* Stop Queries */
if vlQueryDDocumentStatusPrim = true
then do:
<Q-41 run DDocumentStatusPrim (Stop) in BDDocumentStatus >
assign vlQueryDDocumentStatusPrim = false.
end. /* if vlQueryDDocumentStatusPrim = true */
if vlQueryPayFormatGroup = true
then do:
<Q-52 run PayFormatGroupByTypeSeq (Stop) in BPaymentFormat >
assign vlQueryPayFormatGroup = false.
end. /* if vlQueryPayFormatGroup = true */
assign oiReturnStatus = viLocalReturnStatus.