project QadFinancials > class BCInvoice > method ValidateComponentPostReason
Description
This method is a submethod of ValidateComponentPost.
This method does some validations on the creditor invoice reason code.
Parameters
blStart14 | input-output | logical | obsolete parameter |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bcinvoice.p)
if (t_sCInvoice.tc_Status = "N":U or
t_sCInvoice.tc_Status = "C":U and
t_sCInvoice.Reason_ID <> t_iCInvoice.Reason_ID) and
(t_sCInvoice.CInvoiceIsInvoiceApproved = true or
t_sCInvoice.CInvoiceIsLockPayment = false or
t_sCInvoice.tcReasonAllocationStatus = {&ALLOCSTATUS-TRANSALLOC} or
t_sCInvoice.tcReasonAllocationStatus = {&ALLOCSTATUS-ALLOC})
then do:
if t_sCInvoice.CInvoiceIsInvoiceApproved = true
then do:
<Q-2 assign vlFcQueryRecordsAvailable = BusCompByActivityUserComp (Cache)
(input vcFcComponentName, (BusComponentCode)
input 'Approve':U, (BusActivityCode)
input ?, (UsrName)
input ?, (UsrLogin)
input t_sCInvoice.Company_ID, (CompanyID)
input viUsrId, (UsrID)) in BBusinessComponent >
if not vlFcQueryRecordsAvailable
then do:
assign vcMessage = trim(subst(#T-4'You cannot use an invoice status code with the payment status Can Pay. Please review target status and/or your permission to Release for Payment (invoice status code = &1).':200(27922991)T-4#, t_sCInvoice.tcReasonCode)) + chr(10) +
trim(subst(#T-5'GL Calendar Year = &1; GL Period = &2; Daybook = &3; Voucher = &4.':255(969)T-5#, string(t_sCInvoice.CInvoicePostingYear), string(t_sCInvoice.CInvoicePostingPeriod), t_sCInvoice.tcJournalCode, string(t_sCInvoice.CInvoiceVoucher)))
oiReturnStatus = -1.
<M-3 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCInvoice.tcReasonCode':U (icFieldName),
input t_sCInvoice.tcReasonCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCInvoice.tc_Rowid (icRowid),
input 'QadFin-7119':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
end.
end.
if t_sCInvoice.CInvoiceIsLockPayment = false
then do:
<Q-6 assign vlFcQueryRecordsAvailable = BusCompByActivityUserComp (Cache)
(input vcFcComponentName, (BusComponentCode)
input 'Release For Payment':U, (BusActivityCode)
input ?, (UsrName)
input ?, (UsrLogin)
input t_sCInvoice.Company_ID, (CompanyID)
input viUsrId, (UsrID)) in BBusinessComponent >
if not vlFcQueryRecordsAvailable
then do:
assign vcMessage = trim(subst(#T-8'You cannot use an invoice status code with the payment status Can Pay. Please review target status and/or your permission to Release for Payment (invoice status code = &1).':200(27922991)T-8#, t_sCInvoice.tcReasonCode)) + chr(10) +
trim(subst(#T-9'GL Calendar Year = &1; GL Period = &2; Daybook = &3; Voucher = &4.':255(969)T-9#, string(t_sCInvoice.CInvoicePostingYear), string(t_sCInvoice.CInvoicePostingPeriod), t_sCInvoice.tcJournalCode, string(t_sCInvoice.CInvoiceVoucher)))
oiReturnStatus = -1.
<M-7 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCInvoice.tcReasonCode':U (icFieldName),
input t_sCInvoice.tcReasonCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCInvoice.tc_Rowid (icRowid),
input 'QadFin-7121':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
end.
end.
if t_sCInvoice.tcReasonAllocationStatus = {&ALLOCSTATUS-TRANSALLOC}
then do:
<Q-10 assign vlFcQueryRecordsAvailable = BusCompByActivityUserComp (Cache)
(input vcFcComponentName, (BusComponentCode)
input 'Prepare Allocation':U, (BusActivityCode)
input ?, (UsrName)
input ?, (UsrLogin)
input t_sCInvoice.Company_ID, (CompanyID)
input viUsrId, (UsrID)) in BBusinessComponent >
if not vlFcQueryRecordsAvailable
then do:
assign vcMessage = trim(subst(#T-12'You cannot use an invoice status code with allocation status &1 (invoice status code = &2).':150(971)T-12#, {&ALLOCSTATUS-TRANSALLOC-TR},t_sCInvoice.tcReasonCode)) + chr(10) +
trim(subst(#T-13'GL Calendar Year = &1; GL Period = &2; Daybook = &3; Voucher = &4.':255(969)T-13#, string(t_sCInvoice.CInvoicePostingYear), string(t_sCInvoice.CInvoicePostingPeriod), t_sCInvoice.tcJournalCode, string(t_sCInvoice.CInvoiceVoucher)))
oiReturnStatus = -1.
<M-11 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCInvoice.tcReasonCode':U (icFieldName),
input t_sCInvoice.tcReasonCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCInvoice.tc_Rowid (icRowid),
input 'QadFin-7122':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
end.
end.
if t_sCInvoice.tcReasonAllocationStatus = {&ALLOCSTATUS-ALLOC}
then do:
<Q-14 assign vlFcQueryRecordsAvailable = BusCompByActivityUserComp (Cache)
(input vcFcComponentName, (BusComponentCode)
input 'Allocate':U, (BusActivityCode)
input ?, (UsrName)
input ?, (UsrLogin)
input t_sCInvoice.Company_ID, (CompanyID)
input viUsrId, (UsrID)) in BBusinessComponent >
if not vlFcQueryRecordsAvailable
then do:
assign vcMessage = trim(subst(#T-16'You cannot use an invoice status code with allocation status &1 (invoice status code = &2).':150(971)T-16#, {&ALLOCSTATUS-ALLOC-TR},t_sCInvoice.tcReasonCode)) + chr(10) +
trim(subst(#T-17'GL Calendar Year = &1; GL Period = &2; Daybook = &3; Voucher = &4.':255(969)T-17#, string(t_sCInvoice.CInvoicePostingYear), string(t_sCInvoice.CInvoicePostingPeriod), t_sCInvoice.tcJournalCode, string(t_sCInvoice.CInvoiceVoucher)))
oiReturnStatus = -1.
<M-15 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCInvoice.tcReasonCode':U (icFieldName),
input t_sCInvoice.tcReasonCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCInvoice.tc_Rowid (icRowid),
input 'QadFin-7123':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
end.
end.
if (t_sCInvoice.CInvoiceIsInitialStatus = true and
t_sCInvoice.tcReasonAllocationStatus <> {&ALLOCSTATUS-NOALLOC})
then do:
assign vcMessage = trim(subst(#T-24'You can only create an initial invoice with the allocation status &1.':255(68730)t-24#,{&ALLOCSTATUS-NOALLOC-TR}))
oiReturnStatus = -1.
<M-19 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCInvoice.tcReasonCode':U (icFieldName),
input t_sCInvoice.tcReasonCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCInvoice.tc_Rowid (icRowid),
input 'QadFin-7772':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
end.
end.