28:
29: BEGIN
30:
31: -- init all variables
32: fii_ar_util_pkg.reset_globals;
33:
34: -- get global variables assigned
35: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
36:
31: -- init all variables
32: fii_ar_util_pkg.reset_globals;
33:
34: -- get global variables assigned
35: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
36:
37: -- populate dimension combinations in global temp tables
38: fii_ar_util_pkg.populate_summary_gt_tables;
39:
34: -- get global variables assigned
35: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
36:
37: -- populate dimension combinations in global temp tables
38: fii_ar_util_pkg.populate_summary_gt_tables;
39:
40: -- get viewby id (party_id, cust_account_id, org_id, collector_id)
41: -- fii_ar_util_pkg.get_viewby_id(l_viewby_id);
42: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
37: -- populate dimension combinations in global temp tables
38: fii_ar_util_pkg.populate_summary_gt_tables;
39:
40: -- get viewby id (party_id, cust_account_id, org_id, collector_id)
41: -- fii_ar_util_pkg.get_viewby_id(l_viewby_id);
42: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
43: -- generate where clause for party_id
44: IF (fii_ar_util_pkg.g_party_id <> '-111' OR
45: fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMERS') THEN
40: -- get viewby id (party_id, cust_account_id, org_id, collector_id)
41: -- fii_ar_util_pkg.get_viewby_id(l_viewby_id);
42: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
43: -- generate where clause for party_id
44: IF (fii_ar_util_pkg.g_party_id <> '-111' OR
45: fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMERS') THEN
46: l_party_where := ' AND f.party_id = t.party_id ';
47: END IF;
48:
41: -- fii_ar_util_pkg.get_viewby_id(l_viewby_id);
42: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
43: -- generate where clause for party_id
44: IF (fii_ar_util_pkg.g_party_id <> '-111' OR
45: fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMERS') THEN
46: l_party_where := ' AND f.party_id = t.party_id ';
47: END IF;
48:
49: -- generate where clause for parent_party_id
46: l_party_where := ' AND f.party_id = t.party_id ';
47: END IF;
48:
49: -- generate where clause for parent_party_id
50: IF(fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMERS') THEN
51: l_parent_party_where := 'AND f.parent_party_id = t.parent_party_id ';
52: END IF;
53:
54: -- generate where clause for collector_id
51: l_parent_party_where := 'AND f.parent_party_id = t.parent_party_id ';
52: END IF;
53:
54: -- generate where clause for collector_id
55: IF (fii_ar_util_pkg.g_collector_id <> '-111' OR
56: fii_ar_util_pkg.g_view_by = 'FII_COLLECTOR+FII_COLLECTOR') THEN
57: l_collector_where := 'AND f.collector_id = t.collector_id ';
58: END IF;
59:
52: END IF;
53:
54: -- generate where clause for collector_id
55: IF (fii_ar_util_pkg.g_collector_id <> '-111' OR
56: fii_ar_util_pkg.g_view_by = 'FII_COLLECTOR+FII_COLLECTOR') THEN
57: l_collector_where := 'AND f.collector_id = t.collector_id ';
58: END IF;
59:
60: -- generate where clause for cust_account_id
57: l_collector_where := 'AND f.collector_id = t.collector_id ';
58: END IF;
59:
60: -- generate where clause for cust_account_id
61: IF (fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMER_ACCOUNTS') THEN
62: l_cust_acct_where := 'AND f.cust_account_id = t.cust_account_id';
63: l_gt_hint := ' leading(gt.gt) cardinality(gt.gt 1) ';
64: END IF;
65:
64: END IF;
65:
66:
67: -- handle drills
68: IF (fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMERS' AND fii_ar_util_pkg.g_is_hierarchical_flag='Y') THEN
69:
70: l_self := ' t.is_self_flag,';
71: l_open_drill :=
72: ' DECODE(FII_AR_ORS_OPEN_REC_AMT,0,'''', DECODE(inline_view.is_leaf_flag, ''Y'',''pFunctionName=FII_AR_OPEN_REC_DTL&VIEW_BY_NAME=VIEW_BY_ID&pParamIds=Y'',
84: ' DECODE(inline_view.is_self_flag,''Y'','''', DECODE(inline_view.is_leaf_flag, ''Y'','''',''pFunctionName=FII_AR_OPEN_REC_SUMMARY&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=VIEW_BY&pParamIds=Y'')) ';
85:
86:
87: -- Add SELF to Customer description for self nodes
88: --l_viewby:= 'DECODE(inline_view.parent_party_id,inline_view.viewby, DECODE(inline_view.is_leaf_flag, ''Y'', inline_view.viewby, inline_view.viewby '||'||'||'''('||fii_ar_util_pkg.g_self_msg||')'''||'), inline_view.viewby) ';
89: l_group_by := ' inline_view.is_self_flag, inline_view.viewby, inline_view.is_leaf_flag, inline_view.viewby_code ';
90:
91: ELSIF (fii_ar_util_pkg.g_view_by= 'FII_COLLECTOR+FII_COLLECTOR'
92: OR fii_ar_util_pkg.g_view_by = 'ORGANIZATION+FII_OPERATING_UNITS') THEN
87: -- Add SELF to Customer description for self nodes
88: --l_viewby:= 'DECODE(inline_view.parent_party_id,inline_view.viewby, DECODE(inline_view.is_leaf_flag, ''Y'', inline_view.viewby, inline_view.viewby '||'||'||'''('||fii_ar_util_pkg.g_self_msg||')'''||'), inline_view.viewby) ';
89: l_group_by := ' inline_view.is_self_flag, inline_view.viewby, inline_view.is_leaf_flag, inline_view.viewby_code ';
90:
91: ELSIF (fii_ar_util_pkg.g_view_by= 'FII_COLLECTOR+FII_COLLECTOR'
92: OR fii_ar_util_pkg.g_view_by = 'ORGANIZATION+FII_OPERATING_UNITS') THEN
93: IF (fii_ar_util_pkg.g_party_id <> '-111') THEN
94: l_open_drill :=
95: ' DECODE(FII_AR_ORS_OPEN_REC_AMT,0,'''',''pFunctionName=FII_AR_OPEN_REC_SUMMARY&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=CUSTOMER+FII_CUSTOMER_ACCOUNTS&pParamIds=Y'') ';
88: --l_viewby:= 'DECODE(inline_view.parent_party_id,inline_view.viewby, DECODE(inline_view.is_leaf_flag, ''Y'', inline_view.viewby, inline_view.viewby '||'||'||'''('||fii_ar_util_pkg.g_self_msg||')'''||'), inline_view.viewby) ';
89: l_group_by := ' inline_view.is_self_flag, inline_view.viewby, inline_view.is_leaf_flag, inline_view.viewby_code ';
90:
91: ELSIF (fii_ar_util_pkg.g_view_by= 'FII_COLLECTOR+FII_COLLECTOR'
92: OR fii_ar_util_pkg.g_view_by = 'ORGANIZATION+FII_OPERATING_UNITS') THEN
93: IF (fii_ar_util_pkg.g_party_id <> '-111') THEN
94: l_open_drill :=
95: ' DECODE(FII_AR_ORS_OPEN_REC_AMT,0,'''',''pFunctionName=FII_AR_OPEN_REC_SUMMARY&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=CUSTOMER+FII_CUSTOMER_ACCOUNTS&pParamIds=Y'') ';
96:
89: l_group_by := ' inline_view.is_self_flag, inline_view.viewby, inline_view.is_leaf_flag, inline_view.viewby_code ';
90:
91: ELSIF (fii_ar_util_pkg.g_view_by= 'FII_COLLECTOR+FII_COLLECTOR'
92: OR fii_ar_util_pkg.g_view_by = 'ORGANIZATION+FII_OPERATING_UNITS') THEN
93: IF (fii_ar_util_pkg.g_party_id <> '-111') THEN
94: l_open_drill :=
95: ' DECODE(FII_AR_ORS_OPEN_REC_AMT,0,'''',''pFunctionName=FII_AR_OPEN_REC_SUMMARY&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=CUSTOMER+FII_CUSTOMER_ACCOUNTS&pParamIds=Y'') ';
96:
97: l_pdue_drill :=
113: l_cust_drill := '''''';
114:
115: l_group_by := 'inline_view.viewby, inline_view.viewby_code ';
116:
117: ELSE -- this is the case of (fii_ar_util_pkg.g_view_by = 'CUSTOMER+FII_CUSTOMER_ACCOUNTS')
118:
119: l_party_select := ' t.party_id,';
120: l_party_group_by := ' t.party_id, ';
121:
134:
135: END IF;
136:
137:
138: IF INSTR(fii_ar_util_pkg.g_order_by,',') <> 0 THEN
139:
140: /*This means no particular sort column is selected in the report
141: So sort on the default column in descending order
142: NVL is added to make sure the null values appear last*/
142: NVL is added to make sure the null values appear last*/
143:
144: l_order_by := 'ORDER BY NVL(FII_AR_ORS_OPEN_REC_AMT, -999999999) DESC';
145:
146: ELSIF instr(fii_ar_util_pkg.g_order_by, ' DESC') <> 0 THEN
147:
148: /*This means a particular sort column is clicked to have descending order
149: in which case we would want all the null values to appear last in the
150: report so add an NVL to that column*/
148: /*This means a particular sort column is clicked to have descending order
149: in which case we would want all the null values to appear last in the
150: report so add an NVL to that column*/
151:
152: l_order_column := substr(fii_ar_util_pkg.g_order_by,1,instr(fii_ar_util_pkg.g_order_by, ' DESC'));
153: l_order_by := 'ORDER BY NVL('|| l_order_column ||', -999999999) DESC';
154:
155: ELSE
156:
198: '|| l_open_drill ||' FII_AR_ORS_OPEN_DRILL,
199: '|| l_pdue_drill ||' FII_AR_ORS_PDUE_DRILL,
200: '|| l_curr_drill ||' FII_AR_ORS_CURR_DRILL
201: FROM (
202: SELECT /*+ INDEX(f FII_AR_NET_REC'|| fii_ar_util_pkg.g_cust_suffix ||'_mv_N1)*/
203: t.is_leaf_flag,
204: '||l_self||'
205: '||l_party_select||'
206: t.viewby,
226: ELSE (sum(past_due_open_amount)
227: * to_number(to_char(&BIS_CURRENT_ASOF_DATE ,''J''))
228: - sum(wtd_DDSO_due_num)) / abs(sum(past_due_open_amount))
229: END FII_AR_ORS_PDUE_REC_WTD_DDSO
230: FROM FII_AR_NET_REC'||fii_ar_util_pkg.g_cust_suffix ||'_mv'|| fii_ar_util_pkg.g_curr_suffix ||' f,
231: (
232: SELECT /*+ no_merge '||l_gt_hint|| ' */ *
233: FROM fii_time_structures cal,
234: '||fii_ar_util_pkg.get_from_statement||' gt
230: FROM FII_AR_NET_REC'||fii_ar_util_pkg.g_cust_suffix ||'_mv'|| fii_ar_util_pkg.g_curr_suffix ||' f,
231: (
232: SELECT /*+ no_merge '||l_gt_hint|| ' */ *
233: FROM fii_time_structures cal,
234: '||fii_ar_util_pkg.get_from_statement||' gt
235: WHERE report_date = :ASOF_DATE
236: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
237: AND ' ||fii_ar_util_pkg.get_where_statement||'
238: ) t
233: FROM fii_time_structures cal,
234: '||fii_ar_util_pkg.get_from_statement||' gt
235: WHERE report_date = :ASOF_DATE
236: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
237: AND ' ||fii_ar_util_pkg.get_where_statement||'
238: ) t
239: WHERE f.time_id = t.time_id
240: AND f.period_type_id = t.period_type_id
241: AND f.org_id = t.org_id
238: ) t
239: WHERE f.time_id = t.time_id
240: AND f.period_type_id = t.period_type_id
241: AND f.org_id = t.org_id
242: AND '||fii_ar_util_pkg.get_mv_where_statement||' '||l_parent_party_where||l_party_where||l_collector_where|| l_cust_acct_where||'
243: GROUP BY t.is_leaf_flag, '||l_self||l_party_group_by||' t.viewby, t.viewby_code) inline_view
244: GROUP BY '||l_group_by||',
245: FII_AR_ORS_OPEN_REC_AMT,
246: FII_AR_ORS_PDUE_REC_AMT,
254: FII_AR_ORS_PDUE_REC_WTD_DDSO_N,
255: FII_AR_ORS_PDUE_REC_WTD_DDSO
256: '||l_order_by||' ';
257:
258: fii_ar_util_pkg.bind_variable(l_select, p_page_parameter_tbl, open_rec_sum_sql, open_rec_sum_output);
259:
260: END get_open_rec_sum;
261:
262: END FII_AR_OPEN_REC_SUMMARY;