project QadFinancials > class BCInvoice > method UpdateCInvoicesPaymentReference


Parameters


tqApiSelectCInvoiceByPayRefinputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


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: */