project QadFinancials > class BMfgCreditTermsDetail > method MaintainData

Description

Procedure that controls the Create/Update/Delete operations on the ctd_det record in MfgPro.


Parameters


tCopyPaymentConditionStagedinputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BPaymentCondition.AdditionalUpdates


program code (program1/bmfgcredittermsdetail.p)

/* Buffer bCopyPaymentConditionStaged defined on table tCopyPaymentConditionStaged */
/* for the assignment of staged payment condition code with Delete Status          */
define buffer bCopyPaymentConditionStaged for tCopyPaymentConditionStaged.

/* ====================================================== */
/* Set the return status to unexpected system error (-98) */
/* ====================================================== */
assign oiReturnStatus = -98.

/* =============================================================================================== */
/* Execute the ProcessMaintainData method to execute the generic processing of the update in the   */
/* Financials across to the MFG/PRO database. (this method can be called from within a Loop)       */
/* First: clear the instance                                                                       */
/* Last: call ProcessMaintainDataSave to save the data                                             */
/* =============================================================================================== */
<M-1 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BMfgCreditTermsDetail>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then Return.

/* For each record in tCopyPaymentConditionStaged the Payment Condition Code record is     */
/* checked in financials and if record is not found a record with Delete Status is created */ 

for each tCopyPaymentConditionStaged
    break by tCopyPaymentConditionStaged.tcPaymentConditionCode:
    
    if first-of (tCopyPaymentConditionStaged.tcPaymentConditionCode)
    then do:
    
         <Q-8 run CreditTermsDetailByDomainCode (all) (Read) (NoCache)
            (input vcDomainCode, (Domain)
             input tcPaymentConditioncode, (PaymentConditionCode)
             input ?, (StagedPaymentConditionCode)
             output dataset tqCreditTermsDetailByDomainCode) in BMfgCreditTermsDetail >
    
        for each tqCreditTermsDetailByDomainCode:
            if not can-find (bCopyPaymentConditionStaged where
                bCopyPaymentConditionStaged.tcPaymentConditionCode       = tqCreditTermsDetailByDomainCode.tcctd_code and
                bCopyPaymentConditionStaged.tcStagedPaymentConditionCode = tqCreditTermsDetailByDomainCode.tcctd_date_cd)
            then do:
                create bCopyPaymentConditionStaged.
                assign bCopyPaymentConditionStaged.tcPaymentConditionCode       = tqCreditTermsDetailByDomainCode.tcctd_code 
                       bCopyPaymentConditionStaged.tcStagedPaymentConditionCode = tqCreditTermsDetailByDomainCode.tcctd_date_cd
                       bCopyPaymentConditionStaged.tc_Status                    = 'D'.
            end. /* if  no can-find  bCopyPaymentConditionStaged */  
        end. /* FOR EACH tqCreditTermsDetailByDomainCode */
    end. /* if first-of (tCopyPaymentConditionStaged.tcPaymentConditionCode) */
end. /* for each tCopyPaymentConditionStaged */ 

<Q-7 run DomainsForName (all) (Read) (NoCache)
   (output dataset tqDomainsForName) in BDomain >
for each tqDomainsForName where
         tqDomainsForName.tlDomainPropertyIsSetupCompl = true: 
    /* save the domain code which is currently being processed */
    assign vcCreditTermsDetailDomain = tqDomainsForName.tcDomainCode.
    <M-6 run ProcessMaintainData (output viFcReturnSuper (oiReturnStatus)) in BMfgCreditTermsDetail>    
    if viFcReturnSuper <> 0 
    then assign oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0 
    then Return.
end. /* end of for each tqSelectDomainsForName... */

<M-4 run ProcessMaintainDataSave (output viFcReturnSuper (oiReturnStatus)) in BMfgCreditTermsDetail>
if viFcReturnSuper <> 0 
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 
then Return.
    
/* ======================== */
/* Set ReturnStatus = OK    */
/* ======================== */
if oiReturnStatus = -98
then assign oiReturnStatus = 0.