66: WHERE PRH.SEGMENT1 = l_requisition_number AND
67: PRL.REQUISITION_LINE_ID = l_requisition_line_id AND
68: PRH.REQUISITION_HEADER_ID = PRL.REQUISITION_HEADER_ID;
69:
70: CURSOR PO_HEADERS_ALL(l_requisition_line_id NUMBER) IS
71: SELECT POH.po_header_id, POH.segment1, POH.AUTHORIZATION_STATUS, POH.closed_code,
72: PLL.line_location_id, PLL.po_line_id
73: FROM PO_REQUISITION_LINES_ALL PRL, PO_LINE_LOCATIONS_ALL PLL, PO_HEADERS_ALL POH
74: WHERE PRL.REQUISITION_LINE_ID = l_requisition_line_id AND
69:
70: CURSOR PO_HEADERS_ALL(l_requisition_line_id NUMBER) IS
71: SELECT POH.po_header_id, POH.segment1, POH.AUTHORIZATION_STATUS, POH.closed_code,
72: PLL.line_location_id, PLL.po_line_id
73: FROM PO_REQUISITION_LINES_ALL PRL, PO_LINE_LOCATIONS_ALL PLL, PO_HEADERS_ALL POH
74: WHERE PRL.REQUISITION_LINE_ID = l_requisition_line_id AND
75: PRL.LINE_LOCATION_ID = PLL.LINE_LOCATION_ID AND
76: PLL.PO_HEADER_ID = POH.PO_HEADER_ID;
77:
113: CURSOR PO_REQ_RECEIVED_QTY(l_requisition_line_id NUMBER) IS
114: SELECT PLL.quantity_received, PRL.closed_code,
115: POH.po_header_id, POH.segment1, POH.AUTHORIZATION_STATUS, -- POH.closed_code,
116: PLL.line_location_id, PLL.po_line_id
117: FROM PO_REQUISITION_LINES_ALL PRL, PO_LINE_LOCATIONS_ALL PLL, PO_HEADERS_ALL POH
118: WHERE PRL.REQUISITION_LINE_ID = l_requisition_line_id AND
119: PRL.LINE_LOCATION_ID = PLL.LINE_LOCATION_ID AND
120: PLL.PO_HEADER_ID = POH.PO_HEADER_ID;
121:
298:
299: ---- Start Step:3 ----
300:
301: /** For all the repair_po with status '3'
302: If record is created in PO_HEADERS_ALL table
303: and CLOSED_CODE (or) AUTHORIZATION_STATUS is not 'APPROVED' then update the status = 4.
304: Else if CLOSED_CODE (or) AUTHORIZATION_STATUS = 'APPROVED' then update the status = 5.
305: **/
306:
307: SAVEPOINT RUN_REPAIR_EXECUTION_PVT;
308:
309: FOR CSP_REPAIR_PO_HEADERS_rec IN C_CSP_REPAIR_PO_HEADERS(3)
310: LOOP
311: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
312: LOOP
313: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'OPEN'
314: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'OPEN' then
315: UPDATE CSP_REPAIR_PO_HEADERS
309: FOR CSP_REPAIR_PO_HEADERS_rec IN C_CSP_REPAIR_PO_HEADERS(3)
310: LOOP
311: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
312: LOOP
313: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'OPEN'
314: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'OPEN' then
315: UPDATE CSP_REPAIR_PO_HEADERS
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
310: LOOP
311: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
312: LOOP
313: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'OPEN'
314: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'OPEN' then
315: UPDATE CSP_REPAIR_PO_HEADERS
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
312: LOOP
313: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'OPEN'
314: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'OPEN' then
315: UPDATE CSP_REPAIR_PO_HEADERS
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
313: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'OPEN'
314: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'OPEN' then
315: UPDATE CSP_REPAIR_PO_HEADERS
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
321: UPDATE CSP_REPAIR_PO_HEADERS
315: UPDATE CSP_REPAIR_PO_HEADERS
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
321: UPDATE CSP_REPAIR_PO_HEADERS
322: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
323: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
316: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
317: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 4
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
321: UPDATE CSP_REPAIR_PO_HEADERS
322: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
323: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
324: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
318: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
321: UPDATE CSP_REPAIR_PO_HEADERS
322: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
323: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
324: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
325: End if;
326: END LOOP;
319: Elsif NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
320: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
321: UPDATE CSP_REPAIR_PO_HEADERS
322: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
323: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
324: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
325: End if;
326: END LOOP;
327: END LOOP;
332:
333: ---- Start Step:4 ----
334:
335: /** For all the repair_po with status '4'
336: If record is created in PO_HEADERS_ALL table
337: and CLOSED_CODE (or) AUTHORIZATION_STATUS = 'APPROVED' then update the status = 5.
338: **/
339:
340: SAVEPOINT RUN_REPAIR_EXECUTION_PVT;
340: SAVEPOINT RUN_REPAIR_EXECUTION_PVT;
341:
342: FOR CSP_REPAIR_PO_HEADERS_rec IN C_CSP_REPAIR_PO_HEADERS(4)
343: LOOP
344: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
345: LOOP
346: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
347: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
348: UPDATE CSP_REPAIR_PO_HEADERS
342: FOR CSP_REPAIR_PO_HEADERS_rec IN C_CSP_REPAIR_PO_HEADERS(4)
343: LOOP
344: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
345: LOOP
346: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
347: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
348: UPDATE CSP_REPAIR_PO_HEADERS
349: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
350: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
343: LOOP
344: FOR PO_HEADERS_ALL_rec IN PO_HEADERS_ALL(CSP_REPAIR_PO_HEADERS_rec.REQUISITION_LINE_ID)
345: LOOP
346: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
347: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
348: UPDATE CSP_REPAIR_PO_HEADERS
349: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
350: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
351: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
345: LOOP
346: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
347: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
348: UPDATE CSP_REPAIR_PO_HEADERS
349: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
350: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
351: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
352: End if;
353: END LOOP;
346: If NVL(PO_HEADERS_ALL_rec.CLOSED_CODE,'OPEN') = 'APPROVED'
347: OR NVL(PO_HEADERS_ALL_rec.AUTHORIZATION_STATUS,'OPEN') = 'APPROVED' then
348: UPDATE CSP_REPAIR_PO_HEADERS
349: SET PURCHASE_ORDER_HEADER_ID = PO_HEADERS_ALL_rec.PO_HEADER_ID,
350: PO_NUMBER = PO_HEADERS_ALL_rec.SEGMENT1, STATUS = 5
351: WHERE CURRENT OF C_CSP_REPAIR_PO_HEADERS;
352: End if;
353: END LOOP;
354: END LOOP;
358: ---- End Step:4 ----
359:
360: ---- Start Step:5 ----
361: /** For all the repair_po with status '5'
362: i.e Record is created in PO_HEADERS_ALL table and CLOSED_CODE (or) AUTHORIZATION_STATUS = 'APPROVED'
363: If no internal order is created and REPAIR_PROGRAM <> 'PRE-POSITIONING' then
364: create an internal order and cancel the existing reservation.
365: **/
366: