47:
48: /*Defaulting occurs for each MISSING attribute.
49: Attributes that are not explicitly passed by the user and therefore, retain the values
50: on the initialized record are defined as MISSING attributes. For e.g. all the number
51: fields on the entity records are initialized to the value FND_API.G_MISS_NUM and
52: thus, all number fields with this value are MISSING attributes.
53: */
54:
55: FUNCTION Check_For_Miss ( p_param IN NUMBER ) RETURN NUMBER ;
117: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_cost_flag_checked';
118:
119: BEGIN
120:
121: x_return_status := FND_API.G_RET_STS_SUCCESS;
122:
123: FOR v_transaction_type_id IN c_transaction_type_id LOOP
124: lv_exists_flag := 'Y';
125: END LOOP;
128:
129: EXCEPTION
130:
131: WHEN OTHERS THEN
132: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
133: RETURN lv_exists_flag;
134:
135: END IS_COST_FLAG_CHECKED;
136:
155: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_charge_line_type_valid';
156:
157: BEGIN
158:
159: x_return_status := FND_API.G_RET_STS_SUCCESS;
160:
161: FOR v_charge_line_type IN c_charge_line_type(p_charge_line_type)
162: LOOP
163: IF v_charge_line_type.lookup_code ='ACTUAL' then
173: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
174: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
175: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
176: FND_MSG_PUB.add;
177: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
178: RETURN lv_exists_flag;
179:
180: END IS_CHARGE_LINE_TYPE_VALID;
181:
199: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_incident_id_valid';
200:
201: BEGIN
202:
203: x_return_status := FND_API.G_RET_STS_SUCCESS;
204:
205: OPEN c_incident;
206: FETCH c_incident INTO lv_exists_flag;
207: CLOSE c_incident;
215: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
216: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
217: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
218: FND_MSG_PUB.add;
219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
220: RETURN lv_exists_flag;
221:
222: END IS_INCIDENT_ID_VALID;
223:
239: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_estimate_detail_id_valid';
240:
241: BEGIN
242:
243: x_return_status := FND_API.G_RET_STS_SUCCESS;
244:
245: FOR v_estimate_detail_id IN c_estimate_detail_id
246: LOOP
247: lv_exists_flag := 'Y';
257: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
258: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
259: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
260: FND_MSG_PUB.add;
261: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
262: RETURN lv_exists_flag;
263:
264: END IS_ESTIMATE_DETAIL_ID_VALID;
265:
296: l_ERRM VARCHAR2(100);
297:
298: BEGIN
299:
300: x_return_status := FND_API.G_RET_STS_SUCCESS;
301:
302:
303: -- THe 3 valid source codes are 'SR'(Estimate_Detail_id)
304: -- 'SD'(Debrief_Line_Id)
316: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
317: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
318: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
319: FND_MSG_PUB.Add;
320: RAISE FND_API.G_EXC_ERROR;
321:
322: END IF;
323:
324: ELSE
323:
324: ELSE
325: -- source_id cannot be cannot be null
326: Add_Null_Parameter_Msg(p_api_name, 'p_source_id');
327: RAISE FND_API.G_EXC_ERROR;
328: END IF ;
329:
330: ELSIF p_source_code = 'DR' THEN
331: IF p_source_id IS NOT NULL THEN
334: x_source_id := p_source_id;
335: END LOOP;
336:
337: IF lv_exists_flag <> 'Y' THEN
338: --RAISE FND_API.G_EXC_ERROR;
339: --null;
340: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
341: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
342: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
340: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
341: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
342: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
343: FND_MSG_PUB.Add;
344: RAISE FND_API.G_EXC_ERROR;
345: END IF;
346:
347: ELSE
348: -- source_id cannot be cannot be null
346:
347: ELSE
348: -- source_id cannot be cannot be null
349: Add_Null_Parameter_Msg(p_api_name, 'p_source_id');
350: RAISE FND_API.G_EXC_ERROR;
351: END IF ;
352:
353: ELSIF p_source_code = 'SD' THEN
354: IF p_source_id IS NOT NULL THEN
357: x_source_id := p_source_id;
358: END LOOP;
359:
360: IF lv_exists_flag <> 'Y' THEN
361: --RAISE FND_API.G_EXC_ERROR;
362: --null;
363: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
364: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
365: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
363: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
364: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
365: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
366: FND_MSG_PUB.Add;
367: RAISE FND_API.G_EXC_ERROR;
368: END IF;
369:
370: ELSE
371: -- raise error as source_id cannot be cannot be null
369:
370: ELSE
371: -- raise error as source_id cannot be cannot be null
372: Add_Null_Parameter_Msg(p_api_name, 'p_source_id');
373: RAISE FND_API.G_EXC_ERROR;
374: END IF ;
375:
376:
377: ELSE
380: p_token_an => p_api_name,
381: p_token_v => p_source_code,
382: p_token_p => 'p_source_code');
383:
384: RAISE FND_API.G_EXC_ERROR;
385: END IF ;
386:
387: EXCEPTION
388:
385: END IF ;
386:
387: EXCEPTION
388:
389: WHEN FND_API.G_EXC_ERROR THEN
390: x_return_status := FND_API.G_RET_STS_ERROR;
391: fnd_msg_pub.count_and_get(p_count => x_msg_count
392: ,p_data => x_msg_data);
393:
386:
387: EXCEPTION
388:
389: WHEN FND_API.G_EXC_ERROR THEN
390: x_return_status := FND_API.G_RET_STS_ERROR;
391: fnd_msg_pub.count_and_get(p_count => x_msg_count
392: ,p_data => x_msg_data);
393:
394: WHEN NO_DATA_FOUND THEN
391: fnd_msg_pub.count_and_get(p_count => x_msg_count
392: ,p_data => x_msg_data);
393:
394: WHEN NO_DATA_FOUND THEN
395: x_return_status := FND_API.G_RET_STS_ERROR;
396: IF p_source_id IS NOT NULL THEN
397: Add_Invalid_Argument_Msg
398: (p_token_an => p_api_name,
399: p_token_v => p_source_id,
400: p_token_p => 'p_source_id');
401: END IF ;
402:
403: WHEN OTHERS THEN
404: x_return_status := FND_API.G_RET_STS_ERROR;
405: FND_MESSAGE.Set_Name('CS', 'CS_CHG_INVALID_SOURCE');
406: FND_MESSAGE.SET_TOKEN('SOURCE_CODE', p_source_code);
407: FND_MESSAGE.SET_TOKEN('SOURCE_ID', p_source_id);
408: FND_MSG_PUB.Add;
436: lv_exists_flag := 'Y';
437: END LOOP;
438:
439: IF lv_exists_flag = 'Y' THEN
440: x_return_status := FND_API.G_RET_STS_SUCCESS ;
441: ELSE
442: raise NO_DATA_FOUND;
443: END IF;
444:
453: fnd_msg_pub.count_and_get(
454: p_count => x_msg_count
455: ,p_data => x_msg_data);
456:
457: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
458:
459: WHEN OTHERS THEN
460: x_return_status := FND_API.G_RET_STS_ERROR ;
461:
456:
457: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
458:
459: WHEN OTHERS THEN
460: x_return_status := FND_API.G_RET_STS_ERROR ;
461:
462: END VALIDATE_ORG_ID;
463:
464: --===============================
482: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_item_valid';
483:
484: BEGIN
485:
486: x_return_status := FND_API.G_RET_STS_SUCCESS;
487: FOR v_inventory_item_id IN c_inventory_item_id LOOP
488: lv_exists_flag := 'Y';
489: END LOOP;
490: RETURN lv_exists_flag;
497: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
498: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
499: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
500: FND_MSG_PUB.add;
501: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
502: RETURN lv_exists_flag;
503:
504: END IS_ITEM_VALID;
505:
534: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_txn_inv_org_valid';
535:
536: BEGIN
537:
538: x_return_status := FND_API.G_RET_STS_SUCCESS;
539:
540: FOR v_oper_unit_for_inv_org IN c_oper_unit_for_inv_org (p_txn_inv_org)
541: LOOP
542: IF v_oper_unit_for_inv_org.OPERATING_UNIT = p_org_id THEN
555: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
556: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
557: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
558: FND_MSG_PUB.add;
559: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
560: RETURN lv_exists_flag;
561: END;
562:
563: --===============================
586:
587: BEGIN
588:
589: -- Initialize API return status to success
590: x_return_status := FND_API.G_RET_STS_SUCCESS;
591: FOR v_primary_uom IN c_primary_uom(P_INVentory_item_ID)
592: LOOP
593: lv_exists_flag := 'Y';
594: x_primary_uom := v_primary_uom.uom_code;
601: FND_MESSAGE.Set_Name('CS', 'CS_CHG_GET_UOM_FAILED');
602: FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID', p_inventory_item_id);
603: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', cs_std.get_item_valdn_orgzn_id);
604: FND_MSG_PUB.add;
605: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
606:
607: END GET_PRIMARY_UOM;
608:
609: --===============================
629: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_uom_valid';
630:
631: BEGIN
632:
633: x_return_status := FND_API.G_RET_STS_SUCCESS;
634:
635: FOR v_uom_code IN c_uom_code(p_uom_code,p_inv_id)
636: LOOP
637: lv_exists_flag := 'Y';
645: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
646: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
647: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
648: FND_MSG_PUB.add;
649: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
650: RETURN lv_exists_flag;
651: END;
652:
653: --===============================
672: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'get_currency_code';
673:
674: BEGIN
675: -- Initialize API return status to success
676: x_return_status := FND_API.G_RET_STS_SUCCESS;
677:
678: FOR v_currency_code IN c_currency_code
679: LOOP
680: lv_exists_flag := 'Y';
686: WHEN OTHERS THEN
687:
688: FND_MESSAGE.Set_Name('CS', 'CS_COST_GET_CURRENCY_FAILED');
689: FND_MSG_PUB.add;
690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
691:
692: END GET_CURRENCY_CODE;
693:
694: --===============================
711: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_currency_code_valid';
712:
713: BEGIN
714:
715: x_return_status := FND_API.G_RET_STS_SUCCESS;
716:
717: FOR v_currency_code IN c_currency_code
718: LOOP
719: lv_exists_flag := 'Y';
728: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
729: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
730: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
731: FND_MSG_PUB.add;
732: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
733: RETURN lv_exists_flag;
734:
735: END IS_CURRENCY_CODE_VALID;
736:
752: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'is_cost_id_valid';
753:
754: BEGIN
755:
756: x_return_status := FND_API.G_RET_STS_SUCCESS;
757:
758: FOR v_cost_id IN c_cost_id
759: LOOP
760: lv_exists_flag := 'Y';
769: FND_MESSAGE.SET_TOKEN(token => G_PROG_NAME_TOKEN, value => l_prog_name);
770: FND_MESSAGE.SET_TOKEN(token => G_SQLCODE_TOKEN, value => SQLCODE);
771: FND_MESSAGE.SET_TOKEN(token => G_SQLERRM_TOKEN, value => SQLERRM);
772: FND_MSG_PUB.add;
773: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
774: RETURN lv_exists_flag;
775:
776: END IS_COST_ID_VALID;
777:
799: lv_exists_flag := 'Y';
800: END LOOP;
801:
802: IF lv_exists_flag = 'Y' THEN
803: x_return_status := FND_API.G_RET_STS_SUCCESS ;
804: ELSE
805: x_return_status := FND_API.G_RET_STS_ERROR;
806: RAISE NO_DATA_FOUND;
807: END IF;
801:
802: IF lv_exists_flag = 'Y' THEN
803: x_return_status := FND_API.G_RET_STS_SUCCESS ;
804: ELSE
805: x_return_status := FND_API.G_RET_STS_ERROR;
806: RAISE NO_DATA_FOUND;
807: END IF;
808:
809: EXCEPTION
808:
809: EXCEPTION
810:
811: WHEN NO_DATA_FOUND THEN
812: x_return_status := FND_API.G_RET_STS_ERROR;
813:
814: WHEN OTHERS THEN
815: x_return_status := FND_API.G_RET_STS_ERROR ;
816:
811: WHEN NO_DATA_FOUND THEN
812: x_return_status := FND_API.G_RET_STS_ERROR;
813:
814: WHEN OTHERS THEN
815: x_return_status := FND_API.G_RET_STS_ERROR ;
816:
817: END VALIDATE_BUSINESS_PROCESS;
818:
819: --===============================
841: lv_exists_flag := 'Y';
842: END LOOP;
843:
844: IF lv_exists_flag = 'Y' THEN
845: x_return_status := FND_API.G_RET_STS_SUCCESS ;
846: ELSE
847: x_return_status := FND_API.G_RET_STS_ERROR;
848: RAISE NO_DATA_FOUND;
849: END IF;
843:
844: IF lv_exists_flag = 'Y' THEN
845: x_return_status := FND_API.G_RET_STS_SUCCESS ;
846: ELSE
847: x_return_status := FND_API.G_RET_STS_ERROR;
848: RAISE NO_DATA_FOUND;
849: END IF;
850:
851: EXCEPTION
850:
851: EXCEPTION
852:
853: WHEN NO_DATA_FOUND THEN
854: x_return_status := FND_API.G_RET_STS_ERROR;
855:
856: WHEN OTHERS THEN
857: x_return_status := FND_API.G_RET_STS_ERROR ;
858:
853: WHEN NO_DATA_FOUND THEN
854: x_return_status := FND_API.G_RET_STS_ERROR;
855:
856: WHEN OTHERS THEN
857: x_return_status := FND_API.G_RET_STS_ERROR ;
858:
859: END VALIDATE_OPERATING_UNIT;
860:
861: --===============================
885: x_line_order_category_code:=v_transaction_type_id.line_order_category_code;
886: END LOOP;
887:
888: IF lv_exists_flag = 'Y' THEN
889: x_return_status := FND_API.G_RET_STS_SUCCESS ;
890: ELSE
891: RAISE NO_DATA_FOUND;
892: END IF;
893:
902: fnd_msg_pub.count_and_get(
903: p_count => x_msg_count
904: ,p_data => x_msg_data);
905:
906: x_return_status := FND_API.G_RET_STS_ERROR ;
907:
908: WHEN OTHERS THEN
909: x_return_status := FND_API.G_RET_STS_ERROR ;
910:
905:
906: x_return_status := FND_API.G_RET_STS_ERROR ;
907:
908: WHEN OTHERS THEN
909: x_return_status := FND_API.G_RET_STS_ERROR ;
910:
911: END VALIDATE_transaction_type_id;
912:
913: --===============================
963:
964: EXCEPTION
965:
966: WHEN OTHERS THEN
967: x_return_status := FND_API.G_RET_STS_ERROR ;
968:
969: END Get_Item_from_Profile;
970:
971: --===============================
979: x_msg_count OUT NOCOPY NUMBER,
980: x_return_status OUT NOCOPY VARCHAR2) IS
981: BEGIN
982:
983: x_return_status := FND_API.G_RET_STS_SUCCESS ;
984:
985: SELECT *
986: INTO x_cost_detail_rec
987: FROM CS_COST_DETAILS
990:
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') ;
1000: p_count => x_msg_count
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
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;
1010: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_COST_FAILED');
1011: FND_MESSAGE.SET_TOKEN('API_NAME', p_api_name);
1012: FND_MSG_PUB.add;
1013: fnd_msg_pub.count_and_get(
1053: AND csinall.incident_id = p_incident_id;
1054:
1055: BEGIN
1056:
1057: IF p_transaction_type_id is not null and p_transaction_type_id <> fnd_api.g_miss_num
1058: THEN
1059: OPEN sac_flags ;
1060: FETCH sac_flags
1061: INTO x_create_charge_flag ,x_create_cost_flag;
1064: --Add null argument error
1065: Add_Invalid_Argument_Msg(p_token_an => p_api_name,
1066: p_token_v => TO_CHAR(p_incident_id),
1067: p_token_p => 'p_transaction_type_id');
1068: RAISE FND_API.G_EXC_ERROR;
1069: END IF;
1070: CLOSE sac_flags;
1071: ELSE
1072: x_create_charge_flag :='Y';
1081: CLOSE c_charge_flags;
1082: Add_Invalid_Argument_Msg(p_token_an => p_api_name,
1083: p_token_v => TO_CHAR(p_incident_id),
1084: p_token_p => 'p_incident_id');
1085: RAISE FND_API.G_EXC_ERROR;
1086: END IF;
1087: CLOSE c_charge_flags;
1088: END;
1089:
1110: x_return_status OUT NOCOPY VARCHAR2) IS
1111:
1112: BEGIN
1113:
1114: x_return_status := FND_API.G_RET_STS_SUCCESS ;
1115:
1116: SELECT incident_id ,
1117: transaction_type_id ,
1118: txn_billing_type_id ,
1145: WHEN NO_DATA_FOUND THEN
1146: Add_Invalid_Argument_Msg(p_token_an => p_api_name,
1147: p_token_v => to_char(p_estimate_detail_id) ,
1148: p_token_p => 'estimate_detail_id' ) ;
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(
1148: p_token_p => 'estimate_detail_id' ) ;
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:
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
1158: x_return_status := FND_API.G_RET_STS_ERROR;
1159: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_GET_CHARGE_FAILED');
1154: p_token_an => p_api_name);
1155: RAISE FND_API.G_EXC_ERROR;
1156:
1157: WHEN OTHERS THEN
1158: x_return_status := FND_API.G_RET_STS_ERROR;
1159: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_GET_CHARGE_FAILED');
1160: FND_MESSAGE.SET_TOKEN('API_NAME', p_api_name);
1161: FND_MSG_PUB.add;
1162: fnd_msg_pub.count_and_get(p_count => x_msg_count,p_data => x_msg_data);
1186:
1187: BEGIN
1188:
1189: -- Initialize API return status to success
1190: x_return_status := FND_API.G_RET_STS_SUCCESS;
1191: FOR v_get_sr_org IN c_get_sr_org(p_incident_id)
1192: LOOP
1193: x_org_id:=v_get_sr_org.org_id;
1194: x_inv_organization_id:= v_get_sr_org.inv_organization_id;
1215: l_exist_cost_id NUMBER;
1216:
1217: BEGIN
1218:
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
1232: EXCEPTION
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:
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
1242: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1243: RETURN lv_exists_flag;
1238: p_token_an => p_api_name);
1239: RAISE FND_API.G_EXC_ERROR;
1240:
1241: WHEN OTHERS THEN
1242: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1243: RETURN lv_exists_flag;
1244:
1245: END Do_Cost_Line_Exist ;
1246:
1258: l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'do_charge_line_exist';
1259:
1260: BEGIN
1261:
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
1307: lv_exists_flag VARCHAR2(1) := 'N';
1308:
1309: BEGIN
1310: -- Initialize API return status to success
1311: x_return_status := FND_API.G_RET_STS_SUCCESS;
1312:
1313: FOR v_txn_billing_type IN c_txn_billing_type(p_inv_id,p_txn_type_id)
1314: LOOP
1315: x_txn_billing_type_id := v_txn_billing_type.txn_billing_type_id;
1320: FND_MESSAGE.Set_Name('CS', 'CS_CHG_ITM_BILL_TYP_NOT_IN_TXN');
1321: FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID', p_inv_id);
1322: FND_MESSAGE.SET_TOKEN('TXN_TYPE_ID', p_txn_type_id);
1323: FND_MSG_PUB.Add;
1324: RAISE FND_API.G_EXC_ERROR;
1325: END IF;
1326:
1327: EXCEPTION
1328:
1325: END IF;
1326:
1327: EXCEPTION
1328:
1329: WHEN FND_API.G_EXC_ERROR THEN
1330: x_return_status := FND_API.G_RET_STS_ERROR;
1331: fnd_msg_pub.count_and_get(
1332: p_count => x_msg_count
1333: ,p_data => x_msg_data);
1326:
1327: EXCEPTION
1328:
1329: WHEN FND_API.G_EXC_ERROR THEN
1330: x_return_status := FND_API.G_RET_STS_ERROR;
1331: fnd_msg_pub.count_and_get(
1332: p_count => x_msg_count
1333: ,p_data => x_msg_data);
1334:
1332: p_count => x_msg_count
1333: ,p_data => x_msg_data);
1334:
1335: WHEN OTHERS THEN
1336: x_return_status := FND_API.G_RET_STS_ERROR;
1337: FND_MESSAGE.Set_Name('CS', 'CS_CHG_ITM_BILL_TYP_NOT_IN_TXN');
1338: FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID', p_inv_id);
1339: FND_MESSAGE.SET_TOKEN('TXN_TYPE_ID', p_txn_type_id);
1340: FND_MSG_PUB.Add;
1357:
1358: PROCEDURE Create_cost_details
1359: (
1360: p_api_version IN NUMBER,
1361: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1362: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1363: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1364: x_return_status OUT NOCOPY VARCHAR2,
1365: x_msg_count OUT NOCOPY NUMBER,
1358: PROCEDURE Create_cost_details
1359: (
1360: p_api_version IN NUMBER,
1361: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1362: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1363: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1364: x_return_status OUT NOCOPY VARCHAR2,
1365: x_msg_count OUT NOCOPY NUMBER,
1366: x_object_version_number OUT NOCOPY NUMBER,
1359: (
1360: p_api_version IN NUMBER,
1361: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1362: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1363: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1364: x_return_status OUT NOCOPY VARCHAR2,
1365: x_msg_count OUT NOCOPY NUMBER,
1366: x_object_version_number OUT NOCOPY NUMBER,
1367: x_msg_data OUT NOCOPY VARCHAR2,
1369: p_resp_appl_id IN NUMBER := FND_GLOBAL.RESP_APPL_ID,
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:
1428:
1429:
1430: BEGIN
1431: -- Standard start of API savepoint
1432: IF FND_API.To_Boolean(p_transaction_control) THEN
1433: SAVEPOINT Create_Cost_Details_PVT;
1434: END IF ;
1435: -- Standard call to check for call compatibility
1436: IF NOT FND_API.Compatible_API_Call(l_api_version,
1432: IF FND_API.To_Boolean(p_transaction_control) THEN
1433: SAVEPOINT Create_Cost_Details_PVT;
1434: END IF ;
1435: -- Standard call to check for call compatibility
1436: IF NOT FND_API.Compatible_API_Call(l_api_version,
1437: p_api_version,
1438: l_api_name,
1439: G_PKG_NAME) THEN
1440: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1436: IF NOT FND_API.Compatible_API_Call(l_api_version,
1437: p_api_version,
1438: l_api_name,
1439: G_PKG_NAME) THEN
1440: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1441: END IF;
1442: -- Initialize message list if p_init_msg_list is set to TRUE
1443: IF FND_API.To_Boolean(p_init_msg_list) THEN
1444: FND_MSG_PUB.Initialize;
1439: G_PKG_NAME) THEN
1440: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1441: END IF;
1442: -- Initialize message list if p_init_msg_list is set to TRUE
1443: IF FND_API.To_Boolean(p_init_msg_list) THEN
1444: FND_MSG_PUB.Initialize;
1445: END IF;
1446: -- Initialize API return status to success
1447: x_return_status := FND_API.G_RET_STS_SUCCESS;
1443: IF FND_API.To_Boolean(p_init_msg_list) THEN
1444: FND_MSG_PUB.Initialize;
1445: END IF;
1446: -- Initialize API return status to success
1447: x_return_status := FND_API.G_RET_STS_SUCCESS;
1448:
1449: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
1450: THEN
1451: FND_LOG.String
1514: );
1515:
1516: END IF;
1517:
1518: --Convert the IN Parameters from FND_API.G_MISS_XXXX to NULL
1519: --if no value is passed then return NULL otherwise return the value passed
1520:
1521: TO_NULL (p_cost_Rec, l_cost_Rec) ;
1522:
1544:
1545: if lv_cost_id is not null then
1546: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CHARGE_EXIST');
1547: FND_MSG_PUB.ADD;
1548: RAISE FND_API.G_EXC_ERROR;
1549: end if;
1550:
1551: --call get_charge_details to get the data from cs_estimate_details table
1552: get_charge_details
1607: If l_create_charge_flag ='N' and l_create_cost_flag = 'Y' then
1608: if l_disallow_request_update='Y' THEN
1609: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_INSERT');
1610: FND_MSG_PUB.ADD;
1611: RAISE FND_API.G_EXC_ERROR;
1612: end if;
1613:
1614: Else
1615: if l_disallow_new_charge = 'Y' OR l_disallow_request_update='Y' THEN
1614: Else
1615: if l_disallow_new_charge = 'Y' OR l_disallow_request_update='Y' THEN
1616: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_INSERT');
1617: FND_MSG_PUB.ADD;
1618: RAISE FND_API.G_EXC_ERROR;
1619: end if;
1620: end if;
1621: --end Bug 6972425
1622:
1654: x_msg_count => l_msg_count,
1655: x_return_status => l_return_status
1656: ) ;
1657:
1658: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1659: RAISE FND_API.G_EXC_ERROR ;
1660: Else
1661: l_valid_check := IS_COST_FLAG_CHECKED
1662: (p_transaction_type_id => l_transaction_type_id,
1655: x_return_status => l_return_status
1656: ) ;
1657:
1658: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1659: RAISE FND_API.G_EXC_ERROR ;
1660: Else
1661: l_valid_check := IS_COST_FLAG_CHECKED
1662: (p_transaction_type_id => l_transaction_type_id,
1663: x_msg_data => l_msg_data,
1675: x_msg_count => l_msg_count,
1676: x_return_status => l_return_status
1677: ) ;
1678:
1679: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1680: FND_MESSAGE.SET_NAME('CS', 'CS_COST_INVALID_BUS_PROCESS');
1681: FND_MSG_PUB.ADD;
1682: RAISE FND_API.G_EXC_ERROR;
1683: END IF;
1678:
1679: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1680: FND_MESSAGE.SET_NAME('CS', 'CS_COST_INVALID_BUS_PROCESS');
1681: FND_MSG_PUB.ADD;
1682: RAISE FND_API.G_EXC_ERROR;
1683: END IF;
1684: Else
1685: FND_MESSAGE.SET_NAME('CS', 'CS_COST_INVALID_COST_FLAG');
1686: FND_MSG_PUB.ADD;
1689: end if;
1690: else -- transaction_type_id is null
1691: Add_Null_Parameter_Msg(l_api_name,
1692: 'p_transaction_type_id') ;
1693: RAISE FND_API.G_EXC_ERROR;
1694: end if;
1695: END IF;--p_cost_creation_overrid
1696:
1697:
1717: x_return_status => l_return_status
1718: );
1719:
1720: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1721: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1722: ELSIF l_return_status = G_RET_STS_ERROR THEN
1723: RAISE FND_API.G_EXC_ERROR;
1724: END IF;
1725:
1719:
1720: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1721: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1722: ELSIF l_return_status = G_RET_STS_ERROR THEN
1723: RAISE FND_API.G_EXC_ERROR;
1724: END IF;
1725:
1726: if l_valid_check ='Y' then
1727: l_cost_rec.charge_line_type := l_charge_line_type;
1747: --------------------------------------------------------------------------------------------------------------------------
1748: -- All the Other Validations would be performed only when the Validation_level is FULL .
1749:
1750:
1751: IF (p_validation_level = FND_API.G_VALID_LEVEL_NONE) THEN
1752:
1753:
1754: Validate_Who_Info ( p_api_name => l_api_name_full,
1755: p_user_id => NVL(p_user_id, -1),
1756: p_login_id => p_login_id,
1757: x_return_status => l_return_status
1758: );
1759:
1760: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1761: RAISE FND_API.G_EXC_ERROR;
1762: END IF;
1763: L_RECALC_COST := 'Y';
1764:
1757: x_return_status => l_return_status
1758: );
1759:
1760: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1761: RAISE FND_API.G_EXC_ERROR;
1762: END IF;
1763: L_RECALC_COST := 'Y';
1764:
1765:
1762: END IF;
1763: L_RECALC_COST := 'Y';
1764:
1765:
1766: ELSIF (p_validation_level = FND_API.G_VALID_LEVEL_FULL) then
1767:
1768:
1769: -- Perform all the validations by calling the procedure VALIDATE_COST_DETAILS which inturn does all the validations
1770:
1781: x_msg_count => x_msg_count,
1782: x_return_status => l_return_status
1783: );
1784:
1785: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1786: FND_MESSAGE.Set_Name('CS', 'CS_COST_VALIDATE_COST_DTL_ER');
1787: FND_MESSAGE.Set_Token('API_NAME', l_api_name_full);
1788: FND_MSG_PUB.Add;
1789: RAISE FND_API.G_EXC_ERROR;
1785: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1786: FND_MESSAGE.Set_Name('CS', 'CS_COST_VALIDATE_COST_DTL_ER');
1787: FND_MESSAGE.Set_Token('API_NAME', l_api_name_full);
1788: FND_MSG_PUB.Add;
1789: RAISE FND_API.G_EXC_ERROR;
1790: END IF;
1791: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
1792: THEN
1793: FND_LOG.String
1808:
1809: Add_Invalid_Argument_Msg(l_api_name_full,
1810: to_char(lx_cost_rec.extended_cost),
1811: 'Extended Cost ');
1812: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1813: end if;
1814: */
1815: --===============================
1816: ---Quantity validations
1820:
1821: Add_Invalid_Argument_Msg(l_api_name_full,
1822: to_char(lx_cost_rec.quantity),
1823: 'Quantity ');
1824: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1825:
1826: end if;
1827:
1828: --IF Quantity is not passed then Default it to 1
1907: -- for 12.2.2 service projects integration
1908: If l_cost_inv_org_id is null then
1909: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_NO_INV_ORG');
1910: FND_MSG_PUB.ADD;
1911: Raise FND_API.G_EXC_ERROR;
1912: End If;
1913: --end;
1914:
1915:
2035:
2036: FND_MSG_PUB.Count_And_Get
2037: ( p_count => x_msg_count,
2038: p_data => x_msg_data,
2039: p_encoded => FND_API.G_FALSE) ;
2040:
2041: EXCEPTION
2042:
2043: WHEN FND_API.G_EXC_ERROR THEN
2039: p_encoded => FND_API.G_FALSE) ;
2040:
2041: EXCEPTION
2042:
2043: WHEN FND_API.G_EXC_ERROR THEN
2044: x_return_status := FND_API.G_RET_STS_ERROR;
2045: IF FND_API.To_Boolean(p_transaction_control)
2046: THEN
2047: ROLLBACK TO Create_Cost_Details_PVT;
2040:
2041: EXCEPTION
2042:
2043: WHEN FND_API.G_EXC_ERROR THEN
2044: x_return_status := FND_API.G_RET_STS_ERROR;
2045: IF FND_API.To_Boolean(p_transaction_control)
2046: THEN
2047: ROLLBACK TO Create_Cost_Details_PVT;
2048: END IF ;
2041: EXCEPTION
2042:
2043: WHEN FND_API.G_EXC_ERROR THEN
2044: x_return_status := FND_API.G_RET_STS_ERROR;
2045: IF FND_API.To_Boolean(p_transaction_control)
2046: THEN
2047: ROLLBACK TO Create_Cost_Details_PVT;
2048: END IF ;
2049: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2047: ROLLBACK TO Create_Cost_Details_PVT;
2048: END IF ;
2049: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2050: p_data => x_msg_data,
2051: p_encoded => FND_API.G_FALSE) ;
2052:
2053: WHEN G_WARNING THEN
2054: x_return_status := FND_API.G_RET_STS_SUCCESS;
2055: IF FND_API.To_Boolean(p_transaction_control)
2050: p_data => x_msg_data,
2051: p_encoded => FND_API.G_FALSE) ;
2052:
2053: WHEN G_WARNING THEN
2054: x_return_status := FND_API.G_RET_STS_SUCCESS;
2055: IF FND_API.To_Boolean(p_transaction_control)
2056: THEN
2057: ROLLBACK TO Create_Cost_Details_PVT;
2058: END IF ;
2051: p_encoded => FND_API.G_FALSE) ;
2052:
2053: WHEN G_WARNING THEN
2054: x_return_status := FND_API.G_RET_STS_SUCCESS;
2055: IF FND_API.To_Boolean(p_transaction_control)
2056: THEN
2057: ROLLBACK TO Create_Cost_Details_PVT;
2058: END IF ;
2059: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2057: ROLLBACK TO Create_Cost_Details_PVT;
2058: END IF ;
2059: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2060: p_data => x_msg_data,
2061: p_encoded => FND_API.G_FALSE) ;
2062:
2063: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2064: IF FND_API.To_Boolean(p_transaction_control) THEN
2065: ROLLBACK TO Create_Cost_Details_PVT;
2059: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2060: p_data => x_msg_data,
2061: p_encoded => FND_API.G_FALSE) ;
2062:
2063: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2064: IF FND_API.To_Boolean(p_transaction_control) THEN
2065: ROLLBACK TO Create_Cost_Details_PVT;
2066: END IF ;
2067: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2060: p_data => x_msg_data,
2061: p_encoded => FND_API.G_FALSE) ;
2062:
2063: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2064: IF FND_API.To_Boolean(p_transaction_control) THEN
2065: ROLLBACK TO Create_Cost_Details_PVT;
2066: END IF ;
2067: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2068: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2063: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2064: IF FND_API.To_Boolean(p_transaction_control) THEN
2065: ROLLBACK TO Create_Cost_Details_PVT;
2066: END IF ;
2067: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2068: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2069: p_data => x_msg_data,
2070: p_encoded => FND_API.G_FALSE) ;
2071:
2066: END IF ;
2067: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2068: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2069: p_data => x_msg_data,
2070: p_encoded => FND_API.G_FALSE) ;
2071:
2072: WHEN OTHERS THEN
2073: IF FND_API.To_Boolean(p_transaction_control) THEN
2074: ROLLBACK TO Create_Cost_Details_PVT;
2069: p_data => x_msg_data,
2070: p_encoded => FND_API.G_FALSE) ;
2071:
2072: WHEN OTHERS THEN
2073: IF FND_API.To_Boolean(p_transaction_control) THEN
2074: ROLLBACK TO Create_Cost_Details_PVT;
2075: END IF ;
2076: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2077: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2072: WHEN OTHERS THEN
2073: IF FND_API.To_Boolean(p_transaction_control) THEN
2074: ROLLBACK TO Create_Cost_Details_PVT;
2075: END IF ;
2076: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2077: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2078: THEN
2079: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2080: END IF;
2079: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2080: END IF;
2081: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2082: p_data => x_msg_data,
2083: p_encoded => FND_API.G_FALSE) ;
2084:
2085: END create_cost_details;
2086:
2087: /*======================================================================+
2097:
2098: PROCEDURE Update_Cost_Details
2099: (
2100: p_api_version IN NUMBER,
2101: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2102: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2103: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2104: x_return_status OUT NOCOPY VARCHAR2,
2105: x_msg_count OUT NOCOPY NUMBER,
2098: PROCEDURE Update_Cost_Details
2099: (
2100: p_api_version IN NUMBER,
2101: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2102: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2103: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2104: x_return_status OUT NOCOPY VARCHAR2,
2105: x_msg_count OUT NOCOPY NUMBER,
2106: x_object_version_number OUT NOCOPY NUMBER,
2099: (
2100: p_api_version IN NUMBER,
2101: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2102: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2103: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2104: x_return_status OUT NOCOPY VARCHAR2,
2105: x_msg_count OUT NOCOPY NUMBER,
2106: x_object_version_number OUT NOCOPY NUMBER,
2107: x_msg_data OUT NOCOPY VARCHAR2,
2108: p_resp_appl_id IN NUMBER := FND_GLOBAL.RESP_APPL_ID,
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:
2180:
2181:
2182: BEGIN
2183: -- Standard start of API savepoint
2184: IF FND_API.To_Boolean(p_transaction_control) THEN
2185: SAVEPOINT Update_Cost_Details_PVT;
2186: END IF ;
2187: -- Standard call to check for call compatibility
2188: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2184: IF FND_API.To_Boolean(p_transaction_control) THEN
2185: SAVEPOINT Update_Cost_Details_PVT;
2186: END IF ;
2187: -- Standard call to check for call compatibility
2188: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2189: THEN
2190: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2191: END IF;
2192: -- Initialize message list if p_init_msg_list is set to TRUE
2186: END IF ;
2187: -- Standard call to check for call compatibility
2188: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2189: THEN
2190: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2191: END IF;
2192: -- Initialize message list if p_init_msg_list is set to TRUE
2193: IF FND_API.To_Boolean(p_init_msg_list) THEN
2194: FND_MSG_PUB.Initialize;
2189: THEN
2190: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2191: END IF;
2192: -- Initialize message list if p_init_msg_list is set to TRUE
2193: IF FND_API.To_Boolean(p_init_msg_list) THEN
2194: FND_MSG_PUB.Initialize;
2195: END IF;
2196: -- Initialize API return status to success
2197: x_return_status := FND_API.G_RET_STS_SUCCESS;
2193: IF FND_API.To_Boolean(p_init_msg_list) THEN
2194: FND_MSG_PUB.Initialize;
2195: END IF;
2196: -- Initialize API return status to success
2197: x_return_status := FND_API.G_RET_STS_SUCCESS;
2198:
2199: ----------------------- FND Logging -----------------------------------
2200: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
2201: THEN
2274: to NULL and extended cost to the value passed.
2275: */
2276:
2277:
2278: IF p_cost_rec.cost_id is not null and p_cost_rec.cost_id <> fnd_api.g_miss_num
2279: THEN
2280:
2281: begin
2282:
2299: END IF;
2300:
2301:
2302: IF lt_estimate_detail_id IS NOT NULL
2303: AND lt_estimate_detail_id<> fnd_api.g_miss_num
2304: THEN
2305:
2306: p_estimate_Detail_id := lt_estimate_detail_id;
2307:
2375:
2376: if l_disallow_request_update='Y' THEN
2377: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_UPDATE');
2378: FND_MSG_PUB.ADD;
2379: RAISE FND_API.G_EXC_ERROR;
2380: end if;
2381:
2382: Else
2383:
2383:
2384: if l_disallow_charge_update = 'Y' OR l_disallow_request_update='Y' THEN
2385: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_UPDATE');
2386: FND_MSG_PUB.ADD;
2387: RAISE FND_API.G_EXC_ERROR;
2388: end if;
2389:
2390: end if;
2391:
2396: lx_cost_rec:=l_cost_rec;
2397:
2398: --Cost Line can only be created for 'ACTUAL' charge Line types
2399:
2400: if lx_cost_rec.charge_line_type is not null and lx_cost_rec.charge_line_type <> fnd_api.g_miss_char
2401: then
2402: if lx_cost_rec.charge_line_type<>'ACTUAL' then
2403:
2404: Add_Invalid_Argument_Msg(l_api_name_full,
2409: end if;
2410:
2411:
2412:
2413: IF (p_validation_level = FND_API.G_VALID_LEVEL_NONE) THEN
2414:
2415:
2416: Validate_Who_Info ( p_api_name => l_api_name_full,
2417: p_user_id => NVL(p_user_id, -1),
2417: p_user_id => NVL(p_user_id, -1),
2418: p_login_id => p_login_id,
2419: x_return_status => l_return_status);
2420:
2421: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2422: RAISE FND_API.G_EXC_ERROR;
2423: END IF;
2424:
2425: IF lt_estimate_detail_id is null then
2418: p_login_id => p_login_id,
2419: x_return_status => l_return_status);
2420:
2421: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2422: RAISE FND_API.G_EXC_ERROR;
2423: END IF;
2424:
2425: IF lt_estimate_detail_id is null then
2426:
2430:
2431: L_RECALC_COST :='Y';
2432:
2433:
2434: ELSIF (p_validation_level = FND_API.G_VALID_LEVEL_FULL) then
2435:
2436:
2437: -- Perform all the validations by calling the procedure VALIDATE_COST_DETAILS which inturn does all the validations
2438: --This is done only when there is no estimate_Detail_id
2435:
2436:
2437: -- Perform all the validations by calling the procedure VALIDATE_COST_DETAILS which inturn does all the validations
2438: --This is done only when there is no estimate_Detail_id
2439: if lt_estimate_detail_id is null or lt_estimate_detail_id = fnd_api.g_miss_num
2440: then
2441:
2442: VALIDATE_COST_DETAILS
2443: (
2452: x_return_status => l_return_status
2453: );
2454:
2455:
2456: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2457: FND_MESSAGE.Set_Name('CS', 'CS_COST_VALIDATE_COST_DTL_ER');
2458: FND_MESSAGE.Set_Token('API_NAME', l_api_name_full);
2459: FND_MSG_PUB.Add;
2460: RAISE FND_API.G_EXC_ERROR;
2456: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2457: FND_MESSAGE.Set_Name('CS', 'CS_COST_VALIDATE_COST_DTL_ER');
2458: FND_MESSAGE.Set_Token('API_NAME', l_api_name_full);
2459: FND_MSG_PUB.Add;
2460: RAISE FND_API.G_EXC_ERROR;
2461: END IF;
2462:
2463: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
2464: THEN
2491:
2492: Add_Invalid_Argument_Msg(l_api_name_full,
2493: to_char(lx_cost_rec.extended_cost),
2494: 'Extended Cost ');
2495: RAISE FND_API.G_EXC_ERROR;
2496:
2497: end if;
2498: */
2499:
2503:
2504: Add_Invalid_Argument_Msg(l_api_name_full,
2505: to_char(lx_cost_rec.quantity),
2506: 'Quantity ');
2507: RAISE FND_API.G_EXC_ERROR;
2508:
2509: end if;
2510:
2511:
2520:
2521: l_override_ext_cost_flag:=v_override_ext_cost_flag;
2522: l_unit_cost :=v_unit_cost;
2523: if lx_cost_rec.extended_cost is not null
2524: and lx_cost_rec.extended_cost <> fnd_api.g_miss_num then
2525:
2526: --l_unit_cost := NULL;
2527: --lx_cost_rec.quantity := NULL;
2528: l_unit_cost := v_unit_cost;
2591:
2592: If l_cost_inv_org_id is null then
2593: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_NO_INV_ORG');
2594: FND_MSG_PUB.ADD;
2595: RAISE FND_API.G_EXC_ERROR;
2596: End If;
2597:
2598:
2599:
2631: END IF;
2632:
2633:
2634: --Calculate the Item's Extended Cost
2635: If lx_cost_rec.extended_cost IS NULL or lx_cost_rec.extended_cost = fnd_api.g_miss_num
2636: THEN
2637: lx_cost_rec.extended_cost :=l_unit_cost*lx_cost_rec.quantity;
2638: l_override_ext_cost_flag :='N';
2639: Else
2701:
2702:
2703:
2704: -- Standard check of p_commit
2705: IF FND_API.To_Boolean(p_commit) THEN
2706: COMMIT ;
2707:
2708: END IF;
2709:
2715:
2716:
2717: EXCEPTION
2718:
2719: WHEN FND_API.G_EXC_ERROR THEN
2720: IF FND_API.To_Boolean(p_transaction_control) THEN
2721: ROLLBACK TO Update_Cost_Details_PVT;
2722: END IF ;
2723: x_return_status := FND_API.G_RET_STS_ERROR;
2716:
2717: EXCEPTION
2718:
2719: WHEN FND_API.G_EXC_ERROR THEN
2720: IF FND_API.To_Boolean(p_transaction_control) THEN
2721: ROLLBACK TO Update_Cost_Details_PVT;
2722: END IF ;
2723: x_return_status := FND_API.G_RET_STS_ERROR;
2724: FND_MSG_PUB.Count_And_Get(
2719: WHEN FND_API.G_EXC_ERROR THEN
2720: IF FND_API.To_Boolean(p_transaction_control) THEN
2721: ROLLBACK TO Update_Cost_Details_PVT;
2722: END IF ;
2723: x_return_status := FND_API.G_RET_STS_ERROR;
2724: FND_MSG_PUB.Count_And_Get(
2725: p_count => x_msg_count,
2726: p_data => x_msg_data,
2727: p_encoded => FND_API.G_FALSE) ;
2723: x_return_status := FND_API.G_RET_STS_ERROR;
2724: FND_MSG_PUB.Count_And_Get(
2725: p_count => x_msg_count,
2726: p_data => x_msg_data,
2727: p_encoded => FND_API.G_FALSE) ;
2728:
2729: WHEN G_WARNING THEN
2730: x_return_status := FND_API.G_RET_STS_SUCCESS;
2731:
2726: p_data => x_msg_data,
2727: p_encoded => FND_API.G_FALSE) ;
2728:
2729: WHEN G_WARNING THEN
2730: x_return_status := FND_API.G_RET_STS_SUCCESS;
2731:
2732: IF FND_API.To_Boolean(p_transaction_control) THEN
2733: ROLLBACK TO Update_Cost_Details_PVT;
2734: END IF ;
2728:
2729: WHEN G_WARNING THEN
2730: x_return_status := FND_API.G_RET_STS_SUCCESS;
2731:
2732: IF FND_API.To_Boolean(p_transaction_control) THEN
2733: ROLLBACK TO Update_Cost_Details_PVT;
2734: END IF ;
2735: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2736: p_data => x_msg_data,
2733: ROLLBACK TO Update_Cost_Details_PVT;
2734: END IF ;
2735: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2736: p_data => x_msg_data,
2737: p_encoded => FND_API.G_FALSE) ;
2738:
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: IF FND_API.To_Boolean(p_transaction_control) THEN
2741: ROLLBACK TO Update_Cost_Details_PVT;
2735: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2736: p_data => x_msg_data,
2737: p_encoded => FND_API.G_FALSE) ;
2738:
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: IF FND_API.To_Boolean(p_transaction_control) THEN
2741: ROLLBACK TO Update_Cost_Details_PVT;
2742: END IF ;
2743: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2736: p_data => x_msg_data,
2737: p_encoded => FND_API.G_FALSE) ;
2738:
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: IF FND_API.To_Boolean(p_transaction_control) THEN
2741: ROLLBACK TO Update_Cost_Details_PVT;
2742: END IF ;
2743: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2744: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: IF FND_API.To_Boolean(p_transaction_control) THEN
2741: ROLLBACK TO Update_Cost_Details_PVT;
2742: END IF ;
2743: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2744: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2745: p_data => x_msg_data,
2746: p_encoded => FND_API.G_FALSE) ;
2747: WHEN OTHERS THEN
2742: END IF ;
2743: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2744: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2745: p_data => x_msg_data,
2746: p_encoded => FND_API.G_FALSE) ;
2747: WHEN OTHERS THEN
2748: IF FND_API.To_Boolean(p_transaction_control) THEN
2749: ROLLBACK TO Update_Cost_Details_PVT;
2750: END IF ;
2744: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2745: p_data => x_msg_data,
2746: p_encoded => FND_API.G_FALSE) ;
2747: WHEN OTHERS THEN
2748: IF FND_API.To_Boolean(p_transaction_control) THEN
2749: ROLLBACK TO Update_Cost_Details_PVT;
2750: END IF ;
2751: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2752: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2747: WHEN OTHERS THEN
2748: IF FND_API.To_Boolean(p_transaction_control) THEN
2749: ROLLBACK TO Update_Cost_Details_PVT;
2750: END IF ;
2751: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2752: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2753: THEN
2754: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2755: END IF;
2754: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2755: END IF;
2756: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2757: p_data => x_msg_data,
2758: p_encoded => FND_API.G_FALSE) ;
2759:
2760:
2761: END Update_Cost_Details;
2762:
2802:
2803: BEGIN
2804:
2805: --Standard Start of API Savepoint
2806: IF FND_API.To_Boolean( p_transaction_control ) THEN
2807: SAVEPOINT Delete_Cost_Details_PVT ;
2808: END IF ;
2809: --Standard Call to check API compatibility
2810: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2806: IF FND_API.To_Boolean( p_transaction_control ) THEN
2807: SAVEPOINT Delete_Cost_Details_PVT ;
2808: END IF ;
2809: --Standard Call to check API compatibility
2810: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2811: THEN
2812: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2813: END IF ;
2814: --Initialize the message list if p_msg_list is set to TRUE
2808: END IF ;
2809: --Standard Call to check API compatibility
2810: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
2811: THEN
2812: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2813: END IF ;
2814: --Initialize the message list if p_msg_list is set to TRUE
2815: IF FND_API.To_Boolean(p_init_msg_list) THEN
2816: FND_MSG_PUB.initialize ;
2811: THEN
2812: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2813: END IF ;
2814: --Initialize the message list if p_msg_list is set to TRUE
2815: IF FND_API.To_Boolean(p_init_msg_list) THEN
2816: FND_MSG_PUB.initialize ;
2817: END IF ;
2818:
2819: --Initialize the API Return Success to True
2816: FND_MSG_PUB.initialize ;
2817: END IF ;
2818:
2819: --Initialize the API Return Success to True
2820: x_return_status := FND_API.G_RET_STS_SUCCESS ;
2821:
2822: ----------------------- FND Logging -----------------------------------
2823: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
2824: THEN
2855:
2856: IF (p_cost_id IS NULL) THEN
2857: Add_Null_Parameter_Msg(l_api_name_full,
2858: 'p_cost_id') ;
2859: RAISE FND_API.G_EXC_ERROR ;
2860: END IF ;
2861:
2862: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
2863: THEN
2885: 'cost_id');
2886: RAISE G_WARNING;
2887: END IF;
2888:
2889: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2890: RAISE G_WARNING ;
2891: END IF ;
2892:
2893: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
2919: cost_id = p_cost_id;
2920:
2921: --End of API Body
2922: --Standard Check of p_commit
2923: IF FND_API.To_Boolean( p_commit ) THEN
2924: COMMIT WORK ;
2925: END IF ;
2926:
2927: --Standard call to get message count and if count is 1 , get message info
2931: --Begin Exception Handling
2932:
2933: EXCEPTION
2934:
2935: WHEN FND_API.G_EXC_ERROR THEN
2936: IF FND_API.To_Boolean( p_transaction_control ) THEN
2937: ROLLBACK TO Delete_Cost_Details_PVT;
2938: END IF ;
2939: x_return_status := FND_API.G_RET_STS_ERROR ;
2932:
2933: EXCEPTION
2934:
2935: WHEN FND_API.G_EXC_ERROR THEN
2936: IF FND_API.To_Boolean( p_transaction_control ) THEN
2937: ROLLBACK TO Delete_Cost_Details_PVT;
2938: END IF ;
2939: x_return_status := FND_API.G_RET_STS_ERROR ;
2940: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2935: WHEN FND_API.G_EXC_ERROR THEN
2936: IF FND_API.To_Boolean( p_transaction_control ) THEN
2937: ROLLBACK TO Delete_Cost_Details_PVT;
2938: END IF ;
2939: x_return_status := FND_API.G_RET_STS_ERROR ;
2940: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2941: p_data => x_msg_data,
2942: p_encoded => FND_API.G_FALSE) ;
2943:
2938: END IF ;
2939: x_return_status := FND_API.G_RET_STS_ERROR ;
2940: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2941: p_data => x_msg_data,
2942: p_encoded => FND_API.G_FALSE) ;
2943:
2944: WHEN G_WARNING THEN
2945: x_return_status := FND_API.G_RET_STS_SUCCESS;
2946: IF FND_API.To_Boolean(p_transaction_control) THEN
2941: p_data => x_msg_data,
2942: p_encoded => FND_API.G_FALSE) ;
2943:
2944: WHEN G_WARNING THEN
2945: x_return_status := FND_API.G_RET_STS_SUCCESS;
2946: IF FND_API.To_Boolean(p_transaction_control) THEN
2947: ROLLBACK TO Delete_Cost_Details_PVT;
2948: END IF ;
2949: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2942: p_encoded => FND_API.G_FALSE) ;
2943:
2944: WHEN G_WARNING THEN
2945: x_return_status := FND_API.G_RET_STS_SUCCESS;
2946: IF FND_API.To_Boolean(p_transaction_control) THEN
2947: ROLLBACK TO Delete_Cost_Details_PVT;
2948: END IF ;
2949: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2950: p_data => x_msg_data,
2947: ROLLBACK TO Delete_Cost_Details_PVT;
2948: END IF ;
2949: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2950: p_data => x_msg_data,
2951: p_encoded => FND_API.G_FALSE) ;
2952:
2953: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2954: IF FND_API.To_Boolean( p_transaction_control ) THEN
2955: ROLLBACK TO Delete_Cost_Details_PVT;
2949: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2950: p_data => x_msg_data,
2951: p_encoded => FND_API.G_FALSE) ;
2952:
2953: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2954: IF FND_API.To_Boolean( p_transaction_control ) THEN
2955: ROLLBACK TO Delete_Cost_Details_PVT;
2956: END IF ;
2957: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2950: p_data => x_msg_data,
2951: p_encoded => FND_API.G_FALSE) ;
2952:
2953: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2954: IF FND_API.To_Boolean( p_transaction_control ) THEN
2955: ROLLBACK TO Delete_Cost_Details_PVT;
2956: END IF ;
2957: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2958: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2953: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2954: IF FND_API.To_Boolean( p_transaction_control ) THEN
2955: ROLLBACK TO Delete_Cost_Details_PVT;
2956: END IF ;
2957: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2958: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2959: p_data => x_msg_data,
2960: p_encoded => FND_API.G_FALSE) ;
2961:
2956: END IF ;
2957: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2958: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2959: p_data => x_msg_data,
2960: p_encoded => FND_API.G_FALSE) ;
2961:
2962: WHEN OTHERS THEN
2963: IF FND_API.To_Boolean( p_transaction_control ) THEN
2964: ROLLBACK TO Delete_Cost_Details_PVT;
2959: p_data => x_msg_data,
2960: p_encoded => FND_API.G_FALSE) ;
2961:
2962: WHEN OTHERS THEN
2963: IF FND_API.To_Boolean( p_transaction_control ) THEN
2964: ROLLBACK TO Delete_Cost_Details_PVT;
2965: END IF ;
2966: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2967: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2962: WHEN OTHERS THEN
2963: IF FND_API.To_Boolean( p_transaction_control ) THEN
2964: ROLLBACK TO Delete_Cost_Details_PVT;
2965: END IF ;
2966: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2967: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2968: THEN
2969: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
2970: END IF ;
2969: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
2970: END IF ;
2971: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
2972: p_data => x_msg_data,
2973: p_encoded => FND_API.G_FALSE) ;
2974:
2975: End Delete_Cost_Details;
2976:
2977: /*======================================================================+
3038:
3039: IF p_validation_mode = 'U' THEN
3040:
3041: IF pv_cost_rec.cost_id IS NULL OR
3042: pv_cost_rec.cost_id = FND_API.G_MISS_NUM THEN
3043: Add_Null_Parameter_Msg(l_api_name,'cost_id') ;
3044: Add_Invalid_Argument_Msg(l_api_name,TO_CHAR(pv_cost_rec.estimate_detail_id),'cost_id');
3045: RAISE FND_API.G_EXC_ERROR;
3046: ELSE -- validate the cost id passed
3041: IF pv_cost_rec.cost_id IS NULL OR
3042: pv_cost_rec.cost_id = FND_API.G_MISS_NUM THEN
3043: Add_Null_Parameter_Msg(l_api_name,'cost_id') ;
3044: Add_Invalid_Argument_Msg(l_api_name,TO_CHAR(pv_cost_rec.estimate_detail_id),'cost_id');
3045: RAISE FND_API.G_EXC_ERROR;
3046: ELSE -- validate the cost id passed
3047: IF IS_COST_ID_VALID(p_cost_id => pv_cost_rec.cost_id,
3048: x_msg_data => l_msg_data,
3049: x_msg_count => l_msg_count,
3047: IF IS_COST_ID_VALID(p_cost_id => pv_cost_rec.cost_id,
3048: x_msg_data => l_msg_data,
3049: x_msg_count => l_msg_count,
3050: x_return_status => l_return_status) = 'U' THEN
3051: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3052:
3053: ELSIF IS_COST_ID_VALID( p_cost_id => pv_cost_rec.cost_id,
3054: x_msg_data => l_msg_data,
3055: x_msg_count => l_msg_count,
3054: x_msg_data => l_msg_data,
3055: x_msg_count => l_msg_count,
3056: x_return_status => l_return_status) = 'N' THEN
3057: Add_Invalid_Argument_Msg(l_api_name,TO_CHAR(pv_cost_rec.cost_id),'cost_id');
3058: RAISE FND_API.G_EXC_ERROR;
3059: ELSE
3060: --cost id is valid
3061: --assign to out record
3062: x_cost_Rec.cost_id := pv_cost_rec.cost_id;
3068: x_MSG_COUNT => l_msg_count,
3069: x_RETURN_STATUS => l_return_status);
3070:
3071:
3072: if (l_return_status = fnd_api.g_ret_sts_error) then
3073: RAISE FND_API.G_EXC_ERROR;
3074: elsif (l_return_status = fnd_api.g_ret_sts_unexp_error) then
3075: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3076: end if;
3069: x_RETURN_STATUS => l_return_status);
3070:
3071:
3072: if (l_return_status = fnd_api.g_ret_sts_error) then
3073: RAISE FND_API.G_EXC_ERROR;
3074: elsif (l_return_status = fnd_api.g_ret_sts_unexp_error) then
3075: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3076: end if;
3077: END IF;
3070:
3071:
3072: if (l_return_status = fnd_api.g_ret_sts_error) then
3073: RAISE FND_API.G_EXC_ERROR;
3074: elsif (l_return_status = fnd_api.g_ret_sts_unexp_error) then
3075: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3076: end if;
3077: END IF;
3078: END IF;
3071:
3072: if (l_return_status = fnd_api.g_ret_sts_error) then
3073: RAISE FND_API.G_EXC_ERROR;
3074: elsif (l_return_status = fnd_api.g_ret_sts_unexp_error) then
3075: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3076: end if;
3077: END IF;
3078: END IF;
3079: END IF;
3086: 'After Cost_Id Validation'
3087: );
3088: END IF;
3089:
3090: IF pv_cost_rec.quantity <> l_db_det_rec.quantity and pv_cost_rec.quantity <> fnd_api.g_miss_num THEN
3091: -- cost will be recalculated if quantity changes during updation
3092: l_recalc_cost := 'Y';
3093: END IF;
3094: x_cost_rec:=pv_cost_rec;
3107: x_msg_count => l_msg_count,
3108: x_return_status => l_return_status
3109: );
3110: if l_return_status = g_ret_sts_unexp_error then
3111: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3112: ELSIF l_return_status = G_RET_STS_ERROR THEN
3113: RAISE FND_API.G_EXC_ERROR;
3114: END IF;
3115:
3109: );
3110: if l_return_status = g_ret_sts_unexp_error then
3111: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3112: ELSIF l_return_status = G_RET_STS_ERROR THEN
3113: RAISE FND_API.G_EXC_ERROR;
3114: END IF;
3115:
3116: if l_valid_check ='Y' then
3117: x_cost_rec.incident_id := pv_cost_rec.incident_id;
3119: Add_Invalid_Argument_Msg(l_api_name,
3120: pv_cost_rec.incident_id,
3121: 'incident_id');
3122:
3123: RAISE FND_API.G_EXC_ERROR;
3124: end if;
3125:
3126: else
3127: Add_Null_Parameter_Msg(l_api_name,'p_incident_id') ;
3124: end if;
3125:
3126: else
3127: Add_Null_Parameter_Msg(l_api_name,'p_incident_id') ;
3128: RAISE FND_API.G_EXC_ERROR;
3129: end if;
3130:
3131: elsif p_validation_mode ='U' then
3132: -- Incident Id will not change, hence assign from the database
3150:
3151: IF p_validation_mode = 'U' THEN
3152:
3153:
3154: if pv_cost_rec.transaction_type_id = FND_API.G_MISS_NUM OR
3155: pv_cost_rec.transaction_type_id IS NULL THEN
3156:
3157: --Default attributes using db record
3158: x_cost_rec.transaction_type_id := l_db_det_rec.transaction_type_id;
3169: x_msg_count => l_msg_count,
3170: x_return_status => l_return_status
3171: ) ;
3172:
3173: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3174: RAISE FND_API.G_EXC_ERROR ;
3175: end if;
3176:
3177: --assign the values source_code, source_id to out record
3170: x_return_status => l_return_status
3171: ) ;
3172:
3173: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3174: RAISE FND_API.G_EXC_ERROR ;
3175: end if;
3176:
3177: --assign the values source_code, source_id to out record
3178: x_cost_rec.transaction_type_id := pv_cost_rec.transaction_type_id;
3178: x_cost_rec.transaction_type_id := pv_cost_rec.transaction_type_id;
3179: l_transaction_type_changed := 'Y';
3180: lx_quantity :=pv_cost_rec.quantity ;
3181:
3182: if pv_cost_rec.quantity = FND_API.G_MISS_NUM OR
3183: pv_cost_rec.quantity = null
3184: then
3185: lx_quantity :=l_db_det_rec.quantity;
3186: end if ;
3265:
3266:
3267: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_INSERT');
3268: FND_MSG_PUB.ADD;
3269: RAISE FND_API.G_EXC_ERROR;
3270: end if;
3271:
3272: Else
3273: if l_disallow_new_charge = 'Y' OR l_disallow_request_update='Y' THEN
3274:
3275:
3276: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_INSERT');
3277: FND_MSG_PUB.ADD;
3278: RAISE FND_API.G_EXC_ERROR;
3279: end if;
3280:
3281: end if;
3282:
3286: If l_create_charge_flag ='N' and l_create_cost_flag = 'Y' then
3287: if l_disallow_request_update='Y' THEN
3288: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_UPDATE');
3289: FND_MSG_PUB.ADD;
3290: RAISE FND_API.G_EXC_ERROR;
3291: end if;
3292:
3293: Else
3294: if l_disallow_charge_update = 'Y' OR l_disallow_request_update='Y' THEN
3294: if l_disallow_charge_update = 'Y' OR l_disallow_request_update='Y' THEN
3295:
3296: FND_MESSAGE.SET_NAME('CS', 'CS_COST_CANNOT_UPDATE');
3297: FND_MSG_PUB.ADD;
3298: RAISE FND_API.G_EXC_ERROR;
3299: end if;
3300:
3301: end if;
3302:
3318: x_msg_count => l_msg_count,
3319: x_return_status => l_return_status
3320: );
3321: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
3322: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3323: ELSIF l_return_status = G_RET_STS_ERROR THEN
3324: RAISE FND_API.G_EXC_ERROR;
3325: END IF;
3326:
3320: );
3321: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
3322: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3323: ELSIF l_return_status = G_RET_STS_ERROR THEN
3324: RAISE FND_API.G_EXC_ERROR;
3325: END IF;
3326:
3327: if l_valid_check ='Y' then
3328: x_cost_rec.estimate_detail_id := pv_cost_rec.estimate_detail_id ;
3329: else --throw the error message and stop processing
3330: Add_Invalid_Argument_Msg(l_api_name,
3331: pv_cost_rec.estimate_Detail_id,
3332: 'estimate_detail_id');
3333: RAISE FND_API.G_EXC_ERROR;
3334: end if;
3335:
3336: else -- if null , then just assign
3337: x_cost_rec.estimate_Detail_id := pv_cost_rec.estimate_detail_id;
3376: x_msg_count => l_msg_count,
3377: x_return_status => l_return_status
3378: ) ;
3379: If l_return_status = G_RET_STS_UNEXP_ERROR then
3380: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3381: elsif l_return_status = G_RET_STS_ERROR then
3382: RAISE FND_API.G_EXC_ERROR;
3383: end if;
3384:
3378: ) ;
3379: If l_return_status = G_RET_STS_UNEXP_ERROR then
3380: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3381: elsif l_return_status = G_RET_STS_ERROR then
3382: RAISE FND_API.G_EXC_ERROR;
3383: end if;
3384:
3385: x_cost_Rec.source_id := l_source_id;
3386: x_cost_rec.source_code := pv_cost_rec.source_code;
3393: /*
3394: Add_Invalid_Argument_Msg(l_api_name,
3395: to_char(pv_cost_rec.incident_id),
3396: 'source_id');*/
3397: RAISE FND_API.G_EXC_ERROR;
3398: end if;
3399:
3400: ELSIF p_validation_mode = 'U' THEN
3401:
3398: end if;
3399:
3400: ELSIF p_validation_mode = 'U' THEN
3401:
3402: if pv_cost_rec.source_code = FND_API.G_MISS_CHAR OR
3403: pv_cost_rec.source_code IS NULL AND
3404: pv_cost_rec.source_id = FND_API.G_MISS_NUM OR
3405: pv_cost_rec.source_id IS NULL THEN
3406:
3400: ELSIF p_validation_mode = 'U' THEN
3401:
3402: if pv_cost_rec.source_code = FND_API.G_MISS_CHAR OR
3403: pv_cost_rec.source_code IS NULL AND
3404: pv_cost_rec.source_id = FND_API.G_MISS_NUM OR
3405: pv_cost_rec.source_id IS NULL THEN
3406:
3407: --Default attributes using db record
3408: x_cost_rec.source_code := l_db_det_rec.source_code;
3420: x_msg_count => l_msg_count,
3421: x_return_status => l_return_status
3422: ) ;
3423:
3424: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3425: RAISE FND_API.G_EXC_ERROR ;
3426: end if;
3427:
3428: --assign the values source_code, source_id to out record
3421: x_return_status => l_return_status
3422: ) ;
3423:
3424: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3425: RAISE FND_API.G_EXC_ERROR ;
3426: end if;
3427:
3428: --assign the values source_code, source_id to out record
3429: x_cost_rec.source_code := x_cost_rec.source_code;
3470:
3471: CS_Multiorg_PUB.Get_OrgId
3472: (
3473: P_API_VERSION => 1.0,
3474: P_INIT_MSG_LIST => FND_API.G_FALSE,
3475: -- Fix bug 3236597 P_COMMIT => 'T',
3476: P_COMMIT => 'F', -- Fix bug 3236597
3477: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
3478: X_RETURN_STATUS => l_return_status,
3473: P_API_VERSION => 1.0,
3474: P_INIT_MSG_LIST => FND_API.G_FALSE,
3475: -- Fix bug 3236597 P_COMMIT => 'T',
3476: P_COMMIT => 'F', -- Fix bug 3236597
3477: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
3478: X_RETURN_STATUS => l_return_status,
3479: X_MSG_COUNT => l_msg_count,
3480: X_MSG_DATA => l_msg_data,
3481: P_INCIDENT_ID => pv_cost_rec.incident_id,
3486:
3487:
3488:
3489:
3490: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3491: RAISE FND_API.G_EXC_ERROR ;
3492: END IF;
3493:
3494: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
3487:
3488:
3489:
3490: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3491: RAISE FND_API.G_EXC_ERROR ;
3492: END IF;
3493:
3494: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
3495: THEN
3516: X_MSG_DATA => l_msg_data
3517: );
3518:
3519:
3520: if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3521: RAISE FND_API.G_EXC_ERROR ;
3522: end if;
3523: x_cost_rec.org_id := pv_cost_rec.org_id;
3524: else
3517: );
3518:
3519:
3520: if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3521: RAISE FND_API.G_EXC_ERROR ;
3522: end if;
3523: x_cost_rec.org_id := pv_cost_rec.org_id;
3524: else
3525:
3536: --Need to define error here
3537: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_CANNOT_CHANGE_OU');
3538: FND_MESSAGE.SET_TOKEN('API_NAME', p_api_name);
3539: FND_MSG_PUB.ADD;
3540: RAISE FND_API.G_EXC_ERROR;
3541: else
3542: x_cost_rec.org_id := pv_cost_rec.org_id;
3543: end if;
3544: else
3559: X_MSG_COUNT => l_msg_count,
3560: X_MSG_DATA => l_msg_data
3561: );
3562:
3563: if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3564: RAISE FND_API.G_EXC_ERROR ;
3565: end if;
3566: x_cost_rec.org_id := pv_cost_rec.org_id;
3567: else
3560: X_MSG_DATA => l_msg_data
3561: );
3562:
3563: if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3564: RAISE FND_API.G_EXC_ERROR ;
3565: end if;
3566: x_cost_rec.org_id := pv_cost_rec.org_id;
3567: else
3568: --use the default
3581: -- or org_id is null then assign the value from the database
3582: -- else if passed then validate the org_id and if valid then
3583: -- assign the value to the out parameter
3584:
3585: if pv_cost_rec.org_id = FND_API.G_MISS_NUM or
3586: pv_cost_rec.org_id IS NULL THEN
3587: --use the value from the database
3588: x_cost_rec.org_id := l_db_det_rec.org_id;
3589:
3595: X_RETURN_STATUS => l_return_status,
3596: X_MSG_COUNT => l_msg_count,
3597: X_MSG_DATA => l_msg_data);
3598:
3599: if l_return_status <> fnd_api.g_ret_sts_success then
3600: raise fnd_api.g_exc_error ;
3601: end if;
3602: x_cost_rec.org_id := pv_cost_rec.org_id;
3603:
3596: X_MSG_COUNT => l_msg_count,
3597: X_MSG_DATA => l_msg_data);
3598:
3599: if l_return_status <> fnd_api.g_ret_sts_success then
3600: raise fnd_api.g_exc_error ;
3601: end if;
3602: x_cost_rec.org_id := pv_cost_rec.org_id;
3603:
3604: end if;
3609: -- or org_id is null then assign the value from the database
3610: -- else if passed then validate the org_id and if valid then
3611: -- assign the value to the out parameter
3612:
3613: IF pv_cost_rec.org_id = FND_API.G_MISS_NUM OR
3614: pv_cost_rec.org_id IS NULL THEN
3615: --use the value from the database
3616: x_cost_rec.org_id := l_db_det_rec.org_id;
3617:
3620: --raise error
3621: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_CANNOT_CHANGE_OU');
3622: FND_MESSAGE.SET_TOKEN('API_NAME', p_api_name);
3623: FND_MSG_PUB.ADD;
3624: RAISE FND_API.G_EXC_ERROR;
3625: ELSE
3626: x_cost_rec.org_id := pv_cost_rec.org_id;
3627: END IF;
3628: END IF;
3629: END IF;-- profile
3630: END IF;
3631: else--if create_charge_flag='N'
3632:
3633: if pv_cost_rec.org_id = FND_API.G_MISS_NUM or
3634: pv_cost_rec.org_id IS NULL THEN
3635: --use the value from the database
3636: x_cost_rec.org_id := l_db_det_rec.org_id;
3637:
3642: X_RETURN_STATUS => l_return_status,
3643: X_MSG_COUNT => l_msg_count,
3644: X_MSG_DATA => l_msg_data);
3645:
3646: if l_return_status <> fnd_api.g_ret_sts_success then
3647: raise fnd_api.g_exc_error ;
3648: end if;
3649: x_cost_rec.org_id := pv_cost_rec.org_id;
3650:
3643: X_MSG_COUNT => l_msg_count,
3644: X_MSG_DATA => l_msg_data);
3645:
3646: if l_return_status <> fnd_api.g_ret_sts_success then
3647: raise fnd_api.g_exc_error ;
3648: end if;
3649: x_cost_rec.org_id := pv_cost_rec.org_id;
3650:
3651: end if;
3692: if l_no_charge = 'Y' then
3693: if l_inv_item_id is null then
3694: Add_Null_Parameter_Msg(l_api_name,
3695: 'p_inventory_item_id') ;
3696: RAISE FND_API.G_EXC_ERROR;
3697: else
3698: x_cost_rec.inventory_item_id:=l_inv_item_id;
3699: end if;
3700: end if;
3720: Add_Invalid_Argument_Msg(l_api_name,
3721: to_char(pv_cost_rec.inventory_item_id),
3722: 'inventory_item_id');
3723:
3724: RAISE FND_API.G_EXC_ERROR;
3725: end if;
3726:
3727: else
3728:
3730: 'p_inventory_item_id') ;
3731: /* Add_Invalid_Argument_Msg(l_api_name,
3732: to_char(pv_cost_rec.inventory_item_id),
3733: 'inventory_item_id');*/
3734: RAISE FND_API.G_EXC_ERROR;
3735:
3736: end if;
3737: end if;
3738: ELSIF p_validation_mode = 'U' THEN
3736: end if;
3737: end if;
3738: ELSIF p_validation_mode = 'U' THEN
3739:
3740: if pv_cost_rec.inventory_item_id = FND_API.G_MISS_NUM OR
3741: pv_cost_rec.inventory_item_id IS NULL
3742: then
3743:
3744: --Default attributes using db record
3762: Add_Invalid_Argument_Msg(l_api_name,
3763: to_char(pv_cost_rec.inventory_item_id),
3764: 'inventory_item_id');
3765:
3766: RAISE FND_API.G_EXC_ERROR;
3767: end if;
3768: end if;
3769:
3770:
3812: Add_Invalid_Argument_Msg(l_api_name,
3813: to_char(pv_cost_rec.inventory_org_id),
3814: 'inventory_org_id');
3815:
3816: RAISE FND_API.G_EXC_ERROR;
3817: end if;
3818:
3819:
3820:
3822: end if;
3823:
3824: ELSIF p_validation_mode = 'U' THEN
3825:
3826: if pv_cost_rec.inventory_org_id = FND_API.G_MISS_NUM OR
3827: pv_cost_rec.inventory_org_id IS NULL
3828: then
3829:
3830: --Default attributes using db record
3847: Add_Invalid_Argument_Msg(l_api_name,
3848: to_char(pv_cost_rec.inventory_org_id),
3849: 'inventory_org_id');
3850:
3851: RAISE FND_API.G_EXC_ERROR;
3852: end if;
3853: end if;
3854:
3855:
3882: x_msg_count => l_msg_count,
3883: x_return_status => l_return_status);
3884:
3885:
3886: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3887: RAISE FND_API.G_EXC_ERROR ;
3888: ELSE
3889: IF pv_cost_rec.txn_billing_type_id IS NOT NULL THEN
3890: IF pv_cost_rec.txn_billing_type_id <> l_txn_billing_type_id THEN
3883: x_return_status => l_return_status);
3884:
3885:
3886: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3887: RAISE FND_API.G_EXC_ERROR ;
3888: ELSE
3889: IF pv_cost_rec.txn_billing_type_id IS NOT NULL THEN
3890: IF pv_cost_rec.txn_billing_type_id <> l_txn_billing_type_id THEN
3891: --RAISE ERROR
3891: --RAISE ERROR
3892: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_INVALID_TXN_BILLING_TYP');
3893: FND_MESSAGE.SET_TOKEN('TXN_BILLING_TYPE_ID', pv_cost_rec.txn_billing_type_id);
3894: FND_MSG_PUB.ADD;
3895: RAISE FND_API.G_EXC_ERROR;
3896: ELSE --
3897: --the ids match
3898: --assign to the out record
3899: x_cost_rec.txn_billing_type_id := pv_cost_rec.txn_billing_type_id ;
3911: x_return_status => l_return_status,
3912: x_msg_count => l_msg_count,
3913: x_msg_data => l_msg_data);
3914:
3915: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3916: FND_MESSAGE.SET_NAME('CS', 'CS_COST_INVALID_OU_BILLING_TYP');
3917: FND_MESSAGE.SET_TOKEN('TXN_BILLING_TYPE_ID', pv_cost_rec.txn_billing_type_id);
3918: FND_MSG_PUB.ADD;
3919: RAISE FND_API.G_EXC_ERROR;
3915: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3916: FND_MESSAGE.SET_NAME('CS', 'CS_COST_INVALID_OU_BILLING_TYP');
3917: FND_MESSAGE.SET_TOKEN('TXN_BILLING_TYPE_ID', pv_cost_rec.txn_billing_type_id);
3918: FND_MSG_PUB.ADD;
3919: RAISE FND_API.G_EXC_ERROR;
3920: End if;
3921:
3922: END IF;
3923: ELSIF p_validation_mode = 'U' THEN
3934: X_MSG_DATA => l_msg_data,
3935: X_MSG_COUNT => l_msg_count,
3936: X_RETURN_STATUS => l_return_status);
3937:
3938: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3939: RAISE FND_API.G_EXC_ERROR ;
3940: ELSE
3941: VALIDATE_OPERATING_UNIT(p_api_name => p_api_name,
3942: p_txn_billing_type_id => l_txn_billing_type_id,
3935: X_MSG_COUNT => l_msg_count,
3936: X_RETURN_STATUS => l_return_status);
3937:
3938: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3939: RAISE FND_API.G_EXC_ERROR ;
3940: ELSE
3941: VALIDATE_OPERATING_UNIT(p_api_name => p_api_name,
3942: p_txn_billing_type_id => l_txn_billing_type_id,
3943: x_return_status => l_return_status,
3943: x_return_status => l_return_status,
3944: x_msg_count => l_msg_count,
3945: x_msg_data => l_msg_data);
3946:
3947: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3948: RAISE FND_API.G_EXC_ERROR ;
3949: ELSE
3950: IF pv_cost_rec.txn_billing_type_id <> FND_API.G_MISS_NUM AND
3951: pv_cost_rec.txn_billing_type_id IS NOT NULL THEN
3944: x_msg_count => l_msg_count,
3945: x_msg_data => l_msg_data);
3946:
3947: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3948: RAISE FND_API.G_EXC_ERROR ;
3949: ELSE
3950: IF pv_cost_rec.txn_billing_type_id <> FND_API.G_MISS_NUM AND
3951: pv_cost_rec.txn_billing_type_id IS NOT NULL THEN
3952: IF pv_cost_rec.txn_billing_type_id <> l_txn_billing_type_id THEN
3946:
3947: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3948: RAISE FND_API.G_EXC_ERROR ;
3949: ELSE
3950: IF pv_cost_rec.txn_billing_type_id <> FND_API.G_MISS_NUM AND
3951: pv_cost_rec.txn_billing_type_id IS NOT NULL THEN
3952: IF pv_cost_rec.txn_billing_type_id <> l_txn_billing_type_id THEN
3953:
3954: --RAISE ERROR
3954: --RAISE ERROR
3955: FND_MESSAGE.SET_NAME('CS', 'CS_CHG_INVALID_TXN_BILLING_TYP');
3956: FND_MESSAGE.SET_TOKEN('TXN_BILLING_TYPE_ID', pv_cost_rec.txn_billing_type_id);
3957: FND_MSG_PUB.ADD;
3958: RAISE FND_API.G_EXC_ERROR;
3959: ELSE --
3960: --the ids match
3961: --assign to the out record
3962: x_cost_rec.txn_billing_type_id := pv_cost_rec.txn_billing_type_id ;
4015: x_return_status => l_return_status
4016: );
4017:
4018: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4019: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4020: ELSIF l_return_status = G_RET_STS_ERROR THEN
4021: RAISE FND_API.G_EXC_ERROR;
4022: END IF;
4023:
4017:
4018: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4019: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4020: ELSIF l_return_status = G_RET_STS_ERROR THEN
4021: RAISE FND_API.G_EXC_ERROR;
4022: END IF;
4023:
4024: IF l_valid_check <> 'Y' THEN
4025: Add_Invalid_Argument_Msg(l_api_name,
4024: IF l_valid_check <> 'Y' THEN
4025: Add_Invalid_Argument_Msg(l_api_name,
4026: pv_cost_rec.unit_of_measure_code,
4027: 'Unit_of_Measure_Code');
4028: RAISE FND_API.G_EXC_ERROR;
4029:
4030: ELSE
4031: --assign to out record
4032: x_cost_rec.unit_of_measure_code := pv_cost_rec.unit_of_measure_code;
4044:
4045: --DBMS_OUTPUT.PUT_LINE('Back from GET_PRIMARY_UOM status='||l_return_status || ' l_primary_uom '||l_primary_uom);
4046:
4047: --IF l_return_status <> 'S' THEN
4048: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4049: --raise error
4050: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4051: FND_MESSAGE.SET_TOKEN('INV_ID', x_cost_rec.inventory_item_id);
4052: FND_MSG_PUB.ADD;
4049: --raise error
4050: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4051: FND_MESSAGE.SET_TOKEN('INV_ID', x_cost_rec.inventory_item_id);
4052: FND_MSG_PUB.ADD;
4053: RAISE FND_API.G_EXC_ERROR;
4054: END IF;
4055:
4056: --assign to out record
4057: x_cost_rec.unit_of_measure_code := l_primary_uom;
4058:
4059: END IF;
4060: ELSIF p_validation_mode = 'U' THEN
4061:
4062: IF pv_cost_rec.unit_of_measure_code <> FND_API.G_MISS_CHAR AND
4063: pv_cost_rec.unit_of_measure_code IS NOT NULL
4064:
4065: then
4066:
4074: x_return_status => l_return_status
4075: );
4076:
4077: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4078: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4079: ELSIF l_return_status = G_RET_STS_ERROR THEN
4080: RAISE FND_API.G_EXC_ERROR;
4081: END IF;
4082:
4076:
4077: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4078: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4079: ELSIF l_return_status = G_RET_STS_ERROR THEN
4080: RAISE FND_API.G_EXC_ERROR;
4081: END IF;
4082:
4083: IF l_valid_check <> 'Y' THEN
4084: Add_Invalid_Argument_Msg(l_api_name,
4083: IF l_valid_check <> 'Y' THEN
4084: Add_Invalid_Argument_Msg(l_api_name,
4085: pv_cost_rec.unit_of_measure_code,
4086: 'Unit_of_Measure_Code');
4087: RAISE FND_API.G_EXC_ERROR;
4088:
4089: ELSE
4090: --assign to out record
4091: x_cost_rec.unit_of_measure_code := pv_cost_rec.unit_of_measure_code;
4103:
4104:
4105:
4106: --IF l_return_status <> 'S' THEN
4107: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
4108: --raise error
4109: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4110: FND_MESSAGE.SET_TOKEN('INV_ID', x_cost_rec.inventory_item_id);
4111: FND_MSG_PUB.ADD;
4108: --raise error
4109: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4110: FND_MESSAGE.SET_TOKEN('INV_ID', x_cost_rec.inventory_item_id);
4111: FND_MSG_PUB.ADD;
4112: RAISE FND_API.G_EXC_ERROR;
4113: end if;
4114:
4115: --assign to out record
4116: x_cost_rec.unit_of_measure_code := l_primary_uom;
4147: x_return_status => l_return_status
4148: );
4149:
4150: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4151: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4152: ELSIF l_return_status = G_RET_STS_ERROR THEN
4153: RAISE FND_API.G_EXC_ERROR;
4154: END IF;
4155:
4149:
4150: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4151: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4152: ELSIF l_return_status = G_RET_STS_ERROR THEN
4153: RAISE FND_API.G_EXC_ERROR;
4154: END IF;
4155:
4156: IF l_valid_check <> 'Y' THEN
4157: Add_Invalid_Argument_Msg(l_api_name,
4156: IF l_valid_check <> 'Y' THEN
4157: Add_Invalid_Argument_Msg(l_api_name,
4158: pv_cost_rec.currency_code,
4159: 'Currency Code');
4160: RAISE FND_API.G_EXC_ERROR;
4161:
4162: ELSE
4163: --assign to out record
4164: x_cost_rec.currency_code := pv_cost_rec.currency_code;
4177:
4178: --DBMS_OUTPUT.PUT_LINE('Back from GET_PRIMARY_UOM status='||l_return_status || ' l_primary_uom '||l_primary_uom);
4179:
4180: --IF l_return_status <> 'S' THEN
4181: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4182: --raise error
4183: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4184: FND_MESSAGE.SET_TOKEN('INV_ID', pv_cost_rec.unit_of_measure_code);
4185: FND_MSG_PUB.ADD;
4182: --raise error
4183: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4184: FND_MESSAGE.SET_TOKEN('INV_ID', pv_cost_rec.unit_of_measure_code);
4185: FND_MSG_PUB.ADD;
4186: RAISE FND_API.G_EXC_ERROR;
4187: END IF;
4188:
4189: --assign to out record
4190: x_cost_rec.currency_code := l_currency_code;
4191:
4192: END IF;
4193: ELSIF p_validation_mode = 'U' THEN
4194:
4195: IF pv_cost_rec.currency_code<> FND_API.G_MISS_CHAR AND
4196: pv_cost_rec.currency_code IS NOT NULL
4197:
4198: then
4199:
4206: x_return_status => l_return_status
4207: );
4208:
4209: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4210: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4211: ELSIF l_return_status = G_RET_STS_ERROR THEN
4212: RAISE FND_API.G_EXC_ERROR;
4213: END IF;
4214:
4208:
4209: IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
4210: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4211: ELSIF l_return_status = G_RET_STS_ERROR THEN
4212: RAISE FND_API.G_EXC_ERROR;
4213: END IF;
4214:
4215: IF l_valid_check <> 'Y' THEN
4216: Add_Invalid_Argument_Msg(l_api_name,
4215: IF l_valid_check <> 'Y' THEN
4216: Add_Invalid_Argument_Msg(l_api_name,
4217: pv_cost_rec.currency_code,
4218: 'Currency Code');
4219: RAISE FND_API.G_EXC_ERROR;
4220:
4221: ELSE
4222: --assign to out record
4223: x_cost_rec.currency_code := pv_cost_rec.currency_code;
4236:
4237:
4238:
4239:
4240: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4241: --raise error
4242: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4243: FND_MESSAGE.SET_TOKEN('INV_ID', pv_cost_rec.unit_of_measure_code);
4244: FND_MSG_PUB.ADD;
4241: --raise error
4242: FND_MESSAGE.SET_NAME('CS', 'CS_COST_GET_PRIMARY_UOM_ERROR');
4243: FND_MESSAGE.SET_TOKEN('INV_ID', pv_cost_rec.unit_of_measure_code);
4244: FND_MSG_PUB.ADD;
4245: RAISE FND_API.G_EXC_ERROR;
4246: END IF;
4247:
4248: --assign to out record
4249: x_cost_rec.currency_code := l_currency_code;
4264:
4265: EXCEPTION
4266:
4267:
4268: WHEN FND_API.G_EXC_ERROR THEN
4269: x_return_status := FND_API.G_RET_STS_ERROR;
4270:
4271: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4272: p_data => x_msg_data,
4265: EXCEPTION
4266:
4267:
4268: WHEN FND_API.G_EXC_ERROR THEN
4269: x_return_status := FND_API.G_RET_STS_ERROR;
4270:
4271: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4272: p_data => x_msg_data,
4273: p_encoded => FND_API.G_FALSE) ;
4269: x_return_status := FND_API.G_RET_STS_ERROR;
4270:
4271: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4272: p_data => x_msg_data,
4273: p_encoded => FND_API.G_FALSE) ;
4274: WHEN OTHERS THEN
4275: x_return_status := FND_API.G_RET_STS_ERROR;
4276: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4277: p_data => x_msg_data,
4271: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4272: p_data => x_msg_data,
4273: p_encoded => FND_API.G_FALSE) ;
4274: WHEN OTHERS THEN
4275: x_return_status := FND_API.G_RET_STS_ERROR;
4276: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4277: p_data => x_msg_data,
4278: p_encoded => FND_API.G_FALSE) ;
4279:
4274: WHEN OTHERS THEN
4275: x_return_status := FND_API.G_RET_STS_ERROR;
4276: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
4277: p_data => x_msg_data,
4278: p_encoded => FND_API.G_FALSE) ;
4279:
4280:
4281:
4282:
4322: l_dummy VARCHAR2(1);
4323:
4324: BEGIN
4325:
4326: x_return_status := FND_API.G_RET_STS_SUCCESS;
4327:
4328: BEGIN
4329: IF p_user_id = -1 then
4330: SELECT 'x' into l_dummy
4339: END IF;
4340:
4341: EXCEPTION
4342: WHEN NO_DATA_FOUND THEN
4343: x_return_status := FND_API.G_RET_STS_ERROR;
4344: Add_Invalid_Argument_Msg(p_token_an => p_api_name,
4345: p_token_v => TO_CHAR(p_user_id),
4346: p_token_p => 'p_user_id');
4347: return;
4355: AND user_id = p_user_id;
4356:
4357: EXCEPTION
4358: WHEN NO_DATA_FOUND THEN
4359: x_return_status := FND_API.G_RET_STS_ERROR;
4360: Add_Invalid_Argument_Msg(p_token_an => p_api_name,
4361: p_token_v => TO_CHAR(p_login_id),
4362: p_token_p => 'p_user_login');
4363: END;
4411: **************************************************/
4412: FUNCTION Check_For_Miss ( p_param IN NUMBER ) RETURN NUMBER IS
4413: BEGIN
4414:
4415: IF p_param = FND_API.G_MISS_NUM THEN
4416: RETURN NULL ;
4417: ELSE
4418: RETURN p_param ;
4419: END IF ;
4421:
4422:
4423: FUNCTION Check_For_Miss ( p_param IN VARCHAR2 ) RETURN VARCHAR2 IS
4424: BEGIN
4425: IF p_param = FND_API.G_MISS_CHAR THEN
4426: RETURN NULL ;
4427: ELSE
4428: RETURN p_param ;
4429: END IF ;
4431:
4432:
4433: FUNCTION Check_For_Miss ( p_param IN DATE ) RETURN DATE IS
4434: BEGIN
4435: IF p_param = FND_API.G_MISS_DATE THEN
4436: RETURN NULL ;
4437: ELSE
4438: RETURN p_param ;
4439: END IF ;
4467: ----------------+------------+--------------------------------------------------
4468: PROCEDURE Purge_Cost
4469: (
4470: p_api_version_number IN NUMBER := 1.0
4471: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
4472: , p_commit IN VARCHAR2 := FND_API.G_FALSE
4473: , p_object_type IN VARCHAR2
4474: , p_processing_set_id IN NUMBER
4475: , x_return_status OUT NOCOPY VARCHAR2
4468: PROCEDURE Purge_Cost
4469: (
4470: p_api_version_number IN NUMBER := 1.0
4471: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
4472: , p_commit IN VARCHAR2 := FND_API.G_FALSE
4473: , p_object_type IN VARCHAR2
4474: , p_processing_set_id IN NUMBER
4475: , x_return_status OUT NOCOPY VARCHAR2
4476: , x_msg_count OUT NOCOPY NUMBER
4486:
4487: l_row_count NUMBER := 0;
4488:
4489: BEGIN
4490: x_return_status := FND_API.G_RET_STS_SUCCESS;
4491:
4492: IF FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level
4493: THEN
4494: FND_LOG.String
4528: , 'p_processing_set_id:' || p_processing_set_id
4529: );
4530: END IF ;
4531:
4532: IF NOT FND_API.Compatible_API_Call
4533: (
4534: L_API_VERSION
4535: , p_api_version_number
4536: , L_API_NAME
4541: (
4542: p_count => x_msg_count
4543: , p_data => x_msg_data
4544: );
4545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4546: END IF ;
4547:
4548: IF FND_API.to_Boolean(p_init_msg_list)
4549: THEN
4544: );
4545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4546: END IF ;
4547:
4548: IF FND_API.to_Boolean(p_init_msg_list)
4549: THEN
4550: FND_MSG_PUB.initialize;
4551: END IF ;
4552:
4571: FND_MESSAGE.Set_Token('PARAM', 'p_object_type');
4572: FND_MESSAGE.Set_Token('CURRVAL', p_object_type);
4573: FND_MSG_PUB.ADD;
4574:
4575: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4576: END IF;
4577:
4578: ---
4579:
4594: FND_MESSAGE.Set_Token('PARAM', 'p_processing_set_id');
4595: FND_MESSAGE.Set_Token('CURRVAL', NVL(to_char(p_processing_set_id),'NULL'));
4596: FND_MSG_PUB.ADD;
4597:
4598: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4599: END IF;
4600:
4601: ------------------------------------------------------------------------------
4602: -- Actual Logic starts below:
4654: );
4655: END IF ;
4656:
4657: EXCEPTION
4658: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4659: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4660:
4661: IF FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level
4662: THEN
4655: END IF ;
4656:
4657: EXCEPTION
4658: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4659: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4660:
4661: IF FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level
4662: THEN
4663: FND_LOG.String
4663: FND_LOG.String
4664: (
4665: FND_LOG.level_unexpected
4666: , L_LOG_MODULE || 'unexpected_error'
4667: , 'Inside WHEN FND_API.G_EXC_UNEXPECTED_ERROR of ' || L_API_NAME_FULL
4668: );
4669: END IF ;
4670:
4671: WHEN OTHERS THEN
4668: );
4669: END IF ;
4670:
4671: WHEN OTHERS THEN
4672: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4673: FND_MESSAGE.Set_Name('CS', 'CS_COST_LINE_DEL_FAIL');
4674: FND_MESSAGE.Set_Token('API_NAME', L_API_NAME_FULL);
4675: FND_MESSAGE.Set_Token('ERROR', SQLERRM);
4676: FND_MSG_PUB.ADD;