247: OPEN SHIPPED_QUANTITIES (l_f_asn, l_f_pick_line_id);
248: FETCH SHIPPED_QUANTITIES INTO l_shipped_td, l_already_shipped;
249: CLOSE SHIPPED_QUANTITIES;
250:
251: INSERT INTO WSH_REPORT_TEMP
252: ( REPORT_TEMP_ID
253: , DEPARTURE_ID
254: , DELIVERY_ID
255: , SHIPPED_FLAG
316: -- Update any detail, line and header attributes
317: -- Index on the INVENTORY_ITEM_ID for SO_LINE_DETAILS table is turned off
318: -- deliberately to make sure the index on LINE_ID is used.
319:
320: UPDATE WSH_REPORT_TEMP R
321: SET
322: ( R.CONFIGURATION_ITEM_FLAG
323: , R.REQUIRED_FOR_REVENUE_FLAG
324: , R.COMPONENT_RATIO
367:
368: -- Dont print any config items (the report prints the actual model
369: -- instead) or option classes on the pack slip
370:
371: UPDATE WSH_REPORT_TEMP R
372: SET R.INCLUDE_ON_SHIP_DOCS = 0
373: WHERE R.REPORT_TEMP_ID = p_report_id
374: AND R.DEPARTURE_ID = l_dep_id
375: AND (R.CONFIGURATION_ITEM_FLAG = 'Y'
389:
390: -- Dont print any config items (the report prints the actual model
391: -- instead) or option classes on the pack slip
392:
393: UPDATE WSH_REPORT_TEMP R
394: SET R.ORDERED_QUANTITY = NULL,
395: R.SHIPPED_QUANTITY = NULL,
396: R.TOTAL_ALREADY_SHIPPED = NULL,
397: R.TOTAL_SHIPPED_TODATE = NULL,
413:
414: -- Dont print any config items (the report prints the actual model
415: -- instead)
416:
417: UPDATE WSH_REPORT_TEMP
418: SET INCLUDE_ON_SHIP_DOCS = 0
419: WHERE REPORT_TEMP_ID = p_report_id
420: AND DEPARTURE_ID = l_dep_id
421: AND CONFIGURATION_ITEM_FLAG = 'Y';
423: END IF;
424:
425: IF p_debug = 'ON' THEN
426:
427: FOR DREC IN (SELECT * FROM WSH_REPORT_TEMP
428: WHERE REPORT_TEMP_ID = p_report_id) LOOP
429:
430: --dbms_output.enable(1000000);
431: --dbms_output.put_line('Order Number: '||DREC.order_number);
517: , LD.CONFIGURATION_ITEM_FLAG
518: , LD.REQUIRED_FOR_REVENUE_FLAG
519: , LD.UNIT_CODE
520: FROM SO_LINE_DETAILS LD
521: , WSH_REPORT_TEMP RT
522: WHERE LD.LINE_ID = RT.LINE_ID
523: AND LD.SHIPPABLE_FLAG = 'N'
524: AND RT.REPORT_TEMP_ID = l_rep_id
525: -- make sure the non shipable line detail is not an order line.
529: AND L.COMPONENT_CODE = LD.COMPONENT_CODE);
530: /**** always select non shippable lines irrespective if any component lines where pick releases
531: and exists (select 'shipped component line'
532: from so_picking_lines_all
533: where order_line_id in (select line_id from wsh_report_temp where report_temp_id= rep_id)
534: and component_code != ld.component_code
535: and component_code like ld.component_code||'%')
536: ***/
537:
547: END IF;
548:
549: FOR NSLINE IN NON_SHIP_LINES(p_report_id) LOOP
550:
551: INSERT INTO WSH_REPORT_TEMP
552: ( REPORT_TEMP_ID
553: , DEPARTURE_ID
554: , DELIVERY_ID
555: , SHIPPED_FLAG
626: DECLARE
627:
628: CURSOR MAX_LEVELS (l_rep_id IN NUMBER) IS
629: SELECT MAX(ITEM_INDENTATION)
630: FROM WSH_REPORT_TEMP
631: WHERE REPORT_TEMP_ID = l_rep_id;
632:
633: l_i NUMBER;
634: l_max_l NUMBER;
660: IF l_max_l > 1 THEN
661:
662: FOR l_i IN REVERSE 1..l_max_l LOOP
663:
664: UPDATE WSH_REPORT_TEMP R
665: SET ( R.TOTAL_SHIPPED_TODATE
666: , R.TOTAL_ALREADY_SHIPPED
667: , R.SHIPPED_QUANTITY
668: , R.SHIP_TO_CONTACT_ID ) =
670: , MIN(S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
671: , MIN(S.TOTAL_SHIPPED_TODATE/S.COMPONENT_RATIO) -
672: MIN(S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
673: , MIN(S.SHIP_TO_CONTACT_ID)
674: FROM WSH_REPORT_TEMP S
675: WHERE S.REPORT_TEMP_ID = R.REPORT_TEMP_ID
676: AND S.DELIVERY_ID = R.DELIVERY_ID
677: AND S.ITEM_INDENTATION = R.ITEM_INDENTATION + 1
678: AND S.COMPONENT_CODE LIKE R. COMPONENT_CODE||'%')
699: DECLARE
700:
701: CURSOR MAX_LEVELS (l_rep_id IN NUMBER) IS
702: SELECT MAX(ITEM_INDENTATION)-1
703: FROM WSH_REPORT_TEMP
704: WHERE REPORT_TEMP_ID = l_rep_id;
705:
706: l_i NUMBER;
707: l_max_l NUMBER;
725: IF l_max_l > 0 THEN
726:
727: FOR l_i IN REVERSE 1..l_max_l LOOP
728:
729: UPDATE WSH_REPORT_TEMP R
730: SET ( R.QUANTITY_TO_INVOICE, R.CHILD_RFR_FLAG) =
731: ( SELECT MIN (S.TOTAL_SHIPPED_TODATE/S.COMPONENT_RATIO) -
732: MIN (S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
733: , 'Y'
730: SET ( R.QUANTITY_TO_INVOICE, R.CHILD_RFR_FLAG) =
731: ( SELECT MIN (S.TOTAL_SHIPPED_TODATE/S.COMPONENT_RATIO) -
732: MIN (S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
733: , 'Y'
734: FROM WSH_REPORT_TEMP S
735: WHERE S.REPORT_TEMP_ID = R.REPORT_TEMP_ID
736: AND S.DELIVERY_ID = R.DELIVERY_ID
737: AND S.ITEM_INDENTATION = R.ITEM_INDENTATION + 1
738: AND (S.REQUIRED_FOR_REVENUE_FLAG = 'Y'
746: -- do the same select again but for not required for revenue
747: -- note: the only difference between these 2 is wether it select Y or N
748: -- unfortunately we cant use decode because of the group function min()
749:
750: UPDATE WSH_REPORT_TEMP R
751: SET ( R.QUANTITY_TO_INVOICE, R.CHILD_RFR_FLAG) =
752: ( SELECT MIN (S.TOTAL_SHIPPED_TODATE/S.COMPONENT_RATIO) -
753: MIN (S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
754: , 'N'
751: SET ( R.QUANTITY_TO_INVOICE, R.CHILD_RFR_FLAG) =
752: ( SELECT MIN (S.TOTAL_SHIPPED_TODATE/S.COMPONENT_RATIO) -
753: MIN (S.TOTAL_ALREADY_SHIPPED/S.COMPONENT_RATIO)
754: , 'N'
755: FROM WSH_REPORT_TEMP S
756: WHERE S.REPORT_TEMP_ID = R.REPORT_TEMP_ID
757: AND S.DELIVERY_ID = R.DELIVERY_ID
758: AND S.ITEM_INDENTATION = R.ITEM_INDENTATION + 1
759: AND S.COMPONENT_CODE LIKE R.COMPONENT_CODE||'%')
806: FROM SO_LINES_ALL L
807: WHERE L.LINE_ID = l_id
808: AND L.LINE_TYPE_CODE IN ('DETAIL','REGULAR')
809: AND NOT EXISTS (SELECT 'ALREADY EXISTS IN TEMP TABLE'
810: FROM WSH_REPORT_TEMP T
811: WHERE T.REPORT_TEMP_ID = l_rep_id
812: AND T.LINE_ID = L.LINE_ID
813: AND T.DELIVERY_ID = l_del_id
814: AND T.SHIPPED_FLAG = 'N');
848: l_selling_price, l_unit_code,l_ato_flag;
849:
850:
851: IF ORDER_LINES%FOUND THEN
852: INSERT INTO WSH_REPORT_TEMP
853: ( REPORT_TEMP_ID
854: , DEPARTURE_ID
855: , DELIVERY_ID
856: , SHIPPED_FLAG
888: , FND_GLOBAL.user_id
889: FROM DUAL
890: WHERE NOT EXISTS
891: (SELECT 'ALREADY EXISTS IN TEMP TABLE'
892: FROM WSH_REPORT_TEMP
893: WHERE REPORT_TEMP_ID = p_report_id
894: AND LINE_ID = p_line_id
895: AND DELIVERY_ID = p_delivery_id
896: AND INVENTORY_ITEM_ID = l_item_id);
953: FROM SO_LINES_ALL L
954: WHERE L.ATO_LINE_ID = l_id
955: AND L.LINE_TYPE_CODE IN ('DETAIL','REGULAR')
956: AND NOT EXISTS (SELECT 'ALREADY EXISTS IN TEMP TABLE'
957: FROM WSH_REPORT_TEMP T
958: WHERE T.REPORT_TEMP_ID = l_rep_id
959: AND T.LINE_ID = L.LINE_ID
960: AND T.DELIVERY_ID = l_del_id
961: AND T.SHIPPED_FLAG = 'N');
995:
996:
997: EXIT WHEN ORDER_LINES%NOTFOUND;
998:
999: INSERT INTO WSH_REPORT_TEMP
1000: ( REPORT_TEMP_ID
1001: , DEPARTURE_ID
1002: , DELIVERY_ID
1003: , SHIPPED_FLAG
1035: , FND_GLOBAL.user_id
1036: FROM DUAL
1037: WHERE NOT EXISTS
1038: (SELECT 'ALREADY EXISTS IN TEMP TABLE'
1039: FROM WSH_REPORT_TEMP
1040: WHERE REPORT_TEMP_ID = p_report_id
1041: AND LINE_ID = l_line_id
1042: AND DELIVERY_ID = p_delivery_id
1043: AND INVENTORY_ITEM_ID = l_item_id);
1089: CURSOR SHIPPED_QUANTITY (l_rep_id IN NUMBER,
1090: l_ord_line_id IN NUMBER,
1091: l_item_id IN NUMBER) IS
1092: SELECT SUM(SHIPPED_QUANTITY)
1093: FROM WSH_REPORT_TEMP
1094: WHERE REPORT_TEMP_ID = l_rep_id
1095: AND LINE_ID = l_ord_line_id
1096: AND INVENTORY_ITEM_ID = l_item_id;
1097:
1137:
1138: PROCEDURE DELETE_REPORT (p_report_id IN NUMBER) IS
1139: BEGIN
1140:
1141: DELETE FROM WSH_REPORT_TEMP
1142: WHERE REPORT_TEMP_ID = p_report_id
1143: OR CREATION_DATE < sysdate - 2;
1144:
1145: END DELETE_REPORT;