DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_WIPDJDSP_XMLP_PKG

Source


1 PACKAGE BODY WIP_WIPDJDSP_XMLP_PKG AS
2 /* $Header: WIPDJDSPB.pls 120.1 2008/01/31 12:14:53 npannamp noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
6     QTY_PRECISION := wip_common_xmlp_pkg.get_precision(p_qty_precision);
7 
8           select id_flex_num_cl
9           into item_id_flex_num
10           from(
11           SELECT fifst.id_flex_num id_flex_num_cl
12           FROM fnd_id_flex_structures fifst
13           WHERE fifst.application_id = 401
14           AND fifst.id_flex_code = 'MSTK'
15           AND fifst.enabled_flag = 'Y'
16           AND fifst.freeze_flex_definition_flag = 'Y'
17           ORDER BY fifst.id_flex_num)
18           where rownum<2;
19     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
20     /*SRW.USER_EXIT('FND FLEXSQL CODE="MSTK"
21                                 APPL_SHORT_NAME="INV" OUTPUT=":P_ITEM_DATA"
22                                 MODE="SELECT" DISPLAY="ALL" TABLEALIAS="SI"')*/NULL;
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 DYNAMIC_ORDER_BY RETURN CHARACTER IS
33     ORDER_BY_CLAUSE VARCHAR2(500);
34   BEGIN
35     IF (SORT_CODE = 7) THEN
36       ORDER_BY_CLAUSE := 'ORDER BY 5 ASC,6 ASC , WO.FIRST_UNIT_START_DATE';
37     ELSIF (SORT_CODE = 8) THEN
38       ORDER_BY_CLAUSE := 'ORDER BY 5 ASC,6 ASC ,WO.LAST_UNIT_COMPLETION_DATE';
39     END IF;
40     ORDER_BY_CLAUSE := ORDER_BY_CLAUSE || ', WE.WIP_ENTITY_NAME, WO.OPERATION_SEQ_NUM, WE.WIP_ENTITY_ID';
41     RETURN (ORDER_BY_CLAUSE);
42   END DYNAMIC_ORDER_BY;
43 
44   FUNCTION DATE_LIMITER RETURN CHARACTER IS
45     LIMIT_DATES VARCHAR2(200);
46   BEGIN
47     IF (FROM_DATE IS NOT NULL) THEN
48       IF (TO_DATE IS NOT NULL) THEN
49         LIMIT_DATES := ' AND DECODE(' || TO_CHAR(SORT_CODE) || ',7,trunc(WO.FIRST_UNIT_START_DATE),8, trunc(WO.LAST_UNIT_COMPLETION_DATE)) BETWEEN TO_DATE(''' || TO_CHAR(FROM_DATE
50                               ,'YYYYMMDD') || ''',''YYYYMMDD'') AND TO_DATE(''' || TO_CHAR(TO_DATE
51                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
52       ELSE
53         LIMIT_DATES := ' AND DECODE(' || TO_CHAR(SORT_CODE) || ',7,trunc(WO.FIRST_UNIT_START_DATE),8, trunc(WO.LAST_UNIT_COMPLETION_DATE)) >= TO_DATE(''' || TO_CHAR(FROM_DATE
54                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
55       END IF;
56     ELSE
57       IF (TO_DATE IS NOT NULL) THEN
58         LIMIT_DATES := ' AND DECODE(' || TO_CHAR(SORT_CODE) || ',7,trunc(WO.FIRST_UNIT_START_DATE),8,trunc(WO.LAST_UNIT_COMPLETION_DATE)) <= TO_DATE(''' || TO_CHAR(TO_DATE
59                               ,'YYYYMMDD') || ''',''YYYYMMDD'')';
60       ELSE
61         LIMIT_DATES := ' ';
62       END IF;
63     END IF;
64     RETURN (LIMIT_DATES);
65   END DATE_LIMITER;
66 
67   FUNCTION DEPARTMENT_LIMITER RETURN CHARACTER IS
68     LIMIT_DEPT VARCHAR2(80);
69   BEGIN
70     IF (P_FROM_DEPT IS NOT NULL) THEN
71       IF (P_TO_DEPT IS NOT NULL) THEN
72         LIMIT_DEPT := ' AND BD.DEPARTMENT_CODE BETWEEN ''' || P_FROM_DEPT || ''' AND ''' || P_TO_DEPT || '''';
73       ELSE
74         LIMIT_DEPT := ' AND BD.DEPARTMENT_CODE >= ''' || P_FROM_DEPT || '''';
75       END IF;
76     ELSE
77       IF (P_TO_DEPT IS NOT NULL) THEN
78         LIMIT_DEPT := ' AND BD.DEPARTMENT_CODE <= ''' || P_TO_DEPT || '''';
79       ELSE
80         LIMIT_DEPT := ' ';
81       END IF;
82     END IF;
83     RETURN (LIMIT_DEPT);
84   END DEPARTMENT_LIMITER;
85 
86   FUNCTION C_QUANTITY_IN_PREVFORMULA(WE_ID_p IN NUMBER ,OP_SEQ_p IN NUMBER) RETURN NUMBER IS
87   BEGIN
88     /*SRW.REFERENCE(WE_ID)*/NULL;
89     /*SRW.REFERENCE(ORG_ID)*/NULL;
90     /*SRW.REFERENCE(OP_SEQ)*/NULL;
91 
92       SELECT (SUM(QUANTITY_IN_QUEUE)
93                   + SUM(QUANTITY_RUNNING)
94                   + SUM(QUANTITY_REJECTED)
95                   + SUM(QUANTITY_WAITING_TO_MOVE))
96                   INTO QUANTITY_REM_IN_PREV
97                   FROM WIP_OPERATIONS
98                   WHERE WIP_ENTITY_ID = WE_ID_p
99                   AND ORGANIZATION_ID = org_id
100                   AND OPERATION_SEQ_NUM < OP_SEQ_p;
101       RETURN (QUANTITY_REM_IN_PREV);
102   END C_QUANTITY_IN_PREVFORMULA;
103 
104   FUNCTION QUANTITY_REMAININGFORMULA(STATUS_TYPE IN NUMBER
105                                     ,QUANTITY_SCHEDULED IN NUMBER
106                                     ,QUANTITY_IN_QUEUE IN NUMBER
107                                     ,QUANTITY_RUNNING IN NUMBER
108                                     ,C_QUANTITY_IN_PREV IN NUMBER) RETURN NUMBER IS
109   BEGIN
110     IF (STATUS_TYPE = 1) THEN
111       RETURN QUANTITY_SCHEDULED;
112     ELSE
113       RETURN (QUANTITY_IN_QUEUE + QUANTITY_RUNNING + C_QUANTITY_IN_PREV);
114     END IF;
115     RETURN NULL;
116   END QUANTITY_REMAININGFORMULA;
117 
118   FUNCTION STATUS_LIMITER RETURN CHARACTER IS
119     STATUS VARCHAR2(3000);
120   BEGIN
121     IF (P_INCLUDE_UNRELEASE = 1) THEN
122       STATUS := 'AND    DJ.STATUS_TYPE IN (1,3,4,6)';
123     ELSE
124       STATUS := 'AND    DJ.STATUS_TYPE IN (3,4,6)';
125     END IF;
126     RETURN (STATUS);
127   END STATUS_LIMITER;
128 
129   FUNCTION AFTERPFORM RETURN BOOLEAN IS
130   BEGIN
131     IF P_SCHEDULE_GROUP IS NOT NULL THEN
132       P_SG_OUTER := ' ';
133     END IF;
134     RETURN (TRUE);
135   END AFTERPFORM;
136 
137   FUNCTION C_LIMITER RETURN VARCHAR2 IS
138     C_OUT VARCHAR2(200);
139   BEGIN
140     IF P_SCHEDULE_GROUP IS NOT NULL THEN
141       C_OUT := ' AND SG.SCHEDULE_GROUP_NAME = ''' || P_SCHEDULE_GROUP || '''';
142     ELSE
143       C_OUT := ' ';
144     END IF;
145     RETURN (C_OUT);
146   END C_LIMITER;
147 
148   FUNCTION QUANTITY_REM_IN_PREV_P RETURN NUMBER IS
149   BEGIN
150     RETURN QUANTITY_REM_IN_PREV;
151   END QUANTITY_REM_IN_PREV_P;
152 
153 END WIP_WIPDJDSP_XMLP_PKG;
154