project QadFinancials > class BPaymentCondition > method CalculateDueDiscountDate


Parameters


iiPaymentConditionIDinputinteger
icPaymentConditionCodeinputcharacter
itInvoiceDateinputdate
otDueDateoutputdate
otDiscountDateoutputdate
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankEntry.AdditionalUpdatesInvDeductions
method BBankEntry.AdditionalUpdatesInvPrePayments
method BCInvoice.ApiStdMaintainTTWithIntPostDates
method BCInvoiceAPMatching.CreateCInvoice
method BOpenBalance.GetInvoiceDateChanges
method BOpenBalance.GetPaymentConditionCodeChanges
method BDInvoice.ApiStdMaintainTTWithIntPostDates
method BDInvoice.AutoPopulateInvoiceStage
method BDInvoice.DefaultValuesDueDates
method BDInvoiceJournalEntry.CalculateInvoiceDueDates
method BExpenseNote.CalcDueDate
method BPaymentCondition.CalculateDiscountPercentage
method BPaymentCondition.GetDeductPrepayCreditTermDuedate
method TConvertInstalNETXML.SetOutputData


program code (program3/bpaymentcondition.p)

/* Get PaymentCondition record by paymentcondition id or paymentconditioncode */
if iiPaymentConditionID <> ? and
   iiPaymentConditionID <> 0
then do:
    <Q-6 run PaymentConditionByIdCode (all) (Read) (NoCache)
       (input iiPaymentConditionID, (PaymentConditionId)
        input ?, (PaymentConditionCode)
        output dataset tqPaymentConditionByIdCode) in BPaymentCondition >
end.
else do:
    <Q-7 run PaymentConditionByIdCode (all) (Read) (NoCache)
       (input ?, (PaymentConditionId)
        input icPaymentConditionCode, (PaymentConditionCode)
        output dataset tqPaymentConditionByIdCode) in BPaymentCondition >
end.

find first tqPaymentConditionByIdCode
           no-error.

if not available tqPaymentConditionByIdCode
then do:
    <M-5 run SetMessage
       (input  trim(#T-3'The credit terms do not exist.':40(57419)t-3#) (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-5884':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>

    assign otDueDate      = 12/31/9999
           otDiscountDate = 12/31/9999
           oiReturnStatus = -1.

    return.
end.

<M-8 run CalculateDueDiscountDateNoRead
   (input  tqPaymentConditionByIdCode.tcPaymentConditionPeriodType (icPaymentConditionPeriodType), 
    input  tqPaymentConditionByIdCode.ttPaymentConditionBaseDate (itPaymentConditionBaseDate), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionDaysMonths (iiPaymentConditionDaysMonths), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionSupplDays (iiPaymentConditionSupplDays), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionBaseDays (iiPaymentConditionBaseDays), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionDueDays (iiPaymentConditionDueDays), 
    input  itInvoiceDate (itInvoiceDate), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionDayMthDisc (iiPaymentConditionDayMthDisc), 
    input  tqPaymentConditionByIdCode.tiPaymentConditionSupDayDisc (iiPaymentConditionSupDayDisc), 
    input  tqPaymentConditionByIdCode.tcPaymentConditionPdDiscType (icPaymentConditionpDiscType), 
    output otDueDate (otDueDate), 
    output otDiscountDate (otDiscountDate), 
    output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>