project QadFinancials > class BPaymentCondition > method GetDeductPrepayCreditTerm

Description

if the invoice type is deduction or prepayment, get the new credit term, invoice due date, invoice discount due date.


Parameters


icInvoiceTypeinputcharacterPrepayment or Deduction
ocPaymentConditionCodeoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankEntry.AdditionalUpdatesInvDeductions
method BBankEntry.AdditionalUpdatesInvPrePayments
method BOpenItemAdjustment.OIAdjCommitSubCInvoice
method BOpenItemAdjustment.OIAdjCommitSubDInvoice
method BPaymentCondition.GetDeductPrepayCreditTermDuedate


program code (program1/bpaymentcondition.p)

assign oiReturnStatus = -98
       ocPaymentConditionCode = '':U.

if icInvoiceType = {&INVOICETYPE-PREPAYMENT} or icInvoiceType = {&INVOICETYPE-DEDUCTION} then
do:
    <Q-26 run DomainCreditTermByDomain (all) (Read) (NoCache)
       (input viDomainID, (Domain_ID)
        output dataset tqDomainCreditTermByDomain) in BDomainProperty>
    find first tqDomainCreditTermByDomain no-error.

    if icInvoiceType = {&INVOICETYPE-PREPAYMENT} then
    do:
        if not available tqDomainCreditTermByDomain or tqDomainCreditTermByDomain.tcPrePaymentConditionCode = '':U 
            or tqDomainCreditTermByDomain.tcPrePaymentConditionCode = ? then
        do:
            assign oiReturnStatus = 0.
            return.
        end.
        if tqDomainCreditTermByDomain.tlPrePaymentConditionIsActive = false then
        do:
            assign oiReturnStatus = 0.
            return. 
        end.        
        assign ocPaymentConditionCode = tqDomainCreditTermByDomain.tcPrePaymentConditionCode.
    end.
    
    if icInvoiceType = {&INVOICETYPE-DEDUCTION}  then
    do:
        if not available tqDomainCreditTermByDomain or tqDomainCreditTermByDomain.tcDeductPaymentConditionCode = '':U 
            or tqDomainCreditTermByDomain.tcDeductPaymentConditionCode = ? then
        do:
            assign vcErrorType = 'E':U
                   vcMessage = trim(#T-85'Please set the Credit Terms Deduction in the domain setting.':100(916627142)T-85#).
            <M-48 run SetMessage
               (input  vcMessage (icMessage), 
                input  ? (icArguments), 
                input  '':U (icFieldName), 
                input  '':U (icFieldValue), 
                input  vcErrorType (icType), 
                input  3 (iiSeverity), 
                input  ? (icRowid), 
                input  'qadfin-943020':U (icFcMsgNumber), 
                input  ? (icFcExplanation), 
                input  ? (icFcIdentification), 
                input  ? (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BOpenBalance>
            return.
        end.
        if tqDomainCreditTermByDomain.tlDeductPaymentConditionIsActive = false then
        do:
           assign vcErrorType = 'E':U
                  vcMessage = trim(substitute(#T-74'the Credit Terms Deduction &1 is not active.':255(244353464)T-74#, tqDomainCreditTermByDomain.tcDeductPaymentConditionCode)).
           <M-5 run SetMessage
                (input  vcMessage (icMessage), 
                 input  ? (icArguments), 
                 input  ? (icFieldName), 
                 input  ? (icFieldValue), 
                 input  vcErrorType (icType), 
                 input  3 (iiSeverity), 
                 input  ? (icRowid), 
                 input  'qadfin-636837':U (icFcMsgNumber), 
                 input  ? (icFcExplanation), 
                 input  ? (icFcIdentification), 
                 input  ? (icFcContext), 
                 output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
           return.
        end.
        ocPaymentConditionCode = tqDomainCreditTermByDomain.tcDeductPaymentConditionCode.
        
    end.
end.

assign oiReturnStatus = 0.