project QadFinancials > class BPaymentSelectionReport > method Remittance

report procedure


Parameters


icLanguageCodeinputcharacter
tFilterinputtemp-table
dcrRemittanceoutputdataset
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program7/bpaymentselectionreport.p)

empty temp-table tqRemittance.

<M-1 run GetReportLabels (input  'Remittance':U (icReportName), 
                          input  icLanguageCode (icLanguageCode), 
                          input  tFilter (tFilter), 
                          output tqHeader (tqHeader), 
                          output tqFilter (tqFilter), 
                          output tqText (tqText), 
                          output oiReturnStatus (oiReturnStatus)) in BPaymentSelectionReport>
if oiReturnStatus <> 0
then return.

/*assign tFilter*/
<M-2 run SetDataItemsBasedOnFilterTT (output viFcReturnSuper (oiReturnStatus)) in BPaymentSelectionReport>

/* ============= */
/* Precache data */
/* ============= */
<Q-10 run AddressTypePrim (all) (Read) (NoCache)
          (input ?, (AddressTypeId)
           input {&ADDRESSTYPECODESYSTEM-HEADOFFICE}, (AddressTypeCode)
           output dataset tqAddressTypePrim) in BAddressType >
find first tqAddressTypePrim no-error.
if available tqAddressTypePrim 
then assign viAddressType_ID = tqAddressTypePrim.tiAddressType_ID.
else assign viAddressType_ID = -1.

/* ============== */
/* Run Main Query */
/* ============== */
/* We run 2 querries mostly, at leas one */

if (vcPSFromCollectionRefFilter <> ? and
    vcPSTillCollectionRefFilter <> ?) or
   (viPSFromCollectionYearFilter <> ? and
    viPSTillCollectionYearFilter <> ? and
    viPSFromCollectionNumberFilter <> ? and
    viPSTillCollectionNumberFilter <> ?) or
   (viEqualityCollectionNumber <> ? and
    viEqualityCollectionYear <> ?) or
    vcEqualityCollectionReference <> ?
then do:
    <Q-11 run BaseRemittanceByCollCreditor (all) (Read) (NoCache)
       (input viCompanyId, (CompanyId)
        input viAddressType_ID, (AddressType_ID)
        input vcPSCreditorCodesFilter, (CreditorCodes)
        input vcPSFromPayselCodeFilter, (FromPaySel)
        input vcPSToPayselCodeFilter, (ToPaySel)
        input vcEqualityPaySelCode, (PaySel)
        input vlPSRefInBankFilesFilter, (IsRefInFile)
        input viPSFromCollectionYearFilter, (FromColYear)
        input viPSTillCollectionYearFilter, (TillColYear)
        input viEqualityCollectionYear, (ColYear)
        input viPSFromCollectionNumberFilter, (FromColNumber)
        input viPSTillCollectionNumberFilter, (ToColNumber)
        input viEqualityCollectionNumber, (ColNumber)
        input vcPSFromCollectionRefFilter, (FromColReference)
        input vcPSTillCollectionRefFilter, (ToColReference)
        input vcEqualityCollectionReference, (ColReference)
        input vtPSFromExecutionDateFilter, (FromPaySelDate)
        input vtPSTillExecutionDateFilter, (ToPaySelDate)
        input vlSendRemittanceFilter, (SendRemittance)
        output dataset tqBaseRemittanceByCollCreditor) in BPaymentSelectionReport >
        
    for each tqBaseRemittanceByCollCreditor
        break by tqBaseRemittanceByCollCreditor.tcCreditorCode:
        create tqRemittance.
        buffer-copy tqBaseRemittanceByCollCreditor to tqRemittance.
        
        if first-of(tqBaseRemittanceByCollCreditor.tcCreditorCode) 
        then do:
            <Q-16 run CreditorByCreditor (all) (Read) (NoCache)
               (input ?, (CreditorId)
                input viCompanyId, (CompanyId)
                input tqBaseRemittanceByCollCreditor.tcCreditorCode, (CreditorCode)
                input {&ADDRESSTYPECODESYSTEM-REMITTANCE}, (AddressType)
                output dataset tqCreditorByCreditor) in BCreditor >
            find first tqCreditorByCreditor no-error.                
        end.
        if available tqCreditorByCreditor
        then do:
            assign tqRemittance.tcAddressCity           = tqCreditorByCreditor.tcAddressCity
                   tqRemittance.tcAddressStreet1        = tqCreditorByCreditor.tcAddressStreet1
                   tqRemittance.tcAddressStreet2        = tqCreditorByCreditor.tcAddressStreet2  
                   tqRemittance.tcStateCode             = tqCreditorByCreditor.tcStateCode
                   tqRemittance.tcAddressZip            = tqCreditorByCreditor.tcAddressZip
                   tqRemittance.tiAddressFormat         = tqCreditorByCreditor.tiAddressFormat
                   tqRemittance.tcCountryCode           = tqCreditorByCreditor.tcCountryCode
                   tqRemittance.tcCountryDescription    = tqCreditorByCreditor.tcCountryDescription
                   tqRemittance.tcBusinessRelationCode  = tqCreditorByCreditor.tcBusinessRelationCode
                   tqRemittance.tcBusinessRelationName1 = tqCreditorByCreditor.tcAddressName.
        end.
    end.       
end.
else do:
    <Q-12 run BaseRemittanceByPaySelCreditor (all) (Read) (NoCache)
       (input viCompanyId, (CompanyId)
        input viAddressType_ID, (AddressType_ID)
        input vcPSCreditorCodesFilter, (CreditorCodes)
        input vcPSFromPayselCodeFilter, (FromPaySel)
        input vcPSToPayselCodeFilter, (ToPaySel)
        input vcEqualityPaySelCode, (PaySel)
        input vlPSRefInBankFilesFilter, (IsRefInFile)
        input vtPSFromExecutionDateFilter, (FromPaySelDate)
        input vtPSTillExecutionDateFilter, (ToPaySelDate)
        input vlSendRemittanceFilter, (SendRemittance)
        output dataset tqBaseRemittanceByPaySelCreditor) in BPaymentSelectionReport >
    for each tqBaseRemittanceByPaySelCreditor
        break by tqBaseRemittanceByPaySelCreditor.tcCreditorCode:
        create tqRemittance.
        buffer-copy tqBaseRemittanceByPaySelCreditor to tqRemittance.
        
        if first-of(tqBaseRemittanceByPaySelCreditor.tcCreditorCode) 
        then do:
            <Q-17 run CreditorByCreditor (all) (Read) (NoCache)
               (input ?, (CreditorId)
                input viCompanyId, (CompanyId)
                input tqBaseRemittanceByPaySelCreditor.tcCreditorCode, (CreditorCode)
                input {&ADDRESSTYPECODESYSTEM-REMITTANCE}, (AddressType)
                output dataset tqCreditorByCreditor) in BCreditor >
             find first tqCreditorByCreditor no-error.     
        end.
        if available tqCreditorByCreditor
        then do:
            assign tqRemittance.tcAddressCity           = tqCreditorByCreditor.tcAddressCity
                   tqRemittance.tcAddressStreet1        = tqCreditorByCreditor.tcAddressStreet1
                   tqRemittance.tcAddressStreet2        = tqCreditorByCreditor.tcAddressStreet2         
                   tqRemittance.tcStateCode             = tqCreditorByCreditor.tcStateCode
                   tqRemittance.tcAddressZip            = tqCreditorByCreditor.tcAddressZip
                   tqRemittance.tiAddressFormat         = tqCreditorByCreditor.tiAddressFormat
                   tqRemittance.tcCountryCode           = tqCreditorByCreditor.tcCountryCode
                   tqRemittance.tcCountryDescription    = tqCreditorByCreditor.tcCountryDescription
                   tqRemittance.tcBusinessRelationCode  = tqCreditorByCreditor.tcBusinessRelationCode
                   tqRemittance.tcBusinessRelationName1 = tqCreditorByCreditor.tcAddressName.
        end.
    end.
end.


/* Assign Company info */
<Q-15 run AddressByCompanyID (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input viAddressType_ID, (AddressType_ID)
           output dataset tqAddressByCompanyID) in BPaymentSelectionReport >

find first tqAddressByCompanyID no-error.
if available tqAddressByCompanyID
then do:
    for each tqRemittance:
        assign tqRemittance.tcCompanyAddressCity           = tqAddressByCompanyID.tcAddressCity
               tqRemittance.tcCompanyAddressStreet1        = tqAddressByCompanyID.tcAddressStreet1
               tqRemittance.tcCompanyAddressStreet2        = tqAddressByCompanyID.tcAddressStreet2
               tqRemittance.tcCompanyAddressState          = tqAddressByCompanyID.tcStateCode
               tqRemittance.tiCompanyAddressFormat         = tqAddressByCompanyID.tiAddressFormat
               tqRemittance.tcCompanyAddressZip            = tqAddressByCompanyID.tcAddressZip
               tqRemittance.tcCompanyCountryCode           = tqAddressByCompanyID.tcCountryCode
               tqRemittance.tcCompanyCountryDescription    = tqAddressByCompanyID.tcCountryDescription
               tqRemittance.tcCompanyBusinessRelationName1 = tqAddressByCompanyID.tcBusinessRelationName1
               tqRemittance.tcCompanyBusRelationCode       = tqAddressByCompanyID.tcBusinessRelationCode.
    end.
end.