project QadFinancials > class BDDocument > method AdditionalUpdatesPostingPrePaymentPayCond


Parameters


icDebtorCodeinputcharacter
ocPaymentConditionCodeoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDDocument.AdditionalUpdatesPostingPrePayment


program code (program5/bddocument.p)

/* ================================================================= */
/* Get default payment condition from the Customer definition        */
/* ================================================================= */
<Q-96 run DebtorForDIDefault (all) (Read) (NoCache)
   (input viCompanyId, (CompanyId)
    input icDebtorCode, (DebtorCode)
    output dataset tqDebtorForDIDefault) in BDebtor>
find first tqDebtorForDIDefault where
           tqDebtorForDIDefault.tcDebtorCode = icDebtorCode no-error.
if not available tqDebtorForDIDefault
then do:
    assign vcMessage = #T-20'Cannot find customer definition based for customer &1.':255(297464269)T-20#
           vcMessage = substitute(vcMessage, icDebtorCode).
    <M-57 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  'tDebtor.DebtorCode':U (icFieldName), 
        input  icDebtorCode (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'qadfin-355779':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BDDocument>
    assign oiReturnStatus = -1.
    return.
end.

assign ocPaymentConditionCode = tqDebtorForDIDefault.tcPaymentConditionCode.

/* ===================================================================================== */
/* If the payment condition is Staged, then try to find another payment condition which: */
/* - has no stages                                                                       */
/* - has no discount                                                                     */
/* ===================================================================================== */
if tqDebtorForDIDefault.tcPaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED}
then do:
    <Q-56 run PaymentConditionByProperties (first) (Read) (NoCache)
       (input ?, (PaymentCondition_ID)
        input ?, (PaymentConditionCode)
        input true, (PaymentConditionIsActive)
        input {&PAYMENTCONDITIONPAYMENTTYPE-NORMAL}, (PaymentConditionPaymentType)
        input ?, (PaymentConditionPdDiscType)
        input 0, (PaymentConditionPercentage)
        output dataset tqPaymentConditionByProperties) in BPaymentCondition>
    find first tqPaymentConditionByProperties no-error.
    if available tqPaymentConditionByProperties
    then assign ocPaymentConditionCode = tqPaymentConditionByProperties.tcPaymentConditionCode.
end.