151: l_dummy_v varchar2(30);
152: l_dummy_n number;
153: Begin
154:
155: hr_utility.set_location ('Entering ' ||l_package,10);
156:
157: ben_determine_date.rate_and_coverage_dates
158: (p_which_dates_cd => nvl(p_calc_type,'B')
159: ,p_date_mandatory_flag => 'N'
185:
186: p_cvg_strt_dt := l_enrt_cvg_strt_dt ;
187: p_rt_strt_dt := l_rt_strt_dt ;
188:
189: hr_utility.set_location ('Leaving ' ||l_package,10);
190:
191: End calc_fonm_dates ;
192:
193:
281: -- bof FONM
282: l_fonm_date date ;
283: --eof FONM
284: begin
285: hr_utility.set_location ('Entering ' ||l_package,10);
286: hr_utility.set_location ('l_apr.mlt_cd -> '||p_mlt_cd,10);
287: --
288: -- get values for rules and limit checking
289: --bof FONM
282: l_fonm_date date ;
283: --eof FONM
284: begin
285: hr_utility.set_location ('Entering ' ||l_package,10);
286: hr_utility.set_location ('l_apr.mlt_cd -> '||p_mlt_cd,10);
287: --
288: -- get values for rules and limit checking
289: --bof FONM
290: l_fonm_date := nvl(p_lf_evt_ocrd_dt,p_effective_date ) ;
291: -------Bug 9135034
292: open c_epe;
293: fetch c_epe into l_fonm_cvg_strt_dt1;
294: close c_epe;
295: hr_utility.set_location ('l_fonm_cvg_strt_dt1 -> '|| l_fonm_cvg_strt_dt1,10);
296: if l_fonm_cvg_strt_dt1 is not null then
297: ben_manage_life_events.fonm := 'Y';
298: ben_manage_life_events.g_fonm_cvg_strt_dt := l_fonm_cvg_strt_dt1;
299: ben_manage_life_events.g_fonm_rt_strt_dt := p_fonm_rt_strt_dt;
297: ben_manage_life_events.fonm := 'Y';
298: ben_manage_life_events.g_fonm_cvg_strt_dt := l_fonm_cvg_strt_dt1;
299: ben_manage_life_events.g_fonm_rt_strt_dt := p_fonm_rt_strt_dt;
300: end if;
301: hr_utility.set_location ('ben_manage_life_events.fonm -> '||ben_manage_life_events.fonm,10);
302: ------Bug 9135034
303: if ben_manage_life_events.fonm = 'Y' then
304: l_fonm_date := nvl(p_fonm_cvg_strt_dt, l_fonm_date ) ;
305: end if ;
326: --
327: -- Flat-Fixed
328: --
329: if p_mlt_cd = 'FLFX' then
330: hr_utility.set_location ('in flfx',20);
331: p_computed_val := p_prem_val;
332: --
333: -- Multiple of Coverage
334: --
332: --
333: -- Multiple of Coverage
334: --
335: elsif p_mlt_cd = 'CVG' then
336: hr_utility.set_location ('in cvg',30);
337: if p_bnft_amt is null then
338: if p_enrt_bnft_id is null then
339: hr_utility.set_location ('BEN_91579_BENACPRM_INPT_EB',40);
340: fnd_message.set_name('BEN','BEN_91579_BENACPRM_INPT_EB');
335: elsif p_mlt_cd = 'CVG' then
336: hr_utility.set_location ('in cvg',30);
337: if p_bnft_amt is null then
338: if p_enrt_bnft_id is null then
339: hr_utility.set_location ('BEN_91579_BENACPRM_INPT_EB',40);
340: fnd_message.set_name('BEN','BEN_91579_BENACPRM_INPT_EB');
341: fnd_message.set_token('PROC',l_package);
342: fnd_message.set_token('PERSON_ID',to_char(p_person_id));
343: fnd_message.set_token('PGM_ID',to_char(p_pgm_id));
371: --
372: elsif p_mlt_cd = 'RL' then
373: --
374: -- Call formula initialise routine
375: hr_utility.set_location ('in rl',10);
376:
377: l_outputs := benutils.formula
378: (p_formula_id => p_val_calc_rl,
379: p_effective_date => nvl(p_lf_evt_ocrd_dt,p_effective_date),
399:
400: elsif p_mlt_cd = 'NSVU' then
401: -- Do nothing for NO STANDARD VALUE USED
402: -- Value used comes from Variable rates below.
403: hr_utility.set_location ('in nsvu',10);
404: null;
405: else
406: hr_utility.set_location ('BEN_91584_BENACPRM_MLT_CD',50);
407: fnd_message.set_name('BEN','BEN_91584_BENACPRM_MLT_CD');
402: -- Value used comes from Variable rates below.
403: hr_utility.set_location ('in nsvu',10);
404: null;
405: else
406: hr_utility.set_location ('BEN_91584_BENACPRM_MLT_CD',50);
407: fnd_message.set_name('BEN','BEN_91584_BENACPRM_MLT_CD');
408: fnd_message.set_token('PROC',l_package);
409: fnd_message.set_token('PERSON_ID',to_char(p_person_id));
410: fnd_message.set_token('PGM_ID',to_char(p_pgm_id));
433: p_rndg_rl is not null) and
434: p_perform_rounding_flg = true and
435: p_computed_val is not null and
436: nvl(l_vr_trtmt_cd, 'XXXX') <> 'RPLC' then
437: hr_utility.set_location ('rounding ',70);
438: p_computed_val := benutils.do_rounding
439: (p_rounding_cd => p_rndg_cd,
440: p_rounding_rl => p_rndg_rl,
441: p_value => p_computed_val,
444: end if;
445: --
446: -- check upr/lwr limit
447: --
448: hr_utility.set_location('check the limit of prm ',20);
449: benutils.limit_checks
450: (p_upr_lmt_val => p_upr_lmt_val,
451: p_lwr_lmt_val => p_lwr_lmt_val,
452: p_upr_lmt_calc_rl => p_upr_lmt_calc_rl,
502: p_ultmt_lwr_lmt => l_ultmt_lwr_lmt,
503: p_ultmt_upr_lmt_calc_rl => l_ultmt_upr_lmt_calc_rl,
504: p_ultmt_lwr_lmt_calc_rl => l_ultmt_lwr_lmt_calc_rl);
505: --
506: hr_utility.set_location ('after variable rates',60);
507: hr_utility.set_location ('l_vr_trtmt_cd -> '||l_vr_trtmt_cd,60);
508: hr_utility.set_location ('l_vr_val -> '||l_variable_val,60);
509: hr_utility.set_location ('l_val -> '||p_computed_val,60);
510:
503: p_ultmt_upr_lmt_calc_rl => l_ultmt_upr_lmt_calc_rl,
504: p_ultmt_lwr_lmt_calc_rl => l_ultmt_lwr_lmt_calc_rl);
505: --
506: hr_utility.set_location ('after variable rates',60);
507: hr_utility.set_location ('l_vr_trtmt_cd -> '||l_vr_trtmt_cd,60);
508: hr_utility.set_location ('l_vr_val -> '||l_variable_val,60);
509: hr_utility.set_location ('l_val -> '||p_computed_val,60);
510:
511: if p_computed_val is null then
504: p_ultmt_lwr_lmt_calc_rl => l_ultmt_lwr_lmt_calc_rl);
505: --
506: hr_utility.set_location ('after variable rates',60);
507: hr_utility.set_location ('l_vr_trtmt_cd -> '||l_vr_trtmt_cd,60);
508: hr_utility.set_location ('l_vr_val -> '||l_variable_val,60);
509: hr_utility.set_location ('l_val -> '||p_computed_val,60);
510:
511: if p_computed_val is null then
512: l_vr_trtmt_cd := 'RPLC';
505: --
506: hr_utility.set_location ('after variable rates',60);
507: hr_utility.set_location ('l_vr_trtmt_cd -> '||l_vr_trtmt_cd,60);
508: hr_utility.set_location ('l_vr_val -> '||l_variable_val,60);
509: hr_utility.set_location ('l_val -> '||p_computed_val,60);
510:
511: if p_computed_val is null then
512: l_vr_trtmt_cd := 'RPLC';
513: end if;
535:
536: if l_ultmt_upr_lmt is not null or l_ultmt_lwr_lmt is not null
537: OR l_ultmt_upr_lmt_calc_rl is not null or l_ultmt_lwr_lmt_calc_rl is not null then
538: --- if ultmate limit defined in VAPRO chek the limit
539: hr_utility.set_location('calling limit for ultmt of prem',393);
540: hr_utility.set_location('upper '|| l_ultmt_upr_lmt ||' Lower' || l_ultmt_lwr_lmt,393);
541: hr_utility.set_location('ammount '|| p_computed_val ,393);
542: benutils.limit_checks
543: (p_upr_lmt_val => l_ultmt_upr_lmt,
536: if l_ultmt_upr_lmt is not null or l_ultmt_lwr_lmt is not null
537: OR l_ultmt_upr_lmt_calc_rl is not null or l_ultmt_lwr_lmt_calc_rl is not null then
538: --- if ultmate limit defined in VAPRO chek the limit
539: hr_utility.set_location('calling limit for ultmt of prem',393);
540: hr_utility.set_location('upper '|| l_ultmt_upr_lmt ||' Lower' || l_ultmt_lwr_lmt,393);
541: hr_utility.set_location('ammount '|| p_computed_val ,393);
542: benutils.limit_checks
543: (p_upr_lmt_val => l_ultmt_upr_lmt,
544: p_lwr_lmt_val => l_ultmt_lwr_lmt,
537: OR l_ultmt_upr_lmt_calc_rl is not null or l_ultmt_lwr_lmt_calc_rl is not null then
538: --- if ultmate limit defined in VAPRO chek the limit
539: hr_utility.set_location('calling limit for ultmt of prem',393);
540: hr_utility.set_location('upper '|| l_ultmt_upr_lmt ||' Lower' || l_ultmt_lwr_lmt,393);
541: hr_utility.set_location('ammount '|| p_computed_val ,393);
542: benutils.limit_checks
543: (p_upr_lmt_val => l_ultmt_upr_lmt,
544: p_lwr_lmt_val => l_ultmt_lwr_lmt,
545: p_upr_lmt_calc_rl => l_ultmt_upr_lmt_calc_rl,
556: p_ler_id => p_ler_id,
557: p_state => l_state.region_2,
558: p_elig_per_elctbl_chc_id => p_elig_per_elctbl_chc_id,
559: p_val => p_computed_val);
560: hr_utility.set_location('ammount '|| p_computed_val ,393);
561:
562: end if ;
563: end if;
564: --
575: p_rndg_rl is not null) and
576: p_perform_rounding_flg = true and
577: p_computed_val is not null and
578: nvl(l_vr_trtmt_cd, 'XXXX') <> 'RPLC' then
579: hr_utility.set_location ('rounding ',70);
580: p_computed_val := benutils.do_rounding
581: (p_rounding_cd => p_rndg_cd,
582: p_rounding_rl => p_rndg_rl,
583: p_value => p_computed_val,
606: p_elig_per_elctbl_chc_id => p_elig_per_elctbl_chc_id,
607: p_val => p_computed_val);
608: */
609:
610: hr_utility.set_location ('Leaving '||l_package,99);
611:
612: end compute_premium;
613: --------------------------------------------------------------------------------
614: -- MAIN
772: -- Eof FONM
773:
774: BEGIN
775: --
776: hr_utility.set_location ('Entering '||l_package,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
773:
774: BEGIN
775: --
776: hr_utility.set_location ('Entering '||l_package,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
774: BEGIN
775: --
776: hr_utility.set_location ('Entering '||l_package,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
775: --
776: hr_utility.set_location ('Entering '||l_package,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
776: hr_utility.set_location ('Entering '||l_package,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
777: hr_utility.set_location ('p_person_id : '||p_person_id ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
778: hr_utility.set_location ('p_effective_date : '||p_effective_date ,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
786: hr_utility.set_location ('p_business_group_id : '||p_business_group_id,10);
779: hr_utility.set_location ('p_lf_evt_ocrd_dt : '||p_lf_evt_ocrd_dt ,10);
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
786: hr_utility.set_location ('p_business_group_id : '||p_business_group_id,10);
787: -- since the premium called out side of compobject loop
780: hr_utility.set_location ('p_pgm_id : '||p_pgm_id ,10);
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
786: hr_utility.set_location ('p_business_group_id : '||p_business_group_id,10);
787: -- since the premium called out side of compobject loop
788: -- global variable can not be used to determine the fonm mode
781: hr_utility.set_location ('p_pl_id : '||p_pl_id ,10);
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
786: hr_utility.set_location ('p_business_group_id : '||p_business_group_id,10);
787: -- since the premium called out side of compobject loop
788: -- global variable can not be used to determine the fonm mode
789: -- use the epe fonmv cvg date used for the purpose
782: hr_utility.set_location ('p_oipl_id : '||p_oipl_id ,10);
783: hr_utility.set_location ('p_pl_typ_id : '||p_pl_typ_id ,10);
784: hr_utility.set_location ('p_per_in_ler_id : '||p_per_in_ler_id ,10);
785: hr_utility.set_location ('p_bnft_amt : '||p_bnft_amt ,10);
786: hr_utility.set_location ('p_business_group_id : '||p_business_group_id,10);
787: -- since the premium called out side of compobject loop
788: -- global variable can not be used to determine the fonm mode
789: -- use the epe fonmv cvg date used for the purpose
790:
792:
793: -- Edit to ensure that the input p_person_id has a value
794: --
795: If (p_person_id is null) then
796: hr_utility.set_location ('BEN_91574_BENACPRM_INPT_PRSN',20);
797: fnd_message.set_name('BEN','BEN_91574_BENACPRM_INPT_PRSN');
798: fnd_message.set_token('PROC',l_package);
799: fnd_message.set_token('PGM_ID',to_char(p_pgm_id));
800: fnd_message.set_token('PL_TYP_ID',to_char(p_pl_typ_id));
808: --
809: -- Edit to insure that the input p_effective_date has a value
810: --
811: If (p_effective_date is null) then
812: hr_utility.set_location ('BEN_91575_BENACPRM_INPT_EFFDT',30);
813: fnd_message.set_name('BEN','BEN_91575_BENACPRM_INPT_EFFDT');
814: fnd_message.set_token('PROC',l_package);
815: fnd_message.set_token('PERSON_ID',to_char(p_person_id));
816: fnd_message.set_token('PGM_ID',to_char(p_pgm_id));
867: --
868: l_epr_elenum := 1;
869: --
870: for epe_elenum in l_currepe_set.first..l_currepe_set.last loop
871: hr_utility.set_location (' St EPE CORVF loop ',40);
872: --
873: -- Set the electable choice context variable
874: --
875: ben_epe_cache.g_currepe_row := l_currepe_set(epe_elenum);
873: -- Set the electable choice context variable
874: --
875: ben_epe_cache.g_currepe_row := l_currepe_set(epe_elenum);
876: --
877: hr_utility.set_location ('loop choices -> '||l_currepe_set(epe_elenum).elig_per_elctbl_chc_id,50);
878:
879: /* Bug Bug 16013053; If val is NULL, then fetch the value of DFLT_VAL*/
880: if(l_currepe_set(epe_elenum).enrt_bnft_id is NOT NULL
881: and l_currepe_set(epe_elenum).val is NULL and NOT p_calc_only_rt_val_flag) then
899: l_FONM_date := nvl(p_lf_evt_ocrd_dt, p_effective_date) ;
900: ben_manage_life_events.g_fonm_cvg_strt_dt := null ;
901: ben_manage_life_events.fonm := 'N' ;
902: end if ;
903: hr_utility.set_location ('premium fonm -> '||l_FONM_flag,50);
904:
905: if l_FONM_flag = 'Y' then
906:
907: if l_currepe_set(epe_elenum).fonm_cvg_strt_dt is not null then
926: end if ;
927: */
928:
929: end if ;
930: hr_utility.set_location ('g_fonm_cvg_strt_dt '||ben_manage_life_events.g_fonm_cvg_strt_dt,50);
931: -- EOF FONM
932:
933: -- l_enrt_bnft_id := l_currepe_set(epe_elenum).enrt_bnft_id;
934: -- l_coverage_value := null;
933: -- l_enrt_bnft_id := l_currepe_set(epe_elenum).enrt_bnft_id;
934: -- l_coverage_value := null;
935:
936: if l_currepe_set(epe_elenum).oipl_id is not NULL then
937: hr_utility.set_location ('getting apr_oipl -> '||l_currepe_set(epe_elenum).oipl_id,60);
938: -- FONM l_fonm_date send as param
939: open c_apr_oipl(l_currepe_set(epe_elenum).oipl_id,l_FONM_date);
940: fetch c_apr_oipl into l_apr;
941: if c_apr_oipl%notfound then
941: if c_apr_oipl%notfound then
942: --
943: -- no actual premiums for this oipl
944: --
945: hr_utility.set_location ('apr_oipl -> '||l_currepe_set(epe_elenum).oipl_id||' <- not found',70);
946: close c_apr_oipl;
947: l_ap_found := false;
948: else
949: -- FONM l_fonm_date send as param
951: fetch c_opt into l_opt;
952: close c_opt;
953: end if;
954: elsif l_currepe_set(epe_elenum).pl_id is not NULL then
955: hr_utility.set_location ('getting apr_pl -> '||l_currepe_set(epe_elenum).pl_id,80);
956: -- FONM l_fonm_date send as param
957: open c_apr_pl(l_currepe_set(epe_elenum).pl_id,l_FONM_date);
958: fetch c_apr_pl into l_apr;
959: if c_apr_pl%notfound then
959: if c_apr_pl%notfound then
960: --
961: -- no actual premiums for this pl
962: --
963: hr_utility.set_location ('apr_pl -> '||l_currepe_set(epe_elenum).pl_id||' <- not found',90);
964: close c_apr_pl;
965: l_ap_found := false;
966: end if;
967: else
969: end if;
970: --
971: -- loop through all actl prem for this elctbl_chc
972: --
973: hr_utility.set_location ('FONM CVG DATE -> '||l_fonm_date ,90);
974: hr_utility.set_location ('FONM Rate DATE ->'||l_fonm_rt_strt_dt ,90);
975: if l_ap_found then
976:
977:
970: --
971: -- loop through all actl prem for this elctbl_chc
972: --
973: hr_utility.set_location ('FONM CVG DATE -> '||l_fonm_date ,90);
974: hr_utility.set_location ('FONM Rate DATE ->'||l_fonm_rt_strt_dt ,90);
975: if l_ap_found then
976:
977:
978: -- fonm caching validation for premium
981: p_rec => l_fonm_per_rec);
982: if not nvl(l_fonm_cvg_strt_dt,l_FONM_date ) between l_fonm_per_rec.effective_start_date
983: and l_fonm_per_rec.effective_end_date then
984:
985: hr_utility.set_location('cache clearence ' || l_package ,10);
986: ben_use_cvg_rt_date.fonm_clear_down_cache;
987: else
988: ben_person_object.get_object(p_person_id => p_person_id,
989: p_rec => l_fonm_ass_rec);
988: ben_person_object.get_object(p_person_id => p_person_id,
989: p_rec => l_fonm_ass_rec);
990: if not nvl(l_fonm_cvg_strt_dt,l_FONM_date ) between l_fonm_ass_rec.effective_start_date
991: and l_fonm_ass_rec.effective_end_date then
992: hr_utility.set_location('cache clearence ' || l_package ,10);
993: ben_use_cvg_rt_date.fonm_clear_down_cache;
994: end if ;
995: end if ;
996: --
995: end if ;
996: --
997: --
998: loop
999: hr_utility.set_location (l_package||' St EPE AP loop ',100);
1000: if l_currepe_set(epe_elenum).oipl_id is not null then
1001: exit when c_apr_oipl%notfound;
1002: elsif l_currepe_set(epe_elenum).pl_id is not null then
1003: exit when c_apr_pl%notfound;
1001: exit when c_apr_oipl%notfound;
1002: elsif l_currepe_set(epe_elenum).pl_id is not null then
1003: exit when c_apr_pl%notfound;
1004: end if;
1005: --hr_utility.set_location ('l_apr.actl_prem_id->'||l_apr.actl_prem_id,110);
1006: -- hr_utility.set_location ('l_apr.prem_asnmt_cd -> '||l_apr.prem_asnmt_cd,110);
1007: -- hr_utility.set_location ('l_apr.mlt_cd -> '||l_apr.mlt_cd,110);
1008:
1009: -- if l_apr.prem_asnmt_cd = 'ENRT' then
1002: elsif l_currepe_set(epe_elenum).pl_id is not null then
1003: exit when c_apr_pl%notfound;
1004: end if;
1005: --hr_utility.set_location ('l_apr.actl_prem_id->'||l_apr.actl_prem_id,110);
1006: -- hr_utility.set_location ('l_apr.prem_asnmt_cd -> '||l_apr.prem_asnmt_cd,110);
1007: -- hr_utility.set_location ('l_apr.mlt_cd -> '||l_apr.mlt_cd,110);
1008:
1009: -- if l_apr.prem_asnmt_cd = 'ENRT' then
1010: compute_premium
1003: exit when c_apr_pl%notfound;
1004: end if;
1005: --hr_utility.set_location ('l_apr.actl_prem_id->'||l_apr.actl_prem_id,110);
1006: -- hr_utility.set_location ('l_apr.prem_asnmt_cd -> '||l_apr.prem_asnmt_cd,110);
1007: -- hr_utility.set_location ('l_apr.mlt_cd -> '||l_apr.mlt_cd,110);
1008:
1009: -- if l_apr.prem_asnmt_cd = 'ENRT' then
1010: compute_premium
1011: (p_person_id => p_person_id,
1047: l_comp_prem_idx := l_comp_prem_idx + 1;
1048: g_computed_prem_tbl(l_comp_prem_idx).actl_prem_id := l_apr.actl_prem_id;
1049: g_computed_prem_tbl(l_comp_prem_idx).val := l_val;
1050: --
1051: hr_utility.set_location ('Premium Count ' || l_comp_prem_idx,120);
1052: hr_utility.set_location ('actl_prem_id ' || l_apr.actl_prem_id,120);
1053: hr_utility.set_location ('Premium Value ' || l_val,120);
1054: --
1055: -- write enrt_prem record
1048: g_computed_prem_tbl(l_comp_prem_idx).actl_prem_id := l_apr.actl_prem_id;
1049: g_computed_prem_tbl(l_comp_prem_idx).val := l_val;
1050: --
1051: hr_utility.set_location ('Premium Count ' || l_comp_prem_idx,120);
1052: hr_utility.set_location ('actl_prem_id ' || l_apr.actl_prem_id,120);
1053: hr_utility.set_location ('Premium Value ' || l_val,120);
1054: --
1055: -- write enrt_prem record
1056: --
1049: g_computed_prem_tbl(l_comp_prem_idx).val := l_val;
1050: --
1051: hr_utility.set_location ('Premium Count ' || l_comp_prem_idx,120);
1052: hr_utility.set_location ('actl_prem_id ' || l_apr.actl_prem_id,120);
1053: hr_utility.set_location ('Premium Value ' || l_val,120);
1054: --
1055: -- write enrt_prem record
1056: --
1057: hr_utility.set_location ('writing enrt_prem ',120);
1053: hr_utility.set_location ('Premium Value ' || l_val,120);
1054: --
1055: -- write enrt_prem record
1056: --
1057: hr_utility.set_location ('writing enrt_prem ',120);
1058: --
1059: -- Add enrt prem row to the varray
1060: --
1061: l_val_va.extend(1);
1148: --
1149: l_epr_elenum := l_epr_elenum+1;
1150:
1151: -- end if;
1152: hr_utility.set_location ('get next pl or oipl and loop back',130);
1153: if l_currepe_set(epe_elenum).oipl_id is not null then
1154: hr_utility.set_location ('next c_apr_oipl for oipl_id -> '||l_currepe_set(epe_elenum).oipl_id,130);
1155: fetch c_apr_oipl into l_apr;
1156: else
1150:
1151: -- end if;
1152: hr_utility.set_location ('get next pl or oipl and loop back',130);
1153: if l_currepe_set(epe_elenum).oipl_id is not null then
1154: hr_utility.set_location ('next c_apr_oipl for oipl_id -> '||l_currepe_set(epe_elenum).oipl_id,130);
1155: fetch c_apr_oipl into l_apr;
1156: else
1157: hr_utility.set_location ('next c_apr_pl for pl_id -> '||l_currepe_set(epe_elenum).pl_id,130);
1158: fetch c_apr_pl into l_apr;
1153: if l_currepe_set(epe_elenum).oipl_id is not null then
1154: hr_utility.set_location ('next c_apr_oipl for oipl_id -> '||l_currepe_set(epe_elenum).oipl_id,130);
1155: fetch c_apr_oipl into l_apr;
1156: else
1157: hr_utility.set_location ('next c_apr_pl for pl_id -> '||l_currepe_set(epe_elenum).pl_id,130);
1158: fetch c_apr_pl into l_apr;
1159: end if;
1160: hr_utility.set_location ('AFTER FETCH',140);
1161:
1156: else
1157: hr_utility.set_location ('next c_apr_pl for pl_id -> '||l_currepe_set(epe_elenum).pl_id,130);
1158: fetch c_apr_pl into l_apr;
1159: end if;
1160: hr_utility.set_location ('AFTER FETCH',140);
1161:
1162: end loop;
1163:
1164: end if;
1176: if p_mode in ('U','R') then
1177: --
1178: FOR i IN l_elig_per_elctbl_chc_id_va.FIRST .. l_elig_per_elctbl_chc_id_va.LAST loop
1179: --
1180: hr_utility.set_location(l_elig_per_elctbl_chc_id_va(i)||' '||l_enrt_bnft_id_va(i)||'actual'||l_actl_prem_id_va(i),111);
1181: l_enrt_prem_id := null;
1182: l_enrt_prem_id := ben_manage_unres_life_events.epr_exists
1183: (l_elig_per_elctbl_chc_id_va(i),
1184: l_enrt_bnft_id_va(i),
1396: -- Clear epe context row
1397: --
1398: ben_epe_cache.init_context_pileperow;
1399: --
1400: hr_utility.set_location ('Leaving '||l_package,99);
1401: end main;
1402: end ben_determine_actual_premium;