DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_EVTREGS_PUB

Source


1 PACKAGE BODY AMS_EvtRegs_PUB as
2 /*$Header: amspregb.pls 115.19 2003/01/28 00:45:57 dbiswas ship $*/
3 -- Start of Comments
4 -- Package name     : AMS_EvtRegs_PUB
5 -- Purpose          :
6 -- History          :
7 --    12-MAR-2002    dcastlem    Added support for general Public API
8 --                               (AMS_Registrants_PUB)
9 --    22-Dec-2002    ptendulk    Modified for Debug Messages
10 --    27-Jan-2003    dbiswas     Modified p_block_fulfillment = 'F' bug 2769257
11 -- NOTE             :
12 -- End of Comments
13 
14 g_pkg_name  CONSTANT VARCHAR2(30):='AMS_EvtRegs_PUB';
15 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
16 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
17 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
18 
19 PROCEDURE Register(
20     P_Api_Version_Number         IN   NUMBER,
21     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
22     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
23     P_evt_regs_Rec				 IN   AMS_EvtRegs_PVT.evt_regs_Rec_Type,
24     p_block_fulfillment          IN   VARCHAR2     := 'F',
25     x_event_registration_id      OUT NOCOPY  NUMBER,
26     x_confirmation_code			 OUT NOCOPY  VARCHAR2,
27     x_system_status_code         OUT NOCOPY  VARCHAR2,
28     X_Return_Status              OUT NOCOPY  VARCHAR2,
29     X_Msg_Count                  OUT NOCOPY  NUMBER,
30     X_Msg_Data                   OUT NOCOPY  VARCHAR2
31     )
32 
33  IS
34 l_api_name                CONSTANT VARCHAR2(30) := 'Register';
35 l_api_version_number      CONSTANT NUMBER   := 1.0;
36 l_evt_regs_Rec		AMS_EvtRegs_PVT.evt_regs_Rec_Type := P_evt_regs_Rec;
37 l_return_status                VARCHAR2(1); -- Return value from procedures.
38 l_cancellation_code  VARCHAR2(30);
39 
40  BEGIN
41       -- Standard Start of API savepoint
42       SAVEPOINT Register_pub;
43 
44       -- Standard call to check for call compatibility.
45       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
46                          	             p_api_version_number,
47                                            l_api_name,
48                                            G_PKG_NAME)
49       THEN
50           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
51       END IF;
52 
53 
54       -- Initialize message list if p_init_msg_list is set to TRUE.
55       IF FND_API.to_Boolean( p_init_msg_list )
56       THEN
57           FND_MSG_PUB.initialize;
58       END IF;
59 
60    -- customer pre-processing
61    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
62    THEN
63       AMS_EvtRegs_CUHK.register_pre(  x_evt_regs_Rec => l_evt_regs_Rec
64                                     , x_return_status => l_return_status
65                                    );
66 
67       IF l_return_status = FND_API.g_ret_sts_error
68       THEN
69          RAISE FND_API.g_exc_error;
70       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
71       THEN
72          RAISE FND_API.g_exc_unexpected_error;
73       END IF;
74    END IF;
75 
76    -- vertical industry pre-processing
77    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
78    THEN
79       AMS_EvtRegs_VUHK.register_pre(  x_evt_regs_Rec => l_evt_regs_Rec
80                                     , x_return_status => l_return_status
81                                    );
82 
83       IF l_return_status = FND_API.g_ret_sts_error
84       THEN
85          RAISE FND_API.g_exc_error;
86       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
87       THEN
88          RAISE FND_API.g_exc_unexpected_error;
89       END IF;
90    END IF;
91 
92    -- Initialize API return status to SUCCESS
93    x_return_status := FND_API.G_RET_STS_SUCCESS;
94 
95    -- API body
96    -- Calling Private package: Create_EvtRegs
97 
98    IF (AMS_DEBUG_HIGH_ON) THEN
99       AMS_Utility_PVT.debug_message('Calling create registration');
100    END IF ;
101    AMS_evtregs_PVT.Create_evtregs(
102        P_Api_Version_Number         => 1.0,
103        P_Init_Msg_List              => FND_API.G_FALSE,
104        P_Commit                     => p_commit,
105        P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
106        P_evt_regs_Rec			   =>  l_evt_regs_Rec ,
107        p_block_fulfillment          => p_block_fulfillment,
108        x_event_registration_id      => x_event_registration_id,
109      x_confirmation_code		   => x_confirmation_code,
110      x_system_status_code		   => x_system_status_code,
111        x_return_status              => x_return_status,
112        x_msg_count                  => x_msg_count,
113        x_msg_data                   => x_msg_data);
114 
115    -- Check return status from the above procedure call
116        IF x_return_status = FND_API.G_RET_STS_ERROR then
117         raise FND_API.G_EXC_ERROR;
118        elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
119         raise FND_API.G_EXC_UNEXPECTED_ERROR;
120        END IF;
121 
122    -- vertical industry post-processing
123    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
124    THEN
125       AMS_EvtRegs_VUHK.register_post(  p_evt_regs_Rec => l_evt_regs_Rec
126                                      , x_return_status => l_return_status
127                                     );
128 
129       IF l_return_status = FND_API.g_ret_sts_error
130       THEN
131          RAISE FND_API.g_exc_error;
132       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
133       THEN
134          RAISE FND_API.g_exc_unexpected_error;
135       END IF;
136    END IF;
137 
138    -- customer post-processing
139    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
140    THEN
141       AMS_EvtRegs_CUHK.register_post(  p_evt_regs_Rec => l_evt_regs_Rec
142                                      , x_return_status => l_return_status
143                                     );
144 
145       IF l_return_status = FND_API.g_ret_sts_error
146       THEN
147          RAISE FND_API.g_exc_error;
148       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
149       THEN
150          RAISE FND_API.g_exc_unexpected_error;
151       END IF;
152    END IF;
153 
154       -- End of API body.
155 
156       -- Standard check for p_commit
157       IF FND_API.to_Boolean( p_commit )
158       THEN
159           COMMIT WORK;
160       END IF;
161 
162    x_return_status := FND_API.g_ret_sts_success;
163    FND_MSG_PUB.count_and_get(
164          p_encoded => FND_API.g_false,
165          p_count   => x_msg_count,
166          p_data    => x_msg_data
167    );
168 
169 EXCEPTION
170 
171    WHEN FND_API.g_exc_error THEN
172       ROLLBACK TO Register_pub;
173       x_return_status := FND_API.g_ret_sts_error;
174       FND_MSG_PUB.count_and_get(
175             p_encoded => FND_API.g_false,
176             p_count   => x_msg_count,
177             p_data    => x_msg_data
178       );
179 
180    WHEN FND_API.g_exc_unexpected_error THEN
181       ROLLBACK TO Register_pub;
182       x_return_status := FND_API.g_ret_sts_unexp_error ;
183       FND_MSG_PUB.count_and_get(
184             p_encoded => FND_API.g_false,
185             p_count   => x_msg_count,
186             p_data    => x_msg_data
187       );
188 
189 
190    WHEN OTHERS THEN
191       ROLLBACK TO Register_pub;
192       x_return_status := FND_API.g_ret_sts_unexp_error ;
193 
194       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
195           THEN
196          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
197       END IF;
198 
199       FND_MSG_PUB.count_and_get(
200             p_encoded => FND_API.g_false,
201             p_count   => x_msg_count,
202             p_data    => x_msg_data
203       );
204 
205 End Register;
206 
207 ---------------------------------------------------------------------
208 -- PROCEDURE
209 --    init_reg_rec
210 --
211 -- HISTORY
212 --    06/29/2000  sugupta  Create.
213 ---------------------------------------------------------------------
214 PROCEDURE init_reg_rec(
215    x_evt_regs_rec  OUT NOCOPY  AMS_EvtRegs_PVT.evt_regs_Rec_Type
216 )
217 IS
218 
219 BEGIN
220 	AMS_evtregs_PVT.init_evtregs_rec(x_evt_regs_rec);
221 END init_reg_rec;
222 
223 /* add procedure update_regisrration info...make a rec with
224 updated column values...and then call update_registration..
225 */
226 
227 PROCEDURE Update_registration(
228     P_Api_Version_Number         IN   NUMBER,
229     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
230     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
231     P_evt_regs_Rec               IN   AMS_EvtRegs_PVT.evt_regs_Rec_Type,
232     p_block_fulfillment          IN   VARCHAR2     := 'F',
233     X_Return_Status              OUT NOCOPY  VARCHAR2,
234     X_Msg_Count                  OUT NOCOPY  NUMBER,
235     X_Msg_Data                   OUT NOCOPY  VARCHAR2
236     )
237 
238  IS
239 l_api_name                CONSTANT VARCHAR2(30) := 'Update_registration';
240 l_api_version_number      CONSTANT NUMBER   := 1.0;
241 l_evt_regs_rec  AMS_EvtRegs_PVT.evt_regs_Rec_Type := P_evt_regs_Rec;
242 l_return_status                VARCHAR2(1); -- Return value from procedures.
243  BEGIN
244       -- Standard Start of API savepoint
245       SAVEPOINT UPDATE_Registration_PUB;
246 
247       -- Standard call to check for call compatibility.
248       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
249                          	             p_api_version_number,
250                                            l_api_name,
251                                            G_PKG_NAME)
252       THEN
253           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
254       END IF;
255 
256 
257       -- Initialize message list if p_init_msg_list is set to TRUE.
258       IF FND_API.to_Boolean( p_init_msg_list )
259       THEN
260           FND_MSG_PUB.initialize;
261       END IF;
262 
263 
264       -- Initialize API return status to SUCCESS
265       x_return_status := FND_API.G_RET_STS_SUCCESS;
266 
267    -- customer pre-processing
268    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
269    THEN
270       AMS_EvtRegs_CUHK.Update_registration_pre(  x_evt_regs_Rec => l_evt_regs_Rec
271                                                , x_return_status => l_return_status
272                                               );
273 
274       IF l_return_status = FND_API.g_ret_sts_error
275       THEN
276          RAISE FND_API.g_exc_error;
277       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
278       THEN
279          RAISE FND_API.g_exc_unexpected_error;
280       END IF;
281    END IF;
282 
283    -- vertical industry pre-processing
284    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
285    THEN
286       AMS_EvtRegs_VUHK.Update_registration_pre(  x_evt_regs_Rec => l_evt_regs_Rec
287                                                , x_return_status => l_return_status
288                                               );
289 
290       IF l_return_status = FND_API.g_ret_sts_error
291       THEN
292          RAISE FND_API.g_exc_error;
293       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
294       THEN
295          RAISE FND_API.g_exc_unexpected_error;
296       END IF;
297    END IF;
298 
299       --
300       -- API body
301       --
302 
303 
304     AMS_evtregs_PVT.Update_evtregs(
305     P_Api_Version_Number         => 1.0,
306     P_Init_Msg_List              => FND_API.G_FALSE,
307     P_Commit                     => p_commit,
308     P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
309     P_evt_regs_Rec               => l_evt_regs_Rec,
310     p_block_fulfillment          => p_block_fulfillment,
311     X_Return_Status              => x_return_status,
312     X_Msg_Count                  => x_msg_count,
313     X_Msg_Data                   => x_msg_data);
314 
315       -- Check return status from the above procedure call
316       IF x_return_status = FND_API.G_RET_STS_ERROR then
317           raise FND_API.G_EXC_ERROR;
318       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
319           raise FND_API.G_EXC_UNEXPECTED_ERROR;
320       END IF;
321 
322       --
323       -- End of API body
324       --
325 
326    -- vertical industry post-processing
327    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
328    THEN
329       AMS_EvtRegs_VUHK.Update_registration_post(  p_evt_regs_Rec => l_evt_regs_Rec
330                                                 , x_return_status => l_return_status
331                                                );
332 
333       IF l_return_status = FND_API.g_ret_sts_error
334       THEN
335          RAISE FND_API.g_exc_error;
336       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
337       THEN
338          RAISE FND_API.g_exc_unexpected_error;
339       END IF;
340    END IF;
341 
342    -- customer post-processing
343    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
344    THEN
345       AMS_EvtRegs_CUHK.Update_registration_post(  p_evt_regs_Rec => l_evt_regs_Rec
346                                                 , x_return_status => l_return_status
347                                                );
348 
349       IF l_return_status = FND_API.g_ret_sts_error
350       THEN
351          RAISE FND_API.g_exc_error;
352       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
353       THEN
354          RAISE FND_API.g_exc_unexpected_error;
355       END IF;
356    END IF;
357 
358       -- Standard check for p_commit
359       IF FND_API.to_Boolean( p_commit )
360       THEN
361           COMMIT WORK;
362       END IF;
363 
364    x_return_status := FND_API.g_ret_sts_success;
365    FND_MSG_PUB.count_and_get(
366          p_encoded => FND_API.g_false,
367          p_count   => x_msg_count,
368          p_data    => x_msg_data
369    );
370 
371 EXCEPTION
372 
373    WHEN FND_API.g_exc_error THEN
374       ROLLBACK TO update_registration_pub;
375       x_return_status := FND_API.g_ret_sts_error;
376       FND_MSG_PUB.count_and_get(
377             p_encoded => FND_API.g_false,
378             p_count   => x_msg_count,
379             p_data    => x_msg_data
380       );
384       x_return_status := FND_API.g_ret_sts_unexp_error ;
381 
382    WHEN FND_API.g_exc_unexpected_error THEN
383       ROLLBACK TO update_registration_pub;
385       FND_MSG_PUB.count_and_get(
386             p_encoded => FND_API.g_false,
387             p_count   => x_msg_count,
388             p_data    => x_msg_data
389       );
390 
391 
392    WHEN OTHERS THEN
393       ROLLBACK TO update_registration_pub;
394       x_return_status := FND_API.g_ret_sts_unexp_error ;
395 
396       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
397           THEN
398          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
399       END IF;
400 
401       FND_MSG_PUB.count_and_get(
402             p_encoded => FND_API.g_false,
403             p_count   => x_msg_count,
404             p_data    => x_msg_data
405       );
406 
407 End Update_registration;
408 
409 --   modified sugupta 06/21/2000 x_cancellation_code shud be varchar2
410 
411 PROCEDURE Cancel_Registration(
412     P_Api_Version_Number         IN   NUMBER,
413     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
414     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
415     p_object_version		   IN   NUMBER,
416     p_event_offer_id		   IN   NUMBER,
417     p_registrant_party_id        IN   NUMBER,
418     p_confirmation_code          IN   VARCHAR2,
419     p_registration_group_id      IN   NUMBER,
420     p_cancellation_reason_code   IN   VARCHAR2,
421     p_block_fulfillment          IN   VARCHAR2     := 'F',
422     x_cancellation_code          OUT NOCOPY  VARCHAR2,
423     X_Return_Status              OUT NOCOPY  VARCHAR2,
424     X_Msg_Count                  OUT NOCOPY  NUMBER,
425     X_Msg_Data                   OUT NOCOPY  VARCHAR2
426     )
427 
428  IS
429 l_api_name                CONSTANT VARCHAR2(30) := 'Cancel_Registration';
430 l_api_version_number      CONSTANT NUMBER   := 1.0;
431 l_pvt_evt_regs_rec  AMS_EvtRegs_PVT.evt_regs_Rec_Type;
432 l_object_version 		 NUMBER := p_object_version;
433 l_return_status 	VARCHAR2(1);
434  BEGIN
435       -- Standard Start of API savepoint
436       SAVEPOINT Cancel_Registration_PUB;
437 
438       -- Standard call to check for call compatibility.
439       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
440                          	             p_api_version_number,
441                                            l_api_name,
442                                            G_PKG_NAME)
443       THEN
444           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
445       END IF;
446       -- Initialize message list if p_init_msg_list is set to TRUE.
447       IF FND_API.to_Boolean( p_init_msg_list )
448       THEN
449           FND_MSG_PUB.initialize;
450       END IF;
451 
452 
453    -- customer pre-processing
454    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
455    THEN
456       AMS_EvtRegs_CUHK.Cancel_Registration_pre(  p_object_version => l_object_version
457                                                , p_event_offer_id => p_event_offer_id
458                                                , p_registrant_party_id => p_registrant_party_id
462                                                , x_cancellation_code => x_cancellation_code
459                                                , p_confirmation_code => p_confirmation_code
460                                                , p_registration_group_id => p_registration_group_id
461                                                , p_cancellation_reason_code => p_cancellation_reason_code
463                                                , X_Return_Status => l_Return_Status
464                                               );
465 
466       IF l_return_status = FND_API.g_ret_sts_error
467       THEN
468          RAISE FND_API.g_exc_error;
469       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
470       THEN
471          RAISE FND_API.g_exc_unexpected_error;
472       END IF;
473    END IF;
474 
475    -- vertical industry pre-processing
476    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
477    THEN
478       AMS_EvtRegs_VUHK.Cancel_Registration_pre(  p_object_version => l_object_version
479                                                , p_event_offer_id => p_event_offer_id
480                                                , p_registrant_party_id => p_registrant_party_id
481                                                , p_confirmation_code => p_confirmation_code
482                                                , p_registration_group_id => p_registration_group_id
483                                                , p_cancellation_reason_code => p_cancellation_reason_code
484                                                , x_cancellation_code => x_cancellation_code
485                                                , X_Return_Status => l_Return_Status
486                                               );
487 
488       IF l_return_status = FND_API.g_ret_sts_error
489       THEN
490          RAISE FND_API.g_exc_error;
491       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
492       THEN
493          RAISE FND_API.g_exc_unexpected_error;
494       END IF;
495    END IF;
496 
497       -- API body
498 
499     AMS_evtregs_PVT.Cancel_evtregs(
500     P_Api_Version_Number         => l_api_version_number,
501     P_Init_Msg_List              => FND_API.G_FALSE,
502     P_Commit                     => p_commit,
503 
504     p_object_version             => l_object_version,
505     p_event_offer_id		     => p_event_offer_id,
506     p_registrant_party_id        => p_registrant_party_id,
507     p_confirmation_code          => p_confirmation_code,
508     p_registration_group_id      => p_registration_group_id,
509     p_cancellation_reason_code   => p_cancellation_reason_code,
510     p_block_fulfillment          => p_block_fulfillment,
511     x_cancellation_code          => x_cancellation_code,
512     X_Return_Status              => l_return_status,
513     X_Msg_Count                  => x_msg_count,
514     X_Msg_Data                   => x_msg_data);
515 
516       -- Check return status from the above procedure call
517       IF l_return_status = FND_API.G_RET_STS_ERROR then
518           raise FND_API.G_EXC_ERROR;
519       elsif l_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
520           raise FND_API.G_EXC_UNEXPECTED_ERROR;
521       END IF;
522 
523    -- vertical industry post-processing
524    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
525    THEN
526       AMS_EvtRegs_VUHK.Cancel_Registration_post(  p_object_version => l_object_version
527                                                 , p_event_offer_id => p_event_offer_id
528                                                 , p_registrant_party_id => p_registrant_party_id
529                                                 , p_confirmation_code => p_confirmation_code
530                                                 , p_registration_group_id => p_registration_group_id
531                                                 , p_cancellation_reason_code => p_cancellation_reason_code
532                                                 , x_cancellation_code => x_cancellation_code
533                                                 , X_Return_Status => l_Return_Status
534                                                );
535 
536       IF l_return_status = FND_API.g_ret_sts_error
537       THEN
538          RAISE FND_API.g_exc_error;
539       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
540       THEN
541          RAISE FND_API.g_exc_unexpected_error;
542       END IF;
543    END IF;
544 
545    -- customer post-processing
546    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
547    THEN
551                                                 , p_confirmation_code => p_confirmation_code
548       AMS_EvtRegs_CUHK.Cancel_Registration_post(  p_object_version => l_object_version
549                                                 , p_event_offer_id => p_event_offer_id
550                                                 , p_registrant_party_id => p_registrant_party_id
552                                                 , p_registration_group_id => p_registration_group_id
553                                                 , p_cancellation_reason_code => p_cancellation_reason_code
554                                                 , x_cancellation_code => x_cancellation_code
555                                                 , X_Return_Status => l_Return_Status
556                                                );
557 
558       IF l_return_status = FND_API.g_ret_sts_error
559       THEN
560          RAISE FND_API.g_exc_error;
561       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
562       THEN
563          RAISE FND_API.g_exc_unexpected_error;
564       END IF;
565    END IF;
566 
567       -- Standard check for p_commit
568       IF FND_API.to_Boolean( p_commit )
569       THEN
570           COMMIT WORK;
571       END IF;
572 
573   x_return_status := FND_API.g_ret_sts_success;
574 
575   -- Standard call to get message count and if count is 1, get message info.
576       FND_MSG_PUB.count_and_get(
577             p_encoded => FND_API.g_false,
578             p_count   => x_msg_count,
579             p_data    => x_msg_data
580       );
581 
582 EXCEPTION
583 
584    WHEN FND_API.g_exc_error THEN
585       ROLLBACK TO Cancel_Registration_PUB;
586       x_return_status := FND_API.g_ret_sts_error;
587       FND_MSG_PUB.count_and_get(
588             p_encoded => FND_API.g_false,
589             p_count   => x_msg_count,
590             p_data    => x_msg_data
591       );
592 
593    WHEN FND_API.g_exc_unexpected_error THEN
594       ROLLBACK TO Cancel_Registration_PUB;
595       x_return_status := FND_API.g_ret_sts_unexp_error ;
596       FND_MSG_PUB.count_and_get(
597             p_encoded => FND_API.g_false,
598             p_count   => x_msg_count,
599             p_data    => x_msg_data
600       );
601 
602 
603    WHEN OTHERS THEN
604       ROLLBACK TO Cancel_Registration_PUB;
605       x_return_status := FND_API.g_ret_sts_unexp_error ;
606 
607       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
608           THEN
609          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
610       END IF;
611 
612       FND_MSG_PUB.count_and_get(
613             p_encoded => FND_API.g_false,
614             p_count   => x_msg_count,
615             p_data    => x_msg_data
616       );
617 
618 End Cancel_Registration;
619 
620 PROCEDURE delete_Registration(
621     P_Api_Version_Number         IN   NUMBER,
622     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
623     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
624     p_object_version		   IN   NUMBER,
625     p_event_registration_id	   IN   NUMBER,
626 
627     X_Return_Status              OUT NOCOPY  VARCHAR2,
628     X_Msg_Count                  OUT NOCOPY  NUMBER,
629     X_Msg_Data                   OUT NOCOPY  VARCHAR2
630 ) IS
631 l_api_name                CONSTANT VARCHAR2(30) := 'delete_Registration';
632 l_api_version_number      CONSTANT NUMBER   := 1.0;
633 l_event_registration_id 	 NUMBER	:= p_event_registration_id;
634 l_object_version 		 NUMBER := p_object_version;
635 l_return_status                VARCHAR2(1); -- Return value from procedures.
636 
637  BEGIN
638       -- Standard Start of API savepoint
639       SAVEPOINT delete_Registration_PUB;
640 
641       -- Standard call to check for call compatibility.
642       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
643                          	             p_api_version_number,
644                                            l_api_name,
645                                            G_PKG_NAME)
646       THEN
647           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
648       END IF;
649 
650       -- Initialize message list if p_init_msg_list is set to TRUE.
651       IF FND_API.to_Boolean( p_init_msg_list )
652       THEN
653           FND_MSG_PUB.initialize;
654       END IF;
655 
656        -- Initialize API return status to SUCCESS
657       x_return_status := FND_API.G_RET_STS_SUCCESS;
658 
659    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
660    THEN
661       AMS_EvtRegs_CUHK.delete_Registration_pre(  x_object_version => l_object_version
662                                                , x_event_registration_id =>l_event_registration_id
663                                                , X_Return_Status => l_Return_Status
664                                               );
665 
666       IF l_return_status = FND_API.g_ret_sts_error
667       THEN
668          RAISE FND_API.g_exc_error;
669       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
670       THEN
671          RAISE FND_API.g_exc_unexpected_error;
672       END IF;
673    END IF;
674 
675    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
676    THEN
680                                               );
677       AMS_EvtRegs_VUHK.delete_Registration_pre(  x_object_version => l_object_version
678                                                , x_event_registration_id =>l_event_registration_id
679                                                , X_Return_Status => l_Return_Status
681 
682       IF l_return_status = FND_API.g_ret_sts_error
683       THEN
684          RAISE FND_API.g_exc_error;
685       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
686       THEN
687          RAISE FND_API.g_exc_unexpected_error;
688       END IF;
689    END IF;
690 
691 	  -- API body
692 
693     AMS_evtregs_PVT.delete_evtregs(
694 				p_api_version_number         => l_api_version_number,
695 				p_init_msg_list              => FND_API.G_FALSE,
696 				p_commit                     => p_commit,
697 				p_object_version             => l_object_version,
698 				p_event_registration_id		 => l_event_registration_id,
699 
700 				X_Return_Status              => x_return_status,
701 				X_Msg_Count                  => x_msg_count,
702 				X_Msg_Data                   => x_msg_data);
703 
704       -- Check return status from the above procedure call
705       IF x_return_status = FND_API.G_RET_STS_ERROR then
706           raise FND_API.G_EXC_ERROR;
707       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
708           raise FND_API.G_EXC_UNEXPECTED_ERROR;
709       END IF;
710 
711    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
712    THEN
713       AMS_EvtRegs_VUHK.delete_Registration_post(  p_object_version => l_object_version
714                                                 , p_event_registration_id =>l_event_registration_id
715                                                 , X_Return_Status => l_Return_Status
716                                               );
717 
718       IF l_return_status = FND_API.g_ret_sts_error
719       THEN
720          RAISE FND_API.g_exc_error;
721       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
722       THEN
723          RAISE FND_API.g_exc_unexpected_error;
724       END IF;
725    END IF;
726 
727    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
728    THEN
729       AMS_EvtRegs_CUHK.delete_Registration_post(  p_object_version => l_object_version
730                                                 , p_event_registration_id =>l_event_registration_id
731                                                 , X_Return_Status => l_Return_Status
732                                                );
733 
734       IF l_return_status = FND_API.g_ret_sts_error
735       THEN
736          RAISE FND_API.g_exc_error;
737       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
738       THEN
739          RAISE FND_API.g_exc_unexpected_error;
740       END IF;
741    END IF;
742 
743 
744 
745     -- End of API body
746 
747       -- Standard check for p_commit
748       IF FND_API.to_Boolean( p_commit )
749       THEN
750           COMMIT WORK;
751       END IF;
752 
753     -- Standard call to get message count and if count is 1, get message info.
754       FND_MSG_PUB.count_and_get(
755             p_encoded => FND_API.g_false,
756             p_count   => x_msg_count,
757             p_data    => x_msg_data
758       );
759 
760 EXCEPTION
761    WHEN FND_API.g_exc_error THEN
762       ROLLBACK TO delete_Registration_PUB;
763       x_return_status := FND_API.g_ret_sts_error;
764       FND_MSG_PUB.count_and_get(
765             p_encoded => FND_API.g_false,
766             p_count   => x_msg_count,
767             p_data    => x_msg_data
768       );
769 
770    WHEN FND_API.g_exc_unexpected_error THEN
771       ROLLBACK TO delete_Registration_PUB;
772       x_return_status := FND_API.g_ret_sts_unexp_error ;
773       FND_MSG_PUB.count_and_get(
774             p_encoded => FND_API.g_false,
775             p_count   => x_msg_count,
776             p_data    => x_msg_data
777       );
778 
779    WHEN OTHERS THEN
780       ROLLBACK TO delete_Registration_PUB;
781       x_return_status := FND_API.g_ret_sts_unexp_error ;
782 
783       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
784           THEN
785          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
786       END IF;
787 
788       FND_MSG_PUB.count_and_get(
789             p_encoded => FND_API.g_false,
790             p_count   => x_msg_count,
791             p_data    => x_msg_data
792       );
793 
794 End delete_Registration;
795 
796 -------------------------------------------------------
797 -- Start of Comments
798 --
799 -- PROCEDURE
800 --  prioritize_reg_wailist
801 --
802 -- HISTORY
803 --    11/29/99  sugupta  Added.
804 -- PURPOSE
805 --  Registrations for an event can have a wailist. This api call will look to see if it can
806 -- upgrade a reg status from wailtlisted to registered, if any cancellations or event
807 -- details have been changed.
808 -- note that cancelling a registration automatically calls this API internally to
809 -- upgrade the reg statuses in real time.
810 -------------------------------------------------------------
811 
812 PROCEDURE prioritize_reg_wailist(
816    p_event_offer_id     		IN   NUMBER,
813    p_api_version_number         IN   NUMBER,
814    p_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
815    P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
817 
818    x_return_status              OUT NOCOPY  VARCHAR2,
819    x_msg_count                  OUT NOCOPY  NUMBER,
820    x_msg_data                   OUT NOCOPY  VARCHAR2
821 ) IS
822 
823 l_api_name                CONSTANT VARCHAR2(30) := 'prioritize_reg_wailist';
824 l_api_version_number      CONSTANT NUMBER   := 1.0;
825 l_return_status           VARCHAR2(1); -- Return value from procedures.
826 l_event_offer_id          NUMBER := p_event_offer_id;
827 
828  BEGIN
829       -- Standard Start of API savepoint
830       SAVEPOINT prioritize_reg_wailist_pub;
831 
832       -- Standard call to check for call compatibility.
833       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
834                          	             p_api_version_number,
835                                            l_api_name,
836                                            G_PKG_NAME)
837       THEN
838           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
839       END IF;
840 
841       -- Initialize message list if p_init_msg_list is set to TRUE.
842       IF FND_API.to_Boolean( p_init_msg_list )
843       THEN
844           FND_MSG_PUB.initialize;
845       END IF;
846 
847        -- Initialize API return status to SUCCESS
848       x_return_status := FND_API.G_RET_STS_SUCCESS;
849 
850    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
851    THEN
852       AMS_EvtRegs_CUHK.prioritize_reg_wailist_pre(  x_event_offer_id => l_event_offer_id
853                                                   , X_Return_Status => l_Return_Status
854                                                  );
855 
856       IF l_return_status = FND_API.g_ret_sts_error
857       THEN
858          RAISE FND_API.g_exc_error;
859       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
860       THEN
861          RAISE FND_API.g_exc_unexpected_error;
862       END IF;
863    END IF;
864 
865    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
866    THEN
867       AMS_EvtRegs_VUHK.prioritize_reg_wailist_pre(  x_event_offer_id => l_event_offer_id
868                                                   , X_Return_Status => l_Return_Status
869                                                  );
870 
871       IF l_return_status = FND_API.g_ret_sts_error
872       THEN
873          RAISE FND_API.g_exc_error;
874       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
875       THEN
876          RAISE FND_API.g_exc_unexpected_error;
877       END IF;
878    END IF;
879 
880       --
881       -- API body
882       --
883 	  AMS_EVTREGS_PVT.prioritize_waitlist(
884 			   p_api_version_number => p_api_version_number,
885 			   p_Init_Msg_List => p_Init_Msg_List,
886 			   P_Commit => P_Commit,
887 			   p_event_offer_id => l_event_offer_id,
888 
889 			   x_return_status => x_return_status,
890 			   x_msg_count => x_msg_count,
891 			   x_msg_data => x_msg_data
892 	  );
893 
894 	  -- Check return status from the above procedure call
895       IF x_return_status = FND_API.G_RET_STS_ERROR then
896           raise FND_API.G_EXC_ERROR;
897       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
898           raise FND_API.G_EXC_UNEXPECTED_ERROR;
899       END IF;
900 
901    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
902    THEN
903       AMS_EvtRegs_VUHK.prioritize_reg_wailist_post(  p_event_offer_id => l_event_offer_id
904                                                    , X_Return_Status => l_Return_Status
905                                                   );
906 
907       IF l_return_status = FND_API.g_ret_sts_error
908       THEN
909          RAISE FND_API.g_exc_error;
910       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
911       THEN
912          RAISE FND_API.g_exc_unexpected_error;
913       END IF;
914    END IF;
915 
916    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
917    THEN
918       AMS_EvtRegs_CUHK.prioritize_reg_wailist_post(  p_event_offer_id => l_event_offer_id
919                                                    , X_Return_Status => l_Return_Status
920                                                   );
921 
922       IF l_return_status = FND_API.g_ret_sts_error
923       THEN
924          RAISE FND_API.g_exc_error;
925       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
926       THEN
927          RAISE FND_API.g_exc_unexpected_error;
928       END IF;
929    END IF;
930 
931     -- End of API body
932 
933       -- Standard check for p_commit
934       IF FND_API.to_Boolean( p_commit )
935       THEN
936           COMMIT WORK;
937       END IF;
938 
939     -- Standard call to get message count and if count is 1, get message info.
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 EXCEPTION
947    WHEN FND_API.g_exc_error THEN
948       ROLLBACK TO prioritize_reg_wailist_pub;
952             p_count   => x_msg_count,
949       x_return_status := FND_API.g_ret_sts_error;
950       FND_MSG_PUB.count_and_get(
951             p_encoded => FND_API.g_false,
953             p_data    => x_msg_data
954       );
955 
956    WHEN FND_API.g_exc_unexpected_error THEN
957       ROLLBACK TO prioritize_reg_wailist_pub;
958       x_return_status := FND_API.g_ret_sts_unexp_error ;
959       FND_MSG_PUB.count_and_get(
960             p_encoded => FND_API.g_false,
961             p_count   => x_msg_count,
962             p_data    => x_msg_data
963       );
964 
965    WHEN OTHERS THEN
966       ROLLBACK TO prioritize_reg_wailist_pub;
967       x_return_status := FND_API.g_ret_sts_unexp_error ;
968 
969       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
970           THEN
971          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
972       END IF;
973 
974       FND_MSG_PUB.count_and_get(
975             p_encoded => FND_API.g_false,
976             p_count   => x_msg_count,
977             p_data    => x_msg_data
978       );
979 
980 End prioritize_reg_wailist;
981 
982 -------------------------------------------------------
983 -- Start of Comments
984 --
985 -- PROCEDURE
986 --  substitute_enrollee
987 --
988 -- HISTORY
989 --    11/16/99  sugupta  Added.
990 -- PURPOSE
991 --  Substitute an enrollee(attendant) for an existing event registration..
992 -- Who can substitute is NOT verified in this API call...
993 -- If registrant information is also provided, then the existing
994 -- 'registrant information' is replaced...
995 -- 'Attendant information' is mandatory, but for account information...
996 -- if registrant info is changed, reg_contact id is stored in original_reg_contact_id column..
997 -------------------------------------------------------------
998 
999 PROCEDURE substitute_enrollee(
1000     P_Api_Version_Number         IN   NUMBER,
1001     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1002     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1003 
1004     p_confirmation_code	         IN   VARCHAR2,	--required
1005     p_attendant_party_id		 IN   NUMBER,	--required
1006     p_attendant_contact_id	     IN   NUMBER,	--required
1007     p_attendant_account_id       IN   NUMBER,
1008     p_registrant_party_id	     IN   NUMBER,
1009     p_registrant_contact_id	     IN   NUMBER,	--required
1010     p_registrant_account_id	     IN   NUMBER,
1011 
1012     X_Return_Status              OUT NOCOPY  VARCHAR2,
1013     X_Msg_Count                  OUT NOCOPY  NUMBER,
1014     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1015     )
1016 
1017  IS
1018 l_api_name                CONSTANT VARCHAR2(30) := 'substitute_enrollee';
1019 l_api_version_number      CONSTANT NUMBER   := 1.0;
1020 l_confirmation_code 	  VARCHAR2(30) := p_confirmation_code;
1021 l_return_status           VARCHAR2(1); -- Return value from procedures.
1022 
1023  BEGIN
1024       -- Standard Start of API savepoint
1025       SAVEPOINT substitute_enrollee_pub;
1026 
1027       -- Standard call to check for call compatibility.
1028       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1029                          	             p_api_version_number,
1030                                            l_api_name,
1031                                            G_PKG_NAME)
1032       THEN
1033           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1034       END IF;
1035 
1036       -- Initialize message list if p_init_msg_list is set to TRUE.
1037       IF FND_API.to_Boolean( p_init_msg_list )
1038       THEN
1039           FND_MSG_PUB.initialize;
1040       END IF;
1041 
1042        -- Initialize API return status to SUCCESS
1043       x_return_status := FND_API.G_RET_STS_SUCCESS;
1044 
1045    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
1046    THEN
1047       AMS_EvtRegs_CUHK.substitute_enrollee_pre(  p_confirmation_code => l_confirmation_code
1048                                                , p_attendant_party_id => p_attendant_party_id
1049                                                , p_attendant_contact_id => p_attendant_contact_id
1050                                                , p_attendant_account_id => p_attendant_account_id
1051                                                , p_registrant_party_id => p_registrant_party_id
1052                                                , p_registrant_contact_id => p_registrant_contact_id
1053                                                , p_registrant_account_id => p_registrant_account_id
1054                                                , X_Return_Status => l_Return_Status
1055                                               );
1056 
1057 
1058       IF l_return_status = FND_API.g_ret_sts_error
1059       THEN
1060          RAISE FND_API.g_exc_error;
1061       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1062       THEN
1063          RAISE FND_API.g_exc_unexpected_error;
1064       END IF;
1065    END IF;
1066 
1067    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
1068    THEN
1069       AMS_EvtRegs_VUHK.substitute_enrollee_pre(  p_confirmation_code => l_confirmation_code
1070                                                , p_attendant_party_id => p_attendant_party_id
1071                                                , p_attendant_contact_id => p_attendant_contact_id
1072                                                , p_attendant_account_id => p_attendant_account_id
1076                                                , X_Return_Status => l_Return_Status
1073                                                , p_registrant_party_id => p_registrant_party_id
1074                                                , p_registrant_contact_id => p_registrant_contact_id
1075                                                , p_registrant_account_id => p_registrant_account_id
1077                                               );
1078 
1079 
1080       IF l_return_status = FND_API.g_ret_sts_error
1081       THEN
1082          RAISE FND_API.g_exc_error;
1083       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1084       THEN
1085          RAISE FND_API.g_exc_unexpected_error;
1086       END IF;
1087    END IF;
1088 
1089       -- API body
1090 
1091 	AMS_EVTREGS_PVT.substitute_and_validate(
1092 				P_Api_Version_Number         => l_Api_Version_Number,
1093 				P_Init_Msg_List              => P_Init_Msg_List ,
1094 				P_Commit                     => P_Commit ,
1095 
1096 				p_confirmation_code	         => l_confirmation_code,
1097 				p_attendant_party_id		 => p_attendant_party_id,
1098 				p_attendant_contact_id		 => p_attendant_contact_id,
1099 				p_attendant_account_id       => p_attendant_account_id,
1100 				p_registrant_party_id		 => p_registrant_party_id,
1101 				p_registrant_contact_id		 => p_registrant_contact_id,
1102 				p_registrant_account_id		 => p_registrant_account_id,
1103 
1104 				X_Return_Status              =>  x_return_status,
1105 				X_Msg_Count                  =>  x_msg_count,
1106 				X_Msg_Data                   =>  x_msg_data
1107     );
1108       -- Check return status from the above procedure call
1109       IF x_return_status = FND_API.G_RET_STS_ERROR then
1110           raise FND_API.G_EXC_ERROR;
1111       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1112           raise FND_API.G_EXC_UNEXPECTED_ERROR;
1113       END IF;
1114 
1115     -- End of API body
1116    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
1117    THEN
1118       AMS_EvtRegs_VUHK.substitute_enrollee_post(  p_confirmation_code => l_confirmation_code
1119                                                 , p_attendant_party_id => p_attendant_party_id
1120                                                 , p_attendant_contact_id => p_attendant_contact_id
1121                                                 , p_attendant_account_id => p_attendant_account_id
1122                                                 , p_registrant_party_id => p_registrant_party_id
1123                                                 , p_registrant_contact_id => p_registrant_contact_id
1124                                                 , p_registrant_account_id => p_registrant_account_id
1125                                                 , X_Return_Status => l_Return_Status
1126                                                );
1127 
1128       IF l_return_status = FND_API.g_ret_sts_error
1129       THEN
1130          RAISE FND_API.g_exc_error;
1131       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1132       THEN
1133          RAISE FND_API.g_exc_unexpected_error;
1134       END IF;
1135    END IF;
1136 
1137    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
1138    THEN
1139       AMS_EvtRegs_CUHK.substitute_enrollee_post(  p_confirmation_code => l_confirmation_code
1140                                                 , p_attendant_party_id => p_attendant_party_id
1141                                                 , p_attendant_contact_id => p_attendant_contact_id
1142                                                 , p_attendant_account_id => p_attendant_account_id
1143                                                 , p_registrant_party_id => p_registrant_party_id
1144                                                 , p_registrant_contact_id => p_registrant_contact_id
1145                                                 , p_registrant_account_id => p_registrant_account_id
1146                                                 , X_Return_Status => l_Return_Status
1147                                                );
1148 
1149       IF l_return_status = FND_API.g_ret_sts_error
1150       THEN
1151          RAISE FND_API.g_exc_error;
1152       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1153       THEN
1154          RAISE FND_API.g_exc_unexpected_error;
1155       END IF;
1156    END IF;
1157 
1158       -- Standard check for p_commit
1159       IF FND_API.to_Boolean( p_commit )
1160       THEN
1161           COMMIT WORK;
1162       END IF;
1163 
1164     -- Standard call to get message count and if count is 1, get message info.
1165       FND_MSG_PUB.count_and_get(
1166             p_encoded => FND_API.g_false,
1167             p_count   => x_msg_count,
1168             p_data    => x_msg_data
1169       );
1170 
1171 EXCEPTION
1172    WHEN FND_API.g_exc_error THEN
1173       ROLLBACK TO substitute_enrollee_pub;
1174       x_return_status := FND_API.g_ret_sts_error;
1175       FND_MSG_PUB.count_and_get(
1176             p_encoded => FND_API.g_false,
1177             p_count   => x_msg_count,
1178             p_data    => x_msg_data
1179       );
1180 
1181    WHEN FND_API.g_exc_unexpected_error THEN
1182       ROLLBACK TO substitute_enrollee_pub;
1183       x_return_status := FND_API.g_ret_sts_unexp_error ;
1184       FND_MSG_PUB.count_and_get(
1185             p_encoded => FND_API.g_false,
1186             p_count   => x_msg_count,
1190    WHEN OTHERS THEN
1187             p_data    => x_msg_data
1188       );
1189 
1191       ROLLBACK TO substitute_enrollee_pub;
1192       x_return_status := FND_API.g_ret_sts_unexp_error ;
1193 
1194       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1195           THEN
1196          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1197       END IF;
1198 
1199       FND_MSG_PUB.count_and_get(
1200             p_encoded => FND_API.g_false,
1201             p_count   => x_msg_count,
1202             p_data    => x_msg_data
1203       );
1204 
1205 End substitute_enrollee;
1206 
1207 -------------------------------------------------------
1208 -- Start of Comments
1209 --
1210 -- PROCEDURE
1211 --  transfer_enrollee
1212 --
1213 -- HISTORY
1214 --    11/16/99  sugupta  Added.
1215 -- PURPOSE
1216 --  Transfer an enrollee(attendant) for an existing event registration
1217 --  from one event offering to another offer id...
1218 -- Who can transfer is NOT validated in this API call...
1219 -- Waitlist flag input is mandatory which means if the other offering is full and
1220 -- the attendant is willing to get waitlisted....
1221 -- if the offering is full, and waitlisting is not wanted or even wailist is full, then
1222 -- the transfer will fail...
1223 -- PAYMENT details are not taken care of in this API call....
1224 -------------------------------------------------------------
1225 
1226 PROCEDURE transfer_enrollee(
1227     P_Api_Version_Number         IN   NUMBER,
1228     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1229     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1230     p_object_version	 		 IN   NUMBER,
1231     p_old_confirmation_code		 IN   VARCHAR2,	--required
1232     p_old_offer_id				 IN   NUMBER,	--required
1233     p_new_offer_id				 IN   NUMBER,	--required
1234     p_waitlist_flag				 IN   VARCHAR2,	--required
1235     p_registrant_account_id		 IN   NUMBER,  -- can be null
1236     p_registrant_party_id		 IN	  NUMBER,  -- can be null
1237     p_registrant_contact_id		 IN	  NUMBER,  -- can be null
1238     p_attendant_party_id         IN   NUMBER,-- can be null
1239     p_attendant_contact_id       IN   NUMBER,-- can be null
1240     x_new_confirmation_code		 OUT NOCOPY  VARCHAR2,
1241     x_old_cancellation_code		 OUT NOCOPY  VARCHAR2,
1242     x_new_registration_id        OUT NOCOPY  NUMBER,
1243     x_old_system_status_code	 OUT NOCOPY  VARCHAR2,
1244     x_new_system_status_code     OUT NOCOPY  VARCHAR2,
1245     X_Return_Status              OUT NOCOPY  VARCHAR2,
1246     X_Msg_Count                  OUT NOCOPY  NUMBER,
1247     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1248 ) IS
1249 
1250 l_api_name                CONSTANT VARCHAR2(30) := 'transfer_enrollee';
1251 l_api_version_number      CONSTANT NUMBER   := 1.0;
1252 l_return_status           VARCHAR2(1); -- Return value from procedures.
1253 
1254  BEGIN
1255       -- Standard Start of API savepoint
1256       SAVEPOINT substitute_enrollee_PUB;
1257 
1258       -- Standard call to check for call compatibility.
1259       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1260                          	             p_api_version_number,
1261                                            l_api_name,
1262                                            G_PKG_NAME)
1263       THEN
1264           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1265       END IF;
1266 
1267       -- Initialize message list if p_init_msg_list is set to TRUE.
1268       IF FND_API.to_Boolean( p_init_msg_list )
1269       THEN
1270           FND_MSG_PUB.initialize;
1271       END IF;
1272 
1273        -- Initialize API return status to SUCCESS
1274       x_return_status := FND_API.G_RET_STS_SUCCESS;
1275 
1276    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'C')
1277    THEN
1278       AMS_EvtRegs_CUHK.transfer_enrollee_pre(  p_object_version => p_object_version
1279                                              , p_old_confirmation_code => p_old_confirmation_code
1280                                              , p_old_offer_id => p_old_offer_id
1281                                              , p_new_offer_id => p_new_offer_id
1282                                              , p_waitlist_flag => p_waitlist_flag
1283                                              , p_registrant_account_id => p_registrant_account_id
1284                                              , p_registrant_party_id => p_registrant_party_id
1285                                              , p_registrant_contact_id => p_registrant_contact_id
1286                                              , p_attendant_party_id => p_attendant_party_id
1287                                              , p_attendant_contact_id => p_attendant_contact_id
1288                                              , X_Return_Status => l_Return_Status
1289                                             );
1290 
1291       IF l_return_status = FND_API.g_ret_sts_error
1292       THEN
1293          RAISE FND_API.g_exc_error;
1294       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1295       THEN
1296          RAISE FND_API.g_exc_unexpected_error;
1297       END IF;
1298    END IF;
1299 
1300    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'PRE', 'V')
1301    THEN
1302       AMS_EvtRegs_VUHK.transfer_enrollee_pre(  p_object_version => p_object_version
1306                                              , p_waitlist_flag => p_waitlist_flag
1303                                              , p_old_confirmation_code => p_old_confirmation_code
1304                                              , p_old_offer_id => p_old_offer_id
1305                                              , p_new_offer_id => p_new_offer_id
1307                                              , p_registrant_account_id => p_registrant_account_id
1308                                              , p_registrant_party_id => p_registrant_party_id
1309                                              , p_registrant_contact_id => p_registrant_contact_id
1310                                              , p_attendant_party_id => p_attendant_party_id
1311                                              , p_attendant_contact_id => p_attendant_contact_id
1312                                              , X_Return_Status => l_Return_Status
1313                                             );
1314 
1315       IF l_return_status = FND_API.g_ret_sts_error
1316       THEN
1317          RAISE FND_API.g_exc_error;
1318       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1319       THEN
1320          RAISE FND_API.g_exc_unexpected_error;
1321       END IF;
1322    END IF;
1323 
1324       --
1325       -- API body
1326       --
1327 	AMS_EVTREGS_PVT.transfer_and_validate(
1328 								P_Api_Version_Number,
1329 								P_Init_Msg_List,
1330 								P_Commit,
1331 								p_object_version,
1332 								p_old_confirmation_code,	--required
1333 								p_old_offer_id,	--required
1334 								p_new_offer_id,	--required
1335 								p_waitlist_flag,	--required
1336 								p_registrant_account_id,  -- can be null
1337 								p_registrant_party_id,  -- can be null
1338 								p_registrant_contact_id,  -- can be null
1339 								p_attendant_party_id,-- can be null
1340 								p_attendant_contact_id,-- can be null
1341 								x_new_confirmation_code,
1342 								x_old_cancellation_code,
1343 								x_new_registration_id,
1344 								x_old_system_status_code,
1345 								x_new_system_status_code,
1346 								X_Return_Status,
1347 								X_Msg_Count,
1348 								X_Msg_Data
1349 	);
1350 
1351      -- Check return status from the above procedure call
1352       IF x_return_status = FND_API.G_RET_STS_ERROR then
1353           raise FND_API.G_EXC_ERROR;
1354       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1355           raise FND_API.G_EXC_UNEXPECTED_ERROR;
1356       END IF;
1357 
1358    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'V')
1359    THEN
1360       AMS_EvtRegs_VUHK.transfer_enrollee_post(  p_object_version => p_object_version
1361                                               , p_old_confirmation_code => p_old_confirmation_code
1362                                               , p_old_offer_id => p_old_offer_id
1363                                               , p_new_offer_id => p_new_offer_id
1364                                               , p_waitlist_flag => p_waitlist_flag
1365                                               , p_registrant_account_id => p_registrant_account_id
1366                                               , p_registrant_party_id => p_registrant_party_id
1367                                               , p_registrant_contact_id => p_registrant_contact_id
1368                                               , p_attendant_party_id => p_attendant_party_id
1369                                               , p_attendant_contact_id => p_attendant_contact_id
1370                                               , X_Return_Status => l_Return_Status
1371                                              );
1372 
1373       IF l_return_status = FND_API.g_ret_sts_error
1374       THEN
1375          RAISE FND_API.g_exc_error;
1376       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1377       THEN
1378          RAISE FND_API.g_exc_unexpected_error;
1379       END IF;
1380    END IF;
1381 
1382    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'POST', 'C')
1383    THEN
1384       AMS_EvtRegs_CUHK.transfer_enrollee_post(  p_object_version => p_object_version
1385                                               , p_old_confirmation_code => p_old_confirmation_code
1386                                               , p_old_offer_id => p_old_offer_id
1387                                               , p_new_offer_id => p_new_offer_id
1388                                               , p_waitlist_flag => p_waitlist_flag
1389                                               , p_registrant_account_id => p_registrant_account_id
1390                                               , p_registrant_party_id => p_registrant_party_id
1391                                               , p_registrant_contact_id => p_registrant_contact_id
1392                                               , p_attendant_party_id => p_attendant_party_id
1393                                               , p_attendant_contact_id => p_attendant_contact_id
1394                                               , X_Return_Status => l_Return_Status
1395                                              );
1396 
1397       IF l_return_status = FND_API.g_ret_sts_error
1398       THEN
1399          RAISE FND_API.g_exc_error;
1400       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error
1401       THEN
1402          RAISE FND_API.g_exc_unexpected_error;
1403       END IF;
1404    END IF;
1405 
1406 
1407     -- End of API body
1408 
1409       -- Standard check for p_commit
1410       IF FND_API.to_Boolean( p_commit )
1411       THEN
1415     -- Standard call to get message count and if count is 1, get message info.
1412           COMMIT WORK;
1413       END IF;
1414 
1416       FND_MSG_PUB.count_and_get(
1417             p_encoded => FND_API.g_false,
1418             p_count   => x_msg_count,
1419             p_data    => x_msg_data
1420       );
1421 
1422 EXCEPTION
1423    WHEN FND_API.g_exc_error THEN
1424       ROLLBACK TO transfer_enrollee;
1425       x_return_status := FND_API.g_ret_sts_error;
1426       FND_MSG_PUB.count_and_get(
1427             p_encoded => FND_API.g_false,
1428             p_count   => x_msg_count,
1429             p_data    => x_msg_data
1430       );
1431 
1432    WHEN FND_API.g_exc_unexpected_error THEN
1433       ROLLBACK TO transfer_enrollee;
1434       x_return_status := FND_API.g_ret_sts_unexp_error ;
1435       FND_MSG_PUB.count_and_get(
1436             p_encoded => FND_API.g_false,
1437             p_count   => x_msg_count,
1438             p_data    => x_msg_data
1439       );
1440 
1441    WHEN OTHERS THEN
1442       ROLLBACK TO transfer_enrollee;
1443       x_return_status := FND_API.g_ret_sts_unexp_error ;
1444 
1445       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1446           THEN
1447          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1448       END IF;
1449 
1450       FND_MSG_PUB.count_and_get(
1451             p_encoded => FND_API.g_false,
1452             p_count   => x_msg_count,
1453             p_data    => x_msg_data
1454       );
1455 
1456 End transfer_enrollee;
1457 
1458 FUNCTION  Get_Reg_Rec RETURN  AMS_EvtRegs_PVT.evt_regs_Rec_Type
1459 IS
1460   TMP_REC  AMS_EvtRegs_PVT.evt_regs_Rec_Type;
1461  BEGIN
1462      RETURN   TMP_REC;
1463  END Get_Reg_Rec;
1464 
1465 End AMS_EvtRegs_PUB;