114: --+==========================================================================+
115: -- Func end of comments
116: FUNCTION check_records_exist
117: (
118: p_organization_id IN cm_cmpt_dtl.organization_id%TYPE,
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
115: -- Func end of comments
116: FUNCTION check_records_exist
117: (
118: p_organization_id IN cm_cmpt_dtl.organization_id%TYPE,
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
116: FUNCTION check_records_exist
117: (
118: p_organization_id IN cm_cmpt_dtl.organization_id%TYPE,
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
124: p_cost_level IN cm_cmpt_dtl.cost_level%TYPE
117: (
118: p_organization_id IN cm_cmpt_dtl.organization_id%TYPE,
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
124: p_cost_level IN cm_cmpt_dtl.cost_level%TYPE
125: )
118: p_organization_id IN cm_cmpt_dtl.organization_id%TYPE,
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
124: p_cost_level IN cm_cmpt_dtl.cost_level%TYPE
125: )
126: RETURN BOOLEAN IS
119: p_inventory_item_id IN cm_cmpt_dtl.inventory_item_id%TYPE,
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
124: p_cost_level IN cm_cmpt_dtl.cost_level%TYPE
125: )
126: RETURN BOOLEAN IS
127:
120: p_period_id IN cm_cmpt_dtl.period_id%TYPE,
121: p_cost_type_id IN cm_cmpt_dtl.cost_type_id%TYPE ,
122: p_cost_cmpntcls_id IN cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
123: p_cost_analysis_code IN cm_cmpt_dtl.cost_analysis_code%TYPE,
124: p_cost_level IN cm_cmpt_dtl.cost_level%TYPE
125: )
126: RETURN BOOLEAN IS
127:
128:
126: RETURN BOOLEAN IS
127:
128:
129: CURSOR Cur_cmpt_dtl
130: ( cp_organization_id cm_cmpt_dtl.organization_id%TYPE,
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
127:
128:
129: CURSOR Cur_cmpt_dtl
130: ( cp_organization_id cm_cmpt_dtl.organization_id%TYPE,
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
128:
129: CURSOR Cur_cmpt_dtl
130: ( cp_organization_id cm_cmpt_dtl.organization_id%TYPE,
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
129: CURSOR Cur_cmpt_dtl
130: ( cp_organization_id cm_cmpt_dtl.organization_id%TYPE,
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
137: )
130: ( cp_organization_id cm_cmpt_dtl.organization_id%TYPE,
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
137: )
138: IS
131: cp_inventory_item_id cm_cmpt_dtl.inventory_item_id%TYPE,
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
137: )
138: IS
139: SELECT 'x'
132: cp_period_id cm_cmpt_dtl.period_id%TYPE,
133: cp_cost_type_id cm_cmpt_dtl.cost_type_id%TYPE ,
134: cp_cost_cmpntcls_id cm_cmpt_dtl.cost_cmpntcls_id%TYPE,
135: cp_cost_analysis_code cm_cmpt_dtl.cost_analysis_code%TYPE,
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
137: )
138: IS
139: SELECT 'x'
140: FROM cm_cmpt_dtl
136: cp_cost_level cm_cmpt_dtl.cost_level%TYPE
137: )
138: IS
139: SELECT 'x'
140: FROM cm_cmpt_dtl
141: WHERE organization_id = cp_organization_id
142: AND inventory_item_id = cp_inventory_item_id
143: AND period_id = cp_period_id
144: AND cost_type_id = cp_cost_type_id
166: --+========================================================================+
167: --| API Name : Create_Item_Cost |
168: --| TYPE : Public |
169: --| Function : Creates a new Item Cost based on the input into table |
170: --| CM_CMPT_DTL |
171: --| Pre-reqa : None. |
172: --| Parameters : |
173: --| IN : |
174: --| p_api_version IN NUMBER - Required |
217: * Local Variables *
218: ******************/
219: l_api_name CONSTANT VARCHAR2(30) := 'Create_Item_Cost' ;
220: l_api_version CONSTANT NUMBER := 3.0 ;
221: l_cmpntcost_id cm_cmpt_dtl.cmpntcost_id%TYPE ;
222: l_idx NUMBER(10) := 0 ;
223:
224: BEGIN
225: /**********************************
297: * not done in public API because of the performance considerations. *
298: * In case of failure error msg will be logged and will continue with the next record *
299: ***********************************************************************************************/
300: BEGIN
301: INSERT INTO cm_cmpt_dtl
302: (
303: cmpntcost_id,
304: inventory_item_id,
305: organization_id,
490: * not done in public API because of the performance considerations. *
491: * In case of failure error msg will be logged and will continue with the next record *
492: ***********************************************************************************************/
493: BEGIN
494: INSERT INTO cm_cmpt_dtl
495: (
496: cmpntcost_id,
497: inventory_item_id,
498: organization_id,
702: --Start of comments
703: --+========================================================================+
704: --| API Name : Update_Item_Cost |
705: --| TYPE : Public |
706: --| Function : Updates Item Cost based on the input into CM_CMPT_DTL |
707: --| Pre-reqa : None. |
708: --| Parameters : |
709: --| IN : |
710: --| p_api_version IN NUMBER - Required |
805: IF (p_this_level_dtl_tbl(i).cmpntcost_id IS NOT NULL) AND (p_this_level_dtl_tbl(i).cmpntcost_id <> FND_API.G_MISS_NUM)
806: THEN
807: IF p_this_level_dtl_tbl(i).delete_mark = 0
808: THEN
809: UPDATE cm_cmpt_dtl
810: SET cmpnt_cost = decode(p_this_level_dtl_tbl(i).cmpnt_cost, FND_API.G_MISS_NUM, NULL, NULL, cmpnt_cost, p_this_level_dtl_tbl(i).cmpnt_cost),
811: burden_ind = decode(p_this_level_dtl_tbl(i).burden_ind, FND_API.G_MISS_NUM, NULL, NULL, burden_ind, p_this_level_dtl_tbl(i).burden_ind),
812: total_qty = decode(p_this_level_dtl_tbl(i).total_qty, FND_API.G_MISS_NUM, NULL, NULL, total_qty, p_this_level_dtl_tbl(i).total_qty),
813: costcalc_orig= decode(p_this_level_dtl_tbl(i).costcalc_orig, FND_API.G_MISS_NUM, NULL, NULL, costcalc_orig, p_this_level_dtl_tbl(i).costcalc_orig),
849: last_update_login = FND_GLOBAL.LOGIN_ID
850: WHERE cmpntcost_id = p_this_level_dtl_tbl(i).cmpntcost_id
851: AND cost_level = 0;
852: ELSE -- delete the record i.e mark for purge
853: UPDATE cm_cmpt_dtl
854: SET delete_mark = 1,
855: last_update_date = sysdate,
856: last_updated_by = p_user_id,
857: last_update_login = FND_GLOBAL.LOGIN_ID
889: END IF ;
890: ELSE -- else if cmpntcost_id is not passed
891: IF p_this_level_dtl_tbl(i).delete_mark = 0
892: THEN
893: UPDATE cm_cmpt_dtl
894: SET cmpnt_cost = decode(p_this_level_dtl_tbl(i).cmpnt_cost, FND_API.G_MISS_NUM, NULL, NULL, cmpnt_cost, p_this_level_dtl_tbl(i).cmpnt_cost),
895: burden_ind = decode(p_this_level_dtl_tbl(i).burden_ind, FND_API.G_MISS_NUM, NULL, NULL, burden_ind, p_this_level_dtl_tbl(i).burden_ind),
896: total_qty = decode(p_this_level_dtl_tbl(i).total_qty, FND_API.G_MISS_NUM, NULL, NULL, total_qty, p_this_level_dtl_tbl(i).total_qty),
897: costcalc_orig= decode(p_this_level_dtl_tbl(i).costcalc_orig, FND_API.G_MISS_NUM, NULL, NULL, costcalc_orig, p_this_level_dtl_tbl(i).costcalc_orig),
938: AND cost_cmpntcls_id = p_this_level_dtl_tbl(i).cost_cmpntcls_id
939: AND cost_analysis_code = p_this_level_dtl_tbl(i).cost_analysis_code
940: AND cost_level = 0;
941: ELSE
942: UPDATE cm_cmpt_dtl
943: SET delete_mark = 1,
944: last_update_date = sysdate,
945: last_updated_by = p_user_id,
946: last_update_login = FND_GLOBAL.LOGIN_ID
1026: IF (p_lower_level_dtl_tbl(i).cmpntcost_id IS NOT NULL) AND (p_lower_level_dtl_tbl(i).cmpntcost_id <> FND_API.G_MISS_NUM)
1027: THEN
1028: IF p_lower_level_dtl_tbl(i).delete_mark = 0
1029: THEN
1030: UPDATE cm_cmpt_dtl
1031: SET cmpnt_cost = decode(p_lower_level_dtl_tbl(i).cmpnt_cost, FND_API.G_MISS_NUM, NULL, NULL, cmpnt_cost, p_lower_level_dtl_tbl(i).cmpnt_cost),
1032: delete_mark = 0,
1033: last_update_date = sysdate,
1034: last_updated_by = p_user_id,
1035: last_update_login = FND_GLOBAL.LOGIN_ID
1036: WHERE cmpntcost_id = p_lower_level_dtl_tbl(i).cmpntcost_id
1037: AND cost_level = 1;
1038: ELSE
1039: UPDATE cm_cmpt_dtl
1040: SET delete_mark = 1,
1041: last_update_date = sysdate,
1042: last_updated_by = p_user_id,
1043: last_update_login = FND_GLOBAL.LOGIN_ID
1075: END IF ;
1076: ELSE -- cmpntcost_id is not passed
1077: IF p_lower_level_dtl_tbl(i).delete_mark = 0
1078: THEN
1079: UPDATE cm_cmpt_dtl
1080: SET cmpnt_cost = decode(p_lower_level_dtl_tbl(i).cmpnt_cost, FND_API.G_MISS_NUM, NULL, NULL, cmpnt_cost, p_lower_level_dtl_tbl(i).cmpnt_cost ),
1081: delete_mark = 0,
1082: last_update_date = sysdate,
1083: last_updated_by = p_user_id,
1090: AND cost_cmpntcls_id = p_lower_level_dtl_tbl(i).cost_cmpntcls_id
1091: AND cost_analysis_code = p_lower_level_dtl_tbl(i).cost_analysis_code
1092: AND cost_level = 1;
1093: ELSE
1094: UPDATE cm_cmpt_dtl
1095: SET delete_mark = 1,
1096: last_update_date = sysdate,
1097: last_updated_by = p_user_id,
1098: last_update_login = FND_GLOBAL.LOGIN_ID
1221: --+========================================================================+
1222: --| API Name : Get_Item_Cost |
1223: --| TYPE : Private |
1224: --| Function : Retrieve Item Cost based on the input from table |
1225: --| CM_CMPT_DTL |
1226: --| Pre-reqa : None. |
1227: --| Parameters : |
1228: --| IN : |
1229: --| p_api_version IN NUMBER - Required |
1272:
1273: /**********
1274: * Cursors *
1275: **********/
1276: CURSOR cm_cmpt_dtl
1277: IS
1278: SELECT cd.cmpntcost_id, cd.cost_cmpntcls_id, cm.cost_cmpntcls_code,
1279: cd.cost_analysis_code, cd.cmpnt_cost, cd.burden_ind,
1280: cd.total_qty, cd.costcalc_orig, cd.rmcalc_type, cd.cost_level,
1285: cd.attribute16, cd.attribute17, cd.attribute18, cd.attribute19,
1286: cd.attribute20, cd.attribute21, cd.attribute22, cd.attribute23,
1287: cd.attribute24, cd.attribute25, cd.attribute26, cd.attribute27,
1288: cd.attribute28, cd.attribute29, cd.attribute30, cd.attribute_category
1289: FROM cm_cmpt_mst cm, cm_cmpt_dtl cd
1290: WHERE cd.inventory_item_id = p_header_rec.inventory_item_id
1291: AND cd.organization_id = p_header_rec.organization_id
1292: AND cd.period_id = p_header_rec.period_id
1293: AND cd.cost_type_id = p_header_rec.cost_type_id
1332: ' Period Id' || p_header_rec.Period_id ||
1333: ' Cost Type Id ' || p_header_rec.cost_type_id) ;
1334: END IF;
1335:
1336: FOR cr_rec IN cm_cmpt_dtl
1337: LOOP
1338: IF cr_rec.cost_level = 0
1339: THEN
1340: l_idx := l_idx + 1 ;