87: WHERE offer_id = p_offer_id --p_mo_rec.offer_id
88: AND group_number = p_group_number); --p_mo_rec.group_number);
89:
90: BEGIN
91: x_return_status := FND_API.G_RET_STS_SUCCESS;
92: OZF_Volume_Offer_disc_PVT.debug_message('Market optionId is : '|| p_mo_rec.offer_market_option_id);
93: IF p_validation_mode = JTF_PLSQL_API.G_CREATE THEN
94: IF p_mo_rec.offer_market_option_id IS NOT NULL AND p_mo_rec.offer_market_option_id <> FND_API.G_MISS_NUM THEN
95: OZF_Volume_Offer_disc_PVT.debug_message('Checking qunqieness for moid');
90: BEGIN
91: x_return_status := FND_API.G_RET_STS_SUCCESS;
92: OZF_Volume_Offer_disc_PVT.debug_message('Market optionId is : '|| p_mo_rec.offer_market_option_id);
93: IF p_validation_mode = JTF_PLSQL_API.G_CREATE THEN
94: IF p_mo_rec.offer_market_option_id IS NOT NULL AND p_mo_rec.offer_market_option_id <> FND_API.G_MISS_NUM THEN
95: OZF_Volume_Offer_disc_PVT.debug_message('Checking qunqieness for moid');
96: IF OZF_Utility_PVT.check_uniqueness('ozf_offr_market_options','offer_market_option_id = ''' || p_mo_rec.offer_market_option_id ||'''') = FND_API.g_false THEN
97: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFF_MO_ID_DUP');
98: x_return_status := FND_API.g_ret_sts_error;
92: OZF_Volume_Offer_disc_PVT.debug_message('Market optionId is : '|| p_mo_rec.offer_market_option_id);
93: IF p_validation_mode = JTF_PLSQL_API.G_CREATE THEN
94: IF p_mo_rec.offer_market_option_id IS NOT NULL AND p_mo_rec.offer_market_option_id <> FND_API.G_MISS_NUM THEN
95: OZF_Volume_Offer_disc_PVT.debug_message('Checking qunqieness for moid');
96: IF OZF_Utility_PVT.check_uniqueness('ozf_offr_market_options','offer_market_option_id = ''' || p_mo_rec.offer_market_option_id ||'''') = FND_API.g_false THEN
97: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFF_MO_ID_DUP');
98: x_return_status := FND_API.g_ret_sts_error;
99: END IF;
100: END IF;
94: IF p_mo_rec.offer_market_option_id IS NOT NULL AND p_mo_rec.offer_market_option_id <> FND_API.G_MISS_NUM THEN
95: OZF_Volume_Offer_disc_PVT.debug_message('Checking qunqieness for moid');
96: IF OZF_Utility_PVT.check_uniqueness('ozf_offr_market_options','offer_market_option_id = ''' || p_mo_rec.offer_market_option_id ||'''') = FND_API.g_false THEN
97: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFF_MO_ID_DUP');
98: x_return_status := FND_API.g_ret_sts_error;
99: END IF;
100: END IF;
101: END IF;
102: OZF_Volume_Offer_disc_PVT.debug_message('Val mode is : '|| p_validation_mode);
103: /*
104: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
105: OZF_Volume_Offer_disc_PVT.debug_message('Val mode is1 : '|| p_validation_mode);
106: OZF_Volume_Offer_disc_PVT.debug_message('Market OPtion Id is1 '|| p_mo_rec.offer_market_option_id);
107: IF (p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM)
108: AND (p_mo_rec.group_number IS NOT NULL AND p_mo_rec.group_number <> FND_API.G_MISS_NUM)
109: THEN
110: OZF_Volume_Offer_disc_PVT.debug_message('Market OPtion Id is1 '|| p_mo_rec.offer_market_option_id);
111: OPEN c_mo_uk(p_mo_rec.offer_id,p_mo_rec.group_number);
104: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
105: OZF_Volume_Offer_disc_PVT.debug_message('Val mode is1 : '|| p_validation_mode);
106: OZF_Volume_Offer_disc_PVT.debug_message('Market OPtion Id is1 '|| p_mo_rec.offer_market_option_id);
107: IF (p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM)
108: AND (p_mo_rec.group_number IS NOT NULL AND p_mo_rec.group_number <> FND_API.G_MISS_NUM)
109: THEN
110: OZF_Volume_Offer_disc_PVT.debug_message('Market OPtion Id is1 '|| p_mo_rec.offer_market_option_id);
111: OPEN c_mo_uk(p_mo_rec.offer_id,p_mo_rec.group_number);
112: FETCH c_mo_uk INTO l_dummy;
113: IF ( c_mo_uk%NOTFOUND) THEN
114: NULL;
115: ELSE
116: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_MO_DUP');
117: x_return_status := FND_API.g_ret_sts_error;
118: END IF;
119: END IF;
120:
121: END IF;
122: */
123:
124: IF l_dummy = 1 THEN
125: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFFR_MO_DUP');
126: x_return_status := FND_API.g_ret_sts_error;
127: END IF;
128:
129: END check_mo_uk_items;
130:
138: BEGIN
139: OZF_Volume_Offer_disc_PVT.debug_message('Private API: ' || l_api_name || 'start');
140: OZF_Volume_Offer_disc_PVT.debug_message('Validation Mode is : ' || p_validation_mode || ' '|| JTF_PLSQL_API.g_create);
141:
142: x_return_status := FND_API.g_ret_sts_success;
143:
144: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
145: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM OR p_mo_rec.offer_id IS NULL THEN
146: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
141:
142: x_return_status := FND_API.g_ret_sts_success;
143:
144: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
145: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM OR p_mo_rec.offer_id IS NULL THEN
146: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
147: x_return_status := FND_API.g_ret_sts_error;
148: END IF;
149:
143:
144: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
145: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM OR p_mo_rec.offer_id IS NULL THEN
146: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
147: x_return_status := FND_API.g_ret_sts_error;
148: END IF;
149:
150: /*IF p_mo_rec.group_number = FND_API.G_MISS_NUM OR p_mo_rec.group_number IS NULL THEN
151: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
146: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
147: x_return_status := FND_API.g_ret_sts_error;
148: END IF;
149:
150: /*IF p_mo_rec.group_number = FND_API.G_MISS_NUM OR p_mo_rec.group_number IS NULL THEN
151: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
152: x_return_status := FND_API.g_ret_sts_error;
153: END IF;
154: */
148: END IF;
149:
150: /*IF p_mo_rec.group_number = FND_API.G_MISS_NUM OR p_mo_rec.group_number IS NULL THEN
151: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
152: x_return_status := FND_API.g_ret_sts_error;
153: END IF;
154: */
155: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR OR p_mo_rec.retroactive_flag IS NULL THEN
156: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
151: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
152: x_return_status := FND_API.g_ret_sts_error;
153: END IF;
154: */
155: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR OR p_mo_rec.retroactive_flag IS NULL THEN
156: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
157: x_return_status := FND_API.g_ret_sts_error;
158: END IF;
159:
153: END IF;
154: */
155: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR OR p_mo_rec.retroactive_flag IS NULL THEN
156: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
157: x_return_status := FND_API.g_ret_sts_error;
158: END IF;
159:
160: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR OR p_mo_rec.combine_schedule_flag IS NULL THEN
161: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
156: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
157: x_return_status := FND_API.g_ret_sts_error;
158: END IF;
159:
160: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR OR p_mo_rec.combine_schedule_flag IS NULL THEN
161: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
162: x_return_status := FND_API.g_ret_sts_error;
163: END IF;
164: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR OR p_mo_rec.volume_tracking_level_code IS NULL THEN
158: END IF;
159:
160: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR OR p_mo_rec.combine_schedule_flag IS NULL THEN
161: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
162: x_return_status := FND_API.g_ret_sts_error;
163: END IF;
164: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR OR p_mo_rec.volume_tracking_level_code IS NULL THEN
165: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
166: x_return_status := FND_API.g_ret_sts_error;
160: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR OR p_mo_rec.combine_schedule_flag IS NULL THEN
161: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
162: x_return_status := FND_API.g_ret_sts_error;
163: END IF;
164: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR OR p_mo_rec.volume_tracking_level_code IS NULL THEN
165: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
166: x_return_status := FND_API.g_ret_sts_error;
167: END IF;
168: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR OR p_mo_rec.accrue_to_code IS NULL THEN
162: x_return_status := FND_API.g_ret_sts_error;
163: END IF;
164: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR OR p_mo_rec.volume_tracking_level_code IS NULL THEN
165: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
166: x_return_status := FND_API.g_ret_sts_error;
167: END IF;
168: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR OR p_mo_rec.accrue_to_code IS NULL THEN
169: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
170: x_return_status := FND_API.g_ret_sts_error;
164: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR OR p_mo_rec.volume_tracking_level_code IS NULL THEN
165: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
166: x_return_status := FND_API.g_ret_sts_error;
167: END IF;
168: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR OR p_mo_rec.accrue_to_code IS NULL THEN
169: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
170: x_return_status := FND_API.g_ret_sts_error;
171: END IF;
172: IF p_mo_rec.precedence = FND_API.G_MISS_NUM OR p_mo_rec.precedence IS NULL THEN
166: x_return_status := FND_API.g_ret_sts_error;
167: END IF;
168: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR OR p_mo_rec.accrue_to_code IS NULL THEN
169: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
170: x_return_status := FND_API.g_ret_sts_error;
171: END IF;
172: IF p_mo_rec.precedence = FND_API.G_MISS_NUM OR p_mo_rec.precedence IS NULL THEN
173: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
174: END IF;
168: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR OR p_mo_rec.accrue_to_code IS NULL THEN
169: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
170: x_return_status := FND_API.g_ret_sts_error;
171: END IF;
172: IF p_mo_rec.precedence = FND_API.G_MISS_NUM OR p_mo_rec.precedence IS NULL THEN
173: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
174: END IF;
175:
176:
174: END IF;
175:
176:
177: ELSE
178: IF p_mo_rec.offer_market_option_id = FND_API.G_MISS_NUM THEN
179: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_market_option_id' );
180: x_return_status := FND_API.g_ret_sts_error;
181: END IF;
182:
176:
177: ELSE
178: IF p_mo_rec.offer_market_option_id = FND_API.G_MISS_NUM THEN
179: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_market_option_id' );
180: x_return_status := FND_API.g_ret_sts_error;
181: END IF;
182:
183: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM THEN
184: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
179: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_market_option_id' );
180: x_return_status := FND_API.g_ret_sts_error;
181: END IF;
182:
183: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM THEN
184: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
185: x_return_status := FND_API.g_ret_sts_error;
186: END IF;
187:
181: END IF;
182:
183: IF p_mo_rec.offer_id = FND_API.G_MISS_NUM THEN
184: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
185: x_return_status := FND_API.g_ret_sts_error;
186: END IF;
187:
188: /* IF p_mo_rec.group_number = FND_API.G_MISS_NUM THEN
189: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
184: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OFFER_ID' );
185: x_return_status := FND_API.g_ret_sts_error;
186: END IF;
187:
188: /* IF p_mo_rec.group_number = FND_API.G_MISS_NUM THEN
189: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
190: x_return_status := FND_API.g_ret_sts_error;
191: END IF;
192: */
186: END IF;
187:
188: /* IF p_mo_rec.group_number = FND_API.G_MISS_NUM THEN
189: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
190: x_return_status := FND_API.g_ret_sts_error;
191: END IF;
192: */
193: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR THEN
194: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
189: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'GROUP_NUMBER' );
190: x_return_status := FND_API.g_ret_sts_error;
191: END IF;
192: */
193: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR THEN
194: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
195: x_return_status := FND_API.g_ret_sts_error;
196: END IF;
197:
191: END IF;
192: */
193: IF p_mo_rec.retroactive_flag = FND_API.G_MISS_CHAR THEN
194: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
195: x_return_status := FND_API.g_ret_sts_error;
196: END IF;
197:
198: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR THEN
199: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
194: OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'RETROACTIVE_FLAG' );
195: x_return_status := FND_API.g_ret_sts_error;
196: END IF;
197:
198: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR THEN
199: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
200: x_return_status := FND_API.g_ret_sts_error;
201: END IF;
202: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR THEN
196: END IF;
197:
198: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR THEN
199: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
200: x_return_status := FND_API.g_ret_sts_error;
201: END IF;
202: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR THEN
203: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
204: x_return_status := FND_API.g_ret_sts_error;
198: IF p_mo_rec.combine_schedule_flag = FND_API.G_MISS_CHAR THEN
199: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','COMBINE_SCHEDULE_FLAG');
200: x_return_status := FND_API.g_ret_sts_error;
201: END IF;
202: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR THEN
203: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
204: x_return_status := FND_API.g_ret_sts_error;
205: END IF;
206: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR THEN
200: x_return_status := FND_API.g_ret_sts_error;
201: END IF;
202: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR THEN
203: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
204: x_return_status := FND_API.g_ret_sts_error;
205: END IF;
206: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR THEN
207: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
208: x_return_status := FND_API.g_ret_sts_error;
202: IF p_mo_rec.volume_tracking_level_code = FND_API.G_MISS_CHAR THEN
203: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','VOLUME_TRACKING_LEVEL_CODE');
204: x_return_status := FND_API.g_ret_sts_error;
205: END IF;
206: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR THEN
207: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
208: x_return_status := FND_API.g_ret_sts_error;
209: END IF;
210: IF p_mo_rec.precedence = FND_API.G_MISS_NUM THEN
204: x_return_status := FND_API.g_ret_sts_error;
205: END IF;
206: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR THEN
207: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
208: x_return_status := FND_API.g_ret_sts_error;
209: END IF;
210: IF p_mo_rec.precedence = FND_API.G_MISS_NUM THEN
211: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
212: x_return_status := FND_API.g_ret_sts_error;
206: IF p_mo_rec.accrue_to_code = FND_API.G_MISS_CHAR THEN
207: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','ACCRUE_TO_CODE');
208: x_return_status := FND_API.g_ret_sts_error;
209: END IF;
210: IF p_mo_rec.precedence = FND_API.G_MISS_NUM THEN
211: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
212: x_return_status := FND_API.g_ret_sts_error;
213: END IF;
214: IF p_mo_rec.object_version_number = FND_API.G_MISS_NUM OR p_mo_rec.object_version_number IS NULL THEN
208: x_return_status := FND_API.g_ret_sts_error;
209: END IF;
210: IF p_mo_rec.precedence = FND_API.G_MISS_NUM THEN
211: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
212: x_return_status := FND_API.g_ret_sts_error;
213: END IF;
214: IF p_mo_rec.object_version_number = FND_API.G_MISS_NUM OR p_mo_rec.object_version_number IS NULL THEN
215: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','OBJECT_VERSION_NUMBER');
216: x_return_status := FND_API.g_ret_sts_error;
210: IF p_mo_rec.precedence = FND_API.G_MISS_NUM THEN
211: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','PRECEDENCE');
212: x_return_status := FND_API.g_ret_sts_error;
213: END IF;
214: IF p_mo_rec.object_version_number = FND_API.G_MISS_NUM OR p_mo_rec.object_version_number IS NULL THEN
215: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','OBJECT_VERSION_NUMBER');
216: x_return_status := FND_API.g_ret_sts_error;
217: END IF;
218:
212: x_return_status := FND_API.g_ret_sts_error;
213: END IF;
214: IF p_mo_rec.object_version_number = FND_API.G_MISS_NUM OR p_mo_rec.object_version_number IS NULL THEN
215: OZF_UTILITY_PVT.Error_message('OZF_API_MISSING_FIELD','MISS_FIELD','OBJECT_VERSION_NUMBER');
216: x_return_status := FND_API.g_ret_sts_error;
217: END IF;
218:
219: END IF;
220:
230: CURSOR c_mo_grp(p_list_header_id NUMBER, p_group_number NUMBER) IS
231: SELECT 1 FROM dual WHERE EXISTS( SELECT 'X' FROM qp_qualifiers WHERE list_header_id = p_list_header_id AND qualifier_grouping_no = p_group_number);
232:
233: BEGIN
234: x_return_status := FND_API.G_RET_STS_SUCCESS;
235: IF p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM
236: THEN
237: IF ozf_utility_pvt.check_fk_exists('OZF_OFFERS','OFFER_ID',to_char(p_mo_rec.offer_id)) = FND_API.g_false THEN
238: OZF_Utility_PVT.Error_Message('OZF_INVALID_OFFER_ID' );
231: SELECT 1 FROM dual WHERE EXISTS( SELECT 'X' FROM qp_qualifiers WHERE list_header_id = p_list_header_id AND qualifier_grouping_no = p_group_number);
232:
233: BEGIN
234: x_return_status := FND_API.G_RET_STS_SUCCESS;
235: IF p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM
236: THEN
237: IF ozf_utility_pvt.check_fk_exists('OZF_OFFERS','OFFER_ID',to_char(p_mo_rec.offer_id)) = FND_API.g_false THEN
238: OZF_Utility_PVT.Error_Message('OZF_INVALID_OFFER_ID' );
239: x_return_status := FND_API.g_ret_sts_error;
233: BEGIN
234: x_return_status := FND_API.G_RET_STS_SUCCESS;
235: IF p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM
236: THEN
237: IF ozf_utility_pvt.check_fk_exists('OZF_OFFERS','OFFER_ID',to_char(p_mo_rec.offer_id)) = FND_API.g_false THEN
238: OZF_Utility_PVT.Error_Message('OZF_INVALID_OFFER_ID' );
239: x_return_status := FND_API.g_ret_sts_error;
240: END IF;
241: END IF;
235: IF p_mo_rec.offer_id IS NOT NULL AND p_mo_rec.offer_id <> FND_API.G_MISS_NUM
236: THEN
237: IF ozf_utility_pvt.check_fk_exists('OZF_OFFERS','OFFER_ID',to_char(p_mo_rec.offer_id)) = FND_API.g_false THEN
238: OZF_Utility_PVT.Error_Message('OZF_INVALID_OFFER_ID' );
239: x_return_status := FND_API.g_ret_sts_error;
240: END IF;
241: END IF;
242:
243: -- Fix for bug # 14724414
240: END IF;
241: END IF;
242:
243: -- Fix for bug # 14724414
244: IF p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM
245: THEN
246: IF ozf_utility_pvt.check_fk_exists('QP_LIST_HEADERS_ALL_B','list_header_id',to_char(p_mo_rec.qp_list_header_id)) = FND_API.g_false THEN
247: OZF_Utility_PVT.Error_Message('OZF_INVALID_QP_LIST_HEADER' );
248: x_return_status := FND_API.g_ret_sts_error;
242:
243: -- Fix for bug # 14724414
244: IF p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM
245: THEN
246: IF ozf_utility_pvt.check_fk_exists('QP_LIST_HEADERS_ALL_B','list_header_id',to_char(p_mo_rec.qp_list_header_id)) = FND_API.g_false THEN
247: OZF_Utility_PVT.Error_Message('OZF_INVALID_QP_LIST_HEADER' );
248: x_return_status := FND_API.g_ret_sts_error;
249: END IF;
250: END IF;
244: IF p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM
245: THEN
246: IF ozf_utility_pvt.check_fk_exists('QP_LIST_HEADERS_ALL_B','list_header_id',to_char(p_mo_rec.qp_list_header_id)) = FND_API.g_false THEN
247: OZF_Utility_PVT.Error_Message('OZF_INVALID_QP_LIST_HEADER' );
248: x_return_status := FND_API.g_ret_sts_error;
249: END IF;
250: END IF;
251:
252: IF p_mo_rec.beneficiary_party_id IS NOT NULL AND p_mo_rec.beneficiary_party_id <> FND_API.G_MISS_NUM THEN
248: x_return_status := FND_API.g_ret_sts_error;
249: END IF;
250: END IF;
251:
252: IF p_mo_rec.beneficiary_party_id IS NOT NULL AND p_mo_rec.beneficiary_party_id <> FND_API.G_MISS_NUM THEN
253: IF ozf_utility_pvt.check_fk_exists('QP_CUSTOMERS_V','CUSTOMER_ID',to_char(p_mo_rec.beneficiary_party_id)) = FND_API.g_false THEN
254: OZF_Utility_PVT.Error_Message('OZF_INVALID_BENEFICIARY' );
255: x_return_status := FND_API.g_ret_sts_error;
256: END IF;
249: END IF;
250: END IF;
251:
252: IF p_mo_rec.beneficiary_party_id IS NOT NULL AND p_mo_rec.beneficiary_party_id <> FND_API.G_MISS_NUM THEN
253: IF ozf_utility_pvt.check_fk_exists('QP_CUSTOMERS_V','CUSTOMER_ID',to_char(p_mo_rec.beneficiary_party_id)) = FND_API.g_false THEN
254: OZF_Utility_PVT.Error_Message('OZF_INVALID_BENEFICIARY' );
255: x_return_status := FND_API.g_ret_sts_error;
256: END IF;
257: END IF;
251:
252: IF p_mo_rec.beneficiary_party_id IS NOT NULL AND p_mo_rec.beneficiary_party_id <> FND_API.G_MISS_NUM THEN
253: IF ozf_utility_pvt.check_fk_exists('QP_CUSTOMERS_V','CUSTOMER_ID',to_char(p_mo_rec.beneficiary_party_id)) = FND_API.g_false THEN
254: OZF_Utility_PVT.Error_Message('OZF_INVALID_BENEFICIARY' );
255: x_return_status := FND_API.g_ret_sts_error;
256: END IF;
257: END IF;
258:
259: /* IF (p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM)
255: x_return_status := FND_API.g_ret_sts_error;
256: END IF;
257: END IF;
258:
259: /* IF (p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM)
260: AND (p_mo_rec.group_number IS NOT NULL AND p_mo_rec.group_number <> FND_API.G_MISS_NUM)
261: THEN
262: OPEN c_mo_grp(p_mo_rec.qp_list_header_id,p_mo_rec.group_number);
263: FETCH c_mo_grp INTO l_dummy;
256: END IF;
257: END IF;
258:
259: /* IF (p_mo_rec.qp_list_header_id IS NOT NULL AND p_mo_rec.qp_list_header_id <> FND_API.G_MISS_NUM)
260: AND (p_mo_rec.group_number IS NOT NULL AND p_mo_rec.group_number <> FND_API.G_MISS_NUM)
261: THEN
262: OPEN c_mo_grp(p_mo_rec.qp_list_header_id,p_mo_rec.group_number);
263: FETCH c_mo_grp INTO l_dummy;
264: IF (c_mo_grp%NOTFOUND) THEN
262: OPEN c_mo_grp(p_mo_rec.qp_list_header_id,p_mo_rec.group_number);
263: FETCH c_mo_grp INTO l_dummy;
264: IF (c_mo_grp%NOTFOUND) THEN
265: OZF_Utility_PVT.Error_Message('OZF_OFFR_INV_LH_GRP' );
266: x_return_status := FND_API.g_ret_sts_error;
267: END IF;
268: END IF;
269: */
270: END check_mo_fk_items;
275: , x_return_status OUT NOCOPY VARCHAR2
276: )
277: IS
278: BEGIN
279: x_return_status := FND_API.G_RET_STS_SUCCESS;
280: IF p_mo_rec.volume_tracking_level_code <> FND_API.G_MISS_CHAR AND p_mo_rec.volume_tracking_level_code IS NOT NULL THEN
281: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_TRACKING_LEVEL', p_mo_rec.volume_tracking_level_code) = FND_API.g_false THEN
282: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_VOL_TRK' );
283: x_return_status := FND_API.g_ret_sts_error;
276: )
277: IS
278: BEGIN
279: x_return_status := FND_API.G_RET_STS_SUCCESS;
280: IF p_mo_rec.volume_tracking_level_code <> FND_API.G_MISS_CHAR AND p_mo_rec.volume_tracking_level_code IS NOT NULL THEN
281: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_TRACKING_LEVEL', p_mo_rec.volume_tracking_level_code) = FND_API.g_false THEN
282: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_VOL_TRK' );
283: x_return_status := FND_API.g_ret_sts_error;
284: END IF;
277: IS
278: BEGIN
279: x_return_status := FND_API.G_RET_STS_SUCCESS;
280: IF p_mo_rec.volume_tracking_level_code <> FND_API.G_MISS_CHAR AND p_mo_rec.volume_tracking_level_code IS NOT NULL THEN
281: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_TRACKING_LEVEL', p_mo_rec.volume_tracking_level_code) = FND_API.g_false THEN
282: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_VOL_TRK' );
283: x_return_status := FND_API.g_ret_sts_error;
284: END IF;
285: END IF;
279: x_return_status := FND_API.G_RET_STS_SUCCESS;
280: IF p_mo_rec.volume_tracking_level_code <> FND_API.G_MISS_CHAR AND p_mo_rec.volume_tracking_level_code IS NOT NULL THEN
281: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_TRACKING_LEVEL', p_mo_rec.volume_tracking_level_code) = FND_API.g_false THEN
282: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_VOL_TRK' );
283: x_return_status := FND_API.g_ret_sts_error;
284: END IF;
285: END IF;
286:
287: IF p_mo_rec.accrue_to_code <> FND_API.G_MISS_CHAR AND p_mo_rec.accrue_to_code IS NOT NULL THEN
283: x_return_status := FND_API.g_ret_sts_error;
284: END IF;
285: END IF;
286:
287: IF p_mo_rec.accrue_to_code <> FND_API.G_MISS_CHAR AND p_mo_rec.accrue_to_code IS NOT NULL THEN
288: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_ACCRUE_TO', p_mo_rec.accrue_to_code) = FND_API.g_false THEN
289: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_ACCR_TO' );
290: x_return_status := FND_API.g_ret_sts_error;
291: END IF;
284: END IF;
285: END IF;
286:
287: IF p_mo_rec.accrue_to_code <> FND_API.G_MISS_CHAR AND p_mo_rec.accrue_to_code IS NOT NULL THEN
288: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_ACCRUE_TO', p_mo_rec.accrue_to_code) = FND_API.g_false THEN
289: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_ACCR_TO' );
290: x_return_status := FND_API.g_ret_sts_error;
291: END IF;
292: END IF;
286:
287: IF p_mo_rec.accrue_to_code <> FND_API.G_MISS_CHAR AND p_mo_rec.accrue_to_code IS NOT NULL THEN
288: IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_VO_ACCRUE_TO', p_mo_rec.accrue_to_code) = FND_API.g_false THEN
289: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_ACCR_TO' );
290: x_return_status := FND_API.g_ret_sts_error;
291: END IF;
292: END IF;
293: END check_mo_lkup_items;
294:
299: , x_return_status OUT NOCOPY VARCHAR2
300: )
301: IS
302: BEGIN
303: x_return_status := FND_API.G_RET_STS_SUCCESS;
304: IF p_mo_rec.retroactive_flag IS NOT NULL AND p_mo_rec.retroactive_flag <> FND_API.G_MISS_CHAR THEN
305: IF upper(p_mo_rec.retroactive_flag) <> 'Y' AND upper(p_mo_rec.retroactive_flag) <> 'N' THEN
306: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_RETROACT_FLAG' );
307: x_return_status := FND_API.g_ret_sts_error;
300: )
301: IS
302: BEGIN
303: x_return_status := FND_API.G_RET_STS_SUCCESS;
304: IF p_mo_rec.retroactive_flag IS NOT NULL AND p_mo_rec.retroactive_flag <> FND_API.G_MISS_CHAR THEN
305: IF upper(p_mo_rec.retroactive_flag) <> 'Y' AND upper(p_mo_rec.retroactive_flag) <> 'N' THEN
306: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_RETROACT_FLAG' );
307: x_return_status := FND_API.g_ret_sts_error;
308: END IF;
303: x_return_status := FND_API.G_RET_STS_SUCCESS;
304: IF p_mo_rec.retroactive_flag IS NOT NULL AND p_mo_rec.retroactive_flag <> FND_API.G_MISS_CHAR THEN
305: IF upper(p_mo_rec.retroactive_flag) <> 'Y' AND upper(p_mo_rec.retroactive_flag) <> 'N' THEN
306: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_RETROACT_FLAG' );
307: x_return_status := FND_API.g_ret_sts_error;
308: END IF;
309: END IF;
310:
311: IF p_mo_rec.combine_schedule_flag IS NOT NULL AND p_mo_rec.combine_schedule_flag <> FND_API.G_MISS_CHAR THEN
307: x_return_status := FND_API.g_ret_sts_error;
308: END IF;
309: END IF;
310:
311: IF p_mo_rec.combine_schedule_flag IS NOT NULL AND p_mo_rec.combine_schedule_flag <> FND_API.G_MISS_CHAR THEN
312: IF upper(p_mo_rec.combine_schedule_flag) <> 'Y' AND upper(p_mo_rec.combine_schedule_flag) <> 'N' THEN
313: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_COMB_TIERS' );
314: x_return_status := FND_API.g_ret_sts_error;
315: END IF;
310:
311: IF p_mo_rec.combine_schedule_flag IS NOT NULL AND p_mo_rec.combine_schedule_flag <> FND_API.G_MISS_CHAR THEN
312: IF upper(p_mo_rec.combine_schedule_flag) <> 'Y' AND upper(p_mo_rec.combine_schedule_flag) <> 'N' THEN
313: OZF_Utility_PVT.Error_Message('OZF_OFFR_MO_INV_COMB_TIERS' );
314: x_return_status := FND_API.g_ret_sts_error;
315: END IF;
316: END IF;
317:
318: END check_mo_attr;
324: , x_return_status OUT NOCOPY VARCHAR2
325: )
326: IS
327: BEGIN
328: x_return_status := FND_API.G_RET_STS_SUCCESS;
329: END check_mo_inter_attr;
330:
331: PROCEDURE check_mo_entity(
332: p_mo_rec IN vo_mo_rec_type
334: , x_return_status OUT NOCOPY VARCHAR2
335: )
336: IS
337: BEGIN
338: x_return_status := FND_API.G_RET_STS_SUCCESS;
339: END check_mo_entity;
340:
341:
342:
347: )
348: IS
349: BEGIN
350: -- initialize
351: x_return_status := FND_API.G_RET_STS_SUCCESS;
352: -- check unique items
353: check_mo_uk_items(
354: p_mo_rec => p_mo_rec
355: , p_validation_mode => p_validation_mode
354: p_mo_rec => p_mo_rec
355: , p_validation_mode => p_validation_mode
356: , x_return_status => x_return_status
357: );
358: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
359: RAISE FND_API.G_EXC_ERROR;
360: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
362: END IF;
355: , p_validation_mode => p_validation_mode
356: , x_return_status => x_return_status
357: );
358: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
359: RAISE FND_API.G_EXC_ERROR;
360: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
362: END IF;
363:
356: , x_return_status => x_return_status
357: );
358: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
359: RAISE FND_API.G_EXC_ERROR;
360: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
362: END IF;
363:
364: -- check required items
357: );
358: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
359: RAISE FND_API.G_EXC_ERROR;
360: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
362: END IF;
363:
364: -- check required items
365: check_mo_req_items(
366: p_mo_rec => p_mo_rec
367: , p_validation_mode => p_validation_mode
368: , x_return_status => x_return_status
369: );
370: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
371: RAISE FND_API.G_EXC_ERROR;
372: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
373: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
374: END IF;
367: , p_validation_mode => p_validation_mode
368: , x_return_status => x_return_status
369: );
370: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
371: RAISE FND_API.G_EXC_ERROR;
372: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
373: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
374: END IF;
375:
368: , x_return_status => x_return_status
369: );
370: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
371: RAISE FND_API.G_EXC_ERROR;
372: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
373: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
374: END IF;
375:
376: -- check Foreign key items
369: );
370: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
371: RAISE FND_API.G_EXC_ERROR;
372: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
373: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
374: END IF;
375:
376: -- check Foreign key items
377: check_mo_fk_items(
379: , p_validation_mode => p_validation_mode
380: , x_return_status => x_return_status
381: );
382:
383: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
384: RAISE FND_API.G_EXC_ERROR;
385: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
380: , x_return_status => x_return_status
381: );
382:
383: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
384: RAISE FND_API.G_EXC_ERROR;
385: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
388:
381: );
382:
383: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
384: RAISE FND_API.G_EXC_ERROR;
385: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
388:
389: -- check lookup items
382:
383: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
384: RAISE FND_API.G_EXC_ERROR;
385: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
388:
389: -- check lookup items
390: check_mo_lkup_items(
392: , p_validation_mode => p_validation_mode
393: , x_return_status => x_return_status
394: );
395:
396: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
397: RAISE FND_API.G_EXC_ERROR;
398: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400: END IF;
393: , x_return_status => x_return_status
394: );
395:
396: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
397: RAISE FND_API.G_EXC_ERROR;
398: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400: END IF;
401:
394: );
395:
396: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
397: RAISE FND_API.G_EXC_ERROR;
398: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400: END IF;
401:
402: -- check mo attributes
395:
396: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
397: RAISE FND_API.G_EXC_ERROR;
398: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400: END IF;
401:
402: -- check mo attributes
403: check_mo_attr(
405: , p_validation_mode => p_validation_mode
406: , x_return_status => x_return_status
407: );
408:
409: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
410: RAISE FND_API.G_EXC_ERROR;
411: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
413: END IF;
406: , x_return_status => x_return_status
407: );
408:
409: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
410: RAISE FND_API.G_EXC_ERROR;
411: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
413: END IF;
414:
407: );
408:
409: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
410: RAISE FND_API.G_EXC_ERROR;
411: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
413: END IF;
414:
415: -- check mo inter attributes
408:
409: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
410: RAISE FND_API.G_EXC_ERROR;
411: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
413: END IF;
414:
415: -- check mo inter attributes
416: check_mo_inter_attr(
418: , p_validation_mode => p_validation_mode
419: , x_return_status => x_return_status
420: );
421:
422: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
423: RAISE FND_API.G_EXC_ERROR;
424: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
425: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426: END IF;
419: , x_return_status => x_return_status
420: );
421:
422: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
423: RAISE FND_API.G_EXC_ERROR;
424: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
425: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426: END IF;
427:
420: );
421:
422: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
423: RAISE FND_API.G_EXC_ERROR;
424: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
425: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426: END IF;
427:
428: -- check mo entity
421:
422: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
423: RAISE FND_API.G_EXC_ERROR;
424: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
425: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426: END IF;
427:
428: -- check mo entity
429: check_mo_entity(
431: , p_validation_mode => p_validation_mode
432: , x_return_status => x_return_status
433: );
434:
435: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
436: RAISE FND_API.G_EXC_ERROR;
437: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
438: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
439: END IF;
432: , x_return_status => x_return_status
433: );
434:
435: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
436: RAISE FND_API.G_EXC_ERROR;
437: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
438: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
439: END IF;
440:
433: );
434:
435: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
436: RAISE FND_API.G_EXC_ERROR;
437: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
438: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
439: END IF;
440:
441: END Check_mo_Items;
434:
435: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
436: RAISE FND_API.G_EXC_ERROR;
437: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
438: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
439: END IF;
440:
441: END Check_mo_Items;
442:
444:
445: PROCEDURE validate_market_options
446: (
447: p_api_version_number IN NUMBER
448: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
449: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
450: , p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
451: , x_return_status OUT NOCOPY VARCHAR2
452: , x_msg_count OUT NOCOPY NUMBER
445: PROCEDURE validate_market_options
446: (
447: p_api_version_number IN NUMBER
448: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
449: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
450: , p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
451: , x_return_status OUT NOCOPY VARCHAR2
452: , x_msg_count OUT NOCOPY NUMBER
453: , x_msg_data OUT NOCOPY VARCHAR2
462: -- Standard Start of API savepoint
463: SAVEPOINT validate_market_options_pvt;
464:
465: -- Standard call to check for call compatibility.
466: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
467: p_api_version_number,
468: l_api_name,
469: G_PKG_NAME)
470: THEN
467: p_api_version_number,
468: l_api_name,
469: G_PKG_NAME)
470: THEN
471: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
472: END IF;
473: -- Initialize message list if p_init_msg_list is set to TRUE.
474: IF FND_API.to_Boolean( p_init_msg_list )
475: THEN
470: THEN
471: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
472: END IF;
473: -- Initialize message list if p_init_msg_list is set to TRUE.
474: IF FND_API.to_Boolean( p_init_msg_list )
475: THEN
476: FND_MSG_PUB.initialize;
477: END IF;
478:
479: -- Debug Message
480: OZF_Volume_Offer_disc_PVT.debug_message('Private API: ' || l_api_name || 'start');
481:
482: -- Initialize API return status to SUCCESS
483: x_return_status := FND_API.G_RET_STS_SUCCESS;
484:
485: -- check items
486: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
487: Check_mo_Items(
488: p_mo_rec => p_mo_rec,
489: p_validation_mode => p_validation_mode,
490: x_return_status => x_return_status
491: );
492: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
493: RAISE FND_API.G_EXC_ERROR;
494: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
495: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496: END IF;
489: p_validation_mode => p_validation_mode,
490: x_return_status => x_return_status
491: );
492: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
493: RAISE FND_API.G_EXC_ERROR;
494: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
495: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496: END IF;
497: END IF;
490: x_return_status => x_return_status
491: );
492: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
493: RAISE FND_API.G_EXC_ERROR;
494: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
495: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496: END IF;
497: END IF;
498: IF p_validation_mode = JTF_PLSQL_API.g_update THEN
491: );
492: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
493: RAISE FND_API.G_EXC_ERROR;
494: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
495: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496: END IF;
497: END IF;
498: IF p_validation_mode = JTF_PLSQL_API.g_update THEN
499: /* Complete_mo_Rec(
504: -- END IF;
505: /* IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
506: Validate_vo_discounts_rec(
507: p_api_version_number => 1.0,
508: p_init_msg_list => FND_API.G_FALSE,
509: x_return_status => x_return_status,
510: x_msg_count => x_msg_count,
511: x_msg_data => x_msg_data,
512: p_vo_disc_rec => l_vo_disc_rec);
510: x_msg_count => x_msg_count,
511: x_msg_data => x_msg_data,
512: p_vo_disc_rec => l_vo_disc_rec);
513: */
514: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
515: RAISE FND_API.G_EXC_ERROR;
516: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
511: x_msg_data => x_msg_data,
512: p_vo_disc_rec => l_vo_disc_rec);
513: */
514: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
515: RAISE FND_API.G_EXC_ERROR;
516: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
519: END IF;
512: p_vo_disc_rec => l_vo_disc_rec);
513: */
514: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
515: RAISE FND_API.G_EXC_ERROR;
516: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
519: END IF;
520:
513: */
514: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
515: RAISE FND_API.G_EXC_ERROR;
516: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
519: END IF;
520:
521: -- exception
532: );
533: EXCEPTION
534:
535: WHEN OZF_Utility_PVT.resource_locked THEN
536: x_return_status := FND_API.g_ret_sts_error;
537: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
538:
539: WHEN FND_API.G_EXC_ERROR THEN
540: ROLLBACK TO validate_market_options_pvt;
535: WHEN OZF_Utility_PVT.resource_locked THEN
536: x_return_status := FND_API.g_ret_sts_error;
537: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
538:
539: WHEN FND_API.G_EXC_ERROR THEN
540: ROLLBACK TO validate_market_options_pvt;
541: x_return_status := FND_API.G_RET_STS_ERROR;
542: -- Standard call to get message count and if count=1, get the message
543: FND_MSG_PUB.Count_And_Get (
537: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
538:
539: WHEN FND_API.G_EXC_ERROR THEN
540: ROLLBACK TO validate_market_options_pvt;
541: x_return_status := FND_API.G_RET_STS_ERROR;
542: -- Standard call to get message count and if count=1, get the message
543: FND_MSG_PUB.Count_And_Get (
544: p_encoded => FND_API.G_FALSE,
545: p_count => x_msg_count,
540: ROLLBACK TO validate_market_options_pvt;
541: x_return_status := FND_API.G_RET_STS_ERROR;
542: -- Standard call to get message count and if count=1, get the message
543: FND_MSG_PUB.Count_And_Get (
544: p_encoded => FND_API.G_FALSE,
545: p_count => x_msg_count,
546: p_data => x_msg_data
547: );
548:
545: p_count => x_msg_count,
546: p_data => x_msg_data
547: );
548:
549: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
550: ROLLBACK TO validate_market_options_pvt;
551: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
552: -- Standard call to get message count and if count=1, get the message
553: FND_MSG_PUB.Count_And_Get (
547: );
548:
549: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
550: ROLLBACK TO validate_market_options_pvt;
551: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
552: -- Standard call to get message count and if count=1, get the message
553: FND_MSG_PUB.Count_And_Get (
554: p_encoded => FND_API.G_FALSE,
555: p_count => x_msg_count,
550: ROLLBACK TO validate_market_options_pvt;
551: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
552: -- Standard call to get message count and if count=1, get the message
553: FND_MSG_PUB.Count_And_Get (
554: p_encoded => FND_API.G_FALSE,
555: p_count => x_msg_count,
556: p_data => x_msg_data
557: );
558:
557: );
558:
559: WHEN OTHERS THEN
560: ROLLBACK TO validate_market_options_pvt;
561: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
562: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
563: THEN
564: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
565: END IF;
564: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
565: END IF;
566: -- Standard call to get message count and if count=1, get the message
567: FND_MSG_PUB.Count_And_Get (
568: p_encoded => FND_API.G_FALSE,
569: p_count => x_msg_count,
570: p_data => x_msg_data
571: );
572: END validate_market_options;
603: -- ==============================================================================
604:
605: PROCEDURE Create_market_options(
606: p_api_version_number IN NUMBER,
607: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
608: p_commit IN VARCHAR2 := FND_API.G_FALSE,
609: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
610:
611: x_return_status OUT NOCOPY VARCHAR2,
604:
605: PROCEDURE Create_market_options(
606: p_api_version_number IN NUMBER,
607: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
608: p_commit IN VARCHAR2 := FND_API.G_FALSE,
609: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
610:
611: x_return_status OUT NOCOPY VARCHAR2,
612: x_msg_count OUT NOCOPY NUMBER,
605: PROCEDURE Create_market_options(
606: p_api_version_number IN NUMBER,
607: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
608: p_commit IN VARCHAR2 := FND_API.G_FALSE,
609: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
610:
611: x_return_status OUT NOCOPY VARCHAR2,
612: x_msg_count OUT NOCOPY NUMBER,
613: x_msg_data OUT NOCOPY VARCHAR2,
636: -- Standard Start of API savepoint
637: SAVEPOINT Create_market_options_pvt;
638:
639: -- Standard call to check for call compatibility.
640: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
641: p_api_version_number,
642: l_api_name,
643: G_PKG_NAME)
644: THEN
641: p_api_version_number,
642: l_api_name,
643: G_PKG_NAME)
644: THEN
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: END IF;
647:
648: -- Initialize message list if p_init_msg_list is set to TRUE.
649: IF FND_API.to_Boolean( p_init_msg_list )
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: END IF;
647:
648: -- Initialize message list if p_init_msg_list is set to TRUE.
649: IF FND_API.to_Boolean( p_init_msg_list )
650: THEN
651: FND_MSG_PUB.initialize;
652: END IF;
653:
654: -- Debug Message
655: OZF_Volume_Offer_disc_PVT.debug_message('Private API: ' || l_api_name || 'start');
656:
657: -- Initialize API return status to SUCCESS
658: x_return_status := FND_API.G_RET_STS_SUCCESS;
659:
660: -- =========================================================================
661: -- Validate Environment
662: -- =========================================================================
663:
664: IF FND_GLOBAL.USER_ID IS NULL
665: THEN
666: OZF_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
667: RAISE FND_API.G_EXC_ERROR;
668: END IF;
669:
670: l_mo_rec := p_mo_rec;
671:
669:
670: l_mo_rec := p_mo_rec;
671:
672:
673: IF p_mo_rec.offer_market_option_id IS NULL OR p_mo_rec.OFFER_MARKET_OPTION_ID = FND_API.g_miss_num THEN
674: LOOP
675: l_dummy := NULL;
676: OPEN c_id;
677: FETCH c_id INTO l_market_option_id;
686: l_market_option_id := p_mo_rec.offer_market_option_id;
687: END IF;
688:
689: -- if group_number is -1 then dont create a market option. But since the market option id may be required , set the returned market option id to -1
690: IF l_mo_rec.group_number IS NOT NULL AND l_mo_rec.group_number <> FND_API.G_MISS_NUM THEN
691: IF l_mo_rec.group_number <> -1 THEN
692: -- validate
693: validate_market_options
694: (
721: , p_last_update_date => SYSDATE
722: , p_last_update_login => FND_GLOBAL.conc_login_id
723: );
724:
725: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
726: RAISE FND_API.G_EXC_ERROR;
727: END IF;
728:
729: x_vo_market_option_id := l_market_option_id;
722: , p_last_update_login => FND_GLOBAL.conc_login_id
723: );
724:
725: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
726: RAISE FND_API.G_EXC_ERROR;
727: END IF;
728:
729: x_vo_market_option_id := l_market_option_id;
730: ELSE
732: END IF;
733: END IF;
734:
735: -- commit;
736: IF FND_API.to_Boolean( p_commit )
737: THEN
738: COMMIT WORK;
739: END IF;
740: -- Debug Message
748: );
749:
750: -- exception
751: EXCEPTION
752: WHEN FND_API.G_EXC_ERROR THEN
753: ROLLBACK TO Create_market_options_pvt;
754: x_return_status := FND_API.G_RET_STS_ERROR;
755: -- Standard call to get message count and if count=1, get the message
756: FND_MSG_PUB.Count_And_Get (
750: -- exception
751: EXCEPTION
752: WHEN FND_API.G_EXC_ERROR THEN
753: ROLLBACK TO Create_market_options_pvt;
754: x_return_status := FND_API.G_RET_STS_ERROR;
755: -- Standard call to get message count and if count=1, get the message
756: FND_MSG_PUB.Count_And_Get (
757: p_encoded => FND_API.G_FALSE,
758: p_count => x_msg_count,
753: ROLLBACK TO Create_market_options_pvt;
754: x_return_status := FND_API.G_RET_STS_ERROR;
755: -- Standard call to get message count and if count=1, get the message
756: FND_MSG_PUB.Count_And_Get (
757: p_encoded => FND_API.G_FALSE,
758: p_count => x_msg_count,
759: p_data => x_msg_data
760: );
761:
758: p_count => x_msg_count,
759: p_data => x_msg_data
760: );
761:
762: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
763: ROLLBACK TO Create_market_options_pvt;
764: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
765: -- Standard call to get message count and if count=1, get the message
766: FND_MSG_PUB.Count_And_Get (
760: );
761:
762: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
763: ROLLBACK TO Create_market_options_pvt;
764: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
765: -- Standard call to get message count and if count=1, get the message
766: FND_MSG_PUB.Count_And_Get (
767: p_encoded => FND_API.G_FALSE,
768: p_count => x_msg_count,
763: ROLLBACK TO Create_market_options_pvt;
764: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
765: -- Standard call to get message count and if count=1, get the message
766: FND_MSG_PUB.Count_And_Get (
767: p_encoded => FND_API.G_FALSE,
768: p_count => x_msg_count,
769: p_data => x_msg_data
770: );
771:
770: );
771:
772: WHEN OTHERS THEN
773: ROLLBACK TO Create_market_options_pvt;
774: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
775: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
776: THEN
777: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
778: END IF;
777: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
778: END IF;
779: -- Standard call to get message count and if count=1, get the message
780: FND_MSG_PUB.Count_And_Get (
781: p_encoded => FND_API.G_FALSE,
782: p_count => x_msg_count,
783: p_data => x_msg_data
784: );
785:
799: -- Parameters
800: --
801: -- IN
802: -- p_api_version_number IN NUMBER Required
803: -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
804: -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
805: -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
806: -- p_mo_rec IN vo_mo_rec_type Required Record Containing Market options Data
807: -- x_return_status OUT NOCOPY VARCHAR2
800: --
801: -- IN
802: -- p_api_version_number IN NUMBER Required
803: -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
804: -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
805: -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
806: -- p_mo_rec IN vo_mo_rec_type Required Record Containing Market options Data
807: -- x_return_status OUT NOCOPY VARCHAR2
808: -- x_msg_count OUT NOCOPY NUMBER
801: -- IN
802: -- p_api_version_number IN NUMBER Required
803: -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
804: -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
805: -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
806: -- p_mo_rec IN vo_mo_rec_type Required Record Containing Market options Data
807: -- x_return_status OUT NOCOPY VARCHAR2
808: -- x_msg_count OUT NOCOPY NUMBER
809: -- x_msg_data OUT NOCOPY VARCHAR2
818: -- ==============================================================================
819:
820: PROCEDURE Update_market_options(
821: p_api_version_number IN NUMBER,
822: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
823: p_commit IN VARCHAR2 := FND_API.G_FALSE,
824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
825:
826: x_return_status OUT NOCOPY VARCHAR2,
819:
820: PROCEDURE Update_market_options(
821: p_api_version_number IN NUMBER,
822: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
823: p_commit IN VARCHAR2 := FND_API.G_FALSE,
824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
825:
826: x_return_status OUT NOCOPY VARCHAR2,
827: x_msg_count OUT NOCOPY NUMBER,
820: PROCEDURE Update_market_options(
821: p_api_version_number IN NUMBER,
822: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
823: p_commit IN VARCHAR2 := FND_API.G_FALSE,
824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
825:
826: x_return_status OUT NOCOPY VARCHAR2,
827: x_msg_count OUT NOCOPY NUMBER,
828: x_msg_data OUT NOCOPY VARCHAR2,
849: --initialize
850: -- Standard Start of API savepoint
851: SAVEPOINT Update_market_options_pvt;
852: -- Standard call to check for call compatibility.
853: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
854: p_api_version_number,
855: l_api_name,
856: G_PKG_NAME)
857: THEN
854: p_api_version_number,
855: l_api_name,
856: G_PKG_NAME)
857: THEN
858: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
859: END IF;
860: -- Initialize message list if p_init_msg_list is set to TRUE.
861: IF FND_API.to_Boolean( p_init_msg_list )
862: THEN
857: THEN
858: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
859: END IF;
860: -- Initialize message list if p_init_msg_list is set to TRUE.
861: IF FND_API.to_Boolean( p_init_msg_list )
862: THEN
863: FND_MSG_PUB.initialize;
864: END IF;
865: -- Debug Message
865: -- Debug Message
866: OZF_Volume_Offer_disc_PVT.debug_message('Private API: ' || l_api_name || 'start');
867:
868: -- Initialize API return status to SUCCESS
869: x_return_status := FND_API.G_RET_STS_SUCCESS;
870:
871: OPEN c_get_mo( l_tar_mo_rec.offer_market_option_id,l_tar_mo_rec.object_version_number);
872: FETCH c_get_mo INTO l_ref_mo_rec ;
873: If ( c_get_mo%NOTFOUND) THEN
873: If ( c_get_mo%NOTFOUND) THEN
874: OZF_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET'
875: , p_token_name => 'INFO'
876: , p_token_value => 'OZF_MARKET_OPTIONS') ;
877: RAISE FND_API.G_EXC_ERROR;
878: END IF;
879: CLOSE c_get_mo;
880:
881: If (l_tar_mo_rec.object_version_number is NULL or
878: END IF;
879: CLOSE c_get_mo;
880:
881: If (l_tar_mo_rec.object_version_number is NULL or
882: l_tar_mo_rec.object_version_number = FND_API.G_MISS_NUM ) Then
883: OZF_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING'
884: , p_token_name => 'COLUMN'
885: , p_token_value => 'Last_Update_Date') ;
886: RAISE FND_API.G_EXC_ERROR;
882: l_tar_mo_rec.object_version_number = FND_API.G_MISS_NUM ) Then
883: OZF_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING'
884: , p_token_name => 'COLUMN'
885: , p_token_value => 'Last_Update_Date') ;
886: RAISE FND_API.G_EXC_ERROR;
887: End if;
888: -- Check Whether record has been changed by someone else
889: If (l_tar_mo_rec.object_version_number <> l_ref_mo_rec.object_version_number) Then
890: OZF_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED'
889: If (l_tar_mo_rec.object_version_number <> l_ref_mo_rec.object_version_number) Then
890: OZF_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED'
891: , p_token_name => 'INFO'
892: , p_token_value => 'Ozf_Market_Options') ;
893: RAISE FND_API.G_EXC_ERROR;
894: End if;
895: -- validate
896: validate_market_options
897: (
904: , x_msg_data => x_msg_data
905: , p_mo_rec => l_tar_mo_rec
906: );
907: -- update
908: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
909: RAISE FND_API.G_EXC_ERROR;
910: END IF;
911:
912: OZF_OFFR_MARKET_OPTION_PKG.Update_Row(
905: , p_mo_rec => l_tar_mo_rec
906: );
907: -- update
908: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
909: RAISE FND_API.G_EXC_ERROR;
910: END IF;
911:
912: OZF_OFFR_MARKET_OPTION_PKG.Update_Row(
913: p_offer_market_option_id => l_tar_mo_rec.offer_market_option_id
927: , p_last_update_date => SYSDATE
928: , p_last_update_login => FND_GLOBAL.conc_login_id
929: );
930:
931: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
932: RAISE FND_API.G_EXC_ERROR;
933: END IF;
934:
935: IF FND_API.to_Boolean( p_commit )
928: , p_last_update_login => FND_GLOBAL.conc_login_id
929: );
930:
931: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
932: RAISE FND_API.G_EXC_ERROR;
933: END IF;
934:
935: IF FND_API.to_Boolean( p_commit )
936: THEN
931: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
932: RAISE FND_API.G_EXC_ERROR;
933: END IF;
934:
935: IF FND_API.to_Boolean( p_commit )
936: THEN
937: COMMIT WORK;
938: END IF;
939: -- Debug Message
947: -- exception
948: EXCEPTION
949:
950: WHEN OZF_Utility_PVT.resource_locked THEN
951: x_return_status := FND_API.g_ret_sts_error;
952: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
953:
954: WHEN FND_API.G_EXC_ERROR THEN
955: ROLLBACK TO Update_market_options_pvt;
950: WHEN OZF_Utility_PVT.resource_locked THEN
951: x_return_status := FND_API.g_ret_sts_error;
952: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
953:
954: WHEN FND_API.G_EXC_ERROR THEN
955: ROLLBACK TO Update_market_options_pvt;
956: x_return_status := FND_API.G_RET_STS_ERROR;
957: -- Standard call to get message count and if count=1, get the message
958: FND_MSG_PUB.Count_And_Get (
952: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
953:
954: WHEN FND_API.G_EXC_ERROR THEN
955: ROLLBACK TO Update_market_options_pvt;
956: x_return_status := FND_API.G_RET_STS_ERROR;
957: -- Standard call to get message count and if count=1, get the message
958: FND_MSG_PUB.Count_And_Get (
959: p_encoded => FND_API.G_FALSE,
960: p_count => x_msg_count,
955: ROLLBACK TO Update_market_options_pvt;
956: x_return_status := FND_API.G_RET_STS_ERROR;
957: -- Standard call to get message count and if count=1, get the message
958: FND_MSG_PUB.Count_And_Get (
959: p_encoded => FND_API.G_FALSE,
960: p_count => x_msg_count,
961: p_data => x_msg_data
962: );
963:
960: p_count => x_msg_count,
961: p_data => x_msg_data
962: );
963:
964: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
965: ROLLBACK TO Update_market_options_pvt;
966: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
967: -- Standard call to get message count and if count=1, get the message
968: FND_MSG_PUB.Count_And_Get (
962: );
963:
964: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
965: ROLLBACK TO Update_market_options_pvt;
966: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
967: -- Standard call to get message count and if count=1, get the message
968: FND_MSG_PUB.Count_And_Get (
969: p_encoded => FND_API.G_FALSE,
970: p_count => x_msg_count,
965: ROLLBACK TO Update_market_options_pvt;
966: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
967: -- Standard call to get message count and if count=1, get the message
968: FND_MSG_PUB.Count_And_Get (
969: p_encoded => FND_API.G_FALSE,
970: p_count => x_msg_count,
971: p_data => x_msg_data
972: );
973:
972: );
973:
974: WHEN OTHERS THEN
975: ROLLBACK TO Update_market_options_pvt;
976: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
977: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
978: THEN
979: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
980: END IF;
979: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
980: END IF;
981: -- Standard call to get message count and if count=1, get the message
982: FND_MSG_PUB.Count_And_Get (
983: p_encoded => FND_API.G_FALSE,
984: p_count => x_msg_count,
985: p_data => x_msg_data
986: );
987:
1021: -- End of Comments
1022: -- ==============================================================================
1023: PROCEDURE Delete_market_options(
1024: p_api_version_number IN NUMBER,
1025: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1026: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1027: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1028: x_return_status OUT NOCOPY VARCHAR2,
1029: x_msg_count OUT NOCOPY NUMBER,
1022: -- ==============================================================================
1023: PROCEDURE Delete_market_options(
1024: p_api_version_number IN NUMBER,
1025: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1026: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1027: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1028: x_return_status OUT NOCOPY VARCHAR2,
1029: x_msg_count OUT NOCOPY NUMBER,
1030: x_msg_data OUT NOCOPY VARCHAR2,
1023: PROCEDURE Delete_market_options(
1024: p_api_version_number IN NUMBER,
1025: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1026: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1027: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1028: x_return_status OUT NOCOPY VARCHAR2,
1029: x_msg_count OUT NOCOPY NUMBER,
1030: x_msg_data OUT NOCOPY VARCHAR2,
1031: p_offer_market_option_id IN NUMBER,
1039: -- Standard Start of API savepoint
1040: SAVEPOINT Delete_market_options_PVT;
1041:
1042: -- Standard call to check for call compatibility.
1043: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1044: p_api_version_number,
1045: l_api_name,
1046: G_PKG_NAME)
1047: THEN
1044: p_api_version_number,
1045: l_api_name,
1046: G_PKG_NAME)
1047: THEN
1048: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1049: END IF;
1050:
1051: -- Initialize message list if p_init_msg_list is set to TRUE.
1052: IF FND_API.to_Boolean( p_init_msg_list )
1048: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1049: END IF;
1050:
1051: -- Initialize message list if p_init_msg_list is set to TRUE.
1052: IF FND_API.to_Boolean( p_init_msg_list )
1053: THEN
1054: FND_MSG_PUB.initialize;
1055: END IF;
1056:
1054: FND_MSG_PUB.initialize;
1055: END IF;
1056:
1057: -- Initialize API return status to SUCCESS
1058: x_return_status := FND_API.G_RET_STS_SUCCESS;
1059:
1060: --
1061: -- Api body
1062: --
1071: -- End of API body
1072: --
1073:
1074: -- Standard check for p_commit
1075: IF FND_API.to_Boolean( p_commit )
1076: THEN
1077: COMMIT WORK;
1078: END IF;
1079:
1084: );
1085: EXCEPTION
1086:
1087: WHEN OZF_Utility_PVT.resource_locked THEN
1088: x_return_status := FND_API.g_ret_sts_error;
1089: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1090:
1091: WHEN FND_API.G_EXC_ERROR THEN
1092: ROLLBACK TO Delete_market_options_PVT;
1087: WHEN OZF_Utility_PVT.resource_locked THEN
1088: x_return_status := FND_API.g_ret_sts_error;
1089: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1090:
1091: WHEN FND_API.G_EXC_ERROR THEN
1092: ROLLBACK TO Delete_market_options_PVT;
1093: x_return_status := FND_API.G_RET_STS_ERROR;
1094: -- Standard call to get message count and if count=1, get the message
1095: FND_MSG_PUB.Count_And_Get (
1089: OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1090:
1091: WHEN FND_API.G_EXC_ERROR THEN
1092: ROLLBACK TO Delete_market_options_PVT;
1093: x_return_status := FND_API.G_RET_STS_ERROR;
1094: -- Standard call to get message count and if count=1, get the message
1095: FND_MSG_PUB.Count_And_Get (
1096: p_encoded => FND_API.G_FALSE,
1097: p_count => x_msg_count,
1092: ROLLBACK TO Delete_market_options_PVT;
1093: x_return_status := FND_API.G_RET_STS_ERROR;
1094: -- Standard call to get message count and if count=1, get the message
1095: FND_MSG_PUB.Count_And_Get (
1096: p_encoded => FND_API.G_FALSE,
1097: p_count => x_msg_count,
1098: p_data => x_msg_data
1099: );
1100:
1097: p_count => x_msg_count,
1098: p_data => x_msg_data
1099: );
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: ROLLBACK TO Delete_market_options_PVT;
1103: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1104: -- Standard call to get message count and if count=1, get the message
1105: FND_MSG_PUB.Count_And_Get (
1099: );
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: ROLLBACK TO Delete_market_options_PVT;
1103: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1104: -- Standard call to get message count and if count=1, get the message
1105: FND_MSG_PUB.Count_And_Get (
1106: p_encoded => FND_API.G_FALSE,
1107: p_count => x_msg_count,
1102: ROLLBACK TO Delete_market_options_PVT;
1103: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1104: -- Standard call to get message count and if count=1, get the message
1105: FND_MSG_PUB.Count_And_Get (
1106: p_encoded => FND_API.G_FALSE,
1107: p_count => x_msg_count,
1108: p_data => x_msg_data
1109: );
1110:
1109: );
1110:
1111: WHEN OTHERS THEN
1112: ROLLBACK TO Delete_market_options_PVT;
1113: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1114: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1115: THEN
1116: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1117: END IF;
1116: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1117: END IF;
1118: -- Standard call to get message count and if count=1, get the message
1119: FND_MSG_PUB.Count_And_Get (
1120: p_encoded => FND_API.G_FALSE,
1121: p_count => x_msg_count,
1122: p_data => x_msg_data
1123: );
1124: