[Home] [Help]
251: EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
252: end if;
253: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
254: If p_Level_Id = '1' Then
255: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
256: Else
257: Delete from csp_usage_headers cuh
258: Where (cuh.organization_id,cuh.secondary_inventory) in
259: (select cpp.organization_id ,nvl(cpp.secondary_inventory,'-')
253: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
254: If p_Level_Id = '1' Then
255: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
256: Else
257: Delete from csp_usage_headers cuh
258: Where (cuh.organization_id,cuh.secondary_inventory) in
259: (select cpp.organization_id ,nvl(cpp.secondary_inventory,'-')
260: from csp_planning_parameters cpp
261: Where cpp.level_id like p_Level_Id || '%' And cpp.node_type in ('ORGANIZATION_WH','SUBINVENTORY'));
393: Add_Err_Msg;
394: -- Re-establish Savepoint
395: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
396: --- Create header records for Stock list items at Subinventory Level
397: INSERT INTO CSP_USAGE_HEADERS
398: (USAGE_HEADER_ID,
399: INVENTORY_ITEM_ID,
400: ORGANIZATION_ID,
401: SECONDARY_INVENTORY,
450:
451: -- Re-establish Savepoint
452: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
453: --- Create header records for Stock list items at Organization Level
454: INSERT INTO CSP_USAGE_HEADERS
455: (USAGE_HEADER_ID,
456: INVENTORY_ITEM_ID,
457: ORGANIZATION_ID,
458: SECONDARY_INVENTORY,
506: fnd_msg_pub.add;
507: Add_Err_Msg;
508: -- Re-establish Savepoint
509: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
510: INSERT INTO CSP_USAGE_HEADERS
511: (USAGE_HEADER_ID,
512: INVENTORY_ITEM_ID,
513: ORGANIZATION_ID,
514: SECONDARY_INVENTORY,
563: sysdate,
564: fnd_global.user_id,
565: fnd_global.conc_login_id
566: from csp_planning_parameters cpp,
567: csp_usage_headers cuh,
568: cst_item_costs cic,
569: mtl_parameters mp,
570: mtl_system_items_b msib,
571: mtl_item_sub_inventories misi,
621: Add_Err_Msg;
622:
623: -- Re-establish Savepoint
624: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
625: --- Update csp_usage_headers for excluded items
626: update csp_usage_headers cuh
627: set process_status = 'E'
628: Where (cuh.inventory_item_id,cuh.organization_id,cuh.secondary_inventory) in
629: (select mic.inventory_item_id,mic.organization_id,nvl(cpp.secondary_inventory,'-')
622:
623: -- Re-establish Savepoint
624: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
625: --- Update csp_usage_headers for excluded items
626: update csp_usage_headers cuh
627: set process_status = 'E'
628: Where (cuh.inventory_item_id,cuh.organization_id,cuh.secondary_inventory) in
629: (select mic.inventory_item_id,mic.organization_id,nvl(cpp.secondary_inventory,'-')
630: from csp_planning_parameters cpp,
641: Add_Err_Msg;
642:
643: -- Re-establish Savepoint
644: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
645: UPDATE CSP_USAGE_HEADERS usg_headers
646: SET (recommended_min_quantity,recommended_max_quantity) =
647: (SELECT decode(sq.MAX_QUANTITY,0,0,greatest(1,sq.MIN_QUANTITY)),
648: sq.MAX_QUANTITY
649: FROM (Select cuh.Inventory_Item_Id,
653: ROUND(DECODE(SIGN(AWU),-1,0,ROUND(AWU,4))/7 * cuh.lead_time +
654: DECODE(cpp.safety_stock_flag,'Y',ROUND(csf.Safety_Factor * nvl(cuh.Standard_Deviation,0),4),0) +
655: DECODE(DECODE(SIGN(cuh.AWU),-1,0,cuh.AWU),0,0,DECODE(cuh.item_cost,0,0,
656: DECODE(cpp.edq_factor,0,0,ROUND(cpp.Edq_Factor * (SQRT(52 * cuh.Awu * cuh.Item_Cost)/cuh.Item_Cost),4))))) max_quantity
657: from CSP_USAGE_HEADERS cuh,
658: CSP_PLANNING_PARAMETERS cpp,
659: CSP_SAFETY_FACTORS csf
660: Where cuh.header_data_type = 1
661: And cuh.process_status = 'O'
679: Add_Err_Msg;
680:
681: -- Re-establish Savepoint
682: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
683: UPDATE csp_usage_headers usg_headers
684: Set (recommended_min_quantity,recommended_max_quantity) =
685: (SELECT decode(sq.MAX_QUANTITY,0,0,greatest(1,sq.MIN_QUANTITY)),
686: sq.MAX_QUANTITY
687: FROM (Select cuh.inventory_item_id,
691: ROUND(DECODE(SIGN(AWU),-1,0,ROUND(AWU,4))/7 * cuh.lead_time +
692: DECODE(cpp.safety_stock_flag,'Y',ROUND(csf.Safety_Factor * nvl(cuh.Standard_Deviation,0),4),0) +
693: DECODE(DECODE(SIGN(cuh.AWU),-1,0,cuh.AWU),0,0,DECODE(cuh.item_cost,0,0,
694: DECODE(cpp.edq_factor,0,0,ROUND(cpp.Edq_Factor * (SQRT(52 * cuh.Awu * cuh.Item_Cost)/cuh.Item_Cost),4))))) max_quantity
695: from CSP_USAGE_HEADERS cuh,
696: CSP_PLANNING_PARAMETERS cpp,
697: CSP_SAFETY_FACTORS csf
698: Where cuh.header_data_type = 4
699: And cuh.process_status = 'O'
734: -- Re-establish Savepoint
735: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
736:
737: -- Calculate Tracking Signal for Subinventory
738: update csp_usage_headers cuh
739: set tracking_signal =
740: (select round(decode(a.forecast_periods - 1,0,0, sum(a.diff)/
741: sqrt((sum(a.diff * a.diff) - (sum(a.diff) * sum(a.diff)/a.forecast_periods)) / (a.forecast_periods - 1))),4)
742: from (
780:
781: -- Re-establish Savepoint
782: SAVEPOINT GENERATE_RECOMMENDATIONS_PVT;
783: -- Calculate Tracking Signal for Organization
784: update csp_usage_headers cuh
785: set tracking_signal =
786: (select round(decode(a.forecast_periods - 1,0,0, sum(a.diff)/
787: sqrt((sum(a.diff * a.diff) - (sum(a.diff) * sum(a.diff)/a.forecast_periods)) / (a.forecast_periods - 1))),4)
788: from (
956: --
957: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
958: -- Clean up the tables
959:
960: -- Delete from Csp_Usage_Headers
961: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
962:
963:
964: -- Delete from Csp_Usage_Histories
957: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
958: -- Clean up the tables
959:
960: -- Delete from Csp_Usage_Headers
961: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
962:
963:
964: -- Delete from Csp_Usage_Histories
965: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HISTORIES';
1565: l_Variance :=
1566: (l_Usage_Qty_Sum - ((l_Usage_Quantity * l_Usage_Quantity) /l_Usage_Data_Count))/(l_Usage_Data_Count - 1);
1567: End If;
1568: l_Standard_Deviation := ROUND(SQRT(NVL(l_Variance,0)),4);
1569: INSERT INTO CSP_USAGE_HEADERS
1570: (USAGE_HEADER_ID,
1571: INVENTORY_ITEM_ID,
1572: ORGANIZATION_ID,
1573: SECONDARY_INVENTORY,
1725: THEN
1726: FND_MSG_PUB.initialize;
1727: END IF;
1728:
1729: INSERT INTO CSP_USAGE_HEADERS
1730: (USAGE_HEADER_ID,
1731: INVENTORY_ITEM_ID,
1732: ORGANIZATION_ID,
1733: SECONDARY_INVENTORY,
1857: THEN
1858: FND_MSG_PUB.initialize;
1859: END IF;
1860:
1861: INSERT INTO CSP_USAGE_HEADERS
1862: (USAGE_HEADER_ID,
1863: INVENTORY_ITEM_ID,
1864: ORGANIZATION_ID,
1865: SECONDARY_INVENTORY,
1988: THEN
1989: FND_MSG_PUB.initialize;
1990: END IF;
1991:
1992: INSERT INTO CSP_USAGE_HEADERS
1993: (USAGE_HEADER_ID,
1994: INVENTORY_ITEM_ID,
1995: ORGANIZATION_ID,
1996: SECONDARY_INVENTORY,
2794: cuh.RECOMMENDED_MAX_QUANTITY,
2795: cuh.INVENTORY_ITEM_ID,
2796: cuh.ORGANIZATION_ID,
2797: cuh.SECONDARY_INVENTORY
2798: From csp_usage_headers cuh,
2799: csp_planning_parameters cpp,
2800: mtl_item_sub_inventories misi,
2801: csp_business_rules_b cbrb
2802: Where header_data_type = 1
2834: Select cuh.inventory_item_id,
2835: cuh.organization_id,
2836: cuh.recommended_min_quantity,
2837: cuh.recommended_max_quantity
2838: from CSP_USAGE_HEADERS cuh,
2839: CSP_PLANNING_PARAMETERS cpp,
2840: MTL_SYSTEM_ITEMS_B msib,
2841: CSP_BUSINESS_RULES_B cbrb
2842: Where msib.INVENTORY_ITEM_ID = cuh.INVENTORY_ITEM_ID
2879: cuh.Organization_Id,
2880: cuh.secondary_inventory,
2881: cuh.recommended_min_quantity,
2882: cuh.recommended_max_quantity
2883: From csp_usage_headers cuh,
2884: csp_planning_parameters cpp,
2885: mtl_item_sub_inventories misi,
2886: CSP.csp_business_rules_b cbrb
2887: Where cuh.planning_parameters_id = cpp.planning_parameters_id
2967: usg_hdr_rec.RECOMMENDED_MIN_QUANTITY,
2968: usg_hdr_rec.RECOMMENDED_MAX_QUANTITY,2);
2969: END IF;
2970:
2971: UPDATE CSP_USAGE_HEADERS
2972: SET PROCESS_STATUS = 'C'
2973: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2974: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID
2975: AND SECONDARY_INVENTORY = usg_hdr_rec.SECONDARY_INVENTORY
2989: mtl_items.inventory_planning_code = 2
2990: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2991: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID;
2992:
2993: UPDATE CSP_USAGE_HEADERS
2994: SET PROCESS_STATUS = 'C'
2995: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2996: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID
2997: AND HEADER_DATA_TYPE = 4
3142: cuh.item_cost,
3143: cuh.lead_time,
3144: cpp.edq_factor,
3145: cpp.service_level
3146: from csp_usage_headers cuh,
3147: csp_planning_parameters cpp
3148: where cuh.inventory_item_id = p_item_id
3149: and cuh.organization_id = p_org_id
3150: and cuh.secondary_inventory = '-'