[Home] [Help]
PACKAGE BODY: APPS.PV_PRGM_PMT_MODE_PVT
Source
1 PACKAGE BODY PV_PRGM_PMT_MODE_PVT as
2 /* $Header: pvxvppmb.pls 120.2 2006/08/14 18:28:48 speddu ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_PRGM_PMT_MODE_PVT
7 -- Purpose
8 --
9 -- History
10 -- 26-APR-2002 Peter.Nixon Created
11 -- 30-APR-2002 Peter.Nixon Modified
12 -- 03/03/03 sveeerave bug fix#2830585 in Get_Pmnt_Mode_Desc
13 -- 25/07/03 ktsao Added Copy_Prgm_Pmt_Mode for program copy functionality
14 -- 14/10/03 ktsao Took out Copy_Prgm_Pmt_Mode.
15 -- 29/08/05 ktsao Fixed for bug 4572286.
16 --
17 -- NOTE
18 --
19 -- Copyright (c) 2002 Oracle Corporation Redwood Shores, California, USA
20 -- All rights reserved.
21 --
22 -- End of Comments
23 -- ===============================================================
24
25
26 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_PRGM_PMT_MODE_PVT';
27 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvppmb.pls';
28 l_pmt_mode_desc VARCHAR2(35) := null;
29
30
31 -- Following procedure gives the description for the Payment Method Code passed
32
33 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
34 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
35 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
36
37 PROCEDURE Get_Pmnt_Mode_Desc(
38 p_program_payment_mode IN VARCHAR2
39 ,p_program_id IN NUMBER
40 ,p_geo_hierarchy_id IN NUMBER
41 ,x_pmt_mode_desc OUT NOCOPY VARCHAR2
42 )
43 IS
44
45 l_api_name CONSTANT VARCHAR2(30) := 'Get_Pmnt_Mode_Desc';
46
47 -- corrected the queries, logic for bug fix#2830585. -- sveerave,03/03/03
48 CURSOR c_get_oe_prgm_pmt_mode(cv_program_payment_mode VARCHAR2, cv_program_id NUMBER, cv_program_geo_hierarchy_id NUMBER) IS
49 SELECT lkp.MEANING
50 FROM oe_lookups lkp,
51 PV_PROGRAM_PAYMENT_MODE pay_mode
52 WHERE lkp.LOOKUP_CODE = cv_program_payment_mode
53 AND pay_mode.PROGRAM_ID = cv_program_id
54 AND pay_mode.GEO_HIERARCHY_ID = cv_program_geo_hierarchy_id
55 AND lkp.lookup_type = 'PAYMENT TYPE';
56
57 CURSOR c_get_pv_prgm_pmt_mode(cv_program_payment_mode VARCHAR2, cv_program_id NUMBER, cv_program_geo_hierarchy_id NUMBER) IS
58 SELECT lkp.MEANING
59 FROM pv_lookups lkp,
60 PV_PROGRAM_PAYMENT_MODE pay_mode
61 WHERE lkp.LOOKUP_CODE = cv_program_payment_mode
62 AND pay_mode.PROGRAM_ID = cv_program_id
63 AND pay_mode.GEO_HIERARCHY_ID = cv_program_geo_hierarchy_id
64 AND lkp.lookup_type = 'PV_PAYMENT_TYPE';
65
66 BEGIN
67 -- Initialize API return status to SUCCESS
68 ---------------Initialize --------------------
69 -- Standard Start of API savepoint
70 SAVEPOINT Get_Pmnt_Mode_Desc;
71 OPEN c_get_oe_prgm_pmt_mode(p_program_payment_mode , p_program_id, p_geo_hierarchy_id);
72 FETCH c_get_oe_prgm_pmt_mode INTO x_pmt_mode_desc ;
73 IF c_get_oe_prgm_pmt_mode%NOTFOUND THEN
74 CLOSE c_get_oe_prgm_pmt_mode;
75 OPEN c_get_pv_prgm_pmt_mode(p_program_payment_mode , p_program_id, p_geo_hierarchy_id);
76 FETCH c_get_pv_prgm_pmt_mode INTO x_pmt_mode_desc ;
77 IF c_get_pv_prgm_pmt_mode%NOTFOUND THEN
78 CLOSE c_get_pv_prgm_pmt_mode;
79 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
80 FND_MESSAGE.set_token('MODE','find');
81 FND_MESSAGE.set_token('ENTITY','Payment Method Meaning');
82 FND_MESSAGE.set_token('ID','Payment Method: '||p_program_payment_mode
83 ||' Program Id: '||p_program_id
84 ||' Geo Hierarchy Id: '|| p_geo_hierarchy_id);
85 FND_MSG_PUB.add;
86 IF (PV_DEBUG_HIGH_ON) THEN
87 PVX_UTILITY_PVT.debug_message('No Data found for the payment method description in Get_Pmnt_Mode_Desc');
88 END IF;
89 RAISE FND_API.G_EXC_ERROR;
90 END IF;
91 CLOSE c_get_pv_prgm_pmt_mode;
92 END IF;
93 CLOSE c_get_oe_prgm_pmt_mode;
94 End Get_Pmnt_Mode_Desc;
95
96 -- The following procedure get the Geo_Area_Name and the Location Type
97
98 PROCEDURE Get_Pmnt_Geo_Hierarhy(
99 p_program_payment_mode IN VARCHAR2
100 ,p_program_id IN NUMBER
101 ,p_geo_hierarchy_id IN NUMBER
102 ,x_geo_area_name OUT NOCOPY VARCHAR2
103 ,x_location_type_name OUT NOCOPY VARCHAR2
104 )
105 IS
106
107
108
109 CURSOR c_get_geo_hierarchy(cv_program_payment_mode VARCHAR2, cv_program_id NUMBER, cv_program_geo_hierarchy_id NUMBER) IS
110 SELECT DECODE(LH.LOCATION_TYPE_CODE, 'AREA1', LH.AREA1_NAME, 'AREA2',LH.AREA2_NAME, 'COUNTRY',
111 LH.COUNTRY_NAME, 'CREGION',LH.COUNTRY_REGION_NAME, 'STATE', LH.STATE_NAME, 'SREGION',
112 LH.STATE_REGION_NAME, 'CITY', LH.CITY_NAME,'POSTAL_CODE',
113 LH.POSTAL_CODE_START||'-'||LH.POSTAL_CODE_END) GEO_AREA_NAME,
114 LH.LOCATION_TYPE_NAME LOCATION_TYPE_NAME
115 FROM PV_PROGRAM_PAYMENT_MODE PPPMNT,
116 JTF_LOC_HIERARCHIES_VL LH
117 WHERE PPPMNT.PROGRAM_ID = cv_program_id
118 AND PPPMNT.GEO_HIERARCHY_ID = cv_program_geo_hierarchy_id
119 AND PPPMNT.MODE_OF_PAYMENT = cv_program_payment_mode
120 AND LH.LOCATION_HIERARCHY_ID = PPPMNT.GEO_HIERARCHY_ID
121 AND PPPMNT.mode_type = 'PAYMENT';
122
123 BEGIN
124 -- Initialize API return status to SUCCESS
125
126
127 ---------------Initialize --------------------
128 -- Standard Start of API savepoint
129 SAVEPOINT GET_pmnt_method_PVT;
130
131
132 OPEN c_get_geo_hierarchy(p_program_payment_mode , p_program_id, p_geo_hierarchy_id);
133 FETCH c_get_geo_hierarchy INTO x_geo_area_name, x_location_type_name ;
134 IF c_get_geo_hierarchy%NOTFOUND THEN
135 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
136 FND_MESSAGE.set_token('MODE','');
137 FND_MESSAGE.set_token('ENTITY','GET_pmnt_method_PVT');
138 FND_MESSAGE.set_token('ID','No Data found in c_get_geo_hierarchy');
139 FND_MSG_PUB.add;
140 IF (PV_DEBUG_HIGH_ON) THEN
141
142 PVX_UTILITY_PVT.debug_message('No Data found for the payment method description');
143 END IF;
144 RAISE FND_API.G_EXC_ERROR;
145 END IF;
146 CLOSE c_get_geo_hierarchy;
147
148
149 End Get_Pmnt_Geo_Hierarhy;
150
151
152
153
154
155
156
157
158
159
160
161 PROCEDURE Create_Prgm_Pmt_Mode(
162 p_api_version_number IN NUMBER
163 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
164 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
165 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
166
167 ,x_return_status OUT NOCOPY VARCHAR2
168 ,x_msg_count OUT NOCOPY NUMBER
169 ,x_msg_data OUT NOCOPY VARCHAR2
170
171 ,p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type := g_miss_prgm_pmt_mode_rec
172 ,x_program_payment_mode_id OUT NOCOPY NUMBER
173 )
174
175 IS
176 l_api_version_number CONSTANT NUMBER := 1.0;
177 l_api_name CONSTANT VARCHAR2(30) := 'Create_Prgm_Pmt_Mode';
178 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
179
180
181 l_prgm_pmt_mode_rec prgm_pmt_mode_rec_type := p_prgm_pmt_mode_rec;
182
183 l_object_version_number NUMBER := 1;
184 l_uniqueness_check VARCHAR2(1);
185 l_create BOOLEAN;
186
187 -- Cursor to get the sequence for pv_program_payment_mode_id
188 CURSOR c_prgm_pmt_mode_id_seq IS
189 SELECT PV_PROGRAM_PAYMENT_MODE_S.NEXTVAL
190 FROM dual;
191
192
193 -- Cursor to validate the uniqueness
194 CURSOR c_prgm_pmt_mode_id_seq_exists (l_id IN NUMBER) IS
195 SELECT 'X'
196 FROM PV_PROGRAM_PAYMENT_MODE
197 WHERE program_payment_mode_id = l_id;
198
199
200 CURSOR c_prgm_pmt_mode_id (l_id IN NUMBER) IS
201 select PROGRAM_PAYMENT_MODE_ID, object_version_number, MODE_OF_PAYMENT
202 from PV_PROGRAM_PAYMENT_MODE
203 where GEO_HIERARCHY_ID = l_id
204 AND MODE_OF_PAYMENT in ('PO_NUM_DISABLED', 'PO_NUM_ENABLED');
205
206 BEGIN
207 ---------------Initialize --------------------
208 -- Standard Start of API savepoint
209 SAVEPOINT Create_Prgm_Pmt_Mode_PVT;
210
211 -- Initialize message list if p_init_msg_list is set to TRUE.
212 IF FND_API.to_Boolean( p_init_msg_list )
213 THEN
214 FND_MSG_PUB.initialize;
215 END IF;
216
217 -- Standard call to check for call compatibility.
218 IF NOT FND_API.Compatible_API_Call (
219 l_api_version_number
220 ,p_api_version_number
221 ,l_api_name
222 ,G_PKG_NAME
223 )
224 THEN
225 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
226 END IF;
227
228 -- Debug Message
229 IF (PV_DEBUG_HIGH_ON) THEN
230
231 PVX_UTILITY_PVT.debug_message('Private API: '||l_full_name||' - start');
232 END IF;
233
234
235 -- Initialize API return status to SUCCESS
236 x_return_status := FND_API.G_RET_STS_SUCCESS;
237
238 --------------- validate -------------------------
239
240 IF (PV_DEBUG_HIGH_ON) THEN
241
242
243
244 PVX_Utility_PVT.debug_message(l_full_name ||': validate');
245
246 END IF;
247
248 IF FND_GLOBAL.User_Id IS NULL THEN
249 FND_MESSAGE.set_name('PV', 'PV_API_USER_PROFILE_MISSING');
250 FND_MSG_PUB.add;
251 RAISE FND_API.G_EXC_ERROR;
252 END IF;
253
254 l_create := true;
255 IF l_prgm_pmt_mode_rec.mode_of_payment = 'PO_NUM_DISABLED' or l_prgm_pmt_mode_rec.mode_of_payment = 'PO_NUM_ENABLED' THEN
256 FOR x in c_prgm_pmt_mode_id (l_prgm_pmt_mode_rec.geo_hierarchy_id) LOOP
257 IF (PV_DEBUG_HIGH_ON) THEN
258 PVX_Utility_PVT.debug_message(l_prgm_pmt_mode_rec.geo_hierarchy_id ||'l_prgm_pmt_mode_rec.geo_hierarchy_id');
259 PVX_Utility_PVT.debug_message(x.program_payment_mode_id ||'x.program_payment_mode_id');
260 PVX_Utility_PVT.debug_message(x.object_version_number ||'x.object_version_number');
261 END IF;
262 l_create := false;
263
264 if(x.MODE_OF_PAYMENT <> l_prgm_pmt_mode_rec.mode_of_payment) then
265
266 l_prgm_pmt_mode_rec.program_payment_mode_id := x.program_payment_mode_id;
267 l_prgm_pmt_mode_rec.object_version_number := x.object_version_number;
268
269 Update_Prgm_Pmt_Mode(
270 l_api_version_number,
271 p_init_msg_list,
272 p_commit,
273 p_validation_level,
274 x_return_status,
275 x_msg_count,
276 x_msg_data,
277 l_prgm_pmt_mode_rec);
278 x_program_payment_mode_id := l_prgm_pmt_mode_rec.program_payment_mode_id;
279
280 END IF;
281 END LOOP;
282 END IF;
283
284 IF l_create THEN
285 IF l_prgm_pmt_mode_rec.program_payment_mode_id IS NULL OR
286 l_prgm_pmt_mode_rec.program_payment_mode_id = FND_API.g_miss_num THEN
287 LOOP
288 -- Get the identifier
289 OPEN c_prgm_pmt_mode_id_seq;
290 FETCH c_prgm_pmt_mode_id_seq INTO l_prgm_pmt_mode_rec.program_payment_mode_id;
291 CLOSE c_prgm_pmt_mode_id_seq;
292
293 -- Check the uniqueness of the identifier
294 OPEN c_prgm_pmt_mode_id_seq_exists(l_prgm_pmt_mode_rec.program_payment_mode_id);
295 FETCH c_prgm_pmt_mode_id_seq_exists INTO l_uniqueness_check;
296 -- Exit when the identifier uniqueness is established
297 EXIT WHEN c_prgm_pmt_mode_id_seq_exists%ROWCOUNT = 0;
298 CLOSE c_prgm_pmt_mode_id_seq_exists;
299 END LOOP;
300 END IF;
301
302 -- Debug message
303 IF (PV_DEBUG_HIGH_ON) THEN
304
305 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - program_payment_mode_id = '|| l_prgm_pmt_mode_rec.program_payment_mode_id);
306 END IF;
307
308 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
309 -- Debug message
310 IF (PV_DEBUG_HIGH_ON) THEN
311
312 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - Validate_Prgm_Pmt_Mode');
313 END IF;
314
315 -- Populate the default required items
316 l_prgm_pmt_mode_rec.last_update_date := SYSDATE;
317 l_prgm_pmt_mode_rec.last_updated_by := FND_GLOBAL.user_id;
318 l_prgm_pmt_mode_rec.creation_date := SYSDATE;
319 l_prgm_pmt_mode_rec.created_by := FND_GLOBAL.user_id;
320 l_prgm_pmt_mode_rec.last_update_login := FND_GLOBAL.conc_login_id;
321 l_prgm_pmt_mode_rec.object_version_number := l_object_version_number;
322
323 -- Invoke validation procedures
324 Validate_Prgm_Pmt_Mode(
325 p_api_version_number => 1.0
326 ,p_init_msg_list => FND_API.G_FALSE
327 ,p_validation_level => p_validation_level
328 ,p_validation_mode => JTF_PLSQL_API.g_create
329 ,p_prgm_pmt_mode_rec => l_prgm_pmt_mode_rec
330 ,x_return_status => x_return_status
331 ,x_msg_count => x_msg_count
332 ,x_msg_data => x_msg_data
333 );
334 -- Debug message
335 IF (PV_DEBUG_HIGH_ON) THEN
336
337 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - Validate_Prgm_Pmt_Mode return_status = ' || x_return_status );
338 END IF;
339 END IF;
340
341 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
342 RAISE FND_API.G_EXC_ERROR;
343 END IF;
344
345 IF x_return_status = FND_API.g_ret_sts_error THEN
346 RAISE FND_API.g_exc_error;
347 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
348 RAISE FND_API.g_exc_unexpected_error;
349 END IF;
350
351 -- Debug Message
352 IF (PV_DEBUG_HIGH_ON) THEN
353
354 PVX_UTILITY_PVT.debug_message( 'Private API:' || l_full_name || ' - Calling create table handler');
355 END IF;
356
357 -- Invoke table handler(PV_PRGM_PMT_MODE_PKG.Insert_Row)
358 PV_PRGM_PMT_MODE_PKG.Insert_Row(
359 px_program_payment_mode_id => l_prgm_pmt_mode_rec.program_payment_mode_id
360 ,p_program_id => l_prgm_pmt_mode_rec.program_id
361 ,p_geo_hierarchy_id => l_prgm_pmt_mode_rec.geo_hierarchy_id
362 ,p_mode_of_payment => l_prgm_pmt_mode_rec.mode_of_payment
363 ,p_last_update_date => l_prgm_pmt_mode_rec.last_update_date
364 ,p_last_updated_by => l_prgm_pmt_mode_rec.last_updated_by
365 ,p_creation_date => l_prgm_pmt_mode_rec.creation_date
366 ,p_created_by => l_prgm_pmt_mode_rec.created_by
367 ,p_last_update_login => l_prgm_pmt_mode_rec.last_update_login
368 ,p_object_version_number => l_object_version_number
369 ,p_mode_type => l_prgm_pmt_mode_rec.mode_type
370 );
371
372 x_program_payment_mode_id := l_prgm_pmt_mode_rec.program_payment_mode_id;
373 END IF;
374
375 IF x_return_status = FND_API.g_ret_sts_error THEN
376 RAISE FND_API.g_exc_error;
377 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
378 RAISE FND_API.g_exc_unexpected_error;
379 END IF;
380
381 FND_MSG_PUB.count_and_get(
382 p_encoded => FND_API.g_false
383 ,p_count => x_msg_count
384 ,p_data => x_msg_data
385 );
386
387 -- Debug Message
388 IF (PV_DEBUG_HIGH_ON) THEN
389
390 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
391 END IF;
392
393 -- Standard check for p_commit
394 IF FND_API.to_Boolean( p_commit ) THEN
395 COMMIT WORK;
396 END IF;
397
398 EXCEPTION
399 WHEN FND_API.G_EXC_ERROR THEN
400 ROLLBACK TO Create_Prgm_Pmt_Mode_PVT;
401 x_return_status := FND_API.G_RET_STS_ERROR;
402 -- Standard call to get message count and if count=1, get the message
403 FND_MSG_PUB.Count_And_Get (
404 p_encoded => FND_API.G_FALSE
405 ,p_count => x_msg_count
406 ,p_data => x_msg_data
407 );
408
409 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
410 ROLLBACK TO Create_Prgm_Pmt_Mode_PVT;
411 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
412 -- Standard call to get message count and if count=1, get the message
413 FND_MSG_PUB.Count_And_Get (
414 p_encoded => FND_API.G_FALSE
415 ,p_count => x_msg_count
416 ,p_data => x_msg_data
417 );
418
419 WHEN OTHERS THEN
420 ROLLBACK TO Create_Prgm_Pmt_Mode_PVT;
421 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
422 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
423 THEN
424 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
425 END IF;
426 -- Standard call to get message count and if count=1, get the message
427 FND_MSG_PUB.Count_And_Get (
428 p_encoded => FND_API.G_FALSE
429 ,p_count => x_msg_count
430 ,p_data => x_msg_data
431 );
432
433 End Create_Prgm_Pmt_Mode;
434
435
436 PROCEDURE Update_Prgm_Pmt_Mode(
437 p_api_version_number IN NUMBER
438 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
439 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
440 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
441
442 ,x_return_status OUT NOCOPY VARCHAR2
443 ,x_msg_count OUT NOCOPY NUMBER
444 ,x_msg_data OUT NOCOPY VARCHAR2
445
446 ,p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
447 )
448
449 IS
450
451 CURSOR c_get_prgm_pmt_mode(cv_program_payment_mode_id NUMBER) IS
452 SELECT *
453 FROM PV_PROGRAM_PAYMENT_MODE
454 WHERE PROGRAM_PAYMENT_MODE_ID = cv_program_payment_mode_id;
455
456 l_api_name CONSTANT VARCHAR2(30) := 'Update_Prgm_Pmt_Mode';
457 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
458 l_api_version_number CONSTANT NUMBER := 1.0;
459
460 -- Local Variables
461 l_ref_prgm_pmt_mode_rec c_get_prgm_pmt_mode%ROWTYPE ;
462 l_tar_prgm_pmt_mode_rec PV_PRGM_PMT_MODE_PVT.prgm_pmt_mode_rec_type := p_prgm_pmt_mode_rec;
463 l_rowid ROWID;
464 l_update BOOLEAN := true;
465
466 CURSOR c_prgm_pmt_mode_id (l_id IN NUMBER) IS
467 select GEO_HIERARCHY_ID, MODE_OF_PAYMENT
468 from PV_PROGRAM_PAYMENT_MODE
469 where PROGRAM_PAYMENT_MODE_ID = l_id
470 and MODE_OF_PAYMENT in ('PO_NUM_DISABLED', 'PO_NUM_ENABLED');
471
472 CURSOR c_prgm_duplicate_pmt_mode (l_id IN NUMBER) IS
473 select GEO_HIERARCHY_ID, MODE_OF_PAYMENT, PROGRAM_PAYMENT_MODE_ID, object_version_number
474 from PV_PROGRAM_PAYMENT_MODE
475 where GEO_HIERARCHY_ID = l_id
476 and MODE_OF_PAYMENT in ('PO_NUM_DISABLED', 'PO_NUM_ENABLED');
477
478 BEGIN
479
480
481
482
483 ---------Initialize ------------------
484
485 -- Standard Start of API savepoint
486 SAVEPOINT Update_Prgm_Pmt_Mode_PVT;
487
488 -- Standard call to check for call compatibility.
489 IF NOT FND_API.Compatible_API_Call (l_api_version_number
490 ,p_api_version_number
491 ,l_api_name
492 ,G_PKG_NAME
493 )
494 THEN
495 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496 END IF;
497
498 -- Initialize message list if p_init_msg_list is set to TRUE.
499 IF FND_API.to_Boolean( p_init_msg_list )
500 THEN
501 FND_MSG_PUB.initialize;
502 END IF;
503
504 -- Initialize API return status to SUCCESS
505 x_return_status := FND_API.G_RET_STS_SUCCESS;
506
507 OPEN c_get_prgm_pmt_mode( l_tar_prgm_pmt_mode_rec.program_payment_mode_id);
508 FETCH c_get_prgm_pmt_mode INTO l_ref_prgm_pmt_mode_rec ;
509
510 IF ( c_get_prgm_pmt_mode%NOTFOUND) THEN
511 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
512 FND_MESSAGE.set_token('MODE','Update');
513 FND_MESSAGE.set_token('ENTITY','prgm_pmt_mode');
514 FND_MESSAGE.set_token('ID',TO_CHAR(l_tar_prgm_pmt_mode_rec.program_payment_mode_id));
515 FND_MSG_PUB.add;
516 RAISE FND_API.G_EXC_ERROR;
517 END IF;
518
519 -- Debug Message
520 IF (PV_DEBUG_HIGH_ON) THEN
521
522 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Close Cursor');
523 END IF;
524 CLOSE c_get_prgm_pmt_mode;
525
526 If (l_tar_prgm_pmt_mode_rec.object_version_number is NULL or
527 l_tar_prgm_pmt_mode_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
528
529 FND_MESSAGE.set_name('PV', 'PV_API_VERSION_MISSING');
530 FND_MESSAGE.set_token('COLUMN','object_version_number');
531 FND_MSG_PUB.add;
532 RAISE FND_API.G_EXC_ERROR;
533 END IF;
534
535
536
537 -- Check Whether record has been changed by someone else
538 IF (l_tar_prgm_pmt_mode_rec.object_version_number <> l_ref_prgm_pmt_mode_rec.object_version_number) THEN
539 FND_MESSAGE.set_name('PV', 'PV_API_RECORD_CHANGED');
540 FND_MESSAGE.set_token('VALUE','prgm_pmt_mode');
541 FND_MSG_PUB.add;
542 RAISE FND_API.G_EXC_ERROR;
543 END IF;
544
545
546
547 IF p_prgm_pmt_mode_rec.mode_of_payment = 'PO_NUM_DISABLED' or p_prgm_pmt_mode_rec.mode_of_payment = 'PO_NUM_ENABLED' THEN
548 FOR x in c_prgm_pmt_mode_id (p_prgm_pmt_mode_rec.program_payment_mode_id) LOOP
549 if(x.geo_hierarchy_id <> p_prgm_pmt_mode_rec.geo_hierarchy_id) then
550 FOR y in c_prgm_duplicate_pmt_mode(p_prgm_pmt_mode_rec.geo_hierarchy_id) LOOP
551 Delete_Prgm_Pmt_Mode(
552 p_api_version_number => l_api_version_number
553 ,p_init_msg_list => FND_API.G_FALSE
554 ,p_commit => FND_API.G_FALSE
555 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
556 ,x_return_status => x_return_status
557 ,x_msg_count => x_msg_count
558 ,x_msg_data => x_msg_data
559 ,p_program_payment_mode_id => y.program_payment_mode_id
560 ,p_object_version_number => y.object_version_number
561 );
562
563 IF (PV_DEBUG_HIGH_ON) THEN
564 PVX_UTILITY_PVT.debug_message('X_return_status from delete api to delete the duplicate record ' || x_return_status);
565 PVX_UTILITY_PVT.debug_message('x_msg_count from delete api to delete the duplicate record ' || x_msg_count);
566 PVX_UTILITY_PVT.debug_message('x_msg_data from delete api to delete the duplicate record ' || x_msg_data);
567 END IF;
568
569 IF x_return_status = FND_API.g_ret_sts_error THEN
570 RAISE FND_API.g_exc_error;
571 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
572 RAISE FND_API.g_exc_unexpected_error;
573 END IF;
574 END LOOP;
575
576 elsif (x.mode_of_payment = p_prgm_pmt_mode_rec.mode_of_payment) then
577 l_update := false;
578 END IF;
579 END LOOP;
580 END IF;
581
582
583 if(l_update) then
584
585
586
587 IF ( p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
588 -- Debug message
589 IF (PV_DEBUG_HIGH_ON) THEN
590
591 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Validate_Prgm_Pmt_Mode');
592 END IF;
593
594 -- Invoke validation procedures
595 Validate_Prgm_Pmt_Mode(
596 p_api_version_number => 1.0
597 ,p_init_msg_list => FND_API.G_FALSE
598 ,p_validation_level => p_validation_level
599 ,p_validation_mode => JTF_PLSQL_API.g_update
600 ,p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
601 ,x_return_status => x_return_status
602 ,x_msg_count => x_msg_count
603 ,x_msg_data => x_msg_data
604 );
605 END IF;
606
607 IF x_return_status = FND_API.g_ret_sts_error THEN
608 RAISE FND_API.g_exc_error;
609 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
610 RAISE FND_API.g_exc_unexpected_error;
611 END IF;
612
613 -- replace g_miss_char/num/date with current column values
614 Complete_Rec(
615 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
616 ,x_complete_rec => l_tar_prgm_pmt_mode_rec
617 );
618
619 -- Debug Message
620 IF (PV_DEBUG_HIGH_ON) THEN
621
622 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Calling update table handler');
623 END IF;
624
625 -- Invoke table handler(PV_PRGM_PMT_MODE_PKG.Update_Row)
626 PV_PRGM_PMT_MODE_PKG.Update_Row(
627 p_program_payment_mode_id => l_tar_prgm_pmt_mode_rec.program_payment_mode_id
628 ,p_program_id => l_tar_prgm_pmt_mode_rec.program_id
629 ,p_geo_hierarchy_id => l_tar_prgm_pmt_mode_rec.geo_hierarchy_id
630 ,p_mode_of_payment => l_tar_prgm_pmt_mode_rec.mode_of_payment
631 ,p_last_update_date => SYSDATE
632 ,p_last_updated_by => FND_GLOBAL.user_id
633 ,p_last_update_login => FND_GLOBAL.conc_login_id
634 ,p_object_version_number => l_tar_prgm_pmt_mode_rec.object_version_number
635 ,p_mode_type => l_tar_prgm_pmt_mode_rec.mode_type
636 );
637
638 End if;
639
640 -- Check for commit
641 IF FND_API.to_boolean(p_commit) THEN
642 COMMIT;
643 END IF;
644
645 FND_MSG_PUB.count_and_get(
646 p_encoded => FND_API.g_false
647 ,p_count => x_msg_count
648 ,p_data => x_msg_data
649 );
650
651 -- Debug Message
652 IF (PV_DEBUG_HIGH_ON) THEN
653
654 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
655 END IF;
656
657 EXCEPTION
658 WHEN FND_API.G_EXC_ERROR THEN
659 ROLLBACK TO Update_Prgm_Pmt_Mode_PVT;
660 x_return_status := FND_API.G_RET_STS_ERROR;
661 -- Standard call to get message count and if count=1, get the message
662 FND_MSG_PUB.Count_And_Get (
663 p_encoded => FND_API.G_FALSE
664 ,p_count => x_msg_count
665 ,p_data => x_msg_data
666 );
667
668 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
669 ROLLBACK TO Update_Prgm_Pmt_Mode_PVT;
670 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
671 -- Standard call to get message count and if count=1, get the message
672 FND_MSG_PUB.Count_And_Get (
673 p_encoded => FND_API.G_FALSE
674 ,p_count => x_msg_count
675 ,p_data => x_msg_data
676 );
677
678 WHEN OTHERS THEN
679 ROLLBACK TO Update_Prgm_Pmt_Mode_PVT;
680 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
681 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
682 THEN
683 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
684 END IF;
685 -- Standard call to get message count and if count=1, get the message
686 FND_MSG_PUB.Count_And_Get (
687 p_encoded => FND_API.G_FALSE
688 ,p_count => x_msg_count
689 ,p_data => x_msg_data
690 );
691 End Update_Prgm_Pmt_Mode;
692
693
694
695 PROCEDURE Delete_Prgm_Pmt_Mode(
696 p_api_version_number IN NUMBER
697 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
698 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
699 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
700 ,x_return_status OUT NOCOPY VARCHAR2
701 ,x_msg_count OUT NOCOPY NUMBER
702 ,x_msg_data OUT NOCOPY VARCHAR2
703 ,p_program_payment_mode_id IN NUMBER
704 ,p_object_version_number IN NUMBER
705 )
706
707 IS
708 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Prgm_Pmt_Mode';
709 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
710 l_api_version_number CONSTANT NUMBER := 1.0;
711 l_object_version_number NUMBER;
712
713 BEGIN
714
715 ---- Initialize----------------
716
717 -- Standard Start of API savepoint
718 SAVEPOINT Delete_Prgm_Pmt_Mode_PVT;
719
720 -- Debug Message
721 IF (PV_DEBUG_HIGH_ON) THEN
722
723 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - start');
724 END IF;
725
726 -- Standard call to check for call compatibility.
727 IF NOT FND_API.Compatible_API_Call (l_api_version_number
728 ,p_api_version_number
729 ,l_api_name
730 ,G_PKG_NAME
731 )
732 THEN
733 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
734 END IF;
735
736 -- Initialize message list if p_init_msg_list is set to TRUE.
737 IF FND_API.to_Boolean( p_init_msg_list )
738 THEN
739 FND_MSG_PUB.initialize;
740 END IF;
741
742 -- Initialize API return status to SUCCESS
743 x_return_status := FND_API.G_RET_STS_SUCCESS;
744
745 -- Debug Message
746 IF (PV_DEBUG_HIGH_ON) THEN
747
748 PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
749 END IF;
750
751 -- Invoke table handler(PV_PRGM_PMT_MODE_PKG.Delete_Row)
752 PV_PRGM_PMT_MODE_PKG.Delete_Row(
753 p_program_payment_mode_id => p_program_payment_mode_id
754 ,p_object_version_number => p_object_version_number
755 );
756
757 -- Check for commit
758 IF FND_API.to_boolean(p_commit) THEN
759 COMMIT;
760 END IF;
761
762 FND_MSG_PUB.count_and_get(
763 p_encoded => FND_API.g_false
764 ,p_count => x_msg_count
765 ,p_data => x_msg_data
766 );
767
768 -- Debug Message
769 IF (PV_DEBUG_HIGH_ON) THEN
770
771 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
772 END IF;
773
774 EXCEPTION
775 WHEN FND_API.G_EXC_ERROR THEN
776 ROLLBACK TO Delete_Prgm_Pmt_Mode_PVT;
777 x_return_status := FND_API.G_RET_STS_ERROR;
778 -- Standard call to get message count and if count=1, get the message
779 FND_MSG_PUB.Count_And_Get (
780 p_encoded => FND_API.G_FALSE
781 ,p_count => x_msg_count
782 ,p_data => x_msg_data
783 );
784
785 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
786 ROLLBACK TO Delete_Prgm_Pmt_Mode_PVT;
787 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
788 -- Standard call to get message count and if count=1, get the message
789 FND_MSG_PUB.Count_And_Get (
790 p_encoded => FND_API.G_FALSE
791 ,p_count => x_msg_count
792 ,p_data => x_msg_data
793 );
794
795 WHEN OTHERS THEN
796 ROLLBACK TO Delete_Prgm_Pmt_Mode_PVT;
797 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
798 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
799 THEN
800 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
801 END IF;
802 -- Standard call to get message count and if count=1, get the message
803 FND_MSG_PUB.Count_And_Get (
804 p_encoded => FND_API.G_FALSE
805 ,p_count => x_msg_count
806 ,p_data => x_msg_data
807 );
808
809 End Delete_Prgm_Pmt_Mode;
810
811
812
813 PROCEDURE Lock_Prgm_Pmt_Mode(
814 p_api_version_number IN NUMBER
815 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
816
817 ,x_return_status OUT NOCOPY VARCHAR2
818 ,x_msg_count OUT NOCOPY NUMBER
819 ,x_msg_data OUT NOCOPY VARCHAR2
820
821 ,p_program_payment_mode_id IN NUMBER
822 ,p_object_version IN NUMBER
823 )
824
825 IS
826 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Prgm_Pmt_Mode';
827 l_api_version_number CONSTANT NUMBER := 1.0;
828 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
829 l_program_payment_mode_id NUMBER;
830
831 CURSOR c_prgm_pmt_mode IS
832 SELECT program_payment_mode_id
833 FROM PV_PROGRAM_PAYMENT_MODE
834 WHERE program_payment_mode_id = p_program_payment_mode_id
835 AND object_version_number = p_object_version
836 FOR UPDATE NOWAIT;
837
838 BEGIN
839
840 -- Debug Message
841 IF (PV_DEBUG_HIGH_ON) THEN
842
843 PVX_UTILITY_PVT.debug_message('Private API: '||l_full_name||' - start');
844 END IF;
845
846 -- Initialize message list if p_init_msg_list is set to TRUE.
847 IF FND_API.to_Boolean( p_init_msg_list )
848 THEN
849 FND_MSG_PUB.initialize;
850 END IF;
851
852 -- Standard call to check for call compatibility.
853 IF NOT FND_API.Compatible_API_Call (
854 l_api_version_number
855 ,p_api_version_number
856 ,l_api_name
857 ,G_PKG_NAME
858 )
859 THEN
860 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
861 END IF;
862
863
864 -- Initialize API return status to SUCCESS
865 x_return_status := FND_API.G_RET_STS_SUCCESS;
866
867
868 ------------------------ lock -------------------------
869
870 IF (PV_DEBUG_HIGH_ON) THEN
871
872
873
874 PVX_UTILITY_PVT.debug_message(l_full_name||': start');
875
876 END IF;
877 OPEN c_prgm_pmt_mode;
878
879 FETCH c_prgm_pmt_mode INTO l_program_payment_mode_id;
880
881 IF (c_prgm_pmt_mode%NOTFOUND) THEN
882 CLOSE c_prgm_pmt_mode;
883 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
884 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
885 FND_MSG_PUB.add;
886 END IF;
887 RAISE FND_API.g_exc_error;
888 END IF;
889
890 CLOSE c_prgm_pmt_mode;
891
892 -------------------- finish --------------------------
893 FND_MSG_PUB.count_and_get(
894 p_encoded => FND_API.g_false
895 ,p_count => x_msg_count
896 ,p_data => x_msg_data
897 );
898
899 -- Debug Message
900 IF (PV_DEBUG_HIGH_ON) THEN
901
902 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
903 END IF;
904
905 EXCEPTION
906 /*
907 WHEN PVX_UTILITY_PVT.resource_locked THEN
908 x_return_status := FND_API.g_ret_sts_error;
909 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
910 */
911 WHEN FND_API.G_EXC_ERROR THEN
912 ROLLBACK TO Lock_Prgm_Pmt_Mode_PVT;
913 x_return_status := FND_API.G_RET_STS_ERROR;
914 -- Standard call to get message count and if count=1, get the message
915 FND_MSG_PUB.Count_And_Get (
916 p_encoded => FND_API.G_FALSE
917 ,p_count => x_msg_count
918 ,p_data => x_msg_data
919 );
920
921 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
922 ROLLBACK TO Lock_Prgm_Pmt_Mode_PVT;
923 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
924 -- Standard call to get message count and if count=1, get the message
925 FND_MSG_PUB.Count_And_Get (
926 p_encoded => FND_API.G_FALSE
927 ,p_count => x_msg_count
928 ,p_data => x_msg_data
929 );
930
931
932 WHEN OTHERS THEN
933 ROLLBACK TO Lock_Prgm_Pmt_Mode_PVT;
934 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
936 THEN
937 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
938 END IF;
939 -- Standard call to get message count and if count=1, get the message
940 FND_MSG_PUB.Count_And_Get (
941 p_encoded => FND_API.G_FALSE
942 ,p_count => x_msg_count
943 ,p_data => x_msg_data
944 );
945
946 End Lock_Prgm_Pmt_Mode;
947
948
949
950 PROCEDURE Check_UK_Items(
951 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
952 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
953 ,x_return_status OUT NOCOPY VARCHAR2
954 )
955
956 IS
957
958 l_valid_flag VARCHAR2(1);
959 l_geo_area_name VARCHAR2(20) ;
960 l_location_type_name VARCHAR2(20);
961 l_mode_of_payment VARCHAR2(20) ;
962
963 -- Cursor to get the geoAreaName of the given location hierarchy id
964 CURSOR c_geo_area_name (l_loc_hie_id IN NUMBER) IS
965 select DECODE(LH.LOCATION_TYPE_CODE, 'AREA1', LH.AREA1_NAME, 'AREA2',LH.AREA2_NAME,
966 'COUNTRY', LH.COUNTRY_NAME, 'CREGION', LH.COUNTRY_REGION_NAME,
967 'STATE', LH.STATE_NAME, 'SREGION', LH.STATE_REGION_NAME, 'CITY', LH.CITY_NAME,
968 'POSTAL_CODE', LH.POSTAL_CODE_START||'-'||LH.POSTAL_CODE_END, to_char(LOCATION_HIERARCHY_ID)),
969 LH.LOCATION_TYPE_NAME LOCATION_TYPE_NAME
970 from JTF_LOC_HIERARCHIES_VL LH
971 where LOCATION_HIERARCHY_ID = l_loc_hie_id;
972
973 -- Cursor to get the meaning of paymentCode
974 CURSOR c_payment_code (l_payment_code IN VARCHAR2) IS
975 select meaning from pv_lookups
976 where lookup_type = 'PV_PAYMENT_TYPE'
977 and lookup_code = l_payment_code;
978
979
980 BEGIN
981
982 x_return_status := FND_API.g_ret_sts_success;
983 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
984
985 l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
986 'PV_PROGRAM_PAYMENT_MODE',
987 'program_payment_mode_id = ''' || p_prgm_pmt_mode_rec.program_payment_mode_id ||''''
988 );
989
990 IF l_valid_flag = FND_API.g_false THEN
991 FND_MESSAGE.set_name('PV', 'PV_API_DUPLICATE_ENTITY');
992 FND_MESSAGE.set_token('ID',to_char(p_prgm_pmt_mode_rec.program_payment_mode_id) );
993 FND_MESSAGE.set_token('ENTITY','PRGM_PMT_MODE');
994 FND_MSG_PUB.add;
995 x_return_status := FND_API.g_ret_sts_error;
996 RETURN;
997 END IF;
998
999 END IF;
1000
1001 -- Debug message
1002 IF (PV_DEBUG_HIGH_ON) THEN
1003
1004 PVX_UTILITY_PVT.debug_message('- In Check_UK_Items API' );
1005 END IF;
1006
1007 l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
1008 'PV_PROGRAM_PAYMENT_MODE',
1009 'mode_type = '''||
1010 p_prgm_pmt_mode_rec.mode_type ||
1011 ''' and mode_of_payment = '''||
1012 p_prgm_pmt_mode_rec.mode_of_payment||
1013 ''' AND GEO_HIERARCHY_ID = ''' ||
1014 p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID||''' '
1015 );
1016
1017 IF l_valid_flag = FND_API.g_false THEN
1018 FND_MESSAGE.set_name('PV', 'PV_PMNT_MODE_DUPLICATE_ENTITY');
1019 OPEN c_payment_code(p_prgm_pmt_mode_rec.mode_of_payment);
1020 FETCH c_payment_code into l_mode_of_payment;
1021 FND_MESSAGE.set_token('ENTITY1', l_mode_of_payment);
1022 CLOSE c_payment_code;
1023
1024 -- Get the get_area_name
1025 OPEN c_geo_area_name(p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID);
1026 FETCH c_geo_area_name into l_geo_area_name, l_location_type_name;
1027 FND_MESSAGE.set_token('ENTITY2', l_location_type_name);
1028 FND_MESSAGE.set_token('ENTITY3', l_geo_area_name);
1029 CLOSE c_geo_area_name;
1030
1031 FND_MSG_PUB.ADD;
1032 x_return_status := Fnd_Api.g_ret_sts_error;
1033 RETURN;
1034
1035 /*
1036 Get_Pmnt_Mode_Desc ( p_prgm_pmt_mode_rec.mode_of_payment
1037 , p_prgm_pmt_mode_rec.program_id
1038 , p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID
1039 , x_pmt_mode_desc
1040 );
1041
1042
1043 Get_Pmnt_Geo_Hierarhy( p_prgm_pmt_mode_rec.mode_of_payment
1044 , p_prgm_pmt_mode_rec.program_id
1045 , p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID
1046 , x_geo_area_name
1047 , x_location_type_name
1048 );
1049
1050
1051 FND_MESSAGE.set_name('PV', 'PV_PMNT_MODE_DUPLICATE_ENTITY');
1052 FND_MESSAGE.set_token('ENTITY1',x_pmt_mode_desc);
1053 FND_MESSAGE.set_token('ENTITY2',x_location_type_name);
1054 FND_MESSAGE.set_token('ENTITY3',x_geo_area_name);
1055 FND_MSG_PUB.add;
1056
1057 x_return_status := FND_API.g_ret_sts_error;
1058 RETURN;
1059 */
1060 END IF;
1061
1062
1063 END Check_UK_Items;
1064
1065
1066
1067 PROCEDURE Check_Req_Items(
1068 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1069 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
1070 ,x_return_status OUT NOCOPY VARCHAR2
1071 )
1072
1073 IS
1074
1075 BEGIN
1076
1077 x_return_status := FND_API.g_ret_sts_success;
1078
1079 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1080
1081 IF p_prgm_pmt_mode_rec.program_payment_mode_id = FND_API.g_miss_num
1082 OR p_prgm_pmt_mode_rec.program_payment_mode_id IS NULL THEN
1083 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1084 FND_MESSAGE.set_token('COLUMN','PROGRAM_PAYMENT_MODE_ID');
1085 FND_MSG_PUB.add;
1086 x_return_status := FND_API.g_ret_sts_error;
1087 RETURN;
1088 END IF;
1089
1090 /**
1091 IF p_prgm_pmt_mode_rec.program_id = FND_API.g_miss_num OR
1092 p_prgm_pmt_mode_rec.program_id IS NULL THEN
1093 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1094 FND_MESSAGE.set_token('COLUMN','PROGRAM_ID');
1095 FND_MSG_PUB.add;
1096 x_return_status := FND_API.g_ret_sts_error;
1097 RETURN;
1098 END IF;
1099
1100 */
1101 IF p_prgm_pmt_mode_rec.geo_hierarchy_id = FND_API.g_miss_num OR
1102 p_prgm_pmt_mode_rec.geo_hierarchy_id IS NULL THEN
1103 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1104 FND_MESSAGE.set_token('COLUMN','geo_hierarchy_id');
1105 FND_MSG_PUB.add;
1106 x_return_status := FND_API.g_ret_sts_error;
1107 RETURN;
1108 END IF;
1109
1110
1111 IF p_prgm_pmt_mode_rec.mode_of_payment = FND_API.g_miss_char OR
1112 p_prgm_pmt_mode_rec.mode_of_payment IS NULL THEN
1113 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1114 FND_MESSAGE.set_token('COLUMN','MODE_OF_PAYMENT');
1115 FND_MSG_PUB.add;
1116 x_return_status := FND_API.g_ret_sts_error;
1117 RETURN;
1118 END IF;
1119
1120 IF p_prgm_pmt_mode_rec.mode_type = FND_API.g_miss_char OR
1121 p_prgm_pmt_mode_rec.mode_type IS NULL THEN
1122 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1123 FND_MESSAGE.set_token('COLUMN','mode_type');
1124 FND_MSG_PUB.add;
1125 x_return_status := FND_API.g_ret_sts_error;
1126 RETURN;
1127 END IF;
1128
1129 IF p_prgm_pmt_mode_rec.last_update_date = FND_API.g_miss_date OR
1130 p_prgm_pmt_mode_rec.last_update_date IS NULL THEN
1131 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1132 FND_MESSAGE.set_token('COLUMN','LAST_UPDATE_DATE');
1133 FND_MSG_PUB.add;
1134 x_return_status := FND_API.g_ret_sts_error;
1135 RETURN;
1136 END IF;
1137
1138
1139 IF p_prgm_pmt_mode_rec.last_updated_by = FND_API.g_miss_num OR
1140 p_prgm_pmt_mode_rec.last_updated_by IS NULL THEN
1141 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1142 FND_MESSAGE.set_token('COLUMN','LAST_UPDATED_BY');
1143 FND_MSG_PUB.add;
1144 x_return_status := FND_API.g_ret_sts_error;
1145 RETURN;
1146 END IF;
1147
1148
1149 IF p_prgm_pmt_mode_rec.creation_date = FND_API.g_miss_date OR
1150 p_prgm_pmt_mode_rec.creation_date IS NULL THEN
1151 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1152 FND_MESSAGE.set_token('COLUMN','CREATION_DATE');
1153 FND_MSG_PUB.add;
1154 x_return_status := FND_API.g_ret_sts_error;
1155 RETURN;
1156 END IF;
1157
1158 -- Debug message
1159 IF (PV_DEBUG_HIGH_ON) THEN
1160
1161 PVX_UTILITY_PVT.debug_message('- In Check_Req_Items API Before Created_by Check' );
1162 END IF;
1163
1164 IF p_prgm_pmt_mode_rec.created_by = FND_API.g_miss_num OR
1165 p_prgm_pmt_mode_rec.created_by IS NULL THEN
1166 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1167 FND_MESSAGE.set_token('COLUMN','CREATED_BY');
1168 FND_MSG_PUB.add;
1169 x_return_status := FND_API.g_ret_sts_error;
1170 RETURN;
1171 END IF;
1172
1173
1174 IF p_prgm_pmt_mode_rec.last_update_login = FND_API.g_miss_num OR
1175 p_prgm_pmt_mode_rec.last_update_login IS NULL THEN
1176 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1177 FND_MESSAGE.set_token('COLUMN','LAST_UPDATE_LOGIN');
1178 FND_MSG_PUB.add;
1179 x_return_status := FND_API.g_ret_sts_error;
1180 RETURN;
1181 END IF;
1182
1183
1184 IF p_prgm_pmt_mode_rec.object_version_number = FND_API.g_miss_num OR
1185 p_prgm_pmt_mode_rec.object_version_number IS NULL THEN
1186 FND_MESSAGE.set_name('PV','PV_API_MISSING_REQ_COLUMN');
1187 FND_MESSAGE.set_token('COLUMN','OBJECT_VERSION_NUMBER');
1188 FND_MSG_PUB.add;
1189 x_return_status := FND_API.g_ret_sts_error;
1190 RETURN;
1191 END IF;
1192 ELSE
1193
1194 IF p_prgm_pmt_mode_rec.program_payment_mode_id IS NULL THEN
1195 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
1196 FND_MESSAGE.set_token('COLUMN','PROGRAM_PAYMENT_MODE_ID');
1197 FND_MSG_PUB.add;
1198 x_return_status := FND_API.g_ret_sts_error;
1199 RETURN;
1200 END IF;
1201
1202 IF p_prgm_pmt_mode_rec.object_version_number IS NULL THEN
1203 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
1204 FND_MESSAGE.set_token('COLUMN','OBJECT_VERSION_NUMBER');
1205 FND_MSG_PUB.add;
1206 x_return_status := FND_API.g_ret_sts_error;
1207 RETURN;
1208 END IF;
1209 END IF;
1210
1211 END Check_Req_Items;
1212
1213
1214
1215 PROCEDURE Check_FK_Items(
1216 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1217 ,x_return_status OUT NOCOPY VARCHAR2
1218 )
1219
1220 IS
1221
1222 BEGIN
1223
1224 x_return_status := FND_API.g_ret_sts_success;
1225
1226 ----------------------- PROGRAM_ID ------------------------
1227 IF (p_prgm_pmt_mode_rec.PROGRAM_ID <> FND_API.g_miss_num
1228 AND p_prgm_pmt_mode_rec.PROGRAM_ID IS NOT NULL ) THEN
1229
1230 -- Debug message
1231 IF (PV_DEBUG_HIGH_ON) THEN
1232
1233 PVX_UTILITY_PVT.debug_message('In Check_FK_Items : Before PROGRAM_ID fk check : PROGRAM_ID ' || p_prgm_pmt_mode_rec.PROGRAM_ID);
1234 END IF;
1235
1236 IF PVX_Utility_PVT.check_fk_exists(
1237 'PV_PARTNER_PROGRAM_B', -- Parent schema object having the primary key
1238 'PROGRAM_ID', -- Column name in the parent object that maps to the fk value
1239 p_prgm_pmt_mode_rec.PROGRAM_ID, -- Value of fk to be validated against the parent object's pk column
1240 PVX_utility_PVT.g_number, -- datatype of fk
1241 NULL
1242 ) = FND_API.g_false
1243 THEN
1244 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1245 THEN
1246 FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_PARTNER_PROGRAM');
1247 FND_MSG_PUB.add;
1248 END IF;
1249
1250 x_return_status := FND_API.g_ret_sts_error;
1251 RETURN;
1252 END IF;
1253 END IF;
1254
1255 IF (PV_DEBUG_HIGH_ON) THEN
1256
1257
1258
1259 PVX_UTILITY_PVT.debug_message('In Check_FK_Items : After program_id fk check ');
1260
1261 END IF;
1262
1263 ----------------------- GEO_HIERARCHY_ID ------------------------
1264 IF (p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID <> FND_API.g_miss_num
1265 AND p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID IS NOT NULL ) THEN
1266
1267 -- Debug message
1268 IF (PV_DEBUG_HIGH_ON) THEN
1269
1270 PVX_UTILITY_PVT.debug_message('- In Check_FK_Items : Before GEO_HIERARCHY_ID fk check : GEO_HIERARCHY_ID ' || p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID);
1271 END IF;
1272
1273 IF PVX_Utility_PVT.check_fk_exists(
1274 'JTF_LOC_HIERARCHIES_VL', -- Parent schema object having the primary key
1275 'LOCATION_HIERARCHY_ID', -- Column name in the parent object that maps to the fk value
1276 p_prgm_pmt_mode_rec.GEO_HIERARCHY_ID, -- Value of fk to be validated against the parent object's pk column
1277 PVX_UTILITY_PVT.g_number, -- datatype of fk
1278 NULL
1279 ) = FND_API.g_false
1280 THEN
1281 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1282 THEN
1283 FND_MESSAGE.set_name('PV', 'PV_NOT_A_GEO_HIERARCHY');
1284 FND_MSG_PUB.add;
1285 END IF;
1286
1287 x_return_status := FND_API.g_ret_sts_error;
1288 RETURN;
1289 END IF;
1290 END IF;
1291
1292 END Check_FK_Items;
1293
1294
1295
1296 PROCEDURE Check_Lookup_Items(
1297 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1298 ,x_return_status OUT NOCOPY VARCHAR2
1299 )
1300 IS
1301 BEGIN
1302 x_return_status := FND_API.g_ret_sts_success;
1303
1304 IF p_prgm_pmt_mode_rec.mode_type <> FND_API.g_miss_char THEN
1305
1306 IF PVX_Utility_PVT.check_lookup_exists(
1307 'PV_LOOKUPS', -- Look up Table Name
1308 'PV_MODE_TYPE', -- Lookup Type
1309 p_prgm_pmt_mode_rec.mode_type -- Lookup Code
1310 ) = FND_API.g_false
1311 THEN
1312 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1313 THEN
1314 FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_MODE_TYPE');
1315 FND_MSG_PUB.add;
1316 END IF;
1317 x_return_status := FND_API.g_ret_sts_error;
1318 RETURN;
1319
1320 END IF;
1321 END IF;
1322 -- Debug message
1323 IF (PV_DEBUG_HIGH_ON) THEN
1324
1325 PVX_UTILITY_PVT.debug_message('- In Check_Lookup_Items : After lookup check. x_return_status = '||x_return_status);
1326 END IF;
1327
1328 END Check_Lookup_Items;
1329
1330
1331
1332
1333 PROCEDURE Check_Items (
1334 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1335 ,p_validation_mode IN VARCHAR2
1336 ,x_return_status OUT NOCOPY VARCHAR2
1337 )
1338
1339 IS
1340
1341 l_api_name CONSTANT VARCHAR2(30) := 'Check_Items';
1342 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1343
1344 BEGIN
1345
1346 -- Debug message
1347 IF (PV_DEBUG_HIGH_ON) THEN
1348
1349 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_Req_Items call');
1350 END IF;
1351
1352 -- Check Items Required/NOT NULL API calls
1353 Check_Req_Items(
1354 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
1355 ,p_validation_mode => p_validation_mode
1356 ,x_return_status => x_return_status
1357 );
1358
1359 -- Debug message
1360 IF (PV_DEBUG_HIGH_ON) THEN
1361
1362 PVX_UTILITY_PVT.debug_message('- After Check_Req_Items. return status = ' || x_return_status);
1363 END IF;
1364
1365 IF x_return_status <> FND_API.g_ret_sts_success THEN
1366 RETURN;
1367 END IF;
1368
1369 -- Debug message
1370 IF (PV_DEBUG_HIGH_ON) THEN
1371
1372 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_UK_Items call');
1373 END IF;
1374
1375 -- Check Items Uniqueness API calls
1376 Check_UK_Items(
1377 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
1378 ,p_validation_mode => p_validation_mode
1379 ,x_return_status => x_return_status
1380 );
1381
1382 -- Debug message
1383 IF (PV_DEBUG_HIGH_ON) THEN
1384
1385 PVX_UTILITY_PVT.debug_message('- After Check_UK_Items. return status = ' || x_return_status);
1386 END IF;
1387
1388 IF x_return_status <> FND_API.g_ret_sts_success THEN
1389 RETURN;
1390 END IF;
1391
1392 -- Debug message
1393 IF (PV_DEBUG_HIGH_ON) THEN
1394
1395 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_FK_Items call');
1396 END IF;
1397
1398 -- Check Items Foreign Keys API calls
1399 Check_FK_Items(
1400 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
1401 ,x_return_status => x_return_status
1402 );
1403
1404 -- Debug message
1405 IF (PV_DEBUG_HIGH_ON) THEN
1406
1407 PVX_UTILITY_PVT.debug_message('- After Check_FK_Items. return status = ' || x_return_status);
1408 END IF;
1409
1410 IF x_return_status <> FND_API.g_ret_sts_success THEN
1411 RETURN;
1412 END IF;
1413
1414 -- Debug message
1415 IF (PV_DEBUG_HIGH_ON) THEN
1416
1417 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_Lookup_Items call');
1418 END IF;
1419
1420 -- Check Items Lookups
1421 Check_Lookup_Items(
1422 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
1423 ,x_return_status => x_return_status
1424 );
1425
1426 -- Debug message
1427 IF (PV_DEBUG_HIGH_ON) THEN
1428
1429 PVX_UTILITY_PVT.debug_message('- After Check_Lookup_Items. return status = ' || x_return_status);
1430 END IF;
1431
1432 IF x_return_status <> FND_API.g_ret_sts_success THEN
1433 RETURN;
1434 END IF;
1435
1436 END Check_Items;
1437
1438
1439
1440 PROCEDURE Complete_Rec (
1441 p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1442 ,x_complete_rec OUT NOCOPY prgm_pmt_mode_rec_type
1443 )
1444
1445 IS
1446
1447 CURSOR c_complete IS
1448 SELECT *
1449 FROM PV_PROGRAM_PAYMENT_MODE
1450 WHERE program_payment_mode_id = p_prgm_pmt_mode_rec.program_payment_mode_id;
1451
1452 l_prgm_pmt_mode_rec c_complete%ROWTYPE;
1453
1454 BEGIN
1455
1456 x_complete_rec := p_prgm_pmt_mode_rec;
1457
1458
1459 OPEN c_complete;
1460 FETCH c_complete INTO l_prgm_pmt_mode_rec;
1461 CLOSE c_complete;
1462
1463 -- Debug message
1464 IF (PV_DEBUG_HIGH_ON) THEN
1465
1466 PVX_UTILITY_PVT.debug_message('- In Complete_Rec API prior to assigning program_id');
1467 END IF;
1468
1469 -- program_payment_mode_id
1470
1471 -- IF p_prgm_pmt_mode_rec.program_payment_mode_id = FND_API.g_miss_num THEN
1472
1473 IF p_prgm_pmt_mode_rec.program_payment_mode_id IS NULL THEN
1474 x_complete_rec.program_payment_mode_id := l_prgm_pmt_mode_rec.program_payment_mode_id;
1475 END IF;
1476
1477 -- program_id
1478 -- IF p_prgm_pmt_mode_rec.program_id = FND_API.g_miss_num THEN
1479
1480 IF p_prgm_pmt_mode_rec.program_id IS NULL THEN
1481 x_complete_rec.program_id := l_prgm_pmt_mode_rec.program_id;
1482 END IF;
1483
1484 -- geo_hierarchy_id
1485 -- IF p_prgm_pmt_mode_rec.geo_hierarchy_id = FND_API.g_miss_num THEN
1486
1487 IF p_prgm_pmt_mode_rec.geo_hierarchy_id IS NULL THEN
1488 x_complete_rec.geo_hierarchy_id := l_prgm_pmt_mode_rec.geo_hierarchy_id;
1489 END IF;
1490
1491 -- mode_of_payment
1492 -- IF p_prgm_pmt_mode_rec.mode_of_payment = FND_API.g_miss_char THEN
1493
1494 IF p_prgm_pmt_mode_rec.mode_of_payment IS NULL THEN
1495 x_complete_rec.mode_of_payment := l_prgm_pmt_mode_rec.mode_of_payment;
1496 END IF;
1497
1498 -- mode_type
1499 -- IF p_prgm_pmt_mode_rec.mode_type = FND_API.g_miss_char THEN
1500
1501 IF p_prgm_pmt_mode_rec.mode_type IS NULL THEN
1502 x_complete_rec.mode_type := l_prgm_pmt_mode_rec.mode_type;
1503 END IF;
1504
1505 -- last_update_date
1506 -- IF p_prgm_pmt_mode_rec.last_update_date = FND_API.g_miss_date THEN
1507
1508 IF p_prgm_pmt_mode_rec.last_update_date IS NULL THEN
1509 x_complete_rec.last_update_date := l_prgm_pmt_mode_rec.last_update_date;
1510 END IF;
1511
1512 -- last_updated_by
1513 -- IF p_prgm_pmt_mode_rec.last_updated_by = FND_API.g_miss_num THEN
1514
1515 IF p_prgm_pmt_mode_rec.last_updated_by IS NULL THEN
1516 x_complete_rec.last_updated_by := l_prgm_pmt_mode_rec.last_updated_by;
1517 END IF;
1518
1519 -- creation_date
1520 -- IF p_prgm_pmt_mode_rec.creation_date = FND_API.g_miss_date THEN
1521
1522 IF p_prgm_pmt_mode_rec.creation_date IS NULL THEN
1523 x_complete_rec.creation_date := l_prgm_pmt_mode_rec.creation_date;
1524 END IF;
1525
1526 -- created_by
1527 -- IF p_prgm_pmt_mode_rec.created_by = FND_API.g_miss_num THEN
1528
1529 IF p_prgm_pmt_mode_rec.created_by IS NULL THEN
1530 x_complete_rec.created_by := l_prgm_pmt_mode_rec.created_by;
1531 END IF;
1532
1533 -- last_update_login
1534 -- IF p_prgm_pmt_mode_rec.last_update_login = FND_API.g_miss_num THEN
1535
1536 IF p_prgm_pmt_mode_rec.last_update_login IS NULL THEN
1537 x_complete_rec.last_update_login := l_prgm_pmt_mode_rec.last_update_login;
1538 END IF;
1539
1540 -- object_version_number
1541 -- IF p_prgm_pmt_mode_rec.object_version_number = FND_API.g_miss_num THEN
1542
1543 IF p_prgm_pmt_mode_rec.object_version_number IS NULL THEN
1544 x_complete_rec.object_version_number := l_prgm_pmt_mode_rec.object_version_number;
1545 END IF;
1546
1547 END Complete_Rec;
1548
1549
1550
1551 PROCEDURE Validate_Prgm_Pmt_Mode(
1552 p_api_version_number IN NUMBER
1553 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1554 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1555 ,p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1556 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.G_UPDATE
1557 ,x_return_status OUT NOCOPY VARCHAR2
1558 ,x_msg_count OUT NOCOPY NUMBER
1559 ,x_msg_data OUT NOCOPY VARCHAR2
1560 )
1561
1562 IS
1563
1564 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Prgm_Pmt_Mode';
1565 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1566 l_api_version_number CONSTANT NUMBER := 1.0;
1567 l_object_version_number NUMBER;
1568 l_prgm_pmt_mode_rec PV_PRGM_PMT_MODE_PVT.prgm_pmt_mode_rec_type;
1569
1570 BEGIN
1571
1572 -- Standard Start of API savepoint
1573 SAVEPOINT Validate_Prgm_Pmt_Mode_;
1574
1575 -- Initialize API return status to SUCCESS
1576 x_return_status := FND_API.G_RET_STS_SUCCESS;
1577
1578 -- Standard call to check for call compatibility.
1579 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1580 p_api_version_number,
1581 l_api_name,
1582 G_PKG_NAME)
1583 THEN
1584 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1585 END IF;
1586
1587 -- Initialize message list if p_init_msg_list is set to TRUE.
1588 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1589 FND_MSG_PUB.initialize;
1590 END IF;
1591
1592 -- Debug Message
1593 IF (PV_DEBUG_HIGH_ON) THEN
1594
1595 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - start');
1596 END IF;
1597
1598 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1599 -- Debug message
1600 IF (PV_DEBUG_HIGH_ON) THEN
1601
1602 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - prior to Check_Items call');
1603 END IF;
1604
1605 Check_Items(
1606 p_prgm_pmt_mode_rec => p_prgm_pmt_mode_rec
1607 ,p_validation_mode => p_validation_mode
1608 ,x_return_status => x_return_status
1609 );
1610
1611 -- Debug message
1612 IF (PV_DEBUG_HIGH_ON) THEN
1613
1614 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - return status after Check_Items call ' || x_return_status);
1615 END IF;
1616
1617 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1618 RAISE FND_API.G_EXC_ERROR;
1619 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1620 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1621 END IF;
1622 END IF;
1623
1624 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1625 Validate_Rec(
1626 p_api_version_number => 1.0
1627 ,p_init_msg_list => FND_API.G_FALSE
1628 ,x_return_status => x_return_status
1629 ,x_msg_count => x_msg_count
1630 ,x_msg_data => x_msg_data
1631 ,p_prgm_pmt_mode_rec => l_prgm_pmt_mode_rec
1632 );
1633
1634 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1635 RAISE FND_API.G_EXC_ERROR;
1636 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1637 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1638 END IF;
1639 END IF;
1640
1641
1642 -- Debug Message
1643 IF (PV_DEBUG_HIGH_ON) THEN
1644
1645 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - end');
1646 END IF;
1647
1648 -- Standard call to get message count and if count is 1, get message info.
1649 FND_MSG_PUB.Count_And_Get
1650 ( p_encoded => FND_API.G_FALSE,
1651 p_count => x_msg_count,
1652 p_data => x_msg_data
1653 );
1654
1655 EXCEPTION
1656 WHEN FND_API.G_EXC_ERROR THEN
1657 ROLLBACK TO Validate_Prgm_Pmt_Mode_;
1658 x_return_status := FND_API.G_RET_STS_ERROR;
1659 -- Standard call to get message count and if count=1, get the message
1660 FND_MSG_PUB.Count_And_Get (
1661 p_encoded => FND_API.G_FALSE
1662 ,p_count => x_msg_count
1663 ,p_data => x_msg_data
1664 );
1665
1666 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1667 ROLLBACK TO Validate_Prgm_Pmt_Mode_;
1668 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1669 -- Standard call to get message count and if count=1, get the message
1670 FND_MSG_PUB.Count_And_Get (
1671 p_encoded => FND_API.G_FALSE
1672 ,p_count => x_msg_count
1673 ,p_data => x_msg_data
1674 );
1675
1676 WHEN OTHERS THEN
1677 ROLLBACK TO Validate_Prgm_Pmt_Mode_;
1678 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1679 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1680 THEN
1681 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1682 END IF;
1683 -- Standard call to get message count and if count=1, get the message
1684 FND_MSG_PUB.Count_And_Get (
1685 p_encoded => FND_API.G_FALSE
1686 ,p_count => x_msg_count
1687 ,p_data => x_msg_data
1688 );
1689
1690 End Validate_Prgm_Pmt_Mode;
1691
1692
1693
1694 PROCEDURE Validate_Rec(
1695 p_api_version_number IN NUMBER
1696 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1697 ,x_return_status OUT NOCOPY VARCHAR2
1698 ,x_msg_count OUT NOCOPY NUMBER
1699 ,x_msg_data OUT NOCOPY VARCHAR2
1700 ,p_prgm_pmt_mode_rec IN prgm_pmt_mode_rec_type
1701 ,p_validation_mode IN VARCHAR2
1702 )
1703 IS
1704 BEGIN
1705 -- Initialize message list if p_init_msg_list is set to TRUE.
1706 IF FND_API.to_Boolean( p_init_msg_list )
1707 THEN
1708 FND_MSG_PUB.initialize;
1709 END IF;
1710
1711 -- Initialize API return status to SUCCESS
1712 x_return_status := FND_API.G_RET_STS_SUCCESS;
1713
1714 -- Hint: Validate data
1715 -- If data not valid
1716 -- THEN
1717 -- x_return_status := FND_API.G_RET_STS_ERROR;
1718
1719 -- Debug Message
1720 IF (PV_DEBUG_HIGH_ON) THEN
1721
1722 PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1723 END IF;
1724
1725 -- Standard call to get message count and if count is 1, get message info.
1726 FND_MSG_PUB.Count_And_Get (
1727 p_count => x_msg_count
1728 ,p_data => x_msg_data
1729 );
1730
1731 END Validate_Rec;
1732
1733 END PV_PRGM_PMT_MODE_PVT;