DBA Data[Home] [Help]

APPS.ARP_CALCULATE_DISCOUNT SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 58

    p_select_flag     IN BOOLEAN,
    p_ps_rec IN OUT NOCOPY ar_payment_schedules%ROWTYPE );
Line: 86

 |                      p_select_flag - Select Flag                          |
 |                      p_mode  - Mode                                       |
 |                                                                           |
 |              IN OUT:                                                      |
 |                      p_disc_rec - Discount Record                         |
 |			p_ps_rec - Payment Schedule Record                   |
 |									     |
 |              OUT:                                                         |
 | 								             |
 | 									     |
 | RETURNS    : NONE                                                         |
 |                                                                           |
 |                                                                           |
 | NOTES                                                                     |
 |                                                                           |
 | MODIFICATION HISTORY - Created by Shiv Ragunat - 05/24/95                 |
 |  26-Feb-1998    Debbie Jancis     Added cash_receipt_id to arguments as   |
 |                                   per cpg bug 627518.                     |
 |  10-APR-2000    skoukunt          Fix bug 1164810, default amount applied |
 |                                   when the profile AR: Cash Default Amount|
 |                                   Applied OPTION set to Remaining Amount  |
 |                                   of the Invoice                          |
 |  04/25/02   S.Nambiar             Bug 2334691 - If the discount on partial
 |                                   payment flag is 'Y' in system option, then
 |                                   check the partial payment flag on payment
 |                                   term,and take the flag from payment term. But
 |                                   if the flag is 'N' in system option, then
 |                                   no matter what payment term flag says,partial
 |                                   discounts should not be allowed.        |
 |                                   corrected the issue caused by 2144705   |
 |                                                                           |
 +===========================================================================*/
--
/*FP bug 5335376 for 5223829 introduced new parameters*/
PROCEDURE calculate_discounts (
        p_input_amt         IN NUMBER,
        p_grace_days         IN NUMBER,
        p_apply_date         IN DATE,
        p_disc_partial_pmt_flag IN VARCHAR2,
        p_calc_disc_on_lines IN VARCHAR2,
        p_earned_both_flag IN VARCHAR2,
        p_use_max_cash_flag IN VARCHAR2,
        p_default_amt_app IN VARCHAR2,
        p_earned_disc_pct IN OUT NOCOPY NUMBER,
        p_best_disc_pct IN OUT NOCOPY NUMBER,
        p_out_earned_disc IN OUT NOCOPY NUMBER,
        p_out_unearned_disc IN OUT NOCOPY NUMBER,
        p_out_discount_date IN OUT NOCOPY DATE,
        p_out_amt_to_apply IN OUT NOCOPY NUMBER,
        p_close_invoice_flag IN VARCHAR2,
        p_payment_schedule_id IN ar_payment_schedules.payment_schedule_id%TYPE,
        p_term_id IN ar_payment_schedules.term_id%TYPE,
        p_terms_sequence_number IN ar_payment_schedules.terms_sequence_number%TYPE,
        p_trx_date IN ar_payment_schedules.trx_date%TYPE,
        p_amt_due_original IN ar_payment_schedules.amount_due_original%TYPE,
        p_amt_due_remaining IN ar_payment_schedules.amount_due_remaining%TYPE,
        p_disc_earned IN ar_payment_schedules.discount_taken_earned%TYPE,
        p_disc_unearned IN ar_payment_schedules.discount_taken_unearned%TYPE,
        p_lines_original IN ar_payment_schedules.amount_line_items_original%TYPE,
        p_invoice_currency_code IN ar_payment_schedules.invoice_currency_code%TYPE,
	p_select_flag     IN VARCHAR2,
        p_mode IN NUMBER,
        p_error_code IN OUT NOCOPY NUMBER,
        p_cash_receipt_id IN NUMBER,
        p_called_from IN VARCHAR2,
        p_amt_in_dispute IN ar_payment_schedules.amount_in_dispute%TYPE) IS
--
    l_ps_rec         ar_payment_schedules%ROWTYPE;
Line: 155

    l_select_flag                     BOOLEAN;
Line: 244

    IF (p_select_flag = 'Y')
    THEN
        IF PG_DEBUG in ('Y', 'C') THEN
           arp_standard.debug(   'l_select_flag: TRUE' );
Line: 249

        l_select_flag := TRUE;
Line: 253

           arp_standard.debug(   'l_select_flag: FALSE' );
Line: 255

        l_select_flag := FALSE;
Line: 258

    check_input( l_disc_rec, l_select_flag, l_ps_rec) ;
Line: 348

    SELECT DECODE( fc.minimum_accountable_unit,
                   NULL, ROUND( p_out_earned_disc, fc.precision ),
                   ROUND( p_out_earned_disc/fc.minimum_accountable_unit ) *
                        ( fc.minimum_accountable_unit )
                 ),
           DECODE( fc.minimum_accountable_unit,
                   NULL, ROUND( p_out_unearned_disc, fc.precision ),
                   ROUND( p_out_unearned_disc/fc.minimum_accountable_unit ) *
                        ( fc.minimum_accountable_unit )
                 ),
           DECODE( fc.minimum_accountable_unit,
                   NULL, ROUND( p_out_amt_to_apply, fc.precision ),
                   ROUND( p_out_amt_to_apply/fc.minimum_accountable_unit ) *
                        ( fc.minimum_accountable_unit )
                 )
    INTO p_out_earned_disc,
         p_out_unearned_disc,
         p_out_amt_to_apply
    FROM fnd_currencies fc
    WHERE fc.currency_code = l_ps_rec.invoice_currency_code;
Line: 400

                SELECT arp_standard.sysparm.partial_discount_flag
		INTO l_sys_disc_partial_pay_flag
		FROM dual;
Line: 426

                 SELECT DECODE( fc.minimum_accountable_unit,
                        NULL, ROUND( ((p_out_earned_disc/(l_ps_rec.amount_due_remaining-p_out_earned_disc))
                                                                        *p_input_amt), fc.precision ),
                          ROUND( ((p_out_earned_disc/(l_ps_rec.amount_due_remaining-p_out_earned_disc))
                                                                         *p_input_amt)
                                   /fc.minimum_accountable_unit ) *
                               ( fc.minimum_accountable_unit )
                            )
                 INTO p_out_earned_disc
                 FROM fnd_currencies fc
                 WHERE fc.currency_code = l_ps_rec.invoice_currency_code;
Line: 540

 |				P_SELECT_FLAG.
 +===========================================================================*/
PROCEDURE get_discount_percentages(
    p_disc_rec  	IN OUT NOCOPY arp_calculate_discount.discount_record_type,
    p_ps_rec    	IN OUT NOCOPY ar_payment_schedules%ROWTYPE
     ) IS
BEGIN
    IF PG_DEBUG in ('Y', 'C') THEN
       arp_standard.debug(   'arp_calculate_discount.'||
		'get_discount_percentages()+' );
Line: 585

 |    Select Payment Schedule info and populate payment schedule record and  |
 |    two discount record values (calc_disc_on_lines and discount_  |
 |    partial_payment_flag.                                                  |
 | 									     |
 |								             |
 | SCOPE - PRIVATE                                                           |
 |                                                                           |
 | EXTERNAL  PROCEDURES/FUNCTIONS ACCESSED - NONE                            |
 |                                                                           |
 | ARGUMENTS  : IN:                                                          |
 |                                                                           |
 |              IN OUT:                                                      |
 |                      p_disc_rec - Discount Record                  |
 |                      p_ps_rec - Payment Schedule Record  |
 |									     |
 |		OUT:							     |
 |                                                                           |
 | RETURNS    : NONE                                                         |
 |                                                                           |
 |                                                                           |
 | NOTES                                                                     |
 |                                                                           |
 | MODIFICATION HISTORY - Created by Shiv Ragunat - 05/24/95                 |
 |                                                                           |
 +===========================================================================*/
PROCEDURE get_payment_schedule_info(
    p_disc_rec IN OUT NOCOPY arp_calculate_discount.discount_record_type,
    p_ps_rec IN OUT NOCOPY ar_payment_schedules%ROWTYPE
     ) IS
l_payment_schedule_id NUMBER;
Line: 625

         SELECT ps.term_id,
                ps.terms_sequence_number,
                ps.trx_date,
                ps.amount_due_original,
                ps.amount_due_remaining,
                NVL(ps.discount_taken_earned, 0),
                NVL(ps.discount_taken_unearned, 0),
                NVL(ps.amount_line_items_original, 0),
                ps.invoice_currency_code,
                ps.amount_in_dispute, /*FP Bug 5335376 for Bug 5223829 assign value of dispute*/
                t.calc_discount_on_lines_flag,
                t.partial_discount_flag
         INTO   p_ps_rec.term_id,
                p_ps_rec.terms_sequence_number,
                p_ps_rec.trx_date,
                p_ps_rec.amount_due_original,
                p_ps_rec.amount_due_remaining,
                p_ps_rec.discount_taken_earned,
                p_ps_rec.discount_taken_unearned,
                p_ps_rec.amount_line_items_original,
                p_ps_rec.invoice_currency_code,
                p_ps_rec.amount_in_dispute,/*FP 5335376 for Bug 5223829 assign value of dispute*/
                p_disc_rec.calc_disc_on_lines,
                p_disc_rec.disc_partial_pmt_flag
         FROM   ar_payment_schedules ps, ra_terms t
         WHERE  ps.payment_schedule_id = l_payment_schedule_id
           AND  ps.term_id = t.term_id(+);
Line: 716

 |					NVL(,0) instead into SELECT.
 +===========================================================================*/
PROCEDURE get_best_discount_percentage(
    p_disc_rec 	IN OUT NOCOPY discount_record_type,
    p_ps_rec 	IN ar_payment_schedules%ROWTYPE
     ) IS
BEGIN
    IF PG_DEBUG in ('Y', 'C') THEN
       arp_standard.debug(   'arp_calculate_discount.'||
		'get_best_discount_percentage()+' );
Line: 731

    SELECT NVL(MAX(discount_percent),0) * 0.01
    INTO   p_disc_rec.best_disc_pct
    FROM   RA_TERMS_LINES_DISCOUNTS tld
    WHERE
	tld.term_id 		= p_ps_rec.term_id
    AND tld.sequence_num 	= p_ps_rec.terms_sequence_number;
Line: 804

	SELECT
		td.discount_percent
	,	td.discount_date
	FROM	ar_trx_discounts_v	td
	WHERE
		td.payment_schedule_id	= p_ps_rec.payment_schedule_id
	AND	p_calculated_date <= td.discount_date
	ORDER BY
	td.discount_date	ASC;
Line: 933

        SELECT nvl(sum(line_adjusted),0), sum(amount), nvl(sum(tax_adjusted),0)
               INTO l_line_adjusted, l_amount_adjusted, l_tax_line_adjusted
               FROM AR_ADJUSTMENTS
              WHERE payment_schedule_id = p_ps_rec.payment_schedule_id
                AND status = 'A';
Line: 949

        SELECT nvl(sum(line_applied),0), sum(amount_applied),
	       nvl(sum(tax_applied),0)
               INTO l_line_applied, l_amount_applied, l_tax_line_applied
               FROM AR_RECEIVABLE_APPLICATIONS
               WHERE application_type = 'CM'
               AND applied_payment_schedule_id = p_ps_rec.payment_schedule_id
               AND status = 'APP'
               AND application_rule in ('65','66','67');
Line: 1002

	  SELECT nvl(sum(
                 DECODE(rctl.line_type, 'LINE', rctl.extended_amount,
                          DECODE(p_disc_rec.calc_disc_on_lines, 'F',
                                    rctl.extended_amount, 0))),0)
	  INTO   l_numerator
          FROM
             ra_customer_trx_lines rctl,
             ar_payment_schedules ps
          WHERE
                rctl.line_type IN ('LINE','TAX')
          AND   nvl(rctl.inventory_item_id,-1) <> l_inventory_item_id
          AND   nvl(rctl.link_to_cust_trx_line_id,-1)
          NOT IN (
                SELECT  rctl2.customer_trx_line_id
                FROM
                        ra_customer_trx_lines  rctl2,
                        ar_payment_schedules  ps2
                WHERE
                        nvl(rctl2.inventory_item_id,-1) = l_inventory_item_id
                AND     rctl2.customer_trx_id = ps2.customer_trx_id
                AND     ps2.payment_schedule_id = p_ps_rec.payment_schedule_id
                )
          AND   rctl.customer_trx_id = ps.customer_trx_id
          AND   ps.payment_schedule_id = p_ps_rec.payment_schedule_id;
Line: 1055

    	SELECT nvl(tax_original,0)
	INTO   l_tax_original
	FROM   ar_payment_schedules
	WHERE  payment_schedule_id = p_ps_rec.payment_schedule_id;
Line: 1063

         SELECT nvl(freight_original,0)
         INTO   l_freight_original
         FROM   ar_payment_schedules
         WHERE  payment_schedule_id = p_ps_rec.payment_schedule_id;
Line: 1267

           arp_standard.debug(  'Selecting from database ' );
Line: 1270

              SELECT sum(amount)
              INTO l_amount_adjusted
              FROM AR_ADJUSTMENTS
              WHERE payment_schedule_id = p_ps_rec.payment_schedule_id
              AND status = 'A';
Line: 1285

            SELECT sum(amount_applied)
            INTO l_amount_applied
            FROM AR_RECEIVABLE_APPLICATIONS
            WHERE application_type = 'CM'
            AND applied_payment_schedule_id = p_ps_rec.payment_schedule_id
            AND status = 'APP'
            AND application_rule in ('65','66','67');
Line: 1477

    SELECT arp_standard.sysparm.partial_discount_flag
    INTO l_sys_disc_partial_pay_flag
    FROM dual;
Line: 1517

                select  nvl(sum(amount_applied),0),
                        nvl(sum(earned_discount_taken),0),
                        nvl(sum(unearned_discount_taken),0)
                into    l_amount_applied_to, l_earned_discount_taken,
                        l_unearned_discount_taken
                from    ar_receivable_applications
                where   applied_payment_schedule_id =
                                        p_ps_rec.payment_schedule_id
                and     application_type = 'CASH'
                and     status = 'APP';
Line: 2026

 |    the select flag is checked and if not valid then error is returned.    |
 |                                                                           |
 | SCOPE - PRIVATE                                                           |
 |                                                                           |
 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED - NONE                            |
 |                                                                           |
 | ARGUMENTS  : IN:                                                          |
 |                      p_disc_rec - Discount Record                         |
 |                      p_select_flag - Select Flag			     |
 | 									     |
 |              IN OUT:							     |
 |                      p_ps_rec - Payment Schedule Record                   |
 |                                                                           |
 |              OUT:                                                         |
 |                                                                           |
 | RETURNS    : TRUE / FALSE                                                 |
 |                                                                           |
 | MODIFICATION HISTORY - Created by Shiv Ragunat  - 05/25/95                |
 |                                                                           |
 |	T Schraid - 07/26/96	Modified to allow new discount bases:        |
 |                              'I', 'L', 'T', 'F'.  Retained original       |
 |                              values of 'Y' and 'N'.			     |
 +===========================================================================*/
PROCEDURE check_input(
    p_disc_rec IN  discount_record_type,
    p_select_flag     IN BOOLEAN,
    p_ps_rec IN OUT NOCOPY ar_payment_schedules%ROWTYPE ) IS
BEGIN
    IF PG_DEBUG in ('Y', 'C') THEN
       arp_standard.debug( 'arp_calculate_discount.check_input() +' );
Line: 2090

    IF p_select_flag = FALSE
    THEN
        IF p_ps_rec.term_id IS NOT NULL AND p_ps_rec.terms_sequence_number IS NOT NULL
        THEN
            IF p_disc_rec.disc_partial_pmt_flag <> 'Y' AND
              p_disc_rec.disc_partial_pmt_flag <> 'N'
            THEN
                IF PG_DEBUG in ('Y', 'C') THEN
                   arp_standard.debug( 'arp_calculate_discount.check_input : Invalid value for p_disc_rec.disc_partial_pmt_flag' );
Line: 2129

    IF ( p_select_flag <> TRUE AND p_select_flag <> FALSE ) THEN
        IF PG_DEBUG in ('Y', 'C') THEN
           arp_standard.debug( 'arp_calculate_discount.check_input : Invalid value for p_select_flag. Must be TRUE or FALSE.' );
Line: 2144

    IF p_select_flag = FALSE
    THEN
        IF ( p_ps_rec.term_id IS NULL )
        THEN
            p_ps_rec.term_id := AR_NO_TERM;
Line: 2375

l_select_flag          CHAR := 'N';
Line: 2519

                                                l_select_flag,
                                                p_mode,
                                                l_error_code,
                                                p_cash_receipt_id );