Skip to content

Feature - Invoice History Printing with Currency Conversion

Release Date - 11/8/18

This feature allows history invoices to be printed using currency conversion rates.This applies to any amount field, such as the unit price, extended amount, total sales, freight, misc. charges, tax amount, grand total, payment amount and balance amount, but not including the other numeric fields like quantity fields.

NOTE: This feature is not about supporting multi-currency handling. Elliott does not support this functionality at this time. This feature is about changing the invoice history to support printing of the amounts based on an exchange rate. The currency gain or lost will need to be handled manually internally outside of Elliott.

This functionality is enabled via a new flag - Global Setup -> Cop-Func -> Invoice Printing 36. Calc Hist Invoice Amt By INVCURRENCY Attrib?


The default value is N. Setting the field to Y will enable the feature. If this flag is set to “Y,” then when printing history invoice, the system will look at the current invoice’s customer to see they have an INVCURRENCY attribute record. If they do, and the needed fields have a value, then this invoice’s unit price, extended price, total amount, and all amount-related fields will be calculated by applying the currency exchange rate. 

The INVCURRENCY attribute with the following fields must be created in conjunction with setting the Global Setup flag to Y.


Reference 1: Currency Symbol (up to 3 characters) 
Amount 1: Currency Exchange Rate
Check Box 1: Divide US$ with Rate

Once the attribute is created, add the attribute to the applicable customers .In order to print the history invoice by applying the INVCURRENCY attribute, the field Reference 1 must not be blank and Amount 1 must not be zero. See the following sample screen:


During the history invoice printing, if the Global Setup flag is set to “Y,” the INVCURRENCY attribute for the customer is found, the Currency Symbol does not equal a space, and the Currency Exchange Rate is not equal to zero, then the system will perform the rate calculation for any amount field, such as the unit price, extended amount, total sales, freight, misc. charges, tax amount, grand total, payment amount and balance amount, but not the other numeric fields like quantity fields.

If the check box 1 has a value of “Y,” then it means we will calculate the printed amount by dividing the original amount in the database (in US dollars) with the exchange rate. If check box 1 has a value of “N” (which is the default), then it will multiply instead of divide.  

If using 2-decimal unit pricing, the calculation will honor that, so the calculated unit price after the exchange rate is also 2 decimal points. For example, if the original unit price is $79.82. The exchange rate for EUR is 1.1. So the EUR unit price is equal to 79.82 / 1.1 = 72.5636. But since we use 2-decimal pricing, the EUR unit price will be 72.56 EUR. Based on 72.56, the system will calculate the extended amount and the total sales amount. The following is an example of how the unit price will be printed in US format and EUR format:

    US$ format     79.82     (When printing regular invoice)

    EUR format   72.56 EUR     (When printing history invoice)

Note that the last digit is a sign digit, which we usually don’t print.

Since the 3-digit currency symbol needs to be printed on the invoice, the amount field will be shifted by 3 digits, allowing spaces for the currency symbol to print on the last 3 digits of the original space reserved for the amount field. This may cause the field on the left be encroached. 

The following is an example of the history invoice printed with currency rate conversion.

Programs Modified: NSCTLFIL.FD, NSCTLFIL.W32, NSCTLINI.CBL, NSCTLMN5.CBL, CPINVPRT.WS, CPINVPRT.PL. CPINVPRT.CBL, CPINVPRH.CBL, CPINVPRP.CBL
CLS

Feedback and Knowledge Base