9: /* Current Inventory Status */
10: -- Outer select clause
11: FUNCTION get_curr_inv_stat_sel_clause (p_view_by_dim IN VARCHAR2,
12: p_join_tbl IN
13: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
14: RETURN VARCHAR2;
15:
16: /* Current Inventory Expiration Status */
17: -- Outer select clause
16: /* Current Inventory Expiration Status */
17: -- Outer select clause
18: FUNCTION get_curr_inv_exp_sel_clause (p_view_by_dim IN VARCHAR2,
19: p_join_tbl IN
20: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
21: RETURN VARCHAR2;
22:
23:
24: /* Inventory Days Onhand */
24: /* Inventory Days Onhand */
25: -- Outer select clause
26: FUNCTION get_inv_doh_sel_clause (p_view_by_dim IN VARCHAR2,
27: p_join_tbl IN
28: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
29: RETURN VARCHAR2;
30:
31: /****************************************
32: * Helper functions
109: l_view_by_col VARCHAR2 (120);
110: l_xtd VARCHAR2(10);
111: l_comparison_type VARCHAR2(1);
112:
113: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
114: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
115:
116: l_where_clause VARCHAR2 (2000);
117: l_mv VARCHAR2 (30);
110: l_xtd VARCHAR2(10);
111: l_comparison_type VARCHAR2(1);
112:
113: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
114: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
115:
116: l_where_clause VARCHAR2 (2000);
117: l_mv VARCHAR2 (30);
118:
134: l_view_by := NULL;
135: l_view_by_col := NULL;
136: l_xtd := NULL;
137: l_comparison_type := NULL;
138: l_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
139: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
140: l_where_clause := NULL;
141: l_mv := NULL;
142: l_aggr_level_flag := NULL;
135: l_view_by_col := NULL;
136: l_xtd := NULL;
137: l_comparison_type := NULL;
138: l_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
139: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
140: l_where_clause := NULL;
141: l_mv := NULL;
142: l_aggr_level_flag := NULL;
143: l_cur_suffix := NULL;
163: p_mv_flag_type => 'CURR_INV_EXP_LEVEL');
164:
165: -- Add the appropriate columns that need to be aggregated.
166: -- On-Hand Value. Need totals but no priors.
167: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
168: p_col_name => 'onhand_val_' || l_cur_suffix,
169: p_alias_name => 'onhand_val',
170: p_grand_total => 'Y',
171: p_prior_code =>
168: p_col_name => 'onhand_val_' || l_cur_suffix,
169: p_alias_name => 'onhand_val',
170: p_grand_total => 'Y',
171: p_prior_code =>
172: poa_dbi_util_pkg.NO_PRIORS,
173: p_to_date_type => 'NA');
174:
175: -- Expired Value. Need totals but no priors.
176: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
172: poa_dbi_util_pkg.NO_PRIORS,
173: p_to_date_type => 'NA');
174:
175: -- Expired Value. Need totals but no priors.
176: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
177: p_col_name => 'expired_val_' || l_cur_suffix,
178: p_alias_name => 'expired_val',
179: p_grand_total => 'Y',
180: p_prior_code =>
177: p_col_name => 'expired_val_' || l_cur_suffix,
178: p_alias_name => 'expired_val',
179: p_grand_total => 'Y',
180: p_prior_code =>
181: poa_dbi_util_pkg.NO_PRIORS,
182: p_to_date_type => 'NA');
183:
184: -- Get the quantities also.
185: -- On-Hand Quantities. No need for totals and priors.
182: p_to_date_type => 'NA');
183:
184: -- Get the quantities also.
185: -- On-Hand Quantities. No need for totals and priors.
186: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
187: p_col_name => 'onhand_qty',
188: p_alias_name => 'onhand_qty',
189: p_grand_total => 'N',
190: p_prior_code =>
187: p_col_name => 'onhand_qty',
188: p_alias_name => 'onhand_qty',
189: p_grand_total => 'N',
190: p_prior_code =>
191: poa_dbi_util_pkg.NO_PRIORS,
192: p_to_date_type => 'NA');
193:
194: -- Expired Quantities. No need for totals and priors.
195: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
191: poa_dbi_util_pkg.NO_PRIORS,
192: p_to_date_type => 'NA');
193:
194: -- Expired Quantities. No need for totals and priors.
195: poa_dbi_util_pkg.add_column (p_col_tbl => l_col_tbl,
196: p_col_name => 'expired_qty',
197: p_alias_name => 'expired_qty',
198: p_grand_total => 'N',
199: p_prior_code =>
196: p_col_name => 'expired_qty',
197: p_alias_name => 'expired_qty',
198: p_grand_total => 'N',
199: p_prior_code =>
200: poa_dbi_util_pkg.NO_PRIORS,
201: p_to_date_type => 'NA');
202:
203: -- Get the filtering clause for 0/NULL rows
204: l_filter_clause := get_curr_inv_exp_filter_clause
271: -- {
272: l_filter_clause VARCHAR2 (20000);
273:
274: -- table column for filter clause
275: l_col_rec POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_REC;
276: l_col_tbl POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL;
277: -- }
278: BEGIN
279: -- {
272: l_filter_clause VARCHAR2 (20000);
273:
274: -- table column for filter clause
275: l_col_rec POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_REC;
276: l_col_tbl POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL;
277: -- }
278: BEGIN
279: -- {
280: -- initialization block
279: -- {
280: -- initialization block
281: l_filter_clause := NULL;
282: l_col_rec := NULL;
283: l_col_tbl := POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL ();
284:
285: -- Basic columns to filter out:
286: -- OPI_MEASURE3 Expired Value
287: -- OPI_MEASURE6 On-Hand Value
313:
314: END IF;
315:
316: -- generate the filter clause
317: l_filter_clause := poa_dbi_util_pkg.get_filter_where (p_cols => l_col_tbl);
318:
319: return l_filter_clause;
320: -- }
321: END get_curr_inv_exp_filter_clause;
338: 07/13/05 Dinkar Gupta Wrote Function
339: */
340: FUNCTION get_curr_inv_exp_sel_clause (p_view_by_dim IN VARCHAR2,
341: p_join_tbl IN
342: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
343: RETURN VARCHAR2
344: IS
345: -- {
346: l_sel_clause VARCHAR2 (32767);
468:
469: l_comparison_type VARCHAR2(1);
470: l_cur_suffix VARCHAR2 (5);
471:
472: l_onh_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
473: l_prod_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
474: l_ship_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
475:
476: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
469: l_comparison_type VARCHAR2(1);
470: l_cur_suffix VARCHAR2 (5);
471:
472: l_onh_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
473: l_prod_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
474: l_ship_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
475:
476: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
477:
470: l_cur_suffix VARCHAR2 (5);
471:
472: l_onh_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
473: l_prod_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
474: l_ship_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
475:
476: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
477:
478: l_onh_where_clause VARCHAR2 (2000);
472: l_onh_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
473: l_prod_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
474: l_ship_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
475:
476: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
477:
478: l_onh_where_clause VARCHAR2 (2000);
479: l_prod_where_clause VARCHAR2 (2000);
480: l_ship_where_clause VARCHAR2 (2000);
490: l_custom_rec BIS_QUERY_ATTRIBUTES;
491:
492: l_filter_clause VARCHAR2 (20000);
493:
494: l_unionall_tbl poa_dbi_util_pkg.POA_DBI_MV_TBL;
495:
496: l_per_length NUMBER;
497: -- }
498: BEGIN
505: l_view_by := NULL;
506: l_view_by_col := NULL;
507: l_xtd := NULL;
508: l_comparison_type := NULL;
509: l_onh_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
510: l_prod_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
511: l_ship_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
512: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
513: l_onh_where_clause := NULL;
506: l_view_by_col := NULL;
507: l_xtd := NULL;
508: l_comparison_type := NULL;
509: l_onh_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
510: l_prod_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
511: l_ship_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
512: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
513: l_onh_where_clause := NULL;
514: l_prod_where_clause := NULL;
507: l_xtd := NULL;
508: l_comparison_type := NULL;
509: l_onh_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
510: l_prod_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
511: l_ship_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
512: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
513: l_onh_where_clause := NULL;
514: l_prod_where_clause := NULL;
515: l_ship_where_clause := NULL;
508: l_comparison_type := NULL;
509: l_onh_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
510: l_prod_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
511: l_ship_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
512: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
513: l_onh_where_clause := NULL;
514: l_prod_where_clause := NULL;
515: l_ship_where_clause := NULL;
516: l_onh_mv := NULL;
520: l_prod_aggr_level_flag := NULL;
521: l_ship_aggr_level_flag := NULL;
522: l_cur_suffix := NULL;
523: l_filter_clause := NULL;
524: l_unionall_tbl := poa_dbi_util_pkg.POA_DBI_MV_TBL ();
525: l_per_length := 0;
526:
527: -- Process the parameters using the template package for the onhand
528: -- branch.
586:
587:
588: -- Add the appropriate columns for the onhand branch.
589: -- Onhand Quantity is needed for viewby item.
590: poa_dbi_util_pkg.add_column (p_col_tbl => l_onh_col_tbl,
591: p_col_name => 'onhand_qty',
592: p_alias_name => 'onhand_qty',
593: p_grand_total => 'N',
594: p_prior_code =>
591: p_col_name => 'onhand_qty',
592: p_alias_name => 'onhand_qty',
593: p_grand_total => 'N',
594: p_prior_code =>
595: poa_dbi_util_pkg.NO_PRIORS,
596: p_to_date_type => 'RLX');
597:
598: -- On-Hand Value. No need for totals.
599: poa_dbi_util_pkg.add_column (p_col_tbl => l_onh_col_tbl,
595: poa_dbi_util_pkg.NO_PRIORS,
596: p_to_date_type => 'RLX');
597:
598: -- On-Hand Value. No need for totals.
599: poa_dbi_util_pkg.add_column (p_col_tbl => l_onh_col_tbl,
600: p_col_name => 'onhand_value_' || l_cur_suffix,
601: p_alias_name => 'onhand_val',
602: p_grand_total => 'Y',
603: p_prior_code =>
600: p_col_name => 'onhand_value_' || l_cur_suffix,
601: p_alias_name => 'onhand_val',
602: p_grand_total => 'Y',
603: p_prior_code =>
604: poa_dbi_util_pkg.BOTH_PRIORS,
605: p_to_date_type => 'RLX');
606:
607: -- Production Consumption. No need for totals.
608: poa_dbi_util_pkg.add_column (p_col_tbl => l_prod_col_tbl,
604: poa_dbi_util_pkg.BOTH_PRIORS,
605: p_to_date_type => 'RLX');
606:
607: -- Production Consumption. No need for totals.
608: poa_dbi_util_pkg.add_column (p_col_tbl => l_prod_col_tbl,
609: p_col_name =>
610: 'prod_usage_val_' || l_cur_suffix,
611: p_alias_name => 'prod_usage_val',
612: p_grand_total => 'Y',
610: 'prod_usage_val_' || l_cur_suffix,
611: p_alias_name => 'prod_usage_val',
612: p_grand_total => 'Y',
613: p_prior_code =>
614: poa_dbi_util_pkg.BOTH_PRIORS,
615: p_to_date_type => 'RLX');
616:
617: -- Shipment Consumption. No need for totals.
618: poa_dbi_util_pkg.add_column (p_col_tbl => l_ship_col_tbl,
614: poa_dbi_util_pkg.BOTH_PRIORS,
615: p_to_date_type => 'RLX');
616:
617: -- Shipment Consumption. No need for totals.
618: poa_dbi_util_pkg.add_column (p_col_tbl => l_ship_col_tbl,
619: p_col_name =>
620: 'cogs_val_' || l_cur_suffix,
621: p_alias_name => 'cogs_val',
622: p_grand_total => 'Y',
620: 'cogs_val_' || l_cur_suffix,
621: p_alias_name => 'cogs_val',
622: p_grand_total => 'Y',
623: p_prior_code =>
624: poa_dbi_util_pkg.BOTH_PRIORS,
625: p_to_date_type => 'RLX');
626:
627: -- Get the filtering clause
628: l_filter_clause := get_inv_doh_filter_clause (p_view_by_dim => l_view_by);
688: p_start_pos => 1,
689: p_num_times => 2);
690:
691: -- Get bind variables for the rolling period reports.
692: poa_dbi_util_pkg.get_custom_status_binds
693: (x_custom_output => x_custom_output);
694: poa_dbi_util_pkg.get_custom_rolling_binds
695: (p_custom_output => x_custom_output,
696: p_xtd => l_xtd);
690:
691: -- Get bind variables for the rolling period reports.
692: poa_dbi_util_pkg.get_custom_status_binds
693: (x_custom_output => x_custom_output);
694: poa_dbi_util_pkg.get_custom_rolling_binds
695: (p_custom_output => x_custom_output,
696: p_xtd => l_xtd);
697:
698: -- Aggregation level flags
759: -- {
760: l_filter_clause VARCHAR2 (20000);
761:
762: -- table column for filter clause
763: l_col_rec POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_REC;
764: l_col_tbl POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL;
765: -- }
766: BEGIN
767: -- {
760: l_filter_clause VARCHAR2 (20000);
761:
762: -- table column for filter clause
763: l_col_rec POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_REC;
764: l_col_tbl POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL;
765: -- }
766: BEGIN
767: -- {
768: -- initialization block
767: -- {
768: -- initialization block
769: l_filter_clause := NULL;
770: l_col_rec := NULL;
771: l_col_tbl := POA_DBI_UTIL_PKG.POA_DBI_FLEX_FILTER_TBL ();
772:
773: -- Basic columns to filter out:
774: -- Cannot use OPI_MEASURE10/OPI_MEASURE11 because they are
775: -- computed in outer clause
839:
840: END IF;
841:
842: -- generate the filter clause
843: l_filter_clause := poa_dbi_util_pkg.get_filter_where (p_cols => l_col_tbl);
844:
845: return l_filter_clause;
846: -- }
847: END get_inv_doh_filter_clause;
864: 07/13/05 Dinkar Gupta Wrote Function
865: */
866: FUNCTION get_inv_doh_sel_clause (p_view_by_dim IN VARCHAR2,
867: p_join_tbl IN
868: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
869: RETURN VARCHAR2
870: IS
871: -- {
872: l_sel_clause VARCHAR2 (32767);
1139: l_view_by_col VARCHAR2 (120);
1140: l_xtd VARCHAR2(10);
1141: l_comparison_type VARCHAR2(1);
1142:
1143: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
1144: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
1145: l_in_join_tbl poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL;
1146: l_in_join_rec poa_dbi_util_pkg.POA_DBI_IN_JOIN_REC;
1147:
1140: l_xtd VARCHAR2(10);
1141: l_comparison_type VARCHAR2(1);
1142:
1143: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
1144: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
1145: l_in_join_tbl poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL;
1146: l_in_join_rec poa_dbi_util_pkg.POA_DBI_IN_JOIN_REC;
1147:
1148: l_where_clause VARCHAR2 (2000);
1141: l_comparison_type VARCHAR2(1);
1142:
1143: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
1144: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
1145: l_in_join_tbl poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL;
1146: l_in_join_rec poa_dbi_util_pkg.POA_DBI_IN_JOIN_REC;
1147:
1148: l_where_clause VARCHAR2 (2000);
1149: l_mv VARCHAR2 (30);
1142:
1143: l_col_tbl poa_dbi_util_pkg.POA_DBI_COL_TBL;
1144: l_join_tbl poa_dbi_util_pkg.POA_DBI_JOIN_TBL;
1145: l_in_join_tbl poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL;
1146: l_in_join_rec poa_dbi_util_pkg.POA_DBI_IN_JOIN_REC;
1147:
1148: l_where_clause VARCHAR2 (2000);
1149: l_mv VARCHAR2 (30);
1150:
1175: l_view_by := NULL;
1176: l_view_by_col := NULL;
1177: l_xtd := NULL;
1178: l_comparison_type := NULL;
1179: l_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
1180: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
1181: l_in_join_tbl := poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL ();
1182: l_in_join_rec := NULL;
1183: l_where_clause := NULL;
1176: l_view_by_col := NULL;
1177: l_xtd := NULL;
1178: l_comparison_type := NULL;
1179: l_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
1180: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
1181: l_in_join_tbl := poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL ();
1182: l_in_join_rec := NULL;
1183: l_where_clause := NULL;
1184: l_mv := NULL;
1177: l_xtd := NULL;
1178: l_comparison_type := NULL;
1179: l_col_tbl := poa_dbi_util_pkg.POA_DBI_COL_TBL ();
1180: l_join_tbl := poa_dbi_util_pkg.POA_DBI_JOIN_TBL ();
1181: l_in_join_tbl := poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL ();
1182: l_in_join_rec := NULL;
1183: l_where_clause := NULL;
1184: l_mv := NULL;
1185: l_aggr_level_flag := NULL;
1739: 07/13/05 Dinkar Gupta Wrote Function
1740: */
1741: FUNCTION get_curr_inv_stat_sel_clause (p_view_by_dim IN VARCHAR2,
1742: p_join_tbl IN
1743: poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
1744: RETURN VARCHAR2
1745: IS
1746: -- {
1747: l_sel_clause VARCHAR2 (32767);