Discounts ,discount grace periods in oracle apps r12 ,account receivable Setup Payment Terms

  

Discounts:

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.


 

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.

Earned Discount: An earned discount is a discount you give to a customer who pays on or before the discount date or within the discount grace period. For example, a customer may earn a 2% discount on the original invoice if payment is received within 10 days. The earned discount period is determined by the invoice date, apply date of the receipt and any discount grace days.

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 percentage 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:



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

Earned Discounts and Partial Payments Allowed

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.

 

Unearned Discounts with Partial Payment Discounts Allowed
Receivables use the following formula to determine unearned discounts if partial payments are allowed:
Unearned Discount = Maximum Discount - Earned Discount

Earned Discounts with Partial Payment Discounts Not Allowed
If the Allow Discount on The partial Payments check box for your payment terms is not checked, Receivables only takes discounts if the receipt amount closes the installment
Receivables use the following formula to determine earned discounts if partial payment discounts are not allowed:
Earned Discount = Amount Due Original * Discount Percent

Unearned Discounts and Partial Payments Not Allowed
If the Allow Discount on Partial Payments check box for your payment terms is not checked, Receivables only takes discounts if the receipt amount closes the installment.
Receivables use the following formula to determine unearned discounts if partial payments are not allowed:
Unearned Discount = Amount Due Original * Maximum Discount Percent - Earned Discount

Discount on Lines Only
If the Discount Basis option for your payment term is set to Lines Only, Receivables does not take discounts on receipt amounts applied to tax, freight, or late charges and uses the following formula to determine the discount amount:
Line Percent = Discount Percent * (Sum of Lines + Sum of Line Adjustments - Sum of
Line Credits / Amount Due Original + Sum of Adjustments - Sum of Credits)
Once you determine the discount line percent, use this as the discount percent in the formulas above.

2. Setup for Discounts

2.1. Setup Payment Terms

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.

Responsibility: Receivables Manager
Navigation: Setup > Transactions > Payment Terms

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.

Click the Discounts push button


2.2 Setup System Options

Choose whether to allow partial and unearned discounts in the System Options window.

Responsibility:
 Receivables Manager
Navigation: Setup > System > System Options > Miscellaneous tab


In Vision demo instance:

 


 

2.3 Define earned and unearned discount accounts

Define your earned and unearned discount accounts in the Bank Accounts window

Responsibility:
 Receivables Manager
Navigation: Setup > Receipts >Receipt Classes > Query the class
Choose the Receipt Method >  
Click Bank Accounts to navigate to Remittance Bank Accounts window
In the GL Accounts tab
Earned and Unearned discounts are the receivable activities that need to be selected here

2.4 Setup Customer to allow discounts

Choose whether to allow discounts and assign discount grace days to your customers in the Customer Profile Classes window or the Profile: Transaction tabbed region of the Customers window.
The values you define in the Customers window take precedence over those in the Customer Profile Classes window.

Responsibility: Receivables Manager
Navigation: Customer > Profile Classes

3. Defaulting Discount Amounts

When entering receipts manually, Receivables determines whether discounts are allowed based on the payment terms, discount grace days, system options, transaction date, and receipt apply date. If discounts are allowed, Receivables determines the amount of earned and unearned discounts and displays this information in the Discount field.

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.


 

Discounts are calculated based on the following setups:

1. Payment Term with Billing Cycle Assigned.
2. Payment Term without a Billing Cycle.

Discount Date calculation:
Code Used: AR_TRX_DISCOUNTS_V

1. Payment Term with Billing Cycle Assigned.

The discount date is calculated based on the Billing Date.
This is true whether the customer/customer site/transaction is enabled for Balance Forward Billing or not.

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

case 1(Discount to be calculated based on billing date):

    Transaction created with 
          Trx_date         : 26-JUN-2015
          Billing_date     : 25-JUL-2015
          Due_date        : 15-AUG-2015  
          Discount_date  : 01-AUG-2015 

case 2(Discount to be calculated based on billing date):

    Transaction created with 
        Trx_date    : 24-JUN-2015
          Billing_date    : 25-JUN-2015
          Due_date       : 15-JUL-2015  
          Discount_date : 01-JUL-2015 

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


    Transaction created with 
        Trx_date    : 26-JUN-2015
          Billing_date    : 25-JUL-2015
          Due_date    : 15-AUG-2015  
          Discount_date    : 04-AUG-2015 

2. Payment Term without Billing Cycle

The discount date is calculated based on the Transaction Date.


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

case 1(Discount to be calculated based on Trx_date):
     Transaction created with 
          Trx_date         : 26-JUN-2015
          Due_date        : 15-JUL-2015  
          Discount_date  : 01-JUL-2015 



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


    Transaction created with 
          Trx_date       : 26-JUN-2015
          Due_date      : 15-JUL-2015  
          Discount_date: 04-JUL-2015 

 

 


 

Discount Rounding calculated for earned Discounts for Receipts within Oracle Receivables.

The example below, which will explain how Discount Rounding is calculated

Following are the terms:

1. Payment Terms/Discount on line -3% (days 30)
2. Tax rounding in system options -nearest/precision 2
3. Customer discount at site level-Allow discount (checked), grace days 0.
4. Tax inclusive rate 7 %
.
Casse1:
1.Create a transaction of line 1346.17, tax calculates to 94.23
2.Create a receipt of 1400.01
3.Apply receipt to invoice.
4. Before saving, the discount amount is 40.39 (40.385) -Rounded Up-
.
Case 2:
1.Create a transaction of line 5025.5, tax calculates to 351.79
2.Create a receipt of 5377.29
3.Apply receipt to invoice.
4. Before saving, the discount amount is 150.76 (150.765). -Rounded Down-


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.

 

 


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.

 

The following table’s stores discount amount information:

Similar to AP in AR the AR_PAYMENT_SCHEDULES_ALL table captures the discount details

 

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

SQl queries related to purchase order po in oracle apps r12 ;Debugging where po is struck in oracle apps r12 po flow

Define Bank: in oracle apps r12 ;Define Bank;Define Grants and Roles;Setups for Defining the Banks;Define Branch;Define Bank Account;Add Operating unit to your bank;Defining Internal Bank Accounts;Defining Customer Bank Accounts


Define Bank:

You can define a bank or a clearinghouse. Define Banks to record internal banks, where you are the account holder of a receipt and/or disbursement account. If you use Payables, you can define external
banks where your suppliers are the account holders. Also, if you use Oracle Receivables, define banks to record external banks where your customers are the account holders of disbursement accounts. Define
Clearing Houses to record banks that process a magnetic tape of your receipt information, which you send to them. These clearing institutions then create tapes of your customer receipt information, which they forward to each of your remittance banks.

Setups for Defining the Banks

1.Define Grants and Roles:

Navigation: User Management --> Role & Role Inheritance.

Select the User Management Responsibility.

Click on Roles & Role Inheritance.




Enter Type, Category and Name of the payable responsibility name and click on GO.


Click on Update.

Click on Security Wizards.

Click on Save and Proceed.

Click on CE UMX Security Wizard.


Click on Add Legal Entities.



Select Bank Account Grants Use, Maintenance, Bank Account Transfers, and then click on Apply.

Click on Apply.

2. Define Bank.

Navigation: Payable Manager --> Setup --> Payments --> Bank and Branches.

Click on Bank tab.

Click on Create.


Enter the Country and Bank Name and then click on Save and Next button.


If you want enter the bank address then enter required the information.


Click on Save and Next.

If you want enter the contacts details of the bank then enter the information.

Click on Finish

Define Branch:

Click on Create Branch.



Click on Continue.



Enter Branch Name Branch Type and then click on save and next button.


Enter the branch address details and then click on save and next button.


Enter the branch contact details and then click on Finish  .


Define Bank Account:

Click on Create Bank Account.


Click on Continue.



Select the Legal entity and Enable modules, which we want to use this bank account.

Click on Next.



Enter the Bank account Name, Number and currency and then click on save and next.





Enter the cash and cash clearing accounts and then click on save and next button.



Add Operating unit to your bank

Click on Add Organization Access.



Enable Account use for Payable, Receivables, Organization Name, and then click on Continue.



Click on Apply.

Click on Finish.



Defining Internal Bank Accounts:

You define internal bank accounts to define bank accounts for which you are the account holder. Oracle Receivables uses internal bank accounts to receive payments from customers. Oracle Payables uses
internal bank accounts to disburse funds to suppliers.
Prerequisite

§  You have installed Oracle Receivables.
§  Define custom payment formats for Payables payment documents

To define a basic bank account for receipts:
1. In the Banks window query an existing Bank.
2. Choose the Bank Accounts button. Enter the Bank Account Name and Bank Account Number. Optionally enter an Account Type and Description.
3. If you want to use Bank Account validation, enter Check Digits.
4. Select Internal Account Use.
5. In the GL Accounts region, enter a Cash Account.
6. In the Receivables Options region, enter GL Account information for Remitted Receipts, Factored Receipts, and Short Term Debt.
7. In the More Receivables Options region, optionally enter Receipt and Discount GL Account information. 
8. Optionally enter the contact information in the Contact region.
9. Save your work.
Prerequisite
§  You have installed Payables
To define a basic bank account for disbursements:
1. In the Banks window query an existing Bank.
2. Choose Bank Accounts. Enter the Bank Account Name and Bank Account Number. If you will use this bank for payments you make with the EDI Gateway, enter an Account Type. Optionally enter a Description. The currency defaults from your functional currency. If you want to use Bank Account validation, enter Check Digits.
3. Select Internal Account Use.
4. In the GL Accounts region, enter a Cash Account.
5. In the Payables Options region, enter default information for your payment batches. Record whether you allow zero–amount payments and whether this is a pooled account.
6. Optionally enter the contact information in the Account Contacts region.
7. Proceed with Defining and Maintaining Payables Payment

Defining Customer Bank Accounts
If you use Oracle Receivables, you can enter bank account information for your customers. Receivables use this information when you receive electronic payments from your customers.
To define a customer bank account:
1. In the Banks window query an existing Bank.
2. Choose the Bank Accounts button. Enter the Bank Account Name and Bank Account Number. Optionally enter an Account Type and Description.
3. Select Customer Account Use.
4. Optionally enter the contact information in the Contact region.
5. Save your work.
Defining Supplier Bank Accounts
You can enter information for bank accounts for which your supplier is the account holder. You then assign these accounts to the supplier and its sites. Payables use this bank information when you create electronic payments for your suppliers.
Prerequisite
§   Define the suppliers and supplier sites that use the bank account to receive electronic payments.
To define a supplier bank account:
1. In the Banks window query an existing Bank.
2. Choose the Bank Accounts button. Enter the Bank Account Name and Bank Account Number. Enter the EDI ID number. Optionally enter an Account Type and Description. Optionally change the account currency, which defaults from your functional currency. If you want to use Bank Account validation, enter Check Digits.
3. Select Supplier as the Account Use.
4. In the Supplier Assignments region list the supplier, and optionally list supplier sites, that use the account to receive electronic payments.
5. Optionally enter account holder information in the Account Holder region. Optionally enter the contact information in the Account Contacts region.
6. Save your work.
7. In the Bank Accounts region of the Suppliers and Supplier Sites windows, verify for each supplier and site that all appropriate bank accounts are listed. For suppliers and supplier sites with multiple bank accounts, designate as the primary bank account one bank account per period and per currency.
Defining Multiple Currency Bank Accounts
If you define a multiple currency bank account, you should use manual payment reconciliation with it. Payables stores the payment currency you enter when you initiate a Payment Batch, enter a manual payment,
or create a Quick payment. The bank file details you receive from a bank will contain the bank account currency. Since the payment and bank, account currencies could differ when you use multiple currencies
bank account, automatic reconciliation could result in numerous exceptions.
If you define a multiple currency bank account for payments, the currency of the bank account must be the same as your functional currency.
Prerequisites 
§  Enable the Use Multiple Currencies Payables option.
§  Enable the currencies you need in the Currencies window.
To define a multiple currency bank account:
1. Define a basic bank account for receipts or disbursements.  
• If you are defining a bank account for receipts, in the Receivables
Options region, enable the Multiple Currency Receipts option.
• If you are defining a bank account for disbursements, in the
Payables Options region, enable the Multiple Currency Payments
option and enter Realized Gain and Realized Loss accounts.
Payables Setup 2 – 123
Proceed with Defining and Maintaining Payables Payment
Documents: page 2 – 124. You can define payment documents
that use a payment format with any currency.
2. Save your work.
Defining Foreign Currency Bank Accounts
Prerequisites
q Enable the Use Multiple Currencies Payables option.
q Enable the currencies you need in the Currencies window. See:
Currencies Window (Oracle Applications System Administrator’s
Guide).
To define a foreign currency bank account:
1. Define a basic bank account for receipts or disbursements. 
• If you are defining a bank account for disbursements, in the Payables Options region, enter Realized Gain and Realized Loss of Accounts.
2. Save your work.