DBA Data[Home] [Help]

APPS.AP_PAY_INVOICE_PKG SQL Statements

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

Line: 33

	P_last_update_date	OUT NOCOPY	DATE);
Line: 44

| Step 2:  | Call ap_pay_update_payment_schedule:		| PAY         |
|	   | 							|	      |
+----------+----------------------------------------------------+-------------+
| Step 3:  | Call ap_pay_update_ap_invoices:			| PAY         |
|	   |  							|	      |
+----------+----------------------------------------------------+-------------+
| Step 4:  | Call ap_pay_insert_invoice_payments:		| PAY/REV     |
|	   | 							|	      |
+----------+----------------------------------------------------+-------------+
 *========================================================================*/
PROCEDURE ap_pay_invoice(
	P_invoice_id		IN	NUMBER,
        P_check_id     		IN	NUMBER,
        P_payment_num	    	IN	NUMBER,
	P_invoice_payment_id	IN	NUMBER,
	P_old_invoice_payment_id IN 	NUMBER	  	  Default NULL,
	P_period_name		IN   	VARCHAR2,
	P_invoice_type		IN  	VARCHAR2  	  Default NULL,
	P_accounting_date	IN	DATE,
	P_amount		IN	NUMBER,
	P_discount_taken	IN	NUMBER,
	P_discount_lost		IN	NUMBER		  Default NULL,
	P_invoice_base_amount	IN	NUMBER		  Default NULL,
	P_payment_base_amount	IN	NUMBER		  Default NULL,
	P_accrual_posted_flag	IN	VARCHAR2,
	P_cash_posted_flag	IN 	VARCHAR2,
	P_posted_flag		IN 	VARCHAR2,
	P_set_of_books_id	IN	NUMBER,
	P_last_updated_by     	IN 	NUMBER,
	P_last_update_login	IN	NUMBER 		  Default NULL,
	P_currency_code		IN 	VARCHAR2	  Default NULL,
	P_base_currency_code	IN	VARCHAR2  	  Default NULL,
	P_exchange_rate		IN	NUMBER	 	  Default NULL,
	P_exchange_rate_type  	IN 	VARCHAR2	  Default NULL,
	P_exchange_date		IN 	DATE		  Default NULL,
	P_ce_bank_acct_use_id	IN	NUMBER		  Default NULL,
	P_bank_account_num	IN	VARCHAR2  	  Default NULL,
	P_bank_account_type	IN	VARCHAR2  	  Default NULL,
	P_bank_num		IN	VARCHAR2  	  Default NULL,
	P_future_pay_posted_flag  IN   	VARCHAR2  	  Default NULL,
	P_exclusive_payment_flag  IN	VARCHAR2  	  Default NULL,
	P_accts_pay_ccid     	IN	NUMBER    	  Default NULL,
	P_gain_ccid	  	IN	NUMBER    	  Default NULL,
	P_loss_ccid   	  	IN	NUMBER    	  Default NULL,
	P_future_pay_ccid    	IN	NUMBER    	  Default NULL,
	P_asset_ccid	  	IN	NUMBER	  	  Default NULL,
	P_payment_dists_flag	IN	VARCHAR2	  Default NULL,
	P_payment_mode		IN	VARCHAR2	  Default NULL,
	P_replace_flag		IN	VARCHAR2	  Default NULL,
	P_attribute1		IN	VARCHAR2	  Default NULL,
	P_attribute2		IN	VARCHAR2	  Default NULL,
	P_attribute3		IN	VARCHAR2	  Default NULL,
	P_attribute4		IN	VARCHAR2	  Default NULL,
	P_attribute5		IN	VARCHAR2	  Default NULL,
	P_attribute6		IN	VARCHAR2	  Default NULL,
	P_attribute7		IN	VARCHAR2	  Default NULL,
	P_attribute8		IN	VARCHAR2	  Default NULL,
	P_attribute9		IN	VARCHAR2	  Default NULL,
	P_attribute10		IN	VARCHAR2	  Default NULL,
	P_attribute11		IN	VARCHAR2	  Default NULL,
	P_attribute12		IN	VARCHAR2	  Default NULL,
	P_attribute13		IN	VARCHAR2	  Default NULL,
	P_attribute14		IN	VARCHAR2	  Default NULL,
	P_attribute15		IN	VARCHAR2	  Default NULL,
	P_attribute_category	IN	VARCHAR2	  Default NULL,
	P_global_attribute1	IN	VARCHAR2	  Default NULL,
	P_global_attribute2	IN	VARCHAR2	  Default NULL,
	P_global_attribute3	IN	VARCHAR2	  Default NULL,
	P_global_attribute4	IN	VARCHAR2	  Default NULL,
	P_global_attribute5	IN	VARCHAR2	  Default NULL,
	P_global_attribute6	IN	VARCHAR2	  Default NULL,
	P_global_attribute7	IN	VARCHAR2	  Default NULL,
	P_global_attribute8	IN	VARCHAR2	  Default NULL,
	P_global_attribute9	IN	VARCHAR2	  Default NULL,
	P_global_attribute10	IN	VARCHAR2	  Default NULL,
	P_global_attribute11	IN	VARCHAR2	  Default NULL,
	P_global_attribute12	IN	VARCHAR2	  Default NULL,
	P_global_attribute13	IN	VARCHAR2	  Default NULL,
	P_global_attribute14	IN	VARCHAR2	  Default NULL,
	P_global_attribute15	IN	VARCHAR2	  Default NULL,
	P_global_attribute16	IN	VARCHAR2	  Default NULL,
	P_global_attribute17	IN	VARCHAR2	  Default NULL,
	P_global_attribute18	IN	VARCHAR2	  Default NULL,
	P_global_attribute19	IN	VARCHAR2	  Default NULL,
	P_global_attribute20	IN	VARCHAR2	  Default NULL,
	P_global_attribute_category	  IN	VARCHAR2  Default NULL,
        P_calling_sequence      IN      VARCHAR2          Default NULL,
        P_accounting_event_id   IN      NUMBER            Default NULL,
        P_org_id                IN      NUMBER            Default NULL)
IS

current_calling_sequence  	VARCHAR2(2000);
Line: 136

C_last_update_date		DATE;
Line: 192

	C_last_update_date);
Line: 200

     * -- Step 2 : case for all : Update AP_PAYMENT_SCHEDULES
     * Call ap_pay_update_payment_schedules :
     *
     *--------------------------------------------------------------------------*/
     ap_pay_invoice_pkg.ap_pay_update_payment_schedule(
	P_invoice_id,
	P_payment_num,
        P_check_id,
	P_amount,
  	P_discount_taken,
	P_payment_dists_flag,
	P_payment_mode,
	P_replace_flag,
	P_last_updated_by,
	C_last_update_date,
	Current_calling_sequence);
Line: 226

     * -- Step 3 : case for all: Update AP_INVOICES
     * Call ap_pay_update_ap_invoices :
     *
     *--------------------------------------------------------------------------*/
     ap_pay_invoice_pkg.ap_pay_update_ap_invoices(
	P_invoice_id,
        P_check_id,
        P_amount,
	P_discount_taken,
	P_payment_dists_flag,
	P_payment_mode,
	P_replace_flag,
	C_last_update_date,
	P_last_updated_by,
	Current_calling_sequence);
Line: 245

 * -- Step 4 : case for all : Insert AP_INVOICE_PAYMENTS
 * Call ap_pay_insert_invoice_payments :
 *
 *--------------------------------------------------------------------------*/
 ap_pay_invoice_pkg.ap_pay_insert_invoice_payments(
	P_invoice_id,
        P_check_id,
        P_payment_num,
	P_invoice_payment_id,
	P_old_invoice_payment_id,
	C_period_name,
	C_accounting_date,
	P_amount,
	P_discount_taken,
	C_discount_lost,
	C_invoice_base_amount,
	C_payment_base_amount,
	P_accrual_posted_flag,
	P_cash_posted_flag,
	P_posted_flag,
	P_set_of_books_id,
	P_last_updated_by,
	P_last_update_login,
	C_last_update_date,
	P_currency_code,
	P_base_currency_code,
	P_exchange_rate,
	P_exchange_rate_type,
	P_exchange_date,
	P_ce_bank_acct_use_id,
	P_bank_account_num,
	P_bank_account_type,
	P_bank_num,
	P_future_pay_posted_flag,
	P_exclusive_payment_flag,
	P_accts_pay_ccid,
	C_gain_ccid,
	C_loss_ccid,
	P_future_pay_ccid,
	P_asset_ccid,
	P_payment_dists_flag,
	P_payment_mode,
	P_replace_flag,
	P_attribute1,
	P_attribute2,
	P_attribute3,
	P_attribute4,
	P_attribute5,
	P_attribute6,
	P_attribute7,
	P_attribute8,
	P_attribute9,
	P_attribute10,
	P_attribute11,
	P_attribute12,
	P_attribute13,
	P_attribute14,
	P_attribute15,
	P_attribute_category,
	P_global_attribute1,
	P_global_attribute2,
	P_global_attribute3,
	P_global_attribute4,
	P_global_attribute5,
	P_global_attribute6,
	P_global_attribute7,
	P_global_attribute8,
	P_global_attribute9,
	P_global_attribute10,
	P_global_attribute11,
	P_global_attribute12,
	P_global_attribute13,
	P_global_attribute14,
	P_global_attribute15,
	P_global_attribute16,
	P_global_attribute17,
	P_global_attribute18,
	P_global_attribute19,
	P_global_attribute20,
	P_global_attribute_category,
        Current_calling_sequence,
        P_accounting_event_id,
        P_org_id);
Line: 364

	P_last_update_date	OUT NOCOPY	DATE) IS

debug_info   		  VARCHAR2(100);
Line: 392

      SELECT G.period_name
        INTO P_period_name
        FROM gl_period_statuses G, ap_system_parameters P
       WHERE G.application_id = 200
         AND G.set_of_books_id = P.set_of_books_id
         AND DECODE(P_accounting_date, '',
		    sysdate, P_accounting_date) between G.start_date and G.end_date
         AND G.closing_status in ('O', 'F')
         AND NVL(G.adjustment_period_flag, 'N') = 'N';
Line: 401

	 -- Bug 825450. Added select statement so that if the current period is
           -- not 'open' or 'future-entry' then select the next such available period.
           EXCEPTION WHEN NO_DATA_FOUND THEN
             BEGIN
               SELECT G.start_date, G.period_name
               INTO l_gl_date, P_period_name
               FROM gl_period_statuses G, ap_system_parameters P
               WHERE G.application_id = 200
               AND G.set_of_books_id = P.set_of_books_id
               AND G.start_date = (SELECT min(G1.start_date)
                                   FROM   gl_period_statuses G1
                                   WHERE G1.application_id = 200
                                   AND G1.set_of_books_id = P.set_of_books_id
                                   AND G1.start_date > DECODE(P_accounting_date, '',
                                                           sysdate, P_accounting_date)
                                   AND G1.closing_status in ('O', 'F')
                                   AND NVL(G1.adjustment_period_flag, 'N') = 'N'
                                   )
               AND G.closing_status in ('O', 'F')
               AND NVL(G.adjustment_period_flag, 'N') = 'N';
Line: 433

  P_last_update_date := sysdate;
Line: 445

  SELECT PS.payment_cross_rate,
         AI.payment_cross_rate_date,
         AI.payment_cross_rate_type,
         AI.exchange_rate,
         AI.exchange_date,
         AI.exchange_rate_type,
         AI.invoice_currency_code
  INTO PS_payment_cross_rate,
       AI_payment_cross_rate_date,
       AI_payment_cross_rate_type,
       AI_exchange_rate,
       AI_exchange_date,
       AI_exchange_rate_type,
       c_inv_currency_code
  FROM ap_payment_schedules PS, ap_invoices AI
  WHERE PS.invoice_id = P_invoice_id
  AND PS.payment_num = P_payment_num
  AND AI.invoice_id = P_invoice_id;
Line: 536

    SELECT gain_code_combination_id, loss_code_combination_id
    INTO P_gain_ccid,
         P_loss_ccid
    FROM ce_gl_accounts_ccid CGAC
    WHERE CGAC.bank_acct_use_id = P_ce_bank_acct_use_id;
Line: 547

    SELECT DECODE(invoice_base_amount ,'','',
                  0-NVL(invoice_base_amount,0)),
           DECODE(payment_base_amount ,'','',
                  0-NVL(payment_base_amount,0))
    INTO   P_invoice_base_amount, P_payment_base_amount
    FROM   ap_invoice_payments
    WHERE  invoice_payment_id = P_old_invoice_payment_id;
Line: 564

  SELECT greatest (nvl(PS.discount_amount_available,0),
                   nvl(PS.second_disc_amt_available,0),
                   nvl(PS.third_disc_amt_available,0)),
         ps.gross_amount
  INTO   PS_disc_amt_available,
         PS_gross_amount
  FROM   ap_payment_schedules ps
  WHERE  invoice_id = P_invoice_id
  AND    payment_num = P_payment_num;
Line: 641

 * update amount_paid, discount_amount_taken and payment_status_flag for
 * ap_invoices 					Update AP_INVOICES
 ==========================================================================*/
 PROCEDURE ap_pay_update_ap_invoices(
		    P_invoice_id	 IN	NUMBER,
        	    P_check_id     	 IN	NUMBER,
                    P_amount    	 IN	NUMBER,
		    P_discount_taken     IN	NUMBER,
		    P_payment_dists_flag IN	VARCHAR2,
		    P_payment_mode	 IN	VARCHAR2,
		    P_replace_flag	 IN	VARCHAR2,
		    P_last_update_date   IN	DATE,
		    P_last_updated_by 	 IN	NUMBER,
		    P_calling_sequence   IN     VARCHAR2) IS

debug_info   		  VARCHAR2(100);
Line: 662

  current_calling_sequence := 'ap_pay_update_ap_invoices<-'||P_calling_sequence;
Line: 668

      debug_info := 'Update ap_invoices (pay)';
Line: 670

      UPDATE ap_invoices
      SET    amount_paid = NVL(amount_paid, 0) + NVL(P_amount, 0),
             discount_amount_taken = NVL(discount_amount_taken, 0) +
                                     NVL(P_discount_taken, 0),
			 payment_status_flag = AP_INVOICES_UTILITY_PKG.get_payment_status( P_invoice_id ),
             last_update_date = P_last_update_date,
             last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id;
Line: 688

      debug_info := 'Update ap_invoices (reissue)';
Line: 690

      UPDATE ap_invoices
      SET    last_update_date = P_last_update_date,
             last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id;
Line: 701

      debug_info := 'Update ap_invoices (reverse)';
Line: 703

      UPDATE ap_invoices AI
      SET   (amount_paid
      ,      discount_amount_taken
      ,      payment_status_flag
      ,      last_update_date
      ,      last_updated_by)
      =     (SELECT AI.amount_paid - SUM(AIP.amount)
             ,      NVL(AI.discount_amount_taken,0) -
	  		SUM(NVL(AIP.discount_taken,0))
             ,		AP_INVOICES_UTILITY_PKG.get_payment_status( P_invoice_id )
             ,      P_last_update_date
             ,      P_last_updated_by
             FROM   ap_invoice_payments AIP
             WHERE  AIP.invoice_id = P_invoice_id
	     AND    AIP.check_id = P_check_id
             GROUP BY AI.invoice_id
             ,        AI.amount_paid
             ,        AI.discount_amount_taken
             ,        AI.invoice_amount )
      WHERE AI.invoice_id = P_invoice_id;
Line: 733

      debug_info := 'Update ap_invoices (replace)';
Line: 735

      UPDATE ap_invoices
      SET    last_update_date = P_last_update_date,
             last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id;
Line: 755

		||', Last_updated_by = '||TO_CHAR(P_last_updated_by)
		||', Last_update_date = '||TO_CHAR(P_last_update_date)
		||', payment_dists_flag = '||P_payment_dists_flag
		||', payment_mode = '||P_payment_mode
		||', replace_flag = '||P_replace_flag);
Line: 765

END ap_pay_update_ap_invoices;
Line: 772

 * This function: 				Update AP_INVOICE_PAYMENTS
 * Inserts a new invoice payment line
 *========================================================================*/
PROCEDURE ap_pay_insert_invoice_payments(
	P_invoice_id		IN	NUMBER,
        P_check_id     		IN	NUMBER,
        P_payment_num	    	IN	NUMBER,
	P_invoice_payment_id	IN	NUMBER,
	P_old_invoice_payment_id IN 	NUMBER,
	P_period_name		IN   	VARCHAR2,
	P_accounting_date	IN	DATE,
	P_amount		IN	NUMBER,
	P_discount_taken	IN	NUMBER,
	P_discount_lost		IN	NUMBER,
	P_invoice_base_amount	IN	NUMBER,
	P_payment_base_amount	IN	NUMBER,
	P_accrual_posted_flag	IN	VARCHAR2,
	P_cash_posted_flag	IN 	VARCHAR2,
	P_posted_flag		IN 	VARCHAR2,
	P_set_of_books_id	IN	NUMBER,
	P_last_updated_by     	IN 	NUMBER,
	P_last_update_login	IN	NUMBER,
	P_last_update_date	IN	DATE,
	P_currency_code		IN 	VARCHAR2,
	P_base_currency_code	IN	VARCHAR2,
	P_exchange_rate		IN	NUMBER,
	P_exchange_rate_type  	IN 	VARCHAR2,
	P_exchange_date		IN 	DATE,
	P_ce_bank_acct_use_id	IN	NUMBER,
	P_bank_account_num	IN	VARCHAR2,
	P_bank_account_type	IN	VARCHAR2,
	P_bank_num		IN	VARCHAR2,
	P_future_pay_posted_flag	  IN   	VARCHAR2,
	P_exclusive_payment_flag 	  IN	VARCHAR2,
	P_accts_pay_ccid     	IN	NUMBER,
	P_gain_ccid	  	IN	NUMBER,
	P_loss_ccid   	  	IN	NUMBER,
	P_future_pay_ccid    	IN	NUMBER,
	P_asset_ccid	  	IN	NUMBER,
	P_payment_dists_flag	IN	VARCHAR2,
	P_payment_mode		IN	VARCHAR2,
	P_replace_flag		IN	VARCHAR2,
	P_attribute1		IN	VARCHAR2,
	P_attribute2		IN	VARCHAR2,
	P_attribute3		IN	VARCHAR2,
	P_attribute4		IN	VARCHAR2,
	P_attribute5		IN	VARCHAR2,
	P_attribute6		IN	VARCHAR2,
	P_attribute7		IN	VARCHAR2,
	P_attribute8		IN	VARCHAR2,
	P_attribute9		IN	VARCHAR2,
	P_attribute10		IN	VARCHAR2,
	P_attribute11		IN	VARCHAR2,
	P_attribute12		IN	VARCHAR2,
	P_attribute13		IN	VARCHAR2,
	P_attribute14		IN	VARCHAR2,
	P_attribute15		IN	VARCHAR2,
	P_attribute_category	IN	VARCHAR2,
	P_global_attribute1	IN	VARCHAR2	  Default NULL,
	P_global_attribute2	IN	VARCHAR2	  Default NULL,
	P_global_attribute3	IN	VARCHAR2	  Default NULL,
	P_global_attribute4	IN	VARCHAR2	  Default NULL,
	P_global_attribute5	IN	VARCHAR2	  Default NULL,
	P_global_attribute6	IN	VARCHAR2	  Default NULL,
	P_global_attribute7	IN	VARCHAR2	  Default NULL,
	P_global_attribute8	IN	VARCHAR2	  Default NULL,
	P_global_attribute9	IN	VARCHAR2	  Default NULL,
	P_global_attribute10	IN	VARCHAR2	  Default NULL,
	P_global_attribute11	IN	VARCHAR2	  Default NULL,
	P_global_attribute12	IN	VARCHAR2	  Default NULL,
	P_global_attribute13	IN	VARCHAR2	  Default NULL,
	P_global_attribute14	IN	VARCHAR2	  Default NULL,
	P_global_attribute15	IN	VARCHAR2	  Default NULL,
	P_global_attribute16	IN	VARCHAR2	  Default NULL,
	P_global_attribute17	IN	VARCHAR2	  Default NULL,
	P_global_attribute18	IN	VARCHAR2	  Default NULL,
	P_global_attribute19	IN	VARCHAR2	  Default NULL,
	P_global_attribute20	IN	VARCHAR2	  Default NULL,
	P_global_attribute_category	  IN	VARCHAR2  Default NULL,
        P_calling_sequence      IN      VARCHAR2,
        P_accounting_event_id   IN      NUMBER            Default NULL,
        P_org_id                IN      NUMBER            Default NULL) IS

current_calling_sequence  	VARCHAR2(2000);
Line: 861

  current_calling_sequence := 'AP_PAY_INVOICE_PKG.ap_pay_insert_invoice_payments<-'||P_calling_sequence;
Line: 863

     debug_info := 'Insert ap_invoice_payments';
Line: 864

      AP_AIP_TABLE_HANDLER_PKG.Insert_Row(
        P_invoice_id,
        P_check_id,
        P_payment_num,
        P_invoice_payment_id,
        P_old_invoice_payment_id,
        P_period_name,
        P_accounting_date,
        P_amount,
        P_discount_taken,
        P_discount_lost,
        P_invoice_base_amount,
        P_payment_base_amount,
        P_accrual_posted_flag,
        P_cash_posted_flag,
        P_posted_flag,
        P_set_of_books_id,
        P_last_updated_by,
        P_last_update_login,
        P_last_update_date,
        P_currency_code,
        P_base_currency_code,
        P_exchange_rate,
        P_exchange_rate_type,
        P_exchange_date,
        P_ce_bank_acct_use_id,
        P_bank_account_num,
        P_bank_account_type,
        P_bank_num,
        P_future_pay_posted_flag,
        P_exclusive_payment_flag,
        P_accts_pay_ccid,
        P_gain_ccid,
        P_loss_ccid,
        P_future_pay_ccid,
        P_asset_ccid,
        P_payment_dists_flag,
        P_payment_mode,
        P_replace_flag,
        P_attribute1,
        P_attribute2,
        P_attribute3,
        P_attribute4,
        P_attribute5,
        P_attribute6,
        P_attribute7,
        P_attribute8,
        P_attribute9,
        P_attribute10,
        P_attribute11,
        P_attribute12,
        P_attribute13,
        P_attribute14,
        P_attribute15,
        P_attribute_category,
        P_global_attribute1,
        P_global_attribute2,
        P_global_attribute3,
        P_global_attribute4,
        P_global_attribute5,
        P_global_attribute6,
        P_global_attribute7,
        P_global_attribute8,
        P_global_attribute9,
        P_global_attribute10,
        P_global_attribute11,
        P_global_attribute12,
        P_global_attribute13,
        P_global_attribute14,
        P_global_attribute15,
        P_global_attribute16,
        P_global_attribute17,
        P_global_attribute18,
        P_global_attribute19,
        P_global_attribute20,
        P_global_attribute_category,
        Current_calling_sequence,
        P_accounting_event_id,
        P_org_id);
Line: 999

		||', Last_update_by = '||TO_CHAR(P_last_updated_by)
		||', Last_update_date = '||TO_CHAR(P_last_update_date)
		||', Last_update_login = '||TO_CHAR(P_last_update_login)
		||', payment_dists_flag = '||P_payment_dists_flag
		||', payment_mode = '||P_payment_mode
		||', replace_flag = '||P_replace_flag);
Line: 1011

end ap_pay_insert_invoice_payments;
Line: 1016

  Update AP_PAYMENT_SCHEDULE
 *========================================================================*/
PROCEDURE ap_pay_update_payment_schedule(
		    P_invoice_id	 IN	NUMBER,
		    P_payment_num	 IN	NUMBER,
        	    P_check_id     	 IN	NUMBER,
		    P_amount		 IN     NUMBER,
  		    P_discount_taken	 IN 	NUMBER,
		    P_payment_dists_flag IN	VARCHAR2,
		    P_payment_mode	 IN	VARCHAR2,
		    P_replace_flag	 IN	VARCHAR2,
		    P_last_updated_by	 IN	NUMBER,
		    P_last_update_date	 IN	DATE,
		    P_calling_sequence   IN     VARCHAR2) IS

  debug_info   		  VARCHAR2(100);
Line: 1040

  current_calling_sequence := 'ap_pay_update_payment_schedule<-'||P_calling_sequence;
Line: 1046

      debug_info := 'Update ap_payment_schedules (pay)';
Line: 1048

      UPDATE ap_payment_schedules
      SET  amount_remaining = amount_remaining - P_amount -
                                      NVL(P_discount_taken, 0),
           discount_amount_remaining = 0,
           payment_status_flag = DECODE(amount_remaining -
                                      P_amount -
                                      NVL(P_discount_taken, 0),
                                      0, 'Y',
                                      amount_remaining, payment_status_flag,
                                      'P'),
           last_update_date = P_last_update_date,
           last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id
      AND    payment_num = P_payment_num;
Line: 1065

      debug_info := 'Update ap_payment_schedules (reissue)';
Line: 1067

      UPDATE ap_payment_schedules
      SET    last_update_date = P_last_update_date,
             last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id
      AND    payment_num = P_payment_num;
Line: 1079

      debug_info := 'Update ap_payment_schedules (reverse, non-prepayment)';
Line: 1083

      SELECT DECODE( NVL( SUM(AIP.amount), 0 ), 0, 'N', 'Y' )
      INTO   l_another_pmt
      FROM   ap_invoice_payments AIP
      WHERE  AIP.invoice_id = p_invoice_id
      AND    AIP.payment_num = p_payment_num
      AND    AIP.check_id <> p_check_id ;
Line: 1095

        SELECT DECODE( NVL( SUM(AID.amount), 0 ), 0, 'N', 'Y' )
        INTO   l_prepay_applied
        FROM   ap_invoice_distributions AID
        WHERE  AID.invoice_id = p_invoice_id
        AND    AID.line_type_lookup_code = 'PREPAY';
Line: 1127

          SELECT DECODE(APS.gross_amount, APS.amount_remaining
                + SUM(AIP.amount)
                + SUM(NVL(AIP.discount_taken,0)), 'N', 'P')
          INTO  l_pmt_status_flag
          FROM   ap_invoice_payments AIP
                 , ap_payment_schedules APS
          WHERE  AIP.invoice_id = P_invoice_id
          AND    AIP.payment_num = P_payment_num
          AND    AIP.check_id = P_check_id
          AND    AIP.invoice_id = APS.invoice_id
          AND    AIP.payment_num = APS.payment_num
          GROUP BY AIP.invoice_id
          ,        AIP.payment_num
          ,        APS.gross_amount
          ,        APS.amount_remaining;
Line: 1150

      UPDATE ap_payment_schedules APS
      SET   (amount_remaining
      ,      discount_amount_remaining
      ,      payment_status_flag
      ,      last_update_date
      ,      last_updated_by)
      =     (SELECT nvl(APS.amount_remaining,0) + SUM(AIP.amount)
                                    + SUM(NVL(AIP.discount_taken,0))
             ,      0
             ,      l_pmt_status_flag
	            /* Bug 8300099 : Commented the DECODE being used earlier
		    DECODE(APS.gross_amount, APS.amount_remaining -- Bug 8300099 Commented the fix for 2182168
                    + SUM(AIP.amount)
                    + SUM(NVL(AIP.discount_taken,0)), 'N', 'P')/*DECODE(AI.amount_paid,SUM(AIP.amount),'N','P')*/
              --	2182168 modified the decode statement to compare amount_paid to amount cancelled
             ,      P_last_update_date
             ,      P_last_updated_by
             FROM   ap_invoice_payments AIP,ap_invoices AI --bug2182168 added ap_invoices AI
             WHERE  AIP.invoice_id = P_invoice_id
             AND    AIP.payment_num = P_payment_num
	     AND    AIP.check_id = P_check_id
	     AND    AI.invoice_id=P_invoice_id --bug2182168 added  condition
             GROUP BY AIP.invoice_id
             ,        AIP.payment_num
             ,        APS.gross_amount
             ,        APS.amount_remaining
             ,        APS.discount_amount_remaining
             ,        AI.amount_paid  --bug2182168 added amount_paid in group by clause
  )
      WHERE (invoice_id, payment_num) IN
            (SELECT P_invoice_id
             ,      P_payment_num
             FROM   ap_invoices AI
             WHERE  AI.invoice_id = P_invoice_id
             AND AI.invoice_type_lookup_code <> 'PREPAYMENT');
Line: 1192

      debug_info := 'Update ap_payment_schedules (reverse, prepayment)';
Line: 1194

     UPDATE ap_payment_schedules APS
     SET    (amount_remaining
     ,       payment_status_flag
     ,       last_update_date
     ,       last_updated_by)
	/* Added for bug 10372009
           APS.amount_remaining should be added to the amount which is being reversed
     =      (SELECT SUM(AIP.amount) + SUM(NVL(AIP.discount_taken, 0)) */
	=      (SELECT nvl(APS.amount_remaining,0) + SUM(AIP.amount) +
					SUM(NVL(AIP.discount_taken, 0))
	/* Replaced N with payment status based on amount in AIP for bug 10372009
             ,      'N' */
	     ,      l_pmt_status_flag
             ,      P_last_update_date
             ,      P_last_updated_by
             FROM   ap_invoice_payments AIP
             WHERE  AIP.invoice_id = P_invoice_id
             AND    AIP.check_id = P_check_id
             AND    AIP.payment_num = APS.payment_num -- Bug 7184181
             GROUP BY AIP.invoice_id)
     WHERE   payment_num = P_payment_num   -- Bug 4701565
     AND     (invoice_id) IN
             (SELECT P_invoice_id
              FROM   ap_invoices AI
              WHERE  AI.invoice_id = P_invoice_id
              AND    AI.invoice_type_lookup_code = 'PREPAYMENT');
Line: 1223

      debug_info := 'Update ap_payment_schedules (replace)';
Line: 1225

      UPDATE ap_payment_schedules
      SET    last_update_date = P_last_update_date,
             last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id
      AND    payment_num = P_payment_num;
Line: 1246

		||', Last_update_by = '||TO_CHAR(P_last_updated_by)
		||', Last_update_date = '||TO_CHAR(P_last_update_date)
		||', payment_dists_flag = '||P_payment_dists_flag
		||', payment_mode = '||P_payment_mode
		||', replace_flag = '||P_replace_flag);
Line: 1256

END ap_pay_update_payment_schedule;
Line: 1262

FUNCTION ap_pay_update_check_amount(x_check_id IN NUMBER)
         RETURN NUMBER
     IS
         check_amount NUMBER;
Line: 1270

         SELECT sum(amount)
         INTO   check_amount
	 FROM   ap_invoice_payments aip
         WHERE  aip.check_id = x_check_id;
Line: 1280

         UPDATE ap_checks ac
            set amount = check_amount
            where ac.check_id = x_check_id;
Line: 1284

END ap_pay_update_check_amount;
Line: 1289

It is used to update the ap_invoices table and ap_payment_schedules
table when reversing an invoice payment. It is called from the
payment workbench.
******************************************************************/

PROCEDURE ap_inv_pay_update_invoices (
           P_org_invoice_pay_id   NUMBER,
           P_invoice_id           NUMBER,
           P_payment_line_number  NUMBER,
           P_last_update_date     DATE,
           P_last_updated_by      NUMBER,
           P_calling_sequence     VARCHAR2) IS
current_calling_sequence  VARCHAR2(2000);
Line: 1311

  current_calling_sequence := 'ap_inv_pay_update_invoices<-'||P_calling_sequence;
Line: 1315

    SELECT amount, discount_taken
    INTO p_amount, p_discount
    FROM ap_invoice_payments
    WHERE invoice_payment_id = p_org_invoice_pay_id;
Line: 1328

      UPDATE ap_payment_schedules
      SET  amount_remaining = amount_remaining + P_amount +
                                      nvl(P_discount,0),
           discount_amount_remaining = 0,
           payment_status_flag = DECODE(amount_remaining +
                                      P_amount +
                                      NVL(P_discount, 0),
                                      0, 'Y',
                                      gross_amount, 'N',
                                      'P'),
           last_update_date = P_last_update_date,
           last_updated_by = P_last_updated_by
      WHERE  invoice_id = P_invoice_id
      AND    payment_num = P_payment_line_number;
Line: 1349

      UPDATE ap_invoices
      SET  amount_paid = nvl(amount_paid,0) - P_amount ,
           discount_amount_taken =
                 nvl(discount_amount_taken,0) - nvl(P_discount,0) ,
           payment_status_flag = AP_INVOICES_UTILITY_PKG.get_payment_status( P_invoice_id ),
           last_update_date = P_last_update_date,
           last_updated_by = P_last_updated_by
      WHERE invoice_id = P_invoice_id;
Line: 1377

		||', Last_update_by = '||TO_CHAR(P_last_updated_by)
		||', Last_update_date = '||TO_CHAR(P_last_update_date));
Line: 1385

END ap_inv_pay_update_invoices;