DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_WIPDJORQ_XMLP_PKG

Source


1 PACKAGE BODY WIP_WIPDJORQ_XMLP_PKG AS
2 /* $Header: WIPDJORQB.pls 120.1 2008/01/31 12:18:20 npannamp noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
6     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
7     /*SRW.USER_EXIT('FND FLEXSQL CODE="MSTK"
8                   APPL_SHORT_NAME="INV" OUTPUT=":P_ASSY"
9                   TABLEALIAS="MSI"
10                   MODE="SELECT" DISPLAY="ALL"')*/NULL;
11     IF (P_FROM_COMP IS NOT NULL) THEN
12       IF (P_TO_COMP IS NOT NULL) THEN
13         NULL;
14       ELSE
15         NULL;
16       END IF;
17     ELSE
18       IF (P_TO_COMP IS NOT NULL) THEN
19         NULL;
20       END IF;
21     END IF;
22     RETURN (TRUE);
23     RETURN (TRUE);
24   END BEFOREREPORT;
25 
26   FUNCTION AFTERREPORT RETURN BOOLEAN IS
27   BEGIN
28     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
29     RETURN (TRUE);
30   END AFTERREPORT;
31 
32   FUNCTION LIMIT_JOBS RETURN CHARACTER IS
33     LIMIT_JOBS VARCHAR2(768);
34   BEGIN
35     IF (P_FROM_JOB IS NOT NULL) THEN
36       IF (P_TO_JOB IS NOT NULL) THEN
37         LIMIT_JOBS := ' AND WE.WIP_ENTITY_NAME BETWEEN ''' || REPLACE(P_FROM_JOB
38                              ,''''
39                              ,'''''') || ''' AND ''' || REPLACE(P_TO_JOB
40                              ,''''
41                              ,'''''') || '''';
42       ELSE
43         LIMIT_JOBS := ' AND WE.WIP_ENTITY_NAME  >= ''' || REPLACE(P_FROM_JOB
44                              ,''''
45                              ,'''''') || '''';
46       END IF;
47     ELSE
48       IF (P_TO_JOB IS NOT NULL) THEN
49         LIMIT_JOBS := ' AND WE.WIP_ENTITY_NAME <= ''' || REPLACE(P_TO_JOB
50                              ,''''
51                              ,'''''') || '''';
52       ELSE
53         LIMIT_JOBS := ' ';
54       END IF;
55     END IF;
56     RETURN (LIMIT_JOBS);
57   END LIMIT_JOBS;
58 
59   FUNCTION LIMIT_DATES RETURN CHARACTER IS
60     LIMIT_DATES VARCHAR2(120);
61   BEGIN
62     IF (P_FROM_DATE IS NOT NULL) THEN
63       IF (P_TO_DATE IS NOT NULL) THEN
64         LIMIT_DATES := ' AND WRO.date_required >= TO_DATE(''' || TO_CHAR(P_FROM_DATE
65                               ,'YYYYMMDD') || ''',''YYYYMMDD'')' || ' AND WRO.date_required < TO_DATE(''' || TO_CHAR(P_TO_DATE + 1
66                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
67       ELSE
68         LIMIT_DATES := ' AND WRO.date_required >= TO_DATE(''' || TO_CHAR(P_FROM_DATE
69                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
70       END IF;
71     ELSE
72       IF (P_TO_DATE IS NOT NULL) THEN
73         LIMIT_DATES := ' AND WRO.date_required < TO_DATE(''' || TO_CHAR(P_TO_DATE + 1
74                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
75       ELSE
76         LIMIT_DATES := ' ';
77       END IF;
78     END IF;
79     RETURN (LIMIT_DATES);
80   END LIMIT_DATES;
81 
82   FUNCTION C_NETTABLE_CONSTRAINTFORMULA RETURN VARCHAR2 IS
83   BEGIN
84     IF (P_NETTABLE = 1) THEN
85       RETURN ('AND    MSS.AVAILABILITY_TYPE(+) = 1');
86     ELSE
87       RETURN (' ');
88     END IF;
89     RETURN NULL;
90   END C_NETTABLE_CONSTRAINTFORMULA;
91 
92   FUNCTION C_TOTAL_QTY_FORMULAFORMULA(C_TOTAL_QTY IN NUMBER
93                                      ,SUPPLY_FLAG IN NUMBER) RETURN NUMBER IS
94   BEGIN
95     RETURN C_TOTAL_QTY * SUPPLY_FLAG;
96   END C_TOTAL_QTY_FORMULAFORMULA;
97 
98   FUNCTION C_QTY_SHORT_QOHFORMULA(C_QTY_SHORT_FORMULA IN NUMBER
99                                  ,C_OPEN_REQUIREMENTS IN VARCHAR2
100                                  ,AVAIL_QTY IN NUMBER) RETURN NUMBER IS
101   BEGIN
102     IF ((P_OPEN_SHORT = 1) AND (P_SORT_BY <> 9) AND (P_SORT_BY <> 13)) THEN
103       RETURN -1 * (C_QTY_SHORT_FORMULA - C_OPEN_REQUIREMENTS);
104     ELSE
105       RETURN -1 * (AVAIL_QTY - C_OPEN_REQUIREMENTS);
106     END IF;
107     RETURN NULL;
108   END C_QTY_SHORT_QOHFORMULA;
109 
110   FUNCTION DEPARTMENT_LIMITER RETURN CHARACTER IS
111     LIMIT_DEPT VARCHAR2(80);
112   BEGIN
113     IF (P_FROM_DEPT IS NOT NULL) THEN
114       IF (P_TO_DEPT IS NOT NULL) THEN
115         LIMIT_DEPT := ' AND BOD.DEPARTMENT_CODE BETWEEN ''' || P_FROM_DEPT || ''' AND ''' || P_TO_DEPT || '''';
116       ELSE
117         LIMIT_DEPT := ' AND BOD.DEPARTMENT_CODE >= ''' || P_FROM_DEPT || '''';
118       END IF;
119     ELSE
120       IF (P_TO_DEPT IS NOT NULL) THEN
121         LIMIT_DEPT := ' AND BOD.DEPARTMENT_CODE <= ''' || P_TO_DEPT || '''';
122       ELSE
123         LIMIT_DEPT := ' ';
124       END IF;
125     END IF;
126     RETURN (LIMIT_DEPT);
127   END DEPARTMENT_LIMITER;
128 
129   FUNCTION C_BREAK_JOBFORMULA(JOB IN VARCHAR2) RETURN VARCHAR2 IS
130   BEGIN
131     IF (P_SORT_BY = 11) THEN
132       RETURN (JOB);
133     ELSE
134       RETURN ('X');
135     END IF;
136     RETURN NULL;
137   END C_BREAK_JOBFORMULA;
138 
139   FUNCTION C_BREAK_DATE_REQUIREDFORMULA(DATE_REQUIRED IN DATE) RETURN DATE IS
140   BEGIN
141     IF (P_SORT_BY = 5) THEN
142       RETURN (DATE_REQUIRED);
143     ELSE
144       RETURN (NULL);
145     END IF;
146     RETURN NULL;
147   END C_BREAK_DATE_REQUIREDFORMULA;
148 
149   FUNCTION C_BREAK_DEPARTMENTFORMULA(DEPARTMENT IN VARCHAR2) RETURN VARCHAR2 IS
150   BEGIN
151     IF (P_SORT_BY = 12) THEN
152       RETURN (DEPARTMENT);
153     ELSE
154       RETURN (' ');
155     END IF;
156     RETURN NULL;
157   END C_BREAK_DEPARTMENTFORMULA;
158 
159   FUNCTION C_LIMIT_COMPONENTSFORMULA RETURN VARCHAR2 IS
160   BEGIN
161     BEGIN
162       IF (P_FLEXWHERE IS NOT NULL) THEN
163         RETURN ('AND ');
164       ELSE
165         RETURN ('  ');
166       END IF;
167     END;
168     RETURN NULL;
169   END C_LIMIT_COMPONENTSFORMULA;
170 
171   FUNCTION C_BREAK_COMP_DISPFORMULA(COMPONENT IN VARCHAR2
172                                    ,C_COMPONENT_DISP IN VARCHAR2) RETURN VARCHAR2 IS
173   BEGIN
174     /*SRW.REFERENCE(COMPONENT)*/NULL;
175     /*SRW.REFERENCE(C_COMPONENT_DISP)*/NULL;
176     IF (P_SORT_BY = 9) OR (P_SORT_BY = 13) THEN
177       RETURN (C_COMPONENT_DISP);
178     ELSE
179       RETURN (' ');
180     END IF;
181     RETURN NULL;
182   END C_BREAK_COMP_DISPFORMULA;
183 
184   FUNCTION NET_QTY_DETAILFORMULA(AVAILABILITY_TYPE IN NUMBER
185                                 ,QUANTITY_ON_HAND IN NUMBER) RETURN NUMBER IS
186   BEGIN
187     /*SRW.REFERENCE(AVAILABILITY_TYPE)*/NULL;
188     /*SRW.REFERENCE(QUANTITY_ON_HAND)*/NULL;
189     RETURN (AVAILABILITY_TYPE * QUANTITY_ON_HAND);
190   END NET_QTY_DETAILFORMULA;
191 
192   FUNCTION AVAIL_QTYFORMULA(NET_QTY_COMP IN NUMBER
193                            ,C_ITEM_TOTAL_QTY IN NUMBER) RETURN NUMBER IS
194   BEGIN
195     /*SRW.REFERENCE(NET_QTY_COMP)*/NULL;
196     /*SRW.REFERENCE(C_ITEM_TOTAL_QTY)*/NULL;
197     /*SRW.REFERENCE(P_NETTABLE)*/NULL;
198     IF (P_NETTABLE = 1) THEN
199       RETURN (NET_QTY_COMP);
200     ELSE
201       RETURN (C_ITEM_TOTAL_QTY);
202     END IF;
203     RETURN NULL;
204   END AVAIL_QTYFORMULA;
205 
206   FUNCTION C_COMPONENT_SORTFORMULA(COMPONENT IN VARCHAR2
207                                   ,C_COMPONENT_DISP IN VARCHAR2
208                                   ,C_COMPONENT_SORT IN VARCHAR2) RETURN VARCHAR2 IS
209   BEGIN
210     /*SRW.REFERENCE(COMPONENT)*/NULL;
211     /*SRW.REFERENCE(C_COMPONENT_DISP)*/NULL;
212     RETURN (C_COMPONENT_SORT);
213   END C_COMPONENT_SORTFORMULA;
214 
215   FUNCTION ZEROFORMULA RETURN NUMBER IS
216   BEGIN
217     RETURN (0);
218   END ZEROFORMULA;
219 
220   FUNCTION LIMIT_PLANNERS RETURN CHARACTER IS
221     LIMIT_PLANNERS VARCHAR2(240);
222   BEGIN
223     IF (P_FROM_PLANNER IS NOT NULL) THEN
224       IF (P_TO_PLANNER IS NOT NULL) THEN
225         LIMIT_PLANNERS := ' AND MSI2.PLANNER_CODE BETWEEN ''' || P_FROM_PLANNER || ''' AND ''' || P_TO_PLANNER || '''';
226       ELSE
227         LIMIT_PLANNERS := ' AND MSI2.PLANNER_CODE  >= ''' || P_FROM_PLANNER || '''';
228       END IF;
229     ELSE
230       IF (P_TO_PLANNER IS NOT NULL) THEN
231         LIMIT_PLANNERS := ' AND MSI2.PLANNER_CODE <= ''' || P_TO_PLANNER || '''';
232       ELSE
233         LIMIT_PLANNERS := ' ';
234       END IF;
235     END IF;
236     RETURN (LIMIT_PLANNERS);
237   END LIMIT_PLANNERS;
238 
239   FUNCTION LIMIT_BUYER RETURN CHARACTER IS
240     LIMIT_BUYER VARCHAR2(240);
241   BEGIN
242     IF (P_FROM_BUYER IS NOT NULL) THEN
243       IF (P_TO_BUYER IS NOT NULL) THEN
244         LIMIT_BUYER := ' AND EMP.FULL_NAME BETWEEN ''' || REPLACE(P_FROM_BUYER
245                               ,''''
246                               ,'''''') || ''' AND ''' || REPLACE(P_TO_BUYER
247                               ,''''
248                               ,'''''') || '''';
249       ELSE
250         LIMIT_BUYER := ' AND EMP.FULL_NAME  >= ''' || REPLACE(P_FROM_BUYER
251                               ,''''
252                               ,'''''') || '''';
253       END IF;
254     ELSE
255       IF (P_TO_BUYER IS NOT NULL) THEN
256         LIMIT_BUYER := ' AND EMP.FULL_NAME <= ''' || REPLACE(P_TO_BUYER
257                               ,''''
258                               ,'''''') || '''';
259       ELSE
260         LIMIT_BUYER := ' ';
261       END IF;
262     END IF;
263     RETURN (LIMIT_BUYER);
264   END LIMIT_BUYER;
265 
266   FUNCTION C_BREAK_ASSY_DISPFORMULA(C_ASSY IN VARCHAR2
267                                    ,C_ASSY_DISP IN VARCHAR2) RETURN VARCHAR2 IS
268   BEGIN
269     /*SRW.REFERENCE(C_ASSY)*/NULL;
270     /*SRW.REFERENCE(C_ASSY_DISP)*/NULL;
271     IF (P_SORT_BY = 11) THEN
272       RETURN (C_ASSY_DISP);
273     ELSE
274       RETURN ('X');
275     END IF;
276     RETURN NULL;
277   END C_BREAK_ASSY_DISPFORMULA;
278 
279   FUNCTION MASTER_BREAK_FUNC(COMPONENT IN VARCHAR2
280                             ,C_COMPONENT_DISP IN VARCHAR2
281                             ,C_COMPONENT_SORT IN VARCHAR2
282                             ,JOB IN VARCHAR2
283                             ,DEPARTMENT IN VARCHAR2
284                             ,MAKE_BUY IN VARCHAR2
285                             ,BUYER_NAME IN VARCHAR2
286                             ,PLANNER_CODE IN VARCHAR2
287                             ,DATE_REQUIRED IN DATE) RETURN CHARACTER IS
288     TEMP VARCHAR2(1250);
289   BEGIN
290     /*SRW.REFERENCE(COMPONENT)*/NULL;
291     /*SRW.REFERENCE(C_COMPONENT_DISP)*/NULL;
292     /*SRW.REFERENCE(C_COMPONENT_SORT)*/NULL;
293     /*SRW.REFERENCE(JOB)*/NULL;
294     /*SRW.REFERENCE(DEPARTMENT)*/NULL;
295     /*SRW.REFERENCE(MAKE_BUY)*/NULL;
296     /*SRW.REFERENCE(BUYER_NAME)*/NULL;
297     /*SRW.REFERENCE(PLANNER_CODE)*/NULL;
298     /*SRW.REFERENCE(DATE_REQUIRED)*/NULL;
299     IF (P_SORT_BY = 9) THEN
300       TEMP := C_COMPONENT_SORT;
301     ELSE
302       IF (P_SORT_BY = 5) THEN
303         TEMP := LPAD(TO_CHAR(DATE_REQUIRED
304                             ,'J')
305                     ,10);
306       ELSE
307         IF (P_SORT_BY = 11) THEN
308           TEMP := JOB;
309         ELSE
310           IF (P_SORT_BY = 12) THEN
311             TEMP := DEPARTMENT;
312           ELSE
313             TEMP := RPAD(MAKE_BUY
314                         ,10) || RPAD(BUYER_NAME
315                         ,240) || RPAD(PLANNER_CODE
316                         ,40) || C_COMPONENT_SORT;
317           END IF;
318         END IF;
319       END IF;
320     END IF;
321     RETURN (TEMP);
322   END MASTER_BREAK_FUNC;
323 
324   FUNCTION C_FIRST_SORTFORMULA RETURN VARCHAR2 IS
325   BEGIN
326     IF (P_SORT_BY = 5) THEN
327       RETURN ('WRO.Date_Required');
328     ELSE
329       IF (P_SORT_BY = 11) THEN
330         RETURN ('WE.WIP_ENTITY_NAME');
331       ELSE
332         IF (P_SORT_BY = 12) THEN
333           RETURN ('BOD.DEPARTMENT_CODE');
334         ELSE
335           RETURN ('''X''');
336         END IF;
337       END IF;
338     END IF;
339     RETURN NULL;
340   END C_FIRST_SORTFORMULA;
341 
342   FUNCTION C_TOT_QTY_SHORTFORMULA(C_TOTAL_AVAIL_QTY IN VARCHAR2
343                                  ,C_TOTAL_AVAIL_NET_QTY IN VARCHAR2
344                                  ,C_TOT_QTY_OPEN IN VARCHAR2) RETURN NUMBER IS
345   BEGIN
346     /*SRW.REFERENCE(C_TOTAL_AVAIL_QTY)*/NULL;
347     /*SRW.REFERENCE(C_TOTAL_AVAIL_NET_QTY)*/NULL;
348     /*SRW.REFERENCE(C_TOT_QTY_OPEN)*/NULL;
349     IF (P_NETTABLE = 1) THEN
350       RETURN (C_TOT_QTY_OPEN - C_TOTAL_AVAIL_NET_QTY);
351     ELSE
352       RETURN (C_TOT_QTY_OPEN - C_TOTAL_AVAIL_QTY);
353     END IF;
354     RETURN NULL;
355   END C_TOT_QTY_SHORTFORMULA;
356 
357   FUNCTION C_BREAK_COMP_DESCFORMULA(COMP_DESC IN VARCHAR2) RETURN VARCHAR2 IS
358   BEGIN
359     IF ((P_SORT_BY = 9) OR (P_SORT_BY = 13)) THEN
360       RETURN (COMP_DESC);
361     ELSE
362       RETURN ('X');
363     END IF;
364     RETURN NULL;
365   END C_BREAK_COMP_DESCFORMULA;
366 
367   FUNCTION C_DISPLAY_FORMULAFORMULA(C_QTY_SHORT_QOH IN NUMBER) RETURN NUMBER IS
368   BEGIN
369     IF ((P_OPEN_SHORT = 1) OR (P_OPEN_SHORT = 2)) AND (C_QTY_SHORT_QOH <= 0) THEN
370       RETURN (0);
371     ELSE
372       RETURN (1);
373     END IF;
374     RETURN NULL;
375   END C_DISPLAY_FORMULAFORMULA;
376 
377   FUNCTION AFTERPFORM RETURN BOOLEAN IS
378   BEGIN
379     IF P_FROM_COMP IS NOT NULL OR P_TO_COMP IS NOT NULL THEN
380       P_ITEM_ORG := 'and MSI2.ORGANIZATION_ID = :P_ORGANIZATION_ID';
381     END IF;
382     IF P_SCHEDULE_GROUP IS NOT NULL THEN
383       P_SG_OUTER := ' ';
384     END IF;
385     RETURN (TRUE);
386   END AFTERPFORM;
387 
388   FUNCTION LIMIT_BULK_SUPPLY_TYPE RETURN CHARACTER IS
389     LIMIT_BULK_SUPPLY_TYPE VARCHAR2(100);
390   BEGIN
391     IF (P_INCLUDE_BULK = 1) THEN
392       LIMIT_BULK_SUPPLY_TYPE := ' ';
393     ELSE
394       LIMIT_BULK_SUPPLY_TYPE := 'AND WRO.WIP_SUPPLY_TYPE <> 4 ';
395     END IF;
396     RETURN (LIMIT_BULK_SUPPLY_TYPE);
397   END LIMIT_BULK_SUPPLY_TYPE;
398 
399   FUNCTION LIMIT_VENDOR_SUPPLY_TYPE RETURN CHARACTER IS
400     LIMIT_VENDOR_SUPPLY_TYPE VARCHAR2(100);
401   BEGIN
402     IF (P_INCLUDE_VENDOR = 1) THEN
403       LIMIT_VENDOR_SUPPLY_TYPE := ' ';
404     ELSE
405       LIMIT_VENDOR_SUPPLY_TYPE := 'AND WRO.WIP_SUPPLY_TYPE <> 5 ';
406     END IF;
407     RETURN (LIMIT_VENDOR_SUPPLY_TYPE);
408   END LIMIT_VENDOR_SUPPLY_TYPE;
409 
410   FUNCTION C_LIMITER RETURN VARCHAR2 IS
411     C_OUT VARCHAR2(200);
412   BEGIN
413     IF P_SCHEDULE_GROUP IS NOT NULL THEN
414       C_OUT := ' AND SG.SCHEDULE_GROUP_NAME = ''' || P_SCHEDULE_GROUP || '''';
415     ELSE
416       C_OUT := ' ';
417     END IF;
418     RETURN (C_OUT);
419   END C_LIMITER;
420 
421   FUNCTION C_LIMIT_DATE_REQFORMULA RETURN CHAR IS
422     LIMIT_DATE_REQ VARCHAR2(120) := ' ';
423   BEGIN
424     IF (P_REQ_END_DATE IS NOT NULL) THEN
425       LIMIT_DATE_REQ := ' AND WRO.DATE_REQUIRED < TO_DATE(''' || TO_CHAR(P_REQ_END_DATE
426                                ,'YYYYMMDD') || ''',''YYYYMMDD'') + 1 ';
427     END IF;
428     RETURN (LIMIT_DATE_REQ);
429   END C_LIMIT_DATE_REQFORMULA;
430 
431 END WIP_WIPDJORQ_XMLP_PKG;
432