448: p_booked);
449: FND_FILE.Put_Line(FND_FILE.LOG, ' Line ID = '||
450: p_line_id );
451:
452: IF g_debug <= gme_debug.g_log_procedure THEN
453: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
454: END IF;
455:
456: IF g_debug <= gme_debug.g_log_procedure THEN
449: FND_FILE.Put_Line(FND_FILE.LOG, ' Line ID = '||
450: p_line_id );
451:
452: IF g_debug <= gme_debug.g_log_procedure THEN
453: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
454: END IF;
455:
456: IF g_debug <= gme_debug.g_log_procedure THEN
457: gme_debug.put_line('setting dates ');
452: IF g_debug <= gme_debug.g_log_procedure THEN
453: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
454: END IF;
455:
456: IF g_debug <= gme_debug.g_log_procedure THEN
457: gme_debug.put_line('setting dates ');
458: END IF;
459:
460:
453: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
454: END IF;
455:
456: IF g_debug <= gme_debug.g_log_procedure THEN
457: gme_debug.put_line('setting dates ');
458: END IF;
459:
460:
461: SELECT FND_DATE.Canonical_To_Date(p_request_date_low),
486: -- Moac End
487:
488: l_cursor_id := DBMS_SQL.OPEN_CURSOR;
489: -- Start constructing retrieval syntax
490: IF g_debug <= gme_debug.g_log_procedure THEN
491: gme_debug.put_line('Start building retrieval syntax');
492: END IF;
493: FND_FILE.Put_Line(FND_FILE.LOG, 'Starting syntax construction');
494: l_stmt := 'SELECT Line_id, l.org_id FROM OE_ORDER_LINES l, OE_ORDER_HEADERS_ALL h ,MTL_SYSTEM_ITEMS msi ';
487:
488: l_cursor_id := DBMS_SQL.OPEN_CURSOR;
489: -- Start constructing retrieval syntax
490: IF g_debug <= gme_debug.g_log_procedure THEN
491: gme_debug.put_line('Start building retrieval syntax');
492: END IF;
493: FND_FILE.Put_Line(FND_FILE.LOG, 'Starting syntax construction');
494: l_stmt := 'SELECT Line_id, l.org_id FROM OE_ORDER_LINES l, OE_ORDER_HEADERS_ALL h ,MTL_SYSTEM_ITEMS msi ';
495: l_stmt := l_stmt|| ' WHERE NVL(h.cancelled_flag,'||'''N'''||') <> ' ||'''Y'''||
583: ' AND l.inventory_item_id = msi.inventory_item_id'||
584: ' AND msi.service_item_flag <> '||'''Y'''||
585: ' AND msi.reservable_type <> 2';
586:
587: IF g_debug <= gme_debug.g_log_procedure THEN
588: gme_debug.put_line('Main syntax built now add order by clause');
589: END IF;
590:
591: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
584: ' AND msi.service_item_flag <> '||'''Y'''||
585: ' AND msi.reservable_type <> 2';
586:
587: IF g_debug <= gme_debug.g_log_procedure THEN
588: gme_debug.put_line('Main syntax built now add order by clause');
589: END IF;
590:
591: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
592: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
589: END IF;
590:
591: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
592: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
593: IF g_debug <= gme_debug.g_log_procedure THEN
594: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
595: END IF;
596: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
597:
590:
591: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
592: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
593: IF g_debug <= gme_debug.g_log_procedure THEN
594: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
595: END IF;
596: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
597:
598: FND_FILE.Put_Line(FND_FILE.LOG, ' Query Built = '||
598: FND_FILE.Put_Line(FND_FILE.LOG, ' Query Built = '||
599: l_stmt );
600:
601: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
602: IF g_debug <= gme_debug.g_log_procedure THEN
603: gme_debug.put_line('PARSE done ');
604: gme_debug.put_line('Start processing bind variables ');
605: END IF;
606: -- ================= BIND VARIABLES ======================
599: l_stmt );
600:
601: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
602: IF g_debug <= gme_debug.g_log_procedure THEN
603: gme_debug.put_line('PARSE done ');
604: gme_debug.put_line('Start processing bind variables ');
605: END IF;
606: -- ================= BIND VARIABLES ======================
607: IF p_org_id IS NOT NULL THEN
600:
601: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
602: IF g_debug <= gme_debug.g_log_procedure THEN
603: gme_debug.put_line('PARSE done ');
604: gme_debug.put_line('Start processing bind variables ');
605: END IF;
606: -- ================= BIND VARIABLES ======================
607: IF p_org_id IS NOT NULL THEN
608: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':org_id',p_org_id);
661: IF p_planning_priority IS NOT NULL THEN
662: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':planning_priority',p_planning_priority);
663: END IF;
664: --R12.MOAC
665: IF g_debug <= gme_debug.g_log_procedure THEN
666: gme_debug.put_line('bind variables done');
667: gme_debug.put_line('start output variables ');
668: END IF;
669:
662: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':planning_priority',p_planning_priority);
663: END IF;
664: --R12.MOAC
665: IF g_debug <= gme_debug.g_log_procedure THEN
666: gme_debug.put_line('bind variables done');
667: gme_debug.put_line('start output variables ');
668: END IF;
669:
670: -- ================= OUTPUT VARIABLES ======================
663: END IF;
664: --R12.MOAC
665: IF g_debug <= gme_debug.g_log_procedure THEN
666: gme_debug.put_line('bind variables done');
667: gme_debug.put_line('start output variables ');
668: END IF;
669:
670: -- ================= OUTPUT VARIABLES ======================
671: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
670: -- ================= OUTPUT VARIABLES ======================
671: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
672:
673: -- ================= EXECUTE ==========================
674: IF g_debug <= gme_debug.g_log_procedure THEN
675: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
676: END IF;
677: FND_FILE.Put_Line(FND_FILE.LOG, 'EXECUTE data retrieval ');
678:
671: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
672:
673: -- ================= EXECUTE ==========================
674: IF g_debug <= gme_debug.g_log_procedure THEN
675: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
676: END IF;
677: FND_FILE.Put_Line(FND_FILE.LOG, 'EXECUTE data retrieval ');
678:
679: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
678:
679: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
680:
681: -- ================= PROCESS ORDER LINES ==================
682: IF g_debug <= gme_debug.g_log_procedure THEN
683: gme_debug.put_line('Start looping through rows here');
684: END IF;
685: LOOP
686:
679: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
680:
681: -- ================= PROCESS ORDER LINES ==================
682: IF g_debug <= gme_debug.g_log_procedure THEN
683: gme_debug.put_line('Start looping through rows here');
684: END IF;
685: LOOP
686:
687:
706:
707: l_line_rec.schedule_action_code := OESCH_ACT_RESERVE; -- do we need to update action code ??
708: -- Make to Order Assessment
709: -- ========================
710: IF g_debug <= gme_debug.g_log_procedure THEN
711: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
712: END IF;
713:
714: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
707: l_line_rec.schedule_action_code := OESCH_ACT_RESERVE; -- do we need to update action code ??
708: -- Make to Order Assessment
709: -- ========================
710: IF g_debug <= gme_debug.g_log_procedure THEN
711: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
712: END IF;
713:
714: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
715: IF g_debug <= gme_debug.g_log_procedure THEN
711: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
712: END IF;
713:
714: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
715: IF g_debug <= gme_debug.g_log_procedure THEN
716: gme_debug.put_line('Yes this line qualifies for Make to Order ');
717: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
718: END IF;
719: Reserve_Eligible(
712: END IF;
713:
714: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
715: IF g_debug <= gme_debug.g_log_procedure THEN
716: gme_debug.put_line('Yes this line qualifies for Make to Order ');
717: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
718: END IF;
719: Reserve_Eligible(
720: p_line_rec => l_line_rec
713:
714: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
715: IF g_debug <= gme_debug.g_log_procedure THEN
716: gme_debug.put_line('Yes this line qualifies for Make to Order ');
717: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
718: END IF;
719: Reserve_Eligible(
720: p_line_rec => l_line_rec
721: ,p_use_reservation_time_fence => 'N'
721: ,p_use_reservation_time_fence => 'N'
722: ,x_return_status => l_return_status);
723:
724: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
725: IF g_debug <= gme_debug.g_log_procedure THEN
726: gme_debug.put_line('This line is not eligible for creating reservations so cannot proceed with MTO');
727: END IF;
728: GOTO NEXT_RECORD;
729: END IF;
722: ,x_return_status => l_return_status);
723:
724: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
725: IF g_debug <= gme_debug.g_log_procedure THEN
726: gme_debug.put_line('This line is not eligible for creating reservations so cannot proceed with MTO');
727: END IF;
728: GOTO NEXT_RECORD;
729: END IF;
730:
727: END IF;
728: GOTO NEXT_RECORD;
729: END IF;
730:
731: IF g_debug <= gme_debug.g_log_procedure THEN
732: gme_debug.put_line('Lock Row for line_id '||l_Line_id);
733: END IF;
734: OE_LINE_UTIL.Lock_Row
735: (p_line_id => l_Line_id,
728: GOTO NEXT_RECORD;
729: END IF;
730:
731: IF g_debug <= gme_debug.g_log_procedure THEN
732: gme_debug.put_line('Lock Row for line_id '||l_Line_id);
733: END IF;
734: OE_LINE_UTIL.Lock_Row
735: (p_line_id => l_Line_id,
736: p_x_line_rec => l_line_rec,
736: p_x_line_rec => l_line_rec,
737: x_return_status => l_return_status);
738:
739: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
740: IF g_debug <= gme_debug.g_log_procedure THEN
741: gme_debug.put_line('Failure to Lock Row for line_id '||l_Line_id);
742: END IF;
743: GOTO NEXT_RECORD;
744: END IF;
737: x_return_status => l_return_status);
738:
739: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
740: IF g_debug <= gme_debug.g_log_procedure THEN
741: gme_debug.put_line('Failure to Lock Row for line_id '||l_Line_id);
742: END IF;
743: GOTO NEXT_RECORD;
744: END IF;
745:
745:
746: /* Need to create an OPM batch */
747: /* Need to reserve the order line to the new production batch */
748: /* ========================================================== */
749: IF g_debug <= gme_debug.g_log_procedure THEN
750: gme_debug.put_line('Proceeding with Make to Order so invoke create batch for order line here');
751: END IF;
752:
753: GME_MAKE_TO_ORDER_PVT.create_batch_for_order_line(
746: /* Need to create an OPM batch */
747: /* Need to reserve the order line to the new production batch */
748: /* ========================================================== */
749: IF g_debug <= gme_debug.g_log_procedure THEN
750: gme_debug.put_line('Proceeding with Make to Order so invoke create batch for order line here');
751: END IF;
752:
753: GME_MAKE_TO_ORDER_PVT.create_batch_for_order_line(
754: p_api_version => 1.0
757: ,p_so_line_id => l_line_id);
758:
759: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN -- change create_batch above to return return_status
760:
761: IF g_debug <= gme_debug.g_log_procedure THEN
762: gme_debug.put_line('Failure during create batch for order line : line is '||l_line_rec.line_id);
763:
764: GOTO NEXT_RECORD;
765: END IF;
758:
759: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN -- change create_batch above to return return_status
760:
761: IF g_debug <= gme_debug.g_log_procedure THEN
762: gme_debug.put_line('Failure during create batch for order line : line is '||l_line_rec.line_id);
763:
764: GOTO NEXT_RECORD;
765: END IF;
766: END IF;
776: FND_FILE.Put_Line(FND_FILE.LOG, 'End of processing for OPM Make to Order');
777: COMMIT;
778:
779: <
780: IF g_debug <= gme_debug.g_log_procedure THEN
781: gme_debug.put_line('End of Processing for MAKE to ORDER');
782: END IF;
783:
784:
777: COMMIT;
778:
779: <
780: IF g_debug <= gme_debug.g_log_procedure THEN
781: gme_debug.put_line('End of Processing for MAKE to ORDER');
782: END IF;
783:
784:
785: EXCEPTION