[Home] [Help]
PACKAGE BODY: APPS.AMS_VENUE_RATES_PVT
Source
1 PACKAGE BODY AMS_Venue_Rates_PVT as
2 /* $Header: amsvvrtb.pls 115.5 2002/12/24 18:59:46 mukumar ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Venue_Rates_PVT
7 -- Purpose
8 --
9 -- History
10 -- 10-MAY-2002 GMADANA Added Rate_code.
11 --
12 -- NOTE
13 --
14 -- End of Comments
15 -- ===============================================================
16
17
18 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Venue_Rates_PVT';
19 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvvrtb.pls';
20
21 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
22 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
23
24 -- Hint: Primary key needs to be returned.
25 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
26 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
27 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
28
29 PROCEDURE Create_Venue_Rates(
30 p_api_version_number IN NUMBER,
31 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
32 p_commit IN VARCHAR2 := FND_API.G_FALSE,
33 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
34
35 x_return_status OUT NOCOPY VARCHAR2,
36 x_msg_count OUT NOCOPY NUMBER,
37 x_msg_data OUT NOCOPY VARCHAR2,
38
39 p_venue_rates_rec IN venue_rates_rec_type := g_miss_venue_rates_rec,
40 x_rate_id OUT NOCOPY NUMBER
41 )
42
43 IS
44 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Venue_Rates';
45 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
46 l_return_status_full VARCHAR2(1);
47 l_object_version_number NUMBER := 1;
48 l_org_id NUMBER := FND_API.G_MISS_NUM;
49 l_RATE_ID NUMBER;
50 l_dummy NUMBER;
51 l_venue_rates_rec AMS_Venue_Rates_PVT.venue_rates_rec_type := p_venue_rates_rec;
52
53 CURSOR c_id IS
54 SELECT AMS_VENUE_RATES_B_s.NEXTVAL
55 FROM dual;
56
57 CURSOR c_id_exists (l_id IN NUMBER) IS
58 SELECT 1
59 FROM AMS_VENUE_RATES_B
60 WHERE RATE_ID = l_id;
61
62 BEGIN
63 -- Standard Start of API savepoint
64 SAVEPOINT CREATE_Venue_Rates_PVT;
65
66 -- Standard call to check for call compatibility.
67 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
68 p_api_version_number,
69 l_api_name,
70 G_PKG_NAME)
71 THEN
72 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
73 END IF;
74
75 -- Initialize message list if p_init_msg_list is set to TRUE.
76 IF FND_API.to_Boolean( p_init_msg_list )
77 THEN
78 FND_MSG_PUB.initialize;
79 END IF;
80
81 -- Debug Message
82 IF (AMS_DEBUG_HIGH_ON) THEN
83
84 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
85 END IF;
86
87
88 -- Initialize API return status to SUCCESS
89 x_return_status := FND_API.G_RET_STS_SUCCESS;
90
91 -- Local variable initialization
92
93 IF p_venue_rates_rec.RATE_ID IS NULL OR p_venue_rates_rec.RATE_ID = FND_API.g_miss_num THEN
94 LOOP
95 l_dummy := NULL;
96 OPEN c_id;
97 FETCH c_id INTO l_RATE_ID;
98 CLOSE c_id;
99
100 OPEN c_id_exists(l_RATE_ID);
101 FETCH c_id_exists INTO l_dummy;
102 CLOSE c_id_exists;
103 EXIT WHEN l_dummy IS NULL;
104 END LOOP;
105
106 END IF;
107
108 -- =========================================================================
109 -- Validate Environment
110 -- =========================================================================
111
112 IF FND_GLOBAL.User_Id IS NULL
113 THEN
114 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
115 RAISE FND_API.G_EXC_ERROR;
116 END IF;
117
118 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
119 THEN
120 -- Debug message
121 IF (AMS_DEBUG_HIGH_ON) THEN
122
123 AMS_UTILITY_PVT.debug_message('Private API: Validate_Venue_Rates');
124 END IF;
125
126 -- Invoke validation procedures
127 Validate_venue_rates(
128 p_api_version_number => 1.0,
129 p_init_msg_list => FND_API.G_FALSE,
130 p_validation_level => p_validation_level,
131 p_validation_mode => JTF_PLSQL_API.g_create,
132 p_venue_rates_rec => p_venue_rates_rec,
133 x_return_status => x_return_status,
134 x_msg_count => x_msg_count,
135 x_msg_data => x_msg_data);
136 END IF;
137
138 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
139 RAISE FND_API.G_EXC_ERROR;
140 END IF;
141
142 -- the code will convert the transaction currency in to
143 -- functional currency.
144
145 IF l_venue_rates_rec.transactional_value IS NOT NULL THEN
146 AMS_CampaignRules_PVT.Convert_Camp_Currency(
147 p_tc_curr => p_venue_rates_rec.transactional_currency_code,
148 p_tc_amt => p_venue_rates_rec.transactional_value,
149 x_fc_curr => l_venue_rates_rec.functional_currency_code,
150 x_fc_amt => l_venue_rates_rec.functional_value
151 ) ;
152 END IF ;
153
154 -- Debug Message
155 IF (AMS_DEBUG_HIGH_ON) THEN
156
157 AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
158 END IF;
159
160 -- Invoke table handler(AMS_VENUE_RATES_B_PKG.Insert_Row)
161 AMS_VENUE_RATES_B_PKG.Insert_Row(
162 px_rate_id => l_rate_id,
163 p_last_update_date => SYSDATE,
164 p_last_updated_by => G_USER_ID,
165 p_creation_date => SYSDATE,
166 p_created_by => G_USER_ID,
167 p_last_update_login => G_LOGIN_ID,
168 px_object_version_number => l_object_version_number,
169 p_active_flag => p_venue_rates_rec.active_flag,
170 p_venue_id => p_venue_rates_rec.venue_id,
171 p_metric_id => p_venue_rates_rec.metric_id,
172 p_transactional_value => p_venue_rates_rec.transactional_value,
173 p_transactional_currency_code => p_venue_rates_rec.transactional_currency_code,
174 p_functional_value => l_venue_rates_rec.functional_value,
175 p_functional_currency_code => l_venue_rates_rec.functional_currency_code,
176 p_uom_code => p_venue_rates_rec.uom_code,
177 p_rate_code => p_venue_rates_rec.rate_code,
178 p_attribute_category => p_venue_rates_rec.attribute_category,
179 p_attribute1 => p_venue_rates_rec.attribute1,
180 p_attribute2 => p_venue_rates_rec.attribute2,
181 p_attribute3 => p_venue_rates_rec.attribute3,
182 p_attribute4 => p_venue_rates_rec.attribute4,
183 p_attribute5 => p_venue_rates_rec.attribute5,
184 p_attribute6 => p_venue_rates_rec.attribute6,
185 p_attribute7 => p_venue_rates_rec.attribute7,
186 p_attribute8 => p_venue_rates_rec.attribute8,
187 p_attribute9 => p_venue_rates_rec.attribute9,
188 p_attribute10 => p_venue_rates_rec.attribute10,
189 p_attribute11 => p_venue_rates_rec.attribute11,
190 p_attribute12 => p_venue_rates_rec.attribute12,
191 p_attribute13 => p_venue_rates_rec.attribute13,
192 p_attribute14 => p_venue_rates_rec.attribute14,
193 p_attribute15 => p_venue_rates_rec.attribute15,
194 p_description => p_venue_rates_rec.description);
195
196 x_rate_id := l_rate_id;
197 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
198 RAISE FND_API.G_EXC_ERROR;
199 END IF;
200 --
201 -- End of API body
202 --
203
204 -- Standard check for p_commit
205 IF FND_API.to_Boolean( p_commit )
206 THEN
207 COMMIT WORK;
208 END IF;
209
210
211 -- Debug Message
212 IF (AMS_DEBUG_HIGH_ON) THEN
213
214 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
215 END IF;
216
217 -- Standard call to get message count and if count is 1, get message info.
218 FND_MSG_PUB.Count_And_Get
219 (p_count => x_msg_count,
220 p_data => x_msg_data
221 );
222 EXCEPTION
223
224 WHEN AMS_Utility_PVT.resource_locked THEN
225 x_return_status := FND_API.g_ret_sts_error;
226 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
227
228 WHEN FND_API.G_EXC_ERROR THEN
229 ROLLBACK TO CREATE_Venue_Rates_PVT;
230 x_return_status := FND_API.G_RET_STS_ERROR;
231 -- Standard call to get message count and if count=1, get the message
232 FND_MSG_PUB.Count_And_Get (
233 p_encoded => FND_API.G_FALSE,
234 p_count => x_msg_count,
235 p_data => x_msg_data
236 );
237
238 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
239 ROLLBACK TO CREATE_Venue_Rates_PVT;
240 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241 -- Standard call to get message count and if count=1, get the message
242 FND_MSG_PUB.Count_And_Get (
243 p_encoded => FND_API.G_FALSE,
244 p_count => x_msg_count,
245 p_data => x_msg_data
246 );
247
248 WHEN OTHERS THEN
249 ROLLBACK TO CREATE_Venue_Rates_PVT;
250 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
251 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
252 THEN
253 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
254 END IF;
255 -- Standard call to get message count and if count=1, get the message
256 FND_MSG_PUB.Count_And_Get (
257 p_encoded => FND_API.G_FALSE,
258 p_count => x_msg_count,
259 p_data => x_msg_data
260 );
261 End Create_Venue_Rates;
262
263
264 PROCEDURE Update_Venue_Rates(
265 p_api_version_number IN NUMBER,
266 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
267 p_commit IN VARCHAR2 := FND_API.G_FALSE,
268 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
269
270 x_return_status OUT NOCOPY VARCHAR2,
271 x_msg_count OUT NOCOPY NUMBER,
272 x_msg_data OUT NOCOPY VARCHAR2,
273
274 p_venue_rates_rec IN venue_rates_rec_type,
275 x_object_version_number OUT NOCOPY NUMBER
276 )
277
278 IS
279
280 CURSOR c_get_venue_rates(rate_id NUMBER) IS
281 SELECT *
282 FROM AMS_VENUE_RATES_B;
283 -- Hint: Developer need to provide Where clause
284
285 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Venue_Rates';
286 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
287 -- Local Variables
288 l_object_version_number NUMBER;
289 l_RATE_ID NUMBER;
290 l_ref_venue_rates_rec c_get_Venue_Rates%ROWTYPE ;
291 l_tar_venue_rates_rec AMS_Venue_Rates_PVT.venue_rates_rec_type := P_venue_rates_rec;
292 l_rowid ROWID;
293
294 BEGIN
295 -- Standard Start of API savepoint
296 SAVEPOINT UPDATE_Venue_Rates_PVT;
297
298 -- Standard call to check for call compatibility.
299 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
300 p_api_version_number,
301 l_api_name,
302 G_PKG_NAME)
303 THEN
304 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
305 END IF;
306
307 -- Initialize message list if p_init_msg_list is set to TRUE.
308 IF FND_API.to_Boolean( p_init_msg_list )
309 THEN
310 FND_MSG_PUB.initialize;
311 END IF;
312
313 -- Debug Message
314 IF (AMS_DEBUG_HIGH_ON) THEN
315
316 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
317 END IF;
318
319
320 -- Initialize API return status to SUCCESS
321 x_return_status := FND_API.G_RET_STS_SUCCESS;
322
323 -- Debug Message
324 IF (AMS_DEBUG_HIGH_ON) THEN
325
326 AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
327 END IF;
328
329 /*
330 OPEN c_get_Venue_Rates( l_tar_venue_rates_rec.rate_id);
331
332 FETCH c_get_Venue_Rates INTO l_ref_venue_rates_rec ;
333
334 If ( c_get_Venue_Rates%NOTFOUND) THEN
335 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
336 p_token_name => 'INFO',
337 p_token_value => 'Venue_Rates') ;
338 RAISE FND_API.G_EXC_ERROR;
339 END IF;
340 -- Debug Message
341 IF (AMS_DEBUG_HIGH_ON) THEN
342
343 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
344 END IF;
345 CLOSE c_get_Venue_Rates;
346 */
347
348
349 If (l_tar_venue_rates_rec.object_version_number is NULL or
350 l_tar_venue_rates_rec.object_version_number = FND_API.G_MISS_NUM ) Then
351 AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
352 p_token_name => 'COLUMN',
353 p_token_value => 'Last_Update_Date') ;
354 raise FND_API.G_EXC_ERROR;
355 End if;
356 -- Check Whether record has been changed by someone else
357 If (l_tar_venue_rates_rec.object_version_number <> l_ref_venue_rates_rec.object_version_number) Then
358 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
359 p_token_name => 'INFO',
360 p_token_value => 'Venue_Rates') ;
361 raise FND_API.G_EXC_ERROR;
362 End if;
363 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
364 THEN
365 -- Debug message
366 IF (AMS_DEBUG_HIGH_ON) THEN
367
368 AMS_UTILITY_PVT.debug_message('Private API: Validate_Venue_Rates');
369 END IF;
370
371 -- Invoke validation procedures
372 Validate_venue_rates(
373 p_api_version_number => 1.0,
374 p_init_msg_list => FND_API.G_FALSE,
375 p_validation_level => p_validation_level,
376 p_validation_mode => JTF_PLSQL_API.g_update,
377 p_venue_rates_rec => p_venue_rates_rec,
378 x_return_status => x_return_status,
379 x_msg_count => x_msg_count,
380 x_msg_data => x_msg_data);
381 END IF;
382
383 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
384 RAISE FND_API.G_EXC_ERROR;
385 END IF;
386
387
388 -- Debug Message
389 IF (AMS_DEBUG_HIGH_ON) THEN
390
391 AMS_UTILITY_PVT.debug_message('Private API: Calling update table handler');
392 END IF;
393
394 -- Invoke table handler(AMS_VENUE_RATES_B_PKG.Update_Row)
395 AMS_VENUE_RATES_B_PKG.Update_Row(
396 p_rate_id => p_venue_rates_rec.rate_id,
397 p_last_update_date => SYSDATE,
398 p_last_updated_by => G_USER_ID,
399 p_creation_date => SYSDATE,
400 p_created_by => G_USER_ID,
401 p_last_update_login => G_LOGIN_ID,
402 p_object_version_number => p_venue_rates_rec.object_version_number,
403 p_active_flag => p_venue_rates_rec.active_flag,
404 p_venue_id => p_venue_rates_rec.venue_id,
405 p_metric_id => p_venue_rates_rec.metric_id,
406 p_transactional_value => p_venue_rates_rec.transactional_value,
407 p_transactional_currency_code => p_venue_rates_rec.transactional_currency_code,
408 p_functional_value => p_venue_rates_rec.functional_value,
409 p_functional_currency_code => p_venue_rates_rec.functional_currency_code,
410 p_uom_code => p_venue_rates_rec.uom_code,
411 p_rate_code => p_venue_rates_rec.rate_code,
412 p_attribute_category => p_venue_rates_rec.attribute_category,
413 p_attribute1 => p_venue_rates_rec.attribute1,
414 p_attribute2 => p_venue_rates_rec.attribute2,
415 p_attribute3 => p_venue_rates_rec.attribute3,
416 p_attribute4 => p_venue_rates_rec.attribute4,
417 p_attribute5 => p_venue_rates_rec.attribute5,
418 p_attribute6 => p_venue_rates_rec.attribute6,
419 p_attribute7 => p_venue_rates_rec.attribute7,
420 p_attribute8 => p_venue_rates_rec.attribute8,
421 p_attribute9 => p_venue_rates_rec.attribute9,
422 p_attribute10 => p_venue_rates_rec.attribute10,
423 p_attribute11 => p_venue_rates_rec.attribute11,
424 p_attribute12 => p_venue_rates_rec.attribute12,
425 p_attribute13 => p_venue_rates_rec.attribute13,
426 p_attribute14 => p_venue_rates_rec.attribute14,
427 p_attribute15 => p_venue_rates_rec.attribute15,
428 p_description => p_venue_rates_rec.description);
429
430 x_object_version_number := p_venue_rates_rec.object_version_number + 1;
431
432 --
433 -- End of API body.
434 --
435
436 -- Standard check for p_commit
437 IF FND_API.to_Boolean( p_commit )
438 THEN
439 COMMIT WORK;
440 END IF;
441
442
443 -- Debug Message
444 IF (AMS_DEBUG_HIGH_ON) THEN
445
446 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
447 END IF;
448
449 -- Standard call to get message count and if count is 1, get message info.
450 FND_MSG_PUB.Count_And_Get
451 (p_count => x_msg_count,
452 p_data => x_msg_data
453 );
454 EXCEPTION
455
456 WHEN AMS_Utility_PVT.resource_locked THEN
457 x_return_status := FND_API.g_ret_sts_error;
458 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
459
460 WHEN FND_API.G_EXC_ERROR THEN
461 ROLLBACK TO UPDATE_Venue_Rates_PVT;
462 x_return_status := FND_API.G_RET_STS_ERROR;
463 -- Standard call to get message count and if count=1, get the message
464 FND_MSG_PUB.Count_And_Get (
465 p_encoded => FND_API.G_FALSE,
466 p_count => x_msg_count,
467 p_data => x_msg_data
468 );
469
470 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
471 ROLLBACK TO UPDATE_Venue_Rates_PVT;
472 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
473 -- Standard call to get message count and if count=1, get the message
474 FND_MSG_PUB.Count_And_Get (
475 p_encoded => FND_API.G_FALSE,
476 p_count => x_msg_count,
477 p_data => x_msg_data
478 );
479
480 WHEN OTHERS THEN
481 ROLLBACK TO UPDATE_Venue_Rates_PVT;
482 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
483 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
484 THEN
485 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
486 END IF;
487 -- Standard call to get message count and if count=1, get the message
488 FND_MSG_PUB.Count_And_Get (
489 p_encoded => FND_API.G_FALSE,
490 p_count => x_msg_count,
491 p_data => x_msg_data
492 );
493 End Update_Venue_Rates;
494
495
496 PROCEDURE Delete_Venue_Rates(
497 p_api_version_number IN NUMBER,
498 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
499 p_commit IN VARCHAR2 := FND_API.G_FALSE,
500 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
501 x_return_status OUT NOCOPY VARCHAR2,
502 x_msg_count OUT NOCOPY NUMBER,
503 x_msg_data OUT NOCOPY VARCHAR2,
504 p_rate_id IN NUMBER,
505 p_object_version_number IN NUMBER
506 )
507
508 IS
509 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Venue_Rates';
510 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
511 l_object_version_number NUMBER;
512
513 BEGIN
514 -- Standard Start of API savepoint
515 SAVEPOINT DELETE_Venue_Rates_PVT;
516
517 -- Standard call to check for call compatibility.
518 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
519 p_api_version_number,
520 l_api_name,
521 G_PKG_NAME)
522 THEN
523 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
524 END IF;
525
526 -- Initialize message list if p_init_msg_list is set to TRUE.
527 IF FND_API.to_Boolean( p_init_msg_list )
528 THEN
529 FND_MSG_PUB.initialize;
530 END IF;
531
532 -- Debug Message
533 IF (AMS_DEBUG_HIGH_ON) THEN
534
535 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
536 END IF;
537
538
539 -- Initialize API return status to SUCCESS
540 x_return_status := FND_API.G_RET_STS_SUCCESS;
541
542 --
543 -- Api body
544 --
545 -- Debug Message
546 IF (AMS_DEBUG_HIGH_ON) THEN
547
548 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
549 END IF;
550
551 -- Invoke table handler(AMS_VENUE_RATES_B_PKG.Delete_Row)
552 AMS_VENUE_RATES_B_PKG.Delete_Row(
553 p_RATE_ID => p_RATE_ID);
554 --
555 -- End of API body
556 --
557
558 -- Standard check for p_commit
559 IF FND_API.to_Boolean( p_commit )
560 THEN
561 COMMIT WORK;
562 END IF;
563
564
565 -- Debug Message
566 IF (AMS_DEBUG_HIGH_ON) THEN
567
568 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
569 END IF;
570
571 -- Standard call to get message count and if count is 1, get message info.
572 FND_MSG_PUB.Count_And_Get
573 (p_count => x_msg_count,
574 p_data => x_msg_data
575 );
576 EXCEPTION
577
578 WHEN AMS_Utility_PVT.resource_locked THEN
579 x_return_status := FND_API.g_ret_sts_error;
580 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
581
582 WHEN FND_API.G_EXC_ERROR THEN
583 ROLLBACK TO DELETE_Venue_Rates_PVT;
584 x_return_status := FND_API.G_RET_STS_ERROR;
585 -- Standard call to get message count and if count=1, get the message
586 FND_MSG_PUB.Count_And_Get (
587 p_encoded => FND_API.G_FALSE,
588 p_count => x_msg_count,
589 p_data => x_msg_data
590 );
591
592 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
593 ROLLBACK TO DELETE_Venue_Rates_PVT;
594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
595 -- Standard call to get message count and if count=1, get the message
596 FND_MSG_PUB.Count_And_Get (
597 p_encoded => FND_API.G_FALSE,
598 p_count => x_msg_count,
599 p_data => x_msg_data
600 );
601
602 WHEN OTHERS THEN
603 ROLLBACK TO DELETE_Venue_Rates_PVT;
604 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
605 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
606 THEN
607 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
608 END IF;
609 -- Standard call to get message count and if count=1, get the message
610 FND_MSG_PUB.Count_And_Get (
611 p_encoded => FND_API.G_FALSE,
612 p_count => x_msg_count,
613 p_data => x_msg_data
614 );
615 End Delete_Venue_Rates;
616
617
618
619 -- Hint: Primary key needs to be returned.
620 PROCEDURE Lock_Venue_Rates(
621 p_api_version_number IN NUMBER,
622 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
623
624 x_return_status OUT NOCOPY VARCHAR2,
625 x_msg_count OUT NOCOPY NUMBER,
626 x_msg_data OUT NOCOPY VARCHAR2,
627
628 p_rate_id IN NUMBER,
629 p_object_version IN NUMBER
630 )
631
632 IS
633 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Venue_Rates';
634 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
635 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
636 l_RATE_ID NUMBER;
637
638 CURSOR c_Venue_Rates IS
639 SELECT RATE_ID
640 FROM AMS_VENUE_RATES_B
641 WHERE RATE_ID = p_RATE_ID
642 AND object_version_number = p_object_version
643 FOR UPDATE NOWAIT;
644
645 BEGIN
646
647 -- Debug Message
648 IF (AMS_DEBUG_HIGH_ON) THEN
649
650 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
651 END IF;
652
653 -- Initialize message list if p_init_msg_list is set to TRUE.
654 IF FND_API.to_Boolean( p_init_msg_list )
655 THEN
656 FND_MSG_PUB.initialize;
657 END IF;
658
659 -- Standard call to check for call compatibility.
660 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
661 p_api_version_number,
662 l_api_name,
663 G_PKG_NAME)
664 THEN
665 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
666 END IF;
667
668
669 -- Initialize API return status to SUCCESS
670 x_return_status := FND_API.G_RET_STS_SUCCESS;
671
672
673 ------------------------ lock -------------------------
674
675 IF (AMS_DEBUG_HIGH_ON) THEN
676
677
678
679 AMS_Utility_PVT.debug_message(l_full_name||': start');
680
681 END IF;
682 OPEN c_Venue_Rates;
683
684 FETCH c_Venue_Rates INTO l_RATE_ID;
685
686 IF (c_Venue_Rates%NOTFOUND) THEN
687 CLOSE c_Venue_Rates;
688 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
689 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
690 FND_MSG_PUB.add;
691 END IF;
692 RAISE FND_API.g_exc_error;
693 END IF;
694
695 CLOSE c_Venue_Rates;
696
697 -------------------- finish --------------------------
698 FND_MSG_PUB.count_and_get(
699 p_encoded => FND_API.g_false,
700 p_count => x_msg_count,
701 p_data => x_msg_data);
702 IF (AMS_DEBUG_HIGH_ON) THEN
703
704 AMS_Utility_PVT.debug_message(l_full_name ||': end');
705 END IF;
706 EXCEPTION
707
708 WHEN AMS_Utility_PVT.resource_locked THEN
709 x_return_status := FND_API.g_ret_sts_error;
710 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
711
712 WHEN FND_API.G_EXC_ERROR THEN
713 ROLLBACK TO LOCK_Venue_Rates_PVT;
714 x_return_status := FND_API.G_RET_STS_ERROR;
715 -- Standard call to get message count and if count=1, get the message
716 FND_MSG_PUB.Count_And_Get (
717 p_encoded => FND_API.G_FALSE,
718 p_count => x_msg_count,
719 p_data => x_msg_data
720 );
721
722 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
723 ROLLBACK TO LOCK_Venue_Rates_PVT;
724 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
725 -- Standard call to get message count and if count=1, get the message
726 FND_MSG_PUB.Count_And_Get (
727 p_encoded => FND_API.G_FALSE,
728 p_count => x_msg_count,
729 p_data => x_msg_data
730 );
731
732 WHEN OTHERS THEN
733 ROLLBACK TO LOCK_Venue_Rates_PVT;
734 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
735 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
736 THEN
737 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
738 END IF;
739 -- Standard call to get message count and if count=1, get the message
740 FND_MSG_PUB.Count_And_Get (
741 p_encoded => FND_API.G_FALSE,
742 p_count => x_msg_count,
743 p_data => x_msg_data
744 );
745 End Lock_Venue_Rates;
746
747
748 PROCEDURE check_venue_rates_uk_items(
749 p_venue_rates_rec IN venue_rates_rec_type,
750 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
751 x_return_status OUT NOCOPY VARCHAR2)
752 IS
753 l_valid_flag VARCHAR2(1);
754
755 BEGIN
756 x_return_status := FND_API.g_ret_sts_success;
757 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
758 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
759 'AMS_VENUE_RATES_B',
760 'RATE_ID = ''' || p_venue_rates_rec.RATE_ID ||''''
761 );
762 ELSE
763 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
764 'AMS_VENUE_RATES_B',
765 'RATE_ID = ''' || p_venue_rates_rec.RATE_ID ||
766 ''' AND RATE_ID <> ' || p_venue_rates_rec.RATE_ID
767 );
768 END IF;
769
770 IF l_valid_flag = FND_API.g_false THEN
771 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_RATE_ID_DUPLICATE');
772 x_return_status := FND_API.g_ret_sts_error;
773 RETURN;
774 END IF;
775
776 END check_venue_rates_uk_items;
777
778 PROCEDURE check_venue_rates_req_items(
779 p_venue_rates_rec IN venue_rates_rec_type,
780 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
781 x_return_status OUT NOCOPY VARCHAR2
782 )
783 IS
784 BEGIN
785 x_return_status := FND_API.g_ret_sts_success;
786
787 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
788
789 /*
790 IF p_venue_rates_rec.rate_id = FND_API.g_miss_num OR p_venue_rates_rec.rate_id IS NULL THEN
791 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
792 FND_MESSAGE.set_token('MISS_FIELD','RATE_ID');
793 FND_MESSAGE.set_name('AMS', 'AMS_MISS_RATE_ID');
794 FND_MSG_PUB.Add;
795
796 x_return_status := FND_API.g_ret_sts_error;
797 RETURN;
798 END IF;
799
800
801 IF p_venue_rates_rec.last_update_date = FND_API.g_miss_date OR p_venue_rates_rec.last_update_date IS NULL THEN
802 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
803 FND_MESSAGE.set_token('MISS_FIELD','LAST_UPDATE_DATE');
804
805 x_return_status := FND_API.g_ret_sts_error;
806 RETURN;
807 END IF;
808
809
810 IF p_venue_rates_rec.last_updated_by = FND_API.g_miss_num OR p_venue_rates_rec.last_updated_by IS NULL THEN
811 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
812 FND_MESSAGE.set_token('MISS_FIELD','LAST_UPDATED_BY');
813 x_return_status := FND_API.g_ret_sts_error;
814 RETURN;
815 END IF;
816
817
818 IF p_venue_rates_rec.creation_date = FND_API.g_miss_date OR p_venue_rates_rec.creation_date IS NULL THEN
819 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
820 FND_MESSAGE.set_token('MISS_FIELD','CREATION_DATE');
821 x_return_status := FND_API.g_ret_sts_error;
822 RETURN;
823 END IF;
824
825
826 IF p_venue_rates_rec.created_by = FND_API.g_miss_num OR p_venue_rates_rec.created_by IS NULL THEN
827 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
828 FND_MESSAGE.set_token('MISS_FIELD','CREATED_BY');
829 x_return_status := FND_API.g_ret_sts_error;
830 RETURN;
831 END IF;
832 */
833
834 IF p_venue_rates_rec.venue_id = FND_API.g_miss_num OR p_venue_rates_rec.venue_id IS NULL THEN
835 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
836 FND_MESSAGE.set_token('MISS_FIELD','VENUE_ID');
837 x_return_status := FND_API.g_ret_sts_error;
838 RETURN;
839 END IF;
840
841 -- Following code is commented by GMADANA
842 /*
843 IF p_venue_rates_rec.metric_id = FND_API.g_miss_num OR p_venue_rates_rec.metric_id IS NULL THEN
844 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
845 FND_MESSAGE.set_token('MISS_FIELD','METRIC_ID');
846 x_return_status := FND_API.g_ret_sts_error;
847 RETURN;
848 END IF;
849 */
850
851
852 IF p_venue_rates_rec.transactional_value = FND_API.g_miss_num OR p_venue_rates_rec.transactional_value IS NULL THEN
853 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
854 FND_MESSAGE.set_token('MISS_FIELD','TRANSACTIONAL_VALUE');
855 x_return_status := FND_API.g_ret_sts_error;
856 RETURN;
857 END IF;
858
859
860 IF p_venue_rates_rec.transactional_currency_code = FND_API.g_miss_char OR p_venue_rates_rec.transactional_currency_code IS NULL THEN
861 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
862 FND_MESSAGE.set_token('MISS_FIELD','TRANSACTIONAL_CURRENCY_CODE');
863 x_return_status := FND_API.g_ret_sts_error;
864 RETURN;
865 END IF;
866
867 /*
868 IF p_venue_rates_rec.functional_value = FND_API.g_miss_num OR p_venue_rates_rec.functional_value IS NULL THEN
869 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
870 FND_MESSAGE.set_token('MISS_FIELD','FUNCTIONAL_VALUE');
871 x_return_status := FND_API.g_ret_sts_error;
872 RETURN;
873 END IF;
874
875
876 IF p_venue_rates_rec.functional_currency_code = FND_API.g_miss_char OR p_venue_rates_rec.functional_currency_code IS NULL THEN
877 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
878 FND_MESSAGE.set_token('MISS_FIELD','FUNCTIONAL_CURRENCY_CODE');
879 x_return_status := FND_API.g_ret_sts_error;
880 RETURN;
881 END IF;
882 */
883
884 IF p_venue_rates_rec.uom_code = FND_API.g_miss_char OR p_venue_rates_rec.uom_code IS NULL THEN
885 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
886 FND_MESSAGE.set_token('MISS_FIELD','UOM_CODE');
887 x_return_status := FND_API.g_ret_sts_error;
888 RETURN;
889 END IF;
890 ELSE
891
892
893 IF p_venue_rates_rec.rate_id IS NULL THEN
894 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_rate_id');
895 x_return_status := FND_API.g_ret_sts_error;
896 RETURN;
897 END IF;
898
899 /*
900 IF p_venue_rates_rec.last_update_date IS NULL THEN
901 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_last_update_date');
902 x_return_status := FND_API.g_ret_sts_error;
903 RETURN;
904 END IF;
905
906
907 IF p_venue_rates_rec.last_updated_by IS NULL THEN
908 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_last_updated_by');
909 x_return_status := FND_API.g_ret_sts_error;
910 RETURN;
911 END IF;
912
913
914 IF p_venue_rates_rec.creation_date IS NULL THEN
915 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_creation_date');
916 x_return_status := FND_API.g_ret_sts_error;
917 RETURN;
918 END IF;
919
920
921 IF p_venue_rates_rec.created_by IS NULL THEN
922 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_created_by');
923 x_return_status := FND_API.g_ret_sts_error;
924 RETURN;
925 END IF;
926
927 */
928 IF p_venue_rates_rec.venue_id IS NULL THEN
929 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_venue_id');
930 x_return_status := FND_API.g_ret_sts_error;
931 RETURN;
932 END IF;
933
934
935 IF p_venue_rates_rec.metric_id IS NULL THEN
936 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_metric_id');
937 x_return_status := FND_API.g_ret_sts_error;
938 RETURN;
939 END IF;
940
941
942 IF p_venue_rates_rec.transactional_value IS NULL THEN
943 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_transactional_value');
944 x_return_status := FND_API.g_ret_sts_error;
945 RETURN;
946 END IF;
947
948
949 IF p_venue_rates_rec.transactional_currency_code IS NULL THEN
950 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_transactional_currency_code');
951 x_return_status := FND_API.g_ret_sts_error;
952 RETURN;
953 END IF;
954
955
956 IF p_venue_rates_rec.functional_value IS NULL THEN
957 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_functional_value');
958 x_return_status := FND_API.g_ret_sts_error;
959 RETURN;
960 END IF;
961
962
963 IF p_venue_rates_rec.functional_currency_code IS NULL THEN
964 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_functional_currency_code');
965 x_return_status := FND_API.g_ret_sts_error;
966 RETURN;
967 END IF;
968
969
970 IF p_venue_rates_rec.uom_code IS NULL THEN
971 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_venue_rates_NO_uom_code');
972 x_return_status := FND_API.g_ret_sts_error;
973 RETURN;
974 END IF;
975 END IF;
976
977 END check_venue_rates_req_items;
978
979 PROCEDURE check_venue_rates_FK_items(
980 p_venue_rates_rec IN venue_rates_rec_type,
981 x_return_status OUT NOCOPY VARCHAR2
982 )
983 IS
984 BEGIN
985 x_return_status := FND_API.g_ret_sts_success;
986
987 -- Enter custom code here
988
989 END check_venue_rates_FK_items;
990
991 PROCEDURE check_venue_rates_Lookup_items(
992 p_venue_rates_rec IN venue_rates_rec_type,
993 x_return_status OUT NOCOPY VARCHAR2
994 )
995 IS
996 BEGIN
997
998 IF p_venue_rates_rec.rate_code <> FND_API.g_miss_char
999 AND p_venue_rates_rec.rate_code IS NOT NULL
1000 THEN
1001 IF AMS_Utility_PVT.check_lookup_exists(
1002 p_lookup_type => 'AMS_RATE_CODE',
1003 p_lookup_code => p_venue_rates_rec.rate_code
1004 ) = FND_API.g_false
1005 THEN
1006 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1007 THEN
1008 -- FND_MESSAGE.set_name('AMS', 'AMS_BAD_RATE_TYPE');
1009 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
1010 FND_MESSAGE.set_token('MISS_FIELD','RATE_CODE');
1011 FND_MSG_PUB.add;
1012 END IF;
1013 x_return_status := FND_API.g_ret_sts_error;
1014 RETURN;
1015 END IF;
1016 END IF;
1017
1018 x_return_status := FND_API.g_ret_sts_success;
1019
1020
1021
1022 -- Enter custom code here
1023
1024 END check_venue_rates_Lookup_items;
1025
1026 PROCEDURE Check_venue_rates_Items (
1027 P_venue_rates_rec IN venue_rates_rec_type,
1028 p_validation_mode IN VARCHAR2,
1029 x_return_status OUT NOCOPY VARCHAR2
1030 )
1031 IS
1032 BEGIN
1033
1034 -- Check Items Uniqueness API calls
1035
1036 check_venue_rates_uk_items(
1037 p_venue_rates_rec => p_venue_rates_rec,
1038 p_validation_mode => p_validation_mode,
1039 x_return_status => x_return_status);
1040 IF x_return_status <> FND_API.g_ret_sts_success THEN
1041 RETURN;
1042 END IF;
1043
1044 -- Check Items Required/NOT NULL API calls
1045
1046 check_venue_rates_req_items(
1047 p_venue_rates_rec => p_venue_rates_rec,
1048 p_validation_mode => p_validation_mode,
1049 x_return_status => x_return_status);
1050 IF x_return_status <> FND_API.g_ret_sts_success THEN
1051 RETURN;
1052 END IF;
1053 -- Check Items Foreign Keys API calls
1054
1055 check_venue_rates_FK_items(
1056 p_venue_rates_rec => p_venue_rates_rec,
1057 x_return_status => x_return_status);
1058 IF x_return_status <> FND_API.g_ret_sts_success THEN
1059 RETURN;
1060 END IF;
1061 -- Check Items Lookups
1062
1063 check_venue_rates_Lookup_items(
1064 p_venue_rates_rec => p_venue_rates_rec,
1065 x_return_status => x_return_status);
1066 IF x_return_status <> FND_API.g_ret_sts_success THEN
1067 RETURN;
1068 END IF;
1069
1070 END Check_venue_rates_Items;
1071
1072
1073
1074 PROCEDURE Complete_venue_rates_Rec (
1075 p_venue_rates_rec IN venue_rates_rec_type,
1076 x_complete_rec OUT NOCOPY venue_rates_rec_type)
1077 IS
1078 l_return_status VARCHAR2(1);
1079
1080 CURSOR c_complete IS
1081 SELECT *
1082 FROM ams_venue_rates_b
1083 WHERE rate_id = p_venue_rates_rec.rate_id;
1084 l_venue_rates_rec c_complete%ROWTYPE;
1085 BEGIN
1086 x_complete_rec := p_venue_rates_rec;
1087
1088
1089 OPEN c_complete;
1090 FETCH c_complete INTO l_venue_rates_rec;
1091 CLOSE c_complete;
1092
1093 -- rate_id
1094 IF p_venue_rates_rec.rate_id = FND_API.g_miss_num THEN
1095 x_complete_rec.rate_id := l_venue_rates_rec.rate_id;
1096 END IF;
1097
1098 -- last_update_date
1099 IF p_venue_rates_rec.last_update_date = FND_API.g_miss_date THEN
1100 x_complete_rec.last_update_date := l_venue_rates_rec.last_update_date;
1101 END IF;
1102
1103 -- last_updated_by
1104 IF p_venue_rates_rec.last_updated_by = FND_API.g_miss_num THEN
1105 x_complete_rec.last_updated_by := l_venue_rates_rec.last_updated_by;
1106 END IF;
1107
1108 -- creation_date
1109 IF p_venue_rates_rec.creation_date = FND_API.g_miss_date THEN
1110 x_complete_rec.creation_date := l_venue_rates_rec.creation_date;
1111 END IF;
1112
1113 -- created_by
1114 IF p_venue_rates_rec.created_by = FND_API.g_miss_num THEN
1115 x_complete_rec.created_by := l_venue_rates_rec.created_by;
1116 END IF;
1117
1118 -- last_update_login
1119 IF p_venue_rates_rec.last_update_login = FND_API.g_miss_num THEN
1120 x_complete_rec.last_update_login := l_venue_rates_rec.last_update_login;
1121 END IF;
1122
1123 -- object_version_number
1124 IF p_venue_rates_rec.object_version_number = FND_API.g_miss_num THEN
1125 x_complete_rec.object_version_number := l_venue_rates_rec.object_version_number;
1126 END IF;
1127
1128 -- active_flag
1129 IF p_venue_rates_rec.active_flag = FND_API.g_miss_char THEN
1130 x_complete_rec.active_flag := l_venue_rates_rec.active_flag;
1131 END IF;
1132
1133 -- venue_id
1134 IF p_venue_rates_rec.venue_id = FND_API.g_miss_num THEN
1135 x_complete_rec.venue_id := l_venue_rates_rec.venue_id;
1136 END IF;
1137
1138 -- metric_id
1139 IF p_venue_rates_rec.metric_id = FND_API.g_miss_num THEN
1140 x_complete_rec.metric_id := l_venue_rates_rec.metric_id;
1141 END IF;
1142
1143 -- transactional_value
1144 IF p_venue_rates_rec.transactional_value = FND_API.g_miss_num THEN
1145 x_complete_rec.transactional_value := l_venue_rates_rec.transactional_value;
1146 END IF;
1147
1148 -- transactional_currency_code
1149 IF p_venue_rates_rec.transactional_currency_code = FND_API.g_miss_char THEN
1150 x_complete_rec.transactional_currency_code := l_venue_rates_rec.transactional_currency_code;
1151 END IF;
1152
1153
1154
1155 -- functional_value
1156 IF p_venue_rates_rec.functional_value = FND_API.g_miss_num THEN
1157 x_complete_rec.functional_value := l_venue_rates_rec.functional_value;
1158 END IF;
1159
1160 -- functional_currency_code
1161 IF p_venue_rates_rec.functional_currency_code = FND_API.g_miss_char THEN
1162 x_complete_rec.functional_currency_code := l_venue_rates_rec.functional_currency_code;
1163 END IF;
1164
1165 -- uom_code
1166 IF p_venue_rates_rec.uom_code = FND_API.g_miss_char THEN
1167 x_complete_rec.uom_code := l_venue_rates_rec.uom_code;
1168 END IF;
1169
1170 -- rate_code Added by GMADANA
1171 IF p_venue_rates_rec.rate_code = FND_API.g_miss_char THEN
1172 x_complete_rec.rate_code := l_venue_rates_rec.rate_code;
1173 END IF;
1174
1175 -- attribute_category
1176 IF p_venue_rates_rec.attribute_category = FND_API.g_miss_char THEN
1177 x_complete_rec.attribute_category := l_venue_rates_rec.attribute_category;
1178 END IF;
1179
1180 -- attribute1
1181 IF p_venue_rates_rec.attribute1 = FND_API.g_miss_char THEN
1182 x_complete_rec.attribute1 := l_venue_rates_rec.attribute1;
1183 END IF;
1184
1185 -- attribute2
1186 IF p_venue_rates_rec.attribute2 = FND_API.g_miss_char THEN
1187 x_complete_rec.attribute2 := l_venue_rates_rec.attribute2;
1188 END IF;
1189
1190 -- attribute3
1191 IF p_venue_rates_rec.attribute3 = FND_API.g_miss_char THEN
1192 x_complete_rec.attribute3 := l_venue_rates_rec.attribute3;
1193 END IF;
1194
1195 -- attribute4
1196 IF p_venue_rates_rec.attribute4 = FND_API.g_miss_char THEN
1197 x_complete_rec.attribute4 := l_venue_rates_rec.attribute4;
1198 END IF;
1199
1200 -- attribute5
1201 IF p_venue_rates_rec.attribute5 = FND_API.g_miss_char THEN
1202 x_complete_rec.attribute5 := l_venue_rates_rec.attribute5;
1203 END IF;
1204
1205 -- attribute6
1206 IF p_venue_rates_rec.attribute6 = FND_API.g_miss_char THEN
1207 x_complete_rec.attribute6 := l_venue_rates_rec.attribute6;
1208 END IF;
1209
1210 -- attribute7
1211 IF p_venue_rates_rec.attribute7 = FND_API.g_miss_char THEN
1212 x_complete_rec.attribute7 := l_venue_rates_rec.attribute7;
1213 END IF;
1214
1215 -- attribute8
1216 IF p_venue_rates_rec.attribute8 = FND_API.g_miss_char THEN
1217 x_complete_rec.attribute8 := l_venue_rates_rec.attribute8;
1218 END IF;
1219
1220 -- attribute9
1221 IF p_venue_rates_rec.attribute9 = FND_API.g_miss_char THEN
1222 x_complete_rec.attribute9 := l_venue_rates_rec.attribute9;
1223 END IF;
1224
1225 -- attribute10
1226 IF p_venue_rates_rec.attribute10 = FND_API.g_miss_char THEN
1227 x_complete_rec.attribute10 := l_venue_rates_rec.attribute10;
1228 END IF;
1229
1230 -- attribute11
1231 IF p_venue_rates_rec.attribute11 = FND_API.g_miss_char THEN
1232 x_complete_rec.attribute11 := l_venue_rates_rec.attribute11;
1233 END IF;
1234
1235 -- attribute12
1236 IF p_venue_rates_rec.attribute12 = FND_API.g_miss_char THEN
1237 x_complete_rec.attribute12 := l_venue_rates_rec.attribute12;
1238 END IF;
1239
1240 -- attribute13
1241 IF p_venue_rates_rec.attribute13 = FND_API.g_miss_char THEN
1242 x_complete_rec.attribute13 := l_venue_rates_rec.attribute13;
1243 END IF;
1244
1245 -- attribute14
1246 IF p_venue_rates_rec.attribute14 = FND_API.g_miss_char THEN
1247 x_complete_rec.attribute14 := l_venue_rates_rec.attribute14;
1248 END IF;
1249
1250 -- attribute15
1251 IF p_venue_rates_rec.attribute15 = FND_API.g_miss_char THEN
1252 x_complete_rec.attribute15 := l_venue_rates_rec.attribute15;
1253 END IF;
1254
1255 -- Note: Developers need to modify the procedure
1256 -- to handle any business specific requirements.
1257 END Complete_venue_rates_Rec;
1258 PROCEDURE Validate_venue_rates(
1259 p_api_version_number IN NUMBER,
1260 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1261 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1262 p_venue_rates_rec IN venue_rates_rec_type,
1263 p_validation_mode IN VARCHAR2,
1264 x_return_status OUT NOCOPY VARCHAR2,
1265 x_msg_count OUT NOCOPY NUMBER,
1266 x_msg_data OUT NOCOPY VARCHAR2
1267 )
1268 IS
1269 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Venue_Rates';
1270 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1271 l_object_version_number NUMBER;
1272 l_venue_rates_rec AMS_Venue_Rates_PVT.venue_rates_rec_type;
1273
1274 BEGIN
1275 -- Standard Start of API savepoint
1276 SAVEPOINT VALIDATE_Venue_Rates_;
1277
1278 -- Standard call to check for call compatibility.
1279 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1280 p_api_version_number,
1281 l_api_name,
1282 G_PKG_NAME)
1283 THEN
1284 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1285 END IF;
1286
1287 -- Initialize message list if p_init_msg_list is set to TRUE.
1288 IF FND_API.to_Boolean( p_init_msg_list )
1289 THEN
1290 FND_MSG_PUB.initialize;
1291 END IF;
1292 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1293 Check_venue_rates_Items(
1294 p_venue_rates_rec => p_venue_rates_rec,
1295 p_validation_mode => p_validation_mode,
1296 x_return_status => x_return_status
1297 );
1298
1299 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1300 RAISE FND_API.G_EXC_ERROR;
1301 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1302 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1303 END IF;
1304 END IF;
1305
1306 Complete_venue_rates_Rec(
1307 p_venue_rates_rec => p_venue_rates_rec,
1308 x_complete_rec => l_venue_rates_rec
1309 );
1310
1311 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1312 Validate_venue_rates_Rec(
1313 p_api_version_number => 1.0,
1314 p_init_msg_list => FND_API.G_FALSE,
1315 x_return_status => x_return_status,
1316 x_msg_count => x_msg_count,
1317 x_msg_data => x_msg_data,
1318 p_venue_rates_rec => l_venue_rates_rec);
1319
1320 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1321 RAISE FND_API.G_EXC_ERROR;
1322 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1324 END IF;
1325 END IF;
1326
1327
1328 -- Debug Message
1329 IF (AMS_DEBUG_HIGH_ON) THEN
1330
1331 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1332 END IF;
1333
1334
1335 -- Initialize API return status to SUCCESS
1336 x_return_status := FND_API.G_RET_STS_SUCCESS;
1337
1338
1339 -- Debug Message
1340 IF (AMS_DEBUG_HIGH_ON) THEN
1341
1342 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1343 END IF;
1344
1345 -- Standard call to get message count and if count is 1, get message info.
1346 FND_MSG_PUB.Count_And_Get
1347 (p_count => x_msg_count,
1348 p_data => x_msg_data
1349 );
1350 EXCEPTION
1351
1352 WHEN AMS_Utility_PVT.resource_locked THEN
1353 x_return_status := FND_API.g_ret_sts_error;
1354 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1355
1356 WHEN FND_API.G_EXC_ERROR THEN
1357 ROLLBACK TO VALIDATE_Venue_Rates_;
1358 x_return_status := FND_API.G_RET_STS_ERROR;
1359 -- Standard call to get message count and if count=1, get the message
1360 FND_MSG_PUB.Count_And_Get (
1361 p_encoded => FND_API.G_FALSE,
1362 p_count => x_msg_count,
1363 p_data => x_msg_data
1364 );
1365
1366 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1367 ROLLBACK TO VALIDATE_Venue_Rates_;
1368 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1369 -- Standard call to get message count and if count=1, get the message
1370 FND_MSG_PUB.Count_And_Get (
1371 p_encoded => FND_API.G_FALSE,
1372 p_count => x_msg_count,
1373 p_data => x_msg_data
1374 );
1375
1376 WHEN OTHERS THEN
1377 ROLLBACK TO VALIDATE_Venue_Rates_;
1378 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1379 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1380 THEN
1381 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1382 END IF;
1383 -- Standard call to get message count and if count=1, get the message
1384 FND_MSG_PUB.Count_And_Get (
1385 p_encoded => FND_API.G_FALSE,
1386 p_count => x_msg_count,
1387 p_data => x_msg_data
1388 );
1389 End Validate_Venue_Rates;
1390
1391
1392 PROCEDURE Validate_venue_rates_rec(
1393 p_api_version_number IN NUMBER,
1394 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1395 x_return_status OUT NOCOPY VARCHAR2,
1396 x_msg_count OUT NOCOPY NUMBER,
1397 x_msg_data OUT NOCOPY VARCHAR2,
1398 p_venue_rates_rec IN venue_rates_rec_type
1399 )
1400 IS
1401 BEGIN
1402 -- Initialize message list if p_init_msg_list is set to TRUE.
1403 IF FND_API.to_Boolean( p_init_msg_list )
1404 THEN
1405 FND_MSG_PUB.initialize;
1406 END IF;
1407
1408 -- Initialize API return status to SUCCESS
1409 x_return_status := FND_API.G_RET_STS_SUCCESS;
1410
1411 -- Hint: Validate data
1412 -- If data not valid
1413 -- THEN
1414 -- x_return_status := FND_API.G_RET_STS_ERROR;
1415
1416 -- Debug Message
1417 IF (AMS_DEBUG_HIGH_ON) THEN
1418
1419 AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1420 END IF;
1421 -- Standard call to get message count and if count is 1, get message info.
1422 FND_MSG_PUB.Count_And_Get
1423 (p_count => x_msg_count,
1424 p_data => x_msg_data
1425 );
1426 END Validate_venue_rates_Rec;
1427
1428 END AMS_Venue_Rates_PVT;