project QadFinancials > class BDInvoice > method ValidateComponentAllBank

Description

This method is a submethod of ValidateComponentAll.

This method validates the Debtor Invoice Bank fields.


Parameters


blStartPayFormatCodeByGroupIDinput-outputlogicalIs query tqPayFormatCodeByGroupId already started or not ?
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDInvoice.ValidateComponentAll


program code (program5/bdinvoice.p)

/* ======================================================================== */
/* IMPORTANT: This method is run from ValidateComponentAll                  */
/* The code in this method is nested within the for each t_sDInvoice        */
/* This can only work when both methods are defined in the same segment (5) */
/* ======================================================================== */
if can-find (first t_sDInvoiceBankPayCode  where
                   t_sDInvoiceBankPayCode.tc_Status = "N":U or t_sDInvoiceBankPayCode.tc_Status = "C")
then do:
    if viBPaymentFormatDIID = 0 or viBPaymentFormatDIID = ?
    then do:
        <I-15 {bFcStartAndOpenInstance
            &ADD-TO-TRANSACTION = "false"
            &CLASS              = "BPaymentFormat"}>
    end.
    else do:
        <I-16 {bFcOpenInstance
            &CLASS           = "BPaymentFormat"}>
    end.

    for each t_sDInvoiceBankPayCode  where
             t_sDInvoiceBankPayCode.tc_Status = "N":U or t_sDInvoiceBankPayCode.tc_Status = "C":

        if t_sDInvoiceBankPayCode.tcPayFormatCode <> ? and t_sDInvoiceBankPayCode.tcPayFormatCode <> "":U
        then do:
            if not blStartPayFormatCodeByGroupID
            then do:
                <Q-28 run PayFormatCodebyGroupID  (Start) in BPaymentFormat >
                assign blStartPayFormatCodeByGroupID = true.
            end.

            <Q-19 run PayFormatCodebyGroupID (all) (Read) (NoCache)
               (input ?, (PayFormatCodeID)
                input t_sDInvoiceBankPayCode.tcPayFormatCode, (PayFormatCode)
                input t_sDInvoiceBankPayCode.PayFormatGroup_ID, (PayFormatGroupID)
                output dataset tqPayFormatCodebyGroupID) in BPaymentFormat >

            find first tqPayFormatCodebyGroupID no-error.
            if available tqPayFormatCodebyGroupID
            then assign t_sDInvoiceBankPayCode.PayFormatCode_ID         = tqPayFormatCodebyGroupID.tiPayFormatCode_ID
                        t_sDInvoiceBankPayCode.DInvoiceBankPayCodeValue = "":U.
            else assign t_sDInvoiceBankPayCode.PayFormatCode_ID         = 0
                        t_sDInvoiceBankPayCode.DInvoiceBankPayCodeValue = t_sDInvoiceBankPayCode.tcPayFormatCode.
        end.
        else assign t_sDInvoiceBankPayCode.PayFormatCode_ID         = 0
                    t_sDInvoiceBankPayCode.DInvoiceBankPayCodeValue = "":U.

        <M-14 run ValidatePayCode
           (input  t_sDInvoiceBankPayCode.PayFormatGroup_ID (iiPayFormatGroupId), 
            input  t_sDInvoiceBankPayCode.PayFormatCode_ID (iiPayFormatCodeId), 
            input  t_sDInvoiceBankPayCode.DInvoiceBankPayCodeValue (icPayCodeValue), 
            input  true (ilCheckMandatory), 
            input  t_sDInvoice.DInvoicePostingYear (iiYear), 
            input  t_sDInvoice.tcJournalCode (icDaybook), 
            input  t_sDInvoice.DInvoiceVoucher (iiVoucherNumber), 
            output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>

        if viFcReturnSuper < 0 or oiReturnStatus  = 0
        then assign oiReturnStatus = viFcReturnSuper.
        
    end.  /* for each t_sDInvoiceBankPayCode */

    <I-27 {bFcCloseInstance
         &CLASS           = "BPaymentFormat"}>
    if oiReturnStatus < 0
    then do:
        <M-26 run StopExternalInstances
           (output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
    end.
end.  /* if can-find ... */