446: p_booked);
447: FND_FILE.Put_Line(FND_FILE.LOG, ' Line ID = '||
448: p_line_id );
449:
450: IF g_debug <= gme_debug.g_log_procedure THEN
451: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
452: END IF;
453:
454: IF g_debug <= gme_debug.g_log_procedure THEN
447: FND_FILE.Put_Line(FND_FILE.LOG, ' Line ID = '||
448: p_line_id );
449:
450: IF g_debug <= gme_debug.g_log_procedure THEN
451: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
452: END IF;
453:
454: IF g_debug <= gme_debug.g_log_procedure THEN
455: gme_debug.put_line('setting dates ');
450: IF g_debug <= gme_debug.g_log_procedure THEN
451: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
452: END IF;
453:
454: IF g_debug <= gme_debug.g_log_procedure THEN
455: gme_debug.put_line('setting dates ');
456: END IF;
457:
458:
451: gme_debug.put_line('Entering api '||g_pkg_name||'.'||l_api_name);
452: END IF;
453:
454: IF g_debug <= gme_debug.g_log_procedure THEN
455: gme_debug.put_line('setting dates ');
456: END IF;
457:
458:
459: SELECT FND_DATE.Canonical_To_Date(p_request_date_low),
484: -- Moac End
485:
486: l_cursor_id := DBMS_SQL.OPEN_CURSOR;
487: -- Start constructing retrieval syntax
488: IF g_debug <= gme_debug.g_log_procedure THEN
489: gme_debug.put_line('Start building retrieval syntax');
490: END IF;
491: FND_FILE.Put_Line(FND_FILE.LOG, 'Starting syntax construction');
492: l_stmt := 'SELECT Line_id, l.org_id FROM OE_ORDER_LINES l, OE_ORDER_HEADERS_ALL h ,MTL_SYSTEM_ITEMS msi ';
485:
486: l_cursor_id := DBMS_SQL.OPEN_CURSOR;
487: -- Start constructing retrieval syntax
488: IF g_debug <= gme_debug.g_log_procedure THEN
489: gme_debug.put_line('Start building retrieval syntax');
490: END IF;
491: FND_FILE.Put_Line(FND_FILE.LOG, 'Starting syntax construction');
492: l_stmt := 'SELECT Line_id, l.org_id FROM OE_ORDER_LINES l, OE_ORDER_HEADERS_ALL h ,MTL_SYSTEM_ITEMS msi ';
493: l_stmt := l_stmt|| ' WHERE NVL(h.cancelled_flag,'||'''N'''||') <> ' ||'''Y'''||
572: ' AND l.inventory_item_id = msi.inventory_item_id'||
573: ' AND msi.service_item_flag <> '||'''Y'''||
574: ' AND msi.reservable_type <> 2';
575:
576: IF g_debug <= gme_debug.g_log_procedure THEN
577: gme_debug.put_line('Main syntax built now add order by clause');
578: END IF;
579:
580: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
573: ' AND msi.service_item_flag <> '||'''Y'''||
574: ' AND msi.reservable_type <> 2';
575:
576: IF g_debug <= gme_debug.g_log_procedure THEN
577: gme_debug.put_line('Main syntax built now add order by clause');
578: END IF;
579:
580: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
581: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
578: END IF;
579:
580: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
581: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
582: IF g_debug <= gme_debug.g_log_procedure THEN
583: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
584: END IF;
585: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
586:
579:
580: l_stmt := l_stmt || ' ORDER BY l.inventory_item_id,l.ship_from_org_id,l.subinventory';
581: --OE_DEBUG_PUB.Add(substr(l_stmt,1,length(l_stmt)),1);
582: IF g_debug <= gme_debug.g_log_procedure THEN
583: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
584: END IF;
585: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
586:
587: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
584: END IF;
585: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
586:
587: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
588: IF g_debug <= gme_debug.g_log_procedure THEN
589: gme_debug.put_line('PARSE done ');
590: gme_debug.put_line('Start processing bind variables ');
591: END IF;
592: -- ================= BIND VARIABLES ======================
585: DBMS_SQL.PARSE(l_cursor_id,l_stmt,DBMS_SQL.NATIVE);
586:
587: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
588: IF g_debug <= gme_debug.g_log_procedure THEN
589: gme_debug.put_line('PARSE done ');
590: gme_debug.put_line('Start processing bind variables ');
591: END IF;
592: -- ================= BIND VARIABLES ======================
593: IF p_org_id IS NOT NULL THEN
586:
587: FND_FILE.Put_Line(FND_FILE.LOG, 'GME parse done now');
588: IF g_debug <= gme_debug.g_log_procedure THEN
589: gme_debug.put_line('PARSE done ');
590: gme_debug.put_line('Start processing bind variables ');
591: END IF;
592: -- ================= BIND VARIABLES ======================
593: IF p_org_id IS NOT NULL THEN
594: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':org_id',p_org_id);
647: IF p_planning_priority IS NOT NULL THEN
648: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':planning_priority',p_planning_priority);
649: END IF;
650: --R12.MOAC
651: IF g_debug <= gme_debug.g_log_procedure THEN
652: gme_debug.put_line('bind variables done');
653: gme_debug.put_line('start output variables ');
654: END IF;
655:
648: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':planning_priority',p_planning_priority);
649: END IF;
650: --R12.MOAC
651: IF g_debug <= gme_debug.g_log_procedure THEN
652: gme_debug.put_line('bind variables done');
653: gme_debug.put_line('start output variables ');
654: END IF;
655:
656: -- ================= OUTPUT VARIABLES ======================
649: END IF;
650: --R12.MOAC
651: IF g_debug <= gme_debug.g_log_procedure THEN
652: gme_debug.put_line('bind variables done');
653: gme_debug.put_line('start output variables ');
654: END IF;
655:
656: -- ================= OUTPUT VARIABLES ======================
657: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
656: -- ================= OUTPUT VARIABLES ======================
657: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
658:
659: -- ================= EXECUTE ==========================
660: IF g_debug <= gme_debug.g_log_procedure THEN
661: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
662: END IF;
663: FND_FILE.Put_Line(FND_FILE.LOG, 'EXECUTE data retrieval ');
664:
657: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_line_id);
658:
659: -- ================= EXECUTE ==========================
660: IF g_debug <= gme_debug.g_log_procedure THEN
661: gme_debug.put_line(substr(l_stmt,1,length(l_stmt)),1);
662: END IF;
663: FND_FILE.Put_Line(FND_FILE.LOG, 'EXECUTE data retrieval ');
664:
665: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
664:
665: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
666:
667: -- ================= PROCESS ORDER LINES ==================
668: IF g_debug <= gme_debug.g_log_procedure THEN
669: gme_debug.put_line('Start looping through rows here');
670: END IF;
671: LOOP
672: IF DBMS_SQL.FETCH_ROWS(l_cursor_id) = 0 THEN
665: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
666:
667: -- ================= PROCESS ORDER LINES ==================
668: IF g_debug <= gme_debug.g_log_procedure THEN
669: gme_debug.put_line('Start looping through rows here');
670: END IF;
671: LOOP
672: IF DBMS_SQL.FETCH_ROWS(l_cursor_id) = 0 THEN
673: FND_FILE.Put_Line(FND_FILE.LOG, 'Zero order line rows to process so exit');
690:
691: l_line_rec.schedule_action_code := OESCH_ACT_RESERVE; -- do we need to update action code ??
692: -- Make to Order Assessment
693: -- ========================
694: IF g_debug <= gme_debug.g_log_procedure THEN
695: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
696: END IF;
697:
698: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
691: l_line_rec.schedule_action_code := OESCH_ACT_RESERVE; -- do we need to update action code ??
692: -- Make to Order Assessment
693: -- ========================
694: IF g_debug <= gme_debug.g_log_procedure THEN
695: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
696: END IF;
697:
698: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
699: IF g_debug <= gme_debug.g_log_procedure THEN
695: gme_debug.put_line('Determine whether this line qualifies for MTO '||l_Line_id);
696: END IF;
697:
698: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
699: IF g_debug <= gme_debug.g_log_procedure THEN
700: gme_debug.put_line('Yes this line qualifies for Make to Order ');
701: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
702: END IF;
703: Reserve_Eligible(
696: END IF;
697:
698: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
699: IF g_debug <= gme_debug.g_log_procedure THEN
700: gme_debug.put_line('Yes this line qualifies for Make to Order ');
701: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
702: END IF;
703: Reserve_Eligible(
704: p_line_rec => l_line_rec
697:
698: IF GME_MAKE_TO_ORDER_PVT.line_qualifies_for_mto(l_line_rec.line_id) THEN
699: IF g_debug <= gme_debug.g_log_procedure THEN
700: gme_debug.put_line('Yes this line qualifies for Make to Order ');
701: gme_debug.put_line('Now determine if the line is eligible for reservation processing ');
702: END IF;
703: Reserve_Eligible(
704: p_line_rec => l_line_rec
705: ,p_use_reservation_time_fence => 'N'
705: ,p_use_reservation_time_fence => 'N'
706: ,x_return_status => l_return_status);
707:
708: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
709: IF g_debug <= gme_debug.g_log_procedure THEN
710: gme_debug.put_line('This line is not eligible for creating reservations so cannot proceed with MTO');
711: END IF;
712: GOTO NEXT_RECORD;
713: END IF;
706: ,x_return_status => l_return_status);
707:
708: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
709: IF g_debug <= gme_debug.g_log_procedure THEN
710: gme_debug.put_line('This line is not eligible for creating reservations so cannot proceed with MTO');
711: END IF;
712: GOTO NEXT_RECORD;
713: END IF;
714:
711: END IF;
712: GOTO NEXT_RECORD;
713: END IF;
714:
715: IF g_debug <= gme_debug.g_log_procedure THEN
716: gme_debug.put_line('Lock Row for line_id '||l_Line_id);
717: END IF;
718: OE_LINE_UTIL.Lock_Row
719: (p_line_id => l_Line_id,
712: GOTO NEXT_RECORD;
713: END IF;
714:
715: IF g_debug <= gme_debug.g_log_procedure THEN
716: gme_debug.put_line('Lock Row for line_id '||l_Line_id);
717: END IF;
718: OE_LINE_UTIL.Lock_Row
719: (p_line_id => l_Line_id,
720: p_x_line_rec => l_line_rec,
720: p_x_line_rec => l_line_rec,
721: x_return_status => l_return_status);
722:
723: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
724: IF g_debug <= gme_debug.g_log_procedure THEN
725: gme_debug.put_line('Failure to Lock Row for line_id '||l_Line_id);
726: END IF;
727: GOTO NEXT_RECORD;
728: END IF;
721: x_return_status => l_return_status);
722:
723: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
724: IF g_debug <= gme_debug.g_log_procedure THEN
725: gme_debug.put_line('Failure to Lock Row for line_id '||l_Line_id);
726: END IF;
727: GOTO NEXT_RECORD;
728: END IF;
729:
729:
730: /* Need to create an OPM batch */
731: /* Need to reserve the order line to the new production batch */
732: /* ========================================================== */
733: IF g_debug <= gme_debug.g_log_procedure THEN
734: gme_debug.put_line('Proceeding with Make to Order so invoke create batch for order line here');
735: END IF;
736:
737: GME_MAKE_TO_ORDER_PVT.create_batch_for_order_line(
730: /* Need to create an OPM batch */
731: /* Need to reserve the order line to the new production batch */
732: /* ========================================================== */
733: IF g_debug <= gme_debug.g_log_procedure THEN
734: gme_debug.put_line('Proceeding with Make to Order so invoke create batch for order line here');
735: END IF;
736:
737: GME_MAKE_TO_ORDER_PVT.create_batch_for_order_line(
738: p_api_version => 1.0
740: -- ,p_commit => FND_API.G_TRUE
741: ,p_so_line_id => l_line_id);
742:
743: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN -- change create_batch above to return return_status
744: IF g_debug <= gme_debug.g_log_procedure THEN
745: gme_debug.put_line('Failure during create batch for order line : line is '||l_line_rec.line_id);
746: GOTO NEXT_RECORD;
747: END IF;
748: END IF;
741: ,p_so_line_id => l_line_id);
742:
743: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN -- change create_batch above to return return_status
744: IF g_debug <= gme_debug.g_log_procedure THEN
745: gme_debug.put_line('Failure during create batch for order line : line is '||l_line_rec.line_id);
746: GOTO NEXT_RECORD;
747: END IF;
748: END IF;
749: ELSE
758: FND_FILE.Put_Line(FND_FILE.LOG, 'End of processing for OPM Make to Order');
759: COMMIT;
760:
761: <
762: IF g_debug <= gme_debug.g_log_procedure THEN
763: gme_debug.put_line('End of Processing for MAKE to ORDER');
764: END IF;
765:
766:
759: COMMIT;
760:
761: <
762: IF g_debug <= gme_debug.g_log_procedure THEN
763: gme_debug.put_line('End of Processing for MAKE to ORDER');
764: END IF;
765:
766:
767: EXCEPTION