DBA Data[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;