[Home] [Help]
PACKAGE BODY: APPS.AMS_EVENTOFFER_PVT
Source
1 PACKAGE BODY AMS_EventOffer_PVT AS
2 /*$Header: amsvevob.pls 120.13 2006/10/26 01:06:17 batoleti ship $*/
3 g_pkg_name CONSTANT VARCHAR2(30):='AMS_EventOffer_PVT';
4
5 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
6 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
7 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
8
9 PROCEDURE Check_Dates_Range (
10 p_evo_rec IN evo_rec_type,
11 x_return_status OUT NOCOPY VARCHAR2
12 );
13
14 PROCEDURE Check_Parent_Active (
15 p_evo_rec IN evo_rec_type,
16 x_return_status OUT NOCOPY VARCHAR2
17 );
18
19
20 PROCEDURE Update_Metrics (
21 p_evo_rec IN evo_rec_type,
22 x_return_status OUT NOCOPY VARCHAR2,
23 x_msg_count OUT NOCOPY VARCHAR2,
24 x_msg_data OUT NOCOPY VARCHAR2
25 );
26
27 FUNCTION check_association_exists(
28 p_obj_type IN VARCHAR2,
29 p_obj_id IN NUMBER,
30 p_association_with IN VARCHAR2,
31 p_additional_where_clause IN VARCHAR2 := NULL
32 )
33 Return VARCHAR2
34 IS
35
36 l_sql VARCHAR2(4000);
37 l_count NUMBER;
38 l_type_col VARCHAR2(100);
39 l_id_col VARCHAR2(100);
40 l_table_name VARCHAR2(200);
41 l_additional_where_clause VARCHAR2(1000) := p_additional_where_clause;
42
43 BEGIN
44
45 if (p_association_with IN ('DELV', 'CAMP')) then
46 l_table_name := 'AMS_OBJECT_ASSOCIATIONS';
47 l_type_col := 'MASTER_OBJECT_TYPE';
48 l_id_col := 'MASTER_OBJECT_ID';
49 if l_additional_where_clause is null then
50 /*
51 l_additional_where_clause := ' USING_OBJECT_TYPE = ''' || p_association_with || '''';
52 */
53 -- SQL Bind Project
54 -- Use Bind Variables
55 l_additional_where_clause := 'USING_OBJECT_TYPE = :b1 ';
56 else
57 /*
58 l_additional_where_clause := l_additional_where_clause ||
59 ' AND USING_OBJECT_TYPE = ''' || p_association_with || '''';
60 */
61 -- Use Bind Variables
62 l_additional_where_clause := l_additional_where_clause || ' AND USING_OBJECT_TYPE = :b1 ';
63 end if;
64 end if;
65 /*
66 if (p_association_with = 'CAMP') then
67 l_table_name := 'AMS_OBJECT_ASSOCIATIONS';
68 l_type_col := 'MASTER_OBJECT_TYPE';
69 l_id_col := 'MASTER_OBJECT_ID';
70 if l_additional_where_clause is null then
71 l_additional_where_clause := ' USING_OBJECT_TYPE = ''' || p_association_with || '''';
72 else
73 l_additional_where_clause := l_additional_where_clause ||
74 ' AND USING_OBJECT_TYPE = ''' || p_association_with || '''';
75 end if;
76 end if;
77 */
78 if (p_association_with = 'MESG') then
79 l_table_name := 'AMS_ACT_MESSAGES';
80 l_type_col := 'MESSAGE_USED_BY';
81 l_id_col := 'MESSAGE_USED_BY_ID';
82 end if;
83
84 if (p_association_with = 'PROD') then
85 l_table_name := 'AMS_ACT_PRODUCTS';
86 l_type_col := 'ARC_ACT_PRODUCT_USED_BY';
87 l_id_col := 'ACT_PRODUCT_USED_BY_ID';
88 end if;
89
90 if (p_association_with = 'RESC') then
91 l_table_name := 'AMS_ACT_RESOURCES';
92 l_type_col := 'ARC_ACT_RESOURCE_USED_BY';
93 l_id_col := 'ACT_RESOURCE_USED_BY_ID';
94 end if;
95
96 if (p_association_with = 'CELL') then
97 l_table_name := 'AMS_ACT_MARKET_SEGMENTS';
98 l_type_col := 'ARC_ACT_MARKET_SEGMENT_USED_BY';
99 l_id_col := 'ACT_MARKET_SEGMENT_USED_BY_ID';
100 end if;
101
102 if (p_association_with = 'ATCH') then
103 l_table_name := 'JTF_AMV_ATTACHMENTS';
104 l_type_col := 'ATTACHMENT_USED_BY';
105 l_id_col := 'ATTACHMENT_USED_BY_ID';
106 end if;
107
108 if (p_association_with = 'TEAM') then
109 l_table_name := 'AMS_ACT_ACCESS';
110 l_type_col := 'ARC_ACT_ACCESS_TO_OBJECT';
111 l_id_col := 'ACT_ACCESS_TO_OBJECT_ID';
112 end if;
113
114 if (p_association_with = 'NOTE') then
115 l_table_name := 'JTF_NOTES_VL';
116 l_type_col := 'SOURCE_OBJECT_CODE';
117 l_id_col := 'SOURCE_OBJECT_ID';
118 end if;
119
120 if (p_association_with = 'TASK') then
121 l_table_name := 'JTF_TASKS_VL';
122 l_type_col := 'SOURCE_OBJECT_TYPE_CODE';
123 l_id_col := 'SOURCE_OBJECT_ID';
124 end if;
125
126 -- Commented and replaced for SQL Bind Project
127 /*
128 l_sql := 'SELECT count(*) FROM ' || l_table_name;
129 l_sql := l_sql || ' WHERE ' || l_type_col || ' = ''' || p_obj_type ||'''';
130 l_sql := l_sql || ' AND ' || l_id_col || ' = ' || p_obj_id;
131 */
132
133 l_sql := 'SELECT count(*) FROM ' || l_table_name || ' WHERE ' || l_type_col || ' = :b2 AND ';
134 l_sql := l_sql || l_id_col || ' = :b3 ';
135
136
137
138 IF l_additional_where_clause IS NOT NULL THEN
139 l_sql := l_sql || ' AND ' || l_additional_where_clause;
140 END IF;
141
142 IF (AMS_DEBUG_HIGH_ON) THEN
143
144 AMS_Utility_PVT.debug_message('SQL statement: '||l_sql);
145
146 END IF;
147
148 IF l_additional_where_clause IS NOT NULL THEN
149 -- We need to bind 3 vars for DELV and CAMP
150 EXECUTE IMMEDIATE l_sql INTO l_count
151 USING p_obj_type, p_obj_id, p_association_with;
152 ELSE
153 -- We need to bind 2 vars for all others
154 EXECUTE IMMEDIATE l_sql INTO l_count
155 USING p_obj_type, p_obj_id;
156 END IF;
157
158 IF l_count = 0 THEN
159 RETURN FND_API.g_false;
160 ELSE
161 RETURN FND_API.g_true;
162 END IF;
163
164 END check_association_exists;
165
166 ---------------------------------------------------------------------
167 -- PROCEDURE
168 -- create_inv_item
169 --
170 -- HISTORY
171 -- 03/05/2000 sugupta Create.
172 ---------------------------------------------------------------------
173 PROCEDURE create_inv_item
174 (
175 p_commit IN VARCHAR2 := FND_API.g_false,
176 p_inv_item_number IN VARCHAR2,
177 p_inv_item_desc IN VARCHAR2,
178 p_inv_long_desc IN VARCHAR2,
179 x_return_status OUT NOCOPY VARCHAR2,
180 x_msg_count OUT NOCOPY NUMBER,
181 x_msg_data OUT NOCOPY VARCHAR2,
182 x_item_id OUT NOCOPY NUMBER,
183 x_org_id OUT NOCOPY NUMBER
184 );
185
186 ---------------------------------------------------------------------
187 -- PROCEDURE
188 -- create_pricelist_header
189 --
190 -- HISTORY
191 -- 03/05/2000 sugupta Create.
192 ---------------------------------------------------------------------
193
194 PROCEDURE create_pricelist_header
195 (
196 p_api_version IN NUMBER,
197 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
198 p_return_values IN VARCHAR2 := FND_API.g_false,
199 p_commit IN VARCHAR2 := FND_API.g_false,
200 p_evo_rec IN evo_rec_type,
201 x_return_status OUT NOCOPY VARCHAR2,
202 x_msg_count OUT NOCOPY NUMBER,
203 x_msg_data OUT NOCOPY VARCHAR2,
204 x_pricelist_header_id OUT NOCOPY NUMBER
205 );
206
207 ---------------------------------------------------------------------
208 -- PROCEDURE
209 -- create_pricelist_line
210 --
211 -- HISTORY
212 -- 03/05/2000 sugupta Create.
213 ---------------------------------------------------------------------
214
215 PROCEDURE create_pricelist_line
216 (
217 p_api_version IN NUMBER,
218 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
219 p_return_values IN VARCHAR2 := FND_API.g_false,
220 p_commit IN VARCHAR2 := FND_API.g_false,
221 p_price_hdr_id IN NUMBER,
222 p_evo_rec IN evo_rec_type,
223 x_return_status OUT NOCOPY VARCHAR2,
224 x_msg_count OUT NOCOPY NUMBER,
225 x_msg_data OUT NOCOPY VARCHAR2,
226 x_pricelist_line_id OUT NOCOPY NUMBER
227 );
228
229 PROCEDURE copy_ev_header_to_offer(
230 p_api_version IN NUMBER,
231 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
232 x_return_status OUT NOCOPY VARCHAR2,
233 x_msg_count OUT NOCOPY NUMBER,
234 x_msg_data OUT NOCOPY VARCHAR2,
235 x_evo_rec OUT NOCOPY evo_rec_type,
236 p_src_evh_id IN NUMBER,
237 p_evo_rec IN evo_rec_type
238 );
239
240 PROCEDURE copy_ev_header_associations(
241 p_api_version IN NUMBER,
242 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
243 p_commit IN VARCHAR2 := fnd_api.g_false,
244 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
245 x_return_status OUT NOCOPY VARCHAR2,
246 x_msg_count OUT NOCOPY NUMBER,
247 x_msg_data OUT NOCOPY VARCHAR2,
248 x_transaction_id OUT NOCOPY NUMBER,
249 p_src_evh_id IN NUMBER,
250 p_evo_id IN NUMBER,
251 p_setup_id IN NUMBER
252 );
253
254 PROCEDURE check_evo_update(
255 p_evo_rec IN OUT NOCOPY AMS_EVENTOFFER_PVT.evo_rec_type,
256 x_return_status OUT NOCOPY VARCHAR2
257 );
258 PROCEDURE check_evo_inter_entity(
259 p_evo_rec IN evo_rec_type,
260 p_complete_rec IN evo_rec_type,
261 p_validation_mode IN VARCHAR2,
262 x_return_status OUT NOCOPY VARCHAR2
263 );
264
265 PROCEDURE create_global_pricing(
266 p_evo_rec IN OUT NOCOPY evo_rec_type,
267 x_return_status OUT NOCOPY VARCHAR2
268 );
269 ---------------------------------------------------------------------
270 -- PROCEDURE
271 -- create_event_offer
272 --
273 -- HISTORY
274 -- 11/23/1999 sugupta Created.
275 -- 01/20/2000 gdeodhar Added the reg_required_flag column to create stmt.
276 -- Also added the user_status_id = 1 and system_status_code = 'NEW'
277 -- in the create statement.
278 -- 07/20/2000 sugupta user_status_id equal to 1 only for event_level=MAIN
279 ---------------------------------------------------------------------
280 PROCEDURE create_event_offer(
281 p_api_version IN NUMBER,
282 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
283 p_commit IN VARCHAR2 := FND_API.g_false,
284 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
285
286 p_evo_rec IN evo_rec_type,
287
288 x_return_status OUT NOCOPY VARCHAR2,
289 x_msg_count OUT NOCOPY NUMBER,
290 x_msg_data OUT NOCOPY VARCHAR2,
291
292 x_evo_id OUT NOCOPY NUMBER
293 )
294 IS
295
296 l_api_version CONSTANT NUMBER := 1.0;
297 l_api_name CONSTANT VARCHAR2(30) := 'create_event_offer';
298 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
299
300 l_return_status VARCHAR2(1);
301 l_evo_rec evo_rec_type;
302 l_dlv_rec AMS_ActDelvMethod_PVT.act_DelvMethod_rec_type;
303 -- location_rec hz_location_pub.location_rec_type;
304 location_rec hz_location_v2pub.location_rec_type;
305 l_dlv_id NUMBER := null;
306 l_evo_count NUMBER;
307 l_start_time DATE;
308 l_end_time DATE;
309 l_reg_start_time DATE;
310 l_reg_end_time DATE;
311 l_copy_flag VARCHAR2(1);
312 l_setup_id NUMBER := nvl(p_evo_rec.custom_setup_id,1006);
313 l_org_id NUMBER := null;
314 l_source_code_id NUMBER;
315 l_user_id NUMBER;
316 l_res_id NUMBER;
317 l_cs_count NUMBER;
318 -- will need to pass this transaction id back to screen.. todo later
319 x_transaction_id NUMBER;
320 l_ou_id NUMBER;
321 l_ovn NUMBER(9) := 1;
322
323 CURSOR get_res_id(l_user_id IN NUMBER) IS
324 SELECT resource_id
325 FROM ams_jtf_rs_emp_v
326 WHERE user_id = l_user_id;
327
328 CURSOR c_evo_seq IS
329 SELECT ams_event_offers_all_b_s.NEXTVAL
330 FROM DUAL;
331
332 CURSOR c_evo_count(evo_id IN NUMBER) IS
333 SELECT count(*)
334 FROM ams_event_offers_all_b
335 WHERE event_offer_id = evo_id;
336
337 CURSOR c_evo_status_evagd(ust_id IN NUMBER) IS
338 SELECT system_status_code
339 FROM ams_user_statuses_b
340 WHERE user_status_id = ust_id
341 AND system_status_type = 'AMS_EVENT_AGENDA_STATUS';
342
343 CURSOR c_list_YN(id_in IN NUMBER) IS
344 SELECT count(*) FROM ams_custom_setup_attr
345 WHERE custom_setup_id = id_in
346 AND object_attribute = 'ILST'
347 AND ATTR_AVAILABLE_FLAG = 'Y';
348
349 BEGIN
350
351 --------------------- initialize -----------------------
352 SAVEPOINT create_event_offer;
353
354 IF (AMS_DEBUG_HIGH_ON) THEN
355
356
357
358 AMS_Utility_PVT.debug_message(l_full_name||': start');
359
360 END IF;
361
362 IF FND_API.to_boolean(p_init_msg_list) THEN
363 FND_MSG_PUB.initialize;
364 END IF;
365
366 IF NOT FND_API.compatible_api_call(
367 l_api_version,
368 p_api_version,
369 l_api_name,
370 g_pkg_name
371 ) THEN
372 RAISE FND_API.g_exc_unexpected_error;
373 END IF;
374
375 x_return_status := FND_API.g_ret_sts_success;
376
377 --------------------API CODE--------------------------
378
379 ----------------- copy stuff from headers before validation--------
380 -- sugupta 03/20/2000 get the profile option..todo
381 -- if profile option indicates Copying from header to offer, make a call to
382 -- copy_ev_header_to_offer procedure to copy appropriate fields from header to offer.
383 -- associations of header will be copied
384
385 l_copy_flag := FND_PROFILE.Value('AMS_COPY_EVH_TO_EVO');--'Y';
386
387 IF (p_evo_rec.event_level = 'MAIN' and l_copy_flag = 'Y' and p_evo_rec.event_object_type = 'EVEO') then
388 IF (AMS_DEBUG_HIGH_ON) THEN
389
390 AMS_Utility_PVT.debug_message(l_full_name ||': copy header to offer');
391 END IF;
392 copy_ev_header_to_offer(
393 p_api_version => l_api_version,
394 p_init_msg_list => FND_API.g_false,
395 x_return_status => l_return_status,
396 x_msg_count => x_msg_count,
397 x_msg_data => x_msg_data,
398 x_evo_rec => l_evo_rec,
399 p_src_evh_id => p_evo_rec.event_header_id,
400 p_evo_rec => p_evo_rec
401 );
402 IF l_return_status = FND_API.g_ret_sts_error THEN
403 RAISE FND_API.g_exc_error;
404 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
405 RAISE FND_API.g_exc_unexpected_error;
406 END IF;
407 ELSE
408 l_evo_rec := p_evo_rec;
409 IF l_evo_rec.event_object_type = 'EONE' THEN
410 l_evo_rec.event_standalone_flag := 'Y';
411 ELSIF l_evo_rec.event_object_type = 'EVEO' THEN
412 l_evo_rec.event_standalone_flag := 'N';
413 ELSE
414 FND_MESSAGE.set_name('AMS', 'AMS_DM_SRC_NO_ARC_USED_FOR_OBJ');
415 FND_MSG_PUB.add;
416 RAISE FND_API.g_exc_error;
417 END IF;
418 END IF;
419
420 -----------ADDED CODE to populate task id----------------------
421 IF (p_evo_rec.event_level = 'MAIN') THEN
422 null;
423 /* Hornet :call task creation API */
424 END IF;
425
426 -- associations for the event header will be copied after creating the event_offer
427 -- FROM HERE ON ITS L_EVO_REC, NOT P_EVO_REC
428
429 --------------- calendar----------------------------
430 -- added sugupta 08/28/20000--------------
431 -- default event calendar, present;y defailting it to be same as campaigns calendar.. SHOULD CHANGE
432 -- not sure about the logic, should it be defaulted only for MAIN events, not the agenda..
433
434 -- IF l_evo_rec.event_calendar IS NULL THEN
435 l_evo_rec.event_calendar := FND_PROFILE.value('AMS_CAMPAIGN_DEFAULT_CALENDER');
436 -- END IF;
437 ----------------------------user status and system status---------------------
438
439 -- added sugupta 07/20/2000 for event agenda, stastuses shouldnt be defaulted to 1/NEW
440 -- for main event, while creation.. user status shud always be 1, system status always NEW
441
442 IF l_evo_rec.event_level = 'MAIN' then
443 l_evo_rec.user_status_id := ams_utility_pvt.get_default_user_status('AMS_EVENT_STATUS','NEW');
444 l_evo_rec.system_status_code := 'NEW';
445 ELSE
446 -- pick up the correct system_status_code
447 IF l_evo_rec.user_status_id IS NOT NULL THEN
448 OPEN c_evo_status_evagd(l_evo_rec.user_status_id);
449 FETCH c_evo_status_evagd INTO l_evo_rec.system_status_code;
450 CLOSE c_evo_status_evagd;
451 END IF;
452 END IF;
453
454 ----------------------- validate -----------------------
455 IF (AMS_DEBUG_HIGH_ON) THEN
456
457 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
458 END IF;
459
460
461 validate_event_offer(
462 p_api_version => l_api_version,
463 p_init_msg_list => p_init_msg_list,
464 p_validation_level => p_validation_level,
465 p_evo_rec => l_evo_rec,
466 x_return_status => l_return_status,
467 x_msg_count => x_msg_count,
468 x_msg_data => x_msg_data
469 );
470 IF l_return_status = FND_API.g_ret_sts_error THEN
471 RAISE FND_API.g_exc_error;
472 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
473 RAISE FND_API.g_exc_unexpected_error;
474 END IF;
475
476 --------------- CHECK ACCESS FOR THE USER ONLY FOR EVENT AGENDA-------------------
477 ----------added sugupta 07/25/2000
478 IF l_evo_rec.event_level = 'SUB' THEN
479 l_user_id := FND_GLOBAL.User_Id;
480 IF (AMS_DEBUG_HIGH_ON) THEN
481
482 AMS_Utility_PVT.debug_message(' CHECK ACCESS l_user_id is ' ||l_user_id );
483 END IF;
484 IF l_user_id IS NOT NULL then
485 open get_res_id(l_user_id);
486 fetch get_res_id into l_res_id;
487 close get_res_id;
488 END IF;
489 IF AMS_ACCESS_PVT.check_update_access(l_evo_rec.parent_event_offer_id, l_evo_rec.event_object_type, l_res_id, 'USER') = 'N' then
490 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
491 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_UPDATE_ACCESS');-- reusing the message
492 FND_MSG_PUB.add;
493 END IF;
494 RAISE FND_API.g_exc_error;
495 END IF;
496 END IF;
497
498 -------------------------- insert --------------------------
499 IF (AMS_DEBUG_HIGH_ON) THEN
500
501 AMS_Utility_PVT.debug_message(l_full_name ||': insert');
502 END IF;
503 -- ==========================================================
504 -- Following code is added by mukumar on 10/30/2000
505 -- the code will convert the transaction currency in to
506 -- functional currency.
507 -- ==========================================================
508 IF l_evo_rec.fund_amount_tc IS NOT NULL THEN
509 AMS_EvhRules_PVT.Convert_Evnt_Currency(
510 p_tc_curr => l_evo_rec.currency_code_tc,
511 p_tc_amt => l_evo_rec.fund_amount_tc,
512 x_fc_curr => l_evo_rec.currency_code_fc,
513 x_fc_amt => l_evo_rec.fund_amount_fc
514 ) ;
515 END IF ;
516
517 -------------------------event offer id----------------------
518 IF l_evo_rec.event_offer_id IS NULL THEN
519 LOOP
520 OPEN c_evo_seq;
521 FETCH c_evo_seq INTO l_evo_rec.event_offer_id;
522 CLOSE c_evo_seq;
523
524 OPEN c_evo_count(l_evo_rec.event_offer_id);
525 FETCH c_evo_count INTO l_evo_count;
526 CLOSE c_evo_count;
527
528 EXIT WHEN l_evo_count = 0;
529 END LOOP;
530 END IF;
531
532
533 ----------------------------source code---------------------
534 -- if event level is SUB, source_code should be null
535 -- if incoming source_code is NULL, it is defaulted.
536
537 -- Global flag if not passed from the screen, default it as N
538 IF l_evo_rec.global_flag IS NULL THEN
539 l_evo_rec.global_flag := 'N';
540 END IF;
541
542 IF l_evo_rec.event_level = 'SUB' THEN
543 l_evo_rec.source_code := null;
544 ELSE
545 IF l_evo_rec.source_code IS NULL THEN
546 l_evo_rec.source_code := AMS_SourceCode_PVT.get_new_source_code (
547 -- replace object type with table's value once implemented
548 p_object_type => l_evo_rec.event_object_type,
549 p_custsetup_id => l_evo_rec.custom_setup_id,
550 -- replace global_flag with table's value once implemented
551 p_global_flag => l_evo_rec.global_flag
552 );
553 END IF;
554 END IF;
555
556
557 /* Code Added By GMadana for date/time validation */
558 IF l_evo_rec.event_start_date_time > l_evo_rec.event_end_date_time THEN
559 IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error)
560 THEN
561 Fnd_Message.set_name('AMS', 'AMS_EVO_START_TM_GT_END_TM');
562 Fnd_Msg_Pub.ADD;
563 END IF;
564 x_return_status := Fnd_Api.g_ret_sts_error;
565 RAISE Fnd_Api.g_exc_error;
566 END IF; -- st tm > end tm
567
568 /****************EVENT_DELIVERY_METHOD_ID**********************/
569 -- l_evo_rec will bring in delivery_method_code.. a l_dlv_rec record type is
570 -- constructed and passed to Create_Act_DelvMethod which creates a row in
571 -- AMS_ACT_DELIVERY_METHODS table and returns delivery_method_id which is then
572 -- inserted into ams_event_offers table.
573 -- Caution is advised that while retrieving records from event offers table,
574 -- delivery_method_id is retrieved and not delivery_method_code..
575 -- ams_event_offers_v takes care of that and returns delivery_method_code though
576 -- sugupta 3/27/00 change of plans... delivery method will always be passed to update procedure, not create..
577 -- adding call to Create_Act_DelvMethod in update_event_offer procedure now
578 -- dlv method code will neevr be passed for event agenda... so no need to put an if loop for event level
579
580 IF (l_evo_rec.EVENT_DELIVERY_METHOD_CODE IS NOT NULL OR
581 l_evo_rec.EVENT_DELIVERY_METHOD_CODE <> FND_API.g_miss_char) THEN
582 -- This new if statment added to support one of event
583 IF l_evo_rec.EVENT_STANDALONE_FLAG = 'Y' THEN
584 l_dlv_rec.ARC_ACT_DELIVERY_USED_BY := 'EONE';
585 l_dlv_rec.ACT_DELIVERY_METHOD_USED_BY_ID := l_evo_rec.event_offer_id;
586 l_dlv_rec.DELIVERY_MEDIA_TYPE_CODE := l_evo_rec.EVENT_DELIVERY_METHOD_CODE;
587 ELSE
588 l_dlv_rec.ARC_ACT_DELIVERY_USED_BY := 'EVEO';
589 l_dlv_rec.ACT_DELIVERY_METHOD_USED_BY_ID := l_evo_rec.event_offer_id;
590 l_dlv_rec.DELIVERY_MEDIA_TYPE_CODE := l_evo_rec.EVENT_DELIVERY_METHOD_CODE;
591 END IF;
592 AMS_ActDelvMethod_PVT.Create_Act_DelvMethod(
593 p_api_version => l_api_version,
594 p_init_msg_list => FND_API.g_false,
595 p_commit => FND_API.g_false,
596 p_validation_level => FND_API.g_valid_level_full,
597 x_return_status => l_return_status,
598 x_msg_count => x_msg_count,
599 x_msg_data => x_msg_data,
600 p_act_DelvMethod_rec => l_dlv_rec,
601 x_act_DelvMethod_id => l_dlv_id);
602
603 IF l_return_status = FND_API.g_ret_sts_error THEN
604 RAISE FND_API.g_exc_error;
605 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
606 RAISE FND_API.g_exc_unexpected_error;
607 END IF;
608 END IF;
609
610
611 /* Code Added by GMADANA for Date validation for attaching Program as Parent */
612 /* Check_Dates_Range has date validation for MAIN level and SUB level events
613 as agenda for Event Schedule has Start date on the GUI.
614 */
615
616
617 -- soagrawa added if clause on 24-feb-2003 for INTERNAL bug# 2816673
618 IF(l_evo_rec.event_object_type = 'EONE' AND l_evo_rec.parent_type = 'CAMP')
619 THEN
620 -- dont check for date range
621 NULL;
622 ELSE
623 Check_Dates_Range(
624 p_evo_rec => p_evo_rec,
625 x_return_status => x_return_status
626 );
627
628 IF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
629 RAISE Fnd_Api.g_exc_unexpected_error;
630 ELSIF x_return_status = Fnd_Api.g_ret_sts_error THEN
631 RAISE Fnd_Api.g_exc_error;
632 END IF;
633 END IF;
634
635
636 -- integration with inventory and pricing api's happens at update level..
637 --the user enters inventory number from reg set up screen..
638 -- 05/09/2000 however setting up the organization id here from profile option...
639 l_org_id := FND_PROFILE.Value('AMS_ITEM_ORGANIZATION_ID');
640 -- 05/10/2000 based on values of city, state, country passed, call hz_loc API
641 -- to create a new loc_id to be inserted into offers table
642 -- city/state/country will never be passed for event agenda... so no need to put an if loop for event level
643
644 IF (l_evo_rec.CITY IS NULL AND l_evo_rec.STATE IS NULL AND l_evo_rec.COUNTRY IS NULL)
645 THEN
646 l_evo_rec.event_location_id := null;
647 ELSE
648 location_rec.country := l_evo_rec.COUNTRY;
649 location_rec.state := l_evo_rec.STATE;
650 location_rec.city := l_evo_rec.CITY;
651 location_rec.address1 := ' ';
652 location_rec.ORIG_SYSTEM_REFERENCE := -1;
653 location_rec.content_source_type := 'USER_ENTERED';
654 location_rec.created_by_module := 'AMS_EVENT';
655 hz_location_v2pub.create_location(
656 p_init_msg_list => p_init_msg_list,
657 p_location_rec => location_rec,
658 x_return_status => l_return_status,
659 x_msg_count => x_msg_count,
660 x_msg_data => x_msg_data,
661 x_location_id => l_evo_rec.event_location_id
662 );
663 IF l_return_status = FND_API.g_ret_sts_error THEN
664 RAISE FND_API.g_exc_error;
665 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
666 RAISE FND_API.g_exc_unexpected_error;
667 END IF;
668 END IF;
669
670 -- Added by rmajumda (09/15/05). MOAC changes
671 l_ou_id := fnd_profile.value('DEFAULT_ORG_ID');
672
673
674 IF l_evo_rec.object_version_number = 2 THEN -- copy
675 l_ovn := 2;
676 END IF;
677
678 insert into ams_event_offers_all_b(
679 event_offer_id
680 ,setup_type_id
681 ,last_update_date
682 ,last_updated_by
683 ,creation_date
684 ,created_by
685 ,last_update_login
686 ,object_version_number
687 ,application_id
688 ,event_header_id
689 ,private_flag
690 ,active_flag
691 ,source_code
692 ,event_level
693 ,user_status_id
694 ,last_status_date
695 ,system_status_code
696 ,event_type_code
697 ,event_delivery_method_id
698 ,event_required_flag
699 ,event_language_code
700 ,event_location_id
701 ,overflow_flag
702 ,partner_flag
703 ,event_standalone_flag
704 ,reg_frozen_flag
705 ,reg_required_flag
706 ,reg_charge_flag
707 ,reg_invited_only_flag
708 ,reg_waitlist_allowed_flag
709 ,reg_overbook_allowed_flag
710 ,parent_event_offer_id
711 ,event_duration
712 ,event_duration_uom_code
713 ,event_start_date
714 ,event_start_date_time
715 ,event_end_date
716 ,event_end_date_time
717 ,reg_start_date
718 ,reg_start_time
719 ,reg_end_date
720 ,reg_end_time
721 ,reg_maximum_capacity
722 ,reg_overbook_pct
723 ,reg_effective_capacity
724 ,reg_waitlist_pct
725 ,reg_minimum_capacity
726 ,reg_minimum_req_by_date
727 ,inventory_item_id
728 ,organization_id
729 ,pricelist_header_id
730 ,pricelist_line_id
731 ,org_id
732 ,waitlist_action_type_code
733 ,stream_type_code
734 ,owner_user_id
735 ,event_full_flag
736 ,forecasted_revenue
737 ,actual_revenue
738 ,forecasted_cost
739 ,actual_cost
740 ,fund_source_type_code
741 ,fund_source_id
742 ,cert_credit_type_code
743 ,certification_credits
744 ,coordinator_id
745 ,priority_type_code
746 ,cancellation_reason_code
747 ,auto_register_flag
748 ,email
749 ,phone
750 ,fund_amount_tc
751 ,fund_amount_fc
752 ,currency_code_tc
753 ,currency_code_fc
754 ,url
755 ,timezone_id
756 ,event_venue_id
757 ,inbound_script_name
758 ,attribute_category
759 ,attribute1
760 ,attribute2
761 ,attribute3
762 ,attribute4
763 ,attribute5
764 ,attribute6
765 ,attribute7
766 ,attribute8
767 ,attribute9
768 ,attribute10
769 ,attribute11
770 ,attribute12
771 ,attribute13
772 ,attribute14
773 ,attribute15
774 ,country_code
775 ,business_unit_id
776 ,event_calendar
777 ,start_period_name
778 ,end_period_name
779 ,global_flag
780 ,task_id -- Hornet
781 --,program_id -- Hornet
782 ,parent_type -- Hornet
783 ,parent_id -- Hornet
784 ,CREATE_ATTENDANT_LEAD_FLAG --hornet
785 ,CREATE_REGISTRANT_LEAD_FLAG --hornet
786 ,event_object_type --hornet
787 ,reg_timezone_id -- hornet
788 ,event_password /* Hornet : added for imeeting integration*/
789 ,record_event_flag /* Hornet : added for imeeting integration*/
790 ,allow_register_in_middle_flag /* Hornet : added for imeeting integration*/
791 ,publish_attendees_flag /* Hornet : added for imeeting integration*/
792 ,direct_join_flag /* Hornet : added for imeeting integration*/
793 ,event_notification_method /* Hornet : added for imeeting integration*/
794 ,actual_start_time /* Hornet : added for imeeting integration*/
795 ,actual_end_time /* Hornet : added for imeeting integration*/
796 ,server_id /* Hornet : added for imeeting integration*/
797 ,OWNER_FND_USER_ID
798 ,MEETING_DIAL_IN_INFO
799 ,MEETING_EMAIL_SUBJECT
800 ,MEETING_SCHEDULE_TYPE
801 , MEETING_STATUS
802 ,PUBLISH_FLAG
803 ,MEETING_ENCRYPTION_KEY_CODE
804 ,MEETING_MISC_INFO
805 ,NUMBER_OF_ATTENDEES
806 ,EVENT_PURPOSE_CODE
807 )
808 VALUES(
809 l_evo_rec.event_offer_id,
810 l_evo_rec.custom_setup_id,
811 SYSDATE,
812 FND_GLOBAL.user_id,
813 SYSDATE,
814 FND_GLOBAL.user_id,
815 FND_GLOBAL.conc_login_id,
816 l_ovn, -- object_version_number Bug 5171873 can be 2 for copy
817 l_evo_rec.application_id,
818 l_evo_rec.event_header_id, -- will come from Interface
819 NVL(l_evo_rec.private_flag,'N'), -- Value will come from the User Interface.
820 NVL(l_evo_rec.active_flag, 'Y'), -- 'N' when active_flag is NULL
821 l_evo_rec.source_code, -- If the incoming value is NULL, it must be generated.
822 l_evo_rec.event_level, -- MAIN (event offer), SUB (agenda item)
823 l_evo_rec.user_status_id,
824 NVL(l_evo_rec.last_status_date,SYSDATE),
825 l_evo_rec.system_status_code,
826 l_evo_rec.event_type_code,
827 l_dlv_id,
828 NVL(l_evo_rec.event_required_flag,'N'),
829 l_evo_rec.event_language_code,
830 l_evo_rec.event_location_id,
831 NVL(l_evo_rec.overflow_flag,'N'),
832 NVL(l_evo_rec.partner_flag,'N'),
833 NVL(l_evo_rec.event_standalone_flag,'N'), -- Value will come from the User Interface.
834 NVL(l_evo_rec.reg_frozen_flag,'N'),
835 NVL(l_evo_rec.reg_required_flag,'Y'), -- Value will come from the User Interface.
836 NVL(l_evo_rec.reg_charge_flag,'Y'), -- Value will come from the UserInterface.
837 NVL(l_evo_rec.reg_invited_only_flag,'N'), -- Value will come from the User Interface.
838 NVL(l_evo_rec.reg_waitlist_allowed_flag,'N'),
839 NVL(l_evo_rec.reg_overbook_allowed_flag,'N'),
840 l_evo_rec.parent_event_offer_id,
841 l_evo_rec.event_duration,
842 l_evo_rec.event_duration_uom_code,
843 l_evo_rec.event_start_date,
844 NVL(l_evo_rec.event_start_date_time,l_evo_rec.event_start_date),
845 l_evo_rec.event_end_date,
846 NVL(l_evo_rec.event_end_date_time,l_evo_rec.event_end_date),
847 l_evo_rec.reg_start_date,
848 l_reg_start_time,
849 l_evo_rec.reg_end_date,
850 l_reg_end_time,
851 l_evo_rec.reg_maximum_capacity,
852 l_evo_rec.reg_overbook_pct,
853 l_evo_rec.reg_effective_capacity,
854 l_evo_rec.reg_waitlist_pct,
855 l_evo_rec.reg_minimum_capacity,
856 l_evo_rec.reg_minimum_req_by_date,
857 null, -- l_evo_rec.inventory_item_id, in fact, I should be getting inv item id here as well if evo_rec.inv_num is not null... todo
858 l_org_id,
859 l_evo_rec.pricelist_header_id,
860 l_evo_rec.pricelist_line_id,
861 --TO_NUMBER(SUBSTRB(userenv('CLIENT_INFO'),1,10)), -- org_id
862 l_ou_id,
863 l_evo_rec.waitlist_action_type_code,
864 l_evo_rec.stream_type_code,
865 l_evo_rec.owner_user_id,
866 NVL(l_evo_rec.event_full_flag,'N'),
867 l_evo_rec.forecasted_revenue,
868 l_evo_rec.actual_revenue,
869 l_evo_rec.forecasted_cost,
870 l_evo_rec.actual_cost,
871 l_evo_rec.fund_source_type_code,
872 l_evo_rec.fund_source_id,
873 l_evo_rec.cert_credit_type_code,
874 l_evo_rec.certification_credits,
875 l_evo_rec.coordinator_id,
876 l_evo_rec.priority_type_code,
877 l_evo_rec.cancellation_reason_code,
878 NVL(l_evo_rec.auto_register_flag, nvl(FND_PROFILE.value('AMS_AUTO_REGISTER_FLAG'), 'Y')),
879 l_evo_rec.email,
880 l_evo_rec.phone,
881 l_evo_rec.fund_amount_tc,
882 l_evo_rec.fund_amount_fc,
883 l_evo_rec.currency_code_tc,
884 l_evo_rec.currency_code_fc,
885 l_evo_rec.url,
886 l_evo_rec.timezone_id,
887 l_evo_rec.event_venue_id,
888 l_evo_rec.inbound_script_name,
889 l_evo_rec.attribute_category,
890 l_evo_rec.attribute1,
891 l_evo_rec.attribute2,
892 l_evo_rec.attribute3,
893 l_evo_rec.attribute4,
894 l_evo_rec.attribute5,
895 l_evo_rec.attribute6,
896 l_evo_rec.attribute7,
897 l_evo_rec.attribute8,
898 l_evo_rec.attribute9,
899 l_evo_rec.attribute10,
900 l_evo_rec.attribute11,
901 l_evo_rec.attribute12,
902 l_evo_rec.attribute13,
903 l_evo_rec.attribute14,
904 l_evo_rec.attribute15,
905 -- l_evo_rec.country_code,
906 -- The above will require the JSP to send the country_code as part of the rec.
907 -- This is not needed the API can pick it up as follows:
908 NVL(l_evo_rec.country_code, TO_NUMBER(FND_PROFILE.value('AMS_SRCGEN_USER_CITY'))),
909 -- The above picks up the country code from the Profile option if the one sent in
910 -- by the JSP page is null.
911 l_evo_rec.business_unit_id,
912 -- The JSPs are expected to send the value of the business_unit_id. It is nullable.
913 l_evo_rec.event_calendar,
914 l_evo_rec.start_period_name,
915 l_evo_rec.end_period_name,
916 nvl(l_evo_rec.global_flag, 'N'),
917 -- above 4 fields added to be in synch with campaigns
918 l_evo_rec.task_id, -- Hornet
919 --l_evo_rec.program_id, -- Hornet
920 l_evo_rec.parent_type, -- Hornet
921 l_evo_rec.parent_id -- Hornet
922 ,l_evo_rec.CREATE_ATTENDANT_LEAD_FLAG --hornet
923 ,l_evo_rec.CREATE_REGISTRANT_LEAD_FLAG --hornet
924 ,l_evo_rec.event_object_type
925 ,l_evo_rec.reg_timezone_id
926 ,l_evo_rec.event_password /* Hornet : added for imeeting integration*/
927 ,l_evo_rec.record_event_flag /* Hornet : added for imeeting integration*/
928 ,l_evo_rec.allow_register_in_middle_flag /* Hornet : added for imeeting integration*/
929 ,l_evo_rec.publish_attendees_flag /* Hornet : added for imeeting integration*/
930 ,l_evo_rec.direct_join_flag /* Hornet : added for imeeting integration*/
931 ,l_evo_rec.event_notification_method /* Hornet : added for imeeting integration*/
932 ,l_evo_rec.actual_start_time /* Hornet : added for imeeting integration*/
933 ,l_evo_rec.actual_end_time /* Hornet : added for imeeting integration*/
934 ,l_evo_rec.server_id /* Hornet : added for imeeting integration*/
935 ,l_evo_rec.OWNER_FND_USER_ID /* Hornet : added for imeeting integration*/
936 ,l_evo_rec.MEETING_DIAL_IN_INFO /* Hornet : added for imeeting integration*/
937 ,l_evo_rec.MEETING_EMAIL_SUBJECT /* Hornet : added for imeeting integration*/
938 ,l_evo_rec.MEETING_SCHEDULE_TYPE /* Hornet : added for imeeting integration*/
939 ,l_evo_rec.MEETING_STATUS /* Hornet : added for imeeting integration*/
940 ,l_evo_rec.PUBLISH_FLAG /* Hornet : added for imeeting integration*/
941 ,l_evo_rec.MEETING_ENCRYPTION_KEY_CODE /* Hornet : added for imeeting integration*/
942 ,l_evo_rec.MEETING_MISC_INFO /* Hornet : added for imeeting integration*/
943 ,l_evo_rec.NUMBER_OF_ATTENDEES /* Hornet : added for imeeting integration*/
944 ,l_evo_rec.EVENT_PURPOSE_CODE /* Hornet */
945 );
946
947 INSERT INTO ams_event_offers_all_tl(
948 event_offer_id,
949 language,
950 last_update_date,
951 last_updated_by,
952 creation_date,
953 created_by,
954 last_update_login,
955 source_lang,
956 event_offer_name,
957 event_mktg_message,
958 description
959 )
960 SELECT
961 l_evo_rec.event_offer_id,
962 l.language_code,
963 SYSDATE,
964 FND_GLOBAL.user_id,
965 SYSDATE,
966 FND_GLOBAL.user_id,
967 FND_GLOBAL.conc_login_id,
968 USERENV('LANG'),
969 l_evo_rec.event_offer_name,
970 l_evo_rec.event_mktg_message,
971 l_evo_rec.description
972 FROM fnd_languages l
973 WHERE l.installed_flag in ('I', 'B')
974 AND NOT EXISTS(
975 SELECT NULL
976 FROM ams_event_offers_all_tl t
977 WHERE t.event_offer_id = l_evo_rec.event_offer_id
978 AND t.language = l.language_code );
979
980 x_evo_id := l_evo_rec.event_offer_id;
981
982 --modified sugupta Should do it only for 'MAIN' event level
983 IF l_evo_rec.event_level = 'MAIN' THEN
984 --IF p_evo_rec.source_code is NOT NULL THEN
985 AMS_EvhRules_PVT.push_source_code(
986 l_evo_rec.source_code,
987 l_evo_rec.event_object_type,
988 l_evo_rec.event_offer_id
989 );
990 --END IF;
991 OPEN c_list_YN(l_evo_rec.custom_setup_id);
992 FETCH c_list_YN INTO l_cs_count;
993 IF c_list_YN%NOTFOUND THEN
994 CLOSE c_list_YN;
995 else
996 CLOSE c_list_YN;
997 AMS_EvhRules_PVT.Create_list(
998 p_evo_id => x_evo_id,
999 p_evo_name => l_evo_rec.event_offer_name,
1000 p_obj_type => l_evo_rec.event_object_type,
1001 p_owner_id => l_evo_rec.owner_user_id
1002 );
1003 END IF;
1004 AMS_EvhRules_PVT.Add_Update_Access_record(p_object_type => l_evo_rec.event_object_type, -- 'EVEO'
1005 p_object_id => l_evo_rec.event_offer_id,
1006 p_Owner_user_id => l_evo_rec.owner_user_id,
1007 x_return_status => l_return_status,
1008 x_msg_count => x_msg_count,
1009 x_msg_data => x_msg_data);
1010 END IF;
1011
1012 --
1013 -- call to copy_ev_header_associations to copy associations from header to offer
1014 -- presently hardcoding setup_id to 1006 and not using it in the procedure..
1015 -- but will use the setup_id passed from evo_rec to get what object_attributes
1016 -- needs to be copied from header to offer based on setup_id associated with new offer_id..
1017
1018 IF (l_evo_rec.event_level = 'MAIN' and l_copy_flag = 'Y' and l_evo_rec.event_object_type = 'EVEO') then
1019 copy_ev_header_associations(
1020 p_api_version => l_api_version,
1021 p_init_msg_list => FND_API.g_false,
1022 p_commit => FND_API.g_false,
1023 p_validation_level => FND_API.g_valid_level_full,
1024 x_return_status => l_return_status,
1025 x_msg_count => x_msg_count,
1026 x_msg_data => x_msg_data,
1027 x_transaction_id => x_transaction_id,
1028 p_src_evh_id => p_evo_rec.event_header_id,
1029 p_evo_id => x_evo_id,
1030 p_setup_id => l_setup_id
1031 );
1032 IF l_return_status = FND_API.g_ret_sts_error THEN
1033 --RAISE FND_API.g_exc_error;
1034 null;
1035 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1036 --RAISE FND_API.g_exc_unexpected_error;
1037 null;
1038 ELSE
1039 IF (AMS_DEBUG_HIGH_ON) THEN
1040
1041 AMS_Utility_PVT.debug_message(l_full_name ||': transaction id for copy :'|| x_transaction_id );
1042 END IF;
1043 END IF;
1044 END IF;
1045
1046 --
1047 -- The AMS_SourceCode_PVT takes care of inserting the newly generated
1048 -- Source Code in ams_source_codes table.
1049 --
1050 --
1051 --
1052 -- sugupta 22-May-2000
1053 -- Added call to AMS_SourceCode_PVT.create_sourcecode.
1054 -- modified sugupta Should do it only for 'MAIN' event level
1055 -- I don't know why he is generating another source code at the end
1056 IF l_evo_rec.event_level = 'MAIN' THEN
1057 -- attach seeded metrics
1058 AMS_RefreshMetric_PVT.copy_seeded_metric(
1059 p_api_version => l_api_version,
1060 x_return_status => l_return_status,
1061 x_msg_count => x_msg_count,
1062 x_msg_data => x_msg_data,
1063 p_arc_act_metric_used_by => l_evo_rec.event_object_type, --'EVEO'
1064 p_act_metric_used_by_id => x_evo_id,
1065 p_act_metric_used_by_type => NULL
1066 );
1067 IF l_return_status = FND_API.g_ret_sts_error THEN
1068 RAISE FND_API.g_exc_error;
1069 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1070 RAISE FND_API.g_exc_unexpected_error;
1071 END IF;
1072 END IF; -- check for event level MAIN
1073
1074 ------------------------- finish -------------------------------
1075
1076 IF FND_API.to_boolean(p_commit) THEN
1077 COMMIT;
1078 END IF;
1079
1080 FND_MSG_PUB.count_and_get(
1081 p_encoded => FND_API.g_false,
1082 p_count => x_msg_count,
1083 p_data => x_msg_data
1084 );
1085
1086 IF (AMS_DEBUG_HIGH_ON) THEN
1087
1088
1089
1090 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1091
1092 END IF;
1093
1094 EXCEPTION
1095
1096 WHEN FND_API.g_exc_error THEN
1097 ROLLBACK TO create_event_offer;
1098 x_return_status := FND_API.g_ret_sts_error;
1099 FND_MSG_PUB.count_and_get(
1100 p_encoded => FND_API.g_false,
1101 p_count => x_msg_count,
1102 p_data => x_msg_data
1103 );
1104
1105 WHEN FND_API.g_exc_unexpected_error THEN
1106 ROLLBACK TO create_event_offer;
1107 x_return_status := FND_API.g_ret_sts_unexp_error ;
1108 FND_MSG_PUB.count_and_get(
1109 p_encoded => FND_API.g_false,
1110 p_count => x_msg_count,
1111 p_data => x_msg_data
1112 );
1113
1114
1115 WHEN OTHERS THEN
1116
1117 IF (c_evo_seq%ISOPEN) THEN
1118 CLOSE c_evo_seq;
1119 END IF;
1120 IF (c_evo_count%ISOPEN) THEN
1121 CLOSE c_evo_count;
1122 END IF;
1123
1124 ROLLBACK TO create_event_offer;
1125 x_return_status := FND_API.g_ret_sts_unexp_error ;
1126
1127 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1128 THEN
1129 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1130 END IF;
1131
1132 FND_MSG_PUB.count_and_get(
1133 p_encoded => FND_API.g_false,
1134 p_count => x_msg_count,
1135 p_data => x_msg_data
1136 );
1137
1138 END create_event_offer;
1139
1140
1141 ---------------------------------------------------------------
1142 -- PROCEDURE
1143 -- delete_event_offer
1144 --
1145 -- HISTORY
1146 -- 11/23/1999 sugupta Created.
1147 ---------------------------------------------------------------
1148 PROCEDURE delete_event_offer(
1149 p_api_version IN NUMBER,
1150 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1151 p_commit IN VARCHAR2 := FND_API.g_false,
1152
1153 p_evo_id IN NUMBER,
1154 p_object_version IN NUMBER,
1155
1156 x_return_status OUT NOCOPY VARCHAR2,
1157 x_msg_count OUT NOCOPY NUMBER,
1158 x_msg_data OUT NOCOPY VARCHAR2
1159 )
1160 IS
1161
1162 l_api_version CONSTANT NUMBER := 1.0;
1163 l_api_name CONSTANT VARCHAR2(30) := 'delete_event_offer';
1164 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1165 l_offer_id NUMBER;
1166 l_level VARCHAR2(30);
1167 l_user_id NUMBER;
1168 l_res_id NUMBER;
1169 l_object_type VARCHAR2(30);
1170
1171 CURSOR get_event_object_type(id_in in NUMBER) is
1172 SELECT event_object_type
1173 FROM AMS_EVENT_OFFERS_ALL_B
1174 WHERE EVENT_OFFER_ID = id_in;
1175
1176 CURSOR get_res_id(l_user_id IN NUMBER) IS
1177 SELECT resource_id
1178 FROM ams_jtf_rs_emp_v
1179 WHERE user_id = l_user_id;
1180
1181 CURSOR get_parent_offer_info(l_evo_id IN NUMBER) IS
1182 SELECT event_level,parent_event_offer_id
1183 FROM ams_event_offers_all_b
1184 WHERE event_offer_id = l_evo_id
1185 and event_level = 'SUB';
1186
1187 BEGIN
1188
1189 --------------------- initialize -----------------------
1190 SAVEPOINT delete_event_offer;
1191
1192 IF (AMS_DEBUG_HIGH_ON) THEN
1193
1194
1195
1196 AMS_Utility_PVT.debug_message(l_full_name||': start');
1197
1198 END IF;
1199
1200 IF FND_API.to_boolean(p_init_msg_list) THEN
1201 FND_MSG_PUB.initialize;
1202 END IF;
1203
1204 IF NOT FND_API.compatible_api_call(
1205 l_api_version,
1206 p_api_version,
1207 l_api_name,
1208 g_pkg_name
1209 ) THEN
1210 RAISE FND_API.g_exc_unexpected_error;
1211 END IF;
1212
1213 x_return_status := FND_API.G_RET_STS_SUCCESS;
1214 --------------- CHECK ACCESS FOR THE USER-------------------
1215 ----------added sugupta 07/25/2000
1216 l_user_id := FND_GLOBAL.User_Id;
1217 IF (AMS_DEBUG_HIGH_ON) THEN
1218
1219 AMS_Utility_PVT.debug_message(' CHECK ACCESS l_user_id is ' ||l_user_id );
1220 END IF;
1221 IF l_user_id IS NOT NULL then
1222 open get_res_id(l_user_id);
1223 fetch get_res_id into l_res_id;
1224 close get_res_id;
1225 END IF;
1226
1227 open get_parent_offer_info(p_evo_id);
1228 fetch get_parent_offer_info into l_level, l_offer_id;
1229 close get_parent_offer_info;
1230
1231 open get_event_object_type(p_evo_id);
1232 fetch get_event_object_type into l_object_type;
1233 close get_event_object_type;
1234
1235 IF (l_level <> 'SUB' OR l_level IS NULL ) THEN
1236 l_offer_id := p_evo_id;
1237 END IF;
1238 if AMS_ACCESS_PVT.check_update_access(l_offer_id, l_object_type, l_res_id, 'USER') = 'N' then
1239 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1240 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_UPDATE_ACCESS'); --reusing the message
1241 FND_MSG_PUB.add;
1242 END IF;
1243 RAISE FND_API.g_exc_error;
1244 end if;
1245
1246 ------------------------ delete ------------------------
1247 IF (AMS_DEBUG_HIGH_ON) THEN
1248
1249 AMS_Utility_PVT.debug_message(l_full_name ||': delete');
1250 END IF;
1251
1252 UPDATE ams_event_offers_all_b
1253 SET active_flag = 'N'
1254 WHERE event_offer_id = p_evo_id
1255 AND object_version_number = p_object_version;
1256
1257 IF (SQL%NOTFOUND) THEN
1258 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1259 THEN
1260 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1261 FND_MSG_PUB.add;
1262 END IF;
1263 RAISE FND_API.g_exc_error;
1264 END IF;
1265
1266 -------------------- finish --------------------------
1267 IF FND_API.to_boolean(p_commit) THEN
1268 COMMIT;
1269 END IF;
1270
1271 FND_MSG_PUB.count_and_get(
1272 p_encoded => FND_API.g_false,
1273 p_count => x_msg_count,
1274 p_data => x_msg_data
1275 );
1276
1277 IF (AMS_DEBUG_HIGH_ON) THEN
1278
1279
1280
1281 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1282
1283 END IF;
1284
1285 EXCEPTION
1286
1287 WHEN FND_API.g_exc_error THEN
1288 ROLLBACK TO delete_event_offer;
1289 x_return_status := FND_API.g_ret_sts_error;
1290 FND_MSG_PUB.count_and_get(
1291 p_encoded => FND_API.g_false,
1292 p_count => x_msg_count,
1293 p_data => x_msg_data
1294 );
1295
1296 WHEN FND_API.g_exc_unexpected_error THEN
1297 ROLLBACK TO delete_event_offer;
1298 x_return_status := FND_API.g_ret_sts_unexp_error ;
1299 FND_MSG_PUB.count_and_get(
1300 p_encoded => FND_API.g_false,
1301 p_count => x_msg_count,
1302 p_data => x_msg_data
1303 );
1304
1305 WHEN OTHERS THEN
1306 ROLLBACK TO delete_event_offer;
1307 x_return_status := FND_API.g_ret_sts_unexp_error ;
1308
1309 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1310 THEN
1311 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1312 END IF;
1313
1314 FND_MSG_PUB.count_and_get(
1315 p_encoded => FND_API.g_false,
1316 p_count => x_msg_count,
1317 p_data => x_msg_data
1318 );
1319
1320 END delete_event_offer;
1321
1322
1323 -------------------------------------------------------------------
1324 -- PROCEDURE
1325 -- lock_event_offer
1326 --
1327 -- HISTORY
1328 -- 11/23/1999 sugupta Created
1329 --------------------------------------------------------------------
1330 PROCEDURE lock_event_offer(
1331 p_api_version IN NUMBER,
1332 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1333
1334 p_evo_id IN NUMBER,
1335 p_object_version IN NUMBER,
1336
1337 x_return_status OUT NOCOPY VARCHAR2,
1338 x_msg_count OUT NOCOPY NUMBER,
1339 x_msg_data OUT NOCOPY VARCHAR2
1340 )
1341 IS
1342
1343 l_api_version CONSTANT NUMBER := 1.0;
1344 l_api_name CONSTANT VARCHAR2(30) := 'lock_event_offer';
1345 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1346
1347 l_evo_id NUMBER;
1348
1349 CURSOR c_evo_b IS
1350 SELECT event_offer_id
1351 FROM ams_event_offers_all_b
1352 WHERE event_offer_id = p_evo_id
1353 AND object_version_number = p_object_version
1354 FOR UPDATE OF event_offer_id NOWAIT;
1355
1356 CURSOR c_evo_tl IS
1357 SELECT event_offer_id
1358 FROM ams_event_offers_all_tl
1359 WHERE event_offer_id = p_evo_id
1360 AND USERENV('LANG') IN (language, source_lang)
1361 FOR UPDATE OF event_offer_id NOWAIT;
1362
1363 BEGIN
1364
1365 -------------------- initialize ------------------------
1366 IF (AMS_DEBUG_HIGH_ON) THEN
1367
1368 AMS_Utility_PVT.debug_message(l_full_name||': start');
1369 END IF;
1370
1371 IF FND_API.to_boolean(p_init_msg_list) THEN
1372 FND_MSG_PUB.initialize;
1373 END IF;
1374
1375 IF NOT FND_API.compatible_api_call(
1376 l_api_version,
1377 p_api_version,
1378 l_api_name,
1379 g_pkg_name
1380 ) THEN
1381 RAISE FND_API.g_exc_unexpected_error;
1382 END IF;
1383
1384 x_return_status := FND_API.G_RET_STS_SUCCESS;
1385
1386 ------------------------ lock -------------------------
1387 IF (AMS_DEBUG_HIGH_ON) THEN
1388
1389 AMS_Utility_PVT.debug_message(l_full_name||': lock');
1390 END IF;
1391
1392 OPEN c_evo_b;
1393 FETCH c_evo_b INTO l_evo_id;
1394 IF (c_evo_b%NOTFOUND) THEN
1395 CLOSE c_evo_b;
1396 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1397 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1398 FND_MSG_PUB.add;
1399 END IF;
1400 RAISE FND_API.g_exc_error;
1401 END IF;
1402 CLOSE c_evo_b;
1403
1404 OPEN c_evo_tl;
1405 CLOSE c_evo_tl;
1406
1407 -------------------- finish --------------------------
1408 FND_MSG_PUB.count_and_get(
1409 p_encoded => FND_API.g_false,
1410 p_count => x_msg_count,
1411 p_data => x_msg_data
1412 );
1413
1414 IF (AMS_DEBUG_HIGH_ON) THEN
1415
1416
1417
1418 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1419
1420 END IF;
1421
1422 EXCEPTION
1423
1424 WHEN AMS_Utility_PVT.resource_locked THEN
1425 x_return_status := FND_API.g_ret_sts_error;
1426 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1427 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1428 FND_MSG_PUB.add;
1429 END IF;
1430
1431 FND_MSG_PUB.count_and_get(
1432 p_encoded => FND_API.g_false,
1433 p_count => x_msg_count,
1434 p_data => x_msg_data
1435 );
1436
1437 WHEN FND_API.g_exc_error THEN
1438 x_return_status := FND_API.g_ret_sts_error;
1439 FND_MSG_PUB.count_and_get(
1440 p_encoded => FND_API.g_false,
1441 p_count => x_msg_count,
1442 p_data => x_msg_data
1443 );
1444
1445 WHEN FND_API.g_exc_unexpected_error THEN
1446 x_return_status := FND_API.g_ret_sts_unexp_error ;
1447 FND_MSG_PUB.count_and_get(
1448 p_encoded => FND_API.g_false,
1449 p_count => x_msg_count,
1450 p_data => x_msg_data
1451 );
1452
1453 WHEN OTHERS THEN
1454 x_return_status := FND_API.g_ret_sts_unexp_error ;
1455 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1456 THEN
1457 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1458 END IF;
1459
1460 FND_MSG_PUB.count_and_get(
1461 p_encoded => FND_API.g_false,
1462 p_count => x_msg_count,
1463 p_data => x_msg_data
1464 );
1465
1466 END lock_event_offer;
1467
1468
1469 ---------------------------------------------------------------------
1470 -- PROCEDURE
1471 -- update_event_offer
1472 --
1473 -- HISTORY
1474 -- 11/23/1999 sugupta Created
1475 -- 01/25/2000 gdeodhar Added code to pick up the system_status_code
1476 -- from ams_user_statuses_b table. The UI will
1477 -- never pass this code.
1478 -- 07/07/2000 sugupta modified call inv and pricing api's based on profile option
1479 -- 08/01/2000 sugupta added access code
1480 -- 11-feb-2003 soagrawa fixed access related bug for INTERNAL bug# 2795823
1481 -- 02-jun-2003 dbiswas modified a cursor for bug# 2983031
1482 -- 19-aug-2003 soagrawa fixed bug# 3100382
1483 ----------------------------------------------------------------------
1484 PROCEDURE update_event_offer(
1485 p_api_version IN NUMBER,
1486 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1487 p_commit IN VARCHAR2 := FND_API.g_false,
1488 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
1489
1490 p_evo_rec IN evo_rec_type,
1491
1492 x_return_status OUT NOCOPY VARCHAR2,
1493 x_msg_count OUT NOCOPY NUMBER,
1494 x_msg_data OUT NOCOPY VARCHAR2
1495 )
1496 IS
1497
1498 l_api_version CONSTANT NUMBER := 1.0;
1499 l_api_name CONSTANT VARCHAR2(30) := 'update_event_offer';
1500 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1501
1502 l_evo_rec evo_rec_type;
1503 l_global_flag VARCHAR2(25);
1504 l_source_code VARCHAR2(30);
1505 l_dlv_rec AMS_ActDelvMethod_PVT.act_DelvMethod_rec_type;
1506 -- location_rec hz_location_pub.location_rec_type;
1507 location_rec hz_location_v2pub.location_rec_type;
1508 l_dlv_code VARCHAR2(30);
1509 l_dlv_id NUMBER := null;
1510 l_dlv_ver NUMBER;
1511 l_return_status VARCHAR2(1);
1512 l_traget_list_exists VARCHAR2(1);
1513
1514 l_inventory_item_id NUMBER;
1515 l_org_id NUMBER;
1516 l_inv_item_number VARCHAR2(40);
1517 l_inv_item_desc VARCHAR2(240);
1518 l_inv_long_desc VARCHAR2(4000);
1519 l_pricelist_header_id NUMBER;
1520 l_inv_profile VARCHAR2(1);
1521 l_qp_profile VARCHAR2(1);
1522 ------------------- REMOVE THESE 3 VAR
1523 l_count NUMBER;
1524 l_msg VARCHAR2(2000);
1525 l_msg_count NUMBER;
1526 ------
1527 l_user_id NUMBER;
1528 l_res_id NUMBER;
1529 l_evo_id NUMBER;
1530 l_dummy NUMBER;
1531 l_resource_id NUMBER;
1532 l_obj_num NUMBER;
1533
1534 -- l_location_rec HZ_LOCATION_PUB.Location_Rec_Type;
1535 l_location_rec HZ_LOCATION_V2PUB.Location_Rec_Type;
1536 l_location_id NUMBER;
1537 l_address1 VARCHAR2(240);
1538 l_address2 VARCHAR2(240);
1539 l_city VARCHAR2(60);
1540 l_state VARCHAR2(60);
1541 l_country VARCHAR2(60);
1542
1543
1544 l_sys_st_code VARCHAR2(30);
1545
1546 l_oldStDate DATE;
1547 l_oldEdDate DATE;
1548 l_actres_id NUMBER;
1549 l_obj_ver NUMBER;
1550 l_system_status_code VARCHAR2(30);
1551 l_min_session_time DATE;
1552 l_max_session_time DATE;
1553
1554 /* Following code is modified by ptendulk to move to 1:1 ffm
1555 l_bind_values AMF_REQUEST.string_tbl_type;
1556 */
1557 --l_bind_names JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
1558 --l_bind_values JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
1559
1560 -- added by soagrawa for bug# 2761612 21-jan-2003
1561 l_dummy_source_code VARCHAR2(30);
1562
1563 -- Somewhere it must be checked however if certain fields can be or
1564 --cannot be updated by the user based on the status of the event.
1565 -- For example, if the event is in active stage, the user will not
1566 --be able to update the Marketing Message or budget related columns.
1567 -- appid, ev_header_id, source_code cannot not be updated by the user.
1568
1569 CURSOR c_evo_status_evo IS
1570 SELECT system_status_code
1571 FROM ams_user_statuses_b
1572 WHERE user_status_id = p_evo_rec.user_status_id
1573 AND system_status_type = 'AMS_EVENT_STATUS';
1574
1575 CURSOR c_evo_status_evagd IS
1576 SELECT system_status_code
1577 FROM ams_user_statuses_b
1578 WHERE user_status_id = p_evo_rec.user_status_id
1579 AND system_status_type = 'AMS_EVENT_AGENDA_STATUS';
1580
1581 -- dbiswas modified cursor for bug# 2983031 on 02-jun-2003
1582 CURSOR c_evo_status IS
1583 SELECT system_status_code
1584 FROM ams_user_statuses_b
1585 WHERE user_status_id = l_evo_rec.user_status_id --p_evo_rec.user_status_id
1586 AND system_status_type = 'AMS_EVENT_STATUS';
1587
1588 CURSOR c_evo_dlv_mthd IS
1589 SELECT dlv.delivery_media_type_code, dlv.activity_delivery_method_id, dlv.object_version_number
1590 FROM Ams_act_delivery_methods dlv, ams_event_offers_all_b off
1591 WHERE dlv.activity_delivery_method_id = off.event_delivery_method_id
1592 and off.event_offer_id = p_evo_rec.event_offer_id;
1593
1594 CURSOR c_pricelist_header_id(curr_code IN VARCHAR2) IS
1595 SELECT distinct(pricelist_header_id)
1596 FROM ams_event_offers_all_b evo, qp_price_lists_v qph
1597 WHERE evo.pricelist_header_id = qph.price_list_id
1598 AND qph.currency_code = curr_code;
1599
1600 CURSOR get_res_id(l_user_id IN NUMBER) IS
1601 SELECT resource_id
1602 FROM ams_jtf_rs_emp_v
1603 WHERE user_id = l_user_id;
1604
1605 CURSOR c_location(id_in IN NUMBER) IS
1606 SELECT loc.address1, loc.address2, loc.city, loc.state, loc.country
1607 FROM hz_locations loc, ams_event_offers_all_b evo
1608 WHERE loc.location_id = evo.event_location_id
1609 and evo.event_offer_id = id_in;
1610
1611
1612 CURSOR c_bdgt_line_yn(id_in IN NUMBER, objtype_in IN VARCHAR2) IS
1613 SELECT count(*)
1614 FROM OZF_ACT_BUDGETS --anchaudh: changed call from ams_act_budgets to ozf_act_budgets : bug#3453430
1615 WHERE arc_act_budget_used_by = objtype_in
1616 AND act_budget_used_by_id =id_in;
1617
1618 CURSOR c_evo IS
1619 SELECT global_flag,source_code
1620 FROM ams_event_offers_all_b
1621 WHERE event_offer_id = p_evo_rec.event_offer_id;
1622
1623 CURSOR c_resources IS
1624 SELECT activity_resource_id, object_version_number
1625 FROM ams_act_resources
1626 WHERE act_resource_used_by_id = p_evo_rec.event_offer_id;
1627
1628 /*
1629 CURSOR c_venue_id IS
1630 SELECT event_venue_id, event_start_date, event_end_date, system_status_code
1631 FROM ams_event_offers_all_b
1632 WHERE event_offer_id = p_evo_rec.event_offer_id;
1633 */
1634
1635 CURSOR c_old_dates IS
1636 SELECT event_start_date_time, event_end_date_time
1637 FROM ams_event_offers_all_b
1638 WHERE event_offer_id = p_evo_rec.event_offer_id;
1639
1640 CURSOR C_get_event_resources(id_in IN NUMBER) IS
1641 SELECT activity_resource_id, object_version_number
1642 FROM ams_act_resources
1643 WHERE act_resource_used_by_id = id_in;
1644
1645 CURSOR C_get_session_resources(id_in IN NUMBER) IS
1646 SELECT activity_resource_id, object_version_number
1647 FROM ams_act_resources
1648 WHERE arc_act_resource_used_by = 'SESSION'
1649 AND act_resource_used_by_id IN ( SELECT agenda_id
1650 FROM ams_agendas_b
1651 WHERE agenda_type = 'SESSION'
1652 AND active_flag = 'Y'
1653 AND parent_id IN ( SELECT agenda_id
1654 FROM ams_agendas_b
1655 WHERE parent_id = id_in ) );
1656
1657 -- VMODUR Added 4371624
1658 CURSOR c_get_min_max_session_time(id_in IN NUMBER, type_in in VARCHAR2) IS
1659 select min(s.start_date_time), max(s.end_date_time)
1660 from ams_agendas_b s, ams_agendas_b h
1661 where s.agenda_type = 'SESSION'
1662 and s.active_flag = 'Y'
1663 and s.parent_id = h.agenda_id
1664 and h.parent_id = id_in
1665 and h.parent_type = type_in;
1666
1667 BEGIN
1668
1669 IF (AMS_DEBUG_HIGH_ON) THEN
1670
1671
1672
1673 AMS_Utility_PVT.debug_message(l_full_name||': entered update');
1674
1675 END IF;
1676
1677 -------------------- initialize -------------------------
1678 SAVEPOINT update_event_offer;
1679
1680 IF (AMS_DEBUG_HIGH_ON) THEN
1681
1682 AMS_Utility_PVT.debug_message(l_full_name||': start');
1683
1684 END IF;
1685
1686 IF FND_API.to_boolean(p_init_msg_list) THEN
1687 FND_MSG_PUB.initialize;
1688 END IF;
1689
1690 IF NOT FND_API.compatible_api_call(
1691 l_api_version,
1692 p_api_version,
1693 l_api_name,
1694 g_pkg_name
1695 ) THEN
1696 RAISE FND_API.g_exc_unexpected_error;
1697 END IF;
1698
1699 x_return_status := FND_API.G_RET_STS_SUCCESS;
1700
1701 ----------------------- validate ----------------------
1702
1703 IF (AMS_DEBUG_HIGH_ON) THEN
1704
1705
1706
1707 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
1708
1709 END IF;
1710 IF (AMS_DEBUG_HIGH_ON) THEN
1711
1712 AMS_Utility_PVT.debug_message(p_evo_rec.event_offer_id ||': validate1');
1713 END IF;
1714 -- replace g_miss_char/num/date with current column values
1715 complete_evo_rec(p_evo_rec, l_evo_rec);
1716
1717 IF (AMS_DEBUG_HIGH_ON) THEN
1718
1719
1720
1721 AMS_Utility_PVT.debug_message(l_full_name ||': check items');
1722
1723 END IF;
1724 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1725 check_evo_items(
1726 p_evo_rec => l_evo_rec,
1727 p_validation_mode => JTF_PLSQL_API.g_update,
1728 x_return_status => l_return_status
1729 );
1730
1731 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1732 RAISE FND_API.g_exc_unexpected_error;
1733 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1734 RAISE FND_API.g_exc_error;
1735 END IF;
1736 END IF;
1737
1738 IF (AMS_DEBUG_HIGH_ON) THEN
1739
1740
1741
1742 AMS_Utility_PVT.debug_message(l_full_name ||': check records');
1743
1744 END IF;
1745
1746 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
1747 check_evo_record(
1748 p_evo_rec => p_evo_rec,
1749 p_complete_rec => l_evo_rec,
1750 x_return_status => l_return_status
1751 );
1752
1753 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1754 RAISE FND_API.g_exc_unexpected_error;
1755 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1756 RAISE FND_API.g_exc_error;
1757 END IF;
1758 END IF;
1759 -- inter-entity level
1760 IF (AMS_DEBUG_HIGH_ON) THEN
1761
1762 AMS_Utility_PVT.debug_message(l_full_name ||': check inter-entity');
1763 END IF;
1764 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_inter_entity THEN
1765 check_evo_inter_entity(
1766 p_evo_rec => p_evo_rec,
1767 p_complete_rec => l_evo_rec,
1768 p_validation_mode => JTF_PLSQL_API.g_update,
1769 x_return_status => l_return_status
1770 );
1771 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1772 RAISE FND_API.g_exc_unexpected_error;
1773 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1774 RAISE FND_API.g_exc_error;
1775 END IF;
1776 END IF;
1777
1778 -- Check if (budget lines are available added 06/04/2001 murali)
1779
1780 IF (p_evo_rec.currency_code_tc <> FND_API.g_miss_char) THEN
1781 IF (p_evo_rec.currency_code_tc <> nvl(l_evo_rec.currency_code_tc, '1') ) THEN
1782 OPEN c_bdgt_line_yn(l_evo_rec.event_offer_id, l_evo_rec.event_object_type);
1783 FETCH c_bdgt_line_yn INTO l_dummy;
1784 IF c_bdgt_line_yn%NOTFOUND THEN
1785 CLOSE c_bdgt_line_yn;
1786 ELSE
1787 CLOSE c_bdgt_line_yn;
1788 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1789 FND_MESSAGE.set_name('AMS', 'AMS_EVENT_BUD_PRESENT');
1790 FND_MSG_PUB.add;
1791 END IF;
1792 RAISE FND_API.g_exc_error;
1793 END IF;
1794 END IF;
1795 END IF;
1796
1797 -- check rules specific to update evo.. eg. status id should trigger approval workflow
1798 -- other checks regarding dates and numbers are included in check_evo_record
1799 IF (AMS_DEBUG_HIGH_ON) THEN
1800
1801 AMS_Utility_PVT.debug_message(l_full_name ||': check update level');
1802 END IF;
1803
1804 check_evo_update(
1805 p_evo_rec => l_evo_rec,
1806 x_return_status => l_return_status
1807 );
1808
1809 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1810 RAISE FND_API.g_exc_unexpected_error;
1811 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1812 RAISE FND_API.g_exc_error;
1813 END IF;
1814
1815 -- handle source code update
1816 IF (AMS_DEBUG_HIGH_ON) THEN
1817
1818 AMS_Utility_PVT.debug_message(l_full_name ||': update source code');
1819 END IF;
1820 -- only for main and non active events
1821
1822
1823 /* Changed the p_evo_rec.source_code to l_evo_rec.source_code in the following line
1824 p_evo_rec.source_code will be g_miss_char which will give OSO Exception
1825 Bug # 2233024
1826 */
1827
1828 IF (AMS_DEBUG_HIGH_ON) THEN
1829
1830
1831
1832 AMS_Utility_PVT.debug_message('The value of p_source_code is ' || l_evo_rec.source_code);
1833
1834 END IF;
1835
1836 l_traget_list_exists := FND_API.G_TRUE;
1837 /* Added by GMADANA */
1838 OPEN c_evo;
1839 FETCH c_evo INTO l_global_flag, l_source_code;
1840 CLOSE c_evo;
1841 IF (AMS_DEBUG_HIGH_ON) THEN
1842
1843 AMS_Utility_PVT.debug_message('The value of p_source_code is ' || l_evo_rec.event_offer_id ||l_evo_rec.event_object_type );
1844 END IF;
1845 l_traget_list_exists := AMS_ScheduleRules_PVT.Target_Group_Exist( p_schedule_id => l_evo_rec.event_offer_id
1846 , p_obj_type => l_evo_rec.event_object_type);
1847 if (l_traget_list_exists = FND_API.G_FALSE) THEN
1848 IF (AMS_DEBUG_HIGH_ON) THEN
1849
1850 AMS_Utility_PVT.debug_message('l_traget_list_exists is false' );
1851 END IF;
1852 end if;
1853
1854 IF p_evo_rec.source_code <> FND_API.g_miss_char
1855 THEN
1856 IF p_evo_rec.source_code <> l_source_code
1857 THEN
1858 IF l_evo_rec.event_level = 'MAIN' AND l_evo_rec.system_status_code = 'NEW' AND l_traget_list_exists = FND_API.G_FALSE
1859 THEN
1860 IF l_evo_rec.event_object_type = 'EVEO' THEN
1861 -- extracting out source code modified by soagrawa
1862 -- 21-jan-2003 bug# 2761612
1863 AMS_EvhRules_PVT.update_evo_source_code(
1864 l_evo_rec.event_offer_id,
1865 l_evo_rec.source_code,
1866 l_evo_rec.global_flag,
1867 l_dummy_source_code,
1868 l_return_status
1869 );
1870 l_evo_rec.source_code := l_dummy_source_code;
1871 ELSE
1872 /* this new procedure needed for one of event take this comment once the code is ready*/
1873 -- extracting out source code modified by soagrawa
1874 -- 21-jan-2003 bug# 2761612
1875 AMS_EvhRules_PVT.update_eone_source_code(
1876 l_evo_rec.event_offer_id,
1877 l_evo_rec.source_code,
1878 l_evo_rec.global_flag,
1879 l_dummy_source_code,
1880 l_return_status
1881 );
1882 l_evo_rec.source_code := l_dummy_source_code;
1883 END IF;
1884 IF l_return_status = FND_API.g_ret_sts_error THEN
1885 RAISE FND_API.g_exc_error;
1886 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1887 RAISE FND_API.g_exc_unexpected_error;
1888 END IF;
1889 ELSE
1890 if l_traget_list_exists = FND_API.G_TRUE
1891 THEN
1892 FND_MESSAGE.set_name('AMS', 'AMS_EVEO_SRCCD_NO_CHNG');
1893 FND_MSG_PUB.add;
1894 RAISE FND_API.g_exc_error;
1895 else
1896 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_UPDATE_SRC_STAT');
1897 FND_MSG_PUB.add;
1898 RAISE FND_API.g_exc_error;
1899 END IF;
1900 END IF;
1901 END IF;
1902 ELSIF p_evo_rec.source_code IS NULL /* added by musman for bug 2618242 fix*/
1903 THEN
1904 l_evo_rec.source_code := l_source_code;
1905 END IF;
1906
1907 IF p_evo_rec.global_flag <> FND_API.g_miss_char
1908 OR p_evo_rec.global_flag is NULL
1909 THEN
1910 IF p_evo_rec.global_flag <> l_global_flag
1911 THEN
1912 IF l_evo_rec.event_level = 'MAIN' AND l_evo_rec.system_status_code = 'NEW' AND l_traget_list_exists = FND_API.G_FALSE
1913 THEN
1914 IF l_evo_rec.event_object_type = 'EVEO' THEN
1915 IF (AMS_DEBUG_HIGH_ON) THEN
1916
1917 AMS_Utility_PVT.debug_message('Entered AMS_EvhRules_PVT.update_evo_source_code');
1918 END IF;
1919 -- extracting out source code modified by soagrawa
1920 -- 21-jan-2003 bug# 2761612
1921 AMS_EvhRules_PVT.update_evo_source_code(
1922 l_evo_rec.event_offer_id,
1923 l_evo_rec.source_code,
1924 l_evo_rec.global_flag,
1925 l_dummy_source_code,
1926 l_return_status
1927 );
1928 l_evo_rec.source_code := l_dummy_source_code;
1929 ELSE
1930 /* this new procedure needed for one of event take this comment once the code is ready*/
1931 -- extracting out source code modified by soagrawa
1932 -- 21-jan-2003 bug# 2761612
1933 AMS_EvhRules_PVT.update_eone_source_code(
1934 l_evo_rec.event_offer_id,
1935 l_evo_rec.source_code,
1936 l_evo_rec.global_flag,
1937 l_dummy_source_code,
1938 l_return_status
1939 );
1940 l_evo_rec.source_code := l_dummy_source_code;
1941 END IF;
1942 IF l_return_status = FND_API.g_ret_sts_error THEN
1943 RAISE FND_API.g_exc_error;
1944 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1945 RAISE FND_API.g_exc_unexpected_error;
1946 END IF;
1947 ELSE
1948 if l_traget_list_exists = FND_API.G_TRUE
1949 THEN
1950 FND_MESSAGE.set_name('AMS', 'AMS_EVEO_GLFLAG_NO_CHANG');
1951 FND_MSG_PUB.add;
1952 RAISE FND_API.g_exc_error;
1953 else
1954 FND_MESSAGE.set_name('AMS', 'AMS_EVNT_UPDATE_GFLG_STAT');
1955 FND_MSG_PUB.add;
1956 RAISE FND_API.g_exc_error;
1957 END IF;
1958 END IF;
1959 END IF;
1960 END IF;
1961
1962 --------------- CHECK ACCESS FOR THE USER-------------------
1963 ----------added sugupta 07/25/2000
1964 l_user_id := FND_GLOBAL.User_Id;
1965 IF (AMS_DEBUG_HIGH_ON) THEN
1966
1967 AMS_Utility_PVT.debug_message(' CHECK ACCESS l_user_id is ' ||l_user_id );
1968 END IF;
1969 if l_user_id IS NOT NULL then
1970 open get_res_id(l_user_id);
1971 fetch get_res_id into l_res_id;
1972 close get_res_id;
1973 end if;
1974 IF l_evo_rec.event_level = 'SUB' THEN
1975 l_evo_id := l_evo_rec.parent_event_offer_id;
1976 ELSE
1977 l_evo_id := l_evo_rec.event_offer_id;
1978 END IF;
1979 IF (AMS_DEBUG_HIGH_ON) THEN
1980
1981 AMS_Utility_PVT.debug_message(l_evo_id || l_evo_rec.event_object_type || l_user_id ||': CHECK ACCESS');
1982 END IF;
1983
1984
1985 -- soagrawa added if clause on 11-feb-2003 for INTERNAL bug# 2795823
1986 IF(l_evo_rec.event_object_type = 'EONE' AND l_evo_rec.parent_type = 'CAMP')
1987 THEN
1988 -- dont check for access
1989 NULL;
1990 ELSE
1991 -- check for access
1992 if AMS_ACCESS_PVT.check_update_access(l_evo_id, l_evo_rec.event_object_type, l_res_id, 'USER') = 'N' then
1993 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1994 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_UPDATE_ACCESS');
1995 FND_MSG_PUB.add;
1996 END IF;
1997 RAISE FND_API.g_exc_error;
1998 end if;
1999 END IF;
2000
2001
2002 -----------------------update---------------------------------------
2003 IF l_evo_rec.user_status_id <> FND_API.g_miss_num
2004 THEN
2005
2006 -- pick up the correct system_status_code first.
2007 IF l_evo_rec.event_level = 'MAIN'
2008 THEN
2009 OPEN c_evo_status_evo;
2010 FETCH c_evo_status_evo INTO l_evo_rec.system_status_code;
2011 CLOSE c_evo_status_evo;
2012 ELSIF l_evo_rec.event_level = 'SUB'
2013 THEN
2014 OPEN c_evo_status_evagd;
2015 FETCH c_evo_status_evagd INTO l_evo_rec.system_status_code;
2016 CLOSE c_evo_status_evagd;
2017 END IF;
2018 END IF;
2019
2020 -- Have to confirm that delivery_method code has not changed for this offer.
2021 -- If it has, call the Update_Act_DelvMethod api to change the delv_method
2022 -- corresponding to the delv_method_id stored in the offers table.
2023 -- open the cursor and retrive values for l_dlv_id.. if l_dlv_id exists before
2024 -- that l_dlv_id is always inserted back
2025 -- Please NOTE THAT EVENT_DELIVERY_METHOD_CODE is not updated
2026 -- in complete_evo_rec procedure.. so iis either NULL or it has a new value
2027 -- No code has been added for the case if l_dlv_id does not exist -- added craete_dlv then
2028 -- update_event_offer proceddure is called.. in that case, have to add a
2029 -- proceudre call to Create_Act_DelvMethod if l_dlv_id is null after cursor call
2030 -- sugupta 3/27/00 change of plans.. delivery method code will alwyas be passed to update_event_offer
2031 -- call and not create procedure.. hence adding the code to call Create_Act_DelvMethod
2032 -- dlv method code will neevr be passed for event agenda... so no need to put an if loop for event level
2033
2034 OPEN c_evo_dlv_mthd;
2035 FETCH c_evo_dlv_mthd INTO l_dlv_code, l_dlv_id, l_dlv_ver;
2036 CLOSE c_evo_dlv_mthd;
2037
2038
2039 IF (AMS_DEBUG_HIGH_ON) THEN
2040
2041
2042
2043
2044
2045 AMS_Utility_PVT.debug_message( 'delv meth code from cursor ' || l_dlv_code);
2046
2047
2048 END IF;
2049 IF (AMS_DEBUG_HIGH_ON) THEN
2050
2051 AMS_Utility_PVT.debug_message( 'delv meth Code in the Rec ' || l_evo_rec.event_delivery_method_code);
2052 END IF;
2053
2054 IF (AMS_DEBUG_HIGH_ON) THEN
2055
2056
2057
2058 AMS_Utility_PVT.debug_message( 'delv meth id from cursor ' || l_dlv_id);
2059
2060 END IF;
2061
2062 IF l_evo_rec.event_delivery_method_code <> FND_API.g_miss_char
2063 AND l_evo_rec.event_delivery_method_code IS NOT NULL THEN
2064
2065 IF l_dlv_id is NOT NULL then
2066 IF l_evo_rec.EVENT_DELIVERY_METHOD_CODE <> l_dlv_code THEN
2067 AMS_ActDelvMethod_PVT.init_act_DelvMethod_rec (l_dlv_rec);
2068 l_dlv_rec.ACTIVITY_DELIVERY_METHOD_ID := l_dlv_id;
2069 l_dlv_rec.DELIVERY_MEDIA_TYPE_CODE := l_evo_rec.EVENT_DELIVERY_METHOD_CODE;
2070 l_dlv_rec.object_version_number := l_dlv_ver;
2071
2072 AMS_ActDelvMethod_PVT.Update_Act_DelvMethod(
2073 p_api_version => l_api_version,
2074 p_init_msg_list => FND_API.g_false,
2075 p_commit => FND_API.g_false,
2076 p_validation_level => FND_API.g_valid_level_full,
2077 x_return_status => l_return_status,
2078 x_msg_count => x_msg_count,
2079 x_msg_data => x_msg_data,
2080 p_act_DelvMethod_rec => l_dlv_rec);
2081
2082 IF l_return_status = FND_API.g_ret_sts_error THEN
2083 RAISE FND_API.g_exc_error;
2084 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2085 RAISE FND_API.g_exc_unexpected_error;
2086 END IF;
2087 END IF;
2088 ELSE
2089 IF l_evo_rec.EVENT_STANDALONE_FLAG = 'Y' THEN
2090 l_dlv_rec.ARC_ACT_DELIVERY_USED_BY := 'EONE';
2091 l_dlv_rec.ACT_DELIVERY_METHOD_USED_BY_ID := l_evo_rec.event_offer_id;
2092 l_dlv_rec.DELIVERY_MEDIA_TYPE_CODE := l_evo_rec.EVENT_DELIVERY_METHOD_CODE;
2093 ELSE
2094 l_dlv_rec.ARC_ACT_DELIVERY_USED_BY := 'EVEO';
2095 l_dlv_rec.ACT_DELIVERY_METHOD_USED_BY_ID := l_evo_rec.event_offer_id;
2096 l_dlv_rec.DELIVERY_MEDIA_TYPE_CODE := l_evo_rec.EVENT_DELIVERY_METHOD_CODE;
2097 END IF;
2098 AMS_ActDelvMethod_PVT.Create_Act_DelvMethod(
2099 p_api_version => l_api_version,
2100 p_init_msg_list => FND_API.g_false,
2101 p_commit => FND_API.g_false,
2102 p_validation_level => FND_API.g_valid_level_full,
2103 x_return_status => l_return_status,
2104 x_msg_count => x_msg_count,
2105 x_msg_data => x_msg_data,
2106 p_act_DelvMethod_rec => l_dlv_rec,
2107 x_act_DelvMethod_id => l_dlv_id);
2108 IF l_return_status = FND_API.g_ret_sts_error THEN
2109 RAISE FND_API.g_exc_error;
2110 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2111 RAISE FND_API.g_exc_unexpected_error;
2112 END IF;
2113 END IF;
2114 -- ELSE -- meaning delv method code passed as null
2115 -- The following if condition is added for bug # 2376741
2116
2117 ELSIF(l_evo_rec.event_delivery_method_code IS NULL)
2118 THEN
2119 -- added sugupta 07/26/2000 if delv code passed as null and delv id exists, then we delete act_del_id
2120 -- from both act_delv table as well as eveo table
2121
2122 IF l_dlv_id is NOT NULL then
2123 AMS_ActDelvMethod_PVT.Delete_Act_DelvMethod(
2124 p_api_version => l_api_version,
2125 p_init_msg_list => FND_API.g_false,
2126 p_commit => FND_API.g_false,
2127 p_validation_level => FND_API.g_valid_level_full,
2128 x_return_status => l_return_status,
2129 x_msg_count => x_msg_count,
2130 x_msg_data => x_msg_data,
2131 p_act_DelvMethod_id => l_dlv_id,
2132 p_object_version => l_dlv_ver);
2133 IF l_return_status = FND_API.g_ret_sts_error THEN
2134 RAISE FND_API.g_exc_error;
2135 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2136 RAISE FND_API.g_exc_unexpected_error;
2137 END IF;
2138 -- now that dlv_id has been deleted from act_delv table, null it from evo table as well
2139 l_dlv_id := null;
2140 END IF;
2141 END IF;
2142
2143
2144 ----------INV AND PRICING INTEGRATION /* Added by GMADANA */--------------------
2145
2146 IF l_evo_rec.INVENTORY_ITEM_ID IS NULL THEN
2147 IF l_evo_rec.INVENTORY_ITEM <> FND_API.g_miss_char
2148 AND l_evo_rec.INVENTORY_ITEM IS NOT NULL THEN
2149 IF (AMS_DEBUG_HIGH_ON) THEN
2150
2151 AMS_Utility_PVT.debug_message(l_full_name ||': calling create inv item');
2152 END IF;
2153 l_inv_item_number := l_evo_rec.INVENTORY_ITEM;
2154 l_inv_item_desc := l_evo_rec.EVENT_OFFER_NAME;
2155 l_inv_long_desc := l_evo_rec.DESCRIPTION;
2156
2157
2158 AMS_EvhRules_PVT.create_inventory_item(
2159 p_item_number => l_inv_item_number,
2160 p_item_desc => l_inv_item_desc,
2161 p_item_long_desc => l_inv_long_desc,
2162 p_user_id => l_evo_rec.owner_user_id,
2163 x_org_id => l_org_id,
2164 x_inv_item_id => l_inventory_item_id,
2165 x_return_status => l_return_status,
2166 x_msg_count => x_msg_count,
2167 x_msg_data => x_msg_data);
2168
2169 l_evo_rec.INVENTORY_ITEM_ID := l_inventory_item_id;
2170 l_evo_rec.ORGANIZATION_ID := l_org_id;
2171
2172 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2173 RAISE FND_API.g_exc_unexpected_error;
2174 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
2175 RAISE FND_API.g_exc_error;
2176 END IF;
2177
2178
2179 create_global_pricing(
2180 p_evo_rec => l_evo_rec,
2181 x_return_status => l_return_status
2182 );
2183
2184 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2185 RAISE FND_API.g_exc_unexpected_error;
2186 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
2187 RAISE FND_API.g_exc_error;
2188 END IF;
2189
2190 END IF; -- end if for l_evo_rec.INVENTORY_ITEM <> FND_API.g_miss_char
2191 ELSE
2192 create_global_pricing(
2193 p_evo_rec => l_evo_rec,
2194 x_return_status => l_return_status
2195 );
2196
2197 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2198 RAISE FND_API.g_exc_unexpected_error;
2199 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
2200 RAISE FND_API.g_exc_error;
2201 END IF;
2202
2203 END IF; -- end if for IF l_evo_rec.INVENTORY_ITEM_ID IS NULL
2204
2205 ----------------END OF INV/PRICING INTEGRATION-----------------------
2206 -- calculate reg_effective_capacity if maximum capacity is not null
2207
2208 IF l_evo_rec.reg_maximum_capacity IS NOT NULL then
2209 IF l_evo_rec.reg_overbook_pct IS NOT NULL then
2210 l_evo_rec.reg_effective_capacity := round((1 + (l_evo_rec.reg_overbook_pct/100)) * l_evo_rec.reg_maximum_capacity);
2211 ELSE
2212 l_evo_rec.reg_effective_capacity := l_evo_rec.reg_maximum_capacity;
2213 END IF;
2214 ELSE
2215 l_evo_rec.reg_effective_capacity := 0;
2216 END IF;
2217
2218 -- check if city, state,country has been passed. If they are passed, create a new loc_id
2219 -- THESE will never be passed for event agenda... so no need to put an if loop for event level
2220 -- ==========================================================
2221 -- Following code is added by mukumar on 10/30/2000
2222 -- the code will convert the transaction currency in to
2223 -- functional currency.
2224 -- ==========================================================
2225 IF p_evo_rec.fund_amount_tc IS NOT NULL THEN
2226 IF p_evo_rec.fund_amount_tc <> FND_API.g_miss_num THEN
2227 AMS_EvhRules_PVT.Convert_Evnt_Currency(
2228 p_tc_curr => l_evo_rec.currency_code_tc,
2229 p_tc_amt => l_evo_rec.fund_amount_tc,
2230 x_fc_curr => l_evo_rec.currency_code_fc,
2231 x_fc_amt => l_evo_rec.fund_amount_fc
2232 ) ;
2233 END IF ;
2234 ELSE
2235 l_evo_rec.fund_amount_fc := null ;
2236 END IF;
2237 -------------------------- check locations --------------------
2238 -- CHECK FOR WHETHER NEW LOCATION NEEDS TO BE CREATED
2239 IF (l_evo_rec.event_location_id IS NOT NULL
2240 AND (nvl(l_evo_rec.CITY, ' ') = ' ' OR l_evo_rec.CITY = FND_API.g_miss_char)
2241 AND (nvl(l_evo_rec.STATE, ' ') = ' ' OR l_evo_rec.STATE = FND_API.g_miss_char)
2242 AND (nvl(l_evo_rec.COUNTRY, ' ') = ' ' OR l_evo_rec.COUNTRY = FND_API.g_miss_char ))
2243 THEN
2244 l_evo_rec.event_location_id := NULL;
2245 ELSE
2246 IF l_evo_rec.event_location_id IS NOT NULL THEN
2247 OPEN c_location(l_evo_rec.event_offer_id);
2248 FETCH c_location INTO l_address1, l_address2, l_city, l_state, l_country;
2249 IF c_location%NOTFOUND THEN
2250 CLOSE c_location;
2251 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2252 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2253 FND_MSG_PUB.add;
2254 END IF;
2255 RAISE FND_API.g_exc_error;
2256 END IF;
2257 CLOSE c_location;
2258 END IF;
2259 IF (nvl(l_evo_rec.city, ' ') <> nvl(l_city, ' ') OR
2260 nvl(l_evo_rec.state, ' ') <> nvl(l_state, ' ') OR
2261 nvl(l_evo_rec.country, ' ') <> nvl(l_country, ' ')) THEN
2262 l_location_rec.address1 := ' ';
2263 l_location_rec.city := l_evo_rec.city;
2264 l_location_rec.state := l_evo_rec.state;
2265 l_location_rec.country := l_evo_rec.country;
2266 l_location_rec.ORIG_SYSTEM_REFERENCE := -1;
2267 l_location_rec.CONTENT_SOURCE_TYPE := 'USER_ENTERED';
2268 l_location_rec.created_by_module := 'AMS_EVENT';
2269 HZ_LOCATION_V2PUB.Create_Location(
2270 p_init_msg_list => FND_API.g_false,
2271 p_location_rec => l_location_rec,
2272 x_return_status => l_return_status,
2273 x_msg_count => x_msg_count,
2274 x_msg_data => x_msg_data,
2275 x_location_id => l_evo_rec.event_location_id
2276 );
2277 --IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
2278 -- l_venue_rec.location_id := l_location_id;
2279 --END IF;
2280 IF l_return_status = FND_API.g_ret_sts_error THEN
2281 RAISE FND_API.g_exc_error;
2282 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2283 RAISE FND_API.g_exc_unexpected_error;
2284 END IF;
2285 END IF; --check for addr1, city, state, country
2286 END IF; -- check for NULL
2287
2288
2289 /* Code Added by GMADANA for checking whether parent is active or not */
2290
2291 -- soagrawa added if clause on 24-feb-2003 for INTERNAL bug# 2816673
2292 IF(l_evo_rec.event_object_type = 'EONE' AND l_evo_rec.parent_type = 'CAMP')
2293 THEN
2294 -- dont check for parent being active
2295 NULL;
2296 ELSE
2297
2298 Check_Parent_Active(
2299 p_evo_rec => l_evo_rec,
2300 x_return_status => x_return_status
2301 );
2302
2303 IF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2304 RAISE Fnd_Api.g_exc_unexpected_error;
2305 ELSIF x_return_status = Fnd_Api.g_ret_sts_error THEN
2306 RAISE Fnd_Api.g_exc_error;
2307 END IF;
2308 END IF;
2309
2310 /* Code Added by GMADANA for Date validation for attaching Program as Parent */
2311 /* Check_Dates_Range has date validation for MAIN level and SUB level events
2312 as agenda for Event Schedule has Start date on the GUI.
2313 */
2314
2315 -- soagrawa added if clause on 24-feb-2003 for INTERNAL bug# 2816673
2316 IF(l_evo_rec.event_object_type = 'EONE' AND l_evo_rec.parent_type = 'CAMP')
2317 THEN
2318 -- dont check for date range
2319 NULL;
2320 ELSE
2321 Check_Dates_Range(
2322 p_evo_rec => l_evo_rec,
2323 x_return_status => x_return_status
2324 );
2325
2326 IF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2327 RAISE Fnd_Api.g_exc_unexpected_error;
2328 ELSIF x_return_status = Fnd_Api.g_ret_sts_error THEN
2329 RAISE Fnd_Api.g_exc_error;
2330 END IF;
2331
2332 END IF;
2333
2334 -- VMODUR Added for Bug 4371624
2335 IF l_evo_rec.event_level = 'MAIN' THEN
2336 OPEN c_get_min_max_session_time(l_evo_rec.event_offer_id, l_evo_rec.event_object_type);
2337 FETCH c_get_min_max_session_time INTO l_min_session_time, l_max_session_time;
2338 CLOSE c_get_min_max_session_time;
2339
2340 IF l_min_session_time IS NOT NULL AND l_max_session_time IS NOT NULL THEN
2341 IF (AMS_DEBUG_HIGH_ON) THEN
2342 AMS_Utility_PVT.debug_message('l_min_session_time: '||to_char(l_min_session_time,'DD-MON-YYYY HH24:MI:SS'));
2343 AMS_Utility_PVT.debug_message('l_max_session_time: '||to_char(l_max_session_time,'DD-MON-YYYY HH24:MI:SS'));
2344 END IF;
2345 END IF;
2346
2347 IF l_min_session_time IS NOT NULL AND l_min_session_time < l_evo_rec.event_start_date_time THEN
2348 IF (AMS_DEBUG_HIGH_ON) THEN
2349 AMS_Utility_PVT.debug_message('Event Start is after Min Session Start');
2350 END IF;
2351 Fnd_Message.set_name('AMS', 'AMS_EVT_SESS_STDT_CONFLICT');
2352 Fnd_Msg_Pub.ADD;
2353 x_return_status := Fnd_Api.g_ret_sts_error;
2354 RETURN;
2355 END IF;
2356
2357 IF l_max_session_time IS NOT NULL AND l_max_session_time > l_evo_rec.event_end_date_time THEN
2358 IF (AMS_DEBUG_HIGH_ON) THEN
2359 AMS_Utility_PVT.debug_message('Event End is before Max Session End');
2360 END IF;
2361 Fnd_Message.set_name('AMS', 'AMS_EVT_SESS_EDDT_CONFLICT');
2362 Fnd_Msg_Pub.ADD;
2363 x_return_status := Fnd_Api.g_ret_sts_error;
2364 RETURN;
2365 END IF;
2366
2367 END IF;
2368 -- VMODUR End of Addition
2369
2370 /* Call to Metrics If Progam name has chnaged. Only EONEs have program as parent, not EVEO */
2371 IF( l_evo_rec.event_object_type = 'EONE') THEN
2372 Update_Metrics (
2373 p_evo_rec => l_evo_rec,
2374 x_return_status => x_return_status,
2375 x_msg_count => x_msg_count,
2376 x_msg_data =>x_msg_data
2377 );
2378 END IF;
2379
2380 IF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
2381 RAISE Fnd_Api.g_exc_unexpected_error;
2382 ELSIF x_return_status = Fnd_Api.g_ret_sts_error THEN
2383 RAISE Fnd_Api.g_exc_error;
2384 END IF;
2385
2386 /* If the owner user id cahnges call AMS_EvhRules_PVT.Update_Owner */
2387 -- Change the owner in Access table if the owner is changed.
2388
2389 IF p_evo_rec.owner_user_id <> FND_API.g_miss_num
2390 THEN
2391 AMS_EvhRules_PVT.Update_Owner(
2392 p_api_version => p_api_version,
2393 p_init_msg_list => p_init_msg_list,
2394 p_commit => p_commit,
2395 p_validation_level => p_validation_level,
2396 x_return_status => l_return_status,
2397 x_msg_count => x_msg_count,
2398 x_msg_data => x_msg_data,
2399 p_object_type => l_evo_rec.event_object_type,
2400 p_event_id => l_evo_rec.event_offer_id,
2401 p_owner_id => p_evo_rec.owner_user_id
2402 );
2403
2404 IF l_return_status = FND_API.g_ret_sts_error THEN
2405 RAISE FND_API.g_exc_error;
2406 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2407 RAISE FND_API.g_exc_unexpected_error;
2408 END IF;
2409 END IF ;
2410
2411 OPEN c_old_dates;
2412 FETCH c_old_dates INTO l_oldStDate, l_oldEdDate;
2413 CLOSE c_old_dates;
2414
2415 IF( l_oldStDate <> l_evo_rec.event_start_date_time
2416 OR l_oldEdDate <> l_evo_rec.event_end_date_time)
2417 THEN
2418
2419 -- Get all the resources attached to the event (event level)
2420 -- and make them unconfirmed.
2421
2422 OPEN C_get_event_resources(l_evo_rec.event_offer_id);
2423 FETCH C_get_event_resources INTO l_actres_id, l_obj_ver;
2424
2425 WHILE C_get_event_resources%FOUND LOOP
2426
2427 UPDATE ams_act_resources
2428 SET object_version_number = l_obj_ver + 1,
2429 system_status_code = 'UNCONFIRMED',
2430 user_status_id = ( SELECT user_status_id
2431 FROM AMS_USER_STATUSES_B
2432 WHERE SYSTEM_STATUS_CODE = 'UNCONFIRMED'
2433 AND SYSTEM_STATUS_TYPE = 'AMS_EVENT_AGENDA_STATUS'
2434 -- added by soagrawa on 25-feb-2003 for bug# 2820297
2435 AND DEFAULT_FLAG = 'Y')
2436 WHERE activity_resource_id = l_actres_id;
2437
2438 FETCH C_get_event_resources INTO l_actres_id, l_obj_ver;
2439
2440 END LOOP;
2441
2442
2443 -- Get all the resources attached to the event (Session level)
2444 -- and make them unconfirmed.
2445 OPEN C_get_session_resources(l_evo_rec.event_offer_id);
2446 FETCH C_get_session_resources INTO l_actres_id, l_obj_ver;
2447
2448 WHILE C_get_session_resources%FOUND LOOP
2449
2450 UPDATE ams_act_resources
2451 SET object_version_number = l_obj_ver + 1,
2452 system_status_code = 'UNCONFIRMED',
2453 user_status_id = ( SELECT user_status_id
2454 FROM AMS_USER_STATUSES_B
2455 WHERE SYSTEM_STATUS_CODE = 'UNCONFIRMED'
2456 AND SYSTEM_STATUS_TYPE = 'AMS_EVENT_AGENDA_STATUS'
2457 -- added by soagrawa on 25-feb-2003 for bug# 2820297
2458 AND DEFAULT_FLAG = 'Y')
2459 WHERE activity_resource_id = l_actres_id;
2460
2461 FETCH C_get_session_resources INTO l_actres_id, l_obj_ver;
2462
2463 END LOOP;
2464
2465 END IF;
2466
2467
2468
2469
2470 /* Get the Old venue id, old start date and old end date
2471 for event fulfilment which will be called at the end of
2472 update
2473 */
2474 /*
2475 OPEN c_venue_id;
2476 FETCH c_venue_id INTO l_venue_id, l_start_date, l_end_date, l_system_status_code;
2477 CLOSE c_venue_id;
2478 */
2479
2480 -------------------------- update --------------------
2481 IF (AMS_DEBUG_HIGH_ON) THEN
2482
2483 AMS_Utility_PVT.debug_message(l_full_name ||': update');
2484 END IF;
2485 IF (AMS_DEBUG_HIGH_ON) THEN
2486
2487 AMS_Utility_PVT.debug_message('obj-ver number'||l_evo_rec.object_version_number);
2488 END IF;
2489 IF (AMS_DEBUG_HIGH_ON) THEN
2490
2491 AMS_Utility_PVT.debug_message('obj-id'||l_evo_rec.event_offer_id);
2492 END IF;
2493 IF (AMS_DEBUG_HIGH_ON) THEN
2494
2495 AMS_Utility_PVT.debug_message('obj-flag'||l_evo_rec.overflow_flag);
2496 END IF;
2497
2498 -- GDEODHAR : Sept. 26, 2000 added two separate update statements.
2499 -- One for the main events where the workflow has to be kicked off for status change
2500 -- and hence the update of the base table should not update the status related fields.
2501 -- The other update statement is needed for the Agenda items for which the status change
2502 -- is straight-forward.
2503
2504 IF l_evo_rec.event_level = 'MAIN' THEN
2505 UPDATE ams_event_offers_all_b SET
2506 last_update_date = SYSDATE,
2507 last_updated_by = FND_GLOBAL.user_id,
2508 last_update_login = FND_GLOBAL.conc_login_id,
2509 object_version_number = l_evo_rec.object_version_number + 1,
2510 private_flag = l_evo_rec.private_flag,
2511 active_flag = l_evo_rec.active_flag,
2512 source_code = l_evo_rec.source_code,
2513 event_level = l_evo_rec.event_level,
2514 event_type_code = l_evo_rec.event_type_code,
2515 event_delivery_method_id = l_dlv_id,
2516 event_language_code = l_evo_rec.event_language_code,
2517 event_location_id = l_evo_rec.event_location_id,
2518 overflow_flag = l_evo_rec.overflow_flag,
2519 partner_flag = l_evo_rec.partner_flag,
2520 event_standalone_flag = l_evo_rec.event_standalone_flag,
2521 reg_frozen_flag = l_evo_rec.reg_frozen_flag,
2522 reg_required_flag = l_evo_rec.reg_required_flag,
2523 reg_charge_flag = l_evo_rec.reg_charge_flag,
2524 reg_invited_only_flag = l_evo_rec.reg_invited_only_flag,
2525 reg_waitlist_allowed_flag = l_evo_rec.reg_waitlist_allowed_flag,
2526 reg_overbook_allowed_flag = l_evo_rec.reg_overbook_allowed_flag,
2527 parent_event_offer_id = l_evo_rec.parent_event_offer_id,
2528 event_duration = l_evo_rec.event_duration,
2529 event_duration_uom_code = l_evo_rec.event_duration_uom_code,
2530 -- event_start_date = l_evo_rec.event_start_date,
2531 event_start_date_time = l_evo_rec.event_start_date_time,
2532 -- event_end_date = l_evo_rec.event_end_date,
2533 event_end_date_time = l_evo_rec.event_end_date_time,
2534 reg_start_date = l_evo_rec.reg_start_date,
2535 reg_start_time = to_date(to_char(l_evo_rec.reg_start_time,'HH24:MI'),'HH24:MI'),
2536 reg_end_date = l_evo_rec.reg_end_date,
2537 reg_end_time = to_date(to_char(l_evo_rec.reg_end_time,'HH24:MI'),'HH24:MI'),
2538 reg_maximum_capacity = l_evo_rec.reg_maximum_capacity,
2539 reg_overbook_pct = l_evo_rec.reg_overbook_pct,
2540 reg_effective_capacity = l_evo_rec.reg_effective_capacity,
2541 reg_waitlist_pct = l_evo_rec.reg_waitlist_pct,
2542 reg_minimum_capacity = l_evo_rec.reg_minimum_capacity,
2543 reg_minimum_req_by_date = l_evo_rec.reg_minimum_req_by_date,
2544 inventory_item_id = l_evo_rec.INVENTORY_ITEM_ID,
2545 organization_id = l_evo_rec.ORGANIZATION_ID,
2546 pricelist_header_id = l_evo_rec.pricelist_header_id,
2547 pricelist_line_id = l_evo_rec.pricelist_line_id,
2548 waitlist_action_type_code = l_evo_rec.waitlist_action_type_code,
2549 stream_type_code = l_evo_rec.stream_type_code,
2550 owner_user_id = l_evo_rec.owner_user_id,
2551 event_full_flag = l_evo_rec.event_full_flag,
2552 forecasted_revenue = l_evo_rec.forecasted_revenue,
2553 actual_revenue = l_evo_rec.actual_revenue,
2554 forecasted_cost = l_evo_rec.forecasted_cost,
2555 actual_cost = l_evo_rec.actual_cost,
2556 fund_source_type_code = l_evo_rec.fund_source_type_code,
2557 fund_source_id = l_evo_rec.fund_source_id,
2558 cert_credit_type_code = l_evo_rec.cert_credit_type_code,
2559 certification_credits = l_evo_rec.certification_credits,
2560 coordinator_id = l_evo_rec.coordinator_id,
2561 priority_type_code = l_evo_rec.priority_type_code,
2562 cancellation_reason_code = l_evo_rec.cancellation_reason_code,
2563 email = l_evo_rec.email,
2564 phone = l_evo_rec.phone,
2565 fund_amount_tc = l_evo_rec.fund_amount_tc,
2566 fund_amount_fc = l_evo_rec.fund_amount_fc,
2567 currency_code_tc = l_evo_rec.currency_code_tc,
2568 currency_code_fc = l_evo_rec.currency_code_fc,
2569 url = l_evo_rec.url,
2570 timezone_id = l_evo_rec.timezone_id,
2571 --event_venue_id = l_evo_rec.event_venue_id,
2572 inbound_script_name = l_evo_rec.inbound_script_name,
2573 auto_register_flag = NVL(l_evo_rec.auto_register_flag, nvl(FND_PROFILE.value('AMS_AUTO_REGISTER_FLAG'), 'Y')),
2574 attribute_category = l_evo_rec.attribute_category,
2575 attribute1 = l_evo_rec.attribute1,
2576 attribute2 = l_evo_rec.attribute2,
2577 attribute3 = l_evo_rec.attribute3,
2578 attribute4 = l_evo_rec.attribute4,
2579 attribute5 = l_evo_rec.attribute5,
2580 attribute6 = l_evo_rec.attribute6,
2581 attribute7 = l_evo_rec.attribute7,
2582 attribute8 = l_evo_rec.attribute8,
2583 attribute9 = l_evo_rec.attribute9,
2584 attribute10 = l_evo_rec.attribute10,
2585 attribute11 = l_evo_rec.attribute11,
2586 attribute12 = l_evo_rec.attribute12,
2587 attribute13 = l_evo_rec.attribute13,
2588 attribute14 = l_evo_rec.attribute14,
2589 attribute15 = l_evo_rec.attribute15,
2590 country_code = l_evo_rec.country_code,
2591 business_unit_id = l_evo_rec.business_unit_id,
2592 event_calendar = l_evo_rec.event_calendar,
2593 start_period_name = l_evo_rec.start_period_name,
2594 end_period_name = l_evo_rec.end_period_name,
2595 global_flag = nvl(l_evo_rec.global_flag, 'N'),
2596 task_id = l_evo_rec.task_id, --Hornet
2597 --program_id = l_evo_rec.program_id, --Hornet
2598 parent_type = l_evo_rec.parent_type, --Hornet
2599 parent_id = l_evo_rec.parent_id --Hornet
2600 ,CREATE_ATTENDANT_LEAD_FLAG = l_evo_rec.CREATE_ATTENDANT_LEAD_FLAG /*hornet*/
2601 ,CREATE_REGISTRANT_LEAD_FLAG = l_evo_rec.CREATE_REGISTRANT_LEAD_FLAG /*hornet*/
2602 --,EVENT_OBJECT_TYPE = l_evo_rec.event_object_type /* hornet*/
2603 ,reg_timezone_id = l_evo_rec.reg_timezone_id
2604 ,event_password = l_evo_rec.event_password /* Hornet : added for imeeting integration*/
2605 ,record_event_flag = l_evo_rec.record_event_flag /* Hornet : added for imeeting integration*/
2606 ,allow_register_in_middle_flag = l_evo_rec.allow_register_in_middle_flag /* Hornet : added for imeeting integration*/
2607 ,publish_attendees_flag = l_evo_rec.publish_attendees_flag /* Hornet : added for imeeting integration*/
2608 ,direct_join_flag = l_evo_rec.direct_join_flag /* Hornet : added for imeeting integration*/
2609 ,event_notification_method = l_evo_rec.event_notification_method /* Hornet : added for imeeting integration*/
2610 ,actual_start_time = l_evo_rec.actual_start_time /* Hornet : added for imeeting integration*/
2611 ,actual_end_time = l_evo_rec.actual_end_time /* Hornet : added for imeeting integration*/
2612 ,server_id = l_evo_rec.server_id /* Hornet : added for imeeting integration*/
2613 ,OWNER_FND_USER_ID = l_evo_rec.OWNER_FND_USER_ID /* Hornet : added for imeeting integration*/
2614 ,MEETING_DIAL_IN_INFO = l_evo_rec.MEETING_DIAL_IN_INFO /* Hornet : added for imeeting integration*/
2615 ,MEETING_EMAIL_SUBJECT = l_evo_rec.MEETING_EMAIL_SUBJECT /* Hornet : added for imeeting integration*/
2616 ,MEETING_SCHEDULE_TYPE = l_evo_rec.MEETING_SCHEDULE_TYPE /* Hornet : added for imeeting integration*/
2617 ,MEETING_STATUS = l_evo_rec.MEETING_STATUS /* Hornet : added for imeeting integration*/
2618 ,PUBLISH_FLAG = l_evo_rec.PUBLISH_FLAG /* Hornet : added for imeeting integration*/
2619 ,MEETING_ENCRYPTION_KEY_CODE = l_evo_rec.MEETING_ENCRYPTION_KEY_CODE /* Hornet : added for imeeting integration*/
2620 ,MEETING_MISC_INFO = l_evo_rec.MEETING_MISC_INFO /* Hornet : added for imeeting integration*/
2621 ,NUMBER_OF_ATTENDEES = l_evo_rec.NUMBER_OF_ATTENDEES /* Hornet : added for imeeting integration*/
2622 ,EVENT_PURPOSE_CODE = l_evo_rec.EVENT_PURPOSE_CODE /* Hornet */
2623 WHERE event_offer_id = l_evo_rec.event_offer_id
2624 AND object_version_number = l_evo_rec.object_version_number;
2625 ELSIF l_evo_rec.event_level = 'SUB' THEN
2626 UPDATE ams_event_offers_all_b SET
2627 last_update_date = SYSDATE,
2628 last_updated_by = FND_GLOBAL.user_id,
2629 last_update_login = FND_GLOBAL.conc_login_id,
2630 object_version_number = l_evo_rec.object_version_number + 1,
2631 private_flag = l_evo_rec.private_flag,
2632 active_flag = l_evo_rec.active_flag,
2633 source_code = l_evo_rec.source_code,
2634 event_level = l_evo_rec.event_level,
2635 user_status_id = l_evo_rec.user_status_id,
2636 system_status_code = l_evo_rec.system_status_code,
2637 last_status_date = l_evo_rec.last_status_date,
2638 event_type_code = l_evo_rec.event_type_code,
2639 event_delivery_method_id = l_dlv_id,
2640 event_language_code = l_evo_rec.event_language_code,
2641 event_location_id = l_evo_rec.event_location_id,
2642 overflow_flag = l_evo_rec.overflow_flag,
2643 partner_flag = l_evo_rec.partner_flag,
2644 event_standalone_flag = l_evo_rec.event_standalone_flag,
2645 reg_frozen_flag = l_evo_rec.reg_frozen_flag,
2646 reg_required_flag = l_evo_rec.reg_required_flag,
2647 reg_charge_flag = l_evo_rec.reg_charge_flag,
2648 reg_invited_only_flag = l_evo_rec.reg_invited_only_flag,
2649 reg_waitlist_allowed_flag = l_evo_rec.reg_waitlist_allowed_flag,
2650 reg_overbook_allowed_flag = l_evo_rec.reg_overbook_allowed_flag,
2651 parent_event_offer_id = l_evo_rec.parent_event_offer_id,
2652 event_duration = l_evo_rec.event_duration,
2653 event_duration_uom_code = l_evo_rec.event_duration_uom_code,
2654 --event_start_date = l_evo_rec.event_start_date,
2655 event_start_date_time = l_evo_rec.event_start_date_time,
2656 --event_end_date = l_evo_rec.event_end_date,
2657 event_end_date_time = l_evo_rec.event_end_date_time,
2658 reg_start_date = l_evo_rec.reg_start_date,
2659 reg_start_time = to_date(to_char(l_evo_rec.reg_start_time,'HH24:MI'),'HH24:MI'),
2660 reg_end_date = l_evo_rec.reg_end_date,
2661 reg_end_time = to_date(to_char(l_evo_rec.reg_end_time,'HH24:MI'),'HH24:MI'),
2662 reg_maximum_capacity = l_evo_rec.reg_maximum_capacity,
2663 reg_overbook_pct = l_evo_rec.reg_overbook_pct,
2664 reg_effective_capacity = l_evo_rec.reg_effective_capacity,
2665 reg_waitlist_pct = l_evo_rec.reg_waitlist_pct,
2666 reg_minimum_capacity = l_evo_rec.reg_minimum_capacity,
2667 reg_minimum_req_by_date = l_evo_rec.reg_minimum_req_by_date,
2668 inventory_item_id = l_evo_rec.INVENTORY_ITEM_ID,
2669 organization_id = l_evo_rec.ORGANIZATION_ID,
2670 pricelist_header_id = l_evo_rec.pricelist_header_id,
2671 pricelist_line_id = l_evo_rec.pricelist_line_id,
2672 waitlist_action_type_code = l_evo_rec.waitlist_action_type_code,
2673 stream_type_code = l_evo_rec.stream_type_code,
2674 owner_user_id = l_evo_rec.owner_user_id,
2675 event_full_flag = l_evo_rec.event_full_flag,
2676 forecasted_revenue = l_evo_rec.forecasted_revenue,
2677 actual_revenue = l_evo_rec.actual_revenue,
2678 forecasted_cost = l_evo_rec.forecasted_cost,
2679 actual_cost = l_evo_rec.actual_cost,
2680 fund_source_type_code = l_evo_rec.fund_source_type_code,
2681 fund_source_id = l_evo_rec.fund_source_id,
2682 cert_credit_type_code = l_evo_rec.cert_credit_type_code,
2683 certification_credits = l_evo_rec.certification_credits,
2684 coordinator_id = l_evo_rec.coordinator_id,
2685 priority_type_code = l_evo_rec.priority_type_code,
2686 cancellation_reason_code = l_evo_rec.cancellation_reason_code,
2687 email = l_evo_rec.email,
2688 phone = l_evo_rec.phone,
2689 fund_amount_tc = l_evo_rec.fund_amount_tc,
2690 fund_amount_fc = l_evo_rec.fund_amount_fc,
2691 currency_code_tc = l_evo_rec.currency_code_tc,
2692 currency_code_fc = l_evo_rec.currency_code_fc,
2693 url = l_evo_rec.url,
2694 timezone_id = l_evo_rec.timezone_id,
2695 -- event_venue_id = l_evo_rec.event_venue_id,
2696 inbound_script_name = l_evo_rec.inbound_script_name,
2697 auto_register_flag = NVL(l_evo_rec.auto_register_flag, nvl(FND_PROFILE.value('AMS_AUTO_REGISTER_FLAG'), 'Y')),
2698 attribute_category = l_evo_rec.attribute_category,
2699 attribute1 = l_evo_rec.attribute1,
2700 attribute2 = l_evo_rec.attribute2,
2701 attribute3 = l_evo_rec.attribute3,
2702 attribute4 = l_evo_rec.attribute4,
2703 attribute5 = l_evo_rec.attribute5,
2704 attribute6 = l_evo_rec.attribute6,
2705 attribute7 = l_evo_rec.attribute7,
2706 attribute8 = l_evo_rec.attribute8,
2707 attribute9 = l_evo_rec.attribute9,
2708 attribute10 = l_evo_rec.attribute10,
2709 attribute11 = l_evo_rec.attribute11,
2710 attribute12 = l_evo_rec.attribute12,
2711 attribute13 = l_evo_rec.attribute13,
2712 attribute14 = l_evo_rec.attribute14,
2713 attribute15 = l_evo_rec.attribute15,
2714 country_code = l_evo_rec.country_code,
2715 business_unit_id = l_evo_rec.business_unit_id,
2716 event_calendar = l_evo_rec.event_calendar,
2717 start_period_name = l_evo_rec.start_period_name,
2718 end_period_name = l_evo_rec.end_period_name,
2719 global_flag = nvl(l_evo_rec.global_flag, 'N')
2720 ,reg_timezone_id = l_evo_rec.reg_timezone_id
2721 ,event_password = l_evo_rec.event_password /* Hornet : added for imeeting integration*/
2722 ,record_event_flag = l_evo_rec.record_event_flag /* Hornet : added for imeeting integration*/
2723 ,allow_register_in_middle_flag = l_evo_rec.allow_register_in_middle_flag /* Hornet : added for imeeting integration*/
2724 ,publish_attendees_flag = l_evo_rec.publish_attendees_flag /* Hornet : added for imeeting integration*/
2725 ,direct_join_flag = l_evo_rec.direct_join_flag /* Hornet : added for imeeting integration*/
2726 ,event_notification_method = l_evo_rec.event_notification_method /* Hornet : added for imeeting integration*/
2727 ,actual_start_time = l_evo_rec.actual_start_time /* Hornet : added for imeeting integration*/
2728 ,actual_end_time = l_evo_rec.actual_end_time /* Hornet : added for imeeting integration*/
2729 ,server_id = l_evo_rec.server_id /* Hornet : added for imeeting integration*/
2730 ,OWNER_FND_USER_ID = l_evo_rec.OWNER_FND_USER_ID /* Hornet : added for imeeting integration*/
2731 ,MEETING_DIAL_IN_INFO = l_evo_rec.MEETING_DIAL_IN_INFO /* Hornet : added for imeeting integration*/
2732 ,MEETING_EMAIL_SUBJECT = l_evo_rec.MEETING_EMAIL_SUBJECT /* Hornet : added for imeeting integration*/
2733 ,MEETING_SCHEDULE_TYPE = l_evo_rec.MEETING_SCHEDULE_TYPE /* Hornet : added for imeeting integration*/
2734 ,MEETING_STATUS = l_evo_rec.MEETING_STATUS /* Hornet : added for imeeting integration*/
2735 ,PUBLISH_FLAG = l_evo_rec.PUBLISH_FLAG /* Hornet : added for imeeting integration*/
2736 ,MEETING_ENCRYPTION_KEY_CODE = l_evo_rec.MEETING_ENCRYPTION_KEY_CODE /* Hornet : added for imeeting integration*/
2737 ,MEETING_MISC_INFO = l_evo_rec.MEETING_MISC_INFO /* Hornet : added for imeeting integration*/
2738 ,NUMBER_OF_ATTENDEES = l_evo_rec.NUMBER_OF_ATTENDEES /* Hornet : added for imeeting integration*/
2739 ,EVENT_PURPOSE_CODE = l_evo_rec.EVENT_PURPOSE_CODE /* Hornet */
2740
2741 WHERE event_offer_id = l_evo_rec.event_offer_id
2742 AND object_version_number = l_evo_rec.object_version_number;
2743 END IF;
2744 -- GDEODHAR : End of changes. Sept. 26th 2000.
2745 IF (SQL%NOTFOUND) THEN
2746 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2747 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2748 FND_MSG_PUB.add;
2749 END IF;
2750 RAISE FND_API.g_exc_error;
2751 END IF;
2752
2753 -- GDEODHAR : Sept. 26th, 2000 : Note that for MAIN Events and Agenda (SUB) items, the
2754 -- update of the TL table is the same.
2755
2756 update ams_event_offers_all_tl set
2757 event_offer_name = l_evo_rec.event_offer_name,
2758 event_mktg_message = l_evo_rec.event_mktg_message,
2759 description = l_evo_rec.description,
2760 last_update_date = SYSDATE,
2761 last_updated_by = FND_GLOBAL.user_id,
2762 last_update_login = FND_GLOBAL.conc_login_id,
2763 source_lang = USERENV('LANG')
2764 WHERE event_offer_id = l_evo_rec.event_offer_id
2765 AND USERENV('LANG') IN (language, source_lang);
2766
2767 IF (SQL%NOTFOUND) THEN
2768 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2769 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2770 FND_MSG_PUB.add;
2771 END IF;
2772 RAISE FND_API.g_exc_error;
2773 END IF;
2774
2775 ---murali call "update_event_status 09/26/00 S
2776 -- GDEODHAR : Added a condition. (Sept. 26th 2000)
2777
2778 --Added by ANSKUMAR FOR FULFILMENT FIX : 4676049
2779 fulfill_event_offer(l_evo_rec, l_return_status);
2780
2781 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2782 RAISE FND_API.g_exc_unexpected_error;
2783 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
2784 RAISE FND_API.g_exc_error;
2785 END IF;
2786
2787 UPDATE ams_event_offers_all_b SET
2788 event_start_date = l_evo_rec.event_start_date,
2789 event_end_date = l_evo_rec.event_end_date,
2790 event_venue_id = l_evo_rec.event_venue_id
2791 WHERE event_offer_id = l_evo_rec.event_offer_id;
2792
2793 IF (SQL%NOTFOUND) THEN
2794 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2795 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2796 FND_MSG_PUB.add;
2797 END IF;
2798 RAISE FND_API.g_exc_error;
2799 END IF;
2800
2801 --End Adding
2802
2803 IF l_evo_rec.event_level = 'MAIN' THEN
2804 AMS_EvhRules_PVT.update_event_status(
2805 p_event_id => l_evo_rec.event_offer_id,
2806 p_event_activity_type => l_evo_rec.event_object_type, --'EVEO',
2807 p_user_status_id => l_evo_rec.user_status_id,
2808 p_fund_amount_tc => l_evo_rec.fund_amount_tc,
2809 p_currency_code_tc => l_evo_rec.currency_code_tc
2810 );
2811
2812 AMS_EvhRules_PVT.Add_Update_Access_record(p_object_type => l_evo_rec.event_object_type, --'EVEO',
2813 p_object_id => l_evo_rec.event_offer_id,
2814 p_Owner_user_id => l_evo_rec.owner_user_id,
2815 x_return_status => l_return_status,
2816 x_msg_count => x_msg_count,
2817 x_msg_data => x_msg_data);
2818
2819 IF l_return_status = FND_API.g_ret_sts_error THEN
2820 RAISE FND_API.g_exc_error;
2821 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2822 RAISE FND_API.g_exc_unexpected_error;
2823 END IF;
2824
2825 END IF;
2826
2827
2828
2829 /* If the Event Schedule is canclled, make all the resources attached to it
2830 and aswell to its sessions cancelled.
2831 */
2832
2833 OPEN c_evo_status_evo;
2834 FETCH c_evo_status_evo INTO l_sys_st_code;
2835 CLOSE c_evo_status_evo;
2836
2837 IF(l_sys_st_code = 'CANCELLED'
2838 OR
2839 l_sys_st_code = 'COMPLETED'
2840 OR
2841 l_sys_st_code = 'ARCHIVED')
2842 THEN
2843 OPEN c_resources;
2844 FETCH c_resources INTO l_resource_id, l_obj_num;
2845
2846 WHILE c_resources%FOUND LOOP
2847
2848 UPDATE ams_act_resources
2849 SET system_status_code = 'CANCELLED',
2850 object_version_number = l_obj_num+1,
2851 user_status_id = (SELECT user_status_id
2852 FROM ams_user_statuses_b
2853 WHERE system_status_type = 'AMS_EVENT_AGENDA_STATUS'
2854 AND system_status_code = 'CANCELLED'
2855 -- added by soagrawa on 25-feb-2003 for bug# 2820297
2856 AND DEFAULT_FLAG = 'Y')
2857 WHERE activity_resource_id = l_resource_id;
2858
2859 FETCH c_resources INTO l_resource_id, l_obj_num;
2860
2861 END LOOP; -- WHILE(c_resources%FOUND)
2862 CLOSE c_resources;
2863
2864 UPDATE ams_act_resources
2865 SET system_status_code = 'CANCELLED',
2866 object_version_number = l_obj_num+1,
2867 user_status_id = (SELECT user_status_id
2868 FROM ams_user_statuses_b
2869 WHERE system_status_type = 'AMS_EVENT_AGENDA_STATUS'
2870 AND system_status_code = 'CANCELLED'
2871 -- added by soagrawa on 25-feb-2003 for bug# 2820297
2872 AND DEFAULT_FLAG = 'Y')
2873 WHERE activity_resource_id IN (SELECT activity_resource_id
2874 FROM ams_act_resources
2875 WHERE act_resource_used_by_id IN ( SELECT agenda_id
2876 FROM ams_agendas_b
2877 WHERE parent_id IN (SELECT agenda_id
2878 FROM ams_agendas_b
2879 WHERE parent_id = l_evo_rec.event_offer_id)));
2880
2881
2882 END IF;
2883
2884 -------------------- finish --------------------------
2885 IF FND_API.to_boolean(p_commit) THEN
2886 COMMIT;
2887 END IF;
2888
2889 FND_MSG_PUB.count_and_get(
2890 p_encoded => FND_API.g_false,
2891 p_count => x_msg_count,
2892 p_data => x_msg_data
2893 );
2894
2895 IF (AMS_DEBUG_HIGH_ON) THEN
2896
2897
2898
2899 AMS_Utility_PVT.debug_message(l_full_name ||': end');
2900
2901 END IF;
2902
2903 EXCEPTION
2904
2905 WHEN FND_API.g_exc_error THEN
2906 ROLLBACK TO update_event_offer;
2907 x_return_status := FND_API.g_ret_sts_error;
2908 FND_MSG_PUB.count_and_get(
2909 p_encoded => FND_API.g_false,
2910 p_count => x_msg_count,
2911 p_data => x_msg_data
2912 );
2913
2914 WHEN FND_API.g_exc_unexpected_error THEN
2915 ROLLBACK TO update_event_offer;
2916 x_return_status := FND_API.g_ret_sts_unexp_error ;
2917 FND_MSG_PUB.count_and_get(
2918 p_encoded => FND_API.g_false,
2919 p_count => x_msg_count,
2920 p_data => x_msg_data
2921 );
2922
2923 WHEN OTHERS THEN
2924 IF (c_evo_status_evo%ISOPEN) THEN
2925 CLOSE c_evo_status_evo;
2926 END IF;
2927 IF (c_evo_status_evagd%ISOPEN) THEN
2928 CLOSE c_evo_status_evagd;
2929 END IF;
2930 IF (c_evo_dlv_mthd%ISOPEN) THEN
2931 CLOSE c_evo_dlv_mthd;
2932 END IF;
2933 IF (c_pricelist_header_id%ISOPEN) THEN
2934 CLOSE c_pricelist_header_id;
2935 END IF;
2936
2937 ROLLBACK TO update_event_offer;
2938 x_return_status := FND_API.g_ret_sts_unexp_error ;
2939
2940 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
2941 THEN
2942 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
2943 END IF;
2944
2945 FND_MSG_PUB.count_and_get(
2946 p_encoded => FND_API.g_false,
2947 p_count => x_msg_count,
2948 p_data => x_msg_data
2949 );
2950
2951 END update_event_offer;
2952
2953
2954 --------------------------------------------------------------------
2955 -- PROCEDURE
2956 -- validate_event_offer
2957 --
2958 -- HISTORY
2959 -- 11/23/1999 sugupta Created.
2960 --------------------------------------------------------------------
2961 PROCEDURE validate_event_offer(
2962 p_api_version IN NUMBER,
2963 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
2964 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
2965
2966 p_evo_rec IN evo_rec_type,
2967
2968 x_return_status OUT NOCOPY VARCHAR2,
2969 x_msg_count OUT NOCOPY NUMBER,
2970 x_msg_data OUT NOCOPY VARCHAR2
2971 )IS
2972 l_api_version CONSTANT NUMBER := 1.0;
2973 l_api_name CONSTANT VARCHAR2(30) := 'validate_event_offer';
2974 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
2975 l_return_status VARCHAR2(1);
2976
2977 BEGIN
2978
2979 ----------------------- initialize --------------------
2980 IF (AMS_DEBUG_HIGH_ON) THEN
2981
2982 AMS_Utility_PVT.debug_message(l_full_name||': start');
2983 END IF;
2984
2985 IF FND_API.to_boolean(p_init_msg_list) THEN
2986 FND_MSG_PUB.initialize;
2987 END IF;
2988
2989 IF NOT FND_API.compatible_api_call(
2990 l_api_version,
2991 p_api_version,
2992 l_api_name,
2993 g_pkg_name
2994 ) THEN
2995 RAISE FND_API.g_exc_unexpected_error;
2996 END IF;
2997
2998 x_return_status := FND_API.g_ret_sts_success;
2999
3000 ---------------------- validate ------------------------
3001 IF (AMS_DEBUG_HIGH_ON) THEN
3002
3003 AMS_Utility_PVT.debug_message(l_full_name||': check items');
3004 END IF;
3005
3006 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
3007 check_evo_items(
3008 p_evo_rec => p_evo_rec,
3009 p_validation_mode => JTF_PLSQL_API.g_create,
3010 x_return_status => l_return_status
3011 );
3012 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
3013 RAISE FND_API.g_exc_unexpected_error;
3014 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
3015 RAISE FND_API.g_exc_error;
3016 END IF;
3017 END IF;
3018
3019 IF (AMS_DEBUG_HIGH_ON) THEN
3020
3021
3022
3023 AMS_Utility_PVT.debug_message(l_full_name||': check record');
3024
3025 END IF;
3026
3027 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
3028 check_evo_record(
3029 p_evo_rec => p_evo_rec,
3030 p_complete_rec => NULL,
3031 x_return_status => l_return_status
3032 );
3033 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
3034 RAISE FND_API.g_exc_unexpected_error;
3035 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
3036 RAISE FND_API.g_exc_error;
3037 END IF;
3038 END IF;
3039
3040 IF (AMS_DEBUG_HIGH_ON) THEN
3041
3042
3043
3044 AMS_Utility_PVT.debug_message(l_full_name||': check inter-entity');
3045
3046 END IF;
3047
3048 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_inter_entity THEN
3049 IF p_evo_rec.event_level = 'MAIN' THEN
3050 check_evo_inter_entity(
3051 p_evo_rec => p_evo_rec,
3052 p_complete_rec => p_evo_rec,
3053 p_validation_mode => JTF_PLSQL_API.g_create,
3054 x_return_status => l_return_status
3055 );
3056 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
3057 RAISE FND_API.g_exc_unexpected_error;
3058 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
3059 RAISE FND_API.g_exc_error;
3060 END IF;
3061 END IF;
3062 END IF;
3063 -------------------- finish --------------------------
3064 FND_MSG_PUB.count_and_get(
3065 p_encoded => FND_API.g_false,
3066 p_count => x_msg_count,
3067 p_data => x_msg_data
3068 );
3069
3070 IF (AMS_DEBUG_HIGH_ON) THEN
3071
3072
3073
3074 AMS_Utility_PVT.debug_message(l_full_name ||': end');
3075
3076 END IF;
3077
3078 EXCEPTION
3079
3080 WHEN FND_API.g_exc_error THEN
3081 x_return_status := FND_API.g_ret_sts_error;
3082 FND_MSG_PUB.count_and_get(
3083 p_encoded => FND_API.g_false,
3084 p_count => x_msg_count,
3085 p_data => x_msg_data
3086 );
3087
3088 WHEN FND_API.g_exc_unexpected_error THEN
3089 x_return_status := FND_API.g_ret_sts_unexp_error ;
3090 FND_MSG_PUB.count_and_get(
3091 p_encoded => FND_API.g_false,
3092 p_count => x_msg_count,
3093 p_data => x_msg_data
3094 );
3095
3096 WHEN OTHERS THEN
3097 x_return_status := FND_API.g_ret_sts_unexp_error;
3098 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
3099 THEN
3100 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
3101 END IF;
3102
3103 FND_MSG_PUB.count_and_get(
3104 p_encoded => FND_API.g_false,
3105 p_count => x_msg_count,
3106 p_data => x_msg_data
3107 );
3108
3109 END validate_event_offer;
3110
3111
3112 ---------------------------------------------------------------------
3113 -- PROCEDURE
3114 -- check_evo_update_ok_items
3115 --
3116 -- HISTORY
3117 -- 11/23/1999 sugupta Created.
3118 ---------------------------------------------------------------------
3119 PROCEDURE check_evo_update_ok_items(
3120 p_evo_rec IN evo_rec_type,
3121 x_return_status OUT NOCOPY VARCHAR2
3122 )
3123 IS
3124
3125 BEGIN
3126 x_return_status := FND_API.g_ret_sts_success;
3127
3128 -- add code
3129 -- For example, if the event is in active stage, the user will not
3130 --be able to update the Marketing Message or budget related columns.
3131 -- appid, ev_header_id, source_code cannot not be updated by the user.
3132
3133 -- ALL THIS IS TAKEN CARE OF IN CHEKC_EVO_UPDATE PROC.. THINK THIS PROCEDURE IS NOT NEEDED..
3134
3135 END check_evo_update_ok_items;
3136
3137
3138 ---------------------------------------------------------------------
3139 -- PROCEDURE
3140 -- check_evo_req_items
3141 --
3142 -- HISTORY
3143 -- 11/23/1999 sugupta Created.
3144 ---------------------------------------------------------------------
3145 PROCEDURE check_evo_req_items(
3146 p_evo_rec IN evo_rec_type,
3147 x_return_status OUT NOCOPY VARCHAR2
3148 )
3149 IS
3150 BEGIN
3151
3152 x_return_status := FND_API.g_ret_sts_success;
3153 ------------------------ owner_user_id --------------------------
3154 IF (p_evo_rec.owner_user_id IS NULL OR p_evo_rec.owner_user_id = FND_API.g_miss_num) THEN
3155 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3156 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_OWNER_ID');
3157 FND_MSG_PUB.add;
3158 END IF;
3159 x_return_status := FND_API.g_ret_sts_error;
3160 RETURN;
3161 END IF;
3162
3163 ------------------------ user_status_id --------------------------
3164 IF (p_evo_rec.user_status_id IS NULL OR p_evo_rec.user_status_id = FND_API.g_miss_num) THEN
3165 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3166 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_USER_STATUS_ID');
3167 FND_MSG_PUB.add;
3168 END IF;
3169 x_return_status := FND_API.g_ret_sts_error;
3170 RETURN;
3171 END IF;
3172
3173 ------------------------ application_id --------------------------
3174 IF (p_evo_rec.application_id IS NULL OR p_evo_rec.application_id = FND_API.g_miss_num) THEN
3175 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3176 FND_MESSAGE.set_name('AMS', 'AMS_API_NO_APPLICATION_ID');
3177 FND_MSG_PUB.add;
3178 END IF;
3179 x_return_status := FND_API.g_ret_sts_error;
3180 RETURN;
3181 END IF;
3182 ------------------------ parent_event_offer_id--------------------------
3183 IF p_evo_rec.EVENT_LEVEL = 'SUB' THEN
3184 IF (p_evo_rec.parent_event_offer_id IS NULL OR p_evo_rec.parent_event_offer_id = FND_API.g_miss_num) THEN
3185 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3186 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_PARENT_OFFER_ID');
3187 FND_MSG_PUB.add;
3188 END IF;
3189 x_return_status := FND_API.g_ret_sts_error;
3190 RETURN;
3191 END IF;
3192 END IF;
3193 -- commenting NEEDS TO BE UNCOMMENTED
3194 ------------------------ custom_setup_id --------------------------
3195 IF (p_evo_rec.event_level = 'MAIN' AND p_evo_rec.parent_type <> 'CSCH' AND
3196 (p_evo_rec.custom_setup_id IS NULL OR p_evo_rec.custom_setup_id = FND_API.g_miss_num)) THEN
3197 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3198 FND_MESSAGE.set_name('AMS', 'AMS_EVO_NO_SETUP_ID');
3199 FND_MSG_PUB.add;
3200 END IF;
3201 x_return_status := FND_API.g_ret_sts_error;
3202 RETURN;
3203 END IF;
3204 -- check other required items.
3205 END check_evo_req_items;
3206
3207 ---------------------------------------------------------------------
3208 -- PROCEDURE
3209 -- check_evo_uk_items
3210 --
3211 -- HISTORY
3212 -- 11/23/1999 sugupta Created.
3213 ---------------------------------------------------------------------
3214 PROCEDURE check_evo_uk_items(
3215 p_evo_rec IN evo_rec_type,
3216 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
3217 x_return_status OUT NOCOPY VARCHAR2
3218 )
3219 IS
3220 l_valid_flag VARCHAR2(1);
3221 l_dummy NUMBER;
3222 cursor c_src_code(src_code_in IN VARCHAR2) IS
3223 SELECT 1 FROM DUAL WHERE EXISTS (select 1 from ams_source_codes
3224 where SOURCE_CODE = src_code_in);
3225 BEGIN
3226 x_return_status := FND_API.g_ret_sts_success;
3227
3228 -- For create_event_offer, when event_offer_id is passed in, we need to
3229 -- check if this event_offer_id is unique.
3230 IF p_validation_mode = JTF_PLSQL_API.g_create
3231 AND p_evo_rec.event_offer_id IS NOT NULL
3232 THEN
3233 IF AMS_Utility_PVT.check_uniqueness(
3234 'ams_event_offers_all_b',
3235 'event_offer_id = ' || p_evo_rec.event_offer_id
3236 ) = FND_API.g_false
3237 THEN
3238 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3239 FND_MESSAGE.set_name('AMS', 'AMS_EVO_DUPLICATE_ID');
3240 FND_MSG_PUB.add;
3241 END IF;
3242 x_return_status := FND_API.g_ret_sts_error;
3243 RETURN;
3244 END IF;
3245 END IF;
3246 -- todo- add a check for uniqueness for name... actually as long as user has at least one
3247 -- of name, venue and dates/time different.. it should be fine
3248
3249 -- For create_event_offer, when source_code is passed in, we need to
3250 -- check if this source_code is unique.
3251 IF p_validation_mode = JTF_PLSQL_API.g_create
3252 AND p_evo_rec.source_code IS NOT NULL
3253 THEN
3254 /*
3255 IF AMS_Utility_PVT.check_uniqueness(
3256 'ams_event_offers_vl',
3257 'source_code = ''' || p_evo_rec.source_code || ''''
3258 ) = FND_API.g_false
3259 */
3260 open c_src_code(p_evo_rec.source_code);
3261 fetch c_src_code into l_dummy;
3262 close c_src_code;
3263 IF l_dummy <> 1 THEN
3264 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3265 FND_MESSAGE.set_name('AMS', 'AMS_EVO_DUPE_SOURCE');
3266 FND_MSG_PUB.add;
3267 END IF;
3268 x_return_status := FND_API.g_ret_sts_error;
3269 RETURN;
3270 END IF;
3271 END IF;
3272 -- check other unique items
3273
3274 END check_evo_uk_items;
3275
3276
3277 ---------------------------------------------------------------------
3278 -- PROCEDURE
3279 -- check_evo_fk_items
3280 --
3281 -- HISTORY
3282 -- 11/23/1999 sugupta Created.
3283 ---------------------------------------------------------------------
3284 PROCEDURE check_evo_fk_items(
3285 p_evo_rec IN evo_rec_type,
3286 x_return_status OUT NOCOPY VARCHAR2
3287 )
3288 IS
3289 l_table_name VARCHAR2(30);
3290 l_pk_name VARCHAR2(30);
3291 l_pk_value VARCHAR2(30);
3292 l_pk_data_type NUMBER;
3293 l_additional_where_clause VARCHAR2(4000);
3294 l_where_clause VARCHAR2(80) := null;
3295 BEGIN
3296 x_return_status := FND_API.g_ret_sts_success;
3297
3298 ----------------------- owner_user_id ------------------------
3299 -- modified sugupta use ams_jtf_rs_emp_v instead of ams_jtf_rs_emp_v
3300 IF p_evo_rec.owner_user_id <> FND_API.g_miss_num AND
3301 p_evo_rec.owner_user_id is NOT NULL
3302 THEN
3303 IF AMS_Utility_PVT.check_fk_exists(
3304 'ams_jtf_rs_emp_v',
3305 'resource_id',
3306 p_evo_rec.owner_user_id
3307 ) = FND_API.g_false
3308 THEN
3309 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3310 THEN
3311 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_OWNER_USER');
3312 FND_MSG_PUB.add;
3313 END IF;
3314 x_return_status := FND_API.g_ret_sts_error;
3315 RETURN;
3316 END IF;
3317 END IF;
3318 --------------------- application_id ------------------------
3319 IF p_evo_rec.application_id <> FND_API.g_miss_num AND
3320 p_evo_rec.application_id is NOT NULL
3321 THEN
3322 IF AMS_Utility_PVT.check_fk_exists(
3323 'fnd_application',
3324 'application_id',
3325 p_evo_rec.application_id
3326 ) = FND_API.g_false
3327 THEN
3328 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3329 THEN
3330 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_APP_ID');
3331 FND_MSG_PUB.add;
3332 END IF;
3333 x_return_status := FND_API.g_ret_sts_error;
3334 RETURN;
3335 END IF;
3336 END IF;
3337 --------------------- inbound_script_name ------------------------
3338 IF p_evo_rec.inbound_script_name <> FND_API.g_miss_char
3339 AND p_evo_rec.inbound_script_name IS NOT NULL
3340 THEN
3341 IF AMS_Utility_PVT.check_fk_exists(
3342 'ies_deployed_scripts',
3343 'dscript_name',
3344 p_evo_rec.inbound_script_name,
3345 AMS_Utility_PVT.g_varchar2
3346 ) = FND_API.g_false
3347 THEN
3348 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3349 THEN
3350 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_INBOUND_SCRIPT');
3351 FND_MSG_PUB.add;
3352 END IF;
3353 x_return_status := FND_API.g_ret_sts_error;
3354 RETURN;
3355 END IF;
3356 END IF;
3357 ----------------------- event_header_id ------------------------
3358 IF p_evo_rec.event_header_id <> FND_API.g_miss_num AND
3359 p_evo_rec.event_header_id is NOT NULL THEN
3360 IF p_evo_rec.EVENT_STANDALONE_FLAG = 'N'THEN
3361 IF AMS_Utility_PVT.check_fk_exists(
3362 'ams_event_headers_all_b',
3363 'event_header_id',
3364 p_evo_rec.event_header_id
3365 ) = FND_API.g_false
3366 THEN
3367 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3368 THEN
3369 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PARENT_HEADER');
3370 FND_MSG_PUB.add;
3371 END IF;
3372 x_return_status := FND_API.g_ret_sts_error;
3373 RETURN;
3374 END IF;
3375 END IF;
3376 END IF;
3377 ----------------------- parent_event_offer_id ------------------------
3378 IF p_evo_rec.parent_event_offer_id <> FND_API.g_miss_num
3379 AND p_evo_rec.parent_event_offer_id IS NOT NULL THEN
3380 IF p_evo_rec.EVENT_STANDALONE_FLAG = 'Y'THEN
3381 IF AMS_Utility_PVT.check_fk_exists(
3382 'ams_event_offers_all_b',
3383 'event_offer_id',
3384 p_evo_rec.parent_event_offer_id
3385 ) = FND_API.g_false
3386 THEN
3387 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3388 THEN
3389 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PARENT_OFFER');
3390 FND_MSG_PUB.add;
3391 END IF;
3392 x_return_status := FND_API.g_ret_sts_error;
3393 RETURN;
3394 END IF;
3395 END IF;
3396 END IF;
3397 ----------------------- parent_id ------------------------
3398 IF p_evo_rec.parent_id <> FND_API.g_miss_num THEN
3399 IF AMS_Utility_PVT.check_fk_exists(
3400 'AMS_CAMPAIGNS_ALL_B',
3401 'CAMPAIGN_ID',
3402 p_evo_rec.parent_id
3403 ) = FND_API.g_false
3404 THEN
3405 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3406 THEN
3407 FND_MESSAGE.set_name('AMS', 'AMS_EVH_BAD_PARENT_EVEH');
3408 FND_MSG_PUB.add;
3409 END IF;
3410 x_return_status := FND_API.g_ret_sts_error;
3411 RETURN;
3412 END IF;
3413 END IF;
3414 ----------------------- duration_uom_code ------------------------
3415 IF p_evo_rec.event_duration_uom_code <> FND_API.g_miss_char
3416 AND p_evo_rec.event_duration_uom_code IS NOT NULL THEN
3417 IF AMS_Utility_PVT.check_fk_exists(
3418 'mtl_units_of_measure_tl',
3419 'uom_code',
3420 p_evo_rec.event_duration_uom_code,
3421 AMS_Utility_PVT.g_varchar2
3422 ) = FND_API.g_false
3423 THEN
3424 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3425 THEN
3426 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_DUR_UOM_CODE');
3427 FND_MSG_PUB.add;
3428 END IF;
3429 x_return_status := FND_API.g_ret_sts_error;
3430 RETURN;
3431 END IF;
3432 END IF;
3433 ----------------------- PRICELIST_HEADER_ID ------------------------
3434 IF p_evo_rec.pricelist_header_id <> FND_API.g_miss_num
3435 AND p_evo_rec.pricelist_header_id IS NOT NULL THEN
3436 IF AMS_Utility_PVT.check_fk_exists(
3437 'qp_list_headers_v',
3438 'list_header_id',
3439 p_evo_rec.pricelist_header_id
3440 ) = FND_API.g_false
3441 THEN
3442 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3443 THEN
3444 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PRICE_HEADER_ID');
3445 FND_MSG_PUB.add;
3446 END IF;
3447 x_return_status := FND_API.g_ret_sts_error;
3448 RETURN;
3449 END IF;
3450 END IF;
3451 ----------------------- PRICELIST_LINE_ID ------------------------
3452 IF p_evo_rec.pricelist_line_id <> FND_API.g_miss_num
3453 AND p_evo_rec.pricelist_line_id IS NOT NULL THEN
3454 IF AMS_Utility_PVT.check_fk_exists(
3455 'qp_list_lines_v',
3456 'list_line_id',
3457 p_evo_rec.pricelist_line_id
3458 ) = FND_API.g_false
3459 THEN
3460 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3461 THEN
3462 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PRICE_LINE_ID');
3463 FND_MSG_PUB.add;
3464 END IF;
3465 x_return_status := FND_API.g_ret_sts_error;
3466 RETURN;
3467 END IF;
3468 END IF;
3469 ----------------------- TIMEZONE_ID ------------------------
3470 IF p_evo_rec.timezone_id <> FND_API.g_miss_num
3471 AND p_evo_rec.timezone_id IS NOT NULL THEN
3472 IF AMS_Utility_PVT.check_fk_exists(
3473 'fnd_timezones_b',
3474 'upgrade_tz_id',
3475 p_evo_rec.timezone_id
3476 ) = FND_API.g_false
3477 THEN
3478 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3479 THEN
3480 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_TIMEZONE_ID');
3481 FND_MSG_PUB.add;
3482 END IF;
3483 x_return_status := FND_API.g_ret_sts_error;
3484 RETURN;
3485 END IF;
3486 END IF;
3487 ----------------------- REG_TIMEZONE_ID ------------------------
3488 IF p_evo_rec.reg_timezone_id <> FND_API.g_miss_num
3489 AND p_evo_rec.reg_timezone_id IS NOT NULL THEN
3490 IF AMS_Utility_PVT.check_fk_exists(
3491 'fnd_timezones_b',
3492 'upgrade_tz_id',
3493 p_evo_rec.reg_timezone_id
3494 ) = FND_API.g_false
3495 THEN
3496 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3497 THEN
3498 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_TIMEZONE_ID');
3499 FND_MSG_PUB.add;
3500 END IF;
3501 x_return_status := FND_API.g_ret_sts_error;
3502 RETURN;
3503 END IF;
3504 END IF;
3505 ----------------------- event_venue_id ------------------------
3506 IF p_evo_rec.event_venue_id <> FND_API.g_miss_num
3507 AND p_evo_rec.event_venue_id IS NOT NULL THEN
3508 IF AMS_Utility_PVT.check_fk_exists(
3509 'ams_venues_vl',
3510 'venue_id',
3511 p_evo_rec.event_venue_id
3512 ) = FND_API.g_false
3513 THEN
3514 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3515 THEN
3516 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_VENUE_ID');
3517 FND_MSG_PUB.add;
3518 END IF;
3519 x_return_status := FND_API.g_ret_sts_error;
3520 RETURN;
3521 END IF;
3522 END IF;
3523 ----------------------- event_language_code ------------------------
3524 IF p_evo_rec.event_language_code <> FND_API.g_miss_char
3525 AND p_evo_rec.event_language_code IS NOT NULL THEN
3526 IF AMS_Utility_PVT.check_fk_exists(
3527 'fnd_languages',
3528 'language_code',
3529 p_evo_rec.event_language_code,
3530 AMS_Utility_PVT.g_varchar2
3531 ) = FND_API.g_false
3532 THEN
3533 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3534 THEN
3535 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_LANG_CODE');
3536 FND_MSG_PUB.add;
3537 END IF;
3538 x_return_status := FND_API.g_ret_sts_error;
3539 RETURN;
3540 END IF;
3541 END IF;
3542 ----------------------- event_location_id ------------------------
3543 IF p_evo_rec.event_location_id <> FND_API.g_miss_num
3544 AND p_evo_rec.event_location_id IS NOT NULL THEN
3545 IF AMS_Utility_PVT.check_fk_exists(
3546 'hz_locations',
3547 'location_id',
3548 p_evo_rec.event_location_id
3549 ) = FND_API.g_false
3550 THEN
3551 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3552 THEN
3553 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_LOCATION_ID');
3554 FND_MSG_PUB.add;
3555 END IF;
3556 x_return_status := FND_API.g_ret_sts_error;
3557 RETURN;
3558 END IF;
3559 END IF;
3560 -----------------------Country Code ---------------------------------
3561 /* Since from hornet country code contains country id we need to have
3562 followinfg validation
3563 */
3564 IF p_evo_rec.country_code <> FND_API.g_miss_num AND
3565 p_evo_rec.country_code IS NOT NULL THEN
3566
3567 l_table_name := 'jtf_loc_hierarchies_b';
3568 l_pk_name := 'location_hierarchy_id' ;
3569 l_pk_data_type := AMS_Utility_PVT.G_NUMBER ;
3570 l_pk_value := to_number(p_evo_rec.country_code);
3571 l_additional_where_clause := null ;
3572
3573 IF AMS_Utility_PVT.check_fk_exists(
3574 p_table_name => l_table_name,
3575 p_pk_name => l_pk_name,
3576 p_pk_value => l_pk_value,
3577 p_pk_data_type => l_pk_data_type,
3578 p_additional_where_clause => l_additional_where_clause
3579 ) = FND_API.g_false
3580 THEN
3581 AMS_Utility_Pvt.Error_Message(p_message_name => 'AMS_CSCH_BAD_COUNTRY') ;
3582 x_return_status := FND_API.g_ret_sts_error;
3583 RETURN;
3584 END IF;
3585 END IF;
3586 ----------------------- user_status_id ------------------------
3587 IF p_evo_rec.user_status_id <> FND_API.g_miss_num
3588 AND p_evo_rec.user_status_id IS NOT NULL THEN
3589 IF AMS_Utility_PVT.check_fk_exists(
3590 'ams_user_statuses_b',
3591 'user_status_id',
3592 p_evo_rec.user_status_id
3593 ) = FND_API.g_false
3594 THEN
3595 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3596 THEN
3597 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_USER_ST_ID');
3598 FND_MSG_PUB.add;
3599 END IF;
3600
3601 x_return_status := FND_API.g_ret_sts_error;
3602 RETURN;
3603 END IF;
3604 END IF;
3605 /* we dont need this validation for inv_id here now as we dont use inv_id
3606 in evo_rec to update/create any more.. we have inv_num, which is always validated for
3607 uniqueness in call to create_inv_item procedure call
3608 ----------------------- inventory_item_id ------------------------
3609 -- gdeodhar: There was a WHERE in the following clause. Took it out
3610 -- This was Ravi's instruction.
3611 -- looks like AMS_Utility_PVT takes care of adding WHERE and AND accordingly.
3612 l_where_clause := ' organization_id = ' || p_evo_rec.organization_id;
3613
3614 IF p_evo_rec.inventory_item_id <> FND_API.g_miss_num
3615 AND p_evo_rec.inventory_item_id IS NOT NULL AND p_evo_rec.organization_id IS NOT NULL THEN
3616 IF AMS_Utility_PVT.check_fk_exists(
3617 'mtl_system_items_b',
3618 'inventory_item_id',
3619 p_evo_rec.inventory_item_id,
3620 AMS_UTILITY_PVT.g_number,
3621 l_where_clause
3622 ) = FND_API.g_false
3623 THEN
3624 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3625 THEN
3626 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_INV_ITEM_ID');
3627 FND_MSG_PUB.add;
3628 END IF;
3629
3630 x_return_status := FND_API.g_ret_sts_error;
3631 RETURN;
3632 END IF;
3633 END IF;
3634 */
3635 -- no need to check system_status_code as we are
3636 -- storing it in the offer table just to ease the reporting.
3637
3638 END check_evo_fk_items;
3639
3640 ---------------------------------------------------------------------
3641 -- PROCEDURE
3642 -- check_evo_lookup_items
3643 --
3644 -- HISTORY
3645 -- 11/23/1999 sugupta Created.
3646 ---------------------------------------------------------------------
3647 PROCEDURE check_evo_lookup_items(
3648 p_evo_rec IN evo_rec_type,
3649 x_return_status OUT NOCOPY VARCHAR2
3650 )
3651 IS
3652 BEGIN
3653
3654 x_return_status := FND_API.g_ret_sts_success;
3655
3656 -- system_status_code derived from user_status_id always....
3657
3658 -- event_level must be checked here. (MAIN or SUB)
3659
3660 ----------------------- event_type_code ------------------------
3661 IF p_evo_rec.event_type_code <> FND_API.g_miss_char
3662 AND p_evo_rec.event_type_code IS NOT NULL
3663 THEN
3664 IF AMS_Utility_PVT.check_lookup_exists(
3665 p_lookup_type => 'AMS_EVENT_TYPE',
3666 p_lookup_code => p_evo_rec.event_type_code
3667 ) = FND_API.g_false
3668 THEN
3669 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3670 THEN
3671 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_TYPE');
3672 FND_MSG_PUB.add;
3673 END IF;
3674 x_return_status := FND_API.g_ret_sts_error;
3675 RETURN;
3676 END IF;
3677 END IF;
3678 ----------------------- event_level ------------------------
3679 IF p_evo_rec.event_level <> FND_API.g_miss_char
3680 AND p_evo_rec.event_level IS NOT NULL
3681 THEN
3682 IF AMS_Utility_PVT.check_lookup_exists(
3683 p_lookup_type => 'AMS_EVENT_LEVEL',
3684 p_lookup_code => p_evo_rec.event_level
3685 ) = FND_API.g_false
3686 THEN
3687 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3688 THEN
3689 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_LEVEL');
3690 FND_MSG_PUB.add;
3691 END IF;
3692 x_return_status := FND_API.g_ret_sts_error;
3693 RETURN;
3694 END IF;
3695 END IF;
3696 ----------------------- waitlist_action_type_code ------------------------
3697 IF p_evo_rec.waitlist_action_type_code <> FND_API.g_miss_char
3698 AND p_evo_rec.waitlist_action_type_code IS NOT NULL
3699 THEN
3700 IF AMS_Utility_PVT.check_lookup_exists(
3701 p_lookup_type => 'AMS_EVENT_WAITLIST_ACTION',
3702 p_lookup_code => p_evo_rec.waitlist_action_type_code
3703 ) = FND_API.g_false
3704 THEN
3705 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3706 THEN
3707 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_WAILIST_ACTION');
3708 FND_MSG_PUB.add;
3709 END IF;
3710 x_return_status := FND_API.g_ret_sts_error;
3711 RETURN;
3712 END IF;
3713 END IF;
3714 ----------------------- stream_type_code ------------------------
3715 IF p_evo_rec.stream_type_code <> FND_API.g_miss_char
3716 AND p_evo_rec.stream_type_code IS NOT NULL
3717 THEN
3718 IF AMS_Utility_PVT.check_lookup_exists(
3719 p_lookup_type => 'AMS_EVENT_STREAM_TYPE',
3720 p_lookup_code => p_evo_rec.stream_type_code
3721 ) = FND_API.g_false
3722 THEN
3723 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3724 THEN
3725 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_STREAM_TYPE');
3726 FND_MSG_PUB.add;
3727 END IF;
3728 x_return_status := FND_API.g_ret_sts_error;
3729 RETURN;
3730 END IF;
3731 END IF;
3732 ----------------------- fund_source_type_code ------------------------
3733 IF p_evo_rec.fund_source_type_code <> FND_API.g_miss_char
3734 AND p_evo_rec.fund_source_type_code IS NOT NULL
3735 THEN
3736 IF AMS_Utility_PVT.check_lookup_exists(
3737 p_lookup_type => 'AMS_FUND_SOURCE',
3738 p_lookup_code => p_evo_rec.fund_source_type_code
3739 ) = FND_API.g_false
3740 THEN
3741 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3742 THEN
3743 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_FUND_SOURCE');
3744 FND_MSG_PUB.add;
3745 END IF;
3746 x_return_status := FND_API.g_ret_sts_error;
3747 RETURN;
3748 END IF;
3749 END IF;
3750 ----------------------- priority ------------------------
3751 IF p_evo_rec.priority_type_code <> FND_API.g_miss_char
3752 AND p_evo_rec.priority_type_code IS NOT NULL
3753 THEN
3754 IF AMS_Utility_PVT.check_lookup_exists(
3755 p_lookup_type => 'AMS_PRIORITY',
3756 p_lookup_code => p_evo_rec.priority_type_code
3757 ) = FND_API.g_false
3758 THEN
3759 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3760 THEN
3761 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PRIORITY');
3762 FND_MSG_PUB.add;
3763 END IF;
3764 x_return_status := FND_API.g_ret_sts_error;
3765 RETURN;
3766 END IF;
3767 END IF;
3768
3769 ----------------------- certification_credit_type ------------------------
3770 IF p_evo_rec.cert_credit_type_code <> FND_API.g_miss_char
3771 AND p_evo_rec.cert_credit_type_code IS NOT NULL
3772 THEN
3773 IF AMS_Utility_PVT.check_lookup_exists(
3774 p_lookup_type => 'AMS_EVENT_CERT_CREDIT_TYPE',
3775 p_lookup_code => p_evo_rec.cert_credit_type_code
3776 ) = FND_API.g_false
3777 THEN
3778 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3779 THEN
3780 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_CREDIT_TYPE');
3781 FND_MSG_PUB.add;
3782 END IF;
3783 x_return_status := FND_API.g_ret_sts_error;
3784 RETURN;
3785 END IF;
3786 END IF;
3787
3788 ----------------------- cancellation_reason_code ------------------------
3789 IF p_evo_rec.cancellation_reason_code <> FND_API.g_miss_char
3790 AND p_evo_rec.cancellation_reason_code IS NOT NULL
3791 THEN
3792 IF AMS_Utility_PVT.check_lookup_exists(
3793 p_lookup_type => 'AMS_EVENT_CANCEL_REASON',
3794 p_lookup_code => p_evo_rec.cancellation_reason_code
3795 ) = FND_API.g_false
3796 THEN
3797 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3798 THEN
3799 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_CANCEL_REASON');
3800 FND_MSG_PUB.add;
3801 END IF;
3802 x_return_status := FND_API.g_ret_sts_error;
3803 RETURN;
3804 END IF;
3805 END IF;
3806
3807 END check_evo_lookup_items;
3808
3809 ---------------------------------------------------------------------
3810 -- PROCEDURE
3811 -- check_evo_flag_items
3812 --
3813 -- HISTORY
3814 -- 11/23/1999 sugupta Created
3815 -- 11/19/1999 rvaka updated
3816 ---------------------------------------------------------------------
3817 PROCEDURE check_evo_flag_items(
3818 p_evo_rec IN evo_rec_type,
3819 x_return_status OUT NOCOPY VARCHAR2
3820 )
3821 IS
3822 BEGIN
3823
3824 x_return_status := FND_API.g_ret_sts_success;
3825
3826
3827 ----------------------- active_flag ------------------------
3828 IF p_evo_rec.active_flag <> FND_API.g_miss_char
3829 AND p_evo_rec.active_flag IS NOT NULL
3830 THEN
3831 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.active_flag) = FND_API.g_false
3832 THEN
3833 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3834 THEN
3835 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_ACTIVE_FLAG');
3836 FND_MSG_PUB.add;
3837 END IF;
3838 x_return_status := FND_API.g_ret_sts_error;
3839 RETURN;
3840 END IF;
3841 END IF;
3842
3843
3844 ----------------------- private_flag ------------------------
3845 IF p_evo_rec.private_flag <> FND_API.g_miss_char
3846 AND p_evo_rec.private_flag IS NOT NULL
3847 THEN
3848 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.private_flag) = FND_API.g_false
3849 THEN
3850 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3851 THEN
3852 FND_MESSAGE.set_name('AMS', 'AMS_evo_BAD_PRIVATE_FLAG');
3853 FND_MSG_PUB.add;
3854 END IF;
3855 x_return_status := FND_API.g_ret_sts_error;
3856 RETURN;
3857 END IF;
3858 END IF;
3859 ----------------------- event_full_flag ------------------------
3860 IF p_evo_rec.event_full_flag <> FND_API.g_miss_char
3861 AND p_evo_rec.event_full_flag IS NOT NULL
3862 THEN
3863 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.event_full_flag) = FND_API.g_false
3864 THEN
3865 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3866 THEN
3867 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_FULL_FLAG');
3868 FND_MSG_PUB.add;
3869 END IF;
3870
3871 x_return_status := FND_API.g_ret_sts_error;
3872 RETURN;
3873 END IF;
3874 END IF;
3875 ----------------------- auto_register_flag ------------------------
3876 IF p_evo_rec.auto_register_flag <> FND_API.g_miss_char
3877 AND p_evo_rec.auto_register_flag IS NOT NULL
3878 THEN
3879 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.auto_register_flag) = FND_API.g_false
3880 THEN
3881 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3882 THEN
3883 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_AUTOREG_FLAG');
3884 FND_MSG_PUB.add;
3885 END IF;
3886
3887 x_return_status := FND_API.g_ret_sts_error;
3888 RETURN;
3889 END IF;
3890 END IF;
3891 ----------------------- event_standalone_flag ------------------------
3892 IF p_evo_rec.event_standalone_flag <> FND_API.g_miss_char
3893 AND p_evo_rec.event_standalone_flag IS NOT NULL
3894 THEN
3895 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.event_standalone_flag) = FND_API.g_false
3896 THEN
3897 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3898 THEN
3899 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_STANDALONE_FLAG');
3900 FND_MSG_PUB.add;
3901 END IF;
3902
3903 x_return_status := FND_API.g_ret_sts_error;
3904 RETURN;
3905 END IF;
3906 END IF;
3907 ----------------------- reg_required_flag ------------------------
3908 IF p_evo_rec.reg_required_flag <> FND_API.g_miss_char
3909 AND p_evo_rec.reg_required_flag IS NOT NULL
3910 THEN
3911 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_required_flag) = FND_API.g_false
3912 THEN
3913 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3914 THEN
3915 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_REQUIRED_FLAG');
3916 FND_MSG_PUB.add;
3917 END IF;
3918
3919 x_return_status := FND_API.g_ret_sts_error;
3920 RETURN;
3921 END IF;
3922 END IF;
3923
3924 ----------------------- reg_invited_only_flag ------------------------
3925 IF p_evo_rec.reg_invited_only_flag <> FND_API.g_miss_char
3926 AND p_evo_rec.reg_invited_only_flag IS NOT NULL
3927 THEN
3928 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_invited_only_flag) = FND_API.g_false
3929 THEN
3930 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3931 THEN
3932 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_INVITED_ONLY_FLAG');
3933 FND_MSG_PUB.add;
3934 END IF;
3935
3936 x_return_status := FND_API.g_ret_sts_error;
3937 RETURN;
3938 END IF;
3939 END IF;
3940 ----------------------- reg_waitlist_allowed_flag ------------------------
3941 IF p_evo_rec.reg_waitlist_allowed_flag <> FND_API.g_miss_char
3942 AND p_evo_rec.reg_waitlist_allowed_flag IS NOT NULL
3943 THEN
3944 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_waitlist_allowed_flag) = FND_API.g_false
3945 THEN
3946 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3947 THEN
3948 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_WAITLIST_ALLOWED_FLAG');
3949 FND_MSG_PUB.add;
3950 END IF;
3951
3952 x_return_status := FND_API.g_ret_sts_error;
3953 RETURN;
3954 END IF;
3955 END IF;
3956 ----------------------- reg_overbook_allowed_flag ------------------------
3957 IF p_evo_rec.reg_overbook_allowed_flag <> FND_API.g_miss_char
3958 AND p_evo_rec.reg_overbook_allowed_flag IS NOT NULL
3959 THEN
3960 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_overbook_allowed_flag) = FND_API.g_false
3961 THEN
3962 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3963 THEN
3964 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_OVERBOOK_ALLOWED_FLAG');
3965 FND_MSG_PUB.add;
3966 END IF;
3967
3968 x_return_status := FND_API.g_ret_sts_error;
3969 RETURN;
3970 END IF;
3971 END IF;
3972 ----------------------- reg_charge_flag ------------------------
3973 IF p_evo_rec.reg_charge_flag <> FND_API.g_miss_char
3974 AND p_evo_rec.reg_charge_flag IS NOT NULL
3975 THEN
3976 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_charge_flag) = FND_API.g_false
3977 THEN
3978 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3979 THEN
3980 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_CHARGE_FLAG');
3981 FND_MSG_PUB.add;
3982 END IF;
3983
3984 x_return_status := FND_API.g_ret_sts_error;
3985 RETURN;
3986 END IF;
3987 END IF;
3988 ----------------------- reg_frozen_flag ------------------------
3989 IF p_evo_rec.reg_frozen_flag <> FND_API.g_miss_char
3990 AND p_evo_rec.reg_frozen_flag IS NOT NULL
3991 THEN
3992 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.reg_frozen_flag) = FND_API.g_false
3993 THEN
3994 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
3995 THEN
3996 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_REG_FROZEN_FLAG');
3997 FND_MSG_PUB.add;
3998 END IF;
3999
4000 x_return_status := FND_API.g_ret_sts_error;
4001 RETURN;
4002 END IF;
4003 END IF;
4004
4005 ----------------------- overflow_flag ------------------------
4006 IF p_evo_rec.overflow_flag <> FND_API.g_miss_char
4007 AND p_evo_rec.overflow_flag IS NOT NULL
4008 THEN
4009 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.overflow_flag) = FND_API.g_false
4010 THEN
4011 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4012 THEN
4013 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_OVERFLOW_FLAG');
4014 FND_MSG_PUB.add;
4015 END IF;
4016
4017 x_return_status := FND_API.g_ret_sts_error;
4018 RETURN;
4019 END IF;
4020 END IF;
4021 ----------------------- partner_flag ------------------------
4022 IF p_evo_rec.partner_flag <> FND_API.g_miss_char
4023 AND p_evo_rec.partner_flag IS NOT NULL
4024 THEN
4025 IF AMS_Utility_PVT.is_Y_or_N(p_evo_rec.partner_flag) = FND_API.g_false
4026 THEN
4027 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4028 THEN
4029 FND_MESSAGE.set_name('AMS', 'AMS_EVO_BAD_PARTNER_FLAG');
4030 FND_MSG_PUB.add;
4031 END IF;
4032
4033 x_return_status := FND_API.g_ret_sts_error;
4034 RETURN;
4035 END IF;
4036 END IF;
4037 -- check other flags
4038
4039 END check_evo_flag_items;
4040
4041 ---------------------------------------------------------------------
4042 -- PROCEDURE
4043 -- check_evo_items
4044 --
4045 -- HISTORY
4046 -- 11/23/1999 sugupta Created.
4047 ---------------------------------------------------------------------
4048 PROCEDURE check_evo_items(
4049 p_evo_rec IN evo_rec_type,
4050 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
4051 x_return_status OUT NOCOPY VARCHAR2
4052 )
4053 IS
4054 BEGIN
4055
4056 -------------------------- Update Mode ----------------------------
4057 -- check if the p_evo_rec has any columns that should not be updated at this stage as per the business logic.
4058 -- for example, changes to source_code should not be allowed at any update.
4059 -- Also when the event is in active stage, changes to marketing message and budget related columns should not be allowed.
4060 IF (AMS_DEBUG_HIGH_ON) THEN
4061
4062 AMS_UTILITY_PVT.debug_message('before ok_items');
4063 END IF;
4064 IF p_validation_mode = JTF_PLSQL_API.g_update THEN
4065 check_evo_update_ok_items(
4066 p_evo_rec => p_evo_rec,
4067 x_return_status => x_return_status
4068 );
4069
4070 IF x_return_status <> FND_API.g_ret_sts_success THEN
4071 RETURN;
4072 END IF;
4073
4074 END IF;
4075 --------------------------------------Create mode--------------------------
4076 IF (AMS_DEBUG_HIGH_ON) THEN
4077
4078 AMS_UTILITY_PVT.debug_message('before uk_items');
4079 END IF;
4080
4081 check_evo_uk_items(
4082 p_evo_rec => p_evo_rec,
4083 p_validation_mode => p_validation_mode,
4084 x_return_status => x_return_status
4085 );
4086
4087 -------------------------- Create or Update Mode ----------------------------
4088 IF (AMS_DEBUG_HIGH_ON) THEN
4089
4090 AMS_UTILITY_PVT.debug_message('before req_items');
4091 END IF;
4092
4093 check_evo_req_items(
4094 p_evo_rec => p_evo_rec,
4095 x_return_status => x_return_status
4096 );
4097
4098 IF x_return_status <> FND_API.g_ret_sts_success THEN
4099 RETURN;
4100 END IF;
4101
4102 IF x_return_status <> FND_API.g_ret_sts_success THEN
4103 RETURN;
4104 END IF;
4105 IF (AMS_DEBUG_HIGH_ON) THEN
4106
4107 AMS_UTILITY_PVT.debug_message('before fk_items');
4108 END IF;
4109
4110 check_evo_fk_items(
4111 p_evo_rec => p_evo_rec,
4112 x_return_status => x_return_status
4113 );
4114
4115 IF x_return_status <> FND_API.g_ret_sts_success THEN
4116 RETURN;
4117 END IF;
4118 IF (AMS_DEBUG_HIGH_ON) THEN
4119
4120 AMS_UTILITY_PVT.debug_message('before lookup_items');
4121 END IF;
4122
4123 check_evo_lookup_items(
4124 p_evo_rec => p_evo_rec,
4125 x_return_status => x_return_status
4126 );
4127
4128 IF x_return_status <> FND_API.g_ret_sts_success THEN
4129 RETURN;
4130 END IF;
4131 IF (AMS_DEBUG_HIGH_ON) THEN
4132
4133 AMS_UTILITY_PVT.debug_message('before flag_items');
4134 END IF;
4135
4136 check_evo_flag_items(
4137 p_evo_rec => p_evo_rec,
4138 x_return_status => x_return_status
4139 );
4140
4141 IF x_return_status <> FND_API.g_ret_sts_success THEN
4142 RETURN;
4143 END IF;
4144
4145 END check_evo_items;
4146
4147
4148 ---------------------------------------------------------------------
4149 -- PROCEDURE
4150 -- check_evo_record
4151 --
4152 -- HISTORY
4153 -- 11/23/1999 sugupta Created.
4154 ---------------------------------------------------------------------
4155 PROCEDURE check_evo_record(
4156 p_evo_rec IN evo_rec_type,
4157 p_complete_rec IN evo_rec_type,
4158 x_return_status OUT NOCOPY VARCHAR2
4159 )
4160 IS
4161 -- The following needs to be checked:
4162 -- 1. Event end date follows start date
4163 -- if start dtae and end date are same(added 07/20/2000 OR event level = SUB), then check for
4164 -- end time follows start time
4165 -- 2. evo start date follows reg start date
4166 -- 3. evo end date follows reg end date
4167 -- 4. reg. for agenda (SUB) events not supported yet...
4168
4169 -- 5. reg_maximum_cap shud be greater than reg_min_cap
4170 -- 6. Duration and its UOM should be together
4171
4172 l_evo_start_date DATE := p_evo_rec.event_start_date;
4173 l_reg_start_date DATE := p_evo_rec.reg_start_date;
4174 l_evo_start_date_time DATE := p_evo_rec.event_start_date_time;
4175 l_reg_start_time DATE := p_evo_rec.reg_start_time;
4176
4177
4178 l_evo_end_date DATE := p_evo_rec.event_end_date;
4179 l_reg_end_date DATE := p_evo_rec.reg_end_date;
4180 l_evo_end_date_time DATE := p_evo_rec.event_end_date_time;
4181 l_reg_end_time DATE := p_evo_rec.reg_end_time;
4182 l_max_cap NUMBER := p_evo_rec.REG_MAXIMUM_CAPACITY;
4183 l_min_cap NUMBER := p_evo_rec.REG_MINIMUM_CAPACITY;
4184 l_parent_start_date DATE;
4185 l_parent_end_date DATE;
4186
4187 cursor get_parent_date (id_in in NUMBER)is
4188 select ACTUAL_EXEC_START_DATE, ACTUAL_EXEC_END_DATE
4189 from AMS_CAMPAIGNS_ALL_B
4190 where CAMPAIGN_ID = id_in
4191 and ROLLUP_TYPE = 'RCAM';
4192
4193 BEGIN
4194
4195 x_return_status := FND_API.g_ret_sts_success;
4196
4197 IF p_evo_rec.event_start_date <> FND_API.g_miss_date
4198 OR p_evo_rec.event_end_date <> FND_API.g_miss_date
4199 THEN
4200 IF p_evo_rec.event_start_date = FND_API.g_miss_date THEN
4201 l_evo_start_date := p_complete_rec.event_start_date;
4202 END IF;
4203
4204 IF p_evo_rec.event_end_date = FND_API.g_miss_date THEN
4205 l_evo_end_date := p_complete_rec.event_end_date;
4206 END IF;
4207
4208 IF l_evo_start_date > l_evo_end_date THEN
4209 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4210 THEN
4211 FND_MESSAGE.set_name('AMS', 'AMS_EVO_START_DT_GT_END_DT');
4212 FND_MSG_PUB.add;
4213 END IF;
4214 x_return_status := FND_API.g_ret_sts_error;
4215 return;
4216 END IF;
4217
4218 IF p_evo_rec.parent_type = 'RCAM' THEN
4219 open get_parent_date(p_evo_rec.parent_id);
4220 fetch get_parent_date into l_parent_start_date, l_parent_end_date;
4221 close get_parent_date;
4222 IF l_evo_start_date < l_parent_start_date THEN
4223 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4224 FND_MESSAGE.set_name('AMS', 'AMS_EVO_SD_GT_PRNT_SD');
4225 FND_MSG_PUB.add;
4226 END IF;
4227 x_return_status := FND_API.g_ret_sts_error;
4228 return;
4229 END IF;
4230 IF l_evo_start_date > l_parent_end_date THEN
4231 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4232 FND_MESSAGE.set_name('AMS', 'AMS_EVO_SD_LT_PRNT_ED');
4233 FND_MSG_PUB.add;
4234 END IF;
4235 x_return_status := FND_API.g_ret_sts_error;
4236 return;
4237 END IF;
4238 IF l_evo_end_date < l_parent_start_date THEN
4239 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4240 FND_MESSAGE.set_name('AMS', 'AMS_EVO_ED_GT_PRNT_SD');
4241 FND_MSG_PUB.add;
4242 END IF;
4243 x_return_status := FND_API.g_ret_sts_error;
4244 return;
4245 END IF;
4246 IF l_evo_end_date > l_parent_end_date THEN
4247 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4248 FND_MESSAGE.set_name('AMS', 'AMS_EVO_ED_LT_PRNT_ED');
4249 FND_MSG_PUB.add;
4250 END IF;
4251 x_return_status := FND_API.g_ret_sts_error;
4252 return;
4253 END IF;
4254 END IF;
4255
4256
4257 -- useful for agendas as well(for agenda, st dt = end dt)
4258 IF l_evo_start_date = l_evo_end_date OR p_complete_rec.event_level = 'SUB' THEN
4259 IF p_evo_rec.event_start_date_time <> FND_API.g_miss_date
4260 OR p_evo_rec.event_end_date_time <> FND_API.g_miss_date
4261 THEN
4262 IF p_evo_rec.event_start_date_time = FND_API.g_miss_date THEN
4263 l_evo_start_date_time := p_complete_rec.event_start_date_time;
4264 END IF;
4265
4266 IF p_evo_rec.event_end_date_time = FND_API.g_miss_date THEN
4267 l_evo_end_date_time := p_complete_rec.event_end_date_time;
4268 END IF;
4269
4270 IF(to_char(l_evo_end_date_time,'HH24:MI') = '00:00')
4271 THEN
4272 l_evo_end_date_time := to_date(to_char(l_evo_end_date_time, 'DD-MM-YYYY') || '23:59','DD-MM-YYYY HH24:MI');
4273 END IF;
4274 IF (AMS_DEBUG_HIGH_ON) THEN
4275
4276 AMS_UTILITY_PVT.debug_message('End Date Time is ' ||to_char(l_evo_end_date_time, 'DD-MM-YYYY HH24:MI'));
4277 END IF;
4278 IF (AMS_DEBUG_HIGH_ON) THEN
4279
4280 AMS_UTILITY_PVT.debug_message('Start Date Time is ' ||to_char(l_evo_start_date_time,'DD-MM-YYYY HH24:MI') );
4281 END IF;
4282
4283 IF l_evo_start_date_time > l_evo_end_date_time THEN
4284 IF (AMS_DEBUG_HIGH_ON) THEN
4285
4286 AMS_UTILITY_PVT.debug_message('Entered the loop');
4287 END IF;
4288
4289 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4290 THEN
4291 FND_MESSAGE.set_name('AMS', 'AMS_EVO_START_TM_GT_END_TM');
4292 FND_MSG_PUB.add;
4293 END IF;
4294 x_return_status := FND_API.g_ret_sts_error;
4295 return;
4296 END IF; -- st tm > end tm
4297 END IF; -- check time for miss_dates
4298 END IF; -- st dt = end dt
4299 END IF; -- check dt for miss_date
4300
4301 IF p_evo_rec.EVENT_DURATION <> FND_API.g_miss_num
4302 OR p_complete_rec.EVENT_DURATION IS NOT NULL
4303 THEN
4304 IF (AMS_DEBUG_HIGH_ON) THEN
4305
4306 AMS_Utility_PVT.debug_message('Entered Here1');
4307 END IF;
4308
4309 IF ( p_evo_rec.EVENT_DURATION_UOM_CODE IS NULL
4310 OR
4311 (p_evo_rec.EVENT_DURATION_UOM_CODE = FND_API.g_miss_char AND
4312 p_complete_rec.EVENT_DURATION_UOM_CODE IS NULL) )
4313
4314 THEN
4315 IF (AMS_DEBUG_HIGH_ON) THEN
4316
4317 AMS_Utility_PVT.debug_message('Entered Here2');
4318 END IF;
4319 AMS_Utility_PVT.error_message('AMS_EVO_NO_DUR_UOM_CODE');
4320 x_return_status := FND_API.g_ret_sts_error;
4321 return;
4322 END IF;
4323 END IF;
4324
4325 IF p_evo_rec.EVENT_DURATION_UOM_CODE <> FND_API.g_miss_char
4326 OR p_complete_rec.EVENT_DURATION_UOM_CODE IS NOT NULL
4327 THEN
4328 IF p_evo_rec.EVENT_DURATION = FND_API.g_miss_num
4329 AND p_complete_rec.EVENT_DURATION IS NULL
4330 THEN
4331 AMS_Utility_PVT.error_message('AMS_EVO_NO_DUR_WITH_CODE');
4332 x_return_status := FND_API.g_ret_sts_error;
4333 return;
4334 END IF;
4335 END IF;
4336 -- added sugupta 07/20/2000 if budget amount's there, there has to be currency code
4337
4338 IF p_evo_rec.FUND_AMOUNT_TC <> FND_API.g_miss_num
4339 OR p_complete_rec.FUND_AMOUNT_TC IS NOT NULL
4340 THEN
4341 IF p_evo_rec.CURRENCY_CODE_TC = FND_API.g_miss_char
4342 AND p_complete_rec.CURRENCY_CODE_TC IS NULL
4343 THEN
4344 AMS_Utility_PVT.error_message('AMS_CAMP_BUDGET_NO_CURRENCY'); -- reusing campaign message
4345 x_return_status := FND_API.g_ret_sts_error;
4346 return;
4347 END IF;
4348 END IF;
4349
4350 -- Code Added by GMADANA
4351 IF p_complete_rec.event_start_date_time IS NULL -- coming from create
4352 THEN
4353 l_evo_start_date_time := p_evo_rec.event_start_date_time;
4354 l_evo_end_date_time := p_evo_rec.event_end_date_time;
4355 ELSE -- coming from update
4356 l_evo_start_date_time := p_complete_rec.event_start_date_time;
4357 l_evo_end_date_time := p_complete_rec.event_end_date_time;
4358 END IF;
4359
4360 -- Donot make the end time as 23:59, if the end time is 12:00 AM.
4361 /* IF(to_char(l_evo_end_date_time,'HH24:MI') = '00:00')
4362 THEN
4363 l_evo_end_date_time := to_date(to_char(l_evo_end_date_time, 'DD-MM-YYYY') || '23:59','DD-MM-YYYY HH24:MI');
4364 END IF;
4365 */
4366
4367 IF (AMS_DEBUG_HIGH_ON) THEN
4368
4369
4370
4371 AMS_UTILITY_PVT.debug_message('End Date Time is ' ||to_char(l_evo_end_date_time, 'DD-MM-YYYY HH24:MI'));
4372
4373 END IF;
4374 IF (AMS_DEBUG_HIGH_ON) THEN
4375
4376 AMS_UTILITY_PVT.debug_message('Start Date Time is ' ||to_char(l_evo_start_date_time,'DD-MM-YYYY HH24:MI') );
4377 END IF;
4378
4379
4380 IF l_evo_start_date_time > l_evo_end_date_time
4381 THEN
4382 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4383 THEN
4384 FND_MESSAGE.set_name('AMS', 'AMS_EVO_START_TM_GT_END_TM');
4385 FND_MSG_PUB.add;
4386 END IF;
4387 x_return_status := FND_API.g_ret_sts_error;
4388 return;
4389 END IF;
4390
4391
4392 END check_evo_record;
4393
4394 ---------------------------------------------------------------------
4395 -- PROCEDURE
4396 -- check_evo_update
4397 --
4398 -- HISTORY
4399 -- 03/31/00 sugupta Created.
4400 ---------------------------------------------------------------------
4401 PROCEDURE check_evo_update(
4402 p_evo_rec IN OUT NOCOPY AMS_EVENTOFFER_PVT.evo_rec_type,
4403 x_return_status OUT NOCOPY VARCHAR2
4404 )
4405 IS
4406 CURSOR c_evo IS
4407 SELECT *
4408 FROM ams_event_offers_vl
4409 WHERE event_offer_id = p_evo_rec.event_offer_id;
4410
4411 CURSOR c_source_code IS
4412 SELECT 1
4413 FROM ams_source_codes
4414 WHERE source_code = p_evo_rec.source_code
4415 AND active_flag = 'Y';
4416
4417 l_track_id NUMBER;
4418 l_session_id NUMBER;
4419
4420
4421 CURSOR c_get_track_id(id_in in NUMBER) IS
4422 SELECT agenda_id
4423 FROM ams_agendas_b
4424 WHERE parent_id = id_in;
4425
4426 CURSOR c_get_session_id(id_in in NUMBER) IS
4427 SELECT agenda_id
4428 FROM ams_agendas_b
4429 WHERE parent_id = id_in;
4430
4431
4432 l_msg_data VARCHAR2(2000);
4433 l_msg_count NUMBER;
4434 l_dummy NUMBER;
4435 l_evo_rec c_evo%ROWTYPE;
4436 l_evo_start_date DATE := p_evo_rec.event_start_date;
4437 l_evo_end_date DATE := p_evo_rec.event_end_date;
4438 l_max_cap NUMBER := p_evo_rec.REG_MAXIMUM_CAPACITY;
4439 l_source_code VARCHAR2(30);
4440 l_event_availability NUMBER;
4441 l_event_waitlisted NUMBER;
4442 l_reg_overbook_allowed_flag VARCHAR2(1) := p_evo_rec.reg_overbook_allowed_flag;
4443 l_reg_overbook_pct NUMBER := p_evo_rec.reg_overbook_pct;
4444 l_effective_capacity NUMBER;
4445 l_num_registered NUMBER;
4446 l_auto_register_flag VARCHAR2(1) := p_evo_rec.auto_register_flag;
4447 l_invited_only_flag VARCHAR2(1) := p_evo_rec.reg_invited_only_flag;
4448 BEGIN
4449
4450 IF (AMS_DEBUG_HIGH_ON) THEN
4451
4452
4453
4454 AMS_Utility_PVT.debug_message(p_evo_rec.event_offer_id ||': check evo_update');
4455
4456 END IF;
4457 x_return_status := FND_API.g_ret_sts_success;
4458
4459 OPEN c_evo;
4460 FETCH c_evo INTO l_evo_rec;
4461 IF c_evo%NOTFOUND THEN
4462 CLOSE c_evo;
4463 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4464 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
4465 FND_MSG_PUB.add;
4466 END IF;
4467 RAISE FND_API.g_exc_error;
4468 END IF;
4469 CLOSE c_evo;
4470
4471 ------ check some validation stuff for updates-----------------
4472 -- Check if the above logic will work if either of the dates are NULL.
4473 IF p_evo_rec.reg_start_date <> FND_API.g_miss_date
4474 AND p_evo_rec.reg_end_date <> FND_API.g_miss_date
4475 THEN
4476 IF p_evo_rec.event_start_date = FND_API.g_miss_date THEN
4477 l_evo_start_date := l_evo_rec.event_start_date;
4478 END IF;
4479
4480 IF p_evo_rec.event_end_date = FND_API.g_miss_date THEN
4481 l_evo_end_date := l_evo_rec.event_end_date;
4482 END IF;
4483 /* *** BATOLETI Ref bug# 4404567
4484 Bypassing the registration date valication in case of conc job
4485 updation process...
4486 *** */
4487 IF p_evo_rec.system_status_code <> 'COMPLETED' THEN ----batoleti Ref Bug# 4404567
4488 IF p_evo_rec.reg_start_date > l_evo_end_date THEN
4489 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4490 THEN
4491 FND_MESSAGE.set_name('AMS', 'AMS_EVO_REGST_DT_GT_START_DT');
4492 FND_MSG_PUB.add;
4493 END IF;
4494 x_return_status := FND_API.g_ret_sts_error;
4495 END IF;
4496
4497
4498 IF p_evo_rec.reg_end_date > l_evo_end_date THEN
4499 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4500 THEN
4501 FND_MESSAGE.set_name('AMS', 'AMS_EVO_REGED_DT_GT_END_DT');
4502 FND_MSG_PUB.add;
4503 END IF;
4504 x_return_status := FND_API.g_ret_sts_error;
4505 END IF;
4506 END IF; --batoleti Ref Bug# 4404567
4507 END IF;
4508 -- 03/31/00 sugupta added
4509 IF p_evo_rec.REG_MINIMUM_REQ_BY_DATE <> FND_API.g_miss_date
4510 AND p_evo_rec.reg_end_date <> FND_API.g_miss_date
4511 THEN
4512 IF (p_evo_rec.REG_MINIMUM_REQ_BY_DATE > p_evo_rec.reg_end_date or
4513 p_evo_rec.REG_MINIMUM_REQ_BY_DATE < p_evo_rec.reg_start_date)THEN
4514 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4515 THEN
4516 FND_MESSAGE.set_name('AMS', 'AMS_EVO_REQ_DT_GT_RGEND_DT');
4517 FND_MSG_PUB.add;
4518 END IF;
4519 x_return_status := FND_API.g_ret_sts_error;
4520 END IF;
4521 END IF;
4522 -- 07/13/00 sugupta added Bug 1333032
4523 IF p_evo_rec.reg_start_date <> FND_API.g_miss_date
4524 AND p_evo_rec.reg_end_date <> FND_API.g_miss_date
4525 THEN
4526 IF p_evo_rec.reg_start_date > p_evo_rec.reg_end_date THEN
4527 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4528 THEN
4529 FND_MESSAGE.set_name('AMS', 'AMS_EVO_RGSTDT_GT_RGEND_DT');
4530 FND_MSG_PUB.add;
4531 END IF;
4532 x_return_status := FND_API.g_ret_sts_error;
4533 ELSIF p_evo_rec.reg_start_date = p_evo_rec.reg_end_date THEN
4534 -- test for reg times
4535 IF p_evo_rec.reg_start_time <> FND_API.g_miss_date
4536 OR p_evo_rec.reg_end_time <> FND_API.g_miss_date
4537 THEN
4538 IF p_evo_rec.reg_start_time > p_evo_rec.reg_end_time THEN
4539 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4540 THEN
4541 FND_MESSAGE.set_name('AMS', 'AMS_EVO_RGSTTM_GT_RGEND_TM');
4542 FND_MSG_PUB.add;
4543 END IF;
4544 x_return_status := FND_API.g_ret_sts_error;
4545 END IF; -- st tm > end tm
4546 END IF; -- check time for miss_dates
4547 END IF; -- reg st dt > reg end dt
4548 END IF;
4549
4550 -- 03/31/00 sugupta added to make sure reg_min_capacity is not less than reg_max_capacity
4551 -- IF p_evo_rec.REG_MINIMUM_CAPACITY <> FND_API.g_miss_num THEN
4552
4553 IF (p_evo_rec.reg_invited_only_flag = FND_API.g_miss_char)
4554 THEN
4555 l_invited_only_flag := l_evo_rec.reg_invited_only_flag;
4556 END IF;
4557 IF (nvl(l_invited_only_flag, 'Y') <> 'Y')
4558 THEN
4559 IF p_evo_rec.REG_MAXIMUM_CAPACITY = FND_API.g_miss_num
4560 THEN
4561 l_max_cap := l_evo_rec.REG_MAXIMUM_CAPACITY;
4562 END IF;
4563
4564 IF l_max_cap IS NOT NULL
4565 THEN
4566 IF ( (p_evo_rec.REG_MINIMUM_CAPACITY <> FND_API.g_miss_num)
4567 AND (p_evo_rec.REG_MINIMUM_CAPACITY > l_max_cap)
4568 )
4569 THEN
4570 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
4571 THEN
4572 FND_MESSAGE.set_name('AMS', 'AMS_EVO_MINCAP_GT_MAXCAP');
4573 FND_MSG_PUB.add;
4574 END IF;
4575 x_return_status := FND_API.g_ret_sts_error;
4576 END IF;
4577 END IF;
4578
4579 IF p_evo_rec.reg_overbook_allowed_flag = FND_API.g_miss_char
4580 THEN
4581 l_reg_overbook_allowed_flag := l_evo_rec.reg_overbook_allowed_flag;
4582 END IF;
4583 IF p_evo_rec.reg_overbook_pct = FND_API.g_miss_num
4584 THEN
4585 l_reg_overbook_pct := l_evo_rec.reg_overbook_pct;
4586 END IF;
4587
4588 IF (AMS_DEBUG_HIGH_ON) THEN
4589
4590
4591
4592 AMS_Utility_Pvt.Debug_Message('l_reg_overbook_allowed_flag ' || l_reg_overbook_allowed_flag);
4593
4594 END IF;
4595 IF (AMS_DEBUG_HIGH_ON) THEN
4596
4597 AMS_Utility_Pvt.Debug_Message('l_max_cap: ' || l_max_cap);
4598 END IF;
4599 IF l_reg_overbook_allowed_flag <> 'Y'
4600 THEN
4601 l_effective_capacity := l_max_cap;
4602 ELSE
4603 IF (AMS_DEBUG_HIGH_ON) THEN
4604
4605 AMS_Utility_Pvt.Debug_Message('l_reg_overbook_pct ' || l_reg_overbook_pct);
4606 END IF;
4607 l_effective_capacity := round((1 + (l_reg_overbook_pct/100)) * l_max_cap);
4608 END IF;
4609 l_num_registered := AMS_EvtRegs_PVT.check_number_registered(p_event_offer_id => l_evo_rec.event_offer_id);
4610 l_event_availability := l_effective_capacity - l_num_registered;
4611 IF (AMS_DEBUG_HIGH_ON) THEN
4612
4613 AMS_Utility_Pvt.Debug_Message('Slots available: ' || l_event_availability);
4614 END IF;
4615 IF nvl(l_event_availability, 1) < 0
4616 THEN
4617 -- Capacity is too small - error
4618 AMS_Utility_PVT.Error_Message( p_message_name => 'AMS_EVO_REG_CAP_LT_ROSTER'
4619 , p_token_name => 'REGCNT'
4620 , p_token_value => to_char(l_num_registered)
4621 );
4622 x_return_status := FND_API.g_ret_sts_error;
4623 ELSE
4624 -- There may be room in the event now for people on the waitlist
4625 IF (p_evo_rec.auto_register_flag = FND_API.g_miss_char)
4626 THEN
4627 l_auto_register_flag := l_evo_rec.auto_register_flag;
4628 END IF;
4629
4630 IF (nvl(l_auto_register_flag, 'Y') = 'Y')
4631 THEN
4632 l_event_waitlisted := AMS_EvtRegs_PVT.check_number_waitlisted(p_event_offer_id => l_evo_rec.event_offer_id);
4633 IF ( (l_event_availability IS NULL)
4634 OR
4635 (l_event_availability > l_event_waitlisted)
4636 )
4637 THEN
4638 -- Take everyone off the waitlist.
4639 l_event_availability := l_event_waitlisted;
4640 END IF;
4641 --RAISE FND_API.g_exc_error;
4642 FOR l_i IN 1..l_event_availability LOOP
4643 AMS_EvtRegs_PVT.prioritize_waitlist( p_api_version_number => 1.0
4644 , p_Init_Msg_List => FND_API.G_FALSE
4645 , p_Commit => FND_API.G_FALSE
4646 , p_override_availability => FND_API.G_TRUE
4647 , p_event_offer_id => p_evo_rec.event_offer_id
4648 , x_return_status => x_return_status
4649 , x_msg_count => l_msg_count
4650 , x_msg_data => l_msg_data
4651 );
4652 IF (x_return_status = FND_API.g_ret_sts_error)
4653 THEN
4654 AMS_Utility_PVT.Error_Message( p_message_name => 'AMS_EVO_REG_WAITLIST_CAP');
4655 END IF;
4656 END LOOP;
4657 END IF; -- auto_register_flag
4658 END IF;
4659 --RAISE FND_API.g_exc_error;
4660 END IF; -- invite only flag
4661
4662 IF p_evo_rec.event_venue_id is NULL
4663 THEN
4664 OPEN c_get_track_id(p_evo_rec.event_offer_id);
4665 fetch c_get_track_id into l_track_id;
4666 WHILE c_get_track_id%FOUND LOOP
4667 OPEN c_get_session_id(l_track_id);
4668 fetch c_get_session_id into l_session_id;
4669 WHILE c_get_session_id%FOUND LOOP
4670 update ams_agendas_b
4671 set room_id = null
4672 ,object_version_number = object_version_number + 1
4673 where agenda_id = l_session_id;
4674 fetch c_get_session_id into l_session_id;
4675 END LOOP;
4676 close c_get_session_id;
4677 fetch c_get_track_id into l_track_id;
4678 END LOOP;
4679 close c_get_track_id;
4680 END IF;
4681 -- END IF;
4682
4683 ---------------------------- status codes-----------------------
4684 -- change status through workflow
4685 -- modified sugupta 07/20/2000
4686 --NOT NEEDED FOR EVENT AGENDAS
4687
4688 -- Commented the old style of approval process call.
4689 -- gdeodhar : Oct 06, 2000.
4690 /*
4691 if l_evo_rec.event_level = 'MAIN' then
4692 IF p_evo_rec.user_status_id <> FND_API.g_miss_num
4693 AND p_evo_rec.user_status_id <> l_evo_rec.user_status_id
4694 THEN
4695 AMS_WFCmpApr_PVT.StartProcess(
4696 p_approval_for => 'EVEO',
4697 p_approval_for_id => p_evo_rec.event_offer_id,
4698 p_object_version_number => p_evo_rec.object_version_number,
4699 p_orig_stat_id => l_evo_rec.user_status_id,
4700 p_new_stat_id => p_evo_rec.user_status_id,
4701 p_requester_userid => FND_GLOBAL.user_id
4702 );
4703 END IF;
4704
4705 -- need more specific rules on locking columns at different statuses
4706
4707 -- the following will be locked after theme approval
4708 IF l_evo_rec.system_status_code <> 'NEW' THEN
4709 IF p_evo_rec.event_offer_name <> FND_API.g_miss_char
4710 AND p_evo_rec.event_offer_name <> l_evo_rec.event_offer_name
4711 THEN
4712 AMS_Utility_PVT.error_message('AMS_EVO_UPDATE_OFFER_NAME');
4713 x_return_status := FND_API.g_ret_sts_error;
4714 END IF;
4715
4716 IF p_evo_rec.event_type_code <> fnd_api.g_miss_char
4717 and p_evo_rec.event_type_code <> l_evo_rec.event_type_code
4718 and (p_evo_rec.event_type_code IS NOT NULL
4719 OR l_evo_rec.event_type_code IS NOT NULL)
4720 THEN
4721 AMS_Utility_PVT.error_message('AMS_EVO_UPDATE_EVENT_TYPE');
4722 x_return_status := FND_API.g_ret_sts_error;
4723 END IF;
4724
4725 IF p_evo_rec.event_start_date <> fnd_api.g_miss_date
4726 and p_evo_rec.event_start_date <> l_evo_rec.event_start_date
4727 and (p_evo_rec.event_start_date IS NOT NULL
4728 OR l_evo_rec.event_start_date IS NOT NULL)
4729 THEN
4730 AMS_Utility_PVT.error_message('AMS_EVO_UPDATE_START_DATE');
4731 x_return_status := FND_API.g_ret_sts_error;
4732 END IF;
4733
4734 IF p_evo_rec.event_end_date <> fnd_api.g_miss_date
4735 and p_evo_rec.event_end_date <> l_evo_rec.event_end_date
4736 and (p_evo_rec.event_end_date IS NOT NULL
4737 OR l_evo_rec.event_end_date IS NOT NULL)
4738 THEN
4739 AMS_Utility_PVT.error_message('AMS_EVO_UPDATE_END_DATE');
4740 x_return_status := FND_API.g_ret_sts_error;
4741 END IF;
4742 END IF; -- status code <> new
4743 end if; -- event_level MAIN
4744 */
4745 -- Commented part for the old style of approval process call ends.
4746 -- Locking of fields will be added later.
4747 -- gdeodhar : Oct 06, 2000.
4748
4749 END check_evo_update;
4750
4751 ---------------------------------------------------------------------
4752 -- PROCEDURE
4753 -- check_evo_inter_entity
4754 --
4755 -- HISTORY
4756 -- 03/31/00 sugupta Created.
4757 ---------------------------------------------------------------------
4758 PROCEDURE check_evo_inter_entity(
4759 p_evo_rec IN evo_rec_type,
4760 p_complete_rec IN evo_rec_type,
4761 p_validation_mode IN VARCHAR2,
4762 x_return_status OUT NOCOPY VARCHAR2
4763 )
4764 IS
4765
4766 l_return_status VARCHAR2(1);
4767 l_dummy number;
4768 l_src_code varchar2(30);
4769
4770 /* cursor c_src_code(id_in) IS
4771 select source_code from ams_event_offers_all_b
4772 where event_offer_id = id_in;
4773 */
4774 BEGIN
4775
4776 x_return_status := FND_API.g_ret_sts_success;
4777
4778 ------------------- check fund source ----------------------
4779 -- no need to check for event_level = MAIN
4780 IF p_evo_rec.fund_source_type_code <> FND_API.g_miss_char
4781 OR p_evo_rec.fund_source_id <> FND_API.g_miss_num
4782 THEN
4783 AMS_EvhRules_PVT.check_evh_fund_source(
4784 p_complete_rec.fund_source_type_code,
4785 p_complete_rec.fund_source_id,
4786 l_return_status
4787 );
4788 IF l_return_status <> FND_API.g_ret_sts_success THEN
4789 x_return_status := l_return_status;
4790 END IF;
4791 END IF;
4792 /* 04/01/2000 we will not be enforcing that event offering dates lie between
4793 event header dates
4794 ------------------- check dates ------------------------------
4795 IF p_evo_rec.event_start_date <> FND_API.g_miss_date
4796 OR p_evo_rec.event_end_date <> FND_API.g_miss_date
4797 THEN
4798 check_evo_header_dates(
4799 p_complete_rec.event_header_id,
4800 p_complete_rec.event_start_date,
4801 p_complete_rec.event_end_date,
4802 l_return_status
4803 );
4804 IF l_return_status <> FND_API.g_ret_sts_success THEN
4805 x_return_status := l_return_status;
4806 END IF;
4807 END IF;
4808 */
4809 -- added sugupta 31/8/2000
4810 ------------------- check calendar ----------------------
4811 IF p_evo_rec.event_calendar <> FND_API.g_miss_char
4812 OR p_evo_rec.start_period_name <> FND_API.g_miss_char
4813 OR p_evo_rec.end_period_name <> FND_API.g_miss_char
4814 OR p_evo_rec.event_start_date <> FND_API.g_miss_date
4815 OR p_evo_rec.event_end_date <> FND_API.g_miss_date
4816 THEN
4817 AMS_EvhRules_PVT.check_evh_calendar(
4818 p_complete_rec.event_calendar,
4819 p_complete_rec.start_period_name,
4820 p_complete_rec.end_period_name,
4821 p_complete_rec.event_start_date,
4822 p_complete_rec.event_end_date,
4823 l_return_status
4824 );
4825 IF l_return_status <> FND_API.g_ret_sts_success THEN
4826 x_return_status := l_return_status;
4827 END IF;
4828 END IF;
4829
4830 /* IF p_validation_mode = JTF_PLSQL_API.g_update
4831 THEN
4832 IF p_evo_rec.event_venue_id <> p_complete_rec.event_venue_id
4833 IF p_complete_rec.event_venue_id is NULL
4834 THEN
4835 OPEN c_get_track_id(p_evo_rec.event_offer_id);
4836 fetch c_get_track_id into l_track_id;
4837 WHILE c_get_track_id%FOUND LOOP
4838 OPEN c_get_session_id(l_track_id);
4839 fetch c_get_session_id into l_session_id;
4840 WHILE c_get_session_id%FOUND LOOP
4841 update ams_agendas_b
4842 set room_id = null
4843 ,object_version_number = object_version_number + 1
4844 where agenda_id = l_session_id;
4845 fetch c_get_session_id into l_session_id;
4846 END LOOP;
4847 close c_get_session_id
4848 fetch c_get_track_id into l_track_id;
4849 END LOOP;
4850 close c_get_track_id;
4851 END IF;
4852 END IF;
4853 */
4854 END check_evo_inter_entity;
4855
4856 ---------------------------------------------------------------------
4857 -- PROCEDURE
4858 -- init_evo_rec
4859 --
4860 -- HISTORY
4861 -- 11/23/1999 sugupta Create.
4862 ---------------------------------------------------------------------
4863 PROCEDURE init_evo_rec(
4864 x_evo_rec OUT NOCOPY evo_rec_type
4865 )
4866 IS
4867 BEGIN
4868 /* commented by murali looks like not matching with the record type
4869 x_evo_rec.event_offer_id := FND_API.g_miss_num;
4870 x_evo_rec.last_update_date := FND_API.g_miss_date;
4871 x_evo_rec.last_updated_by := FND_API.g_miss_num;
4872 x_evo_rec.creation_date := FND_API.g_miss_date;
4873 x_evo_rec.created_by := FND_API.g_miss_num;
4874 x_evo_rec.last_update_login := FND_API.g_miss_num;
4875 x_evo_rec.object_version_number := FND_API.g_miss_num;
4876 x_evo_rec.event_level := FND_API.g_miss_char;
4877 x_evo_rec.application_id := FND_API.g_miss_num;
4878 x_evo_rec.event_type_code := FND_API.g_miss_char;
4879 x_evo_rec.EVENT_DELIVERY_METHOD_ID := FND_API.g_miss_num;
4880 x_evo_rec.EVENT_DELIVERY_METHOD_CODE := FND_API.g_miss_char;
4881 x_evo_rec.event_header_id := FND_API.g_miss_num;
4882 x_evo_rec.active_flag := FND_API.g_miss_char;
4883 x_evo_rec.private_flag := FND_API.g_miss_char;
4884 x_evo_rec.user_status_id := FND_API.g_miss_num;
4885 x_evo_rec.system_status_code := FND_API.g_miss_char;
4886 x_evo_rec.last_status_date := FND_API.g_miss_date;
4887 x_evo_rec.stream_type_code := FND_API.g_miss_char;
4888 x_evo_rec.source_code := FND_API.g_miss_char;
4889 x_evo_rec.event_standalone_flag := FND_API.g_miss_char;
4890 x_evo_rec.reg_required_flag := FND_API.g_miss_char;
4891 x_evo_rec.reg_charge_flag := FND_API.g_miss_char;
4892 x_evo_rec.reg_invited_only_flag := FND_API.g_miss_char;
4893 x_evo_rec.partner_flag := FND_API.g_miss_char;
4894 x_evo_rec.overflow_flag := FND_API.g_miss_char;
4895 x_evo_rec.parent_event_offer_id := FND_API.g_miss_num;
4896 x_evo_rec.reg_frozen_flag := FND_API.g_miss_char;
4897 x_evo_rec.auto_register_flag := FND_API.g_miss_char;
4898 x_evo_rec.event_full_flag := FND_API.g_miss_char;
4899 x_evo_rec.REG_OVERBOOK_ALLOWED_FLAG := FND_API.g_miss_char;
4900 x_evo_rec.REG_CHARGE_FLAG := FND_API.g_miss_char;
4901 x_evo_rec.REG_INVITED_ONLY_FLAG := FND_API.g_miss_char;
4902 x_evo_rec.REG_WAITLIST_ALLOWED_FLAG := FND_API.g_miss_char;
4903 x_evo_rec.EVENT_VENUE_ID := FND_API.g_miss_num;
4904 x_evo_rec.FUND_AMOUNT_TC := FND_API.g_miss_num;
4905 x_evo_rec.FUND_AMOUNT_FC := FND_API.g_miss_num;
4906 x_evo_rec.CURRENCY_CODE_TC := FND_API.g_miss_char;
4907 x_evo_rec.CURRENCY_CODE_FC := FND_API.g_miss_char;
4908 x_evo_rec.event_duration := FND_API.g_miss_num;
4909 x_evo_rec.event_duration_uom_code := FND_API.g_miss_char;
4910 x_evo_rec.reg_maximum_capacity := FND_API.g_miss_num;
4911 x_evo_rec.reg_minimum_capacity := FND_API.g_miss_num;
4912 x_evo_rec.cert_credit_type_code := FND_API.g_miss_char;
4913 x_evo_rec.certification_credits := FND_API.g_miss_num;
4914 x_evo_rec.inventory_item_id := FND_API.g_miss_num;
4915 x_evo_rec.inventory_item := FND_API.g_miss_char;
4916 x_evo_rec.organization_id := FND_API.g_miss_num;
4917 x_evo_rec.actual_revenue := FND_API.g_miss_num;
4918 x_evo_rec.forecasted_cost := FND_API.g_miss_num;
4919 x_evo_rec.actual_cost := FND_API.g_miss_num;
4920 x_evo_rec.coordinator_id := FND_API.g_miss_num;
4921 x_evo_rec.fund_source_type_code := FND_API.g_miss_char;
4922 x_evo_rec.fund_source_id := FND_API.g_miss_num;
4923 x_evo_rec.owner_user_id := FND_API.g_miss_num;
4924 x_evo_rec.timezone_id := FND_API.g_miss_num;
4925 x_evo_rec.url := FND_API.g_miss_char;
4926 x_evo_rec.priority_type_code := FND_API.g_miss_char;
4927 x_evo_rec.cancellation_reason_code := FND_API.g_miss_char;
4928 x_evo_rec.inbound_script_name := FND_API.g_miss_char;
4929 x_evo_rec.PRICELIST_HEADER_CURRENCY_CODE := FND_API.g_miss_char;
4930 x_evo_rec.PRICELIST_LIST_PRICE := FND_API.g_miss_num;
4931 x_evo_rec.attribute_category := FND_API.g_miss_char;
4932 x_evo_rec.attribute1 := FND_API.g_miss_char;
4933 x_evo_rec.attribute2 := FND_API.g_miss_char;
4934 x_evo_rec.attribute3 := FND_API.g_miss_char;
4935 x_evo_rec.attribute4 := FND_API.g_miss_char;
4936 x_evo_rec.attribute5 := FND_API.g_miss_char;
4937 x_evo_rec.attribute6 := FND_API.g_miss_char;
4938 x_evo_rec.attribute7 := FND_API.g_miss_char;
4939 x_evo_rec.attribute8 := FND_API.g_miss_char;
4940 x_evo_rec.attribute9 := FND_API.g_miss_char;
4941 x_evo_rec.attribute10 := FND_API.g_miss_char;
4942 x_evo_rec.attribute11 := FND_API.g_miss_char;
4943 x_evo_rec.attribute12 := FND_API.g_miss_char;
4944 x_evo_rec.attribute13 := FND_API.g_miss_char;
4945 x_evo_rec.attribute14 := FND_API.g_miss_char;
4946 x_evo_rec.attribute15 := FND_API.g_miss_char;
4947 x_evo_rec.EVENT_OFFER_NAME := FND_API.g_miss_char;
4948 x_evo_rec.EVENT_MKTG_MESSAGE := FND_API.g_miss_char;
4949 x_evo_rec.description := FND_API.g_miss_char;
4950 x_evo_rec.custom_setup_id := FND_API.g_miss_num;
4951 x_evo_rec.country_code := FND_API.g_miss_char;
4952 x_evo_rec.business_unit_id := FND_API.g_miss_num;
4953 x_evo_rec.event_calendar := FND_API.g_miss_char;
4954 x_evo_rec.start_period_name := FND_API.g_miss_char;
4955 x_evo_rec.end_period_name := FND_API.g_miss_char;
4956 x_evo_rec.global_flag := FND_API.g_miss_char;
4957 */
4958
4959 x_evo_rec.EVENT_OFFER_ID := FND_API.g_miss_num;
4960 x_evo_rec.LAST_UPDATE_DATE := FND_API.g_miss_date;
4961 x_evo_rec.LAST_UPDATED_BY := FND_API.g_miss_num;
4962 x_evo_rec.CREATION_DATE := FND_API.g_miss_date;
4963 x_evo_rec.CREATED_BY := FND_API.g_miss_num;
4964 x_evo_rec.LAST_UPDATE_LOGIN := FND_API.g_miss_num;
4965 x_evo_rec.OBJECT_VERSION_NUMBER := FND_API.g_miss_num;
4966 x_evo_rec.APPLICATION_ID := FND_API.g_miss_num;
4967 x_evo_rec.EVENT_HEADER_ID := FND_API.g_miss_num;
4968 x_evo_rec.PRIVATE_FLAG := FND_API.g_miss_char;
4969 x_evo_rec.ACTIVE_FLAG := FND_API.g_miss_char;
4970 x_evo_rec.SOURCE_CODE := FND_API.g_miss_char;
4971 x_evo_rec.EVENT_LEVEL := FND_API.g_miss_char;
4972 x_evo_rec.USER_STATUS_ID := FND_API.g_miss_num;
4973 x_evo_rec.LAST_STATUS_DATE := FND_API.g_miss_date;
4974 x_evo_rec.SYSTEM_STATUS_CODE := FND_API.g_miss_char;
4975 x_evo_rec.EVENT_TYPE_CODE := FND_API.g_miss_char;
4976 x_evo_rec.EVENT_DELIVERY_METHOD_ID := FND_API.g_miss_num;
4977 x_evo_rec.EVENT_DELIVERY_METHOD_CODE := FND_API.g_miss_char;
4978 x_evo_rec.EVENT_REQUIRED_FLAG := FND_API.g_miss_char;
4979 x_evo_rec.EVENT_LANGUAGE_CODE := FND_API.g_miss_char;
4980 x_evo_rec.EVENT_LOCATION_ID := FND_API.g_miss_num;
4981 x_evo_rec.CITY := FND_API.g_miss_char;
4982 x_evo_rec.STATE := FND_API.g_miss_char;
4983 x_evo_rec.PROVINCE := FND_API.g_miss_char;
4984 x_evo_rec.COUNTRY := FND_API.g_miss_char;
4985 x_evo_rec.OVERFLOW_FLAG := FND_API.g_miss_char;
4986 x_evo_rec.PARTNER_FLAG := FND_API.g_miss_char;
4987 x_evo_rec.EVENT_STANDALONE_FLAG := FND_API.g_miss_char;
4988 x_evo_rec.REG_FROZEN_FLAG := FND_API.g_miss_char;
4989 x_evo_rec.REG_REQUIRED_FLAG := FND_API.g_miss_char;
4990 x_evo_rec.REG_CHARGE_FLAG := FND_API.g_miss_char;
4991 x_evo_rec.REG_INVITED_ONLY_FLAG := FND_API.g_miss_char;
4992 x_evo_rec.REG_WAITLIST_ALLOWED_FLAG := FND_API.g_miss_char;
4993 x_evo_rec.REG_OVERBOOK_ALLOWED_FLAG := FND_API.g_miss_char;
4994 x_evo_rec.PARENT_EVENT_OFFER_ID := FND_API.g_miss_num;
4995 x_evo_rec.EVENT_DURATION := FND_API.g_miss_num;
4996 x_evo_rec.EVENT_DURATION_UOM_CODE := FND_API.g_miss_char;
4997 x_evo_rec.EVENT_START_DATE := FND_API.g_miss_date;
4998 x_evo_rec.EVENT_START_DATE_TIME := FND_API.g_miss_date;
4999 x_evo_rec.EVENT_END_DATE := FND_API.g_miss_date;
5000 x_evo_rec.EVENT_END_DATE_TIME := FND_API.g_miss_date;
5001 x_evo_rec.REG_START_DATE := FND_API.g_miss_date;
5002 x_evo_rec.REG_START_TIME := FND_API.g_miss_date;
5003 x_evo_rec.REG_END_DATE := FND_API.g_miss_date;
5004 x_evo_rec.REG_END_TIME := FND_API.g_miss_date;
5005 x_evo_rec.REG_MAXIMUM_CAPACITY := FND_API.g_miss_num;
5006 x_evo_rec.REG_OVERBOOK_PCT := FND_API.g_miss_num;
5007 x_evo_rec.REG_EFFECTIVE_CAPACITY := FND_API.g_miss_num;
5008 x_evo_rec.REG_WAITLIST_PCT := FND_API.g_miss_num;
5009 x_evo_rec.REG_MINIMUM_CAPACITY := FND_API.g_miss_num;
5010 x_evo_rec.REG_MINIMUM_REQ_BY_DATE := FND_API.g_miss_date;
5011 x_evo_rec.INVENTORY_ITEM_ID := FND_API.g_miss_num;
5012 x_evo_rec.INVENTORY_ITEM := FND_API.g_miss_char;
5013 x_evo_rec.ORGANIZATION_ID := FND_API.g_miss_num;
5014 x_evo_rec.PRICELIST_HEADER_ID := FND_API.g_miss_num;
5015 x_evo_rec.PRICELIST_LINE_ID := FND_API.g_miss_num;
5016 x_evo_rec.ORG_ID := FND_API.g_miss_num;
5017 x_evo_rec.WAITLIST_ACTION_TYPE_CODE := FND_API.g_miss_char;
5018 x_evo_rec.STREAM_TYPE_CODE := FND_API.g_miss_char;
5019 x_evo_rec.OWNER_USER_ID := FND_API.g_miss_num;
5020 x_evo_rec.EVENT_FULL_FLAG := FND_API.g_miss_char;
5021 x_evo_rec.FORECASTED_REVENUE := FND_API.g_miss_num;
5022 x_evo_rec.ACTUAL_REVENUE := FND_API.g_miss_num;
5023 x_evo_rec.FORECASTED_COST := FND_API.g_miss_num;
5024 x_evo_rec.ACTUAL_COST := FND_API.g_miss_num;
5025 x_evo_rec.FUND_SOURCE_TYPE_CODE := FND_API.g_miss_char;
5026 x_evo_rec.FUND_SOURCE_ID := FND_API.g_miss_num;
5027 x_evo_rec.CERT_CREDIT_TYPE_CODE := FND_API.g_miss_char;
5028 x_evo_rec.CERTIFICATION_CREDITS := FND_API.g_miss_num;
5029 x_evo_rec.COORDINATOR_ID := FND_API.g_miss_num;
5030 x_evo_rec.PRIORITY_TYPE_CODE := FND_API.g_miss_char;
5031 x_evo_rec.CANCELLATION_REASON_CODE := FND_API.g_miss_char;
5032 x_evo_rec.AUTO_REGISTER_FLAG := FND_API.g_miss_char;
5033 x_evo_rec.EMAIL := FND_API.g_miss_char;
5034 x_evo_rec.PHONE := FND_API.g_miss_char;
5035 x_evo_rec.FUND_AMOUNT_TC := FND_API.g_miss_num;
5036 x_evo_rec.FUND_AMOUNT_FC := FND_API.g_miss_num;
5037 x_evo_rec.CURRENCY_CODE_TC := FND_API.g_miss_char;
5038 x_evo_rec.CURRENCY_CODE_FC := FND_API.g_miss_char;
5039 x_evo_rec.URL := FND_API.g_miss_char;
5040 x_evo_rec.TIMEZONE_ID := FND_API.g_miss_num;
5041 x_evo_rec.EVENT_VENUE_ID := FND_API.g_miss_num;
5042 x_evo_rec.PRICELIST_HEADER_CURRENCY_CODE := FND_API.g_miss_char;
5043 x_evo_rec.PRICELIST_LIST_PRICE := FND_API.g_miss_num;
5044 x_evo_rec.INBOUND_SCRIPT_NAME := FND_API.g_miss_char;
5045 x_evo_rec.ATTRIBUTE_CATEGORY := FND_API.g_miss_char;
5046 x_evo_rec.ATTRIBUTE1 := FND_API.g_miss_char;
5047 x_evo_rec.ATTRIBUTE2 := FND_API.g_miss_char;
5048 x_evo_rec.ATTRIBUTE3 := FND_API.g_miss_char;
5049 x_evo_rec.ATTRIBUTE4 := FND_API.g_miss_char;
5050 x_evo_rec.ATTRIBUTE5 := FND_API.g_miss_char;
5051 x_evo_rec.ATTRIBUTE6 := FND_API.g_miss_char;
5052 x_evo_rec.ATTRIBUTE7 := FND_API.g_miss_char;
5053 x_evo_rec.ATTRIBUTE8 := FND_API.g_miss_char;
5054 x_evo_rec.ATTRIBUTE9 := FND_API.g_miss_char;
5055 x_evo_rec.ATTRIBUTE10 := FND_API.g_miss_char;
5056 x_evo_rec.ATTRIBUTE11 := FND_API.g_miss_char;
5057 x_evo_rec.ATTRIBUTE12 := FND_API.g_miss_char;
5058 x_evo_rec.ATTRIBUTE13 := FND_API.g_miss_char;
5059 x_evo_rec.ATTRIBUTE14 := FND_API.g_miss_char;
5060 x_evo_rec.ATTRIBUTE15 := FND_API.g_miss_char;
5061 x_evo_rec.EVENT_OFFER_NAME := FND_API.g_miss_char;
5062 x_evo_rec.EVENT_MKTG_MESSAGE := FND_API.g_miss_char;
5063 x_evo_rec.DESCRIPTION := FND_API.g_miss_char;
5064 x_evo_rec.CUSTOM_SETUP_ID := FND_API.g_miss_num;
5065 x_evo_rec.COUNTRY_CODE := FND_API.g_miss_char;
5066 x_evo_rec.BUSINESS_UNIT_ID := FND_API.g_miss_num;
5067 x_evo_rec.EVENT_CALENDAR := FND_API.g_miss_char;
5068 x_evo_rec.START_PERIOD_NAME := FND_API.g_miss_char;
5069 x_evo_rec.END_PERIOD_NAME := FND_API.g_miss_char;
5070 x_evo_rec.GLOBAL_FLAG := FND_API.g_miss_char;
5071 x_evo_rec.task_id := FND_API.g_miss_num;
5072 x_evo_rec.parent_id := FND_API.g_miss_num;
5073 x_evo_rec.parent_type := FND_API.g_miss_char;
5074 x_evo_rec.CREATE_ATTENDANT_LEAD_FLAG := FND_API.g_miss_char; /*hornet*/
5075 x_evo_rec.CREATE_REGISTRANT_LEAD_FLAG := FND_API.g_miss_char;/*hornet*/
5076 x_evo_rec.event_object_type := FND_API.g_miss_char;/*hornet*/
5077 x_evo_rec.REG_TIMEZONE_ID := FND_API.g_miss_num; /*hornet */
5078 x_evo_rec.event_password := FND_API.g_miss_char;/* Hornet : added for imeeting integration*/
5079 x_evo_rec.record_event_flag := FND_API.g_miss_char; /* Hornet : added for imeeting integration*/
5080 x_evo_rec.allow_register_in_middle_flag := FND_API.g_miss_char; /* Hornet : added for imeeting integration*/
5081 x_evo_rec.publish_attendees_flag := FND_API.g_miss_char;/* Hornet : added for imeeting integration*/
5082 x_evo_rec.direct_join_flag := FND_API.g_miss_char; /* Hornet : added for imeeting integration*/
5083 x_evo_rec.event_notification_method := FND_API.g_miss_char; /* Hornet : added for imeeting integration*/
5084 x_evo_rec.actual_start_time := FND_API.g_miss_date; /* Hornet : added for imeeting integration*/
5085 x_evo_rec.actual_end_time := FND_API.g_miss_date;/* Hornet : added for imeeting integration*/
5086 x_evo_rec.server_id := FND_API.g_miss_NUM;/* Hornet : added for imeeting integration*/
5087 x_evo_rec.owner_fnd_user_id := FND_API.g_miss_NUM;/* Hornet : added for imeeting integration aug13*/
5088 x_evo_rec.meeting_dial_in_info := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5089 x_evo_rec.meeting_email_subject := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5090 x_evo_rec.meeting_schedule_type := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5091 x_evo_rec.meeting_status := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5092 x_evo_rec.meeting_misc_info := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5093 x_evo_rec.publish_flag := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5094 x_evo_rec.meeting_encryption_key_code := FND_API.g_miss_char; /* Hornet : added for imeeting integration aug13*/
5095 x_evo_rec.number_of_attendees := FND_API.g_miss_NUM;/* Hornet : added for imeeting integration aug13*/
5096 x_evo_rec.event_purpose_code := FND_API.g_miss_char;/* Hornet : added aug13*/
5097 END init_evo_rec;
5098
5099
5100 ---------------------------------------------------------------------
5101 -- PROCEDURE
5102 -- complete_evo_rec
5103 --
5104 -- HISTORY
5105 -- 11/23/1999 sugupta Created.
5106 -- 01/27/2000 gdeodhar Added event_header_id copy to complete_rec.
5107 -- 01/27/2000 gdeodhar Added application_id copy to complete_rec.
5108 ---------------------------------------------------------------------
5109 PROCEDURE complete_evo_rec(
5110 p_evo_rec IN evo_rec_type,
5111 x_complete_rec OUT NOCOPY evo_rec_type
5112 )
5113 IS
5114
5115 CURSOR c_evo IS
5116 SELECT *
5117 FROM ams_event_offers_vl
5118 WHERE event_offer_id = p_evo_rec.event_offer_id;
5119
5120 CURSOR c_location(loc_id IN NUMBER) IS
5121 SELECT city, state, country
5122 FROM hz_locations
5123 WHERE location_id = loc_id;
5124
5125 l_evo_rec c_evo%ROWTYPE;
5126 l_city VARCHAR2(60);
5127 l_state VARCHAR2(60);
5128 l_country VARCHAR2(60);
5129
5130 BEGIN
5131 IF (AMS_DEBUG_HIGH_ON) THEN
5132
5133 AMS_UTILITY_PVT.debug_message('complete_evo_rec :'|| p_evo_rec.event_offer_id);
5134 END IF;
5135
5136 x_complete_rec := p_evo_rec;
5137
5138 OPEN c_evo;
5139 FETCH c_evo INTO l_evo_rec;
5140 IF c_evo%NOTFOUND THEN
5141 CLOSE c_evo;
5142 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
5143 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
5144 FND_MSG_PUB.add;
5145 END IF;
5146 RAISE FND_API.g_exc_error;
5147 END IF;
5148 CLOSE c_evo;
5149
5150 IF l_evo_rec.event_location_id IS NOT NULL THEN
5151 OPEN c_location(l_evo_rec.event_location_id);
5152 FETCH c_location INTO l_city, l_state, l_country;
5153 IF c_location%NOTFOUND THEN
5154 CLOSE c_location;
5155 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
5156 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
5157 FND_MSG_PUB.add;
5158 END IF;
5159 RAISE FND_API.g_exc_error;
5160 END IF;
5161 CLOSE c_location;
5162 END IF;
5163
5164 -- This procedure should complete the record by going through all the items in the incoming record.
5165 -- adding code to complete setup_type_id ( custom_setup_id in evo_rec)
5166 IF p_evo_rec.custom_setup_id = FND_API.g_miss_num THEN
5167 x_complete_rec.custom_setup_id := l_evo_rec.setup_type_id;
5168 END IF;
5169
5170 IF p_evo_rec.created_by = FND_API.g_miss_num THEN
5171 x_complete_rec.created_by := l_evo_rec.created_by;
5172 END IF;
5173
5174 IF p_evo_rec.event_level = FND_API.g_miss_char THEN
5175 x_complete_rec.event_level := l_evo_rec.event_level;
5176 END IF;
5177
5178 IF p_evo_rec.event_type_code = FND_API.g_miss_char THEN
5179 x_complete_rec.event_type_code := l_evo_rec.event_type_code;
5180 END IF;
5181
5182 IF p_evo_rec.active_flag = FND_API.g_miss_char THEN
5183 x_complete_rec.active_flag := l_evo_rec.active_flag;
5184 END IF;
5185
5186 IF p_evo_rec.private_flag = FND_API.g_miss_char THEN
5187 x_complete_rec.private_flag := l_evo_rec.private_flag;
5188 END IF;
5189
5190 IF p_evo_rec.user_status_id = FND_API.g_miss_num THEN
5191 x_complete_rec.user_status_id := l_evo_rec.user_status_id;
5192 END IF;
5193 -- IF p_evo_rec.event_delivery_method_code = FND_API.g_miss_char THEN
5194 -- x_complete_rec.event_delivery_method_code := l_evo_rec.event_delivery_method_code;
5195 -- END IF;
5196
5197 if p_evo_rec.event_required_flag = fnd_api.g_miss_char then
5198 x_complete_rec.event_required_flag := l_evo_rec.event_required_flag;
5199 END IF;
5200 if p_evo_rec.event_language_code = fnd_api.g_miss_char then
5201 x_complete_rec.event_language_code := l_evo_rec.event_language_code;
5202 END IF;
5203
5204 if p_evo_rec.event_location_id = fnd_api.g_miss_num then
5205 x_complete_rec.event_location_id := l_evo_rec.event_location_id;
5206 end if;
5207 IF p_evo_rec.system_status_code = FND_API.g_miss_char THEN
5208 x_complete_rec.system_status_code := l_evo_rec.system_status_code;
5209 END IF;
5210
5211 --IF p_evo_rec.last_status_date = FND_API.g_miss_date THEN
5212 -- x_complete_rec.last_status_date := l_evo_rec.last_status_date;
5213 --END IF;
5214
5215 IF p_evo_rec.last_status_date = FND_API.g_miss_date
5216 OR p_evo_rec.last_status_date IS NULL
5217 THEN
5218 IF p_evo_rec.user_status_id = l_evo_rec.user_status_id THEN
5219 -- no status change, set it to be the original value
5220 x_complete_rec.last_status_date := l_evo_rec.last_status_date;
5221 ELSE
5222 -- status changed, set it to be SYSDATE
5223 x_complete_rec.last_status_date := SYSDATE;
5224 END IF;
5225 END IF;
5226
5227 IF p_evo_rec.stream_type_code = FND_API.g_miss_char THEN
5228 x_complete_rec.stream_type_code := l_evo_rec.stream_type_code;
5229 END IF;
5230
5231 IF p_evo_rec.source_code = FND_API.g_miss_char THEN
5232 x_complete_rec.source_code := l_evo_rec.source_code;
5233 END IF;
5234
5235 IF p_evo_rec.event_standalone_flag = FND_API.g_miss_char THEN
5236 x_complete_rec.event_standalone_flag := l_evo_rec.event_standalone_flag;
5237 END IF;
5238 if p_evo_rec.reg_frozen_flag = fnd_api.g_miss_char then
5239 x_complete_rec.reg_frozen_flag := l_evo_rec.reg_frozen_flag;
5240 END IF;
5241 IF p_evo_rec.reg_required_flag = FND_API.g_miss_char THEN
5242 x_complete_rec.reg_required_flag := l_evo_rec.reg_required_flag;
5243 END IF;
5244 if p_evo_rec.reg_waitlist_allowed_flag = fnd_api.g_miss_char then
5245 x_complete_rec.reg_waitlist_allowed_flag := l_evo_rec.reg_waitlist_allowed_flag;
5246 END IF;
5247 if p_evo_rec.reg_overbook_allowed_flag = fnd_api.g_miss_char then
5248 x_complete_rec.reg_overbook_allowed_flag := l_evo_rec.reg_overbook_allowed_flag;
5249 END IF;
5250 IF p_evo_rec.reg_charge_flag = FND_API.g_miss_char THEN
5251 x_complete_rec.reg_charge_flag := l_evo_rec.reg_charge_flag;
5252 END IF;
5253
5254 IF p_evo_rec.reg_invited_only_flag = FND_API.g_miss_char THEN
5255 x_complete_rec.reg_invited_only_flag := l_evo_rec.reg_invited_only_flag;
5256 END IF;
5257
5258 IF p_evo_rec.partner_flag = FND_API.g_miss_char THEN
5259 x_complete_rec.partner_flag := l_evo_rec.partner_flag;
5260 END IF;
5261 IF p_evo_rec.overflow_flag = FND_API.g_miss_char THEN
5262 x_complete_rec.overflow_flag := l_evo_rec.overflow_flag;
5263 END IF;
5264 IF p_evo_rec.parent_event_offer_id = FND_API.g_miss_num THEN
5265 x_complete_rec.parent_event_offer_id := l_evo_rec.parent_event_offer_id;
5266 END IF;
5267
5268 IF p_evo_rec.event_duration = FND_API.g_miss_num THEN
5269 x_complete_rec.event_duration := l_evo_rec.event_duration;
5270 END IF;
5271
5272 IF p_evo_rec.event_duration_uom_code = FND_API.g_miss_char THEN
5273 x_complete_rec.event_duration_uom_code := l_evo_rec.event_duration_uom_code;
5274 END IF;
5275
5276 IF p_evo_rec.event_start_date = FND_API.g_miss_date THEN
5277 x_complete_rec.event_start_date := l_evo_rec.event_start_date;
5278 END IF;
5279 if p_evo_rec.event_start_date_time = fnd_api.g_miss_date then
5280 x_complete_rec.event_start_date_time := l_evo_rec.event_start_date_time;
5281 END IF;
5282 if p_evo_rec.event_end_date = fnd_api.g_miss_date then
5283 x_complete_rec.event_end_date := l_evo_rec.event_end_date;
5284 END IF;
5285 if p_evo_rec.event_end_date_time = fnd_api.g_miss_date then
5286 x_complete_rec.event_end_date_time := l_evo_rec.event_end_date_time;
5287 end if;
5288 IF p_evo_rec.REG_START_DATE = FND_API.g_miss_date THEN
5289 x_complete_rec.REG_START_DATE := l_evo_rec.REG_START_DATE;
5290 END IF;
5291 if p_evo_rec.REG_START_TIME = fnd_api.g_miss_date then
5292 x_complete_rec.REG_START_TIME := l_evo_rec.REG_START_TIME;
5293 END IF;
5294 if p_evo_rec.REG_END_DATE = fnd_api.g_miss_date then
5295 x_complete_rec.REG_END_DATE := l_evo_rec.REG_END_DATE;
5296 END IF;
5297 if p_evo_rec.REG_END_TIME = fnd_api.g_miss_date then
5298 x_complete_rec.REG_END_TIME := l_evo_rec.REG_END_TIME;
5299 end if;
5300 IF p_evo_rec.reg_maximum_capacity = FND_API.g_miss_num THEN
5301 x_complete_rec.reg_maximum_capacity := l_evo_rec.reg_maximum_capacity;
5302 END IF;
5303
5304 IF p_evo_rec.reg_minimum_capacity = FND_API.g_miss_num THEN
5305 x_complete_rec.reg_minimum_capacity := l_evo_rec.reg_minimum_capacity;
5306 END IF;
5307 IF p_evo_rec.REG_OVERBOOK_PCT = FND_API.g_miss_num THEN
5308 x_complete_rec.REG_OVERBOOK_PCT := l_evo_rec.REG_OVERBOOK_PCT;
5309 END IF;
5310 IF p_evo_rec.REG_EFFECTIVE_CAPACITY = FND_API.g_miss_num THEN
5311 x_complete_rec.REG_EFFECTIVE_CAPACITY := l_evo_rec.REG_EFFECTIVE_CAPACITY;
5312 END IF;
5313 IF p_evo_rec.REG_WAITLIST_PCT = FND_API.g_miss_num THEN
5314 x_complete_rec.REG_WAITLIST_PCT := l_evo_rec.REG_WAITLIST_PCT;
5315 END IF;
5316 IF p_evo_rec.REG_MINIMUM_REQ_BY_DATE = FND_API.g_miss_date THEN
5317 x_complete_rec.REG_MINIMUM_REQ_BY_DATE := l_evo_rec.REG_MINIMUM_REQ_BY_DATE;
5318 END IF;
5319 IF p_evo_rec.event_language_code = FND_API.g_miss_char THEN
5320 x_complete_rec.event_language_code := l_evo_rec.event_language_code;
5321 END IF;
5322
5323 IF p_evo_rec.cert_credit_type_code = FND_API.g_miss_char THEN
5324 x_complete_rec.cert_credit_type_code := l_evo_rec.cert_credit_type_code;
5325 END IF;
5326
5327 IF p_evo_rec.certification_credits = FND_API.g_miss_num THEN
5328 x_complete_rec.certification_credits := l_evo_rec.certification_credits;
5329 END IF;
5330
5331 IF p_evo_rec.inventory_item_id = FND_API.g_miss_num THEN
5332 x_complete_rec.inventory_item_id := l_evo_rec.inventory_item_id;
5333 END IF;
5334 IF p_evo_rec.organization_id = fnd_api.g_miss_num then
5335 x_complete_rec.organization_id := l_evo_rec.organization_id;
5336 END IF;
5337 IF p_evo_rec.PRICELIST_LINE_ID = FND_API.g_miss_num THEN
5338 x_complete_rec.PRICELIST_LINE_ID := l_evo_rec.PRICELIST_LINE_ID;
5339 END IF;
5340 IF p_evo_rec.PRICELIST_HEADER_ID = FND_API.g_miss_num THEN
5341 x_complete_rec.PRICELIST_HEADER_ID := l_evo_rec.PRICELIST_HEADER_ID;
5342 END IF;
5343 IF p_evo_rec.WAITLIST_ACTION_TYPE_CODE = FND_API.g_miss_char THEN
5344 x_complete_rec.WAITLIST_ACTION_TYPE_CODE := l_evo_rec.WAITLIST_ACTION_TYPE_CODE;
5345 END IF;
5346 IF p_evo_rec.EVENT_FULL_FLAG = FND_API.g_miss_char THEN
5347 x_complete_rec.EVENT_FULL_FLAG := l_evo_rec.EVENT_FULL_FLAG;
5348 END IF;
5349 IF p_evo_rec.AUTO_REGISTER_FLAG = FND_API.g_miss_char THEN
5350 x_complete_rec.AUTO_REGISTER_FLAG := l_evo_rec.AUTO_REGISTER_FLAG;
5351 END IF;
5352 IF p_evo_rec.forecasted_revenue = FND_API.g_miss_num THEN
5353 x_complete_rec.forecasted_revenue := l_evo_rec.forecasted_revenue;
5354 END IF;
5355
5356 IF p_evo_rec.actual_revenue = FND_API.g_miss_num THEN
5357 x_complete_rec.actual_revenue := l_evo_rec.actual_revenue;
5358 END IF;
5359
5360 IF p_evo_rec.forecasted_cost = FND_API.g_miss_num THEN
5361 x_complete_rec.forecasted_cost := l_evo_rec.forecasted_cost;
5362 END IF;
5363
5364 IF p_evo_rec.actual_cost = FND_API.g_miss_num THEN
5365 x_complete_rec.actual_cost := l_evo_rec.actual_cost;
5366 END IF;
5367
5368 IF p_evo_rec.coordinator_id = FND_API.g_miss_num THEN
5369 x_complete_rec.coordinator_id := l_evo_rec.coordinator_id;
5370 END IF;
5371
5372 IF p_evo_rec.fund_source_type_code = FND_API.g_miss_char THEN
5373 x_complete_rec.fund_source_type_code := l_evo_rec.fund_source_type_code;
5374 END IF;
5375
5376 IF p_evo_rec.fund_source_id = FND_API.g_miss_num THEN
5377 x_complete_rec.fund_source_id := l_evo_rec.fund_source_id;
5378 END IF;
5379
5380 IF p_evo_rec.owner_user_id = FND_API.g_miss_num THEN
5381 x_complete_rec.owner_user_id := l_evo_rec.owner_user_id;
5382 END IF;
5383
5384 IF p_evo_rec.url = FND_API.g_miss_char THEN
5385 x_complete_rec.url := l_evo_rec.url;
5386 END IF;
5387
5388 IF p_evo_rec.email = FND_API.g_miss_char THEN
5389 x_complete_rec.email := l_evo_rec.email;
5390 END IF;
5391
5392 IF p_evo_rec.phone = FND_API.g_miss_char THEN
5393 x_complete_rec.phone := l_evo_rec.phone;
5394 END IF;
5395
5396 IF p_evo_rec.fund_amount_tc = FND_API.g_miss_num THEN
5397 x_complete_rec.fund_amount_tc := l_evo_rec.fund_amount_tc;
5398 END IF;
5399
5400 IF p_evo_rec.fund_amount_fc = FND_API.g_miss_num THEN
5401 x_complete_rec.fund_amount_fc := l_evo_rec.fund_amount_fc;
5402 END IF;
5403
5404 IF p_evo_rec.currency_code_tc = FND_API.g_miss_char THEN
5405 x_complete_rec.currency_code_tc := l_evo_rec.currency_code_tc;
5406 END IF;
5407
5408 IF p_evo_rec.currency_code_fc = FND_API.g_miss_char THEN
5409 x_complete_rec.currency_code_fc := l_evo_rec.currency_code_fc;
5410 END IF;
5411
5412 IF p_evo_rec.TIMEZONE_ID = FND_API.g_miss_num THEN
5413 x_complete_rec.TIMEZONE_ID := l_evo_rec.TIMEZONE_ID;
5414 END IF;
5415 IF p_evo_rec.event_venue_id = FND_API.g_miss_num THEN
5416 x_complete_rec.event_venue_id := l_evo_rec.event_venue_id;
5417 END IF;
5418 IF p_evo_rec.priority_type_code = FND_API.g_miss_char THEN
5419 x_complete_rec.priority_type_code := l_evo_rec.priority_type_code;
5420 END IF;
5421
5422 IF p_evo_rec.cancellation_reason_code = FND_API.g_miss_char THEN
5423 x_complete_rec.cancellation_reason_code := l_evo_rec.cancellation_reason_code;
5424 END IF;
5425
5426 IF p_evo_rec.inbound_script_name = FND_API.g_miss_char THEN
5427 x_complete_rec.inbound_script_name := l_evo_rec.inbound_script_name;
5428 END IF;
5429
5430 IF p_evo_rec.attribute_category = FND_API.g_miss_char THEN
5431 x_complete_rec.attribute_category := l_evo_rec.attribute_category;
5432 END IF;
5433
5434 IF p_evo_rec.attribute1 = FND_API.g_miss_char THEN
5435 x_complete_rec.attribute1 := l_evo_rec.attribute1;
5436 END IF;
5437
5438 IF p_evo_rec.attribute2 = FND_API.g_miss_char THEN
5439 x_complete_rec.attribute2 := l_evo_rec.attribute2;
5440 END IF;
5441
5442 IF p_evo_rec.attribute3 = FND_API.g_miss_char THEN
5443 x_complete_rec.attribute3 := l_evo_rec.attribute3;
5444 END IF;
5445
5446 IF p_evo_rec.attribute4 = FND_API.g_miss_char THEN
5447 x_complete_rec.attribute4 := l_evo_rec.attribute4;
5448 END IF;
5449
5450 IF p_evo_rec.attribute5 = FND_API.g_miss_char THEN
5451 x_complete_rec.attribute5 := l_evo_rec.attribute5;
5452 END IF;
5453
5454 IF p_evo_rec.attribute6 = FND_API.g_miss_char THEN
5455 x_complete_rec.attribute6 := l_evo_rec.attribute6;
5456 END IF;
5457
5458 IF p_evo_rec.attribute7 = FND_API.g_miss_char THEN
5459 x_complete_rec.attribute7 := l_evo_rec.attribute7;
5460 END IF;
5461
5462 IF p_evo_rec.attribute8 = FND_API.g_miss_char THEN
5463 x_complete_rec.attribute8 := l_evo_rec.attribute8;
5464 END IF;
5465
5466 IF p_evo_rec.attribute9 = FND_API.g_miss_char THEN
5467 x_complete_rec.attribute9 := l_evo_rec.attribute9;
5468 END IF;
5469
5470 IF p_evo_rec.attribute10 = FND_API.g_miss_char THEN
5471 x_complete_rec.attribute10 := l_evo_rec.attribute10;
5472 END IF;
5473
5474 IF p_evo_rec.attribute11 = FND_API.g_miss_char THEN
5475 x_complete_rec.attribute11 := l_evo_rec.attribute11;
5476 END IF;
5477
5478 IF p_evo_rec.attribute12 = FND_API.g_miss_char THEN
5479 x_complete_rec.attribute12 := l_evo_rec.attribute12;
5480 END IF;
5481
5482 IF p_evo_rec.attribute13 = FND_API.g_miss_char THEN
5483 x_complete_rec.attribute13 := l_evo_rec.attribute13;
5484 END IF;
5485
5486 IF p_evo_rec.attribute14 = FND_API.g_miss_char THEN
5487 x_complete_rec.attribute14 := l_evo_rec.attribute14;
5488 END IF;
5489
5490 IF p_evo_rec.attribute15 = FND_API.g_miss_char THEN
5491 x_complete_rec.attribute15 := l_evo_rec.attribute15;
5492 END IF;
5493
5494 IF p_evo_rec.event_offer_name = FND_API.g_miss_char THEN
5495 x_complete_rec.event_offer_name := l_evo_rec.event_offer_name;
5496 END IF;
5497
5498 IF p_evo_rec.event_mktg_message = FND_API.g_miss_char THEN
5499 x_complete_rec.event_mktg_message := l_evo_rec.event_mktg_message;
5500 END IF;
5501
5502 IF p_evo_rec.description = FND_API.g_miss_char THEN
5503 x_complete_rec.description := l_evo_rec.description;
5504 END IF;
5505
5506 -- gdeodhar : Added the following. As when we update the event offer agenda
5507 -- records, we may not pass the event_header_id.
5508 IF p_evo_rec.event_header_id = FND_API.g_miss_num THEN
5509 x_complete_rec.event_header_id := l_evo_rec.event_header_id;
5510 END IF;
5511 -- gdeodhar. Added the following.
5512 IF p_evo_rec.application_id = FND_API.g_miss_num THEN
5513 x_complete_rec.application_id := l_evo_rec.application_id;
5514 END IF;
5515
5516 -- gdeodhar : added the following to support the new fields.
5517 IF p_evo_rec.country_code = FND_API.g_miss_char THEN
5518 x_complete_rec.country_code := l_evo_rec.country_code;
5519 END IF;
5520 -- added by murali for location
5521 IF p_evo_rec.country = FND_API.g_miss_char THEN
5522 x_complete_rec.country := l_country;
5523 END IF;
5524 IF p_evo_rec.city = FND_API.g_miss_char THEN
5525 x_complete_rec.city := l_city;
5526 END IF;
5527 IF p_evo_rec.state = FND_API.g_miss_char THEN
5528 x_complete_rec.state := l_state;
5529 END IF;
5530
5531 IF p_evo_rec.business_unit_id = FND_API.g_miss_num THEN
5532 x_complete_rec.business_unit_id := l_evo_rec.business_unit_id;
5533 END IF;
5534 -- sugupta added calendar fields
5535 IF p_evo_rec.event_calendar = FND_API.g_miss_char THEN
5536 x_complete_rec.event_calendar := FND_PROFILE.value('AMS_CAMPAIGN_DEFAULT_CALENDER');
5537 END IF;
5538
5539 IF p_evo_rec.start_period_name = FND_API.g_miss_char THEN
5540 x_complete_rec.start_period_name := l_evo_rec.start_period_name;
5541 END IF;
5542
5543 IF p_evo_rec.end_period_name = FND_API.g_miss_char THEN
5544 x_complete_rec.end_period_name := l_evo_rec.end_period_name;
5545 END IF;
5546
5547 IF p_evo_rec.global_flag = FND_API.g_miss_char THEN
5548 x_complete_rec.global_flag := l_evo_rec.global_flag;
5549 END IF;
5550
5551 IF p_evo_rec.task_id = FND_API.g_miss_num THEN
5552 x_complete_rec.task_id := l_evo_rec.task_id;
5553 END IF;
5554 IF p_evo_rec.parent_id = FND_API.g_miss_num THEN
5555 x_complete_rec.parent_id := l_evo_rec.parent_id;
5556 END IF;
5557 IF p_evo_rec.parent_type = FND_API.g_miss_char THEN
5558 x_complete_rec.parent_type := l_evo_rec.parent_type;
5559 END IF;
5560 IF p_evo_rec.CREATE_ATTENDANT_LEAD_FLAG = FND_API.g_miss_char THEN
5561 x_complete_rec.CREATE_ATTENDANT_LEAD_FLAG := l_evo_rec.CREATE_ATTENDANT_LEAD_FLAG;
5562 END IF;
5563 IF p_evo_rec.CREATE_REGISTRANT_LEAD_FLAG = FND_API.g_miss_char THEN
5564 x_complete_rec.CREATE_REGISTRANT_LEAD_FLAG := l_evo_rec.CREATE_REGISTRANT_LEAD_FLAG;
5565 END IF;
5566 IF p_evo_rec.event_object_type = FND_API.g_miss_char THEN
5567 x_complete_rec.event_object_type := l_evo_rec.event_object_type;
5568 END IF;
5569 IF p_evo_rec.REG_TIMEZONE_ID = FND_API.g_miss_num THEN
5570 x_complete_rec.REG_TIMEZONE_ID := l_evo_rec.REG_TIMEZONE_ID;
5571 END IF;
5572
5573 IF p_evo_rec.event_password = FND_API.g_miss_char THEN
5574 x_complete_rec.event_password := l_evo_rec.event_password;/* Hornet : added for imeeting integration*/
5575 END IF;
5576
5577 IF p_evo_rec.record_event_flag = FND_API.g_miss_char THEN
5578 x_complete_rec.record_event_flag := l_evo_rec.record_event_flag;/* Hornet : added for imeeting integration*/
5579 END IF;
5580
5581 IF p_evo_rec.allow_register_in_middle_flag = FND_API.g_miss_char THEN
5582 x_complete_rec.allow_register_in_middle_flag := l_evo_rec.allow_register_in_middle_flag;/* Hornet : added for imeeting integration*/
5583 END IF;
5584
5585 IF p_evo_rec.publish_attendees_flag = FND_API.g_miss_char THEN
5586 x_complete_rec.publish_attendees_flag := l_evo_rec.publish_attendees_flag;/* Hornet : added for imeeting integration*/
5587 END IF;
5588
5589 IF p_evo_rec.direct_join_flag = FND_API.g_miss_char THEN
5590 x_complete_rec.direct_join_flag := l_evo_rec.direct_join_flag;/* Hornet : added for imeeting integration*/
5591 END IF;
5592
5593 IF p_evo_rec.event_notification_method = FND_API.g_miss_char THEN
5594 x_complete_rec.event_notification_method := l_evo_rec.event_notification_method;/* Hornet : added for imeeting integration*/
5595 END IF;
5596
5597 IF p_evo_rec.actual_start_time = FND_API.g_miss_date THEN
5598 x_complete_rec.actual_start_time := l_evo_rec.actual_start_time;/* Hornet : added for imeeting integration*/
5599 END IF;
5600
5601 IF p_evo_rec.actual_end_time = FND_API.g_miss_date THEN
5602 x_complete_rec.actual_end_time := l_evo_rec.actual_end_time;/* Hornet : added for imeeting integration*/
5603 END IF;
5604
5605 IF p_evo_rec.server_id = FND_API.g_miss_num THEN
5606 x_complete_rec.server_id := l_evo_rec.server_id;/* Hornet : added for imeeting integration*/
5607 END IF;
5608
5609 IF p_evo_rec.owner_fnd_user_id = FND_API.g_miss_NUM THEN
5610 x_complete_rec.owner_fnd_user_id := l_evo_rec.owner_fnd_user_id;/* Hornet : added for imeeting integration aug13*/
5611 END IF;
5612 IF p_evo_rec.meeting_dial_in_info = FND_API.g_miss_char THEN
5613 x_complete_rec.meeting_dial_in_info := l_evo_rec.meeting_dial_in_info; /* Hornet : added for imeeting integration aug13*/
5614 END IF;
5615 IF p_evo_rec.meeting_email_subject = FND_API.g_miss_char THEN
5616 x_complete_rec.meeting_email_subject := l_evo_rec.meeting_email_subject; /* Hornet : added for imeeting integration aug13*/
5617 END IF;
5618 IF p_evo_rec.meeting_schedule_type = FND_API.g_miss_char THEN
5619 x_complete_rec.meeting_schedule_type := l_evo_rec.meeting_schedule_type; /* Hornet : added for imeeting integration aug13*/
5620 END IF;
5621 IF p_evo_rec.meeting_status = FND_API.g_miss_char THEN
5622 x_complete_rec.meeting_status := l_evo_rec.meeting_status; /* Hornet : added for imeeting integration aug13*/
5623 END IF;
5624 IF p_evo_rec.meeting_misc_info = FND_API.g_miss_char THEN
5625 x_complete_rec.meeting_misc_info := l_evo_rec.meeting_misc_info; /* Hornet : added for imeeting integration aug13*/
5626 END IF;
5627 IF p_evo_rec.publish_flag = FND_API.g_miss_char THEN
5628 x_complete_rec.publish_flag := l_evo_rec.publish_flag; /* Hornet : added for imeeting integration aug13*/
5629 END IF;
5630 IF p_evo_rec.meeting_encryption_key_code = FND_API.g_miss_char THEN
5631 x_complete_rec.meeting_encryption_key_code := l_evo_rec.meeting_encryption_key_code; /* Hornet : added for imeeting integration aug13*/
5632 END IF;
5633 IF p_evo_rec.number_of_attendees = FND_API.g_miss_NUM THEN
5634 x_complete_rec.number_of_attendees := l_evo_rec.number_of_attendees;/* Hornet : added for imeeting integration aug13*/
5635 END IF;
5636 IF p_evo_rec.event_purpose_code = FND_API.g_miss_char THEN
5637 x_complete_rec.event_purpose_code := l_evo_rec.event_purpose_code; /* Hornet : added aug13*/
5638 END IF;
5639
5640 END complete_evo_rec;
5641
5642 ---------------------------------------------------------------------
5643 -- PROCEDURE
5644 -- create_inv_item
5645 --
5646 -- HISTORY
5647 -- 03/04/2000 sugupta Create.
5648 -- 07/07/2000 sugupta modified Bug 1346165- Added Exception code to print out
5649 -- an error message if inv api call returns err status
5650 ---------------------------------------------------------------------
5651 PROCEDURE create_inv_item
5652 (
5653 p_commit IN VARCHAR2 := FND_API.g_false,
5654 p_inv_item_number IN VARCHAR2,
5655 p_inv_item_desc IN VARCHAR2,
5656 p_inv_long_desc IN VARCHAR2,
5657 x_return_status OUT NOCOPY VARCHAR2,
5658 x_msg_count OUT NOCOPY NUMBER,
5659 x_msg_data OUT NOCOPY VARCHAR2,
5660 x_item_id OUT NOCOPY NUMBER,
5661 x_org_id OUT NOCOPY NUMBER
5662 )
5663 IS
5664 l_api_name CONSTANT VARCHAR2(30) := 'create_inv_item';
5665 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
5666
5667 l_commit VARCHAR2(1);
5668 l_validation_level NUMBER;
5669 l_return_status VARCHAR2(1);
5670 l_msg_count NUMBER;
5671 l_item_rec INV_Item_GRP.Item_rec_type;
5672 x_item_rec INV_Item_GRP.Item_rec_type;
5673 x_error_tbl INV_Item_GRP.Error_tbl_type;
5674 inv_item_creation_error EXCEPTION;
5675 l_err_txt VARCHAR2(4000);
5676
5677 BEGIN
5678
5679 null;
5680
5681 /*
5682 --DBMS_OUTPUT.put_line('calling INV_Item_GRP.Create_Item...');
5683 x_return_status := FND_API.g_ret_sts_success;
5684
5685 l_commit := p_commit;
5686 l_validation_level := fnd_api.g_VALID_LEVEL_FULL;
5687 l_item_rec.SEGMENT1 := p_inv_item_number;
5688 l_item_rec.ORGANIZATION_ID := FND_PROFILE.Value('AMS_ITEM_ORGANIZATION_ID');
5689 --204;
5690 l_item_rec.DESCRIPTION := p_inv_item_desc;
5691 l_item_rec.LONG_DESCRIPTION := p_inv_long_desc;
5692 l_item_rec.event_flag := 'Y';
5693 l_item_rec.ORDERABLE_ON_WEB_FLAG := 'Y';
5694 l_item_rec.CUSTOMER_ORDER_FLAG := 'Y';
5695 l_item_rec.CUSTOMER_ORDER_ENABLED_FLAG := 'Y';
5696 l_item_rec.web_status := 'PUBLISHED';
5697
5698 INV_Item_GRP.Create_Item
5699 (
5700 l_commit
5701 ,l_validation_level
5702 ,l_item_rec
5703 ,x_item_rec
5704 ,l_return_status
5705 ,x_error_tbl
5706 );
5707
5708 x_item_id := x_item_rec.inventory_item_id;
5709 x_org_id := x_item_rec.ORGANIZATION_ID;
5710
5711 x_return_status := l_return_status;
5712
5713 -- DBMS_OUTPUT.put_line('***********************************');
5714 -- DBMS_OUTPUT.put_line('Return status = ' || x_return_status);
5715 -- DBMS_OUTPUT.put_line('***********************************');
5716
5717 FOR i IN 1 .. x_error_tbl.count LOOP
5718 -- DBMS_OUTPUT.put_line('i = ' || i);
5719 -- DBMS_OUTPUT.put_line('Return err name = ' || x_error_tbl(i).message_name);
5720 -- DBMS_OUTPUT.put_line('Return err msg = ' || x_error_tbl(i).message_text);
5721 -- DBMS_OUTPUT.put_line('Return err table = ' || x_error_tbl(i).table_name);
5722 -- DBMS_OUTPUT.put_line('Return err column = ' || x_error_tbl(i).column_name);
5723 -- DBMS_OUTPUT.put_line('Return err org_id = ' || x_error_tbl(i).organization_id);
5724 -- DBMS_OUTPUT.put_line('***********************************');
5725 NULL;
5726 END LOOP;
5727
5728
5729 IF l_return_status <> FND_API.g_ret_sts_success THEN
5730 RAISE inv_item_creation_error;
5731 END IF;
5732
5733 EXCEPTION
5734
5735 -- WHEN OTHERS THEN
5736 -- NULL;
5737 --DBMS_OUTPUT.put_line('-- caught here');
5738
5739 WHEN inv_item_creation_error THEN
5740 --x_return_status := FND_API.g_ret_sts_error;
5741 --l_msg_count := x_error_tbl.count;
5742 FOR i IN 1 .. x_error_tbl.count LOOP
5743 l_err_txt := l_err_txt || x_error_tbl(i).message_text;
5744 END LOOP;
5745 FND_MSG_PUB.add_exc_msg(p_error_text => l_err_txt);
5746 FND_MSG_PUB.count_and_get(
5747 p_encoded => FND_API.g_false,
5748 p_count => x_msg_count,
5749 p_data => x_msg_data
5750 );
5751
5752 WHEN FND_API.g_exc_unexpected_error THEN
5753 --x_return_status := FND_API.g_ret_sts_unexp_error ;
5754 l_msg_count := x_error_tbl.count;
5755 FOR i IN 1 .. x_error_tbl.count LOOP
5756 FND_MSG_PUB.count_and_get(
5757 p_encoded => FND_API.g_false,
5758 p_count => l_msg_count,
5759 p_data => x_error_tbl(i).message_text
5760 );
5761 END LOOP;
5762
5763 WHEN OTHERS THEN
5764 -- x_return_status := FND_API.g_ret_sts_unexp_error;
5765 l_msg_count := x_error_tbl.count;
5766 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
5767 THEN
5768 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
5769 END IF;
5770
5771 FOR i IN 1 .. x_error_tbl.count LOOP
5772 FND_MSG_PUB.count_and_get(
5773 p_encoded => FND_API.g_false,
5774 p_count => l_msg_count,
5775 p_data => x_msg_data
5776 );
5777 END LOOP;
5778
5779 */
5780
5781 END create_inv_item;
5782
5783 ---------------------------------------------------------------------
5784 -- PROCEDURE
5785 -- create_pricelist_header
5786 --
5787 -- HISTORY
5788 -- 03/04/2000 sugupta Create.
5789 -- 05/17/2000 sugupta modified
5790 ---------------------------------------------------------------------
5791
5792 PROCEDURE create_pricelist_header
5793 (
5794 p_api_version IN NUMBER,
5795 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
5796 p_return_values IN VARCHAR2 := FND_API.g_false,
5797 p_commit IN VARCHAR2 := FND_API.g_false,
5798 p_evo_rec IN evo_rec_type,
5799 x_return_status OUT NOCOPY VARCHAR2,
5800 x_msg_count OUT NOCOPY NUMBER,
5801 x_msg_data OUT NOCOPY VARCHAR2,
5802 x_pricelist_header_id OUT NOCOPY NUMBER
5803 )
5804
5805 IS
5806 l_api_version CONSTANT NUMBER := 1.0;
5807 l_api_name CONSTANT VARCHAR2(30) := 'create_pricelist_header';
5808 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
5809
5810 l_return_status VARCHAR2(1);
5811 l_msg_count NUMBER;
5812 l_msg_data VARCHAR2(2000);
5813
5814 p_price_list_rec qp_price_list_pub.price_list_rec_type;
5815 p_price_list_val_rec qp_price_list_pub.price_list_val_rec_type;
5816 p_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type;
5817 p_price_list_line_val_tbl qp_price_list_pub.price_list_line_val_tbl_type;
5818 p_qualifiers_tbl qp_qualifier_rules_pub.qualifiers_tbl_type;
5819 p_qualifiers_val_tbl qp_qualifier_rules_pub.qualifiers_val_tbl_type;
5820 p_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type;
5821 p_pricing_attr_val_tbl qp_price_list_pub.pricing_attr_val_tbl_type;
5822
5823 l_price_list_rec qp_price_list_pub.price_list_rec_type;
5824 l_price_list_val_rec qp_price_list_pub.price_list_val_rec_type;
5825 l_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type;
5826 l_price_list_line_val_tbl qp_price_list_pub.price_list_line_val_tbl_type;
5827 l_qualifiers_tbl qp_qualifier_rules_pub.qualifiers_tbl_type;
5828 l_qualifiers_val_tbl qp_qualifier_rules_pub.qualifiers_val_tbl_type;
5829 l_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type;
5830 l_pricing_attr_val_tbl qp_price_list_pub.pricing_attr_val_tbl_type;
5831
5832 BEGIN
5833
5834 -- dbms_output.put_line('create List header called');
5835 x_return_status := FND_API.g_ret_sts_success;
5836 -- todo- get Header name from profile option AMS_PRICELIST_HEADER_NAME
5837 p_price_list_rec.name := FND_PROFILE.value('AMS_PRICELIST_HEADER_NAME');
5838 --'Event Registration Pricing';
5839 p_price_list_rec.created_by := p_evo_rec.owner_user_id;
5840 p_price_list_rec.creation_date := sysdate;
5841 p_price_list_rec.currency_code := p_evo_rec.pricelist_header_currency_code;
5842 p_price_list_rec.list_type_code := 'PRL';
5843 p_price_list_rec.description := 'Event Registration Pricing';
5844 p_price_list_rec.start_date_active := p_evo_rec.event_start_date;
5845 p_price_list_rec.end_date_active := p_evo_rec.event_end_date;
5846 p_price_list_rec.operation :=QP_GLOBALS.G_OPR_CREATE;
5847
5848 --p_price_list_rec.active_flag := 'Y';
5849 -- p_price_list_rec.automatic_flag := 'Y';
5850
5851
5852 IF (AMS_DEBUG_HIGH_ON) THEN
5853
5854
5855
5856
5857
5858 AMS_Utility_PVT.debug_message(l_full_name ||': create pricelist header...');
5859
5860
5861 END IF;
5862
5863 QP_PRICE_LIST_PUB.Process_Price_List(
5864 p_api_version_number => 1.0,
5865 p_init_msg_list => FND_API.G_TRUE,
5866 p_return_values => FND_API.G_TRUE,
5867 p_commit => FND_API.G_TRUE,
5868 x_return_status => l_return_status,
5869 x_msg_count => l_msg_count,
5870 x_msg_data => l_msg_data,
5871 p_PRICE_LIST_rec => p_price_list_rec,
5872 p_PRICE_LIST_val_rec => p_PRICE_LIST_val_rec,
5873 p_PRICE_LIST_LINE_tbl => p_PRICE_LIST_LINE_tbl ,
5874 p_PRICE_LIST_LINE_val_tbl => p_PRICE_LIST_LINE_val_tbl ,
5875 p_QUALIFIERS_tbl => p_QUALIFIERS_tbl,
5876 p_QUALIFIERS_val_tbl => p_QUALIFIERS_val_tbl,
5877 p_PRICING_ATTR_tbl => p_PRICING_ATTR_tbl,
5878 p_PRICING_ATTR_val_tbl => p_PRICING_ATTR_val_tbl,
5879 x_PRICE_LIST_rec => l_PRICE_LIST_rec,
5880 x_PRICE_LIST_val_rec => l_PRICE_LIST_val_rec,
5881 x_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl ,
5882 x_PRICE_LIST_LINE_val_tbl => l_PRICE_LIST_LINE_val_tbl ,
5883 x_QUALIFIERS_tbl => l_QUALIFIERS_tbl,
5884 x_QUALIFIERS_val_tbl => l_QUALIFIERS_val_tbl,
5885 x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl,
5886 x_PRICING_ATTR_val_tbl => l_PRICING_ATTR_val_tbl
5887 );
5888
5889 x_pricelist_header_id := l_PRICE_LIST_rec.list_header_id;
5890 x_return_status := l_return_status;
5891
5892 -- dbms_output.put_line('The value of x_pricelist_header_id is ' || x_pricelist_header_id);
5893
5894
5895 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
5896 RAISE FND_API.g_exc_unexpected_error;
5897 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
5898 RAISE FND_API.g_exc_error;
5899 END IF;
5900
5901 EXCEPTION
5902
5903 WHEN FND_API.g_exc_error THEN
5904 x_return_status := FND_API.g_ret_sts_error;
5905 FND_MSG_PUB.count_and_get(
5906 p_encoded => FND_API.g_false,
5907 p_count => x_msg_count,
5908 p_data => x_msg_data
5909 );
5910
5911 WHEN FND_API.g_exc_unexpected_error THEN
5912 x_return_status := FND_API.g_ret_sts_unexp_error ;
5913 FND_MSG_PUB.count_and_get(
5914 p_encoded => FND_API.g_false,
5915 p_count => x_msg_count,
5916 p_data => x_msg_data
5917 );
5918
5919 WHEN OTHERS THEN
5920 x_return_status := FND_API.g_ret_sts_unexp_error;
5921 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
5922 THEN
5923 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
5924 END IF;
5925 FND_MSG_PUB.count_and_get(
5926 p_encoded => FND_API.g_false,
5927 p_count => x_msg_count,
5928 p_data => x_msg_data
5929 );
5930
5931 END create_pricelist_header;
5932
5933 ---------------------------------------------------------------------
5934 -- PROCEDURE
5935 -- create_pricelist_line
5936 --
5937 -- HISTORY
5938 -- 03/04/2000 sugupta Create.
5939 -- 05/17/2000 sugupta modifed
5940 ---------------------------------------------------------------------
5941
5942 PROCEDURE create_pricelist_line
5943 (
5944 p_api_version IN NUMBER,
5945 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
5946 p_return_values IN VARCHAR2 := FND_API.g_false,
5947 p_commit IN VARCHAR2 := FND_API.g_false,
5948 p_price_hdr_id IN NUMBER,
5949 p_evo_rec IN evo_rec_type,
5950 x_return_status OUT NOCOPY VARCHAR2,
5951 x_msg_count OUT NOCOPY NUMBER,
5952 x_msg_data OUT NOCOPY VARCHAR2,
5953 x_pricelist_line_id OUT NOCOPY NUMBER
5954 )
5955 IS
5956 l_api_version CONSTANT NUMBER := 1.0;
5957 l_api_name CONSTANT VARCHAR2(30) := 'create_pricelist_line';
5958 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
5959
5960 l_return_status VARCHAR2(1);
5961 l_msg_count NUMBER;
5962 l_msg_data VARCHAR2(2000);
5963
5964 p_price_list_rec qp_price_list_pub.price_list_rec_type;
5965 p_price_list_val_rec qp_price_list_pub.price_list_val_rec_type;
5966 p_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type;
5967 p_price_list_line_val_tbl qp_price_list_pub.price_list_line_val_tbl_type;
5968 p_qualifiers_tbl qp_qualifier_rules_pub.qualifiers_tbl_type;
5969 p_qualifiers_val_tbl qp_qualifier_rules_pub.qualifiers_val_tbl_type;
5970 p_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type;
5971 p_pricing_attr_val_tbl qp_price_list_pub.pricing_attr_val_tbl_type;
5972
5973 l_price_list_rec qp_price_list_pub.price_list_rec_type;
5974 l_price_list_val_rec qp_price_list_pub.price_list_val_rec_type;
5975 l_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type;
5976 l_price_list_line_val_tbl qp_price_list_pub.price_list_line_val_tbl_type;
5977 l_qualifiers_tbl qp_qualifier_rules_pub.qualifiers_tbl_type;
5978 l_qualifiers_val_tbl qp_qualifier_rules_pub.qualifiers_val_tbl_type;
5979 l_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type;
5980 l_pricing_attr_val_tbl qp_price_list_pub.pricing_attr_val_tbl_type;
5981
5982 BEGIN
5983
5984 --dbms_output.put_line('create List line called');
5985 x_return_status := FND_API.g_ret_sts_success;
5986
5987 p_price_list_line_tbl(1).list_header_id := p_price_hdr_id;
5988 --dbms_output.put_line('p_price_hdr_id: '||p_price_hdr_id);
5989 p_price_list_line_tbl(1).list_line_type_code := 'PLL';
5990 p_price_list_line_tbl(1).base_uom_code := 'EA';
5991 p_price_list_line_tbl(1).created_by := p_evo_rec.owner_user_id;
5992 p_price_list_line_tbl(1).inventory_item_id := p_evo_rec.inventory_item_id;
5993 p_price_list_line_tbl(1).start_date_active := p_evo_rec.event_start_date;
5994 p_price_list_line_tbl(1).end_date_active := p_evo_rec.event_end_date;
5995 p_price_list_line_tbl(1).organization_id := p_evo_rec.organization_id;
5996 p_price_list_line_tbl(1).operation :=QP_GLOBALS.G_OPR_CREATE;
5997 --p_price_list_line_tbl(1).automatic_flag := 'Y';
5998 -- modified sugupta 4th of July 2000
5999 if p_evo_rec.PRICELIST_LIST_PRICE is NULL or p_evo_rec.PRICELIST_LIST_PRICE = FND_API.g_miss_num then
6000 p_price_list_line_tbl(1).operand := 0;
6001 else
6002 p_price_list_line_tbl(1).operand := p_evo_rec.PRICELIST_LIST_PRICE;
6003 end if;
6004
6005 p_price_list_line_tbl(1).arithmetic_operator := 'UNIT_PRICE';
6006 /* as per pricing team, usage of list_price column and percent_price column is obsolete.
6007 if p_evo_rec.PRICELIST_LIST_PRICE is NULL or p_evo_rec.PRICELIST_LIST_PRICE = FND_API.g_miss_num then
6008 p_price_list_line_tbl(1).list_price := 0;
6009 else
6010 p_price_list_line_tbl(1).list_price := p_evo_rec.PRICELIST_LIST_PRICE;
6011 end if;
6012 */
6013 -- modified sugupta 06/21/2000 added code to populate pricing attributes tbl
6014
6015 p_pricing_attr_tbl(1).product_attribute_context:= 'ITEM';
6016 p_pricing_attr_tbl(1).product_attribute:= 'PRICING_ATTRIBUTE1';
6017 p_pricing_attr_tbl(1).product_attr_value:= p_evo_rec.inventory_item_id;
6018 p_pricing_attr_tbl(1).product_uom_code:= 'Ea';
6019 p_pricing_attr_tbl(1).excluder_flag:= 'N';
6020 p_pricing_attr_tbl(1).comparison_operator_code:= '=';
6021 p_pricing_attr_tbl(1).PRICE_LIST_LINE_index :=1;
6022 p_pricing_attr_tbl(1).operation := QP_GLOBALS.G_OPR_CREATE;
6023
6024 IF (AMS_DEBUG_HIGH_ON) THEN
6025
6026
6027
6028 AMS_Utility_PVT.debug_message(l_full_name ||': create pricelist line...');
6029
6030 END IF;
6031
6032 QP_PRICE_LIST_PUB.Process_Price_List(
6033 p_api_version_number => 1.0,
6034 p_init_msg_list => FND_API.G_TRUE,
6035 p_return_values => FND_API.G_TRUE,
6036 p_commit => FND_API.G_TRUE,
6037 x_return_status => l_return_status,
6038 x_msg_count => l_msg_count,
6039 x_msg_data => l_msg_data,
6040 p_PRICE_LIST_rec => p_price_list_rec,
6041 p_PRICE_LIST_val_rec => p_PRICE_LIST_val_rec,
6042 p_PRICE_LIST_LINE_tbl => p_PRICE_LIST_LINE_tbl ,
6043 p_PRICE_LIST_LINE_val_tbl => p_PRICE_LIST_LINE_val_tbl ,
6044 p_QUALIFIERS_tbl => p_QUALIFIERS_tbl,
6045 p_QUALIFIERS_val_tbl => p_QUALIFIERS_val_tbl,
6046 p_PRICING_ATTR_tbl => p_PRICING_ATTR_tbl,
6047 p_PRICING_ATTR_val_tbl => p_PRICING_ATTR_val_tbl,
6048 x_PRICE_LIST_rec => l_PRICE_LIST_rec,
6049 x_PRICE_LIST_val_rec => l_PRICE_LIST_val_rec,
6050 x_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl ,
6051 x_PRICE_LIST_LINE_val_tbl => l_PRICE_LIST_LINE_val_tbl ,
6052 x_QUALIFIERS_tbl => l_QUALIFIERS_tbl,
6053 x_QUALIFIERS_val_tbl => l_QUALIFIERS_val_tbl,
6054 x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl,
6055 x_PRICING_ATTR_val_tbl => l_PRICING_ATTR_val_tbl
6056 );
6057
6058 x_pricelist_line_id := l_PRICE_LIST_LINE_tbl(1).list_line_id;
6059 x_return_status := l_return_status;
6060
6061 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
6062 RAISE FND_API.g_exc_unexpected_error;
6063 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
6064 RAISE FND_API.g_exc_error;
6065 END IF;
6066
6067 EXCEPTION
6068
6069 WHEN FND_API.g_exc_error THEN
6070 x_return_status := FND_API.g_ret_sts_error;
6071 FND_MSG_PUB.count_and_get(
6072 p_encoded => FND_API.g_false,
6073 p_count => x_msg_count,
6074 p_data => x_msg_data
6075 );
6076
6077 WHEN FND_API.g_exc_unexpected_error THEN
6078 x_return_status := FND_API.g_ret_sts_unexp_error ;
6079 FND_MSG_PUB.count_and_get(
6080 p_encoded => FND_API.g_false,
6081 p_count => x_msg_count,
6082 p_data => x_msg_data
6083 );
6084
6085 WHEN OTHERS THEN
6086 x_return_status := FND_API.g_ret_sts_unexp_error;
6087 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
6088 THEN
6089 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
6090 END IF;
6091
6092 FND_MSG_PUB.count_and_get(
6093 p_encoded => FND_API.g_false,
6094 p_count => x_msg_count,
6095 p_data => x_msg_data
6096 );
6097
6098 END create_pricelist_line;
6099
6100 /*=================================================*/
6101
6102 PROCEDURE copy_ev_header_to_offer(
6103 p_api_version IN NUMBER,
6104 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
6105 x_return_status OUT NOCOPY VARCHAR2,
6106 x_msg_count OUT NOCOPY NUMBER,
6107 x_msg_data OUT NOCOPY VARCHAR2,
6108 x_evo_rec OUT NOCOPY evo_rec_type,
6109 p_src_evh_id IN NUMBER,
6110 p_evo_rec IN evo_rec_type
6111 ) IS
6112 -- p_eveo_elements_rec IN eveo_elements_rec_type,
6113 l_api_version CONSTANT NUMBER := 1.0;
6114 l_api_name CONSTANT VARCHAR2(30) := 'copy_ev_header_to_offer';
6115 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
6116 l_return_status VARCHAR2(1);
6117 -- variables for the OUT parameters of the called create procedures
6118 --l_eveo_ele_rec eveo_elements_rec_type;
6119 l_name VARCHAR2(80);
6120 l_msg_count NUMBER; -- variables for the OUT parameters of the called create procedures
6121 l_msg_data VARCHAR2(512); -- variables for the OUT parameters of the called create procedures
6122
6123 l_evo_rec ams_eventoffer_pvt.evo_rec_type := p_evo_rec;
6124
6125 l_mesg_text VARCHAR2(2000);
6126 p_errmsg VARCHAR2(3000);
6127 l_eventheader_rec ams_event_headers_vl%ROWTYPE;
6128
6129 l_lookup_meaning VARCHAR2(80);
6130 l_dummy VARCHAR2(1);
6131
6132 CURSOR c_get_header_info IS
6133 SELECT *
6134 FROM ams_event_headers_vl
6135 WHERE event_header_id = p_src_evh_id;
6136
6137 CURSOR c_setup_resp(id_in IN NUMBER) IS
6138 SELECT 'x'
6139 FROM ams_custom_setup_attr
6140 WHERE custom_setup_id = nvl(id_in, 1006)
6141 and OBJECT_ATTRIBUTE = 'RESP';
6142 BEGIN
6143 SAVEPOINT copy_ev_header_to_offer;
6144 IF (AMS_DEBUG_HIGH_ON) THEN
6145
6146 ams_utility_pvt.debug_message(l_full_name || ': start');
6147 END IF;
6148
6149 IF fnd_api.to_boolean(p_init_msg_list)
6150 THEN
6151 fnd_msg_pub.initialize;
6152 END IF;
6153
6154 IF NOT fnd_api.compatible_api_call(
6155 l_api_version,
6156 p_api_version,
6157 l_api_name,
6158 g_pkg_name)
6159 THEN
6160 RAISE fnd_api.g_exc_unexpected_error;
6161 END IF;
6162
6163 x_return_status := fnd_api.g_ret_sts_success;
6164 ----------------------- insert -----------------------
6165 IF (AMS_DEBUG_HIGH_ON) THEN
6166
6167 ams_utility_pvt.debug_message(l_full_name || ': start');
6168 END IF;
6169
6170 ams_utility_pvt.get_lookup_meaning(
6171 'AMS_SYS_ARC_QUALIFIER',
6172 'EVEH',
6173 l_return_status,
6174 l_lookup_meaning);
6175 -- General Message saying copying has started
6176 fnd_message.set_name('AMS', 'AMS_COPY_ELEMENTS');
6177 fnd_message.set_token('ELEMENTS', l_lookup_meaning, TRUE);
6178 l_mesg_text := fnd_message.get;
6179 -- Writing to the Pl/SQLtable
6180 ams_cpyutility_pvt.write_log_mesg('EVEH', p_src_evh_id, l_mesg_text, 'GENERAL');
6181 l_return_status := NULL;
6182 l_msg_count := 0;
6183 l_msg_data := NULL;
6184 -- selects the event offers to copy
6185
6186 OPEN c_get_header_info;
6187 FETCH c_get_header_info into l_eventheader_rec;
6188 IF (c_get_header_info%NOTFOUND) THEN
6189 CLOSE c_get_header_info;
6190 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
6191 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
6192 FND_MSG_PUB.add;
6193 END IF;
6194 RAISE FND_API.g_exc_error;
6195 END IF;
6196
6197 CLOSE c_get_header_info;
6198
6199 --l_evo_rec.object_version_number := 1;
6200 --l_evo_rec.application_id := l_eventheader_rec.application_id;
6201 --l_evo_rec.event_header_id := p_src_evh_id;
6202 l_evo_rec.private_flag := l_eventheader_rec.private_flag;
6203
6204 --l_evo_rec.event_level := l_eventheader_rec.event_level;
6205 --l_evo_rec.user_status_id := l_eventheader_rec.user_status_id;
6206 --l_evo_rec.system_status_code := 'NEW';
6207 --l_evo_rec.event_type_code := l_eventheader_rec.event_type_code;
6208
6209 if l_evo_rec.event_language_code is NULL then
6210 l_evo_rec.event_language_code := l_eventheader_rec.main_language_code;
6211 end if;
6212
6213 l_evo_rec.overflow_flag := l_eventheader_rec.overflow_flag;
6214 l_evo_rec.partner_flag := l_eventheader_rec.partner_flag;
6215 l_evo_rec.event_standalone_flag := l_eventheader_rec.event_standalone_flag;
6216 l_evo_rec.event_object_type := 'EVEO';
6217 l_evo_rec.reg_required_flag := 'Y';
6218
6219
6220 -- Bug # 2452649 as the following flags were removed from Event Header
6221 -- l_evo_rec.reg_charge_flag := l_eventheader_rec.reg_charge_flag;
6222 -- l_evo_rec.reg_invited_only_flag := l_eventheader_rec.reg_invited_only_flag;
6223
6224 if l_evo_rec.event_duration is NULL then
6225 l_evo_rec.event_duration := l_eventheader_rec.duration;
6226 end if;
6227
6228 if l_evo_rec.event_duration_uom_code is NULL then
6229 l_evo_rec.event_duration_uom_code := l_eventheader_rec.duration_uom_code;
6230 end if;
6231
6232 l_evo_rec.reg_maximum_capacity := l_eventheader_rec.reg_maximum_capacity;
6233 l_evo_rec.reg_minimum_capacity := l_eventheader_rec.reg_minimum_capacity;
6234 l_evo_rec.organization_id := l_eventheader_rec.organization_id;
6235 l_evo_rec.org_id := l_eventheader_rec.org_id;
6236 l_evo_rec.stream_type_code := l_eventheader_rec.stream_type_code;
6237
6238 l_evo_rec.event_full_flag := 'N';
6239 -- source code will be uniquely generated if its passed a snull from the screen
6240 --l_evo_rec.source_code := p_source_code;
6241
6242 l_evo_rec.cert_credit_type_code := l_eventheader_rec.cert_credit_type_code;
6243 l_evo_rec.certification_credits := l_eventheader_rec.certification_credits;
6244 l_evo_rec.coordinator_id := l_eventheader_rec.coordinator_id;
6245
6246 if l_evo_rec.priority_type_code is NULL then
6247 l_evo_rec.priority_type_code := l_eventheader_rec.priority_type_code;
6248 end if;
6249
6250 open c_setup_resp(p_evo_rec.custom_setup_id);
6251 fetch c_setup_resp into l_dummy;
6252 if (l_dummy = 'x') then
6253 l_evo_rec.email := l_eventheader_rec.email;
6254 l_evo_rec.phone := l_eventheader_rec.phone;
6255 l_evo_rec.url := l_eventheader_rec.url;
6256 l_evo_rec.inbound_script_name := l_eventheader_rec.inbound_script_name;
6257 end if;
6258
6259 close c_setup_resp;
6260
6261 if l_evo_rec.DESCRIPTION is NULL then
6262 l_evo_rec.DESCRIPTION := l_eventheader_rec.DESCRIPTION;
6263 end if;
6264
6265 l_evo_rec.attribute_category := l_eventheader_rec.attribute_category;
6266 l_evo_rec.attribute1 := l_eventheader_rec.attribute1;
6267 l_evo_rec.attribute2 := l_eventheader_rec.attribute2;
6268 l_evo_rec.attribute3 := l_eventheader_rec.attribute3;
6269 l_evo_rec.attribute4 := l_eventheader_rec.attribute4;
6270 l_evo_rec.attribute5 := l_eventheader_rec.attribute5;
6271 l_evo_rec.attribute6 := l_eventheader_rec.attribute6;
6272 l_evo_rec.attribute7 := l_eventheader_rec.attribute7;
6273 l_evo_rec.attribute8 := l_eventheader_rec.attribute8;
6274 l_evo_rec.attribute9 := l_eventheader_rec.attribute9;
6275 l_evo_rec.attribute10 := l_eventheader_rec.attribute10;
6276 l_evo_rec.attribute11 := l_eventheader_rec.attribute11;
6277 l_evo_rec.attribute12 := l_eventheader_rec.attribute12;
6278 l_evo_rec.attribute13 := l_eventheader_rec.attribute13;
6279 l_evo_rec.attribute14 := l_eventheader_rec.attribute14;
6280 l_evo_rec.attribute15 := l_eventheader_rec.attribute15;
6281
6282 x_evo_rec := l_evo_rec;
6283
6284 EXCEPTION
6285 WHEN fnd_api.g_exc_error
6286 THEN
6287 ROLLBACK TO copy_ev_header_to_offer;
6288 x_return_status := fnd_api.g_ret_sts_error;
6289 fnd_msg_pub.count_and_get(
6290 p_encoded => fnd_api.g_false,
6291 p_count => x_msg_count,
6292 p_data => x_msg_data);
6293 WHEN fnd_api.g_exc_unexpected_error
6294 THEN
6295 ROLLBACK TO copy_ev_header_to_offer;
6296 x_return_status := fnd_api.g_ret_sts_unexp_error;
6297 IF (AMS_DEBUG_HIGH_ON) THEN
6298
6299 ams_utility_pvt.debug_message(l_full_name || ': debug');
6300 END IF;
6301 fnd_msg_pub.count_and_get(
6302 p_encoded => fnd_api.g_false,
6303 p_count => x_msg_count,
6304 p_data => x_msg_data);
6305 WHEN OTHERS THEN
6306 IF (c_get_header_info%ISOPEN) THEN
6307 CLOSE c_get_header_info;
6308 END IF;
6309 IF (c_setup_resp%ISOPEN) THEN
6310 CLOSE c_setup_resp;
6311 END IF;
6312
6313 ROLLBACK TO copy_ev_header_to_offer;
6314 x_return_status := fnd_api.g_ret_sts_unexp_error;
6315
6316 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
6317 THEN
6318 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
6319 END IF;
6320
6321 fnd_msg_pub.count_and_get(
6322 p_encoded => fnd_api.g_false,
6323 p_count => x_msg_count,
6324 p_data => x_msg_data);
6325 END copy_ev_header_to_offer;
6326
6327 /*======================================================================*/
6328 PROCEDURE copy_ev_header_associations(
6329 p_api_version IN NUMBER,
6330 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
6331 p_commit IN VARCHAR2 := fnd_api.g_false,
6332 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
6333 x_return_status OUT NOCOPY VARCHAR2,
6334 x_msg_count OUT NOCOPY NUMBER,
6335 x_msg_data OUT NOCOPY VARCHAR2,
6336 x_transaction_id OUT NOCOPY NUMBER,
6337 p_src_evh_id IN NUMBER,
6338 p_evo_id IN NUMBER,
6339 p_setup_id IN NUMBER)
6340 -- p_eveo_elements_rec IN eveo_elements_rec_type,
6341 IS
6342 l_api_version CONSTANT NUMBER := 1.0;
6343 l_api_name CONSTANT VARCHAR2(30) := 'copy_ev_header_associations';
6344 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
6345 l_return_status VARCHAR2(1);
6346 -- variables for the OUT parameters of the called create procedures
6347 l_eveo_ele_rec ams_copyactivities_pvt.eveo_elements_rec_type;
6348 l_msg_count NUMBER; -- variables for the OUT parameters of the called create procedures
6349 l_msg_data VARCHAR2(512); -- variables for the OUT parameters of the called create procedures
6350
6351 l_mesg_text VARCHAR2(2000);
6352 p_errmsg VARCHAR2(3000);
6353
6354 l_errcode VARCHAR2(80);
6355 l_errnum NUMBER;
6356 l_errmsg VARCHAR2(3000);
6357 l_eveo_ele_rec2 ams_copyactivities_pvt.eveo_elements_rec_type;
6358 x_sub_evo_id NUMBER; -- variables for the OUT parameters of the called copy campaign procedures while copying sub_campaign
6359 l_evo_count NUMBER;
6360 l_lookup_meaning VARCHAR2(80);
6361
6362 CURSOR sub_eveh_cur
6363 IS
6364 SELECT event_header_id
6365 FROM ams_event_headers_vl
6366 WHERE parent_event_header_id = p_src_evh_id;
6367
6368 CURSOR c_header_resp IS
6369 SELECT attribute_defined_flag
6370 FROM ams_object_attributes
6371 WHERE object_type = 'EVEH'
6372 AND object_id = p_src_evh_id
6373 AND object_attribute = 'RESP';
6374
6375
6376 CURSOR c_get_attr(l_setup_id IN NUMBER) IS
6377 SELECT object_attribute
6378 FROM ams_custom_setup_attr
6379 WHERE custom_setup_id = l_setup_id;
6380
6381 TYPE t_obj_attr IS TABLE OF c_get_attr%ROWTYPE
6382 INDEX BY BINARY_INTEGER;
6383
6384 l_obj_attr t_obj_attr;
6385 l_attr c_get_attr%ROWTYPE;
6386 l_total NUMBER;
6387 l_association_copied NUMBER := 0;
6388 l_header_resp VARCHAR2(1);
6389 l_object_type VARCHAR2(4) := 'EVEO';
6390 l_object_id NUMBER := p_evo_id;
6391
6392 BEGIN
6393 SAVEPOINT copy_ev_header_associations;
6394 IF (AMS_DEBUG_HIGH_ON) THEN
6395
6396 ams_utility_pvt.debug_message(l_full_name || ': start');
6397 END IF;
6398
6399 IF fnd_api.to_boolean(p_init_msg_list)
6400 THEN
6401 fnd_msg_pub.initialize;
6402 END IF;
6403
6404 IF NOT fnd_api.compatible_api_call(
6405 l_api_version,
6406 p_api_version,
6407 l_api_name,
6408 g_pkg_name)
6409 THEN
6410 RAISE fnd_api.g_exc_unexpected_error;
6411 END IF;
6412
6413 x_return_status := fnd_api.g_ret_sts_success;
6414 ----------------------- insert -----------------------
6415
6416 IF (AMS_DEBUG_HIGH_ON) THEN
6417
6418
6419
6420 ams_utility_pvt.debug_message(l_full_name || ': start');
6421
6422 END IF;
6423 -- refresh the log
6424
6425 AMS_CPYutility_pvt.refresh_log_mesg;
6426
6427 ams_utility_pvt.get_lookup_meaning(
6428 'AMS_SYS_ARC_QUALIFIER',
6429 'EVEH',
6430 l_return_status,
6431 l_lookup_meaning);
6432 -- General Message saying copying has started
6433 fnd_message.set_name('AMS', 'AMS_COPY_ELEMENTS');
6434 fnd_message.set_token('ELEMENTS', l_lookup_meaning, TRUE);
6435 l_mesg_text := fnd_message.get;
6436 -- Writing to the Pl/SQLtable
6437 ams_cpyutility_pvt.write_log_mesg('EVEH', p_src_evh_id, l_mesg_text, 'GENERAL');
6438 l_return_status := NULL;
6439 l_msg_count := 0;
6440 l_msg_data := NULL;
6441
6442 l_total := 0;
6443
6444 OPEN c_get_attr(p_setup_id);
6445 LOOP
6446 FETCH c_get_attr INTO l_attr ;
6447 EXIT WHEN c_get_attr%NOTFOUND ;
6448 l_obj_attr(l_total) := l_attr ;
6449 l_total := l_total + 1 ;
6450 END LOOP;
6451 CLOSE c_get_attr;
6452
6453 if l_total = 0 then
6454 return;
6455 end if;
6456
6457 FOR i in 1..l_total LOOP
6458 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'MESG' then
6459 l_errcode := NULL;
6460 l_errnum := 0;
6461 l_errmsg := NULL;
6462 ams_copyelements_pvt.copy_act_messages(
6463 'EVEH',
6464 'EVEO',
6465 p_src_evh_id,
6466 p_evo_id,
6467 l_errnum,
6468 l_errcode,
6469 l_errmsg);
6470
6471 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'MESG',NULL)
6472 = FND_API.g_true) then
6473
6474 AMS_ObjectAttribute_PVT.modify_object_attribute(
6475 p_api_version => p_api_version,
6476 p_init_msg_list => p_init_msg_list,
6477 p_commit => p_commit,
6478 p_validation_level => p_validation_level,
6479
6480 x_return_status => x_return_status,
6481 x_msg_count => x_msg_count,
6482 x_msg_data => x_msg_data,
6483
6484 p_object_type => l_object_type,
6485 p_object_id => l_object_id,
6486 p_attr => 'MESG',
6487 p_attr_defined_flag => 'Y'
6488 );
6489 end if;
6490 end if;
6491 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'PROD' then
6492 l_errcode := NULL;
6493 l_errnum := 0;
6494 l_errmsg := NULL;
6495 ams_copyelements_pvt.copy_act_prod(
6496 'EVEH',
6497 'EVEO',
6498 p_src_evh_id,
6499 p_evo_id,
6500 l_errnum,
6501 l_errcode,
6502 l_errmsg);
6503
6504 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'PROD',NULL)
6505 = FND_API.g_true) then
6506
6507 AMS_ObjectAttribute_PVT.modify_object_attribute(
6508 p_api_version => p_api_version,
6509 p_init_msg_list => p_init_msg_list,
6510 p_commit => p_commit,
6511 p_validation_level => p_validation_level,
6512
6513 x_return_status => x_return_status,
6514 x_msg_count => x_msg_count,
6515 x_msg_data => x_msg_data,
6516
6517 p_object_type => l_object_type,
6518 p_object_id => l_object_id,
6519 p_attr => 'PROD',
6520 p_attr_defined_flag => 'Y'
6521 );
6522 end if;
6523 end if;
6524 if ((l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'CAMP') OR (l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'DELV')) then
6525 if (l_association_copied = 0) then
6526 l_errcode := NULL;
6527 l_errnum := 0;
6528 l_errmsg := NULL;
6529 ams_copyelements_pvt.copy_object_associations(
6530 'EVEH',
6531 'EVEO',
6532 p_src_evh_id,
6533 p_evo_id,
6534 l_errnum,
6535 l_errcode,
6536 l_errmsg);
6537 l_association_copied := l_association_copied + 1;
6538 end if;
6539 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'CAMP' then
6540 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'CAMP',NULL)
6541 = FND_API.g_true) then
6542
6543 AMS_ObjectAttribute_PVT.modify_object_attribute(
6544 p_api_version => p_api_version,
6545 p_init_msg_list => p_init_msg_list,
6546 p_commit => p_commit,
6547 p_validation_level => p_validation_level,
6548
6549 x_return_status => x_return_status,
6550 x_msg_count => x_msg_count,
6551 x_msg_data => x_msg_data,
6552
6553 p_object_type => l_object_type,
6554 p_object_id => l_object_id,
6555 p_attr => 'CAMP',
6556 p_attr_defined_flag => 'Y'
6557 );
6558 end if;
6559 elsif l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'DELV' then
6560 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'DELV',NULL)
6561 = FND_API.g_true) then
6562
6563 AMS_ObjectAttribute_PVT.modify_object_attribute(
6564 p_api_version => p_api_version,
6565 p_init_msg_list => p_init_msg_list,
6566 p_commit => p_commit,
6567 p_validation_level => p_validation_level,
6568
6569 x_return_status => x_return_status,
6570 x_msg_count => x_msg_count,
6571 x_msg_data => x_msg_data,
6572
6573 p_object_type => l_object_type,
6574 p_object_id => l_object_id,
6575 p_attr => 'DELV',
6576 p_attr_defined_flag => 'Y'
6577 );
6578 end if;
6579 end if;
6580 end if;
6581 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'ATCH' then
6582 l_errcode := NULL;
6583 l_errnum := 0;
6584 l_errmsg := NULL;
6585 ams_copyelements_pvt.copy_act_attachments(
6586 'EVEH',
6587 'EVEO',
6588 p_src_evh_id,
6589 p_evo_id,
6590 l_errnum,
6591 l_errcode,
6592 l_errmsg);
6593
6594 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'ATCH',NULL)
6595 = FND_API.g_true) then
6596
6597 AMS_ObjectAttribute_PVT.modify_object_attribute(
6598 p_api_version => p_api_version,
6599 p_init_msg_list => p_init_msg_list,
6600 p_commit => p_commit,
6601 p_validation_level => p_validation_level,
6602
6603 x_return_status => x_return_status,
6604 x_msg_count => x_msg_count,
6605 x_msg_data => x_msg_data,
6606
6607 p_object_type => l_object_type,
6608 p_object_id => l_object_id,
6609 p_attr => 'ATCH',
6610 p_attr_defined_flag => 'Y'
6611 );
6612 end if;
6613 end if;
6614 /*Commented by mukemar on may14 2002 we are not supporting the resource copy
6615 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'RESC' then
6616 l_errcode := NULL;
6617 l_errnum := 0;
6618 l_errmsg := NULL;
6619 ams_copyelements_pvt.copy_act_resources(
6620 'EVEH',
6621 'EVEO',
6622 p_src_evh_id,
6623 p_evo_id,
6624 l_errnum,
6625 l_errcode,
6626 l_errmsg);
6627
6628 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'RESC',NULL)
6629 = FND_API.g_true) then
6630
6631 AMS_ObjectAttribute_PVT.modify_object_attribute(
6632 p_api_version => p_api_version,
6633 p_init_msg_list => p_init_msg_list,
6634 p_commit => p_commit,
6635 p_validation_level => p_validation_level,
6636
6637 x_return_status => x_return_status,
6638 x_msg_count => x_msg_count,
6639 x_msg_data => x_msg_data,
6640
6641 p_object_type => l_object_type,
6642 p_object_id => l_object_id,
6643 p_attr => 'RESC',
6644 p_attr_defined_flag => 'Y'
6645 );
6646 end if;
6647 end if;
6648 */
6649 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'CELL' then
6650 l_errcode := NULL;
6651 l_errnum := 0;
6652 l_errmsg := NULL;
6653 ams_copyelements_pvt.copy_act_market_segments(
6654 'EVEH',
6655 'EVEO',
6656 p_src_evh_id,
6657 p_evo_id,
6658 l_errnum,
6659 l_errcode,
6660 l_errmsg);
6661
6662 if (AMS_EventOffer_PVT.check_association_exists(l_object_type,l_object_id,'CELL',NULL)
6663 = FND_API.g_true) then
6664
6665 AMS_ObjectAttribute_PVT.modify_object_attribute(
6666 p_api_version => p_api_version,
6667 p_init_msg_list => p_init_msg_list,
6668 p_commit => p_commit,
6669 p_validation_level => p_validation_level,
6670
6671 x_return_status => x_return_status,
6672 x_msg_count => x_msg_count,
6673 x_msg_data => x_msg_data,
6674
6675 p_object_type => l_object_type,
6676 p_object_id => l_object_id,
6677 p_attr => 'CELL',
6678 p_attr_defined_flag => 'Y'
6679 );
6680 end if;
6681 end if;
6682 if l_obj_attr(i-1).OBJECT_ATTRIBUTE = 'RESP' then
6683 -- resources would already have been copied in copy_ev_header_to_offer procedure..
6684 -- update object attribute if ATTRIBUTE_DEFINED_FLAG is Y for p_src_evh_id in ams_object_attributes
6685 open c_header_resp;
6686 fetch c_header_resp into l_header_resp;
6687 close c_header_resp;
6688
6689 if l_header_resp = 'Y' then
6690 AMS_ObjectAttribute_PVT.modify_object_attribute(
6691 p_api_version => p_api_version,
6692 p_init_msg_list => p_init_msg_list,
6693 p_commit => p_commit,
6694 p_validation_level => p_validation_level,
6695
6696 x_return_status => x_return_status,
6697 x_msg_count => x_msg_count,
6698 x_msg_data => x_msg_data,
6699
6700 p_object_type => l_object_type,
6701 p_object_id => l_object_id,
6702 p_attr => 'RESP',
6703 p_attr_defined_flag => 'Y'
6704 );
6705 end if;
6706 end if;
6707 END LOOP;
6708
6709 /*
6710 IF l_eveo_ele_rec.p_sub_eveh = 'Y'
6711 THEN
6712 FOR sub_eveh_rec IN sub_eveh_cur
6713 LOOP
6714 BEGIN
6715 l_return_status := NULL;
6716 l_msg_count := 0;
6717 l_msg_data := NULL;
6718 copy_event_header(
6719 p_api_version => 1,
6720 p_init_msg_list => fnd_api.g_true,
6721 x_return_status => l_return_status,
6722 x_msg_data => l_msg_data,
6723 x_msg_count => l_msg_count,
6724 p_src_evh_id => sub_eveh_rec.event_header_id,
6725 p_new_eveh_name => NULL,
6726 p_par_eveh_id => x_eveh_id,
6727 x_eveh_id => x_sub_eveh_id,
6728 --??? p_eveh_elements_rec => l_eveh_elements_rec,
6729 p_start_date => p_start_date);
6730 END;
6731 END LOOP;
6732 END IF;
6733
6734 */
6735 AMS_CPYutility_pvt.insert_log_mesg(x_transaction_id);
6736
6737 EXCEPTION
6738 WHEN fnd_api.g_exc_error
6739 THEN
6740 ROLLBACK TO copy_ev_header_associations;
6741 x_return_status := fnd_api.g_ret_sts_error;
6742 fnd_msg_pub.count_and_get(
6743 p_encoded => fnd_api.g_false,
6744 p_count => x_msg_count,
6745 p_data => x_msg_data);
6746 WHEN fnd_api.g_exc_unexpected_error
6747 THEN
6748 ROLLBACK TO copy_ev_header_associations;
6749 x_return_status := fnd_api.g_ret_sts_unexp_error;
6750 IF (AMS_DEBUG_HIGH_ON) THEN
6751
6752 ams_utility_pvt.debug_message(l_full_name || ': debug');
6753 END IF;
6754 fnd_msg_pub.count_and_get(
6755 p_encoded => fnd_api.g_false,
6756 p_count => x_msg_count,
6757 p_data => x_msg_data);
6758 WHEN OTHERS
6759 THEN
6760 IF (c_header_resp%ISOPEN) THEN
6761 CLOSE c_header_resp;
6762 END IF;
6763
6764 ROLLBACK TO copy_ev_header_associations;
6765 x_return_status := fnd_api.g_ret_sts_unexp_error;
6766
6767 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
6768 THEN
6769 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
6770 END IF;
6771
6772 fnd_msg_pub.count_and_get(
6773 p_encoded => fnd_api.g_false,
6774 p_count => x_msg_count,
6775 p_data => x_msg_data);
6776 END copy_ev_header_associations;
6777
6778 /*********************** server side TEST CASE *****************************************/
6779
6780 -- Start of Comments
6781 --
6782 -- NAME
6783 -- Unit_Test_Insert
6784 -- Unit_Test_Delete
6785 -- Unit_Test_Update
6786 -- Unit_Test_Lock
6787 --
6788 -- PURPOSE
6789 -- These procedures are to test each procedure that satisfy caller needs
6790 --
6791 -- NOTES
6792 -- End of Comments
6793
6794 --********************************************************
6795 PROCEDURE Unit_Test_Insert
6796 IS
6797
6798 -- local variables
6799 l_evo_rec AMS_EVENTOFFER_PVT.evo_rec_type;
6800 l_return_status VARCHAR2(1);
6801 l_msg_count NUMBER;
6802 l_msg_data VARCHAR2(200);
6803 l_evo_id AMS_event_offers_all_b.event_offer_id%type;
6804
6805 BEGIN
6806 --AMS_EVENTOFFER_PVT.init_evo_rec(l_evo_rec);
6807 -- l_evo_rec.source_code:= 'CAMP101';
6808 L_EVO_REC.EVENT_OFFER_NAME := 'HIJACK CRISIS OVER NO PARTY';
6809 l_evo_rec.event_level := 'MAIN';
6810 l_evo_rec.user_status_id := 100;
6811 l_evo_rec.event_start_date_time := to_date('15:30', 'HH24:MI');
6812 l_evo_rec.event_end_date_time := to_date('18:55', 'HH24:MI');
6813 l_evo_rec.reg_maximum_capacity := 100;
6814 l_evo_rec.reg_minimum_capacity := 10;
6815 l_evo_rec.reg_overbook_pct := 10;
6816 l_evo_rec.reg_waitlist_pct := 10;
6817 l_evo_rec.stream_type_code := 'A';
6818 l_evo_rec.owner_user_id := 101;
6819 l_evo_rec.system_status_code := 'PLANNING';
6820 l_evo_rec.application_id := 530;
6821 l_evo_rec.event_type_code := 'SEMINAR';
6822 l_evo_rec.priority_type_code := 'HIGH';
6823 -- l_evo_rec.object_version_number := 5;
6824 l_evo_rec.event_header_id := 1001;
6825
6826 --dbms_output.put_line('Call AMS_EVENTOFFER_PVT.UPDATE_offer');
6827
6828 AMS_EVENTOFFER_PVT.create_event_offer(
6829 p_api_version => 1.0 -- p_api_version
6830 ,p_init_msg_list => FND_API.G_FALSE
6831 ,p_commit => FND_API.G_FALSE
6832 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
6833 ,p_evo_rec => l_evo_rec
6834 ,x_return_status => l_return_status
6835 ,x_msg_count => l_msg_count
6836 ,x_msg_data => l_msg_data
6837 ,x_evo_id => l_evo_id
6838 );
6839
6840 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
6841 --dbms_output.put_line(l_return_status);
6842 --dbms_output.put_line(l_msg_count);
6843 AMS_UTILITY_PVT.display_messages;
6844 --dbms_output.put_line('AMS_EVENTOFFER_PVT.update ERROR');
6845 ELSE
6846 commit work;
6847 --dbms_output.put_line(l_return_status);
6848 AMS_UTILITY_PVT.display_messages;
6849 END IF;
6850
6851 END Unit_Test_Insert;
6852
6853 --********************************************************
6854
6855 PROCEDURE create_global_pricing(
6856 p_evo_rec IN OUT NOCOPY evo_rec_type,
6857 x_return_status OUT NOCOPY VARCHAR2
6858 )
6859 IS
6860 l_api_version CONSTANT NUMBER := 1.0;
6861 l_qp_profile VARCHAR2(1);
6862 l_evo_rec evo_rec_type;
6863 l_return_status VARCHAR2(1);
6864 l_pricelist_header_id NUMBER;
6865 l_msg_count NUMBER;
6866 l_msg_data VARCHAR2(512);
6867
6868
6869 CURSOR c_pricelist_header_id(curr_code IN VARCHAR2) IS
6870 SELECT distinct(pricelist_header_id)
6871 FROM ams_event_offers_all_b evo, qp_price_lists_v qph
6872 WHERE evo.pricelist_header_id = qph.price_list_id
6873 AND qph.currency_code = curr_code;
6874
6875 BEGIN
6876 l_qp_profile := FND_PROFILE.Value('AMS_USE_GLOBAL_PRICING');
6877 l_evo_rec := p_evo_rec;
6878
6879 -- Remove the following line once the testing is done.
6880 l_qp_profile := 'N';
6881
6882 IF l_qp_profile = 'N' AND
6883 l_evo_rec.PRICELIST_HEADER_CURRENCY_CODE <> FND_API.g_miss_char AND
6884 l_evo_rec.PRICELIST_HEADER_CURRENCY_CODE IS NOT NULL THEN
6885
6886 -- DBMS_OUTPUT.put_line('calling Cursor for pricelist_header');
6887
6888
6889 OPEN c_pricelist_header_id(l_evo_rec.PRICELIST_HEADER_CURRENCY_CODE);
6890 FETCH c_pricelist_header_id INTO l_pricelist_header_id;
6891 CLOSE c_pricelist_header_id;
6892
6893 -- DBMS_OUTPUT.put_line('The value of pricelist_header is ' || l_pricelist_header_id);
6894
6895
6896 -- if pricelist header has been created for any event already
6897 -- 1.populate this header id to pricelist_header_id,
6898 -- 2.create pricelist line and store the line id
6899
6900 IF (l_pricelist_header_id IS NOT NULL) THEN
6901 l_evo_rec.pricelist_header_id := l_pricelist_header_id;
6902 -- DBMS_OUTPUT.put_line('Calling create_pricelist_line');
6903 create_pricelist_line(
6904 p_api_version => l_api_version,
6905 p_init_msg_list => FND_API.g_false,
6906 p_return_values => FND_API.g_false,
6907 p_commit => FND_API.g_false,
6908 p_price_hdr_id => l_evo_rec.pricelist_header_id,
6909 p_evo_rec => l_evo_rec,
6910 x_return_status => l_return_status,
6911 x_msg_count => l_msg_count,
6912 x_msg_data => l_msg_data,
6913 x_pricelist_line_id => l_evo_rec.pricelist_line_id
6914 );
6915
6916 -- DBMS_OUTPUT.put_line('The value of pricelist_header is ' || l_evo_rec.pricelist_header_id);
6917 -- DBMS_OUTPUT.put_line('The value of pricelist_line_id is ' || l_evo_rec.pricelist_line_id);
6918
6919
6920 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
6921 RAISE FND_API.g_exc_unexpected_error;
6922 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
6923 RAISE FND_API.g_exc_error;
6924 END IF;
6925 -- if pricelist header has never been created for collateral
6926 -- 1.create pricelist header
6927 -- 2.populate this header id to pricelist_header_id,
6928 -- 3.create pricelist line and store the line id
6929 -- IF (l_pricelist_header_id IS NULL) THEN
6930 ELSE
6931 -- DBMS_OUTPUT.put_line('Calling create_pricelist_header');
6932 create_pricelist_header(
6933 p_api_version => l_api_version,
6934 p_init_msg_list => FND_API.g_false,
6935 p_return_values => FND_API.g_false,
6936 p_commit => FND_API.g_false,
6937 p_evo_rec => l_evo_rec,
6938 x_return_status => l_return_status,
6939 x_msg_count => l_msg_count,
6940 x_msg_data => l_msg_data,
6941 x_pricelist_header_id => l_evo_rec.pricelist_header_id
6942 );
6943
6944
6945 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
6946 RAISE FND_API.g_exc_unexpected_error;
6947 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
6948 RAISE FND_API.g_exc_error;
6949 END IF;
6950 -- DBMS_OUTPUT.put_line('Calling create_pricelist_line');
6951
6952 create_pricelist_line(
6953 p_api_version => l_api_version,
6954 p_init_msg_list => FND_API.g_false,
6955 p_return_values => FND_API.g_false,
6956 p_commit => FND_API.g_false,
6957 p_price_hdr_id => l_evo_rec.pricelist_header_id,
6958 p_evo_rec => l_evo_rec,
6959 x_return_status => l_return_status,
6960 x_msg_count => l_msg_count,
6961 x_msg_data => l_msg_data,
6962 x_pricelist_line_id => l_evo_rec.pricelist_line_id
6963 );
6964
6965
6966 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
6967 RAISE FND_API.g_exc_unexpected_error;
6968 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
6969 RAISE FND_API.g_exc_error;
6970 END IF;
6971
6972 END IF; -- end if for l_pricelist_header_id
6973
6974 END IF; -- end if for l_qp_profile
6975
6976 p_evo_rec := l_evo_rec;
6977
6978
6979 END create_global_pricing;
6980
6981 --********************************************************
6982
6983
6984 -------------------------------------------------------------
6985 -- Check_Dates_Range
6986 -------------------------------------------------------------
6987 PROCEDURE Check_Dates_Range (
6988 p_evo_rec IN evo_rec_type,
6989 x_return_status OUT NOCOPY VARCHAR2
6990 )IS
6991 l_evo_rec evo_rec_type;
6992 l_start_date DATE;
6993 l_end_date DATE;
6994
6995 -- soagrawa modified table names for following 3 cursors on 24-feb-2003 while fixing INTERNAL bug# 2816673
6996
6997 CURSOR c_program IS
6998 -- SELECT actual_exec_start_date , actual_exec_end_date FROM ams_campaigns_v
6999 SELECT actual_exec_start_date , actual_exec_end_date
7000 FROM ams_campaigns_all_b
7001 WHERE campaign_id = p_evo_rec.parent_id;
7002
7003 CURSOR c_event IS
7004 -- SELECT active_from_date, active_to_date FROM ams_event_headers_v
7005 SELECT active_from_date, active_to_date
7006 FROM ams_event_headers_all_b
7007 WHERE event_header_id = p_evo_rec.event_header_id;
7008
7009 CURSOR c_event_schedule IS
7010 -- SELECT event_start_date, event_end_date FROM ams_event_offers_v
7011 SELECT event_start_date, event_end_date
7012 FROM ams_event_offers_all_b
7013 WHERE event_offer_id = p_evo_rec.parent_event_offer_id and system_status_code<> 'CANCELLED';--implemented ER2381975 by anchaudh.
7014
7015
7016 BEGIN
7017 x_return_status := FND_API.g_ret_sts_success;
7018
7019 IF (p_evo_rec.event_level = 'MAIN') THEN
7020 IF (p_evo_rec.event_object_type = 'EONE') THEN
7021 OPEN c_program;
7022 FETCH c_program INTO l_start_date,l_end_date;
7023 CLOSE c_program;
7024 ELSIF (p_evo_rec.event_object_type = 'EVEO') THEN
7025 OPEN c_event;
7026 FETCH c_event INTO l_start_date,l_end_date;
7027 CLOSE c_event;
7028 END IF;
7029 ELSIF (p_evo_rec.event_level = 'SUB') THEN
7030 OPEN c_event_schedule;
7031 FETCH c_event_schedule INTO l_start_date,l_end_date;
7032 CLOSE c_event_schedule;
7033 END IF;
7034
7035 IF (p_evo_rec.event_start_date IS NOT NULL AND l_start_date IS NOT NULL ) THEN
7036 IF (p_evo_rec.event_start_date < l_start_date) THEN
7037 IF (AMS_DEBUG_HIGH_ON) THEN
7038
7039 Ams_Utility_Pvt.debug_message('The start date of Event can not be lesser than that of Program');
7040 END IF;
7041 IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
7042
7043 IF (p_evo_rec.event_level = 'MAIN') THEN
7044 IF (p_evo_rec.event_object_type = 'EVEO') THEN
7045 Fnd_Message.set_name('AMS', 'AMS_EVT_STDT_LS_EVNT_STDT');
7046 ELSE
7047 Fnd_Message.set_name('AMS', 'AMS_EVT_STDT_LS_PRG_STDT');
7048 END IF;
7049 ELSIF (p_evo_rec.event_level = 'SUB') THEN
7050 Fnd_Message.set_name('AMS', 'AMS_AGEN_STDT_LS_EVNT_STDT');
7051 END IF;
7052
7053 Fnd_Msg_Pub.ADD;
7054 x_return_status := Fnd_Api.g_ret_sts_error;
7055 RETURN;
7056 END IF;
7057 END IF;
7058 END IF;
7059
7060 IF (p_evo_rec.event_level = 'MAIN') THEN
7061 IF (p_evo_rec.event_end_date IS NOT NULL AND l_end_date IS NOT NULL ) THEN
7062 IF (p_evo_rec.event_end_date > l_end_date) THEN
7063 IF (AMS_DEBUG_HIGH_ON) THEN
7064
7065 Ams_Utility_Pvt.debug_message('The end date of Event can not be greater than that of Program');
7066 END IF;
7067 IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
7068
7069 IF (p_evo_rec.event_object_type = 'EVEO') THEN
7070 Fnd_Message.set_name('AMS', 'AMS_EVT_EDDT_GT_EVNT_EDDT');
7071 ELSE
7072 Fnd_Message.set_name('AMS', 'AMS_EVT_EDDT_GT_PRG_EDDT');
7073 END IF;
7074
7075 Fnd_Msg_Pub.ADD;
7076 x_return_status := Fnd_Api.g_ret_sts_error;
7077 RETURN;
7078 END IF;
7079 END IF;
7080 ELSE
7081 IF ( p_evo_rec.event_end_date IS NULL AND l_end_date IS NOT NULL ) THEN
7082 IF (AMS_DEBUG_HIGH_ON) THEN
7083
7084 Ams_Utility_Pvt.debug_message('The end date of Event can not be greater than that of Program');
7085 END IF;
7086 IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_ERROR) THEN
7087
7088 IF (p_evo_rec.event_object_type = 'EVEO') THEN
7089 Fnd_Message.set_name('AMS', 'AMS_EVT_EDDT_GT_EVNT_EDDT');
7090 ELSE
7091 Fnd_Message.set_name('AMS', 'AMS_EVT_EDDT_GT_PRG_EDDT');
7092 END IF;
7093
7094 Fnd_Msg_Pub.ADD;
7095 x_return_status := Fnd_Api.g_ret_sts_error;
7096 RETURN;
7097 END IF;
7098 END IF;
7099 END IF;
7100 END IF;
7101
7102 IF (p_evo_rec.event_level = 'SUB') THEN
7103 IF (p_evo_rec.event_start_date > l_end_date) THEN
7104 Fnd_Message.set_name('AMS', 'AMS_AGEN_STDT_GT_EVNT_EDDT');
7105 Fnd_Msg_Pub.ADD;
7106 x_return_status := Fnd_Api.g_ret_sts_error;
7107 RETURN;
7108 END IF;
7109 END IF;
7110
7111 END Check_Dates_Range;
7112 --------------------------------------------------------------------
7113
7114 -------------------------------------------------------------
7115 -- Check_Parent_Active
7116 -------------------------------------------------------------
7117 PROCEDURE Check_Parent_Active (
7118 p_evo_rec IN evo_rec_type,
7119 x_return_status OUT NOCOPY VARCHAR2
7120 )IS
7121 l_evo_rec evo_rec_type;
7122 l_system_status_code p_evo_rec.system_status_code%TYPE ;
7123
7124 -- soagrawa modified table names for following 2 cursors on 24-feb-2003 while fixing INTERNAL bug# 2816673
7125
7126 CURSOR c_program IS
7127 -- SELECT status_code FROM ams_campaigns_v
7128 SELECT status_code
7129 FROM ams_campaigns_all_b
7130 WHERE campaign_id = p_evo_rec.parent_id;
7131
7132 CURSOR c_event IS
7133 -- SELECT system_status_code FROM ams_event_headers_v
7134 SELECT system_status_code
7135 FROM ams_event_headers_all_b
7136 WHERE event_header_id = p_evo_rec.event_header_id;
7137
7138
7139 BEGIN
7140 x_return_status := FND_API.g_ret_sts_success;
7141
7142 IF (p_evo_rec.event_level = 'MAIN' AND p_evo_rec.active_flag = 'Y' AND p_evo_rec.system_status_code = 'ACTIVE' ) THEN
7143
7144 IF (p_evo_rec.event_object_type = 'EONE') THEN
7145 OPEN c_program;
7146 FETCH c_program INTO l_system_status_code;
7147 CLOSE c_program;
7148 ELSIF (p_evo_rec.event_object_type = 'EVEO') THEN
7149 OPEN c_event;
7150 FETCH c_event INTO l_system_status_code;
7151 CLOSE c_event;
7152 END IF;
7153
7154 IF l_system_status_code <> 'ACTIVE' THEN
7155
7156 IF p_evo_rec.event_object_type = 'EONE' THEN
7157 IF (AMS_DEBUG_HIGH_ON) THEN
7158
7159 Ams_Utility_Pvt.debug_message('The Parent is not Active');
7160 END IF;
7161 Fnd_Message.set_name('AMS', 'AMS_PROGRAM_NOT_ACTIVE');
7162 ELSIF p_evo_rec.event_object_type = 'EVEO' THEN
7163 IF (AMS_DEBUG_HIGH_ON) THEN
7164
7165 Ams_Utility_Pvt.debug_message('The Parent is not Active');
7166 END IF;
7167 Fnd_Message.set_name('AMS', 'AMS_EVENT_NOT_ACTIVE');
7168 END IF;
7169
7170 Fnd_Msg_Pub.ADD;
7171 x_return_status := Fnd_Api.g_ret_sts_error;
7172 RETURN;
7173
7174 END IF;
7175
7176 END IF;
7177
7178 END Check_Parent_Active;
7179
7180 -------------------------------------------------------------
7181 -- Update_Metrics
7182 -------------------------------------------------------------
7183 PROCEDURE Update_Metrics (
7184 p_evo_rec IN evo_rec_type,
7185 x_return_status OUT NOCOPY VARCHAR2,
7186 x_msg_count OUT NOCOPY VARCHAR2,
7187 x_msg_data OUT NOCOPY VARCHAR2
7188 ) IS
7189 l_program_id NUMBER;
7190 l_api_version CONSTANT NUMBER := 1.0;
7191
7192
7193 CURSOR c_program IS
7194 SELECT parent_id from ams_event_offers_v
7195 WHERE event_offer_id = p_evo_rec.event_offer_id;
7196 BEGIN
7197
7198 OPEN c_program;
7199 FETCH c_program INTO l_program_id;
7200 CLOSE c_program;
7201
7202 x_return_status := FND_API.g_ret_sts_success;
7203
7204 /* The AMS_ACTMETRIC_PVT.INVALIDATE_ROLLUP should be called
7205 1) When Program is removed or updated (changed)
7206 2) No need of calling when program is attached first time
7207 */
7208
7209 IF( l_program_id IS NOT NULL )THEN
7210 IF( l_program_id <> nvl(p_evo_rec.parent_id,0))THEN
7211 AMS_ACTMETRIC_PVT.INVALIDATE_ROLLUP(
7212 p_api_version => l_api_version,
7213 p_init_msg_list => Fnd_Api.g_false,
7214 p_commit => Fnd_Api.G_FALSE,
7215
7216 x_return_status => x_return_status,
7217 x_msg_count => x_msg_count,
7218 x_msg_data => x_msg_data,
7219
7220 p_used_by_type => 'EONE',
7221 p_used_by_id => p_evo_rec.event_offer_id
7222 );
7223
7224 IF x_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
7225 RAISE Fnd_Api.g_exc_unexpected_error;
7226 ELSIF x_return_status = Fnd_Api.g_ret_sts_error THEN
7227 RAISE Fnd_Api.g_exc_error;
7228 END IF;
7229 END IF;
7230 END IF;
7231
7232 END Update_Metrics;
7233
7234 -------------------------------------------------------------
7235 -- fulfill_event_offer
7236 -------------------------------------------------------------
7237
7238 PROCEDURE fulfill_event_offer(
7239 p_evo_rec IN evo_rec_type,
7240 x_return_status OUT NOCOPY VARCHAR2
7241 )
7242 IS
7243 CURSOR c_status IS
7244 SELECT system_status_code
7245 FROM ams_user_statuses_b
7246 WHERE user_status_id = p_evo_rec.user_status_id
7247 AND system_status_type = 'AMS_EVENT_STATUS';
7248
7249 CURSOR c_details IS
7250 SELECT event_venue_id, event_start_date, event_end_date, system_status_code
7251 FROM ams_event_offers_all_b
7252 WHERE event_offer_id = p_evo_rec.event_offer_id;
7253
7254 l_return_status VARCHAR2(1);
7255 l_fulfilment VARCHAR2(30);
7256 l_sys_status_code VARCHAR2(30);
7257 l_system_status_code VARCHAR2(30);
7258 l_start_date DATE;
7259 l_end_date DATE;
7260 l_venue_id NUMBER;
7261
7262 l_bind_names JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
7263 l_bind_values JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
7264
7265 BEGIN
7266 x_return_status := FND_API.G_RET_STS_SUCCESS;
7267
7268 -- Start of Fulfillment VMODUR
7269
7270 l_fulfilment := FND_PROFILE.Value('AMS_FULFILL_ENABLE_FLAG');
7271
7272 IF (AMS_DEBUG_HIGH_ON) THEN
7273 AMS_Utility_PVT.debug_message(' Fulfilment Profile :' || l_fulfilment);
7274 END IF;
7275
7276 IF( l_fulfilment <> 'N' )
7277 THEN
7278
7279 /* Get the system_status_code for incoming user_status_id, as we donot send
7280 system_status_code through Rosetta Rec
7281 */
7282 OPEN c_status;
7283 FETCH c_status INTO l_sys_status_code;
7284 CLOSE c_status;
7285
7286 OPEN c_details;
7287 FETCH c_details INTO l_venue_id, l_start_date, l_end_date, l_system_status_code;
7288 CLOSE c_details;
7289
7290
7291
7292 IF (AMS_DEBUG_HIGH_ON) THEN
7293
7294
7295
7296 AMS_Utility_PVT.debug_message('The p_evo_rec.user_status_id is :' || p_evo_rec.user_status_id);
7297
7298 END IF;
7299 IF (AMS_DEBUG_HIGH_ON) THEN
7300
7301 AMS_Utility_PVT.debug_message('The l_sys_status_code is :' || l_sys_status_code);
7302 END IF;
7303 IF (AMS_DEBUG_HIGH_ON) THEN
7304
7305 AMS_Utility_PVT.debug_message('The l_system_status_code is :' || l_system_status_code);
7306 END IF;
7307
7308
7309 IF(l_sys_status_code = 'CANCELLED' AND l_sys_status_code <> l_system_status_code)
7310 THEN
7311
7312 IF (AMS_DEBUG_HIGH_ON) THEN
7313
7314 AMS_Utility_PVT.debug_message('Entered Here');
7315 END IF;
7316 IF (AMS_DEBUG_HIGH_ON) THEN
7317
7318 AMS_Utility_PVT.debug_message('Calling Fulfilment Procedure for Cancel');
7319 END IF;
7320
7321 l_bind_names(1) := 'EVENT_OFFER_ID' ;
7322 l_bind_values(1):= TO_CHAR(p_evo_rec.event_offer_id);
7323
7324 AMS_EvhRules_PVT.Send_Out_Information(
7325 p_object_type => p_evo_rec.event_object_type,
7326 p_object_id => p_evo_rec.event_offer_id,
7327 p_trigger_type => 'CANCELLED',
7328 p_bind_values => l_bind_values,
7329 p_bind_names => l_bind_names, -- Added by ptendulk on 13-Dec-2002 for 1:1 integration
7330 x_return_status => l_return_status
7331 );
7332
7333 l_bind_values.DELETE;
7334 l_bind_names.DELETE;
7335
7336 IF l_return_status <> FND_API.g_ret_sts_success THEN
7337 x_return_status := l_return_status;
7338 RETURN;
7339 END IF;
7340 END IF;
7341
7342 -- anchaudh added starts for ER3037795
7343 IF (l_sys_status_code = 'ACTIVE' AND l_sys_status_code <> l_system_status_code AND l_system_status_code <> 'ON_HOLD') THEN
7344
7345 IF (AMS_DEBUG_HIGH_ON) THEN
7346 AMS_Utility_PVT.debug_message('Calling Fulfilment Procedure for Invitation');
7347 END IF;
7348
7349 l_bind_names(1) := 'EVENT_OFFER_ID' ;
7350 l_bind_values(1):= TO_CHAR(p_evo_rec.event_offer_id);
7351
7352 AMS_EvhRules_PVT.Send_Out_Information(
7353 p_object_type => p_evo_rec.event_object_type,
7354 p_object_id => p_evo_rec.event_offer_id,
7355 p_trigger_type => 'INVITATION',
7356 p_bind_values => l_bind_values,
7357 p_bind_names => l_bind_names,
7358 x_return_status => l_return_status
7359 );
7360
7361 l_bind_values.DELETE;
7362 l_bind_names.DELETE;
7363
7364 IF l_return_status <> FND_API.g_ret_sts_success THEN
7365 x_return_status := l_return_status;
7366 RETURN;
7367 END IF;
7368
7369 END IF;
7370 -- anchaudh added ends for ER3037795
7371
7372
7373 IF (l_sys_status_code = 'ACTIVE'
7374 OR l_sys_status_code = 'ON_HOLD')
7375 THEN
7376 IF ( (l_start_date <> p_evo_rec.event_start_date)
7377 OR (l_end_date <> p_evo_rec.event_end_date ))
7378 THEN
7379 IF (AMS_DEBUG_HIGH_ON) THEN
7380
7381 AMS_Utility_PVT.debug_message('Calling Fulfilment Procedure for Date change');
7382 END IF;
7383 IF (AMS_DEBUG_HIGH_ON) THEN
7384
7385 AMS_Utility_PVT.debug_message('Old start date is '||l_start_date);
7386 END IF;
7387 IF (AMS_DEBUG_HIGH_ON) THEN
7388
7389 AMS_Utility_PVT.debug_message('New start date is '||p_evo_rec.event_start_date);
7390 END IF;
7391 IF (AMS_DEBUG_HIGH_ON) THEN
7392
7393 AMS_Utility_PVT.debug_message('Old end date is '||l_end_date);
7394 END IF;
7395 IF (AMS_DEBUG_HIGH_ON) THEN
7396
7397 AMS_Utility_PVT.debug_message('New end date is '||p_evo_rec.event_end_date);
7398 END IF;
7399
7400 l_bind_names(1) := 'OLD_START_DATE';
7401 l_bind_names(2) := 'OLD_END_DATE';
7402 l_bind_names(3) := 'EVENT_OFFER_ID';
7403
7404 l_bind_values(1):= TO_CHAR(l_start_date);
7405 l_bind_values(2):= TO_CHAR(l_end_date);
7406 l_bind_values(3):= TO_CHAR(p_evo_rec.event_offer_id);
7407
7408
7409
7410 AMS_EvhRules_PVT.Send_Out_Information(
7411 p_object_type => p_evo_rec.event_object_type,
7412 p_object_id => p_evo_rec.event_offer_id,
7413 p_trigger_type => 'DATE_CHANGE',
7414 p_bind_values => l_bind_values,
7415 p_bind_names => l_bind_names,
7416 x_return_status => l_return_status
7417 );
7418
7419 l_bind_values.DELETE;
7420 l_bind_names.DELETE;
7421
7422 IF (AMS_DEBUG_HIGH_ON) THEN
7423
7424 AMS_Utility_PVT.debug_message('The Return Status is ' || l_return_status);
7425 END IF;
7426
7427 IF l_return_status <> FND_API.g_ret_sts_success THEN
7428 x_return_status := l_return_status;
7429 RETURN;
7430 END IF;
7431
7432 END IF;
7433
7434 IF( l_venue_id IS NOT NULL AND l_venue_id <> p_evo_rec.event_venue_id)
7435 THEN
7436 IF (AMS_DEBUG_HIGH_ON) THEN
7437
7438 AMS_Utility_PVT.debug_message('Calling Fulfilment Procedure for Venue change');
7439 END IF;
7440 IF (AMS_DEBUG_HIGH_ON) THEN
7441
7442 AMS_Utility_PVT.debug_message('Old Venue Id is '||l_venue_id);
7443 END IF;
7444 IF (AMS_DEBUG_HIGH_ON) THEN
7445
7446 AMS_Utility_PVT.debug_message('New Venue Id is '||p_evo_rec.event_venue_id);
7447 END IF;
7448
7449 l_bind_names(1) := 'OLD_VENUE_ID';
7450 l_bind_names(2) := 'EVENT_OFFER_ID';
7451
7452 l_bind_values(1):= TO_CHAR(l_venue_id);
7453 l_bind_values(2):= TO_CHAR(p_evo_rec.event_offer_id);
7454
7455
7456 AMS_EvhRules_PVT.Send_Out_Information(
7457 p_object_type => p_evo_rec.event_object_type,
7458 p_object_id => p_evo_rec.event_offer_id,
7459 p_trigger_type => 'VENUE_CHANGE',
7460 p_bind_values => l_bind_values,
7461 p_bind_names => l_bind_names,
7462 x_return_status => l_return_status
7463 );
7464
7465 l_bind_values.DELETE;
7466 l_bind_names.DELETE;
7467
7468 IF (AMS_DEBUG_HIGH_ON) THEN
7469
7470 AMS_Utility_PVT.debug_message('The Return Status is ' || l_return_status);
7471
7472 END IF;
7473
7474 IF l_return_status <> FND_API.g_ret_sts_success THEN
7475 x_return_status := l_return_status;
7476 RETURN;
7477 END IF;
7478
7479 ELSIF( l_venue_id IS NULL
7480 AND p_evo_rec.event_venue_id IS NOT NULL)
7481 THEN
7482
7483 IF (AMS_DEBUG_HIGH_ON) THEN
7484
7485 AMS_Utility_PVT.debug_message('Calling Fulfilment api Venue has been created');
7486
7487 END IF;
7488 IF (AMS_DEBUG_HIGH_ON) THEN
7489
7490 AMS_Utility_PVT.debug_message('Old Venue Id is '||l_venue_id);
7491 END IF;
7492 IF (AMS_DEBUG_HIGH_ON) THEN
7493
7494 AMS_Utility_PVT.debug_message('New Venue Id is '||p_evo_rec.event_venue_id);
7495 END IF;
7496
7497 --defaulting to 0 if its is null
7498 l_venue_id := 0;
7499
7500 l_bind_names(1) := 'OLD_VENUE_ID';
7501 l_bind_names(2) := 'EVENT_OFFER_ID';
7502
7503 l_bind_values(1):= TO_CHAR(l_venue_id);
7504 l_bind_values(2):= TO_CHAR(p_evo_rec.event_offer_id);
7505
7506
7507 AMS_EvhRules_PVT.Send_Out_Information(
7508 p_object_type => p_evo_rec.event_object_type,
7509 p_object_id => p_evo_rec.event_offer_id,
7510 p_trigger_type => 'VENUE_CHANGE',
7511 p_bind_values => l_bind_values,
7512 p_bind_names => l_bind_names,
7513 x_return_status => l_return_status
7514 );
7515
7516 l_bind_values.DELETE;
7517 l_bind_names.DELETE;
7518
7519 IF (AMS_DEBUG_HIGH_ON) THEN
7520
7521 AMS_Utility_PVT.debug_message('The Return Status is ' || l_return_status);
7522
7523 END IF;
7524
7525 IF l_return_status <> FND_API.g_ret_sts_success THEN
7526 x_return_status := l_return_status;
7527 RETURN;
7528 END IF;
7529
7530 END IF;
7531 END IF;
7532
7533 END IF ;
7534
7535 -- End of Fulfillment VMODUR
7536
7537 END fulfill_event_offer;
7538 ---------------------------------------------------------------------
7539 END AMS_EventOffer_PVT;