[Home] [Help]
PACKAGE BODY: APPS.OE_OE_FORM_LOT_SERIAL
Source
1 PACKAGE BODY OE_OE_Form_Lot_Serial AS
2 /* $Header: OEXFSRLB.pls 120.0 2005/05/31 22:34:38 appldev noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_Form_Lot_Serial';
7
8 -- Global variables holding cached record.
9
10 g_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
11 g_db_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_Lot_Serial
16 ( p_Lot_Serial_rec IN OE_Order_PUB.Lot_Serial_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 PROCEDURE Get_Lot_Serial
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_lot_serial_id IN NUMBER
23 , x_lot_serial_rec IN OUT NOCOPY OE_Order_PUB.Lot_Serial_Rec_Type
24 );
25
26 PROCEDURE Clear_Lot_Serial;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY VARCHAR2
37
38 , x_msg_count OUT NOCOPY NUMBER
39
40 , x_msg_data OUT NOCOPY VARCHAR2
41
42 , p_line_id IN NUMBER
43 , x_attribute1 OUT NOCOPY VARCHAR2
44
45 , x_attribute10 OUT NOCOPY VARCHAR2
46
47 , x_attribute11 OUT NOCOPY VARCHAR2
48
49 , x_attribute12 OUT NOCOPY VARCHAR2
50
51 , x_attribute13 OUT NOCOPY VARCHAR2
52
53 , x_attribute14 OUT NOCOPY VARCHAR2
54
55 , x_attribute15 OUT NOCOPY VARCHAR2
56
57 , x_attribute2 OUT NOCOPY VARCHAR2
58
59 , x_attribute3 OUT NOCOPY VARCHAR2
60
61 , x_attribute4 OUT NOCOPY VARCHAR2
62
63 , x_attribute5 OUT NOCOPY VARCHAR2
64
65 , x_attribute6 OUT NOCOPY VARCHAR2
66
67 , x_attribute7 OUT NOCOPY VARCHAR2
68
69 , x_attribute8 OUT NOCOPY VARCHAR2
70
71 , x_attribute9 OUT NOCOPY VARCHAR2
72
73 , x_context OUT NOCOPY VARCHAR2
74
75 , x_from_serial_number OUT NOCOPY VARCHAR2
76
77 , x_line_id OUT NOCOPY NUMBER
78
79 , x_lot_number OUT NOCOPY VARCHAR2
80
81 -- , x_sublot_number OUT NOCOPY VARCHAR2 --OPM 2380194 INVCONV
82
83 , x_lot_serial_id OUT NOCOPY NUMBER
84
85 , x_quantity OUT NOCOPY NUMBER
86
87 , x_quantity2 OUT NOCOPY NUMBER --OPM 2380194
88
89 , x_to_serial_number OUT NOCOPY VARCHAR2
90
91 , x_line OUT NOCOPY VARCHAR2
92
93 , x_lot_serial OUT NOCOPY VARCHAR2
94
95 )
96 IS
97 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
98 l_Lot_Serial_val_rec OE_Order_PUB.Lot_Serial_Val_Rec_Type;
99 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
100 l_x_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
101 l_x_Lot_Serial_val_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
102 l_control_rec OE_GLOBALS.Control_Rec_Type;
103 l_return_status VARCHAR2(1);
104 --
105 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
106 --
107 BEGIN
108
109 -- Set the UI flag
110 OE_GLOBALS.G_UI_FLAG := TRUE;
111
112 -- Set control flags.
113
114 l_control_rec.controlled_operation := TRUE;
115 l_control_rec.check_security := TRUE;
116 l_control_rec.default_attributes := TRUE;
117 l_control_rec.change_attributes := TRUE;
118
119 l_control_rec.clear_dependents := FALSE;
120 l_control_rec.validate_entity := FALSE;
121 l_control_rec.write_to_DB := FALSE;
122 l_control_rec.process := FALSE;
123
124 -- Instruct API to retain its caches
125
126 l_control_rec.clear_api_cache := FALSE;
127 l_control_rec.clear_api_requests := FALSE;
128
129 -- Load IN parameters if any exist
130 IF l_debug_level > 0 THEN
131 oe_debug_pub.add( 'LOT_SERIAL LINE_ID'||P_LINE_ID , 1 ) ;
132 END IF;
133 l_x_Lot_Serial_rec:=OE_ORDER_PUB.G_MISS_LOT_SERIAL_REC;
134 l_x_Old_Lot_Serial_Tbl(1):=OE_ORDER_PUB.G_MISS_LOT_SERIAL_REC;
135 l_x_Lot_Serial_rec.line_id := p_line_id;
136
137 -- Defaulting of flex values is currently done by the form.
138 -- Set flex attributes to NULL in order to avoid defaulting them.
139
140 l_x_lot_serial_rec.attribute1 := NULL;
141 l_x_lot_serial_rec.attribute10 := NULL;
142 l_x_lot_serial_rec.attribute11 := NULL;
143 l_x_lot_serial_rec.attribute12 := NULL;
144 l_x_lot_serial_rec.attribute13 := NULL;
145 l_x_lot_serial_rec.attribute14 := NULL;
146 l_x_lot_serial_rec.attribute15 := NULL;
147 l_x_lot_serial_rec.attribute2 := NULL;
148 l_x_lot_serial_rec.attribute3 := NULL;
149 l_x_lot_serial_rec.attribute4 := NULL;
150 l_x_lot_serial_rec.attribute5 := NULL;
151 l_x_lot_serial_rec.attribute6 := NULL;
152 l_x_lot_serial_rec.attribute7 := NULL;
153 l_x_lot_serial_rec.attribute8 := NULL;
154 l_x_lot_serial_rec.attribute9 := NULL;
155 l_x_lot_serial_rec.context := NULL;
156
157 -- Set Operation to Create
158
159 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_CREATE;
160
161 -- Populate Lot_Serial table
162
163 l_x_Lot_Serial_tbl(1) := l_x_Lot_Serial_rec;
164
165 IF l_debug_level > 0 THEN
166 oe_debug_pub.add( 'LOT_SERIAL CONTROLLER - DEFAULT ATTRIBUTES - CALLING PROCESS' , 2 ) ;
167 END IF;
168
169 -- Call OE_Order_PVT.Process_order
170
171 OE_Order_PVT.Lot_Serials
172 ( p_validation_level => FND_API.G_VALID_LEVEL_FULL
173 , p_init_msg_list => FND_API.G_TRUE
174 , p_control_rec => l_control_rec
175 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
176 , p_x_old_Lot_Serial_tbl => l_x_old_Lot_Serial_tbl
177 , x_return_status => l_return_status
178 );
179
180 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
181 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
182 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
183 RAISE FND_API.G_EXC_ERROR;
184 END IF;
185
186
187 -- Unload out tbl
188
189 l_x_Lot_Serial_rec := l_x_Lot_Serial_tbl(1);
190
191 -- Load OUT parameters.
192
193 x_attribute1 := l_x_Lot_Serial_rec.attribute1;
194 x_attribute10 := l_x_Lot_Serial_rec.attribute10;
195 x_attribute11 := l_x_Lot_Serial_rec.attribute11;
196 x_attribute12 := l_x_Lot_Serial_rec.attribute12;
197 x_attribute13 := l_x_Lot_Serial_rec.attribute13;
198 x_attribute14 := l_x_Lot_Serial_rec.attribute14;
199 x_attribute15 := l_x_Lot_Serial_rec.attribute15;
200 x_attribute2 := l_x_Lot_Serial_rec.attribute2;
201 x_attribute3 := l_x_Lot_Serial_rec.attribute3;
202 x_attribute4 := l_x_Lot_Serial_rec.attribute4;
203 x_attribute5 := l_x_Lot_Serial_rec.attribute5;
204 x_attribute6 := l_x_Lot_Serial_rec.attribute6;
205 x_attribute7 := l_x_Lot_Serial_rec.attribute7;
206 x_attribute8 := l_x_Lot_Serial_rec.attribute8;
207 x_attribute9 := l_x_Lot_Serial_rec.attribute9;
208 x_context := l_x_Lot_Serial_rec.context;
209 x_from_serial_number := l_x_Lot_Serial_rec.from_serial_number;
210 x_line_id := l_x_Lot_Serial_rec.line_id;
211 x_lot_number := l_x_Lot_Serial_rec.lot_number;
212 -- x_sublot_number := l_x_Lot_Serial_rec.sublot_number; --OPM 2380194 INVCONV
213 x_lot_serial_id := l_x_Lot_Serial_rec.lot_serial_id;
214 x_quantity := l_x_Lot_Serial_rec.quantity;
215 x_quantity2 := l_x_Lot_Serial_rec.quantity2; -- OPM 2380194
216 x_to_serial_number := l_x_Lot_Serial_rec.to_serial_number;
217
218 -- Load display out parameters if any
219
220 l_Lot_Serial_val_rec := OE_Lot_Serial_Util.Get_Values
221 ( p_Lot_Serial_rec => l_x_Lot_Serial_rec
222 );
223 x_line := l_Lot_Serial_val_rec.line;
224 x_lot_serial := l_Lot_Serial_val_rec.lot_serial;
225
226 -- Write to cache.
227 -- Set db_flag to False before writing to cache
228
229 l_x_Lot_Serial_rec.db_flag := FND_API.G_FALSE;
230
231 Write_Lot_Serial
232 ( p_Lot_Serial_rec => l_x_Lot_Serial_rec
233 );
234
235 -- Re-set the UI flag to FALSE
236 OE_GLOBALS.G_UI_FLAG := FALSE;
237
238 -- Set return status.
239
240 x_return_status := FND_API.G_RET_STS_SUCCESS;
241
242 -- Get message count and data
243
244 OE_MSG_PUB.Count_And_Get
245 ( p_count => x_msg_count
246 , p_data => x_msg_data
247 );
248
249 IF l_debug_level > 0 THEN
250 oe_debug_pub.add( 'EXITING OE_OE_FORM_LOT_SERIAL.DEFAULT_ATTRIBUTES' , 1 ) ;
251 END IF;
252
253 EXCEPTION
254
255 WHEN FND_API.G_EXC_ERROR THEN
256
257 OE_GLOBALS.G_UI_FLAG := FALSE;
258
259 x_return_status := FND_API.G_RET_STS_ERROR;
260
261 -- Get message count and data
262
263 OE_MSG_PUB.Count_And_Get
264 ( p_count => x_msg_count
265 , p_data => x_msg_data
266 );
267
268 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
269
270 OE_GLOBALS.G_UI_FLAG := FALSE;
271
272 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
273
274 -- Get message count and data
275
276 OE_MSG_PUB.Count_And_Get
277 ( p_count => x_msg_count
278 , p_data => x_msg_data
279 );
280
281 WHEN OTHERS THEN
282
283 OE_GLOBALS.G_UI_FLAG := FALSE;
284
285 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
286
287 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
288 THEN
289 OE_MSG_PUB.Add_Exc_Msg
290 ( G_PKG_NAME
291 , 'Default_Attributes'
292 );
293 END IF;
294
295 -- Get message count and data
296
297 OE_MSG_PUB.Count_And_Get
298 ( p_count => x_msg_count
299 , p_data => x_msg_data
300 );
301
302 END Default_Attributes;
303
304 -- Procedure : Change_Attribute
305 --
306
307 PROCEDURE Change_Attribute
308 ( x_return_status OUT NOCOPY VARCHAR2
309
310 , x_msg_count OUT NOCOPY NUMBER
311
312 , x_msg_data OUT NOCOPY VARCHAR2
313
314 , p_lot_serial_id IN NUMBER
315 , p_attr_id IN NUMBER
316 , p_attr_value IN VARCHAR2
317 , p_attribute1 IN VARCHAR2
318 , p_attribute10 IN VARCHAR2
319 , p_attribute11 IN VARCHAR2
320 , p_attribute12 IN VARCHAR2
321 , p_attribute13 IN VARCHAR2
322 , p_attribute14 IN VARCHAR2
323 , p_attribute15 IN VARCHAR2
324 , p_attribute2 IN VARCHAR2
325 , p_attribute3 IN VARCHAR2
326 , p_attribute4 IN VARCHAR2
327 , p_attribute5 IN VARCHAR2
328 , p_attribute6 IN VARCHAR2
329 , p_attribute7 IN VARCHAR2
330 , p_attribute8 IN VARCHAR2
331 , p_attribute9 IN VARCHAR2
332 , p_context IN VARCHAR2
333 , x_attribute1 OUT NOCOPY VARCHAR2
334
335 , x_attribute10 OUT NOCOPY VARCHAR2
336
337 , x_attribute11 OUT NOCOPY VARCHAR2
338
339 , x_attribute12 OUT NOCOPY VARCHAR2
340
341 , x_attribute13 OUT NOCOPY VARCHAR2
342
343 , x_attribute14 OUT NOCOPY VARCHAR2
344
345 , x_attribute15 OUT NOCOPY VARCHAR2
346
347 , x_attribute2 OUT NOCOPY VARCHAR2
348
349 , x_attribute3 OUT NOCOPY VARCHAR2
350
351 , x_attribute4 OUT NOCOPY VARCHAR2
352
353 , x_attribute5 OUT NOCOPY VARCHAR2
354
355 , x_attribute6 OUT NOCOPY VARCHAR2
356
357 , x_attribute7 OUT NOCOPY VARCHAR2
358
359 , x_attribute8 OUT NOCOPY VARCHAR2
360
361 , x_attribute9 OUT NOCOPY VARCHAR2
362
363 , x_context OUT NOCOPY VARCHAR2
364
365 , x_from_serial_number OUT NOCOPY VARCHAR2
366
367 , x_line_id OUT NOCOPY NUMBER
368
369 , x_lot_number OUT NOCOPY VARCHAR2
370
371 -- , x_sublot_number OUT NOCOPY VARCHAR2 --OPM 2380194 invconv
372
373 , x_lot_serial_id OUT NOCOPY NUMBER
374
375 , x_quantity OUT NOCOPY NUMBER
376
377 , x_quantity2 OUT NOCOPY NUMBER --OPM 2380194
378
379 , x_to_serial_number OUT NOCOPY VARCHAR2
380
381 , x_line OUT NOCOPY VARCHAR2
382
383 , x_lot_serial OUT NOCOPY VARCHAR2
384
385 )
386 IS
387 l_old_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
388 l_Lot_Serial_val_rec OE_Order_PUB.Lot_Serial_Val_Rec_Type;
389 l_x_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
390 l_control_rec OE_GLOBALS.Control_Rec_Type;
391 l_return_status VARCHAR2(1);
392 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
393 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
394 --
395 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
396 --
397 BEGIN
398
399 IF l_debug_level > 0 THEN
400 oe_debug_pub.add( 'ENTERING OE_OE_FORM_LOT_SERIAL.CHANGE_ATTRIBUTES' , 1 ) ;
401 END IF;
402 -- Set the UI flag
403 OE_GLOBALS.G_UI_FLAG := TRUE;
404
405 -- Set control flags.
406
407 l_control_rec.controlled_operation := TRUE;
408 l_control_rec.check_security := TRUE;
409 l_control_rec.clear_dependents := TRUE;
410 l_control_rec.default_attributes := TRUE;
411 l_control_rec.change_attributes := TRUE;
412
413 l_control_rec.validate_entity := FALSE;
414 l_control_rec.write_to_DB := FALSE;
415 l_control_rec.process := FALSE;
416 l_control_rec.process_entity := OE_GLOBALS.G_ENTITY_LOT_SERIAL;
417
418 -- Instruct API to retain its caches
419
420 l_control_rec.clear_api_cache := FALSE;
421 l_control_rec.clear_api_requests := FALSE;
422
423 -- Read Lot_Serial from cache
424
425 Get_Lot_Serial
426 ( p_db_record => FALSE
427 , p_lot_serial_id => p_lot_serial_id
428 , x_lot_serial_rec => l_x_Lot_Serial_rec
429 );
430
431 IF l_debug_level > 0 THEN
432 oe_debug_pub.add( 'CHANGE_ATTRIBUTES ATTR VALUE'||P_ATTR_VALUE , 1 ) ;
433 END IF;
434
435 l_old_Lot_Serial_rec := l_x_Lot_Serial_rec;
436
437 IF p_attr_id = OE_Lot_Serial_Util.G_FROM_SERIAL_NUMBER THEN
438 l_x_lot_serial_rec.from_serial_number := p_attr_value;
439 ELSIF p_attr_id = OE_Lot_Serial_Util.G_LINE THEN
440 l_x_lot_serial_rec.line_id := TO_NUMBER(p_attr_value);
441 ELSIF p_attr_id = OE_Lot_Serial_Util.G_LOT_NUMBER THEN
442 l_x_lot_serial_rec.lot_number := p_attr_value;
443 /*ELSIF p_attr_id = OE_Lot_Serial_Util.G_SUBLOT_NUMBER THEN --OPM 2380194 INVCONV
444 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
445 THEN
446 l_x_lot_serial_rec.sublot_number := p_attr_value;
447 END IF; */
448 ELSIF p_attr_id = OE_Lot_Serial_Util.G_LOT_SERIAL THEN
449 l_x_lot_serial_rec.lot_serial_id := TO_NUMBER(p_attr_value);
450 ELSIF p_attr_id = OE_Lot_Serial_Util.G_QUANTITY THEN
451 IF l_debug_level > 0 THEN
452 oe_debug_pub.add( 'IN QUANTITY CHANGE' , 1 ) ;
453 END IF;
454 l_x_lot_serial_rec.quantity := TO_NUMBER(p_attr_value);
455 ELSIF p_attr_id = OE_Lot_Serial_Util.G_QUANTITY2 THEN --OPM 2380194
456 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
457 THEN
458 l_x_lot_serial_rec.quantity2 := TO_NUMBER(p_attr_value);
459 END IF;
460 ELSIF p_attr_id = OE_Lot_Serial_Util.G_TO_SERIAL_NUMBER THEN
461 l_x_lot_serial_rec.to_serial_number := p_attr_value;
462 ELSIF p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE1
463 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE10
464 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE12
465 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE13
466 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE14
467 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE15
468 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE2
469 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE3
470 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE4
471 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE5
472 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE6
473 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE7
474 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE8
475 OR p_attr_id = OE_Lot_Serial_Util.G_ATTRIBUTE9
476 OR p_attr_id = OE_Lot_Serial_Util.G_CONTEXT
477 THEN
478
479 l_x_lot_serial_rec.attribute1 := p_attribute1;
480 l_x_lot_serial_rec.attribute10 := p_attribute10;
481 l_x_lot_serial_rec.attribute12 := p_attribute12;
482 l_x_lot_serial_rec.attribute13 := p_attribute13;
483 l_x_lot_serial_rec.attribute14 := p_attribute14;
484 l_x_lot_serial_rec.attribute15 := p_attribute15;
485 l_x_lot_serial_rec.attribute2 := p_attribute2;
486 l_x_lot_serial_rec.attribute3 := p_attribute3;
487 l_x_lot_serial_rec.attribute4 := p_attribute4;
488 l_x_lot_serial_rec.attribute5 := p_attribute5;
489 l_x_lot_serial_rec.attribute6 := p_attribute6;
490 l_x_lot_serial_rec.attribute7 := p_attribute7;
491 l_x_lot_serial_rec.attribute8 := p_attribute8;
492 l_x_lot_serial_rec.attribute9 := p_attribute9;
493 l_x_lot_serial_rec.context := p_context;
494
495 ELSE
496 -- Unexpected error, unrecognized attribute
497
498 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
499 THEN
500 OE_MSG_PUB.Add_Exc_Msg
501 ( G_PKG_NAME
502 , 'Change_Attribute'
503 , 'Unrecognized attribute'
504 );
505 END IF;
506
507
508 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
509
510 END IF;
511
512 -- Set Operation.
513 IF FND_API.To_Boolean(l_x_Lot_Serial_rec.db_flag) THEN
514 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
515 ELSE
516 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_CREATE;
517 END IF;
518
519 -- Populate Lot_Serial table
520 l_x_Lot_Serial_tbl(1) := l_x_Lot_Serial_rec;
521 l_x_old_Lot_Serial_tbl(1) := l_old_Lot_Serial_rec;
522
523 -- Call OE_Order_PVT.Process_order
524
525 IF l_debug_level > 0 THEN
526 oe_debug_pub.add( 'BEFORE CALLING OE_ORDER_PVT.LOT_SERIALS'||TO_CHAR ( L_X_LOT_SERIAL_TBL ( 1 ) .QUANTITY ) , 1 ) ;
527 END IF;
528 OE_Order_PVT.Lot_Serials
529 (
530 p_validation_level => FND_API.G_VALID_LEVEL_NONE
531 , p_init_msg_list => FND_API.G_TRUE
532 , p_control_rec => l_control_rec
533 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
534 , p_x_old_Lot_Serial_tbl => l_x_old_Lot_Serial_tbl
535 , x_return_status => l_return_status
536 );
537
538 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
539 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
540 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
541 RAISE FND_API.G_EXC_ERROR;
542 END IF;
543
544 IF l_debug_level > 0 THEN
545 oe_debug_pub.add( 'AFTER CALLING OE_ORDER_PVT.LOT_SERIALS'||TO_CHAR ( L_X_LOT_SERIAL_TBL ( 1 ) .QUANTITY ) , 1 ) ;
546 END IF;
547
548 -- Unload out tbl
549
550 l_x_Lot_Serial_rec := l_x_Lot_Serial_tbl(1);
551
552 -- Init OUT parameters to missing.
553
554 x_attribute1 := FND_API.G_MISS_CHAR;
555 x_attribute10 := FND_API.G_MISS_CHAR;
556 x_attribute11 := FND_API.G_MISS_CHAR;
557 x_attribute12 := FND_API.G_MISS_CHAR;
558 x_attribute13 := FND_API.G_MISS_CHAR;
559 x_attribute14 := FND_API.G_MISS_CHAR;
560 x_attribute15 := FND_API.G_MISS_CHAR;
561 x_attribute2 := FND_API.G_MISS_CHAR;
562 x_attribute3 := FND_API.G_MISS_CHAR;
563 x_attribute4 := FND_API.G_MISS_CHAR;
564 x_attribute5 := FND_API.G_MISS_CHAR;
565 x_attribute6 := FND_API.G_MISS_CHAR;
566 x_attribute7 := FND_API.G_MISS_CHAR;
567 x_attribute8 := FND_API.G_MISS_CHAR;
568 x_attribute9 := FND_API.G_MISS_CHAR;
569 x_context := FND_API.G_MISS_CHAR;
570 x_from_serial_number := FND_API.G_MISS_CHAR;
571 x_line_id := FND_API.G_MISS_NUM;
572 x_lot_number := FND_API.G_MISS_CHAR;
573 -- x_sublot_number := FND_API.G_MISS_CHAR; --OPM 2380194 INVCONV
574 x_lot_serial_id := FND_API.G_MISS_NUM;
575 x_quantity := FND_API.G_MISS_NUM;
576 x_quantity2 := FND_API.G_MISS_NUM; --OPM 2380194
577 x_to_serial_number := FND_API.G_MISS_CHAR;
578 x_line := FND_API.G_MISS_CHAR;
579 x_lot_serial := FND_API.G_MISS_CHAR;
580
581 -- Load display out parameters if any
582
583 l_Lot_Serial_val_rec := OE_Lot_Serial_Util.Get_Values
584 ( p_Lot_Serial_rec => l_x_Lot_Serial_rec
585 , p_old_Lot_Serial_rec => l_old_Lot_Serial_rec
586 );
587 IF l_debug_level > 0 THEN
588 oe_debug_pub.add( 'AFTER CALLING OE_LOT_SERIAL_UTIL.GET_VALUES' , 1 ) ;
589 END IF;
590
591 IF l_debug_level > 0 THEN
592 oe_debug_pub.add( 'QUANTITY '||TO_CHAR ( L_X_LOT_SERIAL_REC.QUANTITY ) , 1 ) ;
593 END IF;
594 IF l_debug_level > 0 THEN
595 oe_debug_pub.add( 'OLD QUANTITY '||TO_CHAR ( L_OLD_LOT_SERIAL_REC.QUANTITY ) , 1 ) ;
596 END IF;
597 -- Return changed attributes.
598
599 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute1,
600 l_old_lot_serial_rec.attribute1)
601 THEN
602 x_attribute1 := l_x_Lot_Serial_rec.attribute1;
603 END IF;
604
605 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute10,
606 l_old_lot_serial_rec.attribute10)
607 THEN
608 x_attribute10 := l_x_Lot_Serial_rec.attribute10;
609 END IF;
610
611 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute11,
612 l_old_lot_serial_rec.attribute11)
613 THEN
614 x_attribute11 := l_x_Lot_Serial_rec.attribute11;
615 END IF;
616
617 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute12,
618 l_old_lot_serial_rec.attribute12)
619 THEN
620 x_attribute12 := l_x_Lot_Serial_rec.attribute12;
621 END IF;
622
623 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute13,
624 l_old_lot_serial_rec.attribute13)
625 THEN
626 x_attribute13 := l_x_Lot_Serial_rec.attribute13;
627 END IF;
628
629 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute14,
630 l_old_lot_serial_rec.attribute14)
631 THEN
632 x_attribute14 := l_x_Lot_Serial_rec.attribute14;
633 END IF;
634
635 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute15,
636 l_old_lot_serial_rec.attribute15)
637 THEN
638 x_attribute15 := l_x_Lot_Serial_rec.attribute15;
639 END IF;
640
641 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute2,
642 l_old_lot_serial_rec.attribute2)
643 THEN
644 x_attribute2 := l_x_Lot_Serial_rec.attribute2;
645 END IF;
646
647 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute3,
648 l_old_lot_serial_rec.attribute3)
649 THEN
650 x_attribute3 := l_x_Lot_Serial_rec.attribute3;
651 END IF;
652
653 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute4,
654 l_old_lot_serial_rec.attribute4)
655 THEN
656 x_attribute4 := l_x_Lot_Serial_rec.attribute4;
657 END IF;
658
659 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute5,
660 l_old_lot_serial_rec.attribute5)
661 THEN
662 x_attribute5 := l_x_Lot_Serial_rec.attribute5;
663 END IF;
664
665 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute6,
666 l_old_lot_serial_rec.attribute6)
667 THEN
668 x_attribute6 := l_x_Lot_Serial_rec.attribute6;
669 END IF;
670
671 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute7,
672 l_old_lot_serial_rec.attribute7)
673 THEN
674 x_attribute7 := l_x_Lot_Serial_rec.attribute7;
675 END IF;
676
677 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute8,
678 l_old_lot_serial_rec.attribute8)
679 THEN
680 x_attribute8 := l_x_Lot_Serial_rec.attribute8;
681 END IF;
682
683 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.attribute9,
684 l_old_lot_serial_rec.attribute9)
685 THEN
686 x_attribute9 := l_x_Lot_Serial_rec.attribute9;
687 END IF;
688
689 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.context,
690 l_old_lot_serial_rec.context)
691 THEN
692 x_context := l_x_Lot_Serial_rec.context;
693 END IF;
694
695 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.from_serial_number,
696 l_old_lot_serial_rec.from_serial_number)
697 THEN
698 x_from_serial_number := l_x_Lot_Serial_rec.from_serial_number;
699 END IF;
700
701 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.line_id,
702 l_old_lot_serial_rec.line_id)
703 THEN
704 x_line_id := l_x_Lot_Serial_rec.line_id;
705 x_line := l_Lot_Serial_val_rec.line;
706 END IF;
707
708 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.lot_number,
709 l_old_lot_serial_rec.lot_number)
710 THEN
711 x_lot_number := l_x_Lot_Serial_rec.lot_number;
712 END IF;
713
714 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
715 THEN
716
717 /*IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.sublot_number, --OPM 2380194 INVCONV
718 l_old_lot_serial_rec.sublot_number)
719 THEN
720 x_sublot_number := l_x_Lot_Serial_rec.sublot_number;
721 END IF; */
722
723 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.quantity2, --OPM 2380194
724 l_old_lot_serial_rec.quantity2)
725 THEN
726 IF l_debug_level > 0 THEN
727 oe_debug_pub.add('The Quantity2 Has Changed', 1);
728 END IF;
729 x_quantity2 := l_x_Lot_Serial_rec.quantity2;
730 END IF;
731
732 END IF;
733
734
735 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.lot_serial_id,
736 l_old_lot_serial_rec.lot_serial_id)
737 THEN
738 x_lot_serial_id := l_x_Lot_Serial_rec.lot_serial_id;
739 x_lot_serial := l_Lot_Serial_val_rec.lot_serial;
740 END IF;
741
742 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.quantity,
743 l_old_lot_serial_rec.quantity)
744 THEN
745 IF l_debug_level > 0 THEN
746 oe_debug_pub.add( 'THE QUANTITY HAS CHANGED' , 1 ) ;
747 END IF;
748 x_quantity := l_x_Lot_Serial_rec.quantity;
749 END IF;
750
751 IF NOT OE_GLOBALS.Equal(l_x_Lot_Serial_rec.to_serial_number,
752 l_old_lot_serial_rec.to_serial_number)
753 THEN
754 x_to_serial_number := l_x_Lot_Serial_rec.to_serial_number;
755 END IF;
756
757
758 -- Write to cache.
759
760 Write_Lot_Serial
761 ( p_Lot_Serial_rec => l_x_Lot_Serial_rec
762 );
763
764 -- Re-set the UI flag to FALSE
765 OE_GLOBALS.G_UI_FLAG := FALSE;
766
767 -- Set return status.
768
769 x_return_status := FND_API.G_RET_STS_SUCCESS;
770
771 -- Get message count and data
772
773 OE_MSG_PUB.Count_And_Get
774 ( p_count => x_msg_count
775 , p_data => x_msg_data
776 );
777 IF l_debug_level > 0 THEN
778 oe_debug_pub.add( 'EXITING OE_OE_FORM_LOT_SERIAL.CHANGE_ATTRIBUTES' , 1 ) ;
779 END IF;
780
781
782 EXCEPTION
783
784 WHEN FND_API.G_EXC_ERROR THEN
785
786 OE_GLOBALS.G_UI_FLAG := FALSE;
787
788 x_return_status := FND_API.G_RET_STS_ERROR;
789
790 -- Get message count and data
791
792 OE_MSG_PUB.Count_And_Get
793 ( p_count => x_msg_count
794 , p_data => x_msg_data
795 );
796
797 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
798
799 OE_GLOBALS.G_UI_FLAG := FALSE;
800
801 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
802
803 -- Get message count and data
804
805 OE_MSG_PUB.Count_And_Get
806 ( p_count => x_msg_count
807 , p_data => x_msg_data
808 );
809
810 WHEN OTHERS THEN
811
812 OE_GLOBALS.G_UI_FLAG := FALSE;
813
814 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
815
816 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
817 THEN
818 OE_MSG_PUB.Add_Exc_Msg
819 ( G_PKG_NAME
820 , 'Change_Attribute'
821 );
822 END IF;
823
824 -- Get message count and data
825
826 OE_MSG_PUB.Count_And_Get
827 ( p_count => x_msg_count
828 , p_data => x_msg_data
829 );
830
831 END Change_Attribute;
832
833 -- Procedure Validate_And_Write
834 --
835
836 PROCEDURE Validate_And_Write
837 ( x_return_status OUT NOCOPY VARCHAR2
838
839 , x_msg_count OUT NOCOPY NUMBER
840
841 , x_msg_data OUT NOCOPY VARCHAR2
842
843 , p_lot_serial_id IN NUMBER
844 , x_creation_date OUT NOCOPY DATE
845
846 , x_created_by OUT NOCOPY NUMBER
847
848 , x_last_update_date OUT NOCOPY DATE
849
850 , x_last_updated_by OUT NOCOPY NUMBER
851
852 , x_last_update_login OUT NOCOPY NUMBER
853
854 , x_lock_control OUT NOCOPY NUMBER
855
856 )
857 IS
858 l_x_old_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
859 l_x_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
860 l_control_rec OE_GLOBALS.Control_Rec_Type;
861 l_return_status VARCHAR2(1);
862 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
863 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
864 --
865 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
866 --
867 BEGIN
868
869 IF l_debug_level > 0 THEN
870 oe_debug_pub.add( 'ENTERING OE_OE_FORM_LOT_SERIAL.VALIDATE_AND_WRITE' , 1 ) ;
871 END IF;
872 -- Set the UI flag
873 OE_GLOBALS.G_UI_FLAG := TRUE;
874
875 -- Set control flags.
876
877 l_control_rec.controlled_operation := TRUE;
878 l_control_rec.validate_entity := TRUE;
879 l_control_rec.write_to_DB := TRUE;
880
881 l_control_rec.check_security := FALSE;
882 l_control_rec.clear_dependents := FALSE;
883 l_control_rec.default_attributes := FALSE;
884 l_control_rec.change_attributes := FALSE;
885 l_control_rec.process := FALSE;
886 l_control_rec.process_entity := OE_GLOBALS.G_ENTITY_LOT_SERIAL;
887
888 -- Instruct API to retain its caches
889
890 l_control_rec.clear_api_cache := FALSE;
891 l_control_rec.clear_api_requests := FALSE;
892
893 -- Read Lot_Serial from cache
894
895 Get_Lot_Serial
896 ( p_db_record => TRUE
897 , p_lot_serial_id => p_lot_serial_id
898 , x_lot_serial_rec => l_x_old_Lot_Serial_rec
899 );
900
901 Get_Lot_Serial
902 ( p_db_record => FALSE
903 , p_lot_serial_id => p_lot_serial_id
904 , x_lot_serial_rec => l_x_Lot_Serial_rec
905 );
906
907 -- Set Operation.
908
909 IF FND_API.To_Boolean(l_x_Lot_Serial_rec.db_flag) THEN
910 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
911 ELSE
912 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_CREATE;
913 END IF;
914
915 -- Populate Lot_Serial table
916
917 l_x_Lot_Serial_tbl(1) := l_x_Lot_Serial_rec;
918 l_x_old_Lot_Serial_tbl(1) := l_x_old_Lot_Serial_rec;
919
920 -- Call OE_Order_PVT.Process_order
921
922 OE_Order_PVT.Lot_Serials
923 ( p_validation_level =>FND_API.G_VALID_LEVEL_FULL
924 , p_init_msg_list => FND_API.G_TRUE
925 , p_control_rec => l_control_rec
926 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
927 , p_x_old_Lot_Serial_tbl => l_x_old_Lot_Serial_tbl
928 , x_return_status => l_return_status
929 );
930
931 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
932 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
933 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
934 RAISE FND_API.G_EXC_ERROR;
935 END IF;
936 /* The Process Requests and Notify call should be there for */
937 /* Pre-Pack code level */
938
939 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110508' THEN
940
941 Oe_Order_Pvt.Process_Requests_And_Notify
942 ( p_process_requests => FALSE
943 , p_init_msg_list => FND_API.G_FALSE
944 , p_notify => TRUE
945 , x_return_status => l_return_status
946 , p_Lot_Serial_Tbl => l_x_Lot_Serial_Tbl
947 , p_Old_Lot_Serial_Tbl => l_x_old_Lot_Serial_Tbl
948 );
949
950 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
951 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
952 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
953 RAISE FND_API.G_EXC_ERROR;
954 END IF;
955
956 END IF;
957
958 -- Load OUT parameters.
959
960 l_x_Lot_Serial_rec := l_x_Lot_Serial_tbl(1);
961
962 x_creation_date := l_x_Lot_Serial_rec.creation_date;
963 x_created_by := l_x_Lot_Serial_rec.created_by;
964 x_last_update_date := l_x_Lot_Serial_rec.last_update_date;
965 x_last_updated_by := l_x_Lot_Serial_rec.last_updated_by;
966 x_last_update_login := l_x_Lot_Serial_rec.last_update_login;
967 x_lock_control := l_x_Lot_Serial_rec.lock_control;
968
969 -- Clear Lot_Serial record cache
970
971 Clear_Lot_Serial;
972
973 -- Keep track of performed operations.
974
975 l_x_old_Lot_Serial_rec.operation := l_x_Lot_Serial_rec.operation;
976
977
978 -- Re-set the UI flag to FALSE
979 OE_GLOBALS.G_UI_FLAG := FALSE;
980
981 -- Set return status.
982
983 x_return_status := FND_API.G_RET_STS_SUCCESS;
984
985 -- Get message count and data
986
987 OE_MSG_PUB.Count_And_Get
988 ( p_count => x_msg_count
989 , p_data => x_msg_data
990 );
991
992 IF l_debug_level > 0 THEN
993 oe_debug_pub.add( 'EXITING OE_OE_FORM_LOT_SERIAL.VALIDATE_AND_WRITE' , 1 ) ;
994 END IF;
995
996 EXCEPTION
997
998 WHEN FND_API.G_EXC_ERROR THEN
999
1000 OE_GLOBALS.G_UI_FLAG := FALSE;
1001
1002 x_return_status := FND_API.G_RET_STS_ERROR;
1003
1004 -- Get message count and data
1005
1006 OE_MSG_PUB.Count_And_Get
1007 ( p_count => x_msg_count
1008 , p_data => x_msg_data
1009 );
1010 IF l_debug_level > 0 THEN
1011 oe_debug_pub.add( 'ERROR IN OE_OE_FORM_LOT_SERIAL.VALIDATE_AND_WRITE '|| TO_CHAR ( X_MSG_COUNT ) , 1 ) ;
1012 END IF;
1013 IF l_debug_level > 0 THEN
1014 oe_debug_pub.add( 'ERROR IN OE_OE_FORM_LOT_SERIAL.VALIDATE_AND_WRITE '|| X_MSG_DATA , 1 ) ;
1015 END IF;
1016
1017 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1018
1019 OE_GLOBALS.G_UI_FLAG := FALSE;
1020
1021 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1022
1023 -- Get message count and data
1024
1025 OE_MSG_PUB.Count_And_Get
1026 ( p_count => x_msg_count
1027 , p_data => x_msg_data
1028 );
1029
1030 WHEN OTHERS THEN
1031
1032 OE_GLOBALS.G_UI_FLAG := FALSE;
1033
1034 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1035
1036 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1037 THEN
1038 OE_MSG_PUB.Add_Exc_Msg
1039 ( G_PKG_NAME
1040 , 'Validate_And_Write'
1041 );
1042 END IF;
1043
1044 -- Get message count and data
1045
1046 OE_MSG_PUB.Count_And_Get
1047 ( p_count => x_msg_count
1048 , p_data => x_msg_data
1049 );
1050
1051 END Validate_And_Write;
1052
1053 -- Procedure Delete_Row
1054 --
1055
1056 PROCEDURE Delete_Row
1057 ( x_return_status OUT NOCOPY VARCHAR2
1058
1059 , x_msg_count OUT NOCOPY NUMBER
1060
1061 , x_msg_data OUT NOCOPY VARCHAR2
1062
1063 , p_lot_serial_id IN NUMBER
1064 )
1065 IS
1066 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
1067 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
1068 l_x_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
1069 l_control_rec OE_GLOBALS.Control_Rec_Type;
1070 l_return_status VARCHAR2(1);
1071 --
1072 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1073 --
1074 BEGIN
1075
1076 -- Set the UI flag
1077 OE_GLOBALS.G_UI_FLAG := TRUE;
1078
1079 -- Set control flags.
1080
1081 l_control_rec.controlled_operation := TRUE;
1082 l_control_rec.check_security := TRUE;
1083 l_control_rec.validate_entity := TRUE;
1084 l_control_rec.write_to_DB := TRUE;
1085
1086 l_control_rec.clear_dependents := FALSE;
1087 l_control_rec.default_attributes := FALSE;
1088 l_control_rec.change_attributes := FALSE;
1089 l_control_rec.process := FALSE;
1090
1091 -- Instruct API to retain its caches
1092
1093 l_control_rec.clear_api_cache := FALSE;
1094 l_control_rec.clear_api_requests := FALSE;
1095
1096 -- Read DB record from cache
1097
1098 Get_Lot_Serial
1099 ( p_db_record => TRUE
1100 , p_lot_serial_id => p_lot_serial_id
1101 , x_lot_serial_rec => l_x_Lot_Serial_rec
1102 );
1103
1104 -- Set Operation.
1105
1106 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1107
1108 -- Populate Lot_Serial table
1109
1110 l_x_Lot_Serial_tbl(1) := l_x_Lot_Serial_rec;
1111
1112 -- Call OE_Order_PVT.Process_order
1113
1114 OE_Order_PVT.Lot_Serials
1115 ( p_validation_level => FND_API.G_VALID_LEVEL_FULL
1116 , p_init_msg_list => FND_API.G_TRUE
1117 , p_control_rec => l_control_rec
1118 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
1119 , p_x_old_Lot_Serial_tbl => l_x_old_Lot_Serial_tbl
1120 , x_return_status => l_return_status
1121 );
1122
1123 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1124 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1125 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1126 RAISE FND_API.G_EXC_ERROR;
1127 END IF;
1128
1129
1130 -- Clear Lot_Serial record cache
1131
1132 Clear_Lot_Serial;
1133
1134 -- Re-set the UI flag to FALSE
1135 OE_GLOBALS.G_UI_FLAG := FALSE;
1136
1137 -- Set return status.
1138
1139 x_return_status := FND_API.G_RET_STS_SUCCESS;
1140
1141 -- Get message count and data
1142
1143 OE_MSG_PUB.Count_And_Get
1144 ( p_count => x_msg_count
1145 , p_data => x_msg_data
1146 );
1147
1148
1149 EXCEPTION
1150
1151 WHEN FND_API.G_EXC_ERROR THEN
1152
1153 OE_GLOBALS.G_UI_FLAG := FALSE;
1154
1155 x_return_status := FND_API.G_RET_STS_ERROR;
1156
1157 -- Get message count and data
1158
1159 OE_MSG_PUB.Count_And_Get
1160 ( p_count => x_msg_count
1161 , p_data => x_msg_data
1162 );
1163
1164 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1165
1166 OE_GLOBALS.G_UI_FLAG := FALSE;
1167
1168 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1169
1170 -- Get message count and data
1171
1172 OE_MSG_PUB.Count_And_Get
1173 ( p_count => x_msg_count
1174 , p_data => x_msg_data
1175 );
1176
1177 WHEN OTHERS THEN
1178
1179 OE_GLOBALS.G_UI_FLAG := FALSE;
1180
1181 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1182
1183 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1184 THEN
1185 OE_MSG_PUB.Add_Exc_Msg
1186 ( G_PKG_NAME
1187 , 'Delete_Row'
1188 );
1189 END IF;
1190
1191 -- Get message count and data
1192
1193 OE_MSG_PUB.Count_And_Get
1194 ( p_count => x_msg_count
1195 , p_data => x_msg_data
1196 );
1197
1198 END Delete_Row;
1199
1200 -- Procedure Process_Entity
1201 --
1202
1203 PROCEDURE Process_Entity
1204 ( x_return_status OUT NOCOPY VARCHAR2
1205
1206 , x_msg_count OUT NOCOPY NUMBER
1207
1208 , x_msg_data OUT NOCOPY VARCHAR2
1209
1210 )
1211 IS
1212 l_return_status VARCHAR2(1);
1213 /*l_action_request_tbl OE_Order_PUB.Request_Tbl_Type;
1214 l_control_rec OE_GLOBALS.Control_Rec_Type;
1215 l_x_header_rec OE_Order_PUB.Header_Rec_Type;
1216 l_x_Header_Adj_rec OE_Order_PUB.Header_Adj_Rec_Type;
1217 l_x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
1218 l_x_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
1219 l_x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
1220 l_x_line_rec OE_Order_PUB.Line_Rec_Type;
1221 l_x_line_tbl OE_Order_PUB.Line_Tbl_Type;
1222 l_x_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
1223 l_x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
1224 l_x_Line_Scredit_rec OE_Order_PUB.Line_Scredit_Rec_Type;
1225 l_x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
1226 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
1227 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
1228 l_x_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
1229 l_x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
1230 l_x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
1231 l_x_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
1232 l_x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
1233 l_x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type; */
1234 --
1235 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1236 --
1237 BEGIN
1238
1239 -- Set the UI flag
1240 OE_GLOBALS.G_UI_FLAG := TRUE;
1241
1242 -- Set control flags.
1243 /*
1244 l_control_rec.controlled_operation := TRUE;
1245 l_control_rec.process := TRUE;
1246 l_control_rec.process_entity := OE_GLOBALS.G_ENTITY_LOT_SERIAL;
1247
1248 l_control_rec.check_security := FALSE;
1249 l_control_rec.clear_dependents := FALSE;
1250 l_control_rec.default_attributes := FALSE;
1251 l_control_rec.change_attributes := FALSE;
1252 l_control_rec.validate_entity := FALSE;
1253 l_control_rec.write_to_DB := FALSE;
1254
1255 -- Instruct API to clear its request table
1256
1257 l_control_rec.clear_api_cache := FALSE;
1258 l_control_rec.clear_api_requests := FALSE;
1259
1260 -- Call OE_Order_PVT.Process_order
1261
1262 OE_Order_PVT.Process_order
1263 ( p_api_version_number => 1.0
1264 , p_init_msg_list => FND_API.G_TRUE
1265 , x_return_status => l_return_status
1266 , x_msg_count => x_msg_count
1267 , x_msg_data => x_msg_data
1268 , p_control_rec => l_control_rec
1269 , p_x_header_rec => l_x_header_rec
1270 , p_x_Header_Adj_tbl => l_x_Header_Adj_tbl
1271 , p_x_header_price_att_tbl => l_x_header_price_att_tbl
1272 , p_x_Header_Adj_att_tbl => l_x_Header_Adj_att_tbl
1273 , p_x_Header_Adj_Assoc_tbl => l_x_Header_Adj_Assoc_tbl
1274 , p_x_Header_Scredit_tbl => l_x_Header_Scredit_tbl
1275 , p_x_line_tbl => l_x_line_tbl
1276 , p_x_Line_Adj_tbl => l_x_Line_Adj_tbl
1277 , p_x_Line_Price_att_tbl => l_x_Line_Price_att_tbl
1278 , p_x_Line_Adj_att_tbl => l_x_Line_Adj_att_tbl
1279 , p_x_Line_Adj_Assoc_tbl => l_x_Line_Adj_Assoc_tbl
1280 , p_x_Line_Scredit_tbl => l_x_Line_Scredit_tbl
1281 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
1282 , p_x_action_request_tbl => l_action_request_tbl
1283 );
1284 */
1285
1286 Oe_Order_Pvt.Process_Requests_And_Notify
1287 ( p_process_requests => TRUE
1288 , p_init_msg_list => FND_API.G_TRUE
1289 , p_notify => TRUE
1290 , x_return_status => l_return_status
1291 );
1292
1293 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1294 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1295 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1296 RAISE FND_API.G_EXC_ERROR;
1297 END IF;
1298
1299
1300 -- Re-set the UI flag to FALSE
1301 OE_GLOBALS.G_UI_FLAG := FALSE;
1302
1303 -- Set return status.
1304
1305 x_return_status := FND_API.G_RET_STS_SUCCESS;
1306
1307 -- Get message count and data
1308
1309 OE_MSG_PUB.Count_And_Get
1310 ( p_count => x_msg_count
1311 , p_data => x_msg_data
1312 );
1313
1314
1315 EXCEPTION
1316
1317 WHEN FND_API.G_EXC_ERROR THEN
1318
1319 OE_GLOBALS.G_UI_FLAG := FALSE;
1320
1321 x_return_status := FND_API.G_RET_STS_ERROR;
1322
1323 -- Get message count and data
1324
1325 OE_MSG_PUB.Count_And_Get
1326 ( p_count => x_msg_count
1327 , p_data => x_msg_data
1328 );
1329
1330 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1331
1332 OE_GLOBALS.G_UI_FLAG := FALSE;
1333
1334 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1335
1336 -- Get message count and data
1337
1338 OE_MSG_PUB.Count_And_Get
1339 ( p_count => x_msg_count
1340 , p_data => x_msg_data
1341 );
1342
1343 WHEN OTHERS THEN
1344
1345 OE_GLOBALS.G_UI_FLAG := FALSE;
1346
1347 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1348
1349 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1350 THEN
1351 OE_MSG_PUB.Add_Exc_Msg
1352 ( G_PKG_NAME
1353 , 'Process_Entity'
1354 );
1355 END IF;
1356
1357 -- Get message count and data
1358
1359 OE_MSG_PUB.Count_And_Get
1360 ( p_count => x_msg_count
1361 , p_data => x_msg_data
1362 );
1363
1364 END Process_Entity;
1365
1366 -- Procedure lock_Row
1367 --
1368
1369 PROCEDURE Lock_Row
1370 ( x_return_status OUT NOCOPY VARCHAR2
1371
1372 , x_msg_count OUT NOCOPY NUMBER
1373
1374 , x_msg_data OUT NOCOPY VARCHAR2
1375
1376 , p_lot_serial_id IN NUMBER
1377 , p_lock_control IN NUMBER
1378 )
1379 IS
1380 l_return_status VARCHAR2(1);
1381 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
1382 --
1383 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1384 --
1385 BEGIN
1386
1387 -- Load Lot_Serial record
1388
1389 l_x_Lot_Serial_rec.operation := OE_GLOBALS.G_OPR_LOCK;
1390 l_x_Lot_Serial_rec.lot_serial_id := p_lot_serial_id;
1391 l_x_Lot_Serial_rec.lock_control := p_lock_control;
1392
1393 -- Call OE_Lot_Serial_Util.lock_row instead of OE_Order_PVT.Lock_order
1394
1395 OE_Lot_Serial_Util.Lock_Row
1396 ( x_return_status => l_return_status
1397 , p_x_Lot_Serial_rec => l_x_Lot_Serial_rec );
1398
1399 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1400
1401 -- Set DB flag and write record to cache.
1402
1403 l_x_Lot_Serial_rec.db_flag := FND_API.G_TRUE;
1404
1405 Write_Lot_Serial
1406 ( p_Lot_Serial_rec => l_x_Lot_Serial_rec
1407 , p_db_record => TRUE
1408 );
1409
1410 END IF;
1411
1412 -- Set return status.
1413
1414 x_return_status := l_return_status;
1415
1416 -- Get message count and data
1417
1418 OE_MSG_PUB.Count_And_Get
1419 ( p_count => x_msg_count
1420 , p_data => x_msg_data
1421 );
1422
1423
1424 EXCEPTION
1425
1426 WHEN OTHERS THEN
1427
1428 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1429 THEN
1430 OE_MSG_PUB.Add_Exc_Msg
1431 ( G_PKG_NAME
1432 , 'Lock_Row'
1433 );
1434 END IF;
1435
1436 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1437
1438 -- Get message count and data
1439
1440 OE_MSG_PUB.Count_And_Get
1441 ( p_count => x_msg_count
1442 , p_data => x_msg_data
1443 );
1444
1445
1446
1447 END Lock_Row;
1448
1449 -- Procedures maintaining Lot_Serial record cache.
1450
1451 PROCEDURE Write_Lot_Serial
1452 ( p_Lot_Serial_rec IN OE_Order_PUB.Lot_Serial_Rec_Type
1453 , p_db_record IN BOOLEAN := FALSE
1454 )
1455 IS
1456 --
1457 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1458 --
1459 BEGIN
1460
1461 IF l_debug_level > 0 THEN
1462 oe_debug_pub.add( 'ENTERING OE_OE_FORM_LOT_SERIAL.WRITE_LOT_SERIAL' , 1 ) ;
1463 END IF;
1464
1465 g_Lot_Serial_rec := p_Lot_Serial_rec;
1466
1467 IF p_db_record THEN
1468
1469 g_db_Lot_Serial_rec := p_Lot_Serial_rec;
1470
1471 END IF;
1472
1473 IF l_debug_level > 0 THEN
1474 oe_debug_pub.add( 'EXITING OE_OE_FORM_LOT_SERIAL.WRITE_LOT_SERIAL' , 1 ) ;
1475 END IF;
1476
1477 END Write_Lot_Serial;
1478
1479 PROCEDURE Get_Lot_Serial
1480 ( p_db_record IN BOOLEAN := FALSE
1481 , p_lot_serial_id IN NUMBER
1482 , x_lot_serial_rec IN OUT NOCOPY OE_Order_PUB.Lot_Serial_Rec_Type
1483 )
1484 IS
1485 --
1486 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1487 --
1488 BEGIN
1489
1490 IF l_debug_level > 0 THEN
1491 oe_debug_pub.add( 'ENTERING OE_OE_FORM_LOT_SERIAL.GET_LOT_SERIAL' , 1 ) ;
1492 END IF;
1493
1494 IF p_lot_serial_id <> g_Lot_Serial_rec.lot_serial_id
1495 THEN
1496
1497 -- Query row from DB
1498
1499 OE_Lot_Serial_Util.Query_Row
1500 ( p_lot_serial_id => p_lot_serial_id
1501 , x_lot_serial_rec => g_Lot_Serial_rec
1502 );
1503
1504 g_Lot_Serial_rec.db_flag := FND_API.G_TRUE;
1505
1506 -- Load DB record
1507
1508 g_db_Lot_Serial_rec := g_Lot_Serial_rec;
1509
1510 END IF;
1511
1512 IF l_debug_level > 0 THEN
1513 oe_debug_pub.add( 'EXITING OE_OE_FORM_LOT_SERIAL.GET_LOT_SERIAL' , 1 ) ;
1514 END IF;
1515 IF p_db_record THEN
1516
1517 x_lot_serial_rec:= g_db_Lot_Serial_rec;
1518
1519 ELSE
1520
1521 x_lot_serial_rec:= g_Lot_Serial_rec;
1522
1523 END IF;
1524
1525 END Get_Lot_Serial;
1526
1527 PROCEDURE Clear_Lot_Serial
1528 IS
1529 --
1530 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1531 --
1532 BEGIN
1533
1534 g_Lot_Serial_rec := OE_Order_PUB.G_MISS_LOT_SERIAL_REC;
1535 g_db_Lot_Serial_rec := OE_Order_PUB.G_MISS_LOT_SERIAL_REC;
1536
1537 END Clear_Lot_Serial;
1538
1539 END OE_OE_Form_Lot_Serial;