Receivables Discount Setups
Receivables Discount Setups
Current State
At present Vista uses a billing extension for the purposes of generating revenue and invoices.
However, Vista also has customers for which they apply discounts. Due to the implementation of
the billing extension the standard Discount functionality is not available therefore, the coding for
the extension needs to be updated to take the discounts into account.
Approach
The billing extension will be modified to identify if a discount has been assigned on the project
per the screen shots below:
When a labor discount is identified the revenue and invoice amounts will be reduced by the
amount of the discount.
1
Standard Process in Oracle Receivables
1. Overview
Receivables lets you apply discounts to your customers when they pay for their invoices
before a certain date. Discounts are determined by the payment terms you assign to
your customers. You can also choose whether to allow discounts for partial payments
and specify how you want Receivables to calculate the discount on your invoices.
When determining the discount percent for earned discounts, Receivables uses the
invoice date, discount grace days, and the apply date of the receipt to determine the
discount percent for this payment term
Unearned Discount: Unearned discounts are discounts that you allow after the
earned discount period has passed. The default discount taken is zero if the discount is
unearned.
When determining the discount percent for unearned discounts, Receivables uses the
maximum discount allowed for this payment term. To allow unearned discounts, set
Allow Unearned Discounts to Yes in the System Options window
Entering Discounts:
2
Formulas Used to Calculate Discounts
Maximum Discount
Use the following formula to determine the maximum discount amount:
Maximum Discount = Amount Due Original * Highest Discount Percent - Discount Taken
If the receipt amount is more than the amount due remaining less the discount,
Receivables uses the following formula to determine the earned discount:
Earned Discount = Amount Due Remaining * Discount Percent
If the receipt amount is either the same or less than the amount due remaining less the
discount, Receivables uses the following formula to determine the earned discount:
Earned Discount = (Receipt Amount * Discount Percent) / 1 - Discount Percent.
3
Once you determine the discount line percent, use this as the discount percent in the
formulas above.
Define your payment terms in the Payment Terms window. Enter a discount percent,
choose whether to allow discounts on partial payments, and select a discount basis.
Define your payment terms in the Payment Terms window. Enter a discount percent,
choose whether to allow discounts on partial payments, and select a discount basis.
4
2.2 Setup System Options
Choose whether to allow partial and unearned discounts in the System Options window.
5
2.3 Define earned and unearned discount accounts
Define your earned and unearned discount accounts in the Bank Accounts window
6
3. Defaulting Discount Amounts
Receivables defaults applied receipt amounts into the receipt application windows. The
default amount applied is the remaining amount of the transaction, less any available
discount. However, if the remaining amount of the receipt is less then the balance of
the transaction, the default amount applied is the remaining amount of the receipt and
Receivables takes the discount available on the transaction.
7
Discounts are calculated based on the following setups:
Example:
A.
Create payment term: Due15th,Cut25
Billing Cycle (Cutoff-day)
-- Day of Month: 25
Payment Schedule
-- Day of Month: 15
-- Months Ahead: 1
Discount
-- Day of Month: 01
-- Months Ahead: 1
-- Percent : 10
8
B.
Create payment term: Due15th,Cut25
Billing Cycle (Cutoff-day)
-- Day of Month: 25
Payment Schedule
-- Day of Month: 15
-- Months Ahead: 1
Discount
-- Days : 10
-- Percent : 10
Example:
A.
Create payment term: Due15th
Payment Schedule
-- Day of Month: 15
-- Months Ahead: 1
Discount
-- Day of Month: 01
-- Months Ahead: 1
-- Percent : 10
9
case 2(Discount to be calculated based on Trx_date):
--------------------------------------------------------
Transaction created with
Trx_date : 24-JUN-2015
Due_date : 15-JUL-2015
Discount_date : 01-JUL-2015
B.
Create payment term: Due15th
Payment Schedule
-- Day of Month: 15
-- Months Ahead: 1
Discount
-- Days : 10
-- Percent : 10
10
Discount Rounding calculated for earned Discounts for Receipts within Oracle
Receivables.
The example below, which will explain how Discount Rounding is calculated
The reason behind the discounts being rounding to different sides in the above cases is due to
the fact that system also takes the division of the line amount by the total invoice amount and
amount due remaining into account while doing discount calculation. In the two test cases
above there is a difference in the in the interim calculations due to which the final values are
coming different.
This is how it is getting calculated in these two test cases (short names used):
Case 1:
L1: 1346.17 T1: 94.23, amt due remaining = 1440.4
l_multiplier = 1346.17/1440.4 = 934580672
disc pct = .03 , earned disc pct = 0.03 * 934580672 = .02803742016
Now earned discount uses amt due remaining in its calculation here:
earned discount = earned disc pct * amount due remaining.
so it is = .02803742016 * 1440.4 = 40.385099998464
This rounded off to 40.39 standard PL-SQL ROUND function.
11
Case 2:
L1: 5025.5 , T1: 351.79 , amt due remaining = 5377.29
l_multiplier : 5025.2/5377.29 = .9345785702
disc pct = .03 , earned disc pct = 0.03 * .9345785702 = .028037357106
Here the earned discount comes to be :
.028037357106 * 5377.29 = 150.76499999252274 which now finally Rounds to 150.76.
Hence the difference. So there may be differences due to difft l_multiplier values and its
product with amount due remaining values.
To add conclusion to above discussion, the discount calculation does not takes into account any
rounding rule defined anywhere, whether in the system options or in the currency details. The
rounding rule which is defined in the system options is for TAX rounding and has nothing to do
with discounts. So there is no such rule that discount should only round in any particular
direction- up or down or nearest. It takes final value depending upon above calculations.
ZX_LINES_DET_FACTORS.CASH_DISCOUNT
AR_RECEIVABLE_APPLICATIONS_ALL.LINE_EDISCOUNTED
AR_RECEIVABLE_APPLICATIONS_ALL.ACCTD_EARNED_DISCOUNT_TAKEN
AR_RECEIVABLE_APPLICATIONS_ALL.EARNED_DISCOUNT_TAKEN
AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_REMAINING
AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_TAKEN_EARNED
12