40:
41: -- Global CONSTANTS
42: G_PKG_NAME CONSTANT VARCHAR2(30) := 'AMS_APPROVERS_PVT';
43:
44: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
45: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
46: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
47:
48: FUNCTION compare_columns(
41: -- Global CONSTANTS
42: G_PKG_NAME CONSTANT VARCHAR2(30) := 'AMS_APPROVERS_PVT';
43:
44: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
45: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
46: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
47:
48: FUNCTION compare_columns(
49: p_approvers_rec IN Approvers_Rec_Type
42: G_PKG_NAME CONSTANT VARCHAR2(30) := 'AMS_APPROVERS_PVT';
43:
44: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
45: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
46: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
47:
48: FUNCTION compare_columns(
49: p_approvers_rec IN Approvers_Rec_Type
50: ) RETURN VARCHAR2; -- FND_API.g_true/g_false
155:
156: Ams_Utility_Pvt.debug_message (l_full_name || ': Start');
157: END IF;
158: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
159: Fnd_Msg_Pub.initialize;
160: END IF;
161: IF NOT Fnd_Api.compatible_api_call (
162: L_API_VERSION,
163: p_api_version,
248: -- Standard check of p_commit.
249: IF Fnd_Api.To_Boolean ( p_commit ) THEN
250: COMMIT WORK;
251: END IF;
252: Fnd_Msg_Pub.count_and_get(
253: p_encoded => Fnd_Api.g_false,
254: p_count => x_msg_count,
255: p_data => x_msg_data
256: );
263: EXCEPTION
264: WHEN Fnd_Api.g_exc_error THEN
265: ROLLBACK TO Create_Approvers;
266: x_return_status := Fnd_Api.g_ret_sts_error;
267: Fnd_Msg_Pub.count_and_get(
268: p_encoded => Fnd_Api.g_false,
269: p_count => x_msg_count,
270: p_data => x_msg_data
271: );
271: );
272: WHEN Fnd_Api.g_exc_unexpected_error THEN
273: ROLLBACK TO Create_Approvers;
274: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
275: Fnd_Msg_Pub.count_and_get (
276: p_encoded => Fnd_Api.g_false,
277: p_count => x_msg_count,
278: p_data => x_msg_data
279: );
279: );
280: WHEN OTHERS THEN
281: ROLLBACK TO Create_Approvers;
282: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
283: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
284: THEN
285: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
286: END IF;
287: Fnd_Msg_Pub.count_and_get (
281: ROLLBACK TO Create_Approvers;
282: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
283: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
284: THEN
285: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
286: END IF;
287: Fnd_Msg_Pub.count_and_get (
288: p_encoded => Fnd_Api.g_false,
289: p_count => x_msg_count,
283: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
284: THEN
285: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
286: END IF;
287: Fnd_Msg_Pub.count_and_get (
288: p_encoded => Fnd_Api.g_false,
289: p_count => x_msg_count,
290: p_data => x_msg_data
291: );
334:
335: Ams_Utility_Pvt.debug_message (l_full_name || ': Start');
336: END IF;
337: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
338: Fnd_Msg_Pub.initialize;
339: END IF;
340: IF NOT Fnd_Api.compatible_api_call(
341: l_api_version,
342: p_api_version,
355: -- replace g_miss_char/num/date with current column values
356: Complete_approvers_Rec(p_approvers_rec,l_approvers_rec);
357: IF l_approvers_rec.seeded_flag = 'Y' THEN
358: IF compare_columns(l_approvers_rec) = Fnd_Api.g_false THEN
359: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
360: Fnd_Message.set_name ('AMS', 'AMS_STATUS_SEED_DATA');
361: Fnd_Msg_Pub.ADD;
362: END IF;
363: RAISE Fnd_Api.g_exc_error;
357: IF l_approvers_rec.seeded_flag = 'Y' THEN
358: IF compare_columns(l_approvers_rec) = Fnd_Api.g_false THEN
359: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
360: Fnd_Message.set_name ('AMS', 'AMS_STATUS_SEED_DATA');
361: Fnd_Msg_Pub.ADD;
362: END IF;
363: RAISE Fnd_Api.g_exc_error;
364: END IF;
365: ELSE
422: -------------------- finish --------------------------
423: IF Fnd_Api.to_boolean (p_commit) THEN
424: COMMIT;
425: END IF;
426: Fnd_Msg_Pub.count_and_get (
427: p_encoded => Fnd_Api.g_false,
428: p_count => x_msg_count,
429: p_data => x_msg_data
430: );
437: EXCEPTION
438: WHEN Fnd_Api.g_exc_error THEN
439: ROLLBACK TO Update_approvers;
440: x_return_status := Fnd_Api.g_ret_sts_error;
441: Fnd_Msg_Pub.count_and_get (
442: p_encoded => Fnd_Api.g_false,
443: p_count => x_msg_count,
444: p_data => x_msg_data
445: );
446:
447: WHEN Fnd_Api.g_exc_unexpected_error THEN
448: ROLLBACK TO Update_approvers;
449: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
450: Fnd_Msg_Pub.count_and_get (
451: p_encoded => Fnd_Api.g_false,
452: p_count => x_msg_count,
453: p_data => x_msg_data
454: );
455:
456: WHEN OTHERS THEN
457: ROLLBACK TO Update_approvers;
458: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
459: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
460: THEN
461: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
462: END IF;
463: Fnd_Msg_Pub.count_and_get (
457: ROLLBACK TO Update_approvers;
458: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
459: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
460: THEN
461: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
462: END IF;
463: Fnd_Msg_Pub.count_and_get (
464: p_encoded => Fnd_Api.g_false,
465: p_count => x_msg_count,
459: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
460: THEN
461: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
462: END IF;
463: Fnd_Msg_Pub.count_and_get (
464: p_encoded => Fnd_Api.g_false,
465: p_count => x_msg_count,
466: p_data => x_msg_data
467: );
517: OPEN c_approvers;
518: FETCH c_approvers INTO l_approvers_rec;
519: IF c_approvers%NOTFOUND THEN
520: CLOSE c_approvers;
521: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
522: Fnd_Message.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
523: Fnd_Msg_Pub.ADD;
524: END IF;
525: RAISE Fnd_Api.g_exc_error;
519: IF c_approvers%NOTFOUND THEN
520: CLOSE c_approvers;
521: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
522: Fnd_Message.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
523: Fnd_Msg_Pub.ADD;
524: END IF;
525: RAISE Fnd_Api.g_exc_error;
526: END IF;
527: CLOSE c_approvers;
531:
532: Ams_Utility_Pvt.debug_message (l_full_name || ': Start');
533: END IF;
534: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
535: Fnd_Msg_Pub.initialize;
536: END IF;
537: IF NOT Fnd_Api.compatible_api_call (
538: l_api_version,
539: p_api_version,
553: IF l_approvers_rec.seeded_flag='N'
554: THEN
555: Ams_Approvers_Pkg.DELETE_ROW (p_approver_id);
556: ELSE
557: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
558: Fnd_Message.set_name ('AMS', 'AMS_API_SEED_DATA');
559: Fnd_Msg_Pub.ADD;
560: RAISE Fnd_Api.g_exc_error;
561: END IF;
555: Ams_Approvers_Pkg.DELETE_ROW (p_approver_id);
556: ELSE
557: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
558: Fnd_Message.set_name ('AMS', 'AMS_API_SEED_DATA');
559: Fnd_Msg_Pub.ADD;
560: RAISE Fnd_Api.g_exc_error;
561: END IF;
562: END IF;
563: -------------------- finish --------------------------
563: -------------------- finish --------------------------
564: IF Fnd_Api.to_boolean (p_commit) THEN
565: COMMIT;
566: END IF;
567: Fnd_Msg_Pub.count_and_get (
568: p_encoded => Fnd_Api.g_false,
569: p_count => x_msg_count,
570: p_data => x_msg_data
571: );
578: EXCEPTION
579: WHEN Fnd_Api.g_exc_error THEN
580: ROLLBACK TO Delete_approvers;
581: x_return_status := Fnd_Api.g_ret_sts_error;
582: Fnd_Msg_Pub.count_and_get (
583: p_encoded => Fnd_Api.g_false,
584: p_count => x_msg_count,
585: p_data => x_msg_data
586: );
587:
588: WHEN Fnd_Api.g_exc_unexpected_error THEN
589: ROLLBACK TO Delete_approvers;
590: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
591: Fnd_Msg_Pub.count_and_get (
592: p_encoded => Fnd_Api.g_false,
593: p_count => x_msg_count,
594: p_data => x_msg_data
595: );
596:
597: WHEN OTHERS THEN
598: ROLLBACK TO Delete_approvers;
599: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
600: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
601: THEN
602: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
603: END IF;
604: Fnd_Msg_Pub.count_and_get (
598: ROLLBACK TO Delete_approvers;
599: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
600: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
601: THEN
602: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
603: END IF;
604: Fnd_Msg_Pub.count_and_get (
605: p_encoded => Fnd_Api.g_false,
606: p_count => x_msg_count,
600: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
601: THEN
602: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
603: END IF;
604: Fnd_Msg_Pub.count_and_get (
605: p_encoded => Fnd_Api.g_false,
606: p_count => x_msg_count,
607: p_data => x_msg_data
608: );
681:
682: Ams_Utility_Pvt.debug_message (l_full_name || ': Start');
683: END IF;
684: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
685: Fnd_Msg_Pub.initialize;
686: END IF;
687: IF NOT Fnd_Api.compatible_api_call (
688: l_api_version,
689: p_api_version,
731:
732:
733:
734: -------------------- finish --------------------------
735: Fnd_Msg_Pub.count_and_get (
736: p_encoded => Fnd_Api.g_false,
737: p_count => x_msg_count,
738: p_data => x_msg_data
739: );
743: END IF;
744: EXCEPTION
745: WHEN Fnd_Api.g_exc_error THEN
746: x_return_status := Fnd_Api.g_ret_sts_error;
747: Fnd_Msg_Pub.count_and_get (
748: p_encoded => Fnd_Api.g_false,
749: p_count => x_msg_count,
750: p_data => x_msg_data
751: );
750: p_data => x_msg_data
751: );
752: WHEN Fnd_Api.g_exc_unexpected_error THEN
753: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
754: Fnd_Msg_Pub.count_and_get (
755: p_encoded => Fnd_Api.g_false,
756: p_count => x_msg_count,
757: p_data => x_msg_data
758: );
757: p_data => x_msg_data
758: );
759: WHEN OTHERS THEN
760: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
761: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
762: THEN
763: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
764: END IF;
765: Fnd_Msg_Pub.count_and_get (
759: WHEN OTHERS THEN
760: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
761: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
762: THEN
763: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
764: END IF;
765: Fnd_Msg_Pub.count_and_get (
766: p_encoded => Fnd_Api.g_false,
767: p_count => x_msg_count,
761: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
762: THEN
763: Fnd_Msg_Pub.add_exc_msg (g_pkg_name, l_api_name);
764: END IF;
765: Fnd_Msg_Pub.count_and_get (
766: p_encoded => Fnd_Api.g_false,
767: p_count => x_msg_count,
768: p_data => x_msg_data
769: );
831: RETURN;
832: END IF;
833: IF (p_approvers_rec.start_date_active > p_approvers_rec.end_date_active) THEN
834: --dbms_output.put_line('st > ed ');
835: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
836: Fnd_Message.set_name('AMS', 'AMS_APPR_DTL_SD_BFR_ED');
837: Fnd_Msg_Pub.ADD;
838: x_return_status := Fnd_Api.g_ret_sts_error;
839: RETURN;
833: IF (p_approvers_rec.start_date_active > p_approvers_rec.end_date_active) THEN
834: --dbms_output.put_line('st > ed ');
835: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
836: Fnd_Message.set_name('AMS', 'AMS_APPR_DTL_SD_BFR_ED');
837: Fnd_Msg_Pub.ADD;
838: x_return_status := Fnd_Api.g_ret_sts_error;
839: RETURN;
840: END IF;
841: END IF;
882: END IF;
883: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
884: IF l_start_date_active IS NOT NULL AND l_end_date_active IS NOT NULL THEN
885: IF l_start_date_active > l_end_date_active THEN
886: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
887: Fnd_Message.set_name ('AMS', 'AMS_APPR_APRVR_SD_BFR_ED');
888: Fnd_Msg_Pub.ADD;
889: END IF;
890: x_return_status := Fnd_Api.g_ret_sts_error;
884: IF l_start_date_active IS NOT NULL AND l_end_date_active IS NOT NULL THEN
885: IF l_start_date_active > l_end_date_active THEN
886: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
887: Fnd_Message.set_name ('AMS', 'AMS_APPR_APRVR_SD_BFR_ED');
888: Fnd_Msg_Pub.ADD;
889: END IF;
890: x_return_status := Fnd_Api.g_ret_sts_error;
891: RETURN;
892: END IF;
952: OPEN c_approvers;
953: FETCH c_approvers INTO l_approvers_rec;
954: IF c_approvers%NOTFOUND THEN
955: CLOSE c_approvers;
956: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
957: Fnd_Message.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
958: Fnd_Msg_Pub.ADD;
959: END IF;
960: RAISE Fnd_Api.g_exc_error;
954: IF c_approvers%NOTFOUND THEN
955: CLOSE c_approvers;
956: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
957: Fnd_Message.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
958: Fnd_Msg_Pub.ADD;
959: END IF;
960: RAISE Fnd_Api.g_exc_error;
961: END IF;
962: CLOSE c_approvers;
1154: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1155: IF p_approvers_rec.ams_approval_detail_id = NULL
1156: OR p_approvers_rec.ams_approval_detail_id = Fnd_Api.g_miss_num
1157: THEN
1158: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
1159: Fnd_Message.set_name ('AMS', 'AMS_NO_APPROVAL_DETAIL_ID');
1160: Fnd_Msg_Pub.ADD;
1161: END IF;
1162: x_return_status := Fnd_Api.g_ret_sts_error;
1156: OR p_approvers_rec.ams_approval_detail_id = Fnd_Api.g_miss_num
1157: THEN
1158: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
1159: Fnd_Message.set_name ('AMS', 'AMS_NO_APPROVAL_DETAIL_ID');
1160: Fnd_Msg_Pub.ADD;
1161: END IF;
1162: x_return_status := Fnd_Api.g_ret_sts_error;
1163: RETURN;
1164: END IF;
1169: IF (p_approvers_rec.START_DATE_ACTIVE IS NOT NULL
1170: AND p_approvers_rec.START_DATE_ACTIVE <> Fnd_Api.g_miss_date)
1171: THEN
1172: IF p_approvers_rec.START_DATE_ACTIVE < l_start_date THEN
1173: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1174: Fnd_Message.set_name('AMS', 'AMS_APPR_SD_LT_APD_SD');
1175: Fnd_Msg_Pub.ADD;
1176: END IF;
1177: x_return_status := Fnd_Api.g_ret_sts_error;
1171: THEN
1172: IF p_approvers_rec.START_DATE_ACTIVE < l_start_date THEN
1173: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1174: Fnd_Message.set_name('AMS', 'AMS_APPR_SD_LT_APD_SD');
1175: Fnd_Msg_Pub.ADD;
1176: END IF;
1177: x_return_status := Fnd_Api.g_ret_sts_error;
1178: RETURN;
1179: END IF;
1177: x_return_status := Fnd_Api.g_ret_sts_error;
1178: RETURN;
1179: END IF;
1180: IF p_approvers_rec.START_DATE_ACTIVE > l_end_date THEN
1181: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1182: Fnd_Message.set_name('AMS', 'AMS_APPR_SD_LT_APD_ED');
1183: Fnd_Msg_Pub.ADD;
1184: END IF;
1185: x_return_status := Fnd_Api.g_ret_sts_error;
1179: END IF;
1180: IF p_approvers_rec.START_DATE_ACTIVE > l_end_date THEN
1181: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1182: Fnd_Message.set_name('AMS', 'AMS_APPR_SD_LT_APD_ED');
1183: Fnd_Msg_Pub.ADD;
1184: END IF;
1185: x_return_status := Fnd_Api.g_ret_sts_error;
1186: RETURN;
1187: END IF;
1189: IF (p_approvers_rec.END_DATE_ACTIVE IS NOT NULL
1190: OR p_approvers_rec.END_DATE_ACTIVE <> Fnd_Api.g_miss_date)
1191: THEN
1192: IF p_approvers_rec.END_DATE_ACTIVE < l_start_date THEN
1193: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1194: Fnd_Message.set_name('AMS', 'AMS_APPR_ED_LT_APD_SD');
1195: Fnd_Msg_Pub.ADD;
1196: END IF;
1197: x_return_status := Fnd_Api.g_ret_sts_error;
1191: THEN
1192: IF p_approvers_rec.END_DATE_ACTIVE < l_start_date THEN
1193: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1194: Fnd_Message.set_name('AMS', 'AMS_APPR_ED_LT_APD_SD');
1195: Fnd_Msg_Pub.ADD;
1196: END IF;
1197: x_return_status := Fnd_Api.g_ret_sts_error;
1198: RETURN;
1199: END IF;
1197: x_return_status := Fnd_Api.g_ret_sts_error;
1198: RETURN;
1199: END IF;
1200: IF p_approvers_rec.END_DATE_ACTIVE > l_end_date THEN
1201: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1202: Fnd_Message.set_name('AMS', 'AMS_APPR_ED_LT_APD_ED');
1203: Fnd_Msg_Pub.ADD;
1204: END IF;
1205: x_return_status := Fnd_Api.g_ret_sts_error;
1199: END IF;
1200: IF p_approvers_rec.END_DATE_ACTIVE > l_end_date THEN
1201: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1202: Fnd_Message.set_name('AMS', 'AMS_APPR_ED_LT_APD_ED');
1203: Fnd_Msg_Pub.ADD;
1204: END IF;
1205: x_return_status := Fnd_Api.g_ret_sts_error;
1206: RETURN;
1207: END IF;
1232: );
1233: FETCH c_appr_seq_exists INTO l_dummy;
1234: CLOSE c_appr_seq_exists;
1235: IF l_dummy = 1 THEN
1236: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1237: Fnd_Message.set_name('AMS', 'AMS_APPR_DUP_SEQ');
1238: Fnd_Msg_Pub.ADD;
1239: x_return_status := Fnd_Api.g_ret_sts_error;
1240: RETURN;
1234: CLOSE c_appr_seq_exists;
1235: IF l_dummy = 1 THEN
1236: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1237: Fnd_Message.set_name('AMS', 'AMS_APPR_DUP_SEQ');
1238: Fnd_Msg_Pub.ADD;
1239: x_return_status := Fnd_Api.g_ret_sts_error;
1240: RETURN;
1241: END IF;
1242: END IF;
1341: Ams_Utility_Pvt.debug_message('The l_dummy is ' || l_dummy);
1342: END IF;
1343:
1344: IF l_dummy <> 1 THEN
1345: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1346: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_RESORS');
1347: Fnd_Msg_Pub.ADD;
1348: x_return_status := Fnd_Api.g_ret_sts_error;
1349: RETURN;
1343:
1344: IF l_dummy <> 1 THEN
1345: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1346: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_RESORS');
1347: Fnd_Msg_Pub.ADD;
1348: x_return_status := Fnd_Api.g_ret_sts_error;
1349: RETURN;
1350: END IF;
1351: END IF;
1363: OPEN c_rappr_id_exists (p_approvers_rec.object_approver_id);
1364: FETCH c_rappr_id_exists INTO l_dummy;
1365: CLOSE c_rappr_id_exists;
1366: IF l_dummy <> 1 THEN
1367: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1368: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_RESORS');
1369: Fnd_Msg_Pub.ADD;
1370: x_return_status := Fnd_Api.g_ret_sts_error;
1371: RETURN;
1365: CLOSE c_rappr_id_exists;
1366: IF l_dummy <> 1 THEN
1367: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1368: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_RESORS');
1369: Fnd_Msg_Pub.ADD;
1370: x_return_status := Fnd_Api.g_ret_sts_error;
1371: RETURN;
1372: END IF;
1373: END IF;
1376: OPEN c_multi_appr_exists(p_approvers_rec.object_approver_id);
1377: FETCH c_multi_appr_exists INTO l_dummy;
1378: CLOSE c_multi_appr_exists;
1379: IF l_dummy > 1 THEN
1380: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1381: Fnd_Message.set_name('AMS', 'AMS_MANY_DEFAULT_ROLE');
1382: Fnd_Msg_Pub.ADD;
1383: x_return_status := Fnd_Api.g_ret_sts_error;
1384: RETURN;
1378: CLOSE c_multi_appr_exists;
1379: IF l_dummy > 1 THEN
1380: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1381: Fnd_Message.set_name('AMS', 'AMS_MANY_DEFAULT_ROLE');
1382: Fnd_Msg_Pub.ADD;
1383: x_return_status := Fnd_Api.g_ret_sts_error;
1384: RETURN;
1385: END IF;
1386: END IF;
1407: x_return_status,
1408: l_meaning
1409: );
1410: IF x_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
1411: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1412: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_APPR_TYPE');
1413: Fnd_Msg_Pub.ADD;
1414: x_return_status := Fnd_Api.g_ret_sts_error;
1415: RETURN;
1409: );
1410: IF x_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
1411: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1412: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_APPR_TYPE');
1413: Fnd_Msg_Pub.ADD;
1414: x_return_status := Fnd_Api.g_ret_sts_error;
1415: RETURN;
1416: END IF;
1417: END IF;
1461:
1462: Ams_Utility_Pvt.debug_message('Approver end date cannot be specified without start date');
1463: END IF;
1464:
1465: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1466: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_START_DATE');
1467: Fnd_Msg_Pub.ADD;
1468: x_return_status := Fnd_Api.g_ret_sts_error;
1469: END IF;
1463: END IF;
1464:
1465: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1466: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_START_DATE');
1467: Fnd_Msg_Pub.ADD;
1468: x_return_status := Fnd_Api.g_ret_sts_error;
1469: END IF;
1470:
1471: RETURN;
1478:
1479: Ams_Utility_Pvt.debug_message('Approver start date cannot be less than the system date');
1480: END IF;
1481:
1482: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1483: Fnd_Message.set_name('AMS', 'AMS_APPR_START_DATE_LT_SYSDATE');
1484: Fnd_Msg_Pub.ADD;
1485: x_return_status := Fnd_Api.g_ret_sts_error;
1486: END IF;
1480: END IF;
1481:
1482: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1483: Fnd_Message.set_name('AMS', 'AMS_APPR_START_DATE_LT_SYSDATE');
1484: Fnd_Msg_Pub.ADD;
1485: x_return_status := Fnd_Api.g_ret_sts_error;
1486: END IF;
1487:
1488: RETURN;
1492:
1493: Ams_Utility_Pvt.debug_message('Approver Start Date cannot be less than the Approval Rule Start Date');
1494: END IF;
1495:
1496: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1497: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_GT_APRD_STDT');
1498: Fnd_Msg_Pub.ADD;
1499: x_return_status := Fnd_Api.g_ret_sts_error;
1500: END IF;
1494: END IF;
1495:
1496: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1497: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_GT_APRD_STDT');
1498: Fnd_Msg_Pub.ADD;
1499: x_return_status := Fnd_Api.g_ret_sts_error;
1500: END IF;
1501:
1502: RETURN;
1510:
1511: Ams_Utility_Pvt.debug_message('Approver end date cannot be less than the system date');
1512: END IF;
1513:
1514: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1515: Fnd_Message.set_name('AMS', 'AMS_APPR_END_DATE_LT_SYSDATE');
1516: Fnd_Msg_Pub.ADD;
1517: x_return_status := Fnd_Api.g_ret_sts_error;
1518: END IF;
1512: END IF;
1513:
1514: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1515: Fnd_Message.set_name('AMS', 'AMS_APPR_END_DATE_LT_SYSDATE');
1516: Fnd_Msg_Pub.ADD;
1517: x_return_status := Fnd_Api.g_ret_sts_error;
1518: END IF;
1519:
1520: RETURN;
1524:
1525: Ams_Utility_Pvt.debug_message('Approver end date cannot be greater than the Approval Rule end date');
1526: END IF;
1527:
1528: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1529: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_GT_APRD_EDDT');
1530: Fnd_Msg_Pub.ADD;
1531: x_return_status := Fnd_Api.g_ret_sts_error;
1532: END IF;
1526: END IF;
1527:
1528: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1529: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_GT_APRD_EDDT');
1530: Fnd_Msg_Pub.ADD;
1531: x_return_status := Fnd_Api.g_ret_sts_error;
1532: END IF;
1533:
1534: RETURN;
1580:
1581: Ams_Utility_Pvt.debug_message('Approver End Date cannot be specified without Start Date');
1582: END IF;
1583:
1584: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1585: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_START_DATE');
1586: Fnd_Msg_Pub.ADD;
1587: x_return_status := Fnd_Api.g_ret_sts_error;
1588: END IF;
1582: END IF;
1583:
1584: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1585: Fnd_Message.set_name('AMS', 'AMS_APPR_NO_START_DATE');
1586: Fnd_Msg_Pub.ADD;
1587: x_return_status := Fnd_Api.g_ret_sts_error;
1588: END IF;
1589:
1590: RETURN;
1599:
1600: Ams_Utility_Pvt.debug_message('Approver start date cannot be changed as it is already active');
1601: END IF;
1602:
1603: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1604: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_NO_CHANGE');
1605: Fnd_Msg_Pub.ADD;
1606: x_return_status := Fnd_Api.g_ret_sts_error;
1607: END IF;
1601: END IF;
1602:
1603: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1604: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_NO_CHANGE');
1605: Fnd_Msg_Pub.ADD;
1606: x_return_status := Fnd_Api.g_ret_sts_error;
1607: END IF;
1608:
1609: RETURN;
1615:
1616: Ams_Utility_Pvt.debug_message('Approver start date cannot be less than the Approval Rule start date');
1617: END IF;
1618:
1619: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1620: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_LT_APRD_STDT');
1621: Fnd_Msg_Pub.ADD;
1622: x_return_status := Fnd_Api.g_ret_sts_error;
1623: END IF;
1617: END IF;
1618:
1619: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1620: Fnd_Message.set_name('AMS', 'AMS_APPR_STDT_LT_APRD_STDT');
1621: Fnd_Msg_Pub.ADD;
1622: x_return_status := Fnd_Api.g_ret_sts_error;
1623: END IF;
1624:
1625: RETURN;
1635:
1636: Ams_Utility_Pvt.debug_message('Approver end date cannot be less than the system date');
1637: END IF;
1638:
1639: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1640: Fnd_Message.set_name('AMS', 'AMS_APPR_END_DATE_LT_SYSDATE');
1641: Fnd_Msg_Pub.ADD;
1642: x_return_status := Fnd_Api.g_ret_sts_error;
1643: END IF;
1637: END IF;
1638:
1639: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1640: Fnd_Message.set_name('AMS', 'AMS_APPR_END_DATE_LT_SYSDATE');
1641: Fnd_Msg_Pub.ADD;
1642: x_return_status := Fnd_Api.g_ret_sts_error;
1643: END IF;
1644:
1645: RETURN;
1651:
1652: Ams_Utility_Pvt.debug_message('Approver end date cannot be greater than the Approval Rule end date');
1653: END IF;
1654:
1655: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1656: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_GT_APRD_EDDT');
1657: Fnd_Msg_Pub.ADD;
1658: x_return_status := Fnd_Api.g_ret_sts_error;
1659: END IF;
1653: END IF;
1654:
1655: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1656: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_GT_APRD_EDDT');
1657: Fnd_Msg_Pub.ADD;
1658: x_return_status := Fnd_Api.g_ret_sts_error;
1659: END IF;
1660:
1661: RETURN;
1668:
1669: Ams_Utility_Pvt.debug_message('Approver end date cannot be open as the end date for Approval Rule is Closed');
1670: END IF;
1671:
1672: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1673: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_OPEN');
1674: Fnd_Msg_Pub.ADD;
1675: x_return_status := Fnd_Api.g_ret_sts_error;
1676: END IF;
1670: END IF;
1671:
1672: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1673: Fnd_Message.set_name('AMS', 'AMS_APPR_EDDT_OPEN');
1674: Fnd_Msg_Pub.ADD;
1675: x_return_status := Fnd_Api.g_ret_sts_error;
1676: END IF;
1677:
1678: RETURN;
1725: IF (AMS_DEBUG_HIGH_ON) THEN
1726: Ams_Utility_Pvt.debug_message('Invalid Use of Function for this objects Approval');
1727: END IF;
1728:
1729: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1730: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1731: Fnd_Msg_Pub.ADD;
1732: x_return_status := Fnd_Api.g_ret_sts_error;
1733: END IF;
1727: END IF;
1728:
1729: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1730: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1731: Fnd_Msg_Pub.ADD;
1732: x_return_status := Fnd_Api.g_ret_sts_error;
1733: END IF;
1734:
1735: RETURN;
1743: IF (AMS_DEBUG_HIGH_ON) THEN
1744: Ams_Utility_Pvt.debug_message('Invalid Use of Function for this objects Approval');
1745: END IF;
1746:
1747: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1748: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1749: Fnd_Msg_Pub.ADD;
1750: x_return_status := Fnd_Api.g_ret_sts_error;
1751: END IF;
1745: END IF;
1746:
1747: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1748: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1749: Fnd_Msg_Pub.ADD;
1750: x_return_status := Fnd_Api.g_ret_sts_error;
1751: END IF;
1752:
1753: RETURN;
1758: AND l_proc_name = 'GET_PARENT_OBJECT_OWNER' THEN
1759:
1760: IF NVL(Fnd_Profile.Value(name => 'AMS_SOURCE_FROM_PARENT'), 'N') = 'N' THEN
1761: Fnd_Message.Set_Name('AMS','AMS_APPR_FUNC_INVALID');
1762: Fnd_Msg_Pub.ADD;
1763: x_return_status := Fnd_Api.G_RET_STS_ERROR;
1764: IF (AMS_DEBUG_HIGH_ON) THEN
1765: Ams_Utility_Pvt.debug_message('Invalid Use of Function for this objects Approval as SFP is NO');
1766: END IF;
1777: IF (AMS_DEBUG_HIGH_ON) THEN
1778: Ams_Utility_Pvt.debug_message('Invalid Use of Function for this objects Approval');
1779: END IF;
1780:
1781: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1782: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1783: Fnd_Msg_Pub.ADD;
1784: x_return_status := Fnd_Api.g_ret_sts_error;
1785: END IF;
1779: END IF;
1780:
1781: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1782: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1783: Fnd_Msg_Pub.ADD;
1784: x_return_status := Fnd_Api.g_ret_sts_error;
1785: END IF;
1786:
1787: RETURN;
1795: IF (AMS_DEBUG_HIGH_ON) THEN
1796: Ams_Utility_Pvt.debug_message('Invalid Use of Function for this objects Approval');
1797: END IF;
1798:
1799: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1800: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1801: Fnd_Msg_Pub.ADD;
1802: x_return_status := Fnd_Api.g_ret_sts_error;
1803: END IF;
1797: END IF;
1798:
1799: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
1800: Fnd_Message.set_name('AMS', 'AMS_APPR_FUNC_INVALID');
1801: Fnd_Msg_Pub.ADD;
1802: x_return_status := Fnd_Api.g_ret_sts_error;
1803: END IF;
1804:
1805: RETURN;