[Home] [Help]
PACKAGE BODY: APPS.OE_SHP_PROCESS
Source
1 PACKAGE BODY OE_SHP_PROCESS AS
2 /* $Header: OEXSHPRB.pls 115.3 99/07/16 08:15:54 porting shi $ */
3
4 OE_SUCCESS CONSTANT VARCHAR2(1) := 'Y';
5 OE_FAILURE CONSTANT VARCHAR2(1) := 'N';
6 OE_SHIPMENT_MISMATCH CONSTANT VARCHAR2(30) :=
7 'SHIPMENT_SCHEDULE_QTY_MISMATCH';
8
9 PROCEDURE Apply_Ordered_Quantity_Change
10 (
11 P_Lines_Item_Type_Code IN VARCHAR2,
12 P_Lines_Ser_Flag IN VARCHAR2,
13 P_Ord_Enforce_List_Prices_Flag IN VARCHAR2,
14 P_Shp_Config_Flag OUT VARCHAR2,
15 P_Shp_Sch_Flag OUT VARCHAR2,
16 P_Shp_Adj_Flag OUT VARCHAR2,
17 P_Shp_Apply_Ord_Adj_Flag OUT VARCHAR2,
18 P_Shp_Credit_Flag OUT VARCHAR2,
19 P_Shp_Ser_Flag IN OUT VARCHAR2,
20 P_Shp_Schedule_Quantity_Tot IN OUT NUMBER,
21 P_Line_Details_S_Qty_Total OUT NUMBER,
22 P_Shp_Installation_Quantity OUT NUMBER,
23 P_Shp_Ordered_Quantity IN NUMBER,
24 P_Shp_Open_Quantity IN OUT NUMBER,
25 P_Shp_Cancelled_Quantity IN NUMBER,
26 P_return_Status IN OUT VARCHAR2
27 )
28 is
29
30 begin
31
32 P_Return_Status:=OE_SUCCESS;
33
34 OE_SHP_PROCESS.Get_Shipment_Detail_Controls(
35 P_Lines_Item_Type_Code=>P_Lines_Item_Type_Code,
36 P_Lines_Ser_Flag=>P_Lines_Ser_Flag,
37 P_Ord_Enforce_List_Prices_Flag=>P_Ord_Enforce_List_Prices_Flag,
38 P_Shp_Config_Flag=>P_Shp_Config_Flag,
39 P_Shp_Sch_Flag=>P_Shp_Sch_Flag,
40 P_Shp_Adj_Flag=>P_Shp_Adj_Flag,
41 P_Shp_Apply_Ord_Adj_Flag=>P_Shp_Apply_Ord_Adj_Flag,
42 P_Shp_Credit_Flag=>P_Shp_Credit_Flag,
43 P_Shp_Ser_Flag=>P_Shp_Ser_Flag,
44 P_return_Status=>P_return_Status);
45
46 if ( P_Return_Status = OE_FAILURE ) then
47 return;
48 end if;
49
50 if (P_Shp_Schedule_Quantity_Tot is not null ) then
51 OE_LIN.Calc_Lin_Obj_Open_Quantity(
52 Lin_Obj_Ordered_Quantity=>P_Shp_Ordered_Quantity,
53 Lin_Obj_Open_Quantity=>P_Shp_Open_Quantity,
54 Lin_Obj_Cancelled_Quantity=>P_Shp_Cancelled_Quantity,
55 P_Return_Status=>P_return_Status
56 );
57 if ( P_Return_Status = OE_FAILURE ) then
58 return;
59 end if;
60 P_Shp_Schedule_Quantity_Tot:=P_Shp_Open_Quantity;
61 P_Line_Details_S_Qty_Total:=P_Shp_Open_Quantity;
62 end if;
63
64 if (P_Shp_Ser_Flag='Y') then
65 P_Shp_Installation_Quantity:=null;
66 end if;
67
68 exception
69
70 when others then
71 P_Return_Status:=OE_FAILURE;
72 OE_MSG.Internal_Exception(Routine=>
73 'OE_OPT_SER_LINES.Apply_Ordered_Quantity_Change',
74 Operation=>'',
75 Object=>'SHIPMENT',
76 Message=>' When Others');
77
78
79 end Apply_Ordered_Quantity_Change;
80
81 PROCEDURE Get_Shipment_Detail_Controls
82 (
83 P_Lines_Item_Type_Code IN VARCHAR2,
84 P_Lines_Ser_Flag IN VARCHAR2,
85 P_Ord_Enforce_List_Prices_Flag IN VARCHAR2,
86 P_Shp_Config_Flag OUT VARCHAR2,
87 P_Shp_Sch_Flag OUT VARCHAR2,
88 P_Shp_Adj_Flag OUT VARCHAR2,
89 P_Shp_Apply_Ord_Adj_Flag OUT VARCHAR2,
90 P_Shp_Credit_Flag OUT VARCHAR2,
91 P_Shp_Ser_Flag OUT VARCHAR2,
92 P_return_Status OUT VARCHAR2
93 )
94 is
95
96 begin
97
98 if ( P_Lines_Item_Type_Code = 'MODEL') then
99 P_Shp_Config_Flag:='Y';
100 else
101 P_Shp_Config_Flag:='N';
102 end if;
103
104 if ( P_Ord_Enforce_List_Prices_Flag = 'Y' ) then
105 P_Shp_Adj_Flag:='N';
106 else
107 P_Shp_Adj_Flag:='Y';
108 end if;
109
110 P_Shp_Apply_Ord_Adj_Flag:='Y';
111 P_Shp_Credit_Flag:='Y';
112 P_Shp_Ser_Flag:=P_Lines_Ser_Flag;
113
114 exception
115
116 when others then
117 P_Return_Status:=OE_FAILURE;
118 OE_MSG.Internal_Exception(Routine=>
119 'OE_SHP_PROCESS.Get_Shipment_Detail_Controls',
120 Operation=>'',
121 Object=>'SHIPMENT',
122 Message=>' When Others');
123
124
125 end Get_Shipment_Detail_Controls;
126
127 PROCEDURE Query_Shipment_Total
128 (
129 P_Shp_Row_Id IN VARCHAR2,
130 P_Shp_Line_Id IN NUMBER,
131 P_Lines_Line_Id IN NUMBER,
132 P_Shp_Line_Type_Code IN VARCHAR2,
133 P_Shp_serviceable_Flag IN VARCHAR2,
134 P_Order_Currency_Precision IN NUMBER,
135 P_Shp_Selling_Price IN NUMBER,
136 P_Shp_Line_Total IN OUT NUMBER,
137 P_Shp_Total IN OUT NUMBER,
138 P_Shp_Ordered_Quantity IN NUMBER,
139 P_Shp_Open_Quantity IN OUT NUMBER,
140 P_Shp_Cancelled_Quantity IN NUMBER,
141 P_Shp_Service_Total OUT NUMBER,
142 P_Shp_Query_Total OUT VARCHAR2,
143 P_Return_Status IN OUT VARCHAR2
144 )
145 is
146
147 begin
148
149 P_Return_Status:=OE_SUCCESS;
150
151 if P_Shp_Line_id is not null then
152 if P_Shp_Total is not null then
153 P_Shp_Query_Total:='N';
154 else
155 P_Shp_Total:=0;
156 P_Shp_Line_Total:=0;
157 P_Shp_Service_Total:=0;
158 OE_SHP_PROCESS.Calc_Shipment_Total(
159 P_Shp_Line_Total=>P_Shp_Line_Total,
160 P_Shp_Ordered_Quantity=>P_Shp_Ordered_Quantity,
161 P_Shp_Open_Quantity=>P_Shp_Open_Quantity,
162 P_Shp_Cancelled_Quantity=>P_Shp_Cancelled_Quantity,
163 P_Shp_Selling_Price=>P_Shp_Selling_Price,
164 P_Shp_Line_Type_Code=>P_Shp_Line_Type_Code,
165 P_Return_Status=>P_Return_Status );
166 if ( P_return_Status = OE_FAILURE ) then
167 return;
168 end if;
169 if ( P_Shp_Line_Type_Code = 'MODEL' ) then
170 SELECT NVL(SUM( ROUND( (NVL( ORDERED_QUANTITY, 0 ) -
171 NVL( CANCELLED_QUANTITY, 0 )) *
172 NVL(SELLING_PRICE, 0 ),
173 P_Order_Currency_Precision))
174 , 0)
175 ,NVL( SUM( DECODE( SERVICE_PARENT_LINE_ID, P_Lines_LINE_ID,
176 ROUND( (NVL( ORDERED_QUANTITY, 0 ) -
177 NVL( CANCELLED_QUANTITY, 0 ) ) *
178 NVL( SELLING_PRICE, 0 ),
179 P_Order_Currency_Precision), 0 ) ), 0 )
180 INTO P_Shp_Total
181 ,P_Shp_Service_Total
182 FROM SO_LINES
183 WHERE (ROWID = P_Shp_Row_Id
184 OR PARENT_LINE_ID = P_Shp_Line_Id
185 OR SERVICE_PARENT_LINE_ID = P_Shp_Line_Id );
186 elsif ( P_Shp_Serviceable_Flag = 'Y') then
187 SELECT NVL(SUM( ROUND( (NVL( ORDERED_QUANTITY, 0 ) -
188 NVL( CANCELLED_QUANTITY, 0 )) *
189 NVL(SELLING_PRICE, 0 ),
190 P_Order_Currency_Precision))
191 , 0)
192 ,NVL( SUM( DECODE( SERVICE_PARENT_LINE_ID, P_Lines_LINE_ID,
193 ROUND( (NVL( ORDERED_QUANTITY, 0 ) -
194 NVL( CANCELLED_QUANTITY, 0 ) ) *
195 NVL( SELLING_PRICE, 0 ),
196 P_Order_Currency_Precision), 0 ) ), 0 )
197 INTO P_Shp_Total
198 ,P_Shp_Service_Total
199 FROM SO_LINES
200 WHERE (ROWID = P_Shp_Row_Id
201 OR SERVICE_PARENT_LINE_ID = P_Shp_Line_Id );
202 else
203 P_Shp_Total:=P_Shp_Line_Total;
204 end if;
205 end if;
206 end if;
207
208 exception
209
210 when no_data_found then
211 null;
212
213 when others then
214 P_Return_Status:=OE_FAILURE;
215 OE_MSG.Internal_Exception(Routine=>
216 'OE_SHP_PROCESS.Query_Shipment_Total',
217 Operation=>'',
218 Object=>'SHIPMENT',
219 Message=>' When Others');
220
221 end Query_Shipment_Total;
222
223 PROCEDURE Calc_Shipment_Total
224 (
225 P_Shp_Line_Total OUT NUMBER,
226 P_Shp_Ordered_Quantity IN NUMBER,
227 P_Shp_Open_Quantity IN OUT NUMBER,
228 P_Shp_Cancelled_Quantity IN NUMBER,
229 P_Shp_Selling_Price IN NUMBER,
230 P_Shp_Line_Type_Code IN VARCHAR2,
231 P_Return_Status IN OUT VARCHAR2
232 )
233 is
234
235 begin
236
237 P_Return_Status:=OE_SUCCESS;
238
239 OE_LIN.Calc_Lin_Obj_Open_Quantity(
240 Lin_Obj_Ordered_Quantity=>P_Shp_Ordered_Quantity,
241 Lin_Obj_Open_Quantity=>P_Shp_Open_Quantity,
242 Lin_Obj_Cancelled_Quantity=>P_Shp_Cancelled_Quantity,
243 P_Return_Status=>P_Return_Status);
244
245 if ( P_Return_Status = OE_FAILURE ) then
246 return;
247 end if;
248
249 if P_Shp_Open_Quantity is null and
250 P_Shp_Selling_Price is null then
251 P_Shp_Line_Total:=0;
252 else
253 P_Shp_Line_Total:=P_Shp_Open_Quantity * P_Shp_Selling_Price;
254 end if;
255
256 exception
257
258 when no_data_found then
259 null;
260
261 when others then
262 P_Return_Status:=OE_FAILURE;
263 OE_MSG.Internal_Exception(Routine=>
264 'OE_SHP_PROCESS.Calc_Shipment_Total',
265 Operation=>'',
266 Object=>'SHIPMENT',
267 Message=>' When Others');
268
269 end Calc_Shipment_Total;
270
271
272 PROCEDURE Total_Shipment
273 (
274 P_Shp_Total IN OUT NUMBER,
275 P_Shp_Line_Total IN OUT NUMBER,
276 P_Shp_Ordered_Quantity IN NUMBER,
277 P_Shp_Open_Quantity IN OUT NUMBER,
278 P_Shp_Cancelled_Quantity IN NUMBER,
279 P_Shp_Selling_Price IN NUMBER,
280 P_Shp_Line_Type_Code IN VARCHAR2,
281 P_return_Status IN OUT VARCHAR2
282 )
283 is
284
285 L_Total NUMBER;
286
287 begin
288
289 P_Return_Status:=OE_SUCCESS;
290
291 if P_Shp_Line_Total is null then
292 L_Total:=0;
293 else
294 L_Total:=P_Shp_Line_Total;
295 end if;
296
297 OE_SHP_PROCESS.Calc_Shipment_Total(
298 P_Shp_Line_Total=>P_Shp_Line_Total,
299 P_Shp_Ordered_Quantity=>P_Shp_Ordered_Quantity,
300 P_Shp_Open_Quantity=>P_Shp_Open_Quantity,
301 P_Shp_Cancelled_Quantity=>P_Shp_Cancelled_Quantity,
302 P_Shp_Selling_Price=>P_Shp_Selling_Price,
303 P_Shp_Line_Type_Code=>P_Shp_Line_Type_Code,
304 P_Return_Status=>P_Return_Status );
305 if ( P_return_Status = OE_FAILURE ) then
306 return;
307 end if;
308
309 P_Shp_Total := P_Shp_Total + P_Shp_Line_Total - L_Total;
310
311 exception
312
313 when no_data_found then
314 null;
315
316 when others then
317 P_Return_Status:=OE_FAILURE;
318 OE_MSG.Internal_Exception(Routine=>
319 'OE_SHP_PROCESS.Total_Shipment',
320 Operation=>'',
321 Object=>'SHIPMENT',
322 Message=>' When Others');
323
324
325 end Total_Shipment;
326
327 PROCEDURE Calc_Line_Total
328 (
329 P_Lines_Line_Total OUT NUMBER,
330 P_Lines_Ordered_Quantity IN NUMBER,
331 P_Lines_Open_Quantity IN OUT NUMBER,
332 P_Lines_Cancelled_Quantity IN NUMBER,
333 P_Lines_Selling_Price IN NUMBER,
334 P_Lines_Line_Type_Code IN VARCHAR2,
335 P_Lines_Item_Type_Code IN VARCHAR2,
336 P_Lines_Service_Duration IN NUMBER,
337 P_Return_Status IN OUT VARCHAR2
338 )
339 is
340
341 begin
342
343 P_Return_Status:=OE_SUCCESS;
344
345
346 if P_Lines_Line_Type_Code = 'PARENT' then
347 P_Lines_Line_Total:=0;
348 else
349 OE_LIN.Calc_Lin_Obj_Open_Quantity(
350 Lin_Obj_Ordered_Quantity=>P_Lines_Ordered_Quantity,
351 Lin_Obj_Open_Quantity=>P_Lines_Open_Quantity,
352 Lin_Obj_Cancelled_Quantity=>P_Lines_Cancelled_Quantity,
353 P_Return_Status=>P_Return_Status);
354
355 if ( P_Return_Status = OE_FAILURE ) then
356 return;
357 end if;
358
359 if P_Lines_Open_Quantity is null and
360 P_Lines_Selling_Price is null then
361 P_Lines_Line_Total:=0;
362 elsif ( P_Lines_Item_Type_Code = 'SERVICE' ) then
363 if ( P_Lines_Service_Duration is null ) then
364 P_Lines_Line_Total:=0;
365 else
366 P_Lines_Line_Total:=P_Lines_Open_Quantity * P_lines_Selling_Price;
367 end if;
368 else
369 P_Lines_Line_Total:=P_Lines_Open_Quantity * P_lines_Selling_Price;
370 end if;
371 end if;
372
373 exception
374
375 when no_data_found then
376 null;
377
378 when others then
379 P_Return_Status:=OE_FAILURE;
380 OE_MSG.Internal_Exception(Routine=>
381 'OE_SHP_PROCESS.Calc_Line_Total',
382 Operation=>'',
383 Object=>'SHIPMENT',
384 Message=>' When Others');
385
386 end Calc_Line_Total;
387
388 PROCEDURE Total_Line
389 (
390 P_Lines_Total IN OUT NUMBER,
391 P_Lines_Line_Total IN OUT NUMBER,
392 P_Lines_Ordered_Quantity IN NUMBER,
393 P_Lines_Open_Quantity IN OUT NUMBER,
394 P_Lines_Cancelled_Quantity IN NUMBER,
395 P_Lines_Selling_Price IN NUMBER,
396 P_Lines_Line_Type_Code IN VARCHAR2,
397 P_Lines_Item_Type_Code IN VARCHAR2,
398 P_Lines_Service_Duration IN NUMBER,
399 P_return_Status IN OUT VARCHAR2
400 )
401 is
402
403 L_Total NUMBER;
404
405 begin
406
407 P_Return_Status:=OE_SUCCESS;
408
409 if P_Lines_Line_Total is null then
410 L_Total:=0;
411 else
412 L_Total:=P_Lines_Line_Total;
413 end if;
414
415 OE_SHP_PROCESS.Calc_Line_Total(
416 P_Lines_Line_Total=>P_Lines_Line_Total,
417 P_Lines_Ordered_Quantity=>P_Lines_Ordered_Quantity,
418 P_Lines_Open_Quantity=>P_Lines_Open_Quantity,
419 P_Lines_Cancelled_Quantity=>P_Lines_Cancelled_Quantity,
420 P_Lines_Selling_Price=>P_Lines_Selling_Price,
421 P_Lines_Line_Type_Code=>P_Lines_Line_Type_Code,
422 P_Lines_Item_Type_Code=>P_Lines_Item_Type_Code,
423 P_Lines_Service_Duration=>P_Lines_Service_Duration,
424 P_Return_Status=>P_Return_Status );
425 if ( P_return_Status = OE_FAILURE ) then
426 return;
427 end if;
428
429 P_Lines_Total := P_Lines_Total + P_Lines_Line_Total - L_Total;
430
431 exception
432
433 when no_data_found then
434 null;
435
436 when others then
437 P_Return_Status:=OE_FAILURE;
438 OE_MSG.Internal_Exception(Routine=>
439 'OE_SHP_PROCESS.Total_Line',
440 Operation=>'',
441 Object=>'SHIPMENT',
442 Message=>' When Others');
443
444
445 end Total_Line;
446
447 PROCEDURE Shipment_Total
448 (
449 P_Line_Id IN NUMBER,
450 P_Line_Total OUT NUMBER,
451 P_Return_Status OUT VARCHAR2
452 )
453 is
454
455 begin
456
457 SELECT NVL(SUM( (NVL( ORDERED_QUANTITY, 0 ) -
458 NVL( CANCELLED_QUANTITY, 0 )) *
459 NVL(SELLING_PRICE, 0 ))
460 , 0)
461 INTO P_Line_Total
462 FROM SO_LINES
463 WHERE ( SHIPMENT_SCHEDULE_LINE_ID = P_line_Id
464 OR SERVICE_PARENT_LINE_ID = P_Line_Id );
465
466 /*LINE_ID = P_Line_Id
467 OR PARENT_LINE_ID = P_Line_Id
468 OR SERVICE_PARENT_LINE_ID =
469 P_Line_Id ); */
470
471
472 Exception
473
474 when no_data_found then
475 P_Line_Total:=0;
476
477 when others then
481 Operation=>'',
478 P_Return_Status:=OE_FAILURE;
479 OE_MSG.Internal_Exception(Routine=>
480 'OE_SHP_PROCESS.Shipment_Total',
482 Object=>'SHIPMENT',
483 Message=>' When Others');
484
485
486 end Shipment_Total;
487
488 PROCEDURE Shipment_Quantity_Total
489 (
490 P_Lines_Line_Id IN NUMBER,
491 P_Lines_Shipment_Qty_Total OUT NUMBER,
492 P_Lines_Shipment_Lines_Count OUT NUMBER,
493 P_return_Status OUT VARCHAR2
494 )
495 is
496
497 begin
498
499 SELECT NVL( SUM( NVL( ORDERED_QUANTITY, 0 ) -
500 NVL( CANCELLED_QUANTITY, 0 ) ), 0 ),
501 COUNT(*)
502 INTO P_Lines_Shipment_Qty_Total,
503 P_Lines_Shipment_Lines_Count
504 FROM SO_LINES
505 WHERE SHIPMENT_SCHEDULE_LINE_ID = P_Lines_Line_Id
506 AND PARENT_LINE_ID IS NULL
507 AND SERVICE_PARENT_LINE_ID IS NULL;
508
509 Exception
510
511 when no_data_found then
512 P_Lines_Shipment_Qty_Total:=0;
513 P_Lines_Shipment_Lines_Count:=0;
514
515 when others then
516 P_Return_Status:=OE_FAILURE;
517 OE_MSG.Internal_Exception(Routine=>
518 'OE_SHP_PROCESS.Shipment_Quantity_Total',
519 Operation=>'',
520 Object=>'SHIPMENT',
521 Message=>' When Others');
522
523
524 end Shipment_Quantity_Total;
525
526 PROCEDURE Update_Line_Type_Code
527 (
528 P_Line_Id IN NUMBER,
529 P_Line_Type_Code IN VARCHAR2,
530 P_Return_Status OUT VARCHAR2
531 )
532 is
533
534 begin
535
536 if ( P_Line_Type_Code <> 'REGULAR') then
537 UPDATE SO_LINES
538 SET LINE_TYPE_CODE = 'REGULAR'
539 WHERE LINE_ID = P_Line_Id;
540 elsif ( P_Line_Type_Code <> 'PARENT') then
541 UPDATE SO_LINES
542 SET LINE_TYPE_CODE = 'PARENT'
543 WHERE LINE_ID = P_Line_Id;
544 end if;
545
546
547 Exception
548
549 when others then
550 P_Return_Status:=OE_FAILURE;
551 OE_MSG.Internal_Exception(Routine=>
552 'OE_SHP_PROCESS.Update_Line_Type_Code',
553 Operation=>'',
554 Object=>'SHIPMENT',
555 Message=>' When Others');
556
557 end Update_Line_Type_Code;
558
559
560 PROCEDURE Match_Shipment_Quantity
561 (
562 P_Ship_Sched_Line_Id IN OUT NUMBER,
563 P_Line_RowId IN VARCHAR2,
564 P_Open_Line_Quantity IN OUT NUMBER,
565 P_Total_Shipment_Quantity IN OUT NUMBER,
566 P_Return_Status OUT VARCHAR2
567 )
568 is
569
570 begin
571
572 SELECT SUM(NVL(ORDERED_QUANTITY,0) - NVL(CANCELLED_QUANTITY,0))
573 INTO P_Total_Shipment_Quantity
574 FROM SO_LINES
575 WHERE SHIPMENT_SCHEDULE_LINE_ID = P_Ship_Sched_Line_Id
576 AND PARENT_LINE_ID IS NULL
577 AND SERVICE_PARENT_LINE_ID IS NULL;
578
579 SELECT SUM(NVL(ORDERED_QUANTITY,0) - NVL(CANCELLED_QUANTITY,0))
580 INTO P_Open_Line_Quantity
581 FROM SO_LINES
582 WHERE LINE_ID = P_Ship_Sched_Line_Id;
583 if (Nvl(P_Open_Line_Quantity,0) <> Nvl(P_Total_Shipment_Quantity,0)) ANd
584 nvl(P_Total_Shipment_Quantity,0) <> 0 then
585 P_Return_Status := OE_SHIPMENT_MISMATCH;
586 return;
587 else
588 P_Ship_Sched_Line_Id := null;
589 end if;
590
591 P_Return_Status:=OE_SUCCESS;
592
593 Exception
594
595 when others then
596 P_Return_Status:=OE_FAILURE;
597 OE_MSG.Internal_Exception(Routine=>
598 'OE_SHP_PROCESS.Match_Shipment_Quantity',
599 Operation=>'',
600 Object=>'SHIPMENT',
601 Message=>' When Others');
602
603 end Match_Shipment_Quantity;
604
605
606 PROCEDURE Update_Line_Quantity
607 (
608 P_Ship_Sched_Line_Id IN OUT NUMBER,
609 P_Total_Shipment_Quantity IN OUT NUMBER,
610 P_Open_Line_Quantity IN OUT NUMBER,
611 P_Line_Quantity IN OUT NUMBER,
612 P_Return_Status OUT VARCHAR2
613 )
614 is
615
616 begin
617
618 SELECT SUM(NVL(ORDERED_QUANTITY,0) - NVL(CANCELLED_QUANTITY,0))
619 INTO P_Open_Line_Quantity
620 FROM SO_LINES
621 WHERE LINE_ID = P_Ship_Sched_Line_Id;
622
623 UPDATE SO_LINES
624 SET ORDERED_QUANTITY = NVL(CANCELLED_QUANTITY,0)
625 + P_Total_Shipment_Quantity
626 WHERE LINE_ID = P_Ship_Sched_Line_Id;
627
628 P_Return_Status:=OE_SUCCESS;
629
630 Exception
631
632 when others then
633 P_Return_Status:=OE_FAILURE;
634 OE_MSG.Internal_Exception(Routine=>
635 'OE_SHP_PROCESS.Update_Line_Quantity',
636 Operation=>'',
637 Object=>'SHIPMENT',
638 Message=>' When Others');
639
640 end Update_Line_Quantity;
641
642 PROCEDURE Update_Parent_Option_Quantity
643 (
644 P_Line_Id IN NUMBER,
645 P_Total_Shipment_Quantity IN NUMBER,
646 P_Ordered_Quantity IN NUMBER,
647 P_Cancelled_Quantity IN NUMBER,
648 P_Return_Status OUT VARCHAR2
649 )
650 is
651
652 x boolean;
653
654 begin
655
656 UPDATE SO_LINES
657 SET ORDERED_QUANTITY = NVL(CANCELLED_QUANTITY,0) +
658 (((ORDERED_QUANTITY-NVL(CANCELLED_QUANTITY,0))/
659 (P_Ordered_Quantity-NVL(P_Cancelled_Quantity, 0)))
660 * P_Total_Shipment_Quantity)
661 WHERE PARENT_LINE_ID = P_Line_Id;
662
663 P_Return_Status:=OE_SUCCESS;
664
665 Exception
666
667 when others then
668 P_Return_Status:=OE_FAILURE;
669 OE_MSG.Internal_Exception(Routine=>
670 'OE_SHP_PROCESS.Update_Parent_Option_Quantity',
671 Operation=>'',
672 Object=>'SHIPMENT',
673 Message=>' When Others');
674
675 end Update_Parent_Option_Quantity;
676
677
678 END OE_SHP_PROCESS;