[Home] [Help]
PACKAGE BODY: APPS.PV_PG_ENRL_REQUESTS_PVT
Source
1 PACKAGE BODY PV_Pg_Enrl_Requests_PVT as
2 /* $Header: pvxvperb.pls 120.7 2006/02/08 09:21:50 dgottlie ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_Pg_Enrl_Requests_PVT
7 -- Purpose
8 --
9 -- History
10 -- 20-OCT-2002 Karen.Tsao Created
11 -- 27-NOV-2002 Karen.Tsao 1. Modified to change datatype for order_header_id.
12 -- 2. Debug message to be wrapped with IF check.
13 -- 3. Replace of COPY with NOCOPY string.
14 -- 27-AUG-2003 Karen.Tsao Update the Create_Pg_Enrl_Requests, Update_Pg_Enrl_Requests,
15 -- and Complete_Enrl_Request_Rec with two new columns in
16 -- pv_pg_enrl_requests: membership_fee, transactional_curr_code
17 -- 29-AUG-2003 Karen.Tsao Modified for column name change: transactional_curr_code to trans_curr_code
18 -- 26-SEP-2003 pukken Added dependent_program_id column in pv_pg_enrl_requests record
19 -- 23-FEB-2004 pukken Modified code in is_payment_exists function.
20 -- 01-APR-2004 Karen.Tsao Modified Is_Contract_Exists for bug 3540615.
21 -- 20-APR-2005 Karen.Tsao Modified for R12.
22 -- 05-JUL-2005 kvattiku Added trxn_extension_id column in pv_pg_enrl_requests record
23 -- 06-SEP-2005 Karen.Tsao Move the return call to the end of Is_Contract_Exists.
24 --
25 -- NOTE
26 --
27 -- This Api is generated with Latest version of
28 -- Rosetta, where g_miss indicates NULL and
29 -- NULL indicates missing value. Rosetta Version 1.55
30 -- End of Comments
31 -- ===============================================================
32
33 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_Pg_Enrl_Requests_PVT';
34 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvperb.pls';
35
36 -- G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
37 -- G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
38 --
39 -- Foreward Procedure Declarations
40 --
41
42
43 PROCEDURE Default_Enrl_Request_Items (
44 p_enrl_request_rec IN enrl_request_rec_type ,
45 x_enrl_request_rec OUT NOCOPY enrl_request_rec_type
46 ) ;
47
48
49
50 -- Hint: Primary key needs to be returned.
51 -- ==============================================================================
52 -- Start of Comments
53 -- ==============================================================================
54 -- API Name
55 -- Create_Pg_Enrl_Requests
56 -- Type
57 -- Private
58 -- Pre-Req
59 --
60 -- Parameters
61 --
62 -- IN
63 -- p_api_version_number IN NUMBER Required
64 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
65 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
66 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
67 -- p_enrl_request_rec IN enrl_request_rec_type Required
68 --
69 -- OUT
70 -- x_return_status OUT VARCHAR2
71 -- x_msg_count OUT NUMBER
72 -- x_msg_data OUT VARCHAR2
73 -- Version : Current version 1.0
74 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
75 -- and basic operation, developer must manually add parameters and business logic as necessary.
76 --
77 -- History
78 --
79 -- NOTE
80 --
81 -- End of Comments
82 -- ==============================================================================
83
84 PV_DEBUG_HIGH_ON CONSTANT BOOLEAN := Fnd_Msg_Pub.CHECK_MSG_LEVEL(Fnd_Msg_Pub.G_MSG_LVL_DEBUG_HIGH);
85 PV_DEBUG_LOW_ON CONSTANT BOOLEAN := Fnd_Msg_Pub.CHECK_MSG_LEVEL(Fnd_Msg_Pub.G_MSG_LVL_DEBUG_LOW);
86 PV_DEBUG_MEDIUM_ON CONSTANT BOOLEAN := Fnd_Msg_Pub.CHECK_MSG_LEVEL(Fnd_Msg_Pub.G_MSG_LVL_DEBUG_MEDIUM);
87
88
89 FUNCTION Is_Payment_Exists(p_enrl_request_rec IN OUT NOCOPY enrl_request_rec_type)
90 RETURN VARCHAR2 IS
91
92 any_payment VARCHAR2(1);
93 l_order_header_id NUMBER;
94 l_waive_fee_flag VARCHAR2(1);
95 l_memb_type VARCHAR2(30);
96
97 CURSOR fee_csr(p_prg_id NUMBER) IS
98 SELECT no_fee_flag,waive_subsidiary_fee_flag
99 FROM pv_partner_program_b
100 WHERE program_id = p_prg_id;
101
102 CURSOR order_csr(p_inv_id NUMBER) IS
103 SELECT order_header_id
104 FROM PV_PG_INVITE_HEADERS_b
105 WHERE invite_header_id=p_inv_id;
106
107 CURSOR membertype_csr(p_ptr_id NUMBER) IS
108 SELECT attr_value
109 FROM pv_enty_attr_values
110 WHERE entity='PARTNER'
111 AND entity_id=p_ptr_id
112 AND attribute_id=6
113 AND latest_flag='Y';
114
115
116
117 BEGIN
118
119 OPEN fee_csr(p_enrl_request_rec.program_id);
120 FETCH fee_csr INTO any_payment,l_waive_fee_flag;
121 CLOSE fee_csr;
122
123 IF (any_payment = 'Y') THEN
124 RETURN 'N';
125 END IF;
126
127 --if invitea headre id exists then payment exists
128 -- if paymenst exists , then we should populate order header id
129 --and payment status as ' AUTHORIZED_PAYMENT'--check
130 IF p_enrl_request_rec.invite_header_id is not NULL THEN
131 --means payment exists
132 OPEN order_csr (p_enrl_request_rec.invite_header_id);
133 FETCH order_csr INTO l_order_header_id;
134 CLOSE order_csr;
135 IF (l_order_header_id is not NULL) THEN
136 p_enrl_request_rec.order_header_id:=l_order_header_id;
137 p_enrl_request_rec.payment_status_code:= 'AUTHORIZED_PAYMENT';
138 RETURN 'Y';
139 END IF;
140 END IF;
141 OPEN membertype_csr(p_enrl_request_rec.partner_id);
142 FETCH membertype_csr INTO l_memb_type;
143 CLOSE membertype_csr;
144 IF l_memb_type='SUBSIDIARY' AND l_waive_fee_flag='Y' THEN
145 RETURN 'N';
146 ELSE
147 RETURN 'Y';
148 END IF;
149
150 END Is_Payment_Exists;
151
152 FUNCTION Is_Contract_Exists(p_program_id IN NUMBER, p_partner_id IN NUMBER, p_enrl_request_id IN NUMBER)
153 RETURN VARCHAR2 IS
154 x_return_status VARCHAR2(32767);
155 x_msg_count NUMBER;
156 x_msg_data VARCHAR2(32767);
157 l_contract_id NUMBER;
158 x_exist VARCHAR2(1);
159 L_API_NAME CONSTANT VARCHAR2(30) := 'Is_Contract_Exists';
160
161 BEGIN
162 IF (PV_DEBUG_HIGH_ON) THEN
163 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' start');
164 PVX_UTILITY_PVT.debug_message('p_program_id = ' || p_program_id);
165 PVX_UTILITY_PVT.debug_message('p_partner_id = ' || p_partner_id);
166 PVX_UTILITY_PVT.debug_message('p_enrl_request_id = ' || p_enrl_request_id);
167 END IF;
168
169 PV_Partner_Contracts_PVT.Is_Contract_Exist_Then_Create(
170 p_api_version_number => 1.0
171 ,p_init_msg_list => FND_API.G_FALSE
172 ,x_return_status => x_return_status
173 ,x_msg_count => x_msg_count
174 ,x_msg_data => x_msg_data
175 ,p_partner_id => p_partner_id
176 ,p_program_id => p_program_id
177 ,p_enrl_request_id => p_enrl_request_id
178 ,x_exist => x_exist
179 );
180
181
182 IF (PV_DEBUG_HIGH_ON) THEN
183 PVX_UTILITY_PVT.debug_message('x_exist: ' || x_exist);
184 PVX_UTILITY_PVT.debug_message('x_return_status: ' || x_return_status);
185 END IF;
186
187 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
188 RAISE FND_API.G_EXC_ERROR;
189 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
190 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
191 END IF;
192
193 FND_MSG_PUB.Count_And_Get
194 ( p_encoded => FND_API.G_FALSE,
195 p_count => x_msg_count,
196 p_data => x_msg_data
197 );
198
199 IF (PV_DEBUG_HIGH_ON) THEN
200 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' end');
201 END IF;
202
203 RETURN x_exist;
204
205 EXCEPTION
206
207 WHEN Fnd_Api.G_EXC_ERROR THEN
208 x_return_status := Fnd_Api.G_RET_STS_ERROR;
209
210 -- Standard call to get message count and if count=1, get the message
211 Fnd_Msg_Pub.Count_And_Get (
212 p_encoded => Fnd_Api.G_FALSE
213 ,p_count => x_msg_count
214 ,p_data => x_msg_data
215 );
216
217 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
218 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
219 -- Standard call to get message count and if count=1, get the message
220 Fnd_Msg_Pub.Count_And_Get (
221 p_encoded => Fnd_Api.G_FALSE
222 ,p_count => x_msg_count
223 ,p_data => x_msg_data
224 );
225
226 WHEN OTHERS THEN
227 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
228 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
229 THEN
230 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME, l_api_name);
231 END IF;
232 -- Standard call to get message count and if count=1, get the message
233 Fnd_Msg_Pub.Count_And_Get (
234 p_encoded => Fnd_Api.G_FALSE
235 ,p_count => x_msg_count
236 ,p_data => x_msg_data
237 );
238
239 END Is_Contract_Exists;
240
241
242 FUNCTION Get_Custom_Setup_Id(p_enrl_request_id IN NUMBER, p_enrl_request_rec IN OUT NOCOPY enrl_request_rec_type )
243 RETURN NUMBER IS
244
245 custom_setup_id NUMBER;
246 any_contract VARCHAR2(1);
247 any_payment VARCHAR2(1);
248 BEGIN
249 any_contract := Is_Contract_Exists(p_enrl_request_rec.program_id, p_enrl_request_rec.partner_id, p_enrl_request_id);
250 any_payment := Is_Payment_Exists(p_enrl_request_rec);
251 IF (any_contract = 'Y') THEN
252
253 IF (any_payment = 'Y') THEN
254
255 --WITH contract, WITH payment
256 custom_setup_id := 7004;
257
258 ELSE
259
260 --WITH contract, no payment
261 custom_setup_id := 7006;
262 END IF;
263
264 ELSE
265
266 IF (any_payment = 'Y') THEN
267
268 --no contract, WITH payment
269 custom_setup_id := 7005;
270
271 ELSE
272
273 --no contract, no payment
274 custom_setup_id := 7007;
275 END IF;
276
277 END IF;
278 RETURN custom_setup_id;
279
280
281 END Get_Custom_Setup_Id;
282
283
284
285 PROCEDURE Create_Pg_Enrl_Requests(
286 p_api_version_number IN NUMBER,
287 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
288 p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
289 p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
290
291 x_return_status OUT NOCOPY VARCHAR2,
292 x_msg_count OUT NOCOPY NUMBER,
293 x_msg_data OUT NOCOPY VARCHAR2,
294
295 p_enrl_request_rec IN enrl_request_rec_type := g_miss_enrl_request_rec,
296 x_enrl_request_id OUT NOCOPY NUMBER
297 )
298
299 IS
300 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Pg_Enrl_Requests';
301 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
302 l_return_status_full VARCHAR2(1);
303 l_object_version_number NUMBER := 1;
304 l_org_id NUMBER := Fnd_Api.G_MISS_NUM;
305 l_enrl_request_id NUMBER;
306 l_custom_setup_id NUMBER;
307 l_score_result_code VARCHAR2(30) := p_enrl_request_rec.score_result_code;
308 l_dummy NUMBER;
309 l_enrl_request_rec enrl_request_rec_type:= g_miss_enrl_request_rec;
310 CURSOR c_id IS
311 SELECT pv_pg_enrl_requests_s.NEXTVAL
312 FROM dual;
313
314 CURSOR c_id_exists (l_id IN NUMBER) IS
315 SELECT 1
316 FROM PV_PG_ENRL_REQUESTS
317 WHERE enrl_request_id = l_id;
318 BEGIN
319 -- Standard Start of API savepoint
320 SAVEPOINT create_pg_enrl_requests_pvt;
321
322 -- Standard call to check for call compatibility.
323 IF NOT Fnd_Api.Compatible_API_Call ( l_api_version_number,
324 p_api_version_number,
325 l_api_name,
326 G_PKG_NAME)
327 THEN
328 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
329 END IF;
330
331
332 -- Initialize message list if p_init_msg_list is set to TRUE.
333 IF Fnd_Api.to_Boolean( p_init_msg_list )
334 THEN
335 Fnd_Msg_Pub.initialize;
336 END IF;
337
338
339
340 -- Debug Message
341 IF (PV_DEBUG_HIGH_ON) THEN
342
343 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
344 END IF;
345
346
347
348 -- Initialize API return status to SUCCESS
349 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
350
351 -- =========================================================================
352 -- Validate Environment
353 -- =========================================================================
354
355 IF Fnd_Global.USER_ID IS NULL
356 THEN
357 FND_MESSAGE.Set_Name ('PV', 'USER_PROFILE_MISSING');
358 FND_MSG_PUB.Add;
359 RAISE Fnd_Api.G_EXC_ERROR;
360 END IF;
361
362
363
364 IF ( P_validation_level >= Fnd_Api.G_VALID_LEVEL_FULL)
365 THEN
366 -- Debug message
367 IF (PV_DEBUG_HIGH_ON) THEN
368
369 Pvx_Utility_Pvt.debug_message('PRIVATE API: Validate_Pg_Enrl_Requests');
370 END IF;
371
372 -- Invoke validation procedures
373 Validate_pg_enrl_requests(
374 p_api_version_number => 1.0,
375 p_init_msg_list => Fnd_Api.G_FALSE,
376 p_validation_level => p_validation_level,
377 p_validation_mode => Jtf_Plsql_Api.g_create,
378 p_enrl_request_rec => p_enrl_request_rec,
379 x_return_status => x_return_status,
380 x_msg_count => x_msg_count,
381 x_msg_data => x_msg_data);
382 END IF;
383
384 IF x_return_status<>Fnd_Api.G_RET_STS_SUCCESS THEN
385 RAISE Fnd_Api.G_EXC_ERROR;
386 END IF;
387
388 -- Local variable initialization
389
390 IF p_enrl_request_rec.enrl_request_id IS NULL OR p_enrl_request_rec.enrl_request_id = Fnd_Api.g_miss_num THEN
391 LOOP
392 l_dummy := NULL;
393 OPEN c_id;
394 FETCH c_id INTO l_enrl_request_id;
395 CLOSE c_id;
396
397 OPEN c_id_exists(l_enrl_request_id);
398 FETCH c_id_exists INTO l_dummy;
399 CLOSE c_id_exists;
400 EXIT WHEN l_dummy IS NULL;
401 END LOOP;
402 ELSE
403 l_enrl_request_id := p_enrl_request_rec.enrl_request_id;
404 END IF;
405
406 -- Debug Message
407 IF (PV_DEBUG_HIGH_ON) THEN
408
409 Pvx_Utility_Pvt.debug_message( 'PRIVATE API: Calling CREATE TABLE handler');
410 END IF;
411
412 IF l_score_result_code IS NULL THEN
413 l_score_result_code := 'NOT_EVALUATED';
414 END IF;
415 l_enrl_request_rec:=p_enrl_request_rec;
416 l_custom_setup_id := Get_Custom_Setup_Id(l_enrl_request_id, l_enrl_request_rec);
417
418
419 -- Invoke table handler(Pv_Pg_Enrl_Requests_Pkg.Insert_Row)
420 Pv_Pg_Enrl_Requests_Pkg.Insert_Row(
421 px_enrl_request_id => l_enrl_request_id,
422 px_object_version_number => l_object_version_number,
423 p_program_id => p_enrl_request_rec.program_id,
424 p_partner_id => p_enrl_request_rec.partner_id,
425 p_custom_setup_id => l_custom_setup_id,
426 p_requestor_resource_id => p_enrl_request_rec.requestor_resource_id,
427 p_request_status_code => p_enrl_request_rec.request_status_code,
428 p_enrollment_type_code => p_enrl_request_rec.enrollment_type_code,
429 p_request_submission_date => p_enrl_request_rec.request_submission_date,
430 p_order_header_id => l_enrl_request_rec.order_header_id,
431 p_contract_id => p_enrl_request_rec.contract_id,
432 p_request_initiated_by_code => p_enrl_request_rec.request_initiated_by_code,
433 p_invite_header_id => p_enrl_request_rec.invite_header_id,
434 p_tentative_start_date => p_enrl_request_rec.tentative_start_date,
435 p_tentative_end_date => p_enrl_request_rec.tentative_end_date,
436 p_contract_status_code => p_enrl_request_rec.contract_status_code,
437 p_payment_status_code => l_enrl_request_rec.payment_status_code,
438 p_score_result_code => l_score_result_code,
439 p_created_by => Fnd_Global.USER_ID,
440 p_creation_date => SYSDATE,
441 p_last_updated_by => Fnd_Global.USER_ID,
442 p_last_update_date => SYSDATE,
443 p_last_update_login => Fnd_Global.conc_login_id,
444 p_membership_fee => p_enrl_request_rec.membership_fee,
445 p_dependent_program_id => p_enrl_request_rec.dependent_program_id,
446 p_trans_curr_code => p_enrl_request_rec.trans_curr_code,
447 p_contract_binding_contact_id => p_enrl_request_rec.contract_binding_contact_id,
448 p_contract_signed_date => p_enrl_request_rec.contract_signed_date,
449 p_trxn_extension_id => p_enrl_request_rec.trxn_extension_id,
450 p_attribute1 => p_enrl_request_rec.attribute1,
451 p_attribute2 => p_enrl_request_rec.attribute2,
452 p_attribute3 => p_enrl_request_rec.attribute3,
453 p_attribute4 => p_enrl_request_rec.attribute4,
454 p_attribute5 => p_enrl_request_rec.attribute5,
455 p_attribute6 => p_enrl_request_rec.attribute6,
456 p_attribute7 => p_enrl_request_rec.attribute7,
457 p_attribute8 => p_enrl_request_rec.attribute8,
458 p_attribute9 => p_enrl_request_rec.attribute9,
459 p_attribute10 => p_enrl_request_rec.attribute10,
460 p_attribute11 => p_enrl_request_rec.attribute11,
461 p_attribute12 => p_enrl_request_rec.attribute12,
462 p_attribute13 => p_enrl_request_rec.attribute13,
463 p_attribute14 => p_enrl_request_rec.attribute14,
464 p_attribute15 => p_enrl_request_rec.attribute15
465 );
466
467 x_enrl_request_id := l_enrl_request_id;
468 IF x_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
469 RAISE Fnd_Api.G_EXC_ERROR;
470 END IF;
471
472 -- invoke Create_Gc_Responses_Rec
473 Pv_Ge_Chklst_Resp_Pvt.Create_Enrq_Responses(
474 p_api_version_number => 1.0,
475 p_init_msg_list => Fnd_Api.G_FALSE,
476 p_commit =>Fnd_Api.G_FALSE,
477 p_validation_level => p_validation_level,
478 x_return_status => x_return_status,
479 x_msg_count => x_msg_count,
480 x_msg_data => x_msg_data,
481 p_programId => p_enrl_request_rec.program_id,
482 p_enrollmentId => l_enrl_request_id);
483
484 IF x_return_status<>Fnd_Api.G_RET_STS_SUCCESS THEN
485 RAISE Fnd_Api.G_EXC_ERROR;
486 END IF;
487
488 --
489 -- End of API body
490 --
491
492 -- Standard check for p_commit
493 IF Fnd_Api.to_Boolean( p_commit )
494 THEN
495 COMMIT WORK;
496 END IF;
497
498
499 -- Debug Message
500 IF (PV_DEBUG_HIGH_ON) THEN
501
502 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'END');
503 END IF;
504
505
506 -- Standard call to get message count and if count is 1, get message info.
507 Fnd_Msg_Pub.Count_And_Get
508 (p_count => x_msg_count,
509 p_data => x_msg_data
510 );
511 EXCEPTION
512
513 WHEN Pvx_Utility_Pvt.resource_locked THEN
514 x_return_status := Fnd_Api.g_ret_sts_error;
515 FND_MESSAGE.Set_Name ('PV', 'PV_API_RESOURCE_LOCKED');
516 FND_MSG_PUB.Add;
517
518 WHEN Fnd_Api.G_EXC_ERROR THEN
519 ROLLBACK TO CREATE_Pg_Enrl_Requests_PVT;
520 x_return_status := Fnd_Api.G_RET_STS_ERROR;
521 -- Standard call to get message count and if count=1, get the message
522 Fnd_Msg_Pub.Count_And_Get (
523 p_encoded => Fnd_Api.G_FALSE,
524 p_count => x_msg_count,
525 p_data => x_msg_data
526 );
527
528 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
529 ROLLBACK TO CREATE_Pg_Enrl_Requests_PVT;
530 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
531 -- Standard call to get message count and if count=1, get the message
532 Fnd_Msg_Pub.Count_And_Get (
533 p_encoded => Fnd_Api.G_FALSE,
534 p_count => x_msg_count,
535 p_data => x_msg_data
536 );
537
538 WHEN OTHERS THEN
539 ROLLBACK TO CREATE_Pg_Enrl_Requests_PVT;
540 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
541 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
542 THEN
543 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
544 END IF;
545 -- Standard call to get message count and if count=1, get the message
546 Fnd_Msg_Pub.Count_And_Get (
547 p_encoded => Fnd_Api.G_FALSE,
548 p_count => x_msg_count,
549 p_data => x_msg_data
550 );
551 END Create_Pg_Enrl_Requests;
552
553
554 -- ==============================================================================
555 -- Start of Comments
556 -- ==============================================================================
557 -- API Name
558 -- Update_Pg_Enrl_Requests
559 -- Type
560 -- Private
561 -- Pre-Req
562 --
563 -- Parameters
564 --
565 -- IN
566 -- p_api_version_number IN NUMBER Required
567 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
568 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
569 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
570 -- p_enrl_request_rec IN enrl_request_rec_type Required
571 --
572 -- OUT
573 -- x_return_status OUT VARCHAR2
574 -- x_msg_count OUT NUMBER
575 -- x_msg_data OUT VARCHAR2
576 -- Version : Current version 1.0
577 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
578 -- and basic operation, developer must manually add parameters and business logic as necessary.
579 --
580 -- History
581 --
582 -- NOTE
583 --
584 -- End of Comments
585 -- ==============================================================================
586
587 PROCEDURE Update_Pg_Enrl_Requests(
588 p_api_version_number IN NUMBER,
589 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
590 p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
591 p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
592
593 x_return_status OUT NOCOPY VARCHAR2,
594 x_msg_count OUT NOCOPY NUMBER,
595 x_msg_data OUT NOCOPY VARCHAR2,
596
597 p_enrl_request_rec IN enrl_request_rec_type
598 )
599
600 IS
601
602
603 CURSOR c_get_pg_enrl_requests(enrl_request_id NUMBER) IS
604 SELECT *
605 FROM PV_PG_ENRL_REQUESTS
606 WHERE enrl_request_id = p_enrl_request_rec.enrl_request_id;
607 -- Hint: Developer need to provide Where clause
608
609
610 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Pg_Enrl_Requests';
611 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
612 -- Local Variables
613 l_object_version_number NUMBER;
614 l_enrl_request_id NUMBER;
615 l_ref_enrl_request_rec c_get_Pg_Enrl_Requests%ROWTYPE ;
616 l_tar_enrl_request_rec enrl_request_rec_type := P_enrl_request_rec;
617 l_rowid ROWID;
618
619 BEGIN
620 -- Standard Start of API savepoint
621 SAVEPOINT update_pg_enrl_requests_pvt;
622
623 -- Standard call to check for call compatibility.
624 IF NOT Fnd_Api.Compatible_API_Call ( l_api_version_number,
625 p_api_version_number,
626 l_api_name,
627 G_PKG_NAME)
628 THEN
629 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
630 END IF;
631
632
633 -- Initialize message list if p_init_msg_list is set to TRUE.
634 IF Fnd_Api.to_Boolean( p_init_msg_list )
635 THEN
636 Fnd_Msg_Pub.initialize;
637 END IF;
638
639
640
641 -- Debug Message
642 IF (PV_DEBUG_HIGH_ON) THEN
643
644 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
645 END IF;
646
647
648
649 -- Initialize API return status to SUCCESS
650 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
651
652 -- Debug Message
653 IF (PV_DEBUG_HIGH_ON) THEN
654
655 Pvx_Utility_Pvt.debug_message('PRIVATE API: - OPEN CURSOR TO SELECT');
656 END IF;
657
658 OPEN c_get_Pg_Enrl_Requests( l_tar_enrl_request_rec.enrl_request_id);
659
660 FETCH c_get_Pg_Enrl_Requests INTO l_ref_enrl_request_rec ;
661
662 IF ( c_get_Pg_Enrl_Requests%NOTFOUND) THEN
663 FND_MESSAGE.Set_Name ('PV', 'API_MISSING_UPDATE_TARGET');
664 FND_MESSAGE.Set_Token('INFO', 'Pg_Enrl_Requests');
665 FND_MSG_PUB.Add;
666 RAISE Fnd_Api.G_EXC_ERROR;
667 END IF;
668 -- Debug Message
669 IF (PV_DEBUG_HIGH_ON) THEN
670
671 Pvx_Utility_Pvt.debug_message('PRIVATE API: - CLOSE CURSOR');
672 END IF;
673 CLOSE c_get_Pg_Enrl_Requests;
674
675
676 IF (l_tar_enrl_request_rec.object_version_number IS NULL OR
677 l_tar_enrl_request_rec.object_version_number = Fnd_Api.G_MISS_NUM ) THEN
678 FND_MESSAGE.Set_Name ('PV', 'API_VERSION_MISSING');
679 FND_MESSAGE.Set_Token('INFO', 'Pg_Enrl_Requests');
680 FND_MSG_PUB.Add;
681 RAISE Fnd_Api.G_EXC_ERROR;
682 END IF;
683 -- Check Whether record has been changed by someone else
684 IF (l_tar_enrl_request_rec.object_version_number <> l_ref_enrl_request_rec.object_version_number) THEN
685 FND_MESSAGE.Set_Name ('PV', 'API_RECORD_CHANGED');
686 FND_MESSAGE.Set_Token('INFO', 'Pg_Enrl_Requests');
687 FND_MSG_PUB.Add;
688 RAISE Fnd_Api.G_EXC_ERROR;
689 END IF;
690
691
692 IF ( P_validation_level >= Fnd_Api.G_VALID_LEVEL_FULL)
693 THEN
694 -- Debug message
695 IF (PV_DEBUG_HIGH_ON) THEN
696
697 Pvx_Utility_Pvt.debug_message('PRIVATE API: Validate_Pg_Enrl_Requests');
698 END IF;
699
700 -- Invoke validation procedures
701 Validate_pg_enrl_requests(
702 p_api_version_number => 1.0,
703 p_init_msg_list => Fnd_Api.G_FALSE,
704 p_validation_level => p_validation_level,
705 p_validation_mode => Jtf_Plsql_Api.g_update,
706 p_enrl_request_rec => p_enrl_request_rec,
707 x_return_status => x_return_status,
708 x_msg_count => x_msg_count,
709 x_msg_data => x_msg_data);
710 END IF;
711
712 IF x_return_status<>Fnd_Api.G_RET_STS_SUCCESS THEN
713 RAISE Fnd_Api.G_EXC_ERROR;
714 END IF;
715
716
717 -- Debug Message
718 IF (PV_DEBUG_HIGH_ON) THEN
719
720 Pvx_Utility_Pvt.debug_message('PRIVATE API: Calling UPDATE TABLE handler');
721 END IF;
722
723 IF p_enrl_request_rec.tentative_end_date is not null and ( p_enrl_request_rec.tentative_start_date>p_enrl_request_rec.tentative_end_date ) THEN
724 FND_MESSAGE.set_name('PV', 'PV_END_DATE_SMALL_START_DATE');
725 FND_MSG_PUB.add;
726 RAISE FND_API.G_EXC_ERROR;
727 END IF;
728
729 -- Invoke table handler(Pv_Pg_Enrl_Requests_Pkg.Update_Row)
730 Pv_Pg_Enrl_Requests_Pkg.Update_Row(
731 p_enrl_request_id => p_enrl_request_rec.enrl_request_id,
732 p_object_version_number => p_enrl_request_rec.object_version_number,
733 p_program_id => p_enrl_request_rec.program_id,
734 p_partner_id => p_enrl_request_rec.partner_id,
735 p_custom_setup_id => p_enrl_request_rec.custom_setup_id,
736 p_requestor_resource_id => p_enrl_request_rec.requestor_resource_id,
737 p_request_status_code => p_enrl_request_rec.request_status_code,
738 p_enrollment_type_code => p_enrl_request_rec.enrollment_type_code,
739 p_request_submission_date => p_enrl_request_rec.request_submission_date,
740 p_contract_id => p_enrl_request_rec.contract_id,
741 p_request_initiated_by_code => p_enrl_request_rec.request_initiated_by_code,
742 p_invite_header_id => p_enrl_request_rec.invite_header_id,
743 p_tentative_start_date => p_enrl_request_rec.tentative_start_date,
744 p_tentative_end_date => p_enrl_request_rec.tentative_end_date,
745 p_contract_status_code => p_enrl_request_rec.contract_status_code,
746 p_payment_status_code => p_enrl_request_rec.payment_status_code,
747 p_score_result_code => p_enrl_request_rec.score_result_code,
748 p_last_updated_by => Fnd_Global.USER_ID,
749 p_last_update_date => SYSDATE,
750 p_last_update_login => Fnd_Global.conc_login_id,
751 p_order_header_id => p_enrl_request_rec.order_header_id,
752 p_membership_fee => p_enrl_request_rec.membership_fee,
753 p_dependent_program_id => p_enrl_request_rec.dependent_program_id,
754 p_trans_curr_code => p_enrl_request_rec.trans_curr_code,
755 p_contract_binding_contact_id => p_enrl_request_rec.contract_binding_contact_id,
756 p_contract_signed_date => p_enrl_request_rec.contract_signed_date,
757 p_trxn_extension_id => p_enrl_request_rec.trxn_extension_id,
758 p_attribute1 => p_enrl_request_rec.attribute1,
759 p_attribute2 => p_enrl_request_rec.attribute2,
760 p_attribute3 => p_enrl_request_rec.attribute3,
761 p_attribute4 => p_enrl_request_rec.attribute4,
762 p_attribute5 => p_enrl_request_rec.attribute5,
763 p_attribute6 => p_enrl_request_rec.attribute6,
764 p_attribute7 => p_enrl_request_rec.attribute7,
765 p_attribute8 => p_enrl_request_rec.attribute8,
766 p_attribute9 => p_enrl_request_rec.attribute9,
767 p_attribute10 => p_enrl_request_rec.attribute10,
768 p_attribute11 => p_enrl_request_rec.attribute11,
769 p_attribute12 => p_enrl_request_rec.attribute12,
770 p_attribute13 => p_enrl_request_rec.attribute13,
771 p_attribute14 => p_enrl_request_rec.attribute14,
772 p_attribute15 => p_enrl_request_rec.attribute15
773 );
774 --
775 -- End of API body.
776 --
777
778 -- Standard check for p_commit
779 IF Fnd_Api.to_Boolean( p_commit )
780 THEN
781 COMMIT WORK;
782 END IF;
783
784
785 -- Debug Message
786 IF (PV_DEBUG_HIGH_ON) THEN
787
788 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'END');
789 END IF;
790
791
792 -- Standard call to get message count and if count is 1, get message info.
793 Fnd_Msg_Pub.Count_And_Get
794 (p_count => x_msg_count,
795 p_data => x_msg_data
796 );
797 EXCEPTION
798 WHEN PVX_Utility_PVT.API_RECORD_CHANGED THEN
799 x_return_status := Fnd_Api.G_RET_STS_ERROR;
800 IF (PV_DEBUG_HIGH_ON) THEN
801 Pvx_Utility_Pvt.debug_message('PRIVATE API: - OPEN CURSOR');
802 END IF;
803 OPEN c_get_Pg_Enrl_Requests( l_tar_enrl_request_rec.enrl_request_id);
804 FETCH c_get_Pg_Enrl_Requests INTO l_ref_enrl_request_rec;
805 IF ( c_get_Pg_Enrl_Requests%NOTFOUND) THEN
806 FND_MESSAGE.Set_Name ('PV', 'API_MISSING_UPDATE_TARGET');
807 FND_MESSAGE.Set_Token('INFO', 'Pg_Enrl_Requests');
808 FND_MSG_PUB.Add;
809 END IF;
810 -- Debug Message
811 IF (PV_DEBUG_HIGH_ON) THEN
812 Pvx_Utility_Pvt.debug_message('PRIVATE API: - CLOSE CURSOR');
813 END IF;
814 CLOSE c_get_Pg_Enrl_Requests;
815 IF (l_tar_enrl_request_rec.object_version_number <> l_ref_enrl_request_rec.object_version_number) THEN
816 x_return_status := Fnd_Api.G_RET_STS_ERROR;
817 FND_MESSAGE.Set_Name ('PV', 'API_RECORD_CHANGED');
818 FND_MESSAGE.Set_Token('INFO', 'Pv_Pg_Enrl_Requests');
819 FND_MSG_PUB.Add;
820 END IF;
821 Fnd_Msg_Pub.Count_And_Get (
822 p_encoded => Fnd_Api.G_FALSE,
823 p_count => x_msg_count,
824 p_data => x_msg_data
825 );
826
827 WHEN Pvx_Utility_Pvt.resource_locked THEN
828 x_return_status := Fnd_Api.g_ret_sts_error;
829 FND_MESSAGE.Set_Name ('PV', 'PV_API_RESOURCE_LOCKED');
830 FND_MSG_PUB.Add;
831 WHEN Fnd_Api.G_EXC_ERROR THEN
832 ROLLBACK TO UPDATE_Pg_Enrl_Requests_PVT;
833 x_return_status := Fnd_Api.G_RET_STS_ERROR;
834 -- Standard call to get message count and if count=1, get the message
835 Fnd_Msg_Pub.Count_And_Get (
836 p_encoded => Fnd_Api.G_FALSE,
837 p_count => x_msg_count,
838 p_data => x_msg_data
839 );
840
841 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
842 ROLLBACK TO UPDATE_Pg_Enrl_Requests_PVT;
843 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
844 -- Standard call to get message count and if count=1, get the message
845 Fnd_Msg_Pub.Count_And_Get (
846 p_encoded => Fnd_Api.G_FALSE,
847 p_count => x_msg_count,
848 p_data => x_msg_data
849 );
850
851 WHEN OTHERS THEN
852 ROLLBACK TO UPDATE_Pg_Enrl_Requests_PVT;
853 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
854 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
855 THEN
856 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
857 END IF;
858 -- Standard call to get message count and if count=1, get the message
859 Fnd_Msg_Pub.Count_And_Get (
860 p_encoded => Fnd_Api.G_FALSE,
861 p_count => x_msg_count,
862 p_data => x_msg_data
863 );
864 END Update_Pg_Enrl_Requests;
865
866
867 -- ==============================================================================
868 -- Start of Comments
869 -- ==============================================================================
870 -- API Name
871 -- Delete_Pg_Enrl_Requests
872 -- Type
873 -- Private
874 -- Pre-Req
875 --
876 -- Parameters
877 --
878 -- IN
879 -- p_api_version_number IN NUMBER Required
880 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
881 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
882 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
883 -- p_enrl_request_id IN NUMBER
884 -- p_object_version_number IN NUMBER Optional Default = NULL
885 --
886 -- OUT
887 -- x_return_status OUT VARCHAR2
888 -- x_msg_count OUT NUMBER
889 -- x_msg_data OUT VARCHAR2
890 -- Version : Current version 1.0
891 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
892 -- and basic operation, developer must manually add parameters and business logic as necessary.
893 --
894 -- History
895 --
896 -- NOTE
897 --
898 -- End of Comments
899 -- ==============================================================================
900
901 PROCEDURE Delete_Pg_Enrl_Requests(
902 p_api_version_number IN NUMBER,
903 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
904 p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
905 p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
906 x_return_status OUT NOCOPY VARCHAR2,
907 x_msg_count OUT NOCOPY NUMBER,
908 x_msg_data OUT NOCOPY VARCHAR2,
909 p_enrl_request_id IN NUMBER,
910 p_object_version_number IN NUMBER
911 )
912
913 IS
914 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Pg_Enrl_Requests';
915 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
916 l_object_version_number NUMBER;
917
918 BEGIN
919 -- Standard Start of API savepoint
920 SAVEPOINT delete_pg_enrl_requests_pvt;
921
922 -- Standard call to check for call compatibility.
923 IF NOT Fnd_Api.Compatible_API_Call ( l_api_version_number,
924 p_api_version_number,
925 l_api_name,
926 G_PKG_NAME)
927 THEN
928 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
929 END IF;
930
931
932 -- Initialize message list if p_init_msg_list is set to TRUE.
933 IF Fnd_Api.to_Boolean( p_init_msg_list )
934 THEN
935 Fnd_Msg_Pub.initialize;
936 END IF;
937
938
939
940 -- Debug Message
941 IF (PV_DEBUG_HIGH_ON) THEN
942
943 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
944 END IF;
945
946
947
948 -- Initialize API return status to SUCCESS
949 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
950
951 --
952 -- Api body
953 --
954 -- Debug Message
955 IF (PV_DEBUG_HIGH_ON) THEN
956
957 Pvx_Utility_Pvt.debug_message( 'PRIVATE API: Calling DELETE TABLE handler');
958 END IF;
959
960 -- Invoke table handler(Pv_Pg_Enrl_Requests_Pkg.Delete_Row)
961 Pv_Pg_Enrl_Requests_Pkg.Delete_Row(
962 p_enrl_request_id => p_enrl_request_id,
963 p_object_version_number => p_object_version_number );
964 --
965 -- End of API body
966 --
967
968 -- Standard check for p_commit
969 IF Fnd_Api.to_Boolean( p_commit )
970 THEN
971 COMMIT WORK;
972 END IF;
973
974
975 -- Debug Message
976 IF (PV_DEBUG_HIGH_ON) THEN
977
978 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'END');
979 END IF;
980
981
982 -- Standard call to get message count and if count is 1, get message info.
983 Fnd_Msg_Pub.Count_And_Get
984 (p_count => x_msg_count,
985 p_data => x_msg_data
986 );
987 EXCEPTION
988
989 WHEN Pvx_Utility_Pvt.resource_locked THEN
990 x_return_status := Fnd_Api.g_ret_sts_error;
991 FND_MESSAGE.Set_Name ('PV', 'PV_API_RESOURCE_LOCKED');
992 FND_MSG_PUB.Add;
993
994 WHEN Fnd_Api.G_EXC_ERROR THEN
995 ROLLBACK TO DELETE_Pg_Enrl_Requests_PVT;
996 x_return_status := Fnd_Api.G_RET_STS_ERROR;
997 -- Standard call to get message count and if count=1, get the message
998 Fnd_Msg_Pub.Count_And_Get (
999 p_encoded => Fnd_Api.G_FALSE,
1000 p_count => x_msg_count,
1001 p_data => x_msg_data
1002 );
1003
1004 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1005 ROLLBACK TO DELETE_Pg_Enrl_Requests_PVT;
1006 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1007 -- Standard call to get message count and if count=1, get the message
1008 Fnd_Msg_Pub.Count_And_Get (
1009 p_encoded => Fnd_Api.G_FALSE,
1010 p_count => x_msg_count,
1011 p_data => x_msg_data
1012 );
1013
1014 WHEN OTHERS THEN
1015 ROLLBACK TO DELETE_Pg_Enrl_Requests_PVT;
1016 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1017 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
1018 THEN
1019 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1020 END IF;
1021 -- Standard call to get message count and if count=1, get the message
1022 Fnd_Msg_Pub.Count_And_Get (
1023 p_encoded => Fnd_Api.G_FALSE,
1024 p_count => x_msg_count,
1025 p_data => x_msg_data
1026 );
1027 END Delete_Pg_Enrl_Requests;
1028
1029
1030
1031 -- Hint: Primary key needs to be returned.
1032 -- ==============================================================================
1033 -- Start of Comments
1034 -- ==============================================================================
1035 -- API Name
1036 -- Lock_Pg_Enrl_Requests
1037 -- Type
1038 -- Private
1039 -- Pre-Req
1040 --
1041 -- Parameters
1042 --
1043 -- IN
1044 -- p_api_version_number IN NUMBER Required
1045 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
1046 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
1047 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
1048 -- p_enrl_request_rec IN enrl_request_rec_type Required
1049 --
1050 -- OUT
1051 -- x_return_status OUT VARCHAR2
1052 -- x_msg_count OUT NUMBER
1053 -- x_msg_data OUT VARCHAR2
1054 -- Version : Current version 1.0
1055 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1056 -- and basic operation, developer must manually add parameters and business logic as necessary.
1057 --
1058 -- History
1059 --
1060 -- NOTE
1061 --
1062 -- End of Comments
1063 -- ==============================================================================
1064
1065 PROCEDURE Lock_Pg_Enrl_Requests(
1066 p_api_version_number IN NUMBER,
1067 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1068
1069 x_return_status OUT NOCOPY VARCHAR2,
1070 x_msg_count OUT NOCOPY NUMBER,
1071 x_msg_data OUT NOCOPY VARCHAR2,
1072
1073 p_enrl_request_id IN NUMBER,
1074 p_object_version IN NUMBER
1075 )
1076
1077 IS
1078 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Pg_Enrl_Requests';
1079 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1080 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1081 l_enrl_request_id NUMBER;
1082
1083 BEGIN
1084
1085 -- Debug Message
1086 IF (PV_DEBUG_HIGH_ON) THEN
1087
1088 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
1089 END IF;
1090
1091
1092 -- Initialize message list if p_init_msg_list is set to TRUE.
1093 IF Fnd_Api.to_Boolean( p_init_msg_list )
1094 THEN
1095 Fnd_Msg_Pub.initialize;
1096 END IF;
1097
1098
1099
1100 -- Standard call to check for call compatibility.
1101 IF NOT Fnd_Api.Compatible_API_Call ( l_api_version_number,
1102 p_api_version_number,
1103 l_api_name,
1104 G_PKG_NAME)
1105 THEN
1106 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1107 END IF;
1108
1109
1110
1111 -- Initialize API return status to SUCCESS
1112 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1113
1114
1115 ------------------------ lock -------------------------
1116 Pv_Pg_Enrl_Requests_Pkg.Lock_Row(l_enrl_request_id,p_object_version);
1117
1118
1119 -------------------- finish --------------------------
1120 Fnd_Msg_Pub.count_and_get(
1121 p_encoded => Fnd_Api.g_false,
1122 p_count => x_msg_count,
1123 p_data => x_msg_data);
1124 IF (PV_DEBUG_HIGH_ON) THEN
1125
1126 Pvx_Utility_Pvt.debug_message(l_full_name ||': END');
1127 END IF;
1128 EXCEPTION
1129
1130 WHEN Pvx_Utility_Pvt.resource_locked THEN
1131 x_return_status := Fnd_Api.g_ret_sts_error;
1132 FND_MESSAGE.Set_Name ('PV', 'PV_API_RESOURCE_LOCKED');
1133 FND_MSG_PUB.Add;
1134
1135 WHEN Fnd_Api.G_EXC_ERROR THEN
1136 ROLLBACK TO LOCK_Pg_Enrl_Requests_PVT;
1137 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1138 -- Standard call to get message count and if count=1, get the message
1139 Fnd_Msg_Pub.Count_And_Get (
1140 p_encoded => Fnd_Api.G_FALSE,
1141 p_count => x_msg_count,
1142 p_data => x_msg_data
1143 );
1144
1145 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1146 ROLLBACK TO LOCK_Pg_Enrl_Requests_PVT;
1147 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1148 -- Standard call to get message count and if count=1, get the message
1149 Fnd_Msg_Pub.Count_And_Get (
1150 p_encoded => Fnd_Api.G_FALSE,
1151 p_count => x_msg_count,
1152 p_data => x_msg_data
1153 );
1154
1155 WHEN OTHERS THEN
1156 ROLLBACK TO LOCK_Pg_Enrl_Requests_PVT;
1157 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1158 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
1159 THEN
1160 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1161 END IF;
1162 -- Standard call to get message count and if count=1, get the message
1163 Fnd_Msg_Pub.Count_And_Get (
1164 p_encoded => Fnd_Api.G_FALSE,
1165 p_count => x_msg_count,
1166 p_data => x_msg_data
1167 );
1168 END Lock_Pg_Enrl_Requests;
1169
1170
1171
1172
1173 PROCEDURE check_Enrl_Request_Uk_Items(
1174 p_enrl_request_rec IN enrl_request_rec_type,
1175 p_validation_mode IN VARCHAR2 := Jtf_Plsql_Api.g_create,
1176 x_return_status OUT NOCOPY VARCHAR2)
1177 IS
1178 l_valid_flag VARCHAR2(1);
1179
1180 BEGIN
1181 x_return_status := Fnd_Api.g_ret_sts_success;
1182 IF p_validation_mode = Jtf_Plsql_Api.g_create
1183 AND p_enrl_request_rec.enrl_request_id IS NOT NULL
1184 THEN
1185 l_valid_flag := Pvx_Utility_Pvt.check_uniqueness(
1186 'pv_pg_enrl_requests',
1187 'enrl_request_id = ''' || p_enrl_request_rec.enrl_request_id ||''''
1188 );
1189 END IF;
1190
1191 IF l_valid_flag = Fnd_Api.g_false THEN
1192 FND_MESSAGE.Set_Name ('PV', 'PV_enrl_request_id_DUPLICATE');
1193 FND_MSG_PUB.Add;
1194 END IF;
1195
1196 END check_Enrl_Request_Uk_Items;
1197
1198
1199
1200 PROCEDURE check_Enrl_Request_Req_Items(
1201 p_enrl_request_rec IN enrl_request_rec_type,
1202 p_validation_mode IN VARCHAR2 := Jtf_Plsql_Api.g_create,
1203 x_return_status OUT NOCOPY VARCHAR2
1204 )
1205 IS
1206 BEGIN
1207 x_return_status := Fnd_Api.g_ret_sts_success;
1208
1209 IF p_validation_mode = Jtf_Plsql_Api.g_create THEN
1210
1211 IF p_enrl_request_rec.program_id = Fnd_Api.G_MISS_NUM OR p_enrl_request_rec.program_id IS NULL THEN
1212 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1213 FND_MESSAGE.Set_Token('MISS_FIELD', 'PROGRAM_ID');
1214 FND_MSG_PUB.Add;
1215
1216 x_return_status := Fnd_Api.g_ret_sts_error;
1217 END IF;
1218
1219
1220 IF p_enrl_request_rec.partner_id = Fnd_Api.G_MISS_NUM OR p_enrl_request_rec.partner_id IS NULL THEN
1221 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1222 FND_MESSAGE.Set_Token('MISS_FIELD', 'PARTNER_ID');
1223 FND_MSG_PUB.Add;
1224 x_return_status := Fnd_Api.g_ret_sts_error;
1225 END IF;
1226
1227 IF p_enrl_request_rec.requestor_resource_id = Fnd_Api.G_MISS_NUM OR p_enrl_request_rec.requestor_resource_id IS NULL THEN
1228 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1229 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUESTOR_RESOURCE_ID');
1230 FND_MSG_PUB.Add;
1231 x_return_status := Fnd_Api.g_ret_sts_error;
1232 END IF;
1233
1234
1235 IF p_enrl_request_rec.request_status_code = Fnd_Api.g_miss_char OR p_enrl_request_rec.request_status_code IS NULL THEN
1236 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1237 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUEST_STATUS_CODE');
1238 FND_MSG_PUB.Add;
1239 x_return_status := Fnd_Api.g_ret_sts_error;
1240 END IF;
1241
1242
1243 IF p_enrl_request_rec.enrollment_type_code = Fnd_Api.g_miss_char OR p_enrl_request_rec.enrollment_type_code IS NULL THEN
1244 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1245 FND_MESSAGE.Set_Token('MISS_FIELD', 'ENROLLMENT_TYPE_CODE');
1246 FND_MSG_PUB.Add;
1247 x_return_status := Fnd_Api.g_ret_sts_error;
1248 END IF;
1249
1250
1251 IF p_enrl_request_rec.request_initiated_by_code = Fnd_Api.g_miss_char OR p_enrl_request_rec.request_initiated_by_code IS NULL THEN
1252 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1253 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUEST_INITIATED_BY_CODE');
1254 FND_MSG_PUB.Add;
1255 x_return_status := Fnd_Api.g_ret_sts_error;
1256 END IF;
1257
1258
1259 ELSE
1260
1261
1262 IF p_enrl_request_rec.enrl_request_id = Fnd_Api.G_MISS_NUM THEN
1263 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1264 FND_MESSAGE.Set_Token('MISS_FIELD', 'ENRL_REQUEST_ID');
1265 FND_MSG_PUB.Add;
1266 x_return_status := Fnd_Api.g_ret_sts_error;
1267 END IF;
1268
1269
1270 IF p_enrl_request_rec.object_version_number = Fnd_Api.G_MISS_NUM THEN
1271 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1272 FND_MESSAGE.Set_Token('MISS_FIELD', 'OBJECT_VERSION_NUMBER');
1273 FND_MSG_PUB.Add;
1274 x_return_status := Fnd_Api.g_ret_sts_error;
1275 END IF;
1276
1277
1278 IF p_enrl_request_rec.program_id = Fnd_Api.G_MISS_NUM THEN
1279 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1280 FND_MESSAGE.Set_Token('MISS_FIELD', 'PROGRAM_ID');
1281 FND_MSG_PUB.Add;
1282 x_return_status := Fnd_Api.g_ret_sts_error;
1283 END IF;
1284
1285
1286 IF p_enrl_request_rec.partner_id = Fnd_Api.G_MISS_NUM THEN
1287 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1288 FND_MESSAGE.Set_Token('MISS_FIELD', 'PARTNER_ID');
1289 FND_MSG_PUB.Add;
1290 x_return_status := Fnd_Api.g_ret_sts_error;
1291 END IF;
1292
1293
1294 IF p_enrl_request_rec.custom_setup_id = Fnd_Api.G_MISS_NUM THEN
1295 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1296 FND_MESSAGE.Set_Token('MISS_FIELD', 'CUSTOM_SETUP_ID');
1297 FND_MSG_PUB.Add;
1298 x_return_status := Fnd_Api.g_ret_sts_error;
1299 END IF;
1300
1301
1302 IF p_enrl_request_rec.requestor_resource_id = Fnd_Api.G_MISS_NUM THEN
1303 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1304 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUESTOR_RESOURCE_ID');
1305 FND_MSG_PUB.Add;
1306 x_return_status := Fnd_Api.g_ret_sts_error;
1307 END IF;
1308
1309
1310 IF p_enrl_request_rec.request_status_code = Fnd_Api.g_miss_char THEN
1311 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1312 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUEST_STATUS_CODE');
1313 FND_MSG_PUB.Add;
1314 x_return_status := Fnd_Api.g_ret_sts_error;
1315 END IF;
1316
1317
1318 IF p_enrl_request_rec.enrollment_type_code = Fnd_Api.g_miss_char THEN
1319 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1320 FND_MESSAGE.Set_Token('MISS_FIELD', 'ENROLLMENT_TYPE_CODE');
1321 FND_MSG_PUB.Add;
1322 x_return_status := Fnd_Api.g_ret_sts_error;
1323 END IF;
1324
1325
1326 IF p_enrl_request_rec.request_initiated_by_code = Fnd_Api.g_miss_char THEN
1327 FND_MESSAGE.Set_Name ('PV', 'AMS_API_MISSING_FIELD');
1328 FND_MESSAGE.Set_Token('MISS_FIELD', 'REQUEST_INITIATED_BY_CODE');
1329 FND_MSG_PUB.Add;
1330 x_return_status := Fnd_Api.g_ret_sts_error;
1331 END IF;
1332 END IF;
1333
1334 END check_Enrl_Request_Req_Items;
1335
1336
1337
1338 PROCEDURE check_Enrl_Request_Fk_Items(
1339 p_enrl_request_rec IN enrl_request_rec_type,
1340 x_return_status OUT NOCOPY VARCHAR2
1341 )
1342 IS
1343 BEGIN
1344 x_return_status := Fnd_Api.g_ret_sts_success;
1345
1346 -- Enter custom code here
1347
1348 END check_Enrl_Request_Fk_Items;
1349
1350
1351
1352 PROCEDURE CHECK_ENRL_REQ_LOOKUP_ITEMS(
1353 p_enrl_request_rec IN enrl_request_rec_type,
1354 x_return_status OUT NOCOPY VARCHAR2
1355 )
1356 IS
1357 BEGIN
1358 x_return_status := Fnd_Api.g_ret_sts_success;
1359
1360 -- Enter custom code here
1361
1362 END CHECK_ENRL_REQ_LOOKUP_ITEMS;
1363
1364
1365
1366 PROCEDURE Check_Enrl_Request_Items (
1367 P_enrl_request_rec IN enrl_request_rec_type,
1368 p_validation_mode IN VARCHAR2,
1369 x_return_status OUT NOCOPY VARCHAR2
1370 )
1371 IS
1372 l_return_status VARCHAR2(1);
1373 BEGIN
1374
1375 l_return_status := Fnd_Api.g_ret_sts_success;
1376 -- Check Items Uniqueness API calls
1377
1378 check_Enrl_request_Uk_Items(
1379 p_enrl_request_rec => p_enrl_request_rec,
1380 p_validation_mode => p_validation_mode,
1381 x_return_status => x_return_status);
1382 IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1383 l_return_status := Fnd_Api.g_ret_sts_error;
1384 END IF;
1385
1386 -- Check Items Required/NOT NULL API calls
1387
1388 check_enrl_request_req_items(
1389 p_enrl_request_rec => p_enrl_request_rec,
1390 p_validation_mode => p_validation_mode,
1391 x_return_status => x_return_status);
1392 IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1393 l_return_status := Fnd_Api.g_ret_sts_error;
1394 END IF;
1395 -- Check Items Foreign Keys API calls
1396
1397 check_enrl_request_FK_items(
1398 p_enrl_request_rec => p_enrl_request_rec,
1399 x_return_status => x_return_status);
1400 IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1401 l_return_status := Fnd_Api.g_ret_sts_error;
1402 END IF;
1403 -- Check Items Lookups
1404
1405 CHECK_ENRL_REQ_LOOKUP_ITEMS(
1406 p_enrl_request_rec => p_enrl_request_rec,
1407 x_return_status => x_return_status);
1408 IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
1409 l_return_status := Fnd_Api.g_ret_sts_error;
1410 END IF;
1411
1412 x_return_status := l_return_status;
1413
1414 END Check_enrl_request_Items;
1415
1416
1417
1418
1419
1420 PROCEDURE Complete_Enrl_Request_Rec (
1421 p_enrl_request_rec IN enrl_request_rec_type,
1422 x_complete_rec OUT NOCOPY enrl_request_rec_type)
1423 IS
1424 l_return_status VARCHAR2(1);
1425
1426 CURSOR c_complete IS
1427 SELECT *
1428 FROM pv_pg_enrl_requests
1429 WHERE enrl_request_id = p_enrl_request_rec.enrl_request_id;
1430 l_enrl_request_rec c_complete%ROWTYPE;
1431 BEGIN
1432 x_complete_rec := p_enrl_request_rec;
1433
1434
1435 OPEN c_complete;
1436 FETCH c_complete INTO l_enrl_request_rec;
1437 CLOSE c_complete;
1438
1439 -- enrl_request_id
1440 IF p_enrl_request_rec.enrl_request_id IS NULL THEN
1441 x_complete_rec.enrl_request_id := l_enrl_request_rec.enrl_request_id;
1442 END IF;
1443
1444 -- object_version_number
1445 IF p_enrl_request_rec.object_version_number IS NULL THEN
1446 x_complete_rec.object_version_number := l_enrl_request_rec.object_version_number;
1447 END IF;
1448
1449 -- program_id
1450 IF p_enrl_request_rec.program_id IS NULL THEN
1451 x_complete_rec.program_id := l_enrl_request_rec.program_id;
1452 END IF;
1453
1454 -- partner_id
1455 IF p_enrl_request_rec.partner_id IS NULL THEN
1456 x_complete_rec.partner_id := l_enrl_request_rec.partner_id;
1457 END IF;
1458
1459 -- custom_setup_id
1460 IF p_enrl_request_rec.custom_setup_id IS NULL THEN
1461 x_complete_rec.custom_setup_id := l_enrl_request_rec.custom_setup_id;
1462 END IF;
1463
1464 -- requestor_resource_id
1465 IF p_enrl_request_rec.requestor_resource_id IS NULL THEN
1466 x_complete_rec.requestor_resource_id := l_enrl_request_rec.requestor_resource_id;
1467 END IF;
1468
1469 -- request_status_code
1470 IF p_enrl_request_rec.request_status_code IS NULL THEN
1471 x_complete_rec.request_status_code := l_enrl_request_rec.request_status_code;
1472 END IF;
1473
1474 -- enrollment_type_code
1475 IF p_enrl_request_rec.enrollment_type_code IS NULL THEN
1476 x_complete_rec.enrollment_type_code := l_enrl_request_rec.enrollment_type_code;
1477 END IF;
1478
1479 -- request_submission_date
1480 IF p_enrl_request_rec.request_submission_date IS NULL THEN
1481 x_complete_rec.request_submission_date := l_enrl_request_rec.request_submission_date;
1482 END IF;
1483
1484 -- contract_id
1485 IF p_enrl_request_rec.contract_id IS NULL THEN
1486 x_complete_rec.contract_id := l_enrl_request_rec.contract_id;
1487 END IF;
1488
1489 -- request_initiated_by_code
1490 IF p_enrl_request_rec.request_initiated_by_code IS NULL THEN
1491 x_complete_rec.request_initiated_by_code := l_enrl_request_rec.request_initiated_by_code;
1492 END IF;
1493
1494 -- invite_header_id
1495 IF p_enrl_request_rec.invite_header_id IS NULL THEN
1496 x_complete_rec.invite_header_id := l_enrl_request_rec.invite_header_id;
1497 END IF;
1498
1499 -- tentative_start_date
1500 IF p_enrl_request_rec.tentative_start_date IS NULL THEN
1501 x_complete_rec.tentative_start_date := l_enrl_request_rec.tentative_start_date;
1502 END IF;
1503
1504 -- tentative_end_date
1505 IF p_enrl_request_rec.tentative_end_date IS NULL THEN
1506 x_complete_rec.tentative_end_date := l_enrl_request_rec.tentative_end_date;
1507 END IF;
1508
1509 -- contract_status_code
1510 IF p_enrl_request_rec.contract_status_code IS NULL THEN
1511 x_complete_rec.contract_status_code := l_enrl_request_rec.contract_status_code;
1512 END IF;
1513
1514 -- payment_status_code
1515 IF p_enrl_request_rec.payment_status_code IS NULL THEN
1516 x_complete_rec.payment_status_code := l_enrl_request_rec.payment_status_code;
1517 END IF;
1518
1519 -- score_result_code
1520 IF p_enrl_request_rec.score_result_code IS NULL THEN
1521 x_complete_rec.score_result_code := l_enrl_request_rec.score_result_code;
1522 END IF;
1523
1524 -- created_by
1525 IF p_enrl_request_rec.created_by IS NULL THEN
1526 x_complete_rec.created_by := l_enrl_request_rec.created_by;
1527 END IF;
1528
1529 -- creation_date
1530 IF p_enrl_request_rec.creation_date IS NULL THEN
1531 x_complete_rec.creation_date := l_enrl_request_rec.creation_date;
1532 END IF;
1533
1534 -- last_updated_by
1535 IF p_enrl_request_rec.last_updated_by IS NULL THEN
1536 x_complete_rec.last_updated_by := l_enrl_request_rec.last_updated_by;
1537 END IF;
1538
1539 -- last_update_date
1540 IF p_enrl_request_rec.last_update_date IS NULL THEN
1541 x_complete_rec.last_update_date := l_enrl_request_rec.last_update_date;
1542 END IF;
1543
1544 -- last_update_login
1545 IF p_enrl_request_rec.last_update_login IS NULL THEN
1546 x_complete_rec.last_update_login := l_enrl_request_rec.last_update_login;
1547 END IF;
1548
1549 -- order_header_id
1550 IF p_enrl_request_rec.order_header_id IS NULL THEN
1551 x_complete_rec.order_header_id := l_enrl_request_rec.order_header_id;
1552 END IF;
1553
1554 -- membership_fee
1555 IF p_enrl_request_rec.membership_fee IS NULL THEN
1556 x_complete_rec.membership_fee := l_enrl_request_rec.membership_fee;
1557 END IF;
1558
1559
1560 -- dependent_program_id
1561 IF p_enrl_request_rec.dependent_program_id IS NULL THEN
1562 x_complete_rec.dependent_program_id := l_enrl_request_rec.dependent_program_id;
1563 END IF;
1564
1565
1566 -- trans_curr_code
1567 IF p_enrl_request_rec.trans_curr_code IS NULL THEN
1568 x_complete_rec.trans_curr_code := l_enrl_request_rec.trans_curr_code;
1569 END IF;
1570
1571 -- contract_binding_contact_id
1572 IF p_enrl_request_rec.contract_binding_contact_id IS NULL THEN
1573 x_complete_rec.contract_binding_contact_id := l_enrl_request_rec.contract_binding_contact_id;
1574 END IF;
1575
1576 -- contract_signed_date
1577 IF p_enrl_request_rec.contract_signed_date IS NULL THEN
1578 x_complete_rec.contract_signed_date := l_enrl_request_rec.contract_signed_date;
1579 END IF;
1580
1581 -- trxn_extension_id
1582 IF p_enrl_request_rec.trxn_extension_id IS NULL THEN
1583 x_complete_rec.trxn_extension_id := l_enrl_request_rec.trxn_extension_id;
1584 END IF;
1585
1586
1587 -- Note: Developers need to modify the procedure
1588 -- to handle any business specific requirements.
1589 END Complete_Enrl_Request_Rec;
1590
1591
1592
1593
1594 PROCEDURE Default_Enrl_Request_Items ( p_enrl_request_rec IN enrl_request_rec_type ,
1595 x_enrl_request_rec OUT NOCOPY enrl_request_rec_type )
1596 IS
1597 l_enrl_request_rec enrl_request_rec_type := p_enrl_request_rec;
1598 BEGIN
1599 -- Developers should put their code to default the record type
1600 -- e.g. IF p_campaign_rec.status_code IS NULL
1601 -- OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1602 -- l_campaign_rec.status_code := 'NEW' ;
1603 -- END IF ;
1604 --
1605 NULL ;
1606 END;
1607
1608
1609
1610
1611 PROCEDURE Validate_Pg_Enrl_Requests(
1612 p_api_version_number IN NUMBER,
1613 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1614 p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1615 p_enrl_request_rec IN enrl_request_rec_type,
1616 p_validation_mode IN VARCHAR2,
1617 x_return_status OUT NOCOPY VARCHAR2,
1618 x_msg_count OUT NOCOPY NUMBER,
1619 x_msg_data OUT NOCOPY VARCHAR2
1620 )
1621 IS
1622 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Pg_Enrl_Requests';
1623 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1624 l_object_version_number NUMBER;
1625 l_enrl_request_rec enrl_request_rec_type;
1626 l_enrl_request_rec_out enrl_request_rec_type;
1627
1628 BEGIN
1629 -- Standard Start of API savepoint
1630 SAVEPOINT validate_pg_enrl_requests_;
1631
1632 -- Standard call to check for call compatibility.
1633 IF NOT Fnd_Api.Compatible_API_Call ( l_api_version_number,
1634 p_api_version_number,
1635 l_api_name,
1636 G_PKG_NAME)
1637 THEN
1638 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1639 END IF;
1640
1641
1642 -- Initialize message list if p_init_msg_list is set to TRUE.
1643 IF Fnd_Api.to_Boolean( p_init_msg_list )
1644 THEN
1645 Fnd_Msg_Pub.initialize;
1646 END IF;
1647
1648
1649 IF p_validation_level >= Jtf_Plsql_Api.g_valid_level_item THEN
1650 Check_enrl_request_Items(
1651 p_enrl_request_rec => p_enrl_request_rec,
1652 p_validation_mode => p_validation_mode,
1653 x_return_status => x_return_status
1654 );
1655
1656 IF x_return_status = Fnd_Api.G_RET_STS_ERROR THEN
1657 RAISE Fnd_Api.G_EXC_ERROR;
1658 ELSIF x_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR THEN
1659 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1660 END IF;
1661 END IF;
1662
1663 IF p_validation_mode = Jtf_Plsql_Api.g_create THEN
1664 Default_Enrl_Request_Items (p_enrl_request_rec => p_enrl_request_rec ,
1665 x_enrl_request_rec => l_enrl_request_rec) ;
1666 END IF ;
1667
1668
1669 Complete_enrl_request_Rec(
1670 p_enrl_request_rec => l_enrl_request_rec,
1671 x_complete_rec => l_enrl_request_rec_out
1672 );
1673
1674 l_enrl_request_rec := l_enrl_request_rec_out;
1675
1676 IF p_validation_level >= Jtf_Plsql_Api.g_valid_level_item THEN
1677 Validate_enrl_request_Rec(
1678 p_api_version_number => 1.0,
1679 p_init_msg_list => Fnd_Api.G_FALSE,
1680 x_return_status => x_return_status,
1681 x_msg_count => x_msg_count,
1682 x_msg_data => x_msg_data,
1683 p_enrl_request_rec => l_enrl_request_rec);
1684
1685 IF x_return_status = Fnd_Api.G_RET_STS_ERROR THEN
1686 RAISE Fnd_Api.G_EXC_ERROR;
1687 ELSIF x_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR THEN
1688 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1689 END IF;
1690 END IF;
1691
1692
1693 -- Debug Message
1694 IF (PV_DEBUG_HIGH_ON) THEN
1695
1696 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
1697 END IF;
1698
1699
1700
1701 -- Initialize API return status to SUCCESS
1702 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1703
1704
1705 -- Debug Message
1706 IF (PV_DEBUG_HIGH_ON) THEN
1707
1708 Pvx_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'END');
1709 END IF;
1710
1711
1712 -- Standard call to get message count and if count is 1, get message info.
1713 Fnd_Msg_Pub.Count_And_Get
1714 (p_count => x_msg_count,
1715 p_data => x_msg_data
1716 );
1717 EXCEPTION
1718
1719 WHEN Pvx_Utility_Pvt.resource_locked THEN
1720 x_return_status := Fnd_Api.g_ret_sts_error;
1721 FND_MESSAGE.Set_Name ('PV', 'PV_API_RESOURCE_LOCKED');
1722 FND_MSG_PUB.Add;
1723
1724 WHEN Fnd_Api.G_EXC_ERROR THEN
1725 ROLLBACK TO VALIDATE_Pg_Enrl_Requests_;
1726 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1727 -- Standard call to get message count and if count=1, get the message
1728 Fnd_Msg_Pub.Count_And_Get (
1729 p_encoded => Fnd_Api.G_FALSE,
1730 p_count => x_msg_count,
1731 p_data => x_msg_data
1732 );
1733
1734 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1735 ROLLBACK TO VALIDATE_Pg_Enrl_Requests_;
1736 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1737 -- Standard call to get message count and if count=1, get the message
1738 Fnd_Msg_Pub.Count_And_Get (
1739 p_encoded => Fnd_Api.G_FALSE,
1740 p_count => x_msg_count,
1741 p_data => x_msg_data
1742 );
1743
1744 WHEN OTHERS THEN
1745 ROLLBACK TO VALIDATE_Pg_Enrl_Requests_;
1746 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1747 IF Fnd_Msg_Pub.Check_Msg_Level ( Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
1748 THEN
1749 Fnd_Msg_Pub.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1750 END IF;
1751 -- Standard call to get message count and if count=1, get the message
1752 Fnd_Msg_Pub.Count_And_Get (
1753 p_encoded => Fnd_Api.G_FALSE,
1754 p_count => x_msg_count,
1755 p_data => x_msg_data
1756 );
1757 END Validate_Pg_Enrl_Requests;
1758
1759
1760 PROCEDURE Validate_Enrl_Request_Rec (
1761 p_api_version_number IN NUMBER,
1762 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1763 x_return_status OUT NOCOPY VARCHAR2,
1764 x_msg_count OUT NOCOPY NUMBER,
1765 x_msg_data OUT NOCOPY VARCHAR2,
1766 p_enrl_request_rec IN enrl_request_rec_type
1767 )
1768 IS
1769 BEGIN
1770 -- Initialize message list if p_init_msg_list is set to TRUE.
1771 IF Fnd_Api.to_Boolean( p_init_msg_list )
1772 THEN
1773 Fnd_Msg_Pub.initialize;
1774 END IF;
1775
1776
1777
1778 -- Initialize API return status to SUCCESS
1779 x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1780
1781 -- Hint: Validate data
1782 -- If data not valid
1783 -- THEN
1784 -- x_return_status := FND_API.G_RET_STS_ERROR;
1785
1786 -- Debug Message
1787 IF (PV_DEBUG_HIGH_ON) THEN
1788
1789 Pvx_Utility_Pvt.debug_message('PRIVATE API: Validate_dm_model_rec');
1790 END IF;
1791 -- Standard call to get message count and if count is 1, get message info.
1792 Fnd_Msg_Pub.Count_And_Get
1793 (p_count => x_msg_count,
1794 p_data => x_msg_data
1795 );
1796 END Validate_enrl_request_Rec;
1797
1798 END Pv_Pg_Enrl_Requests_Pvt;