project QadFinancials > class BDInvoice > method CreateDIBankPayCode


Parameters


iiDInvoiceBankIdinputinteger
icDInvoiceBankRowidinputcharacter
iiBankNumberIdinputinteger
tApiDInvoiceBankPayCodeoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDInvoice.CreateDIBank
method BDInvoice.CreateDInvoices
method BDInvoice.DefaultValuesBank


program code (program1/bdinvoice.p)

if iiDInvoiceBankId = ? or iiDInvoiceBankId = 0 or iiBankNumberId = ? or iiBankNumberId = 0
then return.

empty temp-table tApiDInvoiceBankPayCode.

/* Delete all t_CInvoiceBankPayCode associated with the specified CInvoiceBank so when the user
 * changes the bank on the CInvoiceBank, the old CInvoiceBankPayCode gets deleted */
for each tDInvoiceBankPayCode where
         tDInvoiceBankPayCode.DInvoiceBank_ID = iiDInvoiceBankId:
    if tDInvoiceBankPayCode.tc_Status = "N":U
    then delete tDInvoiceBankPayCode.
    else assign tDInvoiceBankPayCode.tc_Status = "D":U.
end.

<Q-3 run BankNumberPayCodeForCIDef (all) (Read) (NoCache)
   (input iiBankNumberId, (BankNumberId)
    output dataset tqBankNumberPayCodeForCIDef) in BBankNumber>
for each tqBankNumberPayCodeForCIDef:

    <M-2 run AddDetailLine
       (input  'DInvoiceBankPayCode':U (icTable), 
        input  icDInvoiceBankRowid (icParentRowid), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>

    if viFcReturnSuper <> 0
    then do:
        assign oiReturnStatus = viFcReturnSuper.
        return.
    end. 

    assign tDInvoiceBankPayCode.DInvoiceBank_ID             = iiDInvoiceBankId
           tDInvoiceBankPayCode.PayFormatCode_ID            = tqBankNumberPayCodeForCIDef.tiPayFormatCode_ID
           tDInvoiceBankPayCode.PayFormatGroup_ID           = tqBankNumberPayCodeForCIDef.tiPayFormatGroup_ID 
           tDInvoiceBankPayCode.DInvoiceBankPayCodeValue    = (if tqBankNumberPayCodeForCIDef.tcBankNumberPayCodeValue <> ? and
                                                                  tqBankNumberPayCodeForCIDef.tcBankNumberPayCodeValue <> "":U
                                                               then tqBankNumberPayCodeForCIDef.tcBankNumberPayCodeValue
                                                               else tqBankNumberPayCodeForCIDef.tcPayFormatCode)
           tDInvoiceBankPayCode.tcPayFormatGroupCode        = tqBankNumberPayCodeForCIDef.tcPayFormatGroupCode
           tDInvoiceBankPayCode.tcPayFormatGroupDescription = tqBankNumberPayCodeForCIDef.tcPayFormatGroupDescription
           tDInvoiceBankPayCode.tlPayFormatGroupIsMandatory = tqBankNumberPayCodeForCIDef.tlPayFormatGroupIsMandatory
           tDInvoiceBankPayCode.tcPayFormatGroupDataType    = tqBankNumberPayCodeForCIDef.tcPayFormatGroupDataType
           tDInvoiceBankPayCode.tcPayFormatGroupInputOption = tqBankNumberPayCodeForCIDef.tcPayFormatGroupInputOption.

    if tDInvoiceBankPayCode.tcPayFormatGroupDataType = {&PAYFORMATGROUPDATATYPE-LOGICAL} and
      (tDInvoiceBankPayCode.DInvoiceBankPayCodeValue = ? or
       tDInvoiceBankPayCode.DInvoiceBankPayCodeValue = "":U)
    then assign tDInvoiceBankPayCode.DInvoiceBankPayCodeValue = "false":U.

    if tDInvoiceBankPayCode.PayFormatCode_ID <> 0 and tDInvoiceBankPayCode.PayFormatCode_ID <> ? 
    then assign tDInvoiceBankPayCode.tcPayFormatCode            = tqBankNumberPayCodeForCIDef.tcPayFormatCode
                tDInvoiceBankPayCode.tcPayFormatCodeDescription = tqBankNumberPayCodeForCIDef.tcPayFormatCodeDescription.
    else assign tDInvoiceBankPayCode.tcPayFormatCode            = tDInvoiceBankPayCode.DInvoiceBankPayCodeValue
                tDInvoiceBankPayCode.tcPayFormatCodeDescription = "":U.

    create tApiDInvoiceBankPayCode.
    buffer-copy tDInvoiceBankPayCode to tApiDInvoiceBankPayCode.
end.