The following lines contain the word 'select', 'insert', 'update' or 'delete':
it selects once_r_cntug_cd.
04 May 99 G Perry 115.3 Cache support for PTIP, PLIP.
Added in hashing utility.
06 May 99 G Perry 115.4 Backport for Fidelity.
06 May 99 G Perry 115.5 Leapfrog from 115.3
04 Aug 99 T Guy 115.6 Enhanced Base Age calc to take
into account spouse/child DOB
23 Aug 99 G Perry 115.6 Added nocopy compiler directive.
Removed trace messages.
Hashing done locally.
06 Oct 99 mhoyes 115.8 - Tuned c1 cursors in,
- get_age_plip_rate
- get_age_ptip_rate
10 Jan 00 pbodla 115.9 - Added los_calc_rl to c1 cursor in
get_los_pgm_elig, get_los_pl_elig
get_los_plip_elig, get_los_ptip_elig,
get_los_pgm_elig ,
get_los_stated , get_los_pgm_rate ,
get_los_pl_rate , get_los_oipl_rate,
get_los_plip_rate, get_los_ptip_rate
24 Jan 00 lmcdonal 115.10 Add hrs_wkd_calc_rl to hwf and
comp_calc_rl to clf. Bugs
1118118, 1118113.
07 Mar 00 gperry 115.11 Fixes for WWBUG 1195803.
31 Mar 00 gperry 115.12 Added oiplip support.
13 May 00 mhoyes 115.13 - CBO tuning. Removed business group
restrictions from get_age_???_elig
get_comp_???_elig cursors.
- Replaced all binary_integer datatypes
with pls_integer datatyps.
26 Jun 00 gperry 115.14 Added age_calc_rl support.
03 Aug 00 mhoyes 115.15 - General tuning. Removed business
group restrictions.
17-jan-01 tilak 115.16 derive factor maximaum validated with < max + 1
16-Nov-01 ikasire 115.17 Bug 2101937 - Fixed the error in the ceil
condition of version 116.2 in all cursors.
08-Oct-02 kmahendr 115.18 Added parameters to get_los_elig,get_los_pgm_elig
get_los_ptip_elig, get_los_plip_elig, get_los_pl_elig
get_los_oipl_elig and modified cursor c1
08-Oct-02 kmahendr 115.19 Added dbdrv lines
09-Oct-02 kmahendr 115.20 added parameters in call to get_los_pl_elig,
get_los_plip_elig, get_los_ptip_elig
18-Oct-02 kmahendr 115.21 Added old_val, new_val parameters to other
derived factors
22-Oct-02 ikasire 115.22 Bug 2502763 added more parameters to clf routines
16-Mar-02 tjesumic 115.23 bug 2853140 age factor changes.
18-Mar-02 ikasire 115.24 Bug 2853140 Modifed the cursors to get
a row when both old and new values also
in the same range.
Added validation to update only first time for
each comp object with N in exist.
19-May-2003 ikasire 115.25 Option Level Rates Enhancements
30-Jun-2003 ikasire 115.27 Elpro Vapro Data model changes
19-Aug-2003 mmudigon 115.28 gscc fix
16-Oct-2003 rpgupta 115.29 Bug 3188198
Uncommented 'and p_old_val < lsf.mn_los_num'
in cursor c1 at all levels
Now the cursor would return only one row and
hence the ptnl le would be detected at all
stages.
28-Jul-2004 bmanyam 115.30 Bug 3761038. Split UNIONed queryies into 2.
Search Text "PERFNEW".
05-Aug-2005 mmudigon 115.31 Bug 4518047. Removed hr_utility
statements at lines 305,306 and
307
*/
--------------------------------------------------------------------------------
--
g_package VARCHAR2(80) := 'ben_derive_part_and_rate_cache';
select opt_id
from ben_oipl_f otp
where otp.oipl_id = p_oipl_id
and p_effective_date between otp.effective_start_date
and otp.effective_end_date ;
SELECT p_pgm_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num ,p_new_val)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
and p_old_val < lsf.mn_los_num -- uncommented this -- bug 3188198
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(lsf.mn_los_num,p_new_val)
OR
p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(lsf.mn_los_num ,p_old_val)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
) ;
SELECT p_pl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num ,p_new_val)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
and p_old_val < lsf.mn_los_num -- uncommented this -- bug 3188198
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(lsf.mn_los_num,p_new_val)
OR
p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(lsf.mn_los_num ,p_old_val)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
) ;
SELECT p_oipl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num ,p_new_val)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
and p_old_val < lsf.mn_los_num -- uncommented this -- bug 3188198
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(lsf.mn_los_num,p_new_val)
OR
p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(lsf.mn_los_num ,p_old_val)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
) ;
SELECT p_plip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num ,p_new_val)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
and p_old_val < lsf.mn_los_num -- uncommented this -- bug 3188198
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(lsf.mn_los_num,p_new_val)
OR
p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(lsf.mn_los_num ,p_old_val)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num ,p_new_val)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
and p_old_val < lsf.mn_los_num -- uncommented this -- bug 3188198
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(lsf.mn_los_num,p_new_val)
OR
p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(lsf.mn_los_num ,p_old_val)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_los_fctr_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
WHERE lsf.los_fctr_id = p_los_fctr_id;
SELECT p_pgm_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num ,p_new_val) + 0.001)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
--NEW
--,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
--NEW
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num ,p_new_val) + 0.001)
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val ) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- , p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
-- ,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
--
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val ) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- , p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001 ))
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- , p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
--,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = els.vrbl_rt_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001 ))
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- , p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001)
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001))
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
--,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = els.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001))
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val )) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val)) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val )) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
--,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = els.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val)) + 0.001 )
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val )) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
,ben_los_rt_f lsr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = lsr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN lsr.effective_start_date
AND lsr.effective_end_date
AND lsr.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val))+ 0.001)
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,lsf.los_det_cd
,lsf.los_dt_to_use_cd
,lsf.use_overid_svc_dt_flag
,lsf.los_uom
,lsf.los_det_rl
,lsf.los_dt_to_use_rl
,lsf.los_calc_rl
,lsf.rndg_cd
,lsf.rndg_rl
,lsf.mn_los_num
,lsf.mx_los_num
FROM ben_los_fctr lsf
--,ben_los_rt_f lsr
,ben_elig_los_prte_f els
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = els.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND els.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND p_effective_date BETWEEN els.effective_start_date
AND els.effective_end_date
AND els.los_fctr_id = lsf.los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(lsf.mn_los_num
,p_new_val)
-- AND p_new_val < ceil( NVL(lsf.mx_los_num
-- ,p_new_val) + 0.001) )
and p_new_val < decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(lsf.mn_los_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(lsf.mx_los_num
-- ,p_new_val))+ 0.001)
OR p_new_val >= decode(nvl(lsf.mx_los_num,p_new_val) ,
trunc(nvl(lsf.mx_los_num,p_new_val))
,decode(nvl(lsf.mn_los_num,p_new_val), trunc(nvl(lsf.mn_los_num,p_new_val)),
nvl(lsf.mx_los_num,p_new_val)+1,nvl(lsf.mx_los_num,p_new_val)+0.000000001),
nvl(lsf.mx_los_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(lsf.mn_los_num
,p_old_val)
-- AND p_old_val < ceil( NVL(lsf.mx_los_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(lsf.mx_los_num,p_old_val) ,
trunc(nvl(lsf.mx_los_num,p_old_val))
,decode(nvl(lsf.mn_los_num,p_old_val), trunc(nvl(lsf.mn_los_num,p_old_val)),
nvl(lsf.mx_los_num,p_old_val)+1,nvl(lsf.mx_los_num,p_old_val)+0.000000001),
nvl(lsf.mx_los_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num ,p_new_val)
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
-- and p_old_val < agf.mn_age_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(agf.mn_age_num,p_new_val)
OR
p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(agf.mn_age_num ,p_old_val)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num ,p_new_val)
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
-- and p_old_val < agf.mn_age_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(agf.mn_age_num,p_new_val)
OR
p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(agf.mn_age_num ,p_old_val)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_oipl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num ,p_new_val)
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
-- and p_old_val < agf.mn_age_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(agf.mn_age_num,p_new_val)
OR
p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(agf.mn_age_num ,p_old_val)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_plip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num ,p_new_val)
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
-- and p_old_val < agf.mn_age_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(agf.mn_age_num,p_new_val)
OR
p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(agf.mn_age_num ,p_old_val)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num ,p_new_val)
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
-- and p_old_val < agf.mn_age_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(agf.mn_age_num,p_new_val)
OR
p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(agf.mn_age_num ,p_old_val)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_age_fctr_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
WHERE agf.age_fctr_id = p_age_fctr_id;
SELECT p_pgm_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_age_rt_f art
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val ) + 0.001))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
--,ben_age_rt_f art
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val ) + 0.001))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_age_rt_f art
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val)+ 0.001 ))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
--,ben_age_rt_f art
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val)+ 0.001 ))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001)
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
,ben_age_rt_f art
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val)+ 0.001 ))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001 )
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_age_fctr agf
--,ben_age_rt_f art
,ben_elig_age_prte_f eap
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
-- AND p_new_val < ceil( NVL(agf.mx_age_num
-- ,p_new_val)+ 0.001 ))
and p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
-- OR p_new_val >= ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001 )
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
-- AND p_old_val < ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
and p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_vrbl_rt_prfl_f vpf
,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
--ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_elig_age_prte_f eap
--,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
--ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_vrbl_rt_prfl_f vpf
,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_elig_age_prte_f eap
--,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_vrbl_rt_prfl_f vpf
,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = art.vrbl_rt_prfl_id
AND p_effective_date BETWEEN art.effective_start_date
AND art.effective_end_date
AND art.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- , p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,agf.age_det_cd
,agf.age_to_use_cd
,agf.age_uom
,agf.age_det_rl
,agf.rndg_cd
,agf.rndg_rl
,agf.age_calc_rl
,agf.mn_age_num
,agf.mx_age_num
FROM ben_acty_base_rt_f abr
,ben_acty_vrbl_rt_f avr
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_elig_age_prte_f eap
--,ben_age_rt_f art
,ben_age_fctr agf
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = eap.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND eap.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN eap.effective_start_date
AND eap.effective_end_date
AND eap.age_fctr_id = agf.age_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(agf.mn_age_num
,p_new_val)
AND p_new_val < decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- , p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(agf.mn_age_num
,p_new_val)
OR p_new_val >= decode(nvl(agf.mx_age_num,p_new_val) ,
trunc(nvl(agf.mx_age_num,p_new_val))
,decode(nvl(agf.mn_age_num,p_new_val), trunc(nvl(agf.mn_age_num,p_new_val)),
nvl(agf.mx_age_num,p_new_val)+1,nvl(agf.mx_age_num,p_new_val)+0.000000001),
nvl(agf.mx_age_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(agf.mn_age_num
,p_old_val)
AND p_old_val < decode(nvl(agf.mx_age_num,p_old_val) ,
trunc(nvl(agf.mx_age_num,p_old_val))
,decode(nvl(agf.mn_age_num,p_old_val), trunc(nvl(agf.mn_age_num,p_old_val)),
nvl(agf.mx_age_num,p_old_val)+1,nvl(agf.mx_age_num,p_old_val)+0.000000001),
nvl(agf.mx_age_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(agf.mx_age_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val ,p_new_val)
and p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
-- and p_old_val < clf.mn_comp_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(clf.mn_comp_val,p_new_val)
OR
p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(clf.mn_comp_val ,p_old_val)
and p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val ,p_new_val)
and p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
-- and p_old_val < clf.mn_comp_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(clf.mn_comp_val,p_new_val)
OR
p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(clf.mn_comp_val ,p_old_val)
and p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_oipl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val ,p_new_val)
and p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
-- and p_old_val < clf.mn_comp_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(clf.mn_comp_val,p_new_val)
OR
p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(clf.mn_comp_val ,p_old_val)
and p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_plip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val ,p_new_val)
and p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
-- and p_old_val < clf.mn_comp_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(clf.mn_comp_val,p_new_val)
OR
p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(clf.mn_comp_val ,p_old_val)
and p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val ,p_new_val)
and p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
-- and p_old_val < clf.mn_comp_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(clf.mn_comp_val,p_new_val)
OR
p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(clf.mn_comp_val ,p_old_val)
and p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pgm_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val))+ 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val))+ 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val))+ 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val))+ 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
--ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001)
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
--ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
,ben_comp_lvl_rt_f clr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = clr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN clr.effective_start_date
AND clr.effective_end_date
AND clr.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- , p_new_val))+ 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,clf.comp_lvl_uom
,clf.comp_src_cd
,clf.comp_lvl_det_cd
,clf.comp_lvl_det_rl
,clf.rndg_cd
,clf.rndg_rl
,clf.mn_comp_val
,clf.mx_comp_val
,clf.bnfts_bal_id
,clf.defined_balance_id
,clf.sttd_sal_prdcty_cd
,clf.comp_lvl_fctr_id
,clf.comp_calc_rl
FROM ben_comp_lvl_fctr clf
--,ben_comp_lvl_rt_f clr
,ben_elig_comp_lvl_prte_f ecl
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecl.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecl.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecl.effective_start_date
AND ecl.effective_end_date
AND ecl.comp_lvl_fctr_id = clf.comp_lvl_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(clf.mn_comp_val
,p_new_val)
AND p_new_val < decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(clf.mn_comp_val
,p_new_val)
OR p_new_val >= decode(nvl(clf.mx_comp_val,p_new_val) ,
trunc(nvl(clf.mx_comp_val,p_new_val))
,decode(nvl(clf.mn_comp_val,p_new_val), trunc(nvl(clf.mn_comp_val,p_new_val)),
nvl(clf.mx_comp_val,p_new_val)+1,nvl(clf.mx_comp_val,p_new_val)+0.000000001),
nvl(clf.mx_comp_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- , p_new_val))+ 0.001 )
AND p_old_val >= NVL(clf.mn_comp_val
,p_old_val)
AND p_old_val < decode(nvl(clf.mx_comp_val,p_old_val) ,
trunc(nvl(clf.mx_comp_val,p_old_val))
,decode(nvl(clf.mn_comp_val,p_old_val), trunc(nvl(clf.mn_comp_val,p_old_val)),
nvl(clf.mx_comp_val,p_old_val)+1,nvl(clf.mx_comp_val,p_old_val)+0.000000001),
nvl(clf.mx_comp_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(clf.mx_comp_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val ,p_new_val)
and p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
-- and p_old_val < cla.cmbnd_min_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(cla.cmbnd_min_val,p_new_val)
OR
p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(cla.cmbnd_min_val ,p_old_val)
and p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val ,p_new_val)
and p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
-- and p_old_val < cla.cmbnd_min_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(cla.cmbnd_min_val,p_new_val)
OR
p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(cla.cmbnd_min_val ,p_old_val)
and p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_oipl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val ,p_new_val)
and p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
-- and p_old_val < cla.cmbnd_min_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(cla.cmbnd_min_val,p_new_val)
OR
p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(cla.cmbnd_min_val ,p_old_val)
and p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_plip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val ,p_new_val)
and p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
-- and p_old_val < cla.cmbnd_min_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(cla.cmbnd_min_val,p_new_val)
OR
p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(cla.cmbnd_min_val ,p_old_val)
and p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val ,p_new_val)
and p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
-- and p_old_val < cla.cmbnd_min_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(cla.cmbnd_min_val,p_new_val)
OR
p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(cla.cmbnd_min_val ,p_old_val)
and p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pgm_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val )) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val )) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil(NVL(cla.cmbnd_max_val
-- ,l_old_val_1)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil(NVL(cla.cmbnd_max_val
-- ,l_old_val_1)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,l_new_val_1) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil(NVL(cla.cmbnd_max_val
-- ,l_new_val_1)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,l_old_val_1)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,l_new_val_1) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil(NVL(cla.cmbnd_max_val
-- ,l_new_val_1)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,l_old_val_1)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
,ben_cmbn_age_los_rt_f cmr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = cmr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN cmr.effective_start_date
AND cmr.effective_end_date
AND cmr.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,cla.los_fctr_id
,cla.age_fctr_id
,cla.cmbnd_min_val
,cla.cmbnd_max_val
FROM ben_cmbn_age_los_fctr cla
--,ben_cmbn_age_los_rt_f cmr
,ben_elig_cmbn_age_los_prte_f ecp
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ecp.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ecp.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ecp.effective_start_date
AND ecp.effective_end_date
AND ecp.cmbn_age_los_fctr_id = cla.cmbn_age_los_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(cla.cmbnd_min_val
,p_new_val)
AND p_new_val < decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(cla.cmbnd_min_val
,p_new_val)
OR p_new_val >= decode(nvl(cla.cmbnd_max_val,p_new_val) ,
trunc(nvl(cla.cmbnd_max_val,p_new_val))
,decode(nvl(cla.cmbnd_min_val,p_new_val), trunc(nvl(cla.cmbnd_min_val,p_new_val)),
nvl(cla.cmbnd_max_val,p_new_val)+1,nvl(cla.cmbnd_max_val,p_new_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_new_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(cla.cmbnd_min_val
,p_old_val)
AND p_old_val < decode(nvl(cla.cmbnd_max_val,p_old_val) ,
trunc(nvl(cla.cmbnd_max_val,p_old_val))
,decode(nvl(cla.cmbnd_min_val,p_old_val), trunc(nvl(cla.cmbnd_min_val,p_old_val)),
nvl(cla.cmbnd_max_val,p_old_val)+1,nvl(cla.cmbnd_max_val,p_old_val)+0.000000001),
nvl(cla.cmbnd_max_val,p_old_val)+0.000000001 ) )
-- ceil( NVL(cla.cmbnd_max_val
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val ,p_new_val)
and p_new_val < decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
-- and p_old_val < pff.mn_pct_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(pff.mn_pct_val,p_new_val)
OR
p_new_val >= decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(pff.mn_pct_val ,p_old_val)
and p_old_val < decode(nvl(pff.mx_pct_val,p_old_val) ,
trunc(nvl(pff.mx_pct_val,p_old_val))
,decode(nvl(pff.mn_pct_val,p_old_val), trunc(nvl(pff.mn_pct_val,p_old_val)),
nvl(pff.mx_pct_val,p_old_val)+1,nvl(pff.mx_pct_val,p_old_val)+0.000000001),
nvl(pff.mx_pct_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val ,p_new_val)
and p_new_val < decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
-- and p_old_val < pff.mn_pct_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(pff.mn_pct_val,p_new_val)
OR
p_new_val >= decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(pff.mn_pct_val ,p_old_val)
and p_old_val < decode(nvl(pff.mx_pct_val,p_old_val) ,
trunc(nvl(pff.mx_pct_val,p_old_val))
,decode(nvl(pff.mn_pct_val,p_old_val), trunc(nvl(pff.mn_pct_val,p_old_val)),
nvl(pff.mx_pct_val,p_old_val)+1,nvl(pff.mx_pct_val,p_old_val)+0.000000001),
nvl(pff.mx_pct_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_oipl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val ,p_new_val)
and p_new_val < decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
-- and p_old_val < pff.mn_pct_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(pff.mn_pct_val,p_new_val)
OR
p_new_val >= decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(pff.mn_pct_val ,p_old_val)
and p_old_val < decode(nvl(pff.mx_pct_val,p_old_val) ,
trunc(nvl(pff.mx_pct_val,p_old_val))
,decode(nvl(pff.mn_pct_val,p_old_val), trunc(nvl(pff.mn_pct_val,p_old_val)),
nvl(pff.mx_pct_val,p_old_val)+1,nvl(pff.mx_pct_val,p_old_val)+0.000000001),
nvl(pff.mx_pct_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_plip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val ,p_new_val)
and p_new_val < decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
-- and p_old_val < pff.mn_pct_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(pff.mn_pct_val,p_new_val)
OR
p_new_val >= decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(pff.mn_pct_val ,p_old_val)
and p_old_val < decode(nvl(pff.mx_pct_val,p_old_val) ,
trunc(nvl(pff.mx_pct_val,p_old_val))
,decode(nvl(pff.mn_pct_val,p_old_val), trunc(nvl(pff.mn_pct_val,p_old_val)),
nvl(pff.mx_pct_val,p_old_val)+1,nvl(pff.mx_pct_val,p_old_val)+0.000000001),
nvl(pff.mx_pct_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val ,p_new_val)
and p_new_val < decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
-- and p_old_val < pff.mn_pct_val
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(pff.mn_pct_val,p_new_val)
OR
p_new_val >= decode(nvl(pff.mx_pct_val,p_new_val) ,
trunc(nvl(pff.mx_pct_val,p_new_val))
,decode(nvl(pff.mn_pct_val,p_new_val), trunc(nvl(pff.mn_pct_val,p_new_val)),
nvl(pff.mx_pct_val,p_new_val)+1,nvl(pff.mx_pct_val,p_new_val)+0.000000001),
nvl(pff.mx_pct_val,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(pff.mn_pct_val ,p_old_val)
and p_old_val < decode(nvl(pff.mx_pct_val,p_old_val) ,
trunc(nvl(pff.mx_pct_val,p_old_val))
,decode(nvl(pff.mn_pct_val,p_old_val), trunc(nvl(pff.mn_pct_val,p_old_val)),
nvl(pff.mx_pct_val,p_old_val)+1,nvl(pff.mx_pct_val,p_old_val)+0.000000001),
nvl(pff.mx_pct_val,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pgm_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < ( NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < ( NVL(pff.mx_pct_val
,p_old_val)*100)+1 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < ( NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1 )
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < ( NVL(pff.mx_pct_val
,p_old_val)*100)+1 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) <( NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) <( NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < ( NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < ( NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
,ben_pct_fl_tm_rt_f pfr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = pfr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN pfr.effective_start_date
AND pfr.effective_end_date
AND pfr.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,pff.use_prmry_asnt_only_flag
,pff.use_sum_of_all_asnts_flag
,pff.rndg_cd
,pff.rndg_rl
,pff.mn_pct_val
,pff.mx_pct_val
FROM ben_pct_fl_tm_fctr pff
--,ben_pct_fl_tm_rt_f pfr
,ben_elig_pct_fl_tm_prte_f epf
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = epf.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND epf.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN epf.effective_start_date
AND epf.effective_end_date
AND epf.pct_fl_tm_fctr_id = pff.pct_fl_tm_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(pff.mn_pct_val
,p_new_val)
AND (p_new_val*100) < (NVL(pff.mx_pct_val
,p_new_val)*100)+1)
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(pff.mn_pct_val
,p_new_val)
OR (p_new_val*100) >= ( NVL(pff.mx_pct_val
,p_new_val)*100)+1)
AND p_old_val >= NVL(pff.mn_pct_val
,p_old_val)
AND (p_old_val*100) < (NVL(pff.mx_pct_val
,p_old_val)*100)+1)
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pgm_id = p_pgm_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num ,p_new_val)
and p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
-- and p_old_val < hwf.mn_hrs_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(hwf.mn_hrs_num,p_new_val)
OR
p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(hwf.mn_hrs_num ,p_old_val)
and p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.pl_id = p_pl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num ,p_new_val)
and p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
-- and p_old_val < hwf.mn_hrs_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(hwf.mn_hrs_num,p_new_val)
OR
p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(hwf.mn_hrs_num ,p_old_val)
and p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_oipl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.oipl_id = p_oipl_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num ,p_new_val)
and p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
-- and p_old_val < hwf.mn_hrs_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(hwf.mn_hrs_num,p_new_val)
OR
p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(hwf.mn_hrs_num ,p_old_val)
and p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_plip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.plip_id = p_plip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num ,p_new_val)
and p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
-- and p_old_val < hwf.mn_hrs_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(hwf.mn_hrs_num,p_new_val)
OR
p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(hwf.mn_hrs_num ,p_old_val)
and p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_ptip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_prtn_elig_prfl_f cep
,ben_prtn_elig_f epa
WHERE epa.ptip_id = p_ptip_id
AND p_effective_date BETWEEN epa.effective_start_date
AND epa.effective_end_date
AND epa.prtn_elig_id = cep.prtn_elig_id
AND p_effective_date BETWEEN cep.effective_start_date
AND cep.effective_end_date
AND cep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num ,p_new_val)
and p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
-- and p_old_val < hwf.mn_hrs_num
)
OR
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND
(
p_new_val < NVL(hwf.mn_hrs_num,p_new_val)
OR
p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 )
)
AND p_old_val >= NVL(hwf.mn_hrs_num ,p_old_val)
and p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 )
)
OR
( p_new_val IS NULL
AND p_old_val IS NULL
)
);
SELECT p_pgm_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pgm_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pgm_id = p_pgm_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_pl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.pl_id = p_pl_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oipl_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE ( abr.oipl_id = p_oipl_id
--
--START Option level Rates Enhancements
or ( abr.opt_id = l_opt_id and
not exists (select null from ben_acty_base_rt_f abr1
where abr1.oipl_id = p_oipl_id )))
--END Option level Rates Enhancements
--
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil(NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_plip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.plip_id = p_plip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_ptip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.ptip_id = p_ptip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
,ben_hrs_wkd_in_perd_rt_f hwr
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
AND vpf.vrbl_rt_prfl_id = hwr.vrbl_rt_prfl_id
AND p_effective_date BETWEEN hwr.effective_start_date
AND hwr.effective_end_date
AND hwr.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
SELECT p_oiplip_id
,'Y'
,hwf.hrs_src_cd
,hwf.hrs_wkd_det_cd
,hwf.hrs_wkd_det_rl
,hwf.rndg_cd
,hwf.rndg_rl
,hwf.defined_balance_id
,hwf.bnfts_bal_id
,hwf.mn_hrs_num
,hwf.mx_hrs_num
,hwf.once_r_cntug_cd
,hwf.hrs_wkd_calc_rl
FROM ben_hrs_wkd_in_perd_fctr hwf
--,ben_hrs_wkd_in_perd_rt_f hwr
,ben_elig_hrs_wkd_prte_f ehw
,ben_eligy_prfl_f elp
,ben_vrbl_rt_elig_prfl_f vep
,ben_vrbl_rt_prfl_f vpf
,ben_acty_vrbl_rt_f avr
,ben_acty_base_rt_f abr
WHERE abr.oiplip_id = p_oiplip_id
AND p_effective_date BETWEEN abr.effective_start_date
AND abr.effective_end_date
AND abr.acty_base_rt_id = avr.acty_base_rt_id
AND p_effective_date BETWEEN avr.effective_start_date
AND avr.effective_end_date
AND avr.vrbl_rt_prfl_id = vpf.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vpf.effective_start_date
AND vpf.effective_end_date
-- AND vpf.vrbl_rt_prfl_id = ehw.vrbl_rt_prfl_id
AND vpf.vrbl_rt_prfl_id = vep.vrbl_rt_prfl_id
AND p_effective_date BETWEEN vep.effective_start_date
AND vep.effective_end_date
AND vep.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN elp.effective_start_date
AND elp.effective_end_date
AND ehw.eligy_prfl_id = elp.eligy_prfl_id
AND p_effective_date BETWEEN ehw.effective_start_date
AND ehw.effective_end_date
AND ehw.hrs_wkd_in_perd_fctr_id = hwf.hrs_wkd_in_perd_fctr_id
AND (
(
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND p_new_val >= NVL(hwf.mn_hrs_num
,p_new_val)
AND p_new_val < decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val) + 0.001 ))
OR (
p_new_val IS NOT NULL
AND p_old_val IS NOT NULL
AND (
p_new_val < NVL(hwf.mn_hrs_num
,p_new_val)
OR p_new_val >= decode(nvl(hwf.mx_hrs_num,p_new_val) ,
trunc(nvl(hwf.mx_hrs_num,p_new_val))
,decode(nvl(hwf.mn_hrs_num,p_new_val), trunc(nvl(hwf.mn_hrs_num,p_new_val)),
nvl(hwf.mx_hrs_num,p_new_val)+1,nvl(hwf.mx_hrs_num,p_new_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_new_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- ,p_new_val)) + 0.001 )
AND p_old_val >= NVL(hwf.mn_hrs_num
,p_old_val)
AND p_old_val < decode(nvl(hwf.mx_hrs_num,p_old_val) ,
trunc(nvl(hwf.mx_hrs_num,p_old_val))
,decode(nvl(hwf.mn_hrs_num,p_old_val), trunc(nvl(hwf.mn_hrs_num,p_old_val)),
nvl(hwf.mx_hrs_num,p_old_val)+1,nvl(hwf.mx_hrs_num,p_old_val)+0.000000001),
nvl(hwf.mx_hrs_num,p_old_val)+0.000000001 ) )
-- ceil( NVL(hwf.mx_hrs_num
-- , p_old_val)) + 0.001 )
OR ( p_new_val IS NULL
AND p_old_val IS NULL));
g_cache_pl_los_el_rec.delete;
g_cache_oipl_los_el_rec.delete;
g_cache_plip_los_el_rec.delete;
g_cache_ptip_los_el_rec.delete;
g_cache_pgm_los_el_rec.delete;
g_cache_pl_los_rt_rec.delete;
g_cache_oipl_los_rt_rec.delete;
g_cache_plip_los_rt_rec.delete;
g_cache_ptip_los_rt_rec.delete;
g_cache_oiplip_los_rt_rec.delete;
g_cache_pgm_los_rt_rec.delete;
g_cache_stated_los_rec.delete;
g_cache_pl_age_el_rec.delete;
g_cache_oipl_age_el_rec.delete;
g_cache_plip_age_el_rec.delete;
g_cache_ptip_age_el_rec.delete;
g_cache_pgm_age_el_rec.delete;
g_cache_pl_age_rt_rec.delete;
g_cache_oipl_age_rt_rec.delete;
g_cache_plip_age_rt_rec.delete;
g_cache_ptip_age_rt_rec.delete;
g_cache_oiplip_age_rt_rec.delete;
g_cache_pgm_age_rt_rec.delete;
g_cache_stated_age_rec.delete;
g_cache_pl_clf_el_rec.delete;
g_cache_oipl_clf_el_rec.delete;
g_cache_plip_clf_el_rec.delete;
g_cache_ptip_clf_el_rec.delete;
g_cache_pgm_clf_el_rec.delete;
g_cache_pl_clf_rt_rec.delete;
g_cache_oipl_clf_rt_rec.delete;
g_cache_plip_clf_rt_rec.delete;
g_cache_oiplip_clf_rt_rec.delete;
g_cache_ptip_clf_rt_rec.delete;
g_cache_pgm_clf_rt_rec.delete;
g_cache_pl_cla_el_rec.delete;
g_cache_oipl_cla_el_rec.delete;
g_cache_plip_cla_el_rec.delete;
g_cache_ptip_cla_el_rec.delete;
g_cache_pgm_cla_el_rec.delete;
g_cache_pl_cla_rt_rec.delete;
g_cache_oipl_cla_rt_rec.delete;
g_cache_plip_cla_rt_rec.delete;
g_cache_oiplip_cla_rt_rec.delete;
g_cache_ptip_cla_rt_rec.delete;
g_cache_pgm_cla_rt_rec.delete;
g_cache_pl_pff_el_rec.delete;
g_cache_oipl_pff_el_rec.delete;
g_cache_plip_pff_el_rec.delete;
g_cache_ptip_pff_el_rec.delete;
g_cache_pgm_pff_el_rec.delete;
g_cache_pl_pff_rt_rec.delete;
g_cache_oipl_pff_rt_rec.delete;
g_cache_plip_pff_rt_rec.delete;
g_cache_oiplip_pff_rt_rec.delete;
g_cache_ptip_pff_rt_rec.delete;
g_cache_pgm_pff_rt_rec.delete;
g_cache_pl_hwf_el_rec.delete;
g_cache_oipl_hwf_el_rec.delete;
g_cache_plip_hwf_el_rec.delete;
g_cache_ptip_hwf_el_rec.delete;
g_cache_pgm_hwf_el_rec.delete;
g_cache_pl_hwf_rt_rec.delete;
g_cache_oipl_hwf_rt_rec.delete;
g_cache_plip_hwf_rt_rec.delete;
g_cache_oiplip_hwf_rt_rec.delete;
g_cache_ptip_hwf_rt_rec.delete;
g_cache_pgm_hwf_rt_rec.delete;