21: -- Query quantities at a level
22: -- specified by the input
23: PROCEDURE query_quantities
24: ( p_api_version_number IN NUMBER
25: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
26: , x_return_status OUT NOCOPY VARCHAR2
27: , x_msg_count OUT NOCOPY NUMBER
28: , x_msg_data OUT NOCOPY VARCHAR2
29: , p_organization_id IN NUMBER
110:
111: -- invConv changes begin : overload
112: PROCEDURE query_quantities
113: ( p_api_version_number IN NUMBER
114: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
115: , x_return_status OUT NOCOPY VARCHAR2
116: , x_msg_count OUT NOCOPY NUMBER
117: , x_msg_data OUT NOCOPY VARCHAR2
118: , p_organization_id IN NUMBER
151: ) IS
152:
153: l_api_version_number CONSTANT NUMBER := 1.0;
154: l_api_name CONSTANT VARCHAR2(30) := 'Query_Quantities';
155: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
156: l_tree_id INTEGER;
157:
158: BEGIN
159:
157:
158: BEGIN
159:
160: -- Standard call to check for call compatibility
161: IF NOT fnd_api.compatible_api_call(l_api_version_number
162: , p_api_version_number
163: , l_api_name
164: , G_PKG_NAME
165: ) THEN
162: , p_api_version_number
163: , l_api_name
164: , G_PKG_NAME
165: ) THEN
166: RAISE fnd_api.g_exc_unexpected_error;
167: END IF;
168:
169: -- Initialize message list.
170: IF fnd_api.to_boolean(p_init_msg_lst) THEN
166: RAISE fnd_api.g_exc_unexpected_error;
167: END IF;
168:
169: -- Initialize message list.
170: IF fnd_api.to_boolean(p_init_msg_lst) THEN
171: fnd_msg_pub.initialize;
172: END IF;
173:
174: inv_quantity_tree_grp.create_tree
193: , p_onhand_source => p_onhand_source
194: , x_tree_id => l_tree_id
195: );
196:
197: IF l_return_status = fnd_api.g_ret_sts_error THEN
198: RAISE fnd_api.g_exc_error;
199: END IF ;
200:
201: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
194: , x_tree_id => l_tree_id
195: );
196:
197: IF l_return_status = fnd_api.g_ret_sts_error THEN
198: RAISE fnd_api.g_exc_error;
199: END IF ;
200:
201: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
202: RAISE fnd_api.g_exc_unexpected_error;
197: IF l_return_status = fnd_api.g_ret_sts_error THEN
198: RAISE fnd_api.g_exc_error;
199: END IF ;
200:
201: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
202: RAISE fnd_api.g_exc_unexpected_error;
203: END IF;
204:
205: inv_quantity_tree_grp.query_tree
198: RAISE fnd_api.g_exc_error;
199: END IF ;
200:
201: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
202: RAISE fnd_api.g_exc_unexpected_error;
203: END IF;
204:
205: inv_quantity_tree_grp.query_tree
206: (
231: , p_lpn_id => p_lpn_id
232: , p_transfer_locator_id => p_transfer_locator_id
233: );
234:
235: IF l_return_status = fnd_api.g_ret_sts_error THEN
236: RAISE fnd_api.g_exc_error;
237: END IF ;
238:
239: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
232: , p_transfer_locator_id => p_transfer_locator_id
233: );
234:
235: IF l_return_status = fnd_api.g_ret_sts_error THEN
236: RAISE fnd_api.g_exc_error;
237: END IF ;
238:
239: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
240: RAISE fnd_api.g_exc_unexpected_error;
235: IF l_return_status = fnd_api.g_ret_sts_error THEN
236: RAISE fnd_api.g_exc_error;
237: END IF ;
238:
239: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
240: RAISE fnd_api.g_exc_unexpected_error;
241: END IF;
242:
243: x_return_status := l_return_status;
236: RAISE fnd_api.g_exc_error;
237: END IF ;
238:
239: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
240: RAISE fnd_api.g_exc_unexpected_error;
241: END IF;
242:
243: x_return_status := l_return_status;
244:
243: x_return_status := l_return_status;
244:
245: EXCEPTION
246:
247: WHEN fnd_api.g_exc_error THEN
248: x_return_status := fnd_api.g_ret_sts_error;
249:
250: -- Get message count and data
251: fnd_msg_pub.count_and_get
244:
245: EXCEPTION
246:
247: WHEN fnd_api.g_exc_error THEN
248: x_return_status := fnd_api.g_ret_sts_error;
249:
250: -- Get message count and data
251: fnd_msg_pub.count_and_get
252: ( p_count => x_msg_count
252: ( p_count => x_msg_count
253: , p_data => x_msg_data
254: );
255:
256: WHEN fnd_api.g_exc_unexpected_error THEN
257: x_return_status := fnd_api.g_ret_sts_unexp_error ;
258:
259: -- Get message count and data
260: fnd_msg_pub.count_and_get
253: , p_data => x_msg_data
254: );
255:
256: WHEN fnd_api.g_exc_unexpected_error THEN
257: x_return_status := fnd_api.g_ret_sts_unexp_error ;
258:
259: -- Get message count and data
260: fnd_msg_pub.count_and_get
261: ( p_count => x_msg_count
262: , p_data => x_msg_data
263: );
264:
265: WHEN OTHERS THEN
266: x_return_status := fnd_api.g_ret_sts_unexp_error ;
267:
268: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
269: THEN
270: fnd_msg_pub.add_exc_msg
287: -- Update quantity at the level specified by the input and
288: -- return the quantities at the level after the update
289: PROCEDURE update_quantities
290: ( p_api_version_number IN NUMBER
291: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
292: , x_return_status OUT NOCOPY VARCHAR2
293: , x_msg_count OUT NOCOPY NUMBER
294: , x_msg_data OUT NOCOPY VARCHAR2
295: , p_organization_id IN NUMBER
385:
386: -- invConv changes begin: overload
387: PROCEDURE update_quantities
388: ( p_api_version_number IN NUMBER
389: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
390: , x_return_status OUT NOCOPY VARCHAR2
391: , x_msg_count OUT NOCOPY NUMBER
392: , x_msg_data OUT NOCOPY VARCHAR2
393: , p_organization_id IN NUMBER
430: ) IS
431:
432: l_api_version_number CONSTANT NUMBER := 1.0;
433: l_api_name CONSTANT VARCHAR2(30) := 'Update_Quantities';
434: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
435: l_tree_id INTEGER;
436: l_qoh NUMBER;
437: l_rqoh NUMBER;
438: l_qr NUMBER;
450: l_neg_inv_rcpt NUMBER := 0;
451: BEGIN
452:
453: -- Standard call to check for call compatibility
454: IF NOT fnd_api.compatible_api_call(l_api_version_number
455: , p_api_version_number
456: , l_api_name
457: , G_PKG_NAME
458: ) THEN
455: , p_api_version_number
456: , l_api_name
457: , G_PKG_NAME
458: ) THEN
459: RAISE fnd_api.g_exc_unexpected_error;
460: END IF;
461:
462: -- Initialize message list.
463: IF fnd_api.to_boolean(p_init_msg_lst) THEN
459: RAISE fnd_api.g_exc_unexpected_error;
460: END IF;
461:
462: -- Initialize message list.
463: IF fnd_api.to_boolean(p_init_msg_lst) THEN
464: fnd_msg_pub.initialize;
465: END IF;
466:
467: inv_quantity_tree_grp.create_tree
486: , p_onhand_source => p_onhand_source
487: , x_tree_id => l_tree_id
488: );
489:
490: IF l_return_status = fnd_api.g_ret_sts_error THEN
491: RAISE fnd_api.g_exc_error;
492: END IF ;
493:
494: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
487: , x_tree_id => l_tree_id
488: );
489:
490: IF l_return_status = fnd_api.g_ret_sts_error THEN
491: RAISE fnd_api.g_exc_error;
492: END IF ;
493:
494: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
495: RAISE fnd_api.g_exc_unexpected_error;
490: IF l_return_status = fnd_api.g_ret_sts_error THEN
491: RAISE fnd_api.g_exc_error;
492: END IF ;
493:
494: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
495: RAISE fnd_api.g_exc_unexpected_error;
496: END IF;
497:
498: inv_quantity_tree_grp.query_tree
491: RAISE fnd_api.g_exc_error;
492: END IF ;
493:
494: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
495: RAISE fnd_api.g_exc_unexpected_error;
496: END IF;
497:
498: inv_quantity_tree_grp.query_tree
499: (
524: , p_lpn_id => p_lpn_id
525: , p_transfer_locator_id => p_transfer_locator_id
526: );
527:
528: IF l_return_status = fnd_api.g_ret_sts_error THEN
529: RAISE fnd_api.g_exc_error;
530: END IF ;
531:
532: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
525: , p_transfer_locator_id => p_transfer_locator_id
526: );
527:
528: IF l_return_status = fnd_api.g_ret_sts_error THEN
529: RAISE fnd_api.g_exc_error;
530: END IF ;
531:
532: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
533: RAISE fnd_api.g_exc_unexpected_error;
528: IF l_return_status = fnd_api.g_ret_sts_error THEN
529: RAISE fnd_api.g_exc_error;
530: END IF ;
531:
532: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
533: RAISE fnd_api.g_exc_unexpected_error;
534: END IF;
535:
536: /*Bug:5209598. Added the follwing code to get the profile values. */
529: RAISE fnd_api.g_exc_error;
530: END IF ;
531:
532: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
533: RAISE fnd_api.g_exc_unexpected_error;
534: END IF;
535:
536: /*Bug:5209598. Added the follwing code to get the profile values. */
537: IF (p_demand_source_type_id = inv_globals.G_SOURCETYPE_WIP) THEN
576: AND l_att > 0)
577: THEN
578: fnd_message.set_name('INV', 'INV_QTY_LESS_OR_EQUAL');
579: fnd_msg_pub.add;
580: RAISE fnd_api.g_exc_error;
581: END IF;
582:
583: inv_quantity_tree_grp.update_quantities
584: (
613: , p_lpn_id => p_lpn_id
614: , p_transfer_locator_id => p_transfer_locator_id
615: );
616:
617: IF l_return_status = fnd_api.g_ret_sts_error THEN
618: RAISE fnd_api.g_exc_error;
619: END IF ;
620:
621: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
614: , p_transfer_locator_id => p_transfer_locator_id
615: );
616:
617: IF l_return_status = fnd_api.g_ret_sts_error THEN
618: RAISE fnd_api.g_exc_error;
619: END IF ;
620:
621: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
622: RAISE fnd_api.g_exc_unexpected_error;
617: IF l_return_status = fnd_api.g_ret_sts_error THEN
618: RAISE fnd_api.g_exc_error;
619: END IF ;
620:
621: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
622: RAISE fnd_api.g_exc_unexpected_error;
623: END IF;
624:
625: x_qoh := l_qoh;
618: RAISE fnd_api.g_exc_error;
619: END IF ;
620:
621: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
622: RAISE fnd_api.g_exc_unexpected_error;
623: END IF;
624:
625: x_qoh := l_qoh;
626: x_rqoh := l_rqoh;
637: x_return_status := l_return_status;
638:
639: EXCEPTION
640:
641: WHEN fnd_api.g_exc_error THEN
642: x_return_status := fnd_api.g_ret_sts_error;
643:
644: -- Get message count and data
645: fnd_msg_pub.count_and_get
638:
639: EXCEPTION
640:
641: WHEN fnd_api.g_exc_error THEN
642: x_return_status := fnd_api.g_ret_sts_error;
643:
644: -- Get message count and data
645: fnd_msg_pub.count_and_get
646: ( p_count => x_msg_count
646: ( p_count => x_msg_count
647: , p_data => x_msg_data
648: );
649:
650: WHEN fnd_api.g_exc_unexpected_error THEN
651: x_return_status := fnd_api.g_ret_sts_unexp_error ;
652:
653: -- Get message count and data
654: fnd_msg_pub.count_and_get
647: , p_data => x_msg_data
648: );
649:
650: WHEN fnd_api.g_exc_unexpected_error THEN
651: x_return_status := fnd_api.g_ret_sts_unexp_error ;
652:
653: -- Get message count and data
654: fnd_msg_pub.count_and_get
655: ( p_count => x_msg_count
656: , p_data => x_msg_data
657: );
658:
659: WHEN OTHERS THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error ;
661:
662: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
663: THEN
664: fnd_msg_pub.add_exc_msg
683: -- x_no_violation = true if no violation has found
684: -- , otherwise = false
685: PROCEDURE do_check
686: ( p_api_version_number IN NUMBER
687: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
688: , x_return_status OUT NOCOPY VARCHAR2
689: , x_msg_count OUT NOCOPY NUMBER
690: , x_msg_data OUT NOCOPY VARCHAR2
691: , x_no_violation OUT NOCOPY BOOLEAN
691: , x_no_violation OUT NOCOPY BOOLEAN
692: ) IS
693: l_api_version_number CONSTANT NUMBER := 1.0;
694: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
695: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
696: BEGIN
697: -- Standard call to check for call compatibility
698: IF NOT fnd_api.compatible_api_call(l_api_version_number
699: , p_api_version_number
694: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
695: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
696: BEGIN
697: -- Standard call to check for call compatibility
698: IF NOT fnd_api.compatible_api_call(l_api_version_number
699: , p_api_version_number
700: , l_api_name
701: , G_PKG_NAME
702: ) THEN
699: , p_api_version_number
700: , l_api_name
701: , G_PKG_NAME
702: ) THEN
703: RAISE fnd_api.g_exc_unexpected_error;
704: END IF;
705:
706: -- Initialize message list.
707: IF fnd_api.to_boolean(p_init_msg_lst) THEN
703: RAISE fnd_api.g_exc_unexpected_error;
704: END IF;
705:
706: -- Initialize message list.
707: IF fnd_api.to_boolean(p_init_msg_lst) THEN
708: fnd_msg_pub.initialize;
709: END IF;
710:
711: inv_quantity_tree_grp.do_check
717: , x_msg_data => x_msg_data
718: , x_no_violation => x_no_violation
719: );
720:
721: IF l_return_status = fnd_api.g_ret_sts_error THEN
722: RAISE fnd_api.g_exc_error;
723: END IF ;
724:
725: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
718: , x_no_violation => x_no_violation
719: );
720:
721: IF l_return_status = fnd_api.g_ret_sts_error THEN
722: RAISE fnd_api.g_exc_error;
723: END IF ;
724:
725: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
726: RAISE fnd_api.g_exc_unexpected_error;
721: IF l_return_status = fnd_api.g_ret_sts_error THEN
722: RAISE fnd_api.g_exc_error;
723: END IF ;
724:
725: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
726: RAISE fnd_api.g_exc_unexpected_error;
727: END IF;
728:
729: x_return_status := l_return_status;
722: RAISE fnd_api.g_exc_error;
723: END IF ;
724:
725: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
726: RAISE fnd_api.g_exc_unexpected_error;
727: END IF;
728:
729: x_return_status := l_return_status;
730:
729: x_return_status := l_return_status;
730:
731: EXCEPTION
732:
733: WHEN fnd_api.g_exc_error THEN
734: x_return_status := fnd_api.g_ret_sts_error;
735:
736: -- Get message count and data
737: fnd_msg_pub.count_and_get
730:
731: EXCEPTION
732:
733: WHEN fnd_api.g_exc_error THEN
734: x_return_status := fnd_api.g_ret_sts_error;
735:
736: -- Get message count and data
737: fnd_msg_pub.count_and_get
738: ( p_count => x_msg_count
738: ( p_count => x_msg_count
739: , p_data => x_msg_data
740: );
741:
742: WHEN fnd_api.g_exc_unexpected_error THEN
743: x_return_status := fnd_api.g_ret_sts_unexp_error ;
744:
745: -- Get message count and data
746: fnd_msg_pub.count_and_get
739: , p_data => x_msg_data
740: );
741:
742: WHEN fnd_api.g_exc_unexpected_error THEN
743: x_return_status := fnd_api.g_ret_sts_unexp_error ;
744:
745: -- Get message count and data
746: fnd_msg_pub.count_and_get
747: ( p_count => x_msg_count
748: , p_data => x_msg_data
749: );
750:
751: WHEN OTHERS THEN
752: x_return_status := fnd_api.g_ret_sts_unexp_error ;
753:
754: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
755: THEN
756: fnd_msg_pub.add_exc_msg