DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_MRPRPSST_XMLP_PKG

Source


1 PACKAGE BODY MRP_MRPRPSST_XMLP_PKG AS
2 /* $Header: MRPRPSSTB.pls 120.2 2008/01/01 13:49:22 dwkrishn noship $ */
3   FUNCTION AFTERREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
7     END;
8     RETURN (TRUE);
9   END AFTERREPORT;
10 
11   FUNCTION C_PERIOD_DELTAFORMULA(C_ACTUAL_SUM IN NUMBER
12                                 ,C_SCHED_SUM IN NUMBER) RETURN NUMBER IS
13   BEGIN
14     RETURN (ROUND((C_ACTUAL_SUM - C_SCHED_SUM)
15                 ,P_QTY_PRECISION));
16   END C_PERIOD_DELTAFORMULA;
17 
18   FUNCTION C_SCHED_COSTFORMULA(C_SCHED_SUM IN NUMBER
19                               ,C_ITEM_COST IN NUMBER) RETURN NUMBER IS
20   BEGIN
21     RETURN (ROUND((C_SCHED_SUM * C_ITEM_COST)
22                 ,P_PRECISION));
23   END C_SCHED_COSTFORMULA;
24 
25   FUNCTION C_PERIOD_DELTA_COSTFORMULA(C_PERIOD_DELTA IN NUMBER
26                                      ,C_ITEM_COST IN NUMBER) RETURN NUMBER IS
27   BEGIN
28     RETURN (ROUND((C_PERIOD_DELTA * C_ITEM_COST)
29                 ,P_PRECISION));
30   END C_PERIOD_DELTA_COSTFORMULA;
31 
32   FUNCTION C_PERIOD_DELTA_CUM_COSTFORMULA(C_PERIOD_DELTA_CUM IN NUMBER
33                                          ,C_ITEM_COST IN NUMBER) RETURN NUMBER IS
34   BEGIN
35     RETURN (ROUND((C_PERIOD_DELTA_CUM * C_ITEM_COST)
36                 ,P_PRECISION));
37   END C_PERIOD_DELTA_CUM_COSTFORMULA;
38 
39   FUNCTION C_ACTUAL_COSTFORMULA(C_ACTUAL_SUM IN NUMBER
40                                ,C_ITEM_COST IN NUMBER) RETURN NUMBER IS
41   BEGIN
42     RETURN (ROUND((C_ACTUAL_SUM * C_ITEM_COST)
43                 ,P_PRECISION));
44   END C_ACTUAL_COSTFORMULA;
45 
46   FUNCTION C_SCHED_VERSIONFORMULA RETURN VARCHAR2 IS
47   BEGIN
48     DECLARE
49       SCHED_VERSION VARCHAR2(80);
50     BEGIN
51       SELECT
52         MEANING
53       INTO SCHED_VERSION
54       FROM
55         MFG_LOOKUPS
56       WHERE LOOKUP_TYPE = 'MRP_SCHEDULE_LEVEL'
57         AND LOOKUP_CODE = P_SCHED_VERSION;
58       RETURN (SCHED_VERSION);
59     END;
60     RETURN NULL;
61   END C_SCHED_VERSIONFORMULA;
62 
63   FUNCTION C_SORTFORMULA RETURN VARCHAR2 IS
64   BEGIN
65     DECLARE
66       SORT VARCHAR2(80);
67     BEGIN
68       SELECT
69         MEANING
70       INTO SORT
71       FROM
72         MFG_LOOKUPS
73       WHERE LOOKUP_TYPE = 'MRP_DATA_SELECT'
74         AND LOOKUP_CODE = P_SORT;
75       RETURN (SORT);
76     END;
77     RETURN NULL;
78   END C_SORTFORMULA;
79 
80   FUNCTION C_CAT_SETFORMULA RETURN VARCHAR2 IS
81   BEGIN
82     DECLARE
83       CAT_SET VARCHAR2(30);
84     BEGIN
85       SELECT
86         CATEGORY_SET_NAME
87       INTO CAT_SET
88       FROM
89         MTL_CATEGORY_SETS
90       WHERE CATEGORY_SET_ID = P_CAT_SET;
91       RETURN (CAT_SET);
92     END;
93     RETURN NULL;
94   END C_CAT_SETFORMULA;
95 
96   FUNCTION C_CATEGORY_FROMFORMULA RETURN VARCHAR2 IS
97   BEGIN
98     DECLARE
99       CATEGORY_FROM VARCHAR2(80);
100     BEGIN
101       IF ((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL) OR (P_SORT = 2)) THEN
102         CATEGORY_FROM := ',mtl_categories cat';
103       ELSE
104         CATEGORY_FROM := ' ';
105       END IF;
106       RETURN (CATEGORY_FROM);
107     END;
108     RETURN NULL;
109   END C_CATEGORY_FROMFORMULA;
110 
111   FUNCTION C_CATEGORY_WHEREFORMULA RETURN VARCHAR2 IS
112   BEGIN
113     DECLARE
114       CATEGORY_WHERE VARCHAR2(200);
115     BEGIN
116       IF ((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL) OR (P_SORT = 2)) THEN
117         CATEGORY_WHERE := 'AND ic.category_id = cat.category_id(+) ' || 'AND cat.structure_id = ' || P_CAT_STRUCT;
118       ELSE
119         CATEGORY_WHERE := ' ';
120       END IF;
121       RETURN (CATEGORY_WHERE);
122     END;
123     RETURN NULL;
124   END C_CATEGORY_WHEREFORMULA;
125 
126   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
127   BEGIN
128     DECLARE
129       QUERY_ID NUMBER;
130       PROC_CALL1 VARCHAR2(200);
131       CAL_CODE VARCHAR2(10);
132       CAL_EXCEPTION_SET_ID NUMBER;
133       CURRENCY_DESC VARCHAR2(80);
134       PRECISION NUMBER;
135       START_DATE DATE;
136       PERIODS NUMBER;
137       SCHEDULE_TYPE VARCHAR2(80);
138       SCHEDULE_VERSION VARCHAR2(80);
139       CAT_STRUCT_NUM NUMBER;
140     BEGIN
141       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
142       format_string := mrp_common_xmlp_pkg.get_precision(P_QTY_PRECISION);
143       LP_START_DATE := to_char(P_START_DATE, 'DD-MON-YYYY');
144       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
145       IF (P_DEBUG = 'Y') THEN
146         EXECUTE IMMEDIATE
147           'ALTER SESSION SET SQL_TRACE TRUE';
148       END IF;
149       IF ((P_SORT = 2) OR (P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL)) THEN
150         SELECT
151           STRUCTURE_ID
152         INTO CAT_STRUCT_NUM
153         FROM
154           MTL_DEFAULT_SETS_VIEW
155         WHERE FUNCTIONAL_AREA_ID = 3;
156         P_CAT_STRUCT_NUM := CAT_STRUCT_NUM;
157       END IF;
158       SELECT
159         DECODE(LOOKUP_CODE
160               ,1
161               ,12
162               ,2
163               ,24
164               ,3
165               ,36
166               ,4
167               ,48
168               ,12),
169         MRP_FORM_QUERY_S.NEXTVAL,
170         P_START_DATE
171       INTO PERIODS,QUERY_ID,START_DATE
172       FROM
173         MFG_LOOKUPS
174       WHERE LOOKUP_TYPE = 'MRP_DISPLAY_PERIODS'
175         AND LOOKUP_CODE = P_PERIODS;
176       P_PERIODS_ACTUAL := PERIODS;
177       P_QUERY_ID := QUERY_ID;
178       MRP_WEEKS_MONTHS(P_QUERY_ID
179                       ,1
180                       ,P_WEEKS
181                       ,PERIODS
182                       ,START_DATE
183                       ,P_ORG_ID);
184       IF (P_SORT = 1) THEN
185         NULL;
186       END IF;
187       IF (P_SORT = 2) THEN
188         NULL;
189       END IF;
190       IF ((P_LOW_ITEM IS NOT NULL) OR (P_HIGH_ITEM IS NOT NULL)) THEN
191         NULL;
192       END IF;
193       IF ((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL)) THEN
194         NULL;
195       END IF;
196       SELECT
197         CALENDAR_CODE,
198         CALENDAR_EXCEPTION_SET_ID
199       INTO CAL_CODE,CAL_EXCEPTION_SET_ID
200       FROM
201         MTL_PARAMETERS
202       WHERE ORGANIZATION_ID = P_ORG_ID;
203       P_CAL_CODE := CAL_CODE;
204       P_CAL_EXCEPTION_SET_ID := CAL_EXCEPTION_SET_ID;
205       SELECT
206         NAME,
207         PRECISION
208       INTO CURRENCY_DESC,PRECISION
209       FROM
210         FND_CURRENCIES_VL
211       WHERE CURRENCY_CODE = P_CURRENCY_CODE;
212       P_CURRENCY_DESC := CURRENCY_DESC;
213       P_PRECISION := PRECISION;
214       SELECT
215         MEANING
216       INTO SCHEDULE_TYPE
217       FROM
218         MFG_LOOKUPS
219       WHERE LOOKUP_TYPE = 'MRP_SCHEDULE_TYPE'
220         AND LOOKUP_CODE = P_SCHED_TYPE;
221       P_SCHED_TYPE_DESC := SCHEDULE_TYPE;
222       SELECT
223         MEANING
224       INTO SCHEDULE_VERSION
225       FROM
226         MFG_LOOKUPS
227       WHERE LOOKUP_TYPE = 'MRP_SCHEDULE_LEVEL'
228         AND LOOKUP_CODE = P_SCHED_VERSION;
229       P_SCHED_VERSION_DESC := SCHEDULE_VERSION;
230     END;
231     RETURN (TRUE);
232   END BEFOREREPORT;
233 
234   FUNCTION C_P_MULTIORG_MPSFORMULA RETURN NUMBER IS
235   BEGIN
236     DECLARE
237       ORG_SELECTION NUMBER := 0;
238       USE_MULTIORG_MPS NUMBER := 0;
239     BEGIN
240       IF (P_SCHED_TYPE = 2 AND P_REPORT_MULTIORG = 2) THEN
241         SELECT
242           ORGANIZATION_SELECTION
243         INTO ORG_SELECTION
244         FROM
245           MRP_SCHEDULE_DESIGNATORS SCHED
246         WHERE ORGANIZATION_ID = P_ORG_ID
247           AND SCHEDULE_DESIGNATOR = P_SCHED_NAME;
248         IF (ORG_SELECTION = 2 OR ORG_SELECTION = 3) THEN
249           USE_MULTIORG_MPS := 1;
250         ELSE
251           USE_MULTIORG_MPS := 2;
252         END IF;
253       ELSE
254         USE_MULTIORG_MPS := 2;
255       END IF;
256       RETURN (USE_MULTIORG_MPS);
257     END;
258     RETURN NULL;
259   END C_P_MULTIORG_MPSFORMULA;
260 
261   FUNCTION C_ORDER_BYFORMULA RETURN VARCHAR2 IS
262   BEGIN
263     DECLARE
264       ORDER_BY VARCHAR2(40);
265     BEGIN
266       IF (P_SORT = 3) THEN
267         ORDER_BY := 'org.organization_name, ';
268       ELSE
269         ORDER_BY := ' ';
270       END IF;
271       RETURN (ORDER_BY);
272     END;
273     RETURN ' ';
274   END C_ORDER_BYFORMULA;
275 
276   FUNCTION C_P_REPORT_MULTIORGFORMULA RETURN VARCHAR2 IS
277   BEGIN
278     DECLARE
279       REPORT_MULTIORG_TEXT VARCHAR2(80) := 'Current Organization';
280     BEGIN
281       IF P_REPORT_MULTIORG = 2 THEN
282         SELECT
283           MEANING
284         INTO REPORT_MULTIORG_TEXT
285         FROM
286           MFG_LOOKUPS
287         WHERE LOOKUP_CODE = P_REPORT_MULTIORG
288           AND LOOKUP_TYPE = 'MRP_REPORT_MULTIORG';
289       END IF;
290       RETURN (REPORT_MULTIORG_TEXT);
291     END;
292     RETURN NULL;
293   END C_P_REPORT_MULTIORGFORMULA;
294 
295   FUNCTION C_P_USE_MULTIORG_PLANFORMULA RETURN NUMBER IS
296   BEGIN
297     DECLARE
298       ORG_SELECTION NUMBER;
299       USE_MULTIORG_PLAN NUMBER := 2;
300     BEGIN
301       IF (P_SCHED_TYPE = 2 AND P_REPORT_MULTIORG = 2) THEN
302         SELECT
303           ORGANIZATION_SELECTION
304         INTO ORG_SELECTION
305         FROM
306           MRP_SCHEDULE_DESIGNATORS SCHED
307         WHERE ORGANIZATION_ID = P_ORG_ID
308           AND SCHEDULE_DESIGNATOR = P_SCHED_NAME;
309       ELSIF (P_SCHED_TYPE = 2 AND P_REPORT_MULTIORG = 1) THEN
310         SELECT
311           DISTINCT
312           NVL(SCHED.ORGANIZATION_SELECTION
313              ,0)
314         INTO ORG_SELECTION
315         FROM
316           MRP_SCHEDULE_DESIGNATORS SCHED,
317           MRP_ORGANIZATIONS_V MO
318         WHERE SCHED.ORGANIZATION_ID = mo.organization_id (+)
319           AND SCHED.SCHEDULE_DESIGNATOR = mo.compile_designator (+)
320           AND NVL(MO.PLANNED_ORGANIZATION
321            ,SCHED.ORGANIZATION_ID) = P_ORG_ID
322           AND SCHED.SCHEDULE_DESIGNATOR = P_SCHED_NAME;
323       END IF;
324       IF ((ORG_SELECTION = 2) OR (ORG_SELECTION = 3)) THEN
325         USE_MULTIORG_PLAN := 1;
326       ELSE
327         USE_MULTIORG_PLAN := 2;
328       END IF;
329       RETURN (USE_MULTIORG_PLAN);
330     END;
331     RETURN NULL;
332   END C_P_USE_MULTIORG_PLANFORMULA;
333 
334   /*PROCEDURE MRP_WEEKS_MONTHS(ARG_QUERY_ID IN NUMBER
335                             ,ARG_USER_ID IN NUMBER
336                             ,ARG_WEEKS IN NUMBER
337                             ,ARG_PERIODS IN NUMBER
338                             ,ARG_START_DATE IN DATE
339                             ,ARG_ORG_ID IN NUMBER) IS
340   BEGIN
341 
342     MRP_WEEKS_MONTHS(ARG_QUERY_ID, ARG_USER_ID, ARG_WEEKS, ARG_PERIODS, ARG_START_DATE, ARG_ORG_ID);
343 
344   END MRP_WEEKS_MONTHS;*/
345 
346   PROCEDURE MRP_WEEKS_MONTHS(ARG_QUERY_ID IN NUMBER
347                             ,ARG_USER_ID IN NUMBER
348                             ,ARG_WEEKS IN NUMBER
349                             ,ARG_PERIODS IN NUMBER
350                             ,ARG_START_DATE IN DATE
351                             ,ARG_ORG_ID IN NUMBER) IS
352   BEGIN
353     MRP_REPORTING_BUCKETS.MRP_WEEKS_MONTHS(ARG_QUERY_ID, ARG_USER_ID, ARG_WEEKS, ARG_PERIODS, ARG_START_DATE, ARG_ORG_ID);
354 
355   END MRP_WEEKS_MONTHS;
356 
357 END MRP_MRPRPSST_XMLP_PKG;
358