[Home] [Help]
PACKAGE BODY: APPS.INV_RSV_SYNCH
Source
1 PACKAGE BODY INV_RSV_SYNCH AS
2 /* $Header: INVRSV7B.pls 120.1 2005/06/17 17:28:15 appldev $ */
3
4 -- Global constant holding package name
5 g_pkg_name constant varchar2(50) := 'INV_RSV_SYNCH';
6
7 procedure for_insert (
8 p_reservation_id IN NUMBER
9 , x_return_status OUT NOCOPY VARCHAR2
10 , x_msg_count OUT NOCOPY NUMBER
11 , x_msg_data OUT NOCOPY VARCHAR2 ) is
12
13 -- constants
14 c_api_name constant varchar(30) := 'for_insert';
15
16 l_demand_id_dmd number;
17 l_demand_id_rsv number;
18 l_demand_source_type_id number;
19
20 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
21 begin
22
23 x_return_status := fnd_api.g_ret_sts_success ;
24
25 if (inv_rsv_trigger_global.g_from_trigger = FALSE) then
26 inv_rsv_trigger_global.g_from_trigger := TRUE;
27
28 /*
29 ** Get sequence value for demand_id and parent_demand_id
30 */
31 select mtl_demand_s.nextval
32 into l_demand_id_dmd
33 from dual;
34
35 select mtl_demand_s.nextval
36 into l_demand_id_rsv
37 from dual;
38
39 select demand_source_type_id
40 into l_demand_source_type_id
41 from mtl_reservations
42 where reservation_id = p_reservation_id;
43
44 /* Insert demand into MTL_DEMAND for Non-Orders */
45
46 if (l_demand_source_type_id not in (2,8,12)) then
47 insert into mtl_demand(
48 DEMAND_ID
49 ,ORGANIZATION_ID
50 ,INVENTORY_ITEM_ID
51 ,DEMAND_SOURCE_TYPE
52 ,DEMAND_SOURCE_HEADER_ID
53 ,DEMAND_SOURCE_LINE
54 ,DEMAND_SOURCE_DELIVERY
55 ,DEMAND_SOURCE_NAME
56 ,UOM_CODE
57 ,LINE_ITEM_QUANTITY
58 ,PRIMARY_UOM_QUANTITY
59 ,LINE_ITEM_RESERVATION_QTY
60 ,RESERVATION_QUANTITY
61 ,COMPLETED_QUANTITY
62 ,REQUIREMENT_DATE
63 ,RESERVATION_TYPE
64 ,LAST_UPDATE_DATE
65 ,LAST_UPDATED_BY
66 ,CREATION_DATE
67 ,CREATED_BY
68 ,LAST_UPDATE_LOGIN
69 ,REQUEST_ID
70 ,PROGRAM_APPLICATION_ID
71 ,PROGRAM_ID
72 ,PROGRAM_UPDATE_DATE
73 ,PARENT_DEMAND_ID
74 ,EXTERNAL_SOURCE_CODE
75 ,EXTERNAL_SOURCE_LINE_ID
76 ,USER_LINE_NUM
77 ,USER_DELIVERY
78 ,SCHEDULE_ID
79 ,AUTODETAIL_GROUP_ID
80 ,SUPPLY_SOURCE_TYPE
81 ,SUPPLY_SOURCE_HEADER_ID
82 ,SUPPLY_GROUP_ID
83 ,UPDATED_FLAG
84 ,REVISION
85 ,LOT_NUMBER
86 ,SERIAL_NUMBER
87 ,SUBINVENTORY
88 ,LOCATOR_ID
89 ,COMPONENT_SEQUENCE_ID
90 ,PARENT_COMPONENT_SEQ_ID
91 ,RTO_MODEL_SOURCE_LINE
92 ,RTO_PREVIOUS_QTY
93 ,CONFIG_STATUS
94 ,AVAILABLE_TO_MRP
95 ,AVAILABLE_TO_ATP
96 ,ESTIMATED_RELEASE_DATE
97 ,DEMAND_CLASS
98 ,ROW_STATUS_FLAG
99 ,ORDER_CHANGE_REPORT_FLAG
100 ,ATP_LEAD_TIME
101 ,EXPLOSION_EFFECTIVITY_DATE
102 ,BOM_LEVEL
103 ,MRP_DATE
104 ,MRP_QUANTITY
105 ,CUSTOMER_ID
106 ,TERRITORY_ID
107 ,BILL_TO_SITE_USE_ID
108 ,SHIP_TO_SITE_USE_ID
109 ,MASTER_RESERVATION_QTY
110 ,DESCRIPTION
111 ,ATTRIBUTE_CATEGORY
112 ,ATTRIBUTE1
113 ,ATTRIBUTE2
114 ,ATTRIBUTE3
115 ,ATTRIBUTE4
116 ,ATTRIBUTE5
117 ,ATTRIBUTE6
118 ,ATTRIBUTE7
119 ,ATTRIBUTE8
120 ,ATTRIBUTE9
121 ,ATTRIBUTE10
122 ,ATTRIBUTE11
123 ,ATTRIBUTE12
124 ,ATTRIBUTE13
125 ,ATTRIBUTE14
126 ,ATTRIBUTE15
127 ,DEMAND_TYPE
128 ,DUPLICATED_CONFIG_ITEM_ID
129 ,DUPLICATED_CONFIG_DEMAND_ID
130 ,EXPLOSION_GROUP_ID
131 ,ORDERED_ITEM_ID
132 ,CONFIG_GROUP_ID
133 ,OPERATION_SEQ_NUM
134 ,N_COLUMN1)
135 select
136 l_demand_id_dmd
137 ,a.ORGANIZATION_ID
138 ,a.INVENTORY_ITEM_ID
139 ,a.DEMAND_SOURCE_TYPE_ID
140 ,NVL(a.DEMAND_SOURCE_HEADER_ID,0)
141 ,a.DEMAND_SOURCE_LINE_ID
142 ,a.DEMAND_SOURCE_DELIVERY
143 ,a.DEMAND_SOURCE_NAME
144 ,a.RESERVATION_UOM_CODE
145 ,a.RESERVATION_QUANTITY
146 ,a.PRIMARY_RESERVATION_QUANTITY
147 ,a.RESERVATION_QUANTITY
148 ,a.PRIMARY_RESERVATION_QUANTITY
149 ,0 /* COMPLETED_QUANTITY */
150 ,a.REQUIREMENT_DATE
151 ,1 /* RESERVATION_TYPE */
152 ,a.LAST_UPDATE_DATE
153 ,a.LAST_UPDATED_BY
154 ,a.CREATION_DATE
155 ,a.CREATED_BY
156 ,a.LAST_UPDATE_LOGIN
157 ,a.REQUEST_ID
158 ,a.PROGRAM_APPLICATION_ID
159 ,a.PROGRAM_ID
160 ,a.PROGRAM_UPDATE_DATE
161 ,NULL /* PARENT_DEMAND_ID */
162 ,a.EXTERNAL_SOURCE_CODE
163 ,a.EXTERNAL_SOURCE_LINE_ID
164 ,NULL /* USER_LINE_NUM */
165 ,NULL /* USER_DELIVERY */
166 ,NULL /* SCHEDULE_ID */
167 ,a.AUTODETAIL_GROUP_ID
168 ,decode(a.SUPPLY_SOURCE_TYPE_ID,13,NULL,a.SUPPLY_SOURCE_TYPE_ID)
169 ,a.SUPPLY_SOURCE_HEADER_ID
170 ,NULL /* SUPPLY_GROUP_ID */
171 ,NULL /* UPDATED_FLAG */
172 ,a.REVISION
173 ,a.LOT_NUMBER
174 ,a.SERIAL_NUMBER
175 ,a.SUBINVENTORY_CODE
176 ,a.LOCATOR_ID
177 ,NULL /* COMPONENT_SEQUENCE_ID */
178 ,NULL /* PARENT_COMPONENT_SEQ_ID */
179 ,NULL /* RTO_MODEL_SOURCE_LINE */
180 ,NULL /* RTO_PREVIOUS_QTY */
181 ,NULL /* CONFIG_STATUS */
182 ,1 /* AVAILABLE_TO_MRP */
183 ,1 /* AVAILABLE_TO_ATP */
184 ,NULL /* ESTIMATED_RELEASE_DATE */
185 ,NULL /* DEMAND_CLASS */
186 ,1 /* ROW_STATUS_FLAG */
187 ,NULL /* ORDER_CHANGE_REPORT_FLAG */
188 ,NULL /* ATP_LEAD_TIME */
189 ,NULL /* EXPLOSION_EFFECTIVITY_DATE*/
190 ,NULL /* BOM_LEVEL */
191 ,NULL /* MRP_DATE */
192 ,NULL /* MRP_QUANTITY */
193 ,NULL /* CUSTOMER_ID */
194 ,NULL /* TERRITORY_ID */
195 ,NULL /* BILL_TO_SITE_USE_ID */
196 ,NULL /* SHIP_TO_SITE_USE_ID */
197 ,NULL /* MASTER_RESERVATION_QTY */
198 ,NULL /* DESCRIPTION */
199 ,a.ATTRIBUTE_CATEGORY
200 ,a.ATTRIBUTE1
201 ,a.ATTRIBUTE2
202 ,a.ATTRIBUTE3
203 ,a.ATTRIBUTE4
204 ,a.ATTRIBUTE5
205 ,a.ATTRIBUTE6
206 ,a.ATTRIBUTE7
207 ,a.ATTRIBUTE8
208 ,a.ATTRIBUTE9
209 ,a.ATTRIBUTE10
210 ,a.ATTRIBUTE11
211 ,a.ATTRIBUTE12
212 ,a.ATTRIBUTE13
213 ,a.ATTRIBUTE14
214 ,a.ATTRIBUTE15
215 ,NULL /* DEMAND_TYPE */
216 ,NULL /* DUPLICATED_CONFIG_ITEM_ID */
217 ,NULL /* DUPLICATED_CONFIG_DEMAND_ID */
218 ,NULL /* EXPLOSION_GROUP_ID */
219 ,NULL /* ORDERED_ITEM_ID */
220 ,NULL /* CONFIG_GROUP_ID */
221 ,NULL /* OPERATION_SEQ_NUM */
222 ,p_reservation_id
223 from mtl_reservations a
224 where a.reservation_id = p_reservation_id;
225 end if;
226
227 /* Insert reservation into MTL_DEMAND */
228 insert into mtl_demand(
229 DEMAND_ID
230 ,ORGANIZATION_ID
231 ,INVENTORY_ITEM_ID
232 ,DEMAND_SOURCE_TYPE
233 ,DEMAND_SOURCE_HEADER_ID
234 ,DEMAND_SOURCE_LINE
235 ,DEMAND_SOURCE_DELIVERY
236 ,DEMAND_SOURCE_NAME
237 ,UOM_CODE
238 ,LINE_ITEM_QUANTITY
239 ,PRIMARY_UOM_QUANTITY
240 ,LINE_ITEM_RESERVATION_QTY
241 ,RESERVATION_QUANTITY
242 ,COMPLETED_QUANTITY
243 ,REQUIREMENT_DATE
244 ,RESERVATION_TYPE
245 ,LAST_UPDATE_DATE
246 ,LAST_UPDATED_BY
247 ,CREATION_DATE
248 ,CREATED_BY
249 ,LAST_UPDATE_LOGIN
250 ,REQUEST_ID
251 ,PROGRAM_APPLICATION_ID
252 ,PROGRAM_ID
253 ,PROGRAM_UPDATE_DATE
254 ,PARENT_DEMAND_ID
255 ,EXTERNAL_SOURCE_CODE
256 ,EXTERNAL_SOURCE_LINE_ID
257 ,USER_LINE_NUM
258 ,USER_DELIVERY
259 ,SCHEDULE_ID
260 ,AUTODETAIL_GROUP_ID
261 ,SUPPLY_SOURCE_TYPE
262 ,SUPPLY_SOURCE_HEADER_ID
263 ,SUPPLY_GROUP_ID
264 ,UPDATED_FLAG
265 ,REVISION
266 ,LOT_NUMBER
267 ,SERIAL_NUMBER
268 ,SUBINVENTORY
269 ,LOCATOR_ID
270 ,COMPONENT_SEQUENCE_ID
271 ,PARENT_COMPONENT_SEQ_ID
272 ,RTO_MODEL_SOURCE_LINE
273 ,RTO_PREVIOUS_QTY
274 ,CONFIG_STATUS
275 ,AVAILABLE_TO_MRP
276 ,AVAILABLE_TO_ATP
277 ,ESTIMATED_RELEASE_DATE
278 ,DEMAND_CLASS
279 ,ROW_STATUS_FLAG
280 ,ORDER_CHANGE_REPORT_FLAG
281 ,ATP_LEAD_TIME
282 ,EXPLOSION_EFFECTIVITY_DATE
283 ,BOM_LEVEL
284 ,MRP_DATE
285 ,MRP_QUANTITY
286 ,CUSTOMER_ID
287 ,TERRITORY_ID
288 ,BILL_TO_SITE_USE_ID
289 ,SHIP_TO_SITE_USE_ID
290 ,MASTER_RESERVATION_QTY
291 ,DESCRIPTION
292 ,ATTRIBUTE_CATEGORY
293 ,ATTRIBUTE1
294 ,ATTRIBUTE2
295 ,ATTRIBUTE3
296 ,ATTRIBUTE4
297 ,ATTRIBUTE5
298 ,ATTRIBUTE6
299 ,ATTRIBUTE7
300 ,ATTRIBUTE8
301 ,ATTRIBUTE9
302 ,ATTRIBUTE10
303 ,ATTRIBUTE11
304 ,ATTRIBUTE12
305 ,ATTRIBUTE13
306 ,ATTRIBUTE14
307 ,ATTRIBUTE15
308 ,DEMAND_TYPE
309 ,DUPLICATED_CONFIG_ITEM_ID
310 ,DUPLICATED_CONFIG_DEMAND_ID
311 ,EXPLOSION_GROUP_ID
312 ,ORDERED_ITEM_ID
313 ,CONFIG_GROUP_ID
314 ,OPERATION_SEQ_NUM
315 ,N_COLUMN1)
316 select
317 l_demand_id_rsv
318 ,a.ORGANIZATION_ID
319 ,a.INVENTORY_ITEM_ID
320 ,a.DEMAND_SOURCE_TYPE_ID
321 ,NVL(a.DEMAND_SOURCE_HEADER_ID,0)
322 ,a.DEMAND_SOURCE_LINE_ID
323 ,a.DEMAND_SOURCE_DELIVERY
324 ,a.DEMAND_SOURCE_NAME
325 ,a.RESERVATION_UOM_CODE
326 ,a.RESERVATION_QUANTITY
327 ,a.PRIMARY_RESERVATION_QUANTITY
328 ,NULL /* RESERVATION_QUANTITY */
329 ,NULL /* PRIM_RESERVATION_QUANTITY */
330 ,0 /* COMPLETED_QUANTITY */
331 ,a.REQUIREMENT_DATE
332 ,decode(a.SUPPLY_SOURCE_TYPE_ID,13,2,3) /* RESERVATION_TYPE */
333 ,a.LAST_UPDATE_DATE
334 ,a.LAST_UPDATED_BY
335 ,a.CREATION_DATE
336 ,a.CREATED_BY
337 ,a.LAST_UPDATE_LOGIN
338 ,a.REQUEST_ID
339 ,a.PROGRAM_APPLICATION_ID
340 ,a.PROGRAM_ID
341 ,a.PROGRAM_UPDATE_DATE
342 ,l_demand_id_dmd /* PARENT_DEMAND_ID */
343 ,a.EXTERNAL_SOURCE_CODE
344 ,a.EXTERNAL_SOURCE_LINE_ID
345 ,NULL /* USER_LINE_NUM */
346 ,NULL /* USER_DELIVERY */
347 ,NULL /* SCHEDULE_ID */
348 ,a.AUTODETAIL_GROUP_ID
349 ,decode(a.SUPPLY_SOURCE_TYPE_ID,13,NULL,a.SUPPLY_SOURCE_TYPE_ID)
350 ,a.SUPPLY_SOURCE_HEADER_ID
351 ,NULL /* SUPPLY_GROUP_ID */
352 ,NULL /* UPDATED_FLAG */
353 ,a.REVISION
354 ,a.LOT_NUMBER
355 ,a.SERIAL_NUMBER
356 ,a.SUBINVENTORY_CODE
357 ,a.LOCATOR_ID
358 ,NULL /* COMPONENT_SEQUENCE_ID */
359 ,NULL /* PARENT_COMPONENT_SEQ_ID */
360 ,NULL /* RTO_MODEL_SOURCE_LINE */
361 ,NULL /* RTO_PREVIOUS_QTY */
362 ,NULL /* CONFIG_STATUS */
363 ,1 /* AVAILABLE_TO_MRP */
364 ,1 /* AVAILABLE_TO_ATP */
365 ,NULL /* ESTIMATED_RELEASE_DATE */
366 ,NULL /* DEMAND_CLASS */
367 ,1 /* ROW_STATUS_FLAG */
368 ,NULL /* ORDER_CHANGE_REPORT_FLAG */
369 ,NULL /* ATP_LEAD_TIME */
370 ,NULL /* EXPLOSION_EFFECTIVITY_DATE*/
371 ,NULL /* BOM_LEVEL */
372 ,NULL /* MRP_DATE */
373 ,NULL /* MRP_QUANTITY */
374 ,NULL /* CUSTOMER_ID */
375 ,NULL /* TERRITORY_ID */
376 ,NULL /* BILL_TO_SITE_USE_ID */
377 ,NULL /* SHIP_TO_SITE_USE_ID */
378 ,NULL /* MASTER_RESERVATION_QTY */
379 ,NULL /* DESCRIPTION */
380 ,a.ATTRIBUTE_CATEGORY
381 ,a.ATTRIBUTE1
382 ,a.ATTRIBUTE2
383 ,a.ATTRIBUTE3
384 ,a.ATTRIBUTE4
385 ,a.ATTRIBUTE5
386 ,a.ATTRIBUTE6
387 ,a.ATTRIBUTE7
388 ,a.ATTRIBUTE8
389 ,a.ATTRIBUTE9
390 ,a.ATTRIBUTE10
391 ,a.ATTRIBUTE11
392 ,a.ATTRIBUTE12
393 ,a.ATTRIBUTE13
394 ,a.ATTRIBUTE14
395 ,a.ATTRIBUTE15
396 ,NULL /* DEMAND_TYPE */
397 ,NULL /* DUPLICATED_CONFIG_ITEM_ID */
398 ,NULL /* DUPLICATED_CONFIG_DEMAND_ID */
399 ,NULL /* EXPLOSION_GROUP_ID */
400 ,NULL /* ORDERED_ITEM_ID */
401 ,NULL /* CONFIG_GROUP_ID */
402 ,NULL /* OPERATION_SEQ_NUM */
403 ,p_reservation_id
404 from mtl_reservations a
405 where a.reservation_id = p_reservation_id;
406
407 update mtl_reservations
408 set n_column1 = l_demand_id_rsv
409 where reservation_id = p_reservation_id;
410
411 inv_rsv_trigger_global.g_from_trigger := FALSE;
412 end if;
413
414 exception
415 when fnd_api.g_exc_error then
416 x_return_status := fnd_api.g_ret_sts_error ;
417 inv_rsv_trigger_global.g_from_trigger := FALSE;
418
419 when fnd_api.g_exc_unexpected_error then
420 x_return_status := fnd_api.g_ret_sts_unexp_error ;
421 inv_rsv_trigger_global.g_from_trigger := FALSE;
422
423 when others then
424 x_return_status := fnd_api.g_ret_sts_unexp_error ;
425 inv_rsv_trigger_global.g_from_trigger := FALSE;
426
427 if (fnd_msg_pub.check_msg_level
428 (fnd_msg_pub.g_msg_lvl_unexp_error)) then
429 fnd_msg_pub.add_exc_msg(g_pkg_name, c_api_name);
430 end if;
431
432 end for_insert;
433
434 procedure for_update (
435 p_reservation_id IN NUMBER
436 , x_return_status OUT NOCOPY VARCHAR2
437 , x_msg_count OUT NOCOPY NUMBER
438 , x_msg_data OUT NOCOPY VARCHAR2 ) is
439
440 -- constants
441 c_api_name constant varchar(30) := 'for_update';
442
443 -- variables
444 l_demand_source_type_id number;
445
446 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
447 begin
448 x_return_status := fnd_api.g_ret_sts_success ;
449
450 if (inv_rsv_trigger_global.g_from_trigger = FALSE) then
451 inv_rsv_trigger_global.g_from_trigger := TRUE;
452
453 select demand_source_type_id
454 into l_demand_source_type_id
455 from mtl_reservations
456 where reservation_id = p_reservation_id;
457
458 /* Update demand in MTL_DEMAND for Non-Orders */
459 if (l_demand_source_type_id not in (2,8,12)) then
460 update mtl_demand a
461 set (
462 a.ORGANIZATION_ID
463 ,a.INVENTORY_ITEM_ID
464 ,a.DEMAND_SOURCE_TYPE
465 ,a.DEMAND_SOURCE_HEADER_ID
466 ,a.DEMAND_SOURCE_LINE
467 ,a.DEMAND_SOURCE_DELIVERY
468 ,a.DEMAND_SOURCE_NAME
469 ,a.UOM_CODE
470 ,a.LINE_ITEM_QUANTITY
471 ,a.PRIMARY_UOM_QUANTITY
472 ,a.LINE_ITEM_RESERVATION_QTY
473 ,a.RESERVATION_QUANTITY
474 ,a.COMPLETED_QUANTITY
475 ,a.REQUIREMENT_DATE
476 ,a.LAST_UPDATE_DATE
477 ,a.LAST_UPDATED_BY
478 ,a.CREATION_DATE
479 ,a.CREATED_BY
480 ,a.LAST_UPDATE_LOGIN
481 ,a.REQUEST_ID
482 ,a.PROGRAM_APPLICATION_ID
483 ,a.PROGRAM_ID
484 ,a.PROGRAM_UPDATE_DATE
485 ,a.EXTERNAL_SOURCE_CODE
486 ,a.EXTERNAL_SOURCE_LINE_ID
487 ,a.USER_LINE_NUM
488 ,a.USER_DELIVERY
489 ,a.SCHEDULE_ID
490 ,a.AUTODETAIL_GROUP_ID
491 ,a.SUPPLY_SOURCE_TYPE
492 ,a.SUPPLY_SOURCE_HEADER_ID
493 ,a.SUPPLY_GROUP_ID
494 ,a.UPDATED_FLAG
495 ,a.REVISION
496 ,a.LOT_NUMBER
497 ,a.SERIAL_NUMBER
498 ,a.SUBINVENTORY
499 ,a.LOCATOR_ID
500 ,a.COMPONENT_SEQUENCE_ID
501 ,a.PARENT_COMPONENT_SEQ_ID
502 ,a.RTO_MODEL_SOURCE_LINE
503 ,a.RTO_PREVIOUS_QTY
504 ,a.CONFIG_STATUS
505 ,a.AVAILABLE_TO_MRP
506 ,a.AVAILABLE_TO_ATP
507 ,a.ESTIMATED_RELEASE_DATE
508 ,a.DEMAND_CLASS
509 ,a.ROW_STATUS_FLAG
510 ,a.ORDER_CHANGE_REPORT_FLAG
511 ,a.ATP_LEAD_TIME
512 ,a.EXPLOSION_EFFECTIVITY_DATE
513 ,a.BOM_LEVEL
514 ,a.MRP_DATE
515 ,a.MRP_QUANTITY
516 ,a.CUSTOMER_ID
517 ,a.TERRITORY_ID
518 ,a.BILL_TO_SITE_USE_ID
519 ,a.SHIP_TO_SITE_USE_ID
520 ,a.MASTER_RESERVATION_QTY
521 ,a.DESCRIPTION
522 ,a.ATTRIBUTE_CATEGORY
523 ,a.ATTRIBUTE1
524 ,a.ATTRIBUTE2
525 ,a.ATTRIBUTE3
526 ,a.ATTRIBUTE4
527 ,a.ATTRIBUTE5
528 ,a.ATTRIBUTE6
529 ,a.ATTRIBUTE7
530 ,a.ATTRIBUTE8
531 ,a.ATTRIBUTE9
532 ,a.ATTRIBUTE10
533 ,a.ATTRIBUTE11
534 ,a.ATTRIBUTE12
535 ,a.ATTRIBUTE13
536 ,a.ATTRIBUTE14
537 ,a.ATTRIBUTE15
538 ,a.DEMAND_TYPE
539 ,a.DUPLICATED_CONFIG_ITEM_ID
540 ,a.DUPLICATED_CONFIG_DEMAND_ID
541 ,a.EXPLOSION_GROUP_ID
542 ,a.ORDERED_ITEM_ID
543 ,a.CONFIG_GROUP_ID
544 ,a.OPERATION_SEQ_NUM) = (
545 select
546 b.ORGANIZATION_ID
547 ,b.INVENTORY_ITEM_ID
548 ,b.DEMAND_SOURCE_TYPE_ID
549 ,NVL(b.DEMAND_SOURCE_HEADER_ID,0)
550 ,b.DEMAND_SOURCE_LINE_ID
551 ,b.DEMAND_SOURCE_DELIVERY
552 ,b.DEMAND_SOURCE_NAME
553 ,b.RESERVATION_UOM_CODE
554 ,b.RESERVATION_QUANTITY
555 ,b.PRIMARY_RESERVATION_QUANTITY
556 ,b.RESERVATION_QUANTITY
557 ,b.PRIMARY_RESERVATION_QUANTITY
558 ,0 /* COMPLETED_QUANTITY */
559 ,b.REQUIREMENT_DATE
560 ,b.LAST_UPDATE_DATE
561 ,b.LAST_UPDATED_BY
562 ,b.CREATION_DATE
563 ,b.CREATED_BY
564 ,b.LAST_UPDATE_LOGIN
565 ,b.REQUEST_ID
566 ,b.PROGRAM_APPLICATION_ID
567 ,b.PROGRAM_ID
568 ,b.PROGRAM_UPDATE_DATE
569 ,b.EXTERNAL_SOURCE_CODE
570 ,b.EXTERNAL_SOURCE_LINE_ID
571 ,NULL /* USER_LINE_NUM */
572 ,NULL /* USER_DELIVERY */
573 ,NULL /* SCHEDULE_ID */
574 ,b.AUTODETAIL_GROUP_ID
575 ,decode(b.SUPPLY_SOURCE_TYPE_ID,13,NULL,b.SUPPLY_SOURCE_TYPE_ID)
576 ,b.SUPPLY_SOURCE_HEADER_ID
577 ,NULL /* SUPPLY_GROUP_ID */
578 ,NULL /* UPDATED_FLAG */
579 ,b.REVISION
580 ,b.LOT_NUMBER
581 ,b.SERIAL_NUMBER
582 ,b.SUBINVENTORY_CODE
583 ,b.LOCATOR_ID
584 ,NULL /* COMPONENT_SEQUENCE_ID */
585 ,NULL /* PARENT_COMPONENT_SEQ_ID */
586 ,NULL /* RTO_MODEL_SOURCE_LINE */
587 ,NULL /* RTO_PREVIOUS_QTY */
588 ,NULL /* CONFIG_STATUS */
589 ,1 /* AVAILABLE_TO_MRP */
590 ,1 /* AVAILABLE_TO_ATP */
591 ,NULL /* ESTIMATED_RELEASE_DATE */
592 ,NULL /* DEMAND_CLASS */
593 ,1 /* ROW_STATUS_FLAG */
594 ,NULL /* ORDER_CHANGE_REPORT_FLAG */
595 ,NULL /* ATP_LEAD_TIME */
596 ,NULL /* EXPLOSION_EFFECTIVITY_DATE*/
597 ,NULL /* BOM_LEVEL */
598 ,NULL /* MRP_DATE */
599 ,NULL /* MRP_QUANTITY */
600 ,NULL /* CUSTOMER_ID */
601 ,NULL /* TERRITORY_ID */
602 ,NULL /* BILL_TO_SITE_USE_ID */
603 ,NULL /* SHIP_TO_SITE_USE_ID */
604 ,NULL /* MASTER_RESERVATION_QTY */
605 ,NULL /* DESCRIPTION */
606 ,b.ATTRIBUTE_CATEGORY
607 ,b.ATTRIBUTE1
608 ,b.ATTRIBUTE2
609 ,b.ATTRIBUTE3
610 ,b.ATTRIBUTE4
611 ,b.ATTRIBUTE5
612 ,b.ATTRIBUTE6
613 ,b.ATTRIBUTE7
614 ,b.ATTRIBUTE8
615 ,b.ATTRIBUTE9
616 ,b.ATTRIBUTE10
617 ,b.ATTRIBUTE11
618 ,b.ATTRIBUTE12
619 ,b.ATTRIBUTE13
620 ,b.ATTRIBUTE14
621 ,b.ATTRIBUTE15
622 ,NULL /* DEMAND_TYPE */
623 ,NULL /* DUPLICATED_CONFIG_ITEM_ID */
624 ,NULL /* DUPLICATED_CONFIG_DEMAND_ID */
625 ,NULL /* EXPLOSION_GROUP_ID */
626 ,NULL /* ORDERED_ITEM_ID */
627 ,NULL /* CONFIG_GROUP_ID */
628 ,NULL /* OPERATION_SEQ_NUM */
629 from mtl_reservations b
630 where b.reservation_id = p_reservation_id)
631 where a.n_column1 = p_reservation_id
632 and a.reservation_type = 1
633 and a.parent_demand_id is null;
634 end if;
635
636 /* Update reservation in MTL_DEMAND */
637 update mtl_demand a
638 set (
639 a.ORGANIZATION_ID
640 ,a.INVENTORY_ITEM_ID
641 ,a.DEMAND_SOURCE_TYPE
642 ,a.DEMAND_SOURCE_HEADER_ID
643 ,a.DEMAND_SOURCE_LINE
644 ,a.DEMAND_SOURCE_DELIVERY
645 ,a.DEMAND_SOURCE_NAME
646 ,a.UOM_CODE
647 ,a.LINE_ITEM_QUANTITY
648 ,a.PRIMARY_UOM_QUANTITY
649 ,a.LINE_ITEM_RESERVATION_QTY
650 ,a.RESERVATION_QUANTITY
651 ,a.COMPLETED_QUANTITY
652 ,a.REQUIREMENT_DATE
653 ,a.LAST_UPDATE_DATE
654 ,a.LAST_UPDATED_BY
655 ,a.CREATION_DATE
656 ,a.CREATED_BY
657 ,a.LAST_UPDATE_LOGIN
658 ,a.REQUEST_ID
659 ,a.PROGRAM_APPLICATION_ID
660 ,a.PROGRAM_ID
661 ,a.PROGRAM_UPDATE_DATE
662 ,a.EXTERNAL_SOURCE_CODE
663 ,a.EXTERNAL_SOURCE_LINE_ID
664 ,a.USER_LINE_NUM
665 ,a.USER_DELIVERY
666 ,a.SCHEDULE_ID
667 ,a.AUTODETAIL_GROUP_ID
668 ,a.SUPPLY_SOURCE_TYPE
669 ,a.SUPPLY_SOURCE_HEADER_ID
670 ,a.SUPPLY_GROUP_ID
671 ,a.UPDATED_FLAG
672 ,a.REVISION
673 ,a.LOT_NUMBER
674 ,a.SERIAL_NUMBER
675 ,a.SUBINVENTORY
676 ,a.LOCATOR_ID
677 ,a.COMPONENT_SEQUENCE_ID
678 ,a.PARENT_COMPONENT_SEQ_ID
679 ,a.RTO_MODEL_SOURCE_LINE
680 ,a.RTO_PREVIOUS_QTY
681 ,a.CONFIG_STATUS
682 ,a.AVAILABLE_TO_MRP
683 ,a.AVAILABLE_TO_ATP
684 ,a.ESTIMATED_RELEASE_DATE
685 ,a.DEMAND_CLASS
686 ,a.ROW_STATUS_FLAG
687 ,a.ORDER_CHANGE_REPORT_FLAG
688 ,a.ATP_LEAD_TIME
689 ,a.EXPLOSION_EFFECTIVITY_DATE
690 ,a.BOM_LEVEL
691 ,a.MRP_DATE
692 ,a.MRP_QUANTITY
693 ,a.CUSTOMER_ID
694 ,a.TERRITORY_ID
695 ,a.BILL_TO_SITE_USE_ID
696 ,a.SHIP_TO_SITE_USE_ID
697 ,a.MASTER_RESERVATION_QTY
698 ,a.DESCRIPTION
699 ,a.ATTRIBUTE_CATEGORY
700 ,a.ATTRIBUTE1
701 ,a.ATTRIBUTE2
702 ,a.ATTRIBUTE3
703 ,a.ATTRIBUTE4
704 ,a.ATTRIBUTE5
705 ,a.ATTRIBUTE6
706 ,a.ATTRIBUTE7
707 ,a.ATTRIBUTE8
708 ,a.ATTRIBUTE9
709 ,a.ATTRIBUTE10
710 ,a.ATTRIBUTE11
711 ,a.ATTRIBUTE12
712 ,a.ATTRIBUTE13
713 ,a.ATTRIBUTE14
714 ,a.ATTRIBUTE15
715 ,a.DEMAND_TYPE
716 ,a.DUPLICATED_CONFIG_ITEM_ID
717 ,a.DUPLICATED_CONFIG_DEMAND_ID
718 ,a.EXPLOSION_GROUP_ID
719 ,a.ORDERED_ITEM_ID
720 ,a.CONFIG_GROUP_ID
721 ,a.OPERATION_SEQ_NUM
722 ,a.RESERVATION_TYPE) = (
723 select
724 b.ORGANIZATION_ID
725 ,b.INVENTORY_ITEM_ID
726 ,b.DEMAND_SOURCE_TYPE_ID
727 ,NVL(b.DEMAND_SOURCE_HEADER_ID,0)
728 ,b.DEMAND_SOURCE_LINE_ID
729 ,b.DEMAND_SOURCE_DELIVERY
730 ,b.DEMAND_SOURCE_NAME
731 ,b.RESERVATION_UOM_CODE
732 ,b.RESERVATION_QUANTITY
733 ,b.PRIMARY_RESERVATION_QUANTITY
734 ,NULL /* RESERVATION_QUANTITY */
735 ,NULL /* PRIM_RESERVATION_QUANTITY */
736 ,0 /* COMPLETED_QUANTITY */
737 ,b.REQUIREMENT_DATE
738 ,b.LAST_UPDATE_DATE
739 ,b.LAST_UPDATED_BY
740 ,b.CREATION_DATE
741 ,b.CREATED_BY
742 ,b.LAST_UPDATE_LOGIN
743 ,b.REQUEST_ID
744 ,b.PROGRAM_APPLICATION_ID
745 ,b.PROGRAM_ID
746 ,b.PROGRAM_UPDATE_DATE
747 ,b.EXTERNAL_SOURCE_CODE
748 ,b.EXTERNAL_SOURCE_LINE_ID
749 ,NULL /* USER_LINE_NUM */
750 ,NULL /* USER_DELIVERY */
751 ,NULL /* SCHEDULE_ID */
752 ,b.AUTODETAIL_GROUP_ID
753 ,decode(b.SUPPLY_SOURCE_TYPE_ID,13,NULL,b.SUPPLY_SOURCE_TYPE_ID)
754 ,b.SUPPLY_SOURCE_HEADER_ID
755 ,NULL /* SUPPLY_GROUP_ID */
756 ,NULL /* UPDATED_FLAG */
757 ,b.REVISION
758 ,b.LOT_NUMBER
759 ,b.SERIAL_NUMBER
760 ,b.SUBINVENTORY_CODE
761 ,b.LOCATOR_ID
762 ,NULL /* COMPONENT_SEQUENCE_ID */
763 ,NULL /* PARENT_COMPONENT_SEQ_ID */
764 ,NULL /* RTO_MODEL_SOURCE_LINE */
765 ,NULL /* RTO_PREVIOUS_QTY */
766 ,NULL /* CONFIG_STATUS */
767 ,1 /* AVAILABLE_TO_MRP */
768 ,1 /* AVAILABLE_TO_ATP */
769 ,NULL /* ESTIMATED_RELEASE_DATE */
770 ,NULL /* DEMAND_CLASS */
771 ,1 /* ROW_STATUS_FLAG */
772 ,NULL /* ORDER_CHANGE_REPORT_FLAG */
773 ,NULL /* ATP_LEAD_TIME */
774 ,NULL /* EXPLOSION_EFFECTIVITY_DATE*/
775 ,NULL /* BOM_LEVEL */
776 ,NULL /* MRP_DATE */
777 ,NULL /* MRP_QUANTITY */
778 ,NULL /* CUSTOMER_ID */
779 ,NULL /* TERRITORY_ID */
780 ,NULL /* BILL_TO_SITE_USE_ID */
781 ,NULL /* SHIP_TO_SITE_USE_ID */
782 ,NULL /* MASTER_RESERVATION_QTY */
783 ,NULL /* DESCRIPTION */
784 ,b.ATTRIBUTE_CATEGORY
785 ,b.ATTRIBUTE1
786 ,b.ATTRIBUTE2
787 ,b.ATTRIBUTE3
788 ,b.ATTRIBUTE4
789 ,b.ATTRIBUTE5
790 ,b.ATTRIBUTE6
791 ,b.ATTRIBUTE7
792 ,b.ATTRIBUTE8
793 ,b.ATTRIBUTE9
794 ,b.ATTRIBUTE10
795 ,b.ATTRIBUTE11
796 ,b.ATTRIBUTE12
797 ,b.ATTRIBUTE13
798 ,b.ATTRIBUTE14
799 ,b.ATTRIBUTE15
800 ,NULL /* DEMAND_TYPE */
801 ,NULL /* DUPLICATED_CONFIG_ITEM_ID */
802 ,NULL /* DUPLICATED_CONFIG_DEMAND_ID */
803 ,NULL /* EXPLOSION_GROUP_ID */
804 ,NULL /* ORDERED_ITEM_ID */
805 ,NULL /* CONFIG_GROUP_ID */
806 ,NULL /* OPERATION_SEQ_NUM */
807 ,decode(b.SUPPLY_SOURCE_TYPE_ID,13,2,3) /* RESERVATION_TYPE */
808 from mtl_reservations b
809 where b.reservation_id = p_reservation_id)
810 where a.n_column1 = p_reservation_id
811 and a.reservation_type in (2,3)
812 and a.parent_demand_id is not null;
813
814 inv_rsv_trigger_global.g_from_trigger := FALSE;
815 end if;
816
817 exception
818 when fnd_api.g_exc_error then
819 x_return_status := fnd_api.g_ret_sts_error ;
820 inv_rsv_trigger_global.g_from_trigger := FALSE;
821
822 when fnd_api.g_exc_unexpected_error then
823 x_return_status := fnd_api.g_ret_sts_unexp_error ;
824 inv_rsv_trigger_global.g_from_trigger := FALSE;
825
826 when others then
827 x_return_status := fnd_api.g_ret_sts_unexp_error ;
828 inv_rsv_trigger_global.g_from_trigger := FALSE;
829
830 if (fnd_msg_pub.check_msg_level
831 (fnd_msg_pub.g_msg_lvl_unexp_error)) then
832 fnd_msg_pub.add_exc_msg(g_pkg_name, c_api_name);
833 end if;
834
835 end for_update;
836
837 procedure for_delete (
838 p_reservation_id IN NUMBER
839 , x_return_status OUT NOCOPY VARCHAR2
840 , x_msg_count OUT NOCOPY NUMBER
841 , x_msg_data OUT NOCOPY VARCHAR2 ) is
842
843 -- constants
844 c_api_name constant varchar(30) := 'for_delete';
845
846 -- variables
847 l_demand_source_type_id number;
848
849 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
850 begin
851 x_return_status := fnd_api.g_ret_sts_success ;
852
853 if (inv_rsv_trigger_global.g_from_trigger = FALSE) then
854 inv_rsv_trigger_global.g_from_trigger := TRUE;
855
856 select demand_source_type_id
857 into l_demand_source_type_id
858 from mtl_reservations
859 where reservation_id = p_reservation_id;
860
861 /* Delete demand in MTL_DEMAND for Non-Orders */
862 if (l_demand_source_type_id not in (2,8,12)) then
863 delete mtl_demand
864 where n_column1 = p_reservation_id
865 and reservation_type = 1
866 and parent_demand_id is null;
867 end if;
868
869 /* Delete reservation in MTL_DEMAND */
870 delete mtl_demand
871 where n_column1 = p_reservation_id
872 and reservation_type in (2,3)
873 and parent_demand_id is not null;
874
875 inv_rsv_trigger_global.g_from_trigger := FALSE;
876 end if;
877
878 exception
879 when fnd_api.g_exc_error then
880 x_return_status := fnd_api.g_ret_sts_error ;
881 inv_rsv_trigger_global.g_from_trigger := FALSE;
882
883 when fnd_api.g_exc_unexpected_error then
884 x_return_status := fnd_api.g_ret_sts_unexp_error ;
885 inv_rsv_trigger_global.g_from_trigger := FALSE;
886
887 when others then
888 x_return_status := fnd_api.g_ret_sts_unexp_error ;
889 inv_rsv_trigger_global.g_from_trigger := FALSE;
890
891 if (fnd_msg_pub.check_msg_level
892 (fnd_msg_pub.g_msg_lvl_unexp_error)) then
893 fnd_msg_pub.add_exc_msg(g_pkg_name, c_api_name);
894 end if;
895
896 end for_delete;
897
898 procedure for_relieve (
899 p_reservation_id IN NUMBER
900 , p_primary_relieved_quantity IN NUMBER
901 , x_return_status OUT NOCOPY VARCHAR2
902 , x_msg_count OUT NOCOPY NUMBER
903 , x_msg_data OUT NOCOPY VARCHAR2 ) is
904
905 -- constants
906 c_api_name constant varchar(30) := 'for_relieve';
907
908 -- variables
909 l_demand_source_type_id number;
910
911 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
912 begin
913 --inv_debug.message('tst115', 'in for_relieve');
914 --inv_debug.message('tst115', 'p_reservation_id is ' || p_reservation_id);
915
916 x_return_status := fnd_api.g_ret_sts_success ;
917
918 if (inv_rsv_trigger_global.g_from_trigger = FALSE) then
919 inv_rsv_trigger_global.g_from_trigger := TRUE;
920
921 select demand_source_type_id
922 into l_demand_source_type_id
923 from mtl_reservations
924 where reservation_id = p_reservation_id;
925
926 --inv_debug.message('tst115', 'l_demand_source_type_id is ' || l_demand_source_type_id);
927
928 /* Update completed_quantity for demand in MTL_DEMAND for Non-Orders */
929 if (l_demand_source_type_id not in (2,8,12)) then
930 begin
931 --inv_debug.message('tst115', 'update mtl_demand for non-orders');
932 update mtl_demand
933 set completed_quantity = completed_quantity + p_primary_relieved_quantity
934 where n_column1 = p_reservation_id
935 and reservation_type = 1
936 and parent_demand_id is null;
937 exception
938 when no_data_found then
939 null;
940 end;
941 end if;
942
943 /* Update completed_quantity for reservation in MTL_DEMAND */
944 begin
945 --inv_debug.message('tst115', 'update mtl_demand for orders');
946 update mtl_demand
947 set completed_quantity = completed_quantity + p_primary_relieved_quantity
948 where n_column1 = p_reservation_id
949 and reservation_type in (2,3)
950 and parent_demand_id is not null;
951 exception
952 when no_data_found then
953 null;
954 end;
955
956 inv_rsv_trigger_global.g_from_trigger := FALSE;
957 end if;
958 --inv_debug.message('tst115', 'return from inv_rsv_synch.for_relieve');
959 exception
960 when fnd_api.g_exc_error then
961 x_return_status := fnd_api.g_ret_sts_error ;
962 inv_rsv_trigger_global.g_from_trigger := FALSE;
963
964 when fnd_api.g_exc_unexpected_error then
965 x_return_status := fnd_api.g_ret_sts_unexp_error ;
966 inv_rsv_trigger_global.g_from_trigger := FALSE;
967
968 when others then
969 x_return_status := fnd_api.g_ret_sts_unexp_error ;
970 inv_rsv_trigger_global.g_from_trigger := FALSE;
971
972 if (fnd_msg_pub.check_msg_level
973 (fnd_msg_pub.g_msg_lvl_unexp_error)) then
974 fnd_msg_pub.add_exc_msg(g_pkg_name, c_api_name);
975 end if;
976 end for_relieve;
977
978 end INV_RSV_SYNCH;