DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_EVENTSCHEDULE_COPY_PVT

Source


1 PACKAGE BODY AMS_EventSchedule_Copy_PVT  AS
2 /* $Header: amsvescb.pls 120.6 2006/05/16 02:04:26 batoleti noship $ */
3 
4 g_pkg_name   CONSTANT VARCHAR2(30):='AMS_EventSchedule_Copy_PVT';
5 g_file_name  CONSTANT VARCHAR2(12):='amsvescb.pls';
6 G_OBJECT_TYPE_MODEL       CONSTANT VARCHAR2(30) := 'EVEO';
7 
8 G_ATTRIBUTE_GEOS          CONSTANT VARCHAR2(30) := 'GEOS';
9 G_ATTRIBUTE_CELL          CONSTANT VARCHAR2(30) := 'CELL';
10 -- Debug mode
11 -- g_debug boolean := FALSE;
12 -- g_debug boolean := TRUE;
13 
14 --   ==============================================================================
15 --    Start of Comments
16 --   ==============================================================================
17 --   API Name
18 --           Copy_event_offer
19 --
20 --   Description
21 --           To support the "Copy Event Schedules" 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 --      31-Jul-2002   GMADANA  Copying Start date time and End date time for
28 --                    Event Schedule.
29 --   ==============================================================================
30 
31 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
32 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
33 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
34 
35 FUNCTION get_agenda_name (p_agenda_id IN NUMBER)
36       RETURN VARCHAR2
37    IS
38       -- PL/SQL Block
39       l_name   VARCHAR2 (256);
40         CURSOR c_agenda_name(p_agenda_id IN NUMBER)    IS
41         SELECT   event_offer_name
42           FROM     ams_event_offers_vl
43           WHERE  parent_event_offer_id = p_agenda_id;
44 
45    BEGIN
46 
47       OPEN c_agenda_name(p_agenda_id);
48       FETCH c_agenda_name INTO l_name;
49       CLOSE c_agenda_name;
50 
51       RETURN '"' || l_name || '" ';
52    EXCEPTION
53       WHEN OTHERS
54       THEN
55          RETURN '"' || p_agenda_id || '"';
56    END get_agenda_name;
57 
58 PROCEDURE copy_act_delivery_method(
59       p_src_act_type   IN       VARCHAR2,
60       p_new_act_type   IN       VARCHAR2 := NULL,
61       p_src_act_id     IN       NUMBER,
62       p_new_act_id     IN       NUMBER,
63       p_errnum         OUT NOCOPY      NUMBER,
64       p_errcode        OUT NOCOPY      VARCHAR2,
65       p_errmsg         OUT NOCOPY      VARCHAR2
66    )
67    IS
68       -- PL/SQL Block
69       l_stmt_num              NUMBER;
70       l_name                  VARCHAR2 (80);
71       l_mesg_text             VARCHAR2 (2000);
72       l_api_version           NUMBER;
73       l_return_status         VARCHAR2 (1);
74       x_msg_count             NUMBER;
75       l_msg_data              VARCHAR2 (512);
76       l_act_deliverable_id   NUMBER;
77       l_deliverables_rec     ams_associations_pvt.association_rec_type;
78       l_temp_deliverables_rec     ams_associations_pvt.association_rec_type;
79       l_lookup_meaning        VARCHAR2 (80);
80 
81       CURSOR deliverable_cur
82       IS
83          SELECT
84          DLT.deliverable_name ,
85          DLV.custom_setup_id,
86          CAT.category_id,
87          OBJ.master_object_id,
88          OBJ.object_association_id,
89          OBJ.using_object_id,
90          CAT.category_name ,
91          OBJ.object_version_number,
92          OBJ.quantity_needed,
93          OBJ.fulfill_on_type_code,
94          OBJ.master_object_type,
95          OBJ.quantity_needed_by_date,
96 		 OBJ.USING_OBJECT_TYPE,
97           OBJ.primary_flag,
98 	  OBJ.USAGE_TYPE
99 	FROM
100 	 AMS_OBJECT_ASSOCIATIONS OBJ,
101 	 AMS_DELIVERABLES_ALL_B DLV,
102 	AMS_DELIVERABLES_ALL_TL DLT,
103 	 AMS_CATEGORIES_TL CAT
104 	WHERE
105 	 OBJ.master_object_id = p_src_act_id AND
106 	 OBJ.USING_OBJECT_TYPE = 'DELV' AND
107 	 OBJ.USING_OBJECT_ID = DLV.DELIVERABLE_ID AND
108 	 OBJ.USING_OBJECT_ID = DLT.DELIVERABLE_ID AND
109 	 DLT.LANGUAGE = USERENV('LANG') AND
110 	 DLV.CATEGORY_TYPE_ID = CAT.CATEGORY_ID AND
111 	 CAT.LANGUAGE = USERENV('LANG') AND
112 	 OBJ.master_object_type =p_src_act_type;
113    BEGIN
114       p_errcode := NULL;
115       p_errnum := 0;
116       p_errmsg := NULL;
117       l_stmt_num := 1;
118 IF p_src_act_id IS NOT NULL THEN
119 IF (AMS_DEBUG_HIGH_ON) THEN
120 
121     AMS_UTILITY_PVT.debug_message('the  deliverable copying: ');
122 END IF;
123  IF (AMS_DEBUG_HIGH_ON) THEN
124 
125      AMS_UTILITY_PVT.debug_message('the  p_src_act_id: ' ||  p_src_act_id||'\n');
126  END IF;
127  IF (AMS_DEBUG_HIGH_ON) THEN
128 
129      AMS_UTILITY_PVT.debug_message('the  p_new_act_id: ' ||  p_new_act_id||'\n');
130  END IF;
131  END IF;
132       FOR deliverable_rec IN deliverable_cur
133       LOOP
134          BEGIN
135             p_errcode := NULL;
136             p_errnum := 0;
137             p_errmsg := NULL;
138             l_deliverables_rec := l_temp_deliverables_rec;
139             l_deliverables_rec.master_object_id:= p_new_act_id;
140             l_deliverables_rec.master_object_type:=  NVL(p_new_act_type,p_src_act_type);
141 
142             l_deliverables_rec.using_object_id:= deliverable_rec.using_object_id;
143             l_deliverables_rec.object_version_number:= deliverable_rec.object_version_number;
144             l_deliverables_rec.quantity_needed := NULL;
145             l_deliverables_rec.fulfill_on_type_code := deliverable_rec.fulfill_on_type_code;
146             l_deliverables_rec.quantity_needed_by_date := deliverable_rec.quantity_needed_by_date;
147 			   l_deliverables_rec.using_object_type:= deliverable_rec.using_object_type;
148             l_deliverables_rec.usage_type:= deliverable_rec.usage_type;
149             l_deliverables_rec.primary_flag:= deliverable_rec.primary_flag;
150             l_api_version := 1.0;
151             l_return_status := NULL;
152             x_msg_count := 0;
153             l_msg_data := NULL;
154                ams_associations_pvt.create_association(
155                p_api_version => l_api_version,
156                p_init_msg_list => fnd_api.g_true,
157                p_commit=>fnd_api.g_true,
158                p_validation_level=> FND_API.g_valid_level_full,
159                x_return_status => l_return_status,
160                x_msg_count => x_msg_count,
161                x_msg_data => l_msg_data,
162                 p_association_rec => l_deliverables_rec,
163 			    	x_object_association_id => l_act_deliverable_id
164                 );
165 
166 
167          IF l_return_status = fnd_api.g_ret_sts_error
168              OR l_return_status = fnd_api.g_ret_sts_unexp_error THEN
169             FOR l_counter IN 1 .. x_msg_count
170             LOOP
171                l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
172                l_stmt_num := 2;
173                p_errnum := 1;
174                p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
175                                   ' , ' || '): ' || l_counter ||
176                                   ' OF ' || x_msg_count, 1, 4000);
177                 ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
178                                                    p_src_act_id,
179                                                    p_errmsg,
180                                                    'ERROR'
181                                                   );
182            END LOOP;
183            END IF;
184            EXCEPTION
185              WHEN OTHERS THEN p_errcode := SQLCODE;
186                p_errnum := 3;
187                l_stmt_num := 4;
188               END;
189       END LOOP;
190    EXCEPTION
191       WHEN OTHERS
192       THEN
193          p_errcode := SQLCODE;
194          p_errnum := 4;
195          l_stmt_num := 5;
196          fnd_message.set_name ('AMS', 'AMS_COPY_ERROR3');
197          fnd_message.set_token ('ELEMENTS','AMS_COPY_DELIVMETHODS', TRUE);
198          l_mesg_text := fnd_message.get;
199          p_errmsg := SUBSTR ( l_mesg_text || TO_CHAR (l_stmt_num) ||
200                               ',' || '): ' || p_errcode || SQLERRM, 1, 4000);
201          ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
202                                              p_src_act_id,
203                                              p_errmsg,
204                                              'ERROR'
205                                           );
206    END copy_act_delivery_method;
207 
208 /* PROCEDURE copy_event_schedule_agenda(
209       p_src_act_type   IN       VARCHAR2,
210       p_new_act_type   IN       VARCHAR2 := NULL,
211       p_src_act_id     IN       NUMBER,
212       p_new_act_id     IN       NUMBER,
213       p_errnum         OUT NOCOPY      NUMBER,
214       p_errcode        OUT NOCOPY      VARCHAR2,
215       p_errmsg         OUT NOCOPY      VARCHAR2
216    )
217    IS
218  l_stmt_num          NUMBER;
219       l_name              VARCHAR2 (80);
220       l_mesg_text         VARCHAR2 (2000);
221       l_api_version       NUMBER;
222       l_return_status     VARCHAR2 (1);
223       x_msg_count         NUMBER;
224       l_msg_data          VARCHAR2 (512);
225       l_act_agenda_id   NUMBER;
226       l_agenda_rec   AMS_EventOffer_PVT.evo_rec_type;
227       temp_agenda_rec   AMS_EventOffer_PVT.evo_rec_type;
228       l_lookup_meaning    VARCHAR2 (80);
229  CURSOR agenda_cur IS
230  select
231       EVENT_OFFER_ID
232          ,LAST_UPDATE_DATE
233          ,LAST_UPDATED_BY
234           ,CREATION_DATE
235           ,CREATED_BY
236           ,LAST_UPDATE_LOGIN
237 	 ,OBJECT_VERSION_NUMBER
238 	 ,APPLICATION_ID
239 	 ,PRIVATE_FLAG
240 	 ,ACTIVE_FLAG
241 	 ,SOURCE_CODE
242 	 ,EVENT_LEVEL
243 	 ,USER_STATUS_ID
244 	 ,LAST_STATUS_DATE
245 	 ,SYSTEM_STATUS_CODE
246 	 ,EVENT_TYPE_CODE
247 	 ,EVENT_DELIVERY_METHOD_ID
248 	 ,''
249 	 ,EVENT_REQUIRED_FLAG
250 	 ,EVENT_LANGUAGE_CODE
251 	 ,EVENT_LOCATION_ID
252 	 ,''
253 	 ,''
254 	 ,''
255 	 ,''
256 	 ,OVERFLOW_FLAG
257 	 ,PARTNER_FLAG
258 	 ,EVENT_STANDALONE_FLAG
259 	 ,REG_FROZEN_FLAG
260 	 ,REG_REQUIRED_FLAG
261 	 ,REG_CHARGE_FLAG
262 	 ,REG_INVITED_ONLY_FLAG
263 	 ,REG_WAITLIST_ALLOWED_FLAG
264 	 ,REG_OVERBOOK_ALLOWED_FLAG
265 	 ,PARENT_EVENT_OFFER_ID
266 	 ,EVENT_DURATION
267 	 ,EVENT_DURATION_UOM_CODE
268 	, EVENT_START_DATE
269 	 ,EVENT_START_DATE_TIME
270 	 ,EVENT_END_DATE
271 	 ,EVENT_END_DATE_TIME
272 	 ,REG_START_DATE
273 	 ,REG_START_TIME
274 	 ,REG_END_DATE
275 	 ,REG_END_TIME
276 	 ,REG_MAXIMUM_CAPACITY
277 	 ,REG_OVERBOOK_PCT
278 	 ,REG_EFFECTIVE_CAPACITY
279 	 ,REG_WAITLIST_PCT
280 	 ,REG_MINIMUM_CAPACITY
281 	 ,REG_MINIMUM_REQ_BY_DATE
282 	 ,INVENTORY_ITEM_ID
283 	 ,''
284 	 ,ORGANIZATION_ID
285 	 ,PRICELIST_header_ID
286 	 ,PRICELIST_LINE_ID
287 	 ,ORG_ID
288 	 ,WAITLIST_ACTION_TYPE_CODE
289 	 ,STREAM_TYPE_CODE
290 	 ,OWNER_USER_ID
291 	 ,EVENT_FULL_FLAG
292 	 ,FORECASTED_REVENUE
293 	 ,ACTUAL_REVENUE
294 	 ,FORECASTED_COST
295 	 ,ACTUAL_COST
296 	 ,FUND_SOURCE_TYPE_CODE
297 	 ,FUND_SOURCE_ID
298 	 ,CERT_CREDIT_TYPE_CODE
299 	 ,CERTIFICATION_CREDITS
300 	 ,COORDINATOR_ID
301 	 ,PRIORITY_TYPE_CODE
302 	 ,CANCELLATION_REASON_CODE
303 	 ,AUTO_REGISTER_FLAG
304 	 ,EMAIL
305 	 ,PHONE
306 	 ,FUND_AMOUNT_TC
307 	 ,FUND_AMOUNT_FC
308 	 ,CURRENCY_CODE_TC
309 	 ,CURRENCY_CODE_FC
310 	 ,URL
311 	 ,TIMEZONE_ID
312 	,EVENT_VENUE_ID
313 	,''
314 	,''
315 	,INBOUND_SCRIPT_NAME
316 	,ATTRIBUTE_CATEGORY
317 	,ATTRIBUTE1
318 	,ATTRIBUTE2
319 	 ,ATTRIBUTE3
320 	 ,ATTRIBUTE4
321 	 ,ATTRIBUTE5
322 	 ,ATTRIBUTE6
323 	 ,ATTRIBUTE7
324 	,ATTRIBUTE8
325 	 ,ATTRIBUTE9
326 	 ,ATTRIBUTE10
327 	 ,ATTRIBUTE11
328 	 ,ATTRIBUTE12
329 	 ,ATTRIBUTE13
330 	 ,ATTRIBUTE14
331 	 ,ATTRIBUTE15
332 	 ,EVENT_OFFER_NAME
333 	 ,EVENT_MKTG_MESSAGE
334 	 ,DESCRIPTION
335 	 ,SETUP_TYPE_ID
336 	 ,COUNTRY_CODE
337 	 ,BUSINESS_UNIT_ID
338 	 ,EVENT_CALENDAR
339 	 ,START_PERIOD_NAME
340 	 ,END_PERIOD_NAME
341 	 ,GLOBAL_FLAG
342 	 ,TASK_ID
343 	 --PROGRAM_ID
344 	 ,PARENT_TYPE
345 	 ,PARENT_ID
346 	,CREATE_ATTENDANT_LEAD_FLAG
347 	,CREATE_REGISTRANT_LEAD_FLAG
348 	,EVENT_OBJECT_TYPE
349 	,REG_TIMEZONE_ID
350 	,event_password
351 ,record_event_flag
352 ,allow_register_in_middle_flag
353 ,publish_attendees_flag
354 ,direct_join_flag
355 ,event_notification_method
356 ,actual_start_time
357 ,actual_end_time
358 ,SERVER_ID
359 ,owner_fnd_user_id
360 ,meeting_dial_in_info
361 ,meeting_email_subject
362 ,meeting_schedule_type
363 ,meeting_status
364 ,meeting_misc_info
365 ,publish_flag
366 ,meeting_encryption_key_code
367 ,number_of_attendees
368 ,EVENT_PURPOSE_CODE
369  FROM ams_event_offers_vl
370  WHERE parent_event_offer_id =  p_src_act_id
371       AND event_level='SUB';
372   BEGIN
373  p_errcode := NULL;
374       p_errnum := 0;
375       p_errmsg := NULL;
376       ams_utility_pvt.get_lookup_meaning ( 'AMS_SYS_ARC_QUALIFIER',
377                                            'AGEN',
378                                            l_return_status,
379                                            l_lookup_meaning
380                                         );
381       fnd_message.set_name ('AMS', 'AMS_COPY_ELEMENTS');
382       fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
383       l_mesg_text := fnd_message.get;
384       ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
385                                           p_src_act_id,
386                                           l_mesg_text,
387                                           'GENERAL'
388                                        );
389       l_stmt_num := 1;
390  IF p_src_act_id IS NOT NULL THEN
391  IF (AMS_DEBUG_HIGH_ON) THEN
392 
393      AMS_UTILITY_PVT.debug_message('the  p_src_act_id: ' ||  p_src_act_id||'\n');
394  END IF;
395  IF (AMS_DEBUG_HIGH_ON) THEN
396 
397      AMS_UTILITY_PVT.debug_message('the  p_new_act_id: ' ||  p_new_act_id||'\n');
398  END IF;
399  END IF;
400       FOR agenda_rec IN agenda_cur
401       LOOP
402          BEGIN
403              p_errcode := NULL;
404              p_errnum := 0;
405              p_errmsg := NULL;
406              l_api_version := 1.0;
407              l_return_status := NULL;
408              x_msg_count := 0;
409              l_msg_data := NULL;
410              l_act_agenda_id:=0;
411              l_agenda_rec.parent_event_offer_id := p_new_act_id;
412               l_agenda_rec.event_object_type:= agenda_rec.event_object_type;
413              l_agenda_rec.event_offer_name:= agenda_rec.event_offer_name;
414 	     l_agenda_rec.EVENT_START_DATE:= agenda_rec.EVENT_START_DATE;
415              l_agenda_rec.EVENT_START_DATE:= agenda_rec.EVENT_START_DATE;
416              l_agenda_rec.application_id:=530;
417              l_agenda_rec.EVENT_START_DATE_TIME:= agenda_rec.EVENT_START_DATE_TIME;
418 
419              l_agenda_rec.EVENT_END_DATE_TIME:= agenda_rec.EVENT_END_DATE_TIME;
420              l_agenda_rec.EVENT_START_DATE:= agenda_rec.EVENT_START_DATE;
421              l_agenda_rec.owner_user_id:=agenda_rec.owner_user_id;
422              l_agenda_rec.event_level:='SUB';
423              l_agenda_rec.user_status_id:=agenda_rec.user_status_id;
424 
425       AMS_EventOffer_PVT.create_event_offer (
426        p_api_version  => 1.0,
427        p_init_msg_list   => FND_API.G_FALSE,
428        p_commit          => FND_API.G_FALSE,
429        p_validation_level   =>  FND_API.g_valid_level_full,
430        p_evo_rec       => l_agenda_rec,
431        x_return_status   => l_return_status,
432        x_msg_count       => x_msg_count,
433        x_msg_data        => l_msg_data,
434        x_evo_id          => l_act_agenda_id
435       );
436 
437      IF (AMS_DEBUG_HIGH_ON) THEN
438 
439 
440 
441          AMS_UTILITY_PVT.debug_message('the  p_act_agenda_id: ' || l_act_agenda_id||'\n');
442 
443      END IF;
444 
445 
446 
447 
448          IF l_return_status = fnd_api.g_ret_sts_error
449              OR l_return_status = fnd_api.g_ret_sts_unexp_error THEN
450             FOR l_counter IN 1 .. x_msg_count
451             LOOP
452                l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
453                l_stmt_num := 2;
454                p_errnum := 1;
455                p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
456                                   ' , ' || '): ' || l_counter ||
457                                   ' OF ' || x_msg_count, 1, 4000);
458                 ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
459                                                    p_src_act_id,
460                                                    p_errmsg,
461                                                    'ERROR'
462                                                   );
463            END LOOP;
464            fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
465            fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
466            l_mesg_text := fnd_message.get;
467 
468            p_errmsg := SUBSTR ( l_mesg_text || ' - ' ||
469                                AMS_EventSchedule_Copy_PVT.get_agenda_name (
470                                   agenda_rec.parent_event_offer_id
471                                 ), 1, 4000);
472            ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
473                                                p_src_act_id,
474                                                p_errmsg,
475                                                'ERROR'
476                                             );
477            END IF;
478              EXCEPTION
479                 WHEN OTHERS THEN
480                    p_errcode := SQLCODE;
481                    p_errnum := 3;
482                    l_stmt_num := 4;
483                    fnd_message.set_name ('AMS', 'AMS_COPY_ERROR');
484                    fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
485                    l_mesg_text := fnd_message.get;
486                    p_errmsg := SUBSTR ( l_mesg_text ||
487                                         ',' || TO_CHAR (l_stmt_num) ||
488                                         ',' || '): ' || p_errcode ||
489                                         SQLERRM, 1, 4000);
490                fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
491                fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
492                l_mesg_text := fnd_message.get;
493                p_errmsg := SUBSTR ( l_mesg_text ||
494                                    AMS_EventSchedule_Copy_PVT.get_agenda_name (
495                                        agenda_rec.parent_event_offer_id
496                                     ) || p_errmsg, 1, 4000);
497                ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
498                                                    p_src_act_id,
499                                                    p_errmsg,
500                                                    'ERROR'
501                                                 );
502                END;
503             END LOOP;
504 
505            EXCEPTION
506               WHEN OTHERS
507               THEN
508                  p_errcode := SQLCODE;
509                  p_errnum := 4;
510                  l_stmt_num := 5;
511                  fnd_message.set_name ('AMS', 'AMS_COPY_ERROR3');
512                  fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
513                  l_mesg_text := fnd_message.get;
514                  p_errmsg := SUBSTR ( l_mesg_text || TO_CHAR (l_stmt_num) ||
515                                       ',' || '): ' || p_errcode || SQLERRM,
516                                        1, 4000);
517                  ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
518                                                      p_src_act_id,
519                                                      p_errmsg,
520                                                      'ERROR'
521                                                   );
522    END copy_event_schedule_agenda;
523 */
524 
525    -- soagrawa 12-may-2003 recoded the following procedure for bug# 2949268 for 11.5.8
526 PROCEDURE copy_event_schedule_agenda(
527       p_src_act_type   IN       VARCHAR2,
528       p_new_act_type   IN       VARCHAR2 := NULL,
529       p_src_act_id     IN       NUMBER,
530       p_new_act_id     IN       NUMBER,
531       p_errnum         OUT NOCOPY     NUMBER,
532       p_errcode        OUT NOCOPY     VARCHAR2,
533       p_errmsg         OUT NOCOPY     VARCHAR2
534    )
535 IS
536       l_stmt_num          NUMBER;
537       l_name              VARCHAR2 (80);
538       l_mesg_text         VARCHAR2 (2000);
539       l_api_version       NUMBER;
540       l_return_status     VARCHAR2 (1);
541       x_msg_count         NUMBER;
542       l_msg_data          VARCHAR2 (512);
543       l_act_track_id      NUMBER;
544       l_act_session_id    NUMBER;
545       l_lookup_meaning    VARCHAR2 (80);
546 
547       l_new_track_cur     Ams_agendas_pvt.agenda_rec_type ;
548       l_new_session_cur   Ams_agendas_pvt.agenda_rec_type ;
549 
550       l_old_ev_st_dt         DATE;
551       l_old_ev_end_dt        DATE;
552       l_new_ev_st_dt         DATE;
553       l_new_ev_end_dt        DATE;
554 
555       l_old_ev_duration      NUMBER;
556       l_new_ev_duration      NUMBER;
557 
558       CURSOR c_track_cur IS
559       SELECT coordinator_id, parent_type,parent_id,agenda_name,description,agenda_type, b.agenda_id --* perf fix
560         FROM ams_agendas_b b, ams_agendas_tl tl--ams_agendas_v SQL Rep perf fix
561        WHERE b.agenda_id = tl.agenda_id
562          AND tl.language = USERENV('LANG')
563          AND parent_id = p_src_act_id
564          AND agenda_type = 'TRACK'
565          AND active_flag = 'Y';                   --bug fix 3097466 by anchaudh on 14-Aug-2003.
566 
567       CURSOR c_session_cur(p_track_id NUMBER) IS
568       SELECT coordinator_id,parent_type,parent_id,agenda_name,description,agenda_type,b.agenda_id,
569              start_date_time, end_date_time
570         FROM ams_agendas_b b, ams_agendas_tl tl --ams_agendas_v SQL Rep Perf Fix
571        WHERE b.agenda_id = tl.agenda_id
572          AND tl.language = USERENV('LANG')
573          AND parent_id = p_track_id
574          AND agenda_type = 'SESSION'
575          AND active_flag = 'Y';                    --bug fix 3097466 by anchaudh on 14-Aug-2003.
576 
577       CURSOR c_ev_offer_det (p_event_offer_id NUMBER) IS
578       SELECT event_start_date, event_end_date
579         FROM ams_event_offers_all_b
580        WHERE event_offer_id = p_event_offer_id;
581 
582   BEGIN
583       p_errcode := NULL;
584       p_errnum := 0;
585       p_errmsg := NULL;
586 
587       ams_utility_pvt.get_lookup_meaning ( 'AMS_SYS_ARC_QUALIFIER',
588                                            'AGEN',
589                                            l_return_status,
590                                            l_lookup_meaning
591                                         );
592 
593       fnd_message.set_name ('AMS', 'AMS_COPY_ELEMENTS');
594       fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
595 
596       l_mesg_text := fnd_message.get;
597       ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
598                                           p_src_act_id,
599                                           l_mesg_text,
600                                           'GENERAL'
601                                        );
602 
603       l_stmt_num := 1;
604       IF p_src_act_id IS NOT NULL THEN
605               IF (AMS_DEBUG_HIGH_ON) THEN
606                   AMS_UTILITY_PVT.debug_message('the  p_src_act_id: ' ||  p_src_act_id||'\n');
607               END IF;
608             IF (AMS_DEBUG_HIGH_ON) THEN
609                 AMS_UTILITY_PVT.debug_message('the  p_new_act_id: ' ||  p_new_act_id||'\n');
610             END IF;
611       END IF;
612 
613       OPEN  c_ev_offer_det (p_src_act_id);
614       FETCH c_ev_offer_det INTO l_old_ev_st_dt, l_old_ev_end_dt;
615       CLOSE c_ev_offer_det;
616 
617       l_old_ev_duration := l_old_ev_end_dt - l_old_ev_st_dt;
618 
619       OPEN  c_ev_offer_det (p_new_act_id);
620       FETCH c_ev_offer_det INTO l_new_ev_st_dt, l_new_ev_end_dt;
621       CLOSE c_ev_offer_det;
622 
623       l_new_ev_duration := l_new_ev_end_dt - l_new_ev_st_dt;
624 
625       FOR l_track_cur IN c_track_cur
626       LOOP
627          BEGIN
628 
629              p_errcode := NULL;
630              p_errnum := 0;
631              p_errmsg := NULL;
632              l_api_version := 1.0;
633              l_return_status := NULL;
634              x_msg_count := 0;
635              l_msg_data := NULL;
636              l_act_track_id :=0;
637 
638              l_new_track_cur.coordinator_id          := l_track_cur.coordinator_id;
639              l_new_track_cur.parent_type             := l_track_cur.parent_type;
640              l_new_track_cur.agenda_name             := l_track_cur.agenda_name;
641              l_new_track_cur.description             := l_track_cur.description;
642              l_new_track_cur.agenda_type             := 'TRACK';
643              l_new_track_cur.application_id          := 530;
644              l_new_track_cur.parent_id               := p_new_act_id;
645 
646              AMS_AGENDAS_PVT.create_agenda (
647                 p_api_version      => 1.0,
648                 p_init_msg_list    => FND_API.G_FALSE,
649                 p_commit           => FND_API.G_FALSE,
650                 p_validation_level =>  FND_API.g_valid_level_full,
651                 p_agenda_rec       => l_new_track_cur,
652                 x_return_status    => l_return_status,
653                 x_msg_count        => x_msg_count,
654                 x_msg_data         => l_msg_data,
655                 x_agenda_id        => l_act_track_id
656              );
657 
658          IF (AMS_DEBUG_HIGH_ON) THEN
659              AMS_UTILITY_PVT.debug_message('the  p_act_agenda_id: ' || l_act_track_id||'\n');
660          END IF;
661              IF l_return_status = fnd_api.g_ret_sts_error
662                 OR l_return_status = fnd_api.g_ret_sts_unexp_error
663              THEN
664                 FOR l_counter IN 1 .. x_msg_count
665                 LOOP
666                   l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
667                   l_stmt_num := 2;
668                   p_errnum := 1;
669                   p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
670                                      ' , ' || '): ' || l_counter ||
671                                      ' OF ' || x_msg_count, 1, 4000);
672                    ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
673                                                       p_src_act_id,
674                                                       p_errmsg,
675                                                       'ERROR'
676                                                      );
677                 END LOOP;
678 
679                 fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
680                 fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
681                 l_mesg_text := fnd_message.get;
682 
683                 p_errmsg := SUBSTR ( l_mesg_text || ' - ' ||
684                                      AMS_EventSchedule_Copy_PVT.get_agenda_name (
685                                         l_track_cur.agenda_id
686                                       ), 1, 4000);
687                 ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
688                                                      p_src_act_id,
689                                                      p_errmsg,
690                                                      'ERROR'
691                                                   );
692              ELSE
693                 -- creating track was successful
694                 -- now create sessions
695                 FOR l_session_cur IN c_session_cur(l_track_cur.agenda_id)
696                 LOOP
697 
698                       p_errcode := NULL;
699                       p_errnum := 0;
700                       p_errmsg := NULL;
701                       l_api_version := 1.0;
702                       l_return_status := NULL;
703                       x_msg_count := 0;
704                       l_msg_data := NULL;
705                       l_act_session_id := null;
706 
707                       l_new_session_cur.coordinator_id          := l_session_cur.coordinator_id;
708                       l_new_session_cur.parent_type             := 'TRACK';
709                       l_new_session_cur.agenda_name             := l_session_cur.agenda_name;
710                       l_new_session_cur.description             := l_session_cur.description;
711                       l_new_session_cur.agenda_type             := 'SESSION';
712                       l_new_session_cur.application_id          := 530;
713                       l_new_session_cur.parent_id               := l_act_track_id;
714                       -- soagrawa 28-may-2003 removed copying room for reopened bug# 2949268
715                       --l_new_session_cur.room_id                 := l_session_cur.room_id;
716 
717 
718                       l_new_session_cur.start_date_time         := l_new_ev_st_dt + (l_session_cur.start_date_time - l_old_ev_st_dt ) ;
719                       l_new_session_cur.end_date_time           := l_new_session_cur.start_date_time + (l_session_cur.end_date_time - l_session_cur.start_date_time);
720 
721                       IF l_new_ev_duration < l_old_ev_duration
722                       THEN
723                          IF l_new_session_cur.start_date_time < l_new_ev_st_dt
724                             OR l_new_session_cur.end_date_time > l_new_ev_end_dt
725                          THEN
726                             l_new_session_cur.start_date_time := l_new_ev_end_dt - (l_session_cur.end_date_time - l_session_cur.start_date_time);
727                             l_new_session_cur.end_date_time := l_new_ev_end_dt;
728                          END IF;
729                       END IF;
730 
731                       AMS_AGENDAS_PVT.create_agenda (
732                          p_api_version      => 1.0,
733                          p_init_msg_list    => FND_API.G_FALSE,
734                          p_commit           => FND_API.G_FALSE,
735                          p_validation_level =>  FND_API.g_valid_level_full,
736                          p_agenda_rec       => l_new_session_cur,
737                          x_return_status    => l_return_status,
738                          x_msg_count        => x_msg_count,
739                          x_msg_data         => l_msg_data,
740                          x_agenda_id        => l_act_session_id
741                       );
742 
743                       IF l_return_status = fnd_api.g_ret_sts_error
744                          OR l_return_status = fnd_api.g_ret_sts_unexp_error
745                       THEN
746 
747                          FOR l_counter IN 1 .. x_msg_count
748                          LOOP
749                            l_mesg_text := fnd_msg_pub.get (p_encoded => fnd_api.g_false);
750                            l_stmt_num := 2;
751                            p_errnum := 1;
752                            p_errmsg := substr(l_mesg_text||' , '|| TO_CHAR (l_stmt_num) ||
753                                               ' , ' || '): ' || l_counter ||
754                                               ' OF ' || x_msg_count, 1, 4000);
755                             ams_cpyutility_pvt.write_log_mesg( p_src_act_type,
756                                                                p_src_act_id,
757                                                                p_errmsg,
758                                                                'ERROR'
759                                                               );
760                          END LOOP;
761 
762                          fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
763                          fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
764                          l_mesg_text := fnd_message.get;
765 
766                          p_errmsg := SUBSTR ( l_mesg_text || ' - ' ||
767                                               AMS_EventSchedule_Copy_PVT.get_agenda_name (
768                                                  l_session_cur.agenda_id
769                                                ), 1, 4000);
770                          ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
771                                                               p_src_act_id,
772                                                               p_errmsg,
773                                                               'ERROR'
774                                                            );
775                          END IF;
776 
777                 END LOOP;
778              END IF;
779 
780              EXCEPTION
781                 WHEN OTHERS THEN
782                          p_errcode := SQLCODE;
783                          p_errnum := 3;
784                          l_stmt_num := 4;
785                          fnd_message.set_name ('AMS', 'AMS_COPY_ERROR');
786                          fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
787                          l_mesg_text := fnd_message.get;
788                          p_errmsg := SUBSTR ( l_mesg_text ||
789                                               ',' || TO_CHAR (l_stmt_num) ||
790                                               ',' || '): ' || p_errcode ||
791                                               SQLERRM, 1, 4000);
792                          fnd_message.set_name ('AMS', 'AMS_COPY_ERROR2');
793                          fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
794                          l_mesg_text := fnd_message.get;
795                          p_errmsg := SUBSTR ( l_mesg_text ||
796                                             AMS_EventSchedule_Copy_PVT.get_agenda_name (
797                                                 l_new_track_cur.agenda_id
798                                              ) || p_errmsg, 1, 4000);
799                          ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
800                                                             p_src_act_id,
801                                                             p_errmsg,
802                                                             'ERROR'
803                                                          );
804                 END;
805       END LOOP;
806 
807   EXCEPTION
808               WHEN OTHERS
809               THEN
810                  p_errcode := SQLCODE;
811                  p_errnum := 4;
812                  l_stmt_num := 5;
813                  fnd_message.set_name ('AMS', 'AMS_COPY_ERROR3');
814                  fnd_message.set_token ('ELEMENTS', l_lookup_meaning, TRUE);
815                  l_mesg_text := fnd_message.get;
816                  p_errmsg := SUBSTR ( l_mesg_text || TO_CHAR (l_stmt_num) ||
817                                       ',' || '): ' || p_errcode || SQLERRM,
818                                        1, 4000);
819                  ams_cpyutility_pvt.write_log_mesg ( p_src_act_type,
820                                                      p_src_act_id,
821                                                      p_errmsg,
822                                                      'ERROR'
823                                                   );
824 END copy_event_schedule_agenda;
825 
826 
827 
828 PROCEDURE copy_event_schedule(
829     p_api_version                IN   NUMBER,
830     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
831     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
832     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
833 
834     x_return_status              OUT NOCOPY  VARCHAR2,
835     x_msg_count                  OUT NOCOPY  NUMBER,
836     x_msg_data                   OUT NOCOPY  VARCHAR2,
837 
838     p_source_object_id           IN   NUMBER,
839     p_attributes_table           IN   AMS_CpyUtility_PVT.copy_attributes_table_type,
840     p_copy_columns_table         IN   AMS_CpyUtility_PVT.copy_columns_table_type,
841 
842     x_new_object_id              OUT NOCOPY  NUMBER,
843     x_custom_setup_id            OUT NOCOPY  NUMBER
844      )
845 IS
846 
847    L_API_NAME                  CONSTANT VARCHAR2(30) := 'create_event_offer';
848    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
849    l_return_status_full        VARCHAR2(1);
850    l_object_version_number     NUMBER := 2;
851    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
852    l_event_offer_id            NUMBER :=p_source_object_id;
853    l_new_event_offer_id        NUMBER;
854    l_dummy                     NUMBER;
855    p_event_offer_rec           AMS_EVENTOFFER_PVT.evo_rec_type;
856    l_evo_rec                   AMS_EVENTOFFER_PVT.evo_rec_type;
857    l_reference_rec             AMS_EventOffer_PVT.evo_rec_type;
858    l_event_offer_rec           AMS_EventOffer_PVT.evo_rec_type;
859    l_new_reference_rec         AMS_EventOffer_PVT.evo_rec_type;
860    l_return_status             VARCHAR2(1);
861    l_errnum                    NUMBER;
862    l_errcode                   VARCHAR2(30);
863    l_errmsg                    VARCHAR2(4000);
864    --l_msg_count               NUMBER;
865    --l_msg_data                VARCHAR2;
866    l_custom_setup_id           NUMBER := 1;
867    l_event_object_type         VARCHAR2(30);
868    l_dlvmthd_code              VARCHAR2(30);
869    l_start_date                DATE := NULL;
870    l_end_date                  DATE := NULL;
871    l_ARC_ACT_CATEGORY_USED_BY  VARCHAR2(30);
872    l_rec_cnt                   NUMBER;
873 
874    CURSOR c_dlvmthd_code( event_offer_id IN NUMBER) IS
875    SELECT delivery_media_type_code
876    FROM Ams_act_delivery_methods
877    WHERE act_delivery_method_used_by_id = event_offer_id;
878 
879    CURSOR c_event_times( event_offer_id_in IN NUMBER) IS
880    SELECT event_start_date, event_end_date
881    FROM ams_event_offers_vl
882    WHERE event_offer_id = event_offer_id_in;
883 
884 
885  BEGIN
886 
887    -- Standard Start of API savepoint
888    SAVEPOINT copy_event_schedule;
889 
890    -- Standard call to check for call compatibility.
891    IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
892                                         p_api_version,
893                                         l_api_name,
894                                         G_PKG_NAME)
895    THEN
896        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
897    END IF;
898 
899    -- Initialize message list if p_init_msg_list is set to TRUE.
900    IF FND_API.to_Boolean( p_init_msg_list )
901    THEN
902       FND_MSG_PUB.initialize;
903    END IF;
904 
905    -- Debug Message
906    IF (AMS_DEBUG_HIGH_ON) THEN
907 
908        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
909    END IF;
910     IF (AMS_DEBUG_HIGH_ON) THEN
911 
912         AMS_UTILITY_PVT.debug_message('the source object id: ' ||  p_source_object_id||'\n');
913     END IF;
914     IF (AMS_DEBUG_HIGH_ON) THEN
915 
916         AMS_UTILITY_PVT.debug_message('the new source object id: ' ||  x_new_object_id||'\n');
917     END IF;
918      IF (AMS_DEBUG_HIGH_ON) THEN
919 
920          AMS_UTILITY_PVT.debug_message('the source custom setup id: ' ||   x_custom_setup_id||'\n');
921      END IF;
922      FOR i IN 1..p_copy_columns_table.COUNT LOOP
923            IF (AMS_DEBUG_HIGH_ON) THEN
924 
925                AMS_UTILITY_PVT.debug_message('the'||i||'copy column name: '|| p_copy_columns_table(i).column_name||'\n');
926            END IF;
927 	   IF (AMS_DEBUG_HIGH_ON) THEN
928 
929 	       AMS_UTILITY_PVT.debug_message('the'||i||'copy column value: '|| p_copy_columns_table(i).column_value||'\n');
930 	   END IF;
931           END LOOP;
932     FOR i IN 1..p_attributes_table.COUNT LOOP
933         IF (AMS_DEBUG_HIGH_ON) THEN
934 
935             AMS_UTILITY_PVT.debug_message('the'||i||'attibute: '||p_attributes_table(i));
936         END IF;
937       END LOOP;
938    -- Initialize API return status to SUCCESS
939   -- x_return_status := FND_API.G_RET_STS_SUCCESS;
940 
941 
942    --
943    -- Start of API body
944    --
945 
946    -- ----------------------------
947    -- fetch source object details
948    -- ----------------------------
949    AMS_EVENTOFFER_PVT.init_evo_rec(p_event_offer_rec);
950    p_event_offer_rec.event_offer_id:=p_source_object_id;
951    p_event_offer_rec.EVENT_DELIVERY_METHOD_CODE :=NULL;
952    AMS_EVENTOFFER_PVT.complete_evo_rec(p_event_offer_rec,l_evo_rec);
953    l_event_object_type:=l_evo_rec.event_object_type;
954    l_reference_rec:=l_evo_rec;
955    l_event_offer_rec:=l_evo_rec;
956    l_event_offer_rec.event_offer_id := null;
957   -- l_event_offer_rec.source_code := null;
958    -- ------------------------------
959    -- copy all required fields
960    -- i.e. copy values of all mandatory columns from the copy UI
961    -- Mandatory fields for EVEH are EventName,EventOfferId,Start Date and End Date
962    -- for ams_event_evos_all_b table :
963    -- ------------------------------
964 
965    OPEN c_event_times(p_event_offer_rec.event_offer_id);
966    FETCH c_event_times INTO l_start_date, l_end_date;
967    CLOSE c_event_times;
968 
969 
970    AMS_CpyUtility_PVT.get_column_value ('startDate', p_copy_columns_table, l_event_offer_rec.EVENT_START_DATE);
971    l_event_offer_rec.EVENT_START_DATE:= NVL (l_event_offer_rec.EVENT_START_DATE,l_reference_rec.EVENT_START_DATE);
972    AMS_CpyUtility_PVT.get_column_value ('endDate', p_copy_columns_table, l_event_offer_rec.EVENT_END_DATE);
973    l_event_offer_rec.EVENT_END_DATE:= NVL ( l_event_offer_rec.EVENT_END_DATE, l_reference_rec.EVENT_END_DATE);
974 
975    IF(l_start_date = l_event_offer_rec.EVENT_START_DATE)
976    THEN
977        AMS_CpyUtility_PVT.get_column_value ('startTime', p_copy_columns_table, l_event_offer_rec.EVENT_START_DATE_TIME);
978        l_event_offer_rec.EVENT_START_DATE_TIME:= NVL (l_event_offer_rec.EVENT_START_DATE_TIME,l_reference_rec.EVENT_START_DATE_TIME);
979    ELSE
980        l_event_offer_rec.EVENT_START_DATE_TIME:=NULL;
981    END IF;
982 
983    IF(l_end_date = l_event_offer_rec.EVENT_END_DATE)
984    THEN
985        AMS_CpyUtility_PVT.get_column_value ('endTime', p_copy_columns_table, l_event_offer_rec.EVENT_END_DATE_TIME);
986        l_event_offer_rec.EVENT_END_DATE_TIME:= NVL ( l_event_offer_rec.EVENT_END_DATE_TIME, l_reference_rec.EVENT_END_DATE_TIME);
987    ELSE
988        l_event_offer_rec.EVENT_END_DATE_TIME:=NULL;
989    END IF;
990 
991    AMS_CpyUtility_PVT.get_column_value ('newObjName', p_copy_columns_table, l_event_offer_rec.event_offer_name);
992    l_event_offer_rec.event_offer_name:= NVL ( l_event_offer_rec.event_offer_name, l_reference_rec.event_offer_name);
993    AMS_CpyUtility_PVT.get_column_value ('ownerId', p_copy_columns_table, l_event_offer_rec.owner_user_id);
994    l_event_offer_rec.owner_user_id:= NVL (l_event_offer_rec.owner_user_id, l_reference_rec.owner_user_id);
995    AMS_CpyUtility_PVT.get_column_value ('newSrcCode', p_copy_columns_table, l_event_offer_rec.source_code);
996    l_event_offer_rec.source_code:= NVL (l_event_offer_rec.source_code, NULL);
997    AMS_CpyUtility_PVT.get_column_value ('countryId', p_copy_columns_table, l_event_offer_rec.country_code);
998    l_event_offer_rec.country_code:= NVL (l_event_offer_rec.country_code, l_reference_rec.country_code);
999    AMS_CpyUtility_PVT.get_column_value ('langCode', p_copy_columns_table, l_reference_rec.event_language_code);
1000    l_event_offer_rec.event_language_code:= NVL (l_event_offer_rec.event_language_code, l_reference_rec.event_language_code);
1001    AMS_CpyUtility_PVT.get_column_value ('currency', p_copy_columns_table, l_reference_rec.currency_code_tc);
1002    l_event_offer_rec.currency_code_tc:= NVL (l_event_offer_rec.currency_code_tc, l_reference_rec.currency_code_tc);
1003 
1004    -- -------------------------------------------
1005    -- fields not to be copied
1006    -- -------------------------------------------
1007 
1008 
1009 
1010 
1011     l_event_offer_rec.event_venue_id             := NULL;
1012     l_event_offer_rec.business_unit_id           := NULL;
1013     l_event_offer_rec.reg_start_date             := NULL;
1014     l_event_offer_rec.reg_end_date               := NULL;
1015    -- l_event_offer_rec.event_delivery_method_id   := NULL;
1016     l_event_offer_rec.city                       :=NULL;
1017     l_event_offer_rec.state                      :=NULL;
1018     l_event_offer_rec.country                    :=NULL;
1019     l_event_offer_rec.description                :=NULL;
1020     l_event_offer_rec.start_period_name          :=NULL;
1021     l_event_offer_rec.end_period_name            := NULL;
1022     l_event_offer_rec.user_status_id             :=NULL;
1023     l_event_offer_rec.priority_type_code         :=NULL;
1024     l_event_offer_rec.INVENTORY_ITEM_ID          :=NULL;
1025     l_event_offer_rec.PRICELIST_HEADER_ID        :=NULL;
1026     l_event_offer_rec.PRICELIST_LINE_ID          :=NULL;
1027     l_event_offer_rec.FORECASTED_REVENUE         :=NULL;
1028     l_event_offer_rec.ACTUAL_REVENUE             :=NULL;
1029     l_event_offer_rec.FORECASTED_COST            :=NULL;
1030     l_event_offer_rec.ACTUAL_COST                :=NULL;
1031     l_event_offer_rec.FUND_SOURCE_TYPE_CODE      :=NULL;
1032     l_event_offer_rec.FUND_SOURCE_ID             :=NULL;
1033     l_event_offer_rec.FUND_AMOUNT_FC             :=NULL;
1034     l_event_offer_rec.FUND_AMOUNT_TC             :=NULL;
1035 
1036 
1037     -- Get the Delivery Method Code of the Event Schedule to be Copied(Source)
1038     -- and copy it for the new Event Schedule to be created.
1039     open c_dlvmthd_code(l_event_offer_id);
1040     fetch c_dlvmthd_code into l_dlvmthd_code;
1041     IF c_dlvmthd_code%NOTFOUND THEN
1042       close c_dlvmthd_code;
1043     ELSE
1044       l_event_offer_rec.event_delivery_method_code   := l_dlvmthd_code;
1045       close c_dlvmthd_code;
1046     END IF;
1047 
1048      -- ----------------------------
1049    -- call create api
1050  IF (AMS_DEBUG_HIGH_ON) THEN
1051 
1052      AMS_UTILITY_PVT.debug_message('offerId: ' || l_event_offer_rec.event_offer_id || 'start\n');
1053  END IF;
1054  IF (AMS_DEBUG_HIGH_ON) THEN
1055 
1056      AMS_UTILITY_PVT.debug_message('deliverable stuff: ' || l_event_offer_rec.event_delivery_method_code);
1057  END IF;
1058 
1059  l_event_offer_rec.object_version_number := 2;
1060  -- DBMS_OUTPUT.put_line('calling create with ');
1061 AMS_EventOffer_PVT.create_event_offer (
1062       p_api_version  => 1.0,
1063       p_init_msg_list   => FND_API.G_FALSE,
1064       p_commit          => FND_API.G_FALSE,
1065       p_validation_level   =>  FND_API.g_valid_level_full,
1066       p_evo_rec       => l_event_offer_rec,
1067       x_return_status   => x_return_status,
1068       x_msg_count       => x_msg_count,
1069       x_msg_data        => x_msg_data,
1070 
1071       x_evo_id          => l_new_event_offer_id
1072    );
1073 
1074    IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1075        RAISE FND_API.G_EXC_ERROR;
1076    END IF;
1077  IF (AMS_DEBUG_HIGH_ON) THEN
1078 
1079      AMS_UTILITY_PVT.debug_message('the l_event_header_id: ' || l_event_offer_id||'\n');
1080  END IF;
1081  IF (AMS_DEBUG_HIGH_ON) THEN
1082 
1083      AMS_UTILITY_PVT.debug_message('the l_new_event_header_id: ' || l_new_event_offer_id||'\n');
1084  END IF;
1085    -- copy agenda
1086 
1087  -- soagrawa 12-may-2003 uncommented for bug# 2949268 for 11.5.10
1088 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_AGEN , p_attributes_table) = FND_API.G_TRUE THEN
1089       copy_event_schedule_agenda (
1090          p_src_act_type   => l_event_object_type,
1091          p_new_act_type   => l_event_object_type,
1092          p_src_act_id     => l_event_offer_id,
1093          p_new_act_id     => l_new_event_offer_id,
1094          p_errnum         => l_errnum,
1095          p_errcode        => l_errcode,
1096          p_errmsg         => l_errmsg
1097         );
1098       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1099           RAISE FND_API.G_EXC_ERROR;
1100       END IF;
1101    END IF;
1102 
1103    -- copy resources
1104    /*Commented by mukemar on may14 2002 we are not supporting the resource copy
1105    IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_RESC, p_attributes_table) = FND_API.G_TRUE THEN
1106       AMS_CopyElements_PVT.copy_act_resources (
1107          p_src_act_type   => l_event_object_type,
1108          p_new_act_type   => l_event_object_type,
1109          p_src_act_id     => l_event_offer_id,
1110          p_new_act_id     => l_new_event_offer_id,
1111          p_errnum         => l_errnum,
1112          p_errcode        => l_errcode,
1113          p_errmsg         => l_errmsg
1114       );
1115    END IF;
1116    */
1117    -- copy categories
1118 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_CATG, p_attributes_table) = FND_API.G_TRUE THEN
1119       -- batoleti Ref bug# 5213664
1120       -- get the object type from act_actegories based on the original evet_offer_id..
1121 
1122       l_ARC_ACT_CATEGORY_USED_BY := NULL;
1123       l_rec_cnt := 0;
1124 
1125       select count(*) into l_rec_cnt
1126       FROM ams_act_categories
1127       where ACT_CATEGORY_USED_BY_ID = l_event_offer_id;
1128 
1129       IF (l_rec_cnt > 0) THEN
1130 
1131          SELECT ARC_ACT_CATEGORY_USED_BY
1132          INTO l_ARC_ACT_CATEGORY_USED_BY
1133          FROM ams_act_categories
1134          where ACT_CATEGORY_USED_BY_ID = l_event_offer_id;
1135 
1136      END IF;
1137 
1138       AMS_CopyElements_PVT.copy_act_categories (
1139          p_src_act_type   => nvl(l_ARC_ACT_CATEGORY_USED_BY,G_OBJECT_TYPE_MODEL),
1140          p_new_act_type   => nvl(l_ARC_ACT_CATEGORY_USED_BY,G_OBJECT_TYPE_MODEL),
1141          p_src_act_id     => l_event_offer_id,
1142          p_new_act_id     => l_new_event_offer_id,
1143          p_errnum         => l_errnum,
1144          p_errcode        => l_errcode,
1145          p_errmsg         => l_errmsg
1146       );
1147       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1148           RAISE FND_API.G_EXC_ERROR;
1149       END IF;
1150    END IF;
1151 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_PROD, p_attributes_table) = FND_API.G_TRUE THEN
1152       AMS_CopyElements_PVT.copy_act_prod (
1153          p_src_act_type   => l_event_object_type,
1154          p_new_act_type   => l_event_object_type,
1155          p_src_act_id     => l_event_offer_id,
1156          p_new_act_id     => l_new_event_offer_id,
1157          p_errnum         => l_errnum,
1158          p_errcode        => l_errcode,
1159          p_errmsg         => l_errmsg
1160       );
1161       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1162           RAISE FND_API.G_EXC_ERROR;
1163       END IF;
1164    END IF;
1165 IF AMS_CpyUtility_PVT.is_copy_attribute (G_ATTRIBUTE_GEOS, p_attributes_table) = FND_API.G_TRUE THEN
1166       AMS_CopyElements_PVT.copy_act_geo_areas (
1167          p_src_act_type   => l_event_object_type,
1168          p_new_act_type   => l_event_object_type,
1169          p_src_act_id     => l_event_offer_id,
1170          p_new_act_id     => l_new_event_offer_id,
1171          p_errnum         => l_errnum,
1172          p_errcode        => l_errcode,
1173          p_errmsg         => l_errmsg
1174       );
1175       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1176           RAISE FND_API.G_EXC_ERROR;
1177       END IF;
1178    END IF;
1179 IF AMS_CpyUtility_PVT.is_copy_attribute (G_ATTRIBUTE_CELL, p_attributes_table) = FND_API.G_TRUE THEN
1180       AMS_CopyElements_PVT.copy_act_market_segments (
1181          p_src_act_type   => l_event_object_type,
1182          p_new_act_type   => l_event_object_type,
1183          p_src_act_id     => l_event_offer_id,
1184          p_new_act_id     => l_new_event_offer_id,
1185          p_errnum         => l_errnum,
1186          p_errcode        => l_errcode,
1187          p_errmsg         => l_errmsg
1188       );
1189       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1190           RAISE FND_API.G_EXC_ERROR;
1191       END IF;
1192    END IF;
1193 
1194 IF AMS_CpyUtility_PVT.is_copy_attribute (AMS_EventSchedule_Copy_PVT.G_ATTRIBUTE_MESG, p_attributes_table) = FND_API.G_TRUE THEN
1195       AMS_CopyElements_PVT.copy_act_messages(
1196          p_src_act_type   => l_event_object_type,
1197          p_new_act_type   => l_event_object_type,
1198          p_src_act_id     => l_event_offer_id,
1199          p_new_act_id     => l_new_event_offer_id,
1200          p_errnum         => l_errnum,
1201          p_errcode        => l_errcode,
1202          p_errmsg         => l_errmsg
1203       );
1204       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1205           RAISE FND_API.G_EXC_ERROR;
1206       END IF;
1207    END IF;
1208 IF AMS_CpyUtility_PVT.is_copy_attribute(AMS_Event_Objects_Copy_PVT.G_ATTRIBUTE_DELV, p_attributes_table) = FND_API.G_TRUE THEN
1209     copy_act_delivery_method(
1210          p_src_act_type   => l_event_object_type,
1211          p_new_act_type   => l_event_object_type,
1212          p_src_act_id     => l_event_offer_id,
1213          p_new_act_id     => l_new_event_offer_id,
1214          p_errnum         => l_errnum,
1215          p_errcode        => l_errcode,
1216          p_errmsg         => l_errmsg
1217       );
1218 
1219 
1220 
1221 
1222       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1223           RAISE FND_API.G_EXC_ERROR;
1224       END IF;
1225    END IF;
1226   p_event_offer_rec.event_offer_id:=l_new_event_offer_id;
1227    AMS_EVENTOFFER_PVT.complete_evo_rec(p_event_offer_rec,l_new_reference_rec);
1228 
1229     x_new_object_id:= l_new_event_offer_id;
1230     x_custom_setup_id:= l_new_reference_rec.custom_setup_id;
1231 
1232 
1233    IF FND_API.to_Boolean( p_commit )
1234    THEN
1235       COMMIT WORK;
1236    END IF;
1237 
1238    -- Debug Message
1239    IF (AMS_DEBUG_HIGH_ON) THEN
1240 
1241        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1242    END IF;
1243 
1244    -- Standard call to get message count and if count is 1, get message info.
1245    FND_MSG_PUB.Count_And_Get
1246         (p_count          =>   x_msg_count,
1247          p_data           =>   x_msg_data
1248       );
1249 
1250 
1251  EXCEPTION
1252    WHEN FND_API.G_EXC_ERROR THEN
1253       ROLLBACK TO copy_event_schedule;
1254       x_return_status := FND_API.G_RET_STS_ERROR;
1255       -- Standard call to get message count and if count=1, get the message
1256       FND_MSG_PUB.Count_And_Get (
1257              p_encoded => FND_API.G_FALSE,
1258              p_count   => x_msg_count,
1259              p_data    => x_msg_data
1260       );
1261    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1262       ROLLBACK TO copy_event_schedule;
1263       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1264       -- Standard call to get message count and if count=1, get the message
1265       FND_MSG_PUB.Count_And_Get (
1266              p_encoded => FND_API.G_FALSE,
1267              p_count => x_msg_count,
1268              p_data  => x_msg_data
1269       );
1270    WHEN OTHERS THEN
1271       ROLLBACK TO copy_event_schedule;
1272       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1273       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1274          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1275       END IF;
1276       -- Standard call to get message count and if count=1, get the message
1277       FND_MSG_PUB.Count_And_Get (
1278              p_encoded => FND_API.G_FALSE,
1279              p_count => x_msg_count,
1280              p_data  => x_msg_data
1281       );
1282 
1283 
1284 END copy_event_schedule;
1285 
1286 END AMS_EventSchedule_Copy_PVT;