67: l_order_column VARCHAR2(100);
68: l_gt_hint varchar2(500);
69: BEGIN
70: -- Reset all the global variables to NULL or to the default value
71: fii_ar_util_pkg.reset_globals;
72:
73: -- Get the parameters and set the global variables
74: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
75:
70: -- Reset all the global variables to NULL or to the default value
71: fii_ar_util_pkg.reset_globals;
72:
73: -- Get the parameters and set the global variables
74: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
75:
76: -- Retrieve values for global variables
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
73: -- Get the parameters and set the global variables
74: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
75:
76: -- Retrieve values for global variables
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
74: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
75:
76: -- Retrieve values for global variables
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
75:
76: -- Retrieve values for global variables
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
76: -- Retrieve values for global variables
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
77: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
78: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
86:
79: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
86:
87: -- Populate global temp table based on the parameters chosen
80: l_collector_id := fii_ar_util_pkg.g_collector_id;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
86:
87: -- Populate global temp table based on the parameters chosen
88: fii_ar_util_pkg.populate_summary_gt_tables;
81: l_cust_id := fii_ar_util_pkg.g_party_id;
82: l_cust_account_id := fii_ar_util_pkg.g_cust_account_id;
83: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
86:
87: -- Populate global temp table based on the parameters chosen
88: fii_ar_util_pkg.populate_summary_gt_tables;
89: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
84: l_viewby := fii_ar_util_pkg.g_view_by;
85: l_hierarchical_flag := fii_ar_util_pkg.g_is_hierarchical_flag;
86:
87: -- Populate global temp table based on the parameters chosen
88: fii_ar_util_pkg.populate_summary_gt_tables;
89: l_gt_hint := ' leading(gt) cardinality(gt 1) ';
90: -- Find out the number of bucket ranges customized for this report
91: SELECT sum(decode(bbc.range1_low, null, 0, 1) +
92: decode(bbc.range2_low, null, 0, 1) +
214: -- 3. Aging bucket X amount will drill to Past Due Receivables Aging Summary
215: -- (View by Customer Account)
216: -----------------------------------------------------------------------------
217: --Drill when View by OU or Collector
218: IF (fii_ar_util_pkg.g_party_id <> '-111') THEN
219: -- Open Receivables Amount Drilldown URL
220: l_open_rec_amt_url_1 := 'pFunctionName=FII_AR_OPEN_REC_SUMMARY&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=CUSTOMER+FII_CUSTOMER_ACCOUNTS&pParamIds=Y';
221:
222: -- Past Due Receivables Amount Drilldown URL
513:
514: ----------------------------------------------------------------
515: -- Find out the sort order column and construct the order clause
516: ----------------------------------------------------------------
517: IF (instr(fii_ar_util_pkg.g_order_by, ',') <> 0) THEN
518: -------------------------------------------------------------
519: -- This means no particular sort column is selected in the
520: -- report. Thus, sort on the default column in descending
521: -- order. NVL is added ot make sure NULL will appear last.
521: -- order. NVL is added ot make sure NULL will appear last.
522: -------------------------------------------------------------
523: l_order_by := ' ORDER BY NVL(FII_AR_PASTDUE_REC_AMT, -999999999) DESC';
524:
525: ELSIF (instr(fii_ar_util_pkg.g_order_by, ' DESC') <> 0) THEN
526: -------------------------------------------------------------
527: -- This means a particular sort column is chosen to be sorted
528: -- in descending order. Add NVL to that column so NULL will
529: -- appear last.
527: -- This means a particular sort column is chosen to be sorted
528: -- in descending order. Add NVL to that column so NULL will
529: -- appear last.
530: -------------------------------------------------------------
531: l_order_column := substr(fii_ar_util_pkg.g_order_by, 1,
532: instr(fii_ar_util_pkg.g_order_by, ' DESC'));
533: l_order_by := ' ORDER BY NVL('|| l_order_column || ', -999999999) DESC';
534: ELSE
535: -------------------------------------------------------------
528: -- in descending order. Add NVL to that column so NULL will
529: -- appear last.
530: -------------------------------------------------------------
531: l_order_column := substr(fii_ar_util_pkg.g_order_by, 1,
532: instr(fii_ar_util_pkg.g_order_by, ' DESC'));
533: l_order_by := ' ORDER BY NVL('|| l_order_column || ', -999999999) DESC';
534: ELSE
535: -------------------------------------------------------------
536: -- This means user has asked for an ascending order sort.
699: || ', NULL FII_AR_PD_BKT_AMT_DRILL_B' || i;
700: END LOOP;
701:
702: l_sqlstmt := l_sqlstmt || ' FROM (
703: SELECT /*+ INDEX(f FII_AR_NET_REC'|| fii_ar_util_pkg.g_cust_suffix ||'_mv_N1)*/
704: v.viewby VIEWBY,
705: v.viewby_code VIEWBYID,' ||
706: l_bucket_graph_sql || ',
707: sum(f.wtd_ddso_due_num) FII_AR_WEIGHTED_DDSO_G,
714: l_bucket_sql || l_cust_clause || '
715: FROM fii_ar_net_rec'||l_cust_suffix||'_mv'||l_curr_suffix||' f,
716: ( SELECT /*+ no_merge '||l_gt_hint|| ' */ *
717: FROM fii_time_structures cal, '||
718: fii_ar_util_pkg.get_from_statement ||
719: ' gt WHERE cal.report_date = :ASOF_DATE
720: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
721: AND '|| fii_ar_util_pkg.get_where_statement || ') v
722: WHERE f.time_id = v.time_id
717: FROM fii_time_structures cal, '||
718: fii_ar_util_pkg.get_from_statement ||
719: ' gt WHERE cal.report_date = :ASOF_DATE
720: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
721: AND '|| fii_ar_util_pkg.get_where_statement || ') v
722: WHERE f.time_id = v.time_id
723: AND f.period_type_id = v.period_type_id
724: AND f.org_id = v.org_id
725: AND '||fii_ar_util_pkg.get_mv_where_statement||' '|| l_where_clause ||
721: AND '|| fii_ar_util_pkg.get_where_statement || ') v
722: WHERE f.time_id = v.time_id
723: AND f.period_type_id = v.period_type_id
724: AND f.org_id = v.org_id
725: AND '||fii_ar_util_pkg.get_mv_where_statement||' '|| l_where_clause ||
726: ' GROUP BY v.viewby, v.viewby_code ' || l_cust_clause;
727:
728: -------------------------------------
729: -- Sql for the dispute amount section
744: l_dispute_bkt_sql || l_cust_clause || '
745: FROM fii_ar_disputes'||l_cust_suffix||'_mv'||l_curr_suffix||' f,
746: ( SELECT /*+ no_merge '||l_gt_hint|| ' */ *
747: FROM fii_time_structures cal, '||
748: fii_ar_util_pkg.get_from_statement ||
749: ' gt WHERE cal.report_date = :ASOF_DATE
750: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
751: AND '|| fii_ar_util_pkg.get_where_statement || ') v
752: WHERE f.time_id = v.time_id
747: FROM fii_time_structures cal, '||
748: fii_ar_util_pkg.get_from_statement ||
749: ' gt WHERE cal.report_date = :ASOF_DATE
750: AND bitand(cal.record_type_id, :BITAND_INC_TODATE) = :BITAND_INC_TODATE
751: AND '|| fii_ar_util_pkg.get_where_statement || ') v
752: WHERE f.time_id = v.time_id
753: AND f.period_type_id = v.period_type_id
754: AND f.org_id = v.org_id ' || l_where_clause ||
755: ' GROUP BY v.viewby, v.viewby_code ' || l_cust_clause || ') inline_view
756: GROUP BY viewby, viewbyid ' || l_cust_clause2
757: ||l_order_by;
758:
759: -- Bind variables so that no literal will be used in the pmv report
760: fii_ar_util_pkg.bind_variable
761: (p_sqlstmt => l_sqlstmt,
762: p_page_parameter_tbl => p_page_parameter_tbl,
763: p_sql_output => p_pastdue_rec_aging_sql,
764: p_bind_output_table => p_pastdue_rec_aging_output);
852:
853:
854: BEGIN
855: -- Reset all the global variables to NULL or to the default value
856: fii_ar_util_pkg.reset_globals;
857:
858: -- Get the parameters and set the global variables
859: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
860:
855: -- Reset all the global variables to NULL or to the default value
856: fii_ar_util_pkg.reset_globals;
857:
858: -- Get the parameters and set the global variables
859: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
860:
861: -- Populate global temp table based on the parameters chosen
862: fii_ar_util_pkg.populate_summary_gt_tables;
863:
858: -- Get the parameters and set the global variables
859: fii_ar_util_pkg.get_parameters(p_page_parameter_tbl);
860:
861: -- Populate global temp table based on the parameters chosen
862: fii_ar_util_pkg.populate_summary_gt_tables;
863:
864: -- Retrieve values for global variables
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
861: -- Populate global temp table based on the parameters chosen
862: fii_ar_util_pkg.populate_summary_gt_tables;
863:
864: -- Retrieve values for global variables
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
862: fii_ar_util_pkg.populate_summary_gt_tables;
863:
864: -- Retrieve values for global variables
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
870: l_cust_id := fii_ar_util_pkg.g_party_id;
863:
864: -- Retrieve values for global variables
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
870: l_cust_id := fii_ar_util_pkg.g_party_id;
871:
864: -- Retrieve values for global variables
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
870: l_cust_id := fii_ar_util_pkg.g_party_id;
871:
872: l_fii_user_id := FND_GLOBAL.User_Id;
865: l_as_of_date := fii_ar_util_pkg.g_as_of_date;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
870: l_cust_id := fii_ar_util_pkg.g_party_id;
871:
872: l_fii_user_id := FND_GLOBAL.User_Id;
873: l_fii_login_id := FND_GLOBAL.Login_Id;
866: l_cust_suffix := fii_ar_util_pkg.g_cust_suffix;
867: l_curr_suffix := fii_ar_util_pkg.g_curr_suffix;
868: l_itd_bitand := fii_ar_util_pkg.g_bitand_inc_todate;
869: l_collector_id := fii_ar_util_pkg.g_collector_id;
870: l_cust_id := fii_ar_util_pkg.g_party_id;
871:
872: l_fii_user_id := FND_GLOBAL.User_Id;
873: l_fii_login_id := FND_GLOBAL.Login_Id;
874:
934: -- Find out receivables aging amounts and current receivables amount
935: -- and store the info into pl/sql table l_data_rec
936: --------------------------------------------------------------------
937: l_sqlstmt :=
938: 'SELECT /*+ INDEX(f FII_AR_NET_REC'|| fii_ar_util_pkg.g_cust_suffix ||'_mv_N1)*/ ''' ||
939: l_curr_label || ''' ,''' ||
940: l_bis_bucket_rec.range1_name || ''' ,''' ||
941: l_bis_bucket_rec.range2_name || ''' ,''' ||
942: l_bis_bucket_rec.range3_name || ''' ,''' ||
955: SUM(f.past_due_bucket_7_amount)
956: FROM fii_ar_net_rec'||l_cust_suffix||'_mv'||l_curr_suffix||' f,
957: ( SELECT /*+ no_merge leading(gt) cardinality(gt 1)*/ *
958: FROM fii_time_structures cal, '||
959: fii_ar_util_pkg.get_from_statement ||
960: ' gt WHERE cal.report_date = '''||l_as_of_date||
961: ''' AND bitand(cal.record_type_id, '||l_itd_bitand||') = 512
962: AND '|| fii_ar_util_pkg.get_where_statement || ') v
963: WHERE f.time_id = v.time_id
958: FROM fii_time_structures cal, '||
959: fii_ar_util_pkg.get_from_statement ||
960: ' gt WHERE cal.report_date = '''||l_as_of_date||
961: ''' AND bitand(cal.record_type_id, '||l_itd_bitand||') = 512
962: AND '|| fii_ar_util_pkg.get_where_statement || ') v
963: WHERE f.time_id = v.time_id
964: AND f.period_type_id = v.period_type_id
965: AND f.org_id = v.org_id
966: AND '||fii_ar_util_pkg.get_mv_where_statement||' '|| l_where_clause;
962: AND '|| fii_ar_util_pkg.get_where_statement || ') v
963: WHERE f.time_id = v.time_id
964: AND f.period_type_id = v.period_type_id
965: AND f.org_id = v.org_id
966: AND '||fii_ar_util_pkg.get_mv_where_statement||' '|| l_where_clause;
967:
968: EXECUTE IMMEDIATE l_sqlstmt BULK COLLECT INTO l_data_rec;
969:
970: -----------------------------------------------------------------
1014: FROM FII_AR_REC_AGING_SUM_GT
1015: ORDER BY ord_seq desc';
1016:
1017: -- Bind variables so that no literal will be used in the pmv report
1018: fii_ar_util_pkg.bind_variable
1019: (p_sqlstmt => l_sqlstmt,
1020: p_page_parameter_tbl => p_page_parameter_tbl,
1021: p_sql_output => p_pastdue_rec_aging_sql,
1022: p_bind_output_table => p_pastdue_rec_aging_output);