DBA Data[Home] [Help]

PACKAGE BODY: APPS.PJM_INQUIRY

Source


1 package body PJM_INQUIRY as
2 /* $Header: PJMWINQB.pls 120.7.12020000.2 2012/07/25 22:19:17 yaoli ship $ */
3 
4 --
5 -- Private Global Variables
6 --
7 G_Yes           VARCHAR2(80)                    := NULL;
8 G_No            VARCHAR2(80)                    := NULL;
9 
10 FUNCTION get_req_total
11         (p_header_id   number) return number is
12          X_req_total     number;
13 
14   BEGIN
15     SELECT nvl(SUM(decode(quantity,
16                           null,
17                           amount,
18                           (quantity * unit_price)
19                          )
20            ), 0)
21            into X_req_total
22     FROM   po_requisition_lines_all
23     WHERE  requisition_header_id = p_header_id and
24            nvl(cancel_flag,'N') <> 'Y' and    -- Bug 554452 Ignore cancelled lines
25            nvl(MODIFIED_BY_AGENT_FLAG, 'N') = 'N' and   -- Bug 574676
26            nvl(CLOSED_CODE, 'OPEN') <> 'FINALLY CLOSED';  -- Bug 574676
27 
28     RETURN (X_req_total);
29 
30   EXCEPTION
31     WHEN OTHERS then
32        X_req_total := 0;
33 END get_req_total;
34 
35 
36 FUNCTION BR_Type
37 ( X_Org_Id   IN NUMBER
38 , X_Sybtype  IN VARCHAR2
39 ) return VARCHAR2 IS
40 
41 L_Type_Name VARCHAR2(80);
42 
43 BEGIN
44 
45 SELECT T.TYPE_NAME into L_Type_Name
46 from PO_DOCUMENT_TYPES_ALL_TL T
47 WHERE T.LANGUAGE = userenv('LANG')
48    and T.DOCUMENT_TYPE_CODE = 'RELEASE'
49 AND  T.DOCUMENT_SUBTYPE  = X_Sybtype
50 and T.org_id = X_Org_Id;
51 
52   RETURN ( L_Type_Name );
53 
54 EXCEPTION
55 WHEN OTHERS THEN
56   RETURN ( NULL );
57 
58 END BR_Type;
59 
60 
61 FUNCTION Vendor_Contact
62 ( X_Contact_Id  IN NUMBER
63 ) return VARCHAR2 IS
64 
65 L_Contact_Name VARCHAR2(360);
66 
67 BEGIN
68 
69   SELECT DECODE(VC.LAST_NAME, NULL, NULL, VC.LAST_NAME||', '||VC.FIRST_NAME)
70   into L_Contact_Name
71   from PO_VENDOR_CONTACTS VC
72   where VC.VENDOR_CONTACT_ID = X_Contact_id;
73 
74   RETURN ( L_Contact_Name );
75 
76 EXCEPTION
77 WHEN OTHERS THEN
78   RETURN ( NULL );
79 
80 END Vendor_Contact;
81 
82 
83 FUNCTION Item_Number
84 ( X_Item_Id         IN NUMBER
85 , X_Organization_Id IN NUMBER
86 ) return VARCHAR2 IS
87 
88 L_Item_Number VARCHAR2(40);
89 
90 BEGIN
91 
92 --Bug 13023056 item number not shows fully in project inquiry screen, replace the MTL_SYSTEM_ITEMS_B/segment1
93 --with mtl_system_items_kfv/CONCATENATED_SEGMENTS (varchar40 as well).
94   SELECT CONCATENATED_SEGMENTS into L_Item_Number
95   from mtl_system_items_kfv
96   where inventory_item_id = X_Item_Id
97   and organization_id = X_Organization_Id;
98 
99   RETURN ( L_Item_Number );
100 
101 EXCEPTION
102 WHEN OTHERS THEN
103   RETURN ( NULL );
104 
105 END Item_Number;
106 
107 
108 FUNCTION Payment_Term
109 ( X_Term_Id IN NUMBER
110 ) return VARCHAR2 IS
111 
112 L_Payment_Term VARCHAR2(50);
113 
114 BEGIN
115 
116   SELECT NAME into L_Payment_Term
117   from AP_TERMS_TL B
118   WHERE term_id = X_Term_Id
119   AND   LANGUAGE = userenv('LANG');
120 
121   RETURN ( L_Payment_Term );
122 
123 EXCEPTION
124 WHEN OTHERS THEN
125   RETURN ( NULL );
126 
127 END Payment_Term;
128 
129 
130 FUNCTION People_Name
131 ( X_Person_Id IN NUMBER
132 ) return VARCHAR2 IS
133 
134 L_Full_Name VARCHAR2(240);
135 
136 BEGIN
137 
138   SELECT full_name into L_Full_Name
139   from PER_ALL_PEOPLE_F
140   where person_id = X_Person_Id
141   AND   TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE
142   AND   EFFECTIVE_END_DATE;
143 
144   RETURN ( L_Full_Name );
145 
146 EXCEPTION
147 WHEN OTHERS THEN
148   RETURN ( NULL );
149 
150 END People_Name;
151 
152 
153 FUNCTION OE_Lookup
154 ( X_Lookup_Code IN VARCHAR2
155 , X_Lookup_Type IN VARCHAR2
156 ) return VARCHAR2 IS
157 
158 L_meaning VARCHAR2(80);
159 
160 BEGIN
161 
162   SELECT meaning into L_meaning
163   from OE_LOOKUPS
164   where Lookup_Code = X_Lookup_Code
165   and   Lookup_Type = X_Lookup_Type;
166 
167   RETURN ( L_meaning );
168 
169 EXCEPTION
170 WHEN OTHERS THEN
171   RETURN ( NULL );
172 
173 END OE_Lookup;
174 
175 
176 FUNCTION Get_Lookup
177 ( X_Lookup_Code IN VARCHAR2
178 , X_Lookup_Type IN VARCHAR2
179 ) return VARCHAR2 IS
180 
181 L_Displayed_Filed VARCHAR2(80);
182 
183 BEGIN
184 
185   SELECT DISPLAYED_FIELD into L_Displayed_filed
186   from po_lookup_codes
187   where Lookup_Code = X_Lookup_Code
188   and   Lookup_Type = X_Lookup_Type;
189 
190   RETURN ( L_Displayed_Filed );
191 
192 EXCEPTION
193 WHEN OTHERS THEN
194   RETURN ( NULL );
195 
196 END Get_Lookup;
197 
198 
199 FUNCTION Location_Code
200 ( X_Location_Id  IN NUMBER
201 ) return VARCHAR2 IS
202 
203 L_Location_Code VARCHAR2(60);
204 
205 BEGIN
206 
207   SELECT location_code into L_Location_Code
208   from hr_locations_all_tl
209   where location_id = X_Location_Id
210   and language = userenv('LANG');
211 
212   RETURN ( L_Location_Code );
213 
214 EXCEPTION
215 WHEN OTHERS THEN
216   RETURN ( NULL );
217 
218 END Location_Code;
219 
220 
221 FUNCTION Vendor_Site
222 ( X_Vendor_Id       IN NUMBER
223 , X_Vendor_Site_Id  IN NUMBER
224 ) return VARCHAR2 IS
225 
226 L_Vendor_Site VARCHAR2(15);
227 
228 BEGIN
229 
230   SELECT VENDOR_SITE_CODE into L_Vendor_Site
231   from PO_VENDOR_SITES_ALL
232   where vendor_id = X_Vendor_id
233   and vendor_site_id = X_Vendor_Site_Id;
234 
235   RETURN ( L_Vendor_Site );
236 
237 EXCEPTION
238 WHEN OTHERS THEN
239   RETURN ( NULL );
240 
241 END Vendor_Site;
242 
243 
244 FUNCTION Vendor_Name
245 ( X_Vendor_Id  IN NUMBER
246 ) return VARCHAR2 IS
247 
248 L_Vendor_Name VARCHAR2(360);
249 
250 BEGIN
251 
252   SELECT vendor_name into L_Vendor_Name
253   from po_vendors
254   where vendor_id = X_Vendor_id;
255 
256   RETURN ( L_Vendor_Name );
257 
258 EXCEPTION
259 WHEN OTHERS THEN
260   RETURN ( NULL );
261 
262 END Vendor_Name;
263 
264 
265 FUNCTION PO_Type
266 ( X_Org_Id   IN NUMBER
267 ) return VARCHAR2 IS
268 
269 L_Type_Name VARCHAR2(80);
270 
271 BEGIN
272 
273 SELECT T.TYPE_NAME into L_Type_Name
274 from PO_DOCUMENT_TYPES_ALL_TL T
275 WHERE T.LANGUAGE = userenv('LANG')
276    and T.DOCUMENT_TYPE_CODE IN ('PO', 'PA')
277 AND  T.DOCUMENT_SUBTYPE  = 'STANDARD'
278 and T.org_id = X_Org_Id;
279 
280   RETURN ( L_Type_Name );
281 
282 EXCEPTION
283 WHEN OTHERS THEN
284   RETURN ( NULL );
285 
286 END PO_Type;
287 
288 
289 FUNCTION OE_Order_Total
290 ( X_Header_ID      IN NUMBER,
291   x_project_id  IN NUMBER DEFAULT NULL,
292   x_task_id   IN NUMBER DEFAULT NULL,
293   x_line_id   IN NUMBER DEFAULT NULL
294 ) return number IS
295 /* Refer to FP bug 8525770, add project id, task id and line id as parameters */
296 L_Order_Total number;
297 
298 BEGIN
299 
300   -- Bug 5465876: RMA order should show negative amount
301   SELECT SUM( decode(line_category_code,'RETURN',
302                      (-1)*(NVL(ordered_quantity,0)-NVL(cancelled_quantity,0)),
303                           (NVL(ordered_quantity,0)-NVL(cancelled_quantity,0))
304                     )
305               * NVL(unit_selling_price , 0) )
306   INTO   L_Order_Total
307   FROM   oe_order_lines_all
308   WHERE  header_id = X_Header_ID
309    AND   project_id = NVL(x_project_id, project_id)
310    AND   (task_id IS NULL OR task_id = NVL(x_task_id,  task_id))   --Bug 13455756: still need to return value even if task_id column is null
311    AND   line_id = x_line_id;
312 /* Refer to FP bug 8525770 */
313 
314 
315   RETURN ( L_Order_Total );
316 
317 EXCEPTION
318 WHEN OTHERS THEN
319   RETURN ( NULL );
320 
321 END OE_Order_Total;
322 
323 
324 FUNCTION OE_Org_Address
325 ( X_Org_ID         IN NUMBER
326 , X_Org_Type       IN VARCHAR2
327 ) return varchar2 IS
328 
329 L_Org_Address varchar2(2000);
330 
331 BEGIN
332 
333   IF ( X_Org_Type = 'BILL TO' ) THEN
334 
335     SELECT decode(loc.city , null , null , loc.city || ', ')
336         || decode(loc.postal_code ,  null , null , loc.postal_code || ', ')
337         || decode(loc.country ,      null , null , loc.country)
338     INTO   L_Org_Address
339     FROM   hz_cust_site_uses_all site
340 	, hz_locations loc
341 	, hz_party_sites party_site
342         , hz_cust_acct_sites_all acct_site
343     WHERE  site.site_use_id = X_Org_ID
344     AND  site.cust_acct_site_id = acct_site.cust_acct_site_id
345     AND  acct_site.party_site_id = party_site.party_site_id
346     AND  party_site.location_id = loc.location_id
347     AND  nvl(site.org_id, -99 )  = nvl( acct_site.org_id, -99 );
348 
349   ELSIF ( X_Org_Type = 'SHIP TO' ) THEN
350 
351     SELECT decode(loc.city , null , null , loc.city || ', ')
352         || decode(loc.postal_code ,  null , null , loc.postal_code || ', ')
353         || decode(loc.country ,      null , null , loc.country)
354     INTO   L_Org_Address
355     FROM   hz_cust_site_uses_all site
356 	, hz_locations loc
357 	, hz_party_sites party_site
358         , hz_cust_acct_sites_all acct_site
359     WHERE  site.site_use_id = X_Org_ID
360     AND  site.cust_acct_site_id = acct_site.cust_acct_site_id
361     AND  acct_site.party_site_id = party_site.party_site_id
362     AND  party_site.location_id = loc.location_id
363     AND  nvl(site.org_id, -99 )  = nvl( acct_site.org_id, -99 );
364   END IF;
365 
366   RETURN ( L_Org_Address );
367 
368 EXCEPTION
369 WHEN OTHERS THEN
370   RETURN ( NULL );
371 
372 END OE_Org_Address;
373 
374 --
375 --  Note : The cached values are shared between Yes_No and
376 --         Sys_Yes_No as the text is extremely unlikely to
377 --         differ between the two lookups.
378 --
379 FUNCTION Yes_No
380 ( X_Lookup_Code    IN VARCHAR2
381 ) return varchar2 IS
382 
383 CURSOR c IS
384   SELECT meaning
385   FROM   fnd_lookups
386   WHERE  lookup_type = 'YES_NO'
387   AND    lookup_code = X_Lookup_Code;
388 
389 BEGIN
390 
391   IF ( X_Lookup_Code = 'Y' ) THEN
392     IF ( G_Yes IS NULL ) THEN
393       OPEN c;
394       FETCH c INTO G_Yes;
395       CLOSE c;
396     END IF;
397     RETURN ( G_Yes );
398   ELSIF ( X_Lookup_Code = 'N' ) THEN
399     IF ( G_No IS NULL ) THEN
400       OPEN c;
401       FETCH c INTO G_No;
402       CLOSE c;
403     END IF;
404     RETURN ( G_No );
405   ELSE
406     RETURN ( NULL );
407   END IF;
408 
409 EXCEPTION
410 WHEN OTHERS THEN
411   IF ( c%ISOPEN ) THEN
412     CLOSE c;
413   END IF;
414   RETURN ( NULL );
415 
416 END Yes_No;
417 
418 
419 FUNCTION Sys_Yes_No
420 ( X_Lookup_Code    IN NUMBER
421 ) return varchar2 IS
422 
423 CURSOR c IS
424   SELECT meaning
425   FROM   mfg_lookups
426   WHERE  lookup_type = 'SYS_YES_NO'
427   AND    lookup_code = X_Lookup_Code;
428 
429 BEGIN
430 
431   IF ( X_Lookup_Code = 'Y' ) THEN
432     IF ( G_Yes IS NULL ) THEN
433       OPEN c;
434       FETCH c INTO G_Yes;
435       CLOSE c;
436     END IF;
437     RETURN ( G_Yes );
438   ELSIF ( X_Lookup_Code = 'N' ) THEN
439     IF ( G_No IS NULL ) THEN
440       OPEN c;
441       FETCH c INTO G_No;
442       CLOSE c;
443     END IF;
444     RETURN ( G_No );
445   ELSE
446     RETURN ( NULL );
447   END IF;
448 
449 EXCEPTION
450 WHEN OTHERS THEN
451   IF ( c%ISOPEN ) THEN
452     CLOSE c;
453   END IF;
454   RETURN ( NULL );
455 
456 END Sys_Yes_No;
457 
458 
459 FUNCTION Locator_Control
460 ( X_Lookup_Code    IN NUMBER
461 ) return varchar2 IS
462 
463 L_Return_Value   VARCHAR2(80);
464 
465 BEGIN
466 
467   SELECT meaning
468   INTO   L_Return_Value
469   FROM   mfg_lookups
470   WHERE  lookup_type = 'MTL_LOCATION_CONTROL'
471   AND    lookup_code = X_Lookup_Code;
472 
473   RETURN ( L_Return_Value );
474 
475 EXCEPTION
476 WHEN OTHERS THEN
477   RETURN ( NULL );
478 
479 END Locator_Control;
480 
481 
482 FUNCTION Component_Serial
483 ( X_Organization_ID  IN NUMBER
484 , X_Wip_Entity_ID    IN NUMBER
485 , X_Op_Seq_Num       IN NUMBER
486 , X_Item_ID          IN NUMBER
487 ) return varchar2 is
488 
489 L_Return_Value  VARCHAR2(4000);
490 
491 CURSOR c IS
492   SELECT mut.serial_number
493   FROM   mtl_unit_transactions mut
494   ,      mtl_material_transactions mmt
495   WHERE  mmt.inventory_item_id          = X_Item_ID
496   AND    mmt.organization_id            = X_Organization_ID
497   AND    mmt.transaction_source_type_id = 5
498   AND    mmt.transaction_source_id      = X_Wip_Entity_ID
499   AND    mmt.operation_seq_num          = X_Op_Seq_Num
500   AND    mmt.transaction_type_id in (35 , 38 , 43 , 48)
501   AND    mut.transaction_id             = mmt.transaction_id
502   AND    mut.inventory_item_id          = X_Item_ID
503   AND    mut.organization_id            = X_Organization_ID
504   AND    mut.transaction_source_type_id = 5
505   AND    mut.transaction_source_id      = X_Wip_Entity_ID
506   GROUP BY mut.serial_number
507   HAVING sum(sign(mmt.primary_quantity)) < 0
508   ORDER BY mut.serial_number;
509 
510 BEGIN
511 
512   L_Return_Value := NULL;
513 
514   FOR crec IN c LOOP
515     IF L_Return_Value IS NULL THEN
516       L_Return_Value := crec.serial_number;
517     ELSE
518       L_Return_Value := L_Return_Value || ' , ' || crec.serial_number;
519     END IF;
520   END LOOP;
521 
522   RETURN( L_Return_Value );
523 
524 EXCEPTION
525 WHEN OTHERS THEN
526   RETURN ( NULL );
527 
528 END Component_Serial;
529 
530 
531 function TRANSACTION_SOURCE_NAME
532 ( X_Trx_Src_Type_ID  IN NUMBER
533 , X_Trx_Source_ID    IN NUMBER
534 ) return varchar2 is
535 
536 CURSOR c1 IS
537   SELECT segment1
538   FROM   po_headers_all
539   WHERE  po_header_id = X_Trx_Source_ID;
540 
541 CURSOR c2 IS
542   SELECT substr(concatenated_segments , 1 , 240)
543   FROM   mtl_sales_orders_kfv
544   WHERE  sales_order_id = X_Trx_Source_ID;
545 
546 CURSOR c3 IS
547   SELECT k_number_disp
548   FROM   oke_k_headers_v
549   WHERE  k_header_id = X_Trx_Source_ID;
550 
551 Trx_Source_Name   VARCHAR2(4000);
552 
553 BEGIN
554 
555   IF ( X_Trx_Src_Type_ID = 1 ) THEN
556     OPEN c1;
557     FETCH c1 INTO Trx_Source_Name;
558     CLOSE c1;
559   ELSIF ( X_Trx_Src_Type_ID in ( 2 , 8 , 12 ) ) THEN
560     OPEN c2;
561     FETCH c2 INTO Trx_Source_Name;
562     CLOSE c2;
563   ELSIF ( X_Trx_Src_Type_ID = 16 ) THEN
564     OPEN c3;
565     FETCH c3 INTO Trx_Source_Name;
566     CLOSE c3;
567   ELSE
568     Trx_Source_Name := NULL;
569   END IF;
570 
571   RETURN( Trx_Source_Name );
572 
573 EXCEPTION
574 WHEN OTHERS THEN
575   RETURN( NULL );
576 END TRANSACTION_SOURCE_NAME;
577 
578 
579 end PJM_INQUIRY;