DBA Data[Home] [Help]

PACKAGE BODY: APPS.ISC_DBI_BACKLOG_PDUE_PKG

Source


1 PACKAGE BODY ISC_DBI_BACKLOG_PDUE_PKG AS
2 /* $Header: ISCRGA2B.pls 120.0 2005/05/25 17:29:57 appldev noship $ */
3 
4 PROCEDURE Get_Sql (	p_param		IN		BIS_PMV_PAGE_PARAMETER_TBL,
5 			x_custom_sql	OUT NOCOPY	VARCHAR2,
6 			x_custom_output	OUT NOCOPY	BIS_QUERY_ATTRIBUTES_TBL) IS
7 
8   l_stmt			VARCHAR2(32000);
9   l_measures			VARCHAR2(10000);
10   l_select_stmt			VARCHAR2(10000);
11   l_union_select_stmt		VARCHAR2(10000);
12   l_union_group_by_stmt		VARCHAR2(10000);
13   l_inner_select_stmt		VARCHAR2(10000);
14   l_where_stmt			VARCHAR2(10000);
15   l_mv1				VARCHAR2(100);
16   l_mv2				VARCHAR2(100);
17   l_mv_book			VARCHAR2(100);
18   l_mv_fulf			VARCHAR2(100);
19   l_flags_where			VARCHAR2(1000);
20   l_flags_where2		VARCHAR2(1000);
21   l_inv_org			VARCHAR2(10000);
22   l_inv_org_where		VARCHAR2(10000);
23   l_prod			VARCHAR2(10000);
24   l_prod_where			VARCHAR2(10000);
25   l_prod_cat			VARCHAR2(10000);
26   l_prod_cat_from		VARCHAR2(10000);
27   l_prod_cat_where		VARCHAR2(10000);
28   l_cust			VARCHAR2(10000);
29   l_cust_where			VARCHAR2(10000);
30   l_curr			VARCHAR2(10000);
31   l_curr_suffix			VARCHAR2(120);
32   l_view_by			VARCHAR2(120);
33   l_lang			VARCHAR2(10);
34   l_item_cat_flag		NUMBER;
35   l_cust_flag			NUMBER;
36   l_custom_rec			BIS_QUERY_ATTRIBUTES;
37 
38 BEGIN
39 
40   l_lang := userenv('LANG');
41 
42   FOR i IN 1..p_param.COUNT
43   LOOP
44     IF (p_param(i).parameter_name = 'CURRENCY+FII_CURRENCIES')
45       THEN l_curr := p_param(i).parameter_id;
46     END IF;
47 
48     IF (p_param(i).parameter_name = 'ORGANIZATION+ORGANIZATION')
49       THEN l_inv_org := p_param(i).parameter_value;
50     END IF;
51 
52     IF (p_param(i).parameter_name = 'ITEM+ENI_ITEM_VBH_CAT')
53       THEN l_prod_cat := p_param(i).parameter_value;
54     END IF;
55 
56     IF (p_param(i).parameter_name = 'ITEM+ENI_ITEM_ORG')
57       THEN l_prod := p_param(i).parameter_value;
58     END IF;
59 
60     IF (p_param(i).parameter_name = 'CUSTOMER+FII_CUSTOMERS')
61       THEN l_cust := p_param(i).parameter_value;
62     END IF;
63 
64     IF (p_param(i).parameter_name = 'VIEW_BY')
65       THEN l_view_by := p_param(i).parameter_value;
66     END IF;
67   END LOOP;
68 
69   IF (l_curr = '''FII_GLOBAL1''')
70     THEN l_curr_suffix := 'g';
71   ELSIF (l_curr = '''FII_GLOBAL2''')
72     THEN l_curr_suffix := 'g1';
73     ELSE l_curr_suffix := 'f';
74   END IF;
75 
76   IF (l_inv_org IS NULL OR l_inv_org = 'All')
77     THEN l_inv_org_where := '
78 	AND (EXISTS
79 		(SELECT 1
80 		FROM org_access o
81 		WHERE o.responsibility_id = fnd_global.resp_id
82 		AND o.resp_application_id = fnd_global.resp_appl_id
83 		AND o.organization_id = fact.inv_org_id)
84 	OR EXISTS
85 		(SELECT 1
86 		FROM mtl_parameters org
87 		WHERE org.organization_id = fact.inv_org_id
88 		AND NOT EXISTS
89 			(SELECT 1
90 			FROM org_access ora
91 			WHERE org.organization_id = ora.organization_id)))';
92     ELSE l_inv_org_where := '
93 	    AND fact.inv_org_id = &ORGANIZATION+ORGANIZATION';
94   END IF;
95 
96   IF (l_prod_cat IS NULL OR l_prod_cat = 'All')
97     THEN
98       IF (l_view_by = 'ITEM+ENI_ITEM_VBH_CAT')
99 	THEN
100 	  l_prod_cat_from := ',
101 		ENI_DENORM_HIERARCHIES		eni_cat,
102 		MTL_DEFAULT_CATEGORY_SETS	mdcs';
103 	  l_prod_cat_where := '
104 	    AND fact.item_category_id = eni_cat.child_id
105 	    AND eni_cat.top_node_flag = ''Y''
106 	    AND	eni_cat.dbi_flag = ''Y''
107 	    AND eni_cat.object_type = ''CATEGORY_SET''
108 	    AND	eni_cat.object_id = mdcs.category_set_id
109 	    AND	mdcs.functional_area_id = 11';
110 	ELSE
111 	  l_prod_cat_from := '';
112 	  l_prod_cat_where := '';
113       END IF;
114     ELSE
115       l_prod_cat_from := ',
116 		ENI_DENORM_HIERARCHIES		eni_cat,
117 		MTL_DEFAULT_CATEGORY_SETS	mdcs';
118       l_prod_cat_where := '
119 	    AND fact.item_category_id = eni_cat.child_id
120 	    AND eni_cat.parent_id IN (&ITEM+ENI_ITEM_VBH_CAT)
121 	    AND	eni_cat.dbi_flag = ''Y''
122 	    AND	eni_cat.object_type = ''CATEGORY_SET''
123 	    AND eni_cat.object_id = mdcs.category_set_id
124 	    AND	mdcs.functional_area_id = 11';
125   END IF;
126 
127   IF (l_prod IS NULL OR l_prod = 'All')
128     THEN l_prod_where := '';
129     ELSE l_prod_where := '
130 	    AND fact.item_id IN (&ITEM+ENI_ITEM_ORG)';
131   END IF;
132 
133   IF (l_cust IS NULL OR l_cust = 'All')
134     THEN
135       l_cust_where := '';
136       IF (l_view_by = 'CUSTOMER+FII_CUSTOMERS')
137         THEN l_cust_flag := 0;
138 	ELSE l_cust_flag := 1;
139       END IF;
140     ELSE
141       l_cust_where := '
142 	    AND fact.customer_id in (&CUSTOMER+FII_CUSTOMERS)';
143       l_cust_flag := 0;
144   END IF;
145 
146   IF (l_prod IS NULL OR l_prod = 'All')
147     THEN
148       IF (l_view_by = 'ITEM+ENI_ITEM_ORG')
149 	THEN l_item_cat_flag := 0; -- product
150       ELSIF (l_view_by = 'ITEM+ENI_ITEM_VBH_CAT')
151         THEN l_item_cat_flag := 1; -- category
152       ELSE
153 	IF (l_prod_cat IS NULL OR l_prod_cat = 'All')
154 	  THEN l_item_cat_flag := 3; -- all
155 	  ELSE l_item_cat_flag := 1; -- category
156 	END IF;
157       END IF;
158   ELSE
159     l_item_cat_flag := 0; -- product
160   END IF;
161 
162   l_custom_rec := BIS_PMV_PARAMETERS_PUB.Initialize_Query_Type;
163   x_custom_output := BIS_QUERY_ATTRIBUTES_TBL();
164 
165   l_measures := 'ISC_MEASURE_1,ISC_MEASURE_2,ISC_MEASURE_3,ISC_MEASURE_4,ISC_MEASURE_5,
166 	ISC_MEASURE_6,ISC_MEASURE_7,ISC_MEASURE_8,ISC_MEASURE_9,ISC_MEASURE_10,
167 	ISC_MEASURE_11,ISC_MEASURE_12,ISC_MEASURE_13,ISC_MEASURE_14,ISC_MEASURE_15,
168 	ISC_MEASURE_16,ISC_MEASURE_17,ISC_MEASURE_18,ISC_MEASURE_19,ISC_MEASURE_20,
169 	ISC_MEASURE_22,ISC_MEASURE_23';
170 
171   IF l_view_by = 'ITEM+ENI_ITEM_ORG'
172     THEN l_select_stmt := '
173  SELECT	items.value			VIEWBY,
174 	items.id			VIEWBYID,
175 	NULL				ISC_ATTRIBUTE_3, -- drill across url
176 	items.description		ISC_ATTRIBUTE_4, -- item description
177 	mtl.unit_of_measure		ISC_ATTRIBUTE_5, -- item uom
178 	'||l_measures||'
179    FROM
180 (SELECT	(rank() over (&ORDER_BY_CLAUSE nulls last, item_id)) - 1	rnk,
181 	item_id,
182 	uom,
183 	'||l_measures||'
184    FROM
185 (SELECT	c.item_id,
186 	c.uom,		';
187 	l_inner_select_stmt := '
188 		 SELECT	fact.item_id		ITEM_ID,
189 			fact.uom		UOM,';
190 	l_union_select_stmt := '
191 		 SELECT item_id			ITEM_ID,
192 			uom			UOM,';
193 	l_union_group_by_stmt := '
194 		GROUP BY item_id, uom';
195 	l_where_stmt := '
196 	ENI_ITEM_ORG_V			items,
197 	MTL_UNITS_OF_MEASURE_TL		mtl
198   WHERE a.item_id = items.id
199     AND	a.uom = mtl.uom_code
200     AND	mtl.language = :ISC_LANG
201     AND	((a.rnk between &START_INDEX and &END_INDEX) OR (&END_INDEX = -1))
202   ORDER BY rnk';
203 
204   ELSIF l_view_by = 'ORGANIZATION+ORGANIZATION'
205     THEN l_select_stmt := '
206  SELECT	org.name			VIEWBY,
207 	org.organization_id		VIEWBYID,
208 	NULL				ISC_ATTRIBUTE_3, -- drill across url
209 	NULL				ISC_ATTRIBUTE_4, -- item description
210 	NULL				ISC_ATTRIBUTE_5, -- item uom
211 	'||l_measures||'
212    FROM
213 (SELECT (rank() over (&ORDER_BY_CLAUSE nulls last, inv_org_id)) - 1	rnk,
214 	inv_org_id,
215 	'||l_measures||'
216    FROM
217 (SELECT	c.inv_org_id,	';
218 	l_inner_select_stmt := '
219 		 SELECT	fact.inv_org_id		INV_ORG_ID,';
220 	l_union_select_stmt := '
221 		 SELECT inv_org_id		INV_ORG_ID,';
222 	l_union_group_by_stmt := '
223 		GROUP BY inv_org_id';
224 	l_where_stmt := '
225 	HR_ALL_ORGANIZATION_UNITS_TL	org
226   WHERE a.inv_org_id = org.organization_id
227     AND org.language = :ISC_LANG
228     AND	((a.rnk between &START_INDEX and &END_INDEX) OR (&END_INDEX = -1))
229   ORDER BY rnk';
230 
231   ELSIF l_view_by = 'CUSTOMER+FII_CUSTOMERS'
232     THEN l_select_stmt := '
233  SELECT	cust.value			VIEWBY,
234 	cust.id				VIEWBYID,
235 	NULL				ISC_ATTRIBUTE_3, -- drill across url
236 	NULL				ISC_ATTRIBUTE_4, -- item description
237 	NULL				ISC_ATTRIBUTE_5, -- item uom
238 	'||l_measures||'
239    FROM
240 (SELECT	(rank() over (&ORDER_BY_CLAUSE nulls last, customer_id)) - 1	rnk,
241 	customer_id,
242 	'||l_measures||'
243    FROM
244 (SELECT	c.customer_id,	';
245 	l_inner_select_stmt := '
246 		 SELECT	fact.customer_id	CUSTOMER_ID,';
247 	l_union_select_stmt := '
248 		 SELECT customer_id		CUSTOMER_ID,';
249 	l_union_group_by_stmt := '
250 		GROUP BY customer_id';
251 	l_where_stmt := '
252 	FII_CUSTOMERS_V			cust
253   WHERE a.customer_id = cust.id
254     AND	((a.rnk between &START_INDEX and &END_INDEX) OR (&END_INDEX = -1))
255   ORDER BY rnk';
256 
257   ELSE -- l_view_by = 'ITEM+ENI_ITEM_VBH_CAT'
258     l_select_stmt := '
259  SELECT	ecat.value			VIEWBY,
260 	ecat.id				VIEWBYID,
261 	decode(ecat.leaf_node_flag, ''Y'',
262 		''pFunctionName=ISC_DBI_BACKLOG_PDUE&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=ITEM+ENI_ITEM_ORG&pParamIds=Y'',
263 		''pFunctionName=ISC_DBI_BACKLOG_PDUE&VIEW_BY_NAME=VIEW_BY_ID&VIEW_BY=ITEM+ENI_ITEM_VBH_CAT&pParamIds=Y'')
264 					ISC_ATTRIBUTE_3, -- drill across url
265 	NULL				ISC_ATTRIBUTE_4, -- item description
266 	NULL				ISC_ATTRIBUTE_5, -- item uom
267 	'||l_measures||'
268    FROM
269 (SELECT (rank() over (&ORDER_BY_CLAUSE nulls last, item_category_id)) - 1	rnk,
270 	item_category_id,
271 	'||l_measures||'
272    FROM
273 (SELECT	c.item_category_id,	';
274   IF (l_prod_cat IS NULL OR l_prod_cat = 'All')
275     THEN
276 	l_inner_select_stmt := '
277 		 SELECT	eni_cat.parent_id	ITEM_CATEGORY_ID,';
278     ELSE
279 	l_inner_select_stmt := '
280 		 SELECT	eni_cat.imm_child_id	ITEM_CATEGORY_ID,';
281   END IF;
282 	l_union_select_stmt := '
283 		 SELECT item_category_id	ITEM_CATEGORY_ID,';
284 	l_union_group_by_stmt := '
285 		GROUP BY item_category_id';
286 	l_where_stmt := '
287 	ENI_ITEM_VBH_NODES_V		ecat
288   WHERE a.item_category_id = ecat.id
289     AND	ecat.parent_id = ecat.child_id
290     AND	((a.rnk between &START_INDEX and &END_INDEX) OR (&END_INDEX = -1))
291   ORDER BY rnk';
292   END IF;
293 
294   IF ((l_view_by = 'ITEM+ENI_ITEM_VBH_CAT' OR l_view_by = 'ORGANIZATION+ORGANIZATION') AND
295       (l_prod IS NULL OR l_prod = 'All') AND
296       (l_cust IS NULL OR l_cust = 'All'))
297     THEN
298     	IF (l_view_by = 'ITEM+ENI_ITEM_VBH_CAT') THEN
299 	  IF (l_prod_cat IS NULL OR l_prod_cat = 'All')
300 	    THEN
301 	      l_inner_select_stmt := '
302 		 SELECT	fact.parent_id		ITEM_CATEGORY_ID,';
303 	    ELSE
304 	      l_inner_select_stmt := '
305 		 SELECT fact.imm_child_id	ITEM_CATEGORY_ID,';
306 	  END IF;
307 	END IF;
308 
309 	IF (l_prod_cat IS NULL OR l_prod_cat = 'All')
310 	  THEN
311 	    l_prod_cat_from := '';
312 	    l_prod_cat_where := '
313 		    AND	fact.top_node_flag = ''Y''';
314 	  ELSE
315 	    l_prod_cat_from := '';
316 	    l_prod_cat_where := '
317 		    AND fact.parent_id = &ITEM+ENI_ITEM_VBH_CAT';
318 	END IF;
319 	l_mv1 := 'ISC_DBI_CFM_001_MV';
320 	l_mv_book := 'ISC_DBI_CFM_009_MV';
321 	l_mv_fulf := 'ISC_DBI_CFM_011_MV';
322 	l_mv2 := 'ISC_DBI_CFM_012_MV';
323 	l_flags_where := '';
324 	l_flags_where2 := '
325 	    AND fact.inv_org_flag = 0';
326     ELSE
327 	l_mv1 := 'ISC_DBI_CFM_010_MV';
328 	l_mv_book := 'ISC_DBI_CFM_000_MV';
329 	l_mv_fulf := 'ISC_DBI_CFM_002_MV';
330 	l_mv2 := 'ISC_DBI_CFM_008_MV';
331 	l_flags_where := '
332 	    AND fact.item_cat_flag = :ISC_ITEM_CAT_FLAG
333 	    AND fact.customer_flag = :ISC_CUST_FLAG';
334 	l_flags_where2 := '
335 	    AND fact.item_cat_flag = :ISC_ITEM_CAT_FLAG
336 	    AND fact.customer_flag = :ISC_CUST_FLAG';
337   END IF;
338 
339   l_stmt := l_select_stmt || '
340 	c.curr_bklg_qty						ISC_MEASURE_1, -- bklg qty
341 	c.curr_bklg_value					ISC_MEASURE_2, -- bklg
342 	(c.curr_bklg_value - c.prev_bklg_value)
343 	  / decode(c.prev_bklg_value, 0, NULL,
344 		   abs(c.prev_bklg_value)) * 100		ISC_MEASURE_3, -- bklg change
345 	c.curr_bklg_value
346 	  / decode(sum(c.curr_bklg_value) over (), 0, NULL,
347 		   sum(c.curr_bklg_value) over ()) * 100	ISC_MEASURE_4, -- bklg % of total
348 	c.curr_pdue_qty						ISC_MEASURE_5, -- pdue qty
349 	c.curr_pdue_value					ISC_MEASURE_6, -- pdue
350 	(c.curr_pdue_value - c.prev_pdue_value)
351 	  / decode(c.prev_pdue_value, 0, NULL,
352 		   abs(c.prev_pdue_value)) * 100		ISC_MEASURE_7, -- pdue change
353 	c.curr_pdue_value
354 	  / decode(sum(c.curr_pdue_value) over (), 0, NULL,
355 		   sum(c.curr_pdue_value) over ()) * 100	ISC_MEASURE_8, -- pdue % of total
356 	sum(c.curr_bklg_value) over ()				ISC_MEASURE_9, -- gd total bklg
357 	(sum(c.curr_bklg_value) over () - sum(c.prev_bklg_value) over ())
358 	  / decode(sum(c.prev_bklg_value) over (), 0, NULL,
359 		   abs(sum(c.prev_bklg_value) over ())) * 100	ISC_MEASURE_10, -- gd total bklg change
360 	sum(c.curr_bklg_value) over ()
361 	  / decode(sum(c.curr_bklg_value) over (), 0, NULL,
362 		   sum(c.curr_bklg_value) over ()) * 100	ISC_MEASURE_11, -- gd total bklg % of total
363 	sum(c.curr_pdue_value) over ()				ISC_MEASURE_12, -- gd total pdue
364 	(sum(c.curr_pdue_value) over () - sum(c.prev_pdue_value) over ())
365 	  / decode(sum(c.prev_pdue_value) over (), 0, NULL,
366 		   abs(sum(c.prev_pdue_value) over ())) * 100	ISC_MEASURE_13, -- gd total pdue change
367 	sum(c.curr_pdue_value) over ()
368 	  / decode(sum(c.curr_pdue_value) over (), 0, NULL,
369 		   sum(c.curr_pdue_value) over ()) * 100	ISC_MEASURE_14, -- gd total pdue % of total
370 	c.curr_bklg_value					ISC_MEASURE_15, -- KPI bklg
371 	c.prev_bklg_value					ISC_MEASURE_16, -- KPI bklg prior
372 	c.curr_pdue_value					ISC_MEASURE_17, -- KPI pdue
373 	c.prev_pdue_value					ISC_MEASURE_18, -- KPI pdue prior
374 	sum(c.curr_bklg_value) over ()				ISC_MEASURE_19, -- gd total KPI bklg
375 	sum(c.prev_bklg_value) over ()				ISC_MEASURE_20, -- gd total KPI bklg prior
376 	sum(c.curr_pdue_value) over ()				ISC_MEASURE_22,	-- gd total KPI pdue
377 	sum(c.prev_pdue_value) over ()				ISC_MEASURE_23	-- gd.total KPI pdue prior
378 	   FROM	('||l_union_select_stmt||'
379 		sum(y_bklg_qty) + sum(book_qty_ytd)
380 		  - sum(fulf_qty_ytd)		CURR_BKLG_QTY,
381 		sum(c_y_bklg) + sum(c_book_ytd)
382 		  - sum(c_fulf_ytd)		CURR_BKLG_VALUE,
383 		sum(p_y_bklg) + sum(p_book_ytd)
384 		  - sum(p_fulf_ytd)		PREV_BKLG_VALUE,
385 		sum(curr_pdue_qty)		CURR_PDUE_QTY,
386 		sum(curr_pdue_value)		CURR_PDUE_VALUE,
387 		sum(prev_pdue_value)		PREV_PDUE_VALUE
388 	   FROM /* Compute year backlog balance */
389 		('||l_inner_select_stmt||'
390 		decode(time.report_date, &BIS_CURRENT_ASOF_DATE,
391 			fact.bklog_qty, 0)	Y_BKLG_QTY,
392 		0				BOOK_QTY_YTD,
393 		0				FULF_QTY_YTD,
394 		decode(time.report_date, &BIS_CURRENT_ASOF_DATE,
395 			fact.bklg_amt_'||l_curr_suffix||', 0)	C_Y_BKLG,
396 		decode(time.report_date, &BIS_PREVIOUS_ASOF_DATE,
397 			fact.bklg_amt_'||l_curr_suffix||', 0)	P_Y_BKLG,
398 		0				C_BOOK_YTD,
399 		0				P_BOOK_YTD,
400 		0				C_FULF_YTD,
401 		0				P_FULF_YTD,
402 		NULL				CURR_PDUE_QTY,
403 		NULL				CURR_PDUE_VALUE,
404 		NULL				PREV_PDUE_VALUE
405 	   FROM '||l_mv1||'		fact,
406 		FII_TIME_DAY			time'||l_prod_cat_from||'
407 	  WHERE time.report_date IN (&BIS_CURRENT_ASOF_DATE, &BIS_PREVIOUS_ASOF_DATE)
408 	    AND time.ent_year_start_date = fact.time_snapshot_date_id'
409 	    	||l_flags_where
410 		||l_inv_org_where
411 		||l_prod_cat_where
412 		||l_prod_where
413 		||l_cust_where||'
414 	UNION ALL /* Computer YTD net Booking */'
415 		||l_inner_select_stmt||'
416 		0				Y_BKLG_QTY,
420 		0				C_Y_BKLG,
417 		decode(cal.report_date, &BIS_CURRENT_ASOF_DATE,
418 			fact.booked_qty2, 0)	BOOK_QTY_YTD,
419 		0				FULF_QTY_YTD,
421 		0				P_Y_BKLG,
422 		decode(cal.report_date, &BIS_CURRENT_ASOF_DATE,
423 		       fact.booked_amt2_'||l_curr_suffix||', 0)	C_BOOK_YTD,
424 		decode(cal.report_date, &BIS_PREVIOUS_ASOF_DATE,
425 		       fact.booked_amt2_'||l_curr_suffix||', 0)	P_BOOK_YTD,
426 		0				C_FULF_YTD,
427 		0				P_FULF_YTD,
428 		NULL				CURR_PDUE_QTY,
429 		NULL				CURR_PDUE_VALUE,
430 		NULL				PREV_PDUE_VALUE
431 	   FROM '||l_mv_book||'		fact,
432 		FII_TIME_RPT_STRUCT_V		cal'||l_prod_cat_from||'
433 	  WHERE	cal.report_date IN (&BIS_CURRENT_ASOF_DATE, &BIS_PREVIOUS_ASOF_DATE)
434 	    AND fact.time_id = cal.time_id
435 	    AND fact.period_type_id = cal.period_type_id
436 	    AND bitand(cal.record_type_id, 119) = cal.record_type_id'
437 	    	||l_flags_where2
438 		||l_inv_org_where
439 		||l_prod_cat_where
440 		||l_prod_where
441 		||l_cust_where||'
442 	UNION ALL /* Computer YTD net Fulfillment */'
443 		||l_inner_select_stmt||'
444 		0				Y_BKLG_QTY,
445 		0				BOOK_QTY_YTD,
446 		decode(cal.report_date, &BIS_CURRENT_ASOF_DATE,
447 			fact.booked_qty, 0)	FULF_QTY_YTD,
448 		0				C_Y_BKLG,
449 		0				P_Y_BKLG,
450 		0				C_BOOK_YTD,
451 		0				P_BOOK_YTD,
452 		decode(cal.report_date, &BIS_CURRENT_ASOF_DATE,
453 			fact.booked_amt_'||l_curr_suffix||', 0)	C_FULF_YTD,
454 		decode(cal.report_date, &BIS_PREVIOUS_ASOF_DATE,
455 			fact.booked_amt_'||l_curr_suffix||', 0)	P_FULF_YTD,
456 		NULL				CURR_PDUE_QTY,
457 		NULL				CURR_PDUE_VALUE,
458 		NULL				PREV_PDUE_VALUE
459 	   FROM '||l_mv_fulf||'		fact,
460 		FII_TIME_RPT_STRUCT_V		cal'||l_prod_cat_from||'
461 	  WHERE	cal.report_date IN (&BIS_CURRENT_ASOF_DATE, &BIS_PREVIOUS_ASOF_DATE)
462 	    AND fact.time_id = cal.time_id
463 	    AND fact.period_type_id = cal.period_type_id
464 	    AND bitand(cal.record_type_id, 119) = cal.record_type_id'
465 	    	||l_flags_where2
466 		||l_inv_org_where
467 		||l_prod_cat_where
468 		||l_prod_where
469 		||l_cust_where||'
470 	UNION ALL'
471 		||l_inner_select_stmt||'
472 		0				Y_BKLG_QTY,
473 		0				BOOK_QTY_YTD,
474 		0				FULF_QTY_YTD,
475 		0				C_Y_BKLG,
476 		0				P_Y_BKLG,
477 		0				C_BOOK_YTD,
478 		0				P_BOOK_YTD,
479 		0				C_FULF_YTD,
480 		0				P_FULF_YTD,
481 		decode(fact.time_snapshot_date_id, a.day,
482 		       fact.pdue_qty, NULL)	CURR_PDUE_QTY,
483 		decode(fact.time_snapshot_date_id, a.day,
484 		       fact.pdue_amt_'||l_curr_suffix||', NULL)	CURR_PDUE_VALUE,
488 		   FROM	'||l_mv2||'			fact
485 		decode(fact.time_snapshot_date_id, b.day,
486 		       fact.pdue_amt_'||l_curr_suffix||', NULL)	PREV_PDUE_VALUE
487 	   FROM (SELECT max(time_snapshot_date_id)		day
489 		  WHERE	fact.time_snapshot_date_id BETWEEN &BIS_CURRENT_EFFECTIVE_START_DATE
490 						       AND &BIS_CURRENT_ASOF_DATE
491 					)	a,
492 		(SELECT max(time_snapshot_date_id)		day
493 		   FROM	'||l_mv2||'			fact
494 		  WHERE	fact.time_snapshot_date_id BETWEEN &BIS_PREVIOUS_EFFECTIVE_START_DATE
495 						       AND &BIS_PREVIOUS_ASOF_DATE
496 					)	b,
497 		'||l_mv2||'		fact'||l_prod_cat_from||'
498 	  WHERE fact.time_snapshot_date_id IN (a.day, b.day)
499 	    AND fact.late_schedule_flag = 1'
500 		||l_flags_where
501 		||l_inv_org_where
502 		||l_prod_cat_where
503 		||l_prod_where
504 		||l_cust_where||')'	-- end of A UNION ALL B
505 		||l_union_group_by_stmt||')	c))	a,'
506 		||l_where_stmt;
507 
508   x_custom_sql := l_stmt;
509 
510   l_custom_rec.attribute_name := ':ISC_ITEM_CAT_FLAG';
511   l_custom_rec.attribute_value := to_char(l_item_cat_flag);
512   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
513   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.integer_bind;
514   x_custom_output.extend;
515   x_custom_output(1) := l_custom_rec;
516 
517   l_custom_rec.attribute_name := ':ISC_CUST_FLAG';
518   l_custom_rec.attribute_value := to_char(l_cust_flag);
519   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
520   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.integer_bind;
521   x_custom_output.extend;
522   x_custom_output(2) := l_custom_rec;
523 
524   l_custom_rec.attribute_name := ':ISC_LANG';
525   l_custom_rec.attribute_value := l_lang;
529   x_custom_output(3) := l_custom_rec;
526   l_custom_Rec.attribute_type := BIS_PMV_PARAMETERS_PUB.BIND_TYPE;
527   l_custom_Rec.attribute_data_type := BIS_PMV_PARAMETERS_PUB.VARCHAR2_BIND;
528   x_custom_output.EXTEND;
530 
531 END Get_Sql;
532 
533 END ISC_DBI_BACKLOG_PDUE_PKG;