DBA Data[Home] [Help]

APPS.AR_TRX_SUMMARY_PKG SQL Statements

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

Line: 54

  /* 8713252 - Changed from INSERT to MERGE */
  MERGE INTO ar_trx_bal_summary t
  USING (SELECT D.CUSTOMER_ID,
       D.CUSTOMER_SITE_USE_ID,
       D.CURRENCY_CODE,
       D.ORG_ID,
       nvl(SUM(D.OP_INV_SUM),0)   OP_INV_SUM,
       nvl(SUM(D.OP_INV_COUNT),0) OP_INV_COUNT,
       nvl(SUM(D.OP_CM_SUM),0)    OP_CM_SUM,
       nvl(SUM(D.OP_CM_COUNT),0)  OP_CM_COUNT,
       nvl(SUM(D.OP_DEP_SUM),0)   OP_DEP_SUM,
       nvl(SUM(D.OP_DEP_COUNT),0) OP_DEP_COUNT,
       nvl(SUM(D.OP_CB_SUM),0)    OP_CB_SUM,
       nvl(SUM(D.OP_CB_COUNT),0)  OP_CB_COUNT,
       nvl(SUM(D.OP_DM_SUM),0)    OP_DM_SUM,
       nvl(SUM(D.OP_DM_COUNT),0)  OP_DM_COUNT,
       nvl(SUM(D.OP_BR_SUM),0)    OP_BR_SUM,
       nvl(SUM(D.OP_BR_COUNT),0)  OP_BR_COUNT,
       nvl(SUM(D.UNRESOLVED_CASH_VALUE),0)    UNRESOLVED_CASH_VALUE,
       nvl(SUM(D.UNRESOLVED_CASH_COUNT),0)    UNRESOLVED_CASH_COUNT,
       nvl(SUM(D.PAST_DUE_INV_VALUE),0)       PAST_DUE_INV_VALUE,
       nvl(SUM(D.PAST_DUE_INV_COUNT),0)       PAST_DUE_INV_COUNT,
       nvl(SUM(D.INV_AMT_IN_DISPUTE),0)       INV_AMT_IN_DISPUTE,
       nvl(SUM(D.INV_DISPUTE_COUNT),0)        INV_DISPUTE_COUNT,
       nvl(SUM(D.BEST_CURRENT_RECEIVABLES),0) BEST_CURRENT_RECEIVABLES,
       nvl(SUM(D.RECEIPT_AT_RISK_AMT),0)      RECEIPT_AT_RISK_AMT,
       nvl(SUM(D.LAST_RECEIPT_AMOUNT),0)      LAST_RECEIPT_AMOUNT,
       MAX(D.LAST_RECEIPT_DATE)               LAST_RECEIPT_DATE,
       nvl(MAX(D.LAST_RECEIPT_NUMBER),'0')      LAST_RECEIPT_NUMBER,
       nvl(SUM(D.PENDING_ADJ_AMT),0)          PENDING_ADJ_AMT
   FROM (
   SELECT C.CUSTOMER_ID,
       nvl(C.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
       C.INVOICE_CURRENCY_CODE CURRENCY_CODE,
       C.ORG_ID,
       SUM(DECODE(C.CLASS,'INV', C.AMOUNT_DUE_REMAINING,0))       OP_INV_SUM,
       COUNT(DECODE(C.CLASS,'INV', DECODE(C.STATUS,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_INV_COUNT,
       SUM(DECODE(C.CLASS,'CM', C.AMOUNT_DUE_REMAINING,0) )       OP_CM_SUM,
       COUNT(DECODE(C.CLASS,'CM', DECODE(C.STATUS,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_CM_COUNT,
       SUM(DECODE(C.CLASS,'CB', C.AMOUNT_DUE_REMAINING,0))        OP_CB_SUM,
       COUNT(DECODE(C.CLASS,'CB',DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_CB_COUNT,
       SUM(DECODE(C.CLASS,'DEP', C.AMOUNT_DUE_REMAINING) )      OP_DEP_SUM,
       COUNT(DECODE(C.CLASS,'DEP', DECODE(C.STATUS ,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_DEP_COUNT,
       SUM(DECODE(C.CLASS,'DM', C.AMOUNT_DUE_REMAINING ,0))     OP_DM_SUM,
       COUNT(DECODE(C.CLASS,'DM', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_DM_COUNT,
       SUM(DECODE(C.CLASS,'BR', C.AMOUNT_DUE_REMAINING, NULL))  OP_BR_SUM,
       COUNT(DECODE(C.CLASS,'BR', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_BR_COUNT,
       SUM(DECODE(C.CLASS,'PMT', C.AMOUNT_DUE_REMAINING * -1, NULL)) UNRESOLVED_CASH_VALUE,
       COUNT(DECODE(C.CLASS,'PMT', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   UNRESOLVED_CASH_COUNT,
       SUM(DECODE(C.CLASS,'INV',DECODE(C.STATUS, 'OP',
                                DECODE(SIGN(TRUNC(SYSDATE) -
                                            TRUNC(NVL(C.DUE_DATE, SYSDATE))),1,
                                  (C.AMOUNT_DUE_ORIGINAL
                                    - NVL(C.AMOUNT_APPLIED,0)
                                    + NVL(C.AMOUNT_ADJUSTED,0)
                                    + NVL(C.AMOUNT_CREDITED,0)),
                                        0),0),0))               PAST_DUE_INV_VALUE,
       COUNT(DECODE(C.CLASS,'INV',DECODE(C.STATUS, 'OP',
                                DECODE(SIGN(TRUNC(SYSDATE) -
                                          TRUNC(NVL(C.DUE_DATE, SYSDATE))),1,
                                          C.PAYMENT_SCHEDULE_ID,
                                          NULL),NULL),NULL))    PAST_DUE_INV_COUNT,
       SUM(DECODE(CLASS,'INV',C.AMOUNT_IN_DISPUTE,0))           INV_AMT_IN_DISPUTE,
       COUNT(DECODE(C.CLASS,'INV',DECODE(C.AMOUNT_IN_DISPUTE,
                                   NULL,NULL,0,NULL,C.PAYMENT_SCHEDULE_ID),
                                   NULL))                       INV_DISPUTE_COUNT,
       SUM(DECODE(C.CLASS,
                   'INV', 1,
                   'DM',  1,
                   'CB',  1,
                   'DEP', 1,
                   'BR',  1,
                    0)
                   * DECODE(SIGN(C.DUE_DATE-SYSDATE),
                          -1,0,C.AMOUNT_DUE_REMAINING ))   BEST_CURRENT_RECEIVABLES,
       0 RECEIPT_AT_RISK_AMT ,
       0 LAST_RECEIPT_AMOUNT,
       TO_DATE(NULL) LAST_RECEIPT_DATE,
       NULL LAST_RECEIPT_NUMBER,
       SUM(C.AMOUNT_ADJUSTED_PENDING) PENDING_ADJ_AMT
   FROM AR_PAYMENT_SCHEDULES_ALL C
   WHERE C.payment_schedule_id > 0
   AND   C.customer_id is not null
   AND   C.org_id is not null
   GROUP BY C.CUSTOMER_ID,
            C.CUSTOMER_SITE_USE_ID,
            C.INVOICE_CURRENCY_CODE ,
            C.ORG_ID ) D
   GROUP BY D.CUSTOMER_ID,D.CUSTOMER_SITE_USE_ID,D.CURRENCY_CODE,D.ORG_ID) a
   ON     (	a.CUSTOMER_ID 		= t.CUST_ACCOUNT_ID
	AND   	a.CUSTOMER_SITE_USE_ID  = t.SITE_USE_ID
	AND   	a.CURRENCY_CODE		= t.CURRENCY
	AND   	a.ORG_ID		= t.ORG_ID
	)
   WHEN MATCHED THEN
   UPDATE
   SET
      LAST_UPDATE_DATE =      SYSDATE,
      LAST_UPDATED_BY =       -2003,
      LAST_UPDATE_LOGIN =     -2003,
      OP_INVOICES_VALUE =     a.op_inv_sum,
      OP_INVOICES_COUNT =     a.op_inv_count,
      OP_CREDIT_MEMOS_VALUE = a.op_cm_sum,
      OP_CREDIT_MEMOS_COUNT = a.op_cm_count,
      OP_DEPOSITS_VALUE     = a.op_dep_sum,
      OP_DEPOSITS_COUNT     = a.op_dep_count,
      OP_CHARGEBACK_VALUE   = a.op_cb_sum,
      OP_CHARGEBACK_COUNT   = a.op_cb_count,
      OP_DEBIT_MEMOS_VALUE  = a.op_dm_sum,
      OP_DEBIT_MEMOS_COUNT  = a.op_dm_count,
      OP_BILLS_RECEIVABLES_VALUE = a.op_br_sum,
      OP_BILLS_RECEIVABLES_COUNT = a.op_br_count,
      UNRESOLVED_CASH_VALUE = a.unresolved_cash_value,
      UNRESOLVED_CASH_COUNT = a.unresolved_cash_count,
      PAST_DUE_INV_VALUE     = a.past_due_inv_value,
      PAST_DUE_INV_INST_COUNT= a.past_due_inv_count,
      INV_AMT_IN_DISPUTE     = a.inv_amt_in_dispute,
      DISPUTED_INV_COUNT     = a.inv_dispute_count,
      BEST_CURRENT_RECEIVABLES = a.best_current_receivables,
      PENDING_ADJ_VALUE      = a.pending_adj_amt
   WHEN NOT MATCHED THEN
     INSERT
     (CUST_ACCOUNT_ID,
      SITE_USE_ID,
      CURRENCY,
      ORG_ID,
      LAST_UPDATE_DATE,
      LAST_UPDATED_BY,
      CREATION_DATE,
      CREATED_BY,
      LAST_UPDATE_LOGIN,
      OP_INVOICES_VALUE,
      OP_INVOICES_COUNT,
      OP_CREDIT_MEMOS_VALUE,
      OP_CREDIT_MEMOS_COUNT,
      OP_DEPOSITS_VALUE,
      OP_DEPOSITS_COUNT,
      OP_CHARGEBACK_VALUE,
      OP_CHARGEBACK_COUNT,
      OP_DEBIT_MEMOS_VALUE,
      OP_DEBIT_MEMOS_COUNT,
      OP_BILLS_RECEIVABLES_VALUE,
      OP_BILLS_RECEIVABLES_COUNT,
      UNRESOLVED_CASH_VALUE,
      UNRESOLVED_CASH_COUNT,
      PAST_DUE_INV_VALUE,
      PAST_DUE_INV_INST_COUNT,
      INV_AMT_IN_DISPUTE,
      DISPUTED_INV_COUNT,
      BEST_CURRENT_RECEIVABLES,
      PENDING_ADJ_VALUE,
      LAST_PAYMENT_AMOUNT,
      LAST_PAYMENT_NUMBER)
    VALUES
     (a.customer_id,
      a.customer_site_use_id,
      a.currency_code,
      a.org_id,
      sysdate,
      -2003,
      sysdate,
      -2003,
      -2003,
      a.op_inv_sum,
      a.op_inv_count,
      a.op_cm_sum,
      a.op_cm_count,
      a.op_dep_sum,
      a.op_dep_count,
      a.op_cb_sum,
      a.op_cb_count,
      a.op_dm_sum,
      a.op_dm_count,
      a.op_br_sum,
      a.op_br_count,
      a.unresolved_cash_value,
      a.unresolved_cash_count,
      a.past_due_inv_value,
      a.past_due_inv_count,
      a.inv_amt_in_dispute,
      a.inv_dispute_count,
      a.best_current_receivables,
      a.pending_adj_amt,
      a.last_receipt_amount,
      a.last_receipt_number);
Line: 251

   /* 8713252 - Now update last_payment_amounts */

   /* 8784962 - Added WHEN NOT MATCHED to meet 9i requirements,
       that code should never execute */
   merge into AR_TRX_BAL_SUMMARY t
   using (SELECT
           A1.CUSTOMER_ID,
	 	       A1.CUSTOMER_SITE_USE_ID,
	 	       A1.CURRENCY,
	 	       A1.ORG_ID,
	         nvl(sum(B.AMOUNT),0)          LAST_RECEIPT_AMOUNT,
	         max(B.RECEIPT_DATE)           LAST_RECEIPT_DATE,
	         nvl(max(B.RECEIPT_NUMBER),0)  LAST_RECEIPT_NUMBER
	     FROM
           (select
   		cr.pay_from_customer  			customer_id,
       		nvl(cr.customer_site_use_id, -99) 	customer_site_use_id,
       		cr.currency_code 			currency,
       		cr.org_id				org_id,
       		to_number(substr(max(to_char(cr.receipt_date, 'YYYYMMDD') ||
                       ltrim(to_char(cr.cash_receipt_id,
                           '0999999999999999999999'))),9)) last_cash_receipt_id
	    from   ar_cash_receipts_all cr
	    where  NVL(cr.confirmed_flag, 'Y') = 'Y'
	    and    cr.reversal_date is null
	    and    cr.type = 'CASH'
            and    cr.pay_from_customer IS NOT NULL
	    group by pay_from_customer, customer_site_use_id,
                     currency_code, org_id)  a1,
	        AR_CASH_RECEIPTS_ALL B
	     WHERE a1.LAST_CASH_RECEIPT_ID   = B.CASH_RECEIPT_ID
             GROUP BY A1.CUSTOMER_ID,
	              A1.CUSTOMER_SITE_USE_ID,
	 	      A1.CURRENCY,
	 	      A1.ORG_ID) a
         ON (   a.CUSTOMER_ID = t.CUST_ACCOUNT_ID
	    AND a.CUSTOMER_SITE_USE_ID  = t.SITE_USE_ID
	    AND a.CURRENCY = t.CURRENCY
	    AND a.ORG_ID = t.ORG_ID
	    )
         WHEN MATCHED THEN UPDATE
	 SET t.LAST_PAYMENT_AMOUNT = a.LAST_RECEIPT_AMOUNT,
             t.LAST_PAYMENT_DATE = a.LAST_RECEIPT_DATE,
	     t.LAST_PAYMENT_NUMBER = a.LAST_RECEIPT_NUMBER
         WHEN NOT MATCHED THEN INSERT
            (CUST_ACCOUNT_ID,
             SITE_USE_ID,
             CURRENCY,
             ORG_ID,
             LAST_UPDATE_DATE,
             LAST_UPDATED_BY,
             CREATION_DATE,
             CREATED_BY,
             LAST_UPDATE_LOGIN,
             LAST_PAYMENT_AMOUNT,
             LAST_PAYMENT_DATE,
             LAST_PAYMENT_NUMBER)
            VALUES
            (-1 * ar_trx_summary_hist_s.nextval,
             -999,
             a.currency,
             -999,
             sysdate,
             -2003,
             sysdate,
             -2003,
             -2003,
             a.last_receipt_amount,
             a.last_receipt_date,
             a.last_receipt_number);
Line: 326

        SELECT 'Y'
        INTO   l_at_risk_exists
        FROM   DUAL
        WHERE  EXISTS  (
          SELECT 'at risk receipt'
          FROM   AR_CASH_RECEIPTS_ALL CR,
                 AR_CASH_RECEIPT_HISTORY_ALL CRH
          WHERE NVL(CR.CONFIRMED_FLAG, 'Y') = 'Y'
          AND CR.REVERSAL_DATE IS NULL
          AND CR.CASH_RECEIPT_ID = CRH.CASH_RECEIPT_ID
          AND CRH.CURRENT_RECORD_FLAG = 'Y'
          AND CRH.STATUS NOT IN (
              DECODE (CRH.FACTOR_FLAG, 'Y', 'RISK_ELIMINATED',
                                       'N', 'CLEARED'), 'REVERSED'));
Line: 354

     using (SELECT  CR.PAY_FROM_CUSTOMER   CUSTOMER_ID,
                    NVL(CR.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
                    CR.CURRENCY_CODE CURRENCY,
                    CR.ORG_ID ORG_ID,
        	    SUM(DECODE(RAP.APPLIED_PAYMENT_SCHEDULE_ID,-2,NULL,
                        CRH.AMOUNT)) RECEIPTS_AT_RISK_VALUE
 	    FROM    AR_CASH_RECEIPTS_ALL CR,
           	    AR_CASH_RECEIPT_HISTORY_ALL CRH,
      		    AR_RECEIVABLE_APPLICATIONS_ALL RAP
 	    WHERE NVL(CR.CONFIRMED_FLAG, 'Y') 	= 'Y'
   	    AND CR.REVERSAL_DATE 		IS NULL
   	    AND CR.CASH_RECEIPT_ID 		= CRH.CASH_RECEIPT_ID
   	    AND CRH.CURRENT_RECORD_FLAG 	= 'Y'
   	    AND CRH.STATUS NOT IN
               (DECODE (CRH.FACTOR_FLAG, 'Y', 'RISK_ELIMINATED',
                                         'N', 'CLEARED'), 'REVERSED')
   	    AND RAP.CASH_RECEIPT_ID(+) 	= CR.CASH_RECEIPT_ID
   	    AND RAP.APPLIED_PAYMENT_SCHEDULE_ID(+) = -2
            AND CR.PAY_FROM_CUSTOMER IS NOT NULL
 	    GROUP BY CR.PAY_FROM_CUSTOMER,
		     NVL(CR.CUSTOMER_SITE_USE_ID,-99),
		     CR.CURRENCY_CODE,
		     CR.ORG_ID) a
      ON (    a.CUSTOMER_ID = t.CUST_ACCOUNT_ID
	  AND a.CUSTOMER_SITE_USE_ID = t.SITE_USE_ID
	  AND a.CURRENCY             = t.CURRENCY
	  AND a.ORG_ID               = t.ORG_ID
	 )
      WHEN MATCHED THEN UPDATE
         SET t.RECEIPTS_AT_RISK_VALUE = a.RECEIPTS_AT_RISK_VALUE
      WHEN NOT MATCHED THEN INSERT
            (CUST_ACCOUNT_ID,
             SITE_USE_ID,
             CURRENCY,
             ORG_ID,
             LAST_UPDATE_DATE,
             LAST_UPDATED_BY,
             CREATION_DATE,
             CREATED_BY,
             LAST_UPDATE_LOGIN,
             RECEIPTS_AT_RISK_VALUE)
            VALUES
            (-1 * ar_trx_summary_hist_s.nextval,
             -888,
             a.currency,
             -999,
             sysdate,
             -2003,
             sysdate,
             -2003,
             -2003,
             a.receipts_at_risk_value);
Line: 415

  INSERT into ar_trx_summary
   (CUST_ACCOUNT_ID,
    SITE_USE_ID,
    CURRENCY,
    ORG_ID,
    AS_OF_DATE,
    last_update_date,
    last_updated_by,
    creation_date,
    created_by,
    last_update_login,
    TOTAL_INVOICES_VALUE,
    TOTAL_INVOICES_COUNT,
    TOTAL_CREDIT_MEMOS_VALUE ,
    TOTAL_CREDIT_MEMOS_COUNT,
    TOTAL_CHARGEBACK_VALUE,
    TOTAL_CHARGEBACK_COUNT,
    TOTAL_DEPOSITS_VALUE,
    TOTAL_DEPOSITS_COUNT,
    TOTAL_DEBIT_MEMOS_VALUE,
    TOTAL_DEBIT_MEMOS_COUNT,
    TOTAL_BILLS_RECEIVABLES_VALUE,
    TOTAL_BILLS_RECEIVABLES_COUNT,
    TOTAL_CASH_RECEIPTS_VALUE,
    TOTAL_CASH_RECEIPTS_COUNT,
    COUNT_OF_DISC_INV_INST,
    DAYS_CREDIT_GRANTED_SUM,
    COUNT_OF_INV_INST_PAID_LATE,
    COUNT_OF_TOT_INV_INST_PAID,
    INV_PAID_AMOUNT,
    INV_INST_PMT_DAYS_SUM,
    NSF_STOP_PAYMENT_COUNT,
    NSF_STOP_PAYMENT_AMOUNT,
    SUM_APP_AMT,
    TOTAL_EARNED_DISC_VALUE,
    TOTAL_EARNED_DISC_COUNT,
    TOTAL_UNEARNED_DISC_VALUE,
    TOTAL_UNEARNED_DISC_COUNT,
    SUM_APP_AMT_DAYS_LATE,
    TOTAL_ADJUSTMENTS_VALUE,
    TOTAL_ADJUSTMENTS_COUNT)
    ( select D.customer_id,
        D.customer_site_use_id,
        D.currency_code,
        D.org_id,
        D.as_of_date,
        sysdate,
        -2003,
        sysdate,
        -2003,
        -2003,
        sum(decode(D.TOT_INV_SUM,0,null,D.TOT_INV_SUM)) TOT_INV_SUM,
        sum(decode(D.TOT_INV_COUNT,0,null,D.TOT_INV_COUNT)) TOT_INV_COUNT,
        SUM(decode(D.TOT_CM_SUM,0,null,D.TOT_CM_SUM)) TOT_CM_SUM,
        SUM(decode(D.TOT_CM_COUNT,0,null,D.TOT_CM_COUNT)) TOT_CM_COUNT,
        sum(decode(D.TOT_CB_SUM,0,null,D.TOT_CB_SUM)) TOT_CB_SUM,
        SUM(decode(D.TOT_CB_COUNT,0,null,D.TOT_CB_COUNT)) TOT_CB_COUNT,
        SUM(decode(D.TOT_DEP_SUM,0,null,D.TOT_DEP_SUM)) TOT_DEP_SUM,
        SUM(decode(D.TOT_DEP_COUNT,0,null,D.TOT_DEP_COUNT)) TOT_DEP_COUNT,
        SUM(decode(D.TOT_DM_SUM,0,null,D.TOT_DM_SUM)) TOT_DM_SUM,
        SUM(decode(D.TOT_DM_COUNT,0,null,D.TOT_DM_COUNT)) TOT_DM_COUNT,
        SUM(decode(D.TOT_BR_SUM,0,null,D.TOT_BR_SUM)) TOT_BR_SUM,
        SUM(decode(D.TOT_BR_COUNT,0,null,D.TOT_BR_COUNT)) TOT_BR_COUNT,
        SUM(decode(D.TOT_PMT_SUM,0,null,D.TOT_PMT_SUM)) TOT_PMT_SUM,
        SUM(decode(D.TOT_PMT_COUNT,0,null,D.TOT_PMT_COUNT)) TOT_PMT_COUNT,
        SUM(decode(D.disc_inv_inst_count,0,null,D.disc_inv_inst_count)) disc_inv_inst_count,
        SUM(decode(D.days_credit_granted_sum,0,null,D.days_credit_granted_sum)) days_credit_granted_sum,
        SUM(decode(D.COUNT_OF_INV_INST_PAID_LATE,0,null,D.COUNT_OF_INV_INST_PAID_LATE)) COUNT_OF_INV_INST_PAID_LATE,
        SUM(decode(D.COUNT_OF_TOT_INV_INST_PAID,0,null,D.COUNT_OF_TOT_INV_INST_PAID)) COUNT_OF_TOT_INV_INST_PAID,
        SUM(decode(D.INV_PAID_AMOUNT,0,null,D.INV_PAID_AMOUNT)) INV_PAID_AMOUNT,
        SUM(decode(D.inv_inst_pmt_days_sum,0,null,D.inv_inst_pmt_days_sum)) inv_inst_pmt_days_sum,
        sum(decode(D.NSF_STOP_PAYMENT_COUNT,0,null,D.NSF_STOP_PAYMENT_COUNT)) NSF_STOP_PAYMENT_COUNT,
        sum(decode(D.NSF_STOP_PAYMENT_AMOUNT,0,null,D.NSF_STOP_PAYMENT_AMOUNT)) NSF_STOP_PAYMENT_AMOUNT,
        sum(decode(D.sum_amt_applied,0,null,D.sum_amt_applied)) sum_amt_applied,
        sum(decode(D.edisc_taken,0,null,D.edisc_taken)) edisc_taken,
        sum(decode(D.edisc_taken,0,null,D.edisc_count)) edisc_count,
        sum(decode(D.unedisc_taken,0,null,D.unedisc_taken)) unedisc_taken,
        sum(decode(D.unedisc_taken,0,null,D.unedisc_count)) unedisc_count,
        sum(decode(D.app_amt_days_late,0,null,D.app_amt_days_late)) app_amt_days_late,
        sum(decode(D.adj_amount,0,null,D.adj_amount)) adj_amount,
        sum(decode(D.adj_count,0,null,D.adj_count)) adj_count
from ( select  C.customer_id,
        C.customer_site_use_id,
        C.currency_code,
        C.org_id,
        C.trx_date as_of_date,
        sum(DECODE(C.class,'INV',C.amount_due_original,0 ))     TOT_INV_SUM,
        count(decode(C.class,'INV',C.payment_schedule_id,null)) TOT_INV_COUNT,
        sum(DECODE(C.class,'CM',C.amount_due_original,0 ))      TOT_CM_SUM,
        count(decode(C.class,'CM',C.payment_schedule_id,null))  TOT_CM_COUNT,
        sum(DECODE(C.class,'CB',C.amount_due_original,0 ))      TOT_CB_SUM,
        count(decode(C.class,'CB',C.payment_schedule_id,null))  TOT_CB_COUNT,
        sum(DECODE(C.class,'DEP',C.amount_due_original,0 ))     TOT_DEP_SUM,
        count(decode(C.class,'DEP',C.payment_schedule_id,null)) TOT_DEP_COUNT,
        sum(DECODE(C.class,'DM',C.amount_due_original,0 ))      TOT_DM_SUM,
        count(decode(C.class,'DM',C.payment_schedule_id,null))  TOT_DM_COUNT,
        sum(DECODE(C.class,'BR',C.amount_due_original,0))       TOT_BR_SUM,
        count(decode(C.class,'BR',C.payment_schedule_id,null))  TOT_BR_COUNT,
        sum(DECODE(C.class,'PMT',C.amount_due_original * -1 ,0 ))     TOT_PMT_SUM,
        count(decode(C.class,'PMT',C.payment_schedule_id,null)) TOT_PMT_COUNT,
        sum(DECODE(C.class, 'INV', DECODE((nvl(C.edisc_taken,0) +
               nvl(C.unedisc_taken,0)), 0, 0, 1),0))            DISC_INV_INST_COUNT,
        sum(decode(C.class,'INV',((C.due_date - C.trx_date)*(nvl(C.amount_due_original,0)+
                                   nvl(C.ADJ_AMOUNT,0))),null)) DAYS_CREDIT_GRANTED_SUM,
        sum(decode(C.class,'INV',
                      DECODE(sign(NVL(C.AMOUNT_APPLIED,0)),0,null,
                          DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                           - NVL(C.AMOUNT_APPLIED,0)
                           - nvl(C.edisc_taken,0)
                           - nvl(C.unedisc_taken,0)
                           + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL),
                            null,
                            decode(sign(C.due_date - C.actual_date_closed),
                            -1, 1,null))),null))                COUNT_OF_INV_INST_PAID_LATE,
        sum(decode(C.class,'INV',
                       DECODE(sign(NVL(C.AMOUNT_APPLIED,0)),0,null,
                           DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                           - NVL(C.AMOUNT_APPLIED,0)
                           - nvl(C.edisc_taken,0)
                           - nvl(C.unedisc_taken,0)
                           + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL)
                           ,null,
                            1)),null))                           COUNT_OF_TOT_INV_INST_PAID,
        sum(decode(C.class,'INV',DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                   - NVL(C.AMOUNT_APPLIED,0)
                   - nvl(C.edisc_taken,0)
                   - nvl(C.unedisc_taken,0)
                   + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL),
                    null,nvl(C.amount_applied,0)),null))     INV_PAID_AMOUNT,
        sum(decode(C.class,'INV',1,null))           COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days_sum,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        0 ADJ_AMOUNT,
        0 ADJ_COUNT
 FROM  (
   SELECT A.CUSTOMER_ID,
        A.CUSTOMER_SITE_USE_ID,
        A.CURRENCY_CODE,
        A.ORG_ID ,
        A.CLASS,
        A.DUE_DATE,
        A.TRX_DATE,
        A.actual_date_closed,
        A.PAYMENT_SCHEDULE_ID,
        A.AMOUNT_DUE_ORIGINAL,
        A.AMOUNT_IN_DISPUTE,
        A.AMOUNT_APPLIED,
        A.edisc_taken,
        A.unedisc_taken,
        SUM(ADJ.AMOUNT) ADJ_AMOUNT
  FROM (
  SELECT PS.CUSTOMER_ID,
       NVL(PS.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
       PS.INVOICE_CURRENCY_CODE CURRENCY_CODE,
       PS.ORG_ID,
       PS.CLASS,
       ps.amount_in_dispute AMOUNT_IN_DISPUTE,
       ps.due_date DUE_DATE,
       PS.AMOUNT_DUE_ORIGINAL,
       PS.TRX_DATE,
       PS.actual_date_closed,
       PS.PAYMENT_SCHEDULE_ID,
       SUM(  RA.AMOUNT_APPLIED) AMOUNT_APPLIED,
       sum(decode(ps.class, 'INV',
                decode(ra.earned_discount_taken,0,
                         null,ra.earned_discount_taken), null)) edisc_taken,
       sum(decode(ps.class, 'INV',
                decode(ra.unearned_discount_taken,0,
                         null,ra.unearned_discount_taken), null)) unedisc_taken
   FROM  AR_PAYMENT_SCHEDULES_all ps,
         AR_RECEIVABLE_APPLICATIONS_ALL RA
  WHERE  RA.APPLIED_PAYMENT_SCHEDULE_ID(+) = PS.PAYMENT_SCHEDULE_ID
    AND  RA.CREATION_DATE(+) <= l_program_start_date
    AND  RA.DISPLAY(+) = 'Y'
    AND  RA.STATUS(+) = 'APP'
    AND  PS.CUSTOMER_ID > 0
    and  ra.apply_date(+) >= add_months(sysdate, -24)
    AND  ps.trx_date >= add_months(sysdate, -24)
    AND  PS.CREATION_DATE <= l_program_start_date
 GROUP BY PS.CUSTOMER_ID,  NVL(PS.CUSTOMER_SITE_USE_ID,-99),
          PS.INVOICE_CURRENCY_CODE, PS.ORG_ID,
          PS.CLASS, PS.TRX_DATE, ps.due_date,
          PS.AMOUNT_DUE_ORIGINAL,
          ps.amount_in_dispute,
          ps.actual_date_closed, PS.PAYMENT_SCHEDULE_ID
       ) A,
       AR_ADJUSTMENTS_ALL ADJ
 WHERE A.PAYMENT_SCHEDULE_ID = ADJ.PAYMENT_SCHEDULE_ID(+)
  AND  ADJ.CREATION_DATE (+) <= l_program_start_date
  AND  ADJ.STATUS(+) = 'A'
 GROUP BY A.CUSTOMER_ID,  A.CUSTOMER_SITE_USE_ID,
          A.CURRENCY_CODE, A.ORG_ID,
          A.CLASS, A.TRX_DATE,A.DUE_DATE,
          A.AMOUNT_DUE_ORIGINAL, A.AMOUNT_IN_DISPUTE,
          A.actual_date_closed,A.AMOUNT_APPLIED,
          A.edisc_taken,A.unedisc_taken,
          A.PAYMENT_SCHEDULE_ID
      ) C
 group by C.customer_id,
        C.customer_site_use_id,
        C.currency_code,
        C.org_id,
        C.trx_date
UNION
select  cr.pay_from_customer customer_id,
        nvl(cr.customer_site_use_id,-99) customer_site_use_id,
        cr.currency_code invoice_currency_code,
        cr.org_id,
        cr.reversal_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days,
        count(cr.cash_receipt_id) NSF_STOP_PAYMENT_COUNT,
        sum(cr.amount) NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        0 adj_amount,
        0 adj_count
 from   ar_cash_receipts_all cr,
        ar_cash_receipt_history_all crh
 where  cr.cash_receipt_id = crh.cash_receipt_id
    and crh.current_record_flag = 'Y'
    and crh.status = 'REVERSED'
    and crh.creation_date <= l_program_start_date
    and cr.status = 'REV'
    and cr.reversal_category = 'NSF'
    and cr.reversal_date > add_months(sysdate, -24)
    and nvl(cr.pay_from_customer,0) > 0
 group by cr.pay_from_customer,
        nvl(cr.customer_site_use_id,-99),
        cr.currency_code,
        cr.org_id,
        cr.reversal_date
UNION
select  customer_id,
        customer_site_use_id,
        invoice_currency_code,
        org_id,
        apply_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        sum(decode(inv_inst_pmt_days,0,null,inv_inst_pmt_days)) inv_inst_pmt_days,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        sum(decode(sum_amt_applied,0,null,sum_amt_applied)) sum_amt_applied,
        sum(decode(edisc_taken,0,null,edisc_taken)) edisc_taken,
        sum(decode(edisc_taken,0,null,edisc_count)) edisc_count,
        sum(decode(unedisc_taken,0,null,unedisc_taken)) unedisc_taken,
        sum(decode(unedisc_taken,0,null,unedisc_count)) unedisc_count,
        sum(decode(app_amt_days_late,0,null,app_amt_days_late)) app_amt_days_late,
        0 adj_amount,
        0 adj_count
from ( select ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        trunc(ra.apply_date) apply_date,
        ra.cash_receipt_id,
        ra.applied_payment_schedule_id,
        sum(decode(ps.class, 'INV',ra.amount_applied,0)) sum_amt_applied,
        sum(decode(ps.class, 'INV',((ra.apply_date - (ps.trx_date + nvl(rt.printing_lead_days,0)))
                                  * (nvl(ra.amount_applied,0))),null)) inv_inst_pmt_days,
        sum(decode(ps.class, 'INV', decode(ra.earned_discount_taken,0,null,ra.earned_discount_taken), null)) edisc_taken,
        sum(decode(ps.class, 'INV',decode(nvl(ra.earned_discount_taken,0),0,null,1),null)) edisc_count,
        sum(decode(ps.class, 'INV', decode(ra.unearned_discount_taken,0,null,ra.unearned_discount_taken), null)) unedisc_taken,
        sum(decode(ps.class, 'INV',decode(nvl(ra.unearned_discount_taken,0),0,null,1),null)) unedisc_count,
        sum(decode(ps.class, 'INV',
        (ra.apply_date - ps.due_date)* ra.amount_applied, null)) app_amt_days_late
 from   ar_payment_schedules_all ps,
        ra_terms_b rt,
        ar_receivable_applications_all ra
 where  ps.payment_schedule_id = ra.applied_payment_schedule_id
  and   ps.customer_id > 0
  and   ps.term_id = rt.term_id(+)
  and   ra.creation_date <= l_program_start_date
  and   ra.status =  'APP'
  and   ra.display = 'Y'
  and   ra.application_type = 'CASH'
  and   ra.apply_date >= add_months(sysdate, -24)
  group by ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        trunc(ra.apply_date),
        ra.cash_receipt_id,
        ra.applied_payment_schedule_id
        )
  group by customer_id,
        customer_site_use_id,
        invoice_currency_code,
        org_id,
        apply_date
UNION
select  ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        adj.apply_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        sum(adj.amount) adj_amount,
        count(adjustment_id) adj_count
 from   ar_payment_schedules_all ps,
        ar_adjustments_all adj
 where  ps.payment_schedule_id = adj.payment_schedule_id
   and  adj.receivables_trx_id(+) > 0
   and  ps.trx_date > add_months(sysdate, -24)
   and  ps.creation_date <= l_program_start_date
   and  adj.creation_date <= l_program_start_date
   and  adj.status = 'A'
   and  adj.apply_date > add_months(sysdate, -24)
group by ps.customer_id,
         ps.customer_site_use_id,
         ps.invoice_currency_code,
         ps.org_id,
         adj.apply_date
) D
group by D.customer_id,
        D.customer_site_use_id,
        D.currency_code,
        D.org_id,
        D.as_of_date);
Line: 818

    | LOGIC TO UPDATE THE LARGEST INV INFO IN    |
    | AR_TRX_SUMMARY  TABLE                      |
    |                                            |
    +--------------------------------------------*/

declare
v_cursor1       NUMBER;
Line: 835

text_select     VARCHAR2(4000);
Line: 836

text_update     VARCHAR2(4000);
Line: 838

  text_select :=
     'SELECT customer_id, customer_site_use_id,
       invoice_currency_code, trunc(trx_date), amount,customer_trx_id
     FROM (
      select customer_id, customer_site_use_id,
             invoice_currency_code,
             trx_date, amount,customer_trx_id,
             RANK() OVER (PARTITION BY customer_id,
                                       customer_site_use_id,
                                       invoice_currency_code,
                                       trx_date
                          ORDER BY amount desc, trx_date desc,
                                      customer_trx_id desc) rank_amount
      from ( select customer_id,customer_site_use_id,
                    invoice_currency_code,customer_trx_id,
                    trx_date,SUM(amount_due_original) amount
             from   ar_payment_schedules_all
             where  class = '||''''||'INV'||''''||
              ' and  customer_id > 0
                and  trx_date >= add_months(sysdate, -24)
             group by customer_id,customer_site_use_id,
                      invoice_currency_code, trx_date, customer_trx_id
            )
     )
     WHERE rank_amount = 1';
Line: 864

  text_update := 'Update ar_trx_summary
                     set LARGEST_INV_AMOUNT = :amount,
                         LARGEST_INV_CUST_TRX_ID = :cust_trx_id,
                         LARGEST_INV_DATE = :trx_date,
		         LAST_UPDATE_DATE  = sysdate,
                         LAST_UPDATED_BY   = FND_GLOBAL.user_id,
                         LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
                  where cust_account_id = :customer_id
                    and SITE_USE_ID = :site_use_id
                    and CURRENCY = :currency_code
                    and AS_OF_DATE = :trx_date';
Line: 879

  dbms_sql.parse(v_cursor1,text_select,DBMS_SQL.V7);
Line: 880

  dbms_sql.parse(v_cursor2,text_update,DBMS_SQL.V7);
Line: 896

    v_customer_id.delete;
Line: 897

    v_site_use_id.delete;
Line: 898

    v_currency_code.delete;
Line: 899

    v_trx_date.delete;
Line: 900

    v_cust_trx_id.delete;
Line: 901

    v_amount.delete;
Line: 943

    | LOGIC TO UPDATE THE HIGHWATER MARK BALANCE |
    | IN AR_TRX_SUMMARY                          |
    |                                            |
    +--------------------------------------------*/

declare
v_cursor1       NUMBER;
Line: 959

text_select     VARCHAR2(4000);
Line: 960

text_update     VARCHAR2(4000);
Line: 962

  text_select :=
'select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , cum_balance
from (
select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , sum(net_amount) OVER (PARTITION BY customer_id,
        customer_site_use_id, invoice_currency_code
        ORDER BY customer_id, customer_site_use_id,
        invoice_currency_code ROWS UNBOUNDED PRECEDING) cum_balance
from (
select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , sum(net_amount) net_amount
from
(select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        ps.trx_date as_of_date, sum(ps.amount_due_original) net_amount
 from  ar_payment_schedules_all ps
 where ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
 and ps.customer_id > 0
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, ps.trx_date
 union all
 select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        ra.apply_date as_of_date,
        sum(-ra.amount_applied
            -nvl(ra.earned_discount_taken,0)
            -nvl(ra.unearned_discount_taken,0)) net_amount
 from ar_payment_schedules_all ps,
      ar_receivable_applications_all ra
 where ps.payment_schedule_id = ra.applied_payment_schedule_id
  and  ps.customer_id > 0
  and  ra.status = '||''''||'APP'||''''||'
  and  ra.application_type = '||''''||'CASH'||''''||'
  and  nvl(ra.confirmed_flag,'||''''||'Y'||''''||') = '||''''||'Y'||''''||'
  and  ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, ra.apply_date
 union all
 select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        adj.apply_date as_of_date, sum(adj.amount)
 from  ar_payment_schedules_all ps,
       ar_adjustments_all adj
 where ps.payment_schedule_id = adj.payment_schedule_id
  and  ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
  and  adj.status = '||''''||'A'||''''||'
  and  ps.customer_id > 0
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, adj.apply_date
)
group by customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date
order by customer_id, customer_site_use_id,  invoice_currency_code,
       as_of_date )
       )
 where as_of_date > add_months(sysdate , -24)';
Line: 1032

  text_update :=
             'Update ar_trx_summary
               set   OP_BAL_HIGH_WATERMARK      = :cum_balance,
                     OP_BAL_HIGH_WATERMARK_DATE = :as_of_date,
		     LAST_UPDATE_DATE  = sysdate,
                     LAST_UPDATED_BY   = FND_GLOBAL.user_id,
                     LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
                  where cust_account_id = :customer_id
                    and SITE_USE_ID = :site_use_id
                    and CURRENCY = :currency_code
                    and AS_OF_DATE = :as_of_date';
Line: 1047

  dbms_sql.parse(v_cursor1,text_select,DBMS_SQL.V7);
Line: 1048

  dbms_sql.parse(v_cursor2,text_update,DBMS_SQL.V7);
Line: 1063

    v_customer_id.delete;
Line: 1064

    v_site_use_id.delete;
Line: 1065

    v_currency_code.delete;
Line: 1066

    v_trx_date.delete;
Line: 1067

    v_cum_balance.delete;
Line: 1130

  /* over commit to insure that deleted rows are recorded */
  COMMIT;
Line: 1150

         SELECT DISTINCT customer_id
         FROM   ar_payment_schedules_all
         WHERE  MOD(customer_id, p_max_workers) = p_worker_number
         AND    payment_schedule_id > 0;
Line: 1156

         SELECT DISTINCT customer_id
         FROM   ar_payment_schedules_all
         WHERE  MOD(customer_id, p_max_workers) = p_worker_number
         AND    payment_schedule_id > 0
         AND    trx_date > add_months(sysdate, -24);
Line: 1173

    p_cust_id.delete;
Line: 1192

      INSERT INTO ar_cust_search_gt
         (customer_id)
      VALUES(p_cust_id(i));
Line: 1267

    DELETE FROM AR_TRX_BAL_SUMMARY
    WHERE  cust_account_id = p_cust_id(i);
Line: 1271

    DELETE FROM AR_TRX_SUMMARY
    WHERE  cust_account_id = p_cust_id(i);
Line: 1282

                               p_fast_delete IN VARCHAR2) IS
      l_reqid          NUMBER;
Line: 1301

                              argument4=>p_fast_delete );
Line: 1350

     INSERT INTO AR_CONC_PROCESS_REQUESTS
        (CONCURRENT_PROGRAM_NAME, REQUEST_ID)
        VALUES ('ARSUMREF',p_request_id);
Line: 1355

     DELETE FROM AR_CONC_PROCESS_REQUESTS
       WHERE CONCURRENT_PROGRAM_NAME = 'ARSUMREF'
       AND   REQUEST_ID = p_request_id;
Line: 1382

   INSERT INTO AR_TRX_BAL_SUMMARY
     (CUST_ACCOUNT_ID,
      SITE_USE_ID,
      CURRENCY,
      ORG_ID,
      LAST_UPDATE_DATE,
      LAST_UPDATED_BY,
      CREATION_DATE,
      CREATED_BY,
      LAST_UPDATE_LOGIN,
      OP_INVOICES_VALUE,
      OP_INVOICES_COUNT,
      OP_CREDIT_MEMOS_VALUE,
      OP_CREDIT_MEMOS_COUNT,
      OP_DEPOSITS_VALUE,
      OP_DEPOSITS_COUNT,
      OP_CHARGEBACK_VALUE,
      OP_CHARGEBACK_COUNT,
      OP_DEBIT_MEMOS_VALUE,
      OP_DEBIT_MEMOS_COUNT,
      OP_BILLS_RECEIVABLES_VALUE,
      OP_BILLS_RECEIVABLES_COUNT,
      UNRESOLVED_CASH_VALUE,
      UNRESOLVED_CASH_COUNT,
      PAST_DUE_INV_VALUE,
      PAST_DUE_INV_INST_COUNT,
      INV_AMT_IN_DISPUTE,
      DISPUTED_INV_COUNT,
      BEST_CURRENT_RECEIVABLES,
      RECEIPTS_AT_RISK_VALUE,
      LAST_PAYMENT_AMOUNT,
      LAST_PAYMENT_DATE,
      LAST_PAYMENT_NUMBER,
      PENDING_ADJ_VALUE
      )
      (SELECT D.CUSTOMER_ID,
       D.CUSTOMER_SITE_USE_ID,
       D.CURRENCY_CODE,
       D.ORG_ID,
       SYSDATE,
       -2003,
       SYSDATE,
       -2003,
       -2003,
       nvl(SUM(D.OP_INV_SUM),0)   OP_INV_SUM,
       nvl(SUM(D.OP_INV_COUNT),0) OP_INV_COUNT,
       nvl(SUM(D.OP_CM_SUM),0)    OP_CM_SUM,
       nvl(SUM(D.OP_CM_COUNT),0)  OP_CM_COUNT,
       nvl(SUM(D.OP_DEP_SUM),0)   OP_DEP_SUM,
       nvl(SUM(D.OP_DEP_COUNT),0) OP_DEP_COUNT,
       nvl(SUM(D.OP_CB_SUM),0)    OP_CB_SUM,
       nvl(SUM(D.OP_CB_COUNT),0)  OP_CB_COUNT,
       nvl(SUM(D.OP_DM_SUM),0)    OP_DM_SUM,
       nvl(SUM(D.OP_DM_COUNT),0)  OP_DM_COUNT,
       nvl(SUM(D.OP_BR_SUM),0)    OP_BR_SUM,
       nvl(SUM(D.OP_BR_COUNT),0)  OP_BR_COUNT,
       nvl(SUM(D.UNRESOLVED_CASH_VALUE),0)    UNRESOLVED_CASH_VALUE,
       nvl(SUM(D.UNRESOLVED_CASH_COUNT),0)    UNRESOLVED_CASH_COUNT,
       nvl(SUM(D.PAST_DUE_INV_VALUE),0)       PAST_DUE_INV_VALUE,
       nvl(SUM(D.PAST_DUE_INV_COUNT),0)       PAST_DUE_INV_COUNT,
       nvl(SUM(D.INV_AMT_IN_DISPUTE),0)       INV_AMT_IN_DISPUTE,
       nvl(SUM(D.INV_DISPUTE_COUNT),0)        INV_DISPUTE_COUNT,
       nvl(SUM(D.BEST_CURRENT_RECEIVABLES),0) BEST_CURRENT_RECEIVABLES,
       nvl(SUM(D.RECEIPT_AT_RISK_AMT),0)      RECEIPT_AT_RISK_AMT,
       nvl(SUM(D.LAST_RECEIPT_AMOUNT),0)      LAST_RECEIPT_AMOUNT,
       MAX(D.LAST_RECEIPT_DATE)               LAST_RECEIPT_DATE,
       nvl(MAX(D.LAST_RECEIPT_NUMBER),0)      LAST_RECEIPT_NUMBER,
       nvl(SUM(D.PENDING_ADJ_AMT),0)          PENDING_ADJ_AMT
FROM (
SELECT C.CUSTOMER_ID,
       nvl(C.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
       C.INVOICE_CURRENCY_CODE CURRENCY_CODE,
       C.ORG_ID,
       SUM(DECODE(CLASS,'INV', C.AMOUNT_DUE_REMAINING,0))       OP_INV_SUM,
       COUNT(DECODE(CLASS,'INV', DECODE(C.STATUS,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_INV_COUNT,
       SUM(DECODE(CLASS,'CM', C.AMOUNT_DUE_REMAINING,0) )       OP_CM_SUM,
       COUNT(DECODE(CLASS,'CM', DECODE(C.STATUS,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_CM_COUNT,
       SUM(DECODE(CLASS,'CB', C.AMOUNT_DUE_REMAINING,0))        OP_CB_SUM,
       COUNT(DECODE(CLASS,'CB',DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_CB_COUNT,
       SUM(DECODE(C.CLASS,'DEP', C.AMOUNT_DUE_REMAINING) )      OP_DEP_SUM,
       COUNT(DECODE(C.CLASS,'DEP', DECODE(C.STATUS ,'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_DEP_COUNT,
       SUM(DECODE(C.CLASS,'DM', C.AMOUNT_DUE_REMAINING ,0))     OP_DM_SUM,
       COUNT(DECODE(C.CLASS,'DM', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_DM_COUNT,
       SUM(DECODE(C.CLASS,'BR', C.AMOUNT_DUE_REMAINING, NULL))  OP_BR_SUM,
       COUNT(DECODE(C.CLASS,'BR', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   OP_BR_COUNT,
       SUM(DECODE(C.CLASS,'PMT', C.AMOUNT_DUE_REMAINING * -1, NULL)) UNRESOLVED_CASH_VALUE,
       COUNT(DECODE(C.CLASS,'PMT', DECODE(C.STATUS, 'OP',
                           C.PAYMENT_SCHEDULE_ID,NULL),NULL))   UNRESOLVED_CASH_COUNT,
       SUM(DECODE(CLASS,'INV',DECODE(C.STATUS, 'OP',
                                DECODE(SIGN(TRUNC(SYSDATE) -
                                            TRUNC(NVL(C.DUE_DATE, SYSDATE))),1,
                                  (C.AMOUNT_DUE_ORIGINAL
                                    - NVL(C.AMOUNT_APPLIED,0)
                                    + NVL(C.AMOUNT_ADJUSTED,0)
                                    + NVL(C.AMOUNT_CREDITED,0)),
                                        0),0),0))               PAST_DUE_INV_VALUE,
       COUNT(DECODE(C.CLASS,'INV',DECODE(C.STATUS, 'OP',
                                DECODE(SIGN(TRUNC(SYSDATE) -
                                          TRUNC(NVL(C.DUE_DATE, SYSDATE))),1,
                                          C.PAYMENT_SCHEDULE_ID,
                                          NULL),NULL),NULL))    PAST_DUE_INV_COUNT,
       SUM(DECODE(CLASS,'INV',C.AMOUNT_IN_DISPUTE,0))           INV_AMT_IN_DISPUTE,
       COUNT(DECODE(C.CLASS,'INV',DECODE(C.AMOUNT_IN_DISPUTE,
                                   NULL,NULL,0,NULL,C.PAYMENT_SCHEDULE_ID),
                                   NULL))                       INV_DISPUTE_COUNT,
       SUM(DECODE(C.CLASS,
                   'INV', 1,
                   'DM',  1,
                   'CB',  1,
                   'DEP', 1,
                   'BR',  1,
                    0)
                   * DECODE(SIGN(C.DUE_DATE-SYSDATE),
                          -1,0,C.AMOUNT_DUE_REMAINING ))
                                                                BEST_CURRENT_RECEIVABLES,
       0 RECEIPT_AT_RISK_AMT ,
       0 LAST_RECEIPT_AMOUNT,
       TO_DATE(NULL) LAST_RECEIPT_DATE,
       NULL LAST_RECEIPT_NUMBER,
       SUM(C.AMOUNT_ADJUSTED_PENDING) PENDING_ADJ_AMT
FROM AR_PAYMENT_SCHEDULES_ALL C
WHERE c.customer_id = p_cust_id(i)
GROUP BY C.CUSTOMER_ID,
       C.CUSTOMER_SITE_USE_ID,
       C.INVOICE_CURRENCY_CODE ,
       C.ORG_ID
UNION ALL
SELECT  /*+ LEADING a1 INDEX (B ar_cash_receipts_u1) */
        A1.CUSTOMER_ID,
        A1.CUSTOMER_SITE_USE_ID,
        A1.CURRENCY,
        A1.ORG_ID ,
        0 OP_INV_SUM,
       0 OP_INV_COUNT,
       0 OP_CM_SUM,
       0 OP_CM_COUNT,
       0 OP_CB_SUM,
       0 OP_CB_COUNT,
       0 OP_DEP_SUM,
       0 OP_DEP_COUNT,
       0 OP_DM_SUM,
       0 OP_DM_COUNT,
       0 OP_BR_SUM,
       0 OP_BR_COUNT,
       0 UNRESOLVED_CASH_VALUE,
       0 UNRESOLVED_CASH_COUNT,
       0 PAST_DUE_INV_VALUE,
       0 PAST_DUE_INV_COUNT,
       0 INV_AMT_IN_DISPUTE,
       0 INV_DISPUTE_COUNT,
       0 BEST_CURRENT_RECEIVABLES_ADO,
       0 RECEIPT_AT_RISK_AMT,
       B.AMOUNT         LAST_RECEIPT_AMOUNT,
       B.RECEIPT_DATE   LAST_RECEIPT_DATE,
       B.RECEIPT_NUMBER LAST_RECEIPT_NUMBER,
       0 PENDING_ADJ_AMT
FROM (
select /*+ INDEX (cr ar_cash_receipts_n2) */
       cr.pay_from_customer  customer_id,
       nvl(cr.customer_site_use_id, -99) customer_site_use_id,
       cr.currency_code currency,
       cr.org_id,
       to_number(substr(max(
          to_char(cr.receipt_date, 'YYYYMMDD') ||
          ltrim(to_char(cr.cash_receipt_id, '0999999999999999999999'))),9)) last_cash_receipt_id
from   ar_cash_receipts_all cr
where  NVL(cr.confirmed_flag, 'Y') = 'Y'
and    cr.reversal_date is null
and    cr.pay_from_customer = p_cust_id(i)
and    cr.type = 'CASH'
group by pay_from_customer, customer_site_use_id, currency_code, org_id)  a1,
      AR_CASH_RECEIPTS_ALL B
WHERE a1.LAST_CASH_RECEIPT_ID  = B.CASH_RECEIPT_ID
UNION ALL
SELECT /*+ LEADING(cr) INDEX(cr,AR_CASH_RECEIPTS_N2) */
       CR.PAY_FROM_CUSTOMER CUSTOMER_ID,
       NVL(CR.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
       CR.CURRENCY_CODE CURRENCY_CODE,
       CR.ORG_ID ORG_ID,
       0 OP_INV_SUM,
       0 OP_INV_COUNT,
       0 OP_CM_SUM,
       0 OP_CM_COUNT,
       0 OP_CB_SUM,
       0 OP_CB_COUNT,
       0 OP_DEP_SUM,
       0 OP_DEP_COUNT,
       0 OP_DM_SUM,
       0 OP_DM_COUNT,
       0 OP_BR_SUM,
       0 OP_BR_COUNT,
       0 UNRESOLVED_CASH_VALUE,
       0 UNRESOLVED_CASH_COUNT,
       0 PAST_DUE_INV_VALUE,
       0 PAST_DUE_INV_COUNT,
       0 INV_AMT_IN_DISPUTE,
       0 INV_DISPUTE_COUNT,
       0 BEST_CURRENT_RECEIVABLES_ADO,
       SUM(DECODE(RAP.APPLIED_PAYMENT_SCHEDULE_ID, -2, NULL, CRH.AMOUNT))
                                                           RECEIPT_AT_RISK_AMT,
       0 LAST_RECEIPT_AMOUNT,
       TO_DATE(NULL) LAST_RECEIPT_DATE,
       NULL LAST_RECEIPT_NUMBER,
       0 PENDING_ADJ_AMT
 FROM AR_CASH_RECEIPTS_ALL CR,
      AR_CASH_RECEIPT_HISTORY_ALL CRH,
      AR_RECEIVABLE_APPLICATIONS_ALL RAP
 WHERE NVL(CR.CONFIRMED_FLAG, 'Y') = 'Y'
   AND CR.REVERSAL_DATE IS NULL
   AND CR.CASH_RECEIPT_ID = CRH.CASH_RECEIPT_ID
   AND CR.PAY_FROM_CUSTOMER = p_cust_id(i)
   AND CRH.CURRENT_RECORD_FLAG = 'Y'
   AND CRH.STATUS NOT IN (DECODE (CRH.FACTOR_FLAG, 'Y', 'RISK_ELIMINATED',
                                        'N', 'CLEARED'), 'REVERSED')
   AND RAP.CASH_RECEIPT_ID(+) = CR.CASH_RECEIPT_ID
   AND RAP.APPLIED_PAYMENT_SCHEDULE_ID(+) = -2
 GROUP BY CR.PAY_FROM_CUSTOMER,NVL(CR.CUSTOMER_SITE_USE_ID,-99),
          CR.ORG_ID,CR.CURRENCY_CODE
) D
GROUP BY D.CUSTOMER_ID,D.CUSTOMER_SITE_USE_ID,D.CURRENCY_CODE,D.ORG_ID);
Line: 1631

  INSERT into ar_trx_summary
   (CUST_ACCOUNT_ID,
    SITE_USE_ID,
    CURRENCY,
    ORG_ID,
    AS_OF_DATE,
    last_update_date,
    last_updated_by,
    creation_date,
    created_by,
    last_update_login,
    TOTAL_INVOICES_VALUE,
    TOTAL_INVOICES_COUNT,
    TOTAL_CREDIT_MEMOS_VALUE ,
    TOTAL_CREDIT_MEMOS_COUNT,
    TOTAL_CHARGEBACK_VALUE,
    TOTAL_CHARGEBACK_COUNT,
    TOTAL_DEPOSITS_VALUE,
    TOTAL_DEPOSITS_COUNT,
    TOTAL_DEBIT_MEMOS_VALUE,
    TOTAL_DEBIT_MEMOS_COUNT,
    TOTAL_BILLS_RECEIVABLES_VALUE,
    TOTAL_BILLS_RECEIVABLES_COUNT,
    TOTAL_CASH_RECEIPTS_VALUE,
    TOTAL_CASH_RECEIPTS_COUNT,
    COUNT_OF_DISC_INV_INST,
    DAYS_CREDIT_GRANTED_SUM,
    COUNT_OF_INV_INST_PAID_LATE,
    COUNT_OF_TOT_INV_INST_PAID,
    INV_PAID_AMOUNT,
    INV_INST_PMT_DAYS_SUM,
    NSF_STOP_PAYMENT_COUNT,
    NSF_STOP_PAYMENT_AMOUNT,
    SUM_APP_AMT,
    TOTAL_EARNED_DISC_VALUE,
    TOTAL_EARNED_DISC_COUNT,
    TOTAL_UNEARNED_DISC_VALUE,
    TOTAL_UNEARNED_DISC_COUNT,
    SUM_APP_AMT_DAYS_LATE,
    TOTAL_ADJUSTMENTS_VALUE,
    TOTAL_ADJUSTMENTS_COUNT)
    ( select D.customer_id,
        D.customer_site_use_id,
        D.currency_code,
        D.org_id,
        D.as_of_date,
        sysdate,
        -2003,
        sysdate,
        -2003,
        -2003,
        sum(decode(D.TOT_INV_SUM,0,null,D.TOT_INV_SUM)) TOT_INV_SUM,
        sum(decode(D.TOT_INV_COUNT,0,null,D.TOT_INV_COUNT)) TOT_INV_COUNT,
        SUM(decode(D.TOT_CM_SUM,0,null,D.TOT_CM_SUM)) TOT_CM_SUM,
        SUM(decode(D.TOT_CM_COUNT,0,null,D.TOT_CM_COUNT)) TOT_CM_COUNT,
        sum(decode(D.TOT_CB_SUM,0,null,D.TOT_CB_SUM)) TOT_CB_SUM,
        SUM(decode(D.TOT_CB_COUNT,0,null,D.TOT_CB_COUNT)) TOT_CB_COUNT,
        SUM(decode(D.TOT_DEP_SUM,0,null,D.TOT_DEP_SUM)) TOT_DEP_SUM,
        SUM(decode(D.TOT_DEP_COUNT,0,null,D.TOT_DEP_COUNT)) TOT_DEP_COUNT,
        SUM(decode(D.TOT_DM_SUM,0,null,D.TOT_DM_SUM)) TOT_DM_SUM,
        SUM(decode(D.TOT_DM_COUNT,0,null,D.TOT_DM_COUNT)) TOT_DM_COUNT,
        SUM(decode(D.TOT_BR_SUM,0,null,D.TOT_BR_SUM)) TOT_BR_SUM,
        SUM(decode(D.TOT_BR_COUNT,0,null,D.TOT_BR_COUNT)) TOT_BR_COUNT,
        SUM(decode(D.TOT_PMT_SUM,0,null,D.TOT_PMT_SUM)) TOT_PMT_SUM,
        SUM(decode(D.TOT_PMT_COUNT,0,null,D.TOT_PMT_COUNT)) TOT_PMT_COUNT,
        SUM(decode(D.disc_inv_inst_count,0,null,D.disc_inv_inst_count)) disc_inv_inst_count,
        SUM(decode(D.days_credit_granted_sum,0,null,D.days_credit_granted_sum)) days_credit_granted_sum,
        SUM(decode(D.COUNT_OF_INV_INST_PAID_LATE,0,null,D.COUNT_OF_INV_INST_PAID_LATE)) COUNT_OF_INV_INST_PAID_LATE,
        SUM(decode(D.COUNT_OF_TOT_INV_INST_PAID,0,null,D.COUNT_OF_TOT_INV_INST_PAID)) COUNT_OF_TOT_INV_INST_PAID,
        SUM(decode(D.INV_PAID_AMOUNT,0,null,D.INV_PAID_AMOUNT)) INV_PAID_AMOUNT,
        SUM(decode(D.inv_inst_pmt_days_sum,0,null,D.inv_inst_pmt_days_sum)) inv_inst_pmt_days_sum,
        sum(decode(D.NSF_STOP_PAYMENT_COUNT,0,null,D.NSF_STOP_PAYMENT_COUNT)) NSF_STOP_PAYMENT_COUNT,
        sum(decode(D.NSF_STOP_PAYMENT_AMOUNT,0,null,D.NSF_STOP_PAYMENT_AMOUNT)) NSF_STOP_PAYMENT_AMOUNT,
        sum(decode(D.sum_amt_applied,0,null,D.sum_amt_applied)) sum_amt_applied,
        sum(decode(D.edisc_taken,0,null,D.edisc_taken)) edisc_taken,
        sum(decode(D.edisc_taken,0,null,D.edisc_count)) edisc_count,
        sum(decode(D.unedisc_taken,0,null,D.unedisc_taken)) unedisc_taken,
        sum(decode(D.unedisc_taken,0,null,D.unedisc_count)) unedisc_count,
        sum(decode(D.app_amt_days_late,0,null,D.app_amt_days_late)) app_amt_days_late,
        sum(decode(D.adj_amount,0,null,D.adj_amount)) adj_amount,
        sum(decode(D.adj_count,0,null,D.adj_count)) adj_count
from ( select  C.customer_id,
        C.customer_site_use_id,
        C.currency_code,
        C.org_id,
        C.trx_date as_of_date,
        sum(DECODE(C.class,'INV',C.amount_due_original,0 ))     TOT_INV_SUM,
        count(decode(C.class,'INV',C.payment_schedule_id,null)) TOT_INV_COUNT,
        sum(DECODE(C.class,'CM',C.amount_due_original,0 ))      TOT_CM_SUM,
        count(decode(C.class,'CM',C.payment_schedule_id,null))  TOT_CM_COUNT,
        sum(DECODE(C.class,'CB',C.amount_due_original,0 ))      TOT_CB_SUM,
        count(decode(C.class,'CB',C.payment_schedule_id,null))  TOT_CB_COUNT,
        sum(DECODE(C.class,'DEP',C.amount_due_original,0 ))     TOT_DEP_SUM,
        count(decode(C.class,'DEP',C.payment_schedule_id,null)) TOT_DEP_COUNT,
        sum(DECODE(C.class,'DM',C.amount_due_original,0 ))      TOT_DM_SUM,
        count(decode(C.class,'DM',C.payment_schedule_id,null))  TOT_DM_COUNT,
        sum(DECODE(C.class,'BR',C.amount_due_original,0))       TOT_BR_SUM,
        count(decode(C.class,'BR',C.payment_schedule_id,null))  TOT_BR_COUNT,
        sum(DECODE(C.class,'PMT',C.amount_due_original * -1 ,0 ))     TOT_PMT_SUM,
        count(decode(C.class,'PMT',C.payment_schedule_id,null)) TOT_PMT_COUNT,
        sum(DECODE(C.class, 'INV', DECODE((nvl(C.edisc_taken,0) +
               nvl(C.unedisc_taken,0)), 0, 0, 1),0))            DISC_INV_INST_COUNT,
        sum(decode(C.class,'INV',((C.due_date - C.trx_date)*(nvl(C.amount_due_original,0)+
                                   nvl(C.ADJ_AMOUNT,0))),null)) DAYS_CREDIT_GRANTED_SUM,
        sum(decode(C.class,'INV',
                      DECODE(sign(NVL(C.AMOUNT_APPLIED,0)),0,null,
                          DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                           - NVL(C.AMOUNT_APPLIED,0)
                           - nvl(C.edisc_taken,0)
                           - nvl(C.unedisc_taken,0)
                           + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL),
                            null,
                            decode(sign(C.due_date - C.actual_date_closed),
                            -1, 1,null))),null))                COUNT_OF_INV_INST_PAID_LATE,
        sum(decode(C.class,'INV',
                       DECODE(sign(NVL(C.AMOUNT_APPLIED,0)),0,null,
                           DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                           - NVL(C.AMOUNT_APPLIED,0)
                           - nvl(C.edisc_taken,0)
                           - nvl(C.unedisc_taken,0)
                           + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL)
                           ,null,
                            1)),null))                           COUNT_OF_TOT_INV_INST_PAID,
        sum(decode(C.class,'INV',DECODE(SIGN((C.AMOUNT_DUE_ORIGINAL
                   - NVL(C.AMOUNT_APPLIED,0)
                   - nvl(C.edisc_taken,0)
                   - nvl(C.unedisc_taken,0)
                   + NVL(C.ADJ_AMOUNT,0))),SIGN(C.AMOUNT_DUE_ORIGINAL),
                    null,nvl(C.amount_applied,0)),null))     INV_PAID_AMOUNT,
        sum(decode(C.class,'INV',1,null))           COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days_sum,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        0 ADJ_AMOUNT,
        0 ADJ_COUNT
 FROM  (
 SELECT A.CUSTOMER_ID,
        A.CUSTOMER_SITE_USE_ID,
        A.CURRENCY_CODE,
        A.ORG_ID ,
        A.CLASS,
        A.DUE_DATE,
        A.TRX_DATE,
        A.actual_date_closed,
        A.PAYMENT_SCHEDULE_ID,
        A.AMOUNT_DUE_ORIGINAL,
        A.AMOUNT_IN_DISPUTE,
        A.AMOUNT_APPLIED,
        A.edisc_taken,
        A.unedisc_taken,
        SUM(ADJ.amount) adj_amount
  FROM (
  SELECT  PS.CUSTOMER_ID,
       NVL(PS.CUSTOMER_SITE_USE_ID,-99) CUSTOMER_SITE_USE_ID,
       PS.INVOICE_CURRENCY_CODE CURRENCY_CODE,
       PS.ORG_ID,
       PS.CLASS,
       PS.DUE_DATE DUE_DATE,
       PS.TRX_DATE,
       PS.actual_date_closed,
       PS.PAYMENT_SCHEDULE_ID,
       PS.AMOUNT_DUE_ORIGINAL,
       PS.AMOUNT_IN_DISPUTE AMOUNT_IN_DISPUTE,
       SUM(  RA.AMOUNT_APPLIED) AMOUNT_APPLIED,
       sum(decode(ps.class, 'INV',
                decode(ra.earned_discount_taken,0,
                         null,ra.earned_discount_taken), null)) edisc_taken,
       sum(decode(ps.class, 'INV',
                decode(ra.unearned_discount_taken,0,
                         null,ra.unearned_discount_taken), null)) unedisc_taken
   FROM  AR_PAYMENT_SCHEDULES_all ps,
         AR_RECEIVABLE_APPLICATIONS_ALL RA
  WHERE  RA.APPLIED_PAYMENT_SCHEDULE_ID(+) = PS.PAYMENT_SCHEDULE_ID
    AND  RA.DISPLAY(+) = 'Y'
    AND  RA.STATUS(+) = 'APP'
    AND  PS.CUSTOMER_ID = p_cust_id(i)
    AND  RA.APPLY_DATE(+) >= add_months(sysdate, -24)
    AND  PS.TRX_DATE >= add_months(sysdate, -24)
 GROUP BY PS.CUSTOMER_ID,  NVL(PS.CUSTOMER_SITE_USE_ID,-99),
          PS.INVOICE_CURRENCY_CODE, PS.ORG_ID,
          PS.CLASS, PS.TRX_DATE, PS.DUE_DATE,
          PS.AMOUNT_DUE_ORIGINAL,
          PS.amount_in_dispute,
          ps.actual_date_closed, PS.PAYMENT_SCHEDULE_ID
       ) A,
         AR_ADJUSTMENTS_ALL ADJ
  WHERE A.PAYMENT_SCHEDULE_ID = ADJ.PAYMENT_SCHEDULE_ID(+)
    AND  ADJ.STATUS(+) = 'A'
 GROUP BY A.CUSTOMER_ID,  A.CUSTOMER_SITE_USE_ID,
          A.CURRENCY_CODE, A.ORG_ID,
          A.CLASS, A.TRX_DATE,A.DUE_DATE,
          A.AMOUNT_DUE_ORIGINAL, A.AMOUNT_IN_DISPUTE,
          A.actual_date_closed,A.AMOUNT_APPLIED,
          A.edisc_taken,A.unedisc_taken,
          A.PAYMENT_SCHEDULE_ID
      ) C
 group by C.customer_id,
        C.customer_site_use_id,
        C.currency_code,
        C.org_id,
        C.trx_date
UNION
select  cr.pay_from_customer customer_id,
        nvl(cr.customer_site_use_id,-99) customer_site_use_id,
        cr.currency_code invoice_currency_code,
        cr.org_id,
        cr.reversal_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days,
        count(cr.cash_receipt_id) NSF_STOP_PAYMENT_COUNT,
        sum(cr.amount) NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        0 adj_amount,
        0 adj_count
 from   ar_cash_receipts_all cr,
        ar_cash_receipt_history_all crh
 where  cr.cash_receipt_id = crh.cash_receipt_id
    and crh.current_record_flag = 'Y'
    and crh.status = 'REVERSED'
    and cr.status = 'REV'
    and cr.reversal_category = 'NSF'
    and cr.reversal_date > add_months(sysdate, -24)
    and cr.pay_from_customer = p_cust_id(i)
 group by cr.pay_from_customer,
        nvl(cr.customer_site_use_id,-99),
        cr.currency_code,
        cr.org_id,
        cr.reversal_date
UNION
select  customer_id,
        customer_site_use_id,
        invoice_currency_code,
        org_id,
        apply_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        sum(decode(inv_inst_pmt_days,0,null,inv_inst_pmt_days)) inv_inst_pmt_days,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        sum(decode(sum_amt_applied,0,null,sum_amt_applied)) sum_amt_applied,
        sum(decode(edisc_taken,0,null,edisc_taken)) edisc_taken,
        sum(decode(edisc_taken,0,null,edisc_count)) edisc_count,
        sum(decode(unedisc_taken,0,null,unedisc_taken)) unedisc_taken,
        sum(decode(unedisc_taken,0,null,unedisc_count)) unedisc_count,
        sum(decode(app_amt_days_late,0,null,app_amt_days_late)) app_amt_days_late,
        0 adj_amount,
        0 adj_count
from ( select ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        trunc(ra.apply_date) apply_date,
        ra.cash_receipt_id,
        ra.applied_payment_schedule_id,
        sum(decode(ps.class, 'INV',ra.amount_applied,0)) sum_amt_applied,
        sum(decode(ps.class, 'INV',((ra.apply_date - (ps.trx_date + nvl(rt.printing_lead_days,0)))
                                  * (nvl(ra.amount_applied,0))),null)) inv_inst_pmt_days,
        sum(decode(ps.class, 'INV', decode(ra.earned_discount_taken,0,null,ra.earned_discount_taken), null)) edisc_taken,
        sum(decode(ps.class, 'INV',decode(nvl(ra.earned_discount_taken,0),0,null,1),null)) edisc_count,
        sum(decode(ps.class, 'INV', decode(ra.unearned_discount_taken,0,null,ra.unearned_discount_taken), null)) unedisc_taken,
        sum(decode(ps.class, 'INV',decode(nvl(ra.unearned_discount_taken,0),0,null,1),null)) unedisc_count,
        sum(decode(ps.class, 'INV',
        (ra.apply_date - ps.due_date) * ra.amount_applied, null)) app_amt_days_late
 from   ar_payment_schedules_all ps,
        ra_terms_b rt,
        ar_receivable_applications_all ra
 where  ps.payment_schedule_id = ra.applied_payment_schedule_id
  and   ps.customer_id = p_cust_id(i)
  and   ps.term_id = rt.term_id(+)
  and   ra.status =  'APP'
  and   ra.display = 'Y'
  and   ra.application_type = 'CASH'
  and   ra.apply_date >= add_months(sysdate, -24)
  group by ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        trunc(ra.apply_date),
        ra.cash_receipt_id,
        ra.applied_payment_schedule_id
        )
  group by customer_id,
        customer_site_use_id,
        invoice_currency_code,
        org_id,
        apply_date
UNION
select  ps.customer_id,
        ps.customer_site_use_id,
        ps.invoice_currency_code,
        ps.org_id,
        adj.apply_date as_of_date,
        0 TOT_INV_SUM,
        0 TOT_INV_COUNT,
        0 TOT_CM_SUM,
        0 TOT_CM_COUNT,
        0 TOT_CB_SUM,
        0 TOT_CB_COUNT,
        0 TOT_DEP_SUM,
        0 TOT_DEP_COUNT,
        0 TOT_DM_SUM,
        0 TOT_DM_COUNT,
        0 TOT_BR_SUM,
        0 TOT_BR_COUNT,
        0 TOT_PMT_SUM,
        0 TOT_PMT_COUNT,
        0 disc_inv_inst_count,
        0 days_credit_granted_sum,
        0 COUNT_OF_INV_INST_PAID_LATE,
        0 COUNT_OF_TOT_INV_INST_PAID,
        0 INV_PAID_AMOUNT,
        0 COUNT_OF_TOT_INV_INST,
        0 inv_inst_pmt_days,
        0 NSF_STOP_PAYMENT_COUNT,
        0 NSF_STOP_PAYMENT_AMOUNT,
        0 sum_amt_applied,
        0 edisc_taken,
        0 edisc_count,
        0 unedisc_taken,
        0 unedisc_count,
        0 app_amt_days_late,
        sum(adj.amount) adj_amount,
        count(adjustment_id) adj_count
 from   ar_payment_schedules_all ps,
        ar_adjustments_all adj
 where  ps.customer_id = p_cust_id(i)
   and  ps.payment_schedule_id = adj.payment_schedule_id
   and  adj.receivables_trx_id(+) > 0
   and  ps.trx_date > add_months(sysdate, -24)
   and  adj.status = 'A'
   and  adj.apply_date > add_months(sysdate, -24)
group by ps.customer_id,
         ps.customer_site_use_id,
         ps.invoice_currency_code,
         ps.org_id,
         adj.apply_date
) D
group by D.customer_id,
        D.customer_site_use_id,
        D.currency_code,
        D.org_id,
        D.as_of_date);
Line: 2041

text_select     VARCHAR2(4000);
Line: 2042

text_update     VARCHAR2(4000);
Line: 2050

  text_select :=
     'SELECT customer_id, customer_site_use_id,
       invoice_currency_code, trunc(trx_date), amount,customer_trx_id
     FROM (
      select customer_id, customer_site_use_id,
             invoice_currency_code,
             trx_date, amount,customer_trx_id,
             RANK() OVER (PARTITION BY customer_id,
                                       customer_site_use_id,
                                       invoice_currency_code,
                                       trx_date
                          ORDER BY amount desc, trx_date desc,
                                      customer_trx_id desc) rank_amount
      from ( select ps.customer_id, ps.customer_site_use_id,
                    ps.invoice_currency_code, ps.customer_trx_id,
                    ps.trx_date, SUM(ps.amount_due_original) amount
             from   ar_payment_schedules_all ps,
                    ar_cust_search_gt gt
             where  ps.customer_id = gt.customer_id
             and    ps.class = '||''''||'INV'||''''||
              ' and  trx_date >= add_months(sysdate, -24)
             group by ps.customer_id, ps.customer_site_use_id,
                      ps.invoice_currency_code, ps.trx_date, ps.customer_trx_id
            )
     )
     WHERE rank_amount = 1';
Line: 2079

     arp_standard.debug(text_select);
Line: 2082

  text_update := 'Update /*+ INDEX(ats AR_TRX_SUMMARY_U1) */ ar_trx_summary ats
                    set LARGEST_INV_AMOUNT = :amount,
                        LARGEST_INV_CUST_TRX_ID = :cust_trx_id,
                        LARGEST_INV_DATE = :trx_date,
                        LAST_UPDATE_DATE  = sysdate,
                        LAST_UPDATED_BY   = FND_GLOBAL.user_id,
                        LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
                  where cust_account_id = :customer_id
                    and SITE_USE_ID = :site_use_id
                    and CURRENCY = :currency_code
                    and AS_OF_DATE = :trx_date';
Line: 2097

  dbms_sql.parse(v_cursor1,text_select,DBMS_SQL.V7);
Line: 2098

  dbms_sql.parse(v_cursor2,text_update,DBMS_SQL.V7);
Line: 2114

    v_customer_id.delete;
Line: 2115

    v_site_use_id.delete;
Line: 2116

    v_currency_code.delete;
Line: 2117

    v_trx_date.delete;
Line: 2118

    v_cust_trx_id.delete;
Line: 2119

    v_amount.delete;
Line: 2172

text_select     VARCHAR2(4000);
Line: 2173

text_update     VARCHAR2(4000);
Line: 2183

  text_select :=
'with cust_list as
   (select /*+ cardinality(g,1) */ customer_id from ar_cust_search_gt g)
select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , cum_balance
from (
select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , sum(net_amount) OVER (PARTITION BY customer_id,
        customer_site_use_id, invoice_currency_code
        ORDER BY customer_id, customer_site_use_id,
        invoice_currency_code ROWS UNBOUNDED PRECEDING) cum_balance
from (
select customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date , sum(net_amount) net_amount
from
(select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        ps.trx_date as_of_date, sum(ps.amount_due_original) net_amount
 from  ar_payment_schedules_all ps
 where ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
 and ps.customer_id in (select customer_id from cust_list)
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, ps.trx_date
 union all
 select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        ra.apply_date as_of_date,
        sum(-ra.amount_applied
            -nvl(ra.earned_discount_taken,0)
            -nvl(ra.unearned_discount_taken,0)) net_amount
 from ar_payment_schedules_all ps,
      ar_receivable_applications_all ra
 where ps.payment_schedule_id = ra.applied_payment_schedule_id
  and  ps.customer_id in (select customer_id from cust_list)
  and  ra.status = '||''''||'APP'||''''||'
  and  ra.application_type = '||''''||'CASH'||''''||'
  and  nvl(ra.confirmed_flag,'||''''||'Y'||''''||') = '||''''||'Y'||''''||'
  and  ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, ra.apply_date
 union all
 select ps.customer_id, ps.customer_site_use_id, ps.invoice_currency_code,
        adj.apply_date as_of_date, sum(adj.amount)
 from  ar_payment_schedules_all ps,
       ar_adjustments_all adj
 where ps.payment_schedule_id = adj.payment_schedule_id
  and  ps.class in ('||''''||'INV'||''''||','
                     ||''''||'CM'||''''||','
                     ||''''||'DM'||''''||','
                     ||''''||'DEP'||''''||','
                     ||''''||'BR'||''''||','
                     ||''''||'CB'||''''||')
  and  adj.status = '||''''||'A'||''''||'
  and  ps.customer_id in (select customer_id from cust_list)
 group by ps.customer_id, ps.customer_site_use_id,
          ps.invoice_currency_code, adj.apply_date
)
group by customer_id, customer_site_use_id, invoice_currency_code,
       as_of_date
order by customer_id, customer_site_use_id,  invoice_currency_code,
       as_of_date )
       )
 where as_of_date > add_months(sysdate , -24)';
Line: 2257

     arp_standard.debug(text_select);
Line: 2260

  text_update :=
             'Update /*+ INDEX(ats AR_TRX_SUMMARY_U1) */ ar_trx_summary ats
               set   OP_BAL_HIGH_WATERMARK      = :cum_balance,
                     OP_BAL_HIGH_WATERMARK_DATE = :as_of_date,
                     LAST_UPDATE_DATE  = sysdate,
                     LAST_UPDATED_BY   = FND_GLOBAL.user_id,
                     LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
                  where cust_account_id = :customer_id
                    and SITE_USE_ID = :site_use_id
                    and CURRENCY = :currency_code
                    and AS_OF_DATE = :as_of_date';
Line: 2275

  dbms_sql.parse(v_cursor1,text_select,DBMS_SQL.V7);
Line: 2276

  dbms_sql.parse(v_cursor2,text_update,DBMS_SQL.V7);
Line: 2291

    v_customer_id.delete;
Line: 2292

    v_site_use_id.delete;
Line: 2293

    v_currency_code.delete;
Line: 2294

    v_trx_date.delete;
Line: 2295

    v_cum_balance.delete;
Line: 2344

       p_fast_delete IN VARCHAR2 DEFAULT 'Y'
      ) IS

  l_worker_number   NUMBER;
Line: 2411

     IF p_fast_delete = 'Y'
     THEN
        clear_summary_tables('A');  -- clear both tables
Line: 2420

                            p_fast_delete);
Line: 2435

  /* Handle local delete when p_fast_delete = 'N'
     Note that this does not commit changes until the worker
     completes */
  IF NVL(p_fast_delete,'N') <> 'Y'
  THEN
     clear_summary_by_customer(t_cust_id);
Line: 2505

       SELECT *
       FROM   ar_sum_ref_event_hist;
Line: 2594

     l_list.DELETE;
Line: 2621

  /* Delete any remaining rows (for refresh) from conc table
     This is really just precautionary in that (in theory), no events
     should be held at this point. */
  DELETE FROM AR_CONC_PROCESS_REQUESTS
   WHERE CONCURRENT_PROGRAM_NAME = 'ARSUMREF';