DBA Data[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 --