110: -- SAVEPOINT Get_TotalEstCosts_Pvt;
111:
112: -- Standard call to check for call compatibility.
113:
114: IF NOT FND_API.Compatible_API_Call(l_api_version,
115: p_api_version,
116: l_api_name,
117: G_PKG_NAME)
118: THEN
115: p_api_version,
116: l_api_name,
117: G_PKG_NAME)
118: THEN
119: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
120: END IF;
121:
122: -- Initialize message list if p_init_msg_list is set to TRUE.
123:
120: END IF;
121:
122: -- Initialize message list if p_init_msg_list is set to TRUE.
123:
124: IF FND_API.to_Boolean(p_init_msg_list)
125: THEN
126: FND_MSG_PUB.initialize;
127: END IF;
128:
127: END IF;
128:
129: -- Initialize API return status to success
130:
131: x_return_status := FND_API.G_RET_STS_SUCCESS;
132:
133: --
134: -- Begin API Body
135: --
156: END IF;
157: -- ELSE
158: FND_MSG_PUB.ADD;
159: --END IF;
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
162:
163: -- Raise warning if no estimate lines are found.
164:
177: END IF;
178: -- ELSE
179: FND_MSG_PUB.ADD;
180: --END IF;
181: RAISE FND_API.G_EXC_ERROR;
182: END IF;
183: CLOSE cur_getEstLineCount;
184:
185: -- Raise warning if any item cost is null
196: END IF;
197: -- ELSE
198: FND_MSG_PUB.ADD;
199: --END IF;
200: RAISE FND_API.G_EXC_ERROR;
201: END IF;
202: CLOSE cur_getNullCostRows;
203:
204: -- Loop through the cursor and get the MLE lines cost.
244: --
245:
246: -- Standard check of p_commit.
247:
248: IF FND_API.To_Boolean(p_commit)
249: THEN
250: COMMIT WORK;
251: END IF;
252:
253: -- Standard call to get message count and IF count is get message info.
254:
255: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
256: EXCEPTION
257: WHEN FND_API.G_EXC_ERROR THEN
258:
259: --ROLLBACK TO Get_TotalEstCosts_Pvt;
260:
261: x_return_status := FND_API.G_RET_STS_ERROR;
257: WHEN FND_API.G_EXC_ERROR THEN
258:
259: --ROLLBACK TO Get_TotalEstCosts_Pvt;
260:
261: x_return_status := FND_API.G_RET_STS_ERROR;
262: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
263: p_data => x_msg_data,
264: p_encoded => 'F');
265: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
269: 'EXC_ERROR['
270: || x_msg_data
271: || ']');
272: END IF;
273: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
274:
275: --ROLLBACK TO Get_TotalEstCosts_Pvt;
276:
277: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
273: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
274:
275: --ROLLBACK TO Get_TotalEstCosts_Pvt;
276:
277: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
278: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
279: p_data => x_msg_data,
280: p_encoded => 'F');
281: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
289: WHEN OTHERS THEN
290:
291: --ROLLBACK TO Get_TotalEstCosts_Pvt;
292:
293: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
294: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
295: THEN
296: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
297: END IF;
391: --SAVEPOINT Get_TotalEstCharges_Pvt;
392:
393: -- Standard call to check for call compatibility.
394:
395: IF NOT FND_API.Compatible_API_Call(l_api_version,
396: p_api_version,
397: l_api_name,
398: G_PKG_NAME)
399: THEN
396: p_api_version,
397: l_api_name,
398: G_PKG_NAME)
399: THEN
400: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
401: END IF;
402:
403: -- Initialize message list if p_init_msg_list is set to TRUE.
404:
401: END IF;
402:
403: -- Initialize message list if p_init_msg_list is set to TRUE.
404:
405: IF FND_API.to_Boolean(p_init_msg_list)
406: THEN
407: FND_MSG_PUB.initialize;
408: END IF;
409:
408: END IF;
409:
410: -- Initialize API return status to success
411:
412: x_return_status := FND_API.G_RET_STS_SUCCESS;
413:
414: --
415: -- Begin API Body
416: --
440: END IF;
441: --ELSE
442: FND_MSG_PUB.ADD;
443: -- END IF;
444: RAISE FND_API.G_EXC_ERROR;
445: END IF;
446: CLOSE cur_getEstLineCount;
447:
448: --Get MLE charge amount
485: --
486:
487: -- Standard check of p_commit.
488:
489: IF FND_API.To_Boolean(p_commit)
490: THEN
491: COMMIT WORK;
492: END IF;
493:
494: -- Standard call to get message count and IF count is get message info.
495:
496: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
497: EXCEPTION
498: WHEN FND_API.G_EXC_ERROR THEN
499:
500: -- ROLLBACK TO Get_TotalEstCharges_Pvt;
501:
502: x_return_status := FND_API.G_RET_STS_ERROR;
498: WHEN FND_API.G_EXC_ERROR THEN
499:
500: -- ROLLBACK TO Get_TotalEstCharges_Pvt;
501:
502: x_return_status := FND_API.G_RET_STS_ERROR;
503: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
504: p_data => x_msg_data,
505: p_encoded => 'F');
506: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
510: 'EXC_ERROR['
511: || x_msg_data
512: || ']');
513: END IF;
514: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
515:
516: --ROLLBACK TO Get_TotalEstCharges_Pvt;
517:
518: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
514: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
515:
516: --ROLLBACK TO Get_TotalEstCharges_Pvt;
517:
518: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
519: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
520: p_data => x_msg_data,
521: p_encoded => 'F');
522: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
530: WHEN OTHERS THEN
531:
532: --ROLLBACK TO Get_TotalEstCharges_Pvt;
533:
534: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
535: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
536: THEN
537: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
538: END IF;
626: -- SAVEPOINT Compare_EstChargesAndCosts_Pvt;
627:
628: -- Standard call to check for call compatibility.
629:
630: IF NOT FND_API.Compatible_API_Call(l_api_version,
631: p_api_version,
632: l_api_name,
633: G_PKG_NAME)
634: THEN
631: p_api_version,
632: l_api_name,
633: G_PKG_NAME)
634: THEN
635: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
636: END IF;
637:
638: -- Initialize message list if p_init_msg_list is set to TRUE.
639:
636: END IF;
637:
638: -- Initialize message list if p_init_msg_list is set to TRUE.
639:
640: IF FND_API.to_Boolean(p_init_msg_list)
641: THEN
642: FND_MSG_PUB.initialize;
643: END IF;
644:
643: END IF;
644:
645: -- Initialize API return status to success
646:
647: x_return_status := FND_API.G_RET_STS_SUCCESS;
648:
649: --
650: -- Begin API Body
651: --
674: x_msg_data => x_msg_data);
675:
676: -- Throw exception if API fails.
677:
678: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
679: THEN
680: RAISE FND_API.G_EXC_ERROR;
681: END IF;
682:
676: -- Throw exception if API fails.
677:
678: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
679: THEN
680: RAISE FND_API.G_EXC_ERROR;
681: END IF;
682:
683: -- Get Costs for the estimate line
684:
695: x_msg_data => x_msg_data);
696:
697: -- Throw exception if API fails.
698:
699: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
700: THEN
701: RAISE FND_API.G_EXC_ERROR;
702: END IF;
703:
697: -- Throw exception if API fails.
698:
699: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
700: THEN
701: RAISE FND_API.G_EXC_ERROR;
702: END IF;
703:
704: -- Throw exception if charge and cost currency codes are different.
705:
712: END IF;
713: --ELSE
714: FND_MSG_PUB.ADD;
715: -- END IF;
716: RAISE FND_API.G_EXC_ERROR;
717: END IF;
718:
719: --Compare charges and costs amount and return the profit and percent profit.
720:
731: x_msg_data => x_msg_data);
732:
733: --Throw exception if API fails.
734:
735: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
736: THEN
737: RAISE FND_API.G_EXC_ERROR;
738: END IF;
739: IF (FND_LOG.LEVEL_PROCEDURE >= Fnd_Log.G_Current_Runtime_Level)
733: --Throw exception if API fails.
734:
735: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
736: THEN
737: RAISE FND_API.G_EXC_ERROR;
738: END IF;
739: IF (FND_LOG.LEVEL_PROCEDURE >= Fnd_Log.G_Current_Runtime_Level)
740: THEN
741: FND_LOG.STRING(Fnd_Log.Level_Procedure,
748: --
749:
750: -- Standard check of p_commit.
751:
752: IF FND_API.To_Boolean(p_commit)
753: THEN
754: COMMIT WORK;
755: END IF;
756:
757: -- Standard call to get message count and IF count is get message info.
758:
759: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
760: EXCEPTION
761: WHEN FND_API.G_EXC_ERROR THEN
762:
763: --ROLLBACK TO Compare_EstChargesAndCosts_Pvt;
764:
765: x_return_status := FND_API.G_RET_STS_ERROR;
761: WHEN FND_API.G_EXC_ERROR THEN
762:
763: --ROLLBACK TO Compare_EstChargesAndCosts_Pvt;
764:
765: x_return_status := FND_API.G_RET_STS_ERROR;
766: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
767: p_data => x_msg_data,
768: p_encoded => 'F');
769: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
773: 'EXC_ERROR['
774: || x_msg_data
775: || ']');
776: END IF;
777: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
778:
779: -- ROLLBACK TO Compare_EstChargesAndCosts_Pvt;
780:
781: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
777: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
778:
779: -- ROLLBACK TO Compare_EstChargesAndCosts_Pvt;
780:
781: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
782: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
783: p_data => x_msg_data,
784: p_encoded => 'F');
785: IF (Fnd_Log.Level_Exception >= Fnd_Log.G_Current_Runtime_Level)
793: WHEN OTHERS THEN
794:
795: --ROLLBACK TO Compare_EstChargesAndCosts_Pvt;
796:
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
798: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
799: THEN
800: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
801: END IF;
912: SAVEPOINT Get_InvItemCostAnalysis_Pvt;
913:
914: -- Standard call to check for call compatibility.
915:
916: IF NOT FND_API.Compatible_API_Call(l_api_version,
917: p_api_version,
918: l_api_name,
919: G_PKG_NAME)
920: THEN
917: p_api_version,
918: l_api_name,
919: G_PKG_NAME)
920: THEN
921: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922: END IF;
923:
924: -- Initialize message list if p_init_msg_list is set to TRUE.
925:
922: END IF;
923:
924: -- Initialize message list if p_init_msg_list is set to TRUE.
925:
926: IF FND_API.to_Boolean(p_init_msg_list)
927: THEN
928: FND_MSG_PUB.initialize;
929: END IF;
930:
929: END IF;
930:
931: -- Initialize API return status to success
932:
933: x_return_status := FND_API.G_RET_STS_SUCCESS;
934:
935: --
936: -- Begin API Body
937: --
962: END IF;
963: -- ELSE
964: FND_MSG_PUB.ADD;
965: --END IF;
966: RAISE FND_API.G_EXC_ERROR;
967: END IF;
968: CLOSE cur_getItemCost;
969:
970: -- Get primary uom code from inventory for the item.
981: END IF;
982: -- ELSE
983: FND_MSG_PUB.ADD;
984: --END IF;
985: RAISE FND_API.G_EXC_ERROR;
986: END IF;
987: CLOSE cur_getPrimaryUomCode;
988:
989: --Raise exception if the charge line UOM is different from item primary uom
996: END IF;
997: -- ELSE
998: FND_MSG_PUB.ADD;
999: --END IF;
1000: RAISE FND_API.G_EXC_ERROR;
1001: END IF;
1002: l_cost_currency_code := CSD_COST_ANALYSIS_UTIL.get_GLCurrencyCode(p_organization_id);
1003:
1004: --do the conversion if currency codes differ.
1025: END IF;
1026:
1027: -- Throw exception if API fails.
1028:
1029: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1030: THEN
1031: RAISE FND_API.G_EXC_ERROR;
1032: END IF;
1033: END IF;
1027: -- Throw exception if API fails.
1028:
1029: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1030: THEN
1031: RAISE FND_API.G_EXC_ERROR;
1032: END IF;
1033: END IF;
1034: IF (Fnd_Log.Level_Procedure >= Fnd_Log.G_Current_Runtime_Level)
1035: THEN
1043: --
1044:
1045: -- Standard check of p_commit.
1046:
1047: IF FND_API.To_Boolean(p_commit)
1048: THEN
1049: COMMIT WORK;
1050: END IF;
1051:
1052: -- Standard call to get message count and IF count is get message info.
1053:
1054: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1055: EXCEPTION
1056: WHEN FND_API.G_EXC_ERROR THEN
1057: ROLLBACK TO Get_InvItemCostAnalysis_Pvt;
1058: x_return_status := FND_API.G_RET_STS_ERROR;
1059: x_item_cost := NULL;
1060: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1054: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1055: EXCEPTION
1056: WHEN FND_API.G_EXC_ERROR THEN
1057: ROLLBACK TO Get_InvItemCostAnalysis_Pvt;
1058: x_return_status := FND_API.G_RET_STS_ERROR;
1059: x_item_cost := NULL;
1060: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1061: p_data => x_msg_data,
1062: p_encoded => 'F');
1067: 'EXC_ERROR['
1068: || x_msg_data
1069: || ']');
1070: END IF;
1071: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1072: ROLLBACK TO Get_InvItemCostAnalysis_Pvt;
1073: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1074: x_item_cost := NULL;
1075: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1069: || ']');
1070: END IF;
1071: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1072: ROLLBACK TO Get_InvItemCostAnalysis_Pvt;
1073: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1074: x_item_cost := NULL;
1075: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1076: p_data => x_msg_data,
1077: p_encoded => 'F');
1084: || ']');
1085: END IF;
1086: WHEN OTHERS THEN
1087: ROLLBACK TO Get_InvItemCostAnalysis_Pvt;
1088: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1089: x_item_cost := NULL;
1090: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1091: THEN
1092: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
1192: l_res_uom_code VARCHAR2(30);
1193: p_api_version CONSTANT NUMBER := 1.0;
1194: p_commit CONSTANT VARCHAR2(1) := 'F';
1195: p_init_msg_list CONSTANT VARCHAR2(1) := 'T';
1196: p_validation_level CONSTANT NUMBER :=fnd_api.g_valid_level_full;
1197: -- Variable used in FND log
1198:
1199: l_stat_level number := FND_LOG.LEVEL_STATEMENT;
1200: l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
1206:
1207: BEGIN
1208: -- Initialize API return status to success
1209:
1210: x_return_status := FND_API.G_RET_STS_SUCCESS;
1211:
1212: --
1213: -- Begin API Body
1214: --
1250: END IF;
1251:
1252: FND_MSG_PUB.ADD;
1253:
1254: RAISE FND_API.G_EXC_ERROR;
1255: END IF;
1256:
1257: OPEN cur_getResCost(p_bom_resource_id, p_organization_id);
1258: FETCH cur_getResCost INTO l_item_cost;
1285: END IF;
1286: -- ELSE
1287: FND_MSG_PUB.ADD;
1288: --END IF;
1289: RAISE FND_API.G_EXC_ERROR;
1290: END IF;
1291: CLOSE cur_getItemCost;
1292: END IF;
1293: l_cost_currency_code := CSD_COST_ANALYSIS_UTIL.get_GLCurrencyCode(p_organization_id);
1316: END IF;
1317:
1318: -- Throw exception if API fails.
1319:
1320: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1321: THEN
1322: RAISE FND_API.G_EXC_ERROR;
1323: END IF;
1324: END IF;
1318: -- Throw exception if API fails.
1319:
1320: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1321: THEN
1322: RAISE FND_API.G_EXC_ERROR;
1323: END IF;
1324: END IF;
1325: IF (Fnd_Log.Level_Procedure >= Fnd_Log.G_Current_Runtime_Level)
1326: THEN
1336: -- Standard call to get message count and IF count is get message info.
1337:
1338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1339: EXCEPTION
1340: WHEN FND_API.G_EXC_ERROR THEN
1341: x_return_status := FND_API.G_RET_STS_ERROR;
1342: x_item_cost := NULL;
1343: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1344: p_data => x_msg_data,
1337:
1338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1339: EXCEPTION
1340: WHEN FND_API.G_EXC_ERROR THEN
1341: x_return_status := FND_API.G_RET_STS_ERROR;
1342: x_item_cost := NULL;
1343: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1344: p_data => x_msg_data,
1345: p_encoded => 'F');
1350: 'EXC_ERROR['
1351: || x_msg_data
1352: || ']');
1353: END IF;
1354: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1355:
1356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1357: x_item_cost := NULL;
1358: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1352: || ']');
1353: END IF;
1354: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1355:
1356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1357: x_item_cost := NULL;
1358: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1359: p_data => x_msg_data,
1360: p_encoded => 'F');
1366: || x_msg_data
1367: || ']');
1368: END IF;
1369: WHEN OTHERS THEN
1370: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1371: x_item_cost := NULL;
1372: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1373: THEN
1374: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);