DBA Data[Home] [Help]

APPS.FII_AR_FACTS_AGING_PKG SQL Statements

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

Line: 71

G_LAST_UPDATE_DATE DATE;
Line: 124

  select bb.name,
		 bbc.range1_low, bbc.range1_high-1,
         bbc.range2_low, bbc.range2_high-1,
         bbc.range3_low, bbc.range3_high-1
  into g_rct_bucket_name,
	   g_rct_bucket_1_low, g_rct_bucket_1_high,
       g_rct_bucket_2_low, g_rct_bucket_2_high,
       g_rct_bucket_3_low, g_rct_bucket_3_high
  from bis_bucket_customizations bbc,
       bis_bucket_vl bb
  where bb.short_name  = 'FII_DBI_UNAPP_RECEIPT_BUCKET'
  and   bbc.bucket_id  = bb.bucket_id;
Line: 193

  select bb.name,
		 bbc.range1_low, bbc.range1_high-1,
         bbc.range2_low, bbc.range2_high-1,
         bbc.range3_low, bbc.range3_high-1
  into g_current_bucket_name,
	   g_current_bucket_1_low, g_current_bucket_1_high,
       g_current_bucket_2_low, g_current_bucket_2_high,
       g_current_bucket_3_low, g_current_bucket_3_high
  from bis_bucket_customizations bbc,
       bis_bucket_vl bb
  where bb.short_name  = 'FII_DBI_CURRENT_REC_BUCKET'
  and   bbc.bucket_id  = bb.bucket_id;
Line: 264

  select bb.name,
		 bbc.range1_low, bbc.range1_high-1,
         bbc.range2_low, bbc.range2_high-1,
         bbc.range3_low, bbc.range3_high-1,
         bbc.range4_low, bbc.range4_high-1,
         bbc.range5_low, bbc.range5_high-1,
         bbc.range6_low, bbc.range6_high-1,
         bbc.range7_low, bbc.range7_high-1
  into g_past_due_bucket_name,
	   g_past_due_bucket_1_low, g_past_due_bucket_1_high,
       g_past_due_bucket_2_low, g_past_due_bucket_2_high,
       g_past_due_bucket_3_low, g_past_due_bucket_3_high,
       g_past_due_bucket_4_low, g_past_due_bucket_4_high,
       g_past_due_bucket_5_low, g_past_due_bucket_5_high,
       g_past_due_bucket_6_low, g_past_due_bucket_6_high,
       g_past_due_bucket_7_low, g_past_due_bucket_7_high
  from bis_bucket_customizations bbc,
       bis_bucket_vl bb
  where bb.short_name  = 'FII_DBI_PAST_DUE_REC_BUCKET'
  and   bbc.bucket_id  = bb.bucket_id;
Line: 511

PROCEDURE Insert_Rates IS

BEGIN

  g_state := 'Loading data into rates table FII_AR_CURR_RATES_T';
Line: 524

  INSERT /*+ append */ INTO FII_AR_CURR_RATES_T
  (SELECT sob.currency_code fc_code,
	        Decode(NVL(cur.minimum_accountable_unit,
                       power( 10, (-1 * cur.precision))),
                   null, 0.01,
                   0, 1,
                   NVL(cur.minimum_accountable_unit,
                       power( 10, (-1 * cur.precision)))) functional_mau,
	        conversion_date,
	        MAX(FII_CURRENCY.Get_FC_to_PGC_Rate (v.tc_code,
                     sob.currency_code, v.conversion_date)) prim_conversion_rate,
	        MAX(FII_CURRENCY.Get_FC_to_SGC_Rate (v.tc_code,
                     sob.currency_code, v.conversion_date)) sec_conversion_rate,
  		    sysdate,       --CREATION_DATE,
		    g_fii_user_id, --CREATED_BY,
		    sysdate,       --LAST_UPDATE_DATE,
		    g_fii_user_id, --LAST_UPDATED_BY,
		    g_fii_login_id --LAST_UPDATE_LOGIN
	 FROM (--Currency rates for payment schedules and receipts
	       SELECT /*+ no_merge parallel(sch) */ DISTINCT
				  sch.invoice_currency_code tc_code,
	              sch.org_id,
	              trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) conversion_date
	    	   FROM AR_PAYMENT_SCHEDULES_ALL sch
	    	   WHERE sch.class IN ('INV','DM','CB','CM','DEP','BR','PMT')
	    	   AND decode(g_collection_criteria,
                                         'GL', sch.gl_date,
                                         sch.trx_date) >= g_global_start_date

              UNION

              --receipts created prior to GSD and applied after GSD
              SELECT  DISTINCT
                      sch.invoice_currency_code tc_code,
	              sch.org_id,
	              trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) conversion_date
	    	  FROM AR_PAYMENT_SCHEDULES_ALL sch,
                       AR_RECEIVABLE_APPLICATIONS_ALL app,
                       AR_PAYMENT_SCHEDULES_ALL trxsch
                  WHERE sch.class = 'PMT'
                  AND sch.payment_schedule_id = app.payment_schedule_id
                  AND app.applied_customer_trx_id = trxsch.customer_trx_id
                  AND app.status = 'APP'
                  AND decode(g_collection_criteria,
                                         'GL', sch.gl_date,
                                         sch.trx_date) < g_global_start_date
                  AND decode(g_collection_criteria,
                                         'GL', trxsch.gl_date,
                                         trxsch.trx_date) >= g_global_start_date
	       ) v,
	       ar_system_parameters_all par,
	       gl_sets_of_books sob,
	       fnd_currencies cur
	 WHERE v.org_id = par.org_id
	 AND par.set_of_books_id = sob.set_of_books_id
	 AND cur.currency_code = sob.currency_code
     GROUP BY sob.currency_code,
	          cur.minimum_accountable_unit,
              cur.precision,
  	          conversion_date);
Line: 597

update FII_AR_CURR_RATES_T
set prim_conversion_rate=1
where prim_conversion_rate<=0;
Line: 601

update FII_AR_CURR_RATES_T
set sec_conversion_rate=1
where sec_conversion_rate<=0;
Line: 620

END Insert_Rates;
Line: 636

  SELECT DISTINCT fc_code From_Currency,
         decode(prim_conversion_rate,-3,  to_date('01/01/1999','MM/DD/YYYY'),
         conversion_date) Trx_Date
  FROM   FII_AR_CURR_RATES_T RATES
  WHERE  RATES.Prim_Conversion_Rate < 0 ;
Line: 643

  SELECT DISTINCT fc_code From_Currency,
         decode(sec_conversion_rate,-3,  to_date('01/01/1999','MM/DD/YYYY'),
         conversion_date) Trx_Date
  FROM   FII_AR_CURR_RATES_T RATES
  WHERE  RATES.Sec_Conversion_Rate < 0 ;
Line: 660

  SELECT COUNT(*)
  INTO   l_miss_rates_prim
  FROM   FII_AR_CURR_RATES_T RATES
  WHERE  RATES.Prim_Conversion_Rate < 0;
Line: 665

  SELECT COUNT(*)
  INTO   l_miss_rates_sec
  FROM   FII_AR_CURR_RATES_T RATES
  WHERE  RATES.Sec_Conversion_Rate < 0;
Line: 742

    INSERT /*+ append parallel(F) */ INTO FII_AR_PMT_SCHEDULES_F F
	 (payment_schedule_id,
	  time_id,
	  class,
	  amount_due_original_trx,
	  amount_due_original_func,
	  amount_due_original_prim,
	  amount_due_original_sec,
	  amount_due_remaining_trx,
	  amount_due_remaining_func,
	  amount_due_remaining_prim,
	  amount_due_remaining_sec,
	  trx_date,
	  gl_date,
	  filter_date,
	  due_date,
	  status,
	  customer_trx_id,
	  invoice_currency_code,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id,
	  user_id,
	  cust_trx_type_id,
	  transaction_number,
	  term_id,
	  terms_sequence_number,
	  batch_source_id,
	  earned_discount_amount_trx,
	  earned_discount_amount_func,
	  earned_discount_amount_prim,
	  earned_discount_amount_sec,
	  unearned_discount_amount_trx,
	  unearned_discount_amount_func,
	  unearned_discount_amount_prim,
	  unearned_discount_amount_sec,
	  adjusted_amount_trx,
	  adjusted_amount_func,
	  adjusted_amount_prim,
	  adjusted_amount_sec,
	  disputed_amount_trx,
	  disputed_amount_func,
	  disputed_amount_prim,
	  disputed_amount_sec,
	  order_ref_number,
	  actual_date_closed ,
	  exchange_rate,
	  exchange_date,
	  previous_customer_trx_id,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
    SELECT /*+ parallel(SCH) parallel(TRX) parallel(RT) parallel(SOB) */
          sch.payment_schedule_id,
          to_number(to_char(decode(g_collection_criteria,
                                  'GL', decode(tp.signed_flag, 'Y', h.gl_date, sch.gl_date),
                                  decode(tp.signed_flag, 'Y', h.trx_date, sch.trx_date)) , 'J')) time_id,
          sch.class,
          sch.amount_due_original amount_due_original_trx,
		  NVL(ROUND(sch.amount_due_original * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.amount_due_original,0)) amount_due_original_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) amount_due_original_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_original_sec,
          sch.amount_due_remaining amount_due_remaining_trx,
          NVL(ROUND(sch.amount_due_remaining * nvl(sch.exchange_rate,1) /
			  rt.functional_mau) * rt.functional_mau,
			  nvl(sch.amount_due_remaining,0)) amount_due_remaining_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau ) *
                    g_primary_mau) amount_due_remaining_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_remaining_sec,
          decode(tp.signed_flag, 'Y', trunc(h.trx_date), trunc(sch.trx_date)) trx_date,
          decode(tp.signed_flag, 'Y', trunc(h.gl_date), trunc(sch.gl_date)) gl_date,
	  decode(g_collection_criteria,
                 'GL', decode(tp.signed_flag, 'Y', h.gl_date, sch.gl_date),
                 decode(tp.signed_flag, 'Y', h.trx_date, sch.trx_date)) filter_date,
          trunc(sch.due_date),
          sch.status,
          sch.customer_trx_id,
          sch.invoice_currency_code,
          sch.customer_id bill_to_customer_id,
          sch.customer_site_use_id bill_to_site_use_id,
          sch.org_id,
          sch.created_by user_id,
          sch.cust_trx_type_id cust_trx_type_id,
          sch.trx_number transaction_number,
          sch.term_id,
 		  sch.terms_sequence_number,
          trx.batch_source_id,
          sch.discount_taken_earned earned_discount_amount_trx,
		  NVL(ROUND(sch.discount_taken_earned * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.discount_taken_earned,0))  earned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) earned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) earned_discount_amount_sec,
          nvl(sch.discount_taken_unearned,0)  unearned_discount_amount_trx,
		  NVL(ROUND(sch.discount_taken_unearned * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.discount_taken_unearned,0))  unearned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) unearned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) unearned_discount_amount_sec,
          nvl(sch.amount_adjusted,0) adjusted_amount_trx,
		  NVL(ROUND(sch.amount_adjusted * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.amount_adjusted,0)) adjusted_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) adjusted_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) adjusted_amount_sec,
          nvl(sch.amount_in_dispute,0) disputed_amount_trx,
		  NVL(ROUND(sch.amount_in_dispute * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau ,
				nvl(sch.amount_in_dispute,0)) disputed_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) disputed_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) disputed_amount_sec,
		  decode(trx.batch_source_id,
		   		 -1, trx.ct_reference,
		   		 null) order_ref_number,
		  sch.actual_date_closed,
		  nvl(sch.exchange_rate,1),
		  nvl(sch.exchange_date, sch.trx_date),
		  trx.previous_customer_trx_id,
		  sysdate,       --CREATION_DATE,
		  g_fii_user_id, --CREATED_BY,
		  sysdate,       --LAST_UPDATE_DATE,
		  g_fii_user_id, --LAST_UPDATED_BY,
		  g_fii_login_id --LAST_UPDATE_LOGIN
    FROM AR_PAYMENT_SCHEDULES_ALL sch,
 		 RA_CUSTOMER_TRX_ALL trx,
 		 FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob,
         AR_TRANSACTION_HISTORY_ALL h,
         RA_CUST_TRX_TYPES_ALL tp
    WHERE sch.class IN ('INV','DM','CB','CM','DEP','BR', 'PMT')
    AND decode(g_collection_criteria,
			   'GL', sch.gl_date,
			   sch.trx_date) >= g_global_start_date
    AND sch.customer_trx_id = trx.customer_trx_id (+)
    AND sch.customer_trx_id = h.customer_trx_id (+)
    AND sch.cust_trx_type_id = tp.cust_trx_type_id (+)
    AND sch.org_id = tp.org_id (+)
    AND (sch.class <> 'BR'
         OR (sch.class = 'BR' and tp.signed_flag = 'N' and h.current_record_flag = 'Y')
         OR (sch.class = 'BR' and tp.signed_flag = 'Y' and h.event = 'ACCEPTED'))

    AND sch.org_id = par.org_id
    AND par.set_of_books_id = sob.set_of_books_id
    AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date

    UNION ALL

    --PMT records which are created prior to GSD and applied after GSD
    SELECT DISTINCT
          sch.payment_schedule_id,
          to_number(to_char(decode(g_collection_criteria,
			   					   'GL', sch.gl_date,
			   					   sch.trx_date), 'J')) time_id,
          sch.class,
          sch.amount_due_original amount_due_original_trx,
		  NVL(ROUND(sch.amount_due_original * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.amount_due_original,0)) amount_due_original_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) amount_due_original_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_original_sec,
          sch.amount_due_remaining amount_due_remaining_trx,
          NVL(ROUND(sch.amount_due_remaining * nvl(sch.exchange_rate,1) /
			  rt.functional_mau) * rt.functional_mau,
			  nvl(sch.amount_due_remaining,0)) amount_due_remaining_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau ) *
                    g_primary_mau) amount_due_remaining_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_remaining_sec,
          sch.trx_date,
          sch.gl_date,
		  decode(g_collection_criteria,'GL',sch.gl_date,sch.trx_date) filter_date,
          sch.due_date,
          sch.status,
          sch.customer_trx_id,
          sch.invoice_currency_code,
          sch.customer_id bill_to_customer_id,
          sch.customer_site_use_id bill_to_site_use_id,
          sch.org_id,
          sch.created_by user_id,
          sch.cust_trx_type_id cust_trx_type_id,
          sch.trx_number transaction_number,
          sch.term_id,
 		  sch.terms_sequence_number,
          null batch_source_id,
          sch.discount_taken_earned earned_discount_amount_trx,
		  NVL(ROUND(sch.discount_taken_earned * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.discount_taken_earned,0))  earned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) earned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) earned_discount_amount_sec,
          nvl(sch.discount_taken_unearned,0)  unearned_discount_amount_trx,
		  NVL(ROUND(sch.discount_taken_unearned * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.discount_taken_unearned,0))  unearned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) unearned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) unearned_discount_amount_sec,
          nvl(sch.amount_adjusted,0) adjusted_amount_trx,
		  NVL(ROUND(sch.amount_adjusted * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau,
				nvl(sch.amount_adjusted,0)) adjusted_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) adjusted_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) adjusted_amount_sec,
          nvl(sch.amount_in_dispute,0) disputed_amount_trx,
		  NVL(ROUND(sch.amount_in_dispute * nvl(sch.exchange_rate,1) /
				rt.functional_mau) * rt.functional_mau ,
				nvl(sch.amount_in_dispute,0)) disputed_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) disputed_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) disputed_amount_sec,
		  null order_ref_number,
		  sch.actual_date_closed,
		  nvl(sch.exchange_rate,1),
		  nvl(sch.exchange_date, sch.trx_date),
		  null previous_customer_trx_id,
		  sysdate,       --CREATION_DATE,
		  g_fii_user_id, --CREATED_BY,
		  sysdate,       --LAST_UPDATE_DATE,
		  g_fii_user_id, --LAST_UPDATED_BY,
		  g_fii_login_id --LAST_UPDATE_LOGIN
    FROM AR_PAYMENT_SCHEDULES_ALL sch,
         AR_RECEIVABLE_APPLICATIONS_ALL app,
         AR_PAYMENT_SCHEDULES_ALL trxsch,
 	 FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob
    WHERE sch.class = 'PMT'
    AND sch.payment_schedule_id = app.payment_schedule_id
    AND app.applied_payment_schedule_id = trxsch.payment_schedule_id
    AND app.status = 'APP'
    AND decode(g_collection_criteria,
			   'GL', sch.gl_date,
			   sch.trx_date) < g_global_start_date
    AND decode(g_collection_criteria,
			   'GL', trxsch.gl_date,
			   trxsch.trx_date) >= g_global_start_date

    AND sch.org_id = par.org_id
    AND par.set_of_books_id = sob.set_of_books_id
    AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date;
Line: 1083

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_PMT_SCHEDULES_F');
Line: 1093

  select nvl(max(payment_schedule_id), -999)
  into l_max_pmt_schedule_id
  from fii_ar_pmt_schedules_f;
Line: 1097

  INSERT INTO fii_change_log
  (log_item, item_value, CREATION_DATE, CREATED_BY,
   LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
  (SELECT 'AR_MAX_PAYMENT_SCHEDULE_ID',
		l_max_pmt_schedule_id,
		sysdate,        --CREATION_DATE,
	    g_fii_user_id,  --CREATED_BY,
        sysdate,        --LAST_UPDATE_DATE,
	    g_fii_user_id,  --LAST_UPDATED_BY,
	    g_fii_login_id  --LAST_UPDATE_LOGIN
   FROM DUAL
   WHERE NOT EXISTS
  	  (select 1 from fii_change_log
	   where log_item = 'AR_MAX_PAYMENT_SCHEDULE_ID'));
Line: 1113

	  UPDATE fii_change_log
	  SET item_value = l_max_pmt_schedule_id,
	      last_update_date  = g_sysdate_time,
	      last_update_login = g_fii_login_id,
	      last_updated_by   = g_fii_user_id
	  WHERE log_item = 'AR_MAX_PAYMENT_SCHEDULE_ID';
Line: 1151

	INSERT INTO FII_AR_DISPUTE_HISTORY_F
     (dispute_history_id,
	  time_id,
	  dispute_amount_trx,
	  dispute_amount_func,
	  dispute_amount_prim,
	  dispute_amount_sec,
	  start_date,
	  end_date,
	  org_id,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  payment_schedule_id,
	  customer_trx_id,
	  due_date,
	  actual_date_closed,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
    SELECT /*+ parallel(DIS) parallel(SCH) parallel(RT) parallel(SOB) */
          dis.dispute_history_id,
	  to_number(to_char(dis.start_date, 'J')), --time_id,
	  dis.dispute_amount, --dis.dispute_amount_trx
	  NVL(ROUND(dis.dispute_amount * sch.exchange_rate / rt.functional_mau)
			* rt.functional_mau, nvl(dis.dispute_amount,0)), --dispute_amount_func
      DECODE(sch.invoice_currency_code,
            g_prim_currency, nvl(dis.dispute_amount,0),
            ROUND((nvl(dis.dispute_amount,0) * sch.exchange_rate *
                rt.prim_conversion_rate) / g_primary_mau) *
                g_primary_mau), --dispute_amount_prim
      DECODE(sch.invoice_currency_code,
            g_sec_currency, nvl(dis.dispute_amount,0),
            ROUND((nvl(dis.dispute_amount,0) * sch.exchange_rate *
                rt.sec_conversion_rate) / g_secondary_mau) *
                g_secondary_mau),  --dispute_amount_sec
	  dis.start_date,
	  dis.end_date,
	  sch.org_id,
	  sch.bill_to_customer_id,
	  sch.bill_to_site_use_id,
	  dis.payment_schedule_id,
	  sch.customer_trx_id,
	  sch.due_date,
	  sch.actual_date_closed,
	  sysdate,       --CREATION_DATE,
	  g_fii_user_id, --CREATED_BY,
	  sysdate,       --LAST_UPDATE_DATE,
	  g_fii_user_id, --LAST_UPDATED_BY,
	  g_fii_login_id --LAST_UPDATE_LOGIN
	FROM AR_DISPUTE_HISTORY dis,
	     FII_AR_PMT_SCHEDULES_F sch,
	     FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
	     GL_SETS_OF_BOOKS sob
	WHERE dis.payment_schedule_id = sch.payment_schedule_id
	AND sch.class <> 'PMT'
	AND dis.start_date <= sch.actual_date_closed
	AND dis.start_date >= g_global_start_date
	AND dis.last_update_date <= g_sysdate_time  --To avoid duplication in incremental

    AND sch.org_id = par.org_id
	AND par.set_of_books_id = sob.set_of_books_id
	AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date;
Line: 1219

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_DISPUTE_HISTORY_F');
Line: 1260

	INSERT /*+ append parallel(F) */ INTO FII_AR_TRANSACTIONS_F F
	 (customer_trx_id,
	  org_id,
	  time_id,
	  trx_date,
	  gl_date,
	  class,
	  amount_due_original_trx,
	  amount_due_original_func,
	  amount_due_original_prim,
	  amount_due_original_sec,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  transaction_number,
	  cust_trx_type_id,
	  term_id,
	  batch_source_id,
	  filter_date,
	  order_ref_number,
	  invoice_currency_code,
	  exchange_rate,
	  exchange_date,
	  initial_customer_trx_id,
	  previous_customer_trx_id,
	  user_id,
	  ar_creation_date,
	  INV_ba_amount_func,
	  INV_ba_amount_prim,
	  INV_ba_amount_sec,
	  INV_ba_count,
	  DM_ba_amount_func,
	  DM_ba_amount_prim,
	  DM_ba_amount_sec,
	  DM_ba_count,
	  CB_ba_amount_func,
	  CB_ba_amount_prim,
	  CB_ba_amount_sec,
	  CB_ba_count,
	  BR_ba_amount_func,
	  BR_ba_amount_prim,
	  BR_ba_amount_sec,
	  BR_ba_count,
	  DEP_ba_amount_func,
	  DEP_ba_amount_prim,
	  DEP_ba_amount_sec,
	  DEP_ba_count,
	  CM_ba_amount_func,
	  CM_ba_amount_prim,
	  CM_ba_amount_sec,
	  CM_ba_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT /*+ parallel(TRX) parallel(SCH) */
                trx.customer_trx_id,
		trx.org_id,
		to_number(to_char(decode(g_collection_criteria,
			                     'GL', sch.gl_date,
			                     trx.trx_date), 'J')), --time_id
		trunc(trx.trx_date),
		sch.gl_date,
		sch.class, --class
		sum(nvl(sch.amount_due_original_trx,0)),
		sum(nvl(sch.amount_due_original_func,0)),
		sum(nvl(sch.amount_due_original_prim,0)),
		sum(nvl(sch.amount_due_original_sec,0)),
		NVL(trx.bill_to_customer_id, trx.drawee_id), -- drawee_id used for BR
		NVL(trx.bill_to_site_use_id,
			trx.drawee_site_use_id), --drawee_site_use_id used for BR
		trx.trx_number,
		trx.cust_trx_type_id,
		trx.term_id,
		trx.batch_source_id,
		decode(g_collection_criteria,'GL', sch.gl_date, trx.trx_date), --filter_date
		decode(trx.batch_source_id,
			   -1, trx.ct_reference,  --order_ref_number
			   null),   -- -1 indicates that the trx is a manual order entry
		trx.invoice_currency_code,
		nvl(trx.exchange_rate,1),    --exchange_rate
        nvl(trx.exchange_date,trx.trx_date), --exchange_date
	    trx.initial_customer_trx_id,
		trx.previous_customer_trx_id,
		trx.created_by, --user_id
		trx.creation_date, --ar_creation_date
  		decode(sch.class,'INV',sum(nvl(sch.amount_due_original_func,0)),0), --INV_ba_amount_func
  		decode(sch.class,'INV',sum(nvl(sch.amount_due_original_prim,0)),0), --INV_ba_amount_prim
  		decode(sch.class,'INV',sum(nvl(sch.amount_due_original_sec,0)),0),  --INV_ba_amount_sec
  		decode(sch.class,'INV',1,0), --INV_ba_count
  		decode(sch.class,'DM',sum(nvl(sch.amount_due_original_func,0)),0), --DM_ba_amount_func
  		decode(sch.class,'DM',sum(nvl(sch.amount_due_original_prim,0)),0), --DM_ba_amount_prim
  		decode(sch.class,'DM',sum(nvl(sch.amount_due_original_sec,0)),0),  --DM_ba_amount_sec
  		decode(sch.class,'DM',1,0), --DM_ba_count
  		decode(sch.class,'CB',sum(nvl(sch.amount_due_original_func,0)),0), --CB_ba_amount_func
  		decode(sch.class,'CB',sum(nvl(sch.amount_due_original_prim,0)),0), --CB_ba_amount_prim
  		decode(sch.class,'CB',sum(nvl(sch.amount_due_original_sec,0)),0),  --CB_ba_amount_sec
  		decode(sch.class,'CB',1,0), --CB_ba_count
  		decode(sch.class,'BR',sum(nvl(sch.amount_due_original_func,0)),0), --BR_ba_amount_func
  		decode(sch.class,'BR',sum(nvl(sch.amount_due_original_prim,0)),0), --BR_ba_amount_prim
  		decode(sch.class,'BR',sum(nvl(sch.amount_due_original_sec,0)),0),  --BR_ba_amount_sec
  		decode(sch.class,'BR',1,0), --BR_ba_count
  		decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_func,0)),0), --DEP_ba_amount_func
  		decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_prim,0)),0), --DEP_ba_amount_prim
  		decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_sec,0)),0), --DEP_ba_amount_sec
  		decode(sch.class,'DEP',1,0), --DEP_ba_count
  		decode(sch.class,'CM',sum(nvl(sch.amount_due_original_func,0)),0), --CM_ba_amount_func
  		decode(sch.class,'CM',sum(nvl(sch.amount_due_original_prim,0)),0), --CM_ba_amount_prim
  		decode(sch.class,'CM',sum(nvl(sch.amount_due_original_sec,0)),0), --CM_ba_amount_sec
  		decode(sch.class,'CM',1,0), --CM_ba_count
	    sysdate,       --CREATION_DATE,
	    g_fii_user_id, --CREATED_BY,
	    sysdate,       --LAST_UPDATE_DATE,
	    g_fii_user_id, --LAST_UPDATED_BY,
	    g_fii_login_id --LAST_UPDATE_LOGIN
	FROM ra_customer_trx_all trx,
	 	 FII_AR_PMT_SCHEDULES_F sch
	WHERE trx.customer_trx_id = sch.customer_trx_id
	AND sch.class <> 'PMT'
	AND decode(g_collection_criteria,
			   'GL', sch.gl_date,
				trx.trx_date) >= g_global_start_date
	GROUP BY trx.customer_trx_id,
			trx.org_id,
			to_number(to_char(trx.trx_date, 'J')), --time_id,
			trx.trx_date,
			sch.gl_date,
			sch.class,
			NVL(trx.bill_to_customer_id, trx.drawee_id),
			NVL(trx.bill_to_site_use_id, trx.drawee_site_use_id),
			trx.trx_number,
			trx.cust_trx_type_id,
			trx.term_id,
			trx.trx_date, --filter_date
			trx.invoice_currency_code,
		 	trx.exchange_rate,
            trx.exchange_date,
  	        trx.batch_source_id,
			trx.ct_reference,
			trx.initial_customer_trx_id,
		    trx.previous_customer_trx_id,
			trx.created_by,
			trx.creation_date;
Line: 1405

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_TRANSACTIONS_F');
Line: 1444

	INSERT /*+ append */ INTO FII_AR_ADJUSTMENTS_F
	 (adjustment_id,
	  time_id ,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id,
	  amount_trx,
	  amount_func,
	  amount_prim,
	  amount_sec,
	  apply_date,
	  gl_date,
	  filter_date,
	  customer_trx_id,
	  payment_schedule_id,
	  user_id,
	  ar_creation_date,
	  adj_class,
	  subsequent_trx_id,
	  br_customer_trx_id,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT /*+ parallel(ADJ) parallel(TRX) parallel(TRX2) parallel(LINE) parallel(SOB) parallel(RT) */
          adj.adjustment_id,
          to_number(to_char(decode(g_collection_criteria,
			                       'GL', adj.gl_date,
			                       adj.apply_date), 'J')), --adj.time_id,
          trx.bill_to_customer_id, -- drawee_id only in case of BR
          trx.bill_to_site_use_id, -- drawee_site_use_id only in case of BR
          adj.org_id,
          adj.amount,
          NVL(ROUND(adj.amount * trx.exchange_rate / rt.functional_mau)
				* rt.functional_mau, nvl(adj.amount,0)), --adj.amount_func
          DECODE(trx.invoice_currency_code,
                g_prim_currency, nvl(adj.amount,0),
                ROUND((nvl(adj.amount,0) * trx.exchange_rate *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau),    --adj.amount_prim
          DECODE(trx.invoice_currency_code,
                g_sec_currency, nvl(adj.amount,0),
                ROUND((nvl(adj.amount,0) * trx.exchange_rate *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau),  --adj.amount_sec
          trunc(adj.apply_date),
          trunc(adj.gl_date),
          decode(g_collection_criteria,'GL',adj.gl_date,adj.apply_date), --filter_date
          adj.customer_trx_id,
          adj.payment_schedule_id,
		  adj.created_by, --user_id
		  adj.creation_date, --ar_creation_date
		  decode(line.br_adjustment_id,
			     null, decode(adj.chargeback_customer_trx_id,
							  null, decode(adj.adjustment_type,'C','DEP',null),
							  'CB'),
			     'BR'), --adj_class
          adj.subsequent_trx_id,
          line.customer_trx_id, --br_customer_trx_id
	      sysdate,       --CREATION_DATE,
	      g_fii_user_id, --CREATED_BY,
	      sysdate,       --LAST_UPDATE_DATE,
	      g_fii_user_id, --LAST_UPDATED_BY,
	      g_fii_login_id --LAST_UPDATE_LOGIN
    FROM AR_ADJUSTMENTS_ALL adj,
         FII_AR_TRANSACTIONS_F trx,
		 FII_AR_TRANSACTIONS_F trx2, --makes sure the CM adj does not result from a GUAR
		 RA_CUSTOMER_TRX_LINES_ALL line,
		 FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob
	WHERE adj.status = 'A'
        AND adj.customer_trx_id = trx.customer_trx_id
	/*AND adj.customer_trx_id = decode(trx.class,
									 'CM', trx.previous_customer_trx_id,
									 trx.customer_trx_id)
	AND decode (adj.subsequent_trx_id,
				null, -111, 0, -111,
				adj.subsequent_trx_id) = decode(trx.class,
												  'CM', trx.customer_trx_id,
												  -111)*/
	AND nvl(trx.initial_customer_trx_id, trx.customer_trx_id) =
			trx2.customer_trx_id --makes sure the CM adj does not result from a GUAR
    AND adj.adjustment_id = line.br_adjustment_id (+)
	AND adj.last_update_date <= g_sysdate_time  --To avoid duplication in incremental

    AND trx.org_id = par.org_id
	AND par.set_of_books_id = sob.set_of_books_id
	AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(trx.exchange_date,trx.trx_date),sysdate)) = rt.conversion_date;
Line: 1536

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_ADJUSTMENTS_F');
Line: 1579

	INSERT /*+ append parallel(F) */ INTO FII_AR_RECEIPTS_F F
     (receivable_application_id,
	  time_id,
	  cash_receipt_id,
	  application_status,
	  header_status,
	  amount_applied_rct,
	  amount_applied_trx,
	  amount_applied_rct_func,
	  amount_applied_trx_func,
	  amount_applied_rct_prim,
	  amount_applied_trx_prim,
	  amount_applied_rct_sec,
	  amount_applied_trx_sec,
	  earned_discount_amount_trx,
	  earned_discount_amount_func,
	  earned_discount_amount_prim,
	  earned_discount_amount_sec,
	  unearned_discount_amount_trx,
	  unearned_discount_amount_func,
	  unearned_discount_amount_prim,
	  unearned_discount_amount_sec,
	  apply_date,
	  gl_date,
	  filter_date,
      header_filter_date,
	  application_type,
	  applied_payment_schedule_id,
	  applied_customer_trx_id,
	  customer_trx_id,
	  payment_schedule_id,
	  receipt_number,
	  receipt_type,
	  receipt_date,
	  rct_actual_date_closed,
	  receipt_method_id,
	  currency_code,
	  user_id ,
	  ar_creation_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  collector_bill_to_customer_id,
	  collector_bill_to_site_use_id,
	  org_id,
	  trx_date,
	  due_date,
	  cm_previous_customer_trx_id,
	  total_receipt_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
    SELECT app.RECEIVABLE_APPLICATION_ID,
        to_number(to_char(decode(g_collection_criteria,
							     'GL',app.app_gl_date,
								 app.apply_date), 'J')), --TIME_ID,
        rct.cash_receipt_id,
        decode(app.status,'ACTIVITY','APP',app.status) APPLICATION_STATUS,
        rct.status HEADER_STATUS,
        NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)), --AMOUNT_APPLIED_RCT,
        NVL(app.AMOUNT_APPLIED,0), --AMOUNT_APPLIED_TRX,
        app.acctd_amount_applied_from, --AMOUNT_APPLIED_RCT_FUNC,
        NVL(app.acctd_amount_applied_to,0), --AMOUNT_APPLIED_TRX_FUNC,
        DECODE(rct.cash_receipt_id,
			   null, 0,
			   decode (rct.currency_code,
		               g_prim_currency, NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)),
			           ROUND((NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)) * nvl(rct.exchange_rate,1) *
			                nvl(rct.prim_conversion_rate,1)) / g_primary_mau) *
			                g_primary_mau)),    --AMOUNT_APPLIED_RCT_PRIM,
        DECODE(app.applied_payment_schedule_id,
			   null, 0,
 			   decode (trxsch.invoice_currency_code,
            		   g_prim_currency, nvl(app.AMOUNT_APPLIED,0),
		               ROUND((nvl(app.AMOUNT_APPLIED,0) * nvl(trxsch.exchange_rate,1) *
		                nvl(trxsch.prim_conversion_rate,0)) / g_primary_mau) *
		                g_primary_mau)),    --AMOUNT_APPLIED_TRX_PRIM,
        DECODE(rct.cash_receipt_id,
			   null, 0,
			   decode (rct.currency_code,
		               g_sec_currency, NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)),
		               ROUND((NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)) * nvl(rct.exchange_rate,1) *
			                nvl(rct.sec_conversion_rate,1)) / g_secondary_mau) *
			                g_secondary_mau)),    --AMOUNT_APPLIED_RCT_SEC,
	    DECODE(app.applied_payment_schedule_id,
			   null, 0,
 			   decode (trxsch.invoice_currency_code,
            		   g_sec_currency, nvl(app.AMOUNT_APPLIED,0),
			           ROUND((nvl(app.AMOUNT_APPLIED,0) * nvl(trxsch.exchange_rate,1) *
			                nvl(trxsch.sec_conversion_rate,0)) / g_secondary_mau) *
			                g_secondary_mau)),    --AMOUNT_APPLIED_TRX_SEC,
        nvl(app.EARNED_DISCOUNT_TAKEN,0), --EARNED_DISCOUNT_amount_trx,
        NVL(app.acctd_earned_discount_taken,
				nvl(app.EARNED_DISCOUNT_TAKEN,0)), --EARNED_DISCOUNT_AMOUNT_FUNC,
        DECODE(trxsch.invoice_currency_code,
            g_prim_currency, nvl(app.EARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.EARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.prim_conversion_rate,1)) / g_primary_mau) *
                g_primary_mau),    --EARNED_DISCOUNT_AMOUNT_PRIM,
        DECODE(trxsch.invoice_currency_code,
            g_sec_currency, nvl(app.EARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.EARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.sec_conversion_rate,1)) / g_secondary_mau) *
                g_secondary_mau),  --EARNED_DISCOUNT_AMOUNT_SEC,
        nvl(app.UNEARNED_DISCOUNT_TAKEN,0), --UNEARNED_DISCOUNT_amount_trx,
        NVL(app.acctd_unearned_discount_taken,
			nvl(app.UNEARNED_DISCOUNT_TAKEN,0)), --UNEARNED_DISCOUNT_AMOUNT_FUNC,
        DECODE(trxsch.invoice_currency_code,
            g_prim_currency, nvl(app.UNEARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.UNEARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.prim_conversion_rate,1)) / g_primary_mau) *
                g_primary_mau),   --UNEARNED_DISCOUNT_AMOUNT_PRIM
        DECODE(trxsch.invoice_currency_code,
            g_sec_currency, nvl(app.UNEARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.UNEARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.sec_conversion_rate,1)) / g_secondary_mau) *
                g_secondary_mau),   --UNEARNED_DISCOUNT_AMOUNT_SEC
        trunc(app.APPLY_DATE),
        trunc(app.RCT_GL_DATE),
        decode(g_collection_criteria,
			   'GL',app.app_gl_date,
			   app.apply_date), --FILTER_DATE,
        per.start_date, --decode(g_collection_criteria,'GL',app.rct_gl_date,rct.receipt_date), --HEADER_FILTER_DATE,
        app.APPLICATION_TYPE,
        app.APPLIED_PAYMENT_SCHEDULE_ID,
		app.applied_customer_trx_id,
        app.CUSTOMER_TRX_ID,
        app.PAYMENT_SCHEDULE_ID,
        rct.RECEIPT_NUMBER,
        rct.RECEIPT_TYPE,
        trunc(rct.receipt_date),
		rctsch.actual_date_closed, --rct_actual_date_closed
        rct.receipt_method_id,
        rct.CURRENCY_CODE,
        app.created_by, --USER_ID
  	    app.creation_date, --ar_creation_date
        decode(app.status,
			   'UNID', -2,
               nvl(rctsch.bill_to_customer_id, -2)), --to avoid outer joins in MVs --bill_to_customer_id
        decode(app.status,
			   'UNID', -2,
			   nvl(rctsch.bill_to_site_use_id, -2)), --bill_to_site_use_id
	    case when trxsch.payment_schedule_id is null
				  or app.applied_payment_schedule_id < 0
				then nvl(rctsch.bill_to_customer_id,-2)
			 else nvl(trxsch.bill_to_customer_id,-2) end, --collector_bill_to_customer_id
	    case when trxsch.payment_schedule_id is null
				  or app.applied_payment_schedule_id < 0
				then nvl(rctsch.bill_to_site_use_id,-2)
			 else nvl(trxsch.bill_to_site_use_id,-2) end, --collector_bill_to_site_use_id
		app.org_id,
		trxsch.trx_date,
		trxsch.due_date,
		rctsch.previous_customer_trx_id, --cm_previous_customer_trx_id
		decode (app.receivable_application_id,
				MIN(app.receivable_application_id) over (partition by rct.cash_receipt_id), 1,
                                MAX(app.receivable_application_id) over (partition by rct.cash_receipt_id),
                                      case when rct.status = 'REV' or rct.status = 'NSF' or rct.status = 'STOP'
                                      then -1 else 0 end,
				0), --total_receipt_count
	    sysdate,       --CREATION_DATE,
	    g_fii_user_id, --CREATED_BY,
	    sysdate,       --LAST_UPDATE_DATE,
	    g_fii_user_id, --LAST_UPDATED_BY,
	    g_fii_login_id --LAST_UPDATE_LOGIN
    FROM  (select /*+ parallel(app) */
                                RECEIVABLE_APPLICATION_ID,
				cash_receipt_id,
				case when gl_date >= g_global_start_date then
                                            gl_date
                                     else g_global_start_date end app_gl_date,
				decode (application_type,
						'CM',gl_date,
						MIN(gl_date) over (partition by cash_receipt_id)) rct_gl_date, --to get the receipt creation gl_date instead of appl gl_date
				case when apply_date >= g_global_start_date then
                                            apply_date
                                     else g_global_start_date end apply_date,
				status,
				AMOUNT_APPLIED_FROM,
				AMOUNT_APPLIED,
				acctd_amount_applied_from,
				acctd_amount_applied_to,
				applied_customer_trx_id,
				EARNED_DISCOUNT_TAKEN,
				acctd_earned_discount_taken,
				UNEARNED_DISCOUNT_TAKEN,
				acctd_unearned_discount_taken,
				APPLICATION_TYPE,
				applied_payment_schedule_id,
				CUSTOMER_TRX_ID,
				PAYMENT_SCHEDULE_ID,
				created_by,
				creation_date,
				org_id
		  from AR_RECEIVABLE_APPLICATIONS_ALL app) app,

	     FII_AR_PMT_SCHEDULES_F rctsch,

		 (select /*+ parallel(RCT) parallel(RCTRT) parallel(SOB) */
                rct.cash_receipt_id,
                rct.status,
                rct.currency_code,
        		nvl(rct.exchange_rate,1) exchange_rate,
                rctrt.prim_conversion_rate,
                rctrt.sec_conversion_rate,
                rct.RECEIPT_NUMBER,
                rct.TYPE receipt_type,
                rct.receipt_date,
                rct.receipt_method_id
                --rct.pay_from_customer bill_to_customer_id,
                --NVL(rct.customer_site_use_id,
        		--	-1) bill_to_site_use_id, --(-1 for UNAPP, UNID)
                --rct.customer_site_use_id
         from AR_CASH_RECEIPTS_ALL rct,
              FII_AR_CURR_RATES_T rctrt,
              AR_SYSTEM_PARAMETERS_ALL par,
              GL_SETS_OF_BOOKS sob
         where --rct.receipt_date >= g_global_start_date
	         rct.org_id = par.org_id
         and par.set_of_books_id = sob.set_of_books_id
         and sob.currency_code = rctrt.fc_code
         and rctrt.conversion_date = trunc(least(nvl(rct.exchange_date,
							rct.receipt_date),sysdate))) rct,

		(select /*+ parallel(TRXRT) parallel(TRXSCH) parallel(SOB) */
                trxsch.payment_schedule_id,
                trxsch.invoice_currency_code,
                trxsch.exchange_rate exchange_rate,
                trxrt.prim_conversion_rate,
                trxrt.sec_conversion_rate,
        		trxsch.trx_date, --trx_date
	           	trxsch.due_date, --due_date
				trxsch.bill_to_customer_id,
				trxsch.bill_to_site_use_id
         from FII_AR_PMT_SCHEDULES_F trxsch,
              FII_AR_CURR_RATES_T trxrt,
              AR_SYSTEM_PARAMETERS_ALL par,
              GL_SETS_OF_BOOKS sob
         where trxsch.org_id = par.org_id
         AND par.set_of_books_id = sob.set_of_books_id
         AND sob.currency_code = trxrt.fc_code
         AND trxrt.conversion_date = trunc(least(nvl(trxsch.exchange_date,
							trxsch.trx_date),sysdate))) trxsch,
        gl_periods per,
        ar_system_parameters_all par,
        gl_sets_of_books sob

    WHERE app.payment_schedule_id = rctsch.payment_schedule_id
    AND rctsch.class in ('PMT', 'CM')
	AND app.application_type IN ('CASH','CM')
    --AND (app.status IN ('UNID','UNAPP','APP')
    --     or app.applied_payment_schedule_id IN (-1,-4,-7))
    AND app.cash_receipt_id = rct.cash_receipt_id (+)
    AND app.applied_payment_schedule_id = trxsch.payment_schedule_id (+)
    AND par.org_id = app.org_id
    AND sob.set_of_books_id = par.set_of_books_id
    AND per.period_set_name = sob.period_set_name
    AND per.period_type = sob.accounted_period_type
    AND decode(application_type,
               'CM', app.apply_date,
               decode(g_collection_criteria,
                      'GL',app.rct_gl_date,
                      rct.receipt_date)) between per.start_date and per.end_date
    AND per.adjustment_period_flag = 'N'
    AND (case when decode(g_collection_criteria,
		          'GL', rct_gl_date,
		          rct.receipt_date)  >= g_global_start_date
		   then 1
              when decode(g_collection_criteria,
		          'GL', rct_gl_date,
		          rct.receipt_date)  < g_global_start_date
                      and exists (select 'x' from ar_receivable_applications_all app2
                                  where app2.cash_receipt_id = app.cash_receipt_id
                                  and decode(g_global_start_date,
                                             'GL', app2.gl_date,
                                             app2.apply_date)  >= g_global_start_date
                                  and app2.status in ('APP', 'ACTIVITY'))
                   then 1
	      else trxsch.payment_schedule_id end) is not null;
Line: 1861

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_RECEIPTS_F');
Line: 1871

  select nvl(max(receivable_application_id), -999)
  into l_max_rec_application_id
  from fii_ar_receipts_f;
Line: 1875

  INSERT INTO fii_change_log
  (log_item, item_value, CREATION_DATE, CREATED_BY,
   LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
  (SELECT 'AR_MAX_RECEIVABLE_APPLICATION_ID',
		l_max_rec_application_id,
		sysdate,        --CREATION_DATE,
	    g_fii_user_id,  --CREATED_BY,
        sysdate,        --LAST_UPDATE_DATE,
	    g_fii_user_id,  --LAST_UPDATED_BY,
	    g_fii_login_id  --LAST_UPDATE_LOGIN
   FROM DUAL
   WHERE NOT EXISTS
  	  (select 1 from fii_change_log
	   where log_item = 'AR_MAX_RECEIVABLE_APPLICATION_ID'));
Line: 1891

	  UPDATE fii_change_log
	  SET item_value = l_max_rec_application_id,
	      last_update_date  = g_sysdate_time,
	      last_update_login = g_fii_login_id,
	      last_updated_by   = g_fii_user_id
	  WHERE log_item = 'AR_MAX_RECEIVABLE_APPLICATION_ID';
Line: 1930

	INSERT INTO FII_AR_SCHEDULED_DISC_F
     (term_id,
	  sequence_num,
	  discount1_percent,
	  discount1_days,
	  discount1_date,
	  discount1_day_of_month,
	  discount1_months_forward,
	  discount2_percent,
	  discount2_days,
	  discount2_date,
	  discount2_day_of_month,
	  discount2_months_forward,
	  discount3_percent,
	  discount3_days,
	  discount3_date,
	  discount3_day_of_month,
	  discount3_months_forward,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT  term_id,
	        sequence_num,
		    sum(decode(discount_num,
		            1, discount_percent)) discount1_percent,
		    sum(decode(discount_num,
		            1, discount_days)) discount1_days,
		    max(decode(discount_num,
		            1, discount_date)) discount1_date,
		    sum(decode(discount_num,
		            1, discount_day_of_month)) discount1_day_of_month,
		    sum(decode(discount_num,
		            1, discount_months_forward)) discount1_months_forward,
		    sum(decode(discount_num,
		            2, discount_percent)) discount2_percent,
		    sum(decode(discount_num,
		            2, discount_days)) discount2_days,
		    max(decode(discount_num,
		            2, discount_date)) discount2_date,
		    sum(decode(discount_num,
		            2, discount_day_of_month)) discount2_day_of_month,
		    sum(decode(discount_num,
		            2, discount_months_forward)) discount2_months_forward,
		    sum(decode(discount_num,
		            3, discount_percent)) discount3_percent,
		    sum(decode(discount_num,
		            3, discount_days)) discount3_days,
		    max(decode(discount_num,
		            3, discount_date)) discount3_date,
		    sum(decode(discount_num,
		            3, discount_day_of_month)) discount3_day_of_month,
		    sum(decode(discount_num,
		            3, discount_months_forward)) discount3_months_forward,
	        sysdate,       --CREATION_DATE,
	        g_fii_user_id, --CREATED_BY,
	        sysdate,       --LAST_UPDATE_DATE,
	        g_fii_user_id, --LAST_UPDATED_BY,
	        g_fii_login_id --LAST_UPDATE_LOGIN
	FROM (SELECT disc.term_id,
	             disc.sequence_num,
	             disc.discount_percent,
	             disc.discount_days,
		         disc.discount_date,
			 	 disc.discount_day_of_month,
			 	 disc.discount_months_forward,
	             count(*) OVER (partition by disc.term_id, disc.sequence_num
	                    ORDER BY nvl(disc.discount_days,
									 nvl(to_number(to_char(discount_date, 'J')),
									  	 discount_months_forward)),
								 nvl(discount_day_of_month,1)
	                    ROWS UNBOUNDED PRECEDING) discount_num
	      FROM RA_TERMS_LINES_DISCOUNTS disc
	      GROUP BY disc.term_id,
	               disc.sequence_num,
	               disc.discount_percent,
	               disc.discount_days,
	               disc.discount_date,
	 		 	   disc.discount_day_of_month,
	 		 	   disc.discount_months_forward)
	GROUP BY term_id,
	         sequence_num;
Line: 2015

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_SCHEDULED_DISC_F');
Line: 2053

  Insert into fii_ar_marker_gt
    (marker)
  (SELECT 1 marker FROM DUAL WHERE g_current_bucket_3_low is not null UNION ALL
   SELECT 2 marker FROM DUAL WHERE g_current_bucket_2_low is not null UNION ALL
   SELECT 3 marker FROM DUAL UNION ALL
   SELECT 4 marker FROM DUAL UNION ALL
   SELECT 5 marker FROM DUAL WHERE g_past_due_bucket_2_low is not null UNION ALL
   SELECT 6 marker FROM DUAL WHERE g_past_due_bucket_3_low is not null UNION ALL
   SELECT 7 marker FROM DUAL WHERE g_past_due_bucket_4_low is not null UNION ALL
   SELECT 8 marker FROM DUAL WHERE g_past_due_bucket_5_low is not null UNION ALL
   SELECT 9 marker FROM DUAL WHERE g_past_due_bucket_6_low is not null UNION ALL
   SELECT 10 marker FROM DUAL WHERE g_past_due_bucket_7_low is not null);
Line: 2073

	INSERT /*+ append parallel(F) */ INTO FII_AR_AGING_RECEIVABLES F
	 (time_id,
          time_id_date,
	  event_date,
	  next_aging_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id ,
	  customer_trx_id,
	  payment_schedule_id,
	  adjustment_id,
	  receivable_application_id,
	  appl_trx_date,
	  trx_date,
	  due_date,
	  current_bucket_1_amount_trx,
	  current_bucket_1_amount_func,
	  current_bucket_1_amount_prim,
	  current_bucket_1_amount_sec,
	  current_bucket_1_count,
	  current_bucket_2_amount_trx,
	  current_bucket_2_amount_func,
	  current_bucket_2_amount_prim,
	  current_bucket_2_amount_sec,
	  current_bucket_2_count,
	  current_bucket_3_amount_trx,
	  current_bucket_3_amount_func,
	  current_bucket_3_amount_prim,
	  current_bucket_3_amount_sec,
	  current_bucket_3_count,
	  past_due_bucket_1_amount_trx,
	  past_due_bucket_1_amount_func,
	  past_due_bucket_1_amount_prim,
	  past_due_bucket_1_amount_sec,
	  past_due_bucket_1_count,
	  past_due_bucket_2_amount_trx,
	  past_due_bucket_2_amount_func,
	  past_due_bucket_2_amount_prim,
	  past_due_bucket_2_amount_sec,
	  past_due_bucket_2_count,
	  past_due_bucket_3_amount_trx,
	  past_due_bucket_3_amount_func,
	  past_due_bucket_3_amount_prim,
	  past_due_bucket_3_amount_sec,
	  past_due_bucket_3_count,
	  past_due_bucket_4_amount_trx,
	  past_due_bucket_4_amount_func,
	  past_due_bucket_4_amount_prim,
	  past_due_bucket_4_amount_sec,
	  past_due_bucket_4_count,
	  past_due_bucket_5_amount_trx,
	  past_due_bucket_5_amount_func,
	  past_due_bucket_5_amount_prim,
	  past_due_bucket_5_amount_sec,
	  past_due_bucket_5_count,
	  past_due_bucket_6_amount_trx,
	  past_due_bucket_6_amount_func,
	  past_due_bucket_6_amount_prim,
	  past_due_bucket_6_amount_sec,
	  past_due_bucket_6_count,
	  past_due_bucket_7_amount_trx,
	  past_due_bucket_7_amount_func,
	  past_due_bucket_7_amount_prim,
	  past_due_bucket_7_amount_sec,
	  past_due_bucket_7_count,
	  current_open_count,
	  past_due_count,
	  total_open_count,
	  unaged_amount_trx,
	  unaged_amount_func,
	  unaged_amount_prim,
	  unaged_amount_sec,
 	  on_acct_credit_amount_trx,
	  on_acct_credit_amount_func,
	  on_acct_credit_amount_prim,
	  on_acct_credit_amount_sec,
	  class,
	  billing_activity_flag,
	  billed_amount_flag,
	  on_account_credit_flag,
	  unapplied_deposit_flag,
      billing_activity_count,
	  action,
	  aging_flag,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
        SELECT time_id,
              time_id_date,
	      event_date,
	      next_aging_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      customer_trx_id,
	      payment_schedule_id,
	      adjustment_id,
	      receivable_application_id,
	      appl_trx_date,
		  trx_date,
	      due_date,
	      sum(current_bucket_1_amount_trx),
	      sum(current_bucket_1_amount_func),
	      sum(current_bucket_1_amount_prim),
	      sum(current_bucket_1_amount_sec),
	      sum(current_bucket_1_count),
	      sum(current_bucket_2_amount_trx),
	      sum(current_bucket_2_amount_func),
	      sum(current_bucket_2_amount_prim),
	      sum(current_bucket_2_amount_sec),
	      sum(current_bucket_2_count),
	      sum(current_bucket_3_amount_trx),
	      sum(current_bucket_3_amount_func),
	      sum(current_bucket_3_amount_prim),
	      sum(current_bucket_3_amount_sec),
	      sum(current_bucket_3_count),
	      sum(past_due_bucket_1_amount_trx),
	      sum(past_due_bucket_1_amount_func),
	      sum(past_due_bucket_1_amount_prim),
	      sum(past_due_bucket_1_amount_sec),
	      sum(past_due_bucket_1_count),
	      sum(past_due_bucket_2_amount_trx),
	      sum(past_due_bucket_2_amount_func),
	      sum(past_due_bucket_2_amount_prim),
	      sum(past_due_bucket_2_amount_sec),
	      sum(past_due_bucket_2_count),
	      sum(past_due_bucket_3_amount_trx),
	      sum(past_due_bucket_3_amount_func),
	      sum(past_due_bucket_3_amount_prim),
	      sum(past_due_bucket_3_amount_sec),
	      sum(past_due_bucket_3_count),
	      sum(past_due_bucket_4_amount_trx),
	      sum(past_due_bucket_4_amount_func),
	      sum(past_due_bucket_4_amount_prim),
	      sum(past_due_bucket_4_amount_sec),
	      sum(past_due_bucket_4_count),
	      sum(past_due_bucket_5_amount_trx),
	      sum(past_due_bucket_5_amount_func),
	      sum(past_due_bucket_5_amount_prim),
	      sum(past_due_bucket_5_amount_sec),
	      sum(past_due_bucket_5_count),
	      sum(past_due_bucket_6_amount_trx),
	      sum(past_due_bucket_6_amount_func),
	      sum(past_due_bucket_6_amount_prim),
	      sum(past_due_bucket_6_amount_sec),
	      sum(past_due_bucket_6_count),
	      sum(past_due_bucket_7_amount_trx),
	      sum(past_due_bucket_7_amount_func),
	      sum(past_due_bucket_7_amount_prim),
	      sum(past_due_bucket_7_amount_sec),
	      sum(past_due_bucket_7_count),
	  	  sum(current_open_count),
	  	  sum(past_due_count),
		  sum(total_open_count),
	      unaged_amount_trx,
	      unaged_amount_func,
	      unaged_amount_prim,
	      unaged_amount_sec,
		on_acct_credit_amount_trx,
		on_acct_credit_amount_func,
		on_acct_credit_amount_prim,
		on_acct_credit_amount_sec,
	      class,
	      billing_activity_flag,
	      billed_amount_flag,
	      on_account_credit_flag,
	      unapplied_deposit_flag,
		  sum(billing_activity_count),
          action,
		  aging_flag,
		  sysdate, --CREATION_DATE,
		  g_fii_user_id,       --CREATED_BY,
		  sysdate, --LAST_UPDATE_DATE,
		  g_fii_user_id,       --LAST_UPDATED_BY,
		  g_fii_login_id       --LAST_UPDATE_LOGIN
	FROM (
		SELECT time_id,
                       time_id_date,
		       next_aging_date,
		       bill_to_customer_id,
			   bill_to_site_use_id,
			   org_id,
			   customer_trx_id,
			   payment_schedule_id,
		       adjustment_id,
		       receivable_application_id,
			   appl_trx_date,
			   trx_date,
			   due_date,
		       event_date,
		       current_bucket_1_amount_trx,
		       current_bucket_1_amount_func,
		       current_bucket_1_amount_prim,
		       current_bucket_1_amount_sec,
		       (case when current_bucket_1_amount_func = current_bucket_1_amt_func_cum
							AND current_bucket_1_amount_func <> 0
		                then 1
		             when current_bucket_1_amt_func_cum = 0
		                    AND current_bucket_1_amount_func <>0
		                then -1
		             else 0 end) current_bucket_1_count,
		       current_bucket_2_amount_trx,
		       current_bucket_2_amount_func,
		       current_bucket_2_amount_prim,
		       current_bucket_2_amount_sec,
		       (case when current_bucket_2_amount_func = current_bucket_2_amt_func_cum
		                    AND current_bucket_2_amount_func <>0
		                then 1
		             when current_bucket_2_amt_func_cum = 0
		                    AND current_bucket_2_amount_func <>0
		                then -1
		             else 0 end) current_bucket_2_count,
		       current_bucket_3_amount_trx,
		       current_bucket_3_amount_func,
		       current_bucket_3_amount_prim,
		       current_bucket_3_amount_sec,
		       (case when current_bucket_3_amount_func = current_bucket_3_amt_func_cum
		                    AND current_bucket_3_amount_func <> 0
		                then 1
		             when current_bucket_3_amt_func_cum = 0
		                    AND current_bucket_3_amount_func <> 0
		                then -1
		             else 0 end) current_bucket_3_count,
		       past_due_bucket_1_amount_trx,
		       past_due_bucket_1_amount_func,
		       past_due_bucket_1_amount_prim,
		       past_due_bucket_1_amount_sec,
		       (case when past_due_bucket_1_amount_func = past_due_bucket_1_amt_func_cum
		                    AND past_due_bucket_1_amount_func <> 0
		                then 1
		             when past_due_bucket_1_amt_func_cum = 0
		                    AND past_due_bucket_1_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_1_count,
		       past_due_bucket_2_amount_trx,
		       past_due_bucket_2_amount_func,
		       past_due_bucket_2_amount_prim,
		       past_due_bucket_2_amount_sec,
		       (case when past_due_bucket_2_amount_func = past_due_bucket_2_amt_func_cum
		                    AND past_due_bucket_2_amount_func <> 0
		                then 1
		             when past_due_bucket_2_amt_func_cum = 0
		                    AND past_due_bucket_2_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_2_count,
		       past_due_bucket_3_amount_trx,
		       past_due_bucket_3_amount_func,
		       past_due_bucket_3_amount_prim,
		       past_due_bucket_3_amount_sec,
		       (case when past_due_bucket_3_amount_func = past_due_bucket_3_amt_func_cum
		                    AND past_due_bucket_3_amount_func <> 0
		                then 1
		             when past_due_bucket_3_amt_func_cum = 0
		                    AND past_due_bucket_3_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_3_count,
		       past_due_bucket_4_amount_trx,
		       past_due_bucket_4_amount_func,
		       past_due_bucket_4_amount_prim,
		       past_due_bucket_4_amount_sec,
		       (case when past_due_bucket_4_amount_func = past_due_bucket_4_amt_func_cum
		                    AND past_due_bucket_4_amount_func <> 0
		                then 1
		             when past_due_bucket_4_amt_func_cum = 0
		                    AND past_due_bucket_4_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_4_count,
		       past_due_bucket_5_amount_trx,
		       past_due_bucket_5_amount_func,
		       past_due_bucket_5_amount_prim,
		       past_due_bucket_5_amount_sec,
		       (case when past_due_bucket_5_amount_func = past_due_bucket_5_amt_func_cum
		                    AND past_due_bucket_5_amount_func <> 0
		                then 1
		             when past_due_bucket_5_amt_func_cum = 0
		                    AND past_due_bucket_5_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_5_count,
		       past_due_bucket_6_amount_trx,
		       past_due_bucket_6_amount_func,
		       past_due_bucket_6_amount_prim,
		       past_due_bucket_6_amount_sec,
		       (case when past_due_bucket_6_amount_func = past_due_bucket_6_amt_func_cum
		                    AND past_due_bucket_6_amount_func <> 0
		                then 1
		             when past_due_bucket_6_amt_func_cum = 0
		                    AND past_due_bucket_6_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_6_count,
		       past_due_bucket_7_amount_trx,
		       past_due_bucket_7_amount_func,
		       past_due_bucket_7_amount_prim,
		       past_due_bucket_7_amount_sec,
		       (case when past_due_bucket_7_amount_func = past_due_bucket_7_amt_func_cum
		                    AND past_due_bucket_7_amount_func <> 0
		                then 1
		             when past_due_bucket_7_amt_func_cum = 0
		                    AND past_due_bucket_7_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_7_count,
			   (case when current_open_amount_func = current_open_amt_func_cum
					  and current_open_amount_func <> 0
				   		  then 1
			  	     when current_open_amt_func_cum = 0
					  and current_open_amount_func <> 0
						  then -1
			  	     else 0 end) current_open_count,
			   (case when past_due_amount_func = past_due_amt_func_cum
					  and past_due_amount_func <> 0
				   		  then 1
			  	     when past_due_amt_func_cum = 0
					  and past_due_amount_func <> 0
						  then -1
			  	     else 0 end) past_due_count,
			   (case when total_open_amount_func = total_open_amt_func_cum
					  and total_open_amount_func <> 0
				   		  then 1
			  	     when total_open_amt_func_cum = 0
					  and total_open_amount_func <> 0
						  then -1
			  	     else 0 end) total_open_count,
		       unaged_amount_trx,
		       unaged_amount_func,
		       unaged_amount_prim,
		       unaged_amount_sec,
		       on_acct_credit_amount_trx,
			 on_acct_credit_amount_func,
			 on_acct_credit_amount_prim,
			 on_acct_credit_amount_sec,
		       class,
		  	   billing_activity_flag,
		       billed_amount_flag,
		       on_account_credit_flag,
		 	   unapplied_deposit_flag,
			   (case when billing_activity_flag = 'Y'
						 and payment_schedule_id = min_payment_schedule_id
					   then 1
					 else 0 end) billing_activity_count,
		       action,
		       actual_date_closed,
		       aging_flag
	    FROM (
			SELECT time_id,
                               time_id_date,
			       next_aging_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
			       adjustment_id,
			       receivable_application_id,
				   appl_trx_date,
				   trx_date,
				   due_date,
			       event_date,
				   MIN(payment_schedule_id) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) min_payment_schedule_id,
			       current_bucket_1_amount_trx,
			       current_bucket_1_amount_func,
			       current_bucket_1_amount_prim,
			       current_bucket_1_amount_sec,
			       SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_1_amt_func_cum,
				   current_bucket_2_amount_trx,
			       current_bucket_2_amount_func,
			       current_bucket_2_amount_prim,
			       current_bucket_2_amount_sec,
			       SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_2_amt_func_cum,
			       current_bucket_3_amount_trx,
			       current_bucket_3_amount_func,
			       current_bucket_3_amount_prim,
			       current_bucket_3_amount_sec,
			       SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_3_amt_func_cum,
			       past_due_bucket_1_amount_trx,
			       past_due_bucket_1_amount_func,
			       past_due_bucket_1_amount_prim,
			       past_due_bucket_1_amount_sec,
			       SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_1_amt_func_cum,
			       past_due_bucket_2_amount_trx,
			       past_due_bucket_2_amount_func,
			       past_due_bucket_2_amount_prim,
			       past_due_bucket_2_amount_sec,
			       SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_2_amt_func_cum,
			       past_due_bucket_3_amount_trx,
			       past_due_bucket_3_amount_func,
			       past_due_bucket_3_amount_prim,
			       past_due_bucket_3_amount_sec,
			       SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_3_amt_func_cum,
			       past_due_bucket_4_amount_trx,
			       past_due_bucket_4_amount_func,
			       past_due_bucket_4_amount_prim,
			       past_due_bucket_4_amount_sec,
			       SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_4_amt_func_cum,
				   past_due_bucket_5_amount_trx,
			       past_due_bucket_5_amount_func,
			       past_due_bucket_5_amount_prim,
			       past_due_bucket_5_amount_sec,
			       SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_5_amt_func_cum,
			       past_due_bucket_6_amount_trx,
			       past_due_bucket_6_amount_func,
			       past_due_bucket_6_amount_prim,
			       past_due_bucket_6_amount_sec,
			       SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_6_amt_func_cum,
			       past_due_bucket_7_amount_trx,
			       past_due_bucket_7_amount_func,
			       past_due_bucket_7_amount_prim,
			       past_due_bucket_7_amount_sec,
			       SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_7_amt_func_cum,
				   (current_bucket_1_amount_func+current_bucket_2_amount_func
						+ current_bucket_3_amount_func) current_open_amount_func,
				   (SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) current_open_amt_func_cum,
				   (past_due_bucket_1_amount_func
						+ past_due_bucket_2_amount_func+past_due_bucket_3_amount_func
						+ past_due_bucket_4_amount_func+past_due_bucket_5_amount_func
						+ past_due_bucket_6_amount_func+past_due_bucket_7_amount_func) past_due_amount_func,
				   (SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY event_date ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
				   	 + SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) past_due_amt_func_cum,
				   (current_bucket_1_amount_func+current_bucket_2_amount_func
						+ current_bucket_3_amount_func+past_due_bucket_1_amount_func
						+ past_due_bucket_2_amount_func+past_due_bucket_3_amount_func
						+ past_due_bucket_4_amount_func+past_due_bucket_5_amount_func
						+ past_due_bucket_6_amount_func+past_due_bucket_7_amount_func) total_open_amount_func,
				   (SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
				   	 + SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) total_open_amt_func_cum,
			       unaged_amount_trx,
			       unaged_amount_func,
			       unaged_amount_prim,
			       unaged_amount_sec,
				 on_acct_credit_amount_trx,
				 on_acct_credit_amount_func,
				 on_acct_credit_amount_prim,
				 on_acct_credit_amount_sec,
			       class,
			  	   billing_activity_flag,
			       billed_amount_flag,
			       on_account_credit_flag,
			 	   unapplied_deposit_flag,
			       action,
			       actual_date_closed,
			       aging_flag
			FROM
			   (SELECT
                                  to_number(to_char(decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
													then gl_date
												  else decode(aging_flag, 'N', gl_date, event_date) end,
				                       event_date), 'J')) time_id,
                                   decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
								    then gl_date
							     else decode(aging_flag, 'N', gl_date, event_date) end,
				                       event_date) time_id_date,
			           next_aging_date,
			           bill_to_customer_id,
			    	   bill_to_site_use_id,
			    	   org_id,
			    	   customer_trx_id,
			    	   payment_schedule_id,
			           adjustment_id,
			           receivable_application_id,
			    	   appl_trx_date,
					   trx_date,
			    	   due_date,
			           event_date,
			           (case when marker=1
			                    then bucket_amount_trx
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_3_amount_trx,
			           (case when marker=1
			                    then bucket_amount_func
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_3_amount_func,
			           (case when marker=1
			                    then bucket_amount_prim
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_3_amount_prim,
			           (case when marker=1
			                    then bucket_amount_sec
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_3_amount_sec,
			            ----------------
			           (case when marker=2
			                    then bucket_amount_trx
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_2_amount_trx,
			           (case when marker=2
			                    then bucket_amount_func
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_2_amount_func,
			           (case when marker=2
			                    then bucket_amount_prim
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_2_amount_prim,
			           (case when marker=2
			                    then bucket_amount_sec
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_2_amount_sec,
			            ----------------
			           (case when marker=3
			                    then bucket_amount_trx
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_1_amount_trx,
			           (case when marker=3
			                    then bucket_amount_func
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_1_amount_func,
			           (case when marker=3
			                    then bucket_amount_prim
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_1_amount_prim,
			           (case when marker=3
			                    then bucket_amount_sec
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_1_amount_sec,
			            ----------------
			           (case when marker=4
			                    then bucket_amount_trx
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_1_amount_trx,
			           (case when marker=4
			                    then bucket_amount_func
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_1_amount_func,
			           (case when marker=4
			                    then bucket_amount_prim
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_1_amount_prim,
			           (case when marker=4
			                    then bucket_amount_sec
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_1_amount_sec,
			            ------------------
			           (case when marker=5
			                    then bucket_amount_trx
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_2_amount_trx,
			           (case when marker=5
			                    then bucket_amount_func
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_2_amount_func,
			           (case when marker=5
			                    then bucket_amount_prim
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_2_amount_prim,
			           (case when marker=5
			                    then bucket_amount_sec
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_2_amount_sec,
			            ------------------
			           (case when marker=6
			                    then bucket_amount_trx
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_3_amount_trx,
			           (case when marker=6
			                    then bucket_amount_func
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_3_amount_func,
			           (case when marker=6
			                    then bucket_amount_prim
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_3_amount_prim,
			           (case when marker=6
			                    then bucket_amount_sec
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_3_amount_sec,
			            ------------------
			           (case when marker=7
			                    then bucket_amount_trx
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_4_amount_trx,
			           (case when marker=7
			                    then bucket_amount_func
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_4_amount_func,
			           (case when marker=7
			                    then bucket_amount_prim
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_4_amount_prim,
			           (case when marker=7
			                    then bucket_amount_sec
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_4_amount_sec,
			            ---------------
			           (case when marker=8
			                    then bucket_amount_trx
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_5_amount_trx,
			           (case when marker=8
			                    then bucket_amount_func
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_5_amount_func,
			           (case when marker=8
			                    then bucket_amount_prim
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_5_amount_prim,
			           (case when marker=8
			                    then bucket_amount_sec
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_5_amount_sec,
			            ---------------
			           (case when marker=9
			                    then bucket_amount_trx
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_6_amount_trx,
			           (case when marker=9
			                    then bucket_amount_func
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_6_amount_func,
			           (case when marker=9
			                    then bucket_amount_prim
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_6_amount_prim,
			           (case when marker=9
			                    then bucket_amount_sec
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_6_amount_sec,
			            ---------------
			           (case when marker=10
			                    then bucket_amount_trx
			                 else 0 end) past_due_bucket_7_amount_trx,
			           (case when marker=10
			                    then bucket_amount_func
			                 else 0 end) past_due_bucket_7_amount_func,
			           (case when marker=10
			                    then bucket_amount_prim
			                 else 0 end) past_due_bucket_7_amount_prim,
			           (case when marker=10
			                    then bucket_amount_sec
			                 else 0 end) past_due_bucket_7_amount_sec,
			            ---------------
			           decode(aging_flag,'N',unaged_amount_trx, 0)  unaged_amount_trx,
			           decode(aging_flag,'N',unaged_amount_func, 0) unaged_amount_func,
			           decode(aging_flag,'N',unaged_amount_prim, 0) unaged_amount_prim,
			           decode(aging_flag,'N',unaged_amount_sec, 0)  unaged_amount_sec,
			           decode(aging_flag,'N',on_acct_credit_amount_trx, 0)  on_acct_credit_amount_trx,
			           decode(aging_flag,'N',on_acct_credit_amount_func, 0) on_acct_credit_amount_func,
			           decode(aging_flag,'N',on_acct_credit_amount_prim, 0) on_acct_credit_amount_prim,
			           decode(aging_flag,'N',on_acct_credit_amount_sec, 0)  on_acct_credit_amount_sec,
			           class,
			           decode(aging_flag,'N',billing_activity_flag, 'N') billing_activity_flag,
			           decode(aging_flag,'N',billed_amount_flag, 'N') billed_amount_flag,
			           on_account_credit_flag,
			           decode(aging_flag,'N',unapplied_deposit_flag, 'N') unapplied_deposit_flag,
			           action,
			           actual_date_closed,
			           aging_flag
			    FROM
			       (SELECT /*+ parallel(M) */
                                       m.marker,
			               v.bill_to_customer_id,
			        	   v.bill_to_site_use_id,
			        	   v.org_id,
			        	   v.customer_trx_id,
			        	   v.payment_schedule_id,
			               v.adjustment_id,
			               v.receivable_application_id,
			        	   v.appl_trx_date,
			        	   v.due_date,
						   v.trx_date,
						   v.gl_date,
			               v.bucket_amount_trx,
			               v.bucket_amount_func,
			               v.bucket_amount_prim,
			               v.bucket_amount_sec,
			               v.unaged_amount_trx,
			               v.unaged_amount_func,
			               v.unaged_amount_prim,
			               v.unaged_amount_sec,
					   v.on_acct_credit_amount_trx,
					   v.on_acct_credit_amount_func,
					   v.on_acct_credit_amount_prim,
					   v.on_acct_credit_amount_sec,
			               v.class,
			          	   v.billing_activity_flag,
			    	       v.billed_amount_flag,
			               v.on_account_credit_flag,
			         	   v.unapplied_deposit_flag,
			               v.action,
			               v.actual_date_closed,
			               decode(m.marker,
			                      1, case when trunc(v.appl_trx_date)<=trunc(v.due_date)-g_current_bucket_3_low
			                                then appl_trx_date
			                              else null end,
			                      2, case when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_2_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.due_date)-g_current_bucket_2_high <= g_sysdate
			                                then trunc(v.due_date)-g_current_bucket_2_high
			                              when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.appl_trx_date) <= trunc(v.due_date)-g_current_bucket_2_low
			                                then v.appl_trx_date
			                              when g_current_bucket_2_high is null
												and trunc(v.appl_trx_date) <= trunc(v.due_date)-g_current_bucket_2_low
			                                then v.appl_trx_date
			                              else null end,
			                      3, case when g_current_bucket_1_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_1_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.due_date)-g_current_bucket_1_high <= g_sysdate
			                                then trunc(v.due_date)-g_current_bucket_1_high
			                              when g_current_bucket_1_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.appl_trx_date) <= trunc(v.due_date) - g_current_bucket_1_low
			                                then v.appl_trx_date
			                              when g_current_bucket_1_high is null
												and trunc(v.appl_trx_date) <= trunc(v.due_date) - g_current_bucket_1_low
			                                then v.appl_trx_date
			                              else null end,
			                      4, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_1_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_1_low
												and trunc(v.due_date)+g_past_due_bucket_1_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_1_low
			                              when g_past_due_bucket_1_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_1_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_1_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_1_high is null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_1_low
			                                then v.appl_trx_date
			                              else null end,
			                      5, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_2_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_2_low
												and trunc(v.due_date)+g_past_due_bucket_2_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_2_low
			                              when g_past_due_bucket_2_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_2_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_2_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_2_high is null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_2_low
			                                then v.appl_trx_date
			                              else null end,
			                      6, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_3_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_3_low
												and trunc(v.due_date)+g_past_due_bucket_3_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_3_low
			                              when g_past_due_bucket_3_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_3_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_3_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_3_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_3_low
			                                then v.appl_trx_date
			                              else null end,
			                      7, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_4_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_4_low
												and trunc(v.due_date)+g_past_due_bucket_4_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_4_low
			                              when g_past_due_bucket_4_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_4_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_4_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_4_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_4_low
			                                then v.appl_trx_date
			                              else null end,
			                      8, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_5_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_5_low
												and trunc(v.due_date)+g_past_due_bucket_5_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_5_low
			                              when g_past_due_bucket_5_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_5_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_5_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_5_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_5_low
			                                then v.appl_trx_date
			                              else null end,
			                      9, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_6_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_6_low
												and trunc(v.due_date)+g_past_due_bucket_6_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_6_low
			                              when g_past_due_bucket_6_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_6_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_6_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_6_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_6_low
			                                then v.appl_trx_date
			                              else null end,
			                      10, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_7_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_7_low
												and trunc(v.due_date)+g_past_due_bucket_7_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_7_low
			                              when trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_7_low
			                                then v.appl_trx_date
			                              else null end) event_date,
						   decode(m.marker,
			                      1, case when actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
											then trunc(v.due_date)-g_current_bucket_2_high
										  else null end,
			                      2, case when actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
											then trunc(v.due_date)-g_current_bucket_1_high
										  else null end,
			                      3, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_1_low
											then trunc(v.due_date)+g_past_due_bucket_1_low
										  else null end,
			                      4, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_2_low
											then trunc(v.due_date)+g_past_due_bucket_2_low
										  else null end,
			                      5, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_3_low
											then trunc(v.due_date)+g_past_due_bucket_3_low
										  else null end,
			                      6, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_4_low
											then trunc(v.due_date)+g_past_due_bucket_4_low
										  else null end,
			                      7, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_5_low
											then trunc(v.due_date)+g_past_due_bucket_5_low
										  else null end,
			                      8, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_6_low
											then trunc(v.due_date)+g_past_due_bucket_6_low
										  else null end,
			                      9, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_7_low
											then trunc(v.due_date)+g_past_due_bucket_7_low
										  else null end,
			                      10, null) next_aging_date,
			               decode(m.marker,
			                      1, 'N',
			                      2, case when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_2_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.due_date)-g_current_bucket_2_high <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      3, case when g_current_bucket_1_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_1_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.due_date)-g_current_bucket_1_high <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      4, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_1_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_1_low
												and trunc(v.due_date)+g_past_due_bucket_1_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      5, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_2_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_2_low
												and trunc(v.due_date)+g_past_due_bucket_2_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      6, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_3_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_3_low
												and trunc(v.due_date)+g_past_due_bucket_3_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      7, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_4_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_4_low
												and trunc(v.due_date)+g_past_due_bucket_4_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      8, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_5_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_5_low
												and trunc(v.due_date)+g_past_due_bucket_5_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      9, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_6_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_6_low
												and trunc(v.due_date)+g_past_due_bucket_6_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      10, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_7_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_7_low
												and trunc(v.due_date)+g_past_due_bucket_7_low <= g_sysdate
			                                then 'Y'
			                               else 'N' end) aging_flag
			        FROM (--Payment Schedules
			              select /*+ parallel(SCH) */
                                                 sch.bill_to_customer_id,
			            		 sch.bill_to_site_use_id,
			            		 sch.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     null adjustment_id,
			                     null receivable_application_id,
			            		 sch.trx_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 sch.gl_date,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_trx) bucket_amount_trx,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_func) bucket_amount_func,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_prim) bucket_amount_prim,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_sec) bucket_amount_sec,
					             sch.amount_due_original_trx unaged_amount_trx,
					             sch.amount_due_original_func unaged_amount_func,
					             sch.amount_due_original_prim unaged_amount_prim,
					             sch.amount_due_original_sec unaged_amount_sec,
							 decode (sch.class, 'CM', sch.amount_due_original_trx, 0) on_acct_credit_amount_trx,
							 decode (sch.class, 'CM', sch.amount_due_original_func, 0) on_acct_credit_amount_func,
							 decode (sch.class, 'CM', sch.amount_due_original_prim, 0) on_acct_credit_amount_prim,
							 decode (sch.class, 'CM', sch.amount_due_original_sec, 0) on_acct_credit_amount_sec,
					             sch.class,
			              		 'Y' billing_activity_flag,
                                                  case when sch.class not in ('CB', 'BR')
                                                          and dso.dso_value = 'Y' then
                                                            'Y'
                                                       else 'N' end billed_amount_flag,
				                 null on_account_credit_flag, --no longer used after adding on_acct_credit_amount in bug 6053566
						     decode(sch.class,'DEP','Y','N') unapplied_deposit_flag,
			                     'Transaction' action,
			                     sch.actual_date_closed
			              from fii_ar_pmt_schedules_f sch,
							   fii_ar_dso_setup dso
						  where sch.class <> 'PMT'
						  and dso.dso_group='TC'
						  and dso.dso_type = sch.class

			              union all

			              --Applications
			              select /*+ parallel(RCT) parallel(SCH) */
                                                 rct.collector_bill_to_customer_id,
			            		 rct.collector_bill_to_site_use_id,
			            		 rct.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     null adjustment_id,
			                     rct.receivable_application_id,
			            		 rct.apply_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 decode(g_collection_criteria,
				                        'GL', rct.filter_date,
										null) gl_date,
			                     -1*(rct.amount_applied_trx
								   +nvl(rct.earned_discount_amount_trx,0)
			                       +nvl(rct.unearned_discount_amount_trx,0)) bucket_amount_trx,
			                     -1*(rct.amount_applied_trx_func
								   +nvl(rct.earned_discount_amount_func,0)
			                       +nvl(rct.unearned_discount_amount_func,0)) bucket_amount_func,
			                     -1*(rct.amount_applied_trx_prim
								   +nvl(rct.earned_discount_amount_prim,0)
			                       +nvl(rct.unearned_discount_amount_prim,0)) bucket_amount_prim,
			                     -1*(rct.amount_applied_trx_sec
								   +nvl(rct.earned_discount_amount_sec,0)
			                       +nvl(rct.unearned_discount_amount_sec,0)) bucket_amount_sec,
					            -1*rct.amount_applied_trx unaged_amount_trx,
							-1*rct.amount_applied_trx_func unaged_amount_func,
							-1*rct.amount_applied_trx_prim unaged_amount_prim,
							-1*rct.amount_applied_trx_sec unaged_amount_sec,
                                            --Added for bug 6053566
				            	case when rct.application_type = 'CASH' and sch.class = 'CM'
                                                        then rct.amount_applied_trx
                                                     when rct.application_type = 'CM'
                                                        then -1*rct.amount_applied_rct
                                                     else 0 end on_acct_credit_amount_trx,
                                                case when rct.application_type = 'CASH' and sch.class = 'CM'
                                                        then rct.amount_applied_trx_func
                                                     when rct.application_type = 'CM'
                                                        then -1*rct.amount_applied_rct_func
                                                     else 0 end on_acct_credit_amount_func,
                                                case when rct.application_type = 'CASH' and sch.class = 'CM'
                                                        then rct.amount_applied_trx_prim
                                                     when rct.application_type = 'CM'
                                                        then -1*rct.amount_applied_rct_prim
                                                     else 0 end on_acct_credit_amount_prim,
                                                case when rct.application_type = 'CASH' and sch.class = 'CM'
                                                        then rct.amount_applied_trx_sec
                                                     when rct.application_type = 'CM'
                                                        then -1*rct.amount_applied_rct_sec
                                                     else 0 end on_acct_credit_amount_sec,

					             sch.class,
			              		 'N' billing_activity_flag,
			    		         'N' billed_amount_flag,
				                 null on_account_credit_flag, --this is no longer used after adding on_acct_credit_amount in bug 6053566
				                 case when rct.application_type = 'CM' and sch.class='DEP'
										and rct.cm_previous_customer_trx_id is not null
									  then 'Y'
									  else 'N' end  unapplied_deposit_flag,
			                     'Application' action,
			                     sch.actual_date_closed
			              from fii_ar_receipts_f rct,
			                   fii_ar_pmt_schedules_f sch
			              where rct.application_status = 'APP'
						  and sch.class <> 'PMT'
						  and rct.applied_payment_schedule_id = sch.payment_schedule_id

			              union all

			              --Adjustments
			              select  /*+ parallel(ADJ) parallel(SCH) */
                                                 adj.bill_to_customer_id,
			            		 adj.bill_to_site_use_id,
			            		 adj.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     adj.adjustment_id,
			                     null receivable_application_id,
			            		 adj.apply_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 adj.gl_date,
			                     adj.amount_trx  bucket_amount_trx,
			                     adj.amount_func bucket_amount_func,
			                     adj.amount_prim bucket_amount_prim,
			                     adj.amount_sec  bucket_amount_sec,
					             adj.amount_trx  unaged_amount_trx,
					             adj.amount_func unaged_amount_func,
					             adj.amount_prim unaged_amount_prim,
					             adj.amount_sec  unaged_amount_sec,
				            	 0 on_acct_credit_amount_trx,
							 0 on_acct_credit_amount_func,
							 0 on_acct_credit_amount_prim,
							 0 on_acct_credit_amount_sec,
					             sch.class,
			              		 'N' billing_activity_flag,
                                                 case when sch.class not in ('CB', 'BR')
                                                        and (adj.adj_class not in ('CB', 'BR') or adj.adj_class is null)
                                                        and schdso.dso_value = 'Y'
                                                        and (adjdso.dso_value is null or adjdso.dso_value = 'Y')
                                                        then 'Y'
                                                     else 'N' end  billed_amount_flag,
				                 null on_account_credit_flag,
    						   decode(adj.adj_class,'DEP','Y','N') unapplied_deposit_flag,
			                     'Adjustment' action,
			                     sch.actual_date_closed
			              from fii_ar_adjustments_f adj,
			                   fii_ar_pmt_schedules_f sch,
							   fii_ar_dso_setup schdso,
							   fii_ar_dso_setup adjdso
						  where adj.payment_schedule_id = sch.payment_schedule_id
						  and sch.class <> 'PMT'
						  and schdso.dso_group='TC'
						  and schdso.dso_type = sch.class
						  and nvl(adjdso.dso_group,'TC')='TC'
						  and adj.adj_class = adjdso.dso_type (+)    ) v,
                                     fii_ar_marker_gt m)
			    WHERE event_date is not null)
			GROUP BY time_id,
                               time_id_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
			       adjustment_id,
			       receivable_application_id,
				   appl_trx_date,
				   trx_date,
				   due_date,
			       event_date,
			       current_bucket_1_amount_trx,
			       current_bucket_1_amount_func,
			       current_bucket_1_amount_prim,
			       current_bucket_1_amount_sec,
			       current_bucket_2_amount_trx,
			       current_bucket_2_amount_func,
			       current_bucket_2_amount_prim,
			       current_bucket_2_amount_sec,
			       current_bucket_3_amount_trx,
			       current_bucket_3_amount_func,
			       current_bucket_3_amount_prim,
			       current_bucket_3_amount_sec,
			       past_due_bucket_1_amount_trx,
			       past_due_bucket_1_amount_func,
			       past_due_bucket_1_amount_prim,
			       past_due_bucket_1_amount_sec,
			       past_due_bucket_2_amount_trx,
			       past_due_bucket_2_amount_func,
			       past_due_bucket_2_amount_prim,
			       past_due_bucket_2_amount_sec,
			       past_due_bucket_3_amount_trx,
			       past_due_bucket_3_amount_func,
			       past_due_bucket_3_amount_prim,
			       past_due_bucket_3_amount_sec,
			       past_due_bucket_4_amount_trx,
			       past_due_bucket_4_amount_func,
			       past_due_bucket_4_amount_prim,
			       past_due_bucket_4_amount_sec,
			       past_due_bucket_5_amount_trx,
			       past_due_bucket_5_amount_func,
			       past_due_bucket_5_amount_prim,
			       past_due_bucket_5_amount_sec,
			       past_due_bucket_6_amount_trx,
			       past_due_bucket_6_amount_func,
			       past_due_bucket_6_amount_prim,
			       past_due_bucket_6_amount_sec,
			       past_due_bucket_7_amount_trx,
			       past_due_bucket_7_amount_func,
			       past_due_bucket_7_amount_prim,
			       past_due_bucket_7_amount_sec,
				   next_aging_date,
			       unaged_amount_trx,
			       unaged_amount_func,
			       unaged_amount_prim,
			       unaged_amount_sec,
				 on_acct_credit_amount_trx,
				 on_acct_credit_amount_func,
				 on_acct_credit_amount_prim,
				 on_acct_credit_amount_sec,
			       class,
			  	   billing_activity_flag,
			       billed_amount_flag,
			       on_account_credit_flag,
			 	   unapplied_deposit_flag,
			       action,
			       actual_date_closed,
			       aging_flag

			--order by payment_schedule_id, event_date, receivable_application_id, adjustment_id
			)
		)
	GROUP BY time_id,
              time_id_date,
	      event_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      customer_trx_id,
	      payment_schedule_id,
	      adjustment_id,
	      receivable_application_id,
	      appl_trx_date,
		  trx_date,
	      due_date,
		  next_aging_date,
	      unaged_amount_trx,
	      unaged_amount_func,
	      unaged_amount_prim,
	      unaged_amount_sec,
		on_acct_credit_amount_trx,
		on_acct_credit_amount_func,
		on_acct_credit_amount_prim,
		on_acct_credit_amount_sec,
	      class,
	      billing_activity_flag,
	      billed_amount_flag,
	      on_account_credit_flag,
	      unapplied_deposit_flag,
          action,
		  aging_flag;
Line: 3268

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_AGING_RECEIVABLES');
Line: 3306

  Insert into fii_ar_marker_gt
    (marker)
  (SELECT 1 marker FROM DUAL UNION ALL
   SELECT 2 marker FROM DUAL WHERE g_rct_bucket_2_low is not null UNION ALL
   SELECT 3 marker FROM DUAL WHERE g_rct_bucket_3_low is not null);
Line: 3320

	INSERT /*+ append parallel(F) */ INTO FII_AR_AGING_RECEIPTS F
	 (time_id,
	  event_date,
	  next_aging_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id,
	  cash_receipt_id,
	  aging_bucket_1_amount_func,
	  aging_bucket_1_amount_prim,
	  aging_bucket_1_amount_sec,
	  aging_bucket_1_count,
	  aging_bucket_2_amount_func,
	  aging_bucket_2_amount_prim,
	  aging_bucket_2_amount_sec,
	  aging_bucket_2_count,
	  aging_bucket_3_amount_func,
	  aging_bucket_3_amount_prim,
	  aging_bucket_3_amount_sec,
	  aging_bucket_3_count,
	  total_unapplied_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT time_id,
		  event_date,
	      next_aging_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      cash_receipt_id,
	      sum(aging_bucket_1_amount_func),
	      sum(aging_bucket_1_amount_prim),
	      sum(aging_bucket_1_amount_sec),
	      sum(aging_bucket_1_count),
	      sum(aging_bucket_2_amount_func),
	      sum(aging_bucket_2_amount_prim),
	      sum(aging_bucket_2_amount_sec),
	      sum(aging_bucket_2_count),
	      sum(aging_bucket_3_amount_func),
	      sum(aging_bucket_3_amount_prim),
	      sum(aging_bucket_3_amount_sec),
	      sum(aging_bucket_3_count),
		  sum(total_unapplied_count),
		  sysdate, --CREATION_DATE,
		  g_fii_user_id,       --CREATED_BY,
		  sysdate, --LAST_UPDATE_DATE,
		  g_fii_user_id,       --LAST_UPDATED_BY,
		  g_fii_login_id        --LAST_UPDATE_LOGIN
	FROM
		(SELECT time_id,
  			   next_aging_date,
		       bill_to_customer_id,
			   bill_to_site_use_id,
			   org_id,
			   cash_receipt_id,
		       event_date,
		       aging_bucket_1_amount_func,
		       aging_bucket_1_amount_prim,
		       aging_bucket_1_amount_sec,
		       (case when aging_bucket_1_amount_func = aging_bucket_1_amt_func_cum
		                    AND aging_bucket_1_amount_func <>0
		                then 1
		             when aging_bucket_1_amt_func_cum = 0
		                    AND aging_bucket_1_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_1_count,
		       aging_bucket_2_amount_func,
		       aging_bucket_2_amount_prim,
		       aging_bucket_2_amount_sec,
		       (case when aging_bucket_2_amount_func = aging_bucket_2_amt_func_cum
		                    AND aging_bucket_2_amount_func <>0
		                then 1
		             when aging_bucket_2_amt_func_cum = 0
		                    AND aging_bucket_2_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_2_count,
		       aging_bucket_3_amount_func,
		       aging_bucket_3_amount_prim,
		       aging_bucket_3_amount_sec,
		       (case when aging_bucket_3_amount_func = aging_bucket_3_amt_func_cum
		                    AND aging_bucket_3_amount_func <>0
		                then 1
		             when aging_bucket_3_amt_func_cum = 0
		                    AND aging_bucket_3_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_3_count,
			   (case when total_unapplied_amount_func = total_unapplied_amt_func_cum
		                    AND total_unapplied_amount_func <>0
		                then 1
		             when total_unapplied_amt_func_cum = 0
		                    AND total_unapplied_amount_func <>0
		                then -1
		             else 0 end) total_unapplied_count,
		       aging_flag
		FROM
		   (SELECT time_id,
	  			   next_aging_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   cash_receipt_id,
				   receivable_application_id,
			       event_date,
			       aging_bucket_1_amount_func,
			       aging_bucket_1_amount_prim,
			       aging_bucket_1_amount_sec,
			       SUM(aging_bucket_1_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_1_amt_func_cum,
			       aging_bucket_2_amount_func,
			       aging_bucket_2_amount_prim,
			       aging_bucket_2_amount_sec,
			       SUM(aging_bucket_2_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_2_amt_func_cum,
			       aging_bucket_3_amount_func,
			       aging_bucket_3_amount_prim,
			       aging_bucket_3_amount_sec,
			       SUM(aging_bucket_3_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_3_amt_func_cum,
				   (aging_bucket_1_amount_func
					+ aging_bucket_2_amount_func
					+ aging_bucket_3_amount_func) total_unapplied_amount_func,
					(SUM(aging_bucket_1_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(aging_bucket_2_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
 					 + SUM(aging_bucket_3_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) total_unapplied_amt_func_cum,
 			       aging_flag
			FROM
			   (SELECT --to_number(to_char(event_date, 'J')) time_id,
					   to_number(to_char(decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
													then gl_date
												  else decode(aging_flag,'N',gl_date,event_date) end,
				                       event_date), 'J')) time_id,
	 				   next_aging_date,
			           bill_to_customer_id,
			    	   bill_to_site_use_id,
			    	   org_id,
			    	   cash_receipt_id,
			           receivable_application_id,
			           event_date,
			           (case when marker=1
			                    then bucket_amount_func
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) aging_bucket_1_amount_func,
			           (case when marker=1
			                    then bucket_amount_prim
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) aging_bucket_1_amount_prim,
			           (case when marker=1
			                    then bucket_amount_sec
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) aging_bucket_1_amount_sec,
			            ----------------
			           (case when marker=2
			                    then bucket_amount_func
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) aging_bucket_2_amount_func,
			           (case when marker=2
			                    then bucket_amount_prim
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) aging_bucket_2_amount_prim,
			           (case when marker=2
			                    then bucket_amount_sec
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) aging_bucket_2_amount_sec,
			            ----------------
			           (case when marker=3
			                    then bucket_amount_func
			                 else 0 end) aging_bucket_3_amount_func,
			           (case when marker=3
			                    then bucket_amount_prim
			                 else 0 end) aging_bucket_3_amount_prim,
			           (case when marker=3
			                    then bucket_amount_sec
			                 else 0 end) aging_bucket_3_amount_sec,
			            ---------------
			           aging_flag
			    FROM
			       (SELECT m.marker,
			               v.bill_to_customer_id,
			        	   v.bill_to_site_use_id,
			        	   v.org_id,
			        	   v.cash_receipt_id,
			               v.receivable_application_id,
			         	   v.apply_date,
						   v.gl_date,
			               v.bucket_amount_func,
			               v.bucket_amount_prim,
			               v.bucket_amount_sec,
			               decode(m.marker,
			                      1, case when (g_rct_bucket_1_high is not null AND trunc(v.apply_date) between trunc(v.receipt_date) and trunc(v.receipt_date)+g_rct_bucket_1_high)
			                                then v.apply_date
										  when (g_rct_bucket_1_high is null AND trunc(v.apply_date) >= trunc(v.receipt_date))
			                                then v.apply_date
			                              else null end,
			                      2, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_2_low
			                                and trunc(receipt_date) + g_rct_bucket_2_low <= g_sysdate
											and trunc(receipt_date) + g_rct_bucket_2_low <= trunc(rct_actual_date_closed)
			                                then trunc(receipt_date) + g_rct_bucket_2_low
			                              when (g_rct_bucket_2_high is not null AND trunc(v.apply_date) between trunc(v.receipt_date)+g_rct_bucket_2_low and trunc(v.receipt_date)+g_rct_bucket_2_high)
			                                then trunc(v.apply_date)
			                              when (g_rct_bucket_2_high is null AND trunc(v.apply_date) >= trunc(v.receipt_date)+g_rct_bucket_2_low)
			                                then trunc(v.apply_date)
			                              else null end,
			                      3, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_3_low
			                                and trunc(receipt_date) + g_rct_bucket_3_low <= g_sysdate
											and trunc(receipt_date) + g_rct_bucket_3_low <= trunc(rct_actual_date_closed)
			                                then trunc(receipt_date) + g_rct_bucket_3_low
			                              when trunc(v.apply_date) >= trunc(v.receipt_date)+g_rct_bucket_3_low
			                                then trunc(v.apply_date)
			                              else null end) event_date,
						   decode(m.marker,
			                      1, case when trunc(rct_actual_date_closed) >= trunc(v.receipt_date) + g_rct_bucket_2_low
											then trunc(v.receipt_date) + g_rct_bucket_2_low
									 else null end,
			                      2, case when trunc(rct_actual_date_closed) >= trunc(receipt_date) + g_rct_bucket_3_low
											then trunc(receipt_date) + g_rct_bucket_3_low
									 else null end,
			                      3, null) next_aging_date,
			               decode(m.marker,
			                      1, 'N',
			                      2, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_2_low
			                                and trunc(receipt_date) + g_rct_bucket_2_low <= g_sysdate
			                                then 'Y'
			                              else'N' end,
			                      3, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_3_low
			                                and trunc(receipt_date) + g_rct_bucket_3_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end) aging_flag
			        FROM (--Unapplied Receipts
			              select  /*+ parallel(rct) */ rct.apply_date,
			                      rct.receipt_date,
								  decode(g_collection_criteria,
				                         'GL', rct.filter_date,
								  		 null) gl_date,
								  rct.rct_actual_date_closed,
			            		  rct.bill_to_customer_id,
			            		  rct.bill_to_site_use_id,
			            		  rct.org_id,
			            		  rct.cash_receipt_id,
			                      rct.receivable_application_id,
			            		  rct.amount_applied_rct_func bucket_amount_func,
			            		  rct.amount_applied_rct_prim bucket_amount_prim,
			            		  rct.amount_applied_rct_sec bucket_amount_sec
			              from fii_ar_receipts_f rct
			              where rct.application_status in ('UNAPP','UNID')
						  and rct.header_status not in ('REV', 'NSF', 'STOP')
						  --and nvl(rct.applied_payment_schedule_id,-999) <> -1 --exclude on-account receipts
						  --and nvl(rct.applied_payment_schedule_id,-999) <> -4 --exclude claims
						  --and nvl(rct.applied_payment_schedule_id,-999) <> -7 --exclude prepayments
						  and nvl(rct.applied_payment_schedule_id,1) > 0 --exclude all special applications
			              and rct.application_type = 'CASH'
						  and rct.amount_applied_rct_func <> 0) v,
                                     (select /*+ parallel(t) */ *
                                      from fii_ar_marker_gt t) m)
			    WHERE event_date is not null)
			GROUP BY time_id,
			         bill_to_customer_id,
			    	 bill_to_site_use_id,
			    	 org_id,
			    	 cash_receipt_id,
			         receivable_application_id,
			         event_date,
			         aging_bucket_1_amount_func,
			         aging_bucket_1_amount_prim,
			         aging_bucket_1_amount_sec,
			         aging_bucket_2_amount_func,
			         aging_bucket_2_amount_prim,
			         aging_bucket_2_amount_sec,
			         aging_bucket_3_amount_func,
			         aging_bucket_3_amount_prim,
			         aging_bucket_3_amount_sec,
					 next_aging_date,
			         aging_flag

			order by receivable_application_id, event_date
			)
		)
	GROUP BY time_id,
	      event_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      cash_receipt_id,
	      next_aging_date
	HAVING sum(aging_bucket_1_amount_func) <> 0
		   or
	  	   sum(aging_bucket_2_amount_func) <> 0
		   or
		   sum(aging_bucket_3_amount_func) <>0;
Line: 3617

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_AGING_RECEIPTS');
Line: 3654

    INSERT /*+ append parallel(D) */ INTO FII_AR_AGING_DISPUTES D
	 (time_id,
	  event_date,
	  next_aging_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id,
	  customer_trx_id,
	  payment_schedule_id,
	  due_date,
	  current_dispute_amount_func,
	  current_dispute_amount_prim,
	  current_dispute_amount_sec,
	  current_dispute_count,
	  past_due_dispute_amount_func,
	  past_due_dispute_amount_prim,
	  past_due_dispute_amount_sec,
	  past_due_dispute_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT time_id,
		  event_date,
	      next_aging_date,
		  bill_to_customer_id,
		  bill_to_site_use_id,
		  org_id,
		  customer_trx_id,
		  payment_schedule_id,
		  due_date,
		  sum(current_dispute_amount_func),
		  sum(current_dispute_amount_prim),
		  sum(current_dispute_amount_sec),
		  sum(current_dispute_count),
		  sum(past_due_dispute_amount_func),
		  sum(past_due_dispute_amount_prim),
		  sum(past_due_dispute_amount_sec),
		  sum(past_due_dispute_count),
		  sysdate, --CREATION_DATE,
		  g_fii_user_id,       --CREATED_BY,
		  sysdate, --LAST_UPDATE_DATE,
		  g_fii_user_id,       --LAST_UPDATED_BY,
		  g_fii_login_id        --LAST_UPDATE_LOGIN
	FROM (

		SELECT time_id,
			  event_date,
		      next_aging_date,
			  bill_to_customer_id,
			  bill_to_site_use_id,
			  org_id,
			  customer_trx_id,
			  payment_schedule_id,
			  due_date,
			  current_dispute_amount_func,
			  current_dispute_amount_prim,
			  current_dispute_amount_sec,
		      SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_dispute_amount_funcc,
		      (case when current_dispute_amount_func = SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
		                and current_dispute_amount_func <> 0
						then 1
		             when SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) = 0
		                    AND current_dispute_amount_func <> 0
		                then -1
		             else 0 end) current_dispute_count,
			  past_due_dispute_amount_func,
			  past_due_dispute_amount_prim,
			  past_due_dispute_amount_sec,
		      SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_dispute_amount_funcc,
		      (case when past_due_dispute_amount_func = SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
		                and past_due_dispute_amount_func <> 0
						then 1
		             when SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) = 0
		                and past_due_dispute_amount_func <> 0
		                then -1
		             else 0 end) past_due_dispute_count,

		       aging_flag
		FROM
		   (SELECT to_number(to_char(event_date, 'J')) time_id,
				   event_date,
				   next_aging_date,
				   bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
				   due_date,
		           (case when marker=1
		                    then bucket_amount_func
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_func
		                 else 0 end) current_dispute_amount_func,
		           (case when marker=1
		                    then bucket_amount_prim
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_prim
		                 else 0 end) current_dispute_amount_prim,
		           (case when marker=1
		                    then bucket_amount_sec
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_sec
		                 else 0 end) current_dispute_amount_sec,
		            ----------------
		           (case when marker=2
		                    then bucket_amount_func
		                 else 0 end) past_due_dispute_amount_func,
		           (case when marker=2
		                    then bucket_amount_prim
		                 else 0 end) past_due_dispute_amount_prim,
		           (case when marker=2
		                    then bucket_amount_sec
		                 else 0 end) past_due_dispute_amount_sec,
		            ---------------
		            aging_flag
		    FROM
		       (SELECT m.marker,
					   v.time_id,
		               v.bill_to_customer_id,
		        	   v.bill_to_site_use_id,
		        	   v.org_id,
		        	   v.customer_trx_id,
		        	   v.payment_schedule_id,
					   v.due_date,
		               v.bucket_amount_func,
		               v.bucket_amount_prim,
		               v.bucket_amount_sec,
		               decode(m.marker,
		                      1, case when trunc(v.start_date)<=trunc(v.due_date)
		                                then v.start_date
		                              else null end,
		                      2, case when trunc(v.start_date) <= trunc(v.due_date)
											and actual_date_closed >= trunc(v.due_date)+1
											and trunc(v.due_date)+1  <= g_sysdate
		                                then trunc(v.due_date)+1
		                              when trunc(v.start_date) >= trunc(v.due_date)+1
		                                then trunc(v.start_date)
		                              else null end) event_date,
					   decode(m.marker,
		                      1, case when trunc(v.due_date)+1 <= actual_date_closed
										then trunc(v.due_date)+1 end,
		                      2, null) next_aging_date,
		               decode(m.marker,
		                      1, 'N',
		                      2, case when trunc(v.start_date) <= trunc(v.due_date)
											and v.actual_date_closed >= trunc(v.due_date)+1
											and trunc(v.due_date)+1  <= g_sysdate
		                                then 'Y'
		                              else 'N' end) aging_flag
		        FROM (--Disputes
		              select /*+ parallel(dis) */ dis.time_id,
							 dis.start_date,
							 dis.bill_to_customer_id,
							 dis.bill_to_site_use_id,
							 dis.org_id,
							 --dis.dispute_history_id,
							 dis.customer_trx_id,
							 dis.payment_schedule_id,
							 dis.due_date,
							 dis.actual_date_closed,
		                     sum(dis.dispute_amount_func)   bucket_amount_func,
		                     sum(dis.dispute_amount_prim)   bucket_amount_prim,
		                     sum(dis.dispute_amount_sec)    bucket_amount_sec
		              from fii_ar_dispute_history_f dis
					  group by dis.time_id,
							 dis.start_date,
							 dis.bill_to_customer_id,
							 dis.bill_to_site_use_id,
							 dis.org_id,
							 dis.customer_trx_id,
							 dis.payment_schedule_id,
							 dis.due_date,
							 dis.actual_date_closed

					  union --changed from union all to union as sugested by perf. team

					  --Disputes that are ended
					  select to_number(to_char(end_date, 'J')) time_id,
					       least(end_date, actual_date_closed) start_date,
					       bill_to_customer_id,
						   bill_to_site_use_id,
						   org_id,
						   customer_trx_id,
						   payment_schedule_id,
						   due_date,
						   actual_date_closed,
					       -1*bucket_amount_func,
					       -1*bucket_amount_prim,
					       -1*bucket_amount_sec
					  from
					    (select /*+ parallel(dis) */ null time_id,
					         max(nvl(dis.end_date, to_date('12/31/4712','MM/DD/YYYY'))) end_date,
					    	 dis.bill_to_customer_id,
					    	 dis.bill_to_site_use_id,
					    	 dis.org_id,
					    	 dis.customer_trx_id,
					    	 dis.payment_schedule_id,
					    	 dis.due_date,
					    	 dis.actual_date_closed,
					         sum(dis.dispute_amount_func)   bucket_amount_func,
					         sum(dis.dispute_amount_prim)   bucket_amount_prim,
					         sum(dis.dispute_amount_sec)    bucket_amount_sec
					    from fii_ar_dispute_history_f dis
					    group by dis.bill_to_customer_id,
					    	 dis.bill_to_site_use_id,
					    	 dis.org_id,
					    	 dis.customer_trx_id,
					    	 dis.payment_schedule_id,
					    	 dis.due_date,
					    	 dis.actual_date_closed)
					  where least(end_date, actual_date_closed) <> to_date('12/31/4712','MM/DD/YYYY')) v,
		             (SELECT 1 marker FROM DUAL UNION ALL
		              SELECT 2 marker FROM DUAL) m)
		    WHERE event_date is not null)
/*		GROUP BY time_id,
			  event_date,
		      next_aging_date,
			  bill_to_customer_id,
			  bill_to_site_use_id,
			  org_id,
			  --dispute_history_id,
			  customer_trx_id,
			  payment_schedule_id,
			  due_date,
			  current_dispute_amount_func,
			  current_dispute_amount_prim,
			  current_dispute_amount_sec,
			  past_due_dispute_amount_func,
			  past_due_dispute_amount_prim,
			  past_due_dispute_amount_sec,
		      aging_flag
*/
		order by payment_schedule_id, event_date

	)
	GROUP BY time_id,
		  event_date,
	      next_aging_date,
		  bill_to_customer_id,
		  bill_to_site_use_id,
		  org_id,
		  --dispute_history_id,
		  customer_trx_id,
		  payment_schedule_id,
		  due_date
	HAVING sum(current_dispute_amount_func) <> 0
		   or
	  	   sum(past_due_dispute_amount_func) <> 0;
Line: 3907

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_AGING_DISPUTES');
Line: 3945

  INSERT into fii_ar_help_mkt_classes
  (class_category,
   class_code,
   class_name,
   creation_date,
   created_by,
   last_update_date,
   last_updated_by,
   last_update_login )
  SELECT c.lookup_type class_category,
         c.lookup_code class_code,
         c.meaning name,
         sysdate,       --CREATION_DATE,
         g_fii_user_id, --CREATED_BY,
         sysdate,       --LAST_UPDATE_DATE,
         g_fii_user_id, --LAST_UPDATED_BY,
         g_fii_login_id --LAST_UPDATE_LOGIN
  FROM fnd_lookup_values c
  WHERE c.lookup_type = l_class_category
  AND nvl(c.language, userenv('LANG')) = userenv('LANG')
  AND nvl(view_application_id, 222) = 222
  AND exists (select 'x' from fii_party_mkt_class hz where hz.class_code = c.lookup_code)

  Union ALL
  SELECT l_class_category class_category,
         '-1' class_code,
         l_unassigned_message class_name,
         sysdate,       --CREATION_DATE,
         g_fii_user_id, --CREATED_BY,
         sysdate,       --LAST_UPDATE_DATE,
         g_fii_user_id, --LAST_UPDATED_BY,
         g_fii_login_id --LAST_UPDATE_LOGIN
  FROM dual;
Line: 3980

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_HELP_MKT_CLASSES');
Line: 3996

  INSERT into fii_ar_help_collectors
  (collector_id,
   name,
   creation_date,
   created_by,
   last_update_date,
   last_updated_by,
   last_update_login )
  SELECT c.collector_id,
         c.name,
         sysdate,       --CREATION_DATE,
         g_fii_user_id, --CREATED_BY,
         sysdate,       --LAST_UPDATE_DATE,
         g_fii_user_id, --LAST_UPDATED_BY,
         g_fii_login_id --LAST_UPDATE_LOGIN
  FROM ar_collectors c
  WHERE exists (select 'x' from fii_collectors hz where hz.collector_id = c.collector_id);
Line: 4015

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_HELP_COLLECTORS');
Line: 4097

  UPDATE FII_AR_SETUP
  SET class_category = nvl(fnd_profile.value('BIS_CUST_CLASS_TYPE'),-1),
      LAST_UPDATE_DATE = sysdate,
      LAST_UPDATED_BY = g_fii_user_id,
      LAST_UPDATE_LOGIN	= g_fii_login_id;
Line: 4105

	  INSERT INTO FII_AR_SETUP
	  (class_category,
	   CREATION_DATE,
	   CREATED_BY,
	   LAST_UPDATE_DATE,
	   LAST_UPDATED_BY,
	   LAST_UPDATE_LOGIN)
	  VALUES (fnd_profile.value('BIS_CUST_CLASS_TYPE'),
	   sysdate,        --CREATION_DATE,
	   g_fii_user_id,  --CREATED_BY,
	   sysdate,        --LAST_UPDATE_DATE,
	   g_fii_user_id,  --LAST_UPDATED_BY,
	   g_fii_login_id);--LAST_UPDATE_LOGIN
Line: 4143

   FII_UTIL.put_line('Calling the Insert_Rates procedure to insert the missing rate info');
Line: 4147

  INSERT_RATES;
Line: 4242

	g_state := 'Logging program sysdate as ar_last_update_date in fii_change_log table';
Line: 4244

	INSERT INTO fii_change_log
	(log_item, item_value, CREATION_DATE, CREATED_BY,
	 LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
	(SELECT 'AR_LAST_UPDATE_DATE',
			to_char(g_sysdate_time,'MM/DD/YYYY HH24:MI:SS'),
			sysdate,        --CREATION_DATE,
		    g_fii_user_id,  --CREATED_BY,
	        sysdate,        --LAST_UPDATE_DATE,
		    g_fii_user_id,  --LAST_UPDATED_BY,
		    g_fii_login_id  --LAST_UPDATE_LOGIN
	 FROM DUAL
	 WHERE NOT EXISTS
		(select 1 from fii_change_log
		 where log_item = 'AR_LAST_UPDATE_DATE'));
Line: 4260

	    UPDATE fii_change_log
    	SET item_value = to_char(g_sysdate_time,'MM/DD/YYYY HH24:MI:SS'),
        	last_update_date  = g_sysdate_time,
        	last_update_login = g_fii_login_id,
        	last_updated_by   = g_fii_user_id
	    WHERE log_item = 'AR_LAST_UPDATE_DATE';
Line: 4312

  select to_date(item_value,'MM/DD/YYYY HH24:MI:SS') into G_LAST_UPDATE_DATE
  from fii_change_log
  where log_item = 'AR_LAST_UPDATE_DATE';
Line: 4316

  select item_value into G_MAX_PAYMENT_SCHEDULE_ID
  from fii_change_log
  where log_item = 'AR_MAX_PAYMENT_SCHEDULE_ID';
Line: 4320

  select item_value into G_MAX_RECEIVABLE_APPL_ID
  from fii_change_log
  where log_item = 'AR_MAX_RECEIVABLE_APPLICATION_ID';
Line: 4325

     FII_UTIL.put_line('G_LAST_UPDATE_DATE is ' ||
                        to_char(G_LAST_UPDATE_DATE,'MM/DD/YYYY HH24:MI:SS'));
Line: 4334

  g_state := 'Populating FII_AR_PAYSCH_INSERT_GT';
Line: 4342

  insert into FII_AR_PAYSCH_INSERT_GT
  (
  payment_schedule_id,
  customer_trx_id,
  class,
  gl_date,
  trx_date
  )
  select PAYMENT_SCHEDULE_ID
       , CUSTOMER_TRX_ID
       , class
       , gl_date
       , trx_date
  from ar_payment_schedules_all
  where PAYMENT_SCHEDULE_ID > G_MAX_PAYMENT_SCHEDULE_ID
  and class in ('INV', 'DM', 'CB', 'CM', 'DEP', 'BR', 'PMT')
  and decode(g_collection_criteria, 'GL', gl_date, trx_date) >=
      g_global_start_date

  union all

  select distinct sch.PAYMENT_SCHEDULE_ID
       , sch.CUSTOMER_TRX_ID
       , sch.class
       , sch.gl_date
       , sch.trx_date
  from ar_payment_schedules_all sch,
       ar_receivable_applications_all app,
       ar_payment_schedules_all trxsch
  where sch.PAYMENT_SCHEDULE_ID > G_MAX_PAYMENT_SCHEDULE_ID
  and sch.class in ('PMT')
  and decode(g_collection_criteria, 'GL', sch.gl_date, sch.trx_date) <
      g_global_start_date
  and app.status = 'APP'
  and sch.payment_schedule_id = app.payment_schedule_id
  and app.applied_payment_schedule_id = trxsch.payment_schedule_id
  and decode(g_collection_criteria, 'GL', trxsch.gl_date, trxsch.trx_date) >=
      g_global_start_date
  ;
Line: 4383

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_PAYSCH_INSERT_GT');
Line: 4389

  g_state := 'Populating FII_AR_DISP_UPDATE_GT';
Line: 4397

  insert into FII_AR_DISP_UPDATE_GT
  (
  payment_schedule_id,
  dispute_history_id,
  dispute_amount,
  start_date,
  end_date,
  last_update_date
  )
  select PAYMENT_SCHEDULE_ID
       , dispute_history_id
       , dispute_amount
       , start_date
       , end_date
       , last_update_date
  from ar_dispute_history
  -- Update end_date, but not LAST_UPDATE_DATE
  where PAYMENT_SCHEDULE_ID in (
        select PAYMENT_SCHEDULE_ID
        from ar_dispute_history
        where LAST_UPDATE_DATE > G_LAST_UPDATE_DATE
        and   start_date >= g_global_start_date
        and   LAST_UPDATE_DATE <= g_sysdate_time
  )
  ;
Line: 4424

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_DISP_UPDATE_GT');
Line: 4430

  g_state := 'Populating FII_AR_ADJ_UPDATE_GT';
Line: 4438

  insert into FII_AR_ADJ_UPDATE_GT
  (
  payment_schedule_id,
  adjustment_id,
  adjustment_type,
  customer_trx_id,
  subsequent_trx_id,
  chargeback_customer_trx_id,
  org_id,
  amount,
  status,
  created_by,
  creation_date,
  gl_date,
  apply_date,
  last_update_date
  )
  select PAYMENT_SCHEDULE_ID
       , adjustment_id
       , adjustment_type
       , customer_trx_id
       , subsequent_trx_id
       , chargeback_customer_trx_id
       , org_id
       , amount
       , status
       , created_by
       , creation_date
       , gl_date
       , apply_date
       , last_update_date
  from ar_adjustments_all
  where LAST_UPDATE_DATE > G_LAST_UPDATE_DATE
  and STATUS = 'A'
  and last_update_date <= g_sysdate_time
  ;
Line: 4476

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_ADJ_UPDATE_GT');
Line: 4482

  g_state := 'Populating FII_AR_RECAPP_INSERT_GT';
Line: 4490

  insert into FII_AR_RECAPP_INSERT_GT
  (
  applied_payment_schedule_id,
  payment_schedule_id,
  applied_customer_trx_id,
  customer_trx_id,
  receivable_application_id,
  application_type,
  cash_receipt_id,
  org_id,
  status,
  created_by,
  creation_date,
  gl_date,
  apply_date,
  amount_applied_from,
  amount_applied,
  acctd_amount_applied_from,
  acctd_amount_applied_to,
  earned_discount_taken,
  acctd_earned_discount_taken,
  unearned_discount_taken,
  acctd_unearned_discount_taken
  )
 select APPLIED_PAYMENT_SCHEDULE_ID
        , payment_schedule_id
        , applied_customer_trx_id
        , CUSTOMER_TRX_ID
        , RECEIVABLE_APPLICATION_ID
        , application_type
        , cash_receipt_id
        , org_id
        , status
        , created_by
        , creation_date
        , gl_date
        , apply_date
        , AMOUNT_APPLIED_FROM
        , AMOUNT_APPLIED
        , acctd_amount_applied_from
        , acctd_amount_applied_to
        , EARNED_DISCOUNT_TAKEN
        , acctd_earned_discount_taken
        , UNEARNED_DISCOUNT_TAKEN
        , acctd_unearned_discount_taken
   from ar_receivable_applications_all app
   -- To calculate rct_gl_date
   where exists (select 'x' from ar_receivable_applications_all app2
                     where app2.RECEIVABLE_APPLICATION_ID > G_MAX_RECEIVABLE_APPL_ID
                     and app2.cash_receipt_id = app.cash_receipt_id

                     and (app2.status in ('APP', 'ACTIVITY')
                          or application_type = 'CASH')  )

 union all

 select APPLIED_PAYMENT_SCHEDULE_ID
        , payment_schedule_id
        , applied_customer_trx_id
        , CUSTOMER_TRX_ID
        , RECEIVABLE_APPLICATION_ID
        , application_type
        , cash_receipt_id
        , org_id
        , status
        , created_by
        , creation_date
        , gl_date
        , apply_date
        , AMOUNT_APPLIED_FROM
        , AMOUNT_APPLIED
        , acctd_amount_applied_from
        , acctd_amount_applied_to
        , EARNED_DISCOUNT_TAKEN
        , acctd_earned_discount_taken
        , UNEARNED_DISCOUNT_TAKEN
        , acctd_unearned_discount_taken
   from ar_receivable_applications_all app
   -- To calculate rct_gl_date
   where exists (select 'x' from ar_receivable_applications_all app2
                     where app2.RECEIVABLE_APPLICATION_ID > G_MAX_RECEIVABLE_APPL_ID
                     and app2.customer_trx_id = app.customer_trx_id
                     and application_type = 'CM')
  ;
Line: 4576

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_RECAPP_INSERT_GT');
Line: 4582

  g_state := 'Populating FII_AR_TRANS_DELETE_GT';
Line: 4590

  insert into FII_AR_TRANS_DELETE_GT
  (
  customer_trx_id
  )
  select CUSTOMER_TRX_ID
  from ra_customer_trx_all
  where LAST_UPDATE_DATE > G_LAST_UPDATE_DATE
  and COMPLETE_FLAG = 'N'
  and last_update_date <= g_sysdate_time
  ;
Line: 4602

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_TRANS_DELETE_GT');
Line: 4610

  insert into FII_AR_PAYSCH_DELETE_PAYSCH_GT
  select CUSTOMER_TRX_ID
  from ar_payment_schedules_all
  where PAYMENT_SCHEDULE_ID > G_MAX_PAYMENT_SCHEDULE_ID;
Line: 4616

  g_state := 'Populating FII_AR_RECAPP_DELETE_GT';
Line: 4624

  insert into FII_AR_RECAPP_DELETE_GT
  (
  receivable_application_id,
  payment_schedule_id,
  CASH_RECEIPT_ID
  )
  select RECEIVABLE_APPLICATION_ID, PAYMENT_SCHEDULE_ID, CASH_RECEIPT_ID
  from fii_ar_receipts_f
  where CASH_RECEIPT_ID in (
    select CASH_RECEIPT_ID from FII_AR_RECEIPTS_DELETE_T
    where CREATION_DATE <= g_sysdate_time
  )
  ;
Line: 4639

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_RECAPP_DELETE_GT');
Line: 4652

  insert into FII_AR_PAYSCH_MERGE_GT
  (
  class,
  org_id,
  invoice_currency_code,
  exchange_rate,
  exchange_date,
  gl_date,
  trx_date,
  due_date,
  actual_date_closed,
  payment_schedule_id,
  trx_number,
  customer_trx_id,
  cust_trx_type_id,
  customer_id,
  customer_site_use_id,
  amount_due_original,
  amount_due_remaining,
  discount_taken_earned,
  discount_taken_unearned,
  amount_adjusted,
  amount_in_dispute,
  status,
  term_id,
  terms_sequence_number,
  created_by
  )
  select class
       , org_id
       , invoice_currency_code
       , exchange_rate
       , exchange_date
       , trunc(gl_date)
       , trunc(trx_date)
       , trunc(due_date)
       , actual_date_closed
       , payment_schedule_id
       , trx_number
       , customer_trx_id
       , cust_trx_type_id
       , customer_id
       , customer_site_use_id
       , amount_due_original
       , amount_due_remaining
       , discount_taken_earned
       , discount_taken_unearned
       , amount_adjusted
       , amount_in_dispute
       , status
       , term_id
       , terms_sequence_number
       , created_by
  from ar_payment_schedules_all
  where PAYMENT_SCHEDULE_ID in (
      -- PaySch Insert
      select PAYMENT_SCHEDULE_ID
      from FII_AR_PAYSCH_INSERT_GT
      union all
      -- PaySch Update 1
      select PAYMENT_SCHEDULE_ID
      from FII_AR_DISP_UPDATE_GT
      union all
      -- PaySch Update 2
      select PAYMENT_SCHEDULE_ID
      from FII_AR_ADJ_UPDATE_GT
      union all
      -- PaySch Update 3
      select APPLIED_PAYMENT_SCHEDULE_ID
      from FII_AR_RECAPP_INSERT_GT
      union all
      -- PaySch Update 3 (receipt rates)
      select PAYMENT_SCHEDULE_ID
      from FII_AR_RECAPP_INSERT_GT
      )
  and CLASS IN ('INV', 'DM', 'CB', 'CM', 'DEP', 'BR', 'PMT');
Line: 4731

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_PAYSCH_MERGE_GT');
Line: 4737

  g_state := 'Populating FII_AR_PAYSCH_DELETE_GT';
Line: 4744

  insert into FII_AR_PAYSCH_DELETE_GT
  (
  payment_schedule_id
  )
  select PAYMENT_SCHEDULE_ID
  from fii_ar_pmt_schedules_f
  where CUSTOMER_TRX_ID in (
      -- PaySch Delete 1
      select CUSTOMER_TRX_ID
      from FII_AR_TRANS_DELETE_GT
      union all
      -- PaySch Delete 2
      select CUSTOMER_TRX_ID
      from FII_AR_PAYSCH_INSERT_GT -- FII_AR_PAYSCH_DELETE_PAYSCH_GT
  )
  union
  -- PaySch Delete 3
  select PAYMENT_SCHEDULE_ID
  from FII_AR_RECAPP_DELETE_GT
  ;
Line: 4766

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_PAYSCH_DELETE_GT');
Line: 4803

  INSERT /*+ append */ INTO FII_AR_CURR_RATES_T
    (SELECT sob.currency_code fc_code,
            Decode(NVL(cur.minimum_accountable_unit,
                       power( 10, (-1 * cur.precision))),
                   null, 0.01,
                   0, 1,
                   NVL(cur.minimum_accountable_unit,
                       power( 10, (-1 * cur.precision)))) functional_mau,
            conversion_date,
            MAX(FII_CURRENCY.Get_FC_to_PGC_Rate (v.tc_code,
                     sob.currency_code, v.conversion_date)) prim_conversion_rate,
            MAX(FII_CURRENCY.Get_FC_to_SGC_Rate (v.tc_code,
                     sob.currency_code, v.conversion_date)) sec_conversion_rate,
            sysdate,       --CREATION_DATE,
            g_fii_user_id, --CREATED_BY,
            sysdate,       --LAST_UPDATE_DATE,
            g_fii_user_id, --LAST_UPDATED_BY,
            g_fii_login_id --LAST_UPDATE_LOGIN
     FROM (--Currency rates for payment schedules and receipts
           SELECT /*+ no_merge parallel(sch) */ DISTINCT
                  sch.invoice_currency_code tc_code,
                  sch.org_id,
                  trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) conversion_date
               FROM FII_AR_PAYSCH_MERGE_GT sch
               --WHERE sch.class IN ('INV','DM','CB','CM','DEP','BR','PMT')
               --AND sch.trx_date >= g_global_start_date
           ) v,
           ar_system_parameters_all par,
           gl_sets_of_books sob,
           fnd_currencies cur
     WHERE v.org_id = par.org_id
     AND par.set_of_books_id = sob.set_of_books_id
     AND cur.currency_code = sob.currency_code
     GROUP BY sob.currency_code,
              cur.minimum_accountable_unit,
              cur.precision,
              conversion_date);
Line: 4853

update FII_AR_CURR_RATES_T
set prim_conversion_rate=1
where prim_conversion_rate<=0;
Line: 4857

update FII_AR_CURR_RATES_T
set sec_conversion_rate=1
where sec_conversion_rate<=0;
Line: 4901

  delete from fii_ar_pmt_schedules_f
  where PAYMENT_SCHEDULE_ID in (
      -- PaySch Delete 1 2 3
      select PAYMENT_SCHEDULE_ID
      from FII_AR_PAYSCH_DELETE_GT
  );
Line: 4909

     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from FII_AR_PMT_SCHEDULES_F');
Line: 4926

    SELECT sch.payment_schedule_id,
          to_number(to_char(decode(g_collection_criteria,
                                   'GL', sch.gl_date,
                                   sch.trx_date), 'J')) time_id,
          sch.class,
          sch.amount_due_original amount_due_original_trx,
          NVL(ROUND(sch.amount_due_original * nvl(sch.exchange_rate,1) /
                rt.functional_mau) * rt.functional_mau,
                nvl(sch.amount_due_original,0)) amount_due_original_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) amount_due_original_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_original,0),
                ROUND((nvl(sch.amount_due_original,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_original_sec,
          sch.amount_due_remaining amount_due_remaining_trx,
          NVL(ROUND(sch.amount_due_remaining * nvl(sch.exchange_rate,1) /
              rt.functional_mau) * rt.functional_mau,
              nvl(sch.amount_due_remaining,0)) amount_due_remaining_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau ) *
                    g_primary_mau) amount_due_remaining_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_due_remaining,0),
                ROUND((nvl(sch.amount_due_remaining,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_due_remaining_sec,
          trunc(sch.trx_date) trx_date,
          trunc(sch.gl_date) gl_date,
          decode(g_collection_criteria,'GL',sch.gl_date,sch.trx_date) filter_date,
          trunc(sch.due_date) due_date,
          sch.status,
          sch.customer_trx_id,
          sch.invoice_currency_code,
          sch.customer_id bill_to_customer_id,
          sch.customer_site_use_id bill_to_site_use_id,
          sch.org_id,
          sch.created_by user_id,
          sch.cust_trx_type_id cust_trx_type_id,
          sch.trx_number transaction_number,
          sch.term_id,
          sch.terms_sequence_number,
          trx.batch_source_id,
          sch.discount_taken_earned earned_discount_amount_trx,
          NVL(ROUND(sch.discount_taken_earned * nvl(sch.exchange_rate,1) /
                rt.functional_mau) * rt.functional_mau,
                nvl(sch.discount_taken_earned,0))  earned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) earned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_earned,0),
                ROUND((nvl(sch.discount_taken_earned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) earned_discount_amount_sec,
          nvl(sch.discount_taken_unearned,0)  unearned_discount_amount_trx,
          NVL(ROUND(sch.discount_taken_unearned * nvl(sch.exchange_rate,1) /
                rt.functional_mau) * rt.functional_mau,
                nvl(sch.discount_taken_unearned,0))  unearned_discount_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) unearned_discount_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.discount_taken_unearned,0),
                ROUND((nvl(sch.discount_taken_unearned,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) unearned_discount_amount_sec,
          nvl(sch.amount_adjusted,0) adjusted_amount_trx,
          NVL(ROUND(sch.amount_adjusted * nvl(sch.exchange_rate,1) /
                rt.functional_mau) * rt.functional_mau,
                nvl(sch.amount_adjusted,0)) adjusted_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) adjusted_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_adjusted,0),
                ROUND((nvl(sch.amount_adjusted,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) adjusted_amount_sec,
          nvl(sch.amount_in_dispute,0) disputed_amount_trx,
          NVL(ROUND(sch.amount_in_dispute * nvl(sch.exchange_rate,1) /
                rt.functional_mau) * rt.functional_mau ,
                nvl(sch.amount_in_dispute,0)) disputed_amount_func,
          DECODE(sch.invoice_currency_code,
                g_prim_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) disputed_amount_prim,
          DECODE(sch.invoice_currency_code,
                g_sec_currency, nvl(sch.amount_in_dispute,0),
                ROUND((nvl(sch.amount_in_dispute,0) * nvl(sch.exchange_rate,1) *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) disputed_amount_sec,
          decode(trx.batch_source_id,
                 -1, trx.ct_reference,
                 null) order_ref_number,
          sch.actual_date_closed,
          nvl(sch.exchange_rate,1) EXCHANGE_RATE,
          nvl(sch.exchange_date, sch.trx_date) EXCHANGE_DATE,
          trx.previous_customer_trx_id,
          sysdate        CREATION_DATE,
          g_fii_user_id  CREATED_BY,
          sysdate        LAST_UPDATE_DATE,
          g_fii_user_id  LAST_UPDATED_BY,
          g_fii_login_id LAST_UPDATE_LOGIN
    FROM FII_AR_PAYSCH_MERGE_GT sch,
         RA_CUSTOMER_TRX_ALL trx,
         FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob
    WHERE sch.class IN ('INV','DM','CB','CM','DEP','BR', 'PMT')
    /*AND decode(g_collection_criteria,
               'GL', sch.gl_date,
               sch.trx_date) >= g_global_start_date */
    AND sch.customer_trx_id = trx.customer_trx_id (+)

    AND sch.org_id = par.org_id
    AND par.set_of_books_id = sob.set_of_books_id
    AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date
  ) dlt
  on ( old.PAYMENT_SCHEDULE_ID = dlt.PAYMENT_SCHEDULE_ID )
  when matched then update set
    -- old.PAYMENT_SCHEDULE_ID = dlt.PAYMENT_SCHEDULE_ID,
    -- old.TIME_ID = dlt.TIME_ID,
    -- old.CLASS = dlt.CLASS,
    -- old.AMOUNT_DUE_ORIGINAL_TRX = dlt.AMOUNT_DUE_ORIGINAL_TRX,
    -- old.AMOUNT_DUE_ORIGINAL_FUNC = dlt.AMOUNT_DUE_ORIGINAL_FUNC,
    -- old.AMOUNT_DUE_ORIGINAL_PRIM = dlt.AMOUNT_DUE_ORIGINAL_PRIM,
    -- old.AMOUNT_DUE_ORIGINAL_SEC = dlt.AMOUNT_DUE_ORIGINAL_SEC,
    old.AMOUNT_DUE_REMAINING_TRX = dlt.AMOUNT_DUE_REMAINING_TRX,
    old.AMOUNT_DUE_REMAINING_FUNC = dlt.AMOUNT_DUE_REMAINING_FUNC,
    old.AMOUNT_DUE_REMAINING_PRIM = dlt.AMOUNT_DUE_REMAINING_PRIM,
    old.AMOUNT_DUE_REMAINING_SEC = dlt.AMOUNT_DUE_REMAINING_SEC,
    -- old.TRX_DATE = dlt.TRX_DATE,
    -- old.GL_DATE = dlt.GL_DATE,
    -- old.FILTER_DATE = dlt.FILTER_DATE,
    old.DUE_DATE = dlt.DUE_DATE,
    old.STATUS = dlt.STATUS,
    -- old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID,
    -- old.INVOICE_CURRENCY_CODE = dlt.INVOICE_CURRENCY_CODE,
    -- old.BILL_TO_CUSTOMER_ID = dlt.BILL_TO_CUSTOMER_ID,
    -- old.BILL_TO_SITE_USE_ID = dlt.BILL_TO_SITE_USE_ID,
    -- old.ORG_ID = dlt.ORG_ID,
    -- old.USER_ID = dlt.USER_ID,
    -- old.CUST_TRX_TYPE_ID = dlt.CUST_TRX_TYPE_ID,
    -- old.TRANSACTION_NUMBER = dlt.TRANSACTION_NUMBER,
    old.TERM_ID = dlt.TERM_ID,
    old.terms_sequence_number = dlt.terms_sequence_number,
    -- old.BATCH_SOURCE_ID = dlt.BATCH_SOURCE_ID,
    old.EARNED_DISCOUNT_AMOUNT_TRX = dlt.EARNED_DISCOUNT_AMOUNT_TRX,
    old.EARNED_DISCOUNT_AMOUNT_FUNC = dlt.EARNED_DISCOUNT_AMOUNT_FUNC,
    old.EARNED_DISCOUNT_AMOUNT_PRIM = dlt.EARNED_DISCOUNT_AMOUNT_PRIM,
    old.EARNED_DISCOUNT_AMOUNT_SEC = dlt.EARNED_DISCOUNT_AMOUNT_SEC,
    old.UNEARNED_DISCOUNT_AMOUNT_TRX = dlt.UNEARNED_DISCOUNT_AMOUNT_TRX,
    old.UNEARNED_DISCOUNT_AMOUNT_FUNC = dlt.UNEARNED_DISCOUNT_AMOUNT_FUNC,
    old.UNEARNED_DISCOUNT_AMOUNT_PRIM = dlt.UNEARNED_DISCOUNT_AMOUNT_PRIM,
    old.UNEARNED_DISCOUNT_AMOUNT_SEC = dlt.UNEARNED_DISCOUNT_AMOUNT_SEC,
    old.ADJUSTED_AMOUNT_TRX = dlt.ADJUSTED_AMOUNT_TRX,
    old.ADJUSTED_AMOUNT_FUNC = dlt.ADJUSTED_AMOUNT_FUNC,
    old.ADJUSTED_AMOUNT_PRIM = dlt.ADJUSTED_AMOUNT_PRIM,
    old.ADJUSTED_AMOUNT_SEC = dlt.ADJUSTED_AMOUNT_SEC,
    old.DISPUTED_AMOUNT_TRX = dlt.DISPUTED_AMOUNT_TRX,
    old.DISPUTED_AMOUNT_FUNC = dlt.DISPUTED_AMOUNT_FUNC,
    old.DISPUTED_AMOUNT_PRIM = dlt.DISPUTED_AMOUNT_PRIM,
    old.DISPUTED_AMOUNT_SEC = dlt.DISPUTED_AMOUNT_SEC,
    old.ORDER_REF_NUMBER = dlt.ORDER_REF_NUMBER,
    old.ACTUAL_DATE_CLOSED = dlt.ACTUAL_DATE_CLOSED,
    old.EXCHANGE_RATE = dlt.EXCHANGE_RATE,
    old.EXCHANGE_DATE = dlt.EXCHANGE_DATE,
    old.PREVIOUS_CUSTOMER_TRX_ID = dlt.PREVIOUS_CUSTOMER_TRX_ID,
    -- old.CREATION_DATE = dlt.CREATION_DATE,
    -- old.CREATED_BY = dlt.CREATED_BY,
    old.LAST_UPDATE_DATE = dlt.LAST_UPDATE_DATE,
    old.LAST_UPDATED_BY = dlt.LAST_UPDATED_BY,
    old.LAST_UPDATE_LOGIN = dlt.LAST_UPDATE_LOGIN
  when not matched then insert
  (
    PAYMENT_SCHEDULE_ID,
    TIME_ID,
    CLASS,
    AMOUNT_DUE_ORIGINAL_TRX,
    AMOUNT_DUE_ORIGINAL_FUNC,
    AMOUNT_DUE_ORIGINAL_PRIM,
    AMOUNT_DUE_ORIGINAL_SEC,
    AMOUNT_DUE_REMAINING_TRX,
    AMOUNT_DUE_REMAINING_FUNC,
    AMOUNT_DUE_REMAINING_PRIM,
    AMOUNT_DUE_REMAINING_SEC,
    TRX_DATE,
    GL_DATE,
    FILTER_DATE,
    DUE_DATE,
    STATUS,
    CUSTOMER_TRX_ID,
    INVOICE_CURRENCY_CODE,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    ORG_ID,
    USER_ID,
    CUST_TRX_TYPE_ID,
    TRANSACTION_NUMBER,
    TERM_ID,
    terms_sequence_number,
    BATCH_SOURCE_ID,
    EARNED_DISCOUNT_AMOUNT_TRX,
    EARNED_DISCOUNT_AMOUNT_FUNC,
    EARNED_DISCOUNT_AMOUNT_PRIM,
    EARNED_DISCOUNT_AMOUNT_SEC,
    UNEARNED_DISCOUNT_AMOUNT_TRX,
    UNEARNED_DISCOUNT_AMOUNT_FUNC,
    UNEARNED_DISCOUNT_AMOUNT_PRIM,
    UNEARNED_DISCOUNT_AMOUNT_SEC,
    ADJUSTED_AMOUNT_TRX,
    ADJUSTED_AMOUNT_FUNC,
    ADJUSTED_AMOUNT_PRIM,
    ADJUSTED_AMOUNT_SEC,
    DISPUTED_AMOUNT_TRX,
    DISPUTED_AMOUNT_FUNC,
    DISPUTED_AMOUNT_PRIM,
    DISPUTED_AMOUNT_SEC,
    ORDER_REF_NUMBER,
    ACTUAL_DATE_CLOSED,
    EXCHANGE_RATE,
    EXCHANGE_DATE,
    PREVIOUS_CUSTOMER_TRX_ID,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    dlt.PAYMENT_SCHEDULE_ID,
    dlt.TIME_ID,
    dlt.CLASS,
    dlt.AMOUNT_DUE_ORIGINAL_TRX,
    dlt.AMOUNT_DUE_ORIGINAL_FUNC,
    dlt.AMOUNT_DUE_ORIGINAL_PRIM,
    dlt.AMOUNT_DUE_ORIGINAL_SEC,
    dlt.AMOUNT_DUE_REMAINING_TRX,
    dlt.AMOUNT_DUE_REMAINING_FUNC,
    dlt.AMOUNT_DUE_REMAINING_PRIM,
    dlt.AMOUNT_DUE_REMAINING_SEC,
    dlt.TRX_DATE,
    dlt.GL_DATE,
    dlt.FILTER_DATE,
    dlt.DUE_DATE,
    dlt.STATUS,
    dlt.CUSTOMER_TRX_ID,
    dlt.INVOICE_CURRENCY_CODE,
    dlt.BILL_TO_CUSTOMER_ID,
    dlt.BILL_TO_SITE_USE_ID,
    dlt.ORG_ID,
    dlt.USER_ID,
    dlt.CUST_TRX_TYPE_ID,
    dlt.TRANSACTION_NUMBER,
    dlt.TERM_ID,
    dlt.terms_sequence_number,
    dlt.BATCH_SOURCE_ID,
    dlt.EARNED_DISCOUNT_AMOUNT_TRX,
    dlt.EARNED_DISCOUNT_AMOUNT_FUNC,
    dlt.EARNED_DISCOUNT_AMOUNT_PRIM,
    dlt.EARNED_DISCOUNT_AMOUNT_SEC,
    dlt.UNEARNED_DISCOUNT_AMOUNT_TRX,
    dlt.UNEARNED_DISCOUNT_AMOUNT_FUNC,
    dlt.UNEARNED_DISCOUNT_AMOUNT_PRIM,
    dlt.UNEARNED_DISCOUNT_AMOUNT_SEC,
    dlt.ADJUSTED_AMOUNT_TRX,
    dlt.ADJUSTED_AMOUNT_FUNC,
    dlt.ADJUSTED_AMOUNT_PRIM,
    dlt.ADJUSTED_AMOUNT_SEC,
    dlt.DISPUTED_AMOUNT_TRX,
    dlt.DISPUTED_AMOUNT_FUNC,
    dlt.DISPUTED_AMOUNT_PRIM,
    dlt.DISPUTED_AMOUNT_SEC,
    dlt.ORDER_REF_NUMBER,
    dlt.ACTUAL_DATE_CLOSED,
    dlt.EXCHANGE_RATE,
    dlt.EXCHANGE_DATE,
    dlt.PREVIOUS_CUSTOMER_TRX_ID,
    dlt.CREATION_DATE,
    dlt.CREATED_BY,
    dlt.LAST_UPDATE_DATE,
    dlt.LAST_UPDATED_BY,
    dlt.LAST_UPDATE_LOGIN
  );
Line: 5237

  select nvl(max(payment_schedule_id), -999)
  into l_max_pmt_schedule_id
  from fii_ar_pmt_schedules_f;
Line: 5241

  INSERT INTO fii_change_log
  (log_item, item_value, CREATION_DATE, CREATED_BY,
   LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
  (SELECT 'AR_MAX_PAYMENT_SCHEDULE_ID',
        l_max_pmt_schedule_id,
        sysdate,        --CREATION_DATE,
        g_fii_user_id,  --CREATED_BY,
        sysdate,        --LAST_UPDATE_DATE,
        g_fii_user_id,  --LAST_UPDATED_BY,
        g_fii_login_id  --LAST_UPDATE_LOGIN
   FROM DUAL
   WHERE NOT EXISTS
      (select 1 from fii_change_log
       where log_item = 'AR_MAX_PAYMENT_SCHEDULE_ID'));
Line: 5257

      UPDATE fii_change_log
      SET item_value = l_max_pmt_schedule_id,
          last_update_date  = g_sysdate_time,
          last_update_login = g_fii_login_id,
          last_updated_by   = g_fii_user_id
      WHERE log_item = 'AR_MAX_PAYMENT_SCHEDULE_ID';
Line: 5296

  delete from fii_ar_dispute_history_f
  where PAYMENT_SCHEDULE_ID in (
      -- PaySch Delete 1 2 3
      select PAYMENT_SCHEDULE_ID
      from FII_AR_PAYSCH_DELETE_GT
  );
Line: 5304

     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from FII_AR_DISPUTE_HISTORY_F');
Line: 5321

    SELECT dis.dispute_history_id,
      to_number(to_char(dis.start_date, 'J')) time_id,
      dis.dispute_amount dispute_amount_trx,
      NVL(ROUND(dis.dispute_amount * sch.exchange_rate / rt.functional_mau)
            * rt.functional_mau, nvl(dis.dispute_amount,0)) dispute_amount_func,
      DECODE(sch.invoice_currency_code,
            g_prim_currency, nvl(dis.dispute_amount,0),
            ROUND((nvl(dis.dispute_amount,0) * sch.exchange_rate *
                rt.prim_conversion_rate) / g_primary_mau) *
                g_primary_mau) dispute_amount_prim,
      DECODE(sch.invoice_currency_code,
            g_sec_currency, nvl(dis.dispute_amount,0),
            ROUND((nvl(dis.dispute_amount,0) * sch.exchange_rate *
                rt.sec_conversion_rate) / g_secondary_mau) *
                g_secondary_mau) dispute_amount_sec,
      dis.start_date,
      dis.end_date,
      sch.org_id,
      sch.bill_to_customer_id,
      sch.bill_to_site_use_id,
      dis.payment_schedule_id,
      sch.customer_trx_id,
      sch.due_date,
      sch.actual_date_closed,
      sysdate        CREATION_DATE,
      g_fii_user_id  CREATED_BY,
      sysdate        LAST_UPDATE_DATE,
      g_fii_user_id  LAST_UPDATED_BY,
      g_fii_login_id LAST_UPDATE_LOGIN
    FROM /* (
              select * from FII_AR_DISP_UPDATE_GT
              -- where start_date >= g_global_start_date
              -- and last_update_date <= g_sysdate_time
         ) */
         FII_AR_DISP_UPDATE_GT dis,
         -- FII_AR_PMT_SCHEDULES_F sch, --> FII_AR_PAYSCH_MERGE_GT
         ( select
             actual_date_closed,
             sch.customer_id bill_to_customer_id,
             sch.customer_site_use_id bill_to_site_use_id,
             class,
             customer_trx_id,
             due_date,
             nvl(sch.exchange_date, sch.trx_date) exchange_date,
             nvl(sch.exchange_rate,1) exchange_rate,
             invoice_currency_code,
             org_id,
             payment_schedule_id,
             trx_date
           from FII_AR_PAYSCH_MERGE_GT sch
         ) sch,
         FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob
    WHERE dis.payment_schedule_id = sch.payment_schedule_id
    AND sch.class <> 'PMT'
    AND dis.start_date <= sch.actual_date_closed
    AND dis.start_date >= g_global_start_date
    AND dis.last_update_date <= g_sysdate_time  --To avoid duplication in incremental

    AND sch.org_id = par.org_id
    AND par.set_of_books_id = sob.set_of_books_id
    AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date
  ) dlt
  on ( old.DISPUTE_HISTORY_ID = dlt.DISPUTE_HISTORY_ID )
  when matched then update set
    -- old.DISPUTE_HISTORY_ID = dlt.DISPUTE_HISTORY_ID,
    -- old.TIME_ID = dlt.TIME_ID,
    -- old.DISPUTE_AMOUNT_TRX = dlt.DISPUTE_AMOUNT_TRX,
    -- old.DISPUTE_AMOUNT_FUNC = dlt.DISPUTE_AMOUNT_FUNC,
    -- old.DISPUTE_AMOUNT_PRIM = dlt.DISPUTE_AMOUNT_PRIM,
    -- old.DISPUTE_AMOUNT_SEC = dlt.DISPUTE_AMOUNT_SEC,
    -- old.START_DATE = dlt.START_DATE,
    old.END_DATE = dlt.END_DATE,
    -- old.ORG_ID = dlt.ORG_ID,
    -- old.BILL_TO_CUSTOMER_ID = dlt.BILL_TO_CUSTOMER_ID,
    -- old.BILL_TO_SITE_USE_ID = dlt.BILL_TO_SITE_USE_ID,
    -- old.PAYMENT_SCHEDULE_ID = dlt.PAYMENT_SCHEDULE_ID,
    -- old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID,
    old.DUE_DATE = dlt.DUE_DATE,
    old.ACTUAL_DATE_CLOSED = dlt.ACTUAL_DATE_CLOSED,
    -- old.CREATION_DATE = dlt.CREATION_DATE,
    -- old.CREATED_BY = dlt.CREATED_BY,
    old.LAST_UPDATE_DATE = dlt.LAST_UPDATE_DATE,
    old.LAST_UPDATED_BY = dlt.LAST_UPDATED_BY,
    old.LAST_UPDATE_LOGIN = dlt.LAST_UPDATE_LOGIN
  when not matched then insert
  (
    DISPUTE_HISTORY_ID,
    TIME_ID,
    DISPUTE_AMOUNT_TRX,
    DISPUTE_AMOUNT_FUNC,
    DISPUTE_AMOUNT_PRIM,
    DISPUTE_AMOUNT_SEC,
    START_DATE,
    END_DATE,
    ORG_ID,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    PAYMENT_SCHEDULE_ID,
    CUSTOMER_TRX_ID,
    DUE_DATE,
    ACTUAL_DATE_CLOSED,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    dlt.DISPUTE_HISTORY_ID,
    dlt.TIME_ID,
    dlt.DISPUTE_AMOUNT_TRX,
    dlt.DISPUTE_AMOUNT_FUNC,
    dlt.DISPUTE_AMOUNT_PRIM,
    dlt.DISPUTE_AMOUNT_SEC,
    dlt.START_DATE,
    dlt.END_DATE,
    dlt.ORG_ID,
    dlt.BILL_TO_CUSTOMER_ID,
    dlt.BILL_TO_SITE_USE_ID,
    dlt.PAYMENT_SCHEDULE_ID,
    dlt.CUSTOMER_TRX_ID,
    dlt.DUE_DATE,
    dlt.ACTUAL_DATE_CLOSED,
    dlt.CREATION_DATE,
    dlt.CREATED_BY,
    dlt.LAST_UPDATE_DATE,
    dlt.LAST_UPDATED_BY,
    dlt.LAST_UPDATE_LOGIN
  );
Line: 5498

  delete from fii_ar_transactions_f
  where CUSTOMER_TRX_ID in (
      -- Trans Delete
      select CUSTOMER_TRX_ID
      from FII_AR_TRANS_DELETE_GT
  );
Line: 5506

     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from FII_AR_TRANSACTIONS_F');
Line: 5523

    SELECT trx.customer_trx_id,
        trx.org_id,
        to_number(to_char(decode(g_collection_criteria,
                                 'GL', sch.gl_date,
                                 trx.trx_date), 'J')) time_id,
        trunc(trx.trx_date) trx_date,
        trunc(sch.gl_date) gl_date,
        sch.class, --class
        sum(nvl(sch.amount_due_original_trx,0))  AMOUNT_DUE_ORIGINAL_TRX,
        sum(nvl(sch.amount_due_original_func,0)) AMOUNT_DUE_ORIGINAL_FUNC,
        sum(nvl(sch.amount_due_original_prim,0)) AMOUNT_DUE_ORIGINAL_PRIM,
        sum(nvl(sch.amount_due_original_sec,0))  AMOUNT_DUE_ORIGINAL_SEC,
        NVL(trx.bill_to_customer_id, trx.drawee_id) BILL_TO_CUSTOMER_ID, -- drawee_id used for BR
        NVL(trx.bill_to_site_use_id,
            trx.drawee_site_use_id) BILL_TO_SITE_USE_ID, --drawee_site_use_id used for BR
        trx.trx_number TRANSACTION_NUMBER,
        trx.cust_trx_type_id,
        trx.term_id,
        trx.batch_source_id,
        decode(g_collection_criteria,'GL', sch.gl_date, trx.trx_date) filter_date,
        decode(trx.batch_source_id,
               -1, trx.ct_reference,
               null) order_ref_number, -- -1 indicates that the trx is a manual order entry
        trx.invoice_currency_code,
        nvl(trx.exchange_rate,1) exchange_rate,
        nvl(trx.exchange_date,trx.trx_date) exchange_date,
        trx.initial_customer_trx_id,
        trx.previous_customer_trx_id,
        trx.created_by user_id,
        trx.creation_date ar_creation_date,
        decode(sch.class,'INV',sum(nvl(sch.amount_due_original_func,0)),0) INV_ba_amount_func,
        decode(sch.class,'INV',sum(nvl(sch.amount_due_original_prim,0)),0) INV_ba_amount_prim,
        decode(sch.class,'INV',sum(nvl(sch.amount_due_original_sec,0)),0)  INV_ba_amount_sec,
        decode(sch.class,'INV',1,0) INV_ba_count,
        decode(sch.class,'DM',sum(nvl(sch.amount_due_original_func,0)),0)  DM_ba_amount_func,
        decode(sch.class,'DM',sum(nvl(sch.amount_due_original_prim,0)),0)  DM_ba_amount_prim,
        decode(sch.class,'DM',sum(nvl(sch.amount_due_original_sec,0)),0)   DM_ba_amount_sec,
        decode(sch.class,'DM',1,0) DM_ba_count,
        decode(sch.class,'CB',sum(nvl(sch.amount_due_original_func,0)),0)  CB_ba_amount_func,
        decode(sch.class,'CB',sum(nvl(sch.amount_due_original_prim,0)),0)  CB_ba_amount_prim,
        decode(sch.class,'CB',sum(nvl(sch.amount_due_original_sec,0)),0)   CB_ba_amount_sec,
        decode(sch.class,'CB',1,0) CB_ba_count,
        decode(sch.class,'BR',sum(nvl(sch.amount_due_original_func,0)),0)  BR_ba_amount_func,
        decode(sch.class,'BR',sum(nvl(sch.amount_due_original_prim,0)),0)  BR_ba_amount_prim,
        decode(sch.class,'BR',sum(nvl(sch.amount_due_original_sec,0)),0)   BR_ba_amount_sec,
        decode(sch.class,'BR',1,0) BR_ba_count,
        decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_func,0)),0) DEP_ba_amount_func,
        decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_prim,0)),0) DEP_ba_amount_prim,
        decode(sch.class,'DEP',sum(nvl(sch.amount_due_original_sec,0)),0)  DEP_ba_amount_sec,
        decode(sch.class,'DEP',1,0) DEP_ba_count,
        decode(sch.class,'CM',sum(nvl(sch.amount_due_original_func,0)),0)  CM_ba_amount_func,
        decode(sch.class,'CM',sum(nvl(sch.amount_due_original_prim,0)),0)  CM_ba_amount_prim,
        decode(sch.class,'CM',sum(nvl(sch.amount_due_original_sec,0)),0)   CM_ba_amount_sec,
        decode(sch.class,'CM',1,0) CM_ba_count,
        sysdate        CREATION_DATE,
        g_fii_user_id  CREATED_BY,
        sysdate        LAST_UPDATE_DATE,
        g_fii_user_id  LAST_UPDATED_BY,
        g_fii_login_id LAST_UPDATE_LOGIN
    FROM (
              select * from ra_customer_trx_all
              where CUSTOMER_TRX_ID in (
                  -- Trans Insert, Update
                  select CUSTOMER_TRX_ID
                  from FII_AR_PAYSCH_INSERT_GT
                  where CLASS <> 'PMT'
                  -- and decode(g_collection_criteria, 'GL', gl_date, trx_date) >= g_global_start_date
              )
         ) trx,
         -- FII_AR_PMT_SCHEDULES_F sch --> FII_AR_PAYSCH_MERGE_GT
         ( select
             NVL(ROUND(sch.amount_due_original * nvl(sch.exchange_rate,1) /
               rt.functional_mau) * rt.functional_mau,
               nvl(sch.amount_due_original,0)) amount_due_original_func,
             DECODE(sch.invoice_currency_code,
               g_prim_currency, nvl(sch.amount_due_original,0),
               ROUND((nvl(sch.amount_due_original,0) *
               nvl(sch.exchange_rate,1) *
               rt.prim_conversion_rate) / g_primary_mau) *
               g_primary_mau) amount_due_original_prim,
             DECODE(sch.invoice_currency_code,
               g_sec_currency, nvl(sch.amount_due_original,0),
               ROUND((nvl(sch.amount_due_original,0) *
               nvl(sch.exchange_rate,1) *
               rt.sec_conversion_rate) / g_secondary_mau) *
               g_secondary_mau) amount_due_original_sec,
             sch.amount_due_original amount_due_original_trx,
             class,
             customer_trx_id,
             gl_date
           from FII_AR_PAYSCH_MERGE_GT sch,
                FII_AR_CURR_RATES_T rt,
                AR_SYSTEM_PARAMETERS_ALL par,
                GL_SETS_OF_BOOKS sob
           WHERE sch.org_id = par.org_id
           AND par.set_of_books_id = sob.set_of_books_id
           AND sob.currency_code = rt.fc_code
           AND trunc(least(nvl(sch.exchange_date,sch.trx_date),sysdate)) = rt.conversion_date
         ) sch
    WHERE trx.customer_trx_id = sch.customer_trx_id
    AND sch.class <> 'PMT'
    AND decode(g_collection_criteria,
               'GL', sch.gl_date,
                trx.trx_date) >= g_global_start_date
    GROUP BY trx.customer_trx_id,
            trx.org_id,
            to_number(to_char(trx.trx_date, 'J')), --time_id,
            trx.trx_date,
            sch.gl_date,
            sch.class,
            NVL(trx.bill_to_customer_id, trx.drawee_id),
            NVL(trx.bill_to_site_use_id, trx.drawee_site_use_id),
            trx.trx_number,
            trx.cust_trx_type_id,
            trx.term_id,
            trx.trx_date, --filter_date
            trx.invoice_currency_code,
            trx.exchange_rate,
            trx.exchange_date,
            trx.batch_source_id,
            trx.ct_reference,
            trx.initial_customer_trx_id,
            trx.previous_customer_trx_id,
            trx.created_by,
            trx.creation_date
  ) dlt
  on ( old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID )
  when matched then update set
    -- old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID,
    -- old.ORG_ID = dlt.ORG_ID,
    -- old.TIME_ID = dlt.TIME_ID,
    -- old.TRX_DATE = dlt.TRX_DATE,
    -- old.GL_DATE = dlt.GL_DATE,
    -- old.CLASS = dlt.CLASS,
    old.AMOUNT_DUE_ORIGINAL_TRX = dlt.AMOUNT_DUE_ORIGINAL_TRX,
    old.AMOUNT_DUE_ORIGINAL_FUNC = dlt.AMOUNT_DUE_ORIGINAL_FUNC,
    old.AMOUNT_DUE_ORIGINAL_PRIM = dlt.AMOUNT_DUE_ORIGINAL_PRIM,
    old.AMOUNT_DUE_ORIGINAL_SEC = dlt.AMOUNT_DUE_ORIGINAL_SEC,
    -- old.BILL_TO_CUSTOMER_ID = dlt.BILL_TO_CUSTOMER_ID,
    -- old.BILL_TO_SITE_USE_ID = dlt.BILL_TO_SITE_USE_ID,
    -- old.TRANSACTION_NUMBER = dlt.TRANSACTION_NUMBER,
    -- old.CUST_TRX_TYPE_ID = dlt.CUST_TRX_TYPE_ID,
    -- old.TERM_ID = dlt.TERM_ID,
    -- old.BATCH_SOURCE_ID = dlt.BATCH_SOURCE_ID,
    -- old.FILTER_DATE = dlt.FILTER_DATE,
    old.ORDER_REF_NUMBER = dlt.ORDER_REF_NUMBER,
    -- old.INVOICE_CURRENCY_CODE = dlt.INVOICE_CURRENCY_CODE,
    -- old.EXCHANGE_RATE = dlt.EXCHANGE_RATE,
    -- old.EXCHANGE_DATE = dlt.EXCHANGE_DATE,
    old.INITIAL_CUSTOMER_TRX_ID = dlt.INITIAL_CUSTOMER_TRX_ID,
    -- old.PREVIOUS_CUSTOMER_TRX_ID = dlt.PREVIOUS_CUSTOMER_TRX_ID,
    -- old.USER_ID = dlt.USER_ID,
    -- old.AR_CREATION_DATE = dlt.AR_CREATION_DATE,
    old.INV_BA_AMOUNT_FUNC = dlt.INV_BA_AMOUNT_FUNC,
    old.INV_BA_AMOUNT_PRIM = dlt.INV_BA_AMOUNT_PRIM,
    old.INV_BA_AMOUNT_SEC = dlt.INV_BA_AMOUNT_SEC,
    -- old.INV_BA_COUNT = dlt.INV_BA_COUNT,
    old.DM_BA_AMOUNT_FUNC = dlt.DM_BA_AMOUNT_FUNC,
    old.DM_BA_AMOUNT_PRIM = dlt.DM_BA_AMOUNT_PRIM,
    old.DM_BA_AMOUNT_SEC = dlt.DM_BA_AMOUNT_SEC,
    -- old.DM_BA_COUNT = dlt.DM_BA_COUNT,
    old.CB_BA_AMOUNT_FUNC = dlt.CB_BA_AMOUNT_FUNC,
    old.CB_BA_AMOUNT_PRIM = dlt.CB_BA_AMOUNT_PRIM,
    old.CB_BA_AMOUNT_SEC = dlt.CB_BA_AMOUNT_SEC,
    -- old.CB_BA_COUNT = dlt.CB_BA_COUNT,
    old.BR_BA_AMOUNT_FUNC = dlt.BR_BA_AMOUNT_FUNC,
    old.BR_BA_AMOUNT_PRIM = dlt.BR_BA_AMOUNT_PRIM,
    old.BR_BA_AMOUNT_SEC = dlt.BR_BA_AMOUNT_SEC,
    -- old.BR_BA_COUNT = dlt.BR_BA_COUNT,
    old.DEP_BA_AMOUNT_FUNC = dlt.DEP_BA_AMOUNT_FUNC,
    old.DEP_BA_AMOUNT_PRIM = dlt.DEP_BA_AMOUNT_PRIM,
    old.DEP_BA_AMOUNT_SEC = dlt.DEP_BA_AMOUNT_SEC,
    -- old.DEP_BA_COUNT = dlt.DEP_BA_COUNT,
    old.CM_BA_AMOUNT_FUNC = dlt.CM_BA_AMOUNT_FUNC,
    old.CM_BA_AMOUNT_PRIM = dlt.CM_BA_AMOUNT_PRIM,
    old.CM_BA_AMOUNT_SEC = dlt.CM_BA_AMOUNT_SEC,
    -- old.CM_BA_COUNT = dlt.CM_BA_COUNT,
    -- old.CREATION_DATE = dlt.CREATION_DATE,
    -- old.CREATED_BY = dlt.CREATED_BY,
    old.LAST_UPDATE_DATE = dlt.LAST_UPDATE_DATE,
    old.LAST_UPDATED_BY = dlt.LAST_UPDATED_BY,
    old.LAST_UPDATE_LOGIN = dlt.LAST_UPDATE_LOGIN
  when not matched then insert
  (
    CUSTOMER_TRX_ID,
    ORG_ID,
    TIME_ID,
    TRX_DATE,
    GL_DATE,
    CLASS,
    AMOUNT_DUE_ORIGINAL_TRX,
    AMOUNT_DUE_ORIGINAL_FUNC,
    AMOUNT_DUE_ORIGINAL_PRIM,
    AMOUNT_DUE_ORIGINAL_SEC,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    TRANSACTION_NUMBER,
    CUST_TRX_TYPE_ID,
    TERM_ID,
    BATCH_SOURCE_ID,
    FILTER_DATE,
    ORDER_REF_NUMBER,
    INVOICE_CURRENCY_CODE,
    EXCHANGE_RATE,
    EXCHANGE_DATE,
    INITIAL_CUSTOMER_TRX_ID,
    PREVIOUS_CUSTOMER_TRX_ID,
    USER_ID,
    AR_CREATION_DATE,
    INV_BA_AMOUNT_FUNC,
    INV_BA_AMOUNT_PRIM,
    INV_BA_AMOUNT_SEC,
    INV_BA_COUNT,
    DM_BA_AMOUNT_FUNC,
    DM_BA_AMOUNT_PRIM,
    DM_BA_AMOUNT_SEC,
    DM_BA_COUNT,
    CB_BA_AMOUNT_FUNC,
    CB_BA_AMOUNT_PRIM,
    CB_BA_AMOUNT_SEC,
    CB_BA_COUNT,
    BR_BA_AMOUNT_FUNC,
    BR_BA_AMOUNT_PRIM,
    BR_BA_AMOUNT_SEC,
    BR_BA_COUNT,
    DEP_BA_AMOUNT_FUNC,
    DEP_BA_AMOUNT_PRIM,
    DEP_BA_AMOUNT_SEC,
    DEP_BA_COUNT,
    CM_BA_AMOUNT_FUNC,
    CM_BA_AMOUNT_PRIM,
    CM_BA_AMOUNT_SEC,
    CM_BA_COUNT,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    dlt.CUSTOMER_TRX_ID,
    dlt.ORG_ID,
    dlt.TIME_ID,
    dlt.TRX_DATE,
    dlt.GL_DATE,
    dlt.CLASS,
    dlt.AMOUNT_DUE_ORIGINAL_TRX,
    dlt.AMOUNT_DUE_ORIGINAL_FUNC,
    dlt.AMOUNT_DUE_ORIGINAL_PRIM,
    dlt.AMOUNT_DUE_ORIGINAL_SEC,
    dlt.BILL_TO_CUSTOMER_ID,
    dlt.BILL_TO_SITE_USE_ID,
    dlt.TRANSACTION_NUMBER,
    dlt.CUST_TRX_TYPE_ID,
    dlt.TERM_ID,
    dlt.BATCH_SOURCE_ID,
    dlt.FILTER_DATE,
    dlt.ORDER_REF_NUMBER,
    dlt.INVOICE_CURRENCY_CODE,
    dlt.EXCHANGE_RATE,
    dlt.EXCHANGE_DATE,
    dlt.INITIAL_CUSTOMER_TRX_ID,
    dlt.PREVIOUS_CUSTOMER_TRX_ID,
    dlt.USER_ID,
    dlt.AR_CREATION_DATE,
    dlt.INV_BA_AMOUNT_FUNC,
    dlt.INV_BA_AMOUNT_PRIM,
    dlt.INV_BA_AMOUNT_SEC,
    dlt.INV_BA_COUNT,
    dlt.DM_BA_AMOUNT_FUNC,
    dlt.DM_BA_AMOUNT_PRIM,
    dlt.DM_BA_AMOUNT_SEC,
    dlt.DM_BA_COUNT,
    dlt.CB_BA_AMOUNT_FUNC,
    dlt.CB_BA_AMOUNT_PRIM,
    dlt.CB_BA_AMOUNT_SEC,
    dlt.CB_BA_COUNT,
    dlt.BR_BA_AMOUNT_FUNC,
    dlt.BR_BA_AMOUNT_PRIM,
    dlt.BR_BA_AMOUNT_SEC,
    dlt.BR_BA_COUNT,
    dlt.DEP_BA_AMOUNT_FUNC,
    dlt.DEP_BA_AMOUNT_PRIM,
    dlt.DEP_BA_AMOUNT_SEC,
    dlt.DEP_BA_COUNT,
    dlt.CM_BA_AMOUNT_FUNC,
    dlt.CM_BA_AMOUNT_PRIM,
    dlt.CM_BA_AMOUNT_SEC,
    dlt.CM_BA_COUNT,
    dlt.CREATION_DATE,
    dlt.CREATED_BY,
    dlt.LAST_UPDATE_DATE,
    dlt.LAST_UPDATED_BY,
    dlt.LAST_UPDATE_LOGIN
  );
Line: 5862

/*  insert into fii_ar_adjustments_f
  (
    ADJUSTMENT_ID,
    TIME_ID,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    ORG_ID,
    AMOUNT_TRX,
    AMOUNT_FUNC,
    AMOUNT_PRIM,
    AMOUNT_SEC,
    APPLY_DATE,
    GL_DATE,
    FILTER_DATE,
    CUSTOMER_TRX_ID,
    PAYMENT_SCHEDULE_ID,
    USER_ID,
    AR_CREATION_DATE,
    ADJ_CLASS,
    SUBSEQUENT_TRX_ID,
    BR_CUSTOMER_TRX_ID,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )*/
    -- POPULATE_ADJUSTMENTS
    SELECT adj.adjustment_id,
          to_number(to_char(decode(g_collection_criteria,
                                   'GL', adj.gl_date,
                                   adj.apply_date), 'J')) time_id,
          trx.bill_to_customer_id, -- drawee_id only in case of BR
          trx.bill_to_site_use_id, -- drawee_site_use_id only in case of BR
          adj.org_id,
          adj.amount AMOUNT_TRX,
          NVL(ROUND(adj.amount * trx.exchange_rate / rt.functional_mau)
                * rt.functional_mau, nvl(adj.amount,0)) amount_func,
          DECODE(trx.invoice_currency_code,
                g_prim_currency, nvl(adj.amount,0),
                ROUND((nvl(adj.amount,0) * trx.exchange_rate *
                    rt.prim_conversion_rate) / g_primary_mau) *
                    g_primary_mau) amount_prim,
          DECODE(trx.invoice_currency_code,
                g_sec_currency, nvl(adj.amount,0),
                ROUND((nvl(adj.amount,0) * trx.exchange_rate *
                    rt.sec_conversion_rate) / g_secondary_mau) *
                    g_secondary_mau) amount_sec,
          trunc(adj.apply_date) apply_date,
          trunc(adj.gl_date) gl_date,
          decode(g_collection_criteria,'GL',adj.gl_date,adj.apply_date) filter_date,
          adj.customer_trx_id,
          adj.payment_schedule_id,
          adj.created_by user_id,
          adj.creation_date ar_creation_date,
          decode(line.br_adjustment_id,
                 null, decode(adj.chargeback_customer_trx_id,
                              null, decode(adj.adjustment_type,'C','DEP',null),
                              'CB'),
                 'BR') adj_class,
          adj.subsequent_trx_id,
          line.customer_trx_id br_customer_trx_id,
          sysdate              CREATION_DATE,
          g_fii_user_id        CREATED_BY,
          sysdate              LAST_UPDATE_DATE,
          g_fii_user_id        LAST_UPDATED_BY,
          g_fii_login_id       LAST_UPDATE_LOGIN
    FROM /* (
              select * from FII_AR_ADJ_UPDATE_GT
              -- where last_update_date <= g_sysdate_time
         ) */
         FII_AR_ADJ_UPDATE_GT adj,
         FII_AR_TRANSACTIONS_F trx,
         FII_AR_TRANSACTIONS_F trx2, --makes sure the CM adj does not result from a GUAR
         RA_CUSTOMER_TRX_LINES_ALL line,
         FII_AR_CURR_RATES_T rt,
         AR_SYSTEM_PARAMETERS_ALL par,
         GL_SETS_OF_BOOKS sob
    WHERE adj.status = 'A'
    AND adj.customer_trx_id = trx.customer_trx_id
    /*AND adj.customer_trx_id = decode(trx.class,
                                     'CM', trx.previous_customer_trx_id,
                                     trx.customer_trx_id)
    AND decode (adj.subsequent_trx_id,
                null, -111, 0, -111,
                adj.subsequent_trx_id) = decode(trx.class,
                                                  'CM', trx.customer_trx_id,
                                                  -111) */
    AND nvl(trx.initial_customer_trx_id, trx.customer_trx_id) =
            trx2.customer_trx_id --makes sure the CM adj does not result from a GUAR
    AND adj.adjustment_id = line.br_adjustment_id (+)
    AND adj.last_update_date <= g_sysdate_time  --To avoid duplication in incremental

    AND trx.org_id = par.org_id
    AND par.set_of_books_id = sob.set_of_books_id
    AND sob.currency_code = rt.fc_code
    AND trunc(least(nvl(trx.exchange_date,trx.trx_date),sysdate)) = rt.conversion_date

  ) dlt
  on ( old.ADJUSTMENT_ID = dlt.ADJUSTMENT_ID )
  when matched then update set
    -- old.ADJUSTMENT_ID = dlt.ADJUSTMENT_ID,
    old.TIME_ID = dlt.TIME_ID,
    old.BILL_TO_CUSTOMER_ID = dlt.BILL_TO_CUSTOMER_ID,
    old.BILL_TO_SITE_USE_ID = dlt.BILL_TO_SITE_USE_ID,
    old.ORG_ID = dlt.ORG_ID,
    old.AMOUNT_TRX = dlt.AMOUNT_TRX,
    old.AMOUNT_FUNC = dlt.AMOUNT_FUNC,
    old.AMOUNT_PRIM = dlt.AMOUNT_PRIM,
    old.AMOUNT_SEC = dlt.AMOUNT_SEC,
    old.APPLY_DATE = dlt.APPLY_DATE,
     old.GL_DATE = dlt.GL_DATE,
     old.FILTER_DATE = dlt.FILTER_DATE,
     old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID,
     old.PAYMENT_SCHEDULE_ID = dlt.PAYMENT_SCHEDULE_ID,
     old.USER_ID = dlt.USER_ID,
    -- old.AR_CREATION_DATE = dlt.AR_CREATION_DATE,
     old.ADJ_CLASS = dlt.ADJ_CLASS,
     old.SUBSEQUENT_TRX_ID = dlt.SUBSEQUENT_TRX_ID,
     old.BR_CUSTOMER_TRX_ID = dlt.BR_CUSTOMER_TRX_ID,
    -- old.CREATION_DATE = dlt.CREATION_DATE,
    -- old.CREATED_BY = dlt.CREATED_BY,
    old.LAST_UPDATE_DATE = dlt.LAST_UPDATE_DATE,
    old.LAST_UPDATED_BY = dlt.LAST_UPDATED_BY,
    old.LAST_UPDATE_LOGIN = dlt.LAST_UPDATE_LOGIN
  when not matched then insert
  (
    ADJUSTMENT_ID,
    TIME_ID,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    ORG_ID,
    AMOUNT_TRX,
    AMOUNT_FUNC,
    AMOUNT_PRIM,
    AMOUNT_SEC,
    APPLY_DATE,
    GL_DATE,
    FILTER_DATE,
    CUSTOMER_TRX_ID,
    PAYMENT_SCHEDULE_ID,
    USER_ID,
    AR_CREATION_DATE,
    ADJ_CLASS,
    SUBSEQUENT_TRX_ID,
    BR_CUSTOMER_TRX_ID,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    dlt.ADJUSTMENT_ID,
    dlt.TIME_ID,
    dlt.BILL_TO_CUSTOMER_ID,
    dlt.BILL_TO_SITE_USE_ID,
    dlt.ORG_ID,
    dlt.AMOUNT_TRX,
    dlt.AMOUNT_FUNC,
    dlt.AMOUNT_PRIM,
    dlt.AMOUNT_SEC,
    dlt.APPLY_DATE,
    dlt.GL_DATE,
    dlt.FILTER_DATE,
    dlt.CUSTOMER_TRX_ID,
    dlt.PAYMENT_SCHEDULE_ID,
    dlt.USER_ID,
    dlt.AR_CREATION_DATE,
    dlt.ADJ_CLASS,
    dlt.SUBSEQUENT_TRX_ID,
    dlt.BR_CUSTOMER_TRX_ID,
    dlt.CREATION_DATE,
    dlt.CREATED_BY,
    dlt.LAST_UPDATE_DATE,
    dlt.LAST_UPDATED_BY,
    dlt.LAST_UPDATE_LOGIN
  );
Line: 6088

  insert into FII_AR_RECAPP_MERGE_GT
  (
  receivable_application_id,
  time_id,
  cash_receipt_id,
  application_status,
  header_status,
  amount_applied_rct,
  amount_applied_trx,
  amount_applied_rct_func,
  amount_applied_trx_func,
  amount_applied_rct_prim,
  amount_applied_trx_prim,
  amount_applied_rct_sec,
  amount_applied_trx_sec,
  earned_discount_amount_trx,
  earned_discount_amount_func,
  earned_discount_amount_prim,
  earned_discount_amount_sec,
  unearned_discount_amount_trx,
  unearned_discount_amount_func,
  unearned_discount_amount_prim,
  unearned_discount_amount_sec,
  apply_date,
  gl_date,
  filter_date,
  header_filter_date,
  application_type,
  applied_payment_schedule_id,
  applied_customer_trx_id,
  customer_trx_id,
  payment_schedule_id,
  receipt_number,
  receipt_type,
  receipt_date,
  rct_actual_date_closed,
  receipt_method_id,
  currency_code,
  user_id,
  ar_creation_date,
  bill_to_customer_id,
  bill_to_site_use_id,
  collector_bill_to_customer_id,
  collector_bill_to_site_use_id,
  org_id,
  trx_date,
  due_date,
  cm_previous_customer_trx_id,
  total_receipt_count,
  creation_date,
  created_by,
  last_update_date,
  last_updated_by,
  last_update_login,
  trxsch_payment_schedule_id
  )
    -- POPULATE_RECEIPTS
    SELECT app.RECEIVABLE_APPLICATION_ID,
        to_number(to_char(decode(g_collection_criteria,
                                 'GL',app.app_gl_date,
                                 app.apply_date), 'J')) TIME_ID,
        rct.cash_receipt_id,
        decode(app.status,'ACTIVITY','APP',app.status) APPLICATION_STATUS,
        rct.status HEADER_STATUS,
        NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)) AMOUNT_APPLIED_RCT,
        NVL(app.AMOUNT_APPLIED,0) AMOUNT_APPLIED_TRX,
        app.acctd_amount_applied_from AMOUNT_APPLIED_RCT_FUNC,
        NVL(app.acctd_amount_applied_to,0) AMOUNT_APPLIED_TRX_FUNC,
        DECODE(rct.cash_receipt_id,
               null, 0,
               decode (rct.currency_code,
                       g_prim_currency, NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)),
                       ROUND((NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)) * nvl(rct.exchange_rate,1) *
                            nvl(rct.prim_conversion_rate,1)) / g_primary_mau) *
                            g_primary_mau)) AMOUNT_APPLIED_RCT_PRIM,
        DECODE(app.applied_payment_schedule_id,
               null, 0,
               decode (trxsch.invoice_currency_code,
                       g_prim_currency, nvl(app.AMOUNT_APPLIED,0),
                       ROUND((nvl(app.AMOUNT_APPLIED,0) * nvl(trxsch.exchange_rate,1) *
                        nvl(trxsch.prim_conversion_rate,0)) / g_primary_mau) *
                        g_primary_mau)) AMOUNT_APPLIED_TRX_PRIM,
        DECODE(rct.cash_receipt_id,
               null, 0,
               decode (rct.currency_code,
                       g_sec_currency, NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)),
                       ROUND((NVL(app.AMOUNT_APPLIED_FROM, nvl(app.AMOUNT_APPLIED,0)) * nvl(rct.exchange_rate,1) *
                            nvl(rct.sec_conversion_rate,1)) / g_secondary_mau) *
                            g_secondary_mau)) AMOUNT_APPLIED_RCT_SEC,
        DECODE(app.applied_payment_schedule_id,
               null, 0,
               decode (trxsch.invoice_currency_code,
                       g_sec_currency, nvl(app.AMOUNT_APPLIED,0),
                       ROUND((nvl(app.AMOUNT_APPLIED,0) * nvl(trxsch.exchange_rate,1) *
                            nvl(trxsch.sec_conversion_rate,0)) / g_secondary_mau) *
                            g_secondary_mau)) AMOUNT_APPLIED_TRX_SEC,
        nvl(app.EARNED_DISCOUNT_TAKEN,0) EARNED_DISCOUNT_amount_trx,
        NVL(app.acctd_earned_discount_taken,
                nvl(app.EARNED_DISCOUNT_TAKEN,0)) EARNED_DISCOUNT_AMOUNT_FUNC,
        DECODE(trxsch.invoice_currency_code,
            g_prim_currency, nvl(app.EARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.EARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.prim_conversion_rate,1)) / g_primary_mau) *
                g_primary_mau) EARNED_DISCOUNT_AMOUNT_PRIM,
        DECODE(trxsch.invoice_currency_code,
            g_sec_currency, nvl(app.EARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.EARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.sec_conversion_rate,1)) / g_secondary_mau) *
                g_secondary_mau) EARNED_DISCOUNT_AMOUNT_SEC,
        nvl(app.UNEARNED_DISCOUNT_TAKEN,0) UNEARNED_DISCOUNT_amount_trx,
        NVL(app.acctd_unearned_discount_taken,
            nvl(app.UNEARNED_DISCOUNT_TAKEN,0)) UNEARNED_DISCOUNT_AMOUNT_FUNC,
        DECODE(trxsch.invoice_currency_code,
            g_prim_currency, nvl(app.UNEARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.UNEARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.prim_conversion_rate,1)) / g_primary_mau) *
                g_primary_mau) UNEARNED_DISCOUNT_AMOUNT_PRIM,
        DECODE(trxsch.invoice_currency_code,
            g_sec_currency, nvl(app.UNEARNED_DISCOUNT_TAKEN,0),
            ROUND((nvl(app.UNEARNED_DISCOUNT_TAKEN,0) * nvl(trxsch.exchange_rate,1) *
                nvl(trxsch.sec_conversion_rate,1)) / g_secondary_mau) *
                g_secondary_mau) UNEARNED_DISCOUNT_AMOUNT_SEC,
        trunc(app.APPLY_DATE),
        trunc(app.RCT_GL_DATE),
        decode(g_collection_criteria,
               'GL',app.app_gl_date,
               app.apply_date) FILTER_DATE,
        per.start_date, --decode(g_collection_criteria,'GL',app.rct_gl_date,rct.receipt_date), --HEADER_FILTER_DATE,
        app.APPLICATION_TYPE,
        app.APPLIED_PAYMENT_SCHEDULE_ID,
        app.applied_customer_trx_id,
        app.CUSTOMER_TRX_ID,
        app.PAYMENT_SCHEDULE_ID,
        rct.RECEIPT_NUMBER,
        rct.RECEIPT_TYPE,
        trunc(rct.receipt_date),
        rctsch.actual_date_closed rct_actual_date_closed,
        rct.receipt_method_id,
        rct.CURRENCY_CODE,
        app.created_by USER_ID,
        app.creation_date ar_creation_date,
        decode(app.status,
               'UNID', -2,
               nvl(rctsch.bill_to_customer_id, -2)) bill_to_customer_id, --to avoid outer joins in MVs
        decode(app.status,
               'UNID', -2,
               nvl(rctsch.bill_to_site_use_id, -2)) bill_to_site_use_id,
	    case when trxsch.payment_schedule_id is null
				  or app.applied_payment_schedule_id < 0
				then nvl(rctsch.bill_to_customer_id,-2)
			 else nvl(trxsch.bill_to_customer_id,-2) end collector_bill_to_customer_id,
	    case when trxsch.payment_schedule_id is null
				  or app.applied_payment_schedule_id < 0
				then nvl(rctsch.bill_to_site_use_id,-2)
			 else nvl(trxsch.bill_to_site_use_id,-2) end COLLECTOR_BILL_TO_SITE_USE_ID,
        app.org_id,
        trxsch.trx_date,
        trxsch.due_date,
        rctsch.previous_customer_trx_id cm_previous_customer_trx_id,
        decode (app.receivable_application_id,
                MIN(app.receivable_application_id) over (partition by rct.cash_receipt_id), 1,
                MAX(app.receivable_application_id) over (partition by rct.cash_receipt_id),
                    case when rct.status = 'REV' or rct.status = 'NSF' or rct.status = 'STOP'
                    then -1 else 0 end,
                0) total_receipt_count,
        sysdate        CREATION_DATE,
        g_fii_user_id  CREATED_BY,
        sysdate        LAST_UPDATE_DATE,
        g_fii_user_id  LAST_UPDATED_BY,
        g_fii_login_id LAST_UPDATE_LOGIN,
        trxsch.payment_schedule_id trxsch_payment_schedule_id
    FROM (select RECEIVABLE_APPLICATION_ID,
                cash_receipt_id,
                case when gl_date >= g_global_start_date then
                        gl_date
                else g_global_start_date end app_gl_date,
				decode (application_type,
						'CM',gl_date,
						MIN(gl_date) over (partition by cash_receipt_id)) rct_gl_date, --to get the receipt creation gl_date instead of appl gl_date
                case when apply_date >= g_global_start_date then
                        apply_date
                else g_global_start_date end apply_date,
                status,
                AMOUNT_APPLIED_FROM,
                AMOUNT_APPLIED,
                acctd_amount_applied_from,
                acctd_amount_applied_to,
                applied_customer_trx_id,
                EARNED_DISCOUNT_TAKEN,
                acctd_earned_discount_taken,
                UNEARNED_DISCOUNT_TAKEN,
                acctd_unearned_discount_taken,
                APPLICATION_TYPE,
                applied_payment_schedule_id,
                CUSTOMER_TRX_ID,
                PAYMENT_SCHEDULE_ID,
                created_by,
                creation_date,
                org_id
          from FII_AR_RECAPP_INSERT_GT) app,
         FII_AR_PMT_SCHEDULES_F rctsch, --> FII_AR_PAYSCH_MERGE_GT
                                        --  previous_customer_trx_id needs
                                        --  a join to AR_PAYMENT_SCHEDULES_ALL
        (select rct.cash_receipt_id,
                rct.status,
                rct.currency_code,
                nvl(rct.exchange_rate,1) exchange_rate,
                rctrt.prim_conversion_rate,
                rctrt.sec_conversion_rate,
                rct.RECEIPT_NUMBER,
                rct.TYPE receipt_type,
                rct.receipt_date,
                rct.receipt_method_id
                --rct.pay_from_customer bill_to_customer_id,
                --NVL(rct.customer_site_use_id,
                --  -1) bill_to_site_use_id, --(-1 for UNAPP, UNID)
                --rct.customer_site_use_id
         from AR_CASH_RECEIPTS_ALL rct,
              FII_AR_CURR_RATES_T rctrt,
              AR_SYSTEM_PARAMETERS_ALL par,
              GL_SETS_OF_BOOKS sob
         where --rct.receipt_date >= g_global_start_date
             rct.org_id = par.org_id
         and par.set_of_books_id = sob.set_of_books_id
         and sob.currency_code = rctrt.fc_code
         and rctrt.conversion_date = trunc(least(nvl(rct.exchange_date,
                            rct.receipt_date),sysdate))) rct,

        (select trxsch.payment_schedule_id,
                trxsch.invoice_currency_code,
                trxsch.exchange_rate exchange_rate,
                trxrt.prim_conversion_rate,
                trxrt.sec_conversion_rate,
                trxsch.trx_date, --trx_date
                trxsch.due_date, --due_date
                trxsch.bill_to_customer_id,
                trxsch.bill_to_site_use_id
         from -- FII_AR_PMT_SCHEDULES_F trxsch, --> FII_AR_PAYSCH_MERGE_GT
              ( select
                  sch.customer_id bill_to_customer_id,
                  sch.customer_site_use_id bill_to_site_use_id,
                  due_date,
                  nvl(sch.exchange_rate,1) exchange_rate,
                  invoice_currency_code,
                  payment_schedule_id,
                  trx_date,
                  org_id,
                  nvl(sch.exchange_date, sch.trx_date) exchange_date
                from FII_AR_PAYSCH_MERGE_GT sch
              ) trxsch,
              FII_AR_CURR_RATES_T trxrt,
              AR_SYSTEM_PARAMETERS_ALL par,
              GL_SETS_OF_BOOKS sob
         where trxsch.org_id = par.org_id
         AND par.set_of_books_id = sob.set_of_books_id
         AND sob.currency_code = trxrt.fc_code
         AND trxrt.conversion_date = trunc(least(nvl(trxsch.exchange_date,
                            trxsch.trx_date),sysdate))) trxsch,

         gl_periods per,
         ar_system_parameters_all par,
         gl_sets_of_books sob

    WHERE app.payment_schedule_id = rctsch.payment_schedule_id
    AND rctsch.class in ('PMT', 'CM')
    AND app.application_type IN ('CASH','CM')
    --AND (app.status IN ('UNID','UNAPP','APP')
    --     or app.applied_payment_schedule_id IN (-1,-4,-7))
    AND app.cash_receipt_id = rct.cash_receipt_id (+)
    AND app.applied_payment_schedule_id = trxsch.payment_schedule_id (+)
    AND par.org_id = app.org_id
    AND sob.set_of_books_id = par.set_of_books_id
    AND per.period_set_name = sob.period_set_name
    AND per.period_type = sob.accounted_period_type
    AND decode(application_type,
               'CM', app.apply_date,
               decode(g_collection_criteria,
                      'GL',app.rct_gl_date,
                      rct.receipt_date)) between per.start_date and per.end_date
    AND per.adjustment_period_flag = 'N'
    /*
    AND (case when app.applied_payment_schedule_id is null
                   or app.applied_payment_schedule_id < 0
                then case when --rct.receipt_date >= g_global_start_date
                               decode(g_collection_criteria,
                                      'GL', rct_gl_date,
                                      rct.receipt_date)  >= g_global_start_date
                             then 1
                     else null end
              else trxsch.payment_schedule_id end) is not null
    */
    ;
Line: 6382

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into FII_AR_RECAPP_MERGE_GT');
Line: 6395

  delete from fii_ar_receipts_f
  where RECEIVABLE_APPLICATION_ID in (
    select RECEIVABLE_APPLICATION_ID
    from FII_AR_RECAPP_MERGE_GT
    where (case when applied_payment_schedule_id is null
                  or applied_payment_schedule_id < 0
                then case when --receipt_date >= g_global_start_date
                               decode(g_collection_criteria,
                                      'GL', gl_date,
                                      receipt_date)  >= g_global_start_date
                             then 1
                     else null end
              else trxsch_payment_schedule_id end) is null
    union all
    select RECEIVABLE_APPLICATION_ID
    from FII_AR_RECAPP_DELETE_GT
  );
Line: 6414

     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from FII_AR_RECEIPTS_F');
Line: 6430

    select
      RECEIVABLE_APPLICATION_ID,
      TIME_ID,
      CASH_RECEIPT_ID,
      APPLICATION_STATUS,
      HEADER_STATUS,
      AMOUNT_APPLIED_RCT,
      AMOUNT_APPLIED_TRX,
      AMOUNT_APPLIED_RCT_FUNC,
      AMOUNT_APPLIED_TRX_FUNC,
      AMOUNT_APPLIED_RCT_PRIM,
      AMOUNT_APPLIED_TRX_PRIM,
      AMOUNT_APPLIED_RCT_SEC,
      AMOUNT_APPLIED_TRX_SEC,
      EARNED_DISCOUNT_AMOUNT_TRX,
      EARNED_DISCOUNT_AMOUNT_FUNC,
      EARNED_DISCOUNT_AMOUNT_PRIM,
      EARNED_DISCOUNT_AMOUNT_SEC,
      UNEARNED_DISCOUNT_AMOUNT_TRX,
      UNEARNED_DISCOUNT_AMOUNT_FUNC,
      UNEARNED_DISCOUNT_AMOUNT_PRIM,
      UNEARNED_DISCOUNT_AMOUNT_SEC,
      APPLY_DATE,
      GL_DATE,
      FILTER_DATE,
      HEADER_FILTER_DATE,
      APPLICATION_TYPE,
      APPLIED_PAYMENT_SCHEDULE_ID,
      APPLIED_CUSTOMER_TRX_ID,
      CUSTOMER_TRX_ID,
      PAYMENT_SCHEDULE_ID,
      RECEIPT_NUMBER,
      RECEIPT_TYPE,
      RECEIPT_DATE,
      RCT_ACTUAL_DATE_CLOSED,
      RECEIPT_METHOD_ID,
      CURRENCY_CODE,
      USER_ID,
      AR_CREATION_DATE,
      BILL_TO_CUSTOMER_ID,
      BILL_TO_SITE_USE_ID,
      COLLECTOR_BILL_TO_CUSTOMER_ID,
      COLLECTOR_BILL_TO_SITE_USE_ID,
      ORG_ID,
      TRX_DATE,
      DUE_DATE,
      CM_PREVIOUS_CUSTOMER_TRX_ID,
      TOTAL_RECEIPT_COUNT,
      CREATION_DATE,
      CREATED_BY,
      LAST_UPDATE_DATE,
      LAST_UPDATED_BY,
      LAST_UPDATE_LOGIN
    from FII_AR_RECAPP_MERGE_GT
/*    where (case when applied_payment_schedule_id is null
                  or applied_payment_schedule_id < 0
                then case when --receipt_date >= g_global_start_date
                               decode(g_collection_criteria,
                                      'GL', gl_date,
                                      receipt_date)  >= g_global_start_date
                             then 1
                     else null end
              else trxsch_payment_schedule_id end) is not null
*/
  ) dlt
  on ( old.RECEIVABLE_APPLICATION_ID = dlt.RECEIVABLE_APPLICATION_ID )
  when matched then update set
    -- old.RECEIVABLE_APPLICATION_ID = dlt.RECEIVABLE_APPLICATION_ID,
    -- old.TIME_ID = dlt.TIME_ID,
    -- old.CASH_RECEIPT_ID = dlt.CASH_RECEIPT_ID,
    -- old.APPLICATION_STATUS = dlt.APPLICATION_STATUS,
    old.HEADER_STATUS = dlt.HEADER_STATUS,
    -- old.AMOUNT_APPLIED_RCT = dlt.AMOUNT_APPLIED_RCT,
    -- old.AMOUNT_APPLIED_TRX = dlt.AMOUNT_APPLIED_TRX,
    -- old.AMOUNT_APPLIED_RCT_FUNC = dlt.AMOUNT_APPLIED_RCT_FUNC,
    -- old.AMOUNT_APPLIED_TRX_FUNC = dlt.AMOUNT_APPLIED_TRX_FUNC,
    -- old.AMOUNT_APPLIED_RCT_PRIM = dlt.AMOUNT_APPLIED_RCT_PRIM,
    -- old.AMOUNT_APPLIED_TRX_PRIM = dlt.AMOUNT_APPLIED_TRX_PRIM,
    -- old.AMOUNT_APPLIED_RCT_SEC = dlt.AMOUNT_APPLIED_RCT_SEC,
    -- old.AMOUNT_APPLIED_TRX_SEC = dlt.AMOUNT_APPLIED_TRX_SEC,
    -- old.EARNED_DISCOUNT_AMOUNT_TRX = dlt.EARNED_DISCOUNT_AMOUNT_TRX,
    -- old.EARNED_DISCOUNT_AMOUNT_FUNC = dlt.EARNED_DISCOUNT_AMOUNT_FUNC,
    -- old.EARNED_DISCOUNT_AMOUNT_PRIM = dlt.EARNED_DISCOUNT_AMOUNT_PRIM,
    -- old.EARNED_DISCOUNT_AMOUNT_SEC = dlt.EARNED_DISCOUNT_AMOUNT_SEC,
    -- old.UNEARNED_DISCOUNT_AMOUNT_TRX = dlt.UNEARNED_DISCOUNT_AMOUNT_TRX,
    -- old.UNEARNED_DISCOUNT_AMOUNT_FUNC = dlt.UNEARNED_DISCOUNT_AMOUNT_FUNC,
    -- old.UNEARNED_DISCOUNT_AMOUNT_PRIM = dlt.UNEARNED_DISCOUNT_AMOUNT_PRIM,
    -- old.UNEARNED_DISCOUNT_AMOUNT_SEC = dlt.UNEARNED_DISCOUNT_AMOUNT_SEC,
    -- old.APPLY_DATE = dlt.APPLY_DATE,
    -- old.GL_DATE = dlt.GL_DATE,
    -- old.FILTER_DATE = dlt.FILTER_DATE,
    -- old.HEADER_FILTER_DATE = dlt.HEADER_FILTER_DATE,
    -- old.APPLICATION_TYPE = dlt.APPLICATION_TYPE,
    -- old.APPLIED_PAYMENT_SCHEDULE_ID = dlt.APPLIED_PAYMENT_SCHEDULE_ID,
    -- old.APPLIED_CUSTOMER_TRX_ID = dlt.APPLIED_CUSTOMER_TRX_ID,
    -- old.CUSTOMER_TRX_ID = dlt.CUSTOMER_TRX_ID,
    -- old.PAYMENT_SCHEDULE_ID = dlt.PAYMENT_SCHEDULE_ID,
    -- old.RECEIPT_NUMBER = dlt.RECEIPT_NUMBER,
    -- old.RECEIPT_TYPE = dlt.RECEIPT_TYPE,
    -- old.RECEIPT_DATE = dlt.RECEIPT_DATE,
    old.RCT_ACTUAL_DATE_CLOSED = dlt.RCT_ACTUAL_DATE_CLOSED,
    -- old.RECEIPT_METHOD_ID = dlt.RECEIPT_METHOD_ID,
    -- old.CURRENCY_CODE = dlt.CURRENCY_CODE,
    -- old.USER_ID = dlt.USER_ID,
    -- old.AR_CREATION_DATE = dlt.AR_CREATION_DATE,
    old.BILL_TO_CUSTOMER_ID = dlt.BILL_TO_CUSTOMER_ID,
    old.BILL_TO_SITE_USE_ID = dlt.BILL_TO_SITE_USE_ID,
    old.COLLECTOR_BILL_TO_CUSTOMER_ID = dlt.COLLECTOR_BILL_TO_CUSTOMER_ID,
    old.COLLECTOR_BILL_TO_SITE_USE_ID = dlt.COLLECTOR_BILL_TO_SITE_USE_ID,
    -- old.ORG_ID = dlt.ORG_ID,
    -- old.TRX_DATE = dlt.TRX_DATE,
    old.DUE_DATE = dlt.DUE_DATE,
    -- old.CM_PREVIOUS_CUSTOMER_TRX_ID = dlt.CM_PREVIOUS_CUSTOMER_TRX_ID,
    -- old.TOTAL_RECEIPT_COUNT = dlt.TOTAL_RECEIPT_COUNT,
    -- old.CREATION_DATE = dlt.CREATION_DATE,
    -- old.CREATED_BY = dlt.CREATED_BY,
    old.LAST_UPDATE_DATE = dlt.LAST_UPDATE_DATE,
    old.LAST_UPDATED_BY = dlt.LAST_UPDATED_BY,
    old.LAST_UPDATE_LOGIN = dlt.LAST_UPDATE_LOGIN
  when not matched then insert
  (
    RECEIVABLE_APPLICATION_ID,
    TIME_ID,
    CASH_RECEIPT_ID,
    APPLICATION_STATUS,
    HEADER_STATUS,
    AMOUNT_APPLIED_RCT,
    AMOUNT_APPLIED_TRX,
    AMOUNT_APPLIED_RCT_FUNC,
    AMOUNT_APPLIED_TRX_FUNC,
    AMOUNT_APPLIED_RCT_PRIM,
    AMOUNT_APPLIED_TRX_PRIM,
    AMOUNT_APPLIED_RCT_SEC,
    AMOUNT_APPLIED_TRX_SEC,
    EARNED_DISCOUNT_AMOUNT_TRX,
    EARNED_DISCOUNT_AMOUNT_FUNC,
    EARNED_DISCOUNT_AMOUNT_PRIM,
    EARNED_DISCOUNT_AMOUNT_SEC,
    UNEARNED_DISCOUNT_AMOUNT_TRX,
    UNEARNED_DISCOUNT_AMOUNT_FUNC,
    UNEARNED_DISCOUNT_AMOUNT_PRIM,
    UNEARNED_DISCOUNT_AMOUNT_SEC,
    APPLY_DATE,
    GL_DATE,
    FILTER_DATE,
    HEADER_FILTER_DATE,
    APPLICATION_TYPE,
    APPLIED_PAYMENT_SCHEDULE_ID,
    APPLIED_CUSTOMER_TRX_ID,
    CUSTOMER_TRX_ID,
    PAYMENT_SCHEDULE_ID,
    RECEIPT_NUMBER,
    RECEIPT_TYPE,
    RECEIPT_DATE,
    RCT_ACTUAL_DATE_CLOSED,
    RECEIPT_METHOD_ID,
    CURRENCY_CODE,
    USER_ID,
    AR_CREATION_DATE,
    BILL_TO_CUSTOMER_ID,
    BILL_TO_SITE_USE_ID,
    COLLECTOR_BILL_TO_CUSTOMER_ID,
    COLLECTOR_BILL_TO_SITE_USE_ID,
    ORG_ID,
    TRX_DATE,
    DUE_DATE,
    CM_PREVIOUS_CUSTOMER_TRX_ID,
    TOTAL_RECEIPT_COUNT,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    dlt.RECEIVABLE_APPLICATION_ID,
    dlt.TIME_ID,
    dlt.CASH_RECEIPT_ID,
    dlt.APPLICATION_STATUS,
    dlt.HEADER_STATUS,
    dlt.AMOUNT_APPLIED_RCT,
    dlt.AMOUNT_APPLIED_TRX,
    dlt.AMOUNT_APPLIED_RCT_FUNC,
    dlt.AMOUNT_APPLIED_TRX_FUNC,
    dlt.AMOUNT_APPLIED_RCT_PRIM,
    dlt.AMOUNT_APPLIED_TRX_PRIM,
    dlt.AMOUNT_APPLIED_RCT_SEC,
    dlt.AMOUNT_APPLIED_TRX_SEC,
    dlt.EARNED_DISCOUNT_AMOUNT_TRX,
    dlt.EARNED_DISCOUNT_AMOUNT_FUNC,
    dlt.EARNED_DISCOUNT_AMOUNT_PRIM,
    dlt.EARNED_DISCOUNT_AMOUNT_SEC,
    dlt.UNEARNED_DISCOUNT_AMOUNT_TRX,
    dlt.UNEARNED_DISCOUNT_AMOUNT_FUNC,
    dlt.UNEARNED_DISCOUNT_AMOUNT_PRIM,
    dlt.UNEARNED_DISCOUNT_AMOUNT_SEC,
    dlt.APPLY_DATE,
    dlt.GL_DATE,
    dlt.FILTER_DATE,
    dlt.HEADER_FILTER_DATE,
    dlt.APPLICATION_TYPE,
    dlt.APPLIED_PAYMENT_SCHEDULE_ID,
    dlt.APPLIED_CUSTOMER_TRX_ID,
    dlt.CUSTOMER_TRX_ID,
    dlt.PAYMENT_SCHEDULE_ID,
    dlt.RECEIPT_NUMBER,
    dlt.RECEIPT_TYPE,
    dlt.RECEIPT_DATE,
    dlt.RCT_ACTUAL_DATE_CLOSED,
    dlt.RECEIPT_METHOD_ID,
    dlt.CURRENCY_CODE,
    dlt.USER_ID,
    dlt.AR_CREATION_DATE,
    dlt.BILL_TO_CUSTOMER_ID,
    dlt.BILL_TO_SITE_USE_ID,
    dlt.COLLECTOR_BILL_TO_CUSTOMER_ID,
    dlt.COLLECTOR_BILL_TO_SITE_USE_ID,
    dlt.ORG_ID,
    dlt.TRX_DATE,
    dlt.DUE_DATE,
    dlt.CM_PREVIOUS_CUSTOMER_TRX_ID,
    dlt.TOTAL_RECEIPT_COUNT,
    dlt.CREATION_DATE,
    dlt.CREATED_BY,
    dlt.LAST_UPDATE_DATE,
    dlt.LAST_UPDATED_BY,
    dlt.LAST_UPDATE_LOGIN
  );
Line: 6670

  select nvl(max(receivable_application_id), -999)
  into l_max_rec_application_id
  from fii_ar_receipts_f;
Line: 6674

  INSERT INTO fii_change_log
  (log_item, item_value, CREATION_DATE, CREATED_BY,
   LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
  (SELECT 'AR_MAX_RECEIVABLE_APPLICATION_ID',
        l_max_rec_application_id,
        sysdate,        --CREATION_DATE,
        g_fii_user_id,  --CREATED_BY,
        sysdate,        --LAST_UPDATE_DATE,
        g_fii_user_id,  --LAST_UPDATED_BY,
        g_fii_login_id  --LAST_UPDATE_LOGIN
   FROM DUAL
   WHERE NOT EXISTS
      (select 1 from fii_change_log
       where log_item = 'AR_MAX_RECEIVABLE_APPLICATION_ID'));
Line: 6690

      UPDATE fii_change_log
      SET item_value = l_max_rec_application_id,
          last_update_date  = g_sysdate_time,
          last_update_login = g_fii_login_id,
          last_updated_by   = g_fii_user_id
      WHERE log_item = 'AR_MAX_RECEIVABLE_APPLICATION_ID';
Line: 6727

	INSERT INTO  fii_ar_aging_receivables
	 (time_id,
          time_id_date,
	  event_date,
	  next_aging_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id ,
	  customer_trx_id,
	  payment_schedule_id,
	  adjustment_id,
	  receivable_application_id,
	  appl_trx_date,
	  trx_date,
	  due_date,
	  current_bucket_1_amount_trx,
	  current_bucket_1_amount_func,
	  current_bucket_1_amount_prim,
	  current_bucket_1_amount_sec,
	  current_bucket_1_count,
	  current_bucket_2_amount_trx,
	  current_bucket_2_amount_func,
	  current_bucket_2_amount_prim,
	  current_bucket_2_amount_sec,
	  current_bucket_2_count,
	  current_bucket_3_amount_trx,
	  current_bucket_3_amount_func,
	  current_bucket_3_amount_prim,
	  current_bucket_3_amount_sec,
	  current_bucket_3_count,
	  past_due_bucket_1_amount_trx,
	  past_due_bucket_1_amount_func,
	  past_due_bucket_1_amount_prim,
	  past_due_bucket_1_amount_sec,
	  past_due_bucket_1_count,
	  past_due_bucket_2_amount_trx,
	  past_due_bucket_2_amount_func,
	  past_due_bucket_2_amount_prim,
	  past_due_bucket_2_amount_sec,
	  past_due_bucket_2_count,
	  past_due_bucket_3_amount_trx,
	  past_due_bucket_3_amount_func,
	  past_due_bucket_3_amount_prim,
	  past_due_bucket_3_amount_sec,
	  past_due_bucket_3_count,
	  past_due_bucket_4_amount_trx,
	  past_due_bucket_4_amount_func,
	  past_due_bucket_4_amount_prim,
	  past_due_bucket_4_amount_sec,
	  past_due_bucket_4_count,
	  past_due_bucket_5_amount_trx,
	  past_due_bucket_5_amount_func,
	  past_due_bucket_5_amount_prim,
	  past_due_bucket_5_amount_sec,
	  past_due_bucket_5_count,
	  past_due_bucket_6_amount_trx,
	  past_due_bucket_6_amount_func,
	  past_due_bucket_6_amount_prim,
	  past_due_bucket_6_amount_sec,
	  past_due_bucket_6_count,
	  past_due_bucket_7_amount_trx,
	  past_due_bucket_7_amount_func,
	  past_due_bucket_7_amount_prim,
	  past_due_bucket_7_amount_sec,
	  past_due_bucket_7_count,
	  current_open_count,
	  past_due_count,
	  total_open_count,
	  unaged_amount_trx,
	  unaged_amount_func,
	  unaged_amount_prim,
	  unaged_amount_sec,
 	  on_acct_credit_amount_trx,
	  on_acct_credit_amount_func,
	  on_acct_credit_amount_prim,
	  on_acct_credit_amount_sec,
	  class,
	  billing_activity_flag,
	  billed_amount_flag,
	  on_account_credit_flag,
	  unapplied_deposit_flag,
	  billing_activity_count,
	  action,
	  aging_flag,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
  SELECT time_id,
         time_id_date,
	      event_date,
	      next_aging_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      customer_trx_id,
	      payment_schedule_id,
	      adjustment_id,
	      receivable_application_id,
	      appl_trx_date,
		  trx_date,
	      due_date,
	      sum(current_bucket_1_amount_trx),
	      sum(current_bucket_1_amount_func),
	      sum(current_bucket_1_amount_prim),
	      sum(current_bucket_1_amount_sec),
	      sum(current_bucket_1_count),
	      sum(current_bucket_2_amount_trx),
	      sum(current_bucket_2_amount_func),
	      sum(current_bucket_2_amount_prim),
	      sum(current_bucket_2_amount_sec),
	      sum(current_bucket_2_count),
	      sum(current_bucket_3_amount_trx),
	      sum(current_bucket_3_amount_func),
	      sum(current_bucket_3_amount_prim),
	      sum(current_bucket_3_amount_sec),
	      sum(current_bucket_3_count),
	      sum(past_due_bucket_1_amount_trx),
	      sum(past_due_bucket_1_amount_func),
	      sum(past_due_bucket_1_amount_prim),
	      sum(past_due_bucket_1_amount_sec),
	      sum(past_due_bucket_1_count),
	      sum(past_due_bucket_2_amount_trx),
	      sum(past_due_bucket_2_amount_func),
	      sum(past_due_bucket_2_amount_prim),
	      sum(past_due_bucket_2_amount_sec),
	      sum(past_due_bucket_2_count),
	      sum(past_due_bucket_3_amount_trx),
	      sum(past_due_bucket_3_amount_func),
	      sum(past_due_bucket_3_amount_prim),
	      sum(past_due_bucket_3_amount_sec),
	      sum(past_due_bucket_3_count),
	      sum(past_due_bucket_4_amount_trx),
	      sum(past_due_bucket_4_amount_func),
	      sum(past_due_bucket_4_amount_prim),
	      sum(past_due_bucket_4_amount_sec),
	      sum(past_due_bucket_4_count),
	      sum(past_due_bucket_5_amount_trx),
	      sum(past_due_bucket_5_amount_func),
	      sum(past_due_bucket_5_amount_prim),
	      sum(past_due_bucket_5_amount_sec),
	      sum(past_due_bucket_5_count),
	      sum(past_due_bucket_6_amount_trx),
	      sum(past_due_bucket_6_amount_func),
	      sum(past_due_bucket_6_amount_prim),
	      sum(past_due_bucket_6_amount_sec),
	      sum(past_due_bucket_6_count),
	      sum(past_due_bucket_7_amount_trx),
	      sum(past_due_bucket_7_amount_func),
	      sum(past_due_bucket_7_amount_prim),
	      sum(past_due_bucket_7_amount_sec),
	      sum(past_due_bucket_7_count),
	      sum(current_open_count),
		  sum(past_due_count),
		  sum(total_open_count),
	      unaged_amount_trx,
	      unaged_amount_func,
	      unaged_amount_prim,
	      unaged_amount_sec,
 	  	on_acct_credit_amount_trx,
	  	on_acct_credit_amount_func,
	  	on_acct_credit_amount_prim,
	  	on_acct_credit_amount_sec,
	      class,
	      billing_activity_flag,
	      billed_amount_flag,
	      on_account_credit_flag,
	      unapplied_deposit_flag,
          sum(billing_activity_count),
          action,
		  aging_flag,
		  sysdate, --CREATION_DATE,
		  g_fii_user_id,       --CREATED_BY,
		  sysdate, --LAST_UPDATE_DATE,
		  g_fii_user_id,       --LAST_UPDATED_BY,
		  g_fii_login_id       --LAST_UPDATE_LOGIN
	FROM (
		SELECT time_id,
                       time_id_date,
		       next_aging_date,
		       bill_to_customer_id,
			   bill_to_site_use_id,
			   org_id,
			   customer_trx_id,
			   payment_schedule_id,
		       adjustment_id,
		       receivable_application_id,
			   appl_trx_date,
			   trx_date,
			   due_date,
		       event_date,
		       current_bucket_1_amount_trx,
		       current_bucket_1_amount_func,
		       current_bucket_1_amount_prim,
		       current_bucket_1_amount_sec,
		       (case when current_bucket_1_amount_func = current_bucket_1_amt_func_cum
							AND current_bucket_1_amount_func <> 0
		                then 1
		             when current_bucket_1_amt_func_cum = 0
		                    AND current_bucket_1_amount_func <>0
		                then -1
		             else 0 end) current_bucket_1_count,
		       current_bucket_2_amount_trx,
		       current_bucket_2_amount_func,
		       current_bucket_2_amount_prim,
		       current_bucket_2_amount_sec,
		       (case when current_bucket_2_amount_func = current_bucket_2_amt_func_cum
		                    AND current_bucket_2_amount_func <>0
		                then 1
		             when current_bucket_2_amt_func_cum = 0
		                    AND current_bucket_2_amount_func <>0
		                then -1
		             else 0 end) current_bucket_2_count,
		       current_bucket_3_amount_trx,
		       current_bucket_3_amount_func,
		       current_bucket_3_amount_prim,
		       current_bucket_3_amount_sec,
		       (case when current_bucket_3_amount_func = current_bucket_3_amt_func_cum
		                    AND current_bucket_3_amount_func <> 0
		                then 1
		             when current_bucket_3_amt_func_cum = 0
		                    AND current_bucket_3_amount_func <> 0
		                then -1
		             else 0 end) current_bucket_3_count,
		       past_due_bucket_1_amount_trx,
		       past_due_bucket_1_amount_func,
		       past_due_bucket_1_amount_prim,
		       past_due_bucket_1_amount_sec,
		       (case when past_due_bucket_1_amount_func = past_due_bucket_1_amt_func_cum
		                    AND past_due_bucket_1_amount_func <> 0
		                then 1
		             when past_due_bucket_1_amt_func_cum = 0
		                    AND past_due_bucket_1_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_1_count,
		       past_due_bucket_2_amount_trx,
		       past_due_bucket_2_amount_func,
		       past_due_bucket_2_amount_prim,
		       past_due_bucket_2_amount_sec,
		       (case when past_due_bucket_2_amount_func = past_due_bucket_2_amt_func_cum
		                    AND past_due_bucket_2_amount_func <> 0
		                then 1
		             when past_due_bucket_2_amt_func_cum = 0
		                    AND past_due_bucket_2_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_2_count,
		       past_due_bucket_3_amount_trx,
		       past_due_bucket_3_amount_func,
		       past_due_bucket_3_amount_prim,
		       past_due_bucket_3_amount_sec,
		       (case when past_due_bucket_3_amount_func = past_due_bucket_3_amt_func_cum
		                    AND past_due_bucket_3_amount_func <> 0
		                then 1
		             when past_due_bucket_3_amt_func_cum = 0
		                    AND past_due_bucket_3_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_3_count,
		       past_due_bucket_4_amount_trx,
		       past_due_bucket_4_amount_func,
		       past_due_bucket_4_amount_prim,
		       past_due_bucket_4_amount_sec,
		       (case when past_due_bucket_4_amount_func = past_due_bucket_4_amt_func_cum
		                    AND past_due_bucket_4_amount_func <> 0
		                then 1
		             when past_due_bucket_4_amt_func_cum = 0
		                    AND past_due_bucket_4_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_4_count,
		       past_due_bucket_5_amount_trx,
		       past_due_bucket_5_amount_func,
		       past_due_bucket_5_amount_prim,
		       past_due_bucket_5_amount_sec,
		       (case when past_due_bucket_5_amount_func = past_due_bucket_5_amt_func_cum
		                    AND past_due_bucket_5_amount_func <> 0
		                then 1
		             when past_due_bucket_5_amt_func_cum = 0
		                    AND past_due_bucket_5_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_5_count,
		       past_due_bucket_6_amount_trx,
		       past_due_bucket_6_amount_func,
		       past_due_bucket_6_amount_prim,
		       past_due_bucket_6_amount_sec,
		       (case when past_due_bucket_6_amount_func = past_due_bucket_6_amt_func_cum
		                    AND past_due_bucket_6_amount_func <> 0
		                then 1
		             when past_due_bucket_6_amt_func_cum = 0
		                    AND past_due_bucket_6_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_6_count,
		       past_due_bucket_7_amount_trx,
		       past_due_bucket_7_amount_func,
		       past_due_bucket_7_amount_prim,
		       past_due_bucket_7_amount_sec,
		       (case when past_due_bucket_7_amount_func = past_due_bucket_7_amt_func_cum
		                    AND past_due_bucket_7_amount_func <> 0
		                then 1
		             when past_due_bucket_7_amt_func_cum = 0
		                    AND past_due_bucket_7_amount_func <> 0
		                then -1
		             else 0 end) past_due_bucket_7_count,
			   (case when current_open_amount_func = current_open_amt_func_cum
					  and current_open_amount_func <> 0
				   		  then 1
			  	     when current_open_amt_func_cum = 0
					  and current_open_amount_func <> 0
						  then -1
			  	     else 0 end) current_open_count,
			   (case when past_due_amount_func = past_due_amt_func_cum
					  and past_due_amount_func <> 0
				   		  then 1
			  	     when past_due_amt_func_cum = 0
					  and past_due_amount_func <> 0
						  then -1
			  	     else 0 end) past_due_count,
			   (case when total_open_amount_func = total_open_amt_func_cum
					  and total_open_amount_func <> 0
				   		  then 1
			  	     when total_open_amt_func_cum = 0
					  and total_open_amount_func <>0
						  then -1
			  	     else 0 end) total_open_count,
		       unaged_amount_trx,
		       unaged_amount_func,
		       unaged_amount_prim,
		       unaged_amount_sec,
 	  		 on_acct_credit_amount_trx,
	  		 on_acct_credit_amount_func,
	  		 on_acct_credit_amount_prim,
	  		 on_acct_credit_amount_sec,
		       class,
		  	   billing_activity_flag,
		       billed_amount_flag,
		       on_account_credit_flag,
		 	   unapplied_deposit_flag,
			   (case when billing_activity_flag = 'Y'
						 and payment_schedule_id = min_payment_schedule_id
					   then 1
					 else 0 end) billing_activity_count,
		       action,
		       actual_date_closed,
		       aging_flag
	    FROM (
			SELECT time_id,
                               time_id_date,
			       next_aging_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
			       adjustment_id,
			       receivable_application_id,
				   appl_trx_date,
				   trx_date,
				   due_date,
			       event_date,
				   MIN(payment_schedule_id) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) min_payment_schedule_id,
			       current_bucket_1_amount_trx,
			       current_bucket_1_amount_func,
			       current_bucket_1_amount_prim,
			       current_bucket_1_amount_sec,
			       SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_1_amt_func_cum,
				   current_bucket_2_amount_trx,
			       current_bucket_2_amount_func,
			       current_bucket_2_amount_prim,
			       current_bucket_2_amount_sec,
			       SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_2_amt_func_cum,
			       current_bucket_3_amount_trx,
			       current_bucket_3_amount_func,
			       current_bucket_3_amount_prim,
			       current_bucket_3_amount_sec,
			       SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_bucket_3_amt_func_cum,
			       past_due_bucket_1_amount_trx,
			       past_due_bucket_1_amount_func,
			       past_due_bucket_1_amount_prim,
			       past_due_bucket_1_amount_sec,
			       SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_1_amt_func_cum,
			       past_due_bucket_2_amount_trx,
			       past_due_bucket_2_amount_func,
			       past_due_bucket_2_amount_prim,
			       past_due_bucket_2_amount_sec,
			       SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_2_amt_func_cum,
			       past_due_bucket_3_amount_trx,
			       past_due_bucket_3_amount_func,
			       past_due_bucket_3_amount_prim,
			       past_due_bucket_3_amount_sec,
			       SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_3_amt_func_cum,
			       past_due_bucket_4_amount_trx,
			       past_due_bucket_4_amount_func,
			       past_due_bucket_4_amount_prim,
			       past_due_bucket_4_amount_sec,
			       SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_4_amt_func_cum,
				   past_due_bucket_5_amount_trx,
			       past_due_bucket_5_amount_func,
			       past_due_bucket_5_amount_prim,
			       past_due_bucket_5_amount_sec,
			       SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_5_amt_func_cum,
			       past_due_bucket_6_amount_trx,
			       past_due_bucket_6_amount_func,
			       past_due_bucket_6_amount_prim,
			       past_due_bucket_6_amount_sec,
			       SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_6_amt_func_cum,
			       past_due_bucket_7_amount_trx,
			       past_due_bucket_7_amount_func,
			       past_due_bucket_7_amount_prim,
			       past_due_bucket_7_amount_sec,
			       SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_bucket_7_amt_func_cum,
				   (current_bucket_1_amount_func+current_bucket_2_amount_func
						+ current_bucket_3_amount_func) current_open_amount_func,
				   (SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) current_open_amt_func_cum,
				   (past_due_bucket_1_amount_func
						+ past_due_bucket_2_amount_func+past_due_bucket_3_amount_func
						+ past_due_bucket_4_amount_func+past_due_bucket_5_amount_func
						+ past_due_bucket_6_amount_func+past_due_bucket_7_amount_func) past_due_amount_func,
				   (SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
				   	 + SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) past_due_amt_func_cum,
				   (current_bucket_1_amount_func+current_bucket_2_amount_func
						+ current_bucket_3_amount_func+past_due_bucket_1_amount_func
						+ past_due_bucket_2_amount_func+past_due_bucket_3_amount_func
						+ past_due_bucket_4_amount_func+past_due_bucket_5_amount_func
						+ past_due_bucket_6_amount_func+past_due_bucket_7_amount_func) total_open_amount_func,
				   (SUM(current_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(current_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
			         + SUM(past_due_bucket_1_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_2_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_3_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_4_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_5_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(past_due_bucket_6_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
				   	 + SUM(past_due_bucket_7_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) total_open_amt_func_cum,
			       unaged_amount_trx,
			       unaged_amount_func,
			       unaged_amount_prim,
			       unaged_amount_sec,
 	 			 on_acct_credit_amount_trx,
	 			 on_acct_credit_amount_func,
	 			 on_acct_credit_amount_prim,
	 			 on_acct_credit_amount_sec,
			       class,
			  	   billing_activity_flag,
			       billed_amount_flag,
			       on_account_credit_flag,
			 	   unapplied_deposit_flag,
			       action,
			       actual_date_closed,
			       aging_flag
			FROM
			   (SELECT to_number(to_char(decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
													then gl_date
												  else decode(aging_flag, 'N', gl_date, event_date) end,
				                       event_date), 'J')) time_id,
                                   decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
								     then gl_date
                                                             else decode(aging_flag, 'N', gl_date, event_date) end,
				                       event_date) time_id_date,
			           next_aging_date,
			           bill_to_customer_id,
			    	   bill_to_site_use_id,
			    	   org_id,
			    	   customer_trx_id,
			    	   payment_schedule_id,
			           adjustment_id,
			           receivable_application_id,
			    	   appl_trx_date,
					   trx_date,
			    	   due_date,
			           event_date,
			           (case when marker=1
			                    then bucket_amount_trx
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_3_amount_trx,
			           (case when marker=1
			                    then bucket_amount_func
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_3_amount_func,
			           (case when marker=1
			                    then bucket_amount_prim
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_3_amount_prim,
			           (case when marker=1
			                    then bucket_amount_sec
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_3_amount_sec,
			            ----------------
			           (case when marker=2
			                    then bucket_amount_trx
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_2_amount_trx,
			           (case when marker=2
			                    then bucket_amount_func
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_2_amount_func,
			           (case when marker=2
			                    then bucket_amount_prim
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_2_amount_prim,
			           (case when marker=2
			                    then bucket_amount_sec
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_2_amount_sec,
			            ----------------
			           (case when marker=3
			                    then bucket_amount_trx
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) current_bucket_1_amount_trx,
			           (case when marker=3
			                    then bucket_amount_func
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) current_bucket_1_amount_func,
			           (case when marker=3
			                    then bucket_amount_prim
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) current_bucket_1_amount_prim,
			           (case when marker=3
			                    then bucket_amount_sec
			                 when marker=4 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) current_bucket_1_amount_sec,
			            ----------------
			           (case when marker=4
			                    then bucket_amount_trx
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_1_amount_trx,
			           (case when marker=4
			                    then bucket_amount_func
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_1_amount_func,
			           (case when marker=4
			                    then bucket_amount_prim
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_1_amount_prim,
			           (case when marker=4
			                    then bucket_amount_sec
			                 when marker=5 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_1_amount_sec,
			            ------------------
			           (case when marker=5
			                    then bucket_amount_trx
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_2_amount_trx,
			           (case when marker=5
			                    then bucket_amount_func
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_2_amount_func,
			           (case when marker=5
			                    then bucket_amount_prim
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_2_amount_prim,
			           (case when marker=5
			                    then bucket_amount_sec
			                 when marker=6 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_2_amount_sec,
			            ------------------
			           (case when marker=6
			                    then bucket_amount_trx
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_3_amount_trx,
			           (case when marker=6
			                    then bucket_amount_func
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_3_amount_func,
			           (case when marker=6
			                    then bucket_amount_prim
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_3_amount_prim,
			           (case when marker=6
			                    then bucket_amount_sec
			                 when marker=7 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_3_amount_sec,
			            ------------------
			           (case when marker=7
			                    then bucket_amount_trx
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_4_amount_trx,
			           (case when marker=7
			                    then bucket_amount_func
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_4_amount_func,
			           (case when marker=7
			                    then bucket_amount_prim
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_4_amount_prim,
			           (case when marker=7
			                    then bucket_amount_sec
			                 when marker=8 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_4_amount_sec,
			            ---------------
			           (case when marker=8
			                    then bucket_amount_trx
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_5_amount_trx,
			           (case when marker=8
			                    then bucket_amount_func
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_5_amount_func,
			           (case when marker=8
			                    then bucket_amount_prim
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_5_amount_prim,
			           (case when marker=8
			                    then bucket_amount_sec
			                 when marker=9 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_5_amount_sec,
			            ---------------
			           (case when marker=9
			                    then bucket_amount_trx
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_trx
			                 else 0 end) past_due_bucket_6_amount_trx,
			           (case when marker=9
			                    then bucket_amount_func
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) past_due_bucket_6_amount_func,
			           (case when marker=9
			                    then bucket_amount_prim
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) past_due_bucket_6_amount_prim,
			           (case when marker=9
			                    then bucket_amount_sec
			                 when marker=10 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) past_due_bucket_6_amount_sec,
			            ---------------
			           (case when marker=10
			                    then bucket_amount_trx
			                 else 0 end) past_due_bucket_7_amount_trx,
			           (case when marker=10
			                    then bucket_amount_func
			                 else 0 end) past_due_bucket_7_amount_func,
			           (case when marker=10
			                    then bucket_amount_prim
			                 else 0 end) past_due_bucket_7_amount_prim,
			           (case when marker=10
			                    then bucket_amount_sec
			                 else 0 end) past_due_bucket_7_amount_sec,
			            ---------------
			           decode(aging_flag,'N',unaged_amount_trx, 0)  unaged_amount_trx,
			           decode(aging_flag,'N',unaged_amount_func, 0) unaged_amount_func,
			           decode(aging_flag,'N',unaged_amount_prim, 0) unaged_amount_prim,
			           decode(aging_flag,'N',unaged_amount_sec, 0)  unaged_amount_sec,
			           decode(aging_flag,'N',on_acct_credit_amount_trx, 0)  on_acct_credit_amount_trx,
			           decode(aging_flag,'N',on_acct_credit_amount_func, 0) on_acct_credit_amount_func,
			           decode(aging_flag,'N',on_acct_credit_amount_prim, 0) on_acct_credit_amount_prim,
			           decode(aging_flag,'N',on_acct_credit_amount_sec, 0)  on_acct_credit_amount_sec,
			           class,
			           decode(aging_flag,'N',billing_activity_flag, 'N') billing_activity_flag,
			           decode(aging_flag,'N',billed_amount_flag, 'N') billed_amount_flag,
			           null on_account_credit_flag,
			           decode(aging_flag,'N',unapplied_deposit_flag, 'N') unapplied_deposit_flag,
			           action,
			           actual_date_closed,
			           aging_flag
			    FROM
			       (SELECT m.marker,
			               v.bill_to_customer_id,
			        	   v.bill_to_site_use_id,
			        	   v.org_id,
			        	   v.customer_trx_id,
			        	   v.payment_schedule_id,
			               v.adjustment_id,
			               v.receivable_application_id,
			        	   v.appl_trx_date,
			        	   v.due_date,
						   v.trx_date,
						   v.gl_date,
			               v.bucket_amount_trx,
			               v.bucket_amount_func,
			               v.bucket_amount_prim,
			               v.bucket_amount_sec,
			               v.unaged_amount_trx,
			               v.unaged_amount_func,
			               v.unaged_amount_prim,
			               v.unaged_amount_sec,
 	  				   v.on_acct_credit_amount_trx,
	 				   v.on_acct_credit_amount_func,
	 				   v.on_acct_credit_amount_prim,
	 				   v.on_acct_credit_amount_sec,
			               v.class,
			          	   v.billing_activity_flag,
			    	       v.billed_amount_flag,
			               v.on_account_credit_flag,
			         	   v.unapplied_deposit_flag,
			               v.action,
			               v.actual_date_closed,
			               decode(m.marker,
			                      1, case when trunc(v.appl_trx_date)<=trunc(v.due_date)-g_current_bucket_3_low
			                                then appl_trx_date
			                              else null end,
			                      2, case when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_2_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.due_date)-g_current_bucket_2_high <= g_sysdate
			                                then trunc(v.due_date)-g_current_bucket_2_high
			                              when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.appl_trx_date) <= trunc(v.due_date)-g_current_bucket_2_low
			                                then v.appl_trx_date
			                              when g_current_bucket_2_high is null
												and trunc(v.appl_trx_date) <= trunc(v.due_date)-g_current_bucket_2_low
			                                then v.appl_trx_date
			                              else null end,
			                      3, case when g_current_bucket_1_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_1_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.due_date)-g_current_bucket_1_high <= g_sysdate
			                                then trunc(v.due_date)-g_current_bucket_1_high
			                              when g_current_bucket_1_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.appl_trx_date) <= trunc(v.due_date) - g_current_bucket_1_low
			                                then v.appl_trx_date
			                              when g_current_bucket_1_high is null
												and trunc(v.appl_trx_date) <= trunc(v.due_date) - g_current_bucket_1_low
			                                then v.appl_trx_date
			                              else null end,
			                      4, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_1_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_1_low
												and trunc(v.due_date)+g_past_due_bucket_1_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_1_low
			                              when g_past_due_bucket_1_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_1_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_1_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_1_high is null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_1_low
			                                then v.appl_trx_date
			                              else null end,
			                      5, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_2_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_2_low
												and trunc(v.due_date)+g_past_due_bucket_2_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_2_low
			                              when g_past_due_bucket_2_high is not null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_2_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_2_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_2_high is null
											    and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_2_low
			                                then v.appl_trx_date
			                              else null end,
			                      6, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_3_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_3_low
												and trunc(v.due_date)+g_past_due_bucket_3_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_3_low
			                              when g_past_due_bucket_3_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_3_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_3_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_3_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_3_low
			                                then v.appl_trx_date
			                              else null end,
			                      7, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_4_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_4_low
												and trunc(v.due_date)+g_past_due_bucket_4_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_4_low
			                              when g_past_due_bucket_4_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_4_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_4_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_4_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_4_low
			                                then v.appl_trx_date
			                              else null end,
			                      8, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_5_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_5_low
												and trunc(v.due_date)+g_past_due_bucket_5_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_5_low
			                              when g_past_due_bucket_5_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_5_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_5_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_5_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_5_low
			                                then v.appl_trx_date
			                              else null end,
			                      9, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_6_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_6_low
												and trunc(v.due_date)+g_past_due_bucket_6_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_6_low
			                              when g_past_due_bucket_6_high is not null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_6_low
			                                    and trunc(v.appl_trx_date)<=trunc(v.due_date)+ g_past_due_bucket_6_high
			                                then v.appl_trx_date
			                              when g_past_due_bucket_6_high is null
												and trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_6_low
			                                then v.appl_trx_date
			                              else null end,
			                      10, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_7_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_7_low
												and trunc(v.due_date)+g_past_due_bucket_7_low <= g_sysdate
			                                then trunc(v.due_date) + g_past_due_bucket_7_low
			                              when trunc(v.appl_trx_date) >= trunc(v.due_date) + g_past_due_bucket_7_low
			                                then v.appl_trx_date
			                              else null end) event_date,
						   decode(m.marker,
			                      1, case when actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
											then trunc(v.due_date)-g_current_bucket_2_high
										  else null end,
			                      2, case when actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
											then trunc(v.due_date)-g_current_bucket_1_high
										  else null end,
			                      3, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_1_low
											then trunc(v.due_date)+g_past_due_bucket_1_low
										  else null end,
			                      4, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_2_low
											then trunc(v.due_date)+g_past_due_bucket_2_low
										  else null end,
			                      5, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_3_low
											then trunc(v.due_date)+g_past_due_bucket_3_low
										  else null end,
			                      6, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_4_low
											then trunc(v.due_date)+g_past_due_bucket_4_low
										  else null end,
			                      7, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_5_low
											then trunc(v.due_date)+g_past_due_bucket_5_low
										  else null end,
			                      8, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_6_low
											then trunc(v.due_date)+g_past_due_bucket_6_low
										  else null end,
			                      9, case when actual_date_closed >= trunc(v.due_date)+g_past_due_bucket_7_low
											then trunc(v.due_date)+g_past_due_bucket_7_low
										  else null end,
			                      10, null) next_aging_date,
			               decode(m.marker,
			                      1, 'N',
			                      2, case when g_current_bucket_2_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_2_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_2_high
												and trunc(v.due_date)-g_current_bucket_2_high <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      3, case when g_current_bucket_1_high is not null
												and trunc(v.appl_trx_date) < trunc(v.due_date)-g_current_bucket_1_high
												and actual_date_closed >= trunc(v.due_date)-g_current_bucket_1_high
												and trunc(v.due_date)-g_current_bucket_1_high <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      4, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_1_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_1_low
												and trunc(v.due_date)+g_past_due_bucket_1_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      5, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_2_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_2_low
												and trunc(v.due_date)+g_past_due_bucket_2_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      6, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_3_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_3_low
												and trunc(v.due_date)+g_past_due_bucket_3_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      7, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_4_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_4_low
												and trunc(v.due_date)+g_past_due_bucket_4_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      8, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_5_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_5_low
												and trunc(v.due_date)+g_past_due_bucket_5_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      9, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_6_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_6_low
												and trunc(v.due_date)+g_past_due_bucket_6_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end,
			                      10, case when trunc(v.appl_trx_date) < trunc(v.due_date) + g_past_due_bucket_7_low
												and actual_date_closed >= trunc(v.due_date) + g_past_due_bucket_7_low
												and trunc(v.due_date)+g_past_due_bucket_7_low <= g_sysdate
			                                then 'Y'
			                               else 'N' end) aging_flag
			        FROM (--Payment Schedules
			              select sch.bill_to_customer_id,
			            		 sch.bill_to_site_use_id,
			            		 sch.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     null adjustment_id,
			                     null receivable_application_id,
			            		 sch.trx_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 sch.gl_date,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_trx) bucket_amount_trx,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_func) bucket_amount_func,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_prim) bucket_amount_prim,
			                     decode(sch.class,
										'CM',0,
										sch.amount_due_original_sec) bucket_amount_sec,
					             sch.amount_due_original_trx unaged_amount_trx,
					             sch.amount_due_original_func unaged_amount_func,
					             sch.amount_due_original_prim unaged_amount_prim,
					             sch.amount_due_original_sec unaged_amount_sec,
							 decode (sch.class, 'CM', sch.amount_due_original_trx, 0) on_acct_credit_amount_trx,
							 decode (sch.class, 'CM', sch.amount_due_original_func, 0) on_acct_credit_amount_func,
							 decode (sch.class, 'CM', sch.amount_due_original_prim, 0) on_acct_credit_amount_prim,
							 decode (sch.class, 'CM', sch.amount_due_original_sec, 0) on_acct_credit_amount_sec,
					             sch.class,
			              		 'Y' billing_activity_flag,
                                                 case when sch.class not in ('CB', 'BR')
                                                        and dso.dso_value = 'Y' then
                                                          'Y'
                                                 else 'N' end billed_amount_flag,
				                 null on_account_credit_flag,
			             	     decode(sch.class,'DEP','Y','N') unapplied_deposit_flag,
			                     'Transaction' action,
			                     sch.actual_date_closed
			              from fii_ar_pmt_schedules_f sch,
							   fii_ar_dso_setup dso,
        					   fii_ar_paysch_merge_gt gt
		      		      where sch.class <> 'PMT'
				          and dso.dso_group='TC'
				          and dso.dso_type = sch.class
                          and sch.customer_trx_id = gt.customer_trx_id

			              union all

			              --Applications
			              select rct.collector_bill_to_customer_id,
			            		 rct.collector_bill_to_site_use_id,
			            		 rct.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     null adjustment_id,
			                     rct.receivable_application_id,
			            		 rct.apply_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 decode(g_collection_criteria,
				                        'GL', rct.filter_date,
										null) gl_date,
			                     -1*(rct.amount_applied_trx
								   +nvl(rct.earned_discount_amount_trx,0)
			                       +nvl(rct.unearned_discount_amount_trx,0)) bucket_amount_trx,
			                     -1*(rct.amount_applied_trx_func
								   +nvl(rct.earned_discount_amount_func,0)
			                       +nvl(rct.unearned_discount_amount_func,0)) bucket_amount_func,
			                     -1*(rct.amount_applied_trx_prim
								   +nvl(rct.earned_discount_amount_prim,0)
			                       +nvl(rct.unearned_discount_amount_prim,0)) bucket_amount_prim,
			                     -1*(rct.amount_applied_trx_sec
								   +nvl(rct.earned_discount_amount_sec,0)
			                       +nvl(rct.unearned_discount_amount_sec,0)) bucket_amount_sec,
					            -1*rct.amount_applied_trx unaged_amount_trx,
							-1*rct.amount_applied_trx_func unaged_amount_func,
							-1*rct.amount_applied_trx_prim unaged_amount_prim,
							-1*rct.amount_applied_trx_sec unaged_amount_sec,
						    --Added for bug 6053566
				            	case when rct.application_type = 'CASH' and sch.class = 'CM'
								then rct.amount_applied_trx
							     when rct.application_type = 'CM'
								then -1*rct.amount_applied_rct
							     else 0 end on_acct_credit_amount_trx,
							case when rct.application_type = 'CASH' and sch.class = 'CM'
								then rct.amount_applied_trx_func
						 	     when rct.application_type = 'CM'
								then -1*rct.amount_applied_rct_func
							     else 0 end on_acct_credit_amount_func,
							case when rct.application_type = 'CASH' and sch.class = 'CM'
								then rct.amount_applied_trx_prim
							     when rct.application_type = 'CM'
								then -1*rct.amount_applied_rct_prim
							     else 0 end on_acct_credit_amount_prim,
							case when rct.application_type = 'CASH' and sch.class = 'CM'
								then rct.amount_applied_trx_sec
							     when rct.application_type = 'CM'
								then -1*rct.amount_applied_rct_sec
							     else 0 end on_acct_credit_amount_sec,
					             sch.class,
			              		 'N' billing_activity_flag,
			    		         'N' billed_amount_flag,
				                 null on_account_credit_flag,
				                 case when rct.application_type = 'CM' and sch.class='DEP'
										and rct.cm_previous_customer_trx_id is not null
									  then 'Y'
									  else 'N' end  unapplied_deposit_flag,
			                     'Application' action,
			                     sch.actual_date_closed
			              from fii_ar_receipts_f rct,
			                   fii_ar_pmt_schedules_f sch,
    					       FII_AR_PAYSCH_MERGE_GT gt
			              where rct.application_status = 'APP'
				          and sch.class <> 'PMT'
				          and rct.applied_payment_schedule_id = sch.payment_schedule_id
            	          and rct.applied_customer_trx_id = gt.customer_trx_id

			              union all

			              --Adjustments
			              select adj.bill_to_customer_id,
			            		 adj.bill_to_site_use_id,
			            		 adj.org_id,
			            		 sch.customer_trx_id,
			            		 sch.payment_schedule_id,
			                     adj.adjustment_id,
			                     null receivable_application_id,
			            		 adj.apply_date appl_trx_date,
								 sch.trx_date,
			            		 sch.due_date,
								 adj.gl_date,
			                     adj.amount_trx  bucket_amount_trx,
			                     adj.amount_func bucket_amount_func,
			                     adj.amount_prim bucket_amount_prim,
			                     adj.amount_sec  bucket_amount_sec,
					             adj.amount_trx  unaged_amount_trx,
					             adj.amount_func unaged_amount_func,
					             adj.amount_prim unaged_amount_prim,
					             adj.amount_sec  unaged_amount_sec,
							 0 on_acct_credit_amount_trx,
							 0 on_acct_credit_amount_func,
							 0 on_acct_credit_amount_prim,
							 0 on_acct_credit_amount_sec,
					             sch.class,
			              		 'N' billing_activity_flag,
                                                 case when sch.class not in ('CB', 'BR')
                                                        and (adj.adj_class not in ('CB', 'BR') or adj.adj_class is not null)
                                                        and schdso.dso_value = 'Y'
                                                        and (adjdso.dso_value is null or adjdso.dso_value = 'Y')
                                                       then 'Y'
                                                      else 'N' end  billed_amount_flag,
				                 null on_account_credit_flag,
								 decode(adj.adj_class,'DEP','Y','N') unapplied_deposit_flag,
			                     'Adjustment' action,
			                     sch.actual_date_closed
			              from fii_ar_adjustments_f adj,
			                   fii_ar_pmt_schedules_f sch,
							   fii_ar_dso_setup schdso,
							   fii_ar_dso_setup adjdso,
                               FII_AR_PAYSCH_MERGE_GT gt
				          where adj.payment_schedule_id = sch.payment_schedule_id
				          and sch.class <> 'PMT'
				          and schdso.dso_group='TC'
				          and schdso.dso_type = sch.class
				          and nvl(adjdso.dso_group,'TC')='TC'
				          and adj.adj_class = adjdso.dso_type (+)
                          and adj.customer_trx_id = gt.customer_trx_id) v,
			             (SELECT 1 marker FROM DUAL WHERE g_current_bucket_3_low is not null UNION ALL
			              SELECT 2 marker FROM DUAL WHERE g_current_bucket_2_low is not null UNION ALL
			              SELECT 3 marker FROM DUAL UNION ALL
			              SELECT 4 marker FROM DUAL UNION ALL
			              SELECT 5 marker FROM DUAL WHERE g_past_due_bucket_2_low is not null UNION ALL
			              SELECT 6 marker FROM DUAL WHERE g_past_due_bucket_3_low is not null UNION ALL
			              SELECT 7 marker FROM DUAL WHERE g_past_due_bucket_4_low is not null UNION ALL
			              SELECT 8 marker FROM DUAL WHERE g_past_due_bucket_5_low is not null UNION ALL
			              SELECT 9 marker FROM DUAL WHERE g_past_due_bucket_6_low is not null UNION ALL
			              SELECT 10 marker FROM DUAL WHERE g_past_due_bucket_7_low is not null) m)
			    WHERE event_date is not null)
			GROUP BY time_id,
                               time_id_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
			       adjustment_id,
			       receivable_application_id,
				   appl_trx_date,
				   trx_date,
				   due_date,
			       event_date,
			       current_bucket_1_amount_trx,
			       current_bucket_1_amount_func,
			       current_bucket_1_amount_prim,
			       current_bucket_1_amount_sec,
			       current_bucket_2_amount_trx,
			       current_bucket_2_amount_func,
			       current_bucket_2_amount_prim,
			       current_bucket_2_amount_sec,
			       current_bucket_3_amount_trx,
			       current_bucket_3_amount_func,
			       current_bucket_3_amount_prim,
			       current_bucket_3_amount_sec,
			       past_due_bucket_1_amount_trx,
			       past_due_bucket_1_amount_func,
			       past_due_bucket_1_amount_prim,
			       past_due_bucket_1_amount_sec,
			       past_due_bucket_2_amount_trx,
			       past_due_bucket_2_amount_func,
			       past_due_bucket_2_amount_prim,
			       past_due_bucket_2_amount_sec,
			       past_due_bucket_3_amount_trx,
			       past_due_bucket_3_amount_func,
			       past_due_bucket_3_amount_prim,
			       past_due_bucket_3_amount_sec,
			       past_due_bucket_4_amount_trx,
			       past_due_bucket_4_amount_func,
			       past_due_bucket_4_amount_prim,
			       past_due_bucket_4_amount_sec,
			       past_due_bucket_5_amount_trx,
			       past_due_bucket_5_amount_func,
			       past_due_bucket_5_amount_prim,
			       past_due_bucket_5_amount_sec,
			       past_due_bucket_6_amount_trx,
			       past_due_bucket_6_amount_func,
			       past_due_bucket_6_amount_prim,
			       past_due_bucket_6_amount_sec,
			       past_due_bucket_7_amount_trx,
			       past_due_bucket_7_amount_func,
			       past_due_bucket_7_amount_prim,
			       past_due_bucket_7_amount_sec,
				   next_aging_date,
			       unaged_amount_trx,
			       unaged_amount_func,
			       unaged_amount_prim,
			       unaged_amount_sec,
				 on_acct_credit_amount_trx,
	 			 on_acct_credit_amount_func,
	 			 on_acct_credit_amount_prim,
	 			 on_acct_credit_amount_sec,
			       class,
			  	   billing_activity_flag,
			       billed_amount_flag,
			       on_account_credit_flag,
			 	   unapplied_deposit_flag,
			       action,
			       actual_date_closed,
			       aging_flag
			)
		)  inc_ag
	WHERE NOT EXISTS
		  (SELECT 1
		   FROM  fii_ar_aging_receivables ag
		   WHERE ag.time_id = inc_ag.time_id
		   AND ag.customer_trx_id = inc_ag.customer_trx_id
		   AND ag.payment_schedule_id = inc_ag.payment_schedule_id
		   AND nvl(ag.adjustment_id,-1) = nvl(inc_ag.adjustment_id,-1)
		   AND nvl(ag.receivable_application_id,-1) = nvl(inc_ag.receivable_application_id,-1))
	GROUP BY time_id,
              time_id_date,
	      event_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      customer_trx_id,
	      payment_schedule_id,
	      adjustment_id,
	      receivable_application_id,
	      appl_trx_date,
		  trx_date,
	      due_date,
		  next_aging_date,
	      unaged_amount_trx,
	      unaged_amount_func,
	      unaged_amount_prim,
	      unaged_amount_sec,
		on_acct_credit_amount_trx,
	 	on_acct_credit_amount_func,
	 	on_acct_credit_amount_prim,
	 	on_acct_credit_amount_sec,
	      class,
	      billing_activity_flag,
	      billed_amount_flag,
	      on_account_credit_flag,
	      unapplied_deposit_flag,
          action,
		  aging_flag;
Line: 7936

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into fii_ar_aging_receivables in incremental mode');
Line: 8014

	--INSERT INTO  fii_ar_aging_receipts_t
	SELECT time_id,
		  event_date,
	      next_aging_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      cash_receipt_id,
	      sum(aging_bucket_1_amount_func),
	      sum(aging_bucket_1_amount_prim),
	      sum(aging_bucket_1_amount_sec),
	      sum(aging_bucket_1_count),
	      sum(aging_bucket_2_amount_func),
	      sum(aging_bucket_2_amount_prim),
	      sum(aging_bucket_2_amount_sec),
	      sum(aging_bucket_2_count),
	      sum(aging_bucket_3_amount_func),
	      sum(aging_bucket_3_amount_prim),
	      sum(aging_bucket_3_amount_sec),
	      sum(aging_bucket_3_count),
		  sum(total_unapplied_count)
		  --sysdate, --CREATION_DATE,
		  --g_fii_user_id,       --CREATED_BY,
		  --sysdate, --LAST_UPDATE_DATE,
		  --g_fii_user_id,       --LAST_UPDATED_BY,
		  --g_fii_login_id        --LAST_UPDATE_LOGIN
	BULK COLLECT INTO --RctAgingMS
		time_id_MS,
		event_date_MS,
		next_aging_date_MS,
		bill_to_customer_id_MS,
		bill_to_site_use_id_MS,
		org_id_MS,
		cash_receipt_id_MS,
		bucket_1_amount_func_MS,
		bucket_1_amount_prim_MS,
		bucket_1_amount_sec_MS,
		bucket_1_count_MS,
		bucket_2_amount_func_MS,
		bucket_2_amount_prim_MS,
		bucket_2_amount_sec_MS,
		bucket_2_count_MS,
		bucket_3_amount_func_MS,
		bucket_3_amount_prim_MS,
		bucket_3_amount_sec_MS,
		bucket_3_count_MS,
		total_unapplied_count_MS
	FROM
		(SELECT time_id,
  			   next_aging_date,
		       bill_to_customer_id,
			   bill_to_site_use_id,
			   org_id,
			   cash_receipt_id,
		       event_date,
		       aging_bucket_1_amount_func,
		       aging_bucket_1_amount_prim,
		       aging_bucket_1_amount_sec,
		       (case when aging_bucket_1_amount_func = aging_bucket_1_amt_func_cum
		                    AND aging_bucket_1_amount_func <>0
		                then 1
		             when aging_bucket_1_amt_func_cum = 0
		                    AND aging_bucket_1_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_1_count,
		       aging_bucket_2_amount_func,
		       aging_bucket_2_amount_prim,
		       aging_bucket_2_amount_sec,
		       (case when aging_bucket_2_amount_func = aging_bucket_2_amt_func_cum
		                    AND aging_bucket_2_amount_func <>0
		                then 1
		             when aging_bucket_2_amt_func_cum = 0
		                    AND aging_bucket_2_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_2_count,
		       aging_bucket_3_amount_func,
		       aging_bucket_3_amount_prim,
		       aging_bucket_3_amount_sec,
		       (case when aging_bucket_3_amount_func = aging_bucket_3_amt_func_cum
		                    AND aging_bucket_3_amount_func <>0
		                then 1
		             when aging_bucket_3_amt_func_cum = 0
		                    AND aging_bucket_3_amount_func <>0
		                then -1
		             else 0 end) aging_bucket_3_count,
			   (case when total_unapplied_amount_func = total_unapplied_amt_func_cum
		                    AND total_unapplied_amount_func <>0
		                then 1
		             when total_unapplied_amt_func_cum = 0
		                    AND total_unapplied_amount_func <>0
		                then -1
		             else 0 end) total_unapplied_count,
		       aging_flag
		FROM
		   (SELECT time_id,
	  			   next_aging_date,
			       bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   cash_receipt_id,
			       event_date,
			       aging_bucket_1_amount_func,
			       aging_bucket_1_amount_prim,
			       aging_bucket_1_amount_sec,
			       SUM(aging_bucket_1_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_1_amt_func_cum,
			       aging_bucket_2_amount_func,
			       aging_bucket_2_amount_prim,
			       aging_bucket_2_amount_sec,
			       SUM(aging_bucket_2_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_2_amt_func_cum,
			       aging_bucket_3_amount_func,
			       aging_bucket_3_amount_prim,
			       aging_bucket_3_amount_sec,
			       SUM(aging_bucket_3_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) aging_bucket_3_amt_func_cum,
				   (aging_bucket_1_amount_func
					+ aging_bucket_2_amount_func
					+ aging_bucket_3_amount_func) total_unapplied_amount_func,
					(SUM(aging_bucket_1_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
					 + SUM(aging_bucket_2_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
 					 + SUM(aging_bucket_3_amount_func) OVER (partition by cash_receipt_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)) total_unapplied_amt_func_cum,
 			       aging_flag
			FROM
			   (SELECT to_number(to_char(decode(g_collection_criteria,
				                       'GL', case when gl_date >= event_date
													then gl_date
												  else decode(aging_flag,'N',gl_date,event_date) end,
				                       event_date), 'J')) time_id,
	 				   next_aging_date,
			           bill_to_customer_id,
			    	   bill_to_site_use_id,
			    	   org_id,
			    	   cash_receipt_id,
			           receivable_application_id,
			           event_date,
			           (case when marker=1
			                    then bucket_amount_func
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) aging_bucket_1_amount_func,
			           (case when marker=1
			                    then bucket_amount_prim
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) aging_bucket_1_amount_prim,
			           (case when marker=1
			                    then bucket_amount_sec
			                 when marker=2 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) aging_bucket_1_amount_sec,
			            ----------------
			           (case when marker=2
			                    then bucket_amount_func
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_func
			                 else 0 end) aging_bucket_2_amount_func,
			           (case when marker=2
			                    then bucket_amount_prim
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_prim
			                 else 0 end) aging_bucket_2_amount_prim,
			           (case when marker=2
			                    then bucket_amount_sec
			                 when marker=3 and aging_flag='Y'
			                    then -1*bucket_amount_sec
			                 else 0 end) aging_bucket_2_amount_sec,
			            ----------------
			           (case when marker=3
			                    then bucket_amount_func
			                 else 0 end) aging_bucket_3_amount_func,
			           (case when marker=3
			                    then bucket_amount_prim
			                 else 0 end) aging_bucket_3_amount_prim,
			           (case when marker=3
			                    then bucket_amount_sec
			                 else 0 end) aging_bucket_3_amount_sec,
			            ---------------
			           aging_flag
			    FROM
			       (SELECT m.marker,
			               v.bill_to_customer_id,
			        	   v.bill_to_site_use_id,
			        	   v.org_id,
			        	   v.cash_receipt_id,
			               v.receivable_application_id,
			         	   v.apply_date,
						   v.gl_date,
			               v.bucket_amount_func,
			               v.bucket_amount_prim,
			               v.bucket_amount_sec,
			               decode(m.marker,
			                      1, case when (g_rct_bucket_1_high is not null AND trunc(v.apply_date) between trunc(v.receipt_date) and trunc(v.receipt_date)+g_rct_bucket_1_high)
			                                then v.apply_date
										  when (g_rct_bucket_1_high is null AND trunc(v.apply_date) >= trunc(v.receipt_date))
			                                then v.apply_date
			                              else null end,
			                      2, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_2_low
			                                and trunc(receipt_date) + g_rct_bucket_2_low <= g_sysdate
											and trunc(receipt_date) + g_rct_bucket_2_low <= trunc(rct_actual_date_closed)
			                                then trunc(receipt_date) + g_rct_bucket_2_low
			                              when (g_rct_bucket_2_high is not null AND trunc(v.apply_date) between trunc(v.receipt_date)+g_rct_bucket_2_low and trunc(v.receipt_date)+g_rct_bucket_2_high)
			                                then trunc(v.apply_date)
			                              when (g_rct_bucket_2_high is null AND trunc(v.apply_date) >= trunc(v.receipt_date)+g_rct_bucket_2_low)
			                                then trunc(v.apply_date)
			                              else null end,
			                      3, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_3_low
			                                and trunc(receipt_date) + g_rct_bucket_3_low <= g_sysdate
											and trunc(receipt_date) + g_rct_bucket_3_low <= trunc(rct_actual_date_closed)
			                                then trunc(receipt_date) + g_rct_bucket_3_low
			                              when trunc(v.apply_date) >= trunc(v.receipt_date)+g_rct_bucket_3_low
			                                then trunc(v.apply_date)
			                              else null end) event_date,
						   decode(m.marker,
			                      1, case when trunc(rct_actual_date_closed) >= trunc(v.receipt_date) + g_rct_bucket_2_low
											then trunc(v.receipt_date) + g_rct_bucket_2_low
									 else null end,
			                      2, case when trunc(rct_actual_date_closed) >= trunc(receipt_date) + g_rct_bucket_3_low
											then trunc(receipt_date) + g_rct_bucket_3_low
									 else null end,
			                      3, null) next_aging_date,
			               decode(m.marker,
			                      1, 'N',
			                      2, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_2_low
			                                and trunc(receipt_date) + g_rct_bucket_2_low <= g_sysdate
			                                then 'Y'
			                              else'N' end,
			                      3, case when trunc(v.apply_date) < trunc(v.receipt_date)+g_rct_bucket_3_low
			                                and trunc(receipt_date) + g_rct_bucket_3_low <= g_sysdate
			                                then 'Y'
			                              else 'N' end) aging_flag
			        FROM (--Unapplied Receipts
			              select  gt.apply_date,
			                      gt.receipt_date,
								  gt.gl_date,
								  gt.rct_actual_date_closed,
			            		  gt.bill_to_customer_id,
			            		  gt.bill_to_site_use_id,
			            		  gt.org_id,
			            		  gt.cash_receipt_id,
			                      gt.receivable_application_id,
			            		  gt.amount_applied_rct_func bucket_amount_func,
			            		  gt.amount_applied_rct_prim bucket_amount_prim,
			            		  gt.amount_applied_rct_sec bucket_amount_sec
			              from FII_AR_RECAPP_MERGE_GT gt
			              where gt.application_status in ('UNAPP','UNID')
						  and gt.header_status not in ('REV', 'NSF', 'STOP')
						  and nvl(gt.applied_payment_schedule_id,1) > 0 --exclude all special applications
					      and gt.application_type = 'CASH'
						  and gt.amount_applied_rct_func <> 0) v,
			             (SELECT 1 marker FROM DUAL UNION ALL
			              SELECT 2 marker FROM DUAL WHERE g_rct_bucket_2_low is not null UNION ALL
			              SELECT 3 marker FROM DUAL WHERE g_rct_bucket_3_low is not null) m)
			    WHERE event_date is not null)
			GROUP BY time_id,
			         bill_to_customer_id,
			    	 bill_to_site_use_id,
			    	 org_id,
			    	 cash_receipt_id,
			         receivable_application_id,
			         event_date,
			         aging_bucket_1_amount_func,
			         aging_bucket_1_amount_prim,
			         aging_bucket_1_amount_sec,
			         aging_bucket_2_amount_func,
			         aging_bucket_2_amount_prim,
			         aging_bucket_2_amount_sec,
			         aging_bucket_3_amount_func,
			         aging_bucket_3_amount_prim,
			         aging_bucket_3_amount_sec,
					 next_aging_date,
			         aging_flag

			order by receivable_application_id, event_date
			)
		)
	GROUP BY time_id,
	      event_date,
	      bill_to_customer_id,
	      bill_to_site_use_id,
	      org_id,
	      cash_receipt_id,
	      next_aging_date
	HAVING sum(aging_bucket_1_amount_func) <> 0
		   or
	  	   sum(aging_bucket_2_amount_func) <> 0
		   or
		   sum(aging_bucket_3_amount_func) <>0;
Line: 8301

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into memory structures related to fii_ar_aging_receipts.');
Line: 8317

	UPDATE  fii_ar_aging_receipts ag
	SET ag.aging_bucket_1_amount_func = bucket_1_amount_func_MS(i),
	    ag.aging_bucket_1_amount_prim = bucket_1_amount_prim_MS(i),
	    ag.aging_bucket_1_amount_sec = bucket_1_amount_sec_MS(i),
	    ag.aging_bucket_1_count = bucket_1_count_MS(i),
	    ag.aging_bucket_2_amount_func = bucket_2_amount_func_MS(i),
	    ag.aging_bucket_2_amount_prim = bucket_2_amount_prim_MS(i),
	    ag.aging_bucket_2_amount_sec = bucket_2_amount_sec_MS(i),
	    ag.aging_bucket_2_count = bucket_2_count_MS(i),
	    ag.aging_bucket_3_amount_func = bucket_3_amount_func_MS(i),
	    ag.aging_bucket_3_amount_prim = bucket_3_amount_prim_MS(i),
	    ag.aging_bucket_3_amount_sec = bucket_3_amount_sec_MS(i),
	    ag.aging_bucket_3_count = bucket_3_count_MS(i),
	    ag.next_aging_date = next_aging_date_MS(i),
		ag.last_update_date = sysdate,
		ag.last_update_login = g_fii_login_id
	WHERE ag.time_id = time_id_MS(i)
	 AND ag.cash_receipt_id = cash_receipt_id_MS(i)
	 AND (ag.aging_bucket_1_amount_func <> bucket_1_amount_func_MS(i)
	      OR ag.aging_bucket_2_amount_func <> bucket_2_amount_func_MS(i)
	      OR ag.aging_bucket_3_amount_func <> bucket_3_amount_func_MS(i));
Line: 8342

     FII_UTIL.put_line('Updated ' ||SQL%ROWCOUNT|| ' records in fii_ar_aging_receipts');
Line: 8348

  g_state := 'Inserting into fii_ar_aging_receipts';
Line: 8358

	INSERT INTO  fii_ar_aging_receipts ag
	SELECT time_id_MS(i), event_date_MS(i), next_aging_date_MS(i), bill_to_customer_id_MS(i),
	 bill_to_site_use_id_MS(i), org_id_MS(i), cash_receipt_id_MS(i),
	 bucket_1_amount_func_MS(i), bucket_1_amount_prim_MS(i), bucket_1_amount_sec_MS(i), bucket_1_count_MS(i),
	 bucket_2_amount_func_MS(i), bucket_2_amount_prim_MS(i), bucket_2_amount_sec_MS(i), bucket_2_count_MS(i),
	 bucket_3_amount_func_MS(i), bucket_3_amount_prim_MS(i), bucket_3_amount_sec_MS(i), bucket_3_count_MS(i),
	 total_unapplied_count_MS(i), sysdate, g_fii_user_id, sysdate, g_fii_user_id, g_fii_login_id
	FROM DUAL
	WHERE NOT EXISTS
		(SELECT 1
		 FROM  fii_ar_aging_receipts ag
		 WHERE ag.time_id = time_id_MS(i)
		 AND ag.cash_receipt_id = cash_receipt_id_MS(i));
Line: 8375

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into fii_ar_aging_receipts');
Line: 8404

  g_state := 'Inserting into fii_ar_aging_disputes';
Line: 8411

    INSERT INTO FII_AR_AGING_DISPUTES
	 (time_id,
	  event_date,
	  next_aging_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  org_id,
	  customer_trx_id,
	  payment_schedule_id,
	  due_date,
	  current_dispute_amount_func,
	  current_dispute_amount_prim,
	  current_dispute_amount_sec,
	  current_dispute_count,
	  past_due_dispute_amount_func,
	  past_due_dispute_amount_prim,
	  past_due_dispute_amount_sec,
	  past_due_dispute_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login)
	SELECT time_id,
		  event_date,
	      next_aging_date,
		  bill_to_customer_id,
		  bill_to_site_use_id,
		  org_id,
		  customer_trx_id,
		  payment_schedule_id,
		  due_date,
		  sum(current_dispute_amount_func),
		  sum(current_dispute_amount_prim),
		  sum(current_dispute_amount_sec),
		  sum(current_dispute_count),
		  sum(past_due_dispute_amount_func),
		  sum(past_due_dispute_amount_prim),
		  sum(past_due_dispute_amount_sec),
		  sum(past_due_dispute_count),
		  sysdate CREATION_DATE,
		  g_fii_user_id CREATED_BY,
		  sysdate LAST_UPDATE_DATE,
		  g_fii_user_id LAST_UPDATED_BY,
		  g_fii_login_id LAST_UPDATE_LOGIN
	FROM (
		SELECT time_id,
			  event_date,
		      next_aging_date,
			  bill_to_customer_id,
			  bill_to_site_use_id,
			  org_id,
			  customer_trx_id,
			  payment_schedule_id,
			  due_date,
			  current_dispute_amount_func,
			  current_dispute_amount_prim,
			  current_dispute_amount_sec,
		      SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) current_dispute_amount_funcc,
		      (case when current_dispute_amount_func = SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
		                and current_dispute_amount_func <> 0
						then 1
		             when SUM(current_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) = 0
		                    AND current_dispute_amount_func <> 0
		                then -1
		             else 0 end) current_dispute_count,
			  past_due_dispute_amount_func,
			  past_due_dispute_amount_prim,
			  past_due_dispute_amount_sec,
		      SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) past_due_dispute_amount_funcc,
		      (case when past_due_dispute_amount_func = SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING)
		                and past_due_dispute_amount_func <> 0
						then 1
		             when SUM(past_due_dispute_amount_func) OVER (partition by customer_trx_id ORDER BY time_id ROWS UNBOUNDED PRECEDING) = 0
		                and past_due_dispute_amount_func <> 0
		                then -1
		             else 0 end) past_due_dispute_count,

		       aging_flag
		FROM
		   (SELECT to_number(to_char(event_date, 'J')) time_id,
				   event_date,
				   next_aging_date,
				   bill_to_customer_id,
				   bill_to_site_use_id,
				   org_id,
				   customer_trx_id,
				   payment_schedule_id,
				   due_date,
		           (case when marker=1
		                    then bucket_amount_func
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_func
		                 else 0 end) current_dispute_amount_func,
		           (case when marker=1
		                    then bucket_amount_prim
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_prim
		                 else 0 end) current_dispute_amount_prim,
		           (case when marker=1
		                    then bucket_amount_sec
		                 when marker=2 and aging_flag='Y'
		                    then -1*bucket_amount_sec
		                 else 0 end) current_dispute_amount_sec,
		            ----------------
		           (case when marker=2
		                    then bucket_amount_func
		                 else 0 end) past_due_dispute_amount_func,
		           (case when marker=2
		                    then bucket_amount_prim
		                 else 0 end) past_due_dispute_amount_prim,
		           (case when marker=2
		                    then bucket_amount_sec
		                 else 0 end) past_due_dispute_amount_sec,
		            ---------------
		            aging_flag
		    FROM
		       (SELECT m.marker,
					   v.time_id,
		               v.bill_to_customer_id,
		        	   v.bill_to_site_use_id,
		        	   v.org_id,
		        	   v.customer_trx_id,
		        	   v.payment_schedule_id,
					   v.due_date,
		               v.bucket_amount_func,
		               v.bucket_amount_prim,
		               v.bucket_amount_sec,
		               decode(m.marker,
		                      1, case when trunc(v.start_date)<=trunc(v.due_date)
		                                then v.start_date
		                              else null end,
		                      2, case when trunc(v.start_date) <= trunc(v.due_date)
											and actual_date_closed >= trunc(v.due_date)+1
											and trunc(v.due_date)+1  <= g_sysdate
		                                then trunc(v.due_date)+1
		                              when trunc(v.start_date) >= trunc(v.due_date)+1
		                                then trunc(v.start_date)
		                              else null end) event_date,
					   decode(m.marker,
		                      1, case when trunc(v.due_date)+1 <= actual_date_closed
										then trunc(v.due_date)+1 end,
		                      2, null) next_aging_date,
		               decode(m.marker,
		                      1, 'N',
		                      2, case when trunc(v.start_date) <= trunc(v.due_date)
											and v.actual_date_closed >= trunc(v.due_date)+1
											and trunc(v.due_date)+1  <= g_sysdate
		                                then 'Y'
		                              else 'N' end) aging_flag
		        FROM (--Disputes
		              select dis.time_id,
							 dis.start_date,
							 dis.bill_to_customer_id,
							 dis.bill_to_site_use_id,
							 dis.org_id,
							 --dis.dispute_history_id,
							 dis.customer_trx_id,
							 dis.payment_schedule_id,
							 dis.due_date,
							 dis.actual_date_closed,
		                     sum(dis.dispute_amount_func)   bucket_amount_func,
		                     sum(dis.dispute_amount_prim)   bucket_amount_prim,
		                     sum(dis.dispute_amount_sec)    bucket_amount_sec
		              from fii_ar_dispute_history_f dis,
                                   (select distinct customer_trx_id
                                    from fii_ar_disp_update_gt dis_gt,
                                         fii_ar_dispute_history_f f
                                    where dis_gt.payment_schedule_id = f.payment_schedule_id) gt
					  where dis.customer_trx_id = gt.customer_trx_id
					  group by dis.time_id,
							 dis.start_date,
							 dis.bill_to_customer_id,
							 dis.bill_to_site_use_id,
							 dis.org_id,
							 dis.customer_trx_id,
							 dis.payment_schedule_id,
							 dis.due_date,
							 dis.actual_date_closed

					  union all

					  --Disputes that are ended
					  select to_number(to_char(end_date, 'J')) time_id,
					       least(end_date, actual_date_closed) start_date,
					       bill_to_customer_id,
						   bill_to_site_use_id,
						   org_id,
						   customer_trx_id,
						   payment_schedule_id,
						   due_date,
						   actual_date_closed,
					       -1*bucket_amount_func,
					       -1*bucket_amount_prim,
					       -1*bucket_amount_sec
					  from
					    (select null time_id,
					         max(nvl(dis.end_date, to_date('12/31/4712','MM/DD/YYYY'))) end_date,
					    	 dis.bill_to_customer_id,
					    	 dis.bill_to_site_use_id,
					    	 dis.org_id,
					    	 dis.customer_trx_id,
					    	 dis.payment_schedule_id,
					    	 dis.due_date,
					    	 dis.actual_date_closed,
					         sum(dis.dispute_amount_func)   bucket_amount_func,
					         sum(dis.dispute_amount_prim)   bucket_amount_prim,
					         sum(dis.dispute_amount_sec)    bucket_amount_sec
					    from fii_ar_dispute_history_f dis,
						 (select distinct customer_trx_id
                                                  from fii_ar_disp_update_gt dis_gt,
                                                       fii_ar_dispute_history_f f
                                                  where dis_gt.payment_schedule_id = f.payment_schedule_id) gt
					    where dis.customer_trx_id = gt.customer_trx_id
					    group by dis.bill_to_customer_id,
					    	 dis.bill_to_site_use_id,
					    	 dis.org_id,
					    	 dis.customer_trx_id,
					    	 dis.payment_schedule_id,
					    	 dis.due_date,
					    	 dis.actual_date_closed)
					  where least(end_date, actual_date_closed) <> to_date('12/31/4712','MM/DD/YYYY')) v,
		             (SELECT 1 marker FROM DUAL UNION ALL
		              SELECT 2 marker FROM DUAL) m)
		    WHERE event_date is not null)
/*		GROUP BY time_id,
			  event_date,
		      next_aging_date,
			  bill_to_customer_id,
			  bill_to_site_use_id,
			  org_id,
			  --dispute_history_id,
			  customer_trx_id,
			  payment_schedule_id,
			  due_date,
			  current_dispute_amount_func,
			  current_dispute_amount_prim,
			  current_dispute_amount_sec,
			  past_due_dispute_amount_func,
			  past_due_dispute_amount_prim,
			  past_due_dispute_amount_sec,
		      aging_flag
*/
		order by payment_schedule_id, event_date

	) inc_ag
	WHERE NOT EXISTS
		  (SELECT 1
		   FROM  fii_ar_aging_disputes ag
		   WHERE ag.time_id = inc_ag.time_id
		   AND ag.payment_schedule_id = inc_ag.payment_schedule_id)
	GROUP BY time_id,
		  event_date,
	      next_aging_date,
		  bill_to_customer_id,
		  bill_to_site_use_id,
		  org_id,
		  --dispute_history_id,
		  customer_trx_id,
		  payment_schedule_id,
		  due_date
	HAVING sum(current_dispute_amount_func) <> 0
		   or
	  	   sum(past_due_dispute_amount_func) <> 0;
Line: 8679

     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' records into fii_ar_aging_disputes.');
Line: 8728

	SELECT payment_schedule_id, customer_trx_id, min_date
	BULK COLLECT INTO sch_id_array, trx_id_array, min_date_array
	FROM (--Case 1 and Case 2
              select payment_schedule_id, null customer_trx_id, null min_date
              from fii_ar_paysch_delete_gt

              union all

              --Case 3
              select null payment_schedule_id, customer_trx_id, min(min_date) min_date
              from
                    (select applied_customer_trx_id customer_trx_id, min(decode(g_collection_criteria, 'GL', gl_date, apply_date)) min_date
                     from FII_AR_RECAPP_INSERT_GT
                     where applied_payment_schedule_id > 0
                     group by applied_customer_trx_id

                     union all

                     select customer_trx_id, min(decode(g_collection_criteria, 'GL', gl_date, apply_date)) min_date
                     from FII_AR_ADJ_UPDATE_GT
                     group by customer_trx_id)
              group by customer_trx_id
             );
Line: 8761

			DELETE FROM  fii_ar_aging_receivables ag
			WHERE (sch_id_array(i) is not null
	                       and ag.payment_schedule_id = sch_id_array(i))
	                OR (sch_id_array(i) is null
	                    and ag.customer_trx_id = trx_id_array(i)
	                    and ag.event_date >= min_date_array(i));
Line: 8770

	     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from fii_ar_aging_receivables.');
Line: 8813

	SELECT cash_receipt_id, actual_date_closed
	BULK COLLECT INTO rct_id_array, date_closed_array
	FROM (--Case 1
		 select cash_receipt_id,  1 actual_date_closed
		 from FII_AR_RECAPP_DELETE_GT

		 union all

		 --Cases 2
		 select distinct ag.cash_receipt_id, to_number(to_char(rct.rct_actual_date_closed, 'J')) actual_date_closed
		 from fii_ar_receipts_f rct,
			   fii_ar_aging_receipts ag
		 where rct.cash_receipt_id = ag.cash_receipt_id
		 and rct.receivable_application_id <= G_MAX_RECEIVABLE_APPL_ID
         and to_number(to_char(rct.rct_actual_date_closed, 'J')) < ag.time_id

		union all

                --Case 3
		select ag.cash_receipt_id, 1 actual_date_closed
		from fii_ar_receipts_f rct,
		     fii_ar_aging_receipts ag
		where rct.cash_receipt_id = ag.cash_receipt_id
		and rct.receivable_application_id <= G_MAX_RECEIVABLE_APPL_ID
            and rct.header_status in ('REV','NSF','STOP') );
Line: 8847

			DELETE FROM  fii_ar_aging_receipts ag
			WHERE ag.cash_receipt_id = rct_id_array(i)
			AND ag.time_id > date_closed_array(i);
Line: 8854

	     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from fii_ar_aging_receipts.');
Line: 8897

	SELECT payment_schedule_id, customer_trx_id, min_date
	BULK COLLECT INTO sch_id_array, trx_id_array, min_date_array
	FROM (--Case 1 and 2
          select payment_schedule_id, null customer_trx_id, to_date(1, 'J') min_date
          from fii_ar_paysch_delete_gt

          union all

		  --Case 3
		  select null payment_schedule_id, gt.customer_trx_id, gt.actual_date_closed min_date
		  from fii_ar_paysch_merge_gt gt,
			   fii_ar_aging_disputes ag
		  where ag.payment_schedule_id = gt.payment_schedule_id
		  and ag.event_date >= gt.actual_date_closed

		  union all

          --Case 4
		  select null payment_schedule_id, ag.customer_trx_id, gt.end_date min_date
		  from fii_ar_disp_update_gt gt,
			   fii_ar_aging_disputes ag
		  where ag.payment_schedule_id = gt.payment_schedule_id
		  and ag.event_date >= gt.end_date
         );
Line: 8930

			DELETE FROM  fii_ar_aging_disputes ag
			WHERE (sch_id_array(i) is not null
                               and ag.payment_schedule_id = sch_id_array(i))
                           OR (trx_id_array(i) is not null
                               and ag.customer_trx_id = trx_id_array(i)
                               and ag.event_date >= min_date_array(i));
Line: 8940

	     FII_UTIL.put_line('Deleted ' ||SQL%ROWCOUNT|| ' records from fii_ar_aging_disputes.');
Line: 8980

	--trx_ids that have new or updated adjustments

	--Insert trx ids that are already in aging table but not yet aged completely
	INSERT INTO FII_AR_PAYSCH_MERGE_GT
	(customer_trx_id)
	(select distinct ag.customer_trx_id
         from  fii_ar_aging_receivables ag
         where ag.next_aging_date > G_LAST_UPDATE_DATE --'15-APR-2005'
         and ag.next_aging_date <= g_sysdate --'20-MAY-2005'
         and not exists
           (select 1
            from fii_ar_paysch_merge_gt t
            where t.customer_trx_id = ag.customer_trx_id));
Line: 8995

	     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' additional records into FII_AR_PAYSCH_MERGE_GT.');
Line: 9038

	--Insert rct ids that are already in aging table but not yet aged completely
	INSERT INTO FII_AR_RECAPP_MERGE_GT
	( receivable_application_id,
	  time_id,
	  cash_receipt_id,
	  application_status,
	  header_status,
	  amount_applied_rct,
	  amount_applied_trx,
	  amount_applied_rct_func,
	  amount_applied_trx_func,
	  amount_applied_rct_prim,
	  amount_applied_trx_prim,
	  amount_applied_rct_sec,
	  amount_applied_trx_sec,
	  earned_discount_amount_trx,
	  earned_discount_amount_func,
	  earned_discount_amount_prim,
	  earned_discount_amount_sec,
	  unearned_discount_amount_trx,
	  unearned_discount_amount_func,
	  unearned_discount_amount_prim,
	  unearned_discount_amount_sec,
	  apply_date,
	  gl_date,
	  filter_date,
	  header_filter_date,
	  application_type,
	  applied_payment_schedule_id,
	  applied_customer_trx_id,
	  customer_trx_id,
	  payment_schedule_id,
	  receipt_number,
	  receipt_type,
	  receipt_date,
	  rct_actual_date_closed,
	  receipt_method_id,
	  currency_code,
	  user_id,
	  ar_creation_date,
	  bill_to_customer_id,
	  bill_to_site_use_id,
	  collector_bill_to_customer_id,
	  collector_bill_to_site_use_id,
	  org_id,
	  trx_date,
	  due_date,
	  cm_previous_customer_trx_id,
	  total_receipt_count,
	  creation_date,
	  created_by,
	  last_update_date,
	  last_updated_by,
	  last_update_login
	 )
	(SELECT   receivable_application_id,
			  time_id,
			  rct.cash_receipt_id,
			  application_status,
			  header_status,
			  amount_applied_rct,
			  amount_applied_trx,
			  amount_applied_rct_func,
			  amount_applied_trx_func,
			  amount_applied_rct_prim,
			  amount_applied_trx_prim,
			  amount_applied_rct_sec,
			  amount_applied_trx_sec,
			  earned_discount_amount_trx,
			  earned_discount_amount_func,
			  earned_discount_amount_prim,
			  earned_discount_amount_sec,
			  unearned_discount_amount_trx,
			  unearned_discount_amount_func,
			  unearned_discount_amount_prim,
			  unearned_discount_amount_sec,
			  apply_date,
			  gl_date,
			  filter_date,
			  header_filter_date,
			  application_type,
			  applied_payment_schedule_id,
			  applied_customer_trx_id,
			  customer_trx_id,
			  payment_schedule_id,
			  receipt_number,
			  receipt_type,
			  receipt_date,
			  rct_actual_date_closed,
			  receipt_method_id,
			  currency_code,
			  user_id,
			  ar_creation_date,
			  bill_to_customer_id,
			  bill_to_site_use_id,
			  collector_bill_to_customer_id,
			  collector_bill_to_site_use_id,
			  org_id,
			  trx_date,
			  due_date,
			  cm_previous_customer_trx_id,
			  total_receipt_count,
			  creation_date,
			  created_by,
			  last_update_date,
			  last_updated_by,
			  last_update_login
	 from fii_ar_receipts_f rct,
	      (select distinct ag.cash_receipt_id
		   from  fii_ar_aging_receipts ag
		   where ag.next_aging_date > G_LAST_UPDATE_DATE --'15-APR-2005'
		   and ag.next_aging_date <= g_sysdate --'20-MAY-2005'
		   and not exists
			    (select 1
			     from FII_AR_RECAPP_MERGE_GT t
			     where t.cash_receipt_id = ag.cash_receipt_id
				 and t.application_status in ('UNAPP','UNID')
				 and t.header_status not in ('REV', 'NSF', 'STOP')
				 and nvl(t.applied_payment_schedule_id,1) > 0 --exclude all special applications
				 and t.application_type = 'CASH'
				 and t.amount_applied_rct_func <> 0)) ag
	 where rct.cash_receipt_id = ag.cash_receipt_id
     and rct.application_status in ('UNAPP','UNID')
     and rct.header_status not in ('REV', 'NSF', 'STOP')
     and nvl(rct.applied_payment_schedule_id,1) > 0 --exclude all special applications
     and rct.application_type = 'CASH'
     and rct.amount_applied_rct_func <> 0);
Line: 9167

	     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' additional records into FII_AR_RECAPP_MERGE_GT.');
Line: 9195

    g_state := 'Populating FII_AR_DISP_UPDATE_GT from fii_ar_aging_disputes';
Line: 9203

	--Insert sch ids that are already in aging table but not yet aged completely
	INSERT INTO FII_AR_DISP_UPDATE_GT
	(payment_schedule_id)
	(select distinct ag.payment_schedule_id
         from  fii_ar_aging_disputes ag
         where ag.next_aging_date > G_LAST_UPDATE_DATE --'15-APR-2005'
         and ag.next_aging_date <= g_sysdate --'20-MAY-2005'
         and not exists
           (select 1
            from FII_AR_DISP_UPDATE_GT t
            where t.payment_schedule_id = ag.payment_schedule_id));
Line: 9216

	     FII_UTIL.put_line('Inserted ' ||SQL%ROWCOUNT|| ' additional records into FII_AR_DISP_UPDATE_GT.');
Line: 9311

   FII_UTIL.put_line('Calling the Inc_RATES procedure to insert the missing rate info');
Line: 9389

	 FII_UTIL.put_line('Calling the CLEAN_REC_AGING procedure to delete from fii_ar_aging_receivables');
Line: 9413

	   FII_UTIL.put_line('Calling the CLEAN_RCT_AGING procedure to delete from fii_ar_aging_receipts');
Line: 9437

	   FII_UTIL.put_line('Calling the CLEAN_DISP_AGING procedure to delete from fii_ar_aging_disputes');
Line: 9458

    g_state := 'Logging program sysdate as ar_last_update_date in fii_change_log table';
Line: 9460

    INSERT INTO fii_change_log
    (log_item, item_value, CREATION_DATE, CREATED_BY,
     LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN)
    (SELECT 'AR_LAST_UPDATE_DATE',
            to_char(g_sysdate_time,'MM/DD/YYYY HH24:MI:SS'),
            sysdate,        --CREATION_DATE,
            g_fii_user_id,  --CREATED_BY,
            sysdate,        --LAST_UPDATE_DATE,
            g_fii_user_id,  --LAST_UPDATED_BY,
            g_fii_login_id  --LAST_UPDATE_LOGIN
     FROM DUAL
     WHERE NOT EXISTS
        (select 1 from fii_change_log
         where log_item = 'AR_LAST_UPDATE_DATE'));
Line: 9476

        UPDATE fii_change_log
        SET item_value = to_char(g_sysdate_time,'MM/DD/YYYY HH24:MI:SS'),
            last_update_date  = g_sysdate_time,
            last_update_login = g_fii_login_id,
            last_updated_by   = g_fii_user_id
        WHERE log_item = 'AR_LAST_UPDATE_DATE';
Line: 9484

    delete from FII_AR_RECEIPTS_DELETE_T
    where CREATION_DATE <= g_sysdate_time;
Line: 9513

FUNCTION Delete_CashReceipt_Sub (
  p_subscription_guid IN RAW,
  p_event IN OUT NOCOPY WF_EVENT_T
) RETURN VARCHAR2 IS
  l_key  VARCHAR2(240);
Line: 9524

  insert into FII_AR_RECEIPTS_DELETE_T (
    EVENT_KEY,
    CASH_RECEIPT_ID,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN
  )
  values(
    l_key,
    0, -- to_number(l_id),
    sysdate,
    111,
    sysdate,
    111,
    111
  );
Line: 9547

END Delete_CashReceipt_Sub;