[Home] [Help]
1: PACKAGE BODY ar_calc_aging AS
2: /* $Header: ARRECONB.pls 120.28.12020000.6 2012/12/05 14:09:38 ashlkuma ship $ */
3: /*-------------------------------------------------------------
4: PRIVATE variables
5: ---------------------------------------------------------------*/
32: p_coa_id IN NUMBER)
33: IS
34: BEGIN
35:
36: ar_calc_aging.g_reporting_entity_id := p_reporting_entity_id;
37:
38: IF NVL(ar_calc_aging.ca_sob_type,'P') = 'P' THEN
39: l_ps_table := 'ar_payment_schedules ';
40: l_ra_table := 'ar_receivable_applications ';
34: BEGIN
35:
36: ar_calc_aging.g_reporting_entity_id := p_reporting_entity_id;
37:
38: IF NVL(ar_calc_aging.ca_sob_type,'P') = 'P' THEN
39: l_ps_table := 'ar_payment_schedules ';
40: l_ra_table := 'ar_receivable_applications ';
41: l_adj_table := 'ar_adjustments ';
42: l_ard_table := 'ar_distributions ';
68: l_adj_org_where := XLA_MO_REPORTING_API.Get_Predicate('adj' ,'push_subq');
69: l_cr_org_where := XLA_MO_REPORTING_API.Get_Predicate('cr' ,'push_subq');
70: /* Replace the variables to bind with the function calls so that we don't have to bind those */
71: l_ps_org_where := replace(l_ps_org_where,
72: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
73: l_gl_dist_org_where:= replace(l_gl_dist_org_where,
74: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
75: l_trx_org_where := replace(l_trx_org_where,
76: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
70: /* Replace the variables to bind with the function calls so that we don't have to bind those */
71: l_ps_org_where := replace(l_ps_org_where,
72: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
73: l_gl_dist_org_where:= replace(l_gl_dist_org_where,
74: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
75: l_trx_org_where := replace(l_trx_org_where,
76: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
77: l_line_org_where := replace(l_line_org_where,
78: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
72: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
73: l_gl_dist_org_where:= replace(l_gl_dist_org_where,
74: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
75: l_trx_org_where := replace(l_trx_org_where,
76: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
77: l_line_org_where := replace(l_line_org_where,
78: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
79: l_ra_org_where := replace(l_ra_org_where,
80: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
74: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
75: l_trx_org_where := replace(l_trx_org_where,
76: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
77: l_line_org_where := replace(l_line_org_where,
78: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
79: l_ra_org_where := replace(l_ra_org_where,
80: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
81: l_ard_org_where := replace(l_ard_org_where,
82: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
76: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
77: l_line_org_where := replace(l_line_org_where,
78: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
79: l_ra_org_where := replace(l_ra_org_where,
80: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
81: l_ard_org_where := replace(l_ard_org_where,
82: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
83: l_ard1_org_where := replace(l_ard1_org_where,
84: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
78: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
79: l_ra_org_where := replace(l_ra_org_where,
80: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
81: l_ard_org_where := replace(l_ard_org_where,
82: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
83: l_ard1_org_where := replace(l_ard1_org_where,
84: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
85: l_ath_org_where := replace(l_ath_org_where,
86: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
80: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
81: l_ard_org_where := replace(l_ard_org_where,
82: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
83: l_ard1_org_where := replace(l_ard1_org_where,
84: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
85: l_ath_org_where := replace(l_ath_org_where,
86: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
87: l_adj_org_where := replace(l_adj_org_where,
88: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
82: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
83: l_ard1_org_where := replace(l_ard1_org_where,
84: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
85: l_ath_org_where := replace(l_ath_org_where,
86: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
87: l_adj_org_where := replace(l_adj_org_where,
88: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
89: l_cr_org_where := replace(l_cr_org_where,
90: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
84: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
85: l_ath_org_where := replace(l_ath_org_where,
86: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
87: l_adj_org_where := replace(l_adj_org_where,
88: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
89: l_cr_org_where := replace(l_cr_org_where,
90: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
91:
92: IF company_segment_where IS NULL THEN
86: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
87: l_adj_org_where := replace(l_adj_org_where,
88: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
89: l_cr_org_where := replace(l_cr_org_where,
90: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
91:
92: IF company_segment_where IS NULL THEN
93: IF p_co_seg_low IS NULL AND p_co_seg_high IS NULL THEN
94: company_segment_where := NULL;
93: IF p_co_seg_low IS NULL AND p_co_seg_high IS NULL THEN
94: company_segment_where := NULL;
95: ELSIF p_co_seg_low IS NULL THEN
96: company_segment_where := ' AND ' ||
97: ar_calc_aging.FLEX_SQL(p_application_id => 101,
98: p_id_flex_code => 'GL#',
99: p_id_flex_num =>p_coa_id,
100: p_table_alias => 'GC',
101: p_mode => 'WHERE',
103: p_function => '<=',
104: p_operand1 => p_co_seg_high);
105: ELSIF p_co_seg_high IS NULL THEN
106: company_segment_where := ' AND ' ||
107: ar_calc_aging.FLEX_SQL(p_application_id => 101,
108: p_id_flex_code => 'GL#',
109: p_id_flex_num => p_coa_id,
110: p_table_alias => 'GC',
111: p_mode => 'WHERE',
113: p_function => '>=',
114: p_operand1 => p_co_seg_low);
115: ELSE
116: company_segment_where := ' AND ' ||
117: ar_calc_aging.FLEX_SQL(p_application_id => 101,
118: p_id_flex_code => 'GL#',
119: p_id_flex_num =>p_coa_id,
120: p_table_alias => 'GC',
121: p_mode => 'WHERE',
134: ========================================================================*/
135:
136: FUNCTION get_reporting_entity_id return NUMBER is
137: BEGIN
138: return ar_calc_aging.g_reporting_entity_id;
139: END get_reporting_entity_id;
140:
141:
142: /*========================================================================+
242: l_profile_rsob_id NUMBER := NULL;
243: l_client_info_rsob_id NUMBER := NULL;
244: BEGIN
245: --Bug 4928220
246: ar_calc_aging.ca_sob_type := 'P';
247:
248: END;
249:
250: /*-------------------------------------------------------------
289: p_co_seg_high,
290: p_coa_id);
291:
292: l_ps_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */ ps.customer_trx_id ,
293: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
294: NULL,:p_as_of_date_from)
295: * ps.amount_due_remaining) start_bal,
296: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
297: NULL,:p_as_of_date_to)
292: l_ps_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */ ps.customer_trx_id ,
293: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
294: NULL,:p_as_of_date_from)
295: * ps.amount_due_remaining) start_bal,
296: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
297: NULL,:p_as_of_date_to)
298: * ps.amount_due_remaining) end_bal,
299: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
300: NULL,:p_as_of_date_from)
295: * ps.amount_due_remaining) start_bal,
296: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
297: NULL,:p_as_of_date_to)
298: * ps.amount_due_remaining) end_bal,
299: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
300: NULL,:p_as_of_date_from)
301: * ps.acctd_amount_due_remaining) acctd_start_bal,
302: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
303: NULL,:p_as_of_date_to)
298: * ps.amount_due_remaining) end_bal,
299: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
300: NULL,:p_as_of_date_from)
301: * ps.acctd_amount_due_remaining) acctd_start_bal,
302: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
303: NULL,:p_as_of_date_to)
304: * ps.acctd_amount_due_remaining) acctd_end_bal
305: FROM '||l_ps_table||' ps
306: WHERE ps.payment_schedule_id+0 > 0
311: GROUP BY ps.customer_trx_id ' ;
312:
313: l_ra_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) index(ra AR_RECEIVABLE_APPLICATIONS_N3) */
314: ps.customer_trx_id ,
315: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
316: ra.gl_date,:p_as_of_date_from)
317: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
318: + NVL(ra.unearned_discount_taken,0))) start_bal,
319: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
315: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
316: ra.gl_date,:p_as_of_date_from)
317: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
318: + NVL(ra.unearned_discount_taken,0))) start_bal,
319: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
320: ra.gl_date,:p_as_of_date_to)
321: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
322: + NVL(ra.unearned_discount_taken,0))) end_bal,
323: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
319: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
320: ra.gl_date,:p_as_of_date_to)
321: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
322: + NVL(ra.unearned_discount_taken,0))) end_bal,
323: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
324: ra.gl_date,:p_as_of_date_from)
325: * (ra.acctd_amount_applied_to +
326: NVL(ra.acctd_earned_discount_taken,0)
327: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_start_bal,
324: ra.gl_date,:p_as_of_date_from)
325: * (ra.acctd_amount_applied_to +
326: NVL(ra.acctd_earned_discount_taken,0)
327: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_start_bal,
328: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
329: ra.gl_date,:p_as_of_date_to)
330: * (ra.acctd_amount_applied_to +
331: NVL(ra.acctd_earned_discount_taken,0)
332: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_end_bal
345: GROUP BY ps.customer_trx_id ';
346:
347: l_cm_ra_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) index(ra AR_RECEIVABLE_APPLICATIONS_N3) */
348: ps.customer_trx_id ,
349: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
350: ra.gl_date,:p_as_of_date_from)
351: * -1
352: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
353: + NVL(ra.unearned_discount_taken,0))) start_bal,
350: ra.gl_date,:p_as_of_date_from)
351: * -1
352: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
353: + NVL(ra.unearned_discount_taken,0))) start_bal,
354: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
355: ra.gl_date,:p_as_of_date_to)
356: * -1
357: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
358: + NVL(ra.unearned_discount_taken,0))) end_bal,
355: ra.gl_date,:p_as_of_date_to)
356: * -1
357: * ( ra.amount_applied + NVL(ra.earned_discount_taken,0)
358: + NVL(ra.unearned_discount_taken,0))) end_bal,
359: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
360: ra.gl_date,:p_as_of_date_from)
361: * -1
362: * ra.acctd_amount_applied_from ) acctd_start_bal,
363: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
359: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
360: ra.gl_date,:p_as_of_date_from)
361: * -1
362: * ra.acctd_amount_applied_from ) acctd_start_bal,
363: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
364: ra.gl_date,:p_as_of_date_to)
365: * -1
366: * ra.acctd_amount_applied_from ) acctd_end_bal
367: FROM '|| l_ps_table ||' ps,
380: GROUP BY ps.customer_trx_id ';
381:
382: l_adj_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
383: ps.customer_trx_id,
384: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
385: adj.gl_date,:p_as_of_date_from)
386: * adj.amount) start_bal,
387: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
388: adj.gl_date,:p_as_of_date_to)
383: ps.customer_trx_id,
384: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
385: adj.gl_date,:p_as_of_date_from)
386: * adj.amount) start_bal,
387: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
388: adj.gl_date,:p_as_of_date_to)
389: * adj.amount) end_bal ,
390: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
391: adj.gl_date,:p_as_of_date_from)
386: * adj.amount) start_bal,
387: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
388: adj.gl_date,:p_as_of_date_to)
389: * adj.amount) end_bal ,
390: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
391: adj.gl_date,:p_as_of_date_from)
392: * adj.acctd_amount) acctd_start_bal,
393: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
394: adj.gl_date,:p_as_of_date_to)
389: * adj.amount) end_bal ,
390: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
391: adj.gl_date,:p_as_of_date_from)
392: * adj.acctd_amount) acctd_start_bal,
393: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
394: adj.gl_date,:p_as_of_date_to)
395: * adj.acctd_amount) acctd_end_bal
396: FROM '||l_adj_table||' adj ,'
397: ||l_ps_table ||' ps
407: GROUP BY ps.customer_trx_id ';
408:
409: IF p_co_seg_low IS NOT NULL OR p_co_seg_high IS NOT NULL THEN
410: l_cancel_br_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
411: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
412: ath.gl_date,:p_as_of_date_from)
413: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
414: (ard.amount_cr * -1))) start_bal,
415: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
411: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
412: ath.gl_date,:p_as_of_date_from)
413: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
414: (ard.amount_cr * -1))) start_bal,
415: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
416: ath.gl_date,:p_as_of_date_to)
417: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
418: (ard.amount_cr * -1))) end_bal,
419: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
415: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
416: ath.gl_date,:p_as_of_date_to)
417: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
418: (ard.amount_cr * -1))) end_bal,
419: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
420: ath.gl_date,:p_as_of_date_from)
421: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
422: (ard.acctd_amount_cr * -1))) acctd_start_bal,
423: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
419: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
420: ath.gl_date,:p_as_of_date_from)
421: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
422: (ard.acctd_amount_cr * -1))) acctd_start_bal,
423: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
424: ath.gl_date,:p_as_of_date_to)
425: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
426: (ard.acctd_amount_cr * -1))) acctd_end_bal
427: FROM '||l_ps_table||' ps,
447: ' || l_line_org_where ||'
448: ' || company_segment_where;
449: ELSE
450: l_cancel_br_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
451: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
452: ath.gl_date,:p_as_of_date_from)
453: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
454: (ard.amount_cr * -1))) start_bal,
455: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
451: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
452: ath.gl_date,:p_as_of_date_from)
453: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
454: (ard.amount_cr * -1))) start_bal,
455: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
456: ath.gl_date,:p_as_of_date_to)
457: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
458: (ard.amount_cr * -1))) end_bal,
459: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
455: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
456: ath.gl_date,:p_as_of_date_to)
457: * decode(nvl(ard.amount_cr,0), 0, nvl(ard.amount_dr,0),
458: (ard.amount_cr * -1))) end_bal,
459: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
460: ath.gl_date,:p_as_of_date_from)
461: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
462: (ard.acctd_amount_cr * -1))) acctd_start_bal,
463: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
459: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
460: ath.gl_date,:p_as_of_date_from)
461: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
462: (ard.acctd_amount_cr * -1))) acctd_start_bal,
463: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
464: ath.gl_date,:p_as_of_date_to)
465: * decode(nvl(ard.acctd_amount_cr,0), 0, nvl(ard.acctd_amount_dr,0),
466: (ard.acctd_amount_cr * -1))) acctd_end_bal
467: FROM '||l_ps_table||' ps,
486: END IF;
487:
488: l_br_select := ' SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
489: ps.customer_trx_id ,
490: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
491: NULL,:p_as_of_date_from)
492: * ps.amount_due_remaining) start_bal,
493: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
494: NULL,:p_as_of_date_to)
489: ps.customer_trx_id ,
490: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
491: NULL,:p_as_of_date_from)
492: * ps.amount_due_remaining) start_bal,
493: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
494: NULL,:p_as_of_date_to)
495: * ps.amount_due_remaining) end_bal,
496: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
497: NULL,:p_as_of_date_from)
492: * ps.amount_due_remaining) start_bal,
493: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
494: NULL,:p_as_of_date_to)
495: * ps.amount_due_remaining) end_bal,
496: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
497: NULL,:p_as_of_date_from)
498: * ps.acctd_amount_due_remaining) acctd_start_bal,
499: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
500: NULL,:p_as_of_date_to)
495: * ps.amount_due_remaining) end_bal,
496: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
497: NULL,:p_as_of_date_from)
498: * ps.acctd_amount_due_remaining) acctd_start_bal,
499: sum(ar_calc_aging.begin_or_end_bal(gl_date,gl_date_closed,
500: NULL,:p_as_of_date_to)
501: * ps.acctd_amount_due_remaining) acctd_end_bal
502: FROM '||l_ps_table||' ps
503: WHERE ps.payment_schedule_id+0 > 0
508: GROUP BY ps.customer_trx_id ';
509:
510: l_br_app_select := ' SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) index(ra AR_RECEIVABLE_APPLICATIONS_N3) */
511: ps.customer_trx_id ,
512: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
513: ra.gl_date,:p_as_of_date_from)
514: *(ra.amount_applied + NVL(ra.earned_discount_taken,0)
515: + NVL(ra.unearned_discount_taken,0))) start_bal,
516: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
512: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
513: ra.gl_date,:p_as_of_date_from)
514: *(ra.amount_applied + NVL(ra.earned_discount_taken,0)
515: + NVL(ra.unearned_discount_taken,0))) start_bal,
516: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
517: ra.gl_date,:p_as_of_date_to)
518: *(ra.amount_applied + NVL(ra.earned_discount_taken,0)
519: + NVL(ra.unearned_discount_taken,0))) end_bal,
520: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
516: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
517: ra.gl_date,:p_as_of_date_to)
518: *(ra.amount_applied + NVL(ra.earned_discount_taken,0)
519: + NVL(ra.unearned_discount_taken,0))) end_bal,
520: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
521: ra.gl_date,:p_as_of_date_from)
522: *(ra.acctd_amount_applied_to + NVL(ra.acctd_earned_discount_taken,0)
523: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_start_bal,
524: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
520: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
521: ra.gl_date,:p_as_of_date_from)
522: *(ra.acctd_amount_applied_to + NVL(ra.acctd_earned_discount_taken,0)
523: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_start_bal,
524: sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
525: ra.gl_date,:p_as_of_date_to)
526: *(ra.acctd_amount_applied_to + NVL(ra.acctd_earned_discount_taken,0)
527: + NVL(ra.acctd_unearned_discount_taken,0))) acctd_end_bal
528: FROM '|| l_ps_table||' ps,
540: GROUP by ps.customer_trx_id ';
541:
542: l_br_adj_select:= ' SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
543: ps.customer_trx_id,
544: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
545: adj.gl_date,:p_as_of_date_from)
546: * adj.amount) start_bal,
547: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
548: adj.gl_date,:p_as_of_date_to)
543: ps.customer_trx_id,
544: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
545: adj.gl_date,:p_as_of_date_from)
546: * adj.amount) start_bal,
547: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
548: adj.gl_date,:p_as_of_date_to)
549: * adj.amount) end_bal,
550: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
551: adj.gl_date,:p_as_of_date_from)
546: * adj.amount) start_bal,
547: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
548: adj.gl_date,:p_as_of_date_to)
549: * adj.amount) end_bal,
550: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
551: adj.gl_date,:p_as_of_date_from)
552: * adj.acctd_amount) acctd_start_bal,
553: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
554: adj.gl_date,:p_as_of_date_to)
549: * adj.amount) end_bal,
550: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
551: adj.gl_date,:p_as_of_date_from)
552: * adj.acctd_amount) acctd_start_bal,
553: -sum(ar_calc_aging.begin_or_end_bal(ps.gl_date,ps.gl_date_closed,
554: adj.gl_date,:p_as_of_date_to)
555: * adj.acctd_amount) acctd_end_bal
556: FROM '|| l_adj_table ||' adj,
557: '|| l_ps_table ||' ps
567: GROUP BY ps.customer_trx_id ';
568:
569: IF p_co_seg_low IS NOT NULL OR p_co_seg_high IS NOT NULL THEN
570: l_unapp_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
571: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
572: NULL,:p_as_of_date_from)
573: * ra.amount_applied) ,0 ) start_bal,
574: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
575: NULL,:p_as_of_date_to)
570: l_unapp_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
571: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
572: NULL,:p_as_of_date_from)
573: * ra.amount_applied) ,0 ) start_bal,
574: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
575: NULL,:p_as_of_date_to)
576: * ra.amount_applied) ,0) end_bal,
577: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
578: NULL,:p_as_of_date_from)
573: * ra.amount_applied) ,0 ) start_bal,
574: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
575: NULL,:p_as_of_date_to)
576: * ra.amount_applied) ,0) end_bal,
577: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
578: NULL,:p_as_of_date_from)
579: * ra.acctd_amount_applied_from) ,0 ) acctd_start_bal,
580: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
581: NULL,:p_as_of_date_to)
576: * ra.amount_applied) ,0) end_bal,
577: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
578: NULL,:p_as_of_date_from)
579: * ra.acctd_amount_applied_from) ,0 ) acctd_start_bal,
580: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
581: NULL,:p_as_of_date_to)
582: * ra.acctd_amount_applied_from) ,0) acctd_end_bal
583: FROM '|| l_ps_table ||' ps,
584: '|| l_ra_table ||' ra,
595: ' || l_ra_org_where || '
596: ' || company_segment_where;
597: ELSE
598: l_unapp_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
599: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
600: NULL,:p_as_of_date_from)
601: * ra.amount_applied) ,0 ) start_bal,
602: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
603: NULL,:p_as_of_date_to)
598: l_unapp_select := 'SELECT /*+ index(ps AR_PAYMENT_SCHEDULES_N18) */
599: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
600: NULL,:p_as_of_date_from)
601: * ra.amount_applied) ,0 ) start_bal,
602: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
603: NULL,:p_as_of_date_to)
604: * ra.amount_applied) ,0) end_bal,
605: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
606: NULL,:p_as_of_date_from)
601: * ra.amount_applied) ,0 ) start_bal,
602: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
603: NULL,:p_as_of_date_to)
604: * ra.amount_applied) ,0) end_bal,
605: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
606: NULL,:p_as_of_date_from)
607: * ra.acctd_amount_applied_from) ,0 ) acctd_start_bal,
608: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
609: NULL,:p_as_of_date_to)
604: * ra.amount_applied) ,0) end_bal,
605: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
606: NULL,:p_as_of_date_from)
607: * ra.acctd_amount_applied_from) ,0 ) acctd_start_bal,
608: NVL(-sum(ar_calc_aging.begin_or_end_bal(ra.gl_date,gl_date_closed,
609: NULL,:p_as_of_date_to)
610: * ra.acctd_amount_applied_from) ,0) acctd_end_bal
611: FROM '|| l_ps_table ||' ps,
612: '|| l_ra_table ||' ra
1089:
1090: -- For Zero Amount Transactions , sometimes the acctd_amount is
1091: -- derived as 0.01 or 0.02.
1092:
1093: IF NVL(ar_calc_aging.ca_sob_type,'P') = 'P'
1094: THEN
1095: SELECT NVL(SUM(NVL(acctd_amount,0)),0)
1096: INTO l_rounding_diff
1097: FROM ra_cust_trx_line_gl_dist
1864: l_org_name VARCHAR2(10000);
1865: l_br_flag VARCHAR2(1);
1866: BEGIN
1867:
1868: ar_calc_aging.g_reporting_entity_id := p_reporting_entity_id;
1869:
1870: IF NVL(ar_calc_aging.ca_sob_type,'P') = 'P' THEN
1871: l_sysparam_table := 'ar_system_parameters ';
1872: ELSE
1866: BEGIN
1867:
1868: ar_calc_aging.g_reporting_entity_id := p_reporting_entity_id;
1869:
1870: IF NVL(ar_calc_aging.ca_sob_type,'P') = 'P' THEN
1871: l_sysparam_table := 'ar_system_parameters ';
1872: ELSE
1873: l_sysparam_table := 'ar_system_parameters_all_mrc_v ';
1874: END IF;
1877:
1878: l_sysparam_where := XLA_MO_REPORTING_API.Get_Predicate('param',null);
1879:
1880: l_sysparam_where := replace(l_sysparam_where,
1881: ':p_reporting_entity_id','ar_calc_aging.get_reporting_entity_id()');
1882:
1883: l_select_stmt := 'SELECT sob.name sob_name,
1884: sob.currency_code functional_currency,
1885: sob.chart_of_accounts_id ,
1938: p_bills_receivable_flag := br_enabled_flag;
1939:
1940: END get_report_heading;
1941:
1942: END ar_calc_aging ;