208: (
209: p_api_version_number IN NUMBER
210: , p_init_msg_list IN VARCHAR2
211: , p_commit IN VARCHAR2
212: , p_validation_level IN VARCHAR2 := FND_API.G_VALID_LEVEL_FULL
213: , x_return_status OUT NOCOPY VARCHAR2
214: , x_msg_count OUT NOCOPY NUMBER
215: , x_msg_data OUT NOCOPY VARCHAR2
216: , p_offer_rec IN Modifier_LIST_Rec_Type
218: IS
219: l_api_name CONSTANT VARCHAR2(30) := 'process_offer_activation';
220: l_errorLocation NUMBER;
221: BEGIN
222: x_return_status := FND_API.G_RET_STS_SUCCESS;
223: IF p_offer_rec.offer_type = 'VOLUME_OFFER' THEN
224: push_discount_rules_to_qp
225: (
226: p_init_msg_list => FND_API.G_FALSE
222: x_return_status := FND_API.G_RET_STS_SUCCESS;
223: IF p_offer_rec.offer_type = 'VOLUME_OFFER' THEN
224: push_discount_rules_to_qp
225: (
226: p_init_msg_list => FND_API.G_FALSE
227: ,p_api_version => 1.0
228: ,p_commit => FND_API.G_FALSE
229: , x_return_status => x_return_status
230: , x_msg_count => x_msg_count
224: push_discount_rules_to_qp
225: (
226: p_init_msg_list => FND_API.G_FALSE
227: ,p_api_version => 1.0
228: ,p_commit => FND_API.G_FALSE
229: , x_return_status => x_return_status
230: , x_msg_count => x_msg_count
231: , x_msg_data => x_msg_data
232: , p_qp_list_header_id => p_offer_rec.qp_list_header_id
244: , x_msg_data => x_msg_data
245: , p_qp_list_header_id => p_offer_rec.qp_list_header_id
246: );
247: */
248: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
249: RAISE FND_API.G_EXC_ERROR;
250: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
251: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252: END IF;
245: , p_qp_list_header_id => p_offer_rec.qp_list_header_id
246: );
247: */
248: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
249: RAISE FND_API.G_EXC_ERROR;
250: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
251: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252: END IF;
253:
246: );
247: */
248: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
249: RAISE FND_API.G_EXC_ERROR;
250: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
251: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252: END IF;
253:
254: END IF;
247: */
248: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
249: RAISE FND_API.G_EXC_ERROR;
250: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
251: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252: END IF;
253:
254: END IF;
255:
500: l_multirecord Qp_Attr_Mapping_Pub.t_multirecord;
501: l_count NUMBER := 1;
502:
503: BEGIN
504: IF aso_inventory_item_id = Fnd_Api.g_miss_num THEN
505: p_inventory_item_id := oe_inventory_item_id;
506: ELSE
507: p_inventory_item_id := aso_inventory_item_id;
508: END IF;
563: BEGIN
564:
565: SAVEPOINT process_adv_options;
566:
567: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
568: Fnd_Msg_Pub.initialize;
569: END IF;
570:
571: IF NOT Fnd_Api.compatible_api_call
567: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
568: Fnd_Msg_Pub.initialize;
569: END IF;
570:
571: IF NOT Fnd_Api.compatible_api_call
572: (
573: l_api_version,
574: p_api_version,
575: l_api_name,
575: l_api_name,
576: g_pkg_name
577: )
578: THEN
579: RAISE Fnd_Api.g_exc_unexpected_error;
580: END IF;
581:
582: x_return_status := Fnd_Api.g_ret_sts_success;
583:
578: THEN
579: RAISE Fnd_Api.g_exc_unexpected_error;
580: END IF;
581:
582: x_return_status := Fnd_Api.g_ret_sts_success;
583:
584: FOR line_rec IN cur_get_lines LOOP
585: l_modifiers_tbl(i).pricing_phase_id := p_advanced_options_rec.pricing_phase_id;
586: l_modifiers_tbl(i).modifier_level_code := p_advanced_options_rec.modifier_level_code;
598:
599: Qp_Modifiers_Pub.process_modifiers(
600: p_api_version_number => 1.0,
601: p_init_msg_list => p_init_msg_list,
602: p_return_values => Fnd_Api.G_FALSE,
603: x_return_status => x_return_status,
604: x_msg_count => x_msg_count,
605: x_msg_data => x_msg_data,
606: p_modifiers_tbl => l_modifiers_tbl,
613: x_pricing_attr_tbl => v_pricing_attr_tbl,
614: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
615: );
616:
617: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
618: add_message(x_msg_count);
619: RAISE Fnd_Api.g_exc_error;
620: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
621: add_message(x_msg_count);
615: );
616:
617: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
618: add_message(x_msg_count);
619: RAISE Fnd_Api.g_exc_error;
620: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
621: add_message(x_msg_count);
622: RAISE Fnd_Api.g_exc_unexpected_error;
623: END IF;
616:
617: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
618: add_message(x_msg_count);
619: RAISE Fnd_Api.g_exc_error;
620: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
621: add_message(x_msg_count);
622: RAISE Fnd_Api.g_exc_unexpected_error;
623: END IF;
624:
618: add_message(x_msg_count);
619: RAISE Fnd_Api.g_exc_error;
620: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
621: add_message(x_msg_count);
622: RAISE Fnd_Api.g_exc_unexpected_error;
623: END IF;
624:
625: l_promotional_offers_rec.qp_list_header_id := p_advanced_options_rec.list_header_id;
626: l_promotional_offers_rec.autopay_flag := p_advanced_options_rec.autopay_flag;
671:
672: Fnd_Msg_Pub.Count_AND_Get
673: ( p_count => x_msg_count,
674: p_data => x_msg_data,
675: p_encoded => Fnd_Api.G_FALSE
676: );
677: IF p_commit = Fnd_Api.g_true THEN
678: COMMIT WORK;
679: END IF;
673: ( p_count => x_msg_count,
674: p_data => x_msg_data,
675: p_encoded => Fnd_Api.G_FALSE
676: );
677: IF p_commit = Fnd_Api.g_true THEN
678: COMMIT WORK;
679: END IF;
680:
681: EXCEPTION
678: COMMIT WORK;
679: END IF;
680:
681: EXCEPTION
682: WHEN Fnd_Api.G_EXC_ERROR THEN
683: x_return_status := Fnd_Api.g_ret_sts_error ;
684: ROLLBACK TO process_adv_options;
685: Fnd_Msg_Pub.Count_AND_Get
686: ( p_count => x_msg_count,
679: END IF;
680:
681: EXCEPTION
682: WHEN Fnd_Api.G_EXC_ERROR THEN
683: x_return_status := Fnd_Api.g_ret_sts_error ;
684: ROLLBACK TO process_adv_options;
685: Fnd_Msg_Pub.Count_AND_Get
686: ( p_count => x_msg_count,
687: p_data => x_msg_data,
684: ROLLBACK TO process_adv_options;
685: Fnd_Msg_Pub.Count_AND_Get
686: ( p_count => x_msg_count,
687: p_data => x_msg_data,
688: p_encoded => Fnd_Api.G_FALSE
689: );
690: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
692: ROLLBACK TO process_adv_options;
686: ( p_count => x_msg_count,
687: p_data => x_msg_data,
688: p_encoded => Fnd_Api.G_FALSE
689: );
690: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
692: ROLLBACK TO process_adv_options;
693: Fnd_Msg_Pub.Count_AND_Get
694: ( p_count => x_msg_count,
687: p_data => x_msg_data,
688: p_encoded => Fnd_Api.G_FALSE
689: );
690: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
692: ROLLBACK TO process_adv_options;
693: Fnd_Msg_Pub.Count_AND_Get
694: ( p_count => x_msg_count,
695: p_data => x_msg_data,
692: ROLLBACK TO process_adv_options;
693: Fnd_Msg_Pub.Count_AND_Get
694: ( p_count => x_msg_count,
695: p_data => x_msg_data,
696: p_encoded => Fnd_Api.G_FALSE
697: );
698: WHEN OTHERS THEN
699: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
700: ROLLBACK TO process_adv_options;
695: p_data => x_msg_data,
696: p_encoded => Fnd_Api.G_FALSE
697: );
698: WHEN OTHERS THEN
699: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
700: ROLLBACK TO process_adv_options;
701: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
702: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
703: END IF;
703: END IF;
704: Fnd_Msg_Pub.Count_AND_Get
705: ( p_count => x_msg_count,
706: p_data => x_msg_data,
707: p_encoded => Fnd_Api.G_FALSE
708: );
709: END;
710:
711:
779: BEGIN
780:
781: SAVEPOINT create_offer_tiers;
782:
783: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
784: Fnd_Msg_Pub.initialize;
785: END IF;
786:
787: IF NOT Fnd_Api.compatible_api_call
783: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
784: Fnd_Msg_Pub.initialize;
785: END IF;
786:
787: IF NOT Fnd_Api.compatible_api_call
788: (
789: l_api_version,
790: p_api_version,
791: l_api_name,
791: l_api_name,
792: g_pkg_name
793: )
794: THEN
795: RAISE Fnd_Api.g_exc_unexpected_error;
796: END IF;
797:
798: x_return_status := Fnd_Api.g_ret_sts_success;
799: x_error_location := 0;
794: THEN
795: RAISE Fnd_Api.g_exc_unexpected_error;
796: END IF;
797:
798: x_return_status := Fnd_Api.g_ret_sts_success;
799: x_error_location := 0;
800:
801:
802:
802:
803: IF p_modifier_line_tbl.count > 0 THEN
804: FOR i in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
805: IF p_modifier_line_tbl.exists(i) THEN
806: IF p_modifier_line_tbl(i).operation <> fnd_api.g_miss_char THEN
807: IF p_modifier_line_tbl(i).operation = 'CREATE' THEN
808: debug_message('Operation Create');
809: OPEN cur_get_adv_options(p_modifier_line_tbl(i).list_line_id);
810: FETCH cur_get_adv_options INTO l_modifiers_tbl(i).proration_type_code,
881: debug_message('Calling Pub Process in tiers');
882: Qp_Modifiers_Pub.process_modifiers(
883: p_api_version_number => 1.0,
884: p_init_msg_list => p_init_msg_list,
885: p_return_values => Fnd_Api.G_FALSE,
886: x_return_status => x_return_status,
887: x_msg_count => x_msg_count,
888: x_msg_data => x_msg_data,
889: p_modifiers_tbl => l_modifiers_tbl,
897: x_pricing_attr_tbl => v_pricing_attr_tbl,
898: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
899: );
900:
901: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
902: IF v_modifiers_tbl.COUNT > 0 THEN
903: FOR i IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
904: IF v_modifiers_tbl.EXISTS(i) THEN
905: IF v_modifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
901: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
902: IF v_modifiers_tbl.COUNT > 0 THEN
903: FOR i IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
904: IF v_modifiers_tbl.EXISTS(i) THEN
905: IF v_modifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
906: x_error_location := i;
907: EXIT;
908: END IF;
909: END IF;
910: END LOOP;
911: END IF;
912: END IF;
913:
914: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
915: add_message(x_msg_count);
916: RAISE Fnd_Api.g_exc_error;
917: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
918: add_message(x_msg_count);
912: END IF;
913:
914: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
915: add_message(x_msg_count);
916: RAISE Fnd_Api.g_exc_error;
917: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
918: add_message(x_msg_count);
919: RAISE Fnd_Api.g_exc_unexpected_error;
920: END IF;
913:
914: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
915: add_message(x_msg_count);
916: RAISE Fnd_Api.g_exc_error;
917: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
918: add_message(x_msg_count);
919: RAISE Fnd_Api.g_exc_unexpected_error;
920: END IF;
921:
915: add_message(x_msg_count);
916: RAISE Fnd_Api.g_exc_error;
917: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
918: add_message(x_msg_count);
919: RAISE Fnd_Api.g_exc_unexpected_error;
920: END IF;
921:
922:
923: -- x_modifiers_tbl := v_modifiers_tbl;
925:
926: Fnd_Msg_Pub.Count_AND_Get
927: ( p_count => x_msg_count,
928: p_data => x_msg_data,
929: p_encoded => Fnd_Api.G_FALSE
930: );
931: IF p_commit = Fnd_Api.g_true THEN
932: COMMIT WORK;
933: END IF;
927: ( p_count => x_msg_count,
928: p_data => x_msg_data,
929: p_encoded => Fnd_Api.G_FALSE
930: );
931: IF p_commit = Fnd_Api.g_true THEN
932: COMMIT WORK;
933: END IF;
934: debug_message('End Create Tiers');
935: EXCEPTION
932: COMMIT WORK;
933: END IF;
934: debug_message('End Create Tiers');
935: EXCEPTION
936: WHEN Fnd_Api.G_EXC_ERROR THEN
937: x_return_status := Fnd_Api.g_ret_sts_error ;
938: ROLLBACK TO create_offer_tiers;
939: Fnd_Msg_Pub.Count_AND_Get
940: ( p_count => x_msg_count,
933: END IF;
934: debug_message('End Create Tiers');
935: EXCEPTION
936: WHEN Fnd_Api.G_EXC_ERROR THEN
937: x_return_status := Fnd_Api.g_ret_sts_error ;
938: ROLLBACK TO create_offer_tiers;
939: Fnd_Msg_Pub.Count_AND_Get
940: ( p_count => x_msg_count,
941: p_data => x_msg_data,
938: ROLLBACK TO create_offer_tiers;
939: Fnd_Msg_Pub.Count_AND_Get
940: ( p_count => x_msg_count,
941: p_data => x_msg_data,
942: p_encoded => Fnd_Api.G_FALSE
943: );
944: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
945: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
946: ROLLBACK TO create_offer_tiers;
940: ( p_count => x_msg_count,
941: p_data => x_msg_data,
942: p_encoded => Fnd_Api.G_FALSE
943: );
944: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
945: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
946: ROLLBACK TO create_offer_tiers;
947: Fnd_Msg_Pub.Count_AND_Get
948: ( p_count => x_msg_count,
941: p_data => x_msg_data,
942: p_encoded => Fnd_Api.G_FALSE
943: );
944: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
945: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
946: ROLLBACK TO create_offer_tiers;
947: Fnd_Msg_Pub.Count_AND_Get
948: ( p_count => x_msg_count,
949: p_data => x_msg_data,
946: ROLLBACK TO create_offer_tiers;
947: Fnd_Msg_Pub.Count_AND_Get
948: ( p_count => x_msg_count,
949: p_data => x_msg_data,
950: p_encoded => Fnd_Api.G_FALSE
951: );
952: WHEN OTHERS THEN
953: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
954: ROLLBACK TO create_offer_tiers;
949: p_data => x_msg_data,
950: p_encoded => Fnd_Api.G_FALSE
951: );
952: WHEN OTHERS THEN
953: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
954: ROLLBACK TO create_offer_tiers;
955: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
956: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
957: END IF;
957: END IF;
958: Fnd_Msg_Pub.Count_AND_Get
959: ( p_count => x_msg_count,
960: p_data => x_msg_data,
961: p_encoded => Fnd_Api.G_FALSE
962: );
963: END;
964:
965:
986: AND excluder_flag = 'Y';
987:
988: i NUMBER:= 0;
989: BEGIN
990: x_return_status := FND_API.G_RET_STS_SUCCESS;
991: i := 1;
992: IF nvl(p_pricing_attr_tbl.count, 0) > 0 THEN
993: FOR j in p_pricing_attr_tbl.first .. p_pricing_attr_tbl.last LOOP
994: IF p_pricing_attr_tbl.exists(j) THEN
1044:
1045: BEGIN
1046: SAVEPOINT process_exlusions;
1047:
1048: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1049: Fnd_Msg_Pub.initialize;
1050: END IF;
1051:
1052: IF NOT Fnd_Api.compatible_api_call
1048: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1049: Fnd_Msg_Pub.initialize;
1050: END IF;
1051:
1052: IF NOT Fnd_Api.compatible_api_call
1053: (
1054: l_api_version,
1055: p_api_version,
1056: l_api_name,
1056: l_api_name,
1057: g_pkg_name
1058: )
1059: THEN
1060: RAISE Fnd_Api.g_exc_unexpected_error;
1061: END IF;
1062:
1063: x_return_status := Fnd_Api.g_ret_sts_success;
1064: x_error_location := 0;
1059: THEN
1060: RAISE Fnd_Api.g_exc_unexpected_error;
1061: END IF;
1062:
1063: x_return_status := Fnd_Api.g_ret_sts_success;
1064: x_error_location := 0;
1065: IF p_pricing_attr_tbl.COUNT > 0 THEN
1066: FOR i IN p_pricing_attr_tbl.first..p_pricing_attr_tbl.last LOOP
1067: IF p_pricing_attr_tbl.EXISTS(i) THEN
1084:
1085: Qp_Modifiers_Pub.process_modifiers(
1086: p_api_version_number => 1.0,
1087: p_init_msg_list => p_init_msg_list,
1088: p_return_values => Fnd_Api.G_FALSE,
1089: x_return_status => x_return_status,
1090: x_msg_count => x_msg_count,
1091: x_msg_data => x_msg_data,
1092: p_pricing_attr_tbl => l_pricing_attr_tbl,
1100: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
1101: );
1102: --dbms_output.put_line('done qp api:'||x_return_status);
1103:
1104: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1105: IF v_pricing_attr_tbl.COUNT > 0 THEN
1106: FOR i IN v_pricing_attr_tbl.first..v_pricing_attr_tbl.last LOOP
1107: IF v_pricing_attr_tbl.EXISTS(i) THEN
1108: IF v_pricing_attr_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1104: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1105: IF v_pricing_attr_tbl.COUNT > 0 THEN
1106: FOR i IN v_pricing_attr_tbl.first..v_pricing_attr_tbl.last LOOP
1107: IF v_pricing_attr_tbl.EXISTS(i) THEN
1108: IF v_pricing_attr_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1109: x_error_location := i;
1110: EXIT;
1111: END IF;
1112: END IF;
1115: END IF;
1116:
1117: --dbms_output.put_line('done qp api:'||x_return_status);
1118:
1119: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1120: add_message(x_msg_count);
1121: RAISE Fnd_Api.g_exc_error;
1122: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1123: add_message(x_msg_count);
1117: --dbms_output.put_line('done qp api:'||x_return_status);
1118:
1119: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1120: add_message(x_msg_count);
1121: RAISE Fnd_Api.g_exc_error;
1122: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1123: add_message(x_msg_count);
1124: RAISE Fnd_Api.g_exc_unexpected_error;
1125: END IF;
1118:
1119: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1120: add_message(x_msg_count);
1121: RAISE Fnd_Api.g_exc_error;
1122: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1123: add_message(x_msg_count);
1124: RAISE Fnd_Api.g_exc_unexpected_error;
1125: END IF;
1126:
1120: add_message(x_msg_count);
1121: RAISE Fnd_Api.g_exc_error;
1122: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1123: add_message(x_msg_count);
1124: RAISE Fnd_Api.g_exc_unexpected_error;
1125: END IF;
1126:
1127: IF p_commit = Fnd_Api.g_true THEN
1128: COMMIT WORK;
1123: add_message(x_msg_count);
1124: RAISE Fnd_Api.g_exc_unexpected_error;
1125: END IF;
1126:
1127: IF p_commit = Fnd_Api.g_true THEN
1128: COMMIT WORK;
1129: END IF;
1130: --dbms_output.put_line('done qp api:'||x_return_status);
1131: --dbms_output.put_line('done :');
1129: END IF;
1130: --dbms_output.put_line('done qp api:'||x_return_status);
1131: --dbms_output.put_line('done :');
1132: EXCEPTION
1133: WHEN Fnd_Api.G_EXC_ERROR THEN
1134: x_return_status := Fnd_Api.g_ret_sts_error ;
1135: ROLLBACK TO process_exlusions;
1136: Fnd_Msg_Pub.Count_AND_Get
1137: ( p_count => x_msg_count,
1130: --dbms_output.put_line('done qp api:'||x_return_status);
1131: --dbms_output.put_line('done :');
1132: EXCEPTION
1133: WHEN Fnd_Api.G_EXC_ERROR THEN
1134: x_return_status := Fnd_Api.g_ret_sts_error ;
1135: ROLLBACK TO process_exlusions;
1136: Fnd_Msg_Pub.Count_AND_Get
1137: ( p_count => x_msg_count,
1138: p_data => x_msg_data,
1135: ROLLBACK TO process_exlusions;
1136: Fnd_Msg_Pub.Count_AND_Get
1137: ( p_count => x_msg_count,
1138: p_data => x_msg_data,
1139: p_encoded => Fnd_Api.G_FALSE
1140: );
1141: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1142: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1143: ROLLBACK TO process_exlusions;
1137: ( p_count => x_msg_count,
1138: p_data => x_msg_data,
1139: p_encoded => Fnd_Api.G_FALSE
1140: );
1141: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1142: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1143: ROLLBACK TO process_exlusions;
1144: Fnd_Msg_Pub.Count_AND_Get
1145: ( p_count => x_msg_count,
1138: p_data => x_msg_data,
1139: p_encoded => Fnd_Api.G_FALSE
1140: );
1141: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1142: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1143: ROLLBACK TO process_exlusions;
1144: Fnd_Msg_Pub.Count_AND_Get
1145: ( p_count => x_msg_count,
1146: p_data => x_msg_data,
1143: ROLLBACK TO process_exlusions;
1144: Fnd_Msg_Pub.Count_AND_Get
1145: ( p_count => x_msg_count,
1146: p_data => x_msg_data,
1147: p_encoded => Fnd_Api.G_FALSE
1148: );
1149: WHEN OTHERS THEN
1150: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1151: ROLLBACK TO process_exlusions;
1146: p_data => x_msg_data,
1147: p_encoded => Fnd_Api.G_FALSE
1148: );
1149: WHEN OTHERS THEN
1150: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1151: ROLLBACK TO process_exlusions;
1152: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1153: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1154: END IF;
1154: END IF;
1155: Fnd_Msg_Pub.Count_AND_Get
1156: ( p_count => x_msg_count,
1157: p_data => x_msg_data,
1158: p_encoded => Fnd_Api.G_FALSE
1159: );
1160: END processRegExclusions;
1161:
1162: /**
1182: -- initialize
1183: -- process reqular exclusions
1184: -- populate related exclusions data
1185: -- process related exclusions
1186: x_return_status := FND_API.G_RET_STS_SUCCESS;
1187: processRegExclusions
1188: (
1189: p_init_msg_list => FND_API.G_FALSE
1190: ,p_api_version => 1.0
1185: -- process related exclusions
1186: x_return_status := FND_API.G_RET_STS_SUCCESS;
1187: processRegExclusions
1188: (
1189: p_init_msg_list => FND_API.G_FALSE
1190: ,p_api_version => 1.0
1191: ,p_commit => FND_API.G_FALSE
1192: ,x_return_status => x_return_status
1193: ,x_msg_count => x_msg_count
1187: processRegExclusions
1188: (
1189: p_init_msg_list => FND_API.G_FALSE
1190: ,p_api_version => 1.0
1191: ,p_commit => FND_API.G_FALSE
1192: ,x_return_status => x_return_status
1193: ,x_msg_count => x_msg_count
1194: ,x_msg_data => x_msg_data
1195: ,p_pricing_attr_tbl => p_pricing_attr_tbl
1194: ,x_msg_data => x_msg_data
1195: ,p_pricing_attr_tbl => p_pricing_attr_tbl
1196: ,x_error_location => x_error_location
1197: );
1198: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1199: RAISE FND_API.G_EXC_ERROR;
1200: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1202: END IF;
1195: ,p_pricing_attr_tbl => p_pricing_attr_tbl
1196: ,x_error_location => x_error_location
1197: );
1198: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1199: RAISE FND_API.G_EXC_ERROR;
1200: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1202: END IF;
1203:
1196: ,x_error_location => x_error_location
1197: );
1198: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1199: RAISE FND_API.G_EXC_ERROR;
1200: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1202: END IF;
1203:
1204: populateRltdExclusions
1197: );
1198: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1199: RAISE FND_API.G_EXC_ERROR;
1200: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1202: END IF;
1203:
1204: populateRltdExclusions
1205: (
1208: ,x_msg_data => x_msg_data
1209: ,p_pricing_attr_tbl => p_pricing_attr_tbl
1210: ,px_pricing_attr_tbl => l_pricing_attr_tbl
1211: );
1212: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1213: RAISE FND_API.G_EXC_ERROR;
1214: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1215: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1216: END IF;
1209: ,p_pricing_attr_tbl => p_pricing_attr_tbl
1210: ,px_pricing_attr_tbl => l_pricing_attr_tbl
1211: );
1212: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1213: RAISE FND_API.G_EXC_ERROR;
1214: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1215: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1216: END IF;
1217: --dbms_output.put_line('Rltd Pricing attr count is :'||nvl(l_pricing_attr_tbl.count,0));
1210: ,px_pricing_attr_tbl => l_pricing_attr_tbl
1211: );
1212: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1213: RAISE FND_API.G_EXC_ERROR;
1214: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1215: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1216: END IF;
1217: --dbms_output.put_line('Rltd Pricing attr count is :'||nvl(l_pricing_attr_tbl.count,0));
1218: IF nvl(l_pricing_attr_tbl.count,0) > 0 THEN
1211: );
1212: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1213: RAISE FND_API.G_EXC_ERROR;
1214: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1215: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1216: END IF;
1217: --dbms_output.put_line('Rltd Pricing attr count is :'||nvl(l_pricing_attr_tbl.count,0));
1218: IF nvl(l_pricing_attr_tbl.count,0) > 0 THEN
1219: --dbms_output.put_line('Rltd Pricing attr count is :'||nvl(l_pricing_attr_tbl.count,0));
1218: IF nvl(l_pricing_attr_tbl.count,0) > 0 THEN
1219: --dbms_output.put_line('Rltd Pricing attr count is :'||nvl(l_pricing_attr_tbl.count,0));
1220: processRegExclusions
1221: (
1222: p_init_msg_list => FND_API.G_FALSE
1223: ,p_api_version => 1.0
1224: ,p_commit => FND_API.G_FALSE
1225: ,x_return_status => x_return_status
1226: ,x_msg_count => x_msg_count
1220: processRegExclusions
1221: (
1222: p_init_msg_list => FND_API.G_FALSE
1223: ,p_api_version => 1.0
1224: ,p_commit => FND_API.G_FALSE
1225: ,x_return_status => x_return_status
1226: ,x_msg_count => x_msg_count
1227: ,x_msg_data => x_msg_data
1228: ,p_pricing_attr_tbl => l_pricing_attr_tbl
1227: ,x_msg_data => x_msg_data
1228: ,p_pricing_attr_tbl => l_pricing_attr_tbl
1229: ,x_error_location => x_error_location
1230: );
1231: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1232: RAISE FND_API.G_EXC_ERROR;
1233: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1234: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1235: END IF;
1228: ,p_pricing_attr_tbl => l_pricing_attr_tbl
1229: ,x_error_location => x_error_location
1230: );
1231: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1232: RAISE FND_API.G_EXC_ERROR;
1233: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1234: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1235: END IF;
1236: END IF;
1229: ,x_error_location => x_error_location
1230: );
1231: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1232: RAISE FND_API.G_EXC_ERROR;
1233: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1234: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1235: END IF;
1236: END IF;
1237: EXCEPTION
1230: );
1231: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1232: RAISE FND_API.G_EXC_ERROR;
1233: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1234: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1235: END IF;
1236: END IF;
1237: EXCEPTION
1238: WHEN Fnd_Api.G_EXC_ERROR THEN
1234: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1235: END IF;
1236: END IF;
1237: EXCEPTION
1238: WHEN Fnd_Api.G_EXC_ERROR THEN
1239: x_return_status := Fnd_Api.g_ret_sts_error ;
1240: Fnd_Msg_Pub.Count_AND_Get
1241: ( p_count => x_msg_count,
1242: p_data => x_msg_data,
1235: END IF;
1236: END IF;
1237: EXCEPTION
1238: WHEN Fnd_Api.G_EXC_ERROR THEN
1239: x_return_status := Fnd_Api.g_ret_sts_error ;
1240: Fnd_Msg_Pub.Count_AND_Get
1241: ( p_count => x_msg_count,
1242: p_data => x_msg_data,
1243: p_encoded => Fnd_Api.G_FALSE
1239: x_return_status := Fnd_Api.g_ret_sts_error ;
1240: Fnd_Msg_Pub.Count_AND_Get
1241: ( p_count => x_msg_count,
1242: p_data => x_msg_data,
1243: p_encoded => Fnd_Api.G_FALSE
1244: );
1245: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1246: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1247: Fnd_Msg_Pub.Count_AND_Get
1241: ( p_count => x_msg_count,
1242: p_data => x_msg_data,
1243: p_encoded => Fnd_Api.G_FALSE
1244: );
1245: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1246: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1247: Fnd_Msg_Pub.Count_AND_Get
1248: ( p_count => x_msg_count,
1249: p_data => x_msg_data,
1242: p_data => x_msg_data,
1243: p_encoded => Fnd_Api.G_FALSE
1244: );
1245: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1246: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1247: Fnd_Msg_Pub.Count_AND_Get
1248: ( p_count => x_msg_count,
1249: p_data => x_msg_data,
1250: p_encoded => Fnd_Api.G_FALSE
1246: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1247: Fnd_Msg_Pub.Count_AND_Get
1248: ( p_count => x_msg_count,
1249: p_data => x_msg_data,
1250: p_encoded => Fnd_Api.G_FALSE
1251: );
1252: WHEN OTHERS THEN
1253: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1254: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1249: p_data => x_msg_data,
1250: p_encoded => Fnd_Api.G_FALSE
1251: );
1252: WHEN OTHERS THEN
1253: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1254: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1255: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,'process_exclusions');
1256: END IF;
1257: Fnd_Msg_Pub.Count_AND_Get
1256: END IF;
1257: Fnd_Msg_Pub.Count_AND_Get
1258: ( p_count => x_msg_count,
1259: p_data => x_msg_data,
1260: p_encoded => Fnd_Api.G_FALSE
1261: );
1262: END process_exclusions;
1263:
1264:
1327:
1328: BEGIN
1329: SAVEPOINT process_rltd_modifier_qual;
1330:
1331: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1332: Fnd_Msg_Pub.initialize;
1333: END IF;
1334:
1335: x_return_status := Fnd_Api.g_ret_sts_success;
1331: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1332: Fnd_Msg_Pub.initialize;
1333: END IF;
1334:
1335: x_return_status := Fnd_Api.g_ret_sts_success;
1336:
1337: FOR l_modifier_qualifier IN c_modifier_qualifier LOOP
1338: OPEN c_rltd_modifier_id(l_modifier_qualifier.list_header_id, p_list_line_id);
1339: FETCH c_rltd_modifier_id INTO l_rltd_modifier_id;
1338: OPEN c_rltd_modifier_id(l_modifier_qualifier.list_header_id, p_list_line_id);
1339: FETCH c_rltd_modifier_id INTO l_rltd_modifier_id;
1340: CLOSE c_rltd_modifier_id;
1341: debug_message('jl rltd modifier id: ' || l_rltd_modifier_id);
1342: IF l_rltd_modifier_id IS NOT NULL AND l_rltd_modifier_id <> fnd_api.g_miss_num THEN
1343: DELETE FROM qp_qualifiers
1344: WHERE list_header_id = l_modifier_qualifier.list_header_id
1345: AND list_line_id = l_rltd_modifier_id;
1346:
1375: l_qualifiers_tbl(l_index).attribute15 := l_modifier_qualifier.attribute15;
1376: END IF;
1377: END LOOP;
1378: debug_message('jl qualifier tbl count: ' || l_qualifiers_tbl.count);
1379: --raise Fnd_Api.g_exc_error;
1380: Qp_Modifiers_Pub.process_modifiers(
1381: p_api_version_number => 1.0,
1382: p_init_msg_list => p_init_msg_list,
1383: p_return_values => Fnd_Api.G_FALSE,
1379: --raise Fnd_Api.g_exc_error;
1380: Qp_Modifiers_Pub.process_modifiers(
1381: p_api_version_number => 1.0,
1382: p_init_msg_list => p_init_msg_list,
1383: p_return_values => Fnd_Api.G_FALSE,
1384: x_return_status => x_return_status,
1385: x_msg_count => x_msg_count,
1386: x_msg_data => x_msg_data,
1387: p_qualifiers_tbl => l_qualifiers_tbl,
1394: x_pricing_attr_tbl => v_pricing_attr_tbl,
1395: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
1396: );
1397:
1398: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1399: add_message(x_msg_count);
1400: RAISE Fnd_Api.g_exc_error;
1401: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1402: add_message(x_msg_count);
1396: );
1397:
1398: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1399: add_message(x_msg_count);
1400: RAISE Fnd_Api.g_exc_error;
1401: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1402: add_message(x_msg_count);
1403: RAISE Fnd_Api.g_exc_unexpected_error;
1404: END IF;
1397:
1398: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1399: add_message(x_msg_count);
1400: RAISE Fnd_Api.g_exc_error;
1401: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1402: add_message(x_msg_count);
1403: RAISE Fnd_Api.g_exc_unexpected_error;
1404: END IF;
1405:
1399: add_message(x_msg_count);
1400: RAISE Fnd_Api.g_exc_error;
1401: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1402: add_message(x_msg_count);
1403: RAISE Fnd_Api.g_exc_unexpected_error;
1404: END IF;
1405:
1406: EXCEPTION
1407: WHEN Fnd_Api.G_EXC_ERROR THEN
1403: RAISE Fnd_Api.g_exc_unexpected_error;
1404: END IF;
1405:
1406: EXCEPTION
1407: WHEN Fnd_Api.G_EXC_ERROR THEN
1408: x_return_status := Fnd_Api.g_ret_sts_error ;
1409: ROLLBACK TO process_rltd_modifier_qual;
1410: Fnd_Msg_Pub.Count_AND_Get
1411: ( p_count => x_msg_count,
1404: END IF;
1405:
1406: EXCEPTION
1407: WHEN Fnd_Api.G_EXC_ERROR THEN
1408: x_return_status := Fnd_Api.g_ret_sts_error ;
1409: ROLLBACK TO process_rltd_modifier_qual;
1410: Fnd_Msg_Pub.Count_AND_Get
1411: ( p_count => x_msg_count,
1412: p_data => x_msg_data,
1409: ROLLBACK TO process_rltd_modifier_qual;
1410: Fnd_Msg_Pub.Count_AND_Get
1411: ( p_count => x_msg_count,
1412: p_data => x_msg_data,
1413: p_encoded => Fnd_Api.G_FALSE
1414: );
1415: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1416: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1417: ROLLBACK TO process_rltd_modifier_qual;
1411: ( p_count => x_msg_count,
1412: p_data => x_msg_data,
1413: p_encoded => Fnd_Api.G_FALSE
1414: );
1415: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1416: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1417: ROLLBACK TO process_rltd_modifier_qual;
1418: Fnd_Msg_Pub.Count_AND_Get
1419: ( p_count => x_msg_count,
1412: p_data => x_msg_data,
1413: p_encoded => Fnd_Api.G_FALSE
1414: );
1415: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1416: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1417: ROLLBACK TO process_rltd_modifier_qual;
1418: Fnd_Msg_Pub.Count_AND_Get
1419: ( p_count => x_msg_count,
1420: p_data => x_msg_data,
1417: ROLLBACK TO process_rltd_modifier_qual;
1418: Fnd_Msg_Pub.Count_AND_Get
1419: ( p_count => x_msg_count,
1420: p_data => x_msg_data,
1421: p_encoded => Fnd_Api.G_FALSE
1422: );
1423: WHEN OTHERS THEN
1424: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1425: ROLLBACK TO process_rltd_modifier_qual;
1420: p_data => x_msg_data,
1421: p_encoded => Fnd_Api.G_FALSE
1422: );
1423: WHEN OTHERS THEN
1424: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1425: ROLLBACK TO process_rltd_modifier_qual;
1426: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1427: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1428: END IF;
1428: END IF;
1429: Fnd_Msg_Pub.Count_AND_Get
1430: ( p_count => x_msg_count,
1431: p_data => x_msg_data,
1432: p_encoded => Fnd_Api.G_FALSE
1433: );
1434: END process_rltd_modifier_qual;
1435:
1436: PROCEDURE process_market_qualifiers
1469:
1470: BEGIN
1471: SAVEPOINT process_market_qualifiers;
1472:
1473: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1474: Fnd_Msg_Pub.initialize;
1475: END IF;
1476:
1477: IF NOT Fnd_Api.compatible_api_call
1473: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1474: Fnd_Msg_Pub.initialize;
1475: END IF;
1476:
1477: IF NOT Fnd_Api.compatible_api_call
1478: (
1479: l_api_version,
1480: p_api_version,
1481: l_api_name,
1481: l_api_name,
1482: g_pkg_name
1483: )
1484: THEN
1485: RAISE Fnd_Api.g_exc_unexpected_error;
1486: END IF;
1487:
1488: x_return_status := Fnd_Api.g_ret_sts_success;
1489: x_error_location := 0;
1484: THEN
1485: RAISE Fnd_Api.g_exc_unexpected_error;
1486: END IF;
1487:
1488: x_return_status := Fnd_Api.g_ret_sts_success;
1489: x_error_location := 0;
1490: IF p_qualifiers_tbl.COUNT > 0 THEN
1491: FOR i IN p_qualifiers_tbl.first..p_qualifiers_tbl.last LOOP
1492: IF p_qualifiers_tbl.EXISTS(i) THEN
1495: END IF;
1496: l_qualifiers_tbl(i).list_header_id := p_qualifiers_tbl(i).list_header_id;
1497:
1498: IF p_qualifiers_tbl(i).list_line_id IS NOT NULL
1499: AND p_qualifiers_tbl(i).list_line_id <> FND_API.G_MISS_NUM
1500: THEN
1501: l_qualifiers_tbl(i).list_line_id := p_qualifiers_tbl(i).list_line_id;
1502: ELSE
1503: l_qualifiers_tbl(i).list_line_id := -1;
1538:
1539: Qp_Modifiers_Pub.process_modifiers(
1540: p_api_version_number => 1.0,
1541: p_init_msg_list => p_init_msg_list,
1542: p_return_values => Fnd_Api.G_FALSE,
1543: x_return_status => x_return_status,
1544: x_msg_count => x_msg_count,
1545: x_msg_data => x_msg_data,
1546: p_qualifiers_tbl => l_qualifiers_tbl,
1553: x_pricing_attr_tbl => v_pricing_attr_tbl,
1554: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
1555: );
1556:
1557: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1558: IF v_qualifiers_tbl.COUNT > 0 THEN
1559: FOR i IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
1560: IF v_qualifiers_tbl.EXISTS(i) THEN
1561: IF v_qualifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1557: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1558: IF v_qualifiers_tbl.COUNT > 0 THEN
1559: FOR i IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
1560: IF v_qualifiers_tbl.EXISTS(i) THEN
1561: IF v_qualifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1562: x_error_location := i;
1563: EXIT;
1564: END IF;
1565: END IF;
1566: END LOOP;
1567: END IF;
1568: END IF;
1569:
1570: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1571: add_message(x_msg_count);
1572: RAISE Fnd_Api.g_exc_error;
1573: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1574: add_message(x_msg_count);
1568: END IF;
1569:
1570: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1571: add_message(x_msg_count);
1572: RAISE Fnd_Api.g_exc_error;
1573: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1574: add_message(x_msg_count);
1575: RAISE Fnd_Api.g_exc_unexpected_error;
1576: END IF;
1569:
1570: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1571: add_message(x_msg_count);
1572: RAISE Fnd_Api.g_exc_error;
1573: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1574: add_message(x_msg_count);
1575: RAISE Fnd_Api.g_exc_unexpected_error;
1576: END IF;
1577:
1571: add_message(x_msg_count);
1572: RAISE Fnd_Api.g_exc_error;
1573: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1574: add_message(x_msg_count);
1575: RAISE Fnd_Api.g_exc_unexpected_error;
1576: END IF;
1577:
1578: FOR i IN NVL(p_qualifiers_tbl.FIRST, 1)..NVL(p_qualifiers_tbl.LAST, 0) LOOP
1579: OPEN c_offer_type(p_qualifiers_tbl(i).list_header_id);
1582:
1583: debug_message('jl offer type: ' || l_offer_type);
1584: debug_message('jl list line id: ' || p_qualifiers_tbl(i).list_line_id);
1585:
1586: IF l_offer_type = 'DEAL' AND p_qualifiers_tbl(i).list_line_id IS NOT NULL AND p_qualifiers_tbl(i).list_line_id <> fnd_api.g_miss_num AND p_qualifiers_tbl(i).list_line_id <> -1 THEN
1587: process_rltd_modifier_qual(
1588: p_init_msg_list => p_init_msg_list,
1589: p_commit => fnd_api.g_false,
1590: p_list_line_id => p_qualifiers_tbl(i).list_line_id,
1585:
1586: IF l_offer_type = 'DEAL' AND p_qualifiers_tbl(i).list_line_id IS NOT NULL AND p_qualifiers_tbl(i).list_line_id <> fnd_api.g_miss_num AND p_qualifiers_tbl(i).list_line_id <> -1 THEN
1587: process_rltd_modifier_qual(
1588: p_init_msg_list => p_init_msg_list,
1589: p_commit => fnd_api.g_false,
1590: p_list_line_id => p_qualifiers_tbl(i).list_line_id,
1591: x_return_status => x_return_status,
1592: x_msg_count => x_msg_count,
1593: x_msg_data => x_msg_data);
1592: x_msg_count => x_msg_count,
1593: x_msg_data => x_msg_data);
1594: END IF;
1595: END LOOP;
1596: --raise Fnd_Api.G_EXC_ERROR;
1597: IF l_qualifier_deleted = 'Y' THEN
1598: UPDATE ozf_offers
1599: SET qualifier_deleted = 'Y'
1600: WHERE qp_list_header_id = l_qp_list_header_id;
1602:
1603: Fnd_Msg_Pub.Count_AND_Get
1604: ( p_count => x_msg_count,
1605: p_data => x_msg_data,
1606: p_encoded => Fnd_Api.G_FALSE
1607: );
1608: IF p_commit = Fnd_Api.g_true THEN
1609: COMMIT WORK;
1610: END IF;
1604: ( p_count => x_msg_count,
1605: p_data => x_msg_data,
1606: p_encoded => Fnd_Api.G_FALSE
1607: );
1608: IF p_commit = Fnd_Api.g_true THEN
1609: COMMIT WORK;
1610: END IF;
1611:
1612:
1610: END IF;
1611:
1612:
1613: EXCEPTION
1614: WHEN Fnd_Api.G_EXC_ERROR THEN
1615: x_return_status := Fnd_Api.g_ret_sts_error ;
1616: ROLLBACK TO process_market_qualifiers;
1617: Fnd_Msg_Pub.Count_AND_Get
1618: ( p_count => x_msg_count,
1611:
1612:
1613: EXCEPTION
1614: WHEN Fnd_Api.G_EXC_ERROR THEN
1615: x_return_status := Fnd_Api.g_ret_sts_error ;
1616: ROLLBACK TO process_market_qualifiers;
1617: Fnd_Msg_Pub.Count_AND_Get
1618: ( p_count => x_msg_count,
1619: p_data => x_msg_data,
1616: ROLLBACK TO process_market_qualifiers;
1617: Fnd_Msg_Pub.Count_AND_Get
1618: ( p_count => x_msg_count,
1619: p_data => x_msg_data,
1620: p_encoded => Fnd_Api.G_FALSE
1621: );
1622: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1623: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1624: ROLLBACK TO process_market_qualifiers;
1618: ( p_count => x_msg_count,
1619: p_data => x_msg_data,
1620: p_encoded => Fnd_Api.G_FALSE
1621: );
1622: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1623: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1624: ROLLBACK TO process_market_qualifiers;
1625: Fnd_Msg_Pub.Count_AND_Get
1626: ( p_count => x_msg_count,
1619: p_data => x_msg_data,
1620: p_encoded => Fnd_Api.G_FALSE
1621: );
1622: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1623: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1624: ROLLBACK TO process_market_qualifiers;
1625: Fnd_Msg_Pub.Count_AND_Get
1626: ( p_count => x_msg_count,
1627: p_data => x_msg_data,
1624: ROLLBACK TO process_market_qualifiers;
1625: Fnd_Msg_Pub.Count_AND_Get
1626: ( p_count => x_msg_count,
1627: p_data => x_msg_data,
1628: p_encoded => Fnd_Api.G_FALSE
1629: );
1630: WHEN OTHERS THEN
1631: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1632: ROLLBACK TO process_market_qualifiers;
1627: p_data => x_msg_data,
1628: p_encoded => Fnd_Api.G_FALSE
1629: );
1630: WHEN OTHERS THEN
1631: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1632: ROLLBACK TO process_market_qualifiers;
1633: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1634: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1635: END IF;
1635: END IF;
1636: Fnd_Msg_Pub.Count_AND_Get
1637: ( p_count => x_msg_count,
1638: p_data => x_msg_data,
1639: p_encoded => Fnd_Api.G_FALSE
1640: );
1641: END;
1642:
1643: PROCEDURE process_market_qualifiers
1669:
1670: BEGIN
1671: SAVEPOINT process_market_qualifiers;
1672:
1673: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1674: Fnd_Msg_Pub.initialize;
1675: END IF;
1676:
1677: IF NOT Fnd_Api.compatible_api_call
1673: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1674: Fnd_Msg_Pub.initialize;
1675: END IF;
1676:
1677: IF NOT Fnd_Api.compatible_api_call
1678: (
1679: l_api_version,
1680: p_api_version,
1681: l_api_name,
1681: l_api_name,
1682: g_pkg_name
1683: )
1684: THEN
1685: RAISE Fnd_Api.g_exc_unexpected_error;
1686: END IF;
1687:
1688: x_return_status := Fnd_Api.g_ret_sts_success;
1689: x_error_location := 0;
1684: THEN
1685: RAISE Fnd_Api.g_exc_unexpected_error;
1686: END IF;
1687:
1688: x_return_status := Fnd_Api.g_ret_sts_success;
1689: x_error_location := 0;
1690: IF p_qualifiers_tbl.COUNT > 0 THEN
1691: FOR i IN p_qualifiers_tbl.first..p_qualifiers_tbl.last LOOP
1692: IF p_qualifiers_tbl.EXISTS(i) THEN
1695: END IF;
1696: l_qualifiers_tbl(i).list_header_id := p_qualifiers_tbl(i).list_header_id;
1697:
1698: IF p_qualifiers_tbl(i).list_line_id IS NOT NULL
1699: AND p_qualifiers_tbl(i).list_line_id <> FND_API.G_MISS_NUM
1700: THEN
1701: l_qualifiers_tbl(i).list_line_id := p_qualifiers_tbl(i).list_line_id;
1702: ELSE
1703: l_qualifiers_tbl(i).list_line_id := -1;
1738:
1739: Qp_Modifiers_Pub.process_modifiers(
1740: p_api_version_number => 1.0,
1741: p_init_msg_list => p_init_msg_list,
1742: p_return_values => Fnd_Api.G_FALSE,
1743: x_return_status => x_return_status,
1744: x_msg_count => x_msg_count,
1745: x_msg_data => x_msg_data,
1746: p_qualifiers_tbl => l_qualifiers_tbl,
1753: x_pricing_attr_tbl => v_pricing_attr_tbl,
1754: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
1755: );
1756:
1757: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1758: IF v_qualifiers_tbl.COUNT > 0 THEN
1759: FOR i IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
1760: IF v_qualifiers_tbl.EXISTS(i) THEN
1761: IF v_qualifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1757: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1758: IF v_qualifiers_tbl.COUNT > 0 THEN
1759: FOR i IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
1760: IF v_qualifiers_tbl.EXISTS(i) THEN
1761: IF v_qualifiers_tbl(i).return_status <> Fnd_Api.g_ret_sts_success THEN
1762: x_error_location := i;
1763: EXIT;
1764: END IF;
1765: END IF;
1766: END LOOP;
1767: END IF;
1768: END IF;
1769:
1770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1771: add_message(x_msg_count);
1772: RAISE Fnd_Api.g_exc_error;
1773: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1774: add_message(x_msg_count);
1768: END IF;
1769:
1770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1771: add_message(x_msg_count);
1772: RAISE Fnd_Api.g_exc_error;
1773: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1774: add_message(x_msg_count);
1775: RAISE Fnd_Api.g_exc_unexpected_error;
1776: END IF;
1769:
1770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1771: add_message(x_msg_count);
1772: RAISE Fnd_Api.g_exc_error;
1773: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1774: add_message(x_msg_count);
1775: RAISE Fnd_Api.g_exc_unexpected_error;
1776: END IF;
1777:
1771: add_message(x_msg_count);
1772: RAISE Fnd_Api.g_exc_error;
1773: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1774: add_message(x_msg_count);
1775: RAISE Fnd_Api.g_exc_unexpected_error;
1776: END IF;
1777:
1778: IF l_qualifier_deleted = 'Y' THEN
1779: UPDATE ozf_offers
1783:
1784: Fnd_Msg_Pub.Count_AND_Get
1785: ( p_count => x_msg_count,
1786: p_data => x_msg_data,
1787: p_encoded => Fnd_Api.G_FALSE
1788: );
1789: IF p_commit = Fnd_Api.g_true THEN
1790: COMMIT WORK;
1791: END IF;
1785: ( p_count => x_msg_count,
1786: p_data => x_msg_data,
1787: p_encoded => Fnd_Api.G_FALSE
1788: );
1789: IF p_commit = Fnd_Api.g_true THEN
1790: COMMIT WORK;
1791: END IF;
1792:
1793: EXCEPTION
1790: COMMIT WORK;
1791: END IF;
1792:
1793: EXCEPTION
1794: WHEN Fnd_Api.G_EXC_ERROR THEN
1795: x_return_status := Fnd_Api.g_ret_sts_error ;
1796: ROLLBACK TO process_market_qualifiers;
1797: Fnd_Msg_Pub.Count_AND_Get
1798: ( p_count => x_msg_count,
1791: END IF;
1792:
1793: EXCEPTION
1794: WHEN Fnd_Api.G_EXC_ERROR THEN
1795: x_return_status := Fnd_Api.g_ret_sts_error ;
1796: ROLLBACK TO process_market_qualifiers;
1797: Fnd_Msg_Pub.Count_AND_Get
1798: ( p_count => x_msg_count,
1799: p_data => x_msg_data,
1796: ROLLBACK TO process_market_qualifiers;
1797: Fnd_Msg_Pub.Count_AND_Get
1798: ( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => Fnd_Api.G_FALSE
1801: );
1802: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1803: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1804: ROLLBACK TO process_market_qualifiers;
1798: ( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => Fnd_Api.G_FALSE
1801: );
1802: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1803: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1804: ROLLBACK TO process_market_qualifiers;
1805: Fnd_Msg_Pub.Count_AND_Get
1806: ( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => Fnd_Api.G_FALSE
1801: );
1802: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1803: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1804: ROLLBACK TO process_market_qualifiers;
1805: Fnd_Msg_Pub.Count_AND_Get
1806: ( p_count => x_msg_count,
1807: p_data => x_msg_data,
1804: ROLLBACK TO process_market_qualifiers;
1805: Fnd_Msg_Pub.Count_AND_Get
1806: ( p_count => x_msg_count,
1807: p_data => x_msg_data,
1808: p_encoded => Fnd_Api.G_FALSE
1809: );
1810: WHEN OTHERS THEN
1811: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1812: ROLLBACK TO process_market_qualifiers;
1807: p_data => x_msg_data,
1808: p_encoded => Fnd_Api.G_FALSE
1809: );
1810: WHEN OTHERS THEN
1811: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1812: ROLLBACK TO process_market_qualifiers;
1813: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1814: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1815: END IF;
1815: END IF;
1816: Fnd_Msg_Pub.Count_AND_Get
1817: ( p_count => x_msg_count,
1818: p_data => x_msg_data,
1819: p_encoded => Fnd_Api.G_FALSE
1820: );
1821: END;
1822:
1823: PROCEDURE offer_budget(
1847:
1848: ----------- initialize -------------
1849: SAVEPOINT offer_budget;
1850:
1851: x_return_status := Fnd_Api.g_ret_sts_success;
1852:
1853: l_act_budgets_rec.act_budget_used_by_id := p_modifier_list_rec.qp_list_header_id;
1854: l_act_budgets_rec.budget_source_id := p_modifier_list_rec.budget_source_id;
1855: l_act_budgets_rec.budget_source_type := p_modifier_list_rec.budget_source_type;--'FUND';
1857: l_act_budgets_rec.arc_act_budget_used_by := 'OFFR';
1858: l_act_budgets_rec.request_currency := nvl(p_modifier_list_rec.transaction_currency_code,FND_PROFILE.VALUE('JTF_PROFILE_DEFAULT_CURRENCY'));
1859: l_act_budgets_rec.approved_in_currency := nvl(p_modifier_list_rec.transaction_currency_code,FND_PROFILE.VALUE('JTF_PROFILE_DEFAULT_CURRENCY'));
1860: IF p_modifier_list_rec.offer_type = 'SCAN_DATA' THEN
1861: IF p_modifier_list_rec.offer_amount = fnd_api.g_miss_num THEN -- calling from offer detail
1862: l_act_budgets_rec.request_amount := p_modifier_list_rec.budget_amount_tc;
1863: END IF;
1864: ELSE
1865: l_act_budgets_rec.request_amount := p_modifier_list_rec.offer_amount;
1867:
1868: IF get_budget_source_count(p_modifier_list_rec.qp_list_header_id) = 0 AND l_act_budgets_rec.request_amount >= 0 THEN
1869: OZF_Actbudgets_Pvt.create_act_budgets(
1870: p_api_version => l_api_version
1871: ,p_init_msg_list => Fnd_Api.g_false
1872: ,p_commit => Fnd_Api.g_false
1873: ,p_validation_level => Fnd_Api.g_valid_level_full
1874: ,x_return_status => x_return_status
1875: ,x_msg_count => x_msg_count
1868: IF get_budget_source_count(p_modifier_list_rec.qp_list_header_id) = 0 AND l_act_budgets_rec.request_amount >= 0 THEN
1869: OZF_Actbudgets_Pvt.create_act_budgets(
1870: p_api_version => l_api_version
1871: ,p_init_msg_list => Fnd_Api.g_false
1872: ,p_commit => Fnd_Api.g_false
1873: ,p_validation_level => Fnd_Api.g_valid_level_full
1874: ,x_return_status => x_return_status
1875: ,x_msg_count => x_msg_count
1876: ,x_msg_data => x_msg_data
1869: OZF_Actbudgets_Pvt.create_act_budgets(
1870: p_api_version => l_api_version
1871: ,p_init_msg_list => Fnd_Api.g_false
1872: ,p_commit => Fnd_Api.g_false
1873: ,p_validation_level => Fnd_Api.g_valid_level_full
1874: ,x_return_status => x_return_status
1875: ,x_msg_count => x_msg_count
1876: ,x_msg_data => x_msg_data
1877: ,p_act_budgets_rec => l_act_budgets_rec
1877: ,p_act_budgets_rec => l_act_budgets_rec
1878: ,x_act_budget_id => l_activity_budget_id
1879: );
1880:
1881: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1882: RAISE Fnd_Api.g_exc_error;
1883: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1884: RAISE Fnd_Api.g_exc_unexpected_error;
1885: END IF;
1878: ,x_act_budget_id => l_activity_budget_id
1879: );
1880:
1881: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1882: RAISE Fnd_Api.g_exc_error;
1883: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1884: RAISE Fnd_Api.g_exc_unexpected_error;
1885: END IF;
1886: ELSE
1879: );
1880:
1881: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1882: RAISE Fnd_Api.g_exc_error;
1883: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1884: RAISE Fnd_Api.g_exc_unexpected_error;
1885: END IF;
1886: ELSE
1887: IF p_operation = 'UPDATE' AND p_modifier_list_rec.offer_type = 'SCAN_DATA' AND get_budget_source_count(p_modifier_list_rec.qp_list_header_id) =1 THEN
1880:
1881: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1882: RAISE Fnd_Api.g_exc_error;
1883: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1884: RAISE Fnd_Api.g_exc_unexpected_error;
1885: END IF;
1886: ELSE
1887: IF p_operation = 'UPDATE' AND p_modifier_list_rec.offer_type = 'SCAN_DATA' AND get_budget_source_count(p_modifier_list_rec.qp_list_header_id) =1 THEN
1888: OPEN cur_get_offer_budget;
1892: ozf_utility_pvt.debug_message('GR: l_act_budgets_rec.budget_source_id: ' || l_act_budgets_rec.budget_source_id);
1893:
1894: OZF_Actbudgets_Pvt.update_act_budgets(
1895: p_api_version => l_api_version
1896: ,p_init_msg_list => Fnd_Api.g_false
1897: ,p_commit => Fnd_Api.g_false
1898: ,p_validation_level => Fnd_Api.g_valid_level_full
1899: ,x_return_status => x_return_status
1900: ,x_msg_count => x_msg_count
1893:
1894: OZF_Actbudgets_Pvt.update_act_budgets(
1895: p_api_version => l_api_version
1896: ,p_init_msg_list => Fnd_Api.g_false
1897: ,p_commit => Fnd_Api.g_false
1898: ,p_validation_level => Fnd_Api.g_valid_level_full
1899: ,x_return_status => x_return_status
1900: ,x_msg_count => x_msg_count
1901: ,x_msg_data => x_msg_data
1894: OZF_Actbudgets_Pvt.update_act_budgets(
1895: p_api_version => l_api_version
1896: ,p_init_msg_list => Fnd_Api.g_false
1897: ,p_commit => Fnd_Api.g_false
1898: ,p_validation_level => Fnd_Api.g_valid_level_full
1899: ,x_return_status => x_return_status
1900: ,x_msg_count => x_msg_count
1901: ,x_msg_data => x_msg_data
1902: ,p_act_budgets_rec => l_act_budgets_rec
1902: ,p_act_budgets_rec => l_act_budgets_rec
1903: );
1904: END IF;
1905:
1906: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1907: RAISE Fnd_Api.g_exc_error;
1908: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1909: RAISE Fnd_Api.g_exc_unexpected_error;
1910: END IF;
1903: );
1904: END IF;
1905:
1906: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1907: RAISE Fnd_Api.g_exc_error;
1908: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1909: RAISE Fnd_Api.g_exc_unexpected_error;
1910: END IF;
1911: END IF;
1904: END IF;
1905:
1906: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1907: RAISE Fnd_Api.g_exc_error;
1908: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1909: RAISE Fnd_Api.g_exc_unexpected_error;
1910: END IF;
1911: END IF;
1912:
1905:
1906: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1907: RAISE Fnd_Api.g_exc_error;
1908: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1909: RAISE Fnd_Api.g_exc_unexpected_error;
1910: END IF;
1911: END IF;
1912:
1913: Fnd_Msg_Pub.Count_AND_Get
1912:
1913: Fnd_Msg_Pub.Count_AND_Get
1914: ( p_count => x_msg_count,
1915: p_data => x_msg_data,
1916: p_encoded => Fnd_Api.G_FALSE
1917: );
1918:
1919: EXCEPTION
1920: WHEN Fnd_Api.G_EXC_ERROR THEN
1916: p_encoded => Fnd_Api.G_FALSE
1917: );
1918:
1919: EXCEPTION
1920: WHEN Fnd_Api.G_EXC_ERROR THEN
1921: x_return_status := Fnd_Api.g_ret_sts_error ;
1922: ROLLBACK TO offer_budget;
1923: Fnd_Msg_Pub.Count_AND_Get
1924: ( p_count => x_msg_count,
1917: );
1918:
1919: EXCEPTION
1920: WHEN Fnd_Api.G_EXC_ERROR THEN
1921: x_return_status := Fnd_Api.g_ret_sts_error ;
1922: ROLLBACK TO offer_budget;
1923: Fnd_Msg_Pub.Count_AND_Get
1924: ( p_count => x_msg_count,
1925: p_data => x_msg_data,
1922: ROLLBACK TO offer_budget;
1923: Fnd_Msg_Pub.Count_AND_Get
1924: ( p_count => x_msg_count,
1925: p_data => x_msg_data,
1926: p_encoded => Fnd_Api.G_FALSE
1927: );
1928: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1929: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1930: ROLLBACK TO offer_budget;
1924: ( p_count => x_msg_count,
1925: p_data => x_msg_data,
1926: p_encoded => Fnd_Api.G_FALSE
1927: );
1928: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1929: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1930: ROLLBACK TO offer_budget;
1931: Fnd_Msg_Pub.Count_AND_Get
1932: ( p_count => x_msg_count,
1925: p_data => x_msg_data,
1926: p_encoded => Fnd_Api.G_FALSE
1927: );
1928: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1929: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
1930: ROLLBACK TO offer_budget;
1931: Fnd_Msg_Pub.Count_AND_Get
1932: ( p_count => x_msg_count,
1933: p_data => x_msg_data,
1930: ROLLBACK TO offer_budget;
1931: Fnd_Msg_Pub.Count_AND_Get
1932: ( p_count => x_msg_count,
1933: p_data => x_msg_data,
1934: p_encoded => Fnd_Api.G_FALSE
1935: );
1936: WHEN OTHERS THEN
1937: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1938: ROLLBACK TO offer_budget;
1933: p_data => x_msg_data,
1934: p_encoded => Fnd_Api.G_FALSE
1935: );
1936: WHEN OTHERS THEN
1937: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
1938: ROLLBACK TO offer_budget;
1939: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
1940: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1941: END IF;
1941: END IF;
1942: Fnd_Msg_Pub.Count_AND_Get
1943: ( p_count => x_msg_count,
1944: p_data => x_msg_data,
1945: p_encoded => Fnd_Api.G_FALSE
1946: );
1947:
1948: END offer_budget;
1949:
1960: l_api_name CONSTANT VARCHAR2(30) := 'offer_object_usage';
1961: l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1962:
1963: l_act_offer_rec OZF_Act_Offers_Pvt.act_offer_rec_type;
1964: l_activity_offer_id NUMBER := Fnd_Api.g_miss_num;
1965:
1966: BEGIN
1967:
1968: ---------- initialize -------------
1967:
1968: ---------- initialize -------------
1969: SAVEPOINT offer_object_usage;
1970:
1971: x_return_status := Fnd_Api.g_ret_sts_success;
1972:
1973: l_act_offer_rec.act_offer_used_by_id := p_modifier_list_rec.offer_used_by_id;
1974: l_act_offer_rec.arc_act_offer_used_by := 'CAMP';
1975: l_act_offer_rec.qp_list_header_id := p_modifier_list_rec.qp_list_header_id;
1977:
1978: OZF_Act_Offers_Pvt.Create_Act_Offer
1979: (
1980: p_api_version => 1.0,
1981: p_init_msg_list => FND_API.g_false,
1982: p_commit => Fnd_Api.g_false,
1983: p_validation_level => Fnd_Api.g_valid_level_full,
1984: x_return_status => x_return_status ,
1985: x_msg_count => x_msg_count,
1978: OZF_Act_Offers_Pvt.Create_Act_Offer
1979: (
1980: p_api_version => 1.0,
1981: p_init_msg_list => FND_API.g_false,
1982: p_commit => Fnd_Api.g_false,
1983: p_validation_level => Fnd_Api.g_valid_level_full,
1984: x_return_status => x_return_status ,
1985: x_msg_count => x_msg_count,
1986: x_msg_data => x_msg_data,
1979: (
1980: p_api_version => 1.0,
1981: p_init_msg_list => FND_API.g_false,
1982: p_commit => Fnd_Api.g_false,
1983: p_validation_level => Fnd_Api.g_valid_level_full,
1984: x_return_status => x_return_status ,
1985: x_msg_count => x_msg_count,
1986: x_msg_data => x_msg_data,
1987: p_act_offer_rec => l_act_offer_rec,
1987: p_act_offer_rec => l_act_offer_rec,
1988: x_act_offer_id => l_activity_offer_id
1989: );
1990:
1991: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1992: RAISE Fnd_Api.g_exc_error;
1993: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1994: RAISE Fnd_Api.g_exc_unexpected_error;
1995: END IF;
1988: x_act_offer_id => l_activity_offer_id
1989: );
1990:
1991: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1992: RAISE Fnd_Api.g_exc_error;
1993: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1994: RAISE Fnd_Api.g_exc_unexpected_error;
1995: END IF;
1996:
1989: );
1990:
1991: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1992: RAISE Fnd_Api.g_exc_error;
1993: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1994: RAISE Fnd_Api.g_exc_unexpected_error;
1995: END IF;
1996:
1997: Fnd_Msg_Pub.Count_AND_Get
1990:
1991: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
1992: RAISE Fnd_Api.g_exc_error;
1993: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
1994: RAISE Fnd_Api.g_exc_unexpected_error;
1995: END IF;
1996:
1997: Fnd_Msg_Pub.Count_AND_Get
1998: ( p_count => x_msg_count,
1996:
1997: Fnd_Msg_Pub.Count_AND_Get
1998: ( p_count => x_msg_count,
1999: p_data => x_msg_data,
2000: p_encoded => Fnd_Api.G_FALSE
2001: );
2002:
2003: EXCEPTION
2004: WHEN Fnd_Api.G_EXC_ERROR THEN
2000: p_encoded => Fnd_Api.G_FALSE
2001: );
2002:
2003: EXCEPTION
2004: WHEN Fnd_Api.G_EXC_ERROR THEN
2005: x_return_status := Fnd_Api.g_ret_sts_error ;
2006: ROLLBACK TO offer_object_usage;
2007: Fnd_Msg_Pub.Count_AND_Get
2008: ( p_count => x_msg_count,
2001: );
2002:
2003: EXCEPTION
2004: WHEN Fnd_Api.G_EXC_ERROR THEN
2005: x_return_status := Fnd_Api.g_ret_sts_error ;
2006: ROLLBACK TO offer_object_usage;
2007: Fnd_Msg_Pub.Count_AND_Get
2008: ( p_count => x_msg_count,
2009: p_data => x_msg_data,
2006: ROLLBACK TO offer_object_usage;
2007: Fnd_Msg_Pub.Count_AND_Get
2008: ( p_count => x_msg_count,
2009: p_data => x_msg_data,
2010: p_encoded => Fnd_Api.G_FALSE
2011: );
2012: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2013: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2014: ROLLBACK TO offer_object_usage;
2008: ( p_count => x_msg_count,
2009: p_data => x_msg_data,
2010: p_encoded => Fnd_Api.G_FALSE
2011: );
2012: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2013: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2014: ROLLBACK TO offer_object_usage;
2015: Fnd_Msg_Pub.Count_AND_Get
2016: ( p_count => x_msg_count,
2009: p_data => x_msg_data,
2010: p_encoded => Fnd_Api.G_FALSE
2011: );
2012: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2013: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2014: ROLLBACK TO offer_object_usage;
2015: Fnd_Msg_Pub.Count_AND_Get
2016: ( p_count => x_msg_count,
2017: p_data => x_msg_data,
2014: ROLLBACK TO offer_object_usage;
2015: Fnd_Msg_Pub.Count_AND_Get
2016: ( p_count => x_msg_count,
2017: p_data => x_msg_data,
2018: p_encoded => Fnd_Api.G_FALSE
2019: );
2020: WHEN OTHERS THEN
2021: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2022: ROLLBACK TO offer_object_usage;
2017: p_data => x_msg_data,
2018: p_encoded => Fnd_Api.G_FALSE
2019: );
2020: WHEN OTHERS THEN
2021: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2022: ROLLBACK TO offer_object_usage;
2023: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
2024: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2025: END IF;
2025: END IF;
2026: Fnd_Msg_Pub.Count_AND_Get
2027: ( p_count => x_msg_count,
2028: p_data => x_msg_data,
2029: p_encoded => Fnd_Api.G_FALSE
2030: );
2031: END offer_object_usage;
2032:
2033:
2054: l_operation VARCHAR2(30);
2055: l_qualifier_rec OZF_OFFER_PVT.qualifiers_Rec_Type;
2056:
2057: BEGIN
2058: x_return_status := FND_API.G_RET_STS_SUCCESS;
2059: debug_message('Sales method flag = : '||p_modifier_list_rec.sales_method_flag);
2060: IF p_modifier_list_rec.sales_method_flag = 'I' OR p_modifier_list_rec.sales_method_flag = 'D' THEN
2061: -- l_qualifier_rec.operation := 'CREATE';
2062: l_qualifier_rec.qualifier_id := FND_API.g_miss_num;
2058: x_return_status := FND_API.G_RET_STS_SUCCESS;
2059: debug_message('Sales method flag = : '||p_modifier_list_rec.sales_method_flag);
2060: IF p_modifier_list_rec.sales_method_flag = 'I' OR p_modifier_list_rec.sales_method_flag = 'D' THEN
2061: -- l_qualifier_rec.operation := 'CREATE';
2062: l_qualifier_rec.qualifier_id := FND_API.g_miss_num;
2063: l_qualifier_rec.qualifier_context := 'SOLD_BY';
2064: l_qualifier_rec.qualifier_attribute := 'QUALIFIER_ATTRIBUTE1';
2065: l_qualifier_rec.qualifier_attr_value := p_modifier_list_rec.sales_method_flag;
2066: l_qualifier_rec.comparison_operator_code := '=';
2081: (
2082: p_api_version_number => p_api_version
2083: , p_init_msg_list => p_init_msg_list
2084: , p_commit => p_commit
2085: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
2086:
2087: , x_return_status => x_return_status
2088: , x_msg_count => x_msg_count
2089: , x_msg_data => x_msg_data
2096: (
2097: p_api_version_number => p_api_version
2098: , p_init_msg_list => p_init_msg_list
2099: , p_commit => p_commit
2100: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
2101:
2102: , x_return_status => x_return_status
2103: , x_msg_count => x_msg_count
2104: , x_msg_data => x_msg_data
2171:
2172: ----------- initialize -------------
2173: SAVEPOINT offer_qualifier;
2174:
2175: x_return_status := Fnd_Api.g_ret_sts_success;
2176:
2177: IF p_modifier_list_rec.modifier_operation ='UPDATE' THEN
2178: OPEN c_qualifier_id(p_modifier_list_rec.qp_list_header_id);
2179: FETCH c_qualifier_id INTO l_qualifier_id;
2178: OPEN c_qualifier_id(p_modifier_list_rec.qp_list_header_id);
2179: FETCH c_qualifier_id INTO l_qualifier_id;
2180: CLOSE c_qualifier_id;
2181:
2182: IF (l_qualifier_id IS NOT NULL AND l_qualifier_id <> FND_API.g_miss_num) THEN
2183: i := i + 1;
2184: l_qualifier_tbl(i).operation := 'DELETE';
2185: l_qualifier_tbl(i).list_header_id := p_modifier_list_rec.qp_list_header_id;
2186: l_qualifier_tbl(i).qualifier_id := l_qualifier_id;
2191: OPEN c_sm_qualifier_id(p_modifier_list_rec.qp_list_header_id);
2192: FETCH c_sm_qualifier_id INTO l_qualifier_id;
2193: CLOSE c_sm_qualifier_id;
2194:
2195: IF (l_qualifier_id IS NOT NULL AND l_qualifier_id <> FND_API.g_miss_num) THEN
2196: i := i + 1;
2197: l_qualifier_tbl(i).operation := 'DELETE';
2198: l_qualifier_tbl(i).list_header_id := p_modifier_list_rec.qp_list_header_id;
2199: l_qualifier_tbl(i).qualifier_id := l_qualifier_id;
2201:
2202: IF l_qualifier_tbl.COUNT > 0 THEN
2203: process_market_qualifiers
2204: (p_api_version => 1.0,
2205: p_init_msg_list => Fnd_Api.g_false,
2206: p_commit => Fnd_Api.g_false,
2207: x_return_status => x_return_status ,
2208: x_msg_count => x_msg_count,
2209: x_msg_data => x_msg_data,
2202: IF l_qualifier_tbl.COUNT > 0 THEN
2203: process_market_qualifiers
2204: (p_api_version => 1.0,
2205: p_init_msg_list => Fnd_Api.g_false,
2206: p_commit => Fnd_Api.g_false,
2207: x_return_status => x_return_status ,
2208: x_msg_count => x_msg_count,
2209: x_msg_data => x_msg_data,
2210: p_qualifiers_tbl => l_qualifier_tbl,
2210: p_qualifiers_tbl => l_qualifier_tbl,
2211: x_error_location => l_error_location,
2212: x_qualifiers_tbl => x_qualifiers_tbl);
2213:
2214: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2215: RAISE Fnd_Api.g_exc_error;
2216: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2217: RAISE Fnd_Api.g_exc_unexpected_error;
2218: END IF;
2211: x_error_location => l_error_location,
2212: x_qualifiers_tbl => x_qualifiers_tbl);
2213:
2214: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2215: RAISE Fnd_Api.g_exc_error;
2216: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2217: RAISE Fnd_Api.g_exc_unexpected_error;
2218: END IF;
2219: END IF; -- FOR l_qualifier_tbl(1).qualifier_id IS NOT NULL, bug fix 3629490
2212: x_qualifiers_tbl => x_qualifiers_tbl);
2213:
2214: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2215: RAISE Fnd_Api.g_exc_error;
2216: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2217: RAISE Fnd_Api.g_exc_unexpected_error;
2218: END IF;
2219: END IF; -- FOR l_qualifier_tbl(1).qualifier_id IS NOT NULL, bug fix 3629490
2220: END IF; -- end UPDATE mode
2213:
2214: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2215: RAISE Fnd_Api.g_exc_error;
2216: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2217: RAISE Fnd_Api.g_exc_unexpected_error;
2218: END IF;
2219: END IF; -- FOR l_qualifier_tbl(1).qualifier_id IS NOT NULL, bug fix 3629490
2220: END IF; -- end UPDATE mode
2221:
2221:
2222: i := 0;
2223: l_qualifier_tbl.DELETE;
2224:
2225: IF (p_modifier_list_rec.ql_qualifier_id <> Fnd_Api.g_miss_num AND p_modifier_list_rec.ql_qualifier_id IS NOT NULL) THEN
2226: i := i+1;
2227: l_qualifier_tbl(i).operation := p_modifier_list_rec.modifier_operation ;
2228: l_qualifier_tbl(i).list_header_id := p_modifier_list_rec.qp_list_header_id;
2229:
2257: l_qualifier_tbl(i).qualifier_grouping_no := 10;
2258: -- rssharma 28-Oct-2002 changed grouping number to -1 from 10
2259:
2260: l_qualifier_tbl(i).operation := 'CREATE';
2261: l_qualifier_tbl(i).qualifier_id := FND_API.g_miss_num;
2262: END IF;
2263:
2264: IF p_modifier_list_rec.sales_method_flag IS NOT NULL AND p_modifier_list_rec.sales_method_flag <> FND_API.g_miss_char THEN
2265: i := i+1;
2260: l_qualifier_tbl(i).operation := 'CREATE';
2261: l_qualifier_tbl(i).qualifier_id := FND_API.g_miss_num;
2262: END IF;
2263:
2264: IF p_modifier_list_rec.sales_method_flag IS NOT NULL AND p_modifier_list_rec.sales_method_flag <> FND_API.g_miss_char THEN
2265: i := i+1;
2266:
2267: IF p_modifier_list_rec.sales_method_flag = 'I' OR p_modifier_list_rec.sales_method_flag = 'D' THEN
2268: l_qualifier_tbl(i).operation := 'CREATE';
2265: i := i+1;
2266:
2267: IF p_modifier_list_rec.sales_method_flag = 'I' OR p_modifier_list_rec.sales_method_flag = 'D' THEN
2268: l_qualifier_tbl(i).operation := 'CREATE';
2269: l_qualifier_tbl(i).qualifier_id := FND_API.g_miss_num;
2270: l_qualifier_tbl(i).qualifier_context := 'SOLD_BY';
2271: l_qualifier_tbl(i).qualifier_attribute := 'QUALIFIER_ATTRIBUTE1';
2272: l_qualifier_tbl(i).qualifier_attr_value := p_modifier_list_rec.sales_method_flag;
2273: l_qualifier_tbl(i).comparison_operator_code := '=';
2275: l_qualifier_tbl(i).list_header_id := p_modifier_list_rec.qp_list_header_id;
2276: END IF;
2277: END IF;
2278:
2279: --raise Fnd_Api.g_exc_error;
2280: IF l_qualifier_tbl.COUNT > 0 THEN
2281: process_market_qualifiers
2282: (p_api_version => 1.0,
2283: p_init_msg_list => Fnd_Api.g_false,
2279: --raise Fnd_Api.g_exc_error;
2280: IF l_qualifier_tbl.COUNT > 0 THEN
2281: process_market_qualifiers
2282: (p_api_version => 1.0,
2283: p_init_msg_list => Fnd_Api.g_false,
2284: p_commit => Fnd_Api.g_false,
2285: x_return_status => x_return_status ,
2286: x_msg_count => x_msg_count,
2287: x_msg_data => x_msg_data,
2280: IF l_qualifier_tbl.COUNT > 0 THEN
2281: process_market_qualifiers
2282: (p_api_version => 1.0,
2283: p_init_msg_list => Fnd_Api.g_false,
2284: p_commit => Fnd_Api.g_false,
2285: x_return_status => x_return_status ,
2286: x_msg_count => x_msg_count,
2287: x_msg_data => x_msg_data,
2288: p_qualifiers_tbl => l_qualifier_tbl,
2288: p_qualifiers_tbl => l_qualifier_tbl,
2289: x_error_location => l_error_location,
2290: x_qualifiers_tbl => x_qualifiers_tbl);
2291:
2292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2293: RAISE Fnd_Api.g_exc_error;
2294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2295: RAISE Fnd_Api.g_exc_unexpected_error;
2296: END IF;
2289: x_error_location => l_error_location,
2290: x_qualifiers_tbl => x_qualifiers_tbl);
2291:
2292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2293: RAISE Fnd_Api.g_exc_error;
2294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2295: RAISE Fnd_Api.g_exc_unexpected_error;
2296: END IF;
2297: END IF;
2290: x_qualifiers_tbl => x_qualifiers_tbl);
2291:
2292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2293: RAISE Fnd_Api.g_exc_error;
2294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2295: RAISE Fnd_Api.g_exc_unexpected_error;
2296: END IF;
2297: END IF;
2298:
2291:
2292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2293: RAISE Fnd_Api.g_exc_error;
2294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2295: RAISE Fnd_Api.g_exc_unexpected_error;
2296: END IF;
2297: END IF;
2298:
2299: Fnd_Msg_Pub.Count_AND_Get
2298:
2299: Fnd_Msg_Pub.Count_AND_Get
2300: ( p_count => x_msg_count,
2301: p_data => x_msg_data,
2302: p_encoded => Fnd_Api.G_FALSE
2303: );
2304:
2305: EXCEPTION
2306: WHEN Fnd_Api.G_EXC_ERROR THEN
2302: p_encoded => Fnd_Api.G_FALSE
2303: );
2304:
2305: EXCEPTION
2306: WHEN Fnd_Api.G_EXC_ERROR THEN
2307: x_return_status := Fnd_Api.g_ret_sts_error ;
2308: ROLLBACK TO offer_qualifier;
2309: Fnd_Msg_Pub.Count_AND_Get
2310: ( p_count => x_msg_count,
2303: );
2304:
2305: EXCEPTION
2306: WHEN Fnd_Api.G_EXC_ERROR THEN
2307: x_return_status := Fnd_Api.g_ret_sts_error ;
2308: ROLLBACK TO offer_qualifier;
2309: Fnd_Msg_Pub.Count_AND_Get
2310: ( p_count => x_msg_count,
2311: p_data => x_msg_data,
2308: ROLLBACK TO offer_qualifier;
2309: Fnd_Msg_Pub.Count_AND_Get
2310: ( p_count => x_msg_count,
2311: p_data => x_msg_data,
2312: p_encoded => Fnd_Api.G_FALSE
2313: );
2314: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2315: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2316: ROLLBACK TO offer_qualifier;
2310: ( p_count => x_msg_count,
2311: p_data => x_msg_data,
2312: p_encoded => Fnd_Api.G_FALSE
2313: );
2314: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2315: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2316: ROLLBACK TO offer_qualifier;
2317: Fnd_Msg_Pub.Count_AND_Get
2318: ( p_count => x_msg_count,
2311: p_data => x_msg_data,
2312: p_encoded => Fnd_Api.G_FALSE
2313: );
2314: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2315: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2316: ROLLBACK TO offer_qualifier;
2317: Fnd_Msg_Pub.Count_AND_Get
2318: ( p_count => x_msg_count,
2319: p_data => x_msg_data,
2316: ROLLBACK TO offer_qualifier;
2317: Fnd_Msg_Pub.Count_AND_Get
2318: ( p_count => x_msg_count,
2319: p_data => x_msg_data,
2320: p_encoded => Fnd_Api.G_FALSE
2321: );
2322: WHEN OTHERS THEN
2323: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2324: ROLLBACK TO offer_qualifier;
2319: p_data => x_msg_data,
2320: p_encoded => Fnd_Api.G_FALSE
2321: );
2322: WHEN OTHERS THEN
2323: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2324: ROLLBACK TO offer_qualifier;
2325: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
2326: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2327: END IF;
2327: END IF;
2328: Fnd_Msg_Pub.Count_AND_Get
2329: ( p_count => x_msg_count,
2330: p_data => x_msg_data,
2331: p_encoded => Fnd_Api.G_FALSE
2332: );
2333: END offer_qualifier;
2334:
2335:
2368:
2369: ----------- initialize -------------
2370: SAVEPOINT vo_qualifier_pvt;
2371:
2372: x_return_status := Fnd_Api.g_ret_sts_success;
2373: IF
2374: (p_modifier_list_rec.ql_qualifier_id <> Fnd_Api.g_miss_num
2375: AND p_modifier_list_rec.ql_qualifier_id IS NOT NULL)
2376: THEN
2370: SAVEPOINT vo_qualifier_pvt;
2371:
2372: x_return_status := Fnd_Api.g_ret_sts_success;
2373: IF
2374: (p_modifier_list_rec.ql_qualifier_id <> Fnd_Api.g_miss_num
2375: AND p_modifier_list_rec.ql_qualifier_id IS NOT NULL)
2376: THEN
2377: -- i := i+1;
2378: -- l_qualifiers_rec.operation := p_modifier_list_rec.modifier_operation ;
2421: (
2422: p_api_version_number => p_api_version
2423: , p_init_msg_list => p_init_msg_list
2424: , p_commit => p_commit
2425: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
2426:
2427: , x_return_status => x_return_status
2428: , x_msg_count => x_msg_count
2429: , x_msg_data => x_msg_data
2436: (
2437: p_api_version_number => p_api_version
2438: , p_init_msg_list => p_init_msg_list
2439: , p_commit => p_commit
2440: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
2441:
2442: , x_return_status => x_return_status
2443: , x_msg_count => x_msg_count
2444: , x_msg_data => x_msg_data
2446: , p_qualifiers_rec => l_qualifiers_rec -- IN OZF_OFFER_PVT.qualifiers_Rec_Type
2447: );
2448: END IF;
2449:
2450: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2451: RAISE Fnd_Api.g_exc_error;
2452: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2453: RAISE Fnd_Api.g_exc_unexpected_error;
2454: END IF;
2447: );
2448: END IF;
2449:
2450: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2451: RAISE Fnd_Api.g_exc_error;
2452: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2453: RAISE Fnd_Api.g_exc_unexpected_error;
2454: END IF;
2455:
2448: END IF;
2449:
2450: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2451: RAISE Fnd_Api.g_exc_error;
2452: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2453: RAISE Fnd_Api.g_exc_unexpected_error;
2454: END IF;
2455:
2456: debug_message('"Calling process sales method');
2449:
2450: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2451: RAISE Fnd_Api.g_exc_error;
2452: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2453: RAISE Fnd_Api.g_exc_unexpected_error;
2454: END IF;
2455:
2456: debug_message('"Calling process sales method');
2457: process_sales_method
2464: , x_msg_count => x_msg_count
2465: , x_msg_data => x_msg_data
2466: );
2467:
2468: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2469: RAISE Fnd_Api.g_exc_error;
2470: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2471: RAISE Fnd_Api.g_exc_unexpected_error;
2472: END IF;
2465: , x_msg_data => x_msg_data
2466: );
2467:
2468: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2469: RAISE Fnd_Api.g_exc_error;
2470: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2471: RAISE Fnd_Api.g_exc_unexpected_error;
2472: END IF;
2473:
2466: );
2467:
2468: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2469: RAISE Fnd_Api.g_exc_error;
2470: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2471: RAISE Fnd_Api.g_exc_unexpected_error;
2472: END IF;
2473:
2474:
2467:
2468: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2469: RAISE Fnd_Api.g_exc_error;
2470: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2471: RAISE Fnd_Api.g_exc_unexpected_error;
2472: END IF;
2473:
2474:
2475: Fnd_Msg_Pub.Count_AND_Get
2474:
2475: Fnd_Msg_Pub.Count_AND_Get
2476: ( p_count => x_msg_count,
2477: p_data => x_msg_data,
2478: p_encoded => Fnd_Api.G_FALSE
2479: );
2480: END IF;
2481: EXCEPTION
2482: WHEN Fnd_Api.G_EXC_ERROR THEN
2478: p_encoded => Fnd_Api.G_FALSE
2479: );
2480: END IF;
2481: EXCEPTION
2482: WHEN Fnd_Api.G_EXC_ERROR THEN
2483: x_return_status := Fnd_Api.g_ret_sts_error ;
2484: ROLLBACK TO vo_qualifier_pvt;
2485: Fnd_Msg_Pub.Count_AND_Get
2486: ( p_count => x_msg_count,
2479: );
2480: END IF;
2481: EXCEPTION
2482: WHEN Fnd_Api.G_EXC_ERROR THEN
2483: x_return_status := Fnd_Api.g_ret_sts_error ;
2484: ROLLBACK TO vo_qualifier_pvt;
2485: Fnd_Msg_Pub.Count_AND_Get
2486: ( p_count => x_msg_count,
2487: p_data => x_msg_data,
2484: ROLLBACK TO vo_qualifier_pvt;
2485: Fnd_Msg_Pub.Count_AND_Get
2486: ( p_count => x_msg_count,
2487: p_data => x_msg_data,
2488: p_encoded => Fnd_Api.G_FALSE
2489: );
2490: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2491: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2492: ROLLBACK TO vo_qualifier_pvt;
2486: ( p_count => x_msg_count,
2487: p_data => x_msg_data,
2488: p_encoded => Fnd_Api.G_FALSE
2489: );
2490: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2491: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2492: ROLLBACK TO vo_qualifier_pvt;
2493: Fnd_Msg_Pub.Count_AND_Get
2494: ( p_count => x_msg_count,
2487: p_data => x_msg_data,
2488: p_encoded => Fnd_Api.G_FALSE
2489: );
2490: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2491: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2492: ROLLBACK TO vo_qualifier_pvt;
2493: Fnd_Msg_Pub.Count_AND_Get
2494: ( p_count => x_msg_count,
2495: p_data => x_msg_data,
2492: ROLLBACK TO vo_qualifier_pvt;
2493: Fnd_Msg_Pub.Count_AND_Get
2494: ( p_count => x_msg_count,
2495: p_data => x_msg_data,
2496: p_encoded => Fnd_Api.G_FALSE
2497: );
2498: WHEN OTHERS THEN
2499: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2500: ROLLBACK TO vo_qualifier_pvt;
2495: p_data => x_msg_data,
2496: p_encoded => Fnd_Api.G_FALSE
2497: );
2498: WHEN OTHERS THEN
2499: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2500: ROLLBACK TO vo_qualifier_pvt;
2501: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
2502: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2503: END IF;
2503: END IF;
2504: Fnd_Msg_Pub.Count_AND_Get
2505: ( p_count => x_msg_count,
2506: p_data => x_msg_data,
2507: p_encoded => Fnd_Api.G_FALSE
2508: );
2509: END vo_qualifier;
2510:
2511:
2515: x_limits_rec OUT NOCOPY QP_Limits_PUB.Limits_Rec_Type,
2516: p_limit_exceed_action_code IN VARCHAR2 DEFAULT NULL) IS
2517: BEGIN
2518:
2519: IF p_limit_exceed_action_code IS NOT NULL AND p_limit_exceed_action_code <> FND_API.G_MISS_CHAR THEN
2520: x_limits_rec.limit_exceed_action_code := p_limit_exceed_action_code;
2521: END IF;
2522:
2523: x_limits_rec.limit_hold_flag := 'Y';
2564: x_return_status OUT NOCOPY VARCHAR2
2565: ,x_msg_count OUT NOCOPY NUMBER
2566: ,x_msg_data OUT NOCOPY VARCHAR2
2567: ,p_limit_type IN VARCHAR2
2568: ,p_limit_amount IN NUMBER DEFAULT fnd_api.g_miss_num
2569: ,p_list_line_id IN NUMBER DEFAULT fnd_api.g_miss_num
2570: ,p_list_header_id IN NUMBER
2571: ,p_limit_id IN NUMBER DEFAULT fnd_api.g_miss_num
2572: ,p_limit_exceed_action_code IN VARCHAR2 DEFAULT NULL
2565: ,x_msg_count OUT NOCOPY NUMBER
2566: ,x_msg_data OUT NOCOPY VARCHAR2
2567: ,p_limit_type IN VARCHAR2
2568: ,p_limit_amount IN NUMBER DEFAULT fnd_api.g_miss_num
2569: ,p_list_line_id IN NUMBER DEFAULT fnd_api.g_miss_num
2570: ,p_list_header_id IN NUMBER
2571: ,p_limit_id IN NUMBER DEFAULT fnd_api.g_miss_num
2572: ,p_limit_exceed_action_code IN VARCHAR2 DEFAULT NULL
2573: )
2567: ,p_limit_type IN VARCHAR2
2568: ,p_limit_amount IN NUMBER DEFAULT fnd_api.g_miss_num
2569: ,p_list_line_id IN NUMBER DEFAULT fnd_api.g_miss_num
2570: ,p_list_header_id IN NUMBER
2571: ,p_limit_id IN NUMBER DEFAULT fnd_api.g_miss_num
2572: ,p_limit_exceed_action_code IN VARCHAR2 DEFAULT NULL
2573: )
2574: IS
2575:
2594: v_limit_balances_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
2595: v_limit_balances_val_tbl QP_Limits_PUB.Limit_Balances_Val_Tbl_Type;
2596:
2597: BEGIN
2598: x_return_status := fnd_api.g_ret_sts_success;
2599:
2600: IF p_limit_id = fnd_api.g_miss_num
2601: AND ( p_limit_amount = fnd_api.g_miss_num or p_limit_amount IS NULL) THEN
2602: RETURN;
2596:
2597: BEGIN
2598: x_return_status := fnd_api.g_ret_sts_success;
2599:
2600: IF p_limit_id = fnd_api.g_miss_num
2601: AND ( p_limit_amount = fnd_api.g_miss_num or p_limit_amount IS NULL) THEN
2602: RETURN;
2603: END IF;
2604:
2597: BEGIN
2598: x_return_status := fnd_api.g_ret_sts_success;
2599:
2600: IF p_limit_id = fnd_api.g_miss_num
2601: AND ( p_limit_amount = fnd_api.g_miss_num or p_limit_amount IS NULL) THEN
2602: RETURN;
2603: END IF;
2604:
2605: IF p_limit_type = 'MAX_QTY_PER_ORDER' THEN
2621: IF l_limit_exists > 0 THEN
2622: IF p_limit_amount IS NULL THEN
2623: l_limits_rec.operation := 'DELETE';
2624: l_limits_rec.limit_id := p_limit_id;
2625: ELSIF p_limit_amount <> fnd_api.g_miss_num THEN
2626: l_limits_rec.operation := 'UPDATE';
2627: l_limits_rec.limit_id := p_limit_id;
2628: l_limits_rec.amount := p_limit_amount;
2629: END IF;
2628: l_limits_rec.amount := p_limit_amount;
2629: END IF;
2630: ELSE
2631: --nirprasa
2632: IF p_limit_exceed_action_code IS NOT NULL AND p_limit_exceed_action_code <> FND_API.G_MISS_CHAR THEN
2633: populate_limits_rec(p_limit_type,l_limits_rec,p_limit_exceed_action_code);
2634: ELSE
2635: populate_limits_rec(p_limit_type,l_limits_rec);
2636: END IF;
2643: -- as per suggetsion from Renuka and Karan for error message
2644: -- ORA-01400: cannot insert NULL into ("QP"."QP_LIMITS"."AMOUNT") in Package QP_Limits_Util Procedure
2645:
2646: IF l_limits_rec.amount IS NOT NULL AND
2647: l_limits_rec.amount <> FND_API.G_MISS_NUM THEN
2648:
2649: QP_Limits_PUB.Process_Limits
2650: ( p_init_msg_list => FND_API.g_true,
2651: p_api_version_number => 1.0,
2646: IF l_limits_rec.amount IS NOT NULL AND
2647: l_limits_rec.amount <> FND_API.G_MISS_NUM THEN
2648:
2649: QP_Limits_PUB.Process_Limits
2650: ( p_init_msg_list => FND_API.g_true,
2651: p_api_version_number => 1.0,
2652: p_commit => FND_API.g_false,
2653: x_return_status => x_return_status,
2654: x_msg_count => x_msg_count,
2648:
2649: QP_Limits_PUB.Process_Limits
2650: ( p_init_msg_list => FND_API.g_true,
2651: p_api_version_number => 1.0,
2652: p_commit => FND_API.g_false,
2653: x_return_status => x_return_status,
2654: x_msg_count => x_msg_count,
2655: x_msg_data => x_msg_data,
2656: p_LIMITS_rec => l_limits_rec,
2663: );
2664:
2665: END IF;
2666:
2667: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2668: add_message(x_msg_count);
2669: RAISE Fnd_Api.g_exc_error;
2670: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2671: add_message(x_msg_count);
2665: END IF;
2666:
2667: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2668: add_message(x_msg_count);
2669: RAISE Fnd_Api.g_exc_error;
2670: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2671: add_message(x_msg_count);
2672: RAISE Fnd_Api.g_exc_unexpected_error;
2673: END IF;
2666:
2667: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2668: add_message(x_msg_count);
2669: RAISE Fnd_Api.g_exc_error;
2670: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2671: add_message(x_msg_count);
2672: RAISE Fnd_Api.g_exc_unexpected_error;
2673: END IF;
2674: Fnd_Msg_Pub.Count_AND_Get
2668: add_message(x_msg_count);
2669: RAISE Fnd_Api.g_exc_error;
2670: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2671: add_message(x_msg_count);
2672: RAISE Fnd_Api.g_exc_unexpected_error;
2673: END IF;
2674: Fnd_Msg_Pub.Count_AND_Get
2675: ( p_count => x_msg_count,
2676: p_data => x_msg_data,
2673: END IF;
2674: Fnd_Msg_Pub.Count_AND_Get
2675: ( p_count => x_msg_count,
2676: p_data => x_msg_data,
2677: p_encoded => Fnd_Api.G_FALSE
2678: );
2679:
2680: EXCEPTION
2681: WHEN Fnd_Api.G_EXC_ERROR THEN
2677: p_encoded => Fnd_Api.G_FALSE
2678: );
2679:
2680: EXCEPTION
2681: WHEN Fnd_Api.G_EXC_ERROR THEN
2682: x_return_status := Fnd_Api.g_ret_sts_error ;
2683: Fnd_Msg_Pub.Count_AND_Get
2684: ( p_count => x_msg_count,
2685: p_data => x_msg_data,
2678: );
2679:
2680: EXCEPTION
2681: WHEN Fnd_Api.G_EXC_ERROR THEN
2682: x_return_status := Fnd_Api.g_ret_sts_error ;
2683: Fnd_Msg_Pub.Count_AND_Get
2684: ( p_count => x_msg_count,
2685: p_data => x_msg_data,
2686: p_encoded => Fnd_Api.G_FALSE
2682: x_return_status := Fnd_Api.g_ret_sts_error ;
2683: Fnd_Msg_Pub.Count_AND_Get
2684: ( p_count => x_msg_count,
2685: p_data => x_msg_data,
2686: p_encoded => Fnd_Api.G_FALSE
2687: );
2688: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2689: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2690: Fnd_Msg_Pub.Count_AND_Get
2684: ( p_count => x_msg_count,
2685: p_data => x_msg_data,
2686: p_encoded => Fnd_Api.G_FALSE
2687: );
2688: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2689: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2690: Fnd_Msg_Pub.Count_AND_Get
2691: ( p_count => x_msg_count,
2692: p_data => x_msg_data,
2685: p_data => x_msg_data,
2686: p_encoded => Fnd_Api.G_FALSE
2687: );
2688: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
2689: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2690: Fnd_Msg_Pub.Count_AND_Get
2691: ( p_count => x_msg_count,
2692: p_data => x_msg_data,
2693: p_encoded => Fnd_Api.G_FALSE
2689: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2690: Fnd_Msg_Pub.Count_AND_Get
2691: ( p_count => x_msg_count,
2692: p_data => x_msg_data,
2693: p_encoded => Fnd_Api.G_FALSE
2694: );
2695: WHEN OTHERS THEN
2696: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2697: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
2692: p_data => x_msg_data,
2693: p_encoded => Fnd_Api.G_FALSE
2694: );
2695: WHEN OTHERS THEN
2696: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
2697: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
2698: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2699: END IF;
2700: Fnd_Msg_Pub.Count_AND_Get
2699: END IF;
2700: Fnd_Msg_Pub.Count_AND_Get
2701: ( p_count => x_msg_count,
2702: p_data => x_msg_data,
2703: p_encoded => Fnd_Api.G_FALSE
2704: );
2705: END process_limits;
2706:
2707:
2758: BEGIN
2759: SAVEPOINT post_lumpsum_offer;
2760:
2761: -- Standard call to check for call compatibility.
2762: IF NOT FND_API.Compatible_API_Call ( l_api_version,
2763: p_api_version,
2764: l_api_name,
2765: G_PKG_NAME)
2766: THEN
2763: p_api_version,
2764: l_api_name,
2765: G_PKG_NAME)
2766: THEN
2767: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2768: END IF;
2769:
2770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2771: FND_MSG_PUB.initialize;
2766: THEN
2767: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2768: END IF;
2769:
2770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2771: FND_MSG_PUB.initialize;
2772: END IF;
2773:
2774: x_return_status := FND_API.G_RET_STS_SUCCESS;
2770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2771: FND_MSG_PUB.initialize;
2772: END IF;
2773:
2774: x_return_status := FND_API.G_RET_STS_SUCCESS;
2775:
2776: OPEN c_old_user_status_id;
2777: FETCH c_old_user_status_id INTO l_old_status_id;
2778: CLOSE c_old_user_status_id;
2787: x_approval_type => l_approval_type,
2788: x_return_status => x_return_status
2789: );
2790:
2791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2792: RAISE Fnd_Api.g_exc_error;
2793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2794: RAISE Fnd_Api.g_exc_unexpected_error;
2795: END IF;
2788: x_return_status => x_return_status
2789: );
2790:
2791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2792: RAISE Fnd_Api.g_exc_error;
2793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2794: RAISE Fnd_Api.g_exc_unexpected_error;
2795: END IF;
2796:
2789: );
2790:
2791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2792: RAISE Fnd_Api.g_exc_error;
2793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2794: RAISE Fnd_Api.g_exc_unexpected_error;
2795: END IF;
2796:
2797: OZF_Fund_Adjustment_PVT.post_utilized_budget(
2790:
2791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2792: RAISE Fnd_Api.g_exc_error;
2793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2794: RAISE Fnd_Api.g_exc_unexpected_error;
2795: END IF;
2796:
2797: OZF_Fund_Adjustment_PVT.post_utilized_budget(
2798: p_offer_id => p_offer_rec.qp_list_header_id
2798: p_offer_id => p_offer_rec.qp_list_header_id
2799: ,p_offer_type => 'LUMPSUM'
2800: ,p_api_version => p_api_version
2801: ,p_init_msg_list => p_init_msg_list
2802: ,p_commit => FND_API.G_FALSE
2803: ,x_msg_count => x_msg_count
2804: ,x_msg_data => x_msg_data
2805: ,x_return_status => x_return_status);
2806:
2803: ,x_msg_count => x_msg_count
2804: ,x_msg_data => x_msg_data
2805: ,x_return_status => x_return_status);
2806:
2807: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2808: RAISE FND_API.G_EXC_ERROR;
2809: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2810: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2811: END IF;
2804: ,x_msg_data => x_msg_data
2805: ,x_return_status => x_return_status);
2806:
2807: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2808: RAISE FND_API.G_EXC_ERROR;
2809: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2810: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2811: END IF;
2812:
2805: ,x_return_status => x_return_status);
2806:
2807: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2808: RAISE FND_API.G_EXC_ERROR;
2809: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2810: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2811: END IF;
2812:
2813: FND_MSG_PUB.Count_And_Get
2806:
2807: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2808: RAISE FND_API.G_EXC_ERROR;
2809: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2810: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2811: END IF;
2812:
2813: FND_MSG_PUB.Count_And_Get
2814: (
2813: FND_MSG_PUB.Count_And_Get
2814: (
2815: p_count => x_msg_count,
2816: p_data => x_msg_data,
2817: p_encoded => FND_API.G_FALSE
2818: );
2819:
2820: EXCEPTION
2821: WHEN FND_API.G_EXC_ERROR THEN
2817: p_encoded => FND_API.G_FALSE
2818: );
2819:
2820: EXCEPTION
2821: WHEN FND_API.G_EXC_ERROR THEN
2822: x_return_status := FND_API.g_ret_sts_error ;
2823: ROLLBACK TO post_lumpsum_offer;
2824: FND_MSG_PUB.Count_AND_Get
2825: ( p_count => l_msg_count,
2818: );
2819:
2820: EXCEPTION
2821: WHEN FND_API.G_EXC_ERROR THEN
2822: x_return_status := FND_API.g_ret_sts_error ;
2823: ROLLBACK TO post_lumpsum_offer;
2824: FND_MSG_PUB.Count_AND_Get
2825: ( p_count => l_msg_count,
2826: p_data => l_msg_data,
2823: ROLLBACK TO post_lumpsum_offer;
2824: FND_MSG_PUB.Count_AND_Get
2825: ( p_count => l_msg_count,
2826: p_data => l_msg_data,
2827: p_encoded => FND_API.G_FALSE
2828: );
2829: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2830: x_return_status := FND_API.g_ret_sts_unexp_error ;
2831: ROLLBACK TO post_lumpsum_offer;
2825: ( p_count => l_msg_count,
2826: p_data => l_msg_data,
2827: p_encoded => FND_API.G_FALSE
2828: );
2829: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2830: x_return_status := FND_API.g_ret_sts_unexp_error ;
2831: ROLLBACK TO post_lumpsum_offer;
2832: FND_MSG_PUB.Count_AND_Get
2833: ( p_count => l_msg_count,
2826: p_data => l_msg_data,
2827: p_encoded => FND_API.G_FALSE
2828: );
2829: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2830: x_return_status := FND_API.g_ret_sts_unexp_error ;
2831: ROLLBACK TO post_lumpsum_offer;
2832: FND_MSG_PUB.Count_AND_Get
2833: ( p_count => l_msg_count,
2834: p_data => l_msg_data,
2831: ROLLBACK TO post_lumpsum_offer;
2832: FND_MSG_PUB.Count_AND_Get
2833: ( p_count => l_msg_count,
2834: p_data => l_msg_data,
2835: p_encoded => FND_API.G_FALSE
2836: );
2837: WHEN OTHERS THEN
2838: x_return_status := FND_API.g_ret_sts_unexp_error ;
2839: ROLLBACK TO post_lumpsum_offer;
2834: p_data => l_msg_data,
2835: p_encoded => FND_API.G_FALSE
2836: );
2837: WHEN OTHERS THEN
2838: x_return_status := FND_API.g_ret_sts_unexp_error ;
2839: ROLLBACK TO post_lumpsum_offer;
2840: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2841: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2842: END IF;
2842: END IF;
2843: FND_MSG_PUB.Count_AND_Get
2844: ( p_count => l_msg_count,
2845: p_data => l_msg_data,
2846: p_encoded => FND_API.G_FALSE
2847: );
2848:
2849: END Post_Lumpsum_Offer ;
2850:
2902: BEGIN
2903: SAVEPOINT post_scan_data_offer;
2904:
2905: -- Standard call to check for call compatibility.
2906: IF NOT FND_API.Compatible_API_Call ( l_api_version,
2907: p_api_version,
2908: l_api_name,
2909: G_PKG_NAME)
2910: THEN
2907: p_api_version,
2908: l_api_name,
2909: G_PKG_NAME)
2910: THEN
2911: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2912: END IF;
2913:
2914: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2915: FND_MSG_PUB.initialize;
2910: THEN
2911: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2912: END IF;
2913:
2914: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2915: FND_MSG_PUB.initialize;
2916: END IF;
2917:
2918: x_return_status := FND_API.G_RET_STS_SUCCESS;
2914: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2915: FND_MSG_PUB.initialize;
2916: END IF;
2917:
2918: x_return_status := FND_API.G_RET_STS_SUCCESS;
2919:
2920: OPEN c_old_user_status_id;
2921: FETCH c_old_user_status_id INTO l_old_status_id;
2922: CLOSE c_old_user_status_id;
2931: x_approval_type => l_approval_type,
2932: x_return_status => x_return_status
2933: );
2934:
2935: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2936: RAISE Fnd_Api.g_exc_error;
2937: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2938: RAISE Fnd_Api.g_exc_unexpected_error;
2939: END IF;
2932: x_return_status => x_return_status
2933: );
2934:
2935: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2936: RAISE Fnd_Api.g_exc_error;
2937: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2938: RAISE Fnd_Api.g_exc_unexpected_error;
2939: END IF;
2940:
2933: );
2934:
2935: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2936: RAISE Fnd_Api.g_exc_error;
2937: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2938: RAISE Fnd_Api.g_exc_unexpected_error;
2939: END IF;
2940:
2941: OZF_Fund_Adjustment_PVT.post_utilized_budget(
2934:
2935: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
2936: RAISE Fnd_Api.g_exc_error;
2937: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2938: RAISE Fnd_Api.g_exc_unexpected_error;
2939: END IF;
2940:
2941: OZF_Fund_Adjustment_PVT.post_utilized_budget(
2942: p_offer_id => p_offer_rec.qp_list_header_id
2947: ,x_msg_count => x_msg_count
2948: ,x_msg_data => x_msg_data
2949: ,x_return_status => x_return_status);
2950:
2951: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2952: RAISE FND_API.G_EXC_ERROR;
2953: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2954: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2955: END IF;
2948: ,x_msg_data => x_msg_data
2949: ,x_return_status => x_return_status);
2950:
2951: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2952: RAISE FND_API.G_EXC_ERROR;
2953: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2954: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2955: END IF;
2956:
2949: ,x_return_status => x_return_status);
2950:
2951: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2952: RAISE FND_API.G_EXC_ERROR;
2953: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2954: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2955: END IF;
2956:
2957: FND_MSG_PUB.Count_And_Get
2950:
2951: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2952: RAISE FND_API.G_EXC_ERROR;
2953: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2954: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2955: END IF;
2956:
2957: FND_MSG_PUB.Count_And_Get
2958: (
2957: FND_MSG_PUB.Count_And_Get
2958: (
2959: p_count => x_msg_count,
2960: p_data => x_msg_data,
2961: p_encoded => FND_API.G_FALSE
2962: );
2963:
2964: EXCEPTION
2965: WHEN FND_API.G_EXC_ERROR THEN
2961: p_encoded => FND_API.G_FALSE
2962: );
2963:
2964: EXCEPTION
2965: WHEN FND_API.G_EXC_ERROR THEN
2966: x_return_status := FND_API.g_ret_sts_error ;
2967: ROLLBACK TO post_scan_data_offer;
2968: FND_MSG_PUB.Count_AND_Get
2969: ( p_count => l_msg_count,
2962: );
2963:
2964: EXCEPTION
2965: WHEN FND_API.G_EXC_ERROR THEN
2966: x_return_status := FND_API.g_ret_sts_error ;
2967: ROLLBACK TO post_scan_data_offer;
2968: FND_MSG_PUB.Count_AND_Get
2969: ( p_count => l_msg_count,
2970: p_data => l_msg_data,
2967: ROLLBACK TO post_scan_data_offer;
2968: FND_MSG_PUB.Count_AND_Get
2969: ( p_count => l_msg_count,
2970: p_data => l_msg_data,
2971: p_encoded => FND_API.G_FALSE
2972: );
2973: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2974: x_return_status := FND_API.g_ret_sts_unexp_error ;
2975: ROLLBACK TO post_scan_data_offer;
2969: ( p_count => l_msg_count,
2970: p_data => l_msg_data,
2971: p_encoded => FND_API.G_FALSE
2972: );
2973: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2974: x_return_status := FND_API.g_ret_sts_unexp_error ;
2975: ROLLBACK TO post_scan_data_offer;
2976: FND_MSG_PUB.Count_AND_Get
2977: ( p_count => l_msg_count,
2970: p_data => l_msg_data,
2971: p_encoded => FND_API.G_FALSE
2972: );
2973: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2974: x_return_status := FND_API.g_ret_sts_unexp_error ;
2975: ROLLBACK TO post_scan_data_offer;
2976: FND_MSG_PUB.Count_AND_Get
2977: ( p_count => l_msg_count,
2978: p_data => l_msg_data,
2975: ROLLBACK TO post_scan_data_offer;
2976: FND_MSG_PUB.Count_AND_Get
2977: ( p_count => l_msg_count,
2978: p_data => l_msg_data,
2979: p_encoded => FND_API.G_FALSE
2980: );
2981: WHEN OTHERS THEN
2982: x_return_status := FND_API.g_ret_sts_unexp_error ;
2983: ROLLBACK TO post_scan_data_offer;
2978: p_data => l_msg_data,
2979: p_encoded => FND_API.G_FALSE
2980: );
2981: WHEN OTHERS THEN
2982: x_return_status := FND_API.g_ret_sts_unexp_error ;
2983: ROLLBACK TO post_scan_data_offer;
2984: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2985: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2986: END IF;
2986: END IF;
2987: FND_MSG_PUB.Count_AND_Get
2988: ( p_count => l_msg_count,
2989: p_data => l_msg_data,
2990: p_encoded => FND_API.G_FALSE
2991: );
2992:
2993: END Post_Scan_Data_Offer ;
2994:
3040: l_msg_count NUMBER;
3041: l_creation_date DATE;
3042:
3043: BEGIN
3044: IF NOT FND_API.Compatible_API_Call ( l_api_version,
3045: p_api_version,
3046: l_api_name,
3047: G_PKG_NAME)
3048: THEN
3045: p_api_version,
3046: l_api_name,
3047: G_PKG_NAME)
3048: THEN
3049: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3050: END IF;
3051:
3052: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3053: FND_MSG_PUB.initialize;
3048: THEN
3049: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3050: END IF;
3051:
3052: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3053: FND_MSG_PUB.initialize;
3054: END IF;
3055:
3056: x_return_status := FND_API.G_RET_STS_SUCCESS;
3052: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3053: FND_MSG_PUB.initialize;
3054: END IF;
3055:
3056: x_return_status := FND_API.G_RET_STS_SUCCESS;
3057: /*
3058: IF p_offer_rec.start_date_active IS NOT NULL
3059: AND p_offer_rec.start_date_active <> FND_API.G_MISS_DATE THEN
3060: IF p_offer_rec.offer_operation = 'CREATE' THEN
3055:
3056: x_return_status := FND_API.G_RET_STS_SUCCESS;
3057: /*
3058: IF p_offer_rec.start_date_active IS NOT NULL
3059: AND p_offer_rec.start_date_active <> FND_API.G_MISS_DATE THEN
3060: IF p_offer_rec.offer_operation = 'CREATE' THEN
3061: IF p_offer_rec.start_date_active < TRUNC(SYSDATE) THEN
3062: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3063: Fnd_Message.SET_NAME('OZF','OZF_OFFR_STARTDATE_LT_SYSDATE');
3061: IF p_offer_rec.start_date_active < TRUNC(SYSDATE) THEN
3062: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3063: Fnd_Message.SET_NAME('OZF','OZF_OFFR_STARTDATE_LT_SYSDATE');
3064: Fnd_Msg_Pub.ADD;
3065: RAISE FND_API.G_EXC_ERROR;
3066: END IF;
3067: END IF;
3068: ELSIF p_offer_rec.offer_operation = 'UPDATE' THEN
3069: OPEN c_creation_date(p_offer_rec.qp_list_header_id);
3072: IF p_offer_rec.start_date_active < l_creation_date THEN
3073: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3074: Fnd_Message.SET_NAME('OZF','OZF_OFFR_STARTDATE_LT_CREDATE');
3075: Fnd_Msg_Pub.ADD;
3076: RAISE FND_API.G_EXC_ERROR;
3077: END IF;
3078: END IF;
3079: END IF;
3080: END IF;
3079: END IF;
3080: END IF;
3081: */
3082: IF p_offer_rec.end_date_active IS NOT NULL
3083: AND p_offer_rec.end_date_active <> FND_API.G_MISS_DATE THEN
3084: IF p_offer_rec.offer_operation = 'CREATE' THEN
3085: IF p_offer_rec.end_date_active < TRUNC(SYSDATE) THEN
3086: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3087: Fnd_Message.SET_NAME('OZF','OZF_OFFR_ENDDATE_LT_SYSDATE');
3085: IF p_offer_rec.end_date_active < TRUNC(SYSDATE) THEN
3086: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3087: Fnd_Message.SET_NAME('OZF','OZF_OFFR_ENDDATE_LT_SYSDATE');
3088: Fnd_Msg_Pub.ADD;
3089: RAISE FND_API.G_EXC_ERROR;
3090: END IF;
3091: END IF;
3092: ELSIF p_offer_rec.offer_operation = 'UPDATE' THEN
3093: OPEN c_creation_date(p_offer_rec.qp_list_header_id);
3096: IF p_offer_rec.end_date_active < l_creation_date THEN
3097: IF p_offer_rec.offer_type <> 'NET_ACCRUAL' AND p_offer_rec.custom_setup_id <> 117 THEN
3098: Fnd_Message.SET_NAME('OZF','OZF_OFFR_ENDDATE_LT_CREDATE');
3099: Fnd_Msg_Pub.ADD;
3100: RAISE FND_API.G_EXC_ERROR;
3101: END IF;
3102: END IF;
3103: END IF;
3104: END IF;
3107: OR (p_offer_rec.offer_type = 'LUMPSUM' AND p_offer_rec.custom_setup_id <> 110) -- not applicable to soft fund
3108: THEN
3109: IF p_offer_rec.start_date_active IS NULL THEN
3110: ozf_utility_pvt.error_message('OZF_OFFR_NO_START_DATE');
3111: RAISE FND_API.G_EXC_ERROR;
3112: END IF;
3113: END IF;
3114:
3115: EXCEPTION
3112: END IF;
3113: END IF;
3114:
3115: EXCEPTION
3116: WHEN FND_API.G_EXC_ERROR THEN
3117: x_return_status := FND_API.g_ret_sts_error ;
3118: FND_MSG_PUB.Count_AND_Get
3119: ( p_count => l_msg_count,
3120: p_data => l_msg_data,
3113: END IF;
3114:
3115: EXCEPTION
3116: WHEN FND_API.G_EXC_ERROR THEN
3117: x_return_status := FND_API.g_ret_sts_error ;
3118: FND_MSG_PUB.Count_AND_Get
3119: ( p_count => l_msg_count,
3120: p_data => l_msg_data,
3121: p_encoded => FND_API.G_FALSE
3117: x_return_status := FND_API.g_ret_sts_error ;
3118: FND_MSG_PUB.Count_AND_Get
3119: ( p_count => l_msg_count,
3120: p_data => l_msg_data,
3121: p_encoded => FND_API.G_FALSE
3122: );
3123: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3124: x_return_status := FND_API.g_ret_sts_unexp_error ;
3125: FND_MSG_PUB.Count_AND_Get
3119: ( p_count => l_msg_count,
3120: p_data => l_msg_data,
3121: p_encoded => FND_API.G_FALSE
3122: );
3123: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3124: x_return_status := FND_API.g_ret_sts_unexp_error ;
3125: FND_MSG_PUB.Count_AND_Get
3126: ( p_count => l_msg_count,
3127: p_data => l_msg_data,
3120: p_data => l_msg_data,
3121: p_encoded => FND_API.G_FALSE
3122: );
3123: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3124: x_return_status := FND_API.g_ret_sts_unexp_error ;
3125: FND_MSG_PUB.Count_AND_Get
3126: ( p_count => l_msg_count,
3127: p_data => l_msg_data,
3128: p_encoded => FND_API.G_FALSE
3124: x_return_status := FND_API.g_ret_sts_unexp_error ;
3125: FND_MSG_PUB.Count_AND_Get
3126: ( p_count => l_msg_count,
3127: p_data => l_msg_data,
3128: p_encoded => FND_API.G_FALSE
3129: );
3130: WHEN OTHERS THEN
3131: x_return_status := FND_API.g_ret_sts_unexp_error ;
3132: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3127: p_data => l_msg_data,
3128: p_encoded => FND_API.G_FALSE
3129: );
3130: WHEN OTHERS THEN
3131: x_return_status := FND_API.g_ret_sts_unexp_error ;
3132: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3133: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3134: END IF;
3135: FND_MSG_PUB.Count_AND_Get
3134: END IF;
3135: FND_MSG_PUB.Count_AND_Get
3136: ( p_count => l_msg_count,
3137: p_data => l_msg_data,
3138: p_encoded => FND_API.G_FALSE
3139: );
3140: END validate_offer_dates;
3141:
3142: -------------------------------------------------
3210: l_committed_amount NUMBER := 0;
3211:
3212: BEGIN
3213: -- Standard call to check for call compatibility.
3214: IF NOT FND_API.Compatible_API_Call ( l_api_version,
3215: p_api_version,
3216: l_api_name,
3217: G_PKG_NAME)
3218: THEN
3215: p_api_version,
3216: l_api_name,
3217: G_PKG_NAME)
3218: THEN
3219: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3220: END IF;
3221:
3222: -- Initialize message list if p_init_msg_list is set to TRUE.
3223: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3219: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3220: END IF;
3221:
3222: -- Initialize message list if p_init_msg_list is set to TRUE.
3223: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3224: FND_MSG_PUB.initialize;
3225: END IF;
3226:
3227: -- Initialize API return status to SUCCESS
3224: FND_MSG_PUB.initialize;
3225: END IF;
3226:
3227: -- Initialize API return status to SUCCESS
3228: x_return_status := FND_API.G_RET_STS_SUCCESS;
3229:
3230: OPEN cur_attr_avail_flag;
3231: FETCH cur_attr_avail_flag INTO l_attr_avail_flag;
3232: CLOSE cur_attr_avail_flag;
3249: FETCH c_committed_amount INTO l_committed_amount;
3250: CLOSE c_committed_amount;
3251: ELSIF p_offer_rec.offer_type = 'LUMPSUM' THEN
3252: IF p_offer_rec.lumpsum_amount IS NULL
3253: OR p_offer_rec.lumpsum_amount = FND_API.G_MISS_NUM THEN
3254: l_committed_amount := 0;
3255: ELSE
3256: l_committed_amount := p_offer_rec.lumpsum_amount;
3257: END IF;
3256: l_committed_amount := p_offer_rec.lumpsum_amount;
3257: END IF;
3258: ELSE -- other offer types
3259: IF p_offer_rec.offer_amount IS NULL
3260: OR p_offer_rec.offer_amount = FND_API.G_MISS_NUM THEN
3261: l_committed_amount := 0;
3262: ELSE
3263: l_committed_amount := p_offer_rec.offer_amount;
3264: END IF;
3265: END IF;
3266:
3267: IF l_committed_amount > l_approved_amount THEN
3268: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFFER_AMNT_GT_APPR_AMNT');
3269: RAISE FND_API.G_EXC_ERROR;
3270: END IF;
3271: ELSIF l_recal = 'Y' AND p_offer_rec.offer_type NOT IN ('LUMPSUM', 'SCAN_DATA') THEN
3272: IF l_approved_amount < 0 THEN
3273: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_NO_APPROVED_AMOUNT');
3270: END IF;
3271: ELSIF l_recal = 'Y' AND p_offer_rec.offer_type NOT IN ('LUMPSUM', 'SCAN_DATA') THEN
3272: IF l_approved_amount < 0 THEN
3273: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_NO_APPROVED_AMOUNT');
3274: RAISE FND_API.G_EXC_ERROR;
3275: END IF;
3276: END IF;
3277: END IF;
3278:
3279: FND_MSG_PUB.Count_And_Get
3280: (
3281: p_count => x_msg_count,
3282: p_data => x_msg_data,
3283: p_encoded => FND_API.G_FALSE
3284: );
3285:
3286: EXCEPTION
3287: WHEN FND_API.G_EXC_ERROR THEN
3283: p_encoded => FND_API.G_FALSE
3284: );
3285:
3286: EXCEPTION
3287: WHEN FND_API.G_EXC_ERROR THEN
3288: x_return_status := FND_API.g_ret_sts_error ;
3289: FND_MSG_PUB.Count_AND_Get
3290: ( p_count => l_msg_count,
3291: p_data => l_msg_data,
3284: );
3285:
3286: EXCEPTION
3287: WHEN FND_API.G_EXC_ERROR THEN
3288: x_return_status := FND_API.g_ret_sts_error ;
3289: FND_MSG_PUB.Count_AND_Get
3290: ( p_count => l_msg_count,
3291: p_data => l_msg_data,
3292: p_encoded => FND_API.G_FALSE
3288: x_return_status := FND_API.g_ret_sts_error ;
3289: FND_MSG_PUB.Count_AND_Get
3290: ( p_count => l_msg_count,
3291: p_data => l_msg_data,
3292: p_encoded => FND_API.G_FALSE
3293: );
3294: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3295: x_return_status := FND_API.g_ret_sts_unexp_error ;
3296: FND_MSG_PUB.Count_AND_Get
3290: ( p_count => l_msg_count,
3291: p_data => l_msg_data,
3292: p_encoded => FND_API.G_FALSE
3293: );
3294: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3295: x_return_status := FND_API.g_ret_sts_unexp_error ;
3296: FND_MSG_PUB.Count_AND_Get
3297: ( p_count => l_msg_count,
3298: p_data => l_msg_data,
3291: p_data => l_msg_data,
3292: p_encoded => FND_API.G_FALSE
3293: );
3294: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3295: x_return_status := FND_API.g_ret_sts_unexp_error ;
3296: FND_MSG_PUB.Count_AND_Get
3297: ( p_count => l_msg_count,
3298: p_data => l_msg_data,
3299: p_encoded => FND_API.G_FALSE
3295: x_return_status := FND_API.g_ret_sts_unexp_error ;
3296: FND_MSG_PUB.Count_AND_Get
3297: ( p_count => l_msg_count,
3298: p_data => l_msg_data,
3299: p_encoded => FND_API.G_FALSE
3300: );
3301: WHEN OTHERS THEN
3302: x_return_status := FND_API.g_ret_sts_unexp_error ;
3303: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3298: p_data => l_msg_data,
3299: p_encoded => FND_API.G_FALSE
3300: );
3301: WHEN OTHERS THEN
3302: x_return_status := FND_API.g_ret_sts_unexp_error ;
3303: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3304: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3305: END IF;
3306: FND_MSG_PUB.Count_AND_Get
3305: END IF;
3306: FND_MSG_PUB.Count_AND_Get
3307: ( p_count => l_msg_count,
3308: p_data => l_msg_data,
3309: p_encoded => FND_API.G_FALSE
3310: );
3311:
3312: END validate_offer;
3313:
3340: l_committed_amount NUMBER;
3341:
3342: BEGIN
3343: -- Standard call to check for call compatibility.
3344: IF NOT FND_API.Compatible_API_Call ( l_api_version,
3345: p_api_version,
3346: l_api_name,
3347: G_PKG_NAME)
3348: THEN
3345: p_api_version,
3346: l_api_name,
3347: G_PKG_NAME)
3348: THEN
3349: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3350: END IF;
3351:
3352: -- Initialize message list if p_init_msg_list is set to TRUE.
3353: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3349: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3350: END IF;
3351:
3352: -- Initialize message list if p_init_msg_list is set to TRUE.
3353: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3354: FND_MSG_PUB.initialize;
3355: END IF;
3356:
3357: -- Initialize API return status to SUCCESS
3354: FND_MSG_PUB.initialize;
3355: END IF;
3356:
3357: -- Initialize API return status to SUCCESS
3358: x_return_status := FND_API.G_RET_STS_SUCCESS;
3359:
3360: OPEN c_request_amount;
3361: FETCH c_request_amount INTO l_request_amount;
3362: IF c_request_amount%NOTFOUND THEN
3361: FETCH c_request_amount INTO l_request_amount;
3362: IF c_request_amount%NOTFOUND THEN
3363: CLOSE c_request_amount;
3364: OZF_Utility_PVT.Error_Message('OZF_OFFR_NO_BUDGET_REQUEST');
3365: RAISE FND_API.G_EXC_ERROR;
3366: END IF;
3367: CLOSE c_request_amount;
3368:
3369: OPEN c_committed_amount;
3371: CLOSE c_committed_amount;
3372:
3373: IF l_committed_amount > l_request_amount THEN
3374: OZF_Utility_PVT.Error_Message('OZF_OFFR_REQAMT_LT_OFFAMT');
3375: RAISE FND_API.G_EXC_ERROR;
3376: END IF;
3377:
3378: FND_MSG_PUB.Count_And_Get
3379: (p_count => x_msg_count,
3377:
3378: FND_MSG_PUB.Count_And_Get
3379: (p_count => x_msg_count,
3380: p_data => x_msg_data,
3381: p_encoded => FND_API.G_FALSE);
3382:
3383: EXCEPTION
3384: WHEN FND_API.G_EXC_ERROR THEN
3385: x_return_status := FND_API.g_ret_sts_error ;
3380: p_data => x_msg_data,
3381: p_encoded => FND_API.G_FALSE);
3382:
3383: EXCEPTION
3384: WHEN FND_API.G_EXC_ERROR THEN
3385: x_return_status := FND_API.g_ret_sts_error ;
3386: FND_MSG_PUB.Count_AND_Get
3387: ( p_count => l_msg_count,
3388: p_data => l_msg_data,
3381: p_encoded => FND_API.G_FALSE);
3382:
3383: EXCEPTION
3384: WHEN FND_API.G_EXC_ERROR THEN
3385: x_return_status := FND_API.g_ret_sts_error ;
3386: FND_MSG_PUB.Count_AND_Get
3387: ( p_count => l_msg_count,
3388: p_data => l_msg_data,
3389: p_encoded => FND_API.G_FALSE
3385: x_return_status := FND_API.g_ret_sts_error ;
3386: FND_MSG_PUB.Count_AND_Get
3387: ( p_count => l_msg_count,
3388: p_data => l_msg_data,
3389: p_encoded => FND_API.G_FALSE
3390: );
3391: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3392: x_return_status := FND_API.g_ret_sts_unexp_error ;
3393: FND_MSG_PUB.Count_AND_Get
3387: ( p_count => l_msg_count,
3388: p_data => l_msg_data,
3389: p_encoded => FND_API.G_FALSE
3390: );
3391: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3392: x_return_status := FND_API.g_ret_sts_unexp_error ;
3393: FND_MSG_PUB.Count_AND_Get
3394: ( p_count => l_msg_count,
3395: p_data => l_msg_data,
3388: p_data => l_msg_data,
3389: p_encoded => FND_API.G_FALSE
3390: );
3391: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3392: x_return_status := FND_API.g_ret_sts_unexp_error ;
3393: FND_MSG_PUB.Count_AND_Get
3394: ( p_count => l_msg_count,
3395: p_data => l_msg_data,
3396: p_encoded => FND_API.G_FALSE
3392: x_return_status := FND_API.g_ret_sts_unexp_error ;
3393: FND_MSG_PUB.Count_AND_Get
3394: ( p_count => l_msg_count,
3395: p_data => l_msg_data,
3396: p_encoded => FND_API.G_FALSE
3397: );
3398: WHEN OTHERS THEN
3399: x_return_status := FND_API.g_ret_sts_unexp_error ;
3400: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3395: p_data => l_msg_data,
3396: p_encoded => FND_API.G_FALSE
3397: );
3398: WHEN OTHERS THEN
3399: x_return_status := FND_API.g_ret_sts_unexp_error ;
3400: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3401: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3402: END IF;
3403: FND_MSG_PUB.Count_AND_Get
3402: END IF;
3403: FND_MSG_PUB.Count_AND_Get
3404: ( p_count => l_msg_count,
3405: p_data => l_msg_data,
3406: p_encoded => FND_API.G_FALSE
3407: );
3408:
3409: END validate_scandata_budget;
3410:
3479: BEGIN
3480: SAVEPOINT Push_Target_group;
3481:
3482: -- Standard call to check for call compatibility.
3483: IF NOT FND_API.Compatible_API_Call ( l_api_version,
3484: p_api_version,
3485: l_api_name,
3486: G_PKG_NAME)
3487: THEN
3484: p_api_version,
3485: l_api_name,
3486: G_PKG_NAME)
3487: THEN
3488: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3489: END IF;
3490:
3491: -- Initialize message list if p_init_msg_list is set to TRUE.
3492: IF FND_API.to_Boolean( p_init_msg_list )
3488: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3489: END IF;
3490:
3491: -- Initialize message list if p_init_msg_list is set to TRUE.
3492: IF FND_API.to_Boolean( p_init_msg_list )
3493: THEN
3494: FND_MSG_PUB.initialize;
3495: END IF;
3496:
3494: FND_MSG_PUB.initialize;
3495: END IF;
3496:
3497: -- Initialize API return status to SUCCESS
3498: x_return_status := FND_API.G_RET_STS_SUCCESS;
3499:
3500: l_index := 1;
3501:
3502: FOR l_act_offer_rec IN c_act_offer(p_offer_rec.qp_list_header_id)
3532: process_market_qualifiers
3533: (
3534: p_init_msg_list => p_init_msg_list
3535: ,p_api_version => p_api_version
3536: ,p_commit => FND_API.g_false
3537: ,x_return_status => x_return_status
3538: ,x_msg_count => x_msg_count
3539: ,x_msg_data => x_msg_data
3540: ,p_qualifiers_tbl => l_qualifiers_tbl
3542: ,x_qualifiers_tbl => x_qualifiers_tbl
3543: );
3544:
3545:
3546: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3547: RAISE FND_API.G_EXC_ERROR;
3548: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3549: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3550: END IF;
3543: );
3544:
3545:
3546: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3547: RAISE FND_API.G_EXC_ERROR;
3548: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3549: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3550: END IF;
3551:
3544:
3545:
3546: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3547: RAISE FND_API.G_EXC_ERROR;
3548: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3549: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3550: END IF;
3551:
3552: END IF;
3545:
3546: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3547: RAISE FND_API.G_EXC_ERROR;
3548: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3549: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3550: END IF;
3551:
3552: END IF;
3553:
3553:
3554: FND_MSG_PUB.Count_And_Get
3555: ( p_count => x_msg_count,
3556: p_data => x_msg_data,
3557: p_encoded => FND_API.G_FALSE
3558: );
3559:
3560: EXCEPTION
3561: WHEN FND_API.G_EXC_ERROR THEN
3557: p_encoded => FND_API.G_FALSE
3558: );
3559:
3560: EXCEPTION
3561: WHEN FND_API.G_EXC_ERROR THEN
3562: x_return_status := FND_API.g_ret_sts_error ;
3563: ROLLBACK TO Push_Target_group;
3564: FND_MSG_PUB.Count_AND_Get
3565: ( p_count => l_msg_count,
3558: );
3559:
3560: EXCEPTION
3561: WHEN FND_API.G_EXC_ERROR THEN
3562: x_return_status := FND_API.g_ret_sts_error ;
3563: ROLLBACK TO Push_Target_group;
3564: FND_MSG_PUB.Count_AND_Get
3565: ( p_count => l_msg_count,
3566: p_data => l_msg_data,
3563: ROLLBACK TO Push_Target_group;
3564: FND_MSG_PUB.Count_AND_Get
3565: ( p_count => l_msg_count,
3566: p_data => l_msg_data,
3567: p_encoded => FND_API.G_FALSE
3568: );
3569: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3570: x_return_status := FND_API.g_ret_sts_unexp_error ;
3571: ROLLBACK TO Push_Target_group;
3565: ( p_count => l_msg_count,
3566: p_data => l_msg_data,
3567: p_encoded => FND_API.G_FALSE
3568: );
3569: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3570: x_return_status := FND_API.g_ret_sts_unexp_error ;
3571: ROLLBACK TO Push_Target_group;
3572: FND_MSG_PUB.Count_AND_Get
3573: ( p_count => l_msg_count,
3566: p_data => l_msg_data,
3567: p_encoded => FND_API.G_FALSE
3568: );
3569: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3570: x_return_status := FND_API.g_ret_sts_unexp_error ;
3571: ROLLBACK TO Push_Target_group;
3572: FND_MSG_PUB.Count_AND_Get
3573: ( p_count => l_msg_count,
3574: p_data => l_msg_data,
3571: ROLLBACK TO Push_Target_group;
3572: FND_MSG_PUB.Count_AND_Get
3573: ( p_count => l_msg_count,
3574: p_data => l_msg_data,
3575: p_encoded => FND_API.G_FALSE
3576: );
3577: WHEN OTHERS THEN
3578: x_return_status := FND_API.g_ret_sts_unexp_error ;
3579: ROLLBACK TO Push_Target_group;
3574: p_data => l_msg_data,
3575: p_encoded => FND_API.G_FALSE
3576: );
3577: WHEN OTHERS THEN
3578: x_return_status := FND_API.g_ret_sts_unexp_error ;
3579: ROLLBACK TO Push_Target_group;
3580: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
3581: THEN
3582: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3583: END IF;
3584: FND_MSG_PUB.Count_AND_Get
3585: ( p_count => l_msg_count,
3586: p_data => l_msg_data,
3587: p_encoded => FND_API.G_FALSE
3588: );
3589:
3590: END Push_Target_group;
3591:
3605:
3606: l_req_header_id NUMBER;
3607: l_obj_ver_num NUMBER;
3608: l_status_code VARCHAR2 (30);
3609: l_return_status VARCHAR2 (10) := fnd_api.g_ret_sts_success;
3610: l_api_name VARCHAR2 (60) := 'update_request_status';
3611: l_full_name VARCHAR2 (100) := g_pkg_name||'.'||l_api_name;
3612: l_api_version NUMBER := 1;
3613: BEGIN
3627: END IF;
3628:
3629: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3630: p_data=> x_msg_data,
3631: p_encoded=> fnd_api.g_false);
3632:
3633: EXCEPTION
3634: WHEN fnd_api.g_exc_error THEN
3635: x_return_status := fnd_api.g_ret_sts_error;
3630: p_data=> x_msg_data,
3631: p_encoded=> fnd_api.g_false);
3632:
3633: EXCEPTION
3634: WHEN fnd_api.g_exc_error THEN
3635: x_return_status := fnd_api.g_ret_sts_error;
3636: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3637: p_data=> x_msg_data,
3638: p_encoded=> fnd_api.g_false);
3631: p_encoded=> fnd_api.g_false);
3632:
3633: EXCEPTION
3634: WHEN fnd_api.g_exc_error THEN
3635: x_return_status := fnd_api.g_ret_sts_error;
3636: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3637: p_data=> x_msg_data,
3638: p_encoded=> fnd_api.g_false);
3639: WHEN fnd_api.g_exc_unexpected_error THEN
3634: WHEN fnd_api.g_exc_error THEN
3635: x_return_status := fnd_api.g_ret_sts_error;
3636: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3637: p_data=> x_msg_data,
3638: p_encoded=> fnd_api.g_false);
3639: WHEN fnd_api.g_exc_unexpected_error THEN
3640: x_return_status := fnd_api.g_ret_sts_unexp_error;
3641: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3642: p_data=> x_msg_data,
3635: x_return_status := fnd_api.g_ret_sts_error;
3636: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3637: p_data=> x_msg_data,
3638: p_encoded=> fnd_api.g_false);
3639: WHEN fnd_api.g_exc_unexpected_error THEN
3640: x_return_status := fnd_api.g_ret_sts_unexp_error;
3641: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3642: p_data=> x_msg_data,
3643: p_encoded=> fnd_api.g_false);
3636: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3637: p_data=> x_msg_data,
3638: p_encoded=> fnd_api.g_false);
3639: WHEN fnd_api.g_exc_unexpected_error THEN
3640: x_return_status := fnd_api.g_ret_sts_unexp_error;
3641: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3642: p_data=> x_msg_data,
3643: p_encoded=> fnd_api.g_false);
3644: WHEN OTHERS THEN
3639: WHEN fnd_api.g_exc_unexpected_error THEN
3640: x_return_status := fnd_api.g_ret_sts_unexp_error;
3641: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3642: p_data=> x_msg_data,
3643: p_encoded=> fnd_api.g_false);
3644: WHEN OTHERS THEN
3645: x_return_status := fnd_api.g_ret_sts_unexp_error;
3646:
3647: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3641: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3642: p_data=> x_msg_data,
3643: p_encoded=> fnd_api.g_false);
3644: WHEN OTHERS THEN
3645: x_return_status := fnd_api.g_ret_sts_unexp_error;
3646:
3647: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3648: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
3649: END IF;
3649: END IF;
3650:
3651: fnd_msg_pub.count_and_get (p_count=> x_msg_count,
3652: p_data=> x_msg_data,
3653: p_encoded=> fnd_api.g_false);
3654: END update_request_status;
3655:
3656:
3657: -------------------------------------------------
3730: l_sdr_req_header_id NUMBER;
3731: BEGIN
3732: SAVEPOINT activate_offer_over;
3733: -- Standard call to check for call compatibility.
3734: IF NOT FND_API.Compatible_API_Call ( l_api_version,
3735: p_api_version,
3736: l_api_name,
3737: G_PKG_NAME)
3738: THEN
3735: p_api_version,
3736: l_api_name,
3737: G_PKG_NAME)
3738: THEN
3739: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3740: END IF;
3741:
3742: -- Initialize message list if p_init_msg_list is set to TRUE.
3743: IF FND_API.to_Boolean( p_init_msg_list )
3739: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3740: END IF;
3741:
3742: -- Initialize message list if p_init_msg_list is set to TRUE.
3743: IF FND_API.to_Boolean( p_init_msg_list )
3744: THEN
3745: FND_MSG_PUB.initialize;
3746: END IF;
3747:
3745: FND_MSG_PUB.initialize;
3746: END IF;
3747:
3748: -- Initialize API return status to SUCCESS
3749: x_return_status := FND_API.G_RET_STS_SUCCESS;
3750: x_amount_error := 'N';
3751:
3752: IF p_offer_rec.custom_setup_id = 105 THEN
3753: OPEN c_offer_id(p_offer_rec.qp_list_header_id);
3762:
3763: pv_referral_comp_pub.Update_Referral_Status (p_api_version => p_api_version,
3764: p_init_msg_list => p_init_msg_list,
3765: p_commit => p_commit,
3766: p_validation_level => FND_API.g_valid_level_full,
3767: p_offer_id => l_offer_id,
3768: p_pass_validation_flag => l_pass_validation_flag,
3769: x_return_status => x_return_status,
3770: x_msg_count => x_msg_count,
3782: ELSE
3783: -- validate approved amount vs committed amout and update offer status depending on recal
3784: -- moved from end
3785: validate_offer(
3786: p_init_msg_list => FND_API.G_FALSE,
3787: p_api_version => 1.0,
3788: x_return_status => x_return_status,
3789: x_msg_count => x_msg_count,
3790: x_msg_data => x_msg_data,
3790: x_msg_data => x_msg_data,
3791: p_offer_rec => p_offer_rec
3792: );
3793: l_recal := FND_PROFILE.VALUE('OZF_BUDGET_ADJ_ALLOW_RECAL');
3794: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3795: --julou amount validation failed, update status depending on recal
3796: IF p_called_from = 'R' THEN
3797: IF p_offer_rec.offer_type IN ('LUMPSUM', 'SCAN_DATA') THEN
3798: UPDATE ozf_offers
3835: AND req.approved_by = jre.resource_id
3836: AND apr.action_performed_by = jre.user_id);
3837: END IF;
3838:
3839: x_return_status := FND_API.G_RET_STS_SUCCESS;
3840: RETURN;-- validation fails, update to DRAFT or PENDING_ACTIVE and return(no posting)
3841:
3842: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3843: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3838:
3839: x_return_status := FND_API.G_RET_STS_SUCCESS;
3840: RETURN;-- validation fails, update to DRAFT or PENDING_ACTIVE and return(no posting)
3841:
3842: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3843: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3844: ELSIF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
3845: --julou validation passed, update offer to active and posting
3846:
3839: x_return_status := FND_API.G_RET_STS_SUCCESS;
3840: RETURN;-- validation fails, update to DRAFT or PENDING_ACTIVE and return(no posting)
3841:
3842: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3843: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3844: ELSIF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
3845: --julou validation passed, update offer to active and posting
3846:
3847: -- Invoke Post_Lumpsum_Offer/Post_Scan_Data_Offer
3840: RETURN;-- validation fails, update to DRAFT or PENDING_ACTIVE and return(no posting)
3841:
3842: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3843: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3844: ELSIF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
3845: --julou validation passed, update offer to active and posting
3846:
3847: -- Invoke Post_Lumpsum_Offer/Post_Scan_Data_Offer
3848: -- budget CP does not post lumpsum and scan data. Posting is done here for both R and B
3848: -- budget CP does not post lumpsum and scan data. Posting is done here for both R and B
3849: IF p_offer_rec.offer_type = 'LUMPSUM' THEN
3850: Post_Lumpsum_Offer(
3851: p_api_version => 1.0,
3852: p_init_msg_list => FND_API.G_FALSE,
3853: p_commit => FND_API.G_FALSE,
3854: p_offer_rec => p_offer_rec,
3855: x_return_status => x_return_status,
3856: x_msg_count => x_msg_count,
3849: IF p_offer_rec.offer_type = 'LUMPSUM' THEN
3850: Post_Lumpsum_Offer(
3851: p_api_version => 1.0,
3852: p_init_msg_list => FND_API.G_FALSE,
3853: p_commit => FND_API.G_FALSE,
3854: p_offer_rec => p_offer_rec,
3855: x_return_status => x_return_status,
3856: x_msg_count => x_msg_count,
3857: x_msg_data => x_msg_data);
3855: x_return_status => x_return_status,
3856: x_msg_count => x_msg_count,
3857: x_msg_data => x_msg_data);
3858:
3859: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3860: RAISE FND_API.G_EXC_ERROR;
3861: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3862: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3863: END IF;
3856: x_msg_count => x_msg_count,
3857: x_msg_data => x_msg_data);
3858:
3859: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3860: RAISE FND_API.G_EXC_ERROR;
3861: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3862: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3863: END IF;
3864: ELSIF p_offer_rec.offer_type = 'SCAN_DATA' THEN
3857: x_msg_data => x_msg_data);
3858:
3859: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3860: RAISE FND_API.G_EXC_ERROR;
3861: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3862: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3863: END IF;
3864: ELSIF p_offer_rec.offer_type = 'SCAN_DATA' THEN
3865: Post_Scan_Data_Offer(
3858:
3859: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3860: RAISE FND_API.G_EXC_ERROR;
3861: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3862: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3863: END IF;
3864: ELSIF p_offer_rec.offer_type = 'SCAN_DATA' THEN
3865: Post_Scan_Data_Offer(
3866: p_api_version => 1.0,
3863: END IF;
3864: ELSIF p_offer_rec.offer_type = 'SCAN_DATA' THEN
3865: Post_Scan_Data_Offer(
3866: p_api_version => 1.0,
3867: p_init_msg_list => FND_API.G_FALSE,
3868: p_commit => FND_API.G_FALSE,
3869: p_offer_rec => p_offer_rec,
3870: x_return_status => x_return_status,
3871: x_msg_count => x_msg_count,
3864: ELSIF p_offer_rec.offer_type = 'SCAN_DATA' THEN
3865: Post_Scan_Data_Offer(
3866: p_api_version => 1.0,
3867: p_init_msg_list => FND_API.G_FALSE,
3868: p_commit => FND_API.G_FALSE,
3869: p_offer_rec => p_offer_rec,
3870: x_return_status => x_return_status,
3871: x_msg_count => x_msg_count,
3872: x_msg_data => x_msg_data);
3869: p_offer_rec => p_offer_rec,
3870: x_return_status => x_return_status,
3871: x_msg_count => x_msg_count,
3872: x_msg_data => x_msg_data);
3873: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3874: RAISE FND_API.G_EXC_ERROR;
3875: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3876: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3877: END IF;
3870: x_return_status => x_return_status,
3871: x_msg_count => x_msg_count,
3872: x_msg_data => x_msg_data);
3873: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3874: RAISE FND_API.G_EXC_ERROR;
3875: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3876: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3877: END IF;
3878: END IF;
3871: x_msg_count => x_msg_count,
3872: x_msg_data => x_msg_data);
3873: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3874: RAISE FND_API.G_EXC_ERROR;
3875: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3876: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3877: END IF;
3878: END IF;
3879:
3872: x_msg_data => x_msg_data);
3873: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3874: RAISE FND_API.G_EXC_ERROR;
3875: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3876: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3877: END IF;
3878: END IF;
3879:
3880: OPEN c_offer_start_date(p_offer_rec.qp_list_header_id);
3948: -- For Non-Reusable Offers Schedule activation should push the target group.
3949: IF p_offer_rec.reusable = 'Y' THEN
3950: Push_Target_group(
3951: p_api_version => 1.0,
3952: p_init_msg_list => FND_API.G_FALSE,
3953: p_commit => FND_API.g_false,
3954: p_offer_rec => p_offer_rec,
3955: x_return_status => x_return_status,
3956: x_msg_count => x_msg_count,
3949: IF p_offer_rec.reusable = 'Y' THEN
3950: Push_Target_group(
3951: p_api_version => 1.0,
3952: p_init_msg_list => FND_API.G_FALSE,
3953: p_commit => FND_API.g_false,
3954: p_offer_rec => p_offer_rec,
3955: x_return_status => x_return_status,
3956: x_msg_count => x_msg_count,
3957: x_msg_data => x_msg_data);
3955: x_return_status => x_return_status,
3956: x_msg_count => x_msg_count,
3957: x_msg_data => x_msg_data);
3958:
3959: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3960: RAISE FND_API.G_EXC_ERROR;
3961: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3962: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3963: END IF;
3956: x_msg_count => x_msg_count,
3957: x_msg_data => x_msg_data);
3958:
3959: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3960: RAISE FND_API.G_EXC_ERROR;
3961: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3962: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3963: END IF;
3964: END IF;
3957: x_msg_data => x_msg_data);
3958:
3959: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3960: RAISE FND_API.G_EXC_ERROR;
3961: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3962: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3963: END IF;
3964: END IF;
3965: END IF;
3958:
3959: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3960: RAISE FND_API.G_EXC_ERROR;
3961: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3962: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3963: END IF;
3964: END IF;
3965: END IF;
3966: END IF;
3970: (
3971: p_api_version_number => p_api_version
3972: , p_init_msg_list => p_init_msg_list
3973: , p_commit => p_commit
3974: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
3975: , x_return_status => x_return_status
3976: , x_msg_count => x_msg_count
3977: , x_msg_data => x_msg_data
3978: , p_offer_rec => p_offer_rec
3977: , x_msg_data => x_msg_data
3978: , p_offer_rec => p_offer_rec
3979: );
3980:
3981: -- RAISE FND_API.G_EXC_ERROR;
3982: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3983: RAISE FND_API.G_EXC_ERROR;
3984: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3985: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3978: , p_offer_rec => p_offer_rec
3979: );
3980:
3981: -- RAISE FND_API.G_EXC_ERROR;
3982: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3983: RAISE FND_API.G_EXC_ERROR;
3984: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3985: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3986: END IF;
3979: );
3980:
3981: -- RAISE FND_API.G_EXC_ERROR;
3982: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3983: RAISE FND_API.G_EXC_ERROR;
3984: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3985: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3986: END IF;
3987:
3980:
3981: -- RAISE FND_API.G_EXC_ERROR;
3982: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3983: RAISE FND_API.G_EXC_ERROR;
3984: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3985: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3986: END IF;
3987:
3988:
3981: -- RAISE FND_API.G_EXC_ERROR;
3982: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3983: RAISE FND_API.G_EXC_ERROR;
3984: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3985: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3986: END IF;
3987:
3988:
3989: FND_MSG_PUB.Count_And_Get
3988:
3989: FND_MSG_PUB.Count_And_Get
3990: (p_count => x_msg_count,
3991: p_data => x_msg_data,
3992: p_encoded => FND_API.G_FALSE
3993: );
3994:
3995: EXCEPTION
3996: WHEN FND_API.G_EXC_ERROR THEN
3992: p_encoded => FND_API.G_FALSE
3993: );
3994:
3995: EXCEPTION
3996: WHEN FND_API.G_EXC_ERROR THEN
3997: x_return_status := FND_API.g_ret_sts_error ;
3998: ROLLBACK TO activate_offer_over;
3999: FND_MSG_PUB.Count_AND_Get
4000: ( p_count => l_msg_count,
3993: );
3994:
3995: EXCEPTION
3996: WHEN FND_API.G_EXC_ERROR THEN
3997: x_return_status := FND_API.g_ret_sts_error ;
3998: ROLLBACK TO activate_offer_over;
3999: FND_MSG_PUB.Count_AND_Get
4000: ( p_count => l_msg_count,
4001: p_data => l_msg_data,
3998: ROLLBACK TO activate_offer_over;
3999: FND_MSG_PUB.Count_AND_Get
4000: ( p_count => l_msg_count,
4001: p_data => l_msg_data,
4002: p_encoded => FND_API.G_FALSE
4003: );
4004: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4005: x_return_status := FND_API.g_ret_sts_unexp_error ;
4006: ROLLBACK TO activate_offer_over;
4000: ( p_count => l_msg_count,
4001: p_data => l_msg_data,
4002: p_encoded => FND_API.G_FALSE
4003: );
4004: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4005: x_return_status := FND_API.g_ret_sts_unexp_error ;
4006: ROLLBACK TO activate_offer_over;
4007: FND_MSG_PUB.Count_AND_Get
4008: ( p_count => l_msg_count,
4001: p_data => l_msg_data,
4002: p_encoded => FND_API.G_FALSE
4003: );
4004: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4005: x_return_status := FND_API.g_ret_sts_unexp_error ;
4006: ROLLBACK TO activate_offer_over;
4007: FND_MSG_PUB.Count_AND_Get
4008: ( p_count => l_msg_count,
4009: p_data => l_msg_data,
4006: ROLLBACK TO activate_offer_over;
4007: FND_MSG_PUB.Count_AND_Get
4008: ( p_count => l_msg_count,
4009: p_data => l_msg_data,
4010: p_encoded => FND_API.G_FALSE
4011: );
4012: WHEN OTHERS THEN
4013: x_return_status := FND_API.g_ret_sts_unexp_error ;
4014: ROLLBACK TO activate_offer_over;
4009: p_data => l_msg_data,
4010: p_encoded => FND_API.G_FALSE
4011: );
4012: WHEN OTHERS THEN
4013: x_return_status := FND_API.g_ret_sts_unexp_error ;
4014: ROLLBACK TO activate_offer_over;
4015: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
4016: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4017: END IF;
4017: END IF;
4018: FND_MSG_PUB.Count_AND_Get
4019: ( p_count => l_msg_count,
4020: p_data => l_msg_data,
4021: p_encoded => FND_API.G_FALSE
4022: );
4023: END Activate_Offer_Over;
4024:
4025:
4053:
4054: ----------- initialize -------------
4055: SAVEPOINT offer_dates;
4056:
4057: x_return_status := Fnd_Api.g_ret_sts_success;
4058:
4059: FOR c1_rec IN c_qualifier_id(p_modifier_list_rec.qp_list_header_id) LOOP
4060: IF c1_rec.qualifier_attribute = 'QUALIFIER_ATTRIBUTE1'
4061: THEN l_ord_id := c1_rec.qualifier_id ;
4070: */
4071: -- Order Date
4072: IF (NOT
4073: (l_ord_id = 0 AND
4074: (p_modifier_list_rec.start_date_active_first IS NULL OR p_modifier_list_rec.start_date_active_first = Fnd_Api.g_miss_date
4075: )
4076: AND
4077: (p_modifier_list_rec.end_date_active_first IS NULL OR p_modifier_list_rec.end_date_active_first = Fnd_Api.g_miss_date
4078: )
4073: (l_ord_id = 0 AND
4074: (p_modifier_list_rec.start_date_active_first IS NULL OR p_modifier_list_rec.start_date_active_first = Fnd_Api.g_miss_date
4075: )
4076: AND
4077: (p_modifier_list_rec.end_date_active_first IS NULL OR p_modifier_list_rec.end_date_active_first = Fnd_Api.g_miss_date
4078: )
4079: )
4080: )
4081: THEN
4078: )
4079: )
4080: )
4081: THEN
4082: IF p_modifier_list_rec.start_date_active_first <> fnd_api.g_miss_date THEN
4083: l_qualifier_tbl(i).qualifier_context :='ORDER';
4084: l_qualifier_tbl(i).qualifier_attribute := 'QUALIFIER_ATTRIBUTE1';
4085: l_qualifier_tbl(i).qualifier_attr_value := to_char(p_modifier_list_rec.start_date_active_first,'YYYY/MM/DD HH:MI:SS');
4086: l_qualifier_tbl(i).qualifier_attr_value_to := to_char(p_modifier_list_rec.end_date_active_first,'YYYY/MM/DD HH:MI:SS');
4116: IF (
4117: NOT(
4118: l_ship_id = 0
4119: AND
4120: (p_modifier_list_rec.start_date_active_second IS NULL OR p_modifier_list_rec.start_date_active_second = Fnd_Api.g_miss_date )
4121: AND
4122: (p_modifier_list_rec.end_date_active_second IS NULL OR p_modifier_list_rec.end_date_active_second = Fnd_Api.g_miss_date )
4123: )
4124: ) THEN
4118: l_ship_id = 0
4119: AND
4120: (p_modifier_list_rec.start_date_active_second IS NULL OR p_modifier_list_rec.start_date_active_second = Fnd_Api.g_miss_date )
4121: AND
4122: (p_modifier_list_rec.end_date_active_second IS NULL OR p_modifier_list_rec.end_date_active_second = Fnd_Api.g_miss_date )
4123: )
4124: ) THEN
4125: IF p_modifier_list_rec.start_date_active_second <> fnd_api.g_miss_date THEN
4126: l_qualifier_tbl(i).qualifier_context :='ORDER';
4121: AND
4122: (p_modifier_list_rec.end_date_active_second IS NULL OR p_modifier_list_rec.end_date_active_second = Fnd_Api.g_miss_date )
4123: )
4124: ) THEN
4125: IF p_modifier_list_rec.start_date_active_second <> fnd_api.g_miss_date THEN
4126: l_qualifier_tbl(i).qualifier_context :='ORDER';
4127: l_qualifier_tbl(i).qualifier_attribute := 'QUALIFIER_ATTRIBUTE8';
4128: l_qualifier_tbl(i).qualifier_attr_value := to_char(p_modifier_list_rec.start_date_active_second,'YYYY/MM/DD HH:MI:SS');
4129: l_qualifier_tbl(i).qualifier_attr_value_to := to_char(p_modifier_list_rec.end_date_active_second,'YYYY/MM/DD HH:MI:SS');
4154:
4155: process_market_qualifiers
4156: (
4157: p_api_version => 1.0,
4158: p_init_msg_list => Fnd_Api.g_false,
4159: p_commit => Fnd_Api.g_false,
4160: x_return_status => x_return_status ,
4161: x_msg_count => x_msg_count,
4162: x_msg_data => x_msg_data,
4155: process_market_qualifiers
4156: (
4157: p_api_version => 1.0,
4158: p_init_msg_list => Fnd_Api.g_false,
4159: p_commit => Fnd_Api.g_false,
4160: x_return_status => x_return_status ,
4161: x_msg_count => x_msg_count,
4162: x_msg_data => x_msg_data,
4163: p_qualifiers_tbl => l_qualifier_tbl,
4163: p_qualifiers_tbl => l_qualifier_tbl,
4164: x_error_location => l_error_location,
4165: x_qualifiers_tbl => x_qualifiers_tbl
4166: );
4167: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4168: RAISE Fnd_Api.g_exc_error;
4169: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4170: RAISE Fnd_Api.g_exc_unexpected_error;
4171: END IF;
4164: x_error_location => l_error_location,
4165: x_qualifiers_tbl => x_qualifiers_tbl
4166: );
4167: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4168: RAISE Fnd_Api.g_exc_error;
4169: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4170: RAISE Fnd_Api.g_exc_unexpected_error;
4171: END IF;
4172:
4165: x_qualifiers_tbl => x_qualifiers_tbl
4166: );
4167: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4168: RAISE Fnd_Api.g_exc_error;
4169: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4170: RAISE Fnd_Api.g_exc_unexpected_error;
4171: END IF;
4172:
4173: Fnd_Msg_Pub.Count_AND_Get
4166: );
4167: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4168: RAISE Fnd_Api.g_exc_error;
4169: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4170: RAISE Fnd_Api.g_exc_unexpected_error;
4171: END IF;
4172:
4173: Fnd_Msg_Pub.Count_AND_Get
4174: ( p_count => x_msg_count,
4172:
4173: Fnd_Msg_Pub.Count_AND_Get
4174: ( p_count => x_msg_count,
4175: p_data => x_msg_data,
4176: p_encoded => Fnd_Api.G_FALSE
4177: );
4178:
4179: EXCEPTION
4180: WHEN Fnd_Api.G_EXC_ERROR THEN
4176: p_encoded => Fnd_Api.G_FALSE
4177: );
4178:
4179: EXCEPTION
4180: WHEN Fnd_Api.G_EXC_ERROR THEN
4181: x_return_status := Fnd_Api.g_ret_sts_error ;
4182: ROLLBACK TO offer_dates;
4183: Fnd_Msg_Pub.Count_AND_Get
4184: ( p_count => x_msg_count,
4177: );
4178:
4179: EXCEPTION
4180: WHEN Fnd_Api.G_EXC_ERROR THEN
4181: x_return_status := Fnd_Api.g_ret_sts_error ;
4182: ROLLBACK TO offer_dates;
4183: Fnd_Msg_Pub.Count_AND_Get
4184: ( p_count => x_msg_count,
4185: p_data => x_msg_data,
4182: ROLLBACK TO offer_dates;
4183: Fnd_Msg_Pub.Count_AND_Get
4184: ( p_count => x_msg_count,
4185: p_data => x_msg_data,
4186: p_encoded => Fnd_Api.G_FALSE
4187: );
4188: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4189: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4190: ROLLBACK TO offer_dates;
4184: ( p_count => x_msg_count,
4185: p_data => x_msg_data,
4186: p_encoded => Fnd_Api.G_FALSE
4187: );
4188: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4189: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4190: ROLLBACK TO offer_dates;
4191: Fnd_Msg_Pub.Count_AND_Get
4192: ( p_count => x_msg_count,
4185: p_data => x_msg_data,
4186: p_encoded => Fnd_Api.G_FALSE
4187: );
4188: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4189: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4190: ROLLBACK TO offer_dates;
4191: Fnd_Msg_Pub.Count_AND_Get
4192: ( p_count => x_msg_count,
4193: p_data => x_msg_data,
4190: ROLLBACK TO offer_dates;
4191: Fnd_Msg_Pub.Count_AND_Get
4192: ( p_count => x_msg_count,
4193: p_data => x_msg_data,
4194: p_encoded => Fnd_Api.G_FALSE
4195: );
4196: WHEN OTHERS THEN
4197: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4198: ROLLBACK TO offer_dates;
4193: p_data => x_msg_data,
4194: p_encoded => Fnd_Api.G_FALSE
4195: );
4196: WHEN OTHERS THEN
4197: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4198: ROLLBACK TO offer_dates;
4199: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
4200: THEN
4201: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4202: END IF;
4203: Fnd_Msg_Pub.Count_AND_Get
4204: ( p_count => x_msg_count,
4205: p_data => x_msg_data,
4206: p_encoded => Fnd_Api.G_FALSE
4207: );
4208: END offer_dates;
4209:
4210:
4251: BEGIN
4252: SAVEPOINT process_qp_list_header;
4253: --dbms_output.put_line('calling qp procedure');
4254:
4255: x_return_status := Fnd_Api.g_ret_sts_success;
4256:
4257:
4258: l_modifier_list_rec.operation := p_modifier_list_rec.modifier_operation;
4259: l_modifier_list_rec.list_header_id := p_modifier_list_rec.qp_list_header_id ;
4286: l_modifier_list_rec.global_flag := p_modifier_list_rec.global_flag;
4287: l_modifier_list_rec.org_id := p_modifier_list_rec.orig_org_id;
4288:
4289: -- end change 15-Nov-2002
4290: IF p_modifier_list_rec.offer_code <> Fnd_Api.g_miss_char THEN
4291: l_modifier_list_rec.name := p_modifier_list_rec.offer_code;
4292: END IF;
4293:
4294: IF p_modifier_list_rec.offer_operation IS NOT NULL AND p_modifier_list_rec.offer_operation <> FND_API.G_MISS_CHAR THEN
4290: IF p_modifier_list_rec.offer_code <> Fnd_Api.g_miss_char THEN
4291: l_modifier_list_rec.name := p_modifier_list_rec.offer_code;
4292: END IF;
4293:
4294: IF p_modifier_list_rec.offer_operation IS NOT NULL AND p_modifier_list_rec.offer_operation <> FND_API.G_MISS_CHAR THEN
4295: IF p_modifier_list_rec.modifier_operation = 'CREATE' THEN
4296: l_modifier_list_rec.active_flag := 'N';
4297: ELSIF p_modifier_list_rec.modifier_operation = 'UPDATE' THEN
4298: IF (p_modifier_list_rec.user_status_id <> FND_API.g_miss_num)
4294: IF p_modifier_list_rec.offer_operation IS NOT NULL AND p_modifier_list_rec.offer_operation <> FND_API.G_MISS_CHAR THEN
4295: IF p_modifier_list_rec.modifier_operation = 'CREATE' THEN
4296: l_modifier_list_rec.active_flag := 'N';
4297: ELSIF p_modifier_list_rec.modifier_operation = 'UPDATE' THEN
4298: IF (p_modifier_list_rec.user_status_id <> FND_API.g_miss_num)
4299: AND (p_modifier_list_rec.user_status_id <> p_old_status_id) THEN
4300: IF p_new_status_code = 'ACTIVE' THEN
4301: IF p_approval_type is NULL AND p_modifier_list_rec.offer_type NOT IN ('LUMPSUM', 'SCAN_DATA') THEN
4302: l_modifier_list_rec.active_flag := 'Y';
4304: process_offer_activation
4305: (
4306: p_api_version_number => p_api_version
4307: , p_init_msg_list => p_init_msg_list
4308: , p_commit => FND_API.g_false
4309: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
4310: , x_return_status => x_return_status
4311: , x_msg_count => x_msg_count
4312: , x_msg_data => x_msg_data
4305: (
4306: p_api_version_number => p_api_version
4307: , p_init_msg_list => p_init_msg_list
4308: , p_commit => FND_API.g_false
4309: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
4310: , x_return_status => x_return_status
4311: , x_msg_count => x_msg_count
4312: , x_msg_data => x_msg_data
4313: , p_offer_rec => p_modifier_list_rec
4311: , x_msg_count => x_msg_count
4312: , x_msg_data => x_msg_data
4313: , p_offer_rec => p_modifier_list_rec
4314: );
4315: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4316: RAISE FND_API.G_EXC_ERROR;
4317: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4318: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4319: END IF;
4312: , x_msg_data => x_msg_data
4313: , p_offer_rec => p_modifier_list_rec
4314: );
4315: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4316: RAISE FND_API.G_EXC_ERROR;
4317: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4318: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4319: END IF;
4320:
4313: , p_offer_rec => p_modifier_list_rec
4314: );
4315: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4316: RAISE FND_API.G_EXC_ERROR;
4317: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4318: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4319: END IF;
4320:
4321: END IF;
4314: );
4315: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4316: RAISE FND_API.G_EXC_ERROR;
4317: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4318: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4319: END IF;
4320:
4321: END IF;
4322: ELSE
4324: END IF;
4325: END IF;
4326: END IF;
4327: ELSE
4328: IF p_modifier_list_rec.active_flag = FND_API.G_MISS_CHAR OR p_modifier_list_rec.active_flag IS NULL THEN
4329: l_modifier_list_rec.active_flag := 'N';
4330: ELSE
4331: l_modifier_list_rec.active_flag := p_modifier_list_rec.active_flag;
4332: END IF;
4331: l_modifier_list_rec.active_flag := p_modifier_list_rec.active_flag;
4332: END IF;
4333: END IF;
4334:
4335: IF p_modifier_list_rec.start_date_active_first <> Fnd_Api.g_miss_date OR p_modifier_list_rec.end_date_active_first <> Fnd_Api.g_miss_date THEN
4336: l_modifier_list_rec.active_date_first_type := 'ORD';
4337: END IF;
4338:
4339: IF p_modifier_list_rec.start_date_active_second <> Fnd_Api.g_miss_date OR p_modifier_list_rec.end_date_active_second <> Fnd_Api.g_miss_date THEN
4335: IF p_modifier_list_rec.start_date_active_first <> Fnd_Api.g_miss_date OR p_modifier_list_rec.end_date_active_first <> Fnd_Api.g_miss_date THEN
4336: l_modifier_list_rec.active_date_first_type := 'ORD';
4337: END IF;
4338:
4339: IF p_modifier_list_rec.start_date_active_second <> Fnd_Api.g_miss_date OR p_modifier_list_rec.end_date_active_second <> Fnd_Api.g_miss_date THEN
4340: l_modifier_list_rec.active_date_second_type := 'SHIP';
4341: END IF;
4342:
4343: IF p_modifier_list_rec.start_date_active_second IS NULL AND p_modifier_list_rec.end_date_active_second IS NULL THEN
4354: l_modifier_list_rec.start_date_active_second := p_modifier_list_rec.start_date_active_second;
4355: l_modifier_list_rec.end_date_active_second := p_modifier_list_rec.end_date_active_second;
4356:
4357: IF p_modifier_list_rec.modifier_operation = 'CREATE' THEN
4358: IF p_modifier_list_rec.offer_code = Fnd_Api.g_miss_char or p_modifier_list_rec.offer_code IS NULL THEN
4359: l_modifier_list_rec.name := Ams_Sourcecode_Pvt.get_new_source_code (
4360: p_object_type => 'OFFR',
4361: p_custsetup_id => p_modifier_list_rec.custom_setup_id,
4362: p_global_flag => Fnd_Api.g_false
4358: IF p_modifier_list_rec.offer_code = Fnd_Api.g_miss_char or p_modifier_list_rec.offer_code IS NULL THEN
4359: l_modifier_list_rec.name := Ams_Sourcecode_Pvt.get_new_source_code (
4360: p_object_type => 'OFFR',
4361: p_custsetup_id => p_modifier_list_rec.custom_setup_id,
4362: p_global_flag => Fnd_Api.g_false
4363: );
4364: ELSE
4365: l_modifier_list_rec.name := p_modifier_list_rec.offer_code;
4366:
4365: l_modifier_list_rec.name := p_modifier_list_rec.offer_code;
4366:
4367: l_uk_flag := OZF_Utility_PVT.check_uniqueness('AMS_SOURCE_CODES','source_code = ''' || p_modifier_list_rec.offer_code || '''');
4368:
4369: IF l_uk_flag = Fnd_Api.g_false THEN
4370: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
4371: Fnd_Message.set_name('OZF', 'OZF_ACT_OFFER_DUP_OFFER_CODE');
4372: Fnd_Msg_Pub.ADD;
4373: END IF;
4387:
4388: --dbms_output.put_line('calling qp procedure');
4389: Qp_Modifiers_Pub.process_modifiers(
4390: p_api_version_number => 1.0,
4391: p_init_msg_list => FND_API.G_FALSE,
4392: p_return_values => Fnd_Api.G_FALSE,
4393: x_return_status => x_return_status,
4394: x_msg_count => x_msg_count,
4395: x_msg_data => x_msg_data,
4388: --dbms_output.put_line('calling qp procedure');
4389: Qp_Modifiers_Pub.process_modifiers(
4390: p_api_version_number => 1.0,
4391: p_init_msg_list => FND_API.G_FALSE,
4392: p_return_values => Fnd_Api.G_FALSE,
4393: x_return_status => x_return_status,
4394: x_msg_count => x_msg_count,
4395: x_msg_data => x_msg_data,
4396: p_modifier_list_rec => l_modifier_list_rec,
4404: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
4405: );
4406:
4407: --dbms_output.put_line('Return status1 is :'||x_return_status);
4408: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4409: add_message(x_msg_count);
4410: RAISE Fnd_Api.g_exc_error;
4411: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4412: add_message(x_msg_count);
4406:
4407: --dbms_output.put_line('Return status1 is :'||x_return_status);
4408: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4409: add_message(x_msg_count);
4410: RAISE Fnd_Api.g_exc_error;
4411: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4412: add_message(x_msg_count);
4413: RAISE Fnd_Api.g_exc_unexpected_error;
4414: END IF;
4407: --dbms_output.put_line('Return status1 is :'||x_return_status);
4408: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4409: add_message(x_msg_count);
4410: RAISE Fnd_Api.g_exc_error;
4411: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4412: add_message(x_msg_count);
4413: RAISE Fnd_Api.g_exc_unexpected_error;
4414: END IF;
4415: x_modifier_list_rec.qp_list_header_id := v_modifier_list_rec.list_header_id;
4409: add_message(x_msg_count);
4410: RAISE Fnd_Api.g_exc_error;
4411: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4412: add_message(x_msg_count);
4413: RAISE Fnd_Api.g_exc_unexpected_error;
4414: END IF;
4415: x_modifier_list_rec.qp_list_header_id := v_modifier_list_rec.list_header_id;
4416: x_modifier_list_rec.name := v_modifier_list_rec.name;
4417:
4419:
4420: -- Start of Offers Limit functionality. Need to set INSERT, UPDATE and DELETE for limits
4421: -- if profile OZF_BUDGET_ADJ_ALLOW_RECAL is 'Y' AND CommittedAmountEqMax flag is Y OR profile OZF_BUDGET_ADJ_ALLOW_RECAL is 'N'
4422: /*
4423: IF (p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4424: AND p_modifier_list_rec.offer_amount is not null
4425: )
4426: OR (--p_modifier_list_rec.amount_limit_id = fnd_api.g_miss_num
4427: AND p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4422: /*
4423: IF (p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4424: AND p_modifier_list_rec.offer_amount is not null
4425: )
4426: OR (--p_modifier_list_rec.amount_limit_id = fnd_api.g_miss_num
4427: AND p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4428: AND p_modifier_list_rec.offer_amount is not null
4429: )
4430: THEN
4423: IF (p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4424: AND p_modifier_list_rec.offer_amount is not null
4425: )
4426: OR (--p_modifier_list_rec.amount_limit_id = fnd_api.g_miss_num
4427: AND p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4428: AND p_modifier_list_rec.offer_amount is not null
4429: )
4430: THEN
4431: */
4436: ELSIF p_modifier_list_rec.modifier_operation = 'CREATE' THEN
4437: l_limits_rec.list_header_id := v_modifier_list_rec.list_header_id;
4438: END IF;
4439:
4440: IF p_modifier_list_rec.amount_limit_id = fnd_api.g_miss_num
4441: AND p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4442: AND p_modifier_list_rec.offer_amount is not null THEN
4443: IF ( p_modifier_list_rec.committed_amount_eq_max = 'Y')-- deal in limits only if the recal profile is off or the profile is on and the flag is Yes
4444: THEN
4437: l_limits_rec.list_header_id := v_modifier_list_rec.list_header_id;
4438: END IF;
4439:
4440: IF p_modifier_list_rec.amount_limit_id = fnd_api.g_miss_num
4441: AND p_modifier_list_rec.offer_amount <> fnd_api.g_miss_num
4442: AND p_modifier_list_rec.offer_amount is not null THEN
4443: IF ( p_modifier_list_rec.committed_amount_eq_max = 'Y')-- deal in limits only if the recal profile is off or the profile is on and the flag is Yes
4444: THEN
4445: l_limits_rec.operation := 'CREATE';
4446: l_limits_rec.basis := 'COST' ;
4447: --- When OM starts supporting HARD Need to change it to HARD.
4448: --l_limits_rec.limit_exceed_action_code := 'SOFT' ;
4449: l_limits_rec.limit_hold_flag := 'Y' ;
4450: l_limits_rec.limit_id := fnd_api.g_miss_num;
4451: l_limits_rec.limit_level_code :='ACROSS_TRANSACTION';
4452: l_limits_rec.limit_number := 1;
4453: l_limits_rec.organization_flag := 'N' ;
4454: l_limits_rec.amount := p_modifier_list_rec.offer_amount;
4452: l_limits_rec.limit_number := 1;
4453: l_limits_rec.organization_flag := 'N' ;
4454: l_limits_rec.amount := p_modifier_list_rec.offer_amount;
4455: END IF;
4456: ELSIF (p_modifier_list_rec.amount_limit_id <> fnd_api.g_miss_num AND p_modifier_list_rec.amount_limit_id IS NOT NULL) THEN
4457: IF p_modifier_list_rec.offer_amount IS NULL OR -- if committed=max is no or Committed Amount is null delete the limit
4458: (p_modifier_list_rec.committed_amount_eq_max = 'N')
4459: THEN
4460: l_limits_rec.operation := 'DELETE';
4470: END IF;
4471:
4472:
4473: QP_Limits_PUB.Process_Limits
4474: ( p_init_msg_list => FND_API.g_true,
4475: p_api_version_number => 1.0,
4476: p_commit => FND_API.g_false,
4477: x_return_status => x_return_status,
4478: x_msg_count => x_msg_count,
4472:
4473: QP_Limits_PUB.Process_Limits
4474: ( p_init_msg_list => FND_API.g_true,
4475: p_api_version_number => 1.0,
4476: p_commit => FND_API.g_false,
4477: x_return_status => x_return_status,
4478: x_msg_count => x_msg_count,
4479: x_msg_data => x_msg_data,
4480: p_LIMITS_rec => l_limits_rec,
4486: x_LIMIT_BALANCES_val_tbl => v_LIMIT_BALANCES_val_tbl
4487: );
4488:
4489:
4490: -- RAISE Fnd_Api.g_exc_error;
4491: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4492: add_message(x_msg_count);
4493: RAISE Fnd_Api.g_exc_error;
4494: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4487: );
4488:
4489:
4490: -- RAISE Fnd_Api.g_exc_error;
4491: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4492: add_message(x_msg_count);
4493: RAISE Fnd_Api.g_exc_error;
4494: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4495: add_message(x_msg_count);
4489:
4490: -- RAISE Fnd_Api.g_exc_error;
4491: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4492: add_message(x_msg_count);
4493: RAISE Fnd_Api.g_exc_error;
4494: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4495: add_message(x_msg_count);
4496: RAISE Fnd_Api.g_exc_unexpected_error;
4497: END IF;
4490: -- RAISE Fnd_Api.g_exc_error;
4491: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4492: add_message(x_msg_count);
4493: RAISE Fnd_Api.g_exc_error;
4494: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4495: add_message(x_msg_count);
4496: RAISE Fnd_Api.g_exc_unexpected_error;
4497: END IF;
4498:
4492: add_message(x_msg_count);
4493: RAISE Fnd_Api.g_exc_error;
4494: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4495: add_message(x_msg_count);
4496: RAISE Fnd_Api.g_exc_unexpected_error;
4497: END IF;
4498:
4499: --END IF;
4500: --END IF; -- END OZF_BUDGET_ADJ_ALLOW_RECAL profile if
4499: --END IF;
4500: --END IF; -- END OZF_BUDGET_ADJ_ALLOW_RECAL profile if
4501: l_limits_rec := temp_limits_rec;
4502:
4503: IF (p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4504: AND p_modifier_list_rec.max_no_of_uses is not null
4505: )
4506: OR (p_modifier_list_rec.uses_limit_id = fnd_api.g_miss_num
4507: AND p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4502:
4503: IF (p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4504: AND p_modifier_list_rec.max_no_of_uses is not null
4505: )
4506: OR (p_modifier_list_rec.uses_limit_id = fnd_api.g_miss_num
4507: AND p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4508: AND p_modifier_list_rec.max_no_of_uses is not null
4509: )
4510: THEN
4503: IF (p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4504: AND p_modifier_list_rec.max_no_of_uses is not null
4505: )
4506: OR (p_modifier_list_rec.uses_limit_id = fnd_api.g_miss_num
4507: AND p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4508: AND p_modifier_list_rec.max_no_of_uses is not null
4509: )
4510: THEN
4511:
4514: ELSIF p_modifier_list_rec.modifier_operation = 'CREATE' THEN
4515: l_limits_rec.list_header_id := v_modifier_list_rec.list_header_id;
4516: END IF;
4517:
4518: IF p_modifier_list_rec.uses_limit_id = fnd_api.g_miss_num
4519: AND p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4520: AND p_modifier_list_rec.max_no_of_uses is not null THEN
4521: l_limits_rec.operation := 'CREATE';
4522: l_limits_rec.basis := 'USAGE' ;
4515: l_limits_rec.list_header_id := v_modifier_list_rec.list_header_id;
4516: END IF;
4517:
4518: IF p_modifier_list_rec.uses_limit_id = fnd_api.g_miss_num
4519: AND p_modifier_list_rec.max_no_of_uses <> fnd_api.g_miss_num
4520: AND p_modifier_list_rec.max_no_of_uses is not null THEN
4521: l_limits_rec.operation := 'CREATE';
4522: l_limits_rec.basis := 'USAGE' ;
4523: --- When OM starts supporting HARD Need to change it to HARD.
4522: l_limits_rec.basis := 'USAGE' ;
4523: --- When OM starts supporting HARD Need to change it to HARD.
4524: --l_limits_rec.limit_exceed_action_code := 'SOFT' ;
4525: l_limits_rec.limit_hold_flag := 'Y' ;
4526: l_limits_rec.limit_id := fnd_api.g_miss_num;
4527: l_limits_rec.limit_level_code :='ACROSS_TRANSACTION';
4528: l_limits_rec.limit_number := 1;
4529: l_limits_rec.organization_flag := 'N' ;
4530: l_limits_rec.amount := p_modifier_list_rec.max_no_of_uses;
4531: l_limits_rec.multival_attr1_type := 'QUALIFIER';
4532: l_limits_rec.multival_attr1_context := 'CUSTOMER';
4533: l_limits_rec.multival_attribute1 := 'QUALIFIER_ATTRIBUTE2';
4534:
4535: ELSIF (p_modifier_list_rec.uses_limit_id <> fnd_api.g_miss_num AND p_modifier_list_rec.uses_limit_id IS NOT NULL) THEN
4536: IF p_modifier_list_rec.max_no_of_uses IS NULL THEN
4537: l_limits_rec.operation := 'DELETE';
4538: l_limits_rec.limit_id := p_modifier_list_rec.uses_limit_id;
4539: ELSIF p_modifier_list_rec.max_no_of_uses IS NOT NULL THEN
4543: END IF;
4544: END IF;
4545:
4546: QP_Limits_PUB.Process_Limits
4547: ( p_init_msg_list => FND_API.g_true,
4548: p_api_version_number => 1.0,
4549: p_commit => FND_API.g_false,
4550: x_return_status => x_return_status,
4551: x_msg_count => x_msg_count,
4545:
4546: QP_Limits_PUB.Process_Limits
4547: ( p_init_msg_list => FND_API.g_true,
4548: p_api_version_number => 1.0,
4549: p_commit => FND_API.g_false,
4550: x_return_status => x_return_status,
4551: x_msg_count => x_msg_count,
4552: x_msg_data => x_msg_data,
4553: p_LIMITS_rec => l_limits_rec,
4559: x_LIMIT_BALANCES_val_tbl => v_LIMIT_BALANCES_val_tbl
4560: );
4561:
4562:
4563: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4564: add_message(x_msg_count);
4565: RAISE Fnd_Api.g_exc_error;
4566: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4567: add_message(x_msg_count);
4561:
4562:
4563: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4564: add_message(x_msg_count);
4565: RAISE Fnd_Api.g_exc_error;
4566: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4567: add_message(x_msg_count);
4568: RAISE Fnd_Api.g_exc_unexpected_error;
4569: END IF;
4562:
4563: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4564: add_message(x_msg_count);
4565: RAISE Fnd_Api.g_exc_error;
4566: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4567: add_message(x_msg_count);
4568: RAISE Fnd_Api.g_exc_unexpected_error;
4569: END IF;
4570:
4564: add_message(x_msg_count);
4565: RAISE Fnd_Api.g_exc_error;
4566: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4567: add_message(x_msg_count);
4568: RAISE Fnd_Api.g_exc_unexpected_error;
4569: END IF;
4570:
4571: END IF;
4572:
4572:
4573: Fnd_Msg_Pub.Count_AND_Get
4574: ( p_count => x_msg_count,
4575: p_data => x_msg_data,
4576: p_encoded => Fnd_Api.G_FALSE
4577: );
4578: EXCEPTION
4579: WHEN Fnd_Api.G_EXC_ERROR THEN
4580: x_return_status := Fnd_Api.g_ret_sts_error ;
4575: p_data => x_msg_data,
4576: p_encoded => Fnd_Api.G_FALSE
4577: );
4578: EXCEPTION
4579: WHEN Fnd_Api.G_EXC_ERROR THEN
4580: x_return_status := Fnd_Api.g_ret_sts_error ;
4581: ROLLBACK TO process_qp_list_header;
4582: Fnd_Msg_Pub.Count_AND_Get
4583: ( p_count => x_msg_count,
4576: p_encoded => Fnd_Api.G_FALSE
4577: );
4578: EXCEPTION
4579: WHEN Fnd_Api.G_EXC_ERROR THEN
4580: x_return_status := Fnd_Api.g_ret_sts_error ;
4581: ROLLBACK TO process_qp_list_header;
4582: Fnd_Msg_Pub.Count_AND_Get
4583: ( p_count => x_msg_count,
4584: p_data => x_msg_data,
4581: ROLLBACK TO process_qp_list_header;
4582: Fnd_Msg_Pub.Count_AND_Get
4583: ( p_count => x_msg_count,
4584: p_data => x_msg_data,
4585: p_encoded => Fnd_Api.G_FALSE
4586: );
4587: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4588: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4589: ROLLBACK TO process_qp_list_header;
4583: ( p_count => x_msg_count,
4584: p_data => x_msg_data,
4585: p_encoded => Fnd_Api.G_FALSE
4586: );
4587: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4588: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4589: ROLLBACK TO process_qp_list_header;
4590: Fnd_Msg_Pub.Count_AND_Get
4591: ( p_count => x_msg_count,
4584: p_data => x_msg_data,
4585: p_encoded => Fnd_Api.G_FALSE
4586: );
4587: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4588: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4589: ROLLBACK TO process_qp_list_header;
4590: Fnd_Msg_Pub.Count_AND_Get
4591: ( p_count => x_msg_count,
4592: p_data => x_msg_data,
4589: ROLLBACK TO process_qp_list_header;
4590: Fnd_Msg_Pub.Count_AND_Get
4591: ( p_count => x_msg_count,
4592: p_data => x_msg_data,
4593: p_encoded => Fnd_Api.G_FALSE
4594: );
4595: WHEN OTHERS THEN
4596: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4597: ROLLBACK TO process_qp_list_header;
4592: p_data => x_msg_data,
4593: p_encoded => Fnd_Api.G_FALSE
4594: );
4595: WHEN OTHERS THEN
4596: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4597: ROLLBACK TO process_qp_list_header;
4598: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
4599: THEN
4600: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4601: END IF;
4602: Fnd_Msg_Pub.Count_AND_Get
4603: ( p_count => x_msg_count,
4604: p_data => x_msg_data,
4605: p_encoded => Fnd_Api.G_FALSE
4606: );
4607: END;
4608:
4609: PROCEDURE validateOzfOffer
4614: ,p_modifier_list_rec IN modifier_list_rec_type
4615: )
4616: IS
4617: BEGIN
4618: x_return_status := FND_API.G_RET_STS_SUCCESS;
4619: IF (p_modifier_list_rec.offer_type = 'LUMPSUM' OR p_modifier_list_rec.offer_type = 'SCAN_DATA' ) THEN
4620: IF p_modifier_list_rec.offer_operation = 'CREATE' THEN
4621: IF (p_modifier_list_rec.currency_code IS NULL OR p_modifier_list_rec.currency_code = FND_API.G_MISS_CHAR) THEN
4622: OZF_Utility_PVT.error_message('OZF_OFFR_LS_SD_CURR_REQD');
4617: BEGIN
4618: x_return_status := FND_API.G_RET_STS_SUCCESS;
4619: IF (p_modifier_list_rec.offer_type = 'LUMPSUM' OR p_modifier_list_rec.offer_type = 'SCAN_DATA' ) THEN
4620: IF p_modifier_list_rec.offer_operation = 'CREATE' THEN
4621: IF (p_modifier_list_rec.currency_code IS NULL OR p_modifier_list_rec.currency_code = FND_API.G_MISS_CHAR) THEN
4622: OZF_Utility_PVT.error_message('OZF_OFFR_LS_SD_CURR_REQD');
4623: x_return_status := Fnd_Api.g_ret_sts_error;
4624: RETURN;
4625: END IF;
4619: IF (p_modifier_list_rec.offer_type = 'LUMPSUM' OR p_modifier_list_rec.offer_type = 'SCAN_DATA' ) THEN
4620: IF p_modifier_list_rec.offer_operation = 'CREATE' THEN
4621: IF (p_modifier_list_rec.currency_code IS NULL OR p_modifier_list_rec.currency_code = FND_API.G_MISS_CHAR) THEN
4622: OZF_Utility_PVT.error_message('OZF_OFFR_LS_SD_CURR_REQD');
4623: x_return_status := Fnd_Api.g_ret_sts_error;
4624: RETURN;
4625: END IF;
4626: ELSIF p_modifier_list_rec.offer_operation = 'UPDATE' THEN
4627: IF (p_modifier_list_rec.currency_code IS NULL) THEN
4625: END IF;
4626: ELSIF p_modifier_list_rec.offer_operation = 'UPDATE' THEN
4627: IF (p_modifier_list_rec.currency_code IS NULL) THEN
4628: OZF_Utility_PVT.error_message('OZF_OFFR_LS_SD_CURR_REQD');
4629: x_return_status := Fnd_Api.g_ret_sts_error;
4630: RETURN;
4631: END IF;
4632: END IF;
4633: END IF;
4666:
4667: BEGIN
4668: SAVEPOINT process_ozf_offer;
4669:
4670: x_return_status := Fnd_Api.g_ret_sts_success;
4671:
4672: validateOzfOffer
4673: (
4674: x_return_status => x_return_status
4675: ,x_msg_count => x_msg_count
4676: ,x_msg_data => x_msg_data
4677: ,p_modifier_list_rec => p_modifier_list_rec
4678: );
4679: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4680: RAISE FND_API.G_EXC_ERROR;
4681: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4683: END IF;
4676: ,x_msg_data => x_msg_data
4677: ,p_modifier_list_rec => p_modifier_list_rec
4678: );
4679: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4680: RAISE FND_API.G_EXC_ERROR;
4681: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4683: END IF;
4684: OPEN c_scan_value;
4677: ,p_modifier_list_rec => p_modifier_list_rec
4678: );
4679: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4680: RAISE FND_API.G_EXC_ERROR;
4681: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4683: END IF;
4684: OPEN c_scan_value;
4685: FETCH c_scan_value INTO l_scan_value;
4678: );
4679: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4680: RAISE FND_API.G_EXC_ERROR;
4681: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4683: END IF;
4684: OPEN c_scan_value;
4685: FETCH c_scan_value INTO l_scan_value;
4686: CLOSE c_scan_value;
4691: -- if DRAFT sync IEB and committed amount
4692: IF l_old_status = 'DRAFT' THEN
4693: IF p_modifier_list_rec.offer_type = 'SCAN_DATA' THEN
4694: IF p_modifier_list_rec.offer_amount IS NOT NULL
4695: AND p_modifier_list_rec.offer_amount <> FND_API.G_MISS_NUM THEN -- called by budget cue card
4696: IF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4697: AND p_modifier_list_rec.budget_amount_tc <> FND_API.G_MISS_NUM THEN
4698: IF p_modifier_list_rec.budget_amount_tc >= l_scan_value THEN
4699: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.budget_amount_tc;
4693: IF p_modifier_list_rec.offer_type = 'SCAN_DATA' THEN
4694: IF p_modifier_list_rec.offer_amount IS NOT NULL
4695: AND p_modifier_list_rec.offer_amount <> FND_API.G_MISS_NUM THEN -- called by budget cue card
4696: IF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4697: AND p_modifier_list_rec.budget_amount_tc <> FND_API.G_MISS_NUM THEN
4698: IF p_modifier_list_rec.budget_amount_tc >= l_scan_value THEN
4699: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.budget_amount_tc;
4700: ELSE
4701: FND_MESSAGE.SET_NAME('OZF','OZF_OFFR_IEB_LT_SCANVALUE');
4699: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.budget_amount_tc;
4700: ELSE
4701: FND_MESSAGE.SET_NAME('OZF','OZF_OFFR_IEB_LT_SCANVALUE');
4702: Fnd_Msg_Pub.ADD;
4703: RAISE FND_API.G_EXC_ERROR;
4704: END IF;
4705: END IF;
4706: ELSE -- called by offer detail
4707: --IF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4704: END IF;
4705: END IF;
4706: ELSE -- called by offer detail
4707: --IF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4708: --AND p_modifier_list_rec.budget_amount_tc <> FND_API.G_MISS_NUM THEN
4709: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.budget_amount_tc;
4710: --ELSE
4711: -- l_promotional_offers_rec.budget_amount_tc := 0;
4712: --END IF;
4713: END IF;
4714: l_promotional_offers_rec.offer_amount := NULL;
4715: ELSE
4716: IF p_modifier_list_rec.offer_amount IS NOT NULL
4717: AND p_modifier_list_rec.offer_amount <> FND_API.G_MISS_NUM
4718: THEN -- from detail, sync ieb with committed amount
4719: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.offer_amount;
4720: l_promotional_offers_rec.offer_amount := p_modifier_list_rec.offer_amount;
4721: ELSIF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4718: THEN -- from detail, sync ieb with committed amount
4719: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.offer_amount;
4720: l_promotional_offers_rec.offer_amount := p_modifier_list_rec.offer_amount;
4721: ELSIF p_modifier_list_rec.budget_amount_tc IS NOT NULL
4722: AND p_modifier_list_rec.budget_amount_tc <> FND_API.G_MISS_NUM
4723: THEN -- from budget cue card, sync committed with ieb
4724: l_promotional_offers_rec.offer_amount := p_modifier_list_rec.budget_amount_tc;
4725: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.budget_amount_tc;
4726: END IF; -- both are no value, do nothing
4732:
4733: IF l_promotional_offers_rec.budget_amount_tc < 0 THEN
4734: FND_MESSAGE.SET_NAME('OZF','OZF_OFFR_IEB_NEG');
4735: Fnd_Msg_Pub.ADD;
4736: RAISE FND_API.G_EXC_ERROR;
4737: END IF;
4738:
4739: l_promotional_offers_rec.qp_list_header_id := p_modifier_list_rec.qp_list_header_id;
4740: l_promotional_offers_rec.custom_setup_id := p_modifier_list_rec.custom_setup_id;
4761: l_promotional_offers_rec.budget_offer_yn := p_modifier_list_rec.budget_offer_yn;
4762:
4763: END IF;
4764:
4765: IF p_modifier_list_rec.budget_source_id <> Fnd_Api.g_miss_num
4766: AND p_modifier_list_rec.budget_source_id IS NOT NULL THEN
4767: IF p_modifier_list_rec.offer_type <> 'SCAN_DATA' THEN
4768: l_promotional_offers_rec.budget_amount_tc := p_modifier_list_rec.offer_amount;
4769: END IF;
4773: l_promotional_offers_rec.qualifier_id := p_modifier_list_rec.ql_qualifier_id;
4774: l_promotional_offers_rec.activity_media_id := p_modifier_list_rec.activity_media_id;
4775: l_promotional_offers_rec.user_status_id := p_modifier_list_rec.user_status_id;
4776: -- if the user_status_id is missing then make status_code code also missing
4777: IF l_promotional_offers_rec.user_status_id = FND_API.g_miss_num THEN
4778: l_promotional_offers_rec.status_code := FND_API.g_miss_char;
4779: ELSIF l_promotional_offers_rec.user_status_id IS NULL THEN
4780: l_promotional_offers_rec.status_code := NULL;
4781: ELSE
4774: l_promotional_offers_rec.activity_media_id := p_modifier_list_rec.activity_media_id;
4775: l_promotional_offers_rec.user_status_id := p_modifier_list_rec.user_status_id;
4776: -- if the user_status_id is missing then make status_code code also missing
4777: IF l_promotional_offers_rec.user_status_id = FND_API.g_miss_num THEN
4778: l_promotional_offers_rec.status_code := FND_API.g_miss_char;
4779: ELSIF l_promotional_offers_rec.user_status_id IS NULL THEN
4780: l_promotional_offers_rec.status_code := NULL;
4781: ELSE
4782: l_promotional_offers_rec.status_code := OZF_Utility_PVT.get_system_status_code(p_modifier_list_rec.user_status_id);
4796: l_promotional_offers_rec.customer_reference := p_modifier_list_rec.customer_reference;
4797: l_promotional_offers_rec.buying_group_contact_id := p_modifier_list_rec.buying_group_contact_id;
4798:
4799: IF p_modifier_list_rec.lumpsum_amount is not null AND
4800: p_modifier_list_rec.lumpsum_amount <> FND_API.g_miss_num THEN
4801: l_promotional_offers_rec.offer_amount := p_modifier_list_rec.lumpsum_amount;
4802: END IF;
4803:
4804: l_promotional_offers_rec.budget_amount_fc := p_modifier_list_rec.budget_amount_fc;
4848: p_object_version_number => l_promotional_offers_rec.object_version_number
4849: );
4850: END IF;
4851:
4852: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4853: RAISE Fnd_Api.g_exc_error;
4854: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4855: RAISE Fnd_Api.g_exc_unexpected_error;
4856: END IF;
4849: );
4850: END IF;
4851:
4852: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4853: RAISE Fnd_Api.g_exc_error;
4854: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4855: RAISE Fnd_Api.g_exc_unexpected_error;
4856: END IF;
4857:
4850: END IF;
4851:
4852: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4853: RAISE Fnd_Api.g_exc_error;
4854: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4855: RAISE Fnd_Api.g_exc_unexpected_error;
4856: END IF;
4857:
4858: Fnd_Msg_Pub.Count_AND_Get
4851:
4852: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
4853: RAISE Fnd_Api.g_exc_error;
4854: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
4855: RAISE Fnd_Api.g_exc_unexpected_error;
4856: END IF;
4857:
4858: Fnd_Msg_Pub.Count_AND_Get
4859: ( p_count => x_msg_count,
4857:
4858: Fnd_Msg_Pub.Count_AND_Get
4859: ( p_count => x_msg_count,
4860: p_data => x_msg_data,
4861: p_encoded => Fnd_Api.G_FALSE
4862: );
4863: EXCEPTION
4864: WHEN Fnd_Api.G_EXC_ERROR THEN
4865: x_return_status := Fnd_Api.g_ret_sts_error ;
4860: p_data => x_msg_data,
4861: p_encoded => Fnd_Api.G_FALSE
4862: );
4863: EXCEPTION
4864: WHEN Fnd_Api.G_EXC_ERROR THEN
4865: x_return_status := Fnd_Api.g_ret_sts_error ;
4866: ROLLBACK TO process_ozf_offer;
4867: Fnd_Msg_Pub.Count_AND_Get
4868: ( p_count => x_msg_count,
4861: p_encoded => Fnd_Api.G_FALSE
4862: );
4863: EXCEPTION
4864: WHEN Fnd_Api.G_EXC_ERROR THEN
4865: x_return_status := Fnd_Api.g_ret_sts_error ;
4866: ROLLBACK TO process_ozf_offer;
4867: Fnd_Msg_Pub.Count_AND_Get
4868: ( p_count => x_msg_count,
4869: p_data => x_msg_data,
4866: ROLLBACK TO process_ozf_offer;
4867: Fnd_Msg_Pub.Count_AND_Get
4868: ( p_count => x_msg_count,
4869: p_data => x_msg_data,
4870: p_encoded => Fnd_Api.G_FALSE
4871: );
4872: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4873: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4874: ROLLBACK TO process_ozf_offer;
4868: ( p_count => x_msg_count,
4869: p_data => x_msg_data,
4870: p_encoded => Fnd_Api.G_FALSE
4871: );
4872: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4873: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4874: ROLLBACK TO process_ozf_offer;
4875: Fnd_Msg_Pub.Count_AND_Get
4876: ( p_count => x_msg_count,
4869: p_data => x_msg_data,
4870: p_encoded => Fnd_Api.G_FALSE
4871: );
4872: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
4873: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4874: ROLLBACK TO process_ozf_offer;
4875: Fnd_Msg_Pub.Count_AND_Get
4876: ( p_count => x_msg_count,
4877: p_data => x_msg_data,
4874: ROLLBACK TO process_ozf_offer;
4875: Fnd_Msg_Pub.Count_AND_Get
4876: ( p_count => x_msg_count,
4877: p_data => x_msg_data,
4878: p_encoded => Fnd_Api.G_FALSE
4879: );
4880: WHEN OTHERS THEN
4881: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4882: ROLLBACK TO process_ozf_offer;
4877: p_data => x_msg_data,
4878: p_encoded => Fnd_Api.G_FALSE
4879: );
4880: WHEN OTHERS THEN
4881: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
4882: ROLLBACK TO process_ozf_offer;
4883: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
4884: THEN
4885: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4886: END IF;
4887: Fnd_Msg_Pub.Count_AND_Get
4888: ( p_count => x_msg_count,
4889: p_data => x_msg_data,
4890: p_encoded => Fnd_Api.G_FALSE
4891: );
4892: END;
4893:
4894: --=============================PBH Creation procedures===============================================
4963: )
4964: IS
4965: l_index NUMBER;
4966: BEGIN
4967: x_return_status := FND_API.G_RET_STS_SUCCESS;
4968: l_index := x_modifiersTbl.count + 1;
4969: x_modifiersTbl(l_index).operation := 'CREATE' ;
4970: x_modifiersTbl(l_index).list_line_type_code := 'DIS' ;
4971: x_modifiersTbl(l_index).list_header_id := p_modifierLineRec.list_header_id;
4999: )
5000: IS
5001: l_index NUMBER;
5002: BEGIN
5003: x_return_status := FND_API.G_RET_STS_SUCCESS;
5004: l_index := x_modifiersTbl.count + 1;
5005: x_modifiersTbl(l_index).operation := 'CREATE' ;
5006: x_modifiersTbl(l_index).list_line_type_code := 'DIS' ;
5007: x_modifiersTbl(l_index).list_header_id := p_modifierLineRec.list_header_id;
5034: IS
5035: l_index NUMBER;
5036: l_modifierLineRec MODIFIER_LINE_REC_TYPE;
5037: BEGIN
5038: x_return_status := FND_API.G_RET_STS_SUCCESS;
5039: l_index := nvl(x_modifiersTbl.count,0) + 1;
5040: ozf_utility_pvt.debug_message('After setting index:'||p_modifierLineRec.pricing_attr_value_from);
5041: l_modifierLineRec := p_modifierLineRec;
5042: IF p_modifierLineRec.pricing_attr_value_from IS NOT NULL AND p_modifierLineRec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
5038: x_return_status := FND_API.G_RET_STS_SUCCESS;
5039: l_index := nvl(x_modifiersTbl.count,0) + 1;
5040: ozf_utility_pvt.debug_message('After setting index:'||p_modifierLineRec.pricing_attr_value_from);
5041: l_modifierLineRec := p_modifierLineRec;
5042: IF p_modifierLineRec.pricing_attr_value_from IS NOT NULL AND p_modifierLineRec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
5043: l_modifierLineRec.pricing_attr_value_from := 0;
5044: END IF;
5045: IF NVL(to_number(l_modifierLineRec.pricing_attr_value_from), 0) > 0 THEN
5046: ozf_utility_pvt.debug_message('Calling Populate zero discount');
5076: )
5077: IS
5078: l_index NUMBER;
5079: BEGIN
5080: x_return_status := FND_API.G_RET_STS_SUCCESS;
5081: l_index := nvl(x_pricingAttrTbl.count,0) + 1;
5082: x_pricingAttrTbl(l_index).product_attribute_context := 'ITEM';
5083: x_pricingAttrTbl(l_index).product_attribute := p_modifierLineRec.product_attr;
5084: x_pricingAttrTbl(l_index).product_attr_value := p_modifierLineRec.product_attr_val;
5102: )
5103: IS
5104: l_index NUMBER;
5105: BEGIN
5106: x_return_status := FND_API.G_RET_STS_SUCCESS;
5107: l_index := nvl(x_pricingAttrTbl.count,0) + 1;
5108: x_pricingAttrTbl(l_index).product_attribute_context := 'ITEM';
5109: x_pricingAttrTbl(l_index).product_attribute := p_modifierLineRec.product_attr;
5110: x_pricingAttrTbl(l_index).product_attr_value := p_modifierLineRec.product_attr_val;
5133: WHERE list_line_id = cp_listLineId
5134: OR list_line_id IN (select to_rltd_modifier_id FROM qp_rltd_modifiers WHERE from_rltd_modifier_id = cp_listLineId AND rltd_modifier_grp_type = 'PRICE BREAK');
5135: i NUMBER;
5136: BEGIN
5137: x_return_status := FND_API.G_RET_STS_SUCCESS;
5138: i := 1;
5139: FOR l_pricingAttr IN c_pricingAttr(cp_listLineId => p_modifierLineRec.list_line_id) LOOP
5140: x_pricingAttrTbl(i).pricing_attribute_id := l_pricingAttr.pricing_attribute_id;
5141: x_pricingAttrTbl(i).product_attribute_context := 'ITEM';
5167: IS
5168: l_index NUMBER;
5169: l_modifierLineRec MODIFIER_LINE_REC_TYPE;
5170: BEGIN
5171: x_return_status := FND_API.G_RET_STS_SUCCESS;
5172: l_index := x_pricingAttrTbl.count + 1;
5173: l_modifierLineRec := p_modifierLineRec;
5174: IF p_modifierLineRec.operation = 'CREATE' THEN
5175: IF p_modifierLineRec.pricing_attr_value_from IS NOT NULL AND p_modifierLineRec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
5171: x_return_status := FND_API.G_RET_STS_SUCCESS;
5172: l_index := x_pricingAttrTbl.count + 1;
5173: l_modifierLineRec := p_modifierLineRec;
5174: IF p_modifierLineRec.operation = 'CREATE' THEN
5175: IF p_modifierLineRec.pricing_attr_value_from IS NOT NULL AND p_modifierLineRec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
5176: l_modifierLineRec.pricing_attr_value_from := 0;
5177: END IF;
5178: IF NVL(to_number(l_modifierLineRec.pricing_attr_value_from), 0) > 0 THEN
5179: populateZeroPricingAttr
5221: , x_pricingAttrTbl IN OUT NOCOPY Qp_Modifiers_Pub.pricing_attr_tbl_type
5222: )
5223: IS
5224: BEGIN
5225: x_return_status := FND_API.G_RET_STS_SUCCESS;
5226: ozf_utility_pvt.debug_message('Calling populate DIS Modifier Data');
5227: IF p_modifierLineRec.operation = 'CREATE' THEN
5228: populateDISModifierData
5229: (
5232: ,x_msg_data => x_msg_data
5233: ,p_modifierLineRec => p_modifierLineRec
5234: , x_modifiersTbl => x_modifiersTbl
5235: );
5236: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5237: RAISE FND_API.G_EXC_ERROR;
5238: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5239: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5240: END IF;
5233: ,p_modifierLineRec => p_modifierLineRec
5234: , x_modifiersTbl => x_modifiersTbl
5235: );
5236: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5237: RAISE FND_API.G_EXC_ERROR;
5238: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5239: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5240: END IF;
5241: END IF;
5234: , x_modifiersTbl => x_modifiersTbl
5235: );
5236: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5237: RAISE FND_API.G_EXC_ERROR;
5238: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5239: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5240: END IF;
5241: END IF;
5242: ozf_utility_pvt.debug_message('Calling populate DIS Pricing Attr Data');
5235: );
5236: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5237: RAISE FND_API.G_EXC_ERROR;
5238: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5239: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5240: END IF;
5241: END IF;
5242: ozf_utility_pvt.debug_message('Calling populate DIS Pricing Attr Data');
5243: populateDISPricingAttrData
5247: ,x_msg_data => x_msg_data
5248: ,p_modifierLineRec => p_modifierLineRec
5249: ,x_pricingAttrTbl => x_pricingAttrTbl
5250: );
5251: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5252: RAISE FND_API.G_EXC_ERROR;
5253: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5255: END IF;
5248: ,p_modifierLineRec => p_modifierLineRec
5249: ,x_pricingAttrTbl => x_pricingAttrTbl
5250: );
5251: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5252: RAISE FND_API.G_EXC_ERROR;
5253: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5255: END IF;
5256:
5249: ,x_pricingAttrTbl => x_pricingAttrTbl
5250: );
5251: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5252: RAISE FND_API.G_EXC_ERROR;
5253: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5255: END IF;
5256:
5257: END populateDisData;
5250: );
5251: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5252: RAISE FND_API.G_EXC_ERROR;
5253: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5255: END IF;
5256:
5257: END populateDisData;
5258:
5269: , x_modifiersTbl OUT NOCOPY Qp_Modifiers_Pub.modifiers_tbl_type
5270: )
5271: IS
5272: BEGIN
5273: x_return_status := FND_API.G_RET_STS_SUCCESS;
5274: x_modifiersTbl(1).operation := p_modifierLineRec.operation;
5275: x_modifiersTbl(1).list_header_id := p_modifierLineRec.list_header_id;
5276: x_modifiersTbl(1).list_line_id := p_modifierLineRec.list_line_id;
5277: x_modifiersTbl(1).start_date_active := p_modifierLineRec.start_date_active;
5310: , x_pricingAttrTbl OUT NOCOPY Qp_Modifiers_Pub.pricing_attr_tbl_type
5311: )
5312: IS
5313: BEGIN
5314: x_return_status := FND_API.G_RET_STS_SUCCESS;
5315: x_pricingAttrTbl(1).product_attribute_context := 'ITEM';
5316: x_pricingAttrTbl(1).product_attribute := p_modifierLineRec.product_attr;
5317: x_pricingAttrTbl(1).product_attr_value := p_modifierLineRec.product_attr_val;
5318: x_pricingAttrTbl(1).product_uom_code := p_modifierLineRec.product_uom_code;
5340: BEGIN
5341: -- initialize
5342: -- populate modifers data
5343: -- populate pricing attribute data
5344: x_return_status := FND_API.G_RET_STS_SUCCESS;
5345: populatePBHModifierData
5346: (
5347: x_return_status => x_return_status
5348: ,x_msg_count => x_msg_count
5349: ,x_msg_data => x_msg_data
5350: ,p_modifierLineRec => p_modifierLineRec
5351: , x_modifiersTbl => x_modifiersTbl
5352: );
5353: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5354: RAISE FND_API.G_EXC_ERROR;
5355: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5357: END IF;
5350: ,p_modifierLineRec => p_modifierLineRec
5351: , x_modifiersTbl => x_modifiersTbl
5352: );
5353: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5354: RAISE FND_API.G_EXC_ERROR;
5355: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5357: END IF;
5358: populatePBHPricingAttrData
5351: , x_modifiersTbl => x_modifiersTbl
5352: );
5353: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5354: RAISE FND_API.G_EXC_ERROR;
5355: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5357: END IF;
5358: populatePBHPricingAttrData
5359: (
5352: );
5353: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5354: RAISE FND_API.G_EXC_ERROR;
5355: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5357: END IF;
5358: populatePBHPricingAttrData
5359: (
5360: x_return_status => x_return_status
5362: ,x_msg_data => x_msg_data
5363: ,p_modifierLineRec => p_modifierLineRec
5364: ,x_pricingAttrTbl => x_pricingAttrTbl
5365: );
5366: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5367: RAISE FND_API.G_EXC_ERROR;
5368: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5369: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5370: END IF;
5363: ,p_modifierLineRec => p_modifierLineRec
5364: ,x_pricingAttrTbl => x_pricingAttrTbl
5365: );
5366: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5367: RAISE FND_API.G_EXC_ERROR;
5368: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5369: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5370: END IF;
5371: END populatePbhData;
5364: ,x_pricingAttrTbl => x_pricingAttrTbl
5365: );
5366: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5367: RAISE FND_API.G_EXC_ERROR;
5368: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5369: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5370: END IF;
5371: END populatePbhData;
5372:
5365: );
5366: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5367: RAISE FND_API.G_EXC_ERROR;
5368: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5369: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5370: END IF;
5371: END populatePbhData;
5372:
5373: /**
5400: -- populate pbh data
5401: -- populate dis data
5402: -- process db txn
5403: -- process errors
5404: x_return_status := FND_API.G_RET_STS_SUCCESS;
5405: l_modifiersTbl.delete;
5406: l_pricingAttrTbl.delete;
5407: populatePbhData
5408: (
5412: ,p_modifierLineRec => p_modifierLineRec
5413: , x_modifiersTbl => l_modifiersTbl
5414: , x_pricingAttrTbl => l_pricingAttrTbl
5415: );
5416: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5417: RAISE FND_API.G_EXC_ERROR;
5418: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5419: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5420: END IF;
5413: , x_modifiersTbl => l_modifiersTbl
5414: , x_pricingAttrTbl => l_pricingAttrTbl
5415: );
5416: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5417: RAISE FND_API.G_EXC_ERROR;
5418: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5419: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5420: END IF;
5421: populateDisData
5414: , x_pricingAttrTbl => l_pricingAttrTbl
5415: );
5416: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5417: RAISE FND_API.G_EXC_ERROR;
5418: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5419: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5420: END IF;
5421: populateDisData
5422: (
5415: );
5416: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5417: RAISE FND_API.G_EXC_ERROR;
5418: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5419: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5420: END IF;
5421: populateDisData
5422: (
5423: x_return_status => x_return_status
5426: ,p_modifierLineRec => p_modifierLineRec
5427: , x_modifiersTbl => l_modifiersTbl
5428: , x_pricingAttrTbl => l_pricingAttrTbl
5429: );
5430: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5431: RAISE FND_API.G_EXC_ERROR;
5432: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5433: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5434: END IF;
5427: , x_modifiersTbl => l_modifiersTbl
5428: , x_pricingAttrTbl => l_pricingAttrTbl
5429: );
5430: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5431: RAISE FND_API.G_EXC_ERROR;
5432: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5433: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5434: END IF;
5435:
5428: , x_pricingAttrTbl => l_pricingAttrTbl
5429: );
5430: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5431: RAISE FND_API.G_EXC_ERROR;
5432: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5433: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5434: END IF;
5435:
5436: QP_Modifiers_PUB.process_modifiers(
5429: );
5430: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5431: RAISE FND_API.G_EXC_ERROR;
5432: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5433: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5434: END IF;
5435:
5436: QP_Modifiers_PUB.process_modifiers(
5437: p_api_version_number => 1.0,
5434: END IF;
5435:
5436: QP_Modifiers_PUB.process_modifiers(
5437: p_api_version_number => 1.0,
5438: p_init_msg_list => FND_API.G_FALSE,
5439: p_return_values => FND_API.G_FALSE,
5440: x_return_status => x_return_status,
5441: x_msg_count => x_msg_count,
5442: x_msg_data => x_msg_data,
5435:
5436: QP_Modifiers_PUB.process_modifiers(
5437: p_api_version_number => 1.0,
5438: p_init_msg_list => FND_API.G_FALSE,
5439: p_return_values => FND_API.G_FALSE,
5440: x_return_status => x_return_status,
5441: x_msg_count => x_msg_count,
5442: x_msg_data => x_msg_data,
5443: p_modifiers_tbl => l_modifiersTbl,
5451: x_pricing_attr_tbl => v_pricing_attr_tbl,
5452: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
5453: );
5454: x_modifiersTbl := v_modifiers_tbl;
5455: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
5456: return;
5457: END IF;
5458: END processPbhLine;
5459:
5486: -- initialize
5487: -- loop thru lines
5488: -- for each pbh create the line in the database
5489: -- handle exception
5490: x_return_status := Fnd_Api.g_ret_sts_success;
5491: IF nvl(p_modifier_line_tbl.count,0) > 0 THEN
5492: FOR i in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
5493: IF p_modifier_line_tbl.exists(i) THEN
5494: processPbhLine
5500: ,p_modifierLineRec => p_modifier_line_tbl(i)
5501: ,x_modifiersTbl => v_modifiers_tbl
5502: -- ,x_error_location OUT NOCOPY NUMBER
5503: );
5504: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5505: x_error_location := i;
5506: RAISE FND_API.G_EXC_ERROR;
5507: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5508: x_error_location := i;
5502: -- ,x_error_location OUT NOCOPY NUMBER
5503: );
5504: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5505: x_error_location := i;
5506: RAISE FND_API.G_EXC_ERROR;
5507: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5508: x_error_location := i;
5509: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5510: END IF;
5503: );
5504: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5505: x_error_location := i;
5506: RAISE FND_API.G_EXC_ERROR;
5507: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5508: x_error_location := i;
5509: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5510: END IF;
5511: END IF;
5505: x_error_location := i;
5506: RAISE FND_API.G_EXC_ERROR;
5507: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5508: x_error_location := i;
5509: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5510: END IF;
5511: END IF;
5512: IF nvl(v_modifiers_tbl.count,0) > 0 THEN
5513: FOR i in v_modifiers_tbl.first .. v_modifiers_tbl.last LOOP
5521: END LOOP;
5522: END IF;
5523:
5524: EXCEPTION
5525: WHEN Fnd_Api.G_EXC_ERROR THEN
5526: x_return_status := Fnd_Api.g_ret_sts_error ;
5527: Fnd_Msg_Pub.Count_AND_Get
5528: ( p_count => x_msg_count,
5529: p_data => x_msg_data,
5522: END IF;
5523:
5524: EXCEPTION
5525: WHEN Fnd_Api.G_EXC_ERROR THEN
5526: x_return_status := Fnd_Api.g_ret_sts_error ;
5527: Fnd_Msg_Pub.Count_AND_Get
5528: ( p_count => x_msg_count,
5529: p_data => x_msg_data,
5530: p_encoded => Fnd_Api.G_FALSE
5526: x_return_status := Fnd_Api.g_ret_sts_error ;
5527: Fnd_Msg_Pub.Count_AND_Get
5528: ( p_count => x_msg_count,
5529: p_data => x_msg_data,
5530: p_encoded => Fnd_Api.G_FALSE
5531: );
5532: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
5533: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5534: Fnd_Msg_Pub.Count_AND_Get
5528: ( p_count => x_msg_count,
5529: p_data => x_msg_data,
5530: p_encoded => Fnd_Api.G_FALSE
5531: );
5532: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
5533: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5534: Fnd_Msg_Pub.Count_AND_Get
5535: ( p_count => x_msg_count,
5536: p_data => x_msg_data,
5529: p_data => x_msg_data,
5530: p_encoded => Fnd_Api.G_FALSE
5531: );
5532: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
5533: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5534: Fnd_Msg_Pub.Count_AND_Get
5535: ( p_count => x_msg_count,
5536: p_data => x_msg_data,
5537: p_encoded => Fnd_Api.G_FALSE
5533: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5534: Fnd_Msg_Pub.Count_AND_Get
5535: ( p_count => x_msg_count,
5536: p_data => x_msg_data,
5537: p_encoded => Fnd_Api.G_FALSE
5538: );
5539: WHEN OTHERS THEN
5540: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
5541: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
5536: p_data => x_msg_data,
5537: p_encoded => Fnd_Api.G_FALSE
5538: );
5539: WHEN OTHERS THEN
5540: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
5541: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
5542: THEN
5543: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
5544: END IF;
5544: END IF;
5545: Fnd_Msg_Pub.Count_AND_Get
5546: ( p_count => x_msg_count,
5547: p_data => x_msg_data,
5548: p_encoded => Fnd_Api.G_FALSE
5549: );
5550:
5551: END;
5552:
5630:
5631: l_adv_options_exist NUMBER;
5632:
5633: BEGIN
5634: x_return_status := Fnd_Api.g_ret_sts_success;
5635: l_override_flag := FND_PROFILE.value('OZF_OFFR_OVERRIDE_FLAG');
5636: l_list_header_id := p_modifier_line_tbl(p_modifier_line_tbl.last).list_header_id;
5637:
5638: OPEN cur_get_discount_level(l_list_header_id);
5654:
5655: FOR j in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
5656: IF p_modifier_line_tbl.exists(j) THEN
5657: debug_message('ListLineTypeCode is :'||p_modifier_line_tbl(j).list_line_type_code);
5658: -- RAISE Fnd_Api.g_exc_error;
5659: -- all tiers will be passed as PBH even though some of them are actually Tiers
5660: IF p_modifier_line_tbl(j).list_line_type_code <> 'PBH' THEN
5661: i := i+1;
5662:
5805: l_pricing_attr_tbl(i).product_attribute := p_modifier_line_tbl(j).product_attr;
5806: l_pricing_attr_tbl(i).product_attr_value := p_modifier_line_tbl(j).product_attr_val;
5807:
5808: IF p_modifier_line_tbl(j).pricing_attr = 'PRICING_ATTRIBUTE10' THEN--if volume_type is qty
5809: IF p_modifier_line_tbl(j).product_uom_code is not null and p_modifier_line_tbl(j).product_uom_code <> FND_API.g_miss_char THEN
5810: l_pricing_attr_tbl(i).product_uom_code := p_modifier_line_tbl(j).product_uom_code;
5811: l_modifiers_tbl(i).price_break_type_code := 'POINT';
5812: l_pricing_attr_tbl(i).pricing_attribute_context := 'VOLUME';
5813: l_pricing_attr_tbl(i).pricing_attribute := p_modifier_line_tbl(j).pricing_attr;
5816: l_pricing_attr_tbl(i).pricing_attr_value_to := p_modifier_line_tbl(j).pricing_attr_value_to;
5817: END IF;
5818: l_pricing_attr_tbl(i).comparison_operator_code := 'BETWEEN';
5819: ELSIF (p_parent_offer_type<>'DEAL') AND (p_modifier_line_tbl(j).product_uom_code is null --fix for bug 5969719
5820: OR p_modifier_line_tbl(j).product_uom_code = FND_API.g_miss_char
5821: ) AND
5822: ((p_modifier_line_tbl(j).pricing_attr_value_from is not null
5823: AND p_modifier_line_tbl(j).pricing_attr_value_from <> FND_API.g_miss_num) OR
5824: (p_modifier_line_tbl(j).pricing_attr is not null
5819: ELSIF (p_parent_offer_type<>'DEAL') AND (p_modifier_line_tbl(j).product_uom_code is null --fix for bug 5969719
5820: OR p_modifier_line_tbl(j).product_uom_code = FND_API.g_miss_char
5821: ) AND
5822: ((p_modifier_line_tbl(j).pricing_attr_value_from is not null
5823: AND p_modifier_line_tbl(j).pricing_attr_value_from <> FND_API.g_miss_num) OR
5824: (p_modifier_line_tbl(j).pricing_attr is not null
5825: AND p_modifier_line_tbl(j).pricing_attr <> FND_API.g_miss_char))
5826: THEN
5827: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
5821: ) AND
5822: ((p_modifier_line_tbl(j).pricing_attr_value_from is not null
5823: AND p_modifier_line_tbl(j).pricing_attr_value_from <> FND_API.g_miss_num) OR
5824: (p_modifier_line_tbl(j).pricing_attr is not null
5825: AND p_modifier_line_tbl(j).pricing_attr <> FND_API.g_miss_char))
5826: THEN
5827: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
5828:
5829: Fnd_Msg_Pub.ADD;
5826: THEN
5827: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
5828:
5829: Fnd_Msg_Pub.ADD;
5830: RAISE FND_API.G_EXC_ERROR;
5831: END IF;
5832: ELSE -- volume type is amount
5833: l_pricing_attr_tbl(i).product_uom_code := p_modifier_line_tbl(j).product_uom_code;
5834: l_modifiers_tbl(i).price_break_type_code := 'POINT';
5846: l_pricing_attr_tbl(i).list_line_id := p_modifier_line_tbl(j).list_line_id;
5847: l_pricing_attr_tbl(i).operation := p_modifier_line_tbl(j).operation;
5848:
5849:
5850: IF p_modifier_line_tbl(j).order_value_from <> fnd_api.g_miss_char and
5851: p_modifier_line_tbl(j).order_value_from is not null THEN
5852:
5853: -- This fragment only appears in the detail detail page. Assuming list line id is available.
5854: IF p_modifier_line_tbl(j).qualifier_id = fnd_api.g_miss_num THEN
5850: IF p_modifier_line_tbl(j).order_value_from <> fnd_api.g_miss_char and
5851: p_modifier_line_tbl(j).order_value_from is not null THEN
5852:
5853: -- This fragment only appears in the detail detail page. Assuming list line id is available.
5854: IF p_modifier_line_tbl(j).qualifier_id = fnd_api.g_miss_num THEN
5855: l_qualifiers_tbl(i).operation := 'CREATE';
5856: l_qualifiers_tbl(i).qualifier_id := fnd_api.g_miss_num;
5857: ELSIF p_modifier_line_tbl(j).order_value_from is not null or p_modifier_line_tbl(j).order_value_to is not null THEN
5858: l_qualifiers_tbl(i).qualifier_id := p_modifier_line_tbl(j).qualifier_id;
5852:
5853: -- This fragment only appears in the detail detail page. Assuming list line id is available.
5854: IF p_modifier_line_tbl(j).qualifier_id = fnd_api.g_miss_num THEN
5855: l_qualifiers_tbl(i).operation := 'CREATE';
5856: l_qualifiers_tbl(i).qualifier_id := fnd_api.g_miss_num;
5857: ELSIF p_modifier_line_tbl(j).order_value_from is not null or p_modifier_line_tbl(j).order_value_to is not null THEN
5858: l_qualifiers_tbl(i).qualifier_id := p_modifier_line_tbl(j).qualifier_id;
5859: l_qualifiers_tbl(i).operation := 'UPDATE';
5860: ELSIF p_modifier_line_tbl(j).order_value_from is null and p_modifier_line_tbl(j).order_value_to is null THEN
5868: l_qualifiers_tbl(i).list_line_id := p_modifier_line_tbl(j).list_line_id;
5869: l_qualifiers_tbl(i).qualifier_context := 'VOLUME';
5870: l_qualifiers_tbl(i).qualifier_attribute := 'QUALIFIER_ATTRIBUTE10';
5871: l_qualifiers_tbl(i).qualifier_attr_value := p_modifier_line_tbl(j).order_value_from;
5872: IF p_modifier_line_tbl(j).order_value_to is not null and p_modifier_line_tbl(j).order_value_to <> FND_API.g_miss_char THEN
5873: l_qualifiers_tbl(i).qualifier_attr_value_to := p_modifier_line_tbl(j).order_value_to;
5874: ELSE
5875: l_qualifiers_tbl(i).qualifier_attr_value_to := FND_API.g_miss_char;
5876: END IF;
5871: l_qualifiers_tbl(i).qualifier_attr_value := p_modifier_line_tbl(j).order_value_from;
5872: IF p_modifier_line_tbl(j).order_value_to is not null and p_modifier_line_tbl(j).order_value_to <> FND_API.g_miss_char THEN
5873: l_qualifiers_tbl(i).qualifier_attr_value_to := p_modifier_line_tbl(j).order_value_to;
5874: ELSE
5875: l_qualifiers_tbl(i).qualifier_attr_value_to := FND_API.g_miss_char;
5876: END IF;
5877: l_qualifiers_tbl(i).comparison_operator_code := 'BETWEEN';
5878: l_qualifiers_tbl(i).qualifier_grouping_no := 1;
5879:
5890:
5891: END IF;
5892: debug_message('ListLineTypeCode is :'||p_modifier_line_tbl(j).list_line_type_code);
5893: END LOOP;
5894: -- RAISE Fnd_Api.g_exc_error;
5895:
5896: IF l_modifiers_tbl.count > 0 THEN -- bug 3711957. when processing PBH, l_modifiers_tbl is empty
5897: QP_Modifiers_PUB.process_modifiers(
5898: p_api_version_number => 1.0,
5895:
5896: IF l_modifiers_tbl.count > 0 THEN -- bug 3711957. when processing PBH, l_modifiers_tbl is empty
5897: QP_Modifiers_PUB.process_modifiers(
5898: p_api_version_number => 1.0,
5899: p_init_msg_list => FND_API.G_FALSE,
5900: p_return_values => FND_API.G_FALSE,
5901: x_return_status => x_return_status,
5902: x_msg_count => x_msg_count,
5903: x_msg_data => x_msg_data,
5896: IF l_modifiers_tbl.count > 0 THEN -- bug 3711957. when processing PBH, l_modifiers_tbl is empty
5897: QP_Modifiers_PUB.process_modifiers(
5898: p_api_version_number => 1.0,
5899: p_init_msg_list => FND_API.G_FALSE,
5900: p_return_values => FND_API.G_FALSE,
5901: x_return_status => x_return_status,
5902: x_msg_count => x_msg_count,
5903: x_msg_data => x_msg_data,
5904: p_modifiers_tbl => l_modifiers_tbl,
5913: x_pricing_attr_tbl => v_pricing_attr_tbl,
5914: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
5915: );
5916:
5917: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
5918: IF v_modifiers_tbl.COUNT > 0 THEN
5919: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
5920: IF v_modifiers_tbl.EXISTS(k) THEN
5921: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
5917: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
5918: IF v_modifiers_tbl.COUNT > 0 THEN
5919: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
5920: IF v_modifiers_tbl.EXISTS(k) THEN
5921: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
5922: FOR t in l_map_table.first..l_map_table.last LOOP
5923: IF l_map_table.exists(t) THEN
5924: IF l_map_table(t).new_row = k THEN
5925: x_error_location := l_map_table(t).orig_row;
5932: END LOOP;
5933: END IF;
5934: END IF;
5935:
5936: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5937: add_message(x_msg_count);
5938: RAISE Fnd_Api.g_exc_error;
5939: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5940: add_message(x_msg_count);
5934: END IF;
5935:
5936: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5937: add_message(x_msg_count);
5938: RAISE Fnd_Api.g_exc_error;
5939: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5940: add_message(x_msg_count);
5941: RAISE Fnd_Api.g_exc_unexpected_error;
5942: END IF;
5935:
5936: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5937: add_message(x_msg_count);
5938: RAISE Fnd_Api.g_exc_error;
5939: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5940: add_message(x_msg_count);
5941: RAISE Fnd_Api.g_exc_unexpected_error;
5942: END IF;
5943:
5937: add_message(x_msg_count);
5938: RAISE Fnd_Api.g_exc_error;
5939: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5940: add_message(x_msg_count);
5941: RAISE Fnd_Api.g_exc_unexpected_error;
5942: END IF;
5943:
5944: x_modifiers_tbl := v_modifiers_tbl;
5945: END IF; -- end bug 3711957
5971: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
5972: ,p_limit_id => p_modifier_line_tbl(limit_index).max_orders_per_customer_id
5973: );
5974:
5975: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5976: x_error_location := limit_index;
5977: RAISE Fnd_Api.g_exc_error;
5978: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5979: x_error_location := limit_index;
5973: );
5974:
5975: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5976: x_error_location := limit_index;
5977: RAISE Fnd_Api.g_exc_error;
5978: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5979: x_error_location := limit_index;
5980: RAISE Fnd_Api.g_exc_unexpected_error;
5981: END IF;
5974:
5975: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
5976: x_error_location := limit_index;
5977: RAISE Fnd_Api.g_exc_error;
5978: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5979: x_error_location := limit_index;
5980: RAISE Fnd_Api.g_exc_unexpected_error;
5981: END IF;
5982:
5976: x_error_location := limit_index;
5977: RAISE Fnd_Api.g_exc_error;
5978: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
5979: x_error_location := limit_index;
5980: RAISE Fnd_Api.g_exc_unexpected_error;
5981: END IF;
5982:
5983: END IF;
5984: END LOOP;
5999: );
6000:
6001: END IF;
6002:
6003: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
6004: FOR t in l_map_table.first..l_map_table.last LOOP
6005: IF l_map_table.exists(t) THEN
6006: IF l_map_table(t).tier_row = x_error_location THEN
6007: x_error_location := l_map_table(t).orig_row;
6010: END IF;
6011: END LOOP;
6012: END IF;
6013:
6014: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6015: RAISE Fnd_Api.g_exc_error;
6016: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6017: RAISE Fnd_Api.g_exc_unexpected_error;
6018: END IF;
6011: END LOOP;
6012: END IF;
6013:
6014: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6015: RAISE Fnd_Api.g_exc_error;
6016: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6017: RAISE Fnd_Api.g_exc_unexpected_error;
6018: END IF;
6019:
6012: END IF;
6013:
6014: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6015: RAISE Fnd_Api.g_exc_error;
6016: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6017: RAISE Fnd_Api.g_exc_unexpected_error;
6018: END IF;
6019:
6020: /*#############################################################################
6013:
6014: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6015: RAISE Fnd_Api.g_exc_error;
6016: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6017: RAISE Fnd_Api.g_exc_unexpected_error;
6018: END IF;
6019:
6020: /*#############################################################################
6021: For Off Invoice and Accruals, Limit information comes only
6046:
6047: END IF;
6048:
6049: -- IF p_modifier_line_tbl(limit_index).limit_exceed_action_code IS NOT NULL
6050: -- OR p_modifier_line_tbl(limit_index).limit_exceed_action_code <> FND_API.G_MISS_CHAR THEN
6051:
6052: process_limits
6053: (
6054: x_return_status => x_return_status
6061: ,p_limit_id => p_modifier_line_tbl(limit_index).max_qty_per_order_id
6062: );
6063:
6064:
6065: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6066: x_error_location := limit_index;
6067: RAISE Fnd_Api.g_exc_error;
6068: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6069: x_error_location := limit_index;
6063:
6064:
6065: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6066: x_error_location := limit_index;
6067: RAISE Fnd_Api.g_exc_error;
6068: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6069: x_error_location := limit_index;
6070: RAISE Fnd_Api.g_exc_unexpected_error;
6071: END IF;
6064:
6065: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6066: x_error_location := limit_index;
6067: RAISE Fnd_Api.g_exc_error;
6068: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6069: x_error_location := limit_index;
6070: RAISE Fnd_Api.g_exc_unexpected_error;
6071: END IF;
6072:
6066: x_error_location := limit_index;
6067: RAISE Fnd_Api.g_exc_error;
6068: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6069: x_error_location := limit_index;
6070: RAISE Fnd_Api.g_exc_unexpected_error;
6071: END IF;
6072:
6073: process_limits
6074: (
6081: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
6082: ,p_limit_id => p_modifier_line_tbl(limit_index).max_qty_per_customer_id
6083: );
6084:
6085: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6086: x_error_location := limit_index;
6087: RAISE Fnd_Api.g_exc_error;
6088: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6089: x_error_location := limit_index;
6083: );
6084:
6085: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6086: x_error_location := limit_index;
6087: RAISE Fnd_Api.g_exc_error;
6088: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6089: x_error_location := limit_index;
6090: RAISE Fnd_Api.g_exc_unexpected_error;
6091: END IF;
6084:
6085: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6086: x_error_location := limit_index;
6087: RAISE Fnd_Api.g_exc_error;
6088: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6089: x_error_location := limit_index;
6090: RAISE Fnd_Api.g_exc_unexpected_error;
6091: END IF;
6092:
6086: x_error_location := limit_index;
6087: RAISE Fnd_Api.g_exc_error;
6088: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6089: x_error_location := limit_index;
6090: RAISE Fnd_Api.g_exc_unexpected_error;
6091: END IF;
6092:
6093: IF g_sd_offer = 'Y' THEN
6094: process_limits
6117: );
6118:
6119: END IF;
6120:
6121: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6122: x_error_location := limit_index;
6123: RAISE Fnd_Api.g_exc_error;
6124: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6125: x_error_location := limit_index;
6119: END IF;
6120:
6121: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6122: x_error_location := limit_index;
6123: RAISE Fnd_Api.g_exc_error;
6124: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6125: x_error_location := limit_index;
6126: RAISE Fnd_Api.g_exc_unexpected_error;
6127: END IF;
6120:
6121: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6122: x_error_location := limit_index;
6123: RAISE Fnd_Api.g_exc_error;
6124: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6125: x_error_location := limit_index;
6126: RAISE Fnd_Api.g_exc_unexpected_error;
6127: END IF;
6128:
6122: x_error_location := limit_index;
6123: RAISE Fnd_Api.g_exc_error;
6124: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6125: x_error_location := limit_index;
6126: RAISE Fnd_Api.g_exc_unexpected_error;
6127: END IF;
6128:
6129: process_limits
6130: (
6137: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
6138: ,p_limit_id => p_modifier_line_tbl(limit_index).max_orders_per_customer_id
6139: );
6140:
6141: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6142: x_error_location := limit_index;
6143: RAISE Fnd_Api.g_exc_error;
6144: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6145: x_error_location := limit_index;
6139: );
6140:
6141: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6142: x_error_location := limit_index;
6143: RAISE Fnd_Api.g_exc_error;
6144: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6145: x_error_location := limit_index;
6146: RAISE Fnd_Api.g_exc_unexpected_error;
6147: END IF;
6140:
6141: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6142: x_error_location := limit_index;
6143: RAISE Fnd_Api.g_exc_error;
6144: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6145: x_error_location := limit_index;
6146: RAISE Fnd_Api.g_exc_unexpected_error;
6147: END IF;
6148:
6142: x_error_location := limit_index;
6143: RAISE Fnd_Api.g_exc_error;
6144: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6145: x_error_location := limit_index;
6146: RAISE Fnd_Api.g_exc_unexpected_error;
6147: END IF;
6148:
6149: process_limits
6150: (
6157: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
6158: ,p_limit_id => p_modifier_line_tbl(limit_index).max_amount_per_rule_id
6159: );
6160:
6161: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6162: x_error_location := limit_index;
6163: RAISE Fnd_Api.g_exc_error;
6164: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6165: x_error_location := limit_index;
6159: );
6160:
6161: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6162: x_error_location := limit_index;
6163: RAISE Fnd_Api.g_exc_error;
6164: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6165: x_error_location := limit_index;
6166: RAISE Fnd_Api.g_exc_unexpected_error;
6167: END IF;
6160:
6161: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6162: x_error_location := limit_index;
6163: RAISE Fnd_Api.g_exc_error;
6164: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6165: x_error_location := limit_index;
6166: RAISE Fnd_Api.g_exc_unexpected_error;
6167: END IF;
6168:
6162: x_error_location := limit_index;
6163: RAISE Fnd_Api.g_exc_error;
6164: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6165: x_error_location := limit_index;
6166: RAISE Fnd_Api.g_exc_unexpected_error;
6167: END IF;
6168:
6169: END IF;
6170: END LOOP;
6175:
6176: Fnd_Msg_Pub.Count_AND_Get
6177: ( p_count => x_msg_count,
6178: p_data => x_msg_data,
6179: p_encoded => Fnd_Api.G_FALSE
6180: );
6181:
6182: EXCEPTION
6183: WHEN Fnd_Api.G_EXC_ERROR THEN
6179: p_encoded => Fnd_Api.G_FALSE
6180: );
6181:
6182: EXCEPTION
6183: WHEN Fnd_Api.G_EXC_ERROR THEN
6184: x_return_status := Fnd_Api.g_ret_sts_error ;
6185: Fnd_Msg_Pub.Count_AND_Get
6186: ( p_count => x_msg_count,
6187: p_data => x_msg_data,
6180: );
6181:
6182: EXCEPTION
6183: WHEN Fnd_Api.G_EXC_ERROR THEN
6184: x_return_status := Fnd_Api.g_ret_sts_error ;
6185: Fnd_Msg_Pub.Count_AND_Get
6186: ( p_count => x_msg_count,
6187: p_data => x_msg_data,
6188: p_encoded => Fnd_Api.G_FALSE
6184: x_return_status := Fnd_Api.g_ret_sts_error ;
6185: Fnd_Msg_Pub.Count_AND_Get
6186: ( p_count => x_msg_count,
6187: p_data => x_msg_data,
6188: p_encoded => Fnd_Api.G_FALSE
6189: );
6190: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6191: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6192: Fnd_Msg_Pub.Count_AND_Get
6186: ( p_count => x_msg_count,
6187: p_data => x_msg_data,
6188: p_encoded => Fnd_Api.G_FALSE
6189: );
6190: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6191: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6192: Fnd_Msg_Pub.Count_AND_Get
6193: ( p_count => x_msg_count,
6194: p_data => x_msg_data,
6187: p_data => x_msg_data,
6188: p_encoded => Fnd_Api.G_FALSE
6189: );
6190: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6191: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6192: Fnd_Msg_Pub.Count_AND_Get
6193: ( p_count => x_msg_count,
6194: p_data => x_msg_data,
6195: p_encoded => Fnd_Api.G_FALSE
6191: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6192: Fnd_Msg_Pub.Count_AND_Get
6193: ( p_count => x_msg_count,
6194: p_data => x_msg_data,
6195: p_encoded => Fnd_Api.G_FALSE
6196: );
6197: WHEN OTHERS THEN
6198: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6199: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6194: p_data => x_msg_data,
6195: p_encoded => Fnd_Api.G_FALSE
6196: );
6197: WHEN OTHERS THEN
6198: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6199: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6200: THEN
6201: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
6202: END IF;
6202: END IF;
6203: Fnd_Msg_Pub.Count_AND_Get
6204: ( p_count => x_msg_count,
6205: p_data => x_msg_data,
6206: p_encoded => Fnd_Api.G_FALSE
6207: );
6208: END;
6209:
6210:
6266: BEGIN
6267:
6268: SAVEPOINT activate_offer_api;
6269:
6270: x_return_status := FND_API.g_ret_sts_success;
6271:
6272: l_status_code := OZF_Utility_PVT.get_system_status_code(p_new_status_id);
6273:
6274: OPEN cur_get_ozf_offers;
6331:
6332: END IF;
6333:
6334: IF SQL%NOTFOUND THEN
6335: RAISE Fnd_Api.g_exc_unexpected_error;
6336: END IF;
6337:
6338: RETURN;
6339:
6341:
6342:
6343:
6344: activate_offer_over(
6345: p_init_msg_list => FND_API.g_false
6346: ,p_api_version => l_api_version
6347: ,p_commit => FND_API.G_FALSE
6348: ,x_return_status => x_return_status
6349: ,x_msg_count => x_msg_count
6343:
6344: activate_offer_over(
6345: p_init_msg_list => FND_API.g_false
6346: ,p_api_version => l_api_version
6347: ,p_commit => FND_API.G_FALSE
6348: ,x_return_status => x_return_status
6349: ,x_msg_count => x_msg_count
6350: ,x_msg_data => x_msg_data
6351: ,p_offer_rec => l_offer_rec
6352: ,p_called_from => 'B'
6353: ,x_amount_error => l_amount_error
6354: );
6355:
6356: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6357: RAISE Fnd_Api.g_exc_error;
6358: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6359: RAISE Fnd_Api.g_exc_unexpected_error;
6360: END IF;
6353: ,x_amount_error => l_amount_error
6354: );
6355:
6356: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6357: RAISE Fnd_Api.g_exc_error;
6358: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6359: RAISE Fnd_Api.g_exc_unexpected_error;
6360: END IF;
6361:
6354: );
6355:
6356: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6357: RAISE Fnd_Api.g_exc_error;
6358: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6359: RAISE Fnd_Api.g_exc_unexpected_error;
6360: END IF;
6361:
6362: l_recal := FND_PROFILE.VALUE('OZF_BUDGET_ADJ_ALLOW_RECAL');
6355:
6356: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6357: RAISE Fnd_Api.g_exc_error;
6358: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6359: RAISE Fnd_Api.g_exc_unexpected_error;
6360: END IF;
6361:
6362: l_recal := FND_PROFILE.VALUE('OZF_BUDGET_ADJ_ALLOW_RECAL');
6363: -- update status according to recal flag
6404: WHERE list_header_id = p_qp_list_header_id;
6405: END IF;
6406: END IF;
6407: EXCEPTION
6408: WHEN Fnd_Api.G_EXC_ERROR THEN
6409: x_return_status := Fnd_Api.g_ret_sts_error ;
6410: ROLLBACK TO activate_offer_api;
6411: Fnd_Msg_Pub.Count_AND_Get
6412: ( p_count => x_msg_count,
6405: END IF;
6406: END IF;
6407: EXCEPTION
6408: WHEN Fnd_Api.G_EXC_ERROR THEN
6409: x_return_status := Fnd_Api.g_ret_sts_error ;
6410: ROLLBACK TO activate_offer_api;
6411: Fnd_Msg_Pub.Count_AND_Get
6412: ( p_count => x_msg_count,
6413: p_data => x_msg_data,
6410: ROLLBACK TO activate_offer_api;
6411: Fnd_Msg_Pub.Count_AND_Get
6412: ( p_count => x_msg_count,
6413: p_data => x_msg_data,
6414: p_encoded => Fnd_Api.G_FALSE
6415: );
6416: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6417: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6418: ROLLBACK TO activate_offer_api;
6412: ( p_count => x_msg_count,
6413: p_data => x_msg_data,
6414: p_encoded => Fnd_Api.G_FALSE
6415: );
6416: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6417: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6418: ROLLBACK TO activate_offer_api;
6419: Fnd_Msg_Pub.Count_AND_Get
6420: ( p_count => x_msg_count,
6413: p_data => x_msg_data,
6414: p_encoded => Fnd_Api.G_FALSE
6415: );
6416: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6417: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6418: ROLLBACK TO activate_offer_api;
6419: Fnd_Msg_Pub.Count_AND_Get
6420: ( p_count => x_msg_count,
6421: p_data => x_msg_data,
6418: ROLLBACK TO activate_offer_api;
6419: Fnd_Msg_Pub.Count_AND_Get
6420: ( p_count => x_msg_count,
6421: p_data => x_msg_data,
6422: p_encoded => Fnd_Api.G_FALSE
6423: );
6424: WHEN OTHERS THEN
6425: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6426: ROLLBACK TO activate_offer_api;
6421: p_data => x_msg_data,
6422: p_encoded => Fnd_Api.G_FALSE
6423: );
6424: WHEN OTHERS THEN
6425: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6426: ROLLBACK TO activate_offer_api;
6427: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6428: THEN
6429: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
6430: END IF;
6431: Fnd_Msg_Pub.Count_AND_Get
6432: ( p_count => x_msg_count,
6433: p_data => x_msg_data,
6434: p_encoded => Fnd_Api.G_FALSE
6435: );
6436: END;
6437:
6438:
6499: l_override_flag VARCHAR2(1);
6500: l_end_date DATE;
6501: l_start_date DATE;
6502: BEGIN
6503: x_return_status := Fnd_Api.g_ret_sts_success;
6504: l_override_flag := FND_PROFILE.value('OZF_OFFR_OVERRIDE_FLAG');
6505: l_list_header_id := p_modifier_line_tbl(p_modifier_line_tbl.last).list_header_id;
6506:
6507: OPEN cur_get_discount_level(l_list_header_id);
6656: END LOOP;
6657:
6658: QP_Modifiers_PUB.process_modifiers(
6659: p_api_version_number => 1.0,
6660: p_init_msg_list => FND_API.G_FALSE,
6661: p_return_values => FND_API.G_FALSE,
6662: x_return_status => x_return_status,
6663: x_msg_count => x_msg_count,
6664: x_msg_data => x_msg_data,
6657:
6658: QP_Modifiers_PUB.process_modifiers(
6659: p_api_version_number => 1.0,
6660: p_init_msg_list => FND_API.G_FALSE,
6661: p_return_values => FND_API.G_FALSE,
6662: x_return_status => x_return_status,
6663: x_msg_count => x_msg_count,
6664: x_msg_data => x_msg_data,
6665: p_modifiers_tbl => l_modifiers_tbl,
6673: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
6674: );
6675: x_modifiers_tbl := v_modifiers_tbl;
6676:
6677: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
6678: IF v_modifiers_tbl.COUNT > 0 THEN
6679: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
6680: IF v_modifiers_tbl.EXISTS(k) THEN
6681: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
6677: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
6678: IF v_modifiers_tbl.COUNT > 0 THEN
6679: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
6680: IF v_modifiers_tbl.EXISTS(k) THEN
6681: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
6682: x_error_location := k;
6683: EXIT;
6684: END IF;
6685: END IF;
6686: END LOOP;
6687: END IF;
6688: END IF;
6689:
6690: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6691: add_message(x_msg_count);
6692: RAISE Fnd_Api.g_exc_error;
6693: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6694: add_message(x_msg_count);
6688: END IF;
6689:
6690: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6691: add_message(x_msg_count);
6692: RAISE Fnd_Api.g_exc_error;
6693: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6694: add_message(x_msg_count);
6695: RAISE Fnd_Api.g_exc_unexpected_error;
6696: END IF;
6689:
6690: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6691: add_message(x_msg_count);
6692: RAISE Fnd_Api.g_exc_error;
6693: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6694: add_message(x_msg_count);
6695: RAISE Fnd_Api.g_exc_unexpected_error;
6696: END IF;
6697: FOR i in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
6691: add_message(x_msg_count);
6692: RAISE Fnd_Api.g_exc_error;
6693: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6694: add_message(x_msg_count);
6695: RAISE Fnd_Api.g_exc_unexpected_error;
6696: END IF;
6697: FOR i in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
6698: IF p_modifier_line_tbl.exists(i) THEN
6699:
6704: l_qualifiers_tbl(i).qualifier_context := 'VOLUME';
6705: l_qualifiers_tbl(i).qualifier_attribute := 'QUALIFIER_ATTRIBUTE10';
6706: l_qualifiers_tbl(i).qualifier_attr_value := p_modifier_line_tbl(i).order_value_from;
6707: IF p_modifier_line_tbl(i).order_value_to IS NOT NULL AND
6708: p_modifier_line_tbl(i).order_value_to <> FND_API.g_miss_char THEN
6709: l_qualifiers_tbl(i).qualifier_attr_value_to := p_modifier_line_tbl(i).order_value_to;
6710: ELSE
6711: l_qualifiers_tbl(i).qualifier_attr_value_to := FND_API.g_miss_char;
6712: END IF;
6707: IF p_modifier_line_tbl(i).order_value_to IS NOT NULL AND
6708: p_modifier_line_tbl(i).order_value_to <> FND_API.g_miss_char THEN
6709: l_qualifiers_tbl(i).qualifier_attr_value_to := p_modifier_line_tbl(i).order_value_to;
6710: ELSE
6711: l_qualifiers_tbl(i).qualifier_attr_value_to := FND_API.g_miss_char;
6712: END IF;
6713: l_qualifiers_tbl(i).comparison_operator_code := 'BETWEEN';
6714: l_qualifiers_tbl(i).qualifier_grouping_no := 1;
6715: l_qualifiers_tbl(i).operation := p_modifier_line_tbl(i).operation;
6720:
6721:
6722: QP_Modifiers_PUB.process_modifiers(
6723: p_api_version_number => 1.0,
6724: p_init_msg_list => FND_API.G_FALSE,
6725: p_return_values => FND_API.G_FALSE,
6726: x_return_status => x_return_status,
6727: x_msg_count => x_msg_count,
6728: x_msg_data => x_msg_data,
6721:
6722: QP_Modifiers_PUB.process_modifiers(
6723: p_api_version_number => 1.0,
6724: p_init_msg_list => FND_API.G_FALSE,
6725: p_return_values => FND_API.G_FALSE,
6726: x_return_status => x_return_status,
6727: x_msg_count => x_msg_count,
6728: x_msg_data => x_msg_data,
6729: p_qualifiers_tbl => l_qualifiers_tbl,
6736: x_pricing_attr_tbl => v_pricing_attr_tbl,
6737: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
6738: );
6739:
6740: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
6741: IF v_qualifiers_tbl.COUNT > 0 THEN
6742: FOR k IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
6743: IF v_qualifiers_tbl.EXISTS(k) THEN
6744: IF v_qualifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
6740: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
6741: IF v_qualifiers_tbl.COUNT > 0 THEN
6742: FOR k IN v_qualifiers_tbl.first..v_qualifiers_tbl.last LOOP
6743: IF v_qualifiers_tbl.EXISTS(k) THEN
6744: IF v_qualifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
6745: x_error_location := k;
6746: EXIT;
6747: END IF;
6748: END IF;
6749: END LOOP;
6750: END IF;
6751: END IF;
6752:
6753: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6754: add_message(x_msg_count);
6755: RAISE Fnd_Api.g_exc_error;
6756: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6757: add_message(x_msg_count);
6751: END IF;
6752:
6753: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6754: add_message(x_msg_count);
6755: RAISE Fnd_Api.g_exc_error;
6756: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6757: add_message(x_msg_count);
6758: RAISE Fnd_Api.g_exc_unexpected_error;
6759: END IF;
6752:
6753: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6754: add_message(x_msg_count);
6755: RAISE Fnd_Api.g_exc_error;
6756: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6757: add_message(x_msg_count);
6758: RAISE Fnd_Api.g_exc_unexpected_error;
6759: END IF;
6760:
6754: add_message(x_msg_count);
6755: RAISE Fnd_Api.g_exc_error;
6756: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6757: add_message(x_msg_count);
6758: RAISE Fnd_Api.g_exc_unexpected_error;
6759: END IF;
6760:
6761: -- The following code is commented for now. If we decide that we need limits
6762: -- for order value type of discounts, we will open this code up.
6796: ,p_limit_id => p_modifier_line_tbl(limit_index).max_amount_per_rule_id
6797: );
6798: END IF;
6799:
6800: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6801: x_error_location := limit_index;
6802: RAISE Fnd_Api.g_exc_error;
6803: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6804: x_error_location := limit_index;
6798: END IF;
6799:
6800: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6801: x_error_location := limit_index;
6802: RAISE Fnd_Api.g_exc_error;
6803: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6804: x_error_location := limit_index;
6805: RAISE Fnd_Api.g_exc_unexpected_error;
6806: END IF;
6799:
6800: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
6801: x_error_location := limit_index;
6802: RAISE Fnd_Api.g_exc_error;
6803: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6804: x_error_location := limit_index;
6805: RAISE Fnd_Api.g_exc_unexpected_error;
6806: END IF;
6807:
6801: x_error_location := limit_index;
6802: RAISE Fnd_Api.g_exc_error;
6803: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
6804: x_error_location := limit_index;
6805: RAISE Fnd_Api.g_exc_unexpected_error;
6806: END IF;
6807:
6808: END IF;
6809: END LOOP; */
6810:
6811: Fnd_Msg_Pub.Count_AND_Get
6812: ( p_count => x_msg_count,
6813: p_data => x_msg_data,
6814: p_encoded => Fnd_Api.G_FALSE
6815: );
6816:
6817: EXCEPTION
6818: WHEN Fnd_Api.G_EXC_ERROR THEN
6814: p_encoded => Fnd_Api.G_FALSE
6815: );
6816:
6817: EXCEPTION
6818: WHEN Fnd_Api.G_EXC_ERROR THEN
6819: x_return_status := Fnd_Api.g_ret_sts_error ;
6820: Fnd_Msg_Pub.Count_AND_Get
6821: ( p_count => x_msg_count,
6822: p_data => x_msg_data,
6815: );
6816:
6817: EXCEPTION
6818: WHEN Fnd_Api.G_EXC_ERROR THEN
6819: x_return_status := Fnd_Api.g_ret_sts_error ;
6820: Fnd_Msg_Pub.Count_AND_Get
6821: ( p_count => x_msg_count,
6822: p_data => x_msg_data,
6823: p_encoded => Fnd_Api.G_FALSE
6819: x_return_status := Fnd_Api.g_ret_sts_error ;
6820: Fnd_Msg_Pub.Count_AND_Get
6821: ( p_count => x_msg_count,
6822: p_data => x_msg_data,
6823: p_encoded => Fnd_Api.G_FALSE
6824: );
6825: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6827: Fnd_Msg_Pub.Count_AND_Get
6821: ( p_count => x_msg_count,
6822: p_data => x_msg_data,
6823: p_encoded => Fnd_Api.G_FALSE
6824: );
6825: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6827: Fnd_Msg_Pub.Count_AND_Get
6828: ( p_count => x_msg_count,
6829: p_data => x_msg_data,
6822: p_data => x_msg_data,
6823: p_encoded => Fnd_Api.G_FALSE
6824: );
6825: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6827: Fnd_Msg_Pub.Count_AND_Get
6828: ( p_count => x_msg_count,
6829: p_data => x_msg_data,
6830: p_encoded => Fnd_Api.G_FALSE
6826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6827: Fnd_Msg_Pub.Count_AND_Get
6828: ( p_count => x_msg_count,
6829: p_data => x_msg_data,
6830: p_encoded => Fnd_Api.G_FALSE
6831: );
6832: WHEN OTHERS THEN
6833: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6834: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6829: p_data => x_msg_data,
6830: p_encoded => Fnd_Api.G_FALSE
6831: );
6832: WHEN OTHERS THEN
6833: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6834: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6835: THEN
6836: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
6837: END IF;
6837: END IF;
6838: Fnd_Msg_Pub.Count_AND_Get
6839: ( p_count => x_msg_count,
6840: p_data => x_msg_data,
6841: p_encoded => Fnd_Api.G_FALSE
6842: );
6843: END;
6844:
6845:
6871:
6872: l_total_distribution NUMBER;
6873:
6874: BEGIN
6875: x_return_status := Fnd_Api.g_ret_sts_success;
6876:
6877: OPEN cur_get_lumpsum_details;
6878: FETCH cur_get_lumpsum_details INTO l_lumpsum_offer;
6879: CLOSE cur_get_lumpsum_details;
6887:
6888: IF l_total_distribution <> l_lumpsum_offer.lumpsum_amount THEN
6889: FND_MESSAGE.SET_NAME('OZF','OZF_INVALID_DISTR_ACTIVE');
6890: Fnd_Msg_Pub.ADD;
6891: RAISE FND_API.G_EXC_ERROR;
6892: END IF;
6893:
6894: ELSE
6895:
6895:
6896: IF l_total_distribution > l_lumpsum_offer.lumpsum_amount THEN
6897: FND_MESSAGE.SET_NAME('OZF','OZF_INVALID_DISTRIBUTION');
6898: Fnd_Msg_Pub.ADD;
6899: RAISE FND_API.G_EXC_ERROR;
6900: END IF;
6901:
6902: END IF;
6903:
6907:
6908: IF l_total_distribution <> 100 THEN
6909: FND_MESSAGE.SET_NAME('OZF','OZF_INVALID_DISTR_ACTIVE');
6910: Fnd_Msg_Pub.ADD;
6911: RAISE FND_API.G_EXC_ERROR;
6912: END IF;
6913:
6914:
6915: ELSE
6916:
6917: IF l_total_distribution > 100 THEN
6918: FND_MESSAGE.SET_NAME('OZF','OZF_INVALID_DISTRIBUTION');
6919: Fnd_Msg_Pub.ADD;
6920: RAISE FND_API.G_EXC_ERROR;
6921: END IF;
6922:
6923: END IF;
6924:
6926:
6927: Fnd_Msg_Pub.Count_AND_Get
6928: ( p_count => x_msg_count,
6929: p_data => x_msg_data,
6930: p_encoded => Fnd_Api.G_FALSE
6931: );
6932:
6933: EXCEPTION
6934: WHEN Fnd_Api.G_EXC_ERROR THEN
6930: p_encoded => Fnd_Api.G_FALSE
6931: );
6932:
6933: EXCEPTION
6934: WHEN Fnd_Api.G_EXC_ERROR THEN
6935: x_return_status := Fnd_Api.g_ret_sts_error ;
6936: Fnd_Msg_Pub.Count_AND_Get
6937: ( p_count => x_msg_count,
6938: p_data => x_msg_data,
6931: );
6932:
6933: EXCEPTION
6934: WHEN Fnd_Api.G_EXC_ERROR THEN
6935: x_return_status := Fnd_Api.g_ret_sts_error ;
6936: Fnd_Msg_Pub.Count_AND_Get
6937: ( p_count => x_msg_count,
6938: p_data => x_msg_data,
6939: p_encoded => Fnd_Api.G_FALSE
6935: x_return_status := Fnd_Api.g_ret_sts_error ;
6936: Fnd_Msg_Pub.Count_AND_Get
6937: ( p_count => x_msg_count,
6938: p_data => x_msg_data,
6939: p_encoded => Fnd_Api.G_FALSE
6940: );
6941: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6942: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6943: Fnd_Msg_Pub.Count_AND_Get
6937: ( p_count => x_msg_count,
6938: p_data => x_msg_data,
6939: p_encoded => Fnd_Api.G_FALSE
6940: );
6941: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6942: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6943: Fnd_Msg_Pub.Count_AND_Get
6944: ( p_count => x_msg_count,
6945: p_data => x_msg_data,
6938: p_data => x_msg_data,
6939: p_encoded => Fnd_Api.G_FALSE
6940: );
6941: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
6942: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6943: Fnd_Msg_Pub.Count_AND_Get
6944: ( p_count => x_msg_count,
6945: p_data => x_msg_data,
6946: p_encoded => Fnd_Api.G_FALSE
6942: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
6943: Fnd_Msg_Pub.Count_AND_Get
6944: ( p_count => x_msg_count,
6945: p_data => x_msg_data,
6946: p_encoded => Fnd_Api.G_FALSE
6947: );
6948: WHEN OTHERS THEN
6949: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6950: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6945: p_data => x_msg_data,
6946: p_encoded => Fnd_Api.G_FALSE
6947: );
6948: WHEN OTHERS THEN
6949: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
6950: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
6951: THEN
6952: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
6953: END IF;
6953: END IF;
6954: Fnd_Msg_Pub.Count_AND_Get
6955: ( p_count => x_msg_count,
6956: p_data => x_msg_data,
6957: p_encoded => Fnd_Api.G_FALSE
6958: );
6959:
6960: END;
6961:
6994: )
6995: IS
6996: BEGIN
6997: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
6998: IF (p_modifier_line_tbl(i).PRODUCT_ATTR_VAL IS NULL OR p_modifier_line_tbl(i).PRODUCT_ATTR_VAL = FND_API.g_miss_char)
6999: OR
7000: ( p_modifier_line_tbl(i).PRODUCT_ATTR IS NULL OR p_modifier_line_tbl(i).PRODUCT_ATTR = FND_API.g_miss_char )
7001: THEN
7002: OZF_Utility_PVT.error_message('OZF_OFFR_ITEM_REQD');
6996: BEGIN
6997: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
6998: IF (p_modifier_line_tbl(i).PRODUCT_ATTR_VAL IS NULL OR p_modifier_line_tbl(i).PRODUCT_ATTR_VAL = FND_API.g_miss_char)
6999: OR
7000: ( p_modifier_line_tbl(i).PRODUCT_ATTR IS NULL OR p_modifier_line_tbl(i).PRODUCT_ATTR = FND_API.g_miss_char )
7001: THEN
7002: OZF_Utility_PVT.error_message('OZF_OFFR_ITEM_REQD');
7003: x_return_status := Fnd_Api.g_ret_sts_error;
7004: END IF;
6999: OR
7000: ( p_modifier_line_tbl(i).PRODUCT_ATTR IS NULL OR p_modifier_line_tbl(i).PRODUCT_ATTR = FND_API.g_miss_char )
7001: THEN
7002: OZF_Utility_PVT.error_message('OZF_OFFR_ITEM_REQD');
7003: x_return_status := Fnd_Api.g_ret_sts_error;
7004: END IF;
7005: END LOOP;
7006: END check_pg_reqd_items;
7007:
7081: l_break_type VARCHAR2(30);
7082: l_end_date DATE;
7083: l_start_date DATE;
7084: BEGIN
7085: x_return_status := Fnd_Api.g_ret_sts_success;
7086:
7087: l_list_header_id := p_modifier_line_tbl(p_modifier_line_tbl.first).list_header_id;
7088:
7089: OPEN cur_get_PRG_line_id(l_list_header_id);
7135: ,x_msg_data => x_msg_data
7136: ,p_modifier_line_tbl => p_modifier_line_tbl
7137: ,x_error_location => x_error_location
7138: );
7139: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7140: RAISE Fnd_Api.g_exc_error;
7141: END IF;
7142:
7143: IF i = p_modifier_line_tbl.first and l_use_modifier_index = TRUE and p_modifier_line_tbl(i).list_line_type_code = 'RLTD' THEN
7136: ,p_modifier_line_tbl => p_modifier_line_tbl
7137: ,x_error_location => x_error_location
7138: );
7139: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7140: RAISE Fnd_Api.g_exc_error;
7141: END IF;
7142:
7143: IF i = p_modifier_line_tbl.first and l_use_modifier_index = TRUE and p_modifier_line_tbl(i).list_line_type_code = 'RLTD' THEN
7144: l_modifier_parent_index := i;
7234: l_pricing_attr_tbl(i).product_attribute := p_modifier_line_tbl(i).product_attr;
7235: l_pricing_attr_tbl(i).product_attr_value := p_modifier_line_tbl(i).product_attr_val;
7236:
7237: /*IF p_modifier_line_tbl(i).list_line_type_code <> 'DIS' THEN
7238: IF p_modifier_line_tbl(i).product_uom_code is not null and p_modifier_line_tbl(i).product_uom_code <> FND_API.g_miss_char THEN
7239: l_pricing_attr_tbl(i).product_uom_code := p_modifier_line_tbl(i).product_uom_code;
7240: l_pricing_attr_tbl(i).pricing_attribute_context := 'VOLUME';
7241: l_pricing_attr_tbl(i).pricing_attribute := p_modifier_line_tbl(i).pricing_attr;
7242: l_pricing_attr_tbl(i).pricing_attr_value_from := p_modifier_line_tbl(i).pricing_attr_value_from;
7249:
7250: -- fix for bug 7321732.
7251: IF p_modifier_line_tbl(i).list_line_type_code <> 'DIS' THEN
7252: IF p_modifier_line_tbl(i).pricing_attr = 'PRICING_ATTRIBUTE10' THEN--if volume_type is qty
7253: IF p_modifier_line_tbl(i).product_uom_code is not null and p_modifier_line_tbl(i).product_uom_code <> FND_API.g_miss_char THEN
7254: l_pricing_attr_tbl(i).product_uom_code := p_modifier_line_tbl(i).product_uom_code;
7255: l_pricing_attr_tbl(i).pricing_attribute_context := 'VOLUME';
7256: l_pricing_attr_tbl(i).pricing_attribute := p_modifier_line_tbl(i).pricing_attr;
7257: l_pricing_attr_tbl(i).pricing_attr_value_from := p_modifier_line_tbl(i).pricing_attr_value_from;
7260: END IF;
7261: l_pricing_attr_tbl(i).comparison_operator_code := 'BETWEEN';
7262:
7263: ELSIF (p_modifier_line_tbl(i).product_uom_code is null
7264: OR p_modifier_line_tbl(i).product_uom_code = FND_API.g_miss_char
7265: ) AND
7266: ((p_modifier_line_tbl(i).pricing_attr_value_from is not null
7267: AND p_modifier_line_tbl(i).pricing_attr_value_from <> FND_API.g_miss_num) OR
7268: (p_modifier_line_tbl(i).pricing_attr is not null
7263: ELSIF (p_modifier_line_tbl(i).product_uom_code is null
7264: OR p_modifier_line_tbl(i).product_uom_code = FND_API.g_miss_char
7265: ) AND
7266: ((p_modifier_line_tbl(i).pricing_attr_value_from is not null
7267: AND p_modifier_line_tbl(i).pricing_attr_value_from <> FND_API.g_miss_num) OR
7268: (p_modifier_line_tbl(i).pricing_attr is not null
7269: AND p_modifier_line_tbl(i).pricing_attr <> FND_API.g_miss_char))
7270: THEN
7271: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
7265: ) AND
7266: ((p_modifier_line_tbl(i).pricing_attr_value_from is not null
7267: AND p_modifier_line_tbl(i).pricing_attr_value_from <> FND_API.g_miss_num) OR
7268: (p_modifier_line_tbl(i).pricing_attr is not null
7269: AND p_modifier_line_tbl(i).pricing_attr <> FND_API.g_miss_char))
7270: THEN
7271: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
7272:
7273: Fnd_Msg_Pub.ADD;
7270: THEN
7271: FND_MESSAGE.SET_NAME('OZF','OZF_UOM_QTY_REQD');
7272:
7273: Fnd_Msg_Pub.ADD;
7274: RAISE FND_API.G_EXC_ERROR;
7275: END IF;
7276: ELSE -- volume type is amount
7277: l_pricing_attr_tbl(i).product_uom_code := p_modifier_line_tbl(i).product_uom_code;
7278: l_pricing_attr_tbl(i).pricing_attribute_context := 'VOLUME';
7326: END LOOP;
7327:
7328: QP_Modifiers_GRP.process_modifiers(
7329: p_api_version_number => 1.0,
7330: p_init_msg_list => FND_API.G_FALSE,
7331: p_return_values => FND_API.G_FALSE,
7332: p_commit => FND_API.G_FALSE,
7333: x_return_status => x_return_status,
7334: x_msg_count => x_msg_count,
7327:
7328: QP_Modifiers_GRP.process_modifiers(
7329: p_api_version_number => 1.0,
7330: p_init_msg_list => FND_API.G_FALSE,
7331: p_return_values => FND_API.G_FALSE,
7332: p_commit => FND_API.G_FALSE,
7333: x_return_status => x_return_status,
7334: x_msg_count => x_msg_count,
7335: x_msg_data => x_msg_data,
7328: QP_Modifiers_GRP.process_modifiers(
7329: p_api_version_number => 1.0,
7330: p_init_msg_list => FND_API.G_FALSE,
7331: p_return_values => FND_API.G_FALSE,
7332: p_commit => FND_API.G_FALSE,
7333: x_return_status => x_return_status,
7334: x_msg_count => x_msg_count,
7335: x_msg_data => x_msg_data,
7336: p_control_rec => l_control_rec,
7345: x_pricing_attr_tbl => v_pricing_attr_tbl,
7346: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
7347: );
7348: x_modifiers_tbl := v_modifiers_tbl;
7349: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
7350: IF v_modifiers_tbl.COUNT > 0 THEN
7351: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
7352: IF v_modifiers_tbl.EXISTS(k) THEN
7353: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
7349: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
7350: IF v_modifiers_tbl.COUNT > 0 THEN
7351: FOR k IN v_modifiers_tbl.first..v_modifiers_tbl.last LOOP
7352: IF v_modifiers_tbl.EXISTS(k) THEN
7353: IF v_modifiers_tbl(k).return_status <> Fnd_Api.g_ret_sts_success THEN
7354: x_error_location := k;
7355: EXIT;
7356: END IF;
7357: END IF;
7358: END LOOP;
7359: END IF;
7360: END IF;
7361:
7362: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7363: add_message(x_msg_count);
7364: RAISE Fnd_Api.g_exc_error;
7365: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7366: add_message(x_msg_count);
7360: END IF;
7361:
7362: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7363: add_message(x_msg_count);
7364: RAISE Fnd_Api.g_exc_error;
7365: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7366: add_message(x_msg_count);
7367: RAISE Fnd_Api.g_exc_unexpected_error;
7368: END IF;
7361:
7362: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7363: add_message(x_msg_count);
7364: RAISE Fnd_Api.g_exc_error;
7365: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7366: add_message(x_msg_count);
7367: RAISE Fnd_Api.g_exc_unexpected_error;
7368: END IF;
7369:
7363: add_message(x_msg_count);
7364: RAISE Fnd_Api.g_exc_error;
7365: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7366: add_message(x_msg_count);
7367: RAISE Fnd_Api.g_exc_unexpected_error;
7368: END IF;
7369:
7370: FOR limit_index in p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7371:
7389: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
7390: ,p_limit_id => p_modifier_line_tbl(limit_index).max_qty_per_order_id
7391: );
7392:
7393: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7394: x_error_location := limit_index;
7395: RAISE Fnd_Api.g_exc_error;
7396: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7397: x_error_location := limit_index;
7391: );
7392:
7393: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7394: x_error_location := limit_index;
7395: RAISE Fnd_Api.g_exc_error;
7396: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7397: x_error_location := limit_index;
7398: RAISE Fnd_Api.g_exc_unexpected_error;
7399: END IF;
7392:
7393: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7394: x_error_location := limit_index;
7395: RAISE Fnd_Api.g_exc_error;
7396: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7397: x_error_location := limit_index;
7398: RAISE Fnd_Api.g_exc_unexpected_error;
7399: END IF;
7400:
7394: x_error_location := limit_index;
7395: RAISE Fnd_Api.g_exc_error;
7396: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7397: x_error_location := limit_index;
7398: RAISE Fnd_Api.g_exc_unexpected_error;
7399: END IF;
7400:
7401:
7402: process_limits
7410: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
7411: ,p_limit_id => p_modifier_line_tbl(limit_index).max_qty_per_customer_id
7412: );
7413:
7414: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7415: x_error_location := limit_index;
7416: RAISE Fnd_Api.g_exc_error;
7417: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7418: x_error_location := limit_index;
7412: );
7413:
7414: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7415: x_error_location := limit_index;
7416: RAISE Fnd_Api.g_exc_error;
7417: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7418: x_error_location := limit_index;
7419: RAISE Fnd_Api.g_exc_unexpected_error;
7420: END IF;
7413:
7414: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7415: x_error_location := limit_index;
7416: RAISE Fnd_Api.g_exc_error;
7417: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7418: x_error_location := limit_index;
7419: RAISE Fnd_Api.g_exc_unexpected_error;
7420: END IF;
7421:
7415: x_error_location := limit_index;
7416: RAISE Fnd_Api.g_exc_error;
7417: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7418: x_error_location := limit_index;
7419: RAISE Fnd_Api.g_exc_unexpected_error;
7420: END IF;
7421:
7422: process_limits
7423: (
7430: ,p_list_header_id => p_modifier_line_tbl(limit_index).list_header_id
7431: ,p_limit_id => p_modifier_line_tbl(limit_index).max_qty_per_rule_id
7432: );
7433:
7434: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7435: x_error_location := limit_index;
7436: RAISE Fnd_Api.g_exc_error;
7437: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7438: x_error_location := limit_index;
7432: );
7433:
7434: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7435: x_error_location := limit_index;
7436: RAISE Fnd_Api.g_exc_error;
7437: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7438: x_error_location := limit_index;
7439: RAISE Fnd_Api.g_exc_unexpected_error;
7440: END IF;
7433:
7434: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7435: x_error_location := limit_index;
7436: RAISE Fnd_Api.g_exc_error;
7437: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7438: x_error_location := limit_index;
7439: RAISE Fnd_Api.g_exc_unexpected_error;
7440: END IF;
7441:
7435: x_error_location := limit_index;
7436: RAISE Fnd_Api.g_exc_error;
7437: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7438: x_error_location := limit_index;
7439: RAISE Fnd_Api.g_exc_unexpected_error;
7440: END IF;
7441:
7442:
7443: END IF;
7448:
7449: Fnd_Msg_Pub.Count_AND_Get
7450: ( p_count => x_msg_count,
7451: p_data => x_msg_data,
7452: p_encoded => Fnd_Api.G_FALSE
7453: );
7454:
7455: EXCEPTION
7456: WHEN Fnd_Api.G_EXC_ERROR THEN
7452: p_encoded => Fnd_Api.G_FALSE
7453: );
7454:
7455: EXCEPTION
7456: WHEN Fnd_Api.G_EXC_ERROR THEN
7457: x_return_status := Fnd_Api.g_ret_sts_error ;
7458: Fnd_Msg_Pub.Count_AND_Get
7459: ( p_count => x_msg_count,
7460: p_data => x_msg_data,
7453: );
7454:
7455: EXCEPTION
7456: WHEN Fnd_Api.G_EXC_ERROR THEN
7457: x_return_status := Fnd_Api.g_ret_sts_error ;
7458: Fnd_Msg_Pub.Count_AND_Get
7459: ( p_count => x_msg_count,
7460: p_data => x_msg_data,
7461: p_encoded => Fnd_Api.G_FALSE
7457: x_return_status := Fnd_Api.g_ret_sts_error ;
7458: Fnd_Msg_Pub.Count_AND_Get
7459: ( p_count => x_msg_count,
7460: p_data => x_msg_data,
7461: p_encoded => Fnd_Api.G_FALSE
7462: );
7463: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
7464: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
7465: Fnd_Msg_Pub.Count_AND_Get
7459: ( p_count => x_msg_count,
7460: p_data => x_msg_data,
7461: p_encoded => Fnd_Api.G_FALSE
7462: );
7463: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
7464: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
7465: Fnd_Msg_Pub.Count_AND_Get
7466: ( p_count => x_msg_count,
7467: p_data => x_msg_data,
7460: p_data => x_msg_data,
7461: p_encoded => Fnd_Api.G_FALSE
7462: );
7463: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
7464: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
7465: Fnd_Msg_Pub.Count_AND_Get
7466: ( p_count => x_msg_count,
7467: p_data => x_msg_data,
7468: p_encoded => Fnd_Api.G_FALSE
7464: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
7465: Fnd_Msg_Pub.Count_AND_Get
7466: ( p_count => x_msg_count,
7467: p_data => x_msg_data,
7468: p_encoded => Fnd_Api.G_FALSE
7469: );
7470: WHEN OTHERS THEN
7471: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
7472: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
7467: p_data => x_msg_data,
7468: p_encoded => Fnd_Api.G_FALSE
7469: );
7470: WHEN OTHERS THEN
7471: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
7472: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
7473: THEN
7474: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
7475: END IF;
7475: END IF;
7476: Fnd_Msg_Pub.Count_AND_Get
7477: ( p_count => x_msg_count,
7478: p_data => x_msg_data,
7479: p_encoded => Fnd_Api.G_FALSE
7480: );
7481:
7482: END;
7483:
7546: FROM ozf_related_deal_lines
7547: WHERE related_deal_lines_id = l_id;
7548:
7549: BEGIN
7550: x_return_status := Fnd_Api.g_ret_sts_success;
7551: IF p_modifier_line_tbl.count > 0 THEN
7552: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7553: IF p_modifier_line_tbl.exists(i) THEN
7554: IF p_modifier_line_tbl(i).max_amount_per_rule IS NOT NULL
7551: IF p_modifier_line_tbl.count > 0 THEN
7552: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7553: IF p_modifier_line_tbl.exists(i) THEN
7554: IF p_modifier_line_tbl(i).max_amount_per_rule IS NOT NULL
7555: AND p_modifier_line_tbl(i).max_amount_per_rule <> FND_API.G_MISS_NUM
7556: AND p_modifier_line_tbl(i).max_amount_per_rule <= 0 THEN
7557: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7558: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NEG_AMT');
7559: Fnd_Msg_Pub.ADD;
7557: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7558: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NEG_AMT');
7559: Fnd_Msg_Pub.ADD;
7560: END IF;
7561: RAISE Fnd_Api.g_exc_error;
7562: END IF;
7563:
7564: IF p_modifier_line_tbl(i).max_qty_per_rule IS NOT NULL
7565: AND p_modifier_line_tbl(i).max_qty_per_rule <> FND_API.G_MISS_NUM
7561: RAISE Fnd_Api.g_exc_error;
7562: END IF;
7563:
7564: IF p_modifier_line_tbl(i).max_qty_per_rule IS NOT NULL
7565: AND p_modifier_line_tbl(i).max_qty_per_rule <> FND_API.G_MISS_NUM
7566: AND p_modifier_line_tbl(i).max_qty_per_rule <= 0 THEN
7567: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7568: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NEG_QTY');
7569: Fnd_Msg_Pub.ADD;
7567: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7568: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NEG_QTY');
7569: Fnd_Msg_Pub.ADD;
7570: END IF;
7571: RAISE Fnd_Api.g_exc_error;
7572: END IF;
7573: END IF;
7574: END LOOP;
7575:
7575:
7576: l_modifier_line_tbl.delete;
7577: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7578: IF p_modifier_line_tbl.exists(i) THEN
7579: IF p_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7580:
7581: IF ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7582: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char))
7583: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7577: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7578: IF p_modifier_line_tbl.exists(i) THEN
7579: IF p_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7580:
7581: IF ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7582: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char))
7583: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7584: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7585: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7578: IF p_modifier_line_tbl.exists(i) THEN
7579: IF p_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7580:
7581: IF ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7582: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char))
7583: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7584: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7585: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7586: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_OPERAND');
7579: IF p_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7580:
7581: IF ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7582: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char))
7583: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7584: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7585: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7586: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_OPERAND');
7587: Fnd_Msg_Pub.ADD;
7580:
7581: IF ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7582: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char))
7583: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7584: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7585: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7586: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_OPERAND');
7587: Fnd_Msg_Pub.ADD;
7588: END IF;
7585: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7586: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_OPERAND');
7587: Fnd_Msg_Pub.ADD;
7588: END IF;
7589: RAISE Fnd_Api.g_exc_error;
7590:
7591: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7592: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7593: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7587: Fnd_Msg_Pub.ADD;
7588: END IF;
7589: RAISE Fnd_Api.g_exc_error;
7590:
7591: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7592: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7593: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7594: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7595: l_all_index := l_all_index + 1;
7588: END IF;
7589: RAISE Fnd_Api.g_exc_error;
7590:
7591: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7592: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7593: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7594: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7595: l_all_index := l_all_index + 1;
7596: l_modifier_line_all_off_tbl(l_all_index) := p_modifier_line_tbl(i);
7589: RAISE Fnd_Api.g_exc_error;
7590:
7591: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7592: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7593: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7594: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7595: l_all_index := l_all_index + 1;
7596: l_modifier_line_all_off_tbl(l_all_index) := p_modifier_line_tbl(i);
7597: l_modifier_line_all_acc_tbl(l_all_index) := p_modifier_line_tbl(i);
7590:
7591: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7592: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7593: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7594: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7595: l_all_index := l_all_index + 1;
7596: l_modifier_line_all_off_tbl(l_all_index) := p_modifier_line_tbl(i);
7597: l_modifier_line_all_acc_tbl(l_all_index) := p_modifier_line_tbl(i);
7598:
7599: l_modifier_line_all_acc_tbl(l_all_index).list_line_id := p_modifier_line_tbl(i).qd_list_line_id;
7600: l_modifier_line_all_acc_tbl(l_all_index).operand := p_modifier_line_tbl(i).qd_operand;
7601: l_modifier_line_all_acc_tbl(l_all_index).arithmetic_operator := p_modifier_line_tbl(i).qd_arithmetic_operator;
7602:
7603: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7604: l_modifier_line_all_off_tbl(l_all_index).operation := 'CREATE';
7605: l_modifier_line_all_off_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7606: l_modifier_line_all_off_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7607: END IF;
7601: l_modifier_line_all_acc_tbl(l_all_index).arithmetic_operator := p_modifier_line_tbl(i).qd_arithmetic_operator;
7602:
7603: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7604: l_modifier_line_all_off_tbl(l_all_index).operation := 'CREATE';
7605: l_modifier_line_all_off_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7606: l_modifier_line_all_off_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7607: END IF;
7608:
7609: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7602:
7603: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7604: l_modifier_line_all_off_tbl(l_all_index).operation := 'CREATE';
7605: l_modifier_line_all_off_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7606: l_modifier_line_all_off_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7607: END IF;
7608:
7609: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7610: l_modifier_line_all_acc_tbl(l_all_index).operation := 'CREATE';
7605: l_modifier_line_all_off_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7606: l_modifier_line_all_off_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7607: END IF;
7608:
7609: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7610: l_modifier_line_all_acc_tbl(l_all_index).operation := 'CREATE';
7611: l_modifier_line_all_acc_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7612: l_modifier_line_all_acc_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7613: END IF;
7607: END IF;
7608:
7609: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7610: l_modifier_line_all_acc_tbl(l_all_index).operation := 'CREATE';
7611: l_modifier_line_all_acc_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7612: l_modifier_line_all_acc_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7613: END IF;
7614:
7615: -- l_modifier_line_tbl(i) := p_modifier_line_tbl(i);
7608:
7609: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7610: l_modifier_line_all_acc_tbl(l_all_index).operation := 'CREATE';
7611: l_modifier_line_all_acc_tbl(l_all_index).list_line_id := FND_API.g_miss_num;
7612: l_modifier_line_all_acc_tbl(l_all_index).pricing_attribute_id := FND_API.g_miss_num;
7613: END IF;
7614:
7615: -- l_modifier_line_tbl(i) := p_modifier_line_tbl(i);
7616: l_index := l_index + 1;
7620: FETCH get_accr_pricing_attribute_id into l_modifier_line_all_acc_tbl(l_all_index).pricing_attribute_id;
7621: CLOSE get_accr_pricing_attribute_id;
7622: END IF;
7623:
7624: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7625: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7626: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7627: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7628: -- fix for bug 7321745
7621: CLOSE get_accr_pricing_attribute_id;
7622: END IF;
7623:
7624: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7625: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7626: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7627: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7628: -- fix for bug 7321745
7629: OPEN c_modifier_id(p_modifier_line_tbl(i).qd_related_deal_lines_id);
7622: END IF;
7623:
7624: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7625: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7626: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7627: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7628: -- fix for bug 7321745
7629: OPEN c_modifier_id(p_modifier_line_tbl(i).qd_related_deal_lines_id);
7630: FETCH c_modifier_id INTO l_modifier_id,l_related_modifier_id;
7623:
7624: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7625: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7626: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7627: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7628: -- fix for bug 7321745
7629: OPEN c_modifier_id(p_modifier_line_tbl(i).qd_related_deal_lines_id);
7630: FETCH c_modifier_id INTO l_modifier_id,l_related_modifier_id;
7631: CLOSE c_modifier_id;
7635: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_ACC_OPERAND');
7636: Fnd_Msg_Pub.ADD;
7637: x_error_location := i;
7638: END IF;
7639: RAISE Fnd_Api.g_exc_error;
7640: END IF;
7641:
7642: l_off_index := l_off_index + 1;
7643: l_modifier_line_off_tbl(l_off_index) := p_modifier_line_tbl(i);
7643: l_modifier_line_off_tbl(l_off_index) := p_modifier_line_tbl(i);
7644: l_index := l_index + 1;
7645: -- l_modifier_line_tbl(l_index) := p_modifier_line_tbl(i);
7646:
7647: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7648: l_modifier_line_off_tbl(l_off_index).operation := 'CREATE';
7649: l_modifier_line_off_tbl(l_off_index).list_line_id := FND_API.g_miss_num;
7650: l_modifier_line_off_tbl(l_off_index).pricing_attribute_id := FND_API.g_miss_num;
7651: END IF;
7645: -- l_modifier_line_tbl(l_index) := p_modifier_line_tbl(i);
7646:
7647: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7648: l_modifier_line_off_tbl(l_off_index).operation := 'CREATE';
7649: l_modifier_line_off_tbl(l_off_index).list_line_id := FND_API.g_miss_num;
7650: l_modifier_line_off_tbl(l_off_index).pricing_attribute_id := FND_API.g_miss_num;
7651: END IF;
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7646:
7647: IF p_modifier_line_tbl(i).list_line_id IS NULL OR p_modifier_line_tbl(i).list_line_id = FND_API.g_miss_num THEN
7648: l_modifier_line_off_tbl(l_off_index).operation := 'CREATE';
7649: l_modifier_line_off_tbl(l_off_index).list_line_id := FND_API.g_miss_num;
7650: l_modifier_line_off_tbl(l_off_index).pricing_attribute_id := FND_API.g_miss_num;
7651: END IF;
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7654: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7649: l_modifier_line_off_tbl(l_off_index).list_line_id := FND_API.g_miss_num;
7650: l_modifier_line_off_tbl(l_off_index).pricing_attribute_id := FND_API.g_miss_num;
7651: END IF;
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7654: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7655: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7656: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7657:
7650: l_modifier_line_off_tbl(l_off_index).pricing_attribute_id := FND_API.g_miss_num;
7651: END IF;
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7654: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7655: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7656: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7657:
7658: -- fix for bug 7321745
7651: END IF;
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7654: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7655: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7656: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7657:
7658: -- fix for bug 7321745
7659:
7652:
7653: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7654: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7655: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7656: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7657:
7658: -- fix for bug 7321745
7659:
7660: OPEN c_modifier_id(p_modifier_line_tbl(i).qd_related_deal_lines_id);
7666: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_OFF_OPERAND');
7667: Fnd_Msg_Pub.ADD;
7668: x_error_location := i;
7669: END IF;
7670: RAISE Fnd_Api.g_exc_error;
7671: END IF;
7672:
7673: l_acc_index := l_acc_index + 1;
7674: l_modifier_line_acc_tbl(l_acc_index) := p_modifier_line_tbl(i);
7679:
7680: l_index := l_index + 1;
7681: -- l_modifier_line_tbl(l_index) := p_modifier_line_tbl(i);
7682:
7683: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7684: l_modifier_line_acc_tbl(l_acc_index).operation := 'CREATE';
7685: l_modifier_line_acc_tbl(l_acc_index).list_line_id := FND_API.g_miss_num;
7686: l_modifier_line_acc_tbl(l_acc_index).pricing_attribute_id := FND_API.g_miss_num;
7687: END IF;
7681: -- l_modifier_line_tbl(l_index) := p_modifier_line_tbl(i);
7682:
7683: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7684: l_modifier_line_acc_tbl(l_acc_index).operation := 'CREATE';
7685: l_modifier_line_acc_tbl(l_acc_index).list_line_id := FND_API.g_miss_num;
7686: l_modifier_line_acc_tbl(l_acc_index).pricing_attribute_id := FND_API.g_miss_num;
7687: END IF;
7688:
7689: IF l_modifier_line_acc_tbl(l_acc_index).operation = 'UPDATE' THEN
7682:
7683: IF p_modifier_line_tbl(i).qd_list_line_id IS NULL OR p_modifier_line_tbl(i).qd_list_line_id = FND_API.g_miss_num THEN
7684: l_modifier_line_acc_tbl(l_acc_index).operation := 'CREATE';
7685: l_modifier_line_acc_tbl(l_acc_index).list_line_id := FND_API.g_miss_num;
7686: l_modifier_line_acc_tbl(l_acc_index).pricing_attribute_id := FND_API.g_miss_num;
7687: END IF;
7688:
7689: IF l_modifier_line_acc_tbl(l_acc_index).operation = 'UPDATE' THEN
7690: OPEN get_accr_pricing_attribute_id(l_modifier_line_acc_tbl(l_acc_index).list_line_id);
7747: x_modifiers_tbl => v_modifier_all_off_tbl,
7748: x_error_location => x_error_location
7749: );
7750:
7751: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7752: RAISE Fnd_Api.g_exc_error;
7753: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7754: RAISE Fnd_Api.g_exc_unexpected_error;
7755: END IF;
7748: x_error_location => x_error_location
7749: );
7750:
7751: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7752: RAISE Fnd_Api.g_exc_error;
7753: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7754: RAISE Fnd_Api.g_exc_unexpected_error;
7755: END IF;
7756: END IF;
7749: );
7750:
7751: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7752: RAISE Fnd_Api.g_exc_error;
7753: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7754: RAISE Fnd_Api.g_exc_unexpected_error;
7755: END IF;
7756: END IF;
7757: IF l_modifier_line_off_tbl.count > 0 THEN
7750:
7751: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7752: RAISE Fnd_Api.g_exc_error;
7753: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7754: RAISE Fnd_Api.g_exc_unexpected_error;
7755: END IF;
7756: END IF;
7757: IF l_modifier_line_off_tbl.count > 0 THEN
7758: process_regular_discounts
7766: x_modifiers_tbl => v_modifier_off_tbl,
7767: x_error_location => x_error_location
7768: );
7769:
7770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7771: RAISE Fnd_Api.g_exc_error;
7772: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7773: RAISE Fnd_Api.g_exc_unexpected_error;
7774: END IF;
7767: x_error_location => x_error_location
7768: );
7769:
7770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7771: RAISE Fnd_Api.g_exc_error;
7772: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7773: RAISE Fnd_Api.g_exc_unexpected_error;
7774: END IF;
7775:
7768: );
7769:
7770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7771: RAISE Fnd_Api.g_exc_error;
7772: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7773: RAISE Fnd_Api.g_exc_unexpected_error;
7774: END IF;
7775:
7776: END IF;
7769:
7770: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7771: RAISE Fnd_Api.g_exc_error;
7772: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7773: RAISE Fnd_Api.g_exc_unexpected_error;
7774: END IF;
7775:
7776: END IF;
7777:
7787: x_modifiers_tbl => v_modifier_all_acc_tbl,
7788: x_error_location => x_error_location
7789: );
7790:
7791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7792: RAISE Fnd_Api.g_exc_error;
7793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7794: RAISE Fnd_Api.g_exc_unexpected_error;
7795: END IF;
7788: x_error_location => x_error_location
7789: );
7790:
7791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7792: RAISE Fnd_Api.g_exc_error;
7793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7794: RAISE Fnd_Api.g_exc_unexpected_error;
7795: END IF;
7796: END IF;
7789: );
7790:
7791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7792: RAISE Fnd_Api.g_exc_error;
7793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7794: RAISE Fnd_Api.g_exc_unexpected_error;
7795: END IF;
7796: END IF;
7797:
7790:
7791: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7792: RAISE Fnd_Api.g_exc_error;
7793: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7794: RAISE Fnd_Api.g_exc_unexpected_error;
7795: END IF;
7796: END IF;
7797:
7798: IF l_modifier_line_acc_tbl.count > 0 THEN
7807: x_modifiers_tbl => v_modifier_acc_tbl,
7808: x_error_location => x_error_location
7809: );
7810:
7811: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7812: RAISE Fnd_Api.g_exc_error;
7813: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7814: RAISE Fnd_Api.g_exc_unexpected_error;
7815: END IF;
7808: x_error_location => x_error_location
7809: );
7810:
7811: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7812: RAISE Fnd_Api.g_exc_error;
7813: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7814: RAISE Fnd_Api.g_exc_unexpected_error;
7815: END IF;
7816: END IF;
7809: );
7810:
7811: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7812: RAISE Fnd_Api.g_exc_error;
7813: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7814: RAISE Fnd_Api.g_exc_unexpected_error;
7815: END IF;
7816: END IF;
7817:
7810:
7811: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7812: RAISE Fnd_Api.g_exc_error;
7813: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7814: RAISE Fnd_Api.g_exc_unexpected_error;
7815: END IF;
7816: END IF;
7817:
7818: /*
7852: FOR i IN p_modifier_line_tbl.first..p_modifier_line_tbl.last LOOP
7853: IF p_modifier_line_tbl.exists(i) THEN
7854: l_modifier_line_tbl(i) := p_modifier_line_tbl(i);
7855: -- --dbms_output.put_line('i:'||i||' : Operation :'||p_modifier_line_tbl(i).operation);
7856: IF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7857: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7858: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7859: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7860: l_all_index := l_all_index + 1;
7853: IF p_modifier_line_tbl.exists(i) THEN
7854: l_modifier_line_tbl(i) := p_modifier_line_tbl(i);
7855: -- --dbms_output.put_line('i:'||i||' : Operation :'||p_modifier_line_tbl(i).operation);
7856: IF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7857: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7858: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7859: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7860: l_all_index := l_all_index + 1;
7861: l_modifier_line_tbl(i).list_line_id := v_modifier_all_off_tbl(l_all_index).list_line_id;
7854: l_modifier_line_tbl(i) := p_modifier_line_tbl(i);
7855: -- --dbms_output.put_line('i:'||i||' : Operation :'||p_modifier_line_tbl(i).operation);
7856: IF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7857: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7858: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7859: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7860: l_all_index := l_all_index + 1;
7861: l_modifier_line_tbl(i).list_line_id := v_modifier_all_off_tbl(l_all_index).list_line_id;
7862: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_all_acc_tbl(l_all_index).list_line_id;
7855: -- --dbms_output.put_line('i:'||i||' : Operation :'||p_modifier_line_tbl(i).operation);
7856: IF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7857: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7858: AND ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7859: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char)) THEN
7860: l_all_index := l_all_index + 1;
7861: l_modifier_line_tbl(i).list_line_id := v_modifier_all_off_tbl(l_all_index).list_line_id;
7862: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_all_acc_tbl(l_all_index).list_line_id;
7863: -- --dbms_output.put_line('All :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7860: l_all_index := l_all_index + 1;
7861: l_modifier_line_tbl(i).list_line_id := v_modifier_all_off_tbl(l_all_index).list_line_id;
7862: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_all_acc_tbl(l_all_index).list_line_id;
7863: -- --dbms_output.put_line('All :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7864: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7865: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7866: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7867: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7868: l_off_index := l_off_index + 1;
7861: l_modifier_line_tbl(i).list_line_id := v_modifier_all_off_tbl(l_all_index).list_line_id;
7862: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_all_acc_tbl(l_all_index).list_line_id;
7863: -- --dbms_output.put_line('All :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7864: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7865: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7866: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7867: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7868: l_off_index := l_off_index + 1;
7869: l_modifier_line_tbl(i).list_line_id := v_modifier_off_tbl(l_off_index).list_line_id;
7862: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_all_acc_tbl(l_all_index).list_line_id;
7863: -- --dbms_output.put_line('All :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7864: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7865: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7866: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7867: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7868: l_off_index := l_off_index + 1;
7869: l_modifier_line_tbl(i).list_line_id := v_modifier_off_tbl(l_off_index).list_line_id;
7870: l_modifier_line_tbl(i).qd_list_line_id := null;
7863: -- --dbms_output.put_line('All :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7864: ELSIF ((p_modifier_line_tbl(i).operand IS NOT NULL AND p_modifier_line_tbl(i).operand <> FND_API.g_miss_num)
7865: AND (p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).arithmetic_operator <> FND_API.g_miss_char))
7866: AND ((p_modifier_line_tbl(i).qd_operand IS NULL OR p_modifier_line_tbl(i).qd_operand = FND_API.g_miss_num)
7867: OR (p_modifier_line_tbl(i).qd_arithmetic_operator IS NULL OR p_modifier_line_tbl(i).qd_arithmetic_operator = FND_API.g_miss_char)) THEN
7868: l_off_index := l_off_index + 1;
7869: l_modifier_line_tbl(i).list_line_id := v_modifier_off_tbl(l_off_index).list_line_id;
7870: l_modifier_line_tbl(i).qd_list_line_id := null;
7871: -- --dbms_output.put_line('Off :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7868: l_off_index := l_off_index + 1;
7869: l_modifier_line_tbl(i).list_line_id := v_modifier_off_tbl(l_off_index).list_line_id;
7870: l_modifier_line_tbl(i).qd_list_line_id := null;
7871: -- --dbms_output.put_line('Off :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7872: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7873: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7874: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7875: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7876: l_acc_index := l_acc_index + 1;
7869: l_modifier_line_tbl(i).list_line_id := v_modifier_off_tbl(l_off_index).list_line_id;
7870: l_modifier_line_tbl(i).qd_list_line_id := null;
7871: -- --dbms_output.put_line('Off :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7872: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7873: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7874: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7875: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7876: l_acc_index := l_acc_index + 1;
7877: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_acc_tbl(l_acc_index).list_line_id;
7870: l_modifier_line_tbl(i).qd_list_line_id := null;
7871: -- --dbms_output.put_line('Off :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7872: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7873: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7874: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7875: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7876: l_acc_index := l_acc_index + 1;
7877: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_acc_tbl(l_acc_index).list_line_id;
7878: l_modifier_line_tbl(i).list_line_id := null;
7871: -- --dbms_output.put_line('Off :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7872: ELSIF ((p_modifier_line_tbl(i).qd_operand IS NOT NULL AND p_modifier_line_tbl(i).qd_operand <> FND_API.g_miss_num)
7873: AND (p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL AND p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.g_miss_char))
7874: AND ((p_modifier_line_tbl(i).operand IS NULL OR p_modifier_line_tbl(i).operand = FND_API.g_miss_num)
7875: OR (p_modifier_line_tbl(i).arithmetic_operator IS NULL OR p_modifier_line_tbl(i).arithmetic_operator = FND_API.g_miss_char)) THEN
7876: l_acc_index := l_acc_index + 1;
7877: l_modifier_line_tbl(i).qd_list_line_id := v_modifier_acc_tbl(l_acc_index).list_line_id;
7878: l_modifier_line_tbl(i).list_line_id := null;
7879: -- --dbms_output.put_line('Acc :listlineId'||l_modifier_line_tbl(i).list_line_id || ' td id : '||l_modifier_line_tbl(i).qd_list_line_id);
7883: -- Call Related Deal Lines and establish the relation ship.
7884: -- and push estimated_max if estimated is not equal to max.
7885: FOR i IN l_modifier_line_tbl.first..l_modifier_line_tbl.last LOOP
7886: IF l_modifier_line_tbl.exists(i) THEN
7887: IF l_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7888:
7889: IF (l_modifier_line_tbl(i).max_qty_per_rule IS NULL OR l_modifier_line_tbl(i).max_qty_per_rule = FND_API.G_MISS_NUM)
7890: AND l_modifier_line_tbl(i).qd_estimated_qty_is_max = 'Y' THEN
7891: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7885: FOR i IN l_modifier_line_tbl.first..l_modifier_line_tbl.last LOOP
7886: IF l_modifier_line_tbl.exists(i) THEN
7887: IF l_modifier_line_tbl(i).operation <> FND_API.g_miss_char THEN
7888:
7889: IF (l_modifier_line_tbl(i).max_qty_per_rule IS NULL OR l_modifier_line_tbl(i).max_qty_per_rule = FND_API.G_MISS_NUM)
7890: AND l_modifier_line_tbl(i).qd_estimated_qty_is_max = 'Y' THEN
7891: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7892: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_QTY');
7893: Fnd_Msg_Pub.ADD;
7891: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7892: Fnd_Message.SET_NAME('OZF','OZF_TRD_DEAL_NO_QTY');
7893: Fnd_Msg_Pub.ADD;
7894: END IF;
7895: RAISE Fnd_Api.g_exc_error;
7896: END IF;
7897:
7898: IF (l_modifier_line_tbl(i).max_amount_per_rule IS NULL OR l_modifier_line_tbl(i).max_amount_per_rule = FND_API.G_MISS_NUM)
7899: AND l_modifier_line_tbl(i).qd_estimated_amount_is_max = 'Y' THEN
7894: END IF;
7895: RAISE Fnd_Api.g_exc_error;
7896: END IF;
7897:
7898: IF (l_modifier_line_tbl(i).max_amount_per_rule IS NULL OR l_modifier_line_tbl(i).max_amount_per_rule = FND_API.G_MISS_NUM)
7899: AND l_modifier_line_tbl(i).qd_estimated_amount_is_max = 'Y' THEN
7900: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7901: Fnd_Message.SET_NAME('OZF', 'OZF_TRD_DEAL_NO_AMT');
7902: Fnd_Msg_Pub.ADD;
7900: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
7901: Fnd_Message.SET_NAME('OZF', 'OZF_TRD_DEAL_NO_AMT');
7902: Fnd_Msg_Pub.ADD;
7903: END IF;
7904: RAISE Fnd_Api.g_exc_error;
7905: END IF;
7906:
7907: l_related_lines_rec := NULL;
7908: l_related_lines_rec.qp_list_header_id := l_modifier_line_tbl(i).list_header_id;
7907: l_related_lines_rec := NULL;
7908: l_related_lines_rec.qp_list_header_id := l_modifier_line_tbl(i).list_header_id;
7909:
7910: IF l_modifier_line_tbl(i).operation = 'CREATE' THEN
7911: IF l_modifier_line_tbl(i).list_line_id IS NOT NULL AND l_modifier_line_tbl(i).list_line_id <> FND_API.g_miss_num THEN
7912: l_related_lines_rec.modifier_id := l_modifier_line_tbl(i).list_line_id;
7913: IF l_modifier_line_tbl(i).qd_list_line_id IS NOT NULL AND l_modifier_line_tbl(i).qd_list_line_id <> FND_API.g_miss_num THEN
7914: l_related_lines_rec.related_modifier_id := l_modifier_line_tbl(i).qd_list_line_id;
7915: END IF;
7909:
7910: IF l_modifier_line_tbl(i).operation = 'CREATE' THEN
7911: IF l_modifier_line_tbl(i).list_line_id IS NOT NULL AND l_modifier_line_tbl(i).list_line_id <> FND_API.g_miss_num THEN
7912: l_related_lines_rec.modifier_id := l_modifier_line_tbl(i).list_line_id;
7913: IF l_modifier_line_tbl(i).qd_list_line_id IS NOT NULL AND l_modifier_line_tbl(i).qd_list_line_id <> FND_API.g_miss_num THEN
7914: l_related_lines_rec.related_modifier_id := l_modifier_line_tbl(i).qd_list_line_id;
7915: END IF;
7916: ELSE
7917: l_related_lines_rec.modifier_id := l_modifier_line_tbl(i).qd_list_line_id;
7964: ,x_object_version_number => l_object_version_number
7965: );
7966: END IF;
7967:
7968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7969: RAISE Fnd_Api.g_exc_error;
7970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7971: RAISE Fnd_Api.g_exc_unexpected_error;
7972: END IF;
7965: );
7966: END IF;
7967:
7968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7969: RAISE Fnd_Api.g_exc_error;
7970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7971: RAISE Fnd_Api.g_exc_unexpected_error;
7972: END IF;
7973:
7966: END IF;
7967:
7968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7969: RAISE Fnd_Api.g_exc_error;
7970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7971: RAISE Fnd_Api.g_exc_unexpected_error;
7972: END IF;
7973:
7974: END IF;
7967:
7968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
7969: RAISE Fnd_Api.g_exc_error;
7970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7971: RAISE Fnd_Api.g_exc_unexpected_error;
7972: END IF;
7973:
7974: END IF;
7975: END IF;
7979:
7980: -- process limits
7981: FOR limit_index IN l_modifier_line_tbl.first..l_modifier_line_tbl.last LOOP
7982: IF l_modifier_line_tbl.exists(limit_index) THEN
7983: IF l_modifier_line_tbl(limit_index).operation <> FND_API.g_miss_char THEN
7984: IF l_modifier_line_tbl(limit_index).qd_estimated_qty_is_max = 'Y' THEN
7985: IF l_modifier_line_tbl(limit_index).list_line_id IS NOT NULL
7986: AND l_modifier_line_tbl(limit_index).list_line_id <> FND_API.G_MISS_NUM THEN
7987: process_limits
7982: IF l_modifier_line_tbl.exists(limit_index) THEN
7983: IF l_modifier_line_tbl(limit_index).operation <> FND_API.g_miss_char THEN
7984: IF l_modifier_line_tbl(limit_index).qd_estimated_qty_is_max = 'Y' THEN
7985: IF l_modifier_line_tbl(limit_index).list_line_id IS NOT NULL
7986: AND l_modifier_line_tbl(limit_index).list_line_id <> FND_API.G_MISS_NUM THEN
7987: process_limits
7988: (
7989: x_return_status => x_return_status
7990: ,x_msg_count => x_msg_count
7995: ,p_list_header_id => l_modifier_line_tbl(limit_index).list_header_id
7996: ,p_limit_id => l_modifier_line_tbl(limit_index).max_qty_per_rule_id
7997: );
7998:
7999: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8000: x_error_location := limit_index;
8001: RAISE Fnd_Api.g_exc_error;
8002: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8003: x_error_location := limit_index;
7997: );
7998:
7999: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8000: x_error_location := limit_index;
8001: RAISE Fnd_Api.g_exc_error;
8002: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8003: x_error_location := limit_index;
8004: RAISE Fnd_Api.g_exc_unexpected_error;
8005: END IF;
7998:
7999: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8000: x_error_location := limit_index;
8001: RAISE Fnd_Api.g_exc_error;
8002: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8003: x_error_location := limit_index;
8004: RAISE Fnd_Api.g_exc_unexpected_error;
8005: END IF;
8006: END IF;
8000: x_error_location := limit_index;
8001: RAISE Fnd_Api.g_exc_error;
8002: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8003: x_error_location := limit_index;
8004: RAISE Fnd_Api.g_exc_unexpected_error;
8005: END IF;
8006: END IF;
8007:
8008: IF l_modifier_line_tbl(limit_index).qd_list_line_id IS NOT NULL
8005: END IF;
8006: END IF;
8007:
8008: IF l_modifier_line_tbl(limit_index).qd_list_line_id IS NOT NULL
8009: AND l_modifier_line_tbl(limit_index).qd_list_line_id <> FND_API.G_MISS_NUM THEN
8010:
8011: OPEN cur_get_accrual_limit_id(3,l_modifier_line_tbl(limit_index).qd_list_line_id);
8012: FETCH cur_get_accrual_limit_id into l_accr_qty_limit_id;
8013: CLOSE cur_get_accrual_limit_id;
8023: ,p_list_header_id => l_modifier_line_tbl(limit_index).list_header_id
8024: ,p_limit_id => l_accr_qty_limit_id
8025: );
8026:
8027: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8028: x_error_location := limit_index;
8029: RAISE Fnd_Api.g_exc_error;
8030: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8031: x_error_location := limit_index;
8025: );
8026:
8027: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8028: x_error_location := limit_index;
8029: RAISE Fnd_Api.g_exc_error;
8030: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8031: x_error_location := limit_index;
8032: RAISE Fnd_Api.g_exc_unexpected_error;
8033: END IF;
8026:
8027: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8028: x_error_location := limit_index;
8029: RAISE Fnd_Api.g_exc_error;
8030: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8031: x_error_location := limit_index;
8032: RAISE Fnd_Api.g_exc_unexpected_error;
8033: END IF;
8034: END IF;
8028: x_error_location := limit_index;
8029: RAISE Fnd_Api.g_exc_error;
8030: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8031: x_error_location := limit_index;
8032: RAISE Fnd_Api.g_exc_unexpected_error;
8033: END IF;
8034: END IF;
8035: END IF;
8036:
8035: END IF;
8036:
8037: IF l_modifier_line_tbl(limit_index).qd_estimated_amount_is_max = 'Y' THEN
8038: IF l_modifier_line_tbl(limit_index).list_line_id IS NOT NULL
8039: AND l_modifier_line_tbl(limit_index).list_line_id <> FND_API.G_MISS_NUM THEN
8040: process_limits
8041: (
8042: x_return_status => x_return_status
8043: ,x_msg_count => x_msg_count
8048: ,p_list_header_id => l_modifier_line_tbl(limit_index).list_header_id
8049: ,p_limit_id => l_modifier_line_tbl(limit_index).max_amount_per_rule_id
8050: );
8051:
8052: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8053: x_error_location := limit_index;
8054: RAISE Fnd_Api.g_exc_error;
8055: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8056: x_error_location := limit_index;
8050: );
8051:
8052: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8053: x_error_location := limit_index;
8054: RAISE Fnd_Api.g_exc_error;
8055: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8056: x_error_location := limit_index;
8057: RAISE Fnd_Api.g_exc_unexpected_error;
8058: END IF;
8051:
8052: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8053: x_error_location := limit_index;
8054: RAISE Fnd_Api.g_exc_error;
8055: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8056: x_error_location := limit_index;
8057: RAISE Fnd_Api.g_exc_unexpected_error;
8058: END IF;
8059: END IF;
8053: x_error_location := limit_index;
8054: RAISE Fnd_Api.g_exc_error;
8055: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8056: x_error_location := limit_index;
8057: RAISE Fnd_Api.g_exc_unexpected_error;
8058: END IF;
8059: END IF;
8060:
8061: IF l_modifier_line_tbl(limit_index).qd_list_line_id IS NOT NULL
8058: END IF;
8059: END IF;
8060:
8061: IF l_modifier_line_tbl(limit_index).qd_list_line_id IS NOT NULL
8062: AND l_modifier_line_tbl(limit_index).qd_list_line_id <> FND_API.G_MISS_NUM THEN
8063:
8064: OPEN cur_get_accrual_limit_id(5,l_modifier_line_tbl(limit_index).qd_list_line_id);
8065: FETCH cur_get_accrual_limit_id into l_accr_amount_limit_id;
8066: CLOSE cur_get_accrual_limit_id;
8076: ,p_list_header_id => l_modifier_line_tbl(limit_index).list_header_id
8077: ,p_limit_id => l_accr_amount_limit_id
8078: );
8079:
8080: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8081: x_error_location := limit_index;
8082: RAISE Fnd_Api.g_exc_error;
8083: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8084: x_error_location := limit_index;
8078: );
8079:
8080: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8081: x_error_location := limit_index;
8082: RAISE Fnd_Api.g_exc_error;
8083: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8084: x_error_location := limit_index;
8085: RAISE Fnd_Api.g_exc_unexpected_error;
8086: END IF;
8079:
8080: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8081: x_error_location := limit_index;
8082: RAISE Fnd_Api.g_exc_error;
8083: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8084: x_error_location := limit_index;
8085: RAISE Fnd_Api.g_exc_unexpected_error;
8086: END IF;
8087: END IF;
8081: x_error_location := limit_index;
8082: RAISE Fnd_Api.g_exc_error;
8083: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8084: x_error_location := limit_index;
8085: RAISE Fnd_Api.g_exc_unexpected_error;
8086: END IF;
8087: END IF;
8088: END IF;
8089: END IF;
8092:
8093: x_modifiers_tbl := v_modifier_ret_tbl;
8094:
8095: EXCEPTION
8096: WHEN Fnd_Api.G_EXC_ERROR THEN
8097: x_return_status := Fnd_Api.g_ret_sts_error ;
8098: Fnd_Msg_Pub.Count_AND_Get
8099: ( p_count => x_msg_count,
8100: p_data => x_msg_data,
8093: x_modifiers_tbl := v_modifier_ret_tbl;
8094:
8095: EXCEPTION
8096: WHEN Fnd_Api.G_EXC_ERROR THEN
8097: x_return_status := Fnd_Api.g_ret_sts_error ;
8098: Fnd_Msg_Pub.Count_AND_Get
8099: ( p_count => x_msg_count,
8100: p_data => x_msg_data,
8101: p_encoded => Fnd_Api.G_FALSE
8097: x_return_status := Fnd_Api.g_ret_sts_error ;
8098: Fnd_Msg_Pub.Count_AND_Get
8099: ( p_count => x_msg_count,
8100: p_data => x_msg_data,
8101: p_encoded => Fnd_Api.G_FALSE
8102: );
8103: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8104: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8105: Fnd_Msg_Pub.Count_AND_Get
8099: ( p_count => x_msg_count,
8100: p_data => x_msg_data,
8101: p_encoded => Fnd_Api.G_FALSE
8102: );
8103: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8104: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8105: Fnd_Msg_Pub.Count_AND_Get
8106: ( p_count => x_msg_count,
8107: p_data => x_msg_data,
8100: p_data => x_msg_data,
8101: p_encoded => Fnd_Api.G_FALSE
8102: );
8103: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8104: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8105: Fnd_Msg_Pub.Count_AND_Get
8106: ( p_count => x_msg_count,
8107: p_data => x_msg_data,
8108: p_encoded => Fnd_Api.G_FALSE
8104: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8105: Fnd_Msg_Pub.Count_AND_Get
8106: ( p_count => x_msg_count,
8107: p_data => x_msg_data,
8108: p_encoded => Fnd_Api.G_FALSE
8109: );
8110: WHEN OTHERS THEN
8111: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8112: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
8107: p_data => x_msg_data,
8108: p_encoded => Fnd_Api.G_FALSE
8109: );
8110: WHEN OTHERS THEN
8111: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8112: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
8113: THEN
8114: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
8115: END IF;
8115: END IF;
8116: Fnd_Msg_Pub.Count_AND_Get
8117: ( p_count => x_msg_count,
8118: p_data => x_msg_data,
8119: p_encoded => Fnd_Api.G_FALSE
8120: );
8121: END;
8122:
8123: PROCEDURE validateQpListLines
8135: FROM ozf_offers
8136: WHERE qp_list_header_id = cp_listHeaderId;
8137: l_currency ozf_offers.transaction_currency_code%TYPE;
8138: BEGIN
8139: x_return_status := FND_API.G_RET_STS_SUCCESS;
8140: IF p_modifier_line_tbl.count > 0 THEN
8141: FOR i in p_modifier_line_tbl.first .. p_modifier_line_tbl.last LOOP
8142: IF p_modifier_line_tbl.exists(i) THEN
8143: OPEN c_currency(cp_listHeaderId => nvl(p_modifier_line_tbl(i).list_header_id,p_listHeaderId));
8143: OPEN c_currency(cp_listHeaderId => nvl(p_modifier_line_tbl(i).list_header_id,p_listHeaderId));
8144: FETCH c_currency INTO l_currency;
8145: CLOSE c_currency;
8146: IF l_currency IS NULL THEN
8147: IF (p_modifier_line_tbl(i).operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).operand IS NOT NULL)
8148: AND
8149: (p_modifier_line_tbl(i).arithmetic_operator <> FND_API.G_MISS_CHAR AND p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL)
8150: THEN
8151: IF
8145: CLOSE c_currency;
8146: IF l_currency IS NULL THEN
8147: IF (p_modifier_line_tbl(i).operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).operand IS NOT NULL)
8148: AND
8149: (p_modifier_line_tbl(i).arithmetic_operator <> FND_API.G_MISS_CHAR AND p_modifier_line_tbl(i).arithmetic_operator IS NOT NULL)
8150: THEN
8151: IF
8152: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).arithmetic_operator <> '%' )
8153: THEN
8151: IF
8152: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).arithmetic_operator <> '%' )
8153: THEN
8154: OZF_Utility_PVT.error_message('OZF_OFFR_OPT_CURR_PCNT');
8155: x_return_status := FND_API.G_RET_STS_ERROR;
8156: RAISE FND_API.g_exc_error;
8157: END IF;
8158: END IF;
8159: IF (p_modifier_line_tbl(i).qd_operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).qd_operand IS NOT NULL)
8152: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).arithmetic_operator <> '%' )
8153: THEN
8154: OZF_Utility_PVT.error_message('OZF_OFFR_OPT_CURR_PCNT');
8155: x_return_status := FND_API.G_RET_STS_ERROR;
8156: RAISE FND_API.g_exc_error;
8157: END IF;
8158: END IF;
8159: IF (p_modifier_line_tbl(i).qd_operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).qd_operand IS NOT NULL)
8160: AND
8155: x_return_status := FND_API.G_RET_STS_ERROR;
8156: RAISE FND_API.g_exc_error;
8157: END IF;
8158: END IF;
8159: IF (p_modifier_line_tbl(i).qd_operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).qd_operand IS NOT NULL)
8160: AND
8161: (p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.G_MISS_CHAR AND p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL)
8162: THEN
8163: IF
8157: END IF;
8158: END IF;
8159: IF (p_modifier_line_tbl(i).qd_operand <> FND_API.G_MISS_NUM AND p_modifier_line_tbl(i).qd_operand IS NOT NULL)
8160: AND
8161: (p_modifier_line_tbl(i).qd_arithmetic_operator <> FND_API.G_MISS_CHAR AND p_modifier_line_tbl(i).qd_arithmetic_operator IS NOT NULL)
8162: THEN
8163: IF
8164: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).qd_arithmetic_operator <> '%' )
8165: THEN
8163: IF
8164: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).qd_arithmetic_operator <> '%' )
8165: THEN
8166: OZF_Utility_PVT.error_message('OZF_OFFR_OPT_CURR_PCNT');
8167: x_return_status := FND_API.G_RET_STS_ERROR;
8168: RAISE FND_API.g_exc_error;
8169: END IF;
8170: END IF;
8171: END IF;
8164: (p_modifier_line_tbl(i).list_line_type_code = 'DIS' AND p_modifier_line_tbl(i).qd_arithmetic_operator <> '%' )
8165: THEN
8166: OZF_Utility_PVT.error_message('OZF_OFFR_OPT_CURR_PCNT');
8167: x_return_status := FND_API.G_RET_STS_ERROR;
8168: RAISE FND_API.g_exc_error;
8169: END IF;
8170: END IF;
8171: END IF;
8172: END IF;
8201: BEGIN
8202:
8203: SAVEPOINT process_qp_list_lines;
8204:
8205: x_return_status := Fnd_Api.g_ret_sts_success;
8206: x_error_location := 0;
8207: validateQpListLines
8208: (
8209: x_return_status => x_return_status
8211: ,x_msg_data => x_msg_data
8212: ,p_modifier_line_tbl => p_modifier_line_tbl
8213: ,p_listHeaderId => p_list_header_id
8214: );
8215: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8216: RAISE FND_API.G_EXC_ERROR;
8217: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8219: END IF;
8212: ,p_modifier_line_tbl => p_modifier_line_tbl
8213: ,p_listHeaderId => p_list_header_id
8214: );
8215: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8216: RAISE FND_API.G_EXC_ERROR;
8217: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8219: END IF;
8220:
8213: ,p_listHeaderId => p_list_header_id
8214: );
8215: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8216: RAISE FND_API.G_EXC_ERROR;
8217: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8219: END IF;
8220:
8221: IF p_list_header_id IS NOT NULL AND p_list_header_id<> FND_API.G_MISS_NUM THEN
8214: );
8215: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8216: RAISE FND_API.G_EXC_ERROR;
8217: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8219: END IF;
8220:
8221: IF p_list_header_id IS NOT NULL AND p_list_header_id<> FND_API.G_MISS_NUM THEN
8222: l_modifier_line_rec_tbl(p_modifier_line_tbl.last).list_header_id := p_list_header_id;
8217: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8219: END IF;
8220:
8221: IF p_list_header_id IS NOT NULL AND p_list_header_id<> FND_API.G_MISS_NUM THEN
8222: l_modifier_line_rec_tbl(p_modifier_line_tbl.last).list_header_id := p_list_header_id;
8223: END IF;
8224:
8225: IF p_modifier_line_tbl.count > 0 THEN
8288: END IF;
8289:
8290: x_modifier_line_tbl := l_modifier_line_tbl;
8291:
8292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8293: RAISE Fnd_Api.g_exc_error;
8294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8295: RAISE Fnd_Api.g_exc_unexpected_error;
8296: END IF;
8289:
8290: x_modifier_line_tbl := l_modifier_line_tbl;
8291:
8292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8293: RAISE Fnd_Api.g_exc_error;
8294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8295: RAISE Fnd_Api.g_exc_unexpected_error;
8296: END IF;
8297: END IF;
8290: x_modifier_line_tbl := l_modifier_line_tbl;
8291:
8292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8293: RAISE Fnd_Api.g_exc_error;
8294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8295: RAISE Fnd_Api.g_exc_unexpected_error;
8296: END IF;
8297: END IF;
8298: EXCEPTION
8291:
8292: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8293: RAISE Fnd_Api.g_exc_error;
8294: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8295: RAISE Fnd_Api.g_exc_unexpected_error;
8296: END IF;
8297: END IF;
8298: EXCEPTION
8299: WHEN Fnd_Api.G_EXC_ERROR THEN
8295: RAISE Fnd_Api.g_exc_unexpected_error;
8296: END IF;
8297: END IF;
8298: EXCEPTION
8299: WHEN Fnd_Api.G_EXC_ERROR THEN
8300: x_return_status := Fnd_Api.g_ret_sts_error ;
8301: ROLLBACK TO process_qp_list_lines;
8302: Fnd_Msg_Pub.Count_AND_Get
8303: ( p_count => x_msg_count,
8296: END IF;
8297: END IF;
8298: EXCEPTION
8299: WHEN Fnd_Api.G_EXC_ERROR THEN
8300: x_return_status := Fnd_Api.g_ret_sts_error ;
8301: ROLLBACK TO process_qp_list_lines;
8302: Fnd_Msg_Pub.Count_AND_Get
8303: ( p_count => x_msg_count,
8304: p_data => x_msg_data,
8301: ROLLBACK TO process_qp_list_lines;
8302: Fnd_Msg_Pub.Count_AND_Get
8303: ( p_count => x_msg_count,
8304: p_data => x_msg_data,
8305: p_encoded => Fnd_Api.G_FALSE
8306: );
8307: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8308: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8309: ROLLBACK TO process_qp_list_lines;
8303: ( p_count => x_msg_count,
8304: p_data => x_msg_data,
8305: p_encoded => Fnd_Api.G_FALSE
8306: );
8307: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8308: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8309: ROLLBACK TO process_qp_list_lines;
8310: Fnd_Msg_Pub.Count_AND_Get
8311: ( p_count => x_msg_count,
8304: p_data => x_msg_data,
8305: p_encoded => Fnd_Api.G_FALSE
8306: );
8307: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8308: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8309: ROLLBACK TO process_qp_list_lines;
8310: Fnd_Msg_Pub.Count_AND_Get
8311: ( p_count => x_msg_count,
8312: p_data => x_msg_data,
8309: ROLLBACK TO process_qp_list_lines;
8310: Fnd_Msg_Pub.Count_AND_Get
8311: ( p_count => x_msg_count,
8312: p_data => x_msg_data,
8313: p_encoded => Fnd_Api.G_FALSE
8314: );
8315: WHEN OTHERS THEN
8316: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8317: ROLLBACK TO process_qp_list_lines;
8312: p_data => x_msg_data,
8313: p_encoded => Fnd_Api.G_FALSE
8314: );
8315: WHEN OTHERS THEN
8316: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8317: ROLLBACK TO process_qp_list_lines;
8318: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
8319: THEN
8320: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
8321: END IF;
8322: Fnd_Msg_Pub.Count_AND_Get
8323: ( p_count => x_msg_count,
8324: p_data => x_msg_data,
8325: p_encoded => Fnd_Api.G_FALSE
8326: );
8327: END;
8328:
8329:
8350:
8351:
8352: BEGIN
8353:
8354: x_return_status := Fnd_Api.g_ret_sts_success;
8355:
8356: OPEN c_budget_exist;
8357: FETCH c_budget_exist INTO l_budget_exist;
8358: CLOSE c_budget_exist;
8359:
8360:
8361: IF l_budget_exist IS NULL THEN
8362: OZF_Utility_PVT.error_message('OZF_EVE_NO_BGT_SRC');
8363: RAISE FND_API.g_exc_error;
8364: END IF;
8365:
8366:
8367: -- For Lumpsum Offers if distribution is complete
8375: ,x_msg_data => x_msg_data
8376: ,p_qp_list_header_id => p_modifier_list_rec.qp_list_header_id
8377: );
8378:
8379: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8380: RAISE Fnd_Api.g_exc_error;
8381: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8382: RAISE Fnd_Api.g_exc_unexpected_error;
8383: END IF;
8376: ,p_qp_list_header_id => p_modifier_list_rec.qp_list_header_id
8377: );
8378:
8379: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8380: RAISE Fnd_Api.g_exc_error;
8381: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8382: RAISE Fnd_Api.g_exc_unexpected_error;
8383: END IF;
8384:
8377: );
8378:
8379: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8380: RAISE Fnd_Api.g_exc_error;
8381: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8382: RAISE Fnd_Api.g_exc_unexpected_error;
8383: END IF;
8384:
8385: END IF;
8378:
8379: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8380: RAISE Fnd_Api.g_exc_error;
8381: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8382: RAISE Fnd_Api.g_exc_unexpected_error;
8383: END IF;
8384:
8385: END IF;
8386:
8386:
8387: Fnd_Msg_Pub.Count_AND_Get
8388: ( p_count => x_msg_count,
8389: p_data => x_msg_data,
8390: p_encoded => Fnd_Api.G_FALSE
8391: );
8392:
8393: EXCEPTION
8394: WHEN Fnd_Api.G_EXC_ERROR THEN
8390: p_encoded => Fnd_Api.G_FALSE
8391: );
8392:
8393: EXCEPTION
8394: WHEN Fnd_Api.G_EXC_ERROR THEN
8395: x_return_status := Fnd_Api.g_ret_sts_error ;
8396: Fnd_Msg_Pub.Count_AND_Get
8397: ( p_count => x_msg_count,
8398: p_data => x_msg_data,
8391: );
8392:
8393: EXCEPTION
8394: WHEN Fnd_Api.G_EXC_ERROR THEN
8395: x_return_status := Fnd_Api.g_ret_sts_error ;
8396: Fnd_Msg_Pub.Count_AND_Get
8397: ( p_count => x_msg_count,
8398: p_data => x_msg_data,
8399: p_encoded => Fnd_Api.G_FALSE
8395: x_return_status := Fnd_Api.g_ret_sts_error ;
8396: Fnd_Msg_Pub.Count_AND_Get
8397: ( p_count => x_msg_count,
8398: p_data => x_msg_data,
8399: p_encoded => Fnd_Api.G_FALSE
8400: );
8401: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8402: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8403: Fnd_Msg_Pub.Count_AND_Get
8397: ( p_count => x_msg_count,
8398: p_data => x_msg_data,
8399: p_encoded => Fnd_Api.G_FALSE
8400: );
8401: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8402: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8403: Fnd_Msg_Pub.Count_AND_Get
8404: ( p_count => x_msg_count,
8405: p_data => x_msg_data,
8398: p_data => x_msg_data,
8399: p_encoded => Fnd_Api.G_FALSE
8400: );
8401: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
8402: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8403: Fnd_Msg_Pub.Count_AND_Get
8404: ( p_count => x_msg_count,
8405: p_data => x_msg_data,
8406: p_encoded => Fnd_Api.G_FALSE
8402: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8403: Fnd_Msg_Pub.Count_AND_Get
8404: ( p_count => x_msg_count,
8405: p_data => x_msg_data,
8406: p_encoded => Fnd_Api.G_FALSE
8407: );
8408: WHEN OTHERS THEN
8409: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8410: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
8405: p_data => x_msg_data,
8406: p_encoded => Fnd_Api.G_FALSE
8407: );
8408: WHEN OTHERS THEN
8409: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
8410: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
8411: THEN
8412: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
8413: END IF;
8413: END IF;
8414: Fnd_Msg_Pub.Count_AND_Get
8415: ( p_count => x_msg_count,
8416: p_data => x_msg_data,
8417: p_encoded => Fnd_Api.G_FALSE
8418: );
8419: END;
8420:
8421:
8577:
8578: process_offer_activation
8579: (
8580: p_api_version_number => 1.0
8581: , p_init_msg_list => FND_API.g_false
8582: , p_commit => p_commit
8583: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
8584: , x_return_status => x_return_status
8585: , x_msg_count => x_msg_count
8579: (
8580: p_api_version_number => 1.0
8581: , p_init_msg_list => FND_API.g_false
8582: , p_commit => p_commit
8583: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
8584: , x_return_status => x_return_status
8585: , x_msg_count => x_msg_count
8586: , x_msg_data => x_msg_data
8587: , p_offer_rec => p_modifier_list_rec
8586: , x_msg_data => x_msg_data
8587: , p_offer_rec => p_modifier_list_rec
8588: );
8589:
8590: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8591: RAISE FND_API.G_EXC_ERROR;
8592: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8593: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8594: END IF;
8587: , p_offer_rec => p_modifier_list_rec
8588: );
8589:
8590: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8591: RAISE FND_API.G_EXC_ERROR;
8592: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8593: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8594: END IF;
8595:
8588: );
8589:
8590: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8591: RAISE FND_API.G_EXC_ERROR;
8592: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8593: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8594: END IF;
8595:
8596:
8589:
8590: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8591: RAISE FND_API.G_EXC_ERROR;
8592: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8593: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8594: END IF;
8595:
8596:
8597: IF p_commit = Fnd_Api.g_true THEN
8593: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8594: END IF;
8595:
8596:
8597: IF p_commit = Fnd_Api.g_true THEN
8598: COMMIT;
8599: END IF;
8600:
8601: EXCEPTION
8599: END IF;
8600:
8601: EXCEPTION
8602: WHEN OTHERS THEN
8603: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
8604: ROLLBACK TO update_offer_status;
8605: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR ) THEN
8606: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
8607: END IF;
8606: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
8607: END IF;
8608: Fnd_Msg_Pub.Count_AND_Get(p_count => x_msg_count,
8609: p_data => x_msg_data,
8610: p_encoded => Fnd_Api.G_FALSE);
8611: END update_offer_status;
8612:
8613:
8614: PROCEDURE raise_offer_event(p_offer_id IN NUMBER,
8637: p_parameters => l_parameter_list);
8638: EXCEPTION
8639: WHEN OTHERS THEN
8640: debug_message('Exception in raising business event');
8641: RAISE Fnd_Api.g_exc_error;
8642: END;
8643:
8644: FUNCTION getDateQualifier(p_qpListHeaderId NUMBER)
8645: RETURN VARCHAR2
8795: l_budget_req_count NUMBER := 0;
8796: BEGIN
8797: SAVEPOINT process_modifiers;
8798: --dbms_output.put_line('calling qp procedure');
8799: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
8800: Fnd_Msg_Pub.initialize;
8801: END IF;
8802:
8803: IF NOT Fnd_Api.compatible_api_call
8799: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
8800: Fnd_Msg_Pub.initialize;
8801: END IF;
8802:
8803: IF NOT Fnd_Api.compatible_api_call
8804: (
8805: l_api_version,
8806: p_api_version,
8807: l_api_name,
8807: l_api_name,
8808: g_pkg_name
8809: )
8810: THEN
8811: RAISE Fnd_Api.g_exc_unexpected_error;
8812: END IF;
8813: x_return_status := Fnd_Api.g_ret_sts_success;
8814: x_error_location := 0;
8815:
8809: )
8810: THEN
8811: RAISE Fnd_Api.g_exc_unexpected_error;
8812: END IF;
8813: x_return_status := Fnd_Api.g_ret_sts_success;
8814: x_error_location := 0;
8815:
8816: -- added by julou 14-DEC-2001 check default profile values before going any further
8817: IF FND_PROFILE.value('OZF_PRICING_PHASE_LINEGROUP') IS NULL THEN
8816: -- added by julou 14-DEC-2001 check default profile values before going any further
8817: IF FND_PROFILE.value('OZF_PRICING_PHASE_LINEGROUP') IS NULL THEN
8818: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_PHASE_LINEGROUP');
8819: FND_MSG_PUB.add;
8820: RAISE FND_API.g_exc_unexpected_error;
8821: END IF;
8822:
8823: IF FND_PROFILE.value('OZF_PRICING_PHASE_LINE') IS NULL THEN
8824: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_PHASE_LINE');
8822:
8823: IF FND_PROFILE.value('OZF_PRICING_PHASE_LINE') IS NULL THEN
8824: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_PHASE_LINE');
8825: FND_MSG_PUB.add;
8826: RAISE FND_API.g_exc_unexpected_error;
8827: END IF;
8828:
8829: IF FND_PROFILE.value('OZF_PRICING_PHASE_ORDER') IS NULL THEN
8830: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_PHASE_ORDER');
8828:
8829: IF FND_PROFILE.value('OZF_PRICING_PHASE_ORDER') IS NULL THEN
8830: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_PHASE_ORDER');
8831: FND_MSG_PUB.add;
8832: RAISE FND_API.g_exc_unexpected_error;
8833: END IF;
8834:
8835: IF FND_PROFILE.value('OZF_PRICING_GROUP_SEQUENCE') IS NULL THEN
8836: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_GROUP_SEQUENCE');
8834:
8835: IF FND_PROFILE.value('OZF_PRICING_GROUP_SEQUENCE') IS NULL THEN
8836: FND_MESSAGE.set_name('OZF','OZF_NO_PRICING_GROUP_SEQUENCE');
8837: FND_MSG_PUB.add;
8838: RAISE FND_API.g_exc_unexpected_error;
8839: END IF;
8840:
8841: IF FND_PROFILE.value('OZF_PRINT_ON_INVOICE') IS NULL THEN
8842: FND_MESSAGE.set_name('OZF','OZF_NO_PRINT_ON_INVOICE');
8840:
8841: IF FND_PROFILE.value('OZF_PRINT_ON_INVOICE') IS NULL THEN
8842: FND_MESSAGE.set_name('OZF','OZF_NO_PRINT_ON_INVOICE');
8843: FND_MSG_PUB.add;
8844: RAISE FND_API.g_exc_unexpected_error;
8845: END IF;
8846: /* julou bug 3498759 - comment OUT NOCOPY as these profiles are not mandatory
8847: IF FND_PROFILE.value('OZF_INCOMPATIBILITY_GROUP') IS NULL THEN
8848: FND_MESSAGE.set_name('OZF','OZF_NO_INCOMPATIBILITY_GROUP');
8846: /* julou bug 3498759 - comment OUT NOCOPY as these profiles are not mandatory
8847: IF FND_PROFILE.value('OZF_INCOMPATIBILITY_GROUP') IS NULL THEN
8848: FND_MESSAGE.set_name('OZF','OZF_NO_INCOMPATIBILITY_GROUP');
8849: FND_MSG_PUB.add;
8850: RAISE FND_API.g_exc_unexpected_error;
8851: END IF;
8852: */
8853: IF FND_PROFILE.value('OZF_PRODUCT_PRECEDENCE') IS NULL THEN
8854: FND_MESSAGE.set_name('OZF','OZF_NO_PRODUCT_PRECEDENCE');
8852: */
8853: IF FND_PROFILE.value('OZF_PRODUCT_PRECEDENCE') IS NULL THEN
8854: FND_MESSAGE.set_name('OZF','OZF_NO_PRODUCT_PRECEDENCE');
8855: FND_MSG_PUB.add;
8856: RAISE FND_API.g_exc_unexpected_error;
8857: END IF;
8858:
8859: -- end of code added by julou
8860: validate_offer_dates(
8865: ,x_msg_data => x_msg_data
8866: ,p_offer_rec => p_modifier_list_rec
8867: );
8868:
8869: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8870: RAISE Fnd_Api.g_exc_error;
8871: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8872: RAISE Fnd_Api.g_exc_unexpected_error;
8873: END IF;
8866: ,p_offer_rec => p_modifier_list_rec
8867: );
8868:
8869: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8870: RAISE Fnd_Api.g_exc_error;
8871: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8872: RAISE Fnd_Api.g_exc_unexpected_error;
8873: END IF;
8874:
8867: );
8868:
8869: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8870: RAISE Fnd_Api.g_exc_error;
8871: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8872: RAISE Fnd_Api.g_exc_unexpected_error;
8873: END IF;
8874:
8875: IF p_modifier_list_rec.modifier_operation <> FND_API.g_miss_char THEN
8868:
8869: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8870: RAISE Fnd_Api.g_exc_error;
8871: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8872: RAISE Fnd_Api.g_exc_unexpected_error;
8873: END IF;
8874:
8875: IF p_modifier_list_rec.modifier_operation <> FND_API.g_miss_char THEN
8876:
8871: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8872: RAISE Fnd_Api.g_exc_unexpected_error;
8873: END IF;
8874:
8875: IF p_modifier_list_rec.modifier_operation <> FND_API.g_miss_char THEN
8876:
8877: IF p_modifier_list_rec.modifier_operation = 'UPDATE' THEN
8878:
8879: OPEN cur_get_user_status;
8892: ,x_msg_data => x_msg_data
8893: ,p_offer_rec => p_modifier_list_rec
8894: );
8895:
8896: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8897: RAISE Fnd_Api.g_exc_error;
8898: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8899: RAISE Fnd_Api.g_exc_unexpected_error;
8900: END IF;
8893: ,p_offer_rec => p_modifier_list_rec
8894: );
8895:
8896: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8897: RAISE Fnd_Api.g_exc_error;
8898: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8899: RAISE Fnd_Api.g_exc_unexpected_error;
8900: END IF;
8901: END IF;
8894: );
8895:
8896: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8897: RAISE Fnd_Api.g_exc_error;
8898: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8899: RAISE Fnd_Api.g_exc_unexpected_error;
8900: END IF;
8901: END IF;
8902: END IF;
8895:
8896: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8897: RAISE Fnd_Api.g_exc_error;
8898: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8899: RAISE Fnd_Api.g_exc_unexpected_error;
8900: END IF;
8901: END IF;
8902: END IF;
8903:
8900: END IF;
8901: END IF;
8902: END IF;
8903:
8904: IF (p_modifier_list_rec.user_status_id <> FND_API.g_miss_num)
8905: AND (p_modifier_list_rec.user_status_id <> l_old_status_id) THEN
8906:
8907: l_new_status_code := OZF_Utility_PVT.get_system_status_code(p_modifier_list_rec.user_status_id);
8908:
8918: x_approval_type => l_approval_type,
8919: x_return_status => x_return_status
8920: );
8921:
8922: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8923: RAISE Fnd_Api.g_exc_error;
8924: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8925: RAISE Fnd_Api.g_exc_unexpected_error;
8926: END IF;
8919: x_return_status => x_return_status
8920: );
8921:
8922: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8923: RAISE Fnd_Api.g_exc_error;
8924: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8925: RAISE Fnd_Api.g_exc_unexpected_error;
8926: END IF;
8927:
8920: );
8921:
8922: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8923: RAISE Fnd_Api.g_exc_error;
8924: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8925: RAISE Fnd_Api.g_exc_unexpected_error;
8926: END IF;
8927:
8928: OPEN c_budget_required;
8921:
8922: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8923: RAISE Fnd_Api.g_exc_error;
8924: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8925: RAISE Fnd_Api.g_exc_unexpected_error;
8926: END IF;
8927:
8928: OPEN c_budget_required;
8929: FETCH c_budget_required INTO l_budget_required;
8957: ,x_msg_count => x_msg_count
8958: ,x_msg_data => x_msg_data
8959: );
8960:
8961: l_modifier_list_rec.start_date_active_first := Fnd_Api.g_miss_date;
8962: l_modifier_list_rec.end_date_active_first := Fnd_Api.g_miss_date;
8963: l_modifier_list_rec.start_date_active_second := Fnd_Api.g_miss_date;
8964: l_modifier_list_rec.end_date_active_second := Fnd_Api.g_miss_date;
8965:
8958: ,x_msg_data => x_msg_data
8959: );
8960:
8961: l_modifier_list_rec.start_date_active_first := Fnd_Api.g_miss_date;
8962: l_modifier_list_rec.end_date_active_first := Fnd_Api.g_miss_date;
8963: l_modifier_list_rec.start_date_active_second := Fnd_Api.g_miss_date;
8964: l_modifier_list_rec.end_date_active_second := Fnd_Api.g_miss_date;
8965:
8966: END IF;
8959: );
8960:
8961: l_modifier_list_rec.start_date_active_first := Fnd_Api.g_miss_date;
8962: l_modifier_list_rec.end_date_active_first := Fnd_Api.g_miss_date;
8963: l_modifier_list_rec.start_date_active_second := Fnd_Api.g_miss_date;
8964: l_modifier_list_rec.end_date_active_second := Fnd_Api.g_miss_date;
8965:
8966: END IF;
8967:
8960:
8961: l_modifier_list_rec.start_date_active_first := Fnd_Api.g_miss_date;
8962: l_modifier_list_rec.end_date_active_first := Fnd_Api.g_miss_date;
8963: l_modifier_list_rec.start_date_active_second := Fnd_Api.g_miss_date;
8964: l_modifier_list_rec.end_date_active_second := Fnd_Api.g_miss_date;
8965:
8966: END IF;
8967:
8968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8964: l_modifier_list_rec.end_date_active_second := Fnd_Api.g_miss_date;
8965:
8966: END IF;
8967:
8968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8969: RAISE Fnd_Api.g_exc_error;
8970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8971: RAISE Fnd_Api.g_exc_unexpected_error;
8972: END IF;
8965:
8966: END IF;
8967:
8968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8969: RAISE Fnd_Api.g_exc_error;
8970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8971: RAISE Fnd_Api.g_exc_unexpected_error;
8972: END IF;
8973: END IF;
8966: END IF;
8967:
8968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8969: RAISE Fnd_Api.g_exc_error;
8970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8971: RAISE Fnd_Api.g_exc_unexpected_error;
8972: END IF;
8973: END IF;
8974:
8967:
8968: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
8969: RAISE Fnd_Api.g_exc_error;
8970: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
8971: RAISE Fnd_Api.g_exc_unexpected_error;
8972: END IF;
8973: END IF;
8974:
8975: IF l_approval_type IS NULL AND (l_budget_required = 'N' OR l_budget_required IS NULL) THEN
8980:
8981: l_modifier_list_rec.offer_type := p_offer_type;
8982:
8983: IF p_modifier_list_rec.global_flag = 'Y' THEN
8984: IF p_modifier_list_rec.orig_org_id IS NOT NULL AND p_modifier_list_rec.orig_org_id <> fnd_api.g_miss_num THEN
8985: FND_MESSAGE.set_name('OZF', 'OZF_CLEAR_OU');
8986: FND_MSG_PUB.add;
8987: RAISE FND_API.g_exc_error;
8988: END IF;
8983: IF p_modifier_list_rec.global_flag = 'Y' THEN
8984: IF p_modifier_list_rec.orig_org_id IS NOT NULL AND p_modifier_list_rec.orig_org_id <> fnd_api.g_miss_num THEN
8985: FND_MESSAGE.set_name('OZF', 'OZF_CLEAR_OU');
8986: FND_MSG_PUB.add;
8987: RAISE FND_API.g_exc_error;
8988: END IF;
8989: END IF;
8990:
8991:
9006: IF (
9007: (
9008: (p_modifier_list_rec.modifier_operation = 'CREATE' )
9009: AND
9010: (p_modifier_list_rec.orig_org_id IS NULL OR p_modifier_list_rec.orig_org_id = FND_API.G_MISS_NUM)
9011: )
9012: OR
9013: (
9014: (p_modifier_list_rec.modifier_operation = 'UPDATE' )
9019: THEN
9020: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
9021: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORG_ID');
9022: FND_MSG_PUB.add;
9023: RAISE FND_API.g_exc_error;
9024: END IF;
9025: END IF;
9026: --dbms_output.put_line('calling process qp_ list header');
9027: process_qp_list_header(
9035: p_old_status_id => l_old_status_id,
9036: p_approval_type => l_approval_required,
9037: p_new_status_code => l_new_status_code
9038: );
9039: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9040: RAISE Fnd_Api.g_exc_error;
9041: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9042: RAISE Fnd_Api.g_exc_unexpected_error;
9043: END IF;
9036: p_approval_type => l_approval_required,
9037: p_new_status_code => l_new_status_code
9038: );
9039: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9040: RAISE Fnd_Api.g_exc_error;
9041: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9042: RAISE Fnd_Api.g_exc_unexpected_error;
9043: END IF;
9044:
9037: p_new_status_code => l_new_status_code
9038: );
9039: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9040: RAISE Fnd_Api.g_exc_error;
9041: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9042: RAISE Fnd_Api.g_exc_unexpected_error;
9043: END IF;
9044:
9045: debug_message('Operation is is :'|| p_modifier_list_rec.modifier_operation);
9038: );
9039: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9040: RAISE Fnd_Api.g_exc_error;
9041: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9042: RAISE Fnd_Api.g_exc_unexpected_error;
9043: END IF;
9044:
9045: debug_message('Operation is is :'|| p_modifier_list_rec.modifier_operation);
9046:
9056: ,x_msg_count => x_msg_count
9057: ,x_msg_data => x_msg_data
9058: ,p_offer_id => l_old_offer_id);
9059:
9060: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9061: RAISE Fnd_Api.g_exc_error;
9062: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9063: RAISE Fnd_Api.g_exc_unexpected_error;
9064: END IF;
9057: ,x_msg_data => x_msg_data
9058: ,p_offer_id => l_old_offer_id);
9059:
9060: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9061: RAISE Fnd_Api.g_exc_error;
9062: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9063: RAISE Fnd_Api.g_exc_unexpected_error;
9064: END IF;
9065: END IF;
9058: ,p_offer_id => l_old_offer_id);
9059:
9060: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9061: RAISE Fnd_Api.g_exc_error;
9062: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9063: RAISE Fnd_Api.g_exc_unexpected_error;
9064: END IF;
9065: END IF;
9066:
9059:
9060: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9061: RAISE Fnd_Api.g_exc_error;
9062: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9063: RAISE Fnd_Api.g_exc_unexpected_error;
9064: END IF;
9065: END IF;
9066:
9067: IF l_approval_type = 'THEME' THEN
9086: temp_modifier_list_rec.user_status_id := OZF_Utility_PVT.get_default_user_status('OZF_OFFER_STATUS','ACTIVE');
9087: temp_modifier_list_rec.status_code := 'ACTIVE';
9088: ELSE
9089: OZF_budgetapproval_pvt.budget_request_approval(
9090: p_init_msg_list => FND_API.G_FALSE
9091: ,p_api_version => l_api_version
9092: ,p_commit => FND_API.G_FALSE
9093: ,x_return_status => x_return_status
9094: ,x_msg_count => x_msg_count
9088: ELSE
9089: OZF_budgetapproval_pvt.budget_request_approval(
9090: p_init_msg_list => FND_API.G_FALSE
9091: ,p_api_version => l_api_version
9092: ,p_commit => FND_API.G_FALSE
9093: ,x_return_status => x_return_status
9094: ,x_msg_count => x_msg_count
9095: ,x_msg_data => x_msg_data
9096: ,p_object_type => 'OFFR'
9096: ,p_object_type => 'OFFR'
9097: ,p_object_id => temp_modifier_list_rec.qp_list_header_id
9098: ,x_status_code => l_status_code);
9099:
9100: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9101: RAISE Fnd_Api.g_exc_error;
9102: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9103: RAISE Fnd_Api.g_exc_unexpected_error;
9104: END IF;
9097: ,p_object_id => temp_modifier_list_rec.qp_list_header_id
9098: ,x_status_code => l_status_code);
9099:
9100: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9101: RAISE Fnd_Api.g_exc_error;
9102: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9103: RAISE Fnd_Api.g_exc_unexpected_error;
9104: END IF;
9105:
9098: ,x_status_code => l_status_code);
9099:
9100: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9101: RAISE Fnd_Api.g_exc_error;
9102: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9103: RAISE Fnd_Api.g_exc_unexpected_error;
9104: END IF;
9105:
9106: temp_modifier_list_rec.user_status_id := OZF_Utility_PVT.get_default_user_status('OZF_OFFER_STATUS',l_status_code);
9099:
9100: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9101: RAISE Fnd_Api.g_exc_error;
9102: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9103: RAISE Fnd_Api.g_exc_unexpected_error;
9104: END IF;
9105:
9106: temp_modifier_list_rec.user_status_id := OZF_Utility_PVT.get_default_user_status('OZF_OFFER_STATUS',l_status_code);
9107: temp_modifier_list_rec.status_code := l_status_code;
9111: END IF;
9112:
9113: END IF;
9114:
9115: IF p_modifier_list_rec.offer_operation <> FND_API.g_miss_char THEN
9116: process_ozf_offer(
9117: p_api_version => 1.0,
9118: p_init_msg_list => p_init_msg_list,
9119: x_return_status => x_return_status,
9122: p_modifier_list_rec => temp_modifier_list_rec,
9123: x_offer_id => l_offer_id
9124: );
9125:
9126: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9127: RAISE Fnd_Api.g_exc_error;
9128: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9129: RAISE Fnd_Api.g_exc_unexpected_error;
9130: END IF;
9123: x_offer_id => l_offer_id
9124: );
9125:
9126: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9127: RAISE Fnd_Api.g_exc_error;
9128: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9129: RAISE Fnd_Api.g_exc_unexpected_error;
9130: END IF;
9131: /*
9124: );
9125:
9126: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9127: RAISE Fnd_Api.g_exc_error;
9128: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9129: RAISE Fnd_Api.g_exc_unexpected_error;
9130: END IF;
9131: /*
9132: IF l_budget_req_count > 0 THEN
9125:
9126: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9127: RAISE Fnd_Api.g_exc_error;
9128: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9129: RAISE Fnd_Api.g_exc_unexpected_error;
9130: END IF;
9131: /*
9132: IF l_budget_req_count > 0 THEN
9133: OZF_budgetapproval_pvt.budget_request_approval(
9130: END IF;
9131: /*
9132: IF l_budget_req_count > 0 THEN
9133: OZF_budgetapproval_pvt.budget_request_approval(
9134: p_init_msg_list => FND_API.G_FALSE
9135: ,p_api_version => l_api_version
9136: ,p_commit => FND_API.G_FALSE
9137: ,x_return_status => x_return_status
9138: ,x_msg_count => x_msg_count
9132: IF l_budget_req_count > 0 THEN
9133: OZF_budgetapproval_pvt.budget_request_approval(
9134: p_init_msg_list => FND_API.G_FALSE
9135: ,p_api_version => l_api_version
9136: ,p_commit => FND_API.G_FALSE
9137: ,x_return_status => x_return_status
9138: ,x_msg_count => x_msg_count
9139: ,x_msg_data => x_msg_data
9140: ,p_object_type => 'OFFR'
9140: ,p_object_type => 'OFFR'
9141: ,p_object_id => temp_modifier_list_rec.qp_list_header_id
9142: ,x_status_code => l_status_code);
9143:
9144: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9145: RAISE Fnd_Api.g_exc_error;
9146: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9147: RAISE Fnd_Api.g_exc_unexpected_error;
9148: END IF;
9141: ,p_object_id => temp_modifier_list_rec.qp_list_header_id
9142: ,x_status_code => l_status_code);
9143:
9144: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9145: RAISE Fnd_Api.g_exc_error;
9146: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9147: RAISE Fnd_Api.g_exc_unexpected_error;
9148: END IF;
9149: END IF;
9142: ,x_status_code => l_status_code);
9143:
9144: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9145: RAISE Fnd_Api.g_exc_error;
9146: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9147: RAISE Fnd_Api.g_exc_unexpected_error;
9148: END IF;
9149: END IF;
9150: */
9143:
9144: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9145: RAISE Fnd_Api.g_exc_error;
9146: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9147: RAISE Fnd_Api.g_exc_unexpected_error;
9148: END IF;
9149: END IF;
9150: */
9151: -- If Offer is activated then Raise business event
9148: END IF;
9149: END IF;
9150: */
9151: -- If Offer is activated then Raise business event
9152: IF (p_modifier_list_rec.modifier_operation = 'UPDATE') AND (p_modifier_list_rec.user_status_id <> FND_API.g_miss_num)
9153: AND (p_modifier_list_rec.user_status_id <> l_old_status_id)
9154: THEN
9155: raise_offer_event(p_offer_id => temp_modifier_list_rec.qp_list_header_id );
9156: END IF;
9175: debug_message('GR: temp_modifier_list_rec.budget_source_type: ' || temp_modifier_list_rec.budget_source_type);
9176: debug_message('GR: temp_modifier_list_rec.budget_source_id: ' || temp_modifier_list_rec.budget_source_id);
9177:
9178: IF temp_modifier_list_rec.budget_source_id IS NOT NULL THEN
9179: IF temp_modifier_list_rec.offer_amount = Fnd_Api.g_miss_num THEN
9180: offer_budget(
9181: p_modifier_list_rec => temp_modifier_list_rec
9182: ,x_return_status => x_return_status
9183: ,x_msg_count => x_msg_count
9184: ,x_msg_data => x_msg_data
9185: ,p_operation => p_modifier_list_rec.modifier_operation
9186: );
9187:
9188: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9189: RAISE Fnd_Api.g_exc_error;
9190: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9191: RAISE Fnd_Api.g_exc_unexpected_error;
9192: END IF;
9185: ,p_operation => p_modifier_list_rec.modifier_operation
9186: );
9187:
9188: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9189: RAISE Fnd_Api.g_exc_error;
9190: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9191: RAISE Fnd_Api.g_exc_unexpected_error;
9192: END IF;
9193:
9186: );
9187:
9188: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9189: RAISE Fnd_Api.g_exc_error;
9190: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9191: RAISE Fnd_Api.g_exc_unexpected_error;
9192: END IF;
9193:
9194: -- END IF;
9187:
9188: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9189: RAISE Fnd_Api.g_exc_error;
9190: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9191: RAISE Fnd_Api.g_exc_unexpected_error;
9192: END IF;
9193:
9194: -- END IF;
9195: END IF;
9209:
9210: IF p_modifier_list_rec.offer_operation = 'UPDATE'
9211: AND p_modifier_list_rec.modifier_operation = 'UPDATE' THEN
9212:
9213: IF (p_modifier_list_rec.user_status_id <> FND_API.g_miss_num)
9214: AND (p_modifier_list_rec.user_status_id <> l_old_status_id) THEN
9215:
9216:
9217: IF l_new_status_code = 'ACTIVE' THEN
9258: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
9259: FND_MESSAGE.set_name('OZF', 'OZF_OFFR_NO_DISC_LINES');
9260: FND_MSG_PUB.add;
9261: END IF;
9262: RAISE FND_API.g_exc_error;
9263: END IF;
9264: END IF;
9265: -- julou end bug 2122722
9266: -- julou BREQ
9266: -- julou BREQ
9267: IF l_emptyDiscStruct = '1' THEN
9268: FND_MESSAGE.set_name('OZF', 'OZF_OFFR_EMPTY_DISC_STRUCT');
9269: FND_MSG_PUB.add;
9270: RAISE FND_API.g_exc_error;
9271: END IF;
9272:
9273:
9274: IF l_budget_required = 'Y' THEN
9276: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
9277: FND_MESSAGE.set_name('OZF', 'OZF_OFFR_NO_BUDGET_REQUEST');
9278: FND_MSG_PUB.add;
9279: END IF;
9280: RAISE FND_API.g_exc_error;
9281: END IF;
9282: END IF;
9283:
9284: -- validate scan data offer budgets
9282: END IF;
9283:
9284: -- validate scan data offer budgets
9285: IF p_modifier_list_rec.offer_type = 'SCAN_DATA' THEN
9286: validate_scandata_budget(p_init_msg_list => FND_API.G_FALSE
9287: ,p_api_version => l_api_version
9288: ,x_return_status => x_return_status
9289: ,x_msg_count => x_msg_count
9290: ,x_msg_data => x_msg_data
9289: ,x_msg_count => x_msg_count
9290: ,x_msg_data => x_msg_data
9291: ,p_qp_list_header_id => p_modifier_list_rec.qp_list_header_id);
9292:
9293: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9294: RAISE Fnd_Api.g_exc_error;
9295: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9296: RAISE Fnd_Api.g_exc_unexpected_error;
9297: END IF;
9290: ,x_msg_data => x_msg_data
9291: ,p_qp_list_header_id => p_modifier_list_rec.qp_list_header_id);
9292:
9293: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9294: RAISE Fnd_Api.g_exc_error;
9295: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9296: RAISE Fnd_Api.g_exc_unexpected_error;
9297: END IF;
9298: END IF;
9291: ,p_qp_list_header_id => p_modifier_list_rec.qp_list_header_id);
9292:
9293: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9294: RAISE Fnd_Api.g_exc_error;
9295: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9296: RAISE Fnd_Api.g_exc_unexpected_error;
9297: END IF;
9298: END IF;
9299: END IF;
9292:
9293: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9294: RAISE Fnd_Api.g_exc_error;
9295: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9296: RAISE Fnd_Api.g_exc_unexpected_error;
9297: END IF;
9298: END IF;
9299: END IF;
9300:
9305: -- enhancement for budget w/o approval scenario
9306: IF l_budget_required = 'Y' AND l_new_status_code = 'ACTIVE' THEN
9307: IF l_old_status_code <> 'PENDING_ACTIVE' THEN
9308: OZF_budgetapproval_pvt.budget_request_approval(
9309: p_init_msg_list => FND_API.G_FALSE
9310: ,p_api_version => l_api_version
9311: ,p_commit => FND_API.G_FALSE
9312: ,x_return_status => x_return_status
9313: ,x_msg_count => x_msg_count
9307: IF l_old_status_code <> 'PENDING_ACTIVE' THEN
9308: OZF_budgetapproval_pvt.budget_request_approval(
9309: p_init_msg_list => FND_API.G_FALSE
9310: ,p_api_version => l_api_version
9311: ,p_commit => FND_API.G_FALSE
9312: ,x_return_status => x_return_status
9313: ,x_msg_count => x_msg_count
9314: ,x_msg_data => x_msg_data
9315: ,p_object_type => 'OFFR'
9315: ,p_object_type => 'OFFR'
9316: ,p_object_id => p_modifier_list_rec.qp_list_header_id
9317: ,x_status_code => l_status_code);
9318:
9319: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9320: RAISE Fnd_Api.g_exc_error;
9321: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9322: RAISE Fnd_Api.g_exc_unexpected_error;
9323: END IF;
9316: ,p_object_id => p_modifier_list_rec.qp_list_header_id
9317: ,x_status_code => l_status_code);
9318:
9319: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9320: RAISE Fnd_Api.g_exc_error;
9321: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9322: RAISE Fnd_Api.g_exc_unexpected_error;
9323: END IF;
9324:
9317: ,x_status_code => l_status_code);
9318:
9319: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9320: RAISE Fnd_Api.g_exc_error;
9321: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9322: RAISE Fnd_Api.g_exc_unexpected_error;
9323: END IF;
9324:
9325: temp_modifier_list_rec.user_status_id := OZF_Utility_PVT.get_default_user_status('OZF_OFFER_STATUS',l_status_code);
9318:
9319: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9320: RAISE Fnd_Api.g_exc_error;
9321: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9322: RAISE Fnd_Api.g_exc_unexpected_error;
9323: END IF;
9324:
9325: temp_modifier_list_rec.user_status_id := OZF_Utility_PVT.get_default_user_status('OZF_OFFER_STATUS',l_status_code);
9326: temp_modifier_list_rec.status_code := l_status_code;
9333: -- called inside itself. no further action required here.
9334: -- if from PENDING_ACTIVE to ACTIVE, no budget validation is called.
9335: IF l_old_status_code = 'PENDING_ACTIVE' OR l_status_code = 'ACTIVE' THEN
9336: Activate_Offer_over(
9337: p_init_msg_list => FND_API.G_FALSE
9338: ,p_api_version => l_api_version
9339: ,p_commit => FND_API.G_FALSE
9340: ,x_return_status => x_return_status
9341: ,x_msg_count => x_msg_count
9335: IF l_old_status_code = 'PENDING_ACTIVE' OR l_status_code = 'ACTIVE' THEN
9336: Activate_Offer_over(
9337: p_init_msg_list => FND_API.G_FALSE
9338: ,p_api_version => l_api_version
9339: ,p_commit => FND_API.G_FALSE
9340: ,x_return_status => x_return_status
9341: ,x_msg_count => x_msg_count
9342: ,x_msg_data => x_msg_data
9343: ,p_called_from => 'R'
9344: ,p_offer_rec => temp_modifier_list_rec
9345: ,x_amount_error => l_amount_error
9346: );
9347: debug_message('Activate_Offer_over :'|| x_return_status);
9348: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9349: RAISE Fnd_Api.g_exc_error;
9350: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9351: RAISE Fnd_Api.g_exc_unexpected_error;
9352: END IF;
9345: ,x_amount_error => l_amount_error
9346: );
9347: debug_message('Activate_Offer_over :'|| x_return_status);
9348: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9349: RAISE Fnd_Api.g_exc_error;
9350: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9351: RAISE Fnd_Api.g_exc_unexpected_error;
9352: END IF;
9353: ELSIF l_status_code = 'DRAFT' THEN
9346: );
9347: debug_message('Activate_Offer_over :'|| x_return_status);
9348: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9349: RAISE Fnd_Api.g_exc_error;
9350: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9351: RAISE Fnd_Api.g_exc_unexpected_error;
9352: END IF;
9353: ELSIF l_status_code = 'DRAFT' THEN
9354: -- CP validation fails. update offer to DRAFT
9347: debug_message('Activate_Offer_over :'|| x_return_status);
9348: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9349: RAISE Fnd_Api.g_exc_error;
9350: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9351: RAISE Fnd_Api.g_exc_unexpected_error;
9352: END IF;
9353: ELSIF l_status_code = 'DRAFT' THEN
9354: -- CP validation fails. update offer to DRAFT
9355: UPDATE ozf_offers
9365: validate_offer_approval
9366: ( x_return_status => x_return_status
9367: ,x_msg_count => x_msg_count
9368: ,x_msg_data => x_msg_data
9369: ,p_init_msg_list => FND_API.G_FALSE
9370: ,p_modifier_list_rec => p_modifier_list_rec );
9371:
9372: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9373: RAISE Fnd_Api.g_exc_error;
9368: ,x_msg_data => x_msg_data
9369: ,p_init_msg_list => FND_API.G_FALSE
9370: ,p_modifier_list_rec => p_modifier_list_rec );
9371:
9372: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9373: RAISE Fnd_Api.g_exc_error;
9374: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9375: RAISE Fnd_Api.g_exc_unexpected_error;
9376: END IF;
9369: ,p_init_msg_list => FND_API.G_FALSE
9370: ,p_modifier_list_rec => p_modifier_list_rec );
9371:
9372: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9373: RAISE Fnd_Api.g_exc_error;
9374: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9375: RAISE Fnd_Api.g_exc_unexpected_error;
9376: END IF;
9377:
9370: ,p_modifier_list_rec => p_modifier_list_rec );
9371:
9372: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9373: RAISE Fnd_Api.g_exc_error;
9374: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9375: RAISE Fnd_Api.g_exc_unexpected_error;
9376: END IF;
9377:
9378: ams_approval_pvt.StartProcess(
9371:
9372: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9373: RAISE Fnd_Api.g_exc_error;
9374: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9375: RAISE Fnd_Api.g_exc_unexpected_error;
9376: END IF;
9377:
9378: ams_approval_pvt.StartProcess(
9379: p_activity_type => 'OFFR',
9387: p_workflowprocess => 'AMS_APPROVAL',
9388: p_item_type => 'AMSAPRV');
9389: ELSE
9390: Activate_Offer_over(
9391: p_init_msg_list => FND_API.G_FALSE
9392: ,p_api_version => l_api_version
9393: ,p_commit => FND_API.G_FALSE
9394: ,x_return_status => x_return_status
9395: ,x_msg_count => x_msg_count
9389: ELSE
9390: Activate_Offer_over(
9391: p_init_msg_list => FND_API.G_FALSE
9392: ,p_api_version => l_api_version
9393: ,p_commit => FND_API.G_FALSE
9394: ,x_return_status => x_return_status
9395: ,x_msg_count => x_msg_count
9396: ,x_msg_data => x_msg_data
9397: ,p_called_from => 'R'
9398: ,p_offer_rec => temp_modifier_list_rec
9399: ,x_amount_error => l_amount_error
9400: );
9401:
9402: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9403: RAISE Fnd_Api.g_exc_error;
9404: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9405: RAISE Fnd_Api.g_exc_unexpected_error;
9406: END IF;
9399: ,x_amount_error => l_amount_error
9400: );
9401:
9402: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9403: RAISE Fnd_Api.g_exc_error;
9404: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9405: RAISE Fnd_Api.g_exc_unexpected_error;
9406: END IF;
9407: END IF;
9400: );
9401:
9402: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9403: RAISE Fnd_Api.g_exc_error;
9404: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9405: RAISE Fnd_Api.g_exc_unexpected_error;
9406: END IF;
9407: END IF;
9408: ELSIF l_approval_type = 'THEME' THEN
9401:
9402: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9403: RAISE Fnd_Api.g_exc_error;
9404: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9405: RAISE Fnd_Api.g_exc_unexpected_error;
9406: END IF;
9407: END IF;
9408: ELSIF l_approval_type = 'THEME' THEN
9409: ams_approval_pvt.StartProcess(
9425: IF (p_modifier_list_rec.modifier_operation ='CREATE')
9426: OR
9427: (p_modifier_list_rec.modifier_operation ='UPDATE' AND get_campaign_count(p_modifier_list_rec.qp_list_header_id) < 1)
9428: THEN
9429: IF p_modifier_list_rec.offer_used_by_id <> Fnd_Api.g_miss_num
9430: AND p_modifier_list_rec.offer_used_by_id IS NOT NULL
9431: THEN
9432:
9433: offer_object_usage(
9436: ,x_msg_count => x_msg_count
9437: ,x_msg_data => x_msg_data
9438: );
9439:
9440: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9441: RAISE Fnd_Api.g_exc_error;
9442: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9443: RAISE Fnd_Api.g_exc_unexpected_error;
9444: END IF;
9437: ,x_msg_data => x_msg_data
9438: );
9439:
9440: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9441: RAISE Fnd_Api.g_exc_error;
9442: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9443: RAISE Fnd_Api.g_exc_unexpected_error;
9444: END IF;
9445: END IF;
9438: );
9439:
9440: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9441: RAISE Fnd_Api.g_exc_error;
9442: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9443: RAISE Fnd_Api.g_exc_unexpected_error;
9444: END IF;
9445: END IF;
9446: END IF;
9439:
9440: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9441: RAISE Fnd_Api.g_exc_error;
9442: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9443: RAISE Fnd_Api.g_exc_unexpected_error;
9444: END IF;
9445: END IF;
9446: END IF;
9447:
9458: IF (p_modifier_list_rec.modifier_operation ='CREATE')
9459: OR
9460: (p_modifier_list_rec.modifier_operation ='UPDATE' AND get_budget_source_count(p_modifier_list_rec.qp_list_header_id) < 1)
9461: THEN
9462: IF (temp_modifier_list_rec.budget_source_id <> Fnd_Api.g_miss_num
9463: AND temp_modifier_list_rec.budget_source_id IS NOT NULL )
9464: AND ( p_modifier_list_rec.offer_amount <> Fnd_Api.g_miss_num
9465: AND p_modifier_list_rec.offer_amount IS NOT NULL
9466: )
9460: (p_modifier_list_rec.modifier_operation ='UPDATE' AND get_budget_source_count(p_modifier_list_rec.qp_list_header_id) < 1)
9461: THEN
9462: IF (temp_modifier_list_rec.budget_source_id <> Fnd_Api.g_miss_num
9463: AND temp_modifier_list_rec.budget_source_id IS NOT NULL )
9464: AND ( p_modifier_list_rec.offer_amount <> Fnd_Api.g_miss_num
9465: AND p_modifier_list_rec.offer_amount IS NOT NULL
9466: )
9467:
9468: THEN
9477: END IF;
9478:
9479:
9480:
9481: -- x_return_status := Fnd_Api.g_ret_sts_error;
9482: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9483: RAISE Fnd_Api.g_exc_error;
9484: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9485: RAISE Fnd_Api.g_exc_unexpected_error;
9478:
9479:
9480:
9481: -- x_return_status := Fnd_Api.g_ret_sts_error;
9482: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9483: RAISE Fnd_Api.g_exc_error;
9484: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9485: RAISE Fnd_Api.g_exc_unexpected_error;
9486: END IF;
9479:
9480:
9481: -- x_return_status := Fnd_Api.g_ret_sts_error;
9482: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9483: RAISE Fnd_Api.g_exc_error;
9484: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9485: RAISE Fnd_Api.g_exc_unexpected_error;
9486: END IF;
9487:
9480:
9481: -- x_return_status := Fnd_Api.g_ret_sts_error;
9482: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9483: RAISE Fnd_Api.g_exc_error;
9484: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9485: RAISE Fnd_Api.g_exc_unexpected_error;
9486: END IF;
9487:
9488: debug_message('Offer Type is : '|| p_offer_type);
9481: -- x_return_status := Fnd_Api.g_ret_sts_error;
9482: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9483: RAISE Fnd_Api.g_exc_error;
9484: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9485: RAISE Fnd_Api.g_exc_unexpected_error;
9486: END IF;
9487:
9488: debug_message('Offer Type is : '|| p_offer_type);
9489: IF p_offer_type NOT IN ('LUMPSUM','SCAN_DATA', 'VOLUME_OFFER', 'NET_ACCRUAL') THEN
9487:
9488: debug_message('Offer Type is : '|| p_offer_type);
9489: IF p_offer_type NOT IN ('LUMPSUM','SCAN_DATA', 'VOLUME_OFFER', 'NET_ACCRUAL') THEN
9490: IF p_modifier_list_rec.modifier_operation IN ('CREATE','UPDATE') THEN
9491: IF (p_modifier_list_rec.ql_qualifier_id <> Fnd_Api.g_miss_num
9492: AND p_modifier_list_rec.ql_qualifier_id IS NOT NULL)
9493: OR
9494: (
9495: p_modifier_list_rec.sales_method_flag IS NOT NULL
9493: OR
9494: (
9495: p_modifier_list_rec.sales_method_flag IS NOT NULL
9496: AND
9497: p_modifier_list_rec.sales_method_flag <> Fnd_Api.g_miss_char
9498: )
9499: THEN
9500: offer_qualifier(
9501: p_modifier_list_rec => temp_modifier_list_rec
9503: ,x_msg_count => x_msg_count
9504: ,x_msg_data => x_msg_data
9505: );
9506:
9507: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9508: RAISE Fnd_Api.g_exc_error;
9509: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9510: RAISE Fnd_Api.g_exc_unexpected_error;
9511: END IF;
9504: ,x_msg_data => x_msg_data
9505: );
9506:
9507: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9508: RAISE Fnd_Api.g_exc_error;
9509: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9510: RAISE Fnd_Api.g_exc_unexpected_error;
9511: END IF;
9512:
9505: );
9506:
9507: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9508: RAISE Fnd_Api.g_exc_error;
9509: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9510: RAISE Fnd_Api.g_exc_unexpected_error;
9511: END IF;
9512:
9513: END IF; -- ql_qualifier_id is not null
9506:
9507: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9508: RAISE Fnd_Api.g_exc_error;
9509: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9510: RAISE Fnd_Api.g_exc_unexpected_error;
9511: END IF;
9512:
9513: END IF; -- ql_qualifier_id is not null
9514:
9514:
9515: END IF; -- operation
9516: ELSIF p_offer_type = 'NET_ACCRUAL' THEN
9517: IF p_modifier_list_rec.na_qualifier_type IS NOT NULL
9518: AND p_modifier_list_rec.na_qualifier_type <> fnd_api.g_miss_char
9519: AND p_modifier_list_rec.na_qualifier_id IS NOT NULL
9520: AND p_modifier_list_rec.na_qualifier_id <> fnd_api.g_miss_num
9521: THEN
9522: /*
9516: ELSIF p_offer_type = 'NET_ACCRUAL' THEN
9517: IF p_modifier_list_rec.na_qualifier_type IS NOT NULL
9518: AND p_modifier_list_rec.na_qualifier_type <> fnd_api.g_miss_char
9519: AND p_modifier_list_rec.na_qualifier_id IS NOT NULL
9520: AND p_modifier_list_rec.na_qualifier_id <> fnd_api.g_miss_num
9521: THEN
9522: /*
9523: IF p_modifier_list_rec.na_qualifier_type = 'CUSTOMER' THEN
9524: l_na_qual_context := 'CUSTOMER';
9591: ,x_msg_data => x_msg_data
9592: ,p_modifier_list_rec => l_modifier_list_rec
9593: );
9594:
9595: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9596: RAISE Fnd_Api.g_exc_error;
9597: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9598: RAISE Fnd_Api.g_exc_unexpected_error;
9599: END IF;
9592: ,p_modifier_list_rec => l_modifier_list_rec
9593: );
9594:
9595: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9596: RAISE Fnd_Api.g_exc_error;
9597: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9598: RAISE Fnd_Api.g_exc_unexpected_error;
9599: END IF;
9600:
9593: );
9594:
9595: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9596: RAISE Fnd_Api.g_exc_error;
9597: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9598: RAISE Fnd_Api.g_exc_unexpected_error;
9599: END IF;
9600:
9601:
9594:
9595: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9596: RAISE Fnd_Api.g_exc_error;
9597: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9598: RAISE Fnd_Api.g_exc_unexpected_error;
9599: END IF;
9600:
9601:
9602: END IF; -- OFFER_TYPE
9615: x_modifier_line_tbl => v_modifier_line_tbl,
9616: x_error_location => x_error_location
9617: );
9618: debug_message('process_qp_list_lines x_return_status '||x_return_status);
9619: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9620: RAISE Fnd_Api.g_exc_error;
9621: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9622: RAISE Fnd_Api.g_exc_unexpected_error;
9623: END IF;
9616: x_error_location => x_error_location
9617: );
9618: debug_message('process_qp_list_lines x_return_status '||x_return_status);
9619: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9620: RAISE Fnd_Api.g_exc_error;
9621: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9622: RAISE Fnd_Api.g_exc_unexpected_error;
9623: END IF;
9624:
9617: );
9618: debug_message('process_qp_list_lines x_return_status '||x_return_status);
9619: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9620: RAISE Fnd_Api.g_exc_error;
9621: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9622: RAISE Fnd_Api.g_exc_unexpected_error;
9623: END IF;
9624:
9625:
9618: debug_message('process_qp_list_lines x_return_status '||x_return_status);
9619: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
9620: RAISE Fnd_Api.g_exc_error;
9621: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
9622: RAISE Fnd_Api.g_exc_unexpected_error;
9623: END IF;
9624:
9625:
9626: END IF;
9643:
9644: Fnd_Msg_Pub.Count_AND_Get
9645: ( p_count => x_msg_count,
9646: p_data => x_msg_data,
9647: p_encoded => Fnd_Api.G_FALSE
9648: );
9649: IF p_commit = Fnd_Api.g_true THEN
9650: COMMIT WORK;
9651: END IF;
9645: ( p_count => x_msg_count,
9646: p_data => x_msg_data,
9647: p_encoded => Fnd_Api.G_FALSE
9648: );
9649: IF p_commit = Fnd_Api.g_true THEN
9650: COMMIT WORK;
9651: END IF;
9652: EXCEPTION
9653: WHEN Fnd_Api.G_EXC_ERROR THEN
9649: IF p_commit = Fnd_Api.g_true THEN
9650: COMMIT WORK;
9651: END IF;
9652: EXCEPTION
9653: WHEN Fnd_Api.G_EXC_ERROR THEN
9654: x_return_status := Fnd_Api.g_ret_sts_error ;
9655: ROLLBACK TO process_modifiers;
9656: Fnd_Msg_Pub.Count_AND_Get
9657: ( p_count => x_msg_count,
9650: COMMIT WORK;
9651: END IF;
9652: EXCEPTION
9653: WHEN Fnd_Api.G_EXC_ERROR THEN
9654: x_return_status := Fnd_Api.g_ret_sts_error ;
9655: ROLLBACK TO process_modifiers;
9656: Fnd_Msg_Pub.Count_AND_Get
9657: ( p_count => x_msg_count,
9658: p_data => x_msg_data,
9655: ROLLBACK TO process_modifiers;
9656: Fnd_Msg_Pub.Count_AND_Get
9657: ( p_count => x_msg_count,
9658: p_data => x_msg_data,
9659: p_encoded => Fnd_Api.G_FALSE
9660: );
9661: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
9662: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
9663: ROLLBACK TO process_modifiers;
9657: ( p_count => x_msg_count,
9658: p_data => x_msg_data,
9659: p_encoded => Fnd_Api.G_FALSE
9660: );
9661: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
9662: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
9663: ROLLBACK TO process_modifiers;
9664: Fnd_Msg_Pub.Count_AND_Get
9665: ( p_count => x_msg_count,
9658: p_data => x_msg_data,
9659: p_encoded => Fnd_Api.G_FALSE
9660: );
9661: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
9662: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
9663: ROLLBACK TO process_modifiers;
9664: Fnd_Msg_Pub.Count_AND_Get
9665: ( p_count => x_msg_count,
9666: p_data => x_msg_data,
9663: ROLLBACK TO process_modifiers;
9664: Fnd_Msg_Pub.Count_AND_Get
9665: ( p_count => x_msg_count,
9666: p_data => x_msg_data,
9667: p_encoded => Fnd_Api.G_FALSE
9668: );
9669: WHEN OTHERS THEN
9670: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
9671: ROLLBACK TO process_modifiers;
9666: p_data => x_msg_data,
9667: p_encoded => Fnd_Api.G_FALSE
9668: );
9669: WHEN OTHERS THEN
9670: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
9671: ROLLBACK TO process_modifiers;
9672: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
9673: THEN
9674: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
9675: END IF;
9676: Fnd_Msg_Pub.Count_AND_Get
9677: ( p_count => x_msg_count,
9678: p_data => x_msg_data,
9679: p_encoded => Fnd_Api.G_FALSE
9680: );
9681: END;
9682:
9683:
9728: FROM ozf_offer_discount_products a, ozf_offer_discount_lines b
9729: WHERE a.offer_discount_line_id = b.offer_discount_line_id
9730: AND a.off_discount_product_id = cp_offDiscountProductId;
9731: BEGIN
9732: x_return_status := FND_API.G_RET_STS_SUCCESS;
9733: FOR l_products IN c_products(cp_offDiscountProductId => p_offDiscountProductId) LOOP
9734: x_pricingAttrRec.product_attribute_context := l_products.product_context;
9735: x_pricingAttrRec.product_attribute := l_products.product_attribute;
9736: x_pricingAttrRec.product_attr_value := l_products.product_attr_value;
9792: , p_qpListHeaderId IN NUMBER
9793: )
9794: IS
9795: BEGIN
9796: x_return_status := FND_API.G_RET_STS_SUCCESS;
9797: x_modifiersRec.operation := QP_GLOBALS.G_OPR_CREATE;
9798: x_modifiersRec.list_header_id := p_qpListHeaderId;
9799: x_modifiersRec.list_line_type_code := 'PBH';
9800: x_modifiersRec.proration_type_code := 'N';
9830: FROM ozf_offer_discount_lines a, ozf_offer_discount_products b
9831: WHERE a.offer_discount_line_id = b.offer_discount_line_id
9832: AND b.off_discount_product_id = cp_offDiscountProductId;
9833: BEGIN
9834: x_return_status := FND_API.G_RET_STS_SUCCESS;
9835: FOR l_discounts IN c_discounts(cp_offDiscountProductId => p_offDiscountProductId) LOOP
9836: x_modifiersRec.operation := QP_GLOBALS.G_OPR_CREATE;
9837: x_modifiersRec.list_header_id := p_qpListHeaderId;
9838: x_modifiersRec.accrual_flag := getVOAccrualFlag(p_qpListHeaderId => p_qpListHeaderId );
9880: AND c.off_discount_product_id = cp_offDiscountProductId
9881: AND a.offer_discount_line_id = cp_offerDiscountLineId;
9882:
9883: BEGIN
9884: x_return_status := FND_API.G_RET_STS_SUCCESS;
9885: FOR l_discounts IN c_discounts(cp_offerDiscountLineId => p_offerDiscountLineId , cp_offDiscountProductId => p_offDiscountProductId) LOOP
9886: x_modifiersRec.operation := QP_GLOBALS.G_OPR_CREATE;
9887: x_modifiersRec.list_header_id := p_qpListHeaderId;
9888: x_modifiersRec.accrual_flag := getVOAccrualFlag(p_qpListHeaderId => p_qpListHeaderId );
9951: -- initialize
9952: -- loop thru all discounts records
9953: -- populate regular discount data
9954: -- process for apply discount flag
9955: x_return_status := FND_API.G_RET_STS_SUCCESS;
9956: i := 1;
9957: IF getMinVolume(p_offDiscountProductId => p_offDiscountProductId) <> 0 THEN
9958: populateZeroDiscounts
9959: (
10000: BEGIN
10001: -- initialize
10002: -- populate PBH data
10003: -- populate DIS data
10004: x_return_status := FND_API.G_RET_STS_SUCCESS;
10005: populatePBHRec
10006: (
10007: x_return_status => x_return_status
10008: ,x_msg_count => x_msg_count
10010: , x_modifiersRec => l_modifiersRec
10011: , p_qpListHeaderId => p_qp_list_header_id
10012: , p_offDiscountProductId => p_offDiscountProductId
10013: );
10014: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10015: RAISE FND_API.G_EXC_ERROR;
10016: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10017: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10018: END IF;
10011: , p_qpListHeaderId => p_qp_list_header_id
10012: , p_offDiscountProductId => p_offDiscountProductId
10013: );
10014: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10015: RAISE FND_API.G_EXC_ERROR;
10016: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10017: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10018: END IF;
10019: populateDISData
10012: , p_offDiscountProductId => p_offDiscountProductId
10013: );
10014: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10015: RAISE FND_API.G_EXC_ERROR;
10016: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10017: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10018: END IF;
10019: populateDISData
10020: (
10013: );
10014: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10015: RAISE FND_API.G_EXC_ERROR;
10016: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10017: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10018: END IF;
10019: populateDISData
10020: (
10021: x_return_status => x_return_status
10024: , x_modifiersTbl => v_modifiersTbl
10025: , p_qpListHeaderId => p_qp_list_header_id
10026: , p_offDiscountProductId => p_offDiscountProductId
10027: );
10028: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10029: RAISE FND_API.G_EXC_ERROR;
10030: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10032: END IF;
10025: , p_qpListHeaderId => p_qp_list_header_id
10026: , p_offDiscountProductId => p_offDiscountProductId
10027: );
10028: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10029: RAISE FND_API.G_EXC_ERROR;
10030: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10032: END IF;
10033:
10026: , p_offDiscountProductId => p_offDiscountProductId
10027: );
10028: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10029: RAISE FND_API.G_EXC_ERROR;
10030: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10032: END IF;
10033:
10034: x_modifiersTbl(1) := l_modifiersRec;
10027: );
10028: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10029: RAISE FND_API.G_EXC_ERROR;
10030: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10031: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10032: END IF;
10033:
10034: x_modifiersTbl(1) := l_modifiersRec;
10035: i := 2;
10057: SELECT volume_from, volume_to
10058: FROM ozf_offer_discount_lines
10059: WHERE offer_discount_line_id = cp_offerDiscountLineId ;
10060: BEGIN
10061: x_return_status := FND_API.G_RET_STS_SUCCESS;
10062: IF p_offerDiscountLineId = -1 THEN
10063: x_pricingAttrRec.pricing_attr_value_from := 0;
10064: x_pricingAttrRec.pricing_attr_value_to := getMinVolume(p_offDiscountProductId => p_offDiscountProductId);
10065: ELSE
10085: -- initialise
10086: -- loop thru modifiers tbl
10087: --- for list_line_type_code = PBH simply assign the pricing attr rec
10088: -- for list_line_type_code = DIS populate the volume from and volume to in the pricing attr table
10089: x_return_status := FND_API.G_RET_STS_SUCCESS;
10090: IF nvl(x_modifiersTbl.count,0) > 0 THEN
10091: FOR i in x_modifiersTbl.first .. x_modifiersTbl.last LOOP
10092: IF x_modifiersTbl.exists(i) THEN
10093: x_pricingAttrTbl(i) := x_pricingAttrRec;
10101: ,p_offerDiscountLineId => to_number(x_modifiersTbl(i).attribute1)
10102: , p_offDiscountProductId => p_offDiscountProductId
10103: ,x_pricingAttrRec => x_pricingAttrTbl(i)
10104: );
10105: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10106: RAISE FND_API.G_EXC_ERROR;
10107: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10109: END IF;
10102: , p_offDiscountProductId => p_offDiscountProductId
10103: ,x_pricingAttrRec => x_pricingAttrTbl(i)
10104: );
10105: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10106: RAISE FND_API.G_EXC_ERROR;
10107: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10109: END IF;
10110: END IF;
10103: ,x_pricingAttrRec => x_pricingAttrTbl(i)
10104: );
10105: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10106: RAISE FND_API.G_EXC_ERROR;
10107: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10109: END IF;
10110: END IF;
10111: END IF;
10104: );
10105: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10106: RAISE FND_API.G_EXC_ERROR;
10107: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10109: END IF;
10110: END IF;
10111: END IF;
10112: END LOOP;
10129: AND a.excluder_flag = 'Y'
10130: AND b.qp_list_header_id = cp_qpListHeaderId;
10131: i NUMBER;
10132: BEGIN
10133: x_return_status := FND_API.G_RET_STS_SUCCESS;
10134: i := nvl(x_pricingAttrTbl.count,0) +1;
10135: FOR l_exclusions IN c_exclusions(cp_qpListHeaderId => p_qpListHeaderId) LOOP
10136: x_pricingAttrTbl(i).product_attribute_context := 'ITEM';
10137: x_pricingAttrTbl(i).product_attribute := l_exclusions.product_attribute;
10154: IS
10155: l_discRec OZF_QP_DISCOUNTS_PVT.qp_discount_rec_type;
10156: l_qpDiscountId NUMBER;
10157: BEGIN
10158: x_return_status := FND_API.G_RET_STS_SUCCESS;
10159: IF nvl(p_modifiersTbl.count,0) > 0 THEN
10160: FOR i in p_modifiersTbl.first .. p_modifiersTbl.last LOOP
10161: IF p_modifiersTbl.exists(i) THEN
10162: IF p_modifiersTbl(i).attribute1 <> '-1' THEN
10164: l_discRec.offer_discount_line_id := to_number(p_modifiersTbl(i).attribute1);
10165: OZF_QP_DISCOUNTS_PVT.Create_ozf_qp_discount
10166: (
10167: p_api_version_number => 1.0
10168: , p_init_msg_list => FND_API.G_FALSE
10169: , p_commit => FND_API.G_FALSE
10170: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10171: , x_return_status => x_return_status
10172: , x_msg_count => x_msg_count
10165: OZF_QP_DISCOUNTS_PVT.Create_ozf_qp_discount
10166: (
10167: p_api_version_number => 1.0
10168: , p_init_msg_list => FND_API.G_FALSE
10169: , p_commit => FND_API.G_FALSE
10170: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10171: , x_return_status => x_return_status
10172: , x_msg_count => x_msg_count
10173: , x_msg_data => x_msg_data
10166: (
10167: p_api_version_number => 1.0
10168: , p_init_msg_list => FND_API.G_FALSE
10169: , p_commit => FND_API.G_FALSE
10170: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10171: , x_return_status => x_return_status
10172: , x_msg_count => x_msg_count
10173: , x_msg_data => x_msg_data
10174: , p_qp_disc_rec => l_discRec
10173: , x_msg_data => x_msg_data
10174: , p_qp_disc_rec => l_discRec
10175: , x_qp_discount_id => l_qpDiscountId
10176: );
10177: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10178: return;
10179: END IF;
10180: END IF;
10181: END IF;
10194: IS
10195: l_prodRec OZF_QP_PRODUCTS_PVT.qp_product_rec_type;
10196: l_qpProductId NUMBER;
10197: BEGIN
10198: x_return_status := FND_API.G_RET_STS_SUCCESS;
10199: IF nvl(p_pricingAttrTbl.count,0) > 0 THEN
10200: FOR i in p_pricingAttrTbl.first .. p_pricingAttrTbl.last LOOP
10201: IF p_pricingAttrTbl.exists(i) THEN
10202: IF p_pricingAttrTbl(i).excluder_flag <> 'Y' THEN
10204: l_prodRec.off_discount_product_id := p_offDiscountProductId;
10205: OZF_QP_PRODUCTS_PVT.Create_ozf_qp_product
10206: (
10207: p_api_version_number => 1.0
10208: , p_init_msg_list => FND_API.G_FALSE
10209: , p_commit => FND_API.G_FALSE
10210: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10211: , x_return_status => x_return_status
10212: , x_msg_count => x_msg_count
10205: OZF_QP_PRODUCTS_PVT.Create_ozf_qp_product
10206: (
10207: p_api_version_number => 1.0
10208: , p_init_msg_list => FND_API.G_FALSE
10209: , p_commit => FND_API.G_FALSE
10210: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10211: , x_return_status => x_return_status
10212: , x_msg_count => x_msg_count
10213: , x_msg_data => x_msg_data
10206: (
10207: p_api_version_number => 1.0
10208: , p_init_msg_list => FND_API.G_FALSE
10209: , p_commit => FND_API.G_FALSE
10210: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
10211: , x_return_status => x_return_status
10212: , x_msg_count => x_msg_count
10213: , x_msg_data => x_msg_data
10214: , p_qp_product_rec => l_prodRec
10213: , x_msg_data => x_msg_data
10214: , p_qp_product_rec => l_prodRec
10215: , x_qp_product_id => l_qpProductId
10216: );
10217: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10218: return;
10219: END IF;
10220: END IF;
10221: END IF;
10236: BEGIN
10237: -- initialize
10238: -- relate discounts
10239: -- relate products
10240: x_return_status := FND_API.G_RET_STS_SUCCESS;
10241: relateOzfQpDiscounts
10242: (
10243: x_return_status => x_return_status
10244: ,x_msg_count => x_msg_count
10244: ,x_msg_count => x_msg_count
10245: ,x_msg_data => x_msg_data
10246: ,p_modifiersTbl => p_modifiersTbl
10247: );
10248: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10249: RETURN;
10250: END IF;
10251: relateOzfQpProducts
10252: (
10255: ,x_msg_data => x_msg_data
10256: ,p_pricingAttrTbl => p_pricingAttrTbl
10257: ,p_offDiscountProductId => p_offDiscountProductId
10258: );
10259: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10260: RETURN;
10261: END IF;
10262: END relateOzfQp;
10263:
10292: -- populate discount structure
10293: -- assign modifier index to each pricing attribute rec
10294: -- push data to QP
10295: -- process errors
10296: x_return_status := FND_API.G_RET_STS_SUCCESS;
10297: populatePricingAttr
10298: (
10299: x_return_status => x_return_status
10300: ,x_msg_count => x_msg_count
10303: ,p_offDiscountProductId => p_offDiscountProductId
10304: ,x_pricingAttrRec => l_pricingAttrRec
10305: );
10306:
10307: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10308: RAISE FND_API.G_EXC_ERROR;
10309: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10310: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10311: END IF;
10304: ,x_pricingAttrRec => l_pricingAttrRec
10305: );
10306:
10307: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10308: RAISE FND_API.G_EXC_ERROR;
10309: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10310: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10311: END IF;
10312: populateModifiers
10305: );
10306:
10307: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10308: RAISE FND_API.G_EXC_ERROR;
10309: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10310: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10311: END IF;
10312: populateModifiers
10313: (
10306:
10307: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10308: RAISE FND_API.G_EXC_ERROR;
10309: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10310: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10311: END IF;
10312: populateModifiers
10313: (
10314: x_return_status => x_return_status
10317: , p_qp_list_header_id => p_qp_list_header_id
10318: , p_offDiscountProductId => p_offDiscountProductId
10319: , x_modifiersTbl => l_modifiersTbl
10320: );
10321: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10322: RAISE FND_API.G_EXC_ERROR;
10323: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10324: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10325: END IF;
10318: , p_offDiscountProductId => p_offDiscountProductId
10319: , x_modifiersTbl => l_modifiersTbl
10320: );
10321: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10322: RAISE FND_API.G_EXC_ERROR;
10323: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10324: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10325: END IF;
10326: processData
10319: , x_modifiersTbl => l_modifiersTbl
10320: );
10321: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10322: RAISE FND_API.G_EXC_ERROR;
10323: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10324: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10325: END IF;
10326: processData
10327: (
10320: );
10321: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10322: RAISE FND_API.G_EXC_ERROR;
10323: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10324: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10325: END IF;
10326: processData
10327: (
10328: x_return_status => x_return_status
10332: , x_pricingAttrRec => l_pricingAttrRec
10333: , x_pricingAttrTbl => l_pricingAttrTbl
10334: , p_offDiscountProductId => p_offDiscountProductId
10335: );
10336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10337: RAISE FND_API.G_EXC_ERROR;
10338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10340: END IF;
10333: , x_pricingAttrTbl => l_pricingAttrTbl
10334: , p_offDiscountProductId => p_offDiscountProductId
10335: );
10336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10337: RAISE FND_API.G_EXC_ERROR;
10338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10340: END IF;
10341: populateExclusions
10334: , p_offDiscountProductId => p_offDiscountProductId
10335: );
10336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10337: RAISE FND_API.G_EXC_ERROR;
10338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10340: END IF;
10341: populateExclusions
10342: (
10335: );
10336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10337: RAISE FND_API.G_EXC_ERROR;
10338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10340: END IF;
10341: populateExclusions
10342: (
10343: x_return_status => x_return_status
10346: , p_qpListHeaderId => p_qp_list_header_id
10347: , x_pricingAttrTbl => l_pricingAttrTbl
10348:
10349: );
10350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10351: RAISE FND_API.G_EXC_ERROR;
10352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10354: END IF;
10347: , x_pricingAttrTbl => l_pricingAttrTbl
10348:
10349: );
10350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10351: RAISE FND_API.G_EXC_ERROR;
10352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10354: END IF;
10355:
10348:
10349: );
10350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10351: RAISE FND_API.G_EXC_ERROR;
10352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10354: END IF;
10355:
10356: QP_Modifiers_PUB.process_modifiers(
10349: );
10350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
10351: RAISE FND_API.G_EXC_ERROR;
10352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10354: END IF;
10355:
10356: QP_Modifiers_PUB.process_modifiers(
10357: p_api_version_number => 1.0,
10354: END IF;
10355:
10356: QP_Modifiers_PUB.process_modifiers(
10357: p_api_version_number => 1.0,
10358: p_init_msg_list => FND_API.G_FALSE,
10359: p_return_values => FND_API.G_FALSE,
10360: x_return_status => x_return_status,
10361: x_msg_count => x_msg_count,
10362: x_msg_data => x_msg_data,
10355:
10356: QP_Modifiers_PUB.process_modifiers(
10357: p_api_version_number => 1.0,
10358: p_init_msg_list => FND_API.G_FALSE,
10359: p_return_values => FND_API.G_FALSE,
10360: x_return_status => x_return_status,
10361: x_msg_count => x_msg_count,
10362: x_msg_data => x_msg_data,
10363: p_modifiers_tbl => l_modifiersTbl,
10370: x_qualifiers_val_tbl => v_qualifiers_val_tbl,
10371: x_pricing_attr_tbl => v_pricing_attr_tbl,
10372: x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
10373: );
10374: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10375: return;
10376: END IF;
10377: x_modifiersTbl := v_modifiers_tbl;
10378: x_pricingAttrTbl := v_pricing_attr_tbl;
10390: , x_pricingAttrTbl OUT NOCOPY Qp_Modifiers_Pub.pricing_attr_tbl_type
10391: )
10392: IS
10393: BEGIN
10394: x_return_status := FND_API.G_RET_STS_SUCCESS;
10395: pushDiscountRuleToQp
10396: (
10397: x_return_status => x_return_status
10398: , x_msg_count => x_msg_count
10402: , x_error_location => x_error_location
10403: , x_modifiersTbl => x_modifiersTbl
10404: , x_pricingAttrTbl => x_pricingAttrTbl
10405: );
10406: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10407: return;
10408: END IF;
10409: relateOzfQp
10410: (
10414: , p_modifiersTbl => x_modifiersTbl
10415: , p_pricingAttrTbl => x_pricingAttrTbl
10416: , p_offDiscountProductId => p_offDiscountProductId
10417: );
10418: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10419: return;
10420: END IF;
10421: END pushDiscountRuleToQpAndRelate;
10422: /*
10460: l_errorLocation NUMBER;
10461: BEGIN
10462: -- initialize
10463: SAVEPOINT push_disc_rules;
10464: x_return_status := Fnd_Api.g_ret_sts_success;
10465:
10466: FOR l_products in c_products(cp_qpListHeaderId => p_qp_list_header_id) LOOP
10467: pushDiscountRuleToQpAndRelate
10468: (
10474: , x_error_location => l_errorLocation
10475: , x_modifiersTbl => l_modifiersTbl
10476: , x_pricingAttrTbl => l_pricingAttrTbl
10477: );
10478: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
10479: add_message(x_msg_count);
10480: RAISE Fnd_Api.g_exc_error;
10481: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
10482: add_message(x_msg_count);
10476: , x_pricingAttrTbl => l_pricingAttrTbl
10477: );
10478: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
10479: add_message(x_msg_count);
10480: RAISE Fnd_Api.g_exc_error;
10481: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
10482: add_message(x_msg_count);
10483: RAISE Fnd_Api.g_exc_unexpected_error;
10484: END IF;
10477: );
10478: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
10479: add_message(x_msg_count);
10480: RAISE Fnd_Api.g_exc_error;
10481: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
10482: add_message(x_msg_count);
10483: RAISE Fnd_Api.g_exc_unexpected_error;
10484: END IF;
10485: END LOOP;
10479: add_message(x_msg_count);
10480: RAISE Fnd_Api.g_exc_error;
10481: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
10482: add_message(x_msg_count);
10483: RAISE Fnd_Api.g_exc_unexpected_error;
10484: END IF;
10485: END LOOP;
10486:
10487:
10485: END LOOP;
10486:
10487:
10488:
10489: IF p_commit = Fnd_Api.g_true THEN
10490: COMMIT WORK;
10491: END IF;
10492: EXCEPTION
10493: WHEN Fnd_Api.G_EXC_ERROR THEN
10489: IF p_commit = Fnd_Api.g_true THEN
10490: COMMIT WORK;
10491: END IF;
10492: EXCEPTION
10493: WHEN Fnd_Api.G_EXC_ERROR THEN
10494: x_return_status := Fnd_Api.g_ret_sts_error ;
10495: ROLLBACK TO push_disc_rules;
10496: Fnd_Msg_Pub.Count_AND_Get
10497: ( p_count => x_msg_count,
10490: COMMIT WORK;
10491: END IF;
10492: EXCEPTION
10493: WHEN Fnd_Api.G_EXC_ERROR THEN
10494: x_return_status := Fnd_Api.g_ret_sts_error ;
10495: ROLLBACK TO push_disc_rules;
10496: Fnd_Msg_Pub.Count_AND_Get
10497: ( p_count => x_msg_count,
10498: p_data => x_msg_data,
10495: ROLLBACK TO push_disc_rules;
10496: Fnd_Msg_Pub.Count_AND_Get
10497: ( p_count => x_msg_count,
10498: p_data => x_msg_data,
10499: p_encoded => Fnd_Api.G_FALSE
10500: );
10501: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10502: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10503: ROLLBACK TO push_disc_rules;
10497: ( p_count => x_msg_count,
10498: p_data => x_msg_data,
10499: p_encoded => Fnd_Api.G_FALSE
10500: );
10501: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10502: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10503: ROLLBACK TO push_disc_rules;
10504: Fnd_Msg_Pub.Count_AND_Get
10505: ( p_count => x_msg_count,
10498: p_data => x_msg_data,
10499: p_encoded => Fnd_Api.G_FALSE
10500: );
10501: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10502: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10503: ROLLBACK TO push_disc_rules;
10504: Fnd_Msg_Pub.Count_AND_Get
10505: ( p_count => x_msg_count,
10506: p_data => x_msg_data,
10503: ROLLBACK TO push_disc_rules;
10504: Fnd_Msg_Pub.Count_AND_Get
10505: ( p_count => x_msg_count,
10506: p_data => x_msg_data,
10507: p_encoded => Fnd_Api.G_FALSE
10508: );
10509: WHEN OTHERS THEN
10510: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10511: ROLLBACK TO push_disc_rules;
10506: p_data => x_msg_data,
10507: p_encoded => Fnd_Api.G_FALSE
10508: );
10509: WHEN OTHERS THEN
10510: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10511: ROLLBACK TO push_disc_rules;
10512: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
10513: THEN
10514: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
10515: END IF;
10516: Fnd_Msg_Pub.Count_AND_Get
10517: ( p_count => x_msg_count,
10518: p_data => x_msg_data,
10519: p_encoded => Fnd_Api.G_FALSE
10520: );
10521:
10522: /*1. Get Discount Structures
10523: For each discount structure
10688: x_modifier_list_rec.OFFER_CODE := l_request_number; --NVL(l_authorization_number, l_request_number);
10689: x_modifier_list_rec.COMMENTS := FND_MESSAGE.GET_STRING('OZF','OZF_SD_OFFER_COMMENTS');
10690: x_modifier_list_rec.ASK_FOR_FLAG := NVL(l_request_basis,'N');
10691:
10692: IF l_org_id IS NOT NULL AND l_org_id <> FND_API.G_MISS_NUM
10693: AND NVL(fnd_profile.value('QP_SECURITY_CONTROL'), 'OFF') <> 'OFF' THEN
10694: x_modifier_list_rec.global_flag := 'N';
10695: x_modifier_list_rec.orig_org_id := l_org_id;
10696: ELSE
10708:
10709: debug_message('N: populateSDHeaderRec x_modifier_list_rec.TRANSACTION_CURRENCY_CODE ' || x_modifier_list_rec.TRANSACTION_CURRENCY_CODE);
10710:
10711: EXCEPTION
10712: WHEN Fnd_Api.G_EXC_ERROR THEN
10713: x_return_status := Fnd_Api.g_ret_sts_error ;
10714: ROLLBACK TO populateSDHeaderRec;
10715: Fnd_Msg_Pub.Count_AND_Get
10716: ( p_count => x_msg_count,
10709: debug_message('N: populateSDHeaderRec x_modifier_list_rec.TRANSACTION_CURRENCY_CODE ' || x_modifier_list_rec.TRANSACTION_CURRENCY_CODE);
10710:
10711: EXCEPTION
10712: WHEN Fnd_Api.G_EXC_ERROR THEN
10713: x_return_status := Fnd_Api.g_ret_sts_error ;
10714: ROLLBACK TO populateSDHeaderRec;
10715: Fnd_Msg_Pub.Count_AND_Get
10716: ( p_count => x_msg_count,
10717: p_data => x_msg_data,
10714: ROLLBACK TO populateSDHeaderRec;
10715: Fnd_Msg_Pub.Count_AND_Get
10716: ( p_count => x_msg_count,
10717: p_data => x_msg_data,
10718: p_encoded => Fnd_Api.G_FALSE
10719: );
10720: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10721: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10722: ROLLBACK TO populateSDHeaderRec;
10716: ( p_count => x_msg_count,
10717: p_data => x_msg_data,
10718: p_encoded => Fnd_Api.G_FALSE
10719: );
10720: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10721: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10722: ROLLBACK TO populateSDHeaderRec;
10723: Fnd_Msg_Pub.Count_AND_Get
10724: ( p_count => x_msg_count,
10717: p_data => x_msg_data,
10718: p_encoded => Fnd_Api.G_FALSE
10719: );
10720: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10721: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10722: ROLLBACK TO populateSDHeaderRec;
10723: Fnd_Msg_Pub.Count_AND_Get
10724: ( p_count => x_msg_count,
10725: p_data => x_msg_data,
10722: ROLLBACK TO populateSDHeaderRec;
10723: Fnd_Msg_Pub.Count_AND_Get
10724: ( p_count => x_msg_count,
10725: p_data => x_msg_data,
10726: p_encoded => Fnd_Api.G_FALSE
10727: );
10728: WHEN OTHERS THEN
10729: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10730: ROLLBACK TO populateSDHeaderRec;
10725: p_data => x_msg_data,
10726: p_encoded => Fnd_Api.G_FALSE
10727: );
10728: WHEN OTHERS THEN
10729: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10730: ROLLBACK TO populateSDHeaderRec;
10731: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
10732: THEN
10733: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,'populateSDHeaderRec');
10734: END IF;
10735: Fnd_Msg_Pub.Count_AND_Get
10736: ( p_count => x_msg_count,
10737: p_data => x_msg_data,
10738: p_encoded => Fnd_Api.G_FALSE
10739: );
10740: END populateSDHeaderRec;
10741:
10742:
10817:
10818:
10819:
10820:
10821: x_return_status := Fnd_Api.g_ret_sts_success;
10822: --x_error_location := 0;
10823:
10824: debug_message('N: populateSDDiscountRulesRec' || p_operation);
10825:
10835:
10836: -- END IF;
10837:
10838: debug_message('N: l_orig_sys_line_ref_id' || l_orig_sys_line_ref_id);
10839: IF l_orig_sys_line_ref_id IS NULL OR l_orig_sys_line_ref_id=FND_API.G_MISS_NUM THEN
10840: x_modifier_line_tbl(l_prod_index).OPERATION := 'CREATE';
10841: ELSE
10842: x_modifier_line_tbl(l_prod_index).OPERATION := 'UPDATE';
10843: x_modifier_line_tbl(l_prod_index).list_line_id := l_list_line_id;
10944: x_modifier_line_tbl(l_prod_index).END_DATE_ACTIVE := trunc(line_rec.end_date+get_grace_days(p_sdr_header_id));
10945: x_modifier_line_tbl(l_prod_index).GENERATE_USING_FORMULA_ID := line_rec.cost_basis;
10946:
10947: IF l_supplier_site_id IS NOT NULL
10948: AND l_supplier_site_id <> FND_API.G_MISS_NUM AND x_modifier_line_tbl(l_prod_index).OPERATION = 'CREATE' THEN
10949:
10950: OPEN cur_get_qty_inc_flag(l_supplier_site_id);
10951: FETCH cur_get_qty_inc_flag INTO l_allow_qty_increase;
10952: CLOSE cur_get_qty_inc_flag;
10960: END IF;
10961:
10962: l_orig_sys_line_ref_id := NULL;
10963: l_list_line_id := NULL;
10964: l_limit_id := FND_API.G_MISS_NUM;
10965:
10966: l_prod_index := l_prod_index+1;
10967: END LOOP;
10968:
10968:
10969:
10970:
10971: EXCEPTION
10972: WHEN Fnd_Api.G_EXC_ERROR THEN
10973: x_return_status := Fnd_Api.g_ret_sts_error ;
10974: ROLLBACK TO populateSDDiscountRulesRec;
10975: Fnd_Msg_Pub.Count_AND_Get
10976: ( p_count => x_msg_count,
10969:
10970:
10971: EXCEPTION
10972: WHEN Fnd_Api.G_EXC_ERROR THEN
10973: x_return_status := Fnd_Api.g_ret_sts_error ;
10974: ROLLBACK TO populateSDDiscountRulesRec;
10975: Fnd_Msg_Pub.Count_AND_Get
10976: ( p_count => x_msg_count,
10977: p_data => x_msg_data,
10974: ROLLBACK TO populateSDDiscountRulesRec;
10975: Fnd_Msg_Pub.Count_AND_Get
10976: ( p_count => x_msg_count,
10977: p_data => x_msg_data,
10978: p_encoded => Fnd_Api.G_FALSE
10979: );
10980: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10981: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10982: ROLLBACK TO populateSDDiscountRulesRec;
10976: ( p_count => x_msg_count,
10977: p_data => x_msg_data,
10978: p_encoded => Fnd_Api.G_FALSE
10979: );
10980: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10981: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10982: ROLLBACK TO populateSDDiscountRulesRec;
10983: Fnd_Msg_Pub.Count_AND_Get
10984: ( p_count => x_msg_count,
10977: p_data => x_msg_data,
10978: p_encoded => Fnd_Api.G_FALSE
10979: );
10980: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
10981: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
10982: ROLLBACK TO populateSDDiscountRulesRec;
10983: Fnd_Msg_Pub.Count_AND_Get
10984: ( p_count => x_msg_count,
10985: p_data => x_msg_data,
10982: ROLLBACK TO populateSDDiscountRulesRec;
10983: Fnd_Msg_Pub.Count_AND_Get
10984: ( p_count => x_msg_count,
10985: p_data => x_msg_data,
10986: p_encoded => Fnd_Api.G_FALSE
10987: );
10988: WHEN OTHERS THEN
10989: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10990: ROLLBACK TO populateSDDiscountRulesRec;
10985: p_data => x_msg_data,
10986: p_encoded => Fnd_Api.G_FALSE
10987: );
10988: WHEN OTHERS THEN
10989: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
10990: ROLLBACK TO populateSDDiscountRulesRec;
10991: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
10992: THEN
10993: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,'populateSDDiscountRulesRec');
10994: END IF;
10995: Fnd_Msg_Pub.Count_AND_Get
10996: ( p_count => x_msg_count,
10997: p_data => x_msg_data,
10998: p_encoded => Fnd_Api.G_FALSE
10999: );
11000: END populateSDDiscountRulesRec;
11001:
11002: /*
11064:
11065: BEGIN
11066: SAVEPOINT populateSDQualifiers;
11067:
11068: x_return_status := Fnd_Api.g_ret_sts_success;
11069: --x_error_location := 0;
11070: debug_message('N: populateSDQualifiers' || p_qp_list_header_id);
11071:
11072: OPEN cur_get_end_cust_count;
11075:
11076: debug_message('N: populateSDQualifiers' || l_end_cust_count);
11077:
11078:
11079: IF p_qp_list_header_id IS NOT NULL AND p_qp_list_header_id <> FND_API.G_MISS_NUM THEN
11080: FOR old_cust_line_rec IN cur_get_old_qualifiers LOOP
11081:
11082: x_qualifier_tbl(l_qual_index).list_header_id := p_qp_list_header_id;
11083: x_qualifier_tbl(l_qual_index).qualifier_id := old_cust_line_rec.qualifier_id;
11246: FETCH cur_get_internal_order_number INTO l_internal_order_number,l_org_id;
11247: CLOSE cur_get_internal_order_number;
11248:
11249: IF l_internal_order_number IS NOT NULL
11250: AND l_internal_order_number <> FND_API.G_MISS_NUM THEN
11251:
11252: OPEN cur_get_order_header_id(l_internal_order_number,l_org_id);
11253: FETCH cur_get_order_header_id INTO l_order_header_id;
11254: CLOSE cur_get_order_header_id;
11269:
11270: END IF;
11271:
11272: EXCEPTION
11273: WHEN Fnd_Api.G_EXC_ERROR THEN
11274: x_return_status := Fnd_Api.g_ret_sts_error ;
11275: ROLLBACK TO populateSDQualifiers;
11276: Fnd_Msg_Pub.Count_AND_Get
11277: ( p_count => x_msg_count,
11270: END IF;
11271:
11272: EXCEPTION
11273: WHEN Fnd_Api.G_EXC_ERROR THEN
11274: x_return_status := Fnd_Api.g_ret_sts_error ;
11275: ROLLBACK TO populateSDQualifiers;
11276: Fnd_Msg_Pub.Count_AND_Get
11277: ( p_count => x_msg_count,
11278: p_data => x_msg_data,
11275: ROLLBACK TO populateSDQualifiers;
11276: Fnd_Msg_Pub.Count_AND_Get
11277: ( p_count => x_msg_count,
11278: p_data => x_msg_data,
11279: p_encoded => Fnd_Api.G_FALSE
11280: );
11281: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11282: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11283: ROLLBACK TO populateSDQualifiers;
11277: ( p_count => x_msg_count,
11278: p_data => x_msg_data,
11279: p_encoded => Fnd_Api.G_FALSE
11280: );
11281: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11282: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11283: ROLLBACK TO populateSDQualifiers;
11284: Fnd_Msg_Pub.Count_AND_Get
11285: ( p_count => x_msg_count,
11278: p_data => x_msg_data,
11279: p_encoded => Fnd_Api.G_FALSE
11280: );
11281: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11282: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11283: ROLLBACK TO populateSDQualifiers;
11284: Fnd_Msg_Pub.Count_AND_Get
11285: ( p_count => x_msg_count,
11286: p_data => x_msg_data,
11283: ROLLBACK TO populateSDQualifiers;
11284: Fnd_Msg_Pub.Count_AND_Get
11285: ( p_count => x_msg_count,
11286: p_data => x_msg_data,
11287: p_encoded => Fnd_Api.G_FALSE
11288: );
11289: WHEN OTHERS THEN
11290: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
11291: ROLLBACK TO populateSDQualifiers;
11286: p_data => x_msg_data,
11287: p_encoded => Fnd_Api.G_FALSE
11288: );
11289: WHEN OTHERS THEN
11290: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
11291: ROLLBACK TO populateSDQualifiers;
11292: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
11293: THEN
11294: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,'populateSDQualifiers');
11295: END IF;
11296: Fnd_Msg_Pub.Count_AND_Get
11297: ( p_count => x_msg_count,
11298: p_data => x_msg_data,
11299: p_encoded => Fnd_Api.G_FALSE
11300: );
11301: END populateSDQualifiers;
11302:
11303: /*
11305: */
11306:
11307: PROCEDURE process_sd_modifiers(
11308: p_sdr_header_id IN NUMBER
11309: ,p_init_msg_list IN VARCHAR2 :=FND_API.g_true
11310: ,p_api_version IN NUMBER
11311: ,p_commit IN VARCHAR2 :=FND_API.g_false
11312: ,x_return_status OUT NOCOPY VARCHAR2
11313: ,x_msg_count OUT NOCOPY NUMBER
11307: PROCEDURE process_sd_modifiers(
11308: p_sdr_header_id IN NUMBER
11309: ,p_init_msg_list IN VARCHAR2 :=FND_API.g_true
11310: ,p_api_version IN NUMBER
11311: ,p_commit IN VARCHAR2 :=FND_API.g_false
11312: ,x_return_status OUT NOCOPY VARCHAR2
11313: ,x_msg_count OUT NOCOPY NUMBER
11314: ,x_msg_data OUT NOCOPY VARCHAR2
11315: ,x_qp_list_header_id IN OUT NOCOPY NUMBER
11435:
11436: BEGIN
11437:
11438: SAVEPOINT process_sd_modifiers;
11439: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
11440: Fnd_Msg_Pub.initialize;
11441: END IF;
11442:
11443: IF NOT Fnd_Api.compatible_api_call(l_api_version,
11439: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
11440: Fnd_Msg_Pub.initialize;
11441: END IF;
11442:
11443: IF NOT Fnd_Api.compatible_api_call(l_api_version,
11444: p_api_version,
11445: l_api_name,
11446: g_pkg_name)
11447: THEN
11444: p_api_version,
11445: l_api_name,
11446: g_pkg_name)
11447: THEN
11448: RAISE Fnd_Api.g_exc_unexpected_error;
11449: END IF;
11450:
11451: x_return_status := Fnd_Api.g_ret_sts_success;
11452: x_error_location := 0;
11447: THEN
11448: RAISE Fnd_Api.g_exc_unexpected_error;
11449: END IF;
11450:
11451: x_return_status := Fnd_Api.g_ret_sts_success;
11452: x_error_location := 0;
11453: g_sd_offer := 'Y';
11454:
11455: IF FND_PROFILE.VALUE('OZF_SD_DEFAULT_BUDGET') IS NULL THEN
11456: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
11457: FND_MESSAGE.set_name('OZF', 'OZF_SD_OFFR_NO_BUDGET_REQUEST');
11458: FND_MSG_PUB.add;
11459: END IF;
11460: RAISE Fnd_Api.g_exc_unexpected_error;
11461: END IF;
11462:
11463: /*decide operation*/
11464:
11465: debug_message('N: qp_list_header_id' || x_qp_list_header_id);
11466:
11467: l_qp_list_header_id := x_qp_list_header_id;
11468: IF x_qp_list_header_id IS NULL
11469: OR x_qp_list_header_id = Fnd_Api.g_miss_num THEN
11470: l_operation := 'CREATE';
11471: ELSE
11472: l_operation := 'UPDATE';
11473: END IF;
11526: ,p_qp_list_header_id => x_qp_list_header_id
11527: ,x_modifier_list_rec => l_modifier_list_rec
11528: );
11529:
11530: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11531: RAISE Fnd_Api.g_exc_error;
11532: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11533: RAISE Fnd_Api.g_exc_unexpected_error;
11534: END IF;
11527: ,x_modifier_list_rec => l_modifier_list_rec
11528: );
11529:
11530: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11531: RAISE Fnd_Api.g_exc_error;
11532: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11533: RAISE Fnd_Api.g_exc_unexpected_error;
11534: END IF;
11535:
11528: );
11529:
11530: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11531: RAISE Fnd_Api.g_exc_error;
11532: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11533: RAISE Fnd_Api.g_exc_unexpected_error;
11534: END IF;
11535:
11536: /*Create Header*/
11529:
11530: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11531: RAISE Fnd_Api.g_exc_error;
11532: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11533: RAISE Fnd_Api.g_exc_unexpected_error;
11534: END IF;
11535:
11536: /*Create Header*/
11537: IF l_operation = 'CREATE' THEN
11539: l_modifier_list_rec.modifier_operation := 'CREATE';
11540: l_modifier_list_rec.status_code := 'DRAFT';
11541: l_modifier_list_rec.user_status_id := ozf_utility_pvt.get_default_user_status('OZF_OFFER_STATUS','DRAFT');--1600;
11542:
11543: IF l_modifier_list_rec.OWNER_ID IS NULL OR l_modifier_list_rec.OWNER_ID = fnd_api.g_miss_num THEN
11544: l_modifier_list_rec.OWNER_ID := ozf_utility_pvt.get_resource_id(NVL(FND_GLOBAL.user_id,-1));
11545: ELSE
11546: l_modifier_list_rec.OWNER_ID := l_modifier_list_rec.OWNER_ID;
11547: END IF;
11558:
11559: l_modifier_list_rec.qp_list_header_id:= x_qp_list_header_id;
11560:
11561: IF l_modifier_list_rec.OWNER_ID IS NULL OR l_modifier_list_rec.OWNER_ID = -1
11562: OR l_modifier_list_rec.OWNER_ID = fnd_api.g_miss_num THEN
11563:
11564: OPEN c_get_sdr_owner(p_sdr_header_id);
11565: FETCH c_get_sdr_owner INTO l_modifier_list_rec.OWNER_ID;
11566: CLOSE c_get_sdr_owner;
11592: ,p_qp_list_header_id => x_qp_list_header_id
11593: ,x_modifier_line_tbl => l_modifier_line_tbl
11594: );
11595:
11596: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11597: RAISE Fnd_Api.g_exc_error;
11598: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11599: RAISE Fnd_Api.g_exc_unexpected_error;
11600: END IF;
11593: ,x_modifier_line_tbl => l_modifier_line_tbl
11594: );
11595:
11596: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11597: RAISE Fnd_Api.g_exc_error;
11598: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11599: RAISE Fnd_Api.g_exc_unexpected_error;
11600: END IF;
11601:
11594: );
11595:
11596: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11597: RAISE Fnd_Api.g_exc_error;
11598: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11599: RAISE Fnd_Api.g_exc_unexpected_error;
11600: END IF;
11601:
11602: debug_message('N: 11 l_modifier_line_tbl count ' || l_modifier_line_tbl.count);
11595:
11596: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11597: RAISE Fnd_Api.g_exc_error;
11598: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11599: RAISE Fnd_Api.g_exc_unexpected_error;
11600: END IF;
11601:
11602: debug_message('N: 11 l_modifier_line_tbl count ' || l_modifier_line_tbl.count);
11603:
11623: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
11624: FND_MESSAGE.set_name('OZF', 'OZF_OFFR_NO_DISC_LINES');
11625: FND_MSG_PUB.add;
11626: END IF;
11627: RAISE FND_API.g_exc_error;
11628: END IF;
11629:
11630: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11631: RAISE Fnd_Api.g_exc_error;
11626: END IF;
11627: RAISE FND_API.g_exc_error;
11628: END IF;
11629:
11630: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11631: RAISE Fnd_Api.g_exc_error;
11632: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11633: RAISE Fnd_Api.g_exc_unexpected_error;
11634: END IF;
11627: RAISE FND_API.g_exc_error;
11628: END IF;
11629:
11630: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11631: RAISE Fnd_Api.g_exc_error;
11632: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11633: RAISE Fnd_Api.g_exc_unexpected_error;
11634: END IF;
11635:
11628: END IF;
11629:
11630: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11631: RAISE Fnd_Api.g_exc_error;
11632: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11633: RAISE Fnd_Api.g_exc_unexpected_error;
11634: END IF;
11635:
11636:
11629:
11630: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11631: RAISE Fnd_Api.g_exc_error;
11632: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11633: RAISE Fnd_Api.g_exc_unexpected_error;
11634: END IF;
11635:
11636:
11637: IF l_dummy IS NOT NULL THEN
11649: l_modifier_list_rec.user_status_id;
11650: CLOSE c_offer_info;
11651:
11652:
11653: IF l_modifier_list_rec.user_status_id IS NOT NULL AND l_modifier_list_rec.user_status_id <> fnd_api.g_miss_num THEN -- might have additional stage eg ACTIVE to go
11654: --dbms_output.put_line('l_modifier_list_rec.user_status_id set operation as update' );
11655: l_modifier_list_rec.offer_operation := 'UPDATE';
11656: l_modifier_list_rec.modifier_operation := 'UPDATE';
11657: l_modifier_list_rec.user_status_id := l_modifier_list_rec.user_status_id;
11671: ,x_qualifier_tbl => l_qualifiers_tbl
11672: );
11673: debug_message('N: count3 '||l_qualifiers_tbl.count);
11674:
11675: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11676: RAISE Fnd_Api.g_exc_error;
11677: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11678: RAISE Fnd_Api.g_exc_unexpected_error;
11679: END IF;
11672: );
11673: debug_message('N: count3 '||l_qualifiers_tbl.count);
11674:
11675: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11676: RAISE Fnd_Api.g_exc_error;
11677: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11678: RAISE Fnd_Api.g_exc_unexpected_error;
11679: END IF;
11680:
11673: debug_message('N: count3 '||l_qualifiers_tbl.count);
11674:
11675: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11676: RAISE Fnd_Api.g_exc_error;
11677: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11678: RAISE Fnd_Api.g_exc_unexpected_error;
11679: END IF;
11680:
11681: /*Create Market Qualifiers*/
11674:
11675: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11676: RAISE Fnd_Api.g_exc_error;
11677: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11678: RAISE Fnd_Api.g_exc_unexpected_error;
11679: END IF;
11680:
11681: /*Create Market Qualifiers*/
11682: process_market_qualifiers(
11691: ,x_qualifiers_tbl => l_qualifiers_tbl_out);
11692:
11693: debug_message('N: count4 '||l_qualifiers_tbl_out.count);
11694:
11695: /*IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11696: RAISE Fnd_Api.g_exc_error;
11697: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11698: RAISE Fnd_Api.g_exc_unexpected_error;
11699: END IF;*/
11692:
11693: debug_message('N: count4 '||l_qualifiers_tbl_out.count);
11694:
11695: /*IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11696: RAISE Fnd_Api.g_exc_error;
11697: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11698: RAISE Fnd_Api.g_exc_unexpected_error;
11699: END IF;*/
11700:
11693: debug_message('N: count4 '||l_qualifiers_tbl_out.count);
11694:
11695: /*IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11696: RAISE Fnd_Api.g_exc_error;
11697: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11698: RAISE Fnd_Api.g_exc_unexpected_error;
11699: END IF;*/
11700:
11701: debug_message('N: activate the records '||x_return_status);
11694:
11695: /*IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11696: RAISE Fnd_Api.g_exc_error;
11697: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11698: RAISE Fnd_Api.g_exc_unexpected_error;
11699: END IF;*/
11700:
11701: debug_message('N: activate the records '||x_return_status);
11702:
11770: IF l_theme_approval_req='Y' THEN
11771:
11772: Ams_Approval_Submit_Pvt.Submit_Approval(
11773: p_api_version => 1,
11774: p_init_msg_list => FND_API.g_true,
11775: p_commit => FND_API.g_false,
11776: p_validation_level => FND_API.g_valid_level_full,
11777: p_object_id => x_qp_list_header_id,
11778: p_object_type => 'OFFR',
11771:
11772: Ams_Approval_Submit_Pvt.Submit_Approval(
11773: p_api_version => 1,
11774: p_init_msg_list => FND_API.g_true,
11775: p_commit => FND_API.g_false,
11776: p_validation_level => FND_API.g_valid_level_full,
11777: p_object_id => x_qp_list_header_id,
11778: p_object_type => 'OFFR',
11779: p_new_status_id => 1640, -- planned status for offers
11772: Ams_Approval_Submit_Pvt.Submit_Approval(
11773: p_api_version => 1,
11774: p_init_msg_list => FND_API.g_true,
11775: p_commit => FND_API.g_false,
11776: p_validation_level => FND_API.g_valid_level_full,
11777: p_object_id => x_qp_list_header_id,
11778: p_object_type => 'OFFR',
11779: p_new_status_id => 1640, -- planned status for offers
11780: x_return_status => x_return_status,
11784: ELSIF l_budget_approval_req = 'Y' AND l_theme_approval_req='N' THEN
11785:
11786: Ams_Approval_Submit_Pvt.Submit_Approval(
11787: p_api_version => 1,
11788: p_init_msg_list => FND_API.g_false,
11789: p_commit => FND_API.g_false,
11790: p_validation_level => FND_API.g_valid_level_full,
11791: p_object_id => x_qp_list_header_id,
11792: p_object_type => 'OFFR',
11785:
11786: Ams_Approval_Submit_Pvt.Submit_Approval(
11787: p_api_version => 1,
11788: p_init_msg_list => FND_API.g_false,
11789: p_commit => FND_API.g_false,
11790: p_validation_level => FND_API.g_valid_level_full,
11791: p_object_id => x_qp_list_header_id,
11792: p_object_type => 'OFFR',
11793: p_new_status_id => 1604, -- will come from status dropdown on approval detail page
11786: Ams_Approval_Submit_Pvt.Submit_Approval(
11787: p_api_version => 1,
11788: p_init_msg_list => FND_API.g_false,
11789: p_commit => FND_API.g_false,
11790: p_validation_level => FND_API.g_valid_level_full,
11791: p_object_id => x_qp_list_header_id,
11792: p_object_type => 'OFFR',
11793: p_new_status_id => 1604, -- will come from status dropdown on approval detail page
11794: x_return_status => x_return_status,
11837:
11838: debug_message('N: activate the records1 '||x_return_status);
11839: END IF;
11840:
11841: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11842: RAISE Fnd_Api.g_exc_error;
11843: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11844: RAISE Fnd_Api.g_exc_unexpected_error;
11845: END IF;
11838: debug_message('N: activate the records1 '||x_return_status);
11839: END IF;
11840:
11841: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11842: RAISE Fnd_Api.g_exc_error;
11843: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11844: RAISE Fnd_Api.g_exc_unexpected_error;
11845: END IF;
11846:
11839: END IF;
11840:
11841: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11842: RAISE Fnd_Api.g_exc_error;
11843: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11844: RAISE Fnd_Api.g_exc_unexpected_error;
11845: END IF;
11846:
11847: IF l_qp_list_header_id IS NULL THEN
11840:
11841: IF x_return_status = Fnd_Api.g_ret_sts_error THEN
11842: RAISE Fnd_Api.g_exc_error;
11843: ELSIF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
11844: RAISE Fnd_Api.g_exc_unexpected_error;
11845: END IF;
11846:
11847: IF l_qp_list_header_id IS NULL THEN
11848: l_qp_list_header_id := x_qp_list_header_id;
11875: debug_message('N: l_access_rec.act_access_to_object_id '||l_access_rec.act_access_to_object_id);
11876:
11877: ams_access_pvt.create_access(
11878: p_api_version => l_api_version
11879: ,p_init_msg_list => fnd_api.g_false
11880: ,p_validation_level => fnd_api.g_valid_level_full
11881: ,x_return_status => x_return_status
11882: ,x_msg_count => x_msg_count
11883: ,x_msg_data => x_msg_data
11876:
11877: ams_access_pvt.create_access(
11878: p_api_version => l_api_version
11879: ,p_init_msg_list => fnd_api.g_false
11880: ,p_validation_level => fnd_api.g_valid_level_full
11881: ,x_return_status => x_return_status
11882: ,x_msg_count => x_msg_count
11883: ,x_msg_data => x_msg_data
11884: ,p_commit => fnd_api.g_false
11880: ,p_validation_level => fnd_api.g_valid_level_full
11881: ,x_return_status => x_return_status
11882: ,x_msg_count => x_msg_count
11883: ,x_msg_data => x_msg_data
11884: ,p_commit => fnd_api.g_false
11885: ,p_access_rec => l_access_rec
11886: ,x_access_id => l_access_id);
11887:
11888: IF x_return_status = fnd_api.g_ret_sts_error THEN
11884: ,p_commit => fnd_api.g_false
11885: ,p_access_rec => l_access_rec
11886: ,x_access_id => l_access_id);
11887:
11888: IF x_return_status = fnd_api.g_ret_sts_error THEN
11889: RAISE fnd_api.g_exc_error;
11890: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
11891: RAISE fnd_api.g_exc_unexpected_error;
11892: END IF;
11885: ,p_access_rec => l_access_rec
11886: ,x_access_id => l_access_id);
11887:
11888: IF x_return_status = fnd_api.g_ret_sts_error THEN
11889: RAISE fnd_api.g_exc_error;
11890: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
11891: RAISE fnd_api.g_exc_unexpected_error;
11892: END IF;
11893: debug_message('N: x_return_status '||x_return_status);
11886: ,x_access_id => l_access_id);
11887:
11888: IF x_return_status = fnd_api.g_ret_sts_error THEN
11889: RAISE fnd_api.g_exc_error;
11890: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
11891: RAISE fnd_api.g_exc_unexpected_error;
11892: END IF;
11893: debug_message('N: x_return_status '||x_return_status);
11894: END IF;
11887:
11888: IF x_return_status = fnd_api.g_ret_sts_error THEN
11889: RAISE fnd_api.g_exc_error;
11890: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
11891: RAISE fnd_api.g_exc_unexpected_error;
11892: END IF;
11893: debug_message('N: x_return_status '||x_return_status);
11894: END IF;
11895: END LOOP;
11906: debug_message('Returned Status to Calling API '|| x_return_status);
11907: debug_message('Returned list_header_id to Calling API '|| x_qp_list_header_id);
11908:
11909: EXCEPTION
11910: WHEN Fnd_Api.G_EXC_ERROR THEN
11911: x_return_status := Fnd_Api.g_ret_sts_error ;
11912: ROLLBACK TO process_sd_modifiers;
11913: Fnd_Msg_Pub.Count_AND_Get
11914: ( p_count => x_msg_count,
11907: debug_message('Returned list_header_id to Calling API '|| x_qp_list_header_id);
11908:
11909: EXCEPTION
11910: WHEN Fnd_Api.G_EXC_ERROR THEN
11911: x_return_status := Fnd_Api.g_ret_sts_error ;
11912: ROLLBACK TO process_sd_modifiers;
11913: Fnd_Msg_Pub.Count_AND_Get
11914: ( p_count => x_msg_count,
11915: p_data => x_msg_data,
11912: ROLLBACK TO process_sd_modifiers;
11913: Fnd_Msg_Pub.Count_AND_Get
11914: ( p_count => x_msg_count,
11915: p_data => x_msg_data,
11916: p_encoded => Fnd_Api.G_FALSE
11917: );
11918: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11919: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11920: ROLLBACK TO process_sd_modifiers;
11914: ( p_count => x_msg_count,
11915: p_data => x_msg_data,
11916: p_encoded => Fnd_Api.G_FALSE
11917: );
11918: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11919: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11920: ROLLBACK TO process_sd_modifiers;
11921: Fnd_Msg_Pub.Count_AND_Get
11922: ( p_count => x_msg_count,
11915: p_data => x_msg_data,
11916: p_encoded => Fnd_Api.G_FALSE
11917: );
11918: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
11919: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
11920: ROLLBACK TO process_sd_modifiers;
11921: Fnd_Msg_Pub.Count_AND_Get
11922: ( p_count => x_msg_count,
11923: p_data => x_msg_data,
11920: ROLLBACK TO process_sd_modifiers;
11921: Fnd_Msg_Pub.Count_AND_Get
11922: ( p_count => x_msg_count,
11923: p_data => x_msg_data,
11924: p_encoded => Fnd_Api.G_FALSE
11925: );
11926: WHEN OTHERS THEN
11927: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
11928: ROLLBACK TO process_sd_modifiers;
11923: p_data => x_msg_data,
11924: p_encoded => Fnd_Api.G_FALSE
11925: );
11926: WHEN OTHERS THEN
11927: x_return_status := Fnd_Api.g_ret_sts_unexp_erroR ;
11928: ROLLBACK TO process_sd_modifiers;
11929: IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR )
11930: THEN
11931: Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
11932: END IF;
11933: Fnd_Msg_Pub.Count_AND_Get
11934: ( p_count => x_msg_count,
11935: p_data => x_msg_data,
11936: p_encoded => Fnd_Api.G_FALSE
11937: );
11938:
11939: END process_sd_modifiers;
11940: