DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOEUBK_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOEUBK_XMLP_PKG AS
2 /* $Header: OEXOEUBKB.pls 120.3 2008/05/05 06:39:13 dwkrishn noship $ */
3 function Item_dspFormula(inventory_item_id_L IN number,
4                         item_identifier_type_L IN VARCHAR2,
5 			 ordered_item_id_L IN NUMBER,
6                          ORGANIZATION_ID_L IN NUMBER,
7 			 ordered_item_L IN VARCHAR2) return Char is
8 v_item varchar2(2000);
9 v_description varchar2(500);
10 begin
11   if (inventory_item_id_L is null) then
12     return null;
13   end if;
14   if (item_identifier_type_L is null or item_identifier_type_L = 'INT')
15        or (p_print_description in ('I','D','F')) then
16     select sitems.concatenated_segments item,
17     	   sitems.description description
18     into   v_item,v_description
19     from   mtl_system_items_vl sitems
20     where  sitems.customer_order_enabled_flag = 'Y'
21 
22     and    nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
23     and    sitems.inventory_item_id = inventory_item_id_L;
24 /*
25          srw.reference (:p_item_flex_code);
26          srw.reference (:Item_dsp);
27          srw.reference (:p_item_structure_num);
28 --modified the use_exit to use item_flex to derive the value for
29 -- the item for FP bug 3693140
30          srw.user_exit (' FND FLEXIDVAL
31 		    CODE=":p_item_flex_code"
32 		    NUM=":p_item_structure_num"
33 		    APPL_SHORT_NAME="INV"
34 		    DATA= ":item_flex"
35 		    VALUE=":Item_dsp"
36 		    DISPLAY="ALL"'
37 		);  */
38     v_item := fnd_flex_xml_publisher_apis.process_kff_combination_1('Item_dsp', 'INV',p_item_flex_code,p_item_structure_num,ORGANIZATION_ID_L,INVENTORY_ITEM_ID_L, 'ALL', 'Y', 'VALUE');
39   elsif (item_identifier_type_L = 'CUST' and p_print_description in ('C','P','O')) then
40     select citems.customer_item_number item,
41     	   nvl(citems.customer_item_desc,sitems.description) description
42     into   v_item,v_description
43     from   mtl_customer_items citems,
44            mtl_customer_item_xrefs cxref,
45            mtl_system_items_vl sitems
46     where  citems.customer_item_id = cxref.customer_item_id
47     and    cxref.inventory_item_id = sitems.inventory_item_id
48     and    citems.customer_item_id = ordered_item_id_L
49     and    nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
50     and    sitems.inventory_item_id = inventory_item_id_L;
51 --    and    sitems.customer_order_enabled_flag = 'Y'
52 --    and    sitems.bom_item_type in (1,4)
53   elsif (p_print_description in ('C','P','O')) then
54   Begin
55     select items.cross_reference item,
56     	   nvl(items.description,sitems.description) description
57     into   v_item,v_description
58     from   mtl_cross_reference_types xtypes,
59            mtl_cross_references items,
60            mtl_system_items_vl sitems
61     where  xtypes.cross_reference_type = items.cross_reference_type
62     and    items.inventory_item_id = sitems.inventory_item_id
63     and    items.cross_reference = ordered_item_L
64     and    items.cross_reference_type = item_identifier_type_L
65     and    nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
66     and    sitems.inventory_item_id = inventory_item_id_L
67     --Bug 3433353 Being
68     and    items.org_independent_flag = 'N'
69     and    items.organization_id = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0);
70 --    and    sitems.customer_order_enabled_flag = 'Y'
71 --    and    sitems.bom_item_type in (1,4)
72     Exception When NO_DATA_FOUND Then
73     select items.cross_reference item,
74     nvl(items.description,sitems.description) description
75     into v_item,v_description
76     from mtl_cross_reference_types xtypes,
77     mtl_cross_references items,
78     mtl_system_items_vl sitems
79     where xtypes.cross_reference_type =
80     items.cross_reference_type
81     and items.inventory_item_id =
82     sitems.inventory_item_id
83     and items.cross_reference = ordered_item_L
84     and items.cross_reference_type = item_identifier_type_L
85     and nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
86     and sitems.inventory_item_id = inventory_item_id_L
87     and items.org_independent_flag = 'Y';
88     End;
89     --Bug 3433353 End
90   end if;
91 
92   if (p_print_description in ('I','C')) then
93     return(v_item||' - '||v_description);
94   elsif (p_print_description in ('D','P')) then
95     return(v_description);
96   else
97     return(v_item);
98   end if;
99 
100 RETURN NULL;
101 Exception
102    When Others Then
103         return('Item Not Found');
104 end;
105 
106 function BeforeReport return boolean is
107 	begin
108 		BEGIN
109 P_ORGANIZATION_ID1 := P_ORGANIZATION_ID;
110 
111 		  BEGIN
112 			 -- SRW.USER_EXIT('FND SRWINIT');
113 			 null;
114 			/*  EXCEPTION
115 			     WHEN SRW.USER_EXIT_FAILURE THEN
116 			SRW.MESSAGE (1000,'Failed in BEFORE REPORT trigger');
117 			     return (FALSE);*/
118 		  END;
119 
120 		BEGIN  /*MOAC*/
121 
122 			--P_ORGANIZATION_ID:= MO_GLOBAL.GET_CURRENT_ORG_ID();
123 			P_ORGANIZATION_ID1:= MO_GLOBAL.GET_CURRENT_ORG_ID();
124 
125 		END;
126 
127 /*------------------------------------------------------------------------------
128 Following PL/SQL block gets the company name, functional currency and precision.
129 ------------------------------------------------------------------------------*/
130 
131   DECLARE
132   l_company_name            VARCHAR2 (100);
133   l_functional_currency     VARCHAR2  (15);
134 
135   BEGIN
136 
137     SELECT sob.name                   ,
138 	   sob.currency_code
139     INTO
140 	   l_company_name ,
141 	   l_functional_currency
142     FROM    gl_sets_of_books sob,
143 	    fnd_currencies cur
144     WHERE  sob.set_of_books_id = p_sob_id
145     AND    sob.currency_code = cur.currency_code
146     ;
147 
148     rp_company_name            := l_company_name;
149     rp_functional_currency     := l_functional_currency ;
150 
151   EXCEPTION
152     WHEN NO_DATA_FOUND THEN
153       NULL ;
154   END ;
155 
156 /*------------------------------------------------------------------------------
157 Following PL/SQL block gets the report name for the passed concurrent request Id.
158 ------------------------------------------------------------------------------*/
159   DECLARE
160       l_report_name  VARCHAR2(240);
161   BEGIN
162       SELECT cp.user_concurrent_program_name
163       INTO   l_report_name
164       FROM   FND_CONCURRENT_PROGRAMS_VL cp,
165 	     FND_CONCURRENT_REQUESTS cr
166       WHERE  cr.request_id     = P_CONC_REQUEST_ID
167       AND    cp.application_id = cr.program_application_id
168       AND    cp.concurrent_program_id = cr.concurrent_program_id
169       ;
170 
171       RP_Report_Name := l_report_name;
172   EXCEPTION
173       WHEN NO_DATA_FOUND
174       THEN RP_REPORT_NAME := 'Unbooked Orders Report';
175   END;
176 
177 /*------------------------------------------------------------------------------
178 Following PL/SQL block builds up the lexical parameters, to be used in the
179 WHERE clause of the query. This also populates the report level variables, used
180 to store the flexfield structure.
181 ------------------------------------------------------------------------------*/
182  /* BEGIN
183    -- SRW.REFERENCE(:P_item_flex_code);
184    -- SRW.REFERENCE(:P_item_structure_num);
185 
186 
187     SRW.USER_EXIT('FND FLEXSQL CODE=":P_item_flex_code"
188 			   NUM=":P_ITEM_STRUCTURE_NUM"
189 			   APPL_SHORT_NAME="INV"
190 			   OUTPUT=":rp_item_flex_all_seg"
191 			   MODE="SELECT"
192 			   DISPLAY="ALL"
193 			   TABLEALIAS="MSI"
194 			    ');
195 
196 
197   EXCEPTION
198     WHEN SRW.USER_EXIT_FAILURE THEN
199     srw.message(2000,'Failed in BEFORE REPORT trigger. FND FLEXSQL USER_EXIT');
200   END;
201 */
202 
203 
204 DECLARE
205     l_meaning       VARCHAR2 (80);
206   BEGIN
207     SELECT MEANING
208     INTO   l_meaning
209     FROM OE_LOOKUPS
210     WHERE LOOKUP_TYPE = 'ITEM_DISPLAY_CODE'
211     AND LOOKUP_CODE  = substr(upper(p_print_description),1,1)
212     ;
213 
214     rp_print_description := l_meaning ;
215   EXCEPTION WHEN NO_DATA_FOUND THEN
216     rp_print_description := 'Internal Item Description';
217   when OTHERS then
218   null;
219  -- srw.message(2000,'Failed in BEFORE REPORT trigger. Get Print Description');
220 
221   END ;
222 
223 /*------------------------------------------------------------------------------
224 THE Following PL/SQL block populates the order_date_range and created_by range
225 parameters used in the report margins
226 ------------------------------------------------------------------------------*/
227   BEGIN
228 	if (P_created_by_low is NOT NULL OR P_created_by_high is NOT NULL) then
229 	  if (P_Created_by_low is NULL) then
230 	    P_Created_by_low := '     ';
231 	  end if;
232 	  lp_created_by_range := ' From '||P_Created_by_low||' To '||P_Created_by_high;
233 	end if;
234 
235 	if (P_order_date_low is NOT NULL OR P_order_date_high is NOT NULL) then
236 	  lp_order_date_range := ' From '||nvl(to_char(P_Order_date_low, 'DD-MON-RRRR'), '     ')
237            || ' To ' ||nvl(to_char(P_Order_date_high, 'DD-MON-RRRR'), '     ');
238  	end if;
239   END;
240 END ;
241 IF Oe_Sys_Parameters.Value('RECURRING_CHARGES',mo_global.get_current_org_id())='Y' Then
242 	C_PERIODICITY_DSP_FLAG := 'Y';
243 ELSE
244 	C_PERIODICITY_DSP_FLAG := 'N';
245 END IF;
246   return (TRUE);
247 end BeforeReport;
248 
249   -------------------------
250   FUNCTION AFTERREPORT RETURN BOOLEAN IS
251   BEGIN
252     BEGIN
253       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
254     EXCEPTION
255       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
256         /*SRW.MESSAGE(1
257                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
258         RETURN (FALSE);
259     END;
260     RETURN (TRUE);
261   END AFTERREPORT;
262 
263   FUNCTION P_ITEM_FLEX_CODEVALIDTRIGGER RETURN BOOLEAN IS
264   BEGIN
265     RETURN (TRUE);
266   END P_ITEM_FLEX_CODEVALIDTRIGGER;
267 
268   FUNCTION AFTERPFORM RETURN BOOLEAN IS
269   BEGIN
270     BEGIN
271       IF (UPPER(P_ORDER_BY) = 'CREATED_BY') THEN
272         LP_ORDER_BY := 'order by 4,1,2';
273         SELECT
274           MEANING
275         INTO LP_ORDER_BY_MEAN
276         FROM
277           OE_LOOKUPS
278         WHERE LOOKUP_CODE = UPPER(P_ORDER_BY)
279           AND LOOKUP_TYPE = 'OEXOEUBK ORDER BY';
280       ELSE
281         LP_ORDER_BY := 'order by 1,2,4';
282         LP_ORDER_BY_MEAN := 'Order Number';
283       END IF;
284     EXCEPTION
285       WHEN NO_DATA_FOUND THEN
286         LP_ORDER_BY_MEAN := P_ORDER_BY;
287     END;
288     IF (lp_order_by IS NULL) THEN
289 	lp_order_by := ' ';
290     END IF;
291 
292     BEGIN
293       IF (P_ORDER_DATE_LOW IS NOT NULL) AND (P_ORDER_DATE_HIGH IS NOT NULL) THEN
294         LP_ORDER_DATE := 'and h.ordered_date between :p_order_date_low and (:p_order_date_high+1) ';
295       ELSIF (P_ORDER_DATE_LOW IS NOT NULL) THEN
296         LP_ORDER_DATE := 'and h.ordered_date >= :p_order_date_low';
297       ELSIF (P_ORDER_DATE_HIGH IS NOT NULL) THEN
298         LP_ORDER_DATE := 'and h.ordered_date  <= (:p_order_date_high+1) ';
299       END IF;
300 
301       IF (lp_order_date IS NULL) THEN
302 	lp_order_date := ' ';
303     END IF;
304 
305     END;
306     BEGIN
307       IF (P_CREATED_BY_LOW IS NOT NULL) AND (P_CREATED_BY_HIGH IS NOT NULL) THEN
308         LP_CREATED_BY := 'and fu.user_name between :p_created_by_low and :p_created_by_high ';
309       ELSIF (P_CREATED_BY_LOW IS NOT NULL) THEN
310         LP_CREATED_BY := 'and fu.user_name >= :p_created_by_low ';
311       ELSIF (P_CREATED_BY_HIGH IS NOT NULL) THEN
312         LP_CREATED_BY := 'and fu.user_name <= :p_created_by_high ';
313       END IF;
314 IF (lp_created_by IS NULL) THEN
315 	lp_created_by := ' ';
316     END IF;
317 
318     END;
319     IF P_ORDER_CATEGORY IS NOT NULL THEN
320       IF P_ORDER_CATEGORY = 'SALES' THEN
321         LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
322       ELSIF P_ORDER_CATEGORY = 'CREDIT' THEN
323         LP_ORDER_CATEGORY := 'and h.order_category_code in (''RETURN'', ''MIXED'') ';
324       ELSIF P_ORDER_CATEGORY = 'ALL' THEN
325         LP_ORDER_CATEGORY := NULL;
326       END IF;
327     ELSE
328       LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
329     END IF;
330    IF (lp_order_category IS NULL) THEN
331 	lp_order_category := ' ';
332     END IF;
333 
334     IF P_LINE_CATEGORY IS NOT NULL THEN
335       IF P_LINE_CATEGORY = 'SALES' THEN
336         LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
337       ELSIF P_LINE_CATEGORY = 'CREDIT' THEN
338         LP_LINE_CATEGORY := 'and l.line_category_code = ''RETURN'' ';
339       ELSIF P_LINE_CATEGORY = 'ALL' THEN
340         LP_LINE_CATEGORY := NULL;
341       END IF;
342     ELSE
343       LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
344     END IF;
345     IF (lp_line_category IS NULL) THEN
346 	lp_line_category := ' ';
347     END IF;
348     RETURN (TRUE);
349   END AFTERPFORM;
350 
351 -----------------------
352   FUNCTION RP_ORDER_CATEGORYFORMULA RETURN VARCHAR2 IS
353   BEGIN
354     DECLARE
355       L_MEANING VARCHAR2(80);
356     BEGIN
357       SELECT
358         MEANING
359       INTO L_MEANING
360       FROM
361         OE_LOOKUPS
362       WHERE LOOKUP_TYPE = 'REPORT_ORDER_CATEGORY'
363         AND LOOKUP_CODE = P_ORDER_CATEGORY;
364       RETURN (L_MEANING);
365     EXCEPTION
366       WHEN NO_DATA_FOUND THEN
367         RETURN (NULL);
368     END;
369     RETURN NULL;
370   END RP_ORDER_CATEGORYFORMULA;
371 
372   FUNCTION RP_LINE_CATEGORYFORMULA RETURN VARCHAR2 IS
373   BEGIN
374     DECLARE
375       L_MEANING VARCHAR2(80);
376     BEGIN
377       SELECT
378         MEANING
379       INTO L_MEANING
380       FROM
381         OE_LOOKUPS
382       WHERE LOOKUP_TYPE = 'REPORT_LINE_DISPLAY'
383         AND LOOKUP_CODE = P_LINE_CATEGORY;
384       RETURN (L_MEANING);
385     EXCEPTION
386       WHEN NO_DATA_FOUND THEN
387         RETURN (NULL);
388     END;
389     RETURN NULL;
390   END RP_LINE_CATEGORYFORMULA;
391 
392   FUNCTION C_MASTER_ORGFORMULA RETURN NUMBER IS
393     V_MASTER_ORG VARCHAR2(20);
394   BEGIN
395     SELECT
396       NVL(OE_SYS_PARAMETERS.VALUE('MASTER_ORGANIZATION_ID'
397                                  ,MO_GLOBAL.GET_CURRENT_ORG_ID)
398          ,0)
399     INTO V_MASTER_ORG
400     FROM
401       DUAL;
402     RETURN V_MASTER_ORG;
403   END C_MASTER_ORGFORMULA;
404 
405   FUNCTION C_PERIODICITY_DSPFORMULA(CHARGE_PERIODICITY_CODE IN VARCHAR2) RETURN CHAR IS
406     L_UOM_CLASS VARCHAR2(20) := FND_PROFILE.VALUE('ONT_UOM_CLASS_CHARGE_PERIODICITY');
407     L_CHARGE_PERIODICITY VARCHAR2(25);
408   BEGIN
409     IF CHARGE_PERIODICITY_CODE IS NULL THEN
410       RETURN (P_ONE_TIME);
411     ELSE
412       SELECT
413         UNIT_OF_MEASURE
414       INTO L_CHARGE_PERIODICITY
415       FROM
416         MTL_UNITS_OF_MEASURE_VL
417       WHERE UOM_CLASS = L_UOM_CLASS
418         AND UOM_CODE = CHARGE_PERIODICITY_CODE;
419       RETURN L_CHARGE_PERIODICITY;
420     END IF;
421   EXCEPTION
422     WHEN NO_DATA_FOUND THEN
423       RETURN NULL;
424   END C_PERIODICITY_DSPFORMULA;
425 
426   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
427   BEGIN
428     RETURN RP_REPORT_NAME;
429   END RP_REPORT_NAME_P;
430 
431   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
432   BEGIN
433     RETURN RP_SUB_TITLE;
434   END RP_SUB_TITLE_P;
435 
436   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
437   BEGIN
438     RETURN RP_COMPANY_NAME;
439   END RP_COMPANY_NAME_P;
440 
441   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
442   BEGIN
443     RETURN RP_FUNCTIONAL_CURRENCY;
444   END RP_FUNCTIONAL_CURRENCY_P;
445 
446   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
447   BEGIN
448     RETURN RP_DATA_FOUND;
449   END RP_DATA_FOUND_P;
450 
451   FUNCTION RP_ITEM_FLEX_ALL_SEG_P RETURN VARCHAR2 IS
452   BEGIN
453     RETURN RP_ITEM_FLEX_ALL_SEG;
454   END RP_ITEM_FLEX_ALL_SEG_P;
458     RETURN RP_PRINT_DESCRIPTION;
455 
456   FUNCTION RP_PRINT_DESCRIPTION_P RETURN VARCHAR2 IS
457   BEGIN
459   END RP_PRINT_DESCRIPTION_P;
460 
461   FUNCTION RP_DUMMY_ITEM_P RETURN VARCHAR2 IS
462   BEGIN
463     RETURN RP_DUMMY_ITEM;
464   END RP_DUMMY_ITEM_P;
465 
466 END ONT_OEXOEUBK_XMLP_PKG;
467