DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_GLOBALS

Source


1 PACKAGE BODY WIP_Globals AS
2 /* $Header: WIPSGLBB.pls 115.11 2002/12/01 16:16:23 rmahidha ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'WIP_Globals';
7 
8 --  Procedure Get_Entities_Tbl.
9 --
10 --  Used by generator to avoid overriding or duplicating existing
11 --  entity constants.
12 --
13 --  DO NOT REMOVE
14 
15 PROCEDURE Get_Entities_Tbl
16 IS
17 I                             NUMBER:=0;
18 BEGIN
19 
20     FND_API.g_entity_tbl.DELETE;
21 
22 --  START GEN entities
23     I := I + 1;
24     FND_API.g_entity_tbl(I).name   := 'ALL';
25     I := I + 1;
26     FND_API.g_entity_tbl(I).name   := 'WIP_ENTITIES';
27     I := I + 1;
28     FND_API.g_entity_tbl(I).name   := 'FLOWSCHEDULE';
29     I := I + 1;
30     FND_API.g_entity_tbl(I).name   := 'DISCRETEJOB';
31     I := I + 1;
32     FND_API.g_entity_tbl(I).name   := 'REPSCHEDULE';
33     I := I + 1;
34     FND_API.g_entity_tbl(I).name   := 'WIPTRANSACTION';
35     I := I + 1;
36     FND_API.g_entity_tbl(I).name   := 'COMPONENTISSUE';
37     I := I + 1;
38     FND_API.g_entity_tbl(I).name   := 'OSP';
39     I := I + 1;
40     FND_API.g_entity_tbl(I).name   := 'SHOPFLOORMOVE';
41     I := I + 1;
42     FND_API.g_entity_tbl(I).name   := 'RESOURCE';
43 --  END GEN entities
44 
45 END Get_Entities_Tbl;
46 
47 --  Initialize control record.
48 
49 FUNCTION Init_Control_Rec
50 (   p_action                     IN  VARCHAR2
51 ,   p_control_rec                   IN  Control_Rec_Type
52 )RETURN Control_Rec_Type
53 IS
54 l_control_rec                 Control_Rec_Type;
55 BEGIN
56 
57     IF p_control_rec.controlled_operation THEN
58 
59         RETURN p_control_rec;
60 
61     ELSIF p_action = G_OPR_NONE OR p_action IS NULL THEN
62 
63         l_control_rec.default_attributes:=  FALSE;
64         l_control_rec.change_attributes :=  FALSE;
65         l_control_rec.validate_entity	:=  FALSE;
66         l_control_rec.write_to_DB	:=  FALSE;
67         l_control_rec.process		:=  p_control_rec.process;
68         l_control_rec.process_entity	:=  p_control_rec.process_entity;
69         l_control_rec.request_category	:=  p_control_rec.request_category;
70         l_control_rec.request_name	:=  p_control_rec.request_name;
71         l_control_rec.clear_api_cache	:=  p_control_rec.clear_api_cache;
72         l_control_rec.clear_api_requests:=  p_control_rec.clear_api_requests;
73 
74     ELSIF p_action = G_OPR_CREATE THEN
75 
76         l_control_rec.default_attributes:=   TRUE;
77         l_control_rec.change_attributes :=   FALSE;
78         l_control_rec.validate_entity  :=   TRUE;
79         l_control_rec.write_to_DB	:=   TRUE;
80         l_control_rec.process		:=   TRUE;
81         l_control_rec.process_entity	:=   G_ENTITY_ALL;
82         l_control_rec.clear_api_cache	:=   TRUE;
83         l_control_rec.clear_api_requests:=   TRUE;
84 
85     ELSIF p_action = G_OPR_UPDATE THEN
86 
87         l_control_rec.default_attributes:=   FALSE;
88         l_control_rec.change_attributes :=   TRUE;
89         l_control_rec.validate_entity	:=   TRUE;
90         l_control_rec.write_to_DB	:=   TRUE;
91         l_control_rec.process		:=   TRUE;
92         l_control_rec.process_entity	:=   G_ENTITY_ALL;
93         l_control_rec.clear_api_cache	:=   TRUE;
94         l_control_rec.clear_api_requests:=   TRUE;
95 
96     ELSIF p_action = G_OPR_DELETE THEN
97 
98         l_control_rec.default_attributes:=   FALSE;
99         l_control_rec.change_attributes :=   FALSE;
100         l_control_rec.validate_entity	  :=   TRUE;
101         l_control_rec.write_to_DB	  :=   TRUE;
102         l_control_rec.process		  :=   TRUE;
103         l_control_rec.process_entity	  :=   G_ENTITY_ALL;
104         l_control_rec.clear_api_cache	  :=   TRUE;
105         l_control_rec.clear_api_requests:=   TRUE;
106 
107     ELSE
108 
109         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
110         THEN
111             FND_MSG_PUB.Add_Exc_Msg
112             (   G_PKG_NAME
113             ,   'Init_Control_Rec'
114             ,   'Invalid action'
115             );
116         END IF;
117 
118         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119 
120     END IF;
121 
122     RETURN l_control_rec;
123 
124 END Init_Control_Rec;
125 
126 --  Function Equal
127 --  Number comparison.
128 
129 FUNCTION Equal
130 (   p_attribute1                    IN  NUMBER
131 ,   p_attribute2                    IN  NUMBER
132 )RETURN BOOLEAN
133 IS
134 BEGIN
135 
136     RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
137     	( p_attribute1 IS NOT NULL AND
138     	  p_attribute2 IS NOT NULL AND
139     	  p_attribute1 = p_attribute2 );
140 
141 END Equal;
142 
143 --  Varchar2 comparison.
144 
145 FUNCTION Equal
146 (   p_attribute1                    IN  VARCHAR2
147 ,   p_attribute2                    IN  VARCHAR2
148 )RETURN BOOLEAN
149 IS
150 BEGIN
151 
152     RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
153     	( p_attribute1 IS NOT NULL AND
154     	  p_attribute2 IS NOT NULL AND
155     	  p_attribute1 = p_attribute2 );
156 
157 END Equal;
158 
159 --  Date comparison.
160 
161 FUNCTION Equal
162 (   p_attribute1                    IN  DATE
163 ,   p_attribute2                    IN  DATE
164 )RETURN BOOLEAN
165 IS
166 BEGIN
167 
168     RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
169     	( p_attribute1 IS NOT NULL AND
170     	  p_attribute2 IS NOT NULL AND
171     	  p_attribute1 = p_attribute2 );
172 
173 END Equal;
174 
175 
176 PROCEDURE Add_Error_Message(p_product        VARCHAR2   := 'WIP',
177 			    p_message_name   VARCHAR2,
178 			    p_token1_name    VARCHAR2   := FND_API.G_MISS_CHAR,
179 			    p_token1_value   VARCHAR2   := FND_API.G_MISS_CHAR,
180 			    p_token2_name    VARCHAR2   := FND_API.G_MISS_CHAR,
181 			    p_token2_value   VARCHAR2   := FND_API.G_MISS_CHAR,
182 			    p_token3_name    VARCHAR2   := FND_API.G_MISS_CHAR,
183 			    p_token3_value   VARCHAR2   := FND_API.G_MISS_CHAR,
184 			    p_token4_name    VARCHAR2   := FND_API.G_MISS_CHAR,
185 			    p_token4_value   VARCHAR2   := FND_API.G_MISS_CHAR,
186 			    p_token5_name    VARCHAR2   := FND_API.G_MISS_CHAR,
187 			    p_token5_value   VARCHAR2   := FND_API.G_MISS_CHAR)
188 
189 IS
190 BEGIN
191 
192    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
193 
194       FND_MESSAGE.SET_NAME(p_product,p_message_name);
195 
196       IF p_token1_name <> FND_API.G_MISS_CHAR
197 	AND p_token1_value <> FND_API.G_MISS_CHAR THEN
198 	 FND_MESSAGE.SET_TOKEN(p_token1_name,p_token1_value);
199       END IF;
200       IF p_token2_name <> FND_API.G_MISS_CHAR
201 	AND p_token2_value <> FND_API.G_MISS_CHAR THEN
202 	 FND_MESSAGE.SET_TOKEN(p_token2_name,p_token2_value);
203       END IF;
204       IF p_token3_name <> FND_API.G_MISS_CHAR
205 	AND p_token3_value <> FND_API.G_MISS_CHAR THEN
206 	 FND_MESSAGE.SET_TOKEN(p_token3_name,p_token3_value);
207       END IF;
208       IF p_token4_name <> FND_API.G_MISS_CHAR
209 	AND p_token4_value <> FND_API.G_MISS_CHAR THEN
210 	 FND_MESSAGE.SET_TOKEN(p_token4_name,p_token4_value);
211       END IF;
212       IF p_token5_name <> FND_API.G_MISS_CHAR
213 	AND p_token5_value <> FND_API.G_MISS_CHAR THEN
214 	 FND_MESSAGE.SET_TOKEN(p_token5_name,p_token5_value);
215       END IF;
216 
217       FND_MSG_PUB.Add;
218 
219    END IF;
220 
221 END Add_Error_Message;
222 
223 
224 -- Displays 'p_msg_count' messages to the screen (dbms) then clears
225 -- the message stack.
226 
227 Procedure Display_all_msgs ( p_msg_count  IN NUMBER) IS
228 	i		NUMBER;
229 	cnt		NUMBER;
230 	msg_data	VARCHAR2(240);
231 BEGIN
232 	fnd_msg_pub.reset;
233         for i in 1..p_msg_count loop
234 
235             fnd_msg_pub.get (p_encoded    => FND_API.G_FALSE,
236                              p_data => msg_data,
237                              p_msg_index_out => cnt);
238 
239 --            dbms_output.put_line('error # ' || cnt || ': ' || msg_data);
240          end loop ;
241 	 fnd_msg_pub.initialize;
242 END Display_all_msgs;
243 
244 
245 
246 PROCEDURE  Get_Locator_Control
247   ( p_org_id 	        IN   NUMBER,
248     p_subinventory_code IN   VARCHAR2,
249     p_primary_item_id   IN   NUMBER,
250     x_return_status     OUT NOCOPY  VARCHAR2,
251     x_msg_count         OUT NOCOPY  NUMBER,
252     x_msg_data          OUT NOCOPY  VARCHAR2,
253     x_locator_control   OUT NOCOPY  NUMBER
254     ) IS
255 l_org_control     NUMBER;
256 l_sub_control     NUMBER;
257 l_item_control    NUMBER;
258 x_level           NUMBER;
259 
260 CURSOR org_loc_control  IS
261 SELECT  STOCK_LOCATOR_CONTROL_CODE
262 FROM    MTL_PARAMETERS
263 WHERE   ORGANIZATION_ID = p_org_id;
264 
265 CURSOR item_loc_control IS
266 SELECT  Location_Control_Code
267 FROM  mtl_system_items
268 WHERE  inventory_item_id = p_primary_item_id
269 AND    ORGANIZATION_ID = p_org_id;
270 
271 CURSOR sub_loc_control IS
272 SELECT  LOCATOR_TYPE
273 FROM  mtl_secondary_inventories
274 WHERE  ORGANIZATION_ID = p_org_id
275 AND    SECONDARY_INVENTORY_NAME = p_subinventory_code;
276 
277 BEGIN
278    OPEN org_loc_control;
279    FETCH org_loc_control INTO l_org_control;
280    CLOSE org_loc_control;
281 
282    OPEN item_loc_control;
283    FETCH item_loc_control INTO l_item_control;
284    CLOSE item_loc_control;
285 
286    OPEN sub_loc_control;
287    FETCH sub_loc_control INTO l_sub_control;
288    CLOSE sub_loc_control;
289 
290    MTL_INV_VALIDATE_GRP.LOCATOR_CONTROL(
291 					p_api_version => 0.9,
292 					x_return_status => x_return_status,
293 					x_msg_count => x_msg_count,
294 					x_msg_data => x_msg_data,
295 					p_org_control =>l_org_control,
296 					p_sub_control => l_sub_control,
297 					p_item_control => l_item_control,
298 					x_locator_control => x_locator_control,
299 					x_level => x_level);
300 
301 EXCEPTION
302     WHEN FND_API.G_EXC_ERROR THEN
303 
304         x_return_status := FND_API.G_RET_STS_ERROR;
305 
306     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
307 
308         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
309 
310     WHEN OTHERS THEN
311 
312        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
313        Add_Error_Message(p_message_name => 'UNEXPECTED_ERROR',
314 			 p_token1_name  => 'TEXT',
315 			 p_token1_value => Sqlerrm);
316 
317 
318 END  Get_Locator_Control;
319 
320 
321 function USE_PHANTOM_ROUTINGS(p_org_id in number) return number is
322 x_use_phantom_routings number;
323 begin
324 
325    Select USE_PHANTOM_ROUTINGS
326    INTO   x_use_phantom_routings
327    FROM   BOM_PARAMETERS
328    WHERE  organization_Id = p_org_id;
329 
330    if (x_use_phantom_routings = 1 ) then
331         return 1 ;
332    else
333         return 2 ;
334    end if ;
335 
336    exception
337         when no_data_found then
338                 return -2 ;
339         when others then
340                 return -1 ;
341 
342 end USE_PHANTOM_ROUTINGS;
343 
344 function INHERIT_PHANTOM_OP_SEQ(p_org_id in number) return number is
345 x_inherit_phantom_op_seq number;
346 begin
347 
348    Select INHERIT_PHANTOM_OP_SEQ
349    INTO   x_inherit_phantom_op_seq
350    FROM   BOM_PARAMETERS
351    WHERE  organization_Id = p_org_id;
352 
353    if (x_inherit_phantom_op_seq = 1 ) then
354         return 1 ;
355    else
356         return 2 ;
357    end if ;
358 
359    exception
360         when no_data_found then
361                 return -2 ;
362         when others then
363                 return -1 ;
364 
365 end INHERIT_PHANTOM_OP_SEQ;
366 
367 
368 
369 END WIP_Globals;