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
578: AND l_att > 0)
579: THEN
580: fnd_message.set_name('INV', 'INV_QTY_LESS_OR_EQUAL');
581: fnd_msg_pub.add;
582: RAISE fnd_api.g_exc_error;
583: END IF;
584:
585: inv_quantity_tree_grp.update_quantities
586: (
615: , p_lpn_id => p_lpn_id
616: , p_transfer_locator_id => p_transfer_locator_id
617: );
618:
619: IF l_return_status = fnd_api.g_ret_sts_error THEN
620: RAISE fnd_api.g_exc_error;
621: END IF ;
622:
623: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
616: , p_transfer_locator_id => p_transfer_locator_id
617: );
618:
619: IF l_return_status = fnd_api.g_ret_sts_error THEN
620: RAISE fnd_api.g_exc_error;
621: END IF ;
622:
623: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
624: RAISE fnd_api.g_exc_unexpected_error;
619: IF l_return_status = fnd_api.g_ret_sts_error THEN
620: RAISE fnd_api.g_exc_error;
621: END IF ;
622:
623: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
624: RAISE fnd_api.g_exc_unexpected_error;
625: END IF;
626:
627: x_qoh := l_qoh;
620: RAISE fnd_api.g_exc_error;
621: END IF ;
622:
623: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
624: RAISE fnd_api.g_exc_unexpected_error;
625: END IF;
626:
627: x_qoh := l_qoh;
628: x_rqoh := l_rqoh;
639: x_return_status := l_return_status;
640:
641: EXCEPTION
642:
643: WHEN fnd_api.g_exc_error THEN
644: x_return_status := fnd_api.g_ret_sts_error;
645:
646: -- Get message count and data
647: fnd_msg_pub.count_and_get
640:
641: EXCEPTION
642:
643: WHEN fnd_api.g_exc_error THEN
644: x_return_status := fnd_api.g_ret_sts_error;
645:
646: -- Get message count and data
647: fnd_msg_pub.count_and_get
648: ( p_count => x_msg_count
648: ( p_count => x_msg_count
649: , p_data => x_msg_data
650: );
651:
652: WHEN fnd_api.g_exc_unexpected_error THEN
653: x_return_status := fnd_api.g_ret_sts_unexp_error ;
654:
655: -- Get message count and data
656: fnd_msg_pub.count_and_get
649: , p_data => x_msg_data
650: );
651:
652: WHEN fnd_api.g_exc_unexpected_error THEN
653: x_return_status := fnd_api.g_ret_sts_unexp_error ;
654:
655: -- Get message count and data
656: fnd_msg_pub.count_and_get
657: ( p_count => x_msg_count
658: , p_data => x_msg_data
659: );
660:
661: WHEN OTHERS THEN
662: x_return_status := fnd_api.g_ret_sts_unexp_error ;
663:
664: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
665: THEN
666: fnd_msg_pub.add_exc_msg
685: -- x_no_violation = true if no violation has found
686: -- , otherwise = false
687: PROCEDURE do_check
688: ( p_api_version_number IN NUMBER
689: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
690: , x_return_status OUT NOCOPY VARCHAR2
691: , x_msg_count OUT NOCOPY NUMBER
692: , x_msg_data OUT NOCOPY VARCHAR2
693: , x_no_violation OUT NOCOPY BOOLEAN
693: , x_no_violation OUT NOCOPY BOOLEAN
694: ) IS
695: l_api_version_number CONSTANT NUMBER := 1.0;
696: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
697: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
698: BEGIN
699: -- Standard call to check for call compatibility
700: IF NOT fnd_api.compatible_api_call(l_api_version_number
701: , p_api_version_number
696: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
697: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
698: BEGIN
699: -- Standard call to check for call compatibility
700: IF NOT fnd_api.compatible_api_call(l_api_version_number
701: , p_api_version_number
702: , l_api_name
703: , G_PKG_NAME
704: ) THEN
701: , p_api_version_number
702: , l_api_name
703: , G_PKG_NAME
704: ) THEN
705: RAISE fnd_api.g_exc_unexpected_error;
706: END IF;
707:
708: -- Initialize message list.
709: IF fnd_api.to_boolean(p_init_msg_lst) THEN
705: RAISE fnd_api.g_exc_unexpected_error;
706: END IF;
707:
708: -- Initialize message list.
709: IF fnd_api.to_boolean(p_init_msg_lst) THEN
710: fnd_msg_pub.initialize;
711: END IF;
712:
713: inv_quantity_tree_grp.do_check
719: , x_msg_data => x_msg_data
720: , x_no_violation => x_no_violation
721: );
722:
723: IF l_return_status = fnd_api.g_ret_sts_error THEN
724: RAISE fnd_api.g_exc_error;
725: END IF ;
726:
727: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
720: , x_no_violation => x_no_violation
721: );
722:
723: IF l_return_status = fnd_api.g_ret_sts_error THEN
724: RAISE fnd_api.g_exc_error;
725: END IF ;
726:
727: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
728: RAISE fnd_api.g_exc_unexpected_error;
723: IF l_return_status = fnd_api.g_ret_sts_error THEN
724: RAISE fnd_api.g_exc_error;
725: END IF ;
726:
727: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
728: RAISE fnd_api.g_exc_unexpected_error;
729: END IF;
730:
731: x_return_status := l_return_status;
724: RAISE fnd_api.g_exc_error;
725: END IF ;
726:
727: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
728: RAISE fnd_api.g_exc_unexpected_error;
729: END IF;
730:
731: x_return_status := l_return_status;
732:
731: x_return_status := l_return_status;
732:
733: EXCEPTION
734:
735: WHEN fnd_api.g_exc_error THEN
736: x_return_status := fnd_api.g_ret_sts_error;
737:
738: -- Get message count and data
739: fnd_msg_pub.count_and_get
732:
733: EXCEPTION
734:
735: WHEN fnd_api.g_exc_error THEN
736: x_return_status := fnd_api.g_ret_sts_error;
737:
738: -- Get message count and data
739: fnd_msg_pub.count_and_get
740: ( p_count => x_msg_count
740: ( p_count => x_msg_count
741: , p_data => x_msg_data
742: );
743:
744: WHEN fnd_api.g_exc_unexpected_error THEN
745: x_return_status := fnd_api.g_ret_sts_unexp_error ;
746:
747: -- Get message count and data
748: fnd_msg_pub.count_and_get
741: , p_data => x_msg_data
742: );
743:
744: WHEN fnd_api.g_exc_unexpected_error THEN
745: x_return_status := fnd_api.g_ret_sts_unexp_error ;
746:
747: -- Get message count and data
748: fnd_msg_pub.count_and_get
749: ( p_count => x_msg_count
750: , p_data => x_msg_data
751: );
752:
753: WHEN OTHERS THEN
754: x_return_status := fnd_api.g_ret_sts_unexp_error ;
755:
756: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
757: THEN
758: fnd_msg_pub.add_exc_msg