[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 (
959: --
960: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
961: -- Clean up the tables
962:
963: -- Delete from Csp_Usage_Headers
964: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
965:
966:
967: -- Delete from Csp_Usage_Histories
960: l_get_app_info := fnd_installation.get_app_info('CSP',l_status,l_industry, l_oracle_schema);
961: -- Clean up the tables
962:
963: -- Delete from Csp_Usage_Headers
964: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HEADERS';
965:
966:
967: -- Delete from Csp_Usage_Histories
968: EXECUTE IMMEDIATE 'TRUNCATE TABLE '||l_oracle_schema||'.CSP_USAGE_HISTORIES';
1545: l_Variance :=
1546: (l_Usage_Qty_Sum - ((l_Usage_Quantity * l_Usage_Quantity) /l_Usage_Data_Count))/(l_Usage_Data_Count - 1);
1547: End If;
1548: l_Standard_Deviation := ROUND(SQRT(NVL(l_Variance,0)),4);
1549: INSERT INTO CSP_USAGE_HEADERS
1550: (USAGE_HEADER_ID,
1551: INVENTORY_ITEM_ID,
1552: ORGANIZATION_ID,
1553: SECONDARY_INVENTORY,
1705: THEN
1706: FND_MSG_PUB.initialize;
1707: END IF;
1708:
1709: INSERT INTO CSP_USAGE_HEADERS
1710: (USAGE_HEADER_ID,
1711: INVENTORY_ITEM_ID,
1712: ORGANIZATION_ID,
1713: SECONDARY_INVENTORY,
1837: THEN
1838: FND_MSG_PUB.initialize;
1839: END IF;
1840:
1841: INSERT INTO CSP_USAGE_HEADERS
1842: (USAGE_HEADER_ID,
1843: INVENTORY_ITEM_ID,
1844: ORGANIZATION_ID,
1845: SECONDARY_INVENTORY,
1968: THEN
1969: FND_MSG_PUB.initialize;
1970: END IF;
1971:
1972: INSERT INTO CSP_USAGE_HEADERS
1973: (USAGE_HEADER_ID,
1974: INVENTORY_ITEM_ID,
1975: ORGANIZATION_ID,
1976: SECONDARY_INVENTORY,
2774: cuh.RECOMMENDED_MAX_QUANTITY,
2775: cuh.INVENTORY_ITEM_ID,
2776: cuh.ORGANIZATION_ID,
2777: cuh.SECONDARY_INVENTORY
2778: From csp_usage_headers cuh,
2779: csp_planning_parameters cpp,
2780: mtl_item_sub_inventories misi,
2781: csp_business_rules_b cbrb
2782: Where header_data_type = 1
2814: Select cuh.inventory_item_id,
2815: cuh.organization_id,
2816: cuh.recommended_min_quantity,
2817: cuh.recommended_max_quantity
2818: from CSP_USAGE_HEADERS cuh,
2819: CSP_PLANNING_PARAMETERS cpp,
2820: MTL_SYSTEM_ITEMS_B msib,
2821: CSP_BUSINESS_RULES_B cbrb
2822: Where msib.INVENTORY_ITEM_ID = cuh.INVENTORY_ITEM_ID
2859: cuh.Organization_Id,
2860: cuh.secondary_inventory,
2861: cuh.recommended_min_quantity,
2862: cuh.recommended_max_quantity
2863: From csp_usage_headers cuh,
2864: csp_planning_parameters cpp,
2865: mtl_item_sub_inventories misi,
2866: CSP.csp_business_rules_b cbrb
2867: Where cuh.planning_parameters_id = cpp.planning_parameters_id
2947: usg_hdr_rec.RECOMMENDED_MIN_QUANTITY,
2948: usg_hdr_rec.RECOMMENDED_MAX_QUANTITY,2);
2949: END IF;
2950:
2951: UPDATE CSP_USAGE_HEADERS
2952: SET PROCESS_STATUS = 'C'
2953: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2954: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID
2955: AND SECONDARY_INVENTORY = usg_hdr_rec.SECONDARY_INVENTORY
2969: mtl_items.inventory_planning_code = 2
2970: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2971: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID;
2972:
2973: UPDATE CSP_USAGE_HEADERS
2974: SET PROCESS_STATUS = 'C'
2975: WHERE INVENTORY_ITEM_ID = usg_hdr_rec.INVENTORY_ITEM_ID
2976: AND ORGANIZATION_ID = usg_hdr_rec.ORGANIZATION_ID
2977: AND HEADER_DATA_TYPE = 4
3095: cuh.item_cost,
3096: cuh.lead_time,
3097: cpp.edq_factor,
3098: cpp.service_level
3099: from csp_usage_headers cuh,
3100: csp_planning_parameters cpp
3101: where cuh.inventory_item_id = p_item_id
3102: and cuh.organization_id = p_org_id
3103: and cuh.secondary_inventory = '-'