DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_WIPREORQ_XMLP_PKG

Source


1 PACKAGE BODY WIP_WIPREORQ_XMLP_PKG AS
2 /* $Header: WIPREORQB.pls 120.1 2008/01/31 12:38:11 npannamp noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
6     QTY:=get_precision(P_qty_precision);
7     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
8     /*SRW.USER_EXIT('FND FLEXSQL CODE="MSTK"
9                   APPL_SHORT_NAME="INV" OUTPUT=":P_ASSY"
10                   TABLEALIAS="MSI"
11                   MODE="SELECT" DISPLAY="ALL"')*/NULL;
12     IF (P_FROM_COMP IS NOT NULL) THEN
13       IF (P_TO_COMP IS NOT NULL) THEN
14         NULL;
15       ELSE
16         NULL;
17       END IF;
18     ELSE
19       IF (P_TO_COMP IS NOT NULL) THEN
20         NULL;
21       END IF;
22     END IF;
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_LINES RETURN CHARACTER IS
33     LIMIT_LINES VARCHAR2(80);
34   BEGIN
35     IF (P_FROM_LINE IS NOT NULL) THEN
36       IF (P_TO_LINE IS NOT NULL) THEN
37         LIMIT_LINES := ' AND WL.LINE_CODE BETWEEN ''' || P_FROM_LINE || ''' AND ''' || P_TO_LINE || ''' ';
38       ELSE
39         LIMIT_LINES := ' AND WL.LINE_CODE  >= ''' || P_FROM_LINE || ''' ';
40       END IF;
41     ELSE
42       IF (P_TO_LINE IS NOT NULL) THEN
43         LIMIT_LINES := ' AND WL.LINE_CODE  <= ''' || P_TO_LINE || ''' ';
44       ELSE
45         LIMIT_LINES := ' ';
46       END IF;
47     END IF;
48     RETURN (LIMIT_LINES);
49   END LIMIT_LINES;
50 
51   FUNCTION OPEN_SHORT_LIMITER RETURN CHARACTER IS
52     QTY_OPEN_SHORT VARCHAR2(1000);
53   BEGIN
54     IF (P_AHEAD_BEHIND = 1) THEN
55       QTY_OPEN_SHORT := 'HAVING    (SUM((LEAST(BCD.NEXT_SEQ_NUM + WRS.PROCESSING_WORK_DAYS,
56                                                       :C_END_NUM  )
57                                                       - GREATEST(BCD.NEXT_SEQ_NUM, :C_START_NUM ))
58                                                       * WRO.QUANTITY_PER_ASSEMBLY * WRS.DAILY_PRODUCTION_RATE )
59                                                      + SUM(GREATEST((:C_START_NUM-BCD.NEXT_SEQ_NUM),0)
60                                                        *WRO.QUANTITY_PER_ASSEMBLY * WRS.DAILY_PRODUCTION_RATE)
61                                                      - SUM(WRO.QUANTITY_ISSUED)) > 0 ';
62     ELSE
63       QTY_OPEN_SHORT := 'HAVING (SUM((LEAST(BCD.NEXT_SEQ_NUM + WRS.PROCESSING_WORK_DAYS,:C_END_NUM)
64                                                       - GREATEST(BCD.NEXT_SEQ_NUM,:C_START_NUM))
65                                                       * WRO.QUANTITY_PER_ASSEMBLY * WRS.DAILY_PRODUCTION_RATE )
66                                                      - SUM(WRO.QUANTITY_ISSUED)) > 0 ';
67     END IF;
68     RETURN (QTY_OPEN_SHORT);
69   END OPEN_SHORT_LIMITER;
70 
71   FUNCTION OPEN_SHORTFORMULA RETURN NUMBER IS
72   BEGIN
73     RETURN (1);
74   END OPEN_SHORTFORMULA;
75 
76   FUNCTION ASSEMBLY_LIMITER RETURN CHARACTER IS
77     LIMIT_ASSLY VARCHAR2(200);
78   BEGIN
79     IF (P_FROM_ASSEMBLY IS NOT NULL) THEN
80       IF (P_TO_ASSEMBLY IS NOT NULL) THEN
81         LIMIT_ASSLY := ' AND WE.WIP_ENTITY_NAME BETWEEN ''' || P_FROM_ASSEMBLY || ''' AND ''' || P_TO_ASSEMBLY || '''';
82       ELSE
83         LIMIT_ASSLY := ' AND WE.WIP_ENTITY_NAME >= ''' || P_FROM_ASSEMBLY || '''';
84       END IF;
85     ELSE
86       IF (P_TO_ASSEMBLY IS NOT NULL) THEN
87         LIMIT_ASSLY := ' AND WE.WIP_ENTITY_NAME <= ''' || P_TO_ASSEMBLY || '''';
88       ELSE
89         LIMIT_ASSLY := ' ';
90       END IF;
91     END IF;
92     RETURN (LIMIT_ASSLY);
93   END ASSEMBLY_LIMITER;
94 
95   FUNCTION C_NETTABLE_CONSTRAINTFORMULA RETURN VARCHAR2 IS
96   BEGIN
97     IF (P_NETTABLE = 1) THEN
98       RETURN ('AND    MSS.AVAILABILITY_TYPE(+) = 1');
99     ELSE
100       RETURN (' ');
101     END IF;
102     RETURN NULL;
103   END C_NETTABLE_CONSTRAINTFORMULA;
104 
105   FUNCTION C_QTY_SHORT_QOHFORMULA(NET_QTY_COMP IN NUMBER
106                                  ,C_ITEM_TOTAL_QTY IN NUMBER
107                                  ,C_QTY_SHORT_FORMULA IN NUMBER
108                                  ,C_OPEN_REQUIREMENTS IN VARCHAR2
109                                  ,AVAIL_QTY IN NUMBER) RETURN NUMBER IS
110   BEGIN
111     /*SRW.REFERENCE(NET_QTY_COMP)*/NULL;
112     /*SRW.REFERENCE(C_ITEM_TOTAL_QTY)*/NULL;
113     /*SRW.REFERENCE(P_NETTABLE)*/NULL;
114     IF (P_OPEN_SHORT = 1) THEN
115       RETURN (C_QTY_SHORT_FORMULA - C_OPEN_REQUIREMENTS) * -1;
116     ELSE
117       RETURN -1 * (AVAIL_QTY - C_OPEN_REQUIREMENTS);
118     END IF;
119     RETURN NULL;
120   END C_QTY_SHORT_QOHFORMULA;
121 
122   FUNCTION C_TOTAL_QTY_FORMULAFORMULA(C_TOTAL_QTY IN NUMBER
123                                      ,SUPPLY_FLAG IN NUMBER) RETURN NUMBER IS
124   BEGIN
125     RETURN C_TOTAL_QTY * SUPPLY_FLAG;
126   END C_TOTAL_QTY_FORMULAFORMULA;
127 
128   FUNCTION C_QTY_SHORT_SUB_LOCFORMULA(C_QTY_SHORT_FORMULA IN NUMBER
129                                      ,QTY_OPEN IN NUMBER) RETURN NUMBER IS
130   BEGIN
131     RETURN (C_QTY_SHORT_FORMULA - QTY_OPEN) * -1;
132   END C_QTY_SHORT_SUB_LOCFORMULA;
133 
134   FUNCTION NET_QTY_DETAILFORMULA(AVAILABILITY_TYPE IN NUMBER
135                                 ,QUANTITY_ON_HAND IN NUMBER) RETURN NUMBER IS
136   BEGIN
137     RETURN (AVAILABILITY_TYPE * QUANTITY_ON_HAND);
138   END NET_QTY_DETAILFORMULA;
139 
140   FUNCTION AVAIL_QTYFORMULA(NET_QTY_COMP IN NUMBER
141                            ,C_ITEM_TOTAL_QTY IN NUMBER) RETURN NUMBER IS
142   BEGIN
143     IF (P_NETTABLE = 1) THEN
144       RETURN (NET_QTY_COMP);
145     ELSE
146       RETURN (C_ITEM_TOTAL_QTY);
147     END IF;
148     RETURN NULL;
149   END AVAIL_QTYFORMULA;
150 
151   FUNCTION C_LIMIT_COMPONENTSFORMULA RETURN VARCHAR2 IS
152   BEGIN
153     BEGIN
154       IF (P_FLEXWHERE IS NOT NULL) THEN
155         RETURN ('AND ');
156       ELSE
157         RETURN ('  ');
158       END IF;
159     END;
160     RETURN NULL;
161   END C_LIMIT_COMPONENTSFORMULA;
162 
163   FUNCTION ZEROFORMULA RETURN NUMBER IS
164   BEGIN
165     RETURN (0);
166   END ZEROFORMULA;
167 
168   FUNCTION C_COMPONENT_DISP_SORTFORMULA(C_COMPONENT_DISP_SORT IN VARCHAR2) RETURN VARCHAR2 IS
169   BEGIN
170     RETURN (C_COMPONENT_DISP_SORT);
171   END C_COMPONENT_DISP_SORTFORMULA;
172 
173   FUNCTION AFTERPFORM RETURN BOOLEAN IS
174   BEGIN
175     IF P_FROM_COMP IS NOT NULL OR P_TO_COMP IS NOT NULL THEN
176       P_ITEM_ORG := 'AND MSI2.ORGANIZATION_ID = :P_ORGANIZATION_ID';
177     END IF;
178     RETURN (TRUE);
179   END AFTERPFORM;
180 
181   FUNCTION LIMIT_BULK_SUPPLY_TYPE RETURN CHARACTER IS
182     LIMIT_BULK_SUPPLY_TYPE VARCHAR2(50);
183   BEGIN
184     IF (P_INCLUDE_BULK = 1) THEN
185       LIMIT_BULK_SUPPLY_TYPE := ' ';
186     ELSE
187       LIMIT_BULK_SUPPLY_TYPE := 'AND WRO.WIP_SUPPLY_TYPE <> 4 ';
188     END IF;
189     RETURN (LIMIT_BULK_SUPPLY_TYPE);
190   END LIMIT_BULK_SUPPLY_TYPE;
191 
192   FUNCTION LIMIT_VENDOR_SUPPLY_TYPE RETURN CHARACTER IS
193     LIMIT_VENDOR_SUPPLY_TYPE VARCHAR2(50);
194   BEGIN
195     IF (P_INCLUDE_VENDOR = 1) THEN
196       LIMIT_VENDOR_SUPPLY_TYPE := ' ';
197     ELSE
198       LIMIT_VENDOR_SUPPLY_TYPE := 'AND WRO.WIP_SUPPLY_TYPE <> 5 ';
199     END IF;
200     RETURN (LIMIT_VENDOR_SUPPLY_TYPE);
201   END LIMIT_VENDOR_SUPPLY_TYPE;
202 
203 function get_precision(qty_precision in number) return VARCHAR2 is
204 begin
205 
206 if qty_precision = 0 then return('999G999G999G990');
207 
208 elsif qty_precision = 1 then return('999G999G999G990D0');
209 
210 elsif qty_precision = 3 then return('999G999G999G990D000');
211 
212 elsif qty_precision = 4 then return('999G999G999G990D0000');
213 
214 elsif qty_precision = 5 then return('999G999G999G990D00000');
215 
216 elsif qty_precision = 6 then  return('999G999G999G990D000000');
217 
218 else return('999G999G999G990D00');
219 
220 end if;
221 
222 end;
223 
224 END WIP_WIPREORQ_XMLP_PKG;
225