[Home] [Help]
PACKAGE BODY: APPS.BEN_ICM_LIFE_EVENTS
Source
1 PACKAGE BODY ben_icm_life_events AS
2 /* $Header: benicmle.pkb 120.6 2008/01/07 15:47:08 rtagarra noship $ */
3 /*
4 +==============================================================================+
5 | Copyright (c) 1997 Oracle Corporation |
6 | Redwood Shores, California, USA |
7 | All rights reserved. |
8 +==============================================================================+
9 Name:
10 Determine Rates.
11 Purpose:
12 This process is a wrapper procedure for ICD Life Event.
13 History:
14 Date Who Version What?
15 ---- --- ------- -----
16 10-Feb-07 rtagarra 120.0 Created.
17 28-Mar-07 rtagarra 120.1 GSCC checks.
18 29-Apr-07 rtagarra 120.2 Added code to so tht ICD Team can show proper message.
19 12-Jun-07 rtagarra 120.4 Bug 6038232
20 07-Jan-08 rtagarra 120.5 Changed the message number
21 ----------------------------------------------------------------------------------------------*/
22 --
23 g_benefit_action_id NUMBER;
24 g_package VARCHAR2 (80) := 'ben_icm_life_events';
25 g_debug BOOLEAN := hr_utility.debug_enabled;
26
27 ----------------------------------------------------------------------------------------------
28 --
29 PROCEDURE insert_into_icd (
30 l_icd_chc_rates_tab icd_chc_rates_tab,
31 p_effective_date DATE,
32 p_person_id NUMBER,
33 p_business_group_id NUMBER,
34 p_rt_strt_dt DATE,
35 p_rt_strt_dt_cd VARCHAR2,
36 p_rt_strt_dt_rl NUMBER,
37 p_rt_end_dt DATE,
38 p_rt_end_dt_cd VARCHAR2,
39 p_rt_end_dt_rl NUMBER,
40 j_count NUMBER
41 )
42 IS
43 --
44 CURSOR c_pl_info (p_pl_id NUMBER)
45 IS
46 SELECT pln.rt_strt_dt_cd, pln.rt_strt_dt_rl, pln.rt_end_dt_cd,
47 pln.rt_end_dt_rl, pln.bnf_dsgn_cd
48 FROM ben_pl_f pln
49 WHERE pln.pl_id = p_pl_id
50 AND p_effective_date BETWEEN pln.effective_start_date
51 AND pln.effective_end_date;
52
53 --
54 l_pl_info c_pl_info%ROWTYPE;
55
56 --
57 CURSOR c_abr_info (p_acty_base_rt_id NUMBER)
58 IS
59 SELECT nnmntry_uom, cost_allocation_keyflex_id
60 FROM ben_acty_base_rt_f
61 WHERE acty_base_rt_id = p_acty_base_rt_id
62 AND p_effective_date BETWEEN effective_start_date
63 AND effective_end_date;
64
65 --
66 l_abr_info c_abr_info%ROWTYPE;
67
68 --
69 CURSOR c_next_val
70 IS
71 SELECT ben_icd_chc_rates_s.NEXTVAL
72 FROM DUAL;
73
74 --
75 l_next_val NUMBER;
76 l_bnf_rqd_flag VARCHAR2 (30) := 'N';
77 --
78 BEGIN
79 --
80 g_debug := hr_utility.debug_enabled;
81
82 --
83 IF (g_debug)
84 THEN
85 hr_utility.set_location ('Entering insert_into_icd ', 213);
86 END IF;
87
88 --
89 OPEN c_next_val;
90
91 FETCH c_next_val
92 INTO l_next_val;
93
94 CLOSE c_next_val;
95
96 --
97 OPEN c_pl_info (l_icd_chc_rates_tab (j_count).pl_id);
98
99 FETCH c_pl_info
100 INTO l_pl_info;
101
102 CLOSE c_pl_info;
103
104 --
105 IF l_pl_info.bnf_dsgn_cd = 'R'
106 THEN
107 --
108 l_bnf_rqd_flag := 'Y';
109 --
110 END IF;
111
112 OPEN c_abr_info (l_icd_chc_rates_tab (j_count).acty_base_rt_id);
113
114 FETCH c_abr_info
115 INTO l_abr_info;
116
117 CLOSE c_abr_info;
118
119 --
120 INSERT INTO ben_icd_chc_rates
121 (icd_chc_rate_id, person_id, business_group_id,
122 assignment_id,
123 effective_date,
124 acty_base_rt_id,
125 pl_id,
126 pl_typ_id,
127 oipl_id,
128 opt_id,
129 pl_ordr_num,
130 oipl_ordr_num,
131 nnmntry_uom, rt_strt_dt_cd,
132 rt_strt_dt, rt_strt_dt_rl, rt_end_dt_cd,
133 rt_end_dt, rt_end_dt_rl, bnf_rqd_flag,
134 input_value_id1,
135 input_value1,
136 input_value_id2,
137 input_value2,
138 input_value_id3,
139 input_value3,
140 input_value_id4,
141 input_value4,
142 input_value_id5,
143 input_value5,
144 input_value_id6,
145 input_value6,
146 input_value_id7,
147 input_value7,
148 input_value_id8,
149 input_value8,
150 input_value_id9,
151 input_value9,
152 input_value_id10,
153 input_value10,
154 input_value_id11,
155 input_value11,
156 input_value_id12,
157 input_value12,
158 input_value_id13,
159 input_value13,
160 input_value_id14,
161 input_value14,
162 input_value_id15,
163 input_value15,
164 element_type_id,
165 element_link_id, object_version_number, last_update_date,
166 last_updated_by, creation_date, created_by,
167 cost_allocation_keyflex_id, elig_flag
168 )
169 VALUES (l_next_val, p_person_id, p_business_group_id,
170 l_icd_chc_rates_tab (j_count).l_assignment_id,
171 p_effective_date,
172 l_icd_chc_rates_tab (j_count).acty_base_rt_id,
173 l_icd_chc_rates_tab (j_count).pl_id,
174 l_icd_chc_rates_tab (j_count).pl_typ_id,
175 l_icd_chc_rates_tab (j_count).oipl_id,
176 l_icd_chc_rates_tab (j_count).opt_id,
177 l_icd_chc_rates_tab (j_count).pl_ordr_num,
178 l_icd_chc_rates_tab (j_count).oipl_ordr_num,
179 l_abr_info.nnmntry_uom, l_pl_info.rt_strt_dt_cd,
180 p_rt_strt_dt, p_rt_strt_dt_rl, l_pl_info.rt_end_dt_cd,
181 hr_api.g_eot, p_rt_end_dt_rl, l_bnf_rqd_flag,
182 l_icd_chc_rates_tab (j_count).input_value_id1,
183 l_icd_chc_rates_tab (j_count).input_value1,
184 l_icd_chc_rates_tab (j_count).input_value_id2,
185 l_icd_chc_rates_tab (j_count).input_value2,
186 l_icd_chc_rates_tab (j_count).input_value_id3,
187 l_icd_chc_rates_tab (j_count).input_value3,
188 l_icd_chc_rates_tab (j_count).input_value_id4,
189 l_icd_chc_rates_tab (j_count).input_value4,
190 l_icd_chc_rates_tab (j_count).input_value_id5,
191 l_icd_chc_rates_tab (j_count).input_value5,
192 l_icd_chc_rates_tab (j_count).input_value_id6,
193 l_icd_chc_rates_tab (j_count).input_value6,
194 l_icd_chc_rates_tab (j_count).input_value_id7,
195 l_icd_chc_rates_tab (j_count).input_value7,
196 l_icd_chc_rates_tab (j_count).input_value_id8,
197 l_icd_chc_rates_tab (j_count).input_value8,
198 l_icd_chc_rates_tab (j_count).input_value_id9,
199 l_icd_chc_rates_tab (j_count).input_value9,
200 l_icd_chc_rates_tab (j_count).input_value_id10,
201 l_icd_chc_rates_tab (j_count).input_value10,
202 l_icd_chc_rates_tab (j_count).input_value_id11,
203 l_icd_chc_rates_tab (j_count).input_value11,
204 l_icd_chc_rates_tab (j_count).input_value_id12,
205 l_icd_chc_rates_tab (j_count).input_value12,
206 l_icd_chc_rates_tab (j_count).input_value_id13,
207 l_icd_chc_rates_tab (j_count).input_value13,
208 l_icd_chc_rates_tab (j_count).input_value_id14,
209 l_icd_chc_rates_tab (j_count).input_value14,
210 l_icd_chc_rates_tab (j_count).input_value_id15,
211 l_icd_chc_rates_tab (j_count).input_value15,
212 l_icd_chc_rates_tab (j_count).element_type_id,
213 l_icd_chc_rates_tab (j_count).element_link_id, 1, SYSDATE,
214 fnd_global.user_id, SYSDATE, fnd_global.user_id,
215 l_abr_info.cost_allocation_keyflex_id, 'Y'
216 );
217
218 --
219 IF (g_debug)
220 THEN
221 hr_utility.set_location ('Leaving Insert_Into_Icd ', 213);
222 END IF;
223 --
224 EXCEPTION
225 --
226 WHEN OTHERS
227 THEN
228 --
229 IF (g_debug)
230 THEN
231 hr_utility.set_location ('SQLERRM' || SUBSTR (SQLERRM, 1, 50),
232 121
233 );
234 hr_utility.set_location ('SQLERRM' || SUBSTR (SQLERRM, 51, 100),
235 121
236 );
237 END IF;
238
239 fnd_message.set_name ('PER', 'FFU10_GENERAL_ORACLE_ERROR');
240 fnd_message.set_token ('2', SUBSTR (SQLERRM, 1, 200));
241 ben_icm_life_events.g_cache_pep_object.DELETE;
242 ben_icm_life_events.g_cache_epo_object.DELETE;
243 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
244 ROLLBACK TO elig_per_cache_savepont;
245 --
246 END insert_into_icd;
247 --
248 PROCEDURE create_icd_rates (
249 p_person_id NUMBER,
250 p_effective_date DATE,
251 p_business_group_id NUMBER
252 )
253 IS
254 --
255 l_icd_count NUMBER;
256 cache1 NUMBER;
257 j NUMBER := 1;
258 cache11 NUMBER := 1;
259 cache22 NUMBER := 1;
260 cache2 NUMBER;
261 l_rt_strt_dt DATE;
262 l_rt_strt_dt_cd VARCHAR2 (30);
263 l_rt_strt_dt_rl NUMBER;
264 l_enrt_cvg_end_dt DATE;
265 l_enrt_cvg_end_dt_cd VARCHAR2 (30);
266 l_enrt_cvg_end_dt_rl NUMBER;
267 l_rt_end_dt DATE;
268 l_rt_end_dt_cd VARCHAR2 (30);
269 l_rt_end_dt_rl NUMBER;
270 l_dummy_date DATE;
271 l_dummy_char VARCHAR2 (30);
272 l_dummy_num NUMBER;
273 j_count NUMBER;
274
275 --
276 CURSOR c_opt_id (p_oipl_id NUMBER)
277 IS
278 SELECT opt_id, pl_id
279 FROM ben_oipl_f
280 WHERE oipl_id = p_oipl_id;
281
282 --
283 l_opt_id c_opt_id%ROWTYPE;
284 --
285 BEGIN
286 g_debug := hr_utility.debug_enabled;
287
288 IF g_debug
289 THEN
290 hr_utility.set_location ('Entering create_icd_rates ', 213);
291 END IF;
292
293 l_icd_count := ben_determine_activity_base_rt.l_icd_chc_rates_tab.COUNT;
294
295 IF g_debug
296 THEN
297 hr_utility.set_location ('l_icd_count' || l_icd_count, 31);
298 END IF;
299
300 --
301 --For Plan Level Rates
302 WHILE l_icd_count > 0
303 LOOP
304 --
305 IF ben_determine_activity_base_rt.l_icd_chc_rates_tab (l_icd_count).l_level =
306 'P'
307 THEN
308 --
309 cache1 := ben_icm_life_events.g_cache_pep_object.COUNT;
310
311 IF g_debug
312 THEN
313 hr_utility.set_location ('cache1' || cache1, 111);
314 END IF;
315
316 --
317 cache11 := 1;
318
319 WHILE cache1 > 0
320 LOOP
321 --
322 IF g_debug
323 THEN
324 hr_utility.set_location ('cache1' || cache1, 112);
325 hr_utility.set_location
326 ( 'ben_determine_activity_base_rt.l_icd_chc_rates_tab(l_icd_count).pl_id'
327 || TO_CHAR
328 (ben_determine_activity_base_rt.l_icd_chc_rates_tab
329 (l_icd_count).pl_id
330 ),
331 12
332 );
333 hr_utility.set_location
334 ( 'ben_icm_life_events.g_cache_pep_object (cache11).pl_id'
335 || TO_CHAR
336 (ben_icm_life_events.g_cache_pep_object (cache11).pl_id
337 ),
338 12
339 );
340 END IF;
341
342 --
343 IF ben_determine_activity_base_rt.l_icd_chc_rates_tab
344 (l_icd_count).pl_id =
345 ben_icm_life_events.g_cache_pep_object (cache11).pl_id
346 THEN
347 --
348 IF ben_icm_life_events.g_cache_pep_object (cache11).p_first_elig
349 OR ben_icm_life_events.g_cache_pep_object (cache11).p_newly_elig
350 OR ben_icm_life_events.g_cache_pep_object (cache11).p_still_elig
351 THEN
352 --
353 ben_determine_date.rate_and_coverage_dates
354 (p_cache_mode => TRUE,
355 p_par_ptip_id => ben_icm_life_events.g_cache_pep_object
356 (cache11).ptip_id,
357 p_par_plip_id => ben_icm_life_events.g_cache_pep_object
358 (cache11).plip_id,
359 p_person_id => p_person_id,
360 p_per_in_ler_id => NULL,
361 p_pgm_id => NULL,
362 p_pl_id => ben_icm_life_events.g_cache_pep_object
363 (cache11).pl_id,
364 p_oipl_id => ben_determine_activity_base_rt.l_icd_chc_rates_tab
365 (l_icd_count).oipl_id,
366 p_enrt_perd_id => NULL,
367 p_lee_rsn_id => NULL,
368 p_which_dates_cd => 'R',
369 p_date_mandatory_flag => 'N',
370 p_compute_dates_flag => 'Y',
371 p_business_group_id => p_business_group_id,
372 p_acty_base_rt_id => ben_determine_activity_base_rt.l_icd_chc_rates_tab
373 (l_icd_count).acty_base_rt_id,
374 p_effective_date => p_effective_date,
375 p_lf_evt_ocrd_dt => NULL,
376 p_rt_strt_dt => l_rt_strt_dt,
377 p_rt_strt_dt_cd => l_rt_strt_dt_cd,
378 p_rt_strt_dt_rl => l_rt_strt_dt_rl,
379 p_enrt_cvg_strt_dt => l_dummy_date,
380 p_enrt_cvg_strt_dt_cd => l_dummy_char,
381 p_enrt_cvg_strt_dt_rl => l_dummy_num,
382 p_enrt_cvg_end_dt => l_dummy_date,
383 p_enrt_cvg_end_dt_cd => l_dummy_char,
384 p_enrt_cvg_end_dt_rl => l_dummy_num,
385 p_rt_end_dt => l_dummy_date,
386 p_rt_end_dt_cd => l_dummy_char,
387 p_rt_end_dt_rl => l_dummy_num
388 );
389 --
390 ben_determine_activity_base_rt.l_icd_chc_rates_tab
391 (l_icd_count).oipl_id :=
392 NULL;
393 ben_determine_activity_base_rt.l_icd_chc_rates_tab
394 (l_icd_count).opt_id :=
395 NULL;
396 insert_into_icd
397 (l_icd_chc_rates_tab => ben_determine_activity_base_rt.l_icd_chc_rates_tab,
398 p_effective_date => p_effective_date,
399 p_person_id => p_person_id,
400 p_business_group_id => p_business_group_id,
401 p_rt_strt_dt => l_rt_strt_dt,
402 p_rt_strt_dt_cd => l_rt_strt_dt_cd,
403 p_rt_strt_dt_rl => l_rt_strt_dt_rl,
404 p_rt_end_dt => l_dummy_date,
405 p_rt_end_dt_cd => l_dummy_char,
406 p_rt_end_dt_rl => l_dummy_num,
407 j_count => l_icd_count
408 );
409 --
410 --
411 ELSIF ben_icm_life_events.g_cache_pep_object (cache11).p_newly_inelig
412 THEN
413 --
414 DELETE FROM ben_icd_chc_rates
415 WHERE person_id = p_person_id
416 AND pl_id =
417 ben_icm_life_events.g_cache_pep_object
418 (cache11).pl_id;
419 --
420 END IF;
421 --
422 END IF;
423
424 cache11 := cache11 + 1;
425 --
426 cache1 := cache1 - 1;
427
428 --
429 IF g_debug
430 THEN
431 hr_utility.set_location ('cache1 ' || cache1, 333);
432 hr_utility.set_location ('cache11 ' || cache11, 333);
433 END IF;
434 END LOOP;
435 --
436 END IF;
437
438 j := j + 1;
439 l_icd_count := l_icd_count - 1;
440
441 IF g_debug
442 THEN
443 hr_utility.set_location ('l_icd_count ' || l_icd_count, 333);
444 END IF;
445 --
446 END LOOP;
447
448 --End For Plan Level Rates
449
450 --For OIPL Level Rates
451 l_icd_count := ben_determine_activity_base_rt.l_icd_chc_rates_tab.COUNT;
452
453 IF g_debug
454 THEN
455 hr_utility.set_location ('l_icd_count' || l_icd_count, 33);
456 END IF;
457
458 j := 1;
459
460 -- cache11 := 1;
461 --
462 --For OIPL Level Rates
463 WHILE l_icd_count > 0
464 LOOP
465 --
466 IF ben_determine_activity_base_rt.l_icd_chc_rates_tab (l_icd_count).l_level =
467 'O'
468 THEN
469 cache1 := ben_icm_life_events.g_cache_epo_object.COUNT;
470
471 IF g_debug
472 THEN
473 hr_utility.set_location ('rtagarra cache1' || cache1, 115);
474 END IF;
475
476 cache11 := 1;
477
478 WHILE cache1 > 0
479 LOOP
480 --
481 IF g_debug
482 THEN
483 hr_utility.set_location
484 ( 'l_icd_chc_rates_tab(l_icd_count).opt_id'
485 || ben_determine_activity_base_rt.l_icd_chc_rates_tab
486 (l_icd_count).opt_id,
487 12
488 );
489 hr_utility.set_location
490 ( 'g_cache_epo_object (cache11).opt_id'
491 || ben_icm_life_events.g_cache_epo_object (cache11).opt_id,
492 12
493 );
494 hr_utility.set_location
495 ( 'l_icd_chc_rates_tab(l_icd_count).opt_id'
496 || ben_determine_activity_base_rt.l_icd_chc_rates_tab
497 (l_icd_count).oipl_id,
498 12
499 );
500 --
501 hr_utility.set_location
502 ( 'g_cache_epo_pl_id'
503 || ben_icm_life_events.g_cache_epo_object (cache11).p_pl_id,
504 431234
505 );
506 END IF;
507
508 OPEN c_opt_id
509 (ben_determine_activity_base_rt.l_icd_chc_rates_tab
510 (l_icd_count).oipl_id
511 );
512
513 FETCH c_opt_id
514 INTO l_opt_id;
515 CLOSE c_opt_id;
516
517 --
518 IF g_debug
519 THEN
520 hr_utility.set_location ('l_opt_id.pl_id' || l_opt_id.pl_id,
521 13
522 );
523 END IF;
524 IF l_opt_id.opt_id =
525 ben_icm_life_events.g_cache_epo_object (cache11).opt_id
526 AND l_opt_id.pl_id =
527 ben_icm_life_events.g_cache_epo_object (cache11).p_pl_id
528 THEN
529 --
530 --ben_determine_activity_base_rt.l_icd_chc_rates_tab(l_icd_count).pl_id := l_opt_id.pl_id;
531 IF ben_icm_life_events.g_cache_epo_object (cache11).p_first_elig
532 OR ben_icm_life_events.g_cache_epo_object (cache11).p_newly_elig
533 OR ben_icm_life_events.g_cache_epo_object (cache11).p_still_elig
534 THEN
535 --
536
537 ben_determine_date.rate_and_coverage_dates
538 (p_cache_mode => TRUE,
539 /* p_par_ptip_id => ben_icm_life_events.g_cache_pep_object
540 (cache11).ptip_id,
541 p_par_plip_id => ben_icm_life_events.g_cache_pep_object
542 (cache11).plip_id,*/
543 p_person_id => p_person_id,
544 p_per_in_ler_id => NULL,
545 p_pgm_id => NULL,
546 p_pl_id => ben_icm_life_events.g_cache_epo_object
547 (cache11).p_pl_id,
548 p_oipl_id => ben_determine_activity_base_rt.l_icd_chc_rates_tab
549 (l_icd_count).oipl_id,
550 p_enrt_perd_id => NULL,
551 p_lee_rsn_id => NULL,
552 p_which_dates_cd => 'R',
553 p_date_mandatory_flag => 'N',
554 p_compute_dates_flag => 'Y',
555 p_business_group_id => p_business_group_id,
556 p_acty_base_rt_id => ben_determine_activity_base_rt.l_icd_chc_rates_tab
557 (l_icd_count).acty_base_rt_id,
558 p_effective_date => p_effective_date,
559 p_lf_evt_ocrd_dt => NULL,
560 p_rt_strt_dt => l_rt_strt_dt,
561 p_rt_strt_dt_cd => l_rt_strt_dt_cd,
562 p_rt_strt_dt_rl => l_rt_strt_dt_rl,
563 p_enrt_cvg_strt_dt => l_dummy_date,
564 p_enrt_cvg_strt_dt_cd => l_dummy_char,
565 p_enrt_cvg_strt_dt_rl => l_dummy_num,
566 p_enrt_cvg_end_dt => l_dummy_date,
567 p_enrt_cvg_end_dt_cd => l_dummy_char,
568 p_enrt_cvg_end_dt_rl => l_dummy_num,
569 p_rt_end_dt => l_dummy_date,
570 p_rt_end_dt_cd => l_dummy_char,
571 p_rt_end_dt_rl => l_dummy_num
572 );
573 --
574 insert_into_icd
575 (l_icd_chc_rates_tab => ben_determine_activity_base_rt.l_icd_chc_rates_tab,
576 p_effective_date => p_effective_date,
577 p_person_id => p_person_id,
578 p_business_group_id => p_business_group_id,
579 p_rt_strt_dt => l_rt_strt_dt,
580 p_rt_strt_dt_cd => l_rt_strt_dt_cd,
581 p_rt_strt_dt_rl => l_rt_strt_dt_rl,
582 p_rt_end_dt => l_dummy_date,
583 p_rt_end_dt_cd => l_dummy_char,
584 p_rt_end_dt_rl => l_dummy_num,
585 j_count => l_icd_count
586 );
587 --
588 --
589 ELSIF ben_icm_life_events.g_cache_epo_object (cache11).p_newly_inelig
590 THEN
591 --
592 IF g_debug
593 THEN
594 hr_utility.set_location ('Deleting ICD Rates', 321);
595 END IF;
596
597 DELETE FROM ben_icd_chc_rates
598 WHERE person_id = p_person_id
599 AND opt_id =
600 ben_icm_life_events.g_cache_epo_object
601 (cache11).opt_id;
602 --
603 END IF;
604 --
605 END IF;
606
607 cache11 := cache11 + 1;
608 --
609 cache1 := cache1 - 1;
610 END LOOP;
611 --
612 END IF;
613
614 IF g_debug
615 THEN
616 hr_utility.set_location ('cache1 ' || cache1, 333);
617 hr_utility.set_location ('cache11 ' || cache11, 333);
618 END IF;
619
620 j := j + 1;
621 l_icd_count := l_icd_count - 1;
622 --
623 END LOOP;
624
625 --
626 IF g_debug
627 THEN
628 hr_utility.set_location ('Leaving create_icd_rates ', 213);
629 END IF;
630 EXCEPTION
631 --
632 WHEN OTHERS
633 THEN
634 --
635 IF g_debug
636 THEN
637 hr_utility.set_location ('SQLERRM' || SUBSTR (SQLERRM, 1, 50),
638 121
639 );
640 END IF;
641
642 fnd_message.set_name ('PER', 'FFU10_GENERAL_ORACLE_ERROR');
643 fnd_message.set_token ('2', SUBSTR (SQLERRM, 1, 200));
644 ben_icm_life_events.g_cache_pep_object.DELETE;
645 ben_icm_life_events.g_cache_epo_object.DELETE;
646 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
647 ROLLBACK TO elig_per_cache_savepont;
648 END create_icd_rates;
649 --
650 PROCEDURE create_pep_epo_rec (p_person_id NUMBER)
651 IS
652 --
653 l_pep_count NUMBER;
654 l_count2 NUMBER;
655 l_effective_start_date DATE;
656 l_effective_end_date DATE;
657 l_count NUMBER := 1;
658 l_icd_count NUMBER;
659 v_count NUMBER := 1;
660 l_object_version_number NUMBER;
661
662 --
663 /* CURSOR c_trk_inelig_per_flag (p_opt_id NUMBER)
664 IS
665 SELECT trk_inelig_per_flag
666 FROM ben_oipl_f
667 WHERE opt_id = p_opt_id;
668
669 --
670 l_trk_inelig_per_flag ben_oipl_f.trk_inelig_per_flag%TYPE;
671
672 --
673 CURSOR c_pep_ovn (p_elig_per_id IN NUMBER)
674 IS
675 SELECT object_version_number
676 FROM ben_elig_per_f pep
677 WHERE pep.elig_per_id = p_elig_per_id;
678
679 --
680 l_pep_ovn NUMBER;
681
682 --
683 CURSOR c_epo_ovn (p_elig_per_opt_id IN NUMBER)
684 IS
685 SELECT object_version_number
686 FROM ben_elig_per_opt_f epo
687 WHERE epo.elig_per_opt_id = p_elig_per_opt_id;
688
689 --
690 l_epo_ovn NUMBER;*/
691 --
692 BEGIN
693 --
694 g_debug := hr_utility.debug_enabled;
695 IF g_debug
696 THEN
697 hr_utility.set_location ('RTAGARRA: Entering CREATE_PEP_EPO_REC',
698 12121
699 );
700 END IF;
701
702 --
703 l_pep_count := ben_icm_life_events.g_cache_pep_object.COUNT;
704 l_count2 := ben_icm_life_events.g_cache_epo_object.COUNT;
705
706 --
707 IF g_debug
708 THEN
709 hr_utility.set_location ('l_pep_count ' || l_pep_count, 12121);
710 hr_utility.set_location ('l_count2 ' || l_count2, 12121);
711 END IF;
712
713 WHILE l_pep_count > 0
714 LOOP
715 --
716 /* OPEN c_pep_ovn
717 (ben_icm_life_events.g_cache_pep_object (l_count).elig_per_id
718 );
719
720 FETCH c_pep_ovn
721 INTO l_pep_ovn;
722
723 CLOSE c_pep_ovn;*/
724
725 --
726 IF --ben_icm_life_events.g_cache_pep_object (l_count).p_still_inelig OR
727 ben_icm_life_events.g_cache_pep_object (l_count).p_still_elig
728 THEN
729 --
730 IF g_debug
731 THEN
732 hr_utility.set_location ('Still ELig or Still Inelig', 31);
733 END IF;
734 --
735 ben_eligible_person_perf_api.update_perf_eligible_person
736 (p_validate => FALSE,
737 p_elig_per_id => ben_icm_life_events.g_cache_pep_object
738 (l_count).elig_per_id,
739 p_per_in_ler_id => NULL,
740 p_effective_start_date => l_effective_start_date,
741 p_effective_end_date => l_effective_end_date,
742 p_elig_flag => ben_icm_life_events.g_cache_pep_object
743 (l_count).elig_flag,
744 p_prtn_strt_dt => ben_icm_life_events.g_cache_pep_object
745 (l_count).prtn_strt_dt,
746 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
747 (l_count).rt_comp_ref_amt,
748 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
749 (l_count).rt_cmbn_age_n_los_val,
750 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
751 (l_count).rt_comp_ref_uom,
752 p_rt_age_val => ben_icm_life_events.g_cache_pep_object
753 (l_count).rt_age_val,
754 p_rt_los_val => ben_icm_life_events.g_cache_pep_object
755 (l_count).rt_los_val,
756 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
757 (l_count).rt_hrs_wkd_val,
758 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
759 (l_count).rt_hrs_wkd_bndry_perd_cd,
760 p_rt_age_uom => ben_icm_life_events.g_cache_pep_object
761 (l_count).rt_age_uom,
762 p_rt_los_uom => ben_icm_life_events.g_cache_pep_object
763 (l_count).rt_los_uom,
764 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
765 (l_count).rt_pct_fl_tm_val,
766 p_rt_frz_los_flag => ben_icm_life_events.g_cache_pep_object
767 (l_count).rt_frz_los_flag,
768 p_rt_frz_age_flag => ben_icm_life_events.g_cache_pep_object
769 (l_count).rt_frz_age_flag,
770 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
771 (l_count).rt_frz_cmp_lvl_flag,
772 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
773 (l_count).rt_frz_pct_fl_tm_flag,
774 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
775 (l_count).rt_frz_hrs_wkd_flag,
776 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
777 (l_count).rt_frz_comb_age_and_los_flag,
778 p_once_r_cntug_cd => ben_icm_life_events.g_cache_pep_object
779 (l_count).once_r_cntug_cd,
780 p_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
781 (l_count).comp_ref_amt,
782 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
783 (l_count).cmbn_age_n_los_val,
784 p_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
785 (l_count).comp_ref_uom,
786 p_age_val => ben_icm_life_events.g_cache_pep_object
787 (l_count).age_val,
788 p_los_val => ben_icm_life_events.g_cache_pep_object
789 (l_count).los_val,
790 p_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
791 (l_count).hrs_wkd_val,
792 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
793 (l_count).hrs_wkd_bndry_perd_cd,
794 p_age_uom => ben_icm_life_events.g_cache_pep_object
795 (l_count).age_uom,
796 p_los_uom => ben_icm_life_events.g_cache_pep_object
797 (l_count).los_uom,
798 p_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
799 (l_count).pct_fl_tm_val,
800 p_frz_los_flag => ben_icm_life_events.g_cache_pep_object
801 (l_count).frz_los_flag,
802 p_frz_age_flag => ben_icm_life_events.g_cache_pep_object
803 (l_count).frz_age_flag,
804 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
805 (l_count).frz_cmp_lvl_flag,
806 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
807 (l_count).frz_pct_fl_tm_flag,
808 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
809 (l_count).frz_hrs_wkd_flag,
810 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
811 (l_count).frz_comb_age_and_los_flag,
812 p_wait_perd_cmpltn_dt => ben_icm_life_events.g_cache_pep_object
813 (l_count).wait_perd_cmpltn_dt,
814 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_pep_object
815 (l_count).wait_perd_strt_dt,
816 p_object_version_number => ben_icm_life_events.g_cache_pep_object(l_count).object_version_number,
817 p_effective_date => ben_icm_life_events.g_cache_pep_object
818 (l_count).p_effective_date,
819 p_datetrack_mode => ben_icm_life_events.g_cache_pep_object(l_count).p_datetrack_mode,
820 p_program_application_id => fnd_global.prog_appl_id,
821 p_program_id => fnd_global.conc_program_id,
822 p_request_id => fnd_global.conc_request_id,
823 p_program_update_date => SYSDATE
824 );
825 --
826 ELSIF ben_icm_life_events.g_cache_pep_object (l_count).p_first_elig
827 OR ben_icm_life_events.g_cache_pep_object (l_count).p_first_inelig
828 --note track inelig flag condition always true for icm
829 THEN
830 --
831 IF g_debug
832 THEN
833 hr_utility.set_location ('Insert Mode for PEP' ||ben_icm_life_events.g_cache_pep_object (l_count).object_version_number, 1234);
834 END IF;
835
836 --
837 INSERT INTO ben_elig_per_f
838 (elig_per_id,
839 effective_start_date,
840 effective_end_date,
841 business_group_id,
842 pl_id,
843 plip_id,
844 ptip_id,
845 pgm_id,
846 ler_id,
847 person_id, per_in_ler_id,
848 dpnt_othr_pl_cvrd_rl_flag,
849 pl_key_ee_flag,
850 pl_hghly_compd_flag,
851 prtn_ovridn_flag,
852 prtn_ovridn_thru_dt,
853 no_mx_prtn_ovrid_thru_flag,
854 prtn_strt_dt,
855 dstr_rstcn_flag,
856 pl_wvd_flag,
857 wait_perd_cmpltn_dt,
858 wait_perd_strt_dt,
859 elig_flag,
860 comp_ref_amt,
861 cmbn_age_n_los_val,
862 comp_ref_uom,
863 age_val,
864 age_uom,
865 los_val,
866 los_uom,
867 hrs_wkd_val,
868 hrs_wkd_bndry_perd_cd,
869 pct_fl_tm_val,
870 frz_los_flag,
871 frz_age_flag,
872 frz_cmp_lvl_flag,
873 frz_pct_fl_tm_flag,
874 frz_hrs_wkd_flag,
875 frz_comb_age_and_los_flag,
876 rt_comp_ref_amt,
877 rt_cmbn_age_n_los_val,
878 rt_comp_ref_uom,
879 rt_age_val,
880 rt_age_uom,
881 rt_los_val,
882 rt_los_uom,
883 rt_hrs_wkd_val,
884 rt_hrs_wkd_bndry_perd_cd,
885 rt_pct_fl_tm_val,
886 rt_frz_los_flag,
887 rt_frz_age_flag,
888 rt_frz_cmp_lvl_flag,
889 rt_frz_pct_fl_tm_flag,
890 rt_frz_hrs_wkd_flag,
891 rt_frz_comb_age_and_los_flag,
892 once_r_cntug_cd,
893 pl_ordr_num,
894 plip_ordr_num,
895 ptip_ordr_num,
896 object_version_number,
897 program_application_id,
898 program_id,
899 request_id,
900 program_update_date
901 )
902 VALUES (ben_icm_life_events.g_cache_pep_object (l_count).elig_per_id,
903 ben_icm_life_events.g_cache_pep_object (l_count).effective_start_date,
904 ben_icm_life_events.g_cache_pep_object (l_count).effective_end_date,
905 ben_icm_life_events.g_cache_pep_object (l_count).business_group_id,
906 ben_icm_life_events.g_cache_pep_object (l_count).pl_id,
907 ben_icm_life_events.g_cache_pep_object (l_count).plip_id,
908 ben_icm_life_events.g_cache_pep_object (l_count).ptip_id,
909 ben_icm_life_events.g_cache_pep_object (l_count).pgm_id,
910 ben_icm_life_events.g_cache_pep_object (l_count).ler_id,
911 p_person_id, NULL,
912 ben_icm_life_events.g_cache_pep_object (l_count).dpnt_othr_pl_cvrd_rl_flag,
913 ben_icm_life_events.g_cache_pep_object (l_count).pl_key_ee_flag,
914 ben_icm_life_events.g_cache_pep_object (l_count).pl_hghly_compd_flag,
915 ben_icm_life_events.g_cache_pep_object (l_count).prtn_ovridn_flag,
916 ben_icm_life_events.g_cache_pep_object (l_count).prtn_ovridn_thru_dt,
917 ben_icm_life_events.g_cache_pep_object (l_count).no_mx_prtn_ovrid_thru_flag,
918 ben_icm_life_events.g_cache_pep_object (l_count).prtn_strt_dt,
919 ben_icm_life_events.g_cache_pep_object (l_count).dstr_rstcn_flag,
920 ben_icm_life_events.g_cache_pep_object (l_count).pl_wvd_flag,
921 ben_icm_life_events.g_cache_pep_object (l_count).wait_perd_cmpltn_dt,
922 ben_icm_life_events.g_cache_pep_object (l_count).wait_perd_strt_dt,
923 ben_icm_life_events.g_cache_pep_object (l_count).elig_flag,
924 ben_icm_life_events.g_cache_pep_object (l_count).comp_ref_amt,
925 ben_icm_life_events.g_cache_pep_object (l_count).cmbn_age_n_los_val,
926 ben_icm_life_events.g_cache_pep_object (l_count).comp_ref_uom,
927 ben_icm_life_events.g_cache_pep_object (l_count).age_val,
928 ben_icm_life_events.g_cache_pep_object (l_count).age_uom,
929 ben_icm_life_events.g_cache_pep_object (l_count).los_val,
930 ben_icm_life_events.g_cache_pep_object (l_count).los_uom,
931 ben_icm_life_events.g_cache_pep_object (l_count).hrs_wkd_val,
932 ben_icm_life_events.g_cache_pep_object (l_count).hrs_wkd_bndry_perd_cd,
933 ben_icm_life_events.g_cache_pep_object (l_count).pct_fl_tm_val,
934 ben_icm_life_events.g_cache_pep_object (l_count).frz_los_flag,
935 ben_icm_life_events.g_cache_pep_object (l_count).frz_age_flag,
936 ben_icm_life_events.g_cache_pep_object (l_count).frz_cmp_lvl_flag,
937 ben_icm_life_events.g_cache_pep_object (l_count).frz_pct_fl_tm_flag,
938 ben_icm_life_events.g_cache_pep_object (l_count).frz_hrs_wkd_flag,
939 ben_icm_life_events.g_cache_pep_object (l_count).frz_comb_age_and_los_flag,
940 ben_icm_life_events.g_cache_pep_object (l_count).rt_comp_ref_amt,
941 ben_icm_life_events.g_cache_pep_object (l_count).rt_cmbn_age_n_los_val,
942 ben_icm_life_events.g_cache_pep_object (l_count).rt_comp_ref_uom,
943 ben_icm_life_events.g_cache_pep_object (l_count).rt_age_val,
944 ben_icm_life_events.g_cache_pep_object (l_count).rt_age_uom,
945 ben_icm_life_events.g_cache_pep_object (l_count).rt_los_val,
946 ben_icm_life_events.g_cache_pep_object (l_count).rt_los_uom,
947 ben_icm_life_events.g_cache_pep_object (l_count).rt_hrs_wkd_val,
948 ben_icm_life_events.g_cache_pep_object (l_count).rt_hrs_wkd_bndry_perd_cd,
949 ben_icm_life_events.g_cache_pep_object (l_count).rt_pct_fl_tm_val,
950 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_los_flag,
951 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_age_flag,
952 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_cmp_lvl_flag,
953 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_pct_fl_tm_flag,
954 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_hrs_wkd_flag,
955 ben_icm_life_events.g_cache_pep_object (l_count).rt_frz_comb_age_and_los_flag,
956 ben_icm_life_events.g_cache_pep_object (l_count).once_r_cntug_cd,
957 ben_icm_life_events.g_cache_pep_object (l_count).pl_ordr_num,
958 ben_icm_life_events.g_cache_pep_object (l_count).plip_ordr_num,
959 ben_icm_life_events.g_cache_pep_object (l_count).ptip_ordr_num,
960 ben_icm_life_events.g_cache_pep_object (l_count).object_version_number,
961 ben_icm_life_events.g_cache_pep_object (l_count).program_application_id,
962 ben_icm_life_events.g_cache_pep_object (l_count).program_id,
963 ben_icm_life_events.g_cache_pep_object (l_count).request_id,
964 ben_icm_life_events.g_cache_pep_object (l_count).program_update_date
965 );
966 --
967 --
968 ELSIF ben_icm_life_events.g_cache_pep_object (l_count).p_newly_inelig
969 THEN
970 --
971 IF g_debug
972 THEN
973 hr_utility.set_location ('Newly Ineligible', 123);
974 END IF;
975
976 --
977 ben_eligible_person_perf_api.update_perf_eligible_person
978 (p_validate => FALSE,
979 p_elig_per_id => ben_icm_life_events.g_cache_pep_object
980 (l_count).elig_per_id,
981 p_per_in_ler_id => NULL,
982 p_effective_start_date => l_effective_start_date,
983 p_effective_end_date => l_effective_end_date,
984 p_elig_flag => ben_icm_life_events.g_cache_pep_object
985 (l_count).elig_flag,
986 p_prtn_strt_dt => ben_icm_life_events.g_cache_pep_object
987 (l_count).prtn_strt_dt,
988 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
989 (l_count).rt_comp_ref_amt,
990 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
991 (l_count).rt_cmbn_age_n_los_val,
992 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
993 (l_count).rt_comp_ref_uom,
994 p_rt_age_val => ben_icm_life_events.g_cache_pep_object
995 (l_count).rt_age_val,
996 p_rt_los_val => ben_icm_life_events.g_cache_pep_object
997 (l_count).rt_los_val,
998 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
999 (l_count).rt_hrs_wkd_val,
1000 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
1001 (l_count).rt_hrs_wkd_bndry_perd_cd,
1002 p_rt_age_uom => ben_icm_life_events.g_cache_pep_object
1003 (l_count).rt_age_uom,
1004 p_rt_los_uom => ben_icm_life_events.g_cache_pep_object
1005 (l_count).rt_los_uom,
1006 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
1007 (l_count).rt_pct_fl_tm_val,
1008 p_rt_frz_los_flag => ben_icm_life_events.g_cache_pep_object
1009 (l_count).rt_frz_los_flag,
1010 p_rt_frz_age_flag => ben_icm_life_events.g_cache_pep_object
1011 (l_count).rt_frz_age_flag,
1012 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
1013 (l_count).rt_frz_cmp_lvl_flag,
1014 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
1015 (l_count).rt_frz_pct_fl_tm_flag,
1016 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
1017 (l_count).rt_frz_hrs_wkd_flag,
1018 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
1019 (l_count).rt_frz_comb_age_and_los_flag,
1020 p_once_r_cntug_cd => ben_icm_life_events.g_cache_pep_object
1021 (l_count).once_r_cntug_cd,
1022 p_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
1023 (l_count).comp_ref_amt,
1024 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
1025 (l_count).cmbn_age_n_los_val,
1026 p_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
1027 (l_count).comp_ref_uom,
1028 p_age_val => ben_icm_life_events.g_cache_pep_object
1029 (l_count).age_val,
1030 p_los_val => ben_icm_life_events.g_cache_pep_object
1031 (l_count).los_val,
1032 p_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
1033 (l_count).hrs_wkd_val,
1034 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
1035 (l_count).hrs_wkd_bndry_perd_cd,
1036 p_age_uom => ben_icm_life_events.g_cache_pep_object
1037 (l_count).age_uom,
1038 p_los_uom => ben_icm_life_events.g_cache_pep_object
1039 (l_count).los_uom,
1040 p_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
1041 (l_count).pct_fl_tm_val,
1042 p_frz_los_flag => ben_icm_life_events.g_cache_pep_object
1043 (l_count).frz_los_flag,
1044 p_frz_age_flag => ben_icm_life_events.g_cache_pep_object
1045 (l_count).frz_age_flag,
1046 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
1047 (l_count).frz_cmp_lvl_flag,
1048 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
1049 (l_count).frz_pct_fl_tm_flag,
1050 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
1051 (l_count).frz_hrs_wkd_flag,
1052 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
1053 (l_count).frz_comb_age_and_los_flag,
1054 p_wait_perd_cmpltn_dt => ben_icm_life_events.g_cache_pep_object
1055 (l_count).wait_perd_cmpltn_dt,
1056 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_pep_object
1057 (l_count).wait_perd_strt_dt,
1058 p_object_version_number => ben_icm_life_events.g_cache_pep_object(l_count).object_version_number,
1059 p_effective_date => ben_icm_life_events.g_cache_pep_object
1060 (l_count).p_effective_date,
1061 p_datetrack_mode => ben_icm_life_events.g_cache_pep_object
1062 (l_count).p_datetrack_mode,
1063 p_program_application_id => fnd_global.prog_appl_id,
1064 p_program_id => fnd_global.conc_program_id,
1065 p_request_id => fnd_global.conc_request_id,
1066 p_program_update_date => SYSDATE
1067 );
1068 --
1069 ELSIF ben_icm_life_events.g_cache_pep_object (l_count).p_newly_elig
1070 --ie prev inelig but since for
1071 --icm track flag is always 'Y' so we have record just need to update it
1072 THEN
1073 --
1074 IF g_debug
1075 THEN
1076 hr_utility.set_location ('Newly Eligible', 121);
1077 END IF;
1078
1079 --
1080 ben_eligible_person_perf_api.update_perf_eligible_person
1081 (p_validate => FALSE,
1082 p_elig_per_id => ben_icm_life_events.g_cache_pep_object
1083 (l_count).elig_per_id,
1084 p_per_in_ler_id => NULL,
1085 p_effective_start_date => l_effective_start_date,
1086 p_effective_end_date => l_effective_end_date,
1087 p_elig_flag => ben_icm_life_events.g_cache_pep_object
1088 (l_count).elig_flag,
1089 p_prtn_strt_dt => ben_icm_life_events.g_cache_pep_object
1090 (l_count).prtn_strt_dt,
1091 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
1092 (l_count).rt_comp_ref_amt,
1093 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
1094 (l_count).rt_cmbn_age_n_los_val,
1095 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
1096 (l_count).rt_comp_ref_uom,
1097 p_rt_age_val => ben_icm_life_events.g_cache_pep_object
1098 (l_count).rt_age_val,
1099 p_rt_los_val => ben_icm_life_events.g_cache_pep_object
1100 (l_count).rt_los_val,
1101 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
1102 (l_count).rt_hrs_wkd_val,
1103 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
1104 (l_count).rt_hrs_wkd_bndry_perd_cd,
1105 p_rt_age_uom => ben_icm_life_events.g_cache_pep_object
1106 (l_count).rt_age_uom,
1107 p_rt_los_uom => ben_icm_life_events.g_cache_pep_object
1108 (l_count).rt_los_uom,
1109 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
1110 (l_count).rt_pct_fl_tm_val,
1111 p_rt_frz_los_flag => ben_icm_life_events.g_cache_pep_object
1112 (l_count).rt_frz_los_flag,
1113 p_rt_frz_age_flag => ben_icm_life_events.g_cache_pep_object
1114 (l_count).rt_frz_age_flag,
1115 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
1116 (l_count).rt_frz_cmp_lvl_flag,
1117 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
1118 (l_count).rt_frz_pct_fl_tm_flag,
1119 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
1120 (l_count).rt_frz_hrs_wkd_flag,
1121 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
1122 (l_count).rt_frz_comb_age_and_los_flag,
1123 p_once_r_cntug_cd => ben_icm_life_events.g_cache_pep_object
1124 (l_count).once_r_cntug_cd,
1125 p_comp_ref_amt => ben_icm_life_events.g_cache_pep_object
1126 (l_count).comp_ref_amt,
1127 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_pep_object
1128 (l_count).cmbn_age_n_los_val,
1129 p_comp_ref_uom => ben_icm_life_events.g_cache_pep_object
1130 (l_count).comp_ref_uom,
1131 p_age_val => ben_icm_life_events.g_cache_pep_object
1132 (l_count).age_val,
1133 p_los_val => ben_icm_life_events.g_cache_pep_object
1134 (l_count).los_val,
1135 p_hrs_wkd_val => ben_icm_life_events.g_cache_pep_object
1136 (l_count).hrs_wkd_val,
1137 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_pep_object
1138 (l_count).hrs_wkd_bndry_perd_cd,
1139 p_age_uom => ben_icm_life_events.g_cache_pep_object
1140 (l_count).age_uom,
1141 p_los_uom => ben_icm_life_events.g_cache_pep_object
1142 (l_count).los_uom,
1143 p_pct_fl_tm_val => ben_icm_life_events.g_cache_pep_object
1144 (l_count).pct_fl_tm_val,
1145 p_frz_los_flag => ben_icm_life_events.g_cache_pep_object
1146 (l_count).frz_los_flag,
1147 p_frz_age_flag => ben_icm_life_events.g_cache_pep_object
1148 (l_count).frz_age_flag,
1149 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_pep_object
1150 (l_count).frz_cmp_lvl_flag,
1151 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_pep_object
1152 (l_count).frz_pct_fl_tm_flag,
1153 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_pep_object
1154 (l_count).frz_hrs_wkd_flag,
1155 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_pep_object
1156 (l_count).frz_comb_age_and_los_flag,
1157 p_wait_perd_cmpltn_dt => ben_icm_life_events.g_cache_pep_object
1158 (l_count).wait_perd_cmpltn_dt,
1159 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_pep_object
1160 (l_count).wait_perd_strt_dt,
1161 p_object_version_number => ben_icm_life_events.g_cache_pep_object(l_count).object_version_number,
1162 p_effective_date => ben_icm_life_events.g_cache_pep_object
1163 (l_count).p_effective_date,
1164 p_datetrack_mode => ben_icm_life_events.g_cache_pep_object
1165 (l_count).p_datetrack_mode,
1166 p_program_application_id => fnd_global.prog_appl_id,
1167 p_program_id => fnd_global.conc_program_id,
1168 p_request_id => fnd_global.conc_request_id,
1169 p_program_update_date => SYSDATE
1170 );
1171 --
1172 END IF;
1173
1174 --
1175 l_count := l_count + 1;
1176 l_pep_count := l_pep_count - 1;
1177 --
1178 END LOOP;
1179
1180 --
1181 WHILE l_count2 > 0
1182 LOOP
1183 --
1184 /* OPEN c_trk_inelig_per_flag
1185 (ben_icm_life_events.g_cache_epo_object (l_count2).opt_id
1186 );
1187
1188 FETCH c_trk_inelig_per_flag
1189 INTO l_trk_inelig_per_flag;
1190
1191 CLOSE c_trk_inelig_per_flag;
1192
1193 OPEN c_epo_ovn
1194 (ben_icm_life_events.g_cache_epo_object (v_count).elig_per_opt_id
1195 );
1196
1197 FETCH c_epo_ovn
1198 INTO l_epo_ovn;
1199
1200 CLOSE c_epo_ovn;*/
1201 -- Now for ICD Option also we ll make trk_inelig_per_flag 'Y' so need of this cursor.
1202 --
1203 IF --(ben_icm_life_events.g_cache_epo_object (v_count).p_still_inelig OR
1204 ben_icm_life_events.g_cache_epo_object (v_count).p_still_elig
1205 AND ben_icm_life_events.g_cache_epo_object(v_count).p_datetrack_mode is not null
1206 THEN
1207 --
1208 IF g_debug
1209 THEN
1210 hr_utility.set_location ('Still ELig or Still Inelig'|| ben_icm_life_events.g_cache_epo_object(v_count).elig_per_opt_id, 125);
1211 END IF;
1212 --
1213 ben_eligible_person_perf_api.update_perf_elig_person_option
1214 (p_validate => FALSE,
1215 p_elig_per_opt_id => ben_icm_life_events.g_cache_epo_object
1216 (v_count).elig_per_opt_id,
1217 p_elig_per_id => ben_icm_life_events.g_cache_epo_object
1218 (v_count).elig_per_id,
1219 p_effective_start_date => l_effective_start_date,
1220 p_effective_end_date => l_effective_end_date,
1221 p_prtn_ovridn_flag => ben_icm_life_events.g_cache_epo_object
1222 (v_count).prtn_ovridn_flag,
1223 p_prtn_ovridn_thru_dt => ben_icm_life_events.g_cache_epo_object
1224 (v_count).prtn_ovridn_thru_dt,
1225 p_no_mx_prtn_ovrid_thru_flag => ben_icm_life_events.g_cache_epo_object
1226 (v_count).no_mx_prtn_ovrid_thru_flag,
1227 p_elig_flag => ben_icm_life_events.g_cache_epo_object
1228 (v_count).elig_flag,
1229 p_prtn_strt_dt => ben_icm_life_events.g_cache_epo_object
1230 (v_count).prtn_strt_dt,
1231 p_prtn_end_dt => ben_icm_life_events.g_cache_epo_object
1232 (v_count).prtn_end_dt,
1233 p_wait_perd_cmpltn_date => ben_icm_life_events.g_cache_epo_object
1234 (v_count).wait_perd_cmpltn_date,
1235 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_epo_object
1236 (v_count).wait_perd_strt_dt
1237 -- ,p_prtn_ovridn_rsn_cd =>ben_icm_life_events.g_cache_epo_object(v_count).prtn_ovridn_rsn_cd
1238 ,
1239 p_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1240 (v_count).pct_fl_tm_val,
1241 p_opt_id => ben_icm_life_events.g_cache_epo_object
1242 (v_count).opt_id,
1243 p_per_in_ler_id => NULL,
1244 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1245 (v_count).rt_comp_ref_amt,
1246 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1247 (v_count).rt_cmbn_age_n_los_val,
1248 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1249 (v_count).rt_comp_ref_uom,
1250 p_rt_age_val => ben_icm_life_events.g_cache_epo_object
1251 (v_count).rt_age_val,
1252 p_rt_los_val => ben_icm_life_events.g_cache_epo_object
1253 (v_count).rt_los_val,
1254 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1255 (v_count).rt_hrs_wkd_val,
1256 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1257 (v_count).rt_hrs_wkd_bndry_perd_cd,
1258 p_rt_age_uom => ben_icm_life_events.g_cache_epo_object
1259 (v_count).rt_age_uom,
1260 p_rt_los_uom => ben_icm_life_events.g_cache_epo_object
1261 (v_count).rt_los_uom,
1262 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1263 (v_count).rt_pct_fl_tm_val,
1264 p_rt_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1265 (v_count).rt_frz_los_flag,
1266 p_rt_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1267 (v_count).rt_frz_age_flag,
1268 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1269 (v_count).rt_frz_cmp_lvl_flag,
1270 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1271 (v_count).rt_frz_pct_fl_tm_flag,
1272 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1273 (v_count).rt_frz_hrs_wkd_flag,
1274 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1275 (v_count).rt_frz_comb_age_and_los_flag,
1276 p_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1277 (v_count).comp_ref_amt,
1278 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1279 (v_count).cmbn_age_n_los_val,
1280 p_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1281 (v_count).comp_ref_uom,
1282 p_age_val => ben_icm_life_events.g_cache_epo_object
1283 (v_count).age_val,
1284 p_los_val => ben_icm_life_events.g_cache_epo_object
1285 (v_count).los_val,
1286 p_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1287 (v_count).hrs_wkd_val,
1288 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1289 (v_count).hrs_wkd_bndry_perd_cd,
1290 p_age_uom => ben_icm_life_events.g_cache_epo_object
1291 (v_count).age_uom,
1292 p_los_uom => ben_icm_life_events.g_cache_epo_object
1293 (v_count).los_uom,
1294 p_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1295 (v_count).frz_los_flag,
1296 p_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1297 (v_count).frz_age_flag,
1298 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1299 (v_count).frz_cmp_lvl_flag,
1300 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1301 (v_count).frz_pct_fl_tm_flag,
1302 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1303 (v_count).frz_hrs_wkd_flag,
1304 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1305 (v_count).frz_comb_age_and_los_flag
1306 -- ,p_ovrid_svc_dt =>ben_icm_life_events.g_cache_epo_object(v_count).ovrid_svc_dt
1307 ,
1308 p_inelg_rsn_cd => ben_icm_life_events.g_cache_epo_object
1309 (v_count).inelg_rsn_cd,
1310 p_once_r_cntug_cd => ben_icm_life_events.g_cache_epo_object
1311 (v_count).once_r_cntug_cd,
1312 p_oipl_ordr_num => ben_icm_life_events.g_cache_epo_object
1313 (v_count).oipl_ordr_num,
1314 p_business_group_id => ben_icm_life_events.g_cache_epo_object
1315 (v_count).business_group_id,
1316 p_request_id => ben_icm_life_events.g_cache_epo_object
1317 (v_count).request_id,
1318 p_program_application_id => ben_icm_life_events.g_cache_epo_object
1319 (v_count).program_application_id,
1320 p_program_id => ben_icm_life_events.g_cache_epo_object
1321 (v_count).program_id,
1322 p_program_update_date => ben_icm_life_events.g_cache_epo_object
1323 (v_count).program_update_date,
1324 p_object_version_number => ben_icm_life_events.g_cache_epo_object(v_count).object_version_number,
1325 p_effective_date => ben_icm_life_events.g_cache_epo_object
1326 (v_count).p_effective_date,
1327 p_datetrack_mode => ben_icm_life_events.g_cache_epo_object
1328 (v_count).p_datetrack_mode
1329 );
1330 --
1331 ELSIF ben_icm_life_events.g_cache_epo_object (v_count).p_first_elig
1332 OR ben_icm_life_events.g_cache_epo_object (v_count).p_first_inelig
1333 -- AND l_trk_inelig_per_flag = 'Y'
1334 THEN
1335 IF g_debug
1336 THEN
1337 hr_utility.set_location ('Insert Mode for EPO' || ben_icm_life_events.g_cache_epo_object (v_count).elig_per_opt_id, 1234);
1338 END IF;
1339
1340 INSERT INTO ben_elig_per_opt_f
1341 (elig_per_opt_id,
1342 elig_per_id,
1343 effective_start_date,
1344 effective_end_date,
1345 prtn_ovridn_flag,
1346 prtn_ovridn_thru_dt,
1347 no_mx_prtn_ovrid_thru_flag,
1348 elig_flag,
1349 prtn_strt_dt,
1350 pct_fl_tm_val,
1351 opt_id,
1352 business_group_id,
1353 request_id,
1354 program_application_id,
1355 program_id,
1356 program_update_date,
1357 age_uom,
1358 age_val,
1359 cmbn_age_n_los_val,
1360 comp_ref_amt,
1361 comp_ref_uom,
1362 frz_age_flag,
1363 frz_cmp_lvl_flag,
1364 frz_comb_age_and_los_flag,
1365 frz_hrs_wkd_flag,
1366 frz_los_flag,
1367 frz_pct_fl_tm_flag,
1368 hrs_wkd_bndry_perd_cd,
1369 hrs_wkd_val,
1370 los_uom,
1371 los_val,
1372 rt_comp_ref_amt,
1373 rt_cmbn_age_n_los_val,
1374 rt_comp_ref_uom,
1375 rt_age_val,
1376 rt_los_val,
1377 rt_hrs_wkd_val,
1378 rt_hrs_wkd_bndry_perd_cd,
1379 rt_age_uom,
1380 rt_los_uom,
1381 rt_pct_fl_tm_val,
1382 rt_frz_los_flag,
1383 rt_frz_age_flag,
1384 rt_frz_cmp_lvl_flag,
1385 rt_frz_pct_fl_tm_flag,
1386 rt_frz_hrs_wkd_flag,
1387 rt_frz_comb_age_and_los_flag,
1388 once_r_cntug_cd,
1389 wait_perd_cmpltn_dt,
1390 per_in_ler_id,
1391 wait_perd_strt_dt,
1392 wait_perd_cmpltn_date,
1393 object_version_number
1394 )
1395 VALUES (ben_icm_life_events.g_cache_epo_object (v_count).elig_per_opt_id,
1396 ben_icm_life_events.g_cache_epo_object (v_count).elig_per_id,
1397 ben_icm_life_events.g_cache_epo_object (v_count).effective_start_date,
1398 ben_icm_life_events.g_cache_epo_object (v_count).effective_end_date,
1399 ben_icm_life_events.g_cache_epo_object (v_count).prtn_ovridn_flag,
1400 ben_icm_life_events.g_cache_epo_object (v_count).prtn_ovridn_thru_dt,
1401 ben_icm_life_events.g_cache_epo_object (v_count).no_mx_prtn_ovrid_thru_flag,
1402 ben_icm_life_events.g_cache_epo_object (v_count).elig_flag,
1403 ben_icm_life_events.g_cache_epo_object (v_count).prtn_strt_dt,
1404 ben_icm_life_events.g_cache_epo_object (v_count).pct_fl_tm_val,
1405 ben_icm_life_events.g_cache_epo_object (v_count).opt_id,
1406 ben_icm_life_events.g_cache_epo_object (v_count).business_group_id,
1407 ben_icm_life_events.g_cache_epo_object (v_count).request_id,
1408 ben_icm_life_events.g_cache_epo_object (v_count).program_application_id,
1409 ben_icm_life_events.g_cache_epo_object (v_count).program_id,
1410 ben_icm_life_events.g_cache_epo_object (v_count).program_update_date,
1411 ben_icm_life_events.g_cache_epo_object (v_count).age_uom,
1412 ben_icm_life_events.g_cache_epo_object (v_count).age_val,
1413 ben_icm_life_events.g_cache_epo_object (v_count).cmbn_age_n_los_val,
1414 ben_icm_life_events.g_cache_epo_object (v_count).comp_ref_amt,
1415 ben_icm_life_events.g_cache_epo_object (v_count).comp_ref_uom,
1416 ben_icm_life_events.g_cache_epo_object (v_count).frz_age_flag,
1417 ben_icm_life_events.g_cache_epo_object (v_count).frz_cmp_lvl_flag,
1418 ben_icm_life_events.g_cache_epo_object (v_count).frz_comb_age_and_los_flag,
1419 ben_icm_life_events.g_cache_epo_object (v_count).frz_hrs_wkd_flag,
1420 ben_icm_life_events.g_cache_epo_object (v_count).frz_los_flag,
1421 ben_icm_life_events.g_cache_epo_object (v_count).frz_pct_fl_tm_flag,
1422 ben_icm_life_events.g_cache_epo_object (v_count).hrs_wkd_bndry_perd_cd,
1423 ben_icm_life_events.g_cache_epo_object (v_count).hrs_wkd_val,
1424 ben_icm_life_events.g_cache_epo_object (v_count).los_uom,
1425 ben_icm_life_events.g_cache_epo_object (v_count).los_val,
1426 ben_icm_life_events.g_cache_epo_object (v_count).rt_comp_ref_amt,
1427 ben_icm_life_events.g_cache_epo_object (v_count).rt_cmbn_age_n_los_val,
1428 ben_icm_life_events.g_cache_epo_object (v_count).rt_comp_ref_uom,
1429 ben_icm_life_events.g_cache_epo_object (v_count).rt_age_val,
1430 ben_icm_life_events.g_cache_epo_object (v_count).rt_los_val,
1431 ben_icm_life_events.g_cache_epo_object (v_count).rt_hrs_wkd_val,
1432 ben_icm_life_events.g_cache_epo_object (v_count).rt_hrs_wkd_bndry_perd_cd,
1433 ben_icm_life_events.g_cache_epo_object (v_count).rt_age_uom,
1434 ben_icm_life_events.g_cache_epo_object (v_count).rt_los_uom,
1435 ben_icm_life_events.g_cache_epo_object (v_count).rt_pct_fl_tm_val,
1436 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_los_flag,
1437 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_age_flag,
1438 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_cmp_lvl_flag,
1439 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_pct_fl_tm_flag,
1440 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_hrs_wkd_flag,
1441 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_comb_age_and_los_flag,
1442 ben_icm_life_events.g_cache_epo_object (v_count).once_r_cntug_cd,
1443 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_cmpltn_dt,
1444 NULL,
1445 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_strt_dt,
1446 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_cmpltn_date,
1447 ben_icm_life_events.g_cache_epo_object (v_count).object_version_number
1448 );
1449 --
1450 ELSIF ben_icm_life_events.g_cache_epo_object (v_count).p_newly_inelig
1451 THEN
1452 IF g_debug
1453 THEN
1454 hr_utility.set_location ('Newly Ineligible', 125);
1455 END IF;
1456
1457 --
1458 ben_eligible_person_perf_api.update_perf_elig_person_option
1459 (p_validate => FALSE,
1460 p_elig_per_opt_id => ben_icm_life_events.g_cache_epo_object
1461 (v_count).elig_per_opt_id,
1462 p_elig_per_id => ben_icm_life_events.g_cache_epo_object
1463 (v_count).elig_per_id,
1464 p_effective_start_date => l_effective_start_date,
1465 p_effective_end_date => l_effective_end_date,
1466 p_prtn_ovridn_flag => ben_icm_life_events.g_cache_epo_object
1467 (v_count).prtn_ovridn_flag,
1468 p_prtn_ovridn_thru_dt => ben_icm_life_events.g_cache_epo_object
1469 (v_count).prtn_ovridn_thru_dt,
1470 p_no_mx_prtn_ovrid_thru_flag => ben_icm_life_events.g_cache_epo_object
1471 (v_count).no_mx_prtn_ovrid_thru_flag,
1472 p_elig_flag => ben_icm_life_events.g_cache_epo_object
1473 (v_count).elig_flag,
1474 p_prtn_strt_dt => ben_icm_life_events.g_cache_epo_object
1475 (v_count).prtn_strt_dt,
1476 p_prtn_end_dt => ben_icm_life_events.g_cache_epo_object
1477 (v_count).prtn_end_dt,
1478 p_wait_perd_cmpltn_date => ben_icm_life_events.g_cache_epo_object
1479 (v_count).wait_perd_cmpltn_date,
1480 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_epo_object
1481 (v_count).wait_perd_strt_dt
1482 -- ,p_prtn_ovridn_rsn_cd =>ben_icm_life_events.g_cache_epo_object(v_count).prtn_ovridn_rsn_cd
1483 ,
1484 p_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1485 (v_count).pct_fl_tm_val,
1486 p_opt_id => ben_icm_life_events.g_cache_epo_object
1487 (v_count).opt_id,
1488 p_per_in_ler_id => NULL,
1489 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1490 (v_count).rt_comp_ref_amt,
1491 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1492 (v_count).rt_cmbn_age_n_los_val,
1493 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1494 (v_count).rt_comp_ref_uom,
1495 p_rt_age_val => ben_icm_life_events.g_cache_epo_object
1496 (v_count).rt_age_val,
1497 p_rt_los_val => ben_icm_life_events.g_cache_epo_object
1498 (v_count).rt_los_val,
1499 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1500 (v_count).rt_hrs_wkd_val,
1501 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1502 (v_count).rt_hrs_wkd_bndry_perd_cd,
1503 p_rt_age_uom => ben_icm_life_events.g_cache_epo_object
1504 (v_count).rt_age_uom,
1505 p_rt_los_uom => ben_icm_life_events.g_cache_epo_object
1506 (v_count).rt_los_uom,
1507 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1508 (v_count).rt_pct_fl_tm_val,
1509 p_rt_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1510 (v_count).rt_frz_los_flag,
1511 p_rt_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1512 (v_count).rt_frz_age_flag,
1513 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1514 (v_count).rt_frz_cmp_lvl_flag,
1515 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1516 (v_count).rt_frz_pct_fl_tm_flag,
1517 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1518 (v_count).rt_frz_hrs_wkd_flag,
1519 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1520 (v_count).rt_frz_comb_age_and_los_flag,
1521 p_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1522 (v_count).comp_ref_amt,
1523 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1524 (v_count).cmbn_age_n_los_val,
1525 p_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1526 (v_count).comp_ref_uom,
1527 p_age_val => ben_icm_life_events.g_cache_epo_object
1528 (v_count).age_val,
1529 p_los_val => ben_icm_life_events.g_cache_epo_object
1530 (v_count).los_val,
1531 p_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1532 (v_count).hrs_wkd_val,
1533 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1534 (v_count).hrs_wkd_bndry_perd_cd,
1535 p_age_uom => ben_icm_life_events.g_cache_epo_object
1536 (v_count).age_uom,
1537 p_los_uom => ben_icm_life_events.g_cache_epo_object
1538 (v_count).los_uom,
1539 p_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1540 (v_count).frz_los_flag,
1541 p_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1542 (v_count).frz_age_flag,
1543 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1544 (v_count).frz_cmp_lvl_flag,
1545 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1546 (v_count).frz_pct_fl_tm_flag,
1547 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1548 (v_count).frz_hrs_wkd_flag,
1549 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1550 (v_count).frz_comb_age_and_los_flag
1551 -- ,p_ovrid_svc_dt =>ben_icm_life_events.g_cache_epo_object(v_count).ovrid_svc_dt
1552 ,
1553 p_inelg_rsn_cd => ben_icm_life_events.g_cache_epo_object
1554 (v_count).inelg_rsn_cd,
1555 p_once_r_cntug_cd => ben_icm_life_events.g_cache_epo_object
1556 (v_count).once_r_cntug_cd,
1557 p_oipl_ordr_num => ben_icm_life_events.g_cache_epo_object
1558 (v_count).oipl_ordr_num,
1559 p_business_group_id => ben_icm_life_events.g_cache_epo_object
1560 (v_count).business_group_id,
1561 p_request_id => ben_icm_life_events.g_cache_epo_object
1562 (v_count).request_id,
1563 p_program_application_id => ben_icm_life_events.g_cache_epo_object
1564 (v_count).program_application_id,
1565 p_program_id => ben_icm_life_events.g_cache_epo_object
1566 (v_count).program_id,
1567 p_program_update_date => ben_icm_life_events.g_cache_epo_object
1568 (v_count).program_update_date,
1569 p_object_version_number => ben_icm_life_events.g_cache_epo_object(v_count).object_version_number,
1570 p_effective_date => ben_icm_life_events.g_cache_epo_object
1571 (v_count).p_effective_date,
1572 p_datetrack_mode => ben_icm_life_events.g_cache_epo_object
1573 (v_count).p_datetrack_mode
1574 );
1575 --
1576 ELSIF ben_icm_life_events.g_cache_epo_object (v_count).p_newly_elig
1577 THEN
1578 IF g_debug
1579 THEN
1580 hr_utility.set_location ('Newly Eligible', 125);
1581 END IF;
1582
1583 --
1584 /* IF l_trk_inelig_per_flag <> 'Y'
1585 THEN --ie no record was there in epo
1586 --
1587 INSERT INTO ben_elig_per_opt_f
1588 (elig_per_opt_id,
1589 elig_per_id,
1590 effective_start_date,
1591 effective_end_date,
1592 prtn_ovridn_flag,
1593 prtn_ovridn_thru_dt,
1594 no_mx_prtn_ovrid_thru_flag,
1595 elig_flag,
1596 prtn_strt_dt,
1597 pct_fl_tm_val,
1598 opt_id,
1599 business_group_id,
1600 request_id,
1601 program_application_id,
1602 program_id,
1603 program_update_date,
1604 age_uom,
1605 age_val,
1606 cmbn_age_n_los_val,
1607 comp_ref_amt,
1608 comp_ref_uom,
1609 frz_age_flag,
1610 frz_cmp_lvl_flag,
1611 frz_comb_age_and_los_flag,
1612 frz_hrs_wkd_flag,
1613 frz_los_flag,
1614 frz_pct_fl_tm_flag,
1615 hrs_wkd_bndry_perd_cd,
1616 hrs_wkd_val,
1617 los_uom,
1618 los_val,
1619 rt_comp_ref_amt,
1620 rt_cmbn_age_n_los_val,
1621 rt_comp_ref_uom,
1622 rt_age_val,
1623 rt_los_val,
1624 rt_hrs_wkd_val,
1625 rt_hrs_wkd_bndry_perd_cd,
1626 rt_age_uom,
1627 rt_los_uom,
1628 rt_pct_fl_tm_val,
1629 rt_frz_los_flag,
1630 rt_frz_age_flag,
1631 rt_frz_cmp_lvl_flag,
1632 rt_frz_pct_fl_tm_flag,
1633 rt_frz_hrs_wkd_flag,
1634 rt_frz_comb_age_and_los_flag,
1635 once_r_cntug_cd,
1636 wait_perd_cmpltn_dt,
1637 per_in_ler_id,
1638 wait_perd_strt_dt,
1639 wait_perd_cmpltn_date,
1640 object_version_number
1641 )
1642 VALUES (ben_icm_life_events.g_cache_epo_object (v_count).elig_per_opt_id,
1643 ben_icm_life_events.g_cache_epo_object (v_count).elig_per_id,
1644 ben_icm_life_events.g_cache_epo_object (v_count).effective_start_date,
1645 ben_icm_life_events.g_cache_epo_object (v_count).effective_end_date,
1646 ben_icm_life_events.g_cache_epo_object (v_count).prtn_ovridn_flag,
1647 ben_icm_life_events.g_cache_epo_object (v_count).prtn_ovridn_thru_dt,
1648 ben_icm_life_events.g_cache_epo_object (v_count).no_mx_prtn_ovrid_thru_flag,
1649 ben_icm_life_events.g_cache_epo_object (v_count).elig_flag,
1650 ben_icm_life_events.g_cache_epo_object (v_count).prtn_strt_dt,
1651 ben_icm_life_events.g_cache_epo_object (v_count).pct_fl_tm_val,
1652 ben_icm_life_events.g_cache_epo_object (v_count).opt_id,
1653 ben_icm_life_events.g_cache_epo_object (v_count).business_group_id,
1654 ben_icm_life_events.g_cache_epo_object (v_count).request_id,
1655 ben_icm_life_events.g_cache_epo_object (v_count).program_application_id,
1656 ben_icm_life_events.g_cache_epo_object (v_count).program_id,
1657 ben_icm_life_events.g_cache_epo_object (v_count).program_update_date,
1658 ben_icm_life_events.g_cache_epo_object (v_count).age_uom,
1659 ben_icm_life_events.g_cache_epo_object (v_count).age_val,
1660 ben_icm_life_events.g_cache_epo_object (v_count).cmbn_age_n_los_val,
1661 ben_icm_life_events.g_cache_epo_object (v_count).comp_ref_amt,
1662 ben_icm_life_events.g_cache_epo_object (v_count).comp_ref_uom,
1663 ben_icm_life_events.g_cache_epo_object (v_count).frz_age_flag,
1664 ben_icm_life_events.g_cache_epo_object (v_count).frz_cmp_lvl_flag,
1665 ben_icm_life_events.g_cache_epo_object (v_count).frz_comb_age_and_los_flag,
1666 ben_icm_life_events.g_cache_epo_object (v_count).frz_hrs_wkd_flag,
1667 ben_icm_life_events.g_cache_epo_object (v_count).frz_los_flag,
1668 ben_icm_life_events.g_cache_epo_object (v_count).frz_pct_fl_tm_flag,
1669 ben_icm_life_events.g_cache_epo_object (v_count).hrs_wkd_bndry_perd_cd,
1670 ben_icm_life_events.g_cache_epo_object (v_count).hrs_wkd_val,
1671 ben_icm_life_events.g_cache_epo_object (v_count).los_uom,
1672 ben_icm_life_events.g_cache_epo_object (v_count).los_val,
1673 ben_icm_life_events.g_cache_epo_object (v_count).rt_comp_ref_amt,
1674 ben_icm_life_events.g_cache_epo_object (v_count).rt_cmbn_age_n_los_val,
1675 ben_icm_life_events.g_cache_epo_object (v_count).rt_comp_ref_uom,
1676 ben_icm_life_events.g_cache_epo_object (v_count).rt_age_val,
1677 ben_icm_life_events.g_cache_epo_object (v_count).rt_los_val,
1678 ben_icm_life_events.g_cache_epo_object (v_count).rt_hrs_wkd_val,
1679 ben_icm_life_events.g_cache_epo_object (v_count).rt_hrs_wkd_bndry_perd_cd,
1680 ben_icm_life_events.g_cache_epo_object (v_count).rt_age_uom,
1681 ben_icm_life_events.g_cache_epo_object (v_count).rt_los_uom,
1682 ben_icm_life_events.g_cache_epo_object (v_count).rt_pct_fl_tm_val,
1683 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_los_flag,
1684 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_age_flag,
1685 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_cmp_lvl_flag,
1686 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_pct_fl_tm_flag,
1687 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_hrs_wkd_flag,
1688 ben_icm_life_events.g_cache_epo_object (v_count).rt_frz_comb_age_and_los_flag,
1689 ben_icm_life_events.g_cache_epo_object (v_count).once_r_cntug_cd,
1690 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_cmpltn_dt,
1691 NULL,
1692 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_strt_dt,
1693 ben_icm_life_events.g_cache_epo_object (v_count).wait_perd_cmpltn_date,
1694 ben_icm_life_events.g_cache_epo_object (v_count).object_version_number
1695 );
1696 ELSE*/
1697 -- ie already record is there with flag = 'N' so need to update it
1698 --
1699 ben_eligible_person_perf_api.update_perf_elig_person_option
1700 (p_validate => FALSE,
1701 p_elig_per_opt_id => ben_icm_life_events.g_cache_epo_object
1702 (v_count).elig_per_opt_id,
1703 p_elig_per_id => ben_icm_life_events.g_cache_epo_object
1704 (v_count).elig_per_id,
1705 p_effective_start_date => l_effective_start_date,
1706 p_effective_end_date => l_effective_end_date,
1707 p_prtn_ovridn_flag => ben_icm_life_events.g_cache_epo_object
1708 (v_count).prtn_ovridn_flag,
1709 p_prtn_ovridn_thru_dt => ben_icm_life_events.g_cache_epo_object
1710 (v_count).prtn_ovridn_thru_dt,
1711 p_no_mx_prtn_ovrid_thru_flag => ben_icm_life_events.g_cache_epo_object
1712 (v_count).no_mx_prtn_ovrid_thru_flag,
1713 p_elig_flag => ben_icm_life_events.g_cache_epo_object
1714 (v_count).elig_flag,
1715 p_prtn_strt_dt => ben_icm_life_events.g_cache_epo_object
1716 (v_count).prtn_strt_dt,
1717 p_prtn_end_dt => ben_icm_life_events.g_cache_epo_object
1718 (v_count).prtn_end_dt,
1719 p_wait_perd_cmpltn_date => ben_icm_life_events.g_cache_epo_object
1720 (v_count).wait_perd_cmpltn_date,
1721 p_wait_perd_strt_dt => ben_icm_life_events.g_cache_epo_object
1722 (v_count).wait_perd_strt_dt
1723 -- ,p_prtn_ovridn_rsn_cd =>ben_icm_life_events.g_cache_epo_object(v_count).prtn_ovridn_rsn_cd
1724 ,
1725 p_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1726 (v_count).pct_fl_tm_val,
1727 p_opt_id => ben_icm_life_events.g_cache_epo_object
1728 (v_count).opt_id,
1729 p_per_in_ler_id => NULL,
1730 p_rt_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1731 (v_count).rt_comp_ref_amt,
1732 p_rt_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1733 (v_count).rt_cmbn_age_n_los_val,
1734 p_rt_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1735 (v_count).rt_comp_ref_uom,
1736 p_rt_age_val => ben_icm_life_events.g_cache_epo_object
1737 (v_count).rt_age_val,
1738 p_rt_los_val => ben_icm_life_events.g_cache_epo_object
1739 (v_count).rt_los_val,
1740 p_rt_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1741 (v_count).rt_hrs_wkd_val,
1742 p_rt_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1743 (v_count).rt_hrs_wkd_bndry_perd_cd,
1744 p_rt_age_uom => ben_icm_life_events.g_cache_epo_object
1745 (v_count).rt_age_uom,
1746 p_rt_los_uom => ben_icm_life_events.g_cache_epo_object
1747 (v_count).rt_los_uom,
1748 p_rt_pct_fl_tm_val => ben_icm_life_events.g_cache_epo_object
1749 (v_count).rt_pct_fl_tm_val,
1750 p_rt_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1751 (v_count).rt_frz_los_flag,
1752 p_rt_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1753 (v_count).rt_frz_age_flag,
1754 p_rt_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1755 (v_count).rt_frz_cmp_lvl_flag,
1756 p_rt_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1757 (v_count).rt_frz_pct_fl_tm_flag,
1758 p_rt_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1759 (v_count).rt_frz_hrs_wkd_flag,
1760 p_rt_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1761 (v_count).rt_frz_comb_age_and_los_flag,
1762 p_comp_ref_amt => ben_icm_life_events.g_cache_epo_object
1763 (v_count).comp_ref_amt,
1764 p_cmbn_age_n_los_val => ben_icm_life_events.g_cache_epo_object
1765 (v_count).cmbn_age_n_los_val,
1766 p_comp_ref_uom => ben_icm_life_events.g_cache_epo_object
1767 (v_count).comp_ref_uom,
1768 p_age_val => ben_icm_life_events.g_cache_epo_object
1769 (v_count).age_val,
1770 p_los_val => ben_icm_life_events.g_cache_epo_object
1771 (v_count).los_val,
1772 p_hrs_wkd_val => ben_icm_life_events.g_cache_epo_object
1773 (v_count).hrs_wkd_val,
1774 p_hrs_wkd_bndry_perd_cd => ben_icm_life_events.g_cache_epo_object
1775 (v_count).hrs_wkd_bndry_perd_cd,
1776 p_age_uom => ben_icm_life_events.g_cache_epo_object
1777 (v_count).age_uom,
1778 p_los_uom => ben_icm_life_events.g_cache_epo_object
1779 (v_count).los_uom,
1780 p_frz_los_flag => ben_icm_life_events.g_cache_epo_object
1781 (v_count).frz_los_flag,
1782 p_frz_age_flag => ben_icm_life_events.g_cache_epo_object
1783 (v_count).frz_age_flag,
1784 p_frz_cmp_lvl_flag => ben_icm_life_events.g_cache_epo_object
1785 (v_count).frz_cmp_lvl_flag,
1786 p_frz_pct_fl_tm_flag => ben_icm_life_events.g_cache_epo_object
1787 (v_count).frz_pct_fl_tm_flag,
1788 p_frz_hrs_wkd_flag => ben_icm_life_events.g_cache_epo_object
1789 (v_count).frz_hrs_wkd_flag,
1790 p_frz_comb_age_and_los_flag => ben_icm_life_events.g_cache_epo_object
1791 (v_count).frz_comb_age_and_los_flag,
1792 p_inelg_rsn_cd => ben_icm_life_events.g_cache_epo_object
1793 (v_count).inelg_rsn_cd,
1794 p_once_r_cntug_cd => ben_icm_life_events.g_cache_epo_object
1795 (v_count).once_r_cntug_cd,
1796 p_oipl_ordr_num => ben_icm_life_events.g_cache_epo_object
1797 (v_count).oipl_ordr_num,
1798 p_business_group_id => ben_icm_life_events.g_cache_epo_object
1799 (v_count).business_group_id,
1800 p_request_id => ben_icm_life_events.g_cache_epo_object
1801 (v_count).request_id,
1802 p_program_application_id => ben_icm_life_events.g_cache_epo_object
1803 (v_count).program_application_id,
1804 p_program_id => ben_icm_life_events.g_cache_epo_object
1805 (v_count).program_id,
1806 p_program_update_date => ben_icm_life_events.g_cache_epo_object
1807 (v_count).program_update_date,
1808 p_object_version_number => ben_icm_life_events.g_cache_epo_object(v_count).object_version_number,
1809 p_effective_date => ben_icm_life_events.g_cache_epo_object
1810 (v_count).p_effective_date,
1811 p_datetrack_mode => ben_icm_life_events.g_cache_epo_object
1812 (v_count).p_datetrack_mode
1813 );
1814 --
1815 -- END IF;
1816 END IF;
1817
1818 v_count := v_count + 1;
1819 l_count2 := l_count2 - 1;
1820
1821 IF g_debug
1822 THEN
1823 hr_utility.set_location ('l_count2' || l_count2, 12);
1824 END IF;
1825 END LOOP;
1826
1827 IF g_debug
1828 THEN
1829 hr_utility.set_location ('Leaving CREATE_PEP_EPO_REC', 123);
1830 END IF;
1831 EXCEPTION
1832 WHEN OTHERS
1833 THEN
1834 IF g_debug
1835 THEN
1836 hr_utility.set_location ('SQLERRM' || substr(SQLERRM,1,30), 123);
1837 hr_utility.set_location ('SQLERRM' || substr(SQLERRM,31,60), 1234);
1838 END IF;
1839 RAISE;
1840 ROLLBACK TO elig_per_cache_savepont;
1841 ben_icm_life_events.g_cache_pep_object.DELETE;
1842 ben_icm_life_events.g_cache_epo_object.DELETE;
1843 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
1844 --
1845 END create_pep_epo_rec;
1846
1847 --
1848
1849 --
1850 PROCEDURE p_manage_icm_life_events (
1851 p_person_id IN NUMBER,
1852 p_effective_date IN DATE,
1853 p_business_group_id IN NUMBER,
1854 p_lf_evt_ocrd_dt IN DATE DEFAULT NULL
1855 )
1856 IS
1857 --
1858 l_proc VARCHAR2 (72)
1859 := g_package || '.p_manage_icm_life_events';
1860 l_errbuf VARCHAR2 (2000);
1861 l_retcode NUMBER;
1862 l_effective_date VARCHAR2 (30);
1863 --
1864 l_encoded_message VARCHAR2 (2000);
1865 l_app_short_name VARCHAR2 (2000);
1866 l_message_name VARCHAR2 (2000);
1867 l_threads NUMBER := 0;
1868 p_ler_id NUMBER;
1869 --
1870 l_bft_id NUMBER;
1871 l_lf_evt_ocrd_dt DATE;
1872 l_chunk_size NUMBER := 0;
1873 l_rec benutils.g_active_life_event;
1874 l_max_errors_allowed NUMBER;
1875 l_object_version_number NUMBER;
1876 p_person_count NUMBER;
1877 l_count2 NUMBER;
1878 l_count3 NUMBER := 1;
1879 l_pep_count NUMBER;
1880 cache1 NUMBER;
1881 cache11 NUMBER := 1;
1882 l_count_icm1 NUMBER;
1883 l_prev_eligibility BOOLEAN;
1884 --
1885 l_elig_per_id NUMBER;
1886 l_elig_per_elig_flag VARCHAR2 (1000);
1887 l_prev_prtn_strt_dt DATE;
1888 l_prev_prtn_end_dt DATE;
1889 l_per_in_ler_id NUMBER;
1890 l_old_age_val NUMBER;
1891 l_old_los_val NUMBER;
1892 --
1893 j NUMBER := 1;
1894 temp1 NUMBER;
1895 temp2 NUMBER;
1896 l_msg VARCHAR2(2000);
1897 --
1898 BEGIN
1899 --
1900 g_debug := hr_utility.debug_enabled;
1901 -- hr_utility.trace_on(null,'rtagarra');
1902 IF g_debug
1903 THEN
1904 hr_utility.set_location ('Entering ' || l_proc, 10);
1905 END IF;
1906
1907 --
1908 DELETE FROM ben_icd_chc_rates
1909 WHERE person_id = p_person_id;
1910 --
1911 COMMIT;
1912 --
1913 SAVEPOINT icm_life_events_savepoint;
1914 fnd_msg_pub.initialize;
1915 ben_icm_life_events.g_cache_pep_object.DELETE;
1916 ben_icm_life_events.g_cache_epo_object.DELETE;
1917 --
1918 l_effective_date := fnd_date.date_to_canonical (p_effective_date);
1919 --
1920 l_bft_id := NULL;
1921 --
1922 ben_manage_life_events.g_modified_mode := NULL;
1923 --
1924 ben_comp_object_list1.refresh_eff_date_caches;
1925 --
1926 ben_manage_life_events.process
1927 (errbuf => l_errbuf,
1928 retcode => l_retcode,
1929 p_benefit_action_id => l_bft_id,
1930 p_effective_date => l_effective_date,
1931 p_mode => 'D',
1932 p_derivable_factors => 'ASC',
1933 p_validate => 'N',
1934 p_person_id => p_person_id,
1935 p_person_type_id => NULL,
1936 p_pgm_id => NULL,
1937 p_business_group_id => p_business_group_id,
1938 p_pl_id => NULL,
1939 p_popl_enrt_typ_cycl_id => NULL,
1940 p_no_programs => 'N',
1941 p_no_plans => 'N',
1942 p_comp_selection_rule_id => NULL,
1943 p_person_selection_rule_id => NULL,
1944 p_ler_id => NULL,
1945 p_organization_id => NULL,
1946 p_benfts_grp_id => NULL,
1947 p_location_id => NULL,
1948 p_pstl_zip_rng_id => NULL,
1949 p_rptg_grp_id => NULL,
1950 p_pl_typ_id => NULL,
1951 p_opt_id => NULL,
1952 p_eligy_prfl_id => NULL,
1953 p_vrbl_rt_prfl_id => NULL,
1954 p_legal_entity_id => NULL,
1955 p_payroll_id => NULL,
1956 p_commit_data => 'N',
1957 p_lf_evt_ocrd_dt => l_lf_evt_ocrd_dt
1958 );
1959
1960 --
1961 IF g_debug
1962 THEN
1963 hr_utility.set_location ('After process', 10);
1964 hr_utility.set_location ('Before get_parameter', 21);
1965 END IF;
1966
1967 --
1968 benutils.get_parameter (p_business_group_id => p_business_group_id,
1969 p_batch_exe_cd => 'BENMNGLE',
1970 p_threads => l_threads,
1971 p_chunk_size => l_chunk_size,
1972 p_max_errors => l_max_errors_allowed
1973 );
1974
1975 --
1976 -- Set up benefits environment
1977 --
1978 IF g_debug
1979 THEN
1980 hr_utility.set_location ('After get_parameter', 22);
1981 hr_utility.set_location ('Before clear_init_benmngle_caches', 23);
1982 END IF;
1983
1984 --
1985 --
1986 ben_manage_life_events.clear_init_benmngle_caches
1987 (p_business_group_id => p_business_group_id,
1988 p_effective_date => p_effective_date,
1989 p_threads => l_threads,
1990 p_chunk_size => l_chunk_size,
1991 p_max_errors => l_max_errors_allowed,
1992 p_benefit_action_id => benutils.g_benefit_action_id,
1993 p_thread_id => 1
1994 );
1995
1996 --
1997 IF g_debug
1998 THEN
1999 hr_utility.set_location ('After clear_init_benmngle_caches', 24);
2000 hr_utility.set_location ('Before Build Comp Object List', 30);
2001 END IF;
2002
2003 --
2004 ben_comp_object_list.flush_multi_session_cache
2005 (p_business_group_id => p_business_group_id,
2006 p_effective_date => p_effective_date
2007 );
2008 --
2009 ben_comp_object_list.build_comp_object_list
2010 (p_benefit_action_id => benutils.g_benefit_action_id,
2011 p_comp_selection_rule_id => NULL,
2012 p_effective_date => p_effective_date,
2013 p_pgm_id => NULL,
2014 p_business_group_id => p_business_group_id,
2015 p_pl_id => NULL,
2016 p_oipl_id => NULL,
2017 p_asnd_lf_evt_dt => NULL,
2018 p_no_programs => 'N',
2019 p_no_plans => 'N',
2020 p_rptg_grp_id => NULL,
2021 p_pl_typ_id => NULL,
2022 p_opt_id => NULL,
2023 p_eligy_prfl_id => NULL,
2024 p_vrbl_rt_prfl_id => NULL,
2025 p_thread_id => 1,
2026 p_mode => 'D'
2027 );
2028
2029 --
2030 IF g_debug
2031 THEN
2032 hr_utility.set_location ('After build comp object', 32);
2033 --
2034 hr_utility.set_location ('Before evaluate life events', 45);
2035 --
2036 END IF;
2037
2038 ben_manage_life_events.evaluate_life_events
2039 (p_person_id => p_person_id,
2040 p_business_group_id => p_business_group_id,
2041 p_mode => 'D',
2042 p_ler_id => p_ler_id,
2043 p_lf_evt_ocrd_dt => NVL
2044 (p_lf_evt_ocrd_dt,
2045 p_effective_date
2046 ),
2047 p_effective_date => p_effective_date
2048 );
2049
2050 --
2051 IF g_debug
2052 THEN
2053 hr_utility.set_location ('After evaluate life events', 50);
2054 END IF;
2055
2056 --
2057 g_benefit_action_id := benutils.g_benefit_action_id;
2058 --
2059 benutils.get_active_life_event
2060 (p_person_id => p_person_id,
2061 p_business_group_id => p_business_group_id,
2062 p_effective_date => p_effective_date,
2063 p_lf_event_mode => 'D',
2064 p_rec => l_rec
2065 );
2066
2067 --
2068 IF g_debug
2069 THEN
2070 hr_utility.set_location ('Before Person Header', 52);
2071 END IF;
2072
2073 --
2074 ben_manage_life_events.person_header
2075 (p_person_id => p_person_id,
2076 p_business_group_id => p_business_group_id,
2077 p_effective_date => NVL
2078 (l_rec.lf_evt_ocrd_dt,
2079 p_effective_date
2080 )
2081 );
2082
2083 --
2084 IF g_debug
2085 THEN
2086 hr_utility.set_location ('After Person Header', 52);
2087 --
2088 hr_utility.set_location ('Before process comp objects', 55);
2089 --
2090 END IF;
2091
2092 ben_manage_life_events.process_comp_objects
2093 (p_person_id => p_person_id,
2094 p_person_action_id => NULL,
2095 p_object_version_number => l_object_version_number,
2096 p_business_group_id => p_business_group_id,
2097 p_mode => 'D',
2098 p_ler_id => p_ler_id,
2099 p_derivable_factors => 'ASC',
2100 p_person_count => p_person_count,
2101 p_effective_date => p_effective_date,
2102 p_lf_evt_ocrd_dt => NVL
2103 (l_rec.lf_evt_ocrd_dt,
2104 p_effective_date
2105 )
2106 );
2107 temp1 := ben_icm_life_events.g_cache_pep_object.COUNT;
2108 temp2 := ben_icm_life_events.g_cache_epo_object.COUNT;
2109
2110 IF g_debug
2111 THEN
2112 hr_utility.set_location (temp1 || '-->' || temp2 || '<--', 124);
2113 END IF;
2114
2115 --
2116 ROLLBACK TO icm_life_events_savepoint;
2117 --
2118 --POST PROCESS STARTS FROM HERE FOR ICM
2119 SAVEPOINT elig_per_cache_savepont;
2120 --
2121 --Create PEP AND EPO Records
2122 create_pep_epo_rec (p_person_id => p_person_id);
2123 --
2124 --Create ICD Records
2125 create_icd_rates (p_person_id => p_person_id,
2126 p_effective_date => p_effective_date,
2127 p_business_group_id => p_business_group_id
2128 );
2129 ben_icm_life_events.g_cache_pep_object.DELETE;
2130 ben_icm_life_events.g_cache_epo_object.DELETE;
2131 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
2132
2133 --
2134 IF g_debug
2135 THEN
2136 --
2137 hr_utility.set_location ('Leaving ' || l_proc, 30);
2138 --
2139 END IF;
2140 --
2141 EXCEPTION
2142 --
2143 WHEN app_exception.application_exception
2144 THEN
2145 IF g_debug
2146 THEN
2147 hr_utility.set_location ('Leaving ' || l_proc, 31);
2148 END IF;
2149 --
2150 l_msg := fnd_message.get;
2151 fnd_message.set_name('BEN','BEN_94875_ICD_BENMNGLE_ERROR');
2152 fnd_message.set_token('BENMNGLE_ERROR',l_msg);
2153 fnd_msg_pub.add;
2154 ben_icm_life_events.g_cache_pep_object.DELETE;
2155 ben_icm_life_events.g_cache_epo_object.DELETE;
2156 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
2157 ROLLBACK TO icm_life_events_savepoint;
2158 --
2159 WHEN OTHERS
2160 THEN
2161 --
2162 IF g_debug
2163 THEN
2164 hr_utility.set_location ('Leaving ' || SUBSTR (SQLERRM, 1, 50),
2165 32
2166 );
2167 hr_utility.set_location ('Leaving ' || SUBSTR (SQLERRM, 51, 100),
2168 32
2169 );
2170 END IF;
2171 l_msg := fnd_message.get;
2172 fnd_message.set_name('BEN','BEN_94875_ICD_BENMNGLE_ERROR');
2173 fnd_message.set_token('BENMNGLE_ERROR',l_msg);
2174 fnd_msg_pub.add;
2175 ben_icm_life_events.g_cache_pep_object.DELETE;
2176 ben_icm_life_events.g_cache_epo_object.DELETE;
2177 ben_determine_activity_base_rt.l_icd_chc_rates_tab.DELETE;
2178 ROLLBACK TO icm_life_events_savepoint;
2179 --
2180 --
2181 END p_manage_icm_life_events;
2182 --
2183 END ben_icm_life_events;
2184 --