[Home] [Help]
1: PACKAGE BODY CS_Cost_Details_PVT AS
2: /* $Header: csxvcstb.pls 120.25.12020000.3 2013/03/03 02:06:43 bkanimoz ship $ */
3:
4: L_RECALC_COST VARCHAR2(1):='N';
5: l_item_changed VARCHAR2(1):='N';
27: )RETURN VARCHAR2;
28:
29: PROCEDURE RECORD_IS_LOCKED_MSG(P_TOKEN_AN IN VARCHAR2);
30:
31: PROCEDURE TO_NULL(p_cost_rec_in IN cs_cost_details_pub.Cost_Rec_Type,
32: p_cost_rec_out OUT NOCOPY cs_cost_details_pub.Cost_Rec_Type
33: );
34:
35: PROCEDURE VALIDATE_COST_DETAILS
28:
29: PROCEDURE RECORD_IS_LOCKED_MSG(P_TOKEN_AN IN VARCHAR2);
30:
31: PROCEDURE TO_NULL(p_cost_rec_in IN cs_cost_details_pub.Cost_Rec_Type,
32: p_cost_rec_out OUT NOCOPY cs_cost_details_pub.Cost_Rec_Type
33: );
34:
35: PROCEDURE VALIDATE_COST_DETAILS
36: (
34:
35: PROCEDURE VALIDATE_COST_DETAILS
36: (
37: p_api_name IN VARCHAR2,
38: pv_cost_rec IN CS_COST_DETAILS_PUB.COST_REC_TYPE,
39: p_validation_mode IN VARCHAR2,
40: p_user_id IN NUMBER,
41: p_login_id IN NUMBER,
42: x_cost_rec OUT NOCOPY CS_COST_DETAILS_PUB.COST_REC_TYPE,
38: pv_cost_rec IN CS_COST_DETAILS_PUB.COST_REC_TYPE,
39: p_validation_mode IN VARCHAR2,
40: p_user_id IN NUMBER,
41: p_login_id IN NUMBER,
42: x_cost_rec OUT NOCOPY CS_COST_DETAILS_PUB.COST_REC_TYPE,
43: x_msg_data OUT NOCOPY VARCHAR2,
44: x_msg_count OUT NOCOPY NUMBER,
45: x_return_status OUT NOCOPY VARCHAR2
46: );
744: x_return_status OUT NOCOPY VARCHAR2 ) RETURN VARCHAR2 IS
745:
746: CURSOR c_cost_id IS
747: SELECT 1
748: FROM cs_cost_details
749: WHERE cost_id = p_cost_id;
750:
751: lv_exists_flag VARCHAR2(1) := 'N';
752: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_cost_id_valid';
973: --===============================
974:
975: PROCEDURE GET_COST_DETAIL_REC(p_api_name IN VARCHAR2,
976: p_cost_id IN NUMBER,
977: x_cost_detail_rec OUT NOCOPY CS_COST_DETAILS%ROWTYPE ,
978: x_msg_data OUT NOCOPY VARCHAR2,
979: x_msg_count OUT NOCOPY NUMBER,
980: x_return_status OUT NOCOPY VARCHAR2) IS
981: BEGIN
983: x_return_status := FND_API.G_RET_STS_SUCCESS ;
984:
985: SELECT *
986: INTO x_cost_detail_rec
987: FROM CS_COST_DETAILS
988: WHERE COST_ID = p_cost_id
989: FOR UPDATE OF COST_ID NOWAIT ;
990:
991: EXCEPTION
991: EXCEPTION
992:
993: WHEN NO_DATA_FOUND THEN
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: CS_COST_DETAILS_PVT.Add_Invalid_Argument_Msg(
996: p_token_an => p_api_name,
997: p_token_v => to_char(p_cost_id) ,
998: p_token_p => 'p_cost_id') ;
999: fnd_msg_pub.count_and_get(
1001: ,p_data => x_msg_data);
1002:
1003: WHEN RECORD_LOCK_EXCEPTION THEN
1004: x_return_status := FND_API.G_RET_STS_ERROR ;
1005: CS_cost_Details_PVT.Record_Is_Locked_Msg(
1006: p_token_an => p_api_name);
1007:
1008: WHEN OTHERS THEN
1009: x_return_status := FND_API.G_RET_STS_ERROR;
1149: RAISE FND_API.G_EXC_ERROR;
1150:
1151: WHEN RECORD_LOCK_EXCEPTION THEN
1152: x_return_status := FND_API.G_RET_STS_ERROR ;
1153: CS_cost_Details_PVT.Record_Is_Locked_Msg(
1154: p_token_an => p_api_name);
1155: RAISE FND_API.G_EXC_ERROR;
1156:
1157: WHEN OTHERS THEN
1203:
1204: --===============================
1205: ---Do_Cost_Line_Exist
1206: --===============================
1207: --This Function checks if a record exist in cs_cost_details for the passed cost_id
1208:
1209: FUNCTION Do_cost_line_Exist(p_api_name IN VARCHAR2,
1210: p_cost_id IN NUMBER ,
1211: x_return_status OUT NOCOPY VARCHAR2) RETURN VARCHAR2 IS
1219: x_return_status := FND_API.G_RET_STS_SUCCESS;
1220:
1221: SELECT cost_id
1222: INTO l_exist_cost_id
1223: FROM CS_cost_details
1224: WHERE cost_id =p_cost_id
1225: FOR UPDATE OF COST_ID NOWAIT ;
1226:
1227: if l_exist_cost_id is not null then
1233:
1234: WHEN RECORD_LOCK_EXCEPTION THEN
1235:
1236: x_return_status := FND_API.G_RET_STS_ERROR ;
1237: CS_cost_Details_PVT.Record_Is_Locked_Msg(
1238: p_token_an => p_api_name);
1239: RAISE FND_API.G_EXC_ERROR;
1240:
1241: WHEN OTHERS THEN
1246:
1247: --===============================
1248: ---Do_charge_line_Exist
1249: --===============================
1250: --This Function checks if a record exist in cs_cost_details for the passed cost_id
1251:
1252: FUNCTION Do_charge_line_Exist(p_api_name IN VARCHAR2,
1253: p_cost_id IN NUMBER ,
1254: x_return_status OUT NOCOPY VARCHAR2) RETURN VARCHAR2 IS
1262: x_return_status := FND_API.G_RET_STS_SUCCESS;
1263:
1264: SELECT ced.estimate_detail_id
1265: INTO l_charge_exist
1266: FROM CS_cost_details csd,cs_estimate_details ced
1267: WHERE csd.cost_id =p_cost_id
1268: AND ced.estimate_Detail_id = csd.estimate_Detail_id
1269: FOR UPDATE OF COST_ID NOWAIT ;
1270:
1346:
1347: /*======================================================================+
1348: ==
1349: == Procedure name : Create_cost_details
1350: == Comments : API to create cost details in cs_cost_details
1351: == Modification History:
1352: ==
1353: == Date Name Desc
1354: == ---------- --------- ---------------------------------------------
1370: p_resp_id IN NUMBER := FND_GLOBAL.RESP_ID,
1371: p_user_id IN NUMBER := FND_GLOBAL.USER_ID,
1372: p_login_id IN NUMBER := FND_GLOBAL.LOGIN_ID,
1373: p_transaction_control IN VARCHAR2 := FND_API.G_TRUE,
1374: p_cost_rec IN CS_Cost_Details_PUB.Cost_Rec_Type,
1375: p_cost_creation_override IN VARCHAR2:='N'
1376: ) IS
1377:
1378:
1381: l_api_name_full CONSTANT VARCHAR2(100) := G_PKG_NAME || '.' || l_api_name ;
1382: l_prog_name CONSTANT VARCHAR2(100) := G_PKG_NAME||'.'||'create_cost_details';
1383: l_log_module CONSTANT VARCHAR2(255) := 'csxvcsts.pls.' || l_api_name_full || '.';
1384:
1385: l_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
1386: lx_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
1387:
1388: l_valid_check VARCHAR2(1);
1389: l_return_status VARCHAR2(1) ;
1382: l_prog_name CONSTANT VARCHAR2(100) := G_PKG_NAME||'.'||'create_cost_details';
1383: l_log_module CONSTANT VARCHAR2(255) := 'csxvcsts.pls.' || l_api_name_full || '.';
1384:
1385: l_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
1386: lx_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
1387:
1388: l_valid_check VARCHAR2(1);
1389: l_return_status VARCHAR2(1) ;
1390: l_msg_data VARCHAR2(2000);
1414: l_org_currency VARCHAR2(10);
1415:
1416: CURSOR c_check_cost_exst is
1417: SELECT cost_id
1418: FROM cs_cost_details
1419: WHERE estimate_Detail_id = p_estimate_detail_id;
1420:
1421: Cursor get_org_currency is
1422: SELECT gl.currency_code
1508: );
1509: -- --------------------------------------------------------------------------
1510: -- This procedure Logs the charges record paramters.
1511: -- --------------------------------------------------------------------------
1512: CS_COST_DETAILS_PUB.Log_Cost_Rec_Parameters
1513: ( p_cost_Rec_in => p_cost_rec
1514: );
1515:
1516: END IF;
1859: then Use the Value set in the profile "Service :Inventory Validation
1860: Org" to retrieve the Item's Unit Cost
1861: 2. If Cost Creation is attempted for an SAC with Create_Charge Flag UnChecked
1862: then Use the Service Request Inventory Org to fetch the Item's Unit Cost.
1863: The Inventory_org_id in CS_COST_DETAILS should be the org from which the Item
1864: Cost is fetched.
1865: The same logic holds good for getting the ORG_ID(operating Unit) in
1866: CS_COST_DETAILS
1867: 1.IF Cost Creation is attempted for an exising Charge Line then store the
1862: then Use the Service Request Inventory Org to fetch the Item's Unit Cost.
1863: The Inventory_org_id in CS_COST_DETAILS should be the org from which the Item
1864: Cost is fetched.
1865: The same logic holds good for getting the ORG_ID(operating Unit) in
1866: CS_COST_DETAILS
1867: 1.IF Cost Creation is attempted for an exising Charge Line then store the
1868: Charge Line's Operating unit in CS_COST_DETAILS.org_id column
1869: 2.If Cost Creation is attempted for the SR, then store the SR's Operating
1870: Unit in the Org Id column of the Cost table
1864: Cost is fetched.
1865: The same logic holds good for getting the ORG_ID(operating Unit) in
1866: CS_COST_DETAILS
1867: 1.IF Cost Creation is attempted for an exising Charge Line then store the
1868: Charge Line's Operating unit in CS_COST_DETAILS.org_id column
1869: 2.If Cost Creation is attempted for the SR, then store the SR's Operating
1870: Unit in the Org Id column of the Cost table
1871: */
1872:
1977: 'Before calling the Insert_Row procedure'
1978: );
1979: END IF;
1980:
1981: --This prcoedure will insert data into cs_cost_details table
1982:
1983: CS_COST_DETAILS_PKG.Insert_Row
1984: (
1985: x_cost_id =>l_cost_id ,
1979: END IF;
1980:
1981: --This prcoedure will insert data into cs_cost_details table
1982:
1983: CS_COST_DETAILS_PKG.Insert_Row
1984: (
1985: x_cost_id =>l_cost_id ,
1986: p_incident_id =>lx_cost_rec.incident_id ,
1987: p_estimate_detail_id =>lx_cost_rec.estimate_detail_id ,
2086:
2087: /*======================================================================+
2088: ==
2089: == Procedure name : Create_cost_details
2090: == Comments : API to Update cost details in cs_cost_details
2091: == Modification History:
2092: ==
2093: == Date Name Desc
2094: == ---------- --------- ---------------------------------------------
2109: p_resp_id IN NUMBER := FND_GLOBAL.RESP_ID,
2110: p_user_id IN NUMBER := FND_GLOBAL.USER_ID,
2111: p_login_id IN NUMBER :=FND_GLOBAL.LOGIN_ID,
2112: p_transaction_control IN VARCHAR2 := FND_API.G_TRUE,
2113: p_Cost_Rec IN CS_Cost_Details_PUB.Cost_Rec_Type
2114:
2115: ) IS
2116:
2117: l_api_version NUMBER := 1.0 ;
2120: l_log_module CONSTANT VARCHAR2(255) := 'csxvcstb.pls.' || l_api_name_full || '.';
2121: l_return_status VARCHAR2(1) ;
2122: l_org_id NUMBER ;
2123: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'update_cost_details';
2124: l_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
2125: lx_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
2126: l_valid_check VARCHAR2(1);
2127:
2128: l_msg_data VARCHAR2(2000);
2121: l_return_status VARCHAR2(1) ;
2122: l_org_id NUMBER ;
2123: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'update_cost_details';
2124: l_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
2125: lx_cost_rec CS_Cost_Details_PUB.Cost_Rec_Type;
2126: l_valid_check VARCHAR2(1);
2127:
2128: l_msg_data VARCHAR2(2000);
2129: l_msg_count NUMBER;
2161: CURSOR get_flag IS
2162: SELECT unit_cost,
2163: extended_cost,
2164: override_ext_cost_flag
2165: FROM cs_cost_details
2166: WHERE cost_id = p_cost_id;
2167:
2168: CURSOR c_check_cost_exst IS
2169: SELECT cost_id
2166: WHERE cost_id = p_cost_id;
2167:
2168: CURSOR c_check_cost_exst IS
2169: SELECT cost_id
2170: FROM cs_cost_details
2171: WHERE estimate_Detail_id = p_estimate_detail_id;
2172:
2173:
2174: CURSOR get_org_currency is
2241: );
2242: -- --------------------------------------------------------------------------
2243: -- This procedure Logs the charges record paramters.
2244: -- --------------------------------------------------------------------------
2245: CS_COST_DETAILS_PUB.Log_Cost_Rec_Parameters
2246: ( p_cost_Rec_in => p_cost_rec
2247: );
2248:
2249: END IF;
2281: begin
2282:
2283: select estimate_detail_id
2284: into v_estimate_detail_id
2285: from cs_cost_details csd
2286: where cost_id =p_cost_rec.cost_id;
2287:
2288: if v_estimate_detail_id is not null then
2289: lt_estimate_detail_id:=v_estimate_detail_id;
2655: );
2656: END IF;
2657:
2658:
2659: CS_COST_DETAILS_PKG.Update_Row
2660: (
2661: p_cost_id =>lx_cost_rec.cost_id ,
2662: p_incident_id =>lx_cost_rec.incident_id ,
2663: p_estimate_detail_id =>lx_cost_rec.estimate_detail_id ,
2762:
2763: /*======================================================================+
2764: ==
2765: == Procedure name : delete_cost_details
2766: == Comments : API to Update cost details in cs_cost_details
2767: == Modification History:
2768: ==
2769: == Date Name Desc
2770: == ---------- --------- ---------------------------------------------
2914: RAISE G_WARNING;
2915: end if;
2916:
2917:
2918: delete from cs_cost_details where
2919: cost_id = p_cost_id;
2920:
2921: --End of API Body
2922: --Standard Check of p_commit
2976:
2977: /*======================================================================+
2978: ==
2979: == Procedure name : Validate_cost_details
2980: == Comments : API to Update cost details in cs_cost_details
2981: == Modification History:
2982: ==
2983: == Date Name Desc
2984: == ---------- --------- ---------------------------------------------
2987:
2988: PROCEDURE VALIDATE_COST_DETAILS
2989: (
2990: p_api_name IN VARCHAR2,
2991: pv_cost_rec IN CS_COST_DETAILS_PUB.COST_REC_TYPE,
2992: p_validation_mode IN VARCHAR2,
2993: p_user_id IN NUMBER,
2994: p_login_id IN NUMBER,
2995: x_cost_rec OUT NOCOPY CS_COST_DETAILS_PUB.COST_REC_TYPE,
2991: pv_cost_rec IN CS_COST_DETAILS_PUB.COST_REC_TYPE,
2992: p_validation_mode IN VARCHAR2,
2993: p_user_id IN NUMBER,
2994: p_login_id IN NUMBER,
2995: x_cost_rec OUT NOCOPY CS_COST_DETAILS_PUB.COST_REC_TYPE,
2996: x_msg_data OUT NOCOPY VARCHAR2,
2997: x_msg_count OUT NOCOPY NUMBER,
2998: x_return_status OUT NOCOPY VARCHAR2
2999: ) IS
3005: l_api_version NUMBER := 1.0 ;
3006: l_api_name CONSTANT VARCHAR2(100) := 'Validate_Cost_Details Private API' ;
3007: l_api_name_full CONSTANT VARCHAR2(61) := G_PKG_NAME || '.' || l_api_name ;
3008: l_log_module CONSTANT VARCHAR2(255) := 'csxvcstb.pls' || l_api_name_full || '.';
3009: l_db_det_rec CS_COST_DETAILS%ROWTYPE;
3010: l_source_id NUMBER;
3011: l_org_id NUMBER;
3012: l_profile VARCHAR2(200);
3013: l_primary_uom VARCHAR2(10);
4367: /**************************************************
4368: Private Procedure Body TO_NULL
4369: **************************************************/
4370:
4371: PROCEDURE TO_NULL(p_cost_rec_in IN cs_cost_details_pub.Cost_Rec_Type,
4372: p_cost_rec_out OUT NOCOPY cs_cost_details_pub.Cost_Rec_Type) IS
4373: BEGIN
4374: p_cost_rec_out.cost_id := Check_For_Miss(p_cost_rec_in.cost_id) ;
4375: p_cost_rec_out.incident_id := Check_For_Miss(p_cost_rec_in.incident_id) ;
4368: Private Procedure Body TO_NULL
4369: **************************************************/
4370:
4371: PROCEDURE TO_NULL(p_cost_rec_in IN cs_cost_details_pub.Cost_Rec_Type,
4372: p_cost_rec_out OUT NOCOPY cs_cost_details_pub.Cost_Rec_Type) IS
4373: BEGIN
4374: p_cost_rec_out.cost_id := Check_For_Miss(p_cost_rec_in.cost_id) ;
4375: p_cost_rec_out.incident_id := Check_For_Miss(p_cost_rec_in.incident_id) ;
4376: p_cost_rec_out.estimate_Detail_id := Check_For_Miss(p_cost_rec_in.estimate_Detail_id) ;
4614:
4615: -- Delete all the estimate lines that correspond to the
4616: -- SRs that are available for purge after validations.
4617:
4618: DELETE /*+ index(e) */ cs_cost_details e
4619: WHERE
4620: incident_id IN
4621: (
4622: SELECT /*+ no_unnest no_semijoin cardinality(10) */
4753: x_value:=p_value;
4754: END get_currency_converted_value;
4755:
4756:
4757: END CS_Cost_Details_PVT;