[Home] [Help]
PACKAGE BODY: APPS.OZF_ADJ_NEW_LINE_PVT
Source
1 PACKAGE BODY OZF_Adj_New_Line_PVT as
2 /* $Header: ozfvanlb.pls 120.0 2006/03/30 13:54:36 rssharma noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- OZF_Adj_New_Line_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_Adj_New_Line_PVT';
16 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvoanb.pls';
17
18 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
19 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
20
21 -- Hint: Primary key needs to be returned.
22 PROCEDURE Create_Adj_New_Line(
23 p_api_version_number IN NUMBER,
24 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
25 p_commit IN VARCHAR2 := FND_API.G_FALSE,
26 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
27
28 x_return_status OUT NOCOPY VARCHAR2,
29 x_msg_count OUT NOCOPY NUMBER,
30 x_msg_data OUT NOCOPY VARCHAR2,
31
32 p_adj_new_line_rec IN adj_new_line_rec_type := g_miss_adj_new_line_rec,
33 x_offer_adj_new_line_id OUT NOCOPY NUMBER
34 )
35
36 IS
37 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Adj_New_Line';
38 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
39 l_return_status_full VARCHAR2(1);
40 l_object_version_number NUMBER := 1;
41 l_org_id NUMBER := FND_API.G_MISS_NUM;
42 l_OFFER_ADJ_NEW_LINE_ID NUMBER;
43 l_dummy NUMBER;
44
45 CURSOR c_id IS
46 SELECT OZF_OFFER_ADJ_NEW_LINES_s.NEXTVAL
47 FROM dual;
48
49 CURSOR c_id_exists (l_id IN NUMBER) IS
50 SELECT 1
51 FROM OZF_OFFER_ADJ_NEW_LINES
52 WHERE OFFER_ADJ_NEW_LINE_ID = l_id;
53
54 BEGIN
55 -- Standard Start of API savepoint
56 SAVEPOINT CREATE_Adj_New_Line_PVT;
57
58 -- Standard call to check for call compatibility.
59 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
60 p_api_version_number,
61 l_api_name,
62 G_PKG_NAME)
63 THEN
64 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
65 END IF;
66
67 -- Initialize message list if p_init_msg_list is set to TRUE.
68 IF FND_API.to_Boolean( p_init_msg_list )
69 THEN
70 FND_MSG_PUB.initialize;
71 END IF;
72
73 -- Debug Message
74 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
75
76
77 -- Initialize API return status to SUCCESS
78 x_return_status := FND_API.G_RET_STS_SUCCESS;
79
80 -- Local variable initialization
81
82 IF p_adj_new_line_rec.OFFER_ADJ_NEW_LINE_ID IS NULL OR p_adj_new_line_rec.OFFER_ADJ_NEW_LINE_ID = FND_API.g_miss_num THEN
83 LOOP
84 l_dummy := NULL;
85 OPEN c_id;
86 FETCH c_id INTO l_OFFER_ADJ_NEW_LINE_ID;
87 CLOSE c_id;
88
89 OPEN c_id_exists(l_OFFER_ADJ_NEW_LINE_ID);
90 FETCH c_id_exists INTO l_dummy;
91 CLOSE c_id_exists;
92 EXIT WHEN l_dummy IS NULL;
93 END LOOP;
94 END IF;
95
96 -- =========================================================================
97 -- Validate Environment
98 -- =========================================================================
99
100 IF FND_GLOBAL.User_Id IS NULL
101 THEN
102 OZF_UTILITY_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
103 RAISE FND_API.G_EXC_ERROR;
104 END IF;
105
106 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
107 THEN
108 -- Debug message
109 OZF_UTILITY_PVT.debug_message('Private API: Validate_Adj_New_Line');
110
111 -- Invoke validation procedures
112 Validate_adj_new_line(
113 p_api_version_number => 1.0,
114 p_init_msg_list => FND_API.G_FALSE,
115 p_validation_level => p_validation_level,
116 p_validation_mode => JTF_PLSQL_API.g_create,
117 p_adj_new_line_rec => p_adj_new_line_rec,
118 x_return_status => x_return_status,
119 x_msg_count => x_msg_count,
120 x_msg_data => x_msg_data);
121 END IF;
122
123 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
124 RAISE FND_API.G_EXC_ERROR;
125 END IF;
126
127
128 -- Debug Message
129 OZF_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
130
131 -- Invoke table handler(OZF_OFFER_ADJ_NEW_LINES_PKG.Insert_Row)
132
133 OZF_OFFER_ADJ_NEW_LINES_PKG.Insert_Row(
134 px_offer_adj_new_line_id => l_offer_adj_new_line_id,
135 p_offer_adjustment_id => p_adj_new_line_rec.offer_adjustment_id,
136 p_volume_from => p_adj_new_line_rec.volume_from,
137 p_volume_to => p_adj_new_line_rec.volume_to,
138 p_volume_type => p_adj_new_line_rec.volume_type,
139 p_discount => p_adj_new_line_rec.discount,
140 p_discount_type => p_adj_new_line_rec.discount_type,
141 p_tier_type => p_adj_new_line_rec.tier_type,
142 p_td_discount => p_adj_new_line_rec.td_discount,
143 p_td_discount_type => p_adj_new_line_rec.td_discount_type,
144 p_quantity => p_adj_new_line_rec.quantity,
145 p_benefit_price_list_line_id => p_adj_new_line_rec.benefit_price_list_line_id,
146 p_parent_adj_line_id => p_adj_new_line_rec.parent_adj_line_id,
147 p_start_date_active => p_adj_new_line_rec.start_date_active,
148 p_end_date_active => p_adj_new_line_rec.end_date_active,
149 p_creation_date => SYSDATE,
150 p_created_by => G_USER_ID,
151 p_last_update_date => SYSDATE,
152 p_last_updated_by => G_USER_ID,
153 p_last_update_login => G_LOGIN_ID,
154 px_object_version_number => l_object_version_number);
155 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
156 RAISE FND_API.G_EXC_ERROR;
157 END IF;
158
159 x_offer_adj_new_line_id := l_offer_adj_new_line_id;
160 --
161 -- End of API body
162 --
163
164 -- Standard check for p_commit
165 IF FND_API.to_Boolean( p_commit )
166 THEN
167 COMMIT WORK;
168 END IF;
169
170
171 -- Debug Message
172 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
173 EXCEPTION
174
175 WHEN OZF_UTILITY_PVT.resource_locked THEN
176 x_return_status := FND_API.g_ret_sts_error;
177 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
178
179 WHEN FND_API.G_EXC_ERROR THEN
180 ROLLBACK TO CREATE_Adj_New_Line_PVT;
181 x_return_status := FND_API.G_RET_STS_ERROR;
182 -- Standard call to get message count and if count=1, get the message
183 FND_MSG_PUB.Count_And_Get (
184 p_encoded => FND_API.G_FALSE,
185 p_count => x_msg_count,
186 p_data => x_msg_data
187 );
188
189 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
190 ROLLBACK TO CREATE_Adj_New_Line_PVT;
191 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
192 -- Standard call to get message count and if count=1, get the message
193 FND_MSG_PUB.Count_And_Get (
194 p_encoded => FND_API.G_FALSE,
195 p_count => x_msg_count,
196 p_data => x_msg_data
197 );
198
199 WHEN OTHERS THEN
200 ROLLBACK TO CREATE_Adj_New_Line_PVT;
201 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
202 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
203 THEN
204 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
205 END IF;
206 -- Standard call to get message count and if count=1, get the message
207 FND_MSG_PUB.Count_And_Get (
208 p_encoded => FND_API.G_FALSE,
209 p_count => x_msg_count,
210 p_data => x_msg_data
211 );
212 End Create_Adj_New_Line;
213
214
215 PROCEDURE Update_Adj_New_Line(
216 p_api_version_number IN NUMBER,
217 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
218 p_commit IN VARCHAR2 := FND_API.G_FALSE,
219 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
220
221 x_return_status OUT NOCOPY VARCHAR2,
222 x_msg_count OUT NOCOPY NUMBER,
223 x_msg_data OUT NOCOPY VARCHAR2,
224
225 p_adj_new_line_rec IN adj_new_line_rec_type,
226 x_object_version_number OUT NOCOPY NUMBER
227 )
228
229 IS
230
231 CURSOR c_get_adj_new_line(cp_offerAdjNewLineId NUMBER, cp_objectVersionNumber NUMBER) IS
232 SELECT *
233 FROM OZF_OFFER_ADJ_NEW_LINES
234 WHERE offer_adj_new_line_id = cp_offerAdjNewLineId
235 AND object_version_number = cp_objectVersionNumber;
236 -- Hint: Developer need to provide Where clause
237
238 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Adj_New_Line';
239 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
240 -- Local Variables
241 l_object_version_number NUMBER;
242 l_OFFER_ADJ_NEW_LINE_ID NUMBER;
243 l_ref_adj_new_line_rec c_get_Adj_New_Line%ROWTYPE ;
244 l_tar_adj_new_line_rec OZF_Adj_New_Line_PVT.adj_new_line_rec_type := P_adj_new_line_rec;
245 l_rowid ROWID;
246
247 BEGIN
248 -- Standard Start of API savepoint
249 SAVEPOINT UPDATE_Adj_New_Line_PVT;
250
251 -- Standard call to check for call compatibility.
252 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
253 p_api_version_number,
254 l_api_name,
255 G_PKG_NAME)
256 THEN
257 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
258 END IF;
259 -- Initialize message list if p_init_msg_list is set to TRUE.
260 IF FND_API.to_Boolean( p_init_msg_list )
261 THEN
262 FND_MSG_PUB.initialize;
263 END IF;
264 -- Debug Message
265 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
266 -- Initialize API return status to SUCCESS
267 x_return_status := FND_API.G_RET_STS_SUCCESS;
268 -- Debug Message
269 OZF_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
270 OPEN c_get_Adj_New_Line( l_tar_adj_new_line_rec.offer_adj_new_line_id , l_tar_adj_new_line_rec.object_version_number);
271 FETCH c_get_Adj_New_Line INTO l_ref_adj_new_line_rec ;
272
273 If ( c_get_Adj_New_Line%NOTFOUND) THEN
274 OZF_UTILITY_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
275 p_token_name => 'INFO',
276 p_token_value => 'Adj_New_Line') ;
277 RAISE FND_API.G_EXC_ERROR;
278 END IF;
279 -- Debug Message
280 OZF_UTILITY_PVT.debug_message('Private API: - Close Cursor');
281 CLOSE c_get_Adj_New_Line;
282
283
284
285 If (l_tar_adj_new_line_rec.object_version_number is NULL or
286 l_tar_adj_new_line_rec.object_version_number = FND_API.G_MISS_NUM ) Then
287 OZF_UTILITY_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
288 p_token_name => 'COLUMN',
289 p_token_value => 'Last_Update_Date') ;
290 raise FND_API.G_EXC_ERROR;
291 End if;
292 -- Check Whether record has been changed by someone else
293 If (l_tar_adj_new_line_rec.object_version_number <> l_ref_adj_new_line_rec.object_version_number) Then
294 OZF_UTILITY_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
295 p_token_name => 'INFO',
296 p_token_value => 'Adj_New_Line') ;
297 raise FND_API.G_EXC_ERROR;
298 End if;
299 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
300 THEN
301 -- Debug message
302 OZF_UTILITY_PVT.debug_message('Private API: Validate_Adj_New_Line');
303
304 -- Invoke validation procedures
305 Validate_adj_new_line(
306 p_api_version_number => 1.0,
307 p_init_msg_list => FND_API.G_FALSE,
308 p_validation_level => p_validation_level,
309 p_validation_mode => JTF_PLSQL_API.g_update,
310 p_adj_new_line_rec => p_adj_new_line_rec,
311 x_return_status => x_return_status,
312 x_msg_count => x_msg_count,
313 x_msg_data => x_msg_data);
314 END IF;
315
316 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
317 RAISE FND_API.G_EXC_ERROR;
318 END IF;
319 ozf_utility_pvt.debug_message('After validate: return:'||x_return_status);
320 -- Invoke table handler(OZF_OFFER_ADJ_NEW_LINES_PKG.Update_Row)
321 OZF_OFFER_ADJ_NEW_LINES_PKG.Update_Row(
322 p_offer_adj_new_line_id => p_adj_new_line_rec.offer_adj_new_line_id,
323 p_offer_adjustment_id => p_adj_new_line_rec.offer_adjustment_id,
324 p_volume_from => p_adj_new_line_rec.volume_from,
325 p_volume_to => p_adj_new_line_rec.volume_to,
326 p_volume_type => p_adj_new_line_rec.volume_type,
327 p_discount => p_adj_new_line_rec.discount,
328 p_discount_type => p_adj_new_line_rec.discount_type,
329 p_tier_type => p_adj_new_line_rec.tier_type,
330 p_td_discount => p_adj_new_line_rec.td_discount,
331 p_td_discount_type => p_adj_new_line_rec.td_discount_type,
332 p_quantity => p_adj_new_line_rec.quantity,
333 p_benefit_price_list_line_id => p_adj_new_line_rec.benefit_price_list_line_id,
334 p_parent_adj_line_id => p_adj_new_line_rec.parent_adj_line_id,
335 p_start_date_active => p_adj_new_line_rec.start_date_active,
336 p_end_date_active => p_adj_new_line_rec.end_date_active,
337 p_last_update_date => SYSDATE,
338 p_last_updated_by => G_USER_ID,
339 p_last_update_login => G_LOGIN_ID,
343 --
340 p_object_version_number => p_adj_new_line_rec.object_version_number);
341 --
342 -- End of API body.
344 -- Standard check for p_commit
345 IF FND_API.to_Boolean( p_commit )
346 THEN
347 COMMIT WORK;
348 END IF;
349 -- Debug Message
350 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
351 EXCEPTION
352
353 WHEN OZF_UTILITY_PVT.resource_locked THEN
354 x_return_status := FND_API.g_ret_sts_error;
355 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
356
357 WHEN FND_API.G_EXC_ERROR THEN
358 ROLLBACK TO UPDATE_Adj_New_Line_PVT;
359 x_return_status := FND_API.G_RET_STS_ERROR;
360 -- Standard call to get message count and if count=1, get the message
361 FND_MSG_PUB.Count_And_Get (
362 p_encoded => FND_API.G_FALSE,
363 p_count => x_msg_count,
364 p_data => x_msg_data
365 );
366
367 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
368 ROLLBACK TO UPDATE_Adj_New_Line_PVT;
369 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
370 -- Standard call to get message count and if count=1, get the message
371 FND_MSG_PUB.Count_And_Get (
372 p_encoded => FND_API.G_FALSE,
373 p_count => x_msg_count,
374 p_data => x_msg_data
375 );
376
377 WHEN OTHERS THEN
378 ROLLBACK TO UPDATE_Adj_New_Line_PVT;
379 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
381 THEN
382 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
383 END IF;
384 -- Standard call to get message count and if count=1, get the message
385 FND_MSG_PUB.Count_And_Get (
386 p_encoded => FND_API.G_FALSE,
387 p_count => x_msg_count,
388 p_data => x_msg_data
389 );
390 End Update_Adj_New_Line;
391
392
393 PROCEDURE Delete_Adj_New_Line(
394 p_api_version_number IN NUMBER,
395 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
396 p_commit IN VARCHAR2 := FND_API.G_FALSE,
397 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
398 x_return_status OUT NOCOPY VARCHAR2,
399 x_msg_count OUT NOCOPY NUMBER,
400 x_msg_data OUT NOCOPY VARCHAR2,
401 p_offer_adj_new_line_id IN NUMBER,
402 p_object_version_number IN NUMBER
403 )
404
405 IS
406 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Adj_New_Line';
407 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
408 l_object_version_number NUMBER;
409
410 CURSOR c_products(cp_offerAdjNewLineId NUMBER) IS
411 SELECT offer_adj_new_product_id, object_version_number
412 FROM ozf_offer_adj_new_products
413 WHERE offer_adj_new_line_id = cp_offerAdjNewLineId;
414
415 CURSOR c_tiers(cp_offerAdjNewLineId NUMBER) IS
416 SELECT offer_adj_new_line_id
417 FROM ozf_offer_adj_new_lines
418 WHERE parent_adj_line_id = cp_offerAdjNewLineId;
419
420 BEGIN
421 -- Standard Start of API savepoint
422 SAVEPOINT DELETE_Adj_New_Line_PVT;
423
424 -- Standard call to check for call compatibility.
425 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
426 p_api_version_number,
427 l_api_name,
428 G_PKG_NAME)
429 THEN
430 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
431 END IF;
432
433 -- Initialize message list if p_init_msg_list is set to TRUE.
434 IF FND_API.to_Boolean( p_init_msg_list )
435 THEN
436 FND_MSG_PUB.initialize;
437 END IF;
438
439 -- Debug Message
440 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
441
442
443 -- Initialize API return status to SUCCESS
444 x_return_status := FND_API.G_RET_STS_SUCCESS;
445
446 --
447 -- Api body
448 --
449 FOR l_products IN c_products(p_OFFER_ADJ_NEW_LINE_ID) LOOP
450 OZF_Adj_New_Prod_PVT.Delete_Adj_New_Prod(
451 p_api_version_number => 1.0
452 , p_init_msg_list => FND_API.G_FALSE
453 , p_commit => FND_API.G_FALSE
454 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
455 , x_return_status => x_return_status
456 , x_msg_count => x_msg_count
457 , x_msg_data => x_msg_data
458 , p_offer_adj_new_product_id => l_products.offer_adj_new_product_id
459 , p_object_version_number => l_products.object_version_number
460 );
461 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
462 RAISE FND_API.G_EXC_ERROR;
463 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
464 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
465 END IF;
466 END LOOP;
467 -- Debug Message
468 OZF_UTILITY_PVT.debug_message( 'Private API: Calling delete Tiers');
469
470 for l_tiers in c_tiers(p_OFFER_ADJ_NEW_LINE_ID) LOOP
474 p_OFFER_ADJ_NEW_LINE_ID => l_tiers.offer_adj_new_line_id);
471 ozf_utility_pvt.debug_message('Line id is :'||l_tiers.offer_adj_new_line_id);
472 IF l_tiers.offer_adj_new_line_id IS NOT NULL THEN
473 OZF_OFFER_ADJ_NEW_LINES_PKG.Delete_Row(
475 END IF;
476 END LOOP;
477 ozf_utility_pvt.debug_message('Line id is :'||p_OFFER_ADJ_NEW_LINE_ID);
478 -- Invoke table handler(OZF_OFFER_ADJ_NEW_LINES_PKG.Delete_Row)
479 OZF_OFFER_ADJ_NEW_LINES_PKG.Delete_Row(
480 p_OFFER_ADJ_NEW_LINE_ID => p_OFFER_ADJ_NEW_LINE_ID);
481 --
482 -- End of API body
483 --
484 OZF_UTILITY_PVT.debug_message( 'Private API: Called delete table handler');
485
486 -- Standard check for p_commit
487 IF FND_API.to_Boolean( p_commit )
488 THEN
489 COMMIT WORK;
490 END IF;
491
492
493 -- Debug Message
494 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
495
496 -- Standard call to get message count and if count is 1, get message info.
497 FND_MSG_PUB.Count_And_Get
498 (p_count => x_msg_count,
499 p_data => x_msg_data
500 );
501 EXCEPTION
502
503 WHEN OZF_UTILITY_PVT.resource_locked THEN
504 x_return_status := FND_API.g_ret_sts_error;
505 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
506
507 WHEN FND_API.G_EXC_ERROR THEN
508 ROLLBACK TO DELETE_Adj_New_Line_PVT;
509 x_return_status := FND_API.G_RET_STS_ERROR;
510 -- Standard call to get message count and if count=1, get the message
511 FND_MSG_PUB.Count_And_Get (
512 p_encoded => FND_API.G_FALSE,
513 p_count => x_msg_count,
514 p_data => x_msg_data
515 );
516
517 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
518 ROLLBACK TO DELETE_Adj_New_Line_PVT;
519 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
520 -- Standard call to get message count and if count=1, get the message
521 FND_MSG_PUB.Count_And_Get (
522 p_encoded => FND_API.G_FALSE,
523 p_count => x_msg_count,
524 p_data => x_msg_data
525 );
526
527 WHEN OTHERS THEN
528 ROLLBACK TO DELETE_Adj_New_Line_PVT;
529 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
530 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
531 THEN
532 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
533 END IF;
534 -- Standard call to get message count and if count=1, get the message
535 FND_MSG_PUB.Count_And_Get (
536 p_encoded => FND_API.G_FALSE,
537 p_count => x_msg_count,
538 p_data => x_msg_data
539 );
540 End Delete_Adj_New_Line;
541
542
543
544 -- Hint: Primary key needs to be returned.
545 PROCEDURE Lock_Adj_New_Line(
546 p_api_version_number IN NUMBER,
547 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
548
549 x_return_status OUT NOCOPY VARCHAR2,
550 x_msg_count OUT NOCOPY NUMBER,
551 x_msg_data OUT NOCOPY VARCHAR2,
552
553 p_offer_adj_new_line_id IN NUMBER,
554 p_object_version IN NUMBER
555 )
556
557 IS
558 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Adj_New_Line';
559 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
560 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
561 l_OFFER_ADJ_NEW_LINE_ID NUMBER;
562
563 CURSOR c_Adj_New_Line IS
564 SELECT OFFER_ADJ_NEW_LINE_ID
565 FROM OZF_OFFER_ADJ_NEW_LINES
566 WHERE OFFER_ADJ_NEW_LINE_ID = p_OFFER_ADJ_NEW_LINE_ID
567 AND object_version_number = p_object_version
568 FOR UPDATE NOWAIT;
569
570 BEGIN
571
572 -- Debug Message
573 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
574
575 -- Initialize message list if p_init_msg_list is set to TRUE.
576 IF FND_API.to_Boolean( p_init_msg_list )
577 THEN
578 FND_MSG_PUB.initialize;
579 END IF;
580
581 -- Standard call to check for call compatibility.
582 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
583 p_api_version_number,
584 l_api_name,
585 G_PKG_NAME)
586 THEN
587 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588 END IF;
589
590
591 -- Initialize API return status to SUCCESS
592 x_return_status := FND_API.G_RET_STS_SUCCESS;
593
594
595 ------------------------ lock -------------------------
596
597 OZF_UTILITY_PVT.debug_message(l_full_name||': start');
598 OPEN c_Adj_New_Line;
599
600 FETCH c_Adj_New_Line INTO l_OFFER_ADJ_NEW_LINE_ID;
601
602 IF (c_Adj_New_Line%NOTFOUND) THEN
603 CLOSE c_Adj_New_Line;
604 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
605 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
606 FND_MSG_PUB.add;
607 END IF;
608 RAISE FND_API.g_exc_error;
609 END IF;
610
611 CLOSE c_Adj_New_Line;
612
613 -------------------- finish --------------------------
614 FND_MSG_PUB.count_and_get(
615 p_encoded => FND_API.g_false,
616 p_count => x_msg_count,
617 p_data => x_msg_data);
618 OZF_UTILITY_PVT.debug_message(l_full_name ||': end');
619 EXCEPTION
620
621 WHEN OZF_UTILITY_PVT.resource_locked THEN
625 WHEN FND_API.G_EXC_ERROR THEN
622 x_return_status := FND_API.g_ret_sts_error;
623 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
624
626 ROLLBACK TO LOCK_Adj_New_Line_PVT;
627 x_return_status := FND_API.G_RET_STS_ERROR;
628 -- Standard call to get message count and if count=1, get the message
629 FND_MSG_PUB.Count_And_Get (
630 p_encoded => FND_API.G_FALSE,
631 p_count => x_msg_count,
632 p_data => x_msg_data
633 );
634
635 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
636 ROLLBACK TO LOCK_Adj_New_Line_PVT;
637 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
638 -- Standard call to get message count and if count=1, get the message
639 FND_MSG_PUB.Count_And_Get (
640 p_encoded => FND_API.G_FALSE,
641 p_count => x_msg_count,
642 p_data => x_msg_data
643 );
644
645 WHEN OTHERS THEN
646 ROLLBACK TO LOCK_Adj_New_Line_PVT;
647 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
648 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
649 THEN
650 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
651 END IF;
652 -- Standard call to get message count and if count=1, get the message
653 FND_MSG_PUB.Count_And_Get (
654 p_encoded => FND_API.G_FALSE,
655 p_count => x_msg_count,
656 p_data => x_msg_data
657 );
658 End Lock_Adj_New_Line;
659
660
661 PROCEDURE check_adj_new_line_uk_items(
662 p_adj_new_line_rec IN adj_new_line_rec_type,
663 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
664 x_return_status OUT NOCOPY VARCHAR2)
665 IS
666 l_valid_flag VARCHAR2(1);
667
668 BEGIN
669 x_return_status := FND_API.g_ret_sts_success;
670 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
671 l_valid_flag := OZF_UTILITY_PVT.check_uniqueness(
672 'OZF_OFFER_ADJ_NEW_LINES',
673 'OFFER_ADJ_NEW_LINE_ID = ''' || p_adj_new_line_rec.OFFER_ADJ_NEW_LINE_ID ||''''
674 );
675 ELSE
676 l_valid_flag := OZF_UTILITY_PVT.check_uniqueness(
677 'OZF_OFFER_ADJ_NEW_LINES',
678 'OFFER_ADJ_NEW_LINE_ID = ''' || p_adj_new_line_rec.OFFER_ADJ_NEW_LINE_ID ||
679 ''' AND OFFER_ADJ_NEW_LINE_ID <> ' || p_adj_new_line_rec.OFFER_ADJ_NEW_LINE_ID
680 );
681 END IF;
682
683 IF l_valid_flag = FND_API.g_false THEN
684 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_OFFER_ADJ_NEW_LINE_ID_DUPLICATE');
685 x_return_status := FND_API.g_ret_sts_error;
686 RETURN;
687 END IF;
688
689 END check_adj_new_line_uk_items;
690
691
692 PROCEDURE check_adj_pg_req_items(
693 p_adj_new_line_rec IN adj_new_line_rec_type,
694 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
695 x_return_status OUT NOCOPY VARCHAR2
696 )
697 IS
698 BEGIN
699 x_return_status := FND_API.g_ret_sts_success;
700
701 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
702 IF p_adj_new_line_rec.discount = FND_API.g_miss_num OR p_adj_new_line_rec.discount IS NULL THEN
703 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'discount' );
704 x_return_status := FND_API.g_ret_sts_error;
705 RETURN;
706 END IF;
707 IF p_adj_new_line_rec.discount_type = FND_API.g_miss_char OR p_adj_new_line_rec.discount_type IS NULL THEN
708 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'discount_type' );
709 x_return_status := FND_API.g_ret_sts_error;
710 RETURN;
711 END IF;
712 ELSE
713 IF p_adj_new_line_rec.discount = FND_API.G_MISS_NUM THEN
714 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'discount' );
715 x_return_status := FND_API.g_ret_sts_error;
716 RETURN;
717 END IF;
718 IF p_adj_new_line_rec.discount_type = FND_API.G_MISS_CHAR THEN
719 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'discount_type' );
720 x_return_status := FND_API.g_ret_sts_error;
721 RETURN;
722 END IF;
723 END IF;
724 END check_adj_pg_req_items;
725
726 PROCEDURE check_adj_new_line_req_items(
727 p_adj_new_line_rec IN adj_new_line_rec_type,
728 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
729 x_return_status OUT NOCOPY VARCHAR2
730 )
731 IS
732 BEGIN
733 x_return_status := FND_API.g_ret_sts_success;
734
735 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
736 IF p_adj_new_line_rec.offer_adjustment_id = FND_API.g_miss_num OR p_adj_new_line_rec.offer_adjustment_id IS NULL THEN
737 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_adjustment_id' );
738 x_return_status := FND_API.g_ret_sts_error;
739 RETURN;
740 END IF;
741 IF p_adj_new_line_rec.tier_type = FND_API.g_miss_char OR p_adj_new_line_rec.tier_type IS NULL THEN
742 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'tier_type' );
743 x_return_status := FND_API.g_ret_sts_error;
744 RETURN;
745 END IF;
746 ELSE
747 IF p_adj_new_line_rec.offer_adj_new_line_id IS NULL THEN
748 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_adj_new_line_id' );
749 x_return_status := FND_API.g_ret_sts_error;
750 RETURN;
751 END IF;
752 IF p_adj_new_line_rec.offer_adjustment_id IS NULL THEN
756 END IF;
753 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'offer_adjustment_id' );
754 x_return_status := FND_API.g_ret_sts_error;
755 RETURN;
757 IF p_adj_new_line_rec.tier_type = FND_API.G_MISS_CHAR THEN
758 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'tier_type' );
759 x_return_status := FND_API.g_ret_sts_error;
760 RETURN;
761 END IF;
762 IF p_adj_new_line_rec.object_version_number = FND_API.G_MISS_NUM THEN
763 OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'object_version_number' );
764 x_return_status := FND_API.g_ret_sts_error;
765 RETURN;
766 END IF;
767 END IF;
768
769 IF p_adj_new_line_rec.tier_type = 'DIS' THEN
770 check_adj_pg_req_items(
771 p_adj_new_line_rec => p_adj_new_line_rec
772 , p_validation_mode => p_validation_mode
773 , x_return_status => x_return_status
774 );
775 IF x_return_status <>FND_API.g_ret_sts_success THEN
776 return;
777 END IF;
778 END IF;
779
780 END check_adj_new_line_req_items;
781
782
783 PROCEDURE check_adj_new_line_attr(
784 p_adj_new_line_rec IN adj_new_line_rec_type
785 , p_validation_mode IN VARCHAR2
786 , x_return_status OUT NOCOPY VARCHAR2
787 )
788 IS
789 CURSOR c_modifierLevelCode(cp_offerAdjustmentId NUMBER) IS
790 SELECT modifier_level_code FROM ozf_offers a, ozf_offer_adjustments_b b
791 WHERE a.qp_list_header_id = b.list_header_id
792 AND b.offer_adjustment_id = cp_offerAdjustmentId;
793 l_modifierLevelCode c_modifierLevelCode%ROWTYPE;
794 CURSOR c_dates (cp_offerAdjustmentId NUMBER) IS
795 SELECT a.effective_date , b.end_date_active
796 FROM ozf_offer_adjustments_b a, qp_list_headers_b b
797 WHERE a.list_header_id = b.list_header_id
798 AND a.offer_adjustment_id = cp_offerAdjustmentId;
799 l_dates c_dates%ROWTYPE;
800 BEGIN
801 x_return_status := FND_API.G_RET_STS_SUCCESS;
802 IF p_adj_new_line_rec.volume_from < 0 THEN
803 OZF_Utility_PVT.Error_Message('OZF_NEGATIVE_QTY' );
804 x_return_status := FND_API.g_ret_sts_error;
805 return;
806 END IF;
807 IF p_adj_new_line_rec.volume_to < 0 THEN
808 OZF_Utility_PVT.Error_Message('OZF_NEGATIVE_QTY' );
809 x_return_status := FND_API.g_ret_sts_error;
810 return;
811 END IF;
812
813 OPEN c_modifierLevelCode(p_adj_new_line_rec.offer_adjustment_id);
814 FETCH c_modifierLevelCode INTO l_modifierLevelCode;
815 CLOSE c_modifierLevelCode;
816
817 IF l_modifierLevelCode.modifier_level_code = 'LINEGROUP' THEN
818 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
819 IF (p_adj_new_line_rec.volume_from = FND_API.G_MISS_NUM OR p_adj_new_line_rec.volume_from IS NULL)
820 OR
821 (p_adj_new_line_rec.volume_type = FND_API.G_MISS_CHAR OR p_adj_new_line_rec.volume_type IS NULL)
822 THEN
823 OZF_Utility_PVT.Error_Message('OZF_LINE_GRP_QTY_REQD' );
824 x_return_status := FND_API.g_ret_sts_error;
825 return;
826 END IF;
827 ELSE
828 IF (p_adj_new_line_rec.volume_from = FND_API.G_MISS_NUM )
829 OR
830 (p_adj_new_line_rec.volume_type = FND_API.G_MISS_CHAR)
831 THEN
832 OZF_Utility_PVT.Error_Message('OZF_LINE_GRP_QTY_REQD' );
833 x_return_status := FND_API.g_ret_sts_error;
834 return;
835 END IF;
836 END IF;
837 END IF;
838
839 OPEN c_dates(cp_offerAdjustmentId => p_adj_new_line_rec.offer_adjustment_id);
840 FETCH c_dates INTO l_dates;
841 CLOSE c_dates;
842 IF p_adj_new_line_rec.start_date_active IS NOT NULL AND p_adj_new_line_rec.start_date_active <> FND_API.G_MISS_DATE THEN
843 IF p_adj_new_line_rec.start_date_active < l_dates.effective_date THEN
844 OZF_Utility_PVT.Error_Message('OZF_DATE_OUT_OF_RANGE' );
845 x_return_status := FND_API.g_ret_sts_error;
846 return;
847 END IF;
848 END IF;
849 IF p_adj_new_line_rec.end_date_active IS NOT NULL AND p_adj_new_line_rec.end_date_active <> FND_API.G_MISS_DATE THEN
850 IF p_adj_new_line_rec.end_date_active > l_dates.end_date_active THEN
851 ozf_utility_pvt.debug_message('End Date is :'||l_dates.end_date_active||' : '||p_adj_new_line_rec.end_date_active);
852 OZF_Utility_PVT.Error_Message('OZF_DATE_OUT_OF_RANGE' );
853 x_return_status := FND_API.g_ret_sts_error;
854 return;
855 END IF;
856 END IF;
857
858 END check_adj_new_line_attr;
859
860 PROCEDURE check_adj_new_line_FK_items(
861 p_adj_new_line_rec IN adj_new_line_rec_type,
862 x_return_status OUT NOCOPY VARCHAR2
863 )
864 IS
865 BEGIN
866 x_return_status := FND_API.g_ret_sts_success;
867 IF ozf_utility_pvt.check_fk_exists('OZF_OFFER_ADJUSTMENTS_B','OFFER_ADJUSTMENT_ID',to_char(p_adj_new_line_rec.offer_adjustment_id)) = FND_API.g_false THEN
868 OZF_Utility_PVT.Error_Message('OZF_INVALID_OFFER_ADJ_ID' );
869 x_return_status := FND_API.g_ret_sts_error;
870 return;
871 END IF;
872 IF p_adj_new_line_rec.benefit_price_list_line_id IS NOT NULL AND p_adj_new_line_rec.benefit_price_list_line_id <> FND_API.G_MISS_NUM THEN
873 IF ozf_utility_pvt.check_fk_exists('qp_list_lines','list_line_type_code = ''PLL'' AND list_line_id ', to_char(p_adj_new_line_rec.benefit_price_list_line_id)) = FND_API.g_false THEN
874 OZF_Utility_PVT.Error_Message('OZF_INVALID_PLL_ID' );
875 x_return_status := FND_API.g_ret_sts_error;
876 return;
877 END IF;
881 IF ozf_utility_pvt.check_fk_exists('ozf_offer_adj_new_lines','tier_type = ''PBH'' AND offer_adj_new_line_id ', to_char(p_adj_new_line_rec.parent_adj_line_id)) = FND_API.g_false THEN
878 END IF;
879
880 IF p_adj_new_line_rec.parent_adj_line_id IS NOT NULL AND p_adj_new_line_rec.parent_adj_line_id <> FND_API.G_MISS_NUM THEN
882 OZF_Utility_PVT.Error_Message('OZF_INV_PARENT_ID' );
883 x_return_status := FND_API.g_ret_sts_error;
884 return;
885 END IF;
886 END IF;
887
888 -- Enter custom code here
889
890 END check_adj_new_line_FK_items;
891
892 PROCEDURE check_adj_line_Lkup_items(
893 p_adj_new_line_rec IN adj_new_line_rec_type,
894 x_return_status OUT NOCOPY VARCHAR2
895 )
896 IS
897 BEGIN
898 x_return_status := FND_API.g_ret_sts_success;
899 -- Enter custom code here
900 IF p_adj_new_line_rec.volume_type <> FND_API.G_MISS_CHAR AND p_adj_new_line_rec.volume_type IS NOT NULL THEN
901 IF OZF_UTILITY_PVT.check_lookup_exists('OZF_LOOKUPS', 'OZF_QP_VOLUME_TYPE', p_adj_new_line_rec.volume_type) = FND_API.g_false THEN
902 OZF_Utility_PVT.Error_Message('OZF_INVALID_VOLUME_TYPE' );
903 x_return_status := FND_API.g_ret_sts_error;
904 return;
905 END IF;
906 END IF;
907
908 IF p_adj_new_line_rec.discount_type <> FND_API.G_MISS_CHAR AND p_adj_new_line_rec.discount_type IS NOT NULL THEN
909 IF OZF_UTILITY_PVT.check_lookup_exists('QP_LOOKUPS', 'ARITHMETIC_OPERATOR', p_adj_new_line_rec.discount_type) = FND_API.g_false THEN
910 OZF_Utility_PVT.Error_Message('OZF_INVALID_DISCOUNT_TYPE' );
911 x_return_status := FND_API.g_ret_sts_error;
912 return;
913 END IF;
914 END IF;
915 IF p_adj_new_line_rec.tier_type <> FND_API.G_MISS_CHAR AND p_adj_new_line_rec.tier_type IS NOT NULL THEN
916 IF OZF_UTILITY_PVT.check_lookup_exists('QP_LOOKUPS', 'LIST_LINE_TYPE_CODE', p_adj_new_line_rec.tier_type) = FND_API.g_false THEN
917 OZF_Utility_PVT.Error_Message('OZF_INVALID_TIER_TYPE' );
918 x_return_status := FND_API.g_ret_sts_error;
919 return;
920 END IF;
921 END IF;
922
923 END check_adj_line_Lkup_items;
924
925 PROCEDURE Check_adj_new_line_inter_attr(
926 P_adj_new_line_rec IN adj_new_line_rec_type
927 , p_validation_mode IN VARCHAR2
928 , x_return_status OUT NOCOPY VARCHAR2
929 )
930 IS
931 BEGIN
932 x_return_status := FND_API.G_RET_STS_SUCCESS;
933 IF (p_adj_new_line_rec.volume_from IS NOT NULL AND P_adj_new_line_rec.volume_from <> FND_API.G_MISS_NUM )
934 AND
935 (p_adj_new_line_rec.volume_to IS NOT NULL AND p_adj_new_line_rec.volume_to <> FND_API.G_MISS_NUM )
936 THEN
937 IF p_adj_new_line_rec.volume_to < p_adj_new_line_rec.volume_from THEN
938 OZF_Utility_PVT.Error_Message('OZF_FROM_GT_TO' );
939 x_return_status := FND_API.g_ret_sts_error;
940 return;
941 END IF;
942 END IF;
943 IF p_adj_new_line_rec.tier_type = 'PBH' THEN
944 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
945 IF p_adj_new_line_rec.volume_type IS NULL OR p_adj_new_line_rec.volume_type = FND_API.G_MISS_CHAR THEN
946 OZF_Utility_PVT.Error_Message('OZF_PBH_VOL_TYPE_REQD' );
947 x_return_status := FND_API.g_ret_sts_error;
948 return;
949 END IF;
950 ELSIF p_validation_mode = JTF_PLSQL_API.g_update THEN
951 IF p_adj_new_line_rec.volume_type = FND_API.G_MISS_CHAR THEN
952 OZF_Utility_PVT.Error_Message('OZF_PBH_VOL_TYPE_REQD' );
953 x_return_status := FND_API.g_ret_sts_error;
954 return;
955 END IF;
956 END IF;
957 END IF;
958 END Check_adj_new_line_inter_attr;
959
960 PROCEDURE check_adj_new_line_entity(
961 p_adj_new_line_rec IN adj_new_line_rec_type,
962 x_return_status OUT NOCOPY VARCHAR2
963 )
964 IS
965 l_discount_type OZF_OFFER_DISCOUNT_LINES.DISCOUNT_TYPE%TYPE;
966 BEGIN
967 x_return_status := FND_API.G_RET_STS_SUCCESS;
968
969 IF p_adj_new_line_rec.tier_type = 'DIS' THEN
970 IF p_adj_new_line_rec.discount_type IS NOT NULL AND p_adj_new_line_rec.discount_type <> FND_API.G_MISS_CHAR THEN
971 IF p_adj_new_line_rec.discount IS NOT NULL AND p_adj_new_line_rec.discount <> FND_API.G_MISS_NUM THEN
972 IF p_adj_new_line_rec.discount_type ='%' AND p_adj_new_line_rec.discount > 100 THEN
973 OZF_Utility_PVT.Error_Message('OZF_PER_DISC_INV' );
974 x_return_status := FND_API.g_ret_sts_error;
975 return;
976 END IF;
977 END IF;
978 END IF;
979 END IF;
980 END check_adj_new_line_entity;
981
982 PROCEDURE Check_adj_new_line_Items (
983 P_adj_new_line_rec IN adj_new_line_rec_type,
984 p_validation_mode IN VARCHAR2,
985 x_return_status OUT NOCOPY VARCHAR2
986 )
987 IS
988 BEGIN
989 -- Check Items Uniqueness API calls
990 x_return_status := FND_API.G_RET_STS_SUCCESS;
991 check_adj_new_line_uk_items(
992 p_adj_new_line_rec => p_adj_new_line_rec,
993 p_validation_mode => p_validation_mode,
994 x_return_status => x_return_status);
995 IF x_return_status <> FND_API.g_ret_sts_success THEN
996 RETURN;
997 END IF;
998 ozf_utility_pvt.debug_message('UK Items:'||x_return_status);
999
1000 -- Check Items Required/NOT NULL API calls
1001
1002 check_adj_new_line_req_items(
1003 p_adj_new_line_rec => p_adj_new_line_rec,
1004 p_validation_mode => p_validation_mode,
1005 x_return_status => x_return_status);
1006 IF x_return_status <> FND_API.g_ret_sts_success THEN
1007 RETURN;
1008 END IF;
1009 ozf_utility_pvt.debug_message('Req Items:'||x_return_status);
1010
1011 -- Check Items Foreign Keys API calls
1015 x_return_status => x_return_status);
1012
1013 check_adj_new_line_FK_items(
1014 p_adj_new_line_rec => p_adj_new_line_rec,
1016 IF x_return_status <> FND_API.g_ret_sts_success THEN
1017 RETURN;
1018 END IF;
1019 ozf_utility_pvt.debug_message('FK Items:'||x_return_status);
1020
1021 -- Check Items Lookups
1022
1023 check_adj_line_Lkup_items(
1024 p_adj_new_line_rec => p_adj_new_line_rec,
1025 x_return_status => x_return_status);
1026 IF x_return_status <> FND_API.g_ret_sts_success THEN
1027 RETURN;
1028 END IF;
1029 ozf_utility_pvt.debug_message('Lkiup Items:'||x_return_status);
1030
1031 check_adj_new_line_attr(
1032 p_adj_new_line_rec => p_adj_new_line_rec
1033 , p_validation_mode => p_validation_mode
1034 , x_return_status => x_return_status);
1035 IF x_return_status <> FND_API.g_ret_sts_success THEN
1036 RETURN;
1037 END IF;
1038 ozf_utility_pvt.debug_message('Attr Items:'||x_return_status);
1039
1040 Check_adj_new_line_inter_attr(
1041 p_adj_new_line_rec => p_adj_new_line_rec
1042 , p_validation_mode => p_validation_mode
1043 , x_return_status => x_return_status);
1044 IF x_return_status <> FND_API.g_ret_sts_success THEN
1045 RETURN;
1046 END IF;
1047 ozf_utility_pvt.debug_message('Inter Items:'||x_return_status);
1048 check_adj_new_line_entity
1049 (
1050 p_adj_new_line_rec => p_adj_new_line_rec,
1051 x_return_status => x_return_status);
1052 IF x_return_status <> FND_API.g_ret_sts_success THEN
1053 RETURN;
1054 END IF;
1055 ozf_utility_pvt.debug_message('Entity Items:'||x_return_status);
1056
1057
1058 END Check_adj_new_line_Items;
1059
1060
1061 PROCEDURE Complete_adj_new_line_Rec (
1062 p_adj_new_line_rec IN adj_new_line_rec_type,
1063 x_complete_rec OUT NOCOPY adj_new_line_rec_type)
1064 IS
1065 l_return_status VARCHAR2(1);
1066
1067 CURSOR c_complete IS
1068 SELECT *
1069 FROM ozf_offer_adj_new_lines
1070 WHERE offer_adj_new_line_id = p_adj_new_line_rec.offer_adj_new_line_id;
1071 l_adj_new_line_rec c_complete%ROWTYPE;
1072 BEGIN
1073 x_complete_rec := p_adj_new_line_rec;
1074
1075
1076 OPEN c_complete;
1077 FETCH c_complete INTO l_adj_new_line_rec;
1078 CLOSE c_complete;
1079
1080 -- offer_adj_new_line_id
1081 IF p_adj_new_line_rec.offer_adj_new_line_id = FND_API.g_miss_num THEN
1082 x_complete_rec.offer_adj_new_line_id := l_adj_new_line_rec.offer_adj_new_line_id;
1083 END IF;
1084
1085 -- offer_adjustment_id
1086 IF p_adj_new_line_rec.offer_adjustment_id = FND_API.g_miss_num THEN
1087 x_complete_rec.offer_adjustment_id := l_adj_new_line_rec.offer_adjustment_id;
1088 END IF;
1089
1090 -- volume_from
1091 IF p_adj_new_line_rec.volume_from = FND_API.g_miss_num THEN
1092 x_complete_rec.volume_from := l_adj_new_line_rec.volume_from;
1093 END IF;
1094
1095 -- volume_to
1096 IF p_adj_new_line_rec.volume_to = FND_API.g_miss_num THEN
1097 x_complete_rec.volume_to := l_adj_new_line_rec.volume_to;
1098 END IF;
1099
1100 -- volume_type
1101 IF p_adj_new_line_rec.volume_type = FND_API.g_miss_char THEN
1102 x_complete_rec.volume_type := l_adj_new_line_rec.volume_type;
1103 END IF;
1104
1105 -- discount
1106 IF p_adj_new_line_rec.discount = FND_API.g_miss_num THEN
1107 x_complete_rec.discount := l_adj_new_line_rec.discount;
1108 END IF;
1109
1110 -- discount_type
1111 IF p_adj_new_line_rec.discount_type = FND_API.g_miss_char THEN
1112 x_complete_rec.discount_type := l_adj_new_line_rec.discount_type;
1113 END IF;
1114
1115 -- tier_type
1116 IF p_adj_new_line_rec.tier_type = FND_API.g_miss_char THEN
1117 x_complete_rec.tier_type := l_adj_new_line_rec.tier_type;
1118 END IF;
1119
1120 -- creation_date
1121 IF p_adj_new_line_rec.creation_date = FND_API.g_miss_date THEN
1122 x_complete_rec.creation_date := l_adj_new_line_rec.creation_date;
1123 END IF;
1124
1125 -- created_by
1126 IF p_adj_new_line_rec.created_by = FND_API.g_miss_num THEN
1127 x_complete_rec.created_by := l_adj_new_line_rec.created_by;
1128 END IF;
1129
1130 -- last_update_date
1131 IF p_adj_new_line_rec.last_update_date = FND_API.g_miss_date THEN
1132 x_complete_rec.last_update_date := l_adj_new_line_rec.last_update_date;
1133 END IF;
1134
1135 -- last_updated_by
1136 IF p_adj_new_line_rec.last_updated_by = FND_API.g_miss_num THEN
1137 x_complete_rec.last_updated_by := l_adj_new_line_rec.last_updated_by;
1138 END IF;
1139
1140 -- last_update_login
1141 IF p_adj_new_line_rec.last_update_login = FND_API.g_miss_num THEN
1142 x_complete_rec.last_update_login := l_adj_new_line_rec.last_update_login;
1143 END IF;
1144
1145 -- object_version_number
1146 IF p_adj_new_line_rec.object_version_number = FND_API.g_miss_num THEN
1147 x_complete_rec.object_version_number := l_adj_new_line_rec.object_version_number;
1148 END IF;
1149 -- Note: Developers need to modify the procedure
1150 -- to handle any business specific requirements.
1151 END Complete_adj_new_line_Rec;
1152
1153 PROCEDURE Validate_adj_new_line(
1154 p_api_version_number IN NUMBER,
1155 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1156 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1157 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_update,
1158 p_adj_new_line_rec IN adj_new_line_rec_type,
1159 x_return_status OUT NOCOPY VARCHAR2,
1160 x_msg_count OUT NOCOPY NUMBER,
1164 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Adj_New_Line';
1161 x_msg_data OUT NOCOPY VARCHAR2
1162 )
1163 IS
1165 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1166 l_object_version_number NUMBER;
1167 l_adj_new_line_rec OZF_Adj_New_Line_PVT.adj_new_line_rec_type;
1168
1169 BEGIN
1170 -- Standard Start of API savepoint
1171 SAVEPOINT VALIDATE_Adj_New_Line_;
1172
1173 -- Standard call to check for call compatibility.
1174 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1175 p_api_version_number,
1176 l_api_name,
1177 G_PKG_NAME)
1178 THEN
1179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1180 END IF;
1181
1182 -- Initialize message list if p_init_msg_list is set to TRUE.
1183 IF FND_API.to_Boolean( p_init_msg_list )
1184 THEN
1185 FND_MSG_PUB.initialize;
1186 END IF;
1187 -- Debug Message
1188 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1189 -- Initialize API return status to SUCCESS
1190 x_return_status := FND_API.G_RET_STS_SUCCESS;
1191
1192 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1193 Check_adj_new_line_Items(
1194 p_adj_new_line_rec => p_adj_new_line_rec,
1195 p_validation_mode => p_validation_mode,
1196 x_return_status => x_return_status
1197 );
1198
1199 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1200 RAISE FND_API.G_EXC_ERROR;
1201 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1202 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1203 END IF;
1204 END IF;
1205
1206 Complete_adj_new_line_Rec(
1207 p_adj_new_line_rec => p_adj_new_line_rec,
1208 x_complete_rec => l_adj_new_line_rec
1209 );
1210
1211 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1212 Validate_adj_new_line_Rec(
1213 p_api_version_number => 1.0,
1214 p_init_msg_list => FND_API.G_FALSE,
1215 x_return_status => x_return_status,
1216 x_msg_count => x_msg_count,
1217 x_msg_data => x_msg_data,
1218 p_adj_new_line_rec => l_adj_new_line_rec);
1219
1220 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1221 RAISE FND_API.G_EXC_ERROR;
1222 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1223 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1224 END IF;
1225 END IF;
1226 -- Debug Message
1227 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1228 EXCEPTION
1229
1230 WHEN OZF_UTILITY_PVT.resource_locked THEN
1231 x_return_status := FND_API.g_ret_sts_error;
1232 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1233
1234 WHEN FND_API.G_EXC_ERROR THEN
1235 ROLLBACK TO VALIDATE_Adj_New_Line_;
1236 x_return_status := FND_API.G_RET_STS_ERROR;
1237 -- Standard call to get message count and if count=1, get the message
1238 FND_MSG_PUB.Count_And_Get (
1239 p_encoded => FND_API.G_FALSE,
1240 p_count => x_msg_count,
1241 p_data => x_msg_data
1242 );
1243
1244 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1245 ROLLBACK TO VALIDATE_Adj_New_Line_;
1246 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1247 -- Standard call to get message count and if count=1, get the message
1248 FND_MSG_PUB.Count_And_Get (
1249 p_encoded => FND_API.G_FALSE,
1250 p_count => x_msg_count,
1251 p_data => x_msg_data
1252 );
1253
1254 WHEN OTHERS THEN
1255 ROLLBACK TO VALIDATE_Adj_New_Line_;
1256 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1257 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1258 THEN
1259 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1260 END IF;
1261 -- Standard call to get message count and if count=1, get the message
1262 FND_MSG_PUB.Count_And_Get (
1263 p_encoded => FND_API.G_FALSE,
1264 p_count => x_msg_count,
1265 p_data => x_msg_data
1266 );
1267 End Validate_Adj_New_Line;
1268
1269
1270 PROCEDURE Validate_adj_new_line_rec(
1271 p_api_version_number IN NUMBER,
1272 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1273 x_return_status OUT NOCOPY VARCHAR2,
1274 x_msg_count OUT NOCOPY NUMBER,
1275 x_msg_data OUT NOCOPY VARCHAR2,
1276 p_adj_new_line_rec IN adj_new_line_rec_type
1277 )
1278 IS
1279 BEGIN
1280 -- Initialize message list if p_init_msg_list is set to TRUE.
1281 IF FND_API.to_Boolean( p_init_msg_list )
1282 THEN
1283 FND_MSG_PUB.initialize;
1284 END IF;
1285
1286 -- Initialize API return status to SUCCESS
1287 x_return_status := FND_API.G_RET_STS_SUCCESS;
1288
1289 -- Hint: Validate data
1290 -- If data not valid
1291 -- THEN
1292 -- x_return_status := FND_API.G_RET_STS_ERROR;
1293
1294 -- Debug Message
1295 OZF_UTILITY_PVT.debug_message('Private API: Validate_adj_new_line_rec');
1296 -- Standard call to get message count and if count is 1, get message info.
1297 FND_MSG_PUB.Count_And_Get
1298 (p_count => x_msg_count,
1302
1299 p_data => x_msg_data
1300 );
1301 END Validate_adj_new_line_Rec;
1303
1304 PROCEDURE populate_line_disc_rec
1305 (
1306 p_adj_new_disc_rec IN adj_new_disc_rec_type := g_miss_adj_new_disc_rec,
1307 p_adj_new_line_rec IN OUT NOCOPY adj_new_line_rec_type
1308 )
1309 IS
1310 BEGIN
1311 p_adj_new_line_rec.offer_adj_new_line_id := p_adj_new_disc_rec.offer_adj_new_line_id;
1312 p_adj_new_line_rec.offer_adjustment_id := p_adj_new_disc_rec.offer_adjustment_id;
1313 p_adj_new_line_rec.tier_type := p_adj_new_disc_rec.tier_type;
1314 p_adj_new_line_rec.object_version_number := p_adj_new_disc_rec.object_version_number;
1315 p_adj_new_line_rec.volume_type := p_adj_new_disc_rec.volume_type;
1316 p_adj_new_line_rec.start_date_active := p_adj_new_disc_rec.start_date_active;
1317 p_adj_new_line_rec.end_date_active := p_adj_new_disc_rec.end_date_active;
1318
1319 IF p_adj_new_disc_rec.tier_type <> 'PBH' THEN
1320 p_adj_new_line_rec.volume_from := p_adj_new_disc_rec.volume_from;
1321 p_adj_new_line_rec.volume_to := p_adj_new_disc_rec.volume_to;
1322 p_adj_new_line_rec.discount := p_adj_new_disc_rec.discount;
1323 p_adj_new_line_rec.discount_type := p_adj_new_disc_rec.discount_type;
1324 p_adj_new_line_rec.td_discount := p_adj_new_disc_rec.td_discount;
1325 p_adj_new_line_rec.td_discount_type := p_adj_new_disc_rec.td_discount_type;
1326 p_adj_new_line_rec.quantity := p_adj_new_disc_rec.quantity;
1327 p_adj_new_line_rec.benefit_price_list_line_id := p_adj_new_disc_rec.benefit_price_list_line_id;
1328 p_adj_new_line_rec.parent_adj_line_id := p_adj_new_disc_rec.parent_adj_line_id;
1329 END IF;
1330 IF (p_adj_new_line_rec.volume_from IS NOT NULL AND p_adj_new_line_rec.volume_from <> FND_API.G_MISS_NUM) THEN
1331 IF ( p_adj_new_line_rec.volume_to IS NULL OR p_adj_new_line_rec.volume_to = FND_API.G_MISS_NUM ) THEN
1332 p_adj_new_line_rec.volume_to := 999999999;
1333 END IF;
1334 END IF;
1335 END populate_line_disc_rec;
1336
1337 PROCEDURE populate_prod_disc_rec
1338 (
1339 p_adj_new_disc_rec IN adj_new_disc_rec_type := g_miss_adj_new_disc_rec,
1340 p_adj_new_prod_rec IN OUT NOCOPY OZF_Adj_New_Prod_PVT.adj_new_prod_rec_type
1341 )
1342 IS
1343 CURSOR c_modifierLevelCode(cp_offerAdjustmentId NUMBER) IS
1344 SELECT modifier_level_code, a.offer_type FROM ozf_offers a, ozf_offer_adjustments_b b
1345 WHERE a.qp_list_header_id = b.list_header_id
1346 AND b.offer_adjustment_id = cp_offerAdjustmentId;
1347 l_modifierLevelCode c_modifierLevelCode%ROWTYPE;
1348 BEGIN
1349 p_adj_new_prod_rec.offer_adj_new_product_id := p_adj_new_disc_rec.offer_adj_new_product_id;
1350 p_adj_new_prod_rec.offer_adj_new_line_id := p_adj_new_disc_rec.offer_adj_new_line_id;
1351 p_adj_new_prod_rec.offer_adjustment_id := p_adj_new_disc_rec.offer_adjustment_id;
1352 p_adj_new_prod_rec.product_context := 'ITEM';
1353 p_adj_new_prod_rec.product_attribute := p_adj_new_disc_rec.product_attribute;
1354 p_adj_new_prod_rec.product_attr_value := p_adj_new_disc_rec.product_attr_value;
1355 p_adj_new_prod_rec.excluder_flag := 'N';
1356 p_adj_new_prod_rec.uom_code := p_adj_new_disc_rec.uom_code;
1357 p_adj_new_prod_rec.object_version_number := p_adj_new_disc_rec.prod_obj_version_number;
1358 OPEN c_modifierLevelCode(p_adj_new_disc_rec.offer_adjustment_id);
1359 fetch c_modifierLevelCode INTO l_modifierLevelCode;
1360 CLOSE c_modifierLevelCode;
1361 p_adj_new_prod_rec.offer_type := l_modifierLevelCode.offer_type;
1362 ozf_utility_pvt.debug_message('OfferType populated is :'||p_adj_new_prod_rec.offer_type||' : '||l_modifierLevelCode.offer_type);
1363 END populate_prod_disc_rec ;
1364
1365 PROCEDURE Create_Adj_New_Disc(
1366 p_api_version_number IN NUMBER,
1367 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1368 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1369 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1370
1371 x_return_status OUT NOCOPY VARCHAR2,
1372 x_msg_count OUT NOCOPY NUMBER,
1373 x_msg_data OUT NOCOPY VARCHAR2,
1374
1375 p_adj_new_disc_rec IN adj_new_disc_rec_type := g_miss_adj_new_disc_rec,
1376 x_offer_adj_new_line_id OUT NOCOPY NUMBER
1377 )
1378 IS
1379 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Adj_New_Disc';
1380 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1381 l_adj_new_line_rec adj_new_line_rec_type;
1382 l_adj_new_prod_rec OZF_Adj_New_Prod_PVT.adj_new_prod_rec_type;
1383 l_offer_adj_new_product_id NUMBER;
1384 BEGIN
1385 -- Standard Start of API savepoint
1386 SAVEPOINT Create_Adj_New_Disc_Pvt;
1387 -- Standard call to check for call compatibility.
1388 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1389 p_api_version_number,
1390 l_api_name,
1391 G_PKG_NAME)
1392 THEN
1393 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1394 END IF;
1395
1396 -- Initialize message list if p_init_msg_list is set to TRUE.
1397 IF FND_API.to_Boolean( p_init_msg_list )
1398 THEN
1399 FND_MSG_PUB.initialize;
1400 END IF;
1401 -- Debug Message
1402 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1406 populate_line_disc_rec
1403 -- Initialize API return status to SUCCESS
1404 x_return_status := FND_API.G_RET_STS_SUCCESS;
1405
1407 (
1408 p_adj_new_disc_rec => p_adj_new_disc_rec
1409 , p_adj_new_line_rec => l_adj_new_line_rec
1410 );
1411 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1412 RAISE FND_API.G_EXC_ERROR;
1413 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1414 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1415 END IF;
1416
1417 Create_Adj_New_Line(
1418 p_api_version_number => 1.0
1419 , p_init_msg_list => FND_API.G_FALSE
1420 , p_commit => FND_API.G_FALSE
1421 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1422
1423 , x_return_status => x_return_status
1424 , x_msg_count => x_msg_count
1425 , x_msg_data => x_msg_data
1426
1427 , p_adj_new_line_rec => l_adj_new_line_rec
1428 , x_offer_adj_new_line_id => x_offer_adj_new_line_id
1429 );
1430 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1431 RAISE FND_API.G_EXC_ERROR;
1432 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1433 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1434 END IF;
1435
1436 populate_prod_disc_rec
1437 (
1438 p_adj_new_disc_rec => p_adj_new_disc_rec
1439 , p_adj_new_prod_rec => l_adj_new_prod_rec
1440 );
1441 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1442 RAISE FND_API.G_EXC_ERROR;
1443 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1444 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1445 END IF;
1446
1447 l_adj_new_prod_rec.offer_adj_new_line_id := x_offer_adj_new_line_id;
1448 OZF_Adj_New_Prod_PVT.Create_Adj_New_Prod(
1449 p_api_version_number => 1.0
1450 , p_init_msg_list => FND_API.G_FALSE
1451 , p_commit => FND_API.G_FALSE
1452 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1453
1454 , x_return_status => x_return_status
1455 , x_msg_count => x_msg_count
1456 , x_msg_data => x_msg_data
1457
1458 , p_adj_new_prod_rec => l_adj_new_prod_rec
1459 , x_offer_adj_new_product_id => l_offer_adj_new_product_id
1460 );
1461 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1462 RAISE FND_API.G_EXC_ERROR;
1463 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1464 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1465 END IF;
1466
1467 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1468
1469 IF FND_API.to_Boolean( p_commit )
1470 THEN
1471 COMMIT WORK;
1472 END IF;
1473 -- Debug Message
1474
1475 EXCEPTION
1476
1477 WHEN OZF_UTILITY_PVT.resource_locked THEN
1478 x_return_status := FND_API.g_ret_sts_error;
1479 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1480
1481 WHEN FND_API.G_EXC_ERROR THEN
1482 ROLLBACK TO Create_Adj_New_Disc_Pvt;
1483 x_return_status := FND_API.G_RET_STS_ERROR;
1484 -- Standard call to get message count and if count=1, get the message
1485 FND_MSG_PUB.Count_And_Get (
1486 p_encoded => FND_API.G_FALSE,
1487 p_count => x_msg_count,
1488 p_data => x_msg_data
1489 );
1490
1491 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1492 ROLLBACK TO Create_Adj_New_Disc_Pvt;
1493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1494 -- Standard call to get message count and if count=1, get the message
1495 FND_MSG_PUB.Count_And_Get (
1496 p_encoded => FND_API.G_FALSE,
1497 p_count => x_msg_count,
1498 p_data => x_msg_data
1499 );
1500
1501 WHEN OTHERS THEN
1502 ROLLBACK TO Create_Adj_New_Disc_Pvt;
1503 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1504 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1505 THEN
1506 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1507 END IF;
1508 -- Standard call to get message count and if count=1, get the message
1509 FND_MSG_PUB.Count_And_Get (
1510 p_encoded => FND_API.G_FALSE,
1511 p_count => x_msg_count,
1512 p_data => x_msg_data
1513 );
1514
1515 END Create_Adj_New_Disc;
1516
1517
1518 PROCEDURE Update_Adj_New_Disc(
1519 p_api_version_number IN NUMBER,
1520 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1521 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1522 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1523
1524 x_return_status OUT NOCOPY VARCHAR2,
1525 x_msg_count OUT NOCOPY NUMBER,
1526 x_msg_data OUT NOCOPY VARCHAR2,
1527
1528 p_adj_new_disc_rec IN adj_new_disc_rec_type,
1529 x_object_version_number OUT NOCOPY NUMBER
1530 )
1531 IS
1532 l_api_name CONSTANT VARCHAR2(30) := 'Update_Adj_New_Disc';
1533 l_api_version_number CONSTANT NUMBER := 1.0;
1534 l_adj_new_line_rec adj_new_line_rec_type;
1535 l_adj_new_prod_rec OZF_Adj_New_Prod_PVT.adj_new_prod_rec_type;
1536 l_object_version_number NUMBER;
1537 BEGIN
1538 -- Standard Start of API savepoint
1539 SAVEPOINT Update_Adj_New_Disc_Pvt;
1540 -- Standard call to check for call compatibility.
1541 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1545 THEN
1542 p_api_version_number,
1543 l_api_name,
1544 G_PKG_NAME)
1546 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1547 END IF;
1548 -- Initialize message list if p_init_msg_list is set to TRUE.
1549 IF FND_API.to_Boolean( p_init_msg_list )
1550 THEN
1551 FND_MSG_PUB.initialize;
1552 END IF;
1553 -- Debug Message
1554 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1555 -- Initialize API return status to SUCCESS
1556 x_return_status := FND_API.G_RET_STS_SUCCESS;
1557
1558 populate_line_disc_rec
1559 (
1560 p_adj_new_disc_rec => p_adj_new_disc_rec
1561 , p_adj_new_line_rec => l_adj_new_line_rec
1562 );
1563 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1564 RAISE FND_API.G_EXC_ERROR;
1565 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1566 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1567 END IF;
1568
1569 Update_Adj_New_Line(
1570 p_api_version_number => 1.0
1571 , p_init_msg_list => FND_API.G_FALSE
1572 , p_commit => FND_API.G_FALSE
1573 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1574
1575 , x_return_status => x_return_status
1576 , x_msg_count => x_msg_count
1577 , x_msg_data => x_msg_data
1578
1579 , p_adj_new_line_rec => l_adj_new_line_rec
1580 , x_object_version_number => x_object_version_number
1581 );
1582 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1583 RAISE FND_API.G_EXC_ERROR;
1584 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1585 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1586 END IF;
1587 populate_prod_disc_rec
1588 (
1589 p_adj_new_disc_rec => p_adj_new_disc_rec
1590 , p_adj_new_prod_rec => l_adj_new_prod_rec
1591 );
1592
1593 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1594 RAISE FND_API.G_EXC_ERROR;
1595 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1596 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1597 END IF;
1598
1599 OZF_Adj_New_Prod_PVT.Update_Adj_New_Prod(
1600 p_api_version_number => 1.0
1601 , p_init_msg_list => FND_API.G_FALSE
1602 , p_commit => FND_API.G_FALSE
1603 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1604
1605 , x_return_status => x_return_status
1606 , x_msg_count => x_msg_count
1607 , x_msg_data => x_msg_data
1608
1609 , p_adj_new_prod_rec => l_adj_new_prod_rec
1610 , x_object_version_number => l_object_version_number
1611 );
1612 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1613 RAISE FND_API.G_EXC_ERROR;
1614 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1615 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1616 END IF;
1617 --
1618 -- End of API body.
1619 --
1620 -- Standard check for p_commit
1621 IF FND_API.to_Boolean( p_commit )
1622 THEN
1623 COMMIT WORK;
1624 END IF;
1625 -- Debug Message
1626 OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1627 EXCEPTION
1628
1629 WHEN OZF_UTILITY_PVT.resource_locked THEN
1630 x_return_status := FND_API.g_ret_sts_error;
1631 OZF_UTILITY_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1632
1633 WHEN FND_API.G_EXC_ERROR THEN
1634 ROLLBACK TO Update_Adj_New_Disc_Pvt;
1635 x_return_status := FND_API.G_RET_STS_ERROR;
1636 -- Standard call to get message count and if count=1, get the message
1637 FND_MSG_PUB.Count_And_Get (
1638 p_encoded => FND_API.G_FALSE,
1639 p_count => x_msg_count,
1640 p_data => x_msg_data
1641 );
1642
1643 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1644 ROLLBACK TO Update_Adj_New_Disc_Pvt;
1645 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1646 -- Standard call to get message count and if count=1, get the message
1647 FND_MSG_PUB.Count_And_Get (
1648 p_encoded => FND_API.G_FALSE,
1649 p_count => x_msg_count,
1650 p_data => x_msg_data
1651 );
1652
1653 WHEN OTHERS THEN
1654 ROLLBACK TO Update_Adj_New_Disc_Pvt;
1655 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1656 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1657 THEN
1658 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1659 END IF;
1660 -- Standard call to get message count and if count=1, get the message
1661 FND_MSG_PUB.Count_And_Get (
1662 p_encoded => FND_API.G_FALSE,
1663 p_count => x_msg_count,
1664 p_data => x_msg_data
1665 );
1666
1667 END Update_Adj_New_Disc;
1668 END OZF_Adj_New_Line_PVT;