DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOECCL_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOECCL_XMLP_PKG AS
2 /* $Header: OEXOECCLB.pls 120.2 2008/05/05 10:14:20 dwkrishn noship $ */
3  FUNCTION AFTERREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
7     EXCEPTION
8       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
9         /*SRW.MESSAGE(1
10                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
11         RETURN (FALSE);
12     END;
13     RETURN (TRUE);
14   END AFTERREPORT;
15   FUNCTION AFTERPFORM RETURN BOOLEAN IS
16   BEGIN
17     BEGIN
18       IF P_CUSTOMER_NAME IS NOT NULL THEN
19         LP_CUSTOMER_NAME := ' and c.name = :p_customer_name';
20       END IF;
21       IF (lp_customer_name IS NULL) THEN
22 	lp_customer_name := ' ';
23       END IF;
24       IF P_CUSTOMER_NUMBER IS NOT NULL THEN
25         LP_CUSTOMER_NUMBER := ' and c.customer_number = :p_customer_number';
26       END IF;
27        IF (lp_customer_number IS NULL) THEN
28 	lp_customer_number := ' ';
29       END IF;
30       IF P_ORDER_NUMBER IS NOT NULL THEN
31         LP_ORDER_NUMBER := ' and h.order_number = :p_order_number';
32       END IF;
33        IF (lp_order_number IS NULL) THEN
34 	lp_order_number := ' ';
35       END IF;
36       IF P_CURRENCY_CODE IS NOT NULL THEN
37         LP_CURRENCY_CODE := ' and h.transactional_curr_code = :p_currency_code';
38       END IF;
39       IF (lp_currency_code IS NULL) THEN
40 	lp_currency_code := ' ';
41       END IF;
42       IF (P_DATE_HOLD_APPLIED_LOW IS NOT NULL) AND (P_DATE_HOLD_APPLIED_HIGH IS NOT NULL) THEN
43         LP_DATE_HOLD_APPLIED := 'and  (trunc(oh.creation_date)  between :p_date_hold_applied_low
44                                 			and :p_date_hold_applied_high) ';
45       ELSIF (P_DATE_HOLD_APPLIED_LOW IS NOT NULL) THEN
46         LP_DATE_HOLD_APPLIED := 'and trunc(oh.creation_date)  >= :p_date_hold_applied_low ';
47       ELSIF (P_DATE_HOLD_APPLIED_HIGH IS NOT NULL) THEN
48         LP_DATE_HOLD_APPLIED := 'and trunc(oh.creation_date)  <= :p_date_hold_applied_high ';
49       END IF;
50       IF (lp_date_hold_applied IS NULL) THEN
51 	lp_date_hold_applied := ' ';
52       END IF;
53       IF P_ORDER_TYPE IS NOT NULL THEN
54         LP_ORDER_TYPE := ' and ot.transaction_type_id = :p_order_type';
55         SELECT
56           OEOT.NAME
57         INTO L_ORDER_TYPE
58         FROM
59           OE_TRANSACTION_TYPES_TL OEOT
60         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE
61           AND OEOT.LANGUAGE = USERENV('LANG');
62       END IF;
63       IF (lp_order_type IS NULL) THEN
64 	lp_order_type := ' ';
65       END IF;
66       IF P_LINE_TYPE IS NOT NULL THEN
67         LP_LINE_TYPE := ' and lt.line_type_id = :p_line_type';
68         SELECT
69           OEOT.NAME
70         INTO L_LINE_TYPE
71         FROM
72           OE_TRANSACTION_TYPES_TL OEOT
73         WHERE OEOT.TRANSACTION_TYPE_ID = P_LINE_TYPE
74           AND OEOT.LANGUAGE = USERENV('LANG');
75       END IF;
76       IF (lp_line_type IS NULL) THEN
77 	lp_line_type := ' ';
78       END IF;
79     END;
80     RETURN (TRUE);
81   END AFTERPFORM;
82   FUNCTION C_DATA_NOT_FOUNDFORMULA(CUSTOMER_NAME IN VARCHAR2) RETURN NUMBER IS
83   BEGIN
84     RP_DATA_FOUND := CUSTOMER_NAME;
85     RETURN (0);
86   END C_DATA_NOT_FOUNDFORMULA;
87   FUNCTION C_ADDRESSFORMULA(ADDRESS1 IN VARCHAR2
88                            ,CITY IN VARCHAR2
89                            ,STATE IN VARCHAR2) RETURN VARCHAR2 IS
90   BEGIN
91     /*SRW.REFERENCE(ADDRESS1)*/NULL;
92     /*SRW.REFERENCE(CITY)*/NULL;
93     /*SRW.REFERENCE(STATE)*/NULL;
94     IF ADDRESS1 IS NOT NULL THEN
95       RETURN (ADDRESS1 || ' , ' || CITY || ' , ' || STATE);
96     ELSE
97       RETURN (NULL);
98     END IF;
99     RETURN NULL;
100   END C_ADDRESSFORMULA;
101   FUNCTION P_ITEM_FLEX_CODEVALIDTRIGGER RETURN BOOLEAN IS
102   BEGIN
103     RETURN (TRUE);
104   END P_ITEM_FLEX_CODEVALIDTRIGGER;
105   FUNCTION INVENTORY_ITEM_ID_P RETURN NUMBER IS
106   BEGIN
107     RETURN INVENTORY_ITEM_ID;
108   END INVENTORY_ITEM_ID_P;
109   FUNCTION ORDERED_ITEM_P RETURN VARCHAR2 IS
110   BEGIN
111     RETURN ORDERED_ITEM;
112   END ORDERED_ITEM_P;
113   FUNCTION ORDERED_ITEM_ID_P RETURN NUMBER IS
114   BEGIN
115     RETURN ORDERED_ITEM_ID;
116   END ORDERED_ITEM_ID_P;
117   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
118   BEGIN
119     RETURN RP_REPORT_NAME;
120   END RP_REPORT_NAME_P;
121   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
122   BEGIN
123     RETURN RP_SUB_TITLE;
124   END RP_SUB_TITLE_P;
125   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
126   BEGIN
127     RETURN RP_COMPANY_NAME;
128   END RP_COMPANY_NAME_P;
129   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
130   BEGIN
131     RETURN RP_FUNCTIONAL_CURRENCY;
132   END RP_FUNCTIONAL_CURRENCY_P;
133   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
134   BEGIN
135     RETURN RP_DATA_FOUND;
136   END RP_DATA_FOUND_P;
137   FUNCTION RP_DATE_HOLD_APPLIED_RANGE_P RETURN VARCHAR2 IS
138   BEGIN
139     RETURN RP_DATE_HOLD_APPLIED_RANGE;
140   END RP_DATE_HOLD_APPLIED_RANGE_P;
141   FUNCTION RP_SHIP_P RETURN VARCHAR2 IS
142   BEGIN
143     RETURN RP_SHIP;
144   END RP_SHIP_P;
145   FUNCTION RP_ORDER_P RETURN VARCHAR2 IS
146   BEGIN
147     RETURN RP_ORDER;
148   END RP_ORDER_P;
149   FUNCTION RP_VAT_PROFILE_P RETURN VARCHAR2 IS
150   BEGIN
151     RETURN RP_VAT_PROFILE;
152   END RP_VAT_PROFILE_P;
153   FUNCTION RP_PRINT_DESCRIPTION_P RETURN VARCHAR2 IS
154   BEGIN
155     RETURN RP_PRINT_DESCRIPTION;
156   END RP_PRINT_DESCRIPTION_P;
157   FUNCTION RP_ITEM_FLEX_ALL_SEG_P RETURN VARCHAR2 IS
158   BEGIN
159     RETURN RP_ITEM_FLEX_ALL_SEG;
160   END RP_ITEM_FLEX_ALL_SEG_P;
161   FUNCTION RP_DUMMY_ITEM_P RETURN VARCHAR2 IS
162   BEGIN
163     RETURN RP_DUMMY_ITEM;
164   END RP_DUMMY_ITEM_P;
165   function BeforeReport return boolean is
166 begin
167 DECLARE
168 BEGIN
169   /*BEGIN
170   SRW.USER_EXIT('FND SRWINIT');
171   EXCEPTION
172      WHEN SRW.USER_EXIT_FAILURE THEN
173 	SRW.MESSAGE (1000,'Failed in BEFORE REPORT trigger');
174      return (FALSE);
175      NULL;
176   END;*/
177   BEGIN /*MOAC*/
178   P_ORG_ID:= MO_GLOBAL.GET_CURRENT_ORG_ID();
179   LP_ORG_ID:=P_ORG_ID;
180   END;
181 /*------------------------------------------------------------------------------
182 Following PL/SQL block gets the company name, functional currency and precision.
183 ------------------------------------------------------------------------------*/
184   DECLARE
185   l_company_name            VARCHAR2 (100);
186   l_functional_currency     VARCHAR2  (15);
187   BEGIN
188     SELECT sob.name                   ,
189 	   sob.currency_code
190     INTO
191 	   l_company_name ,
192 	   l_functional_currency
193     FROM    gl_sets_of_books sob,
194 	    fnd_currencies cur
195     WHERE  sob.set_of_books_id = p_sob_id
196     AND    sob.currency_code = cur.currency_code
197     ;
198     rp_company_name            := l_company_name;
199     rp_functional_currency     := l_functional_currency ;
200   EXCEPTION
201     WHEN NO_DATA_FOUND THEN
202       NULL ;
203   END ;
204 /*------------------------------------------------------------------------------
205 The following block retrieves the profile option value for VAT
206 -------------------------------------------------------------------------------*/
207 BEGIN
208     /*SRW.REFERENCE(:P_VAT_PROFILE);
209     SRW.USER_EXIT('FND GETPROFILE NAME=":P_VAT_PROFILE"
210                    FIELD=":RP_VAT_PROFILE"
211                    PRINT_ERROR="N"');
212 EXCEPTION
213     WHEN SRW.USER_EXIT_FAILURE THEN
214     srw.message(2000,'Failed in BEFORE REPORT trigger. FND GETPROFILE - VAT USER_EXIT'); */
215     NULL;
216 END;
217 /*------------------------------------------------------------------------------
218 Following PL/SQL block gets the report name for the passed concurrent request Id.
219 ------------------------------------------------------------------------------*/
220   DECLARE
221       l_report_name  VARCHAR2(240);
222   BEGIN
223       SELECT cp.user_concurrent_program_name
224       INTO   l_report_name
225       FROM   FND_CONCURRENT_PROGRAMS_VL cp,
226 	     FND_CONCURRENT_REQUESTS cr
227       WHERE  cr.request_id     = P_CONC_REQUEST_ID
228       AND    cp.application_id = cr.program_application_id
229       AND    cp.concurrent_program_id = cr.concurrent_program_id
230       ;
231       RP_Report_Name := l_report_name;
232   EXCEPTION
233       WHEN NO_DATA_FOUND
234       THEN RP_REPORT_NAME := 'Lines on Credit Check Hold Report';
235   END;
236 /*------------------------------------------------------------------------------
237 Following PL/SQL block builds up the lexical parameters, to be used in the
238 WHERE clause of the query. This also populates the report level variables, used
239 to store the flexfield structure.
240 ------------------------------------------------------------------------------*/
241   BEGIN
242     /*SRW.REFERENCE(:P_item_flex_code);
243     SRW.REFERENCE(:P_ITEM_STRUCTURE_NUM);
244     SRW.USER_EXIT('FND FLEXSQL CODE=":p_item_flex_code"
245 			   NUM=":p_item_structure_num"
246 			   APPL_SHORT_NAME="INV"
247 			   OUTPUT=":rp_item_flex_all_seg"
248 			   MODE="SELECT"
249 			   DISPLAY="ALL"
250 			   TABLEALIAS="SI"
251 			    ');
252   EXCEPTION
253     WHEN SRW.USER_EXIT_FAILURE THEN
254     srw.message(2000,'Failed in BEFORE REPORT trigger. FND FLEXSQL USER_EXIT'); */
255     NULL;
256   END;
257 /*------------------------------------------------------------------------------
258 Following PL/SQL fetches the Master Organization Id for the session.
259 Used in the WHERE clause of the query.
260 ------------------------------------------------------------------------------*/
261   BEGIN
262     RP_DUMMY_ITEM := NVL( OE_SYS_PARAMETERS.VALUE('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0 );
263   EXCEPTION
264     WHEN OTHERS THEN
265 	 /*SRW.MESSAGE(1000,'Error in fetching Master Organization Id for the session');*/
266 	 RP_DUMMY_ITEM := 0;
267   END;
268   DECLARE
269       l_date_hold_applied_low             VARCHAR2 (50);
270       l_date_hold_applied_high            VARCHAR2 (50);
271   BEGIN
272   if ( p_date_hold_applied_low is NULL) AND ( p_date_hold_applied_high is NULL ) then
273     NULL ;
274   else
275     if p_date_hold_applied_low is NULL then
276       l_date_hold_applied_low := '   ';
277     else
278       l_date_hold_applied_low := substr(to_char(p_date_hold_applied_low,'DD-MON-YYYY'),1,18);
279     end if ;
280     if p_date_hold_applied_high is NULL then
281       l_date_hold_applied_high := '   ';
282     else
283       l_date_hold_applied_high := substr(to_char(p_date_hold_applied_high,'DD-MON-YYYY'),1,18);
284     end if ;
285     rp_date_hold_applied_range  := 'From '||l_date_hold_applied_low||' To '||l_date_hold_applied_high ;
286   end if ;
287 DECLARE
288     l_meaning       VARCHAR2 (80);
289   BEGIN
290     SELECT MEANING
291     INTO   l_meaning
292     FROM OE_LOOKUPS
293     WHERE LOOKUP_TYPE = 'ITEM_DISPLAY_CODE'
294     AND LOOKUP_CODE  = substr(upper(p_item_description),1,1)
295     ;
296     rp_print_description := l_meaning ;
297   EXCEPTION WHEN NO_DATA_FOUND THEN
298     rp_print_description := 'Description';
299   END ;
300   END ;
301 END ;
302   return (TRUE);
303 end beforereport;
304 
305 FUNCTION ITEM_DSPFORMULA(ITEM_IDENTIFIER_TYPE IN VARCHAR2,ORDERED_ITEM_ID IN NUMBER,ORDERED_ITEM IN VARCHAR2,ORGANIZATION_ID IN NUMBER,INVENTORY_ITEM_ID1 IN NUMBER) RETURN VARCHAR2 IS
306 
307 v_item varchar2(2000);
308 v_description varchar2(500);
309 begin
310   if (item_identifier_type is null or item_identifier_type = 'INT')
311        or (p_item_description in ('I','D','F')) then
312 
313 	  v_item := fnd_flex_xml_publisher_apis.process_kff_combination_1('Item_dsp', 'INV', p_item_flex_code, p_item_structure_num, Item_DspFormula.ORGANIZATION_ID, Item_DspFormula.INVENTORY_ITEM_ID1, 'ALL', 'Y', 'VALUE');
314 
315     select sitems.description description
316     into   v_description
317     from   mtl_system_items_vl sitems
318     where  sitems.customer_order_enabled_flag = 'Y'
319     and    sitems.bom_item_type in (1,4)
320     and    nvl(sitems.organization_id,0) = RP_DUMMY_ITEM
321     and    sitems.inventory_item_id = Item_DspFormula.inventory_item_id1;  --Bug2764262
322 
323       /*   srw.reference (:item_flex);
324          srw.reference (:p_item_flex_code);
325          srw.reference (:Item_dsp);
326          srw.reference (:p_item_structure_num);
327          srw.user_exit (' FND FLEXIDVAL
328 		    CODE=":p_item_flex_code"
329 		    NUM=":p_item_structure_num"
330 		    APPL_SHORT_NAME="INV"
331 		    DATA= ":item_flex"
332 		    VALUE=":Item_dsp"
333 		    DISPLAY="ALL"'
334 		);*/
335     v_item :=  fnd_flex_xml_publisher_apis.process_kff_combination_1('Item_dsp', 'INV', p_item_flex_code, p_item_structure_num, Item_DspFormula.ORGANIZATION_ID, Item_DspFormula.INVENTORY_ITEM_ID1, 'ALL', 'Y', 'VALUE');
336   elsif (item_identifier_type = 'CUST' and p_item_description in ('C','P','O')) then
337     select citems.customer_item_number item,
338     	   nvl(citems.customer_item_desc,sitems.description) description
339     into   v_item,v_description
340     from   mtl_customer_items citems,
341            mtl_customer_item_xrefs cxref,
342            mtl_system_items_vl sitems
343     where  citems.customer_item_id = cxref.customer_item_id
344     and    cxref.inventory_item_id = sitems.inventory_item_id
345     and    citems.customer_item_id = Item_DspFormula.ordered_item_id
346     and    nvl(sitems.organization_id,0) = RP_DUMMY_ITEM
347     and    sitems.inventory_item_id = Item_DspFormula.inventory_item_id1;
348 --    and    sitems.customer_order_enabled_flag = 'Y'
349 --    and    sitems.bom_item_type in (1,4)
350   elsif (p_item_description in ('C','P','O')) then
351     select items.cross_reference item,
352     	   nvl(items.description,sitems.description) description
353     into   v_item,v_description
354     from   mtl_cross_reference_types xtypes,
355            mtl_cross_references items,
356            mtl_system_items_vl sitems
357     where  xtypes.cross_reference_type = items.cross_reference_type
358     and    items.inventory_item_id = sitems.inventory_item_id
359     and    items.cross_reference = Item_DspFormula.ordered_item
360     and    items.cross_reference_type = Item_DspFormula.item_identifier_type
361     and    nvl(sitems.organization_id,0) = RP_DUMMY_ITEM
362     and    sitems.inventory_item_id = Item_DspFormula.inventory_item_id1;
363 --    and    sitems.customer_order_enabled_flag = 'Y'
364 --    and    sitems.bom_item_type in (1,4)
365   end if;
366 
367   if (p_item_description in ('I','C')) then
368     return(v_item||' - '||v_description);
369   elsif (p_item_description in ('D','P')) then
370     return(v_description);
371   else
372     return(v_item);
373   end if;
374 
375 RETURN NULL;
376 Exception
377    When Others Then
378         return('Item Not Found');
379 end;
380 
381 END ONT_OEXOECCL_XMLP_PKG;
382