DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_EVENT_OBJECTS_COPY_PVT

Source


1 PACKAGE BODY AMS_Event_Objects_Copy_PVT  AS
2 /* $Header: amsveocb.pls 120.3 2006/07/14 03:53:04 batoleti noship $ */
3 
4 g_pkg_name   CONSTANT VARCHAR2(30):='AMS_Event_Objects_Copy_PVT';
5 g_file_name  CONSTANT VARCHAR2(12):='amsveocb.pls';
6 G_OBJECT_TYPE_MODEL       CONSTANT VARCHAR2(30) := 'EVEH';
7 G_ATTRIBUTE_GEOS          CONSTANT VARCHAR2(30) := 'GEOS';
8 G_ATTRIBUTE_CELL          CONSTANT VARCHAR2(30) := 'CELL';
9 -- Debug mode
10 -- g_debug boolean := FALSE;
11 -- g_debug boolean := TRUE;
12 --Added for the bug fix : 5213670
13 g_commit VARCHAR2(30) := 'T';
14 --   ==============================================================================
15 --    Start of Comments
16 --   ==============================================================================
17 --   API Name
18 --           Copy_event_header
19 --
20 --   Description
21 --           To support the "Copy Event Headers" functionality from the events overview
22 --           and detail pages.
23 --
24 --   History
25 --      12-MAY-2001   PMOTHUKU  Created this available procedures below
26 --                    Implemented the procedures separetly so that they
27 --
28 --   ==============================================================================
29 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
30 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
31 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
32 
33 FUNCTION get_agenda_name (p_agenda_id IN NUMBER)
34       RETURN VARCHAR2
35    IS
36       -- PL/SQL Block
37       l_name   VARCHAR2 (256);
38         CURSOR c_agenda_name(p_agenda_id IN NUMBER)    IS
39         SELECT   event_header_name
40           FROM     ams_event_headers_vl
41           WHERE  parent_event_header_id = p_agenda_id;
42 
43 BEGIN
44 
45       OPEN c_agenda_name(p_agenda_id);
46       FETCH c_agenda_name INTO l_name;
47       CLOSE c_agenda_name;
48 
49       RETURN '"' || l_name || '" ';
50    EXCEPTION
51       WHEN OTHERS
52       THEN
53          RETURN '"' || p_agenda_id || '"';
54 END get_agenda_name;
55 
56 
57 FUNCTION get_offer_name (p_offer_id IN NUMBER)
58       RETURN VARCHAR2
59    IS
60       -- PL/SQL Block
61       l_name   VARCHAR2 (256);
62         CURSOR c_offer_name(p_offer_id IN NUMBER)    IS
63         SELECT   event_offer_name
64           FROM     ams_event_offers_vl
65           WHERE  parent_event_offer_id = p_offer_id;
66 
67 BEGIN
68 
69       OPEN c_offer_name(p_offer_id);
70       FETCH c_offer_name INTO l_name;
71       CLOSE c_offer_name;
72 
73       RETURN '"' || l_name || '" ';
74    EXCEPTION
75       WHEN OTHERS
76       THEN
77          RETURN '"' || p_offer_id || '"';
78 END get_offer_name;
79 
80 PROCEDURE copy_act_offers (
81       p_src_act_type   IN       VARCHAR2,
82       p_new_act_type   IN       VARCHAR2 := NULL,
83       p_src_act_id     IN       NUMBER,
84       p_new_act_id     IN       NUMBER,
85       p_errnum         OUT NOCOPY      NUMBER,
86       p_errcode        OUT NOCOPY      VARCHAR2,
87       p_errmsg         OUT NOCOPY      VARCHAR2
88    )
89    IS
90       -- PL/SQL Block
91       l_stmt_num          NUMBER;
92       l_name              VARCHAR2 (80);
93       l_mesg_text         VARCHAR2 (2000);
94       l_api_version       NUMBER;
95       l_return_status     VARCHAR2 (1);
96       x_msg_count         NUMBER;
97       l_msg_data          VARCHAR2 (512);
98       l_act_offer_id   NUMBER;
99       l_evo_rec      AMS_EventOffer_PVT.evo_rec_type;
100       l_offers_rec    AMS_EventOffer_PVT.evo_rec_type;
101       temp_offers_rec   AMS_EventOffer_PVT.evo_rec_type;
102       l_lookup_meaning    VARCHAR2 (80);
103       l_event_header_id  NUMBER;
104       l_new_object_id    NUMBER;
105       x_custom_setup_id   NUMBER;
106 
107 
108 
109       CURSOR offers_cur(l_event_offer_id NUMBER) IS
110       SELECT event_header_id
111       FROM ams_event_offers_vl
112       WHERE  event_offer_id=l_event_offer_id;
113 
114       l_attributes_table      AMS_CpyUtility_PVT.copy_attributes_table_type;
115       l_copy_columns_table    AMS_CpyUtility_PVT.copy_columns_table_type;
116 
117       CURSOR new_event_dates (l_new_event_header_id NUMBER) IS
118       SELECT ACTIVE_FROM_DATE, ACTIVE_TO_DATE
119       FROM ams_event_headers_vl
120       WHERE  EVENT_HEADER_ID = l_new_event_header_id;
121 
122       l_event_new_start_date DATE;
123       l_event_new_end_date DATE;
124 
125    BEGIN
126         OPEN offers_cur(p_src_act_id);
127         fetch offers_cur into l_event_header_id;
128         close offers_cur;
129 
130          --l_attributes_table(1) := 'DETL';
131         l_attributes_table(1) := 'CATG';
132         l_attributes_table(2) := 'MESG';
133         l_attributes_table(3) := 'GEOS';
134         l_attributes_table(4) := 'AGEN';
135         l_attributes_table(5) := 'DELV';
136         l_attributes_table(6) := 'PROD';
137 
138 
139         OPEN new_event_dates(p_new_act_id);
140         FETCH new_event_dates INTO l_event_new_start_date, l_event_new_end_date;
141         CLOSE new_event_dates;
142 
143         IF (AMS_DEBUG_HIGH_ON) THEN
144         AMS_UTILITY_PVT.debug_message('CG: the  new_event_dates = ' || l_event_new_start_date || ' ' || l_event_new_end_date);
145         END IF;
146 
147 
148         l_copy_columns_table(1).column_name := 'EVENT_HEADER_ID';
149 	l_copy_columns_table(1).column_value := p_new_act_id;
150         l_copy_columns_table(2).column_name := 'EVENT_NEW_START_DATE';
151 	l_copy_columns_table(2).column_value := l_event_new_start_date;
152         l_copy_columns_table(3).column_name := 'EVENT_NEW_END_DATE';
153 	l_copy_columns_table(3).column_value := l_event_new_end_date;
154 
155         p_errcode := NULL;
156         p_errnum := 0;
157         p_errmsg := NULL;
158         ams_utility_pvt.get_lookup_meaning ('AMS_SYS_ARC_QUALIFIER',
159                                            'EVEO',
160                                            l_return_status,
161                                            l_lookup_meaning
162                                         );
163         fnd_message.set_name ('AMS', 'AMS_COPY_ELEMENTS');
164         fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
165         l_mesg_text := fnd_message.get;
166         ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
167                                           l_event_header_id,
168                                           l_mesg_text,
169                                           'GENERAL'
170                                        );
171         l_stmt_num := 1;
172 
173         AMS_EventSchedule_Copy_PVT.copy_event_schedule(
174              p_api_version                => 1.0,
175              p_init_msg_list              => FND_API.G_FALSE,
176              p_commit                     => FND_API.G_FALSE,
177              p_validation_level           => FND_API.G_VALID_LEVEL_FULL,
178 
179              x_return_status              =>  l_return_status,
180              x_msg_count                  =>  x_msg_count,
181              x_msg_data                   =>  l_msg_data,
182 
183              p_source_object_id           =>   p_src_act_id,
184              p_attributes_table           =>  l_attributes_table,
185              p_copy_columns_table         =>  l_copy_columns_table,
186 
187              x_new_object_id              =>  l_new_object_id,
188              x_custom_setup_id            =>  x_custom_setup_id
189           );
190 
191           /* Adding the event_header_id to the event_offer_created.
192              This way we are attaching the offers to a particular
193              event header .
194           */
195 
196            IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
197 		       RAISE Fnd_Api.G_EXC_ERROR;
198 		     END IF;
199 
200          -- IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
201              UPDATE ams_event_offers_all_b
202              SET event_header_id = p_new_act_id
203              WHERE event_offer_id = l_new_object_id;
204         --  END IF;
205 
206         -- dbms_output.put_line('the new  rec with new  header/offer ids are '|| p_src_act_id ||'/'|| l_new_object_id);
207 
208 
209          IF l_return_status = fnd_api.g_ret_sts_error
210              OR l_return_status = fnd_api.g_ret_sts_unexp_error THEN
211             FOR l_counter IN 1 .. x_msg_count
212             LOOP
213                l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
214                l_stmt_num := 2;
215                p_errnum := 1;
216                p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
217                                   ' , ' || '): ' || l_counter ||
218                                   ' OF ' || x_msg_count, 1, 4000);
219                 ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
220                                                    l_event_header_id,
221                                                    p_errmsg,
222                                                    'ERROR'
223                                                   );
224            END LOOP;
225            fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
226            fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
227            l_mesg_text := fnd_message.get;
228            p_errmsg := SUBSTR ( l_mesg_text || ' - ' ||
229                                 AMS_Event_Objects_Copy_PVT.get_offer_name (
230                                   p_src_act_id
231                                 ), 1, 4000);
232            ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
233                                                l_event_header_id,
234                                                p_errmsg,
235                                                'ERROR'
236                                             );
237            END IF;
238 
239 
240    END copy_act_offers;
241 PROCEDURE copy_act_delivery_method(
242       p_src_act_type   IN       VARCHAR2,
243       p_new_act_type   IN       VARCHAR2 := NULL,
244       p_src_act_id     IN       NUMBER,
245       p_new_act_id     IN       NUMBER,
246       p_errnum         OUT NOCOPY      NUMBER,
247       p_errcode        OUT NOCOPY      VARCHAR2,
248       p_errmsg         OUT NOCOPY      VARCHAR2
249    )
250    IS
251       -- PL/SQL Block
252       l_stmt_num              NUMBER;
253       l_name                  VARCHAR2 (80);
254       l_mesg_text             VARCHAR2 (2000);
255       l_api_version           NUMBER;
256       l_return_status         VARCHAR2 (1);
257       x_msg_count             NUMBER;
258       l_msg_data              VARCHAR2 (512);
259       l_act_deliverable_id   NUMBER;
260       l_deliverables_rec     ams_associations_pvt.association_rec_type;
261       l_temp_deliverables_rec     ams_associations_pvt.association_rec_type;
262       l_lookup_meaning        VARCHAR2 (80);
263 
264       CURSOR deliverable_cur
265       IS
266          SELECT
267          DLT.deliverable_name ,
268          DLV.custom_setup_id,
269          CAT.category_id,
270          OBJ.master_object_id,
271          OBJ.object_association_id,
272          OBJ.using_object_id,
273          CAT.category_name ,
274          OBJ.object_version_number,
275          OBJ.quantity_needed,
276          OBJ.fulfill_on_type_code,
277          OBJ.master_object_type,
278          OBJ.quantity_needed_by_date,
279          OBJ.USING_OBJECT_TYPE,
280           OBJ.primary_flag,
281           OBJ.USAGE_TYPE
282         FROM
283          AMS_OBJECT_ASSOCIATIONS OBJ,
284 	 AMS_DELIVERABLES_ALL_B DLV,
285 	AMS_DELIVERABLES_ALL_TL DLT,
286 	 AMS_CATEGORIES_TL CAT
287 	WHERE
288 	 OBJ.master_object_id = p_src_act_id AND
289 	 OBJ.USING_OBJECT_TYPE = 'DELV' AND
290 	 OBJ.USING_OBJECT_ID = DLV.DELIVERABLE_ID AND
291 	 OBJ.USING_OBJECT_ID = DLT.DELIVERABLE_ID AND
292 	 DLT.LANGUAGE = USERENV('LANG') AND
293 	 DLV.CATEGORY_TYPE_ID = CAT.CATEGORY_ID AND
294 	 CAT.LANGUAGE = USERENV('LANG') AND
295 	 OBJ.master_object_type =p_src_act_type;
296    BEGIN
297       p_errcode := NULL;
298       p_errnum := 0;
299       p_errmsg := NULL;
300       l_stmt_num := 1;
301 IF p_src_act_id IS NOT NULL THEN
302 IF (AMS_DEBUG_HIGH_ON) THEN
303 
304     AMS_UTILITY_PVT.debug_message('the  deliverable copying: ');
305 END IF;
306  IF (AMS_DEBUG_HIGH_ON) THEN
307 
308      AMS_UTILITY_PVT.debug_message('the  p_src_act_id: ' ||  p_src_act_id||'\n');
309  END IF;
310  IF (AMS_DEBUG_HIGH_ON) THEN
311 
312      AMS_UTILITY_PVT.debug_message('the  p_new_act_id: ' ||  p_new_act_id||'\n');
313  END IF;
314  END IF;
315       FOR deliverable_rec IN deliverable_cur
316       LOOP
317          BEGIN
318             p_errcode := NULL;
319             p_errnum := 0;
320             p_errmsg := NULL;
321             l_deliverables_rec := l_temp_deliverables_rec;
322             l_deliverables_rec.master_object_id:= p_new_act_id;
323             l_deliverables_rec.master_object_type:=  NVL(p_new_act_type,p_src_act_type);
324 
325             l_deliverables_rec.using_object_id:= deliverable_rec.using_object_id;
326             l_deliverables_rec.object_version_number:= deliverable_rec.object_version_number;
327             l_deliverables_rec.quantity_needed := NULL;
328             l_deliverables_rec.fulfill_on_type_code := deliverable_rec.fulfill_on_type_code;
329             l_deliverables_rec.quantity_needed_by_date := deliverable_rec.quantity_needed_by_date;
330 			l_deliverables_rec.using_object_type:= deliverable_rec.using_object_type;
331             l_deliverables_rec.usage_type:= deliverable_rec.usage_type;
332             l_deliverables_rec.primary_flag:= deliverable_rec.primary_flag;
333             l_api_version := 1.0;
334             l_return_status := NULL;
335             x_msg_count := 0;
336             l_msg_data := NULL;
337              --Added for the bug fix : 5213670
338 	     if g_commit = null OR trim(g_commit) ='' THEN
339 	        g_commit:='T';
340 	      END IF;
341 	      --End Added for the bug fix : 5213670
342 	       ams_associations_pvt.create_association(
343                p_api_version => l_api_version,
344                p_init_msg_list => fnd_api.g_true,
345                p_commit=>g_commit,
346                p_validation_level=> FND_API.g_valid_level_full,
347                x_return_status => l_return_status,
348                x_msg_count => x_msg_count,
349                x_msg_data => l_msg_data,
350                 p_association_rec => l_deliverables_rec,
351 				x_object_association_id => l_act_deliverable_id
352                 );
353          --Added for the bug fix : 5213670
354          g_commit:='T';
355          IF l_return_status = fnd_api.g_ret_sts_error
356              OR l_return_status = fnd_api.g_ret_sts_unexp_error THEN
357             FOR l_counter IN 1 .. x_msg_count
358             LOOP
359                l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
360                l_stmt_num := 2;
361                p_errnum := 1;
362                p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
363                                   ' , ' || '): ' || l_counter ||
364                                   ' OF ' || x_msg_count, 1, 4000);
365                 ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
366                                                    p_src_act_id,
367                                                    p_errmsg,
368                                                    'ERROR'
369                                                   );
370            END LOOP;
371            END IF;
372            EXCEPTION
373              WHEN OTHERS THEN p_errcode := SQLCODE;
374                p_errnum := 3;
375                l_stmt_num := 4;
376               END;
377       END LOOP;
378    EXCEPTION
379       WHEN OTHERS
380       THEN
381          p_errcode := SQLCODE;
382          p_errnum := 4;
383          l_stmt_num := 5;
384          fnd_message.set_name ('AMS', 'AMS_COPY_ERROR3');
385          fnd_message.set_token ('ELEMENTS','AMS_COPY_DELIVMETHODS', TRUE);
386          l_mesg_text := fnd_message.get;
387          p_errmsg := SUBSTR ( l_mesg_text || TO_CHAR (l_stmt_num) ||
388                               ',' || '): ' || p_errcode || SQLERRM, 1, 4000);
389          ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
390                                              p_src_act_id,
391                                              p_errmsg,
392                                              'ERROR'
393                                           );
394    END copy_act_delivery_method;
395 
396  PROCEDURE copy_event_header_agenda(
397       p_src_act_type   IN       VARCHAR2,
398       p_new_act_type   IN       VARCHAR2 := NULL,
399       p_src_act_id     IN       NUMBER,
400       p_new_act_id     IN       NUMBER,
401       p_errnum         OUT NOCOPY      NUMBER,
402       p_errcode        OUT NOCOPY      VARCHAR2,
403       p_errmsg         OUT NOCOPY      VARCHAR2
404    )
405    IS
406  l_stmt_num          NUMBER;
407       l_name              VARCHAR2 (80);
408       l_mesg_text         VARCHAR2 (2000);
409       l_api_version       NUMBER;
410       l_return_status     VARCHAR2 (1);
411       x_msg_count         NUMBER;
412       l_msg_data          VARCHAR2 (512);
413       l_act_agenda_id   NUMBER;
414       l_agenda_rec    AMS_EventHeader_PVT.evh_rec_type;
415       temp_agenda_rec   AMS_EventHeader_PVT.evh_rec_type;
416       l_lookup_meaning    VARCHAR2 (80);
417 
418       CURSOR agenda_cur IS
419       SELECT
420          event_header_id
421 	,last_update_date
422 	,last_updated_by
423 	,creation_date
424 	,created_by
425 	,last_update_login
426 	,object_version_number
427 	,event_level
428 	,application_id
429 	,event_type_code
430 	,active_flag
431 	,private_flag
432 	,user_status_id
433 	,system_status_code
434 	,last_status_date
435 	,stream_type_code
436 	,source_code
437 	,event_standalone_flag
438 	,day_of_event
439 	,agenda_start_time
440 	,agenda_end_time
441 	,reg_required_flag
442 	,reg_charge_flag
443 	,reg_invited_only_flag
444 	,partner_flag
445 	,overflow_flag
446 	,parent_event_header_id
447 	,duration
448 	,duration_uom_code
449 	,active_from_date
450 	,active_to_date
451 	,reg_maximum_capacity
452 	,reg_minimum_capacity
453 	,main_language_code
454 	,cert_credit_type_code
455 	,certification_credits
456 	,inventory_item_id
457 	,organization_id
458 	,org_id
459 	,forecasted_revenue
460 	,actual_revenue
461 	,forecasted_cost
462 	,actual_cost
463 	,coordinator_id
464 	,fund_source_type_code
465 	,fund_source_id
466 	,fund_amount_tc
467 	,fund_amount_fc
468         ,currency_code_tc
469         ,currency_code_fc
470 	,owner_user_id
471 	,url
472 	,email
473 	,phone
474 	,priority_type_code
475 	,cancellation_reason_code
476 	,inbound_script_name
477 	,attribute_category
478 	,attribute1
479 	,attribute2
480 	,attribute3
481 	,attribute4
482 	,attribute5
483 	,attribute6
484 	,attribute7
485 	,attribute8
486 	,attribute9
487 	,attribute10
488 	,attribute11
489 	,attribute12
490 	,attribute13
491 	,attribute14
492 	,attribute15
493    	,event_header_name
494    	,event_mktg_message
495    	,description
496         ,setup_type_id
497         ,country_code
498         ,business_unit_id
499 	,event_calendar
500 	,start_period_name
501 	,end_period_name
502 	,global_flag
503 	,task_id
504 	,program_id
505 	,CREATE_ATTENDANT_LEAD_FLAG
506 	,CREATE_REGISTRANT_LEAD_FLAG
507           ,EVENT_PURPOSE_CODE
508  FROM ams_event_headers_vl
509  WHERE parent_event_header_id =  p_src_act_id
510       AND event_level='SUB';
511    BEGIN
512       p_errcode := NULL;
513       p_errnum := 0;
514       p_errmsg := NULL;
515       ams_utility_pvt.get_lookup_meaning ( 'AMS_SYS_ARC_QUALIFIER',
516                                            'AGEN',
517                                            l_return_status,
518                                            l_lookup_meaning
519                                         );
520       fnd_message.set_name ('AMS', 'AMS_COPY_ELEMENTS');
521       fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
522       l_mesg_text := fnd_message.get;
523       ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
524                                           p_src_act_id,
525                                           l_mesg_text,
526                                           'GENERAL'
527                                        );
528       l_stmt_num := 1;
529   -- copy agenda
530   IF p_src_act_id IS NOT NULL THEN
531  IF (AMS_DEBUG_HIGH_ON) THEN
532 
533      AMS_UTILITY_PVT.debug_message('the  p_src_act_id: ' ||  p_src_act_id||'\n');
534  END IF;
535  IF (AMS_DEBUG_HIGH_ON) THEN
536 
537      AMS_UTILITY_PVT.debug_message('the  p_new_act_id: ' ||  p_new_act_id||'\n');
538  END IF;
539  END IF;
540       FOR agenda_rec IN agenda_cur
541       LOOP
542          BEGIN
543              p_errcode := NULL;
544             p_errnum := 0;
545             p_errmsg := NULL;
546             l_api_version := 1.0;
547             l_return_status := NULL;
548             x_msg_count := 0;
549             l_msg_data := NULL;
550             l_act_agenda_id:=0;
551             l_agenda_rec.parent_event_header_id := p_new_act_id;
552 l_agenda_rec.event_header_name:= agenda_rec.event_header_name;
553 l_agenda_rec.active_from_date:= agenda_rec.active_from_date;
554 l_agenda_rec.active_to_date:= agenda_rec.active_to_date;
555 l_agenda_rec.application_id:=530;
556 l_agenda_rec.agenda_start_time := agenda_rec.agenda_start_time;
557 
558 l_agenda_rec.agenda_end_time   := agenda_rec.agenda_end_time;
559 l_agenda_rec.day_of_event  := agenda_rec.day_of_event;
560 l_agenda_rec.owner_user_id:=agenda_rec.owner_user_id;
561 l_agenda_rec.event_level:='SUB';
562 l_agenda_rec.user_status_id:=agenda_rec.user_status_id;
563      AMS_EventHeader_PVT.create_event_header (
564       p_api_version  => 1.0,
565       p_init_msg_list   => FND_API.G_FALSE,
566       p_commit          => FND_API.G_FALSE,
567       p_validation_level   =>  FND_API.g_valid_level_full,
568       x_return_status   => l_return_status,
569       x_msg_count       => x_msg_count,
570       x_msg_data        => l_msg_data,
571       p_evh_rec          => l_agenda_rec,
572        x_evh_id          => l_act_agenda_id
573    );
574 
575      IF (AMS_DEBUG_HIGH_ON) THEN
576 
577 
578 
579          AMS_UTILITY_PVT.debug_message('the  p_act_agenda_id: ' || l_act_agenda_id||'\n');
580 
581      END IF;
582 
583 
584          IF l_return_status = fnd_api.g_ret_sts_error
585              OR l_return_status = fnd_api.g_ret_sts_unexp_error THEN
586             FOR l_counter IN 1 .. x_msg_count
587             LOOP
588                l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
589                l_stmt_num := 2;
590                p_errnum := 1;
591                p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
592                                   ' , ' || '): ' || l_counter ||
593                                   ' OF ' || x_msg_count, 1, 4000);
594                 ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
595                                                    p_src_act_id,
596                                                    p_errmsg,
597                                                    'ERROR'
598                                                   );
599            END LOOP;
600            fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
601            fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
602            l_mesg_text := fnd_message.get;
603 
604            p_errmsg := SUBSTR ( l_mesg_text || ' - ' ||
605                                 AMS_Event_Objects_Copy_PVT.get_agenda_name (
606                                   agenda_rec.parent_event_header_id
607                                 ), 1, 4000);
608            ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
609                                                p_src_act_id,
610                                                p_errmsg,
611                                                'ERROR'
612                                             );
613            END IF;
614              EXCEPTION
615                 WHEN OTHERS THEN
616                    p_errcode := SQLCODE;
617                    p_errnum := 3;
618                    l_stmt_num := 4;
619                    fnd_message.set_name ('AMS', 'AMS_COPY_ERROR');
620                    fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
621                    l_mesg_text := fnd_message.get;
622                    p_errmsg := SUBSTR ( l_mesg_text ||
623                                         ',' || TO_CHAR (l_stmt_num) ||
624                                         ',' || '): ' || p_errcode ||
625                                         SQLERRM, 1, 4000);
626                fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
627                fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
628                l_mesg_text := fnd_message.get;
629                p_errmsg := SUBSTR ( l_mesg_text ||
630                                    AMS_Event_Objects_Copy_PVT.get_agenda_name (
631                                        agenda_rec.parent_event_header_id
632                                     ) || p_errmsg, 1, 4000);
633                ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
634                                                    p_src_act_id,
635                                                    p_errmsg,
636                                                    'ERROR'
637                                                 );
638                END;
639             END LOOP;
640 
641            EXCEPTION
642               WHEN OTHERS
643               THEN
644                  p_errcode := SQLCODE;
645                  p_errnum := 4;
646                  l_stmt_num := 5;
647                  fnd_message.set_name ('AMS', 'AMS_COPY_ERROR3');
648                  fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
649                  l_mesg_text := fnd_message.get;
650                  p_errmsg := SUBSTR ( l_mesg_text || TO_CHAR (l_stmt_num) ||
651                                       ',' || '): ' || p_errcode || SQLERRM,
652                                        1, 4000);
653                  ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
654                                                      p_src_act_id,
655                                                      p_errmsg,
656                                                      'ERROR'
657                                                   );
658    END copy_event_header_agenda;
659 
660 
661 PROCEDURE copy_event_header(
662     p_api_version                IN   NUMBER,
663     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
664     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
665     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
666 
667     x_return_status              OUT NOCOPY  VARCHAR2,
668     x_msg_count                  OUT NOCOPY  NUMBER,
669     x_msg_data                   OUT NOCOPY  VARCHAR2,
670 
671     p_source_object_id           IN   NUMBER,
672     p_attributes_table           IN   AMS_CpyUtility_PVT.copy_attributes_table_type,
673     p_copy_columns_table         IN   AMS_CpyUtility_PVT.copy_columns_table_type,
674 
675     x_new_object_id              OUT NOCOPY  NUMBER,
676     x_custom_setup_id            OUT NOCOPY  NUMBER
677    )
678 IS
679 
680    L_API_NAME                  CONSTANT VARCHAR2(30) := 'create_event_header';
681    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
682    l_return_status_full        VARCHAR2(1);
683    l_object_version_number     NUMBER(9) := 2;-- Copy 5171873
684    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
685    l_event_header_id               NUMBER:=p_source_object_id;
686    l_new_event_header_id           NUMBER;
687    l_dummy                     NUMBER;
688     p_event_header_rec        AMS_EventHeader_PVT.evh_rec_type;
689    l_evh_rec                  AMS_EventHeader_PVT.evh_rec_type;
690    l_reference_rec             AMS_EventHeader_PVT.evh_rec_type;
691    l_event_header_rec              AMS_EventHeader_PVT.evh_rec_type;
692    l_new_reference_rec         AMS_EventHeader_PVT.evh_rec_type;
693    l_return_status             VARCHAR2(1);
694    l_errnum          NUMBER;
695    l_errcode         VARCHAR2(30);
696    l_errmsg          VARCHAR2(4000);
697    --l_msg_count                 NUMBER;
698    --l_msg_data                  VARCHAR2;
699    l_custom_setup_id           NUMBER := 1;
700      -- these variables are for selective copying of event schedules with a particular parent event name
701    l_new_event_schedule_id           NUMBER;
702    l_tmp_event_schedule_id           NUMBER;
703    x_event_schedule_ids              VARCHAR2(3000);
704    l_event_schedule_ids              VARCHAR2(3000);
705    l_index                     NUMBER ;
706    l_length                    NUMBER;
707    l_counter                   NUMBER;
708    l_str_event_schedule_id           VARCHAR2(20);
709    l_copy_sched_cont_flag      VARCHAR2(1) := 'Y';
710 
711 BEGIN
712 
713    -- Standard Start of API savepoint
714    SAVEPOINT copy_event_header;
715 
716    -- Standard call to check for call compatibility.
717    IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
718                                         p_api_version,
719                                         l_api_name,
720                                         G_PKG_NAME)
721    THEN
722        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
723    END IF;
724 
725    -- Initialize message list if p_init_msg_list is set to TRUE.
726    IF FND_API.to_Boolean( p_init_msg_list )
727    THEN
728       FND_MSG_PUB.initialize;
729    END IF;
730 
731    -- Debug Message
732    IF (AMS_DEBUG_HIGH_ON) THEN
733 
734        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
735    END IF;
736     IF (AMS_DEBUG_HIGH_ON) THEN
737 
738         AMS_UTILITY_PVT.debug_message('the source object id: ' ||  p_source_object_id||'\n');
739     END IF;
740     IF (AMS_DEBUG_HIGH_ON) THEN
741 
742         AMS_UTILITY_PVT.debug_message('the new source object id: ' ||  x_new_object_id||'\n');
743     END IF;
744      IF (AMS_DEBUG_HIGH_ON) THEN
745 
746          AMS_UTILITY_PVT.debug_message('the source custom setup id: ' ||   x_custom_setup_id||'\n');
747      END IF;
748      FOR i IN 1..p_copy_columns_table.COUNT LOOP
749            IF (AMS_DEBUG_HIGH_ON) THEN
750 
751                AMS_UTILITY_PVT.debug_message('the'||i||'copy column name: '|| p_copy_columns_table(i).column_name||'\n');
752            END IF;
753 	   IF (AMS_DEBUG_HIGH_ON) THEN
754 
755 	       AMS_UTILITY_PVT.debug_message('the'||i||'copy column value: '|| p_copy_columns_table(i).column_value||'\n');
756 	   END IF;
757 
758 	   END LOOP;
759 
760     FOR i IN 1..p_attributes_table.COUNT LOOP
761         IF (AMS_DEBUG_HIGH_ON) THEN
762 
763             AMS_UTILITY_PVT.debug_message('the'||i||'attibute: '||p_attributes_table(i));
764         END IF;
765       END LOOP;
766    -- Initialize API return status to SUCCESS
767    x_return_status := FND_API.G_RET_STS_SUCCESS;
768 
769 
770    --
771    -- Start of API body
772    --
773 
774    -- ----------------------------
775    -- fetch source object details
776    -- ----------------------------
777 
778    AMS_EventHeader_PVT.init_evh_rec(p_event_header_rec);
779    p_event_header_rec.event_header_id:=p_source_object_id;
780     AMS_EventHeader_PVT.complete_evh_rec(p_event_header_rec,l_evh_rec);
781 
782    l_reference_rec:=l_evh_rec;
783    l_event_header_rec:=l_evh_rec;
784    l_event_header_rec.event_header_id := null;
785    l_event_header_rec.object_version_number := 2; -- Copy 5171873
786   -- l_event_header_rec.source_code := null;
787 
788 
789    -- ------------------------------
790    -- copy all required fields
791    -- i.e. copy values of all mandatory columns from the copy UI
792    -- Mandatory fields for EVEH are EventName,EventHeaderId,Start Date and End Date
793    -- for ams_event_headers_all_b table :
794    -- ------------------------------
795 
796 AMS_CpyUtility_PVT.get_column_value('startDate', p_copy_columns_table, l_event_header_rec.active_from_date);
797 l_event_header_rec.active_from_date:= NVL(l_event_header_rec.active_from_date , l_reference_rec.active_from_date);
798 AMS_CpyUtility_PVT.get_column_value('endDate', p_copy_columns_table, l_event_header_rec.active_to_date);
799 l_event_header_rec.active_to_date:= NVL( l_event_header_rec.active_to_date, l_reference_rec.active_to_date);
800 AMS_CpyUtility_PVT.get_column_value('newObjName', p_copy_columns_table, l_event_header_rec.event_header_name);
801 l_event_header_rec.event_header_name:= NVL( l_event_header_rec.event_header_name, l_reference_rec.event_header_name);
802  AMS_CpyUtility_PVT.get_column_value('ownerId', p_copy_columns_table,l_event_header_rec.owner_user_id);
803 l_event_header_rec.owner_user_id:= NVL(l_event_header_rec.owner_user_id, l_reference_rec.owner_user_id);
804 AMS_CpyUtility_PVT.get_column_value('newSrcCode', p_copy_columns_table, l_event_header_rec.source_code);
805 l_event_header_rec.source_code:= NVL(l_event_header_rec.source_code, NULL);
806  IF (AMS_DEBUG_HIGH_ON) THEN
807 
808      AMS_UTILITY_PVT.debug_message('the l_event_header_rec.source_code: '||l_event_header_rec.source_code);
809  END IF;
810 AMS_CpyUtility_PVT.get_column_value('countryId', p_copy_columns_table, l_event_header_rec.country_code);
811 l_event_header_rec.country_code:= NVL( l_event_header_rec.country_code, l_reference_rec.country_code);
812 AMS_CpyUtility_PVT.get_column_value('programId', p_copy_columns_table, l_event_header_rec.program_id);
813 -- batoleti   commneted the below stmt. Refer bug# 5388748 for more details on this.
814 --l_event_header_rec.program_id:= NVL(l_event_header_rec.program_id, l_reference_rec.program_id);
815    --
816    -- mandatory fields for eveh create are
817    -- name, lang, coordinator, currency, startDate,endDate
818    --
819 
820    AMS_CpyUtility_PVT.get_column_value ('langCode', p_copy_columns_table, l_event_header_rec.main_language_code );
821    l_event_header_rec.main_language_code := NVL (l_event_header_rec.main_language_code, l_reference_rec.main_language_code );
822 
823    AMS_CpyUtility_PVT.get_column_value ('currency', p_copy_columns_table, l_event_header_rec.currency_code_tc);
824    l_event_header_rec.currency_code_tc:= NVL (l_event_header_rec.currency_code_tc, l_reference_rec.currency_code_tc);
825 
826   -- Fields not to be copied
827 
828 
829 
830     l_event_header_rec.business_unit_id:= NULL;
831     l_event_header_rec.description:=NULL;
832     l_event_header_rec.start_period_name:= NULL;
833     l_event_header_rec.end_period_name:= NULL;
834     l_event_header_rec.user_status_id:=NULL;
835     l_event_header_rec.priority_type_code:=NULL;
836     l_event_header_rec.fund_amount_tc:= NULL;
837 
838     l_event_header_rec.INVENTORY_ITEM_ID:=NULL;
839     l_event_header_rec.FORECASTED_REVENUE:=NULL;
840     l_event_header_rec.ACTUAL_REVENUE:=NULL;
841     l_event_header_rec.FORECASTED_COST:=NULL;
842     l_event_header_rec.ACTUAL_COST:=NULL;
843     l_event_header_rec.FUND_SOURCE_TYPE_CODE:=NULL;
844     l_event_header_rec.FUND_SOURCE_ID:=NULL;
845     l_event_header_rec.FUND_AMOUNT_FC:=NULL;
846 
847 
848 
849 
850 
851 
852    -- ----------------------------
853    -- call create api
854  IF (AMS_DEBUG_HIGH_ON) THEN
855 
856      AMS_UTILITY_PVT.debug_message('HeaderId: ' || l_event_header_rec.event_header_id || 'start\n');
857  END IF;
858 
859 AMS_EventHeader_PVT.create_event_header (
860       p_api_version  => 1.0,
861       p_init_msg_list   => FND_API.G_FALSE,
862       p_commit          => FND_API.G_FALSE,
863       p_validation_level   =>  FND_API.g_valid_level_full,
864       x_return_status   => x_return_status,
865       x_msg_count       => x_msg_count,
866       x_msg_data        => x_msg_data,
867       p_evh_rec         => l_event_header_rec,
868       x_evh_id          => l_new_event_header_id
869    );
870 
871    IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
872        RAISE FND_API.G_EXC_ERROR;
873    END IF;
874    -- copy agenda
875    IF l_event_header_id IS NOT NULL THEN
876 
877  IF (AMS_DEBUG_HIGH_ON) THEN
878 
879 
880 
881      AMS_UTILITY_PVT.debug_message('the l_event_header_id: ' || l_event_header_id||'\n');
882 
883  END IF;
884 
885  IF (AMS_DEBUG_HIGH_ON) THEN
886 
887      AMS_UTILITY_PVT.debug_message('the l_new_event_header_id: ' || l_new_event_header_id||'\n');
888  END IF;
889 
890  END IF;
891 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_AGEN , p_attributes_table) = FND_API.G_TRUE THEN
892       copy_event_header_agenda (
893          p_src_act_type   => G_OBJECT_TYPE_MODEL,
894          p_new_act_type   => G_OBJECT_TYPE_MODEL,
895          p_src_act_id     => l_event_header_id,
896          p_new_act_id     => l_new_event_header_id,
897          p_errnum         => l_errnum,
898          p_errcode        => l_errcode,
899          p_errmsg         => l_errmsg
900       );
901       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
902           RAISE FND_API.G_EXC_ERROR;
903       END IF;
904    END IF;
905 
906    -- copy resources
907 /*   Commented by mukemar on may14 2002 we are not supporting the resource copy
908    IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_RESC, p_attributes_table) = FND_API.G_TRUE THEN
909       AMS_CopyElements_PVT.copy_act_resources (
910          p_src_act_type   => G_OBJECT_TYPE_MODEL,
911          p_new_act_type   => G_OBJECT_TYPE_MODEL,
912          p_src_act_id     => l_event_header_id,
913          p_new_act_id     =>  l_new_event_header_id,
914          p_errnum         => l_errnum,
915          p_errcode        => l_errcode,
916          p_errmsg         => l_errmsg
917       );
918    IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
919           RAISE FND_API.G_EXC_ERROR;
920       END IF;
921    END IF;
922    */
923 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_PROD, p_attributes_table) = FND_API.G_TRUE THEN
924       AMS_CopyElements_PVT.copy_act_prod (
925          p_src_act_type   => G_OBJECT_TYPE_MODEL,
926          p_new_act_type   => G_OBJECT_TYPE_MODEL,
927          p_src_act_id     => l_event_header_id,
928          p_new_act_id     => l_new_event_header_id,
929          p_errnum         => l_errnum,
930          p_errcode        => l_errcode,
931          p_errmsg         => l_errmsg
932       );
933       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
934           RAISE FND_API.G_EXC_ERROR;
935       END IF;
936    END IF;
937 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_GEOS, p_attributes_table) = FND_API.G_TRUE THEN
938       AMS_CopyElements_PVT.copy_act_geo_areas (
939          p_src_act_type   => G_OBJECT_TYPE_MODEL,
940          p_new_act_type   => G_OBJECT_TYPE_MODEL,
941          p_src_act_id     => l_event_header_id,
942          p_new_act_id     => l_new_event_header_id,
943          p_errnum         => l_errnum,
944          p_errcode        => l_errcode,
945          p_errmsg         => l_errmsg
946       );
947       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
948           RAISE FND_API.G_EXC_ERROR;
949       END IF;
950    END IF;
951 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_CELL, p_attributes_table) = FND_API.G_TRUE THEN
952       AMS_CopyElements_PVT.copy_act_market_segments (
953          p_src_act_type   => G_OBJECT_TYPE_MODEL,
954          p_new_act_type   => G_OBJECT_TYPE_MODEL,
955          p_src_act_id     => l_event_header_id,
956          p_new_act_id     => l_new_event_header_id,
957          p_errnum         => l_errnum,
958          p_errcode        => l_errcode,
959          p_errmsg         => l_errmsg
960       );
961       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
962           RAISE FND_API.G_EXC_ERROR;
963       END IF;
964    END IF;
965 
966    -- copy categories
967 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_CATG, p_attributes_table) = FND_API.G_TRUE THEN
968       AMS_CopyElements_PVT.copy_act_categories (
969          p_src_act_type   => G_OBJECT_TYPE_MODEL,
970          p_new_act_type   => G_OBJECT_TYPE_MODEL,
971          p_src_act_id     => l_event_header_id,
972          p_new_act_id     => l_new_event_header_id,
973          p_errnum         => l_errnum,
974          p_errcode        => l_errcode,
975          p_errmsg         => l_errmsg
976       );
977       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
978           RAISE FND_API.G_EXC_ERROR;
979       END IF;
980    END IF;
981 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_ATCH, p_attributes_table) = FND_API.G_TRUE THEN
982       AMS_CopyElements_PVT.copy_act_attachments (
983          p_src_act_type   => G_OBJECT_TYPE_MODEL,
984          p_new_act_type   => G_OBJECT_TYPE_MODEL,
985          p_src_act_id     => l_event_header_id,
986          p_new_act_id     => l_new_event_header_id,
987          p_errnum         => l_errnum,
988          p_errcode        => l_errcode,
989          p_errmsg         => l_errmsg
990       );
991       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
992           RAISE FND_API.G_EXC_ERROR;
993       END IF;
994    END IF;
995 
996 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_MESG, p_attributes_table) = FND_API.G_TRUE THEN
997       AMS_CopyElements_PVT.copy_act_messages(
998          p_src_act_type   => G_OBJECT_TYPE_MODEL,
999          p_new_act_type   => G_OBJECT_TYPE_MODEL,
1000          p_src_act_id     => l_event_header_id,
1001          p_new_act_id     => l_new_event_header_id,
1002          p_errnum         => l_errnum,
1003          p_errcode        => l_errcode,
1004          p_errmsg         => l_errmsg
1005       );
1006       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1007           RAISE FND_API.G_EXC_ERROR;
1008       END IF;
1009    END IF;
1010 
1011 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_DELV, p_attributes_table) = FND_API.G_TRUE THEN
1012       --Added for the bug fix : 5213670
1013       g_commit:='F';
1014       copy_act_delivery_method(
1015          p_src_act_type   => G_OBJECT_TYPE_MODEL,
1016          p_new_act_type   => G_OBJECT_TYPE_MODEL,
1017          p_src_act_id     => l_event_header_id,
1018          p_new_act_id     => l_new_event_header_id,
1019          p_errnum         => l_errnum,
1020          p_errcode        => l_errcode,
1021          p_errmsg         => l_errmsg
1022       );
1023 
1024       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1025           RAISE FND_API.G_EXC_ERROR;
1026       END IF;
1027    END IF;
1028 
1029 
1030 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_EVEO, p_attributes_table) = FND_API.G_TRUE THEN
1031 
1032        -- Get the Schedule Ids as comma separated variables.
1033        IF (AMS_DEBUG_HIGH_ON) THEN
1034 
1035            AMS_UTILITY_PVT.debug_message('Getting scheduleid values');
1036        END IF;
1037 
1038        AMS_CpyUtility_PVT.get_column_value ('eventScheduleIdRec', p_copy_columns_table, x_event_schedule_ids);
1039        l_event_schedule_ids := NVL (x_event_schedule_ids, '');
1040 
1041        FOR i IN 1..p_copy_columns_table.COUNT LOOP
1042          --  IF (AMS_DEBUG_HIGH_ON) THEN    Ams_Utility_Pvt.debug_message('The Initial Vlues:' || p_copy_columns_table(i).column_name);  END IF;
1043 		   --  IF (AMS_DEBUG_HIGH_ON) THEN    Ams_Utility_Pvt.debug_message('The Initial Vlues:' || p_copy_columns_table(i).column_value);  END IF;
1044 		     IF (p_copy_columns_table(i).column_name = 'eventScheduleIdRec'
1045 		         AND  p_copy_columns_table(i).column_value = 'undefined' )THEN
1046 	             l_copy_sched_cont_flag := 'N';
1047 		     END IF;
1048 
1049        END LOOP;
1050 
1051        IF (AMS_DEBUG_HIGH_ON) THEN
1052 
1053 
1054 
1055            AMS_UTILITY_PVT.debug_message('eventScheduleId Rec:' || l_event_schedule_ids);
1056 
1057        END IF;
1058 
1059        WHILE (l_copy_sched_cont_flag <> 'N') LOOP
1060 
1061            -- Separate comma separated l_schedule_ids to number values and use for copy
1062            l_index := INSTR(l_event_schedule_ids,',');
1063 
1064            IF l_index > 0 THEN
1065               l_str_event_schedule_id := SUBSTR(l_event_schedule_ids, 1, l_index-1);
1066               l_tmp_event_schedule_id := TO_NUMBER(l_str_event_schedule_id);
1067               l_event_schedule_ids := SUBSTR(l_event_schedule_ids, l_index+1);
1068            ELSE
1069               l_copy_sched_cont_flag := 'N';
1070               l_tmp_event_schedule_id := TO_NUMBER(l_event_schedule_ids);
1071            END IF;
1072 
1073 
1074            IF l_tmp_event_schedule_id IS NOT NULL THEN
1075               IF (AMS_DEBUG_HIGH_ON) THEN
1076 
1077                   AMS_UTILITY_PVT.debug_message('calling event schedule copy for event_schedule id:' || l_tmp_event_schedule_id);
1078               END IF;
1079 
1080               copy_act_offers(
1081                  p_src_act_type   => G_OBJECT_TYPE_MODEL,
1082                  p_new_act_type   => G_OBJECT_TYPE_MODEL,
1083                  p_src_act_id     => l_tmp_event_schedule_id,
1084                  p_new_act_id     => l_new_event_header_id,
1085 	         p_errnum         => l_errnum,
1086                  p_errcode        => l_errcode,
1087                  p_errmsg         => l_errmsg
1088                );
1089 
1090 
1091                IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1092                  RAISE FND_API.G_EXC_ERROR;
1093                END IF;
1094            END IF;
1095 
1096         END LOOP; -- WHILE (l_copy_sched_cont_flag <> 'N')
1097   END IF;
1098 
1099 
1100    p_event_header_rec.event_header_id:=l_new_event_header_id;
1101    AMS_EVENTHEADER_PVT.complete_evh_rec(p_event_header_rec,l_new_reference_rec);
1102    x_new_object_id:= l_new_event_header_id;
1103    x_custom_setup_id:= l_new_reference_rec.custom_setup_id;
1104 
1105 
1106 
1107    IF FND_API.to_Boolean( p_commit )
1108    THEN
1109       COMMIT WORK;
1110    END IF;
1111 
1112    -- Debug Message
1113    IF (AMS_DEBUG_HIGH_ON) THEN
1114 
1115        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1116    END IF;
1117 
1118    -- Standard call to get message count and if count is 1, get message info.
1119    FND_MSG_PUB.Count_And_Get
1120         (p_count          =>   x_msg_count,
1121          p_data           =>   x_msg_data
1122       );
1123 
1124 
1125  EXCEPTION
1126    WHEN FND_API.G_EXC_ERROR THEN
1127       ROLLBACK TO copy_event_header;
1128       x_return_status := FND_API.G_RET_STS_ERROR;
1129       -- Standard call to get message count and if count=1, get the message
1130       FND_MSG_PUB.Count_And_Get (
1131              p_encoded => FND_API.G_FALSE,
1132              p_count   => x_msg_count,
1133              p_data    => x_msg_data
1134       );
1135    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1136       ROLLBACK TO copy_event_header;
1137       x_return_status := FND_API.G_RET_STS_UNEXP_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 OTHERS THEN
1146       ROLLBACK TO copy_event_header;
1147       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1148       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1149          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1150       END IF;
1151       -- Standard call to get message count and if count=1, get the message
1152       FND_MSG_PUB.Count_And_Get (
1153              p_encoded => FND_API.G_FALSE,
1154              p_count => x_msg_count,
1155              p_data  => x_msg_data
1156       );
1157 
1158 
1159 END copy_event_header;
1160 
1161 END AMS_Event_Objects_Copy_PVT;