CalculateAdvPTDueDate

Calculate Advanced Payment Terms Due Date

Major Business Rule

Object Name: B0000163

Parent DLL: CALLBSFN

Location: Client/Server

Language: C

Functional Description

Purpose

This function is used to calculate the Due Date and Discount Due Date of a document when advanced 

payment terms are used. If advanced payment terms are not used the function returns a flag 

(cIsAdvancedPT) that is set equal to '0'; in this case call Default Due Dates (B0400037) to get due dates from 

"regular" payment terms. If advanced payment terms are used, the function returns the same flag as above 

set equal to '1' and also returns the calculated Due Date and Discount Due Date. 


Setup Notes and Prerequisites

If advanced payment terms are not used then call the Default Due Dates (B0400037) function instead.


In the monetary parameters of this function, use foreign amounts only if currency is ON and Mode = 

'F' (i.e. document was entered in foreign mode); otherwise use domestic amounts. 


Special Logic

None.



Technical Specification


Parameters

Item DescriptionI/OReq?Notes
EV01cIsAdvancedPTOYFlag specifying if advanced PT are used. '1' means 
advanced PT are used; '0' means advanced PT are not used.

PTCszPaymentTermsCode01IYPayment terms code.

DIVJjdDateInvoiceJIYDocument date.

DGJjdDateForGLandVoucherJULIIYDocument GL date.

DSVJjdDateServiceTaxDateIYDocument service tax date.

DATE01jdTransactionDateINTransaction date.

DCPmnDiscountTakenIYForeign or domestic discount taken or available. 

MATH01mnAmountGrossIYForeign or domestic document gross amount.

DDJjdDueDateI/0YRecalculated due date.

DDNJjdDiscountDueDateI/OYRecalculated discount due date.


Related Tables

F00141Advanced Payment Terms


Related Functions

N0000192Get Installment Payment Info

X03021New Due Date Calculation


Processing

Initialize return values.

Open F00141 table.

If open table failed,

   Set error.

   Set cIsAdvancedPT = '0'.

Else,

   Move selected information to F00141 data structure fields.

   Fetch payment terms from F00141 table.

   If fetch failed,

      Set cIsAdvancedPT = '0'.

   Else,

      Set up dates to pass to X03021.

      If installments are set up,

         Call N0000192.

      Endif.

      Call X03021 to get new dates.

      Set up return values depending on results.

   Endif.

Endif.

Close table F00141.

Perform function clean up.


Data Structure

D0000163 - Calculate Adv. Pymnt. Terms Due Date

Parameter NameData ItemData TypeReq/OptI/O/Both
cIsAdvancedPTEV01charNONENONE

An option that specifies the type of processing for an event.

szPaymentTermsCode01PTCcharNONENONE

A code that specifies the terms of payment, including the percentage of discount available if the invoice is paid by the discount due date. 
Use a blank code to indicate the most frequently-used payment term. You define each type of payment term on the Payment Terms Revisions 
form. Examples of payment terms include: Blank Net 15 001      1/10 net 30 002      2/10 net 30 003      Due on the 10th day of every month 006     
Due upon receipt  This code prints on customer invoices.

jdDateInvoiceJDIVJJDEDATENONENONE

The date that either you or the system assigns to an invoice or voucher. This can be either the date of the supplier's invoice to you or the 
date of your invoice to the customer.

jdDateForGLandVoucherJULIADGJJDEDATENONENONE

A date that identifies the financial period to which the transaction will be posted. You define financial periods for a date pattern code that you 
assign to the company record. The system compares the date that you enter on the transaction to the fiscal date pattern assigned to the 
company to retrieve the appropriate fiscal period number, as well as to perform date validations.

jdDateServiceTaxDateDSVJJDEDATENONENONE

A date that indicates when you purchased goods or services, or when you incurred a tax liability. 

mnDiscountTakenDCPMATH_NUMERICNONENONE

The percent of the total invoice or voucher that you will discount if it is paid within the discount period. You enter the discount percent as a 
decimal, for example, a 2 percent discount is .02.

jdTransactionDateDATE01JDEDATENONENONE

Event point for JDE Date.

mnAmountGrossMATH01MATH_NUMERICNONENONE

- - - Good Performance Low Value. 

jdDateDueJulianDDJJDEDATEOPTNONE

In Accounts Receivable, the date that the net payment is due. In Accounts Payable, the date that the payment is due to receive a discount 
or, if no discount is offered, the net due date. The system calculates the due date based on the payment term entered, or you can enter it 
manually. If you enter a negative voucher or invoice (debit or credit memo), the system might use the G/L date as the due date regardless of the 
payment term entered. A processing option in the master business function (P0400047 for vouchers and P03B0011 for invoices) controls how 
the system calculates the due date for debit and credit memos.

jdDateDiscountDueJulianDDNJJDEDATEOPTNONE

In the Accounts Receivable system, the date that the invoice must be paid to receive the discount. The system calculates the discount due 
date based on the payment term. If the payment term does not specify a discount, the system completes this field with the net due date. In the 
Accounts Payable system, the date that the voucher is due.

cDebitCreditMemoDueDateEV01charOPTNONE

An option that specifies the type of processing for an event.

Related Functions

X03021 New Due Date Calculation

Related Tables

F00141 Advanced Payment Terms
F00142 Due Date Rules