[Home] [Help]
PACKAGE BODY: APPS.OZF_QP_DISCOUNTS_PVT
Source
1 PACKAGE BODY OZF_QP_DISCOUNTS_PVT AS
2 /* $Header: ozfvoqpdb.pls 120.3 2005/08/24 06:47 rssharma noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --
7 -- Purpose
8 --
9 -- History
10 -- Thu Jul 07 2005:7/12 PM RSSHARMA Created
11 -- Wed Aug 24 2005:2/0 AM RSSHARMA Made all inout and out params nocopy
12 -- NOTE
13
14 -- End of Comments
15 -- ===============================================================
16 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_QP_DISCOUNTS_PVT';
17 G_FILE_NAME CONSTANT VARCHAR2(15) := 'ozfvoqpdb.pls';
18
19 PROCEDURE check_qp_disc_inter_attr
20 (
21 p_qp_disc_rec IN qp_discount_rec_type
22 , p_validation_mode IN VARCHAR2
23 , x_return_status OUT NOCOPY VARCHAR2
24 )
25 IS
26 CURSOR c_valid_offer(p_offer_discount_line_id NUMBER, p_list_line_id NUMBER) IS
27 SELECT 1 FROM DUAL
28 WHERE exists
29 (
30 SELECT 'X' FROM qp_list_lines a, ozf_offer_discount_lines b, ozf_offers c WHERE
31 a.list_header_id = c.qp_list_header_id
32 AND b.offer_id = c.offer_id
33 AND a.list_line_id = p_list_line_id
34 AND b.offer_discount_line_id = p_offer_discount_line_id
35 );
36 l_dummy NUMBER;
37 BEGIN
38 x_return_status := FND_API.G_RET_STS_SUCCESS;
39 OPEN c_valid_offer(p_qp_disc_rec.offer_discount_line_id, p_qp_disc_rec.list_line_id);
40 FETCH c_valid_offer INTO l_dummy;
41 IF c_valid_offer%NOTFOUND THEN
42 OZF_UTILITY_PVT.Error_message('OZF_QP_DISC_INV_LL_DL');
43 x_return_status := FND_API.G_RET_STS_ERROR;
44 CLOSE c_valid_offer;
45 RETURN;
46 ELSE
47 CLOSE c_valid_offer;
48 END IF;
49 END check_qp_disc_inter_attr;
50
51 PROCEDURE check_qp_disc_req_items
52 (
53 p_qp_disc_rec IN qp_discount_rec_type
54 , p_validation_mode IN VARCHAR2
55 , x_return_status OUT NOCOPY VARCHAR2
56 )
57 IS
58 BEGIN
59 x_return_status := FND_API.G_RET_STS_SUCCESS;
60 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
61 IF p_qp_disc_rec.list_line_id IS NULL OR p_qp_disc_rec.list_line_id = FND_API.G_MISS_NUM THEN
62 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','list_line_id');
63 x_return_status := FND_API.g_ret_sts_error;
64 return;
65 END IF;
66 IF p_qp_disc_rec.offer_discount_line_id IS NULL OR p_qp_disc_rec.offer_discount_line_id = FND_API.G_MISS_NUM THEN
67 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','offer_discount_line_id');
68 x_return_status := FND_API.g_ret_sts_error;
69 return;
70 END IF;
71 ELSE
72 IF p_qp_disc_rec.ozf_qp_discount_id = FND_API.G_MISS_NUM THEN
73 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','ozf_qp_discount_id');
74 x_return_status := FND_API.g_ret_sts_error;
75 return;
76 END IF;
77 IF p_qp_disc_rec.list_line_id = FND_API.G_MISS_NUM THEN
78 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','list_line_id');
79 x_return_status := FND_API.g_ret_sts_error;
80 return;
81 END IF;
82 IF p_qp_disc_rec.offer_discount_line_id = FND_API.G_MISS_NUM THEN
83 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','offer_discount_line_id');
84 x_return_status := FND_API.g_ret_sts_error;
85 return;
86 END IF;
87
88 IF p_qp_disc_rec.object_version_number = FND_API.G_MISS_NUM THEN
89 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD','MISS_FIELD','object_version_number');
90 x_return_status := FND_API.g_ret_sts_error;
91 return;
92 END IF;
93 END IF;
94 END check_qp_disc_req_items;
95
96 PROCEDURE check_qp_disc_uk_items
97 (
98 p_qp_disc_rec IN qp_discount_rec_type
99 , p_validation_mode IN VARCHAR2
100 , x_return_status OUT NOCOPY VARCHAR2
101 )
102 IS
103 BEGIN
104 x_return_status := FND_API.G_RET_STS_SUCCESS;
105 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
106 IF p_qp_disc_rec.ozf_qp_discount_id IS NOT NULL AND p_qp_disc_rec.ozf_qp_discount_id <> FND_API.G_MISS_NUM THEN
107 IF OZF_UTILITY_PVT.check_uniqueness('ozf_qp_discounts', 'ozf_qp_discount_id = '||p_qp_disc_rec.ozf_qp_discount_id) = FND_API.G_FALSE THEN
108 OZF_Utility_PVT.Error_Message('OZF_QP_DISC_PK_DUP');
109 x_return_status := FND_API.g_ret_sts_error;
110 return;
111 END IF;
112 END IF;
113 END IF;
114
115 IF
116 (
117 (p_qp_disc_rec.list_line_id IS NOT NULL AND p_qp_disc_rec.list_line_id <> FND_API.G_MISS_NUM)
118 AND
119 (p_qp_disc_rec.offer_discount_line_id IS NOT NULL AND p_qp_disc_rec.offer_discount_line_id <> FND_API.G_MISS_NUM)
120 )
121 THEN
122 IF OZF_UTILITY_PVT.check_uniqueness('ozf_qp_discounts', ' list_line_id = '|| p_qp_disc_rec.list_line_id || ' AND offer_discount_line_id = '|| p_qp_disc_rec.offer_discount_line_id) = FND_API.G_FALSE THEN
123 OZF_Utility_PVT.Error_Message('OZF_QP_DISC_DUP');
124 x_return_status := FND_API.g_ret_sts_error;
125 return;
126 END IF;
127 END IF;
128 END check_qp_disc_uk_items;
129
130 PROCEDURE check_qp_disc_fk_items
131 (
132 p_qp_disc_rec IN qp_discount_rec_type
133 , p_validation_mode IN VARCHAR2
134 , x_return_status OUT NOCOPY VARCHAR2
135 )
136 IS
137 BEGIN
138 x_return_status := FND_API.G_RET_STS_SUCCESS;
139 IF p_qp_disc_rec.list_line_id IS NOT NULL AND p_qp_disc_rec.list_line_id <> FND_API.G_MISS_NUM THEN
140 IF ozf_utility_pvt.check_fk_exists('qp_list_lines', 'list_line_id',to_char(p_qp_disc_rec.list_line_id)) = FND_API.G_FALSE THEN
141 OZF_Utility_PVT.Error_Message('OZF_QP_DISC_INV_LLID');
142 x_return_status := FND_API.g_ret_sts_error;
143 return;
144 END IF;
145 END IF;
146 IF p_qp_disc_rec.offer_discount_line_id IS NOT NULL AND p_qp_disc_rec.offer_discount_line_id <> FND_API.G_MISS_NUM THEN
147 IF ozf_utility_pvt.check_fk_exists('ozf_offer_discount_lines','offer_discount_line_id', to_char(p_qp_disc_rec.offer_discount_line_id)) = FND_API.G_FALSE THEN
148 OZF_Utility_PVT.Error_Message('OZF_QP_DISC_INV_ODID');
149 x_return_status := FND_API.g_ret_sts_error;
150 return;
151 END IF;
152 END IF;
153 END check_qp_disc_fk_items;
154
155
156
157 PROCEDURE check_ozf_qp_disc_items
158 (
159 p_qp_disc_rec IN qp_discount_rec_type
160 , p_validation_mode IN VARCHAR2
161 , x_return_status OUT NOCOPY VARCHAR2
162 )
163 IS
164 BEGIN
165 x_return_status := FND_API.G_RET_STS_SUCCESS;
166 check_qp_disc_req_items
167 (
168 p_qp_disc_rec => p_qp_disc_rec
169 , p_validation_mode => p_validation_mode
170 , x_return_status => x_return_status
171 );
172 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
173 RAISE FND_API.G_EXC_ERROR;
174 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
175 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
176 END IF;
177
178 check_qp_disc_uk_items
179 (
180 p_qp_disc_rec => p_qp_disc_rec
181 , p_validation_mode => p_validation_mode
182 , x_return_status => x_return_status
183 );
184 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
185 RAISE FND_API.G_EXC_ERROR;
186 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
187 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
188 END IF;
189
190 check_qp_disc_fk_items
191 (
192 p_qp_disc_rec => p_qp_disc_rec
193 , p_validation_mode => p_validation_mode
194 , x_return_status => x_return_status
195 );
196 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
197 RAISE FND_API.G_EXC_ERROR;
198 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
199 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
200 END IF;
201
202 check_qp_disc_inter_attr
203 (
204 p_qp_disc_rec => p_qp_disc_rec
205 , p_validation_mode => p_validation_mode
206 , x_return_status => x_return_status
207 );
208 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
209 RAISE FND_API.G_EXC_ERROR;
210 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
211 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
212 END IF;
213
214 END check_ozf_qp_disc_items;
215
216 PROCEDURE Validate_ozf_qp_discounts
217 (
218 p_api_version_number IN NUMBER,
219 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
220 p_commit IN VARCHAR2 := FND_API.G_FALSE,
221 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
222
223 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
224
225 x_return_status OUT NOCOPY VARCHAR2,
226 x_msg_count OUT NOCOPY NUMBER,
227 x_msg_data OUT NOCOPY VARCHAR2,
228
229 p_qp_disc_rec IN qp_discount_rec_type
230 )
231 IS
232 l_api_version_number CONSTANT NUMBER := 1.0;
233 l_api_name CONSTANT VARCHAR2(30) := 'Validate_ozf_qp_discounts';
234
235 BEGIN
236 IF NOT FND_API.Compatible_api_call(
237 l_api_version_number
238 , p_api_version_number
239 , l_api_name
240 , g_pkg_name
241 ) THEN
242 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
243 END IF;
244
245 ozf_utility_pvt.debug_message('Private API: '|| l_api_name || ' Start');
246
247 x_return_status := FND_API.G_RET_STS_SUCCESS;
248
249 IF p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_ITEM THEN
250 check_ozf_qp_disc_items(
251 p_qp_disc_rec => p_qp_disc_rec
252 , p_validation_mode => p_validation_mode
253 , x_return_status => x_return_status
254 );
255 END IF;
256 ozf_utility_pvt.debug_message('Private API: '|| l_api_name || ' End');
257 NULL;
258 END Validate_ozf_qp_discounts;
259
260 PROCEDURE Create_ozf_qp_discount
261 (
262 p_api_version_number IN NUMBER,
263 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
264 p_commit IN VARCHAR2 := FND_API.G_FALSE,
265 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
266
267 x_return_status OUT NOCOPY VARCHAR2,
268 x_msg_count OUT NOCOPY NUMBER,
269 x_msg_data OUT NOCOPY VARCHAR2,
270
271 p_qp_disc_rec IN qp_discount_rec_type,
272 x_qp_discount_id OUT NOCOPY NUMBER
273 )
274 IS
275 l_api_version_number CONSTANT NUMBER:= 1.0;
276 l_api_name CONSTANT VARCHAR2(30) := 'Create_ozf_qp_discount';
277 l_dummy NUMBER;
278 l_ozf_qp_discount_id NUMBER;
279 l_object_version_number NUMBER;
280 l_qp_disc_rec qp_discount_rec_type;
281
282 CURSOR c_id IS
283 SELECT ozf_qp_discounts_s.nextval FROM DUAL;
284
285 CURSOR c_id_exists(p_qp_discount_id NUMBER)
286 is
287 SELECT 1 FROM dual
288 WHERE EXISTS(SELECT 'X' FROM ozf_qp_discounts WHERE ozf_qp_discount_id = p_qp_discount_id);
289
290 BEGIN
291 -- INITIALIZE
292 -- savepoint
293 SAVEPOINT Create_ozf_qp_discount;
294 -- check api compatibility
295 IF NOT FND_API.Compatible_API_Call( l_api_version_number
296 , p_api_version_number
297 , l_api_name
298 , G_PKG_NAME) THEN
299 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
300 END IF;
301 -- initialize messages
302 FND_MSG_PUB.initialize;
303 -- debug start
304 ozf_utility_pvt.debug_message('Private API: '||l_api_name||' Start');
305 -- set return status
306 x_return_status := FND_API.G_RET_STS_SUCCESS;
307
308 IF FND_GLOBAL.USER_ID IS NULL THEN
309 OZF_Utility_PVT.Error_Message('USER_PROFILE_MISSING');
310 x_return_status := FND_API.G_RET_STS_ERROR;
311 END IF;
312
313 l_qp_disc_rec := p_qp_disc_rec;
314
315 IF p_qp_disc_rec.ozf_qp_discount_id IS NULL OR p_qp_disc_rec.ozf_qp_discount_id = FND_API.G_MISS_NUM THEN
316 LOOP
317 l_dummy := null;
318 OPEN c_id;
319 FETCH c_id INTO l_ozf_qp_discount_id;
320 CLOSE c_id;
321 OPEN c_id_exists(l_ozf_qp_discount_id);
322 FETCH c_id_exists INTO l_dummy;
323 CLOSE c_id_exists;
324 EXIT WHEN l_dummy IS NULL;
325 END LOOP;
326 ELSE
327 l_ozf_qp_discount_id := p_qp_disc_rec.ozf_qp_discount_id;
328 END IF;
329 -- validate
330
331 Validate_ozf_qp_discounts
332 (
333 p_api_version_number => p_api_version_number
334 , p_init_msg_list => p_init_msg_list
335 , p_commit => p_commit
336 , p_validation_level => p_validation_level
337 , p_validation_mode => JTF_PLSQL_API.g_create
338 , x_return_status => x_return_status
339 , x_msg_count => x_msg_count
340 , x_msg_data => x_msg_data
341 , p_qp_disc_rec => p_qp_disc_rec
342 );
343 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
344 RAISE FND_API.G_EXC_ERROR;
345 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
346 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
347 END IF;
348 -- insert
349 OZF_QP_DISCOUNTS_PKG.Insert_row
350 (
351 px_qp_discount_id => l_ozf_qp_discount_id
352 , p_list_line_id => p_qp_disc_rec.list_line_id
353 , p_offer_discount_line_id => p_qp_disc_rec.offer_discount_line_id
354 , px_object_version_number => l_object_version_number
355 , p_creation_date => sysdate
356 , p_created_by => FND_GLOBAL.user_id
357 , p_last_update_date => sysdate
358 , p_last_updated_by => FND_GLOBAL.user_id
359 , p_last_update_login => FND_GLOBAL.conc_login_id
360 );
361 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
362 RAISE FND_API.G_EXC_ERROR;
363 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
364 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
365 END IF;
366
367 x_qp_discount_id := l_ozf_qp_discount_id;
368 ozf_utility_pvt.debug_message('Private API: '|| l_api_name || ' End');
369 -- commit
370 IF FND_API.to_boolean(p_commit) THEN
371 COMMIT WORK;
372 END IF;
373 -- collect messages
374 FND_MSG_PUB.count_and_get
375 (
376 p_count => x_msg_count
377 , p_data =>x_msg_data
378 );
379 -- exception
380 EXCEPTION
381 WHEN FND_API.G_EXC_ERROR THEN
382 ROLLBACK TO Create_ozf_qp_discount;
383 x_return_status := FND_API.G_RET_STS_ERROR;
384 FND_MSG_PUB.count_and_get
385 (
386 p_encoded => FND_API.G_FALSE
387 , p_count => x_msg_count
388 , p_data => x_msg_data
389 );
390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
391 ROLLBACK TO Create_ozf_qp_discount;
392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
393 FND_MSG_PUB.count_and_get
394 (
395 p_encoded => FND_API.G_FALSE
396 , p_count => x_msg_count
397 , p_data => x_msg_data
398 );
399 WHEN OTHERS THEN
400 ROLLBACK TO Create_ozf_qp_discount;
401 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
402 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
403 FND_MSG_PUB.Add_exc_msg(G_PKG_NAME,l_api_name);
404 END IF;
405 FND_MSG_PUB.count_and_get(
406 p_encoded => FND_API.G_FALSE
407 , p_data => x_msg_data
408 , p_count => x_msg_count
409 );
410 END Create_ozf_qp_discount;
411
412
413
414 PROCEDURE Update_ozf_qp_discount
415 (
416 p_api_version_number IN NUMBER,
417 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
418 p_commit IN VARCHAR2 := FND_API.G_FALSE,
419 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
420
421 x_return_status OUT NOCOPY VARCHAR2,
422 x_msg_count OUT NOCOPY NUMBER,
423 x_msg_data OUT NOCOPY VARCHAR2,
424
425 p_qp_disc_rec IN qp_discount_rec_type
426 )
427 IS
428 l_api_version_number CONSTANT NUMBER := 1.0;
429 l_api_name CONSTANT VARCHAR2(30) := 'Update_ozf_qp_discount';
430
431 CURSOR c_get_qp_disc(p_ozf_qp_discount_id NUMBER, p_object_version_number NUMBER)
432 IS
433 SELECT * FROM ozf_qp_discounts
434 WHERE ozf_qp_discount_id = p_ozf_qp_discount_id
435 AND object_version_number = p_object_version_number;
436
437 l_ref_qp_disc c_get_qp_disc%ROWTYPE;
438
439 l_tar_qp_disc qp_discount_rec_type := p_qp_disc_rec;
440
441 BEGIN
442 SAVEPOINT Update_ozf_qp_discount;
443 IF NOT FND_API.Compatible_api_call
444 (
445 l_api_version_number
446 , p_api_version_number
447 , G_PKG_NAME
448 , l_api_name
449 )
450 THEN
451 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
452 END IF;
453 IF FND_API.to_boolean(p_init_msg_list) THEN
454 FND_MSG_PUB.initialize;
455 END IF;
456 ozf_utility_pvt.debug_message('Private API: '|| l_api_name || ' Start');
457 x_return_status := FND_API.G_RET_STS_SUCCESS;
458
459
460
461 IF l_tar_qp_disc.object_version_number IS NULL OR l_tar_qp_disc.object_version_number = FND_API.G_MISS_NUM THEN
462 OZF_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING'
463 , p_token_name => 'COLUMN'
464 , p_token_value => 'Last_Update_Date') ;
465 RAISE FND_API.G_EXC_ERROR;
466
467 END IF;
468
469 OPEN c_get_qp_disc(l_tar_qp_disc.ozf_qp_discount_id, l_tar_qp_disc.object_version_number);
470 FETCH c_get_qp_disc INTO l_ref_qp_disc;
471 IF (c_get_qp_disc%NOTFOUND) THEN
472 OZF_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET'
473 , p_token_name => 'INFO'
474 , p_token_value => 'OZF_QP_DISC') ;
475 RAISE FND_API.G_EXC_ERROR;
476 END IF;
477 CLOSE c_get_qp_disc;
478
479 IF l_tar_qp_disc.object_version_number <> l_ref_qp_disc.object_version_number THEN
480 OZF_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED'
481 , p_token_name => 'INFO'
482 , p_token_value => 'OZF_QP_DISC') ;
483 RAISE FND_API.G_EXC_ERROR;
484 END IF;
485
486 Validate_ozf_qp_discounts
487 (
488 p_api_version_number => p_api_version_number
489 , p_init_msg_list => p_init_msg_list
490 , p_commit => p_validation_level
491 , p_validation_level => p_validation_level
492 , p_validation_mode => JTF_PLSQL_API.g_update
493 , x_return_status => x_return_status
494 , x_msg_count => x_msg_count
495 , x_msg_data => x_msg_data
496 , p_qp_disc_rec => p_qp_disc_rec
497 );
498 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
499 RAISE FND_API.G_EXC_ERROR;
500 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
501 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
502 END IF;
503
504 OZF_QP_DISCOUNTS_PKG.Update_row
505 (
506 p_qp_discount_id => p_qp_disc_rec.ozf_qp_discount_id
507 , p_list_line_id => p_qp_disc_rec.list_line_id
508 , p_offer_discount_line_id => p_qp_disc_rec.offer_discount_line_id
509 , p_object_version_number => p_qp_disc_rec.object_version_number
510 , p_last_update_date => sysdate
511 , p_last_updated_by => FND_GLOBAL.user_id
512 , p_last_update_login => FND_GLOBAL.conc_login_id
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
520 ozf_utility_pvt.debug_message('Private API: '|| l_api_name ||' End');
521 IF FND_API.to_boolean(p_commit) THEN
522 COMMIT WORK;
523 END IF;
524
525 FND_MSG_PUB.count_and_get
526 (
527 p_data => x_msg_data
528 , p_count => x_msg_count
529 );
530
531 EXCEPTION
532 WHEN OZF_Utility_PVT.resource_locked THEN
533 x_return_status := FND_API.g_ret_sts_error;
534 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
535
536 WHEN FND_API.G_EXC_ERROR THEN
537 ROLLBACK TO Update_ozf_qp_discount;
538 x_return_status := FND_API.G_RET_STS_ERROR;
539 FND_MSG_PUB.count_and_get(
540 p_encoded => FND_API.g_false
541 , p_count => x_msg_count
542 , p_data => x_msg_data
543 );
544 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
545 ROLLBACK TO Update_ozf_qp_discount;
546 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
547 FND_MSG_PUB.count_and_get(
548 p_encoded => FND_API.g_false
549 , p_count => x_msg_count
550 , p_data => x_msg_data
551 );
552 WHEN OTHERS THEN
553 ROLLBACK TO Update_ozf_qp_discount;
554 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
555 IF FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
556 FND_MSG_PUB.Add_exc_msg(G_PKG_NAME, l_api_name);
557 END IF;
558 FND_MSG_PUB.count_and_get(
559 p_encoded => FND_API.g_false
560 , p_count => x_msg_count
561 , p_data => x_msg_data
562 );
563 END Update_ozf_qp_discount;
564
565 PROCEDURE Delete_ozf_qp_discount
566 (
567 p_api_version_number IN NUMBER,
568 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
569 p_commit IN VARCHAR2 := FND_API.G_FALSE,
570 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
571
572 x_return_status OUT NOCOPY VARCHAR2,
573 x_msg_count OUT NOCOPY NUMBER,
574 x_msg_data OUT NOCOPY VARCHAR2,
575
576 p_qp_discount_id IN NUMBER,
577 p_object_version_number IN NUMBER
578 )
579 IS
580 l_api_version_number CONSTANT NUMBER := 1.0;
581 l_api_name CONSTANT VARCHAR2(30) := 'Delete_ozf_qp_discount';
582 BEGIN
583 SAVEPOINT Delete_ozf_qp_discount;
584 IF NOT FND_API.Compatible_api_call
585 (
586 l_api_version_number
587 , p_api_version_number
588 , G_PKG_NAME
589 , l_api_name
590 )
591 THEN
592 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
593 END IF;
594
595 IF FND_API.to_boolean(p_init_msg_list) THEN
596 FND_MSG_PUB.initialize;
597 END IF;
598 ozf_utility_pvt.debug_message('Private API: '|| l_api_name|| ' Start');
599
600 x_return_status := FND_API.G_RET_STS_SUCCESS;
601
602 OZF_QP_DISCOUNTS_PKG.Delete_row(
603 p_qp_discount_id => p_qp_discount_id
604 , p_object_version_number => p_object_version_number
605 );
606 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
607 RAISE FND_API.G_EXC_ERROR;
608 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
609 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
610 END IF;
611
612 IF FND_API.to_boolean(p_commit) THEN
613 COMMIT WORK;
614 END IF;
615
616 FND_MSG_PUB.count_and_get(
617 p_count => x_msg_count
618 , p_data => x_msg_data
619 );
620
621 EXCEPTION
622 WHEN FND_API.G_EXC_ERROR THEN
623 ROLLBACK TO Delete_ozf_qp_discount;
624 x_return_status := FND_API.G_RET_STS_ERROR;
625 FND_MSG_PUB.count_and_get(
626 p_encoded => FND_API.g_false
627 , p_count => x_msg_count
628 , p_data => x_msg_data
629 );
630 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
631 ROLLBACK TO Delete_ozf_qp_discount;
632 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
633 FND_MSG_PUB.count_and_get(
634 p_encoded => FND_API.g_false
635 , p_count => x_msg_count
636 , p_data => x_msg_data
637 );
638 WHEN OTHERS THEN
639 ROLLBACK TO Delete_ozf_qp_discount;
640 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
641 IF FND_MSG_PUB.Check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
642 FND_MSG_PUB.Add_exc_msg(G_PKG_NAME,l_api_name);
643 END IF;
644 FND_MSG_PUB.count_and_get(
645 p_encoded => FND_API.g_false
646 , p_count => x_msg_count
647 , p_data => x_msg_data
648 );
649 END Delete_ozf_qp_discount;
650
651 END OZF_QP_DISCOUNTS_PVT;