project QadFinancials > class BCInvoice > method UpdateCInvoicesPaymentReference
Parameters
Internal usage
unused
program code (program3/bcinvoice.p)
/* ==================================================================== */
/* Method : UpdateCInvoicesPaymentReference */
/* Desc : Update opened supplier invoice(s) payment reference number with */
/* new payment reference number. */
/* ---------------------------------------------------------------------------------------------------------------------------------------- */
/* Params: (I) tqApiSelectCInvoiceByPayRef: Payment Reference DataSet */
/* (O) oiReturnStatus: Error code, 0 = Success, else failure */
/* ==================================================================== */
assign oiReturnStatus = 0.
<M-48 run VerifyBankPaymentDataSet
(input tqApiSelectCInvoiceByPayRef (tqApiSelectCInvoiceByPayRef),
output oiReturnStatus (oiReturnStatus)) in BCInvoice>
if oiReturnStatus = 0 then do:
<M-62 run StartPersistence
(output vhFcComponent (ohPersistence),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper <> 0
then do :
assign
oiReturnStatus = viFcReturnSuper
vcWhereClause = '':U.
if oiReturnStatus < 0 then
return.
end. /* if viFcReturnSuper <> 0 */
for each tqApiSelectCInvoiceByPayRef no-lock:
if (tqApiSelectCInvoiceByPayRef.tiCInvoice_ID = 0 or tqApiSelectCInvoiceByPayRef.tiCInvoice_ID = ?
or tqApiSelectCInvoiceByPayRef.tcCInvoiceTSMNumber = ? or tqApiSelectCInvoiceByPayRef.tcCInvoiceTSMNumber = '')
then do:
<M-55 run SetMessage
(input #T-18'Invoice Id or Payment Reference Number cannot be undefined':255(383839563)T-18# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':u (icType),
input 1 (iiSeverity),
input '':U (icRowid),
input 'qadfin-386281':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign oiReturnStatus = -1.
return.
end.
if ( tqApiSelectCInvoiceByPayRef.tcPaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-NORMAL} )
then do:
/* update the payment reference code */
assign
vcWhereClause = "for each CInvoice where CInvoiceIsOpen and CInvoice_ID = ":U + string(tqApiSelectCInvoiceByPayRef.tiCInvoice_ID)
vcFieldList = "CInvoiceTSMNumber,LastModifiedDate,LastModifiedTime,LastModifiedUser":U
vcFieldListDataTypes = "c,t,i,c":U
vcValueList= tqApiSelectCInvoiceByPayRef.tcCInvoiceTSMNumber + chr(02) + string(today) + chr(02) + string(integer(time)) + chr(02) + vcUserLogin.
/* message vcWhereClause. */
<M-20 run WriteDirect
(input 'CInvoice':U (icTableName),
input vcWhereClause (icPrepare),
input vcFieldList (icFieldList),
input vcFieldListDataTypes (icFieldListDataTypes),
input vcValueList (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
end.
else do:
/* update the payment reference code */
assign
vcWhereClause = "for each CinvoiceStage where CInvoiceStage_ID = ":U + string(tqApiSelectCInvoiceByPayRef.tiCInvoiceStage_ID) + " and CInvoice_ID = ":U + string(tqApiSelectCInvoiceByPayRef.tiCInvoice_ID)
vcFieldList = "CInvoiceStageTSMNumber":U
vcFieldListDataTypes = "c":U
vcValueList= tqApiSelectCInvoiceByPayRef.tcCInvoiceStageTSMNumber.
/* message vcWhereClause. */
<M-36 run WriteDirect
(input 'CinvoiceStage':U (icTableName),
input vcWhereClause (icPrepare),
input vcFieldList (icFieldList),
input vcFieldListDataTypes (icFieldListDataTypes),
input vcValueList (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
/* update the user and time stamp on the invoice */
assign
vcWhereClause = "for each CInvoice where CInvoiceIsOpen and CInvoice_ID = ":U + string(tqApiSelectCInvoiceByPayRef.tiCInvoice_ID)
vcFieldList = "LastModifiedDate,LastModifiedTime,LastModifiedUser":U
vcFieldListDataTypes = "c,t,i,c":U
vcValueList= string(today) + chr(02) + string(integer(time)) + chr(02) + vcUserLogin.
/* message vcWhereClause. */
<M-47 run WriteDirect
(input 'CInvoice':U (icTableName),
input vcWhereClause (icPrepare),
input vcFieldList (icFieldList),
input vcFieldListDataTypes (icFieldListDataTypes),
input vcValueList (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
end.
if viFcReturnSuper <> 0
then do :
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then
return.
end. /* if viFcReturnSuper <> 0 then do : */
end. /* for each tqApiSelectCInvoiceByPayRef no-lock */
end. /* if length(tqApiSelectCInvoiceByPayRef) > 0 then do: */