1 package body ben_cwb_utils as
2 /* $Header: bencwbutils.pkb 120.20.12020000.6 2013/01/29 14:57:24 kmsuresh ship $ */
3 FUNCTION get_task_access (
4 p_hidden_cd IN VARCHAR2,
5 p_task_access_cd IN VARCHAR2,
6 p_plan_access_cd IN VARCHAR2,
7 p_wksht_grp_cd IN VARCHAR2,
8 p_population_cd IN VARCHAR2,
9 p_status_cd IN VARCHAR2,
10 p_dist_bdgt_iss_dt IN DATE,
11 p_ss_update_start_dt IN DATE,
12 p_ss_update_end_dt IN DATE,
13 p_effective_dt IN DATE
14 )
15 RETURN VARCHAR2
16 IS
17 l_access_cd VARCHAR2 (2);
18 BEGIN
19 l_access_cd := 'UP';
20
21 IF (p_status_cd = 'NA')
22 THEN
23 --No Access
24 l_access_cd := 'NA';
25 ELSIF (p_wksht_grp_cd = 'BDGT' AND p_dist_bdgt_iss_dt IS NULL)
26 THEN
27 l_access_cd := 'NA';
28 ELSIF ( p_hidden_cd = 'NA'
29 OR p_task_access_cd = 'NA'
30 OR p_plan_access_cd = 'NA'
31 )
32 THEN
33 l_access_cd := 'NA';
34 ELSIF ( p_hidden_cd = 'RO'
35 OR p_task_access_cd = 'RO'
36 OR p_plan_access_cd = 'RO'
37 )
38 THEN
39 IF (p_wksht_grp_cd = 'BDGT' AND p_population_cd IS NULL)
40 THEN
41 l_access_cd := 'NA';
42 ELSE
43 l_access_cd := 'RO';
44 END IF;
45 ELSIF p_effective_dt NOT BETWEEN p_ss_update_start_dt AND p_ss_update_end_dt
46 THEN
47 l_access_cd := 'RO';
48 END IF;
49
50 RETURN l_access_cd;
51 END get_task_access;
52 --
53 FUNCTION is_task_enabled
54 (p_access_cd in varchar2,
55 p_population_cd in varchar2,
56 p_status_cd in varchar2,
57 p_dist_bdgt_iss_dt in date,
58 p_wksht_grp_cd in varchar2)
59 return varchar2
60 is
61 begin
62 if(p_status_cd = 'NA')
63 then
64 return 'D';
65 else
66 if (p_wksht_grp_cd = 'BDGT')
67 then
68 if (p_dist_bdgt_iss_dt is null)
69 then
70 return 'D';
71 elsif (nvl(p_access_cd,'NA') = 'RO' and p_population_cd is null) then
72 return 'D';
73 end if;
74 /*elsif (p_wksht_grp_cd = 'RVW')
75 then
76 if (p_status_cd = 'NS')
77 then
78 return 'D';
79 end if;*/
80 end if;
81 return 'Y';
82 end if;
83 end is_task_enabled;
84 --
85 PROCEDURE create_perf_benefit_actions
86 (
87 p_validate in boolean default false
88 ,p_benefit_action_id out nocopy number
89 ,p_process_date in date default SYSDATE
90 ,p_uneai_effective_date in date default null
91 ,p_mode_cd in varchar2 default 'W'
92 ,p_derivable_factors_flag in varchar2 default 'N'
93 ,p_close_uneai_flag in varchar2 default 'N'
94 ,p_validate_flag in varchar2 default 'N'
95 ,p_person_id in number default null
96 ,p_person_type_id in number default null
97 ,p_pgm_id in number default null
98 ,p_business_group_id in number default null
102 ,p_no_plans_flag in varchar2 default 'N'
99 ,p_pl_id in number default null
100 ,p_popl_enrt_typ_cycl_id in number default null
101 ,p_no_programs_flag in varchar2 default 'N'
103 ,p_comp_selection_rl in number default null
104 ,p_person_selection_rl in number default null
105 ,p_ler_id in number default null
106 ,p_organization_id in number default null
107 ,p_benfts_grp_id in number default null
108 ,p_location_id in number default null
109 ,p_pstl_zip_rng_id in number default null
110 ,p_rptg_grp_id in number default null
111 ,p_pl_typ_id in number default null
112 ,p_opt_id in number default null
113 ,p_eligy_prfl_id in number default null
114 ,p_vrbl_rt_prfl_id in number default null
115 ,p_legal_entity_id in number default null
116 ,p_payroll_id in number default null
117 ,p_debug_messages_flag in varchar2 default 'N'
118 ,p_cm_trgr_typ_cd in varchar2 default null
119 ,p_cm_typ_id in number default null
120 ,p_age_fctr_id in number default null
121 ,p_min_age in number default null
122 ,p_max_age in number default null
123 ,p_los_fctr_id in number default null
124 ,p_min_los in number default null
125 ,p_max_los in number default null
126 ,p_cmbn_age_los_fctr_id in number default null
127 ,p_min_cmbn in number default null
128 ,p_max_cmbn in number default null
129 ,p_date_from in date default null
130 ,p_elig_enrol_cd in varchar2 default null
131 ,p_actn_typ_id in number default null
132 ,p_use_fctr_to_sel_flag in varchar2 default 'N'
133 ,p_los_det_to_use_cd in varchar2 default null
134 ,p_audit_log_flag in varchar2 default 'N'
135 ,p_lmt_prpnip_by_org_flag in varchar2 default 'N'
136 ,p_lf_evt_ocrd_dt in date default null
137 ,p_ptnl_ler_for_per_stat_cd in varchar2 default null
138 ,p_bft_attribute_category in varchar2 default null
139 ,p_bft_attribute1 in varchar2 default null
140 ,p_bft_attribute3 in varchar2 default null
141 ,p_bft_attribute4 in varchar2 default null
142 ,p_bft_attribute5 in varchar2 default null
143 ,p_bft_attribute6 in varchar2 default null
144 ,p_bft_attribute7 in varchar2 default null
145 ,p_bft_attribute8 in varchar2 default null
146 ,p_bft_attribute9 in varchar2 default null
147 ,p_bft_attribute10 in varchar2 default null
148 ,p_bft_attribute11 in varchar2 default null
149 ,p_bft_attribute12 in varchar2 default null
150 ,p_bft_attribute13 in varchar2 default null
151 ,p_bft_attribute14 in varchar2 default null
152 ,p_bft_attribute15 in varchar2 default null
153 ,p_bft_attribute16 in varchar2 default null
154 ,p_bft_attribute17 in varchar2 default null
155 ,p_bft_attribute18 in varchar2 default null
156 ,p_bft_attribute19 in varchar2 default null
157 ,p_bft_attribute20 in varchar2 default null
158 ,p_bft_attribute21 in varchar2 default null
159 ,p_bft_attribute22 in varchar2 default null
160 ,p_bft_attribute23 in varchar2 default null
161 ,p_bft_attribute24 in varchar2 default null
162 ,p_bft_attribute25 in varchar2 default null
163 ,p_bft_attribute26 in varchar2 default null
164 ,p_bft_attribute27 in varchar2 default null
165 ,p_bft_attribute28 in varchar2 default null
166 ,p_bft_attribute29 in varchar2 default null
167 ,p_bft_attribute30 in varchar2 default null
168 ,p_request_id in number default null
169 ,p_program_application_id in number default null
170 ,p_program_id in number default null
171 ,p_program_update_date in date default null
172 ,p_object_version_number out nocopy number
173 ,p_effective_date in date default null
174 ,p_enrt_perd_id in number default null
175 ,p_inelg_action_cd in varchar2 default null
176 ,p_org_hierarchy_id in number default null
177 ,p_org_starting_node_id in number default null
178 ,p_grade_ladder_id in number default null
179 ,p_asg_events_to_all_sel_dt in varchar2 default null
180 ,p_rate_id in number default null
181 ,p_per_sel_dt_cd in varchar2 default null
182 ,p_per_sel_freq_cd in varchar2 default null
183 ,p_per_sel_dt_from in date default null
184 ,p_per_sel_dt_to in date default null
185 ,p_year_from in number default null
186 ,p_year_to in number default null
187 ,p_cagr_id in number default null
188 ,p_qual_type in number default null
189 ,p_qual_status in varchar2 default null
190 ,p_concat_segs in varchar2 default null
191 ,p_grant_price_val in number default null
192 )
193
194
195 is
196 --
197 -- Declare cursors and local variables
198 --
199 l_benefit_action_id ben_benefit_actions.benefit_action_id%TYPE;
200 l_object_version_number ben_benefit_actions.object_version_number%TYPE;
201 --
202 begin
203 --
204 -- Issue a savepoint if operating in validation only mode
205 --
206 savepoint create_perf_benefit_actions;
207
208 --
209 -- Process Logic
210 --
211 l_object_version_number := 1;
212 --
213 select ben_benefit_actions_s.nextval
214 into l_benefit_action_id
215 from sys.dual;
216 --
217 insert into ben_benefit_actions
218 (benefit_action_id
219 ,process_date
220 ,uneai_effective_date
221 ,mode_cd
222 ,derivable_factors_flag
223 ,close_uneai_flag
224 ,validate_flag
225 ,person_id
226 ,person_type_id
227 ,pgm_id
228 ,business_group_id
229 ,pl_id
230 ,popl_enrt_typ_cycl_id
231 ,no_programs_flag
232 ,no_plans_flag
233 ,comp_selection_rl
234 ,person_selection_rl
235 ,ler_id
236 ,organization_id
237 ,benfts_grp_id
238 ,location_id
239 ,pstl_zip_rng_id
240 ,rptg_grp_id
241 ,pl_typ_id
242 ,opt_id
243 ,eligy_prfl_id
244 ,vrbl_rt_prfl_id
245 ,legal_entity_id
246 ,payroll_id
247 ,debug_messages_flag
248 ,cm_trgr_typ_cd
249 ,cm_typ_id
250 ,age_fctr_id
251 ,min_age
252 ,max_age
253 ,los_fctr_id
254 ,min_los
255 ,max_los
256 ,cmbn_age_los_fctr_id
257 ,min_cmbn
258 ,max_cmbn
259 ,date_from
260 ,elig_enrol_cd
261 ,actn_typ_id
262 ,use_fctr_to_sel_flag
263 ,los_det_to_use_cd
264 ,audit_log_flag
265 ,lmt_prpnip_by_org_flag
266 ,lf_evt_ocrd_dt
267 ,ptnl_ler_for_per_stat_cd
268 ,bft_attribute_category
269 ,bft_attribute1
270 ,bft_attribute3
271 ,bft_attribute4
272 ,bft_attribute5
273 ,bft_attribute6
274 ,bft_attribute7
275 ,bft_attribute8
276 ,bft_attribute9
277 ,bft_attribute10
278 ,bft_attribute11
279 ,bft_attribute12
280 ,bft_attribute13
281 ,bft_attribute14
282 ,bft_attribute15
283 ,bft_attribute16
284 ,bft_attribute17
285 ,bft_attribute18
286 ,bft_attribute19
287 ,bft_attribute20
288 ,bft_attribute21
289 ,bft_attribute22
290 ,bft_attribute23
291 ,bft_attribute24
292 ,bft_attribute25
293 ,bft_attribute26
294 ,bft_attribute27
295 ,bft_attribute28
296 ,bft_attribute29
297 ,bft_attribute30
298 ,request_id
299 ,program_application_id
300 ,program_id
301 ,program_update_date
302 ,object_version_number
303 ,enrt_perd_id
304 ,inelg_action_cd
305 ,org_hierarchy_id
306 ,org_starting_node_id
307 ,grade_ladder_id
308 ,asg_events_to_all_sel_dt
309 ,rate_id
310 ,per_sel_dt_cd
311 ,per_sel_freq_cd
312 ,per_sel_dt_from
313 ,per_sel_dt_to
314 ,year_from
315 ,year_to
316 ,cagr_id
317 ,qual_type
318 ,qual_status
319 ,concat_segs
320 ,grant_price_val)
321 values
322 (l_benefit_action_id
323 ,p_process_date
324 ,p_uneai_effective_date
325 ,p_mode_cd
326 ,p_derivable_factors_flag
327 ,p_close_uneai_flag
328 ,p_validate_flag
329 ,p_person_id
330 ,p_person_type_id
331 ,p_pgm_id
332 ,p_business_group_id
333 ,p_pl_id
334 ,p_popl_enrt_typ_cycl_id
335 ,p_no_programs_flag
336 ,p_no_plans_flag
337 ,p_comp_selection_rl
338 ,p_person_selection_rl
339 ,p_ler_id
340 ,p_organization_id
341 ,p_benfts_grp_id
342 ,p_location_id
343 ,p_pstl_zip_rng_id
344 ,p_rptg_grp_id
345 ,p_pl_typ_id
346 ,p_opt_id
347 ,p_eligy_prfl_id
348 ,p_vrbl_rt_prfl_id
349 ,p_legal_entity_id
350 ,p_payroll_id
354 ,p_age_fctr_id
351 ,p_debug_messages_flag
352 ,p_cm_trgr_typ_cd
353 ,p_cm_typ_id
355 ,p_min_age
356 ,p_max_age
357 ,p_los_fctr_id
358 ,p_min_los
359 ,p_max_los
360 ,p_cmbn_age_los_fctr_id
361 ,p_min_cmbn
362 ,p_max_cmbn
363 ,p_date_from
364 ,p_elig_enrol_cd
365 ,p_actn_typ_id
366 ,p_use_fctr_to_sel_flag
367 ,p_los_det_to_use_cd
368 ,p_audit_log_flag
369 ,p_lmt_prpnip_by_org_flag
370 ,to_char(p_lf_evt_ocrd_dt,'DD-MON-YYYY')
371 ,p_ptnl_ler_for_per_stat_cd
372 ,p_bft_attribute_category
373 ,p_bft_attribute1
374 ,p_bft_attribute3
375 ,p_bft_attribute4
376 ,p_bft_attribute5
377 ,p_bft_attribute6
378 ,p_bft_attribute7
379 ,p_bft_attribute8
380 ,p_bft_attribute9
381 ,p_bft_attribute10
382 ,p_bft_attribute11
383 ,p_bft_attribute12
384 ,p_bft_attribute13
385 ,p_bft_attribute14
386 ,p_bft_attribute15
387 ,p_bft_attribute16
388 ,p_bft_attribute17
389 ,p_bft_attribute18
390 ,p_bft_attribute19
391 ,p_bft_attribute20
392 ,p_bft_attribute21
393 ,p_bft_attribute22
394 ,p_bft_attribute23
395 ,p_bft_attribute24
396 ,p_bft_attribute25
397 ,p_bft_attribute26
398 ,p_bft_attribute27
399 ,p_bft_attribute28
400 ,p_bft_attribute29
401 ,p_bft_attribute30
402 ,p_request_id
403 ,p_program_application_id
404 ,p_program_id
405 ,p_program_update_date
406 ,l_object_version_number
407 ,p_enrt_perd_id
408 ,p_inelg_action_cd
409 ,p_org_hierarchy_id
410 ,p_org_starting_node_id
411 ,p_grade_ladder_id
412 ,p_asg_events_to_all_sel_dt
413 ,p_rate_id
414 ,p_per_sel_dt_cd
415 ,p_per_sel_freq_cd
416 ,p_per_sel_dt_from
417 ,p_per_sel_dt_to
418 ,p_year_from
419 ,p_year_to
420 ,p_cagr_id
421 ,p_qual_type
422 ,p_qual_status
423 ,p_concat_segs
424 ,p_grant_price_val);
425
426
427 --
428 -- When in validation only mode raise the Validate_Enabled exception
429 --
430 -- Set all output arguments
431 --
432 p_benefit_action_id := l_benefit_action_id;
433 p_object_version_number := l_object_version_number;
434 --
435 exception
436 --
437 when hr_api.validate_enabled then
438 --
439 -- As the Validate_Enabled exception has been raised
440 -- we must rollback to the savepoint
441 --
442 ROLLBACK TO create_perf_benefit_actions;
443 --
444 -- Only set output warning arguments
445 -- (Any key or derived arguments must be set to null
446 -- when validation only mode is being used.)
447 --
448 p_benefit_action_id := null;
449 p_object_version_number := null;
450 --hr_utility.set_location(' Leaving:'||l_proc, 80);
451 --
452 when others then
453 --
454 -- A validation or unexpected error has occured
455 --
456 ROLLBACK TO create_perf_benefit_actions;
457 -- nocopy, reset
458 p_benefit_action_id := null;
459 p_object_version_number := null;
460 raise;
461 --
462
463 end create_perf_benefit_actions;
464 --
465 PROCEDURE insert_person_actions (
466 p_per_actn_id_array IN HR_MISC_SS_NUMBER_TABLE
467 , p_per_id IN HR_MISC_SS_NUMBER_TABLE
468 , p_group_per_in_ler_id IN HR_MISC_SS_NUMBER_TABLE
469 , p_benefit_action_id IN NUMBER
470 ,p_is_placeholder IN HR_MISC_SS_NUMBER_TABLE
471 )
472 IS
473 l_num_rows NUMBER := p_per_actn_id_array.COUNT;
474 BEGIN
475 --g_proc := 'insert_person_actions';
476 --write('Time before inserting person actions '||to_char(sysdate,'yyyy/mm/dd:hh:mi:ssam'));
477 FORALL l_count IN 1 .. p_per_actn_id_array.COUNT
478 --
479 INSERT INTO ben_person_actions
480 (person_action_id
481 , person_id
482 , ler_id
483 , benefit_action_id
484 , action_status_cd
485 , object_version_number
486 , NON_PERSON_CD
487 )
488 VALUES (p_per_actn_id_array (l_count)
489 , p_per_id (l_count)
490 , p_group_per_in_ler_id (l_count)
491 , p_benefit_action_id
492 , 'U'
493 , 1
494 , decode(p_is_placeholder (l_count),1,'Y','N')
495 );
496
497
498 END insert_person_actions;
499 --
500 FUNCTION get_manager_name(p_emp_per_in_ler_id in number,
501 p_level in number)
502 return varchar2
503 is
504
505 Cursor csr_mgr_name
506 is
507 Select bcpi.full_name,
508 bcpi.brief_name,
509 bcpi.custom_name
510 From ben_cwb_person_info bcpi,
511 ben_cwb_group_hrchy bcgh
512 where bcgh.emp_per_in_ler_id = p_emp_per_in_ler_id
513 and bcgh.lvl_num = (select max(lvl_num) - p_level + 1
514 from ben_cwb_group_hrchy
515 where emp_per_in_ler_id = p_emp_per_in_ler_id)
516 and bcgh.lvl_num > 0
517 and bcgh.mgr_per_in_ler_id = bcpi.group_per_in_ler_id;
518
519 name_profile varchar2(2000);
520 manager_names csr_mgr_name%rowtype;
521
522 begin
523
524 name_profile := get_profile ('BEN_DISPLAY_EMPLOYEE_NAME');
525
526 open csr_mgr_name;
527 fetch csr_mgr_name into manager_names;
528 close csr_mgr_name;
529
530 if('FN' = name_profile)
531 then
532 return manager_names.full_name;
533 elsif ('CN' = name_profile)
534 then
535 return manager_names.custom_name;
536 else
537 return manager_names.brief_name;
538 end if;
539
540 end get_manager_name;
541 --
542
543 FUNCTION get_eligibility(p_plan_status in varchar2,
544 p_opt1_status in varchar2,
545 p_opt2_status in varchar2,
546 p_opt3_status in varchar2,
547 p_opt4_status in varchar2
548 )
549 return varchar2
550 is
551 l_elig_count number := 0;
552 l_inelig_count number := 0;
553 begin
554
555 IF p_plan_status is not null THEN
556 IF p_plan_status = 'Y' THEN
557 l_elig_count := l_elig_count +1;
558 ELSE
559 l_inelig_count := l_inelig_count + 1;
560 END IF;
561 END IF;
562
563 IF p_opt1_status is not null THEN
564 IF p_opt1_status = 'Y' THEN
565 l_elig_count := l_elig_count +1;
566 ELSE
567 l_inelig_count := l_inelig_count + 1;
568 END IF;
569 END IF;
570
571 IF p_opt2_status is not null THEN
572 IF p_opt2_status = 'Y' THEN
573 l_elig_count := l_elig_count +1;
574 ELSE
575 l_inelig_count := l_inelig_count + 1;
576 END IF;
577 END IF;
578
579 IF p_opt3_status is not null THEN
580 IF p_opt3_status = 'Y' THEN
581 l_elig_count := l_elig_count +1;
582 ELSE
583 l_inelig_count := l_inelig_count + 1;
584 END IF;
585 END IF;
586
587 IF p_opt4_status is not null THEN
588 IF p_opt4_status = 'Y' THEN
589 l_elig_count := l_elig_count +1;
590 ELSE
591 l_inelig_count := l_inelig_count + 1;
592 END IF;
593 END IF;
594
595 IF l_elig_count > 0 AND l_inelig_count > 0 THEN
596 return 'BOTH';
597 END IF;
598
599 IF l_elig_count = 0 AND l_inelig_count = 0 THEN
600 return 'BOTH';
601 END IF;
602
603 IF l_elig_count > 0 AND l_inelig_count = 0 THEN
604 return 'Y';
605 END IF;
606
607 IF l_elig_count = 0 AND l_inelig_count > 0 THEN
608 return 'N';
609 END IF;
610
611 end;
612
613 FUNCTION get_profile(p_profile_name in varchar2)
614 return varchar2
615 is
616 name_profile varchar2(2000);
617 begin
618 fnd_profile.get (p_profile_name, name_profile);
619 return name_profile;
620 end get_profile;
621 --
622 PROCEDURE get_site_profile (
623 p_profile_1 in varchar2 default null,
624 p_value_1 out nocopy varchar2)
625 IS
626
627 l_defined_z boolean;
628 l_profile fnd_profile_options.profile_option_name%TYPE;
629 CURSOR value_site_profile(v_name varchar2)
630 IS
631 SELECT
632 valu.profile_option_value
633 FROM
634 fnd_profile_options options
635 ,fnd_profile_option_values valu
636 WHERE
637 options.profile_option_name = v_name
638 AND options.start_date_active <= SYSDATE
639 AND nvl (options.end_date_active
640 ,SYSDATE) >= SYSDATE
641 AND options.application_id = valu.application_id
642 AND options.profile_option_id = valu.profile_option_id
643 AND valu.level_id = 10001;
644
645 BEGIN
646 if(p_profile_1 is not null) then
647 l_profile := upper(p_profile_1);
648 open value_site_profile(l_profile);
649 fetch value_site_profile
650 into p_value_1;
651 close value_site_profile;
652 end if;
653 END get_site_profile;
654 --
655 --
656 PROCEDURE get_resp_profile (
657 p_resp_id in number default null,
658 p_profile_1 in varchar2 default null,
659 p_value_1 out nocopy varchar2)
660 IS
661
662 l_defined_z boolean;
663
664 CURSOR value_resp_profile(v_name varchar2, v_resp_id number)
665 IS
666 SELECT valu.profile_option_value
667 FROM fnd_profile_options options
668 ,fnd_profile_option_values valu
669 WHERE options.profile_option_name = upper(v_name)
670 AND options.start_date_active <= sysdate
671 AND nvl(options.end_date_active, sysdate) >= sysdate
675 AND valu.level_value = v_resp_id;
672 AND options.profile_option_id = valu.profile_option_id
673 AND valu.level_value_application_id = 800
674 AND valu.level_id = 10003
676
677 BEGIN
678 if(p_profile_1 is not null) then
679 open value_resp_profile(p_profile_1,p_resp_id);
680 fetch value_resp_profile
681 into p_value_1;
682 close value_resp_profile;
683 end if;
684 END get_resp_profile;
685 --
686 PROCEDURE get_user_profile (
687 p_user_id in number default null,
688 p_profile_1 in varchar2 default null,
689 p_profile_2 in varchar2 default null,
690 p_profile_3 in varchar2 default null,
691 p_profile_4 in varchar2 default null,
692 p_profile_5 in varchar2 default null,
693 p_profile_6 in varchar2 default null,
694 p_profile_7 in varchar2 default null,
695 p_profile_8 in varchar2 default null,
696 p_profile_9 in varchar2 default null,
697 p_profile_10 in varchar2 default null,
698 p_profile_11 in varchar2 default null,
699 p_profile_12 in varchar2 default null,
700 p_profile_13 in varchar2 default null,
701 p_profile_14 in varchar2 default null,
702 p_value_1 out nocopy varchar2,
703 p_value_2 out nocopy varchar2,
704 p_value_3 out nocopy varchar2,
705 p_value_4 out nocopy varchar2,
706 p_value_5 out nocopy varchar2,
707 p_value_6 out nocopy varchar2,
708 p_value_7 out nocopy varchar2,
709 p_value_8 out nocopy varchar2,
710 p_value_9 out nocopy varchar2,
711 p_value_10 out nocopy varchar2,
712 p_value_11 out nocopy varchar2,
713 p_value_12 out nocopy varchar2,
714 p_value_13 out nocopy varchar2,
715 p_value_14 out nocopy varchar2)
716 IS
717
718 l_defined_z boolean;
719
720 CURSOR value_user_profile(v_name varchar2, v_user_id number)
721 IS
722 SELECT valu.profile_option_value
723 FROM fnd_profile_options options
724 ,fnd_profile_option_values valu
725 WHERE options.profile_option_name = upper(v_name)
726 AND options.start_date_active <= sysdate
727 AND nvl(options.end_date_active, sysdate) >= sysdate
728 AND options.profile_option_id = valu.profile_option_id
729 AND valu.application_id = 805
730 AND valu.level_id = 10004
731 AND valu.level_value = v_user_id;
732
733 BEGIN
734 if(p_profile_1 is not null) then
735 open value_user_profile(p_profile_1,p_user_id);
736 fetch value_user_profile
737 into p_value_1;
738 close value_user_profile;
739 end if;
740 if(p_profile_2 is not null) then
741 open value_user_profile(p_profile_2,p_user_id);
742 fetch value_user_profile
743 into p_value_2;
744 close value_user_profile;
745 end if;
746 if(p_profile_3 is not null) then
747 open value_user_profile(p_profile_3,p_user_id);
748 fetch value_user_profile
749 into p_value_3;
750 close value_user_profile;
751 end if;
752 if(p_profile_4 is not null) then
753 open value_user_profile(p_profile_4,p_user_id);
754 fetch value_user_profile
755 into p_value_4;
756 close value_user_profile;
757 end if;
758 if(p_profile_5 is not null) then
759 open value_user_profile(p_profile_5,p_user_id);
760 fetch value_user_profile
761 into p_value_5;
762 close value_user_profile;
763 end if;
764 if(p_profile_6 is not null) then
765 open value_user_profile(p_profile_6,p_user_id);
766 fetch value_user_profile
767 into p_value_6;
768 close value_user_profile;
769 end if;
770 if(p_profile_7 is not null) then
771 open value_user_profile(p_profile_7,p_user_id);
772 fetch value_user_profile
773 into p_value_7;
774 close value_user_profile;
775 end if;
776 if(p_profile_8 is not null) then
777 open value_user_profile(p_profile_8,p_user_id);
778 fetch value_user_profile
779 into p_value_8;
780 close value_user_profile;
781 end if;
782 if(p_profile_9 is not null) then
783 open value_user_profile(p_profile_9,p_user_id);
784 fetch value_user_profile
785 into p_value_9;
786 close value_user_profile;
787 end if;
788 if(p_profile_10 is not null) then
789 open value_user_profile(p_profile_10,p_user_id);
790 fetch value_user_profile
791 into p_value_10;
792 close value_user_profile;
793 end if;
794 if(p_profile_11 is not null) then
795 open value_user_profile(p_profile_11,p_user_id);
796 fetch value_user_profile
797 into p_value_11;
798 close value_user_profile;
799 end if;
800 if(p_profile_12 is not null) then
801 open value_user_profile(p_profile_12,p_user_id);
802 fetch value_user_profile
803 into p_value_12;
804 close value_user_profile;
805 end if;
806 if(p_profile_13 is not null) then
807 open value_user_profile(p_profile_13,p_user_id);
808 fetch value_user_profile
809 into p_value_13;
813 open value_user_profile(p_profile_14,p_user_id);
810 close value_user_profile;
811 end if;
812 if(p_profile_14 is not null) then
814 fetch value_user_profile
815 into p_value_14;
816 close value_user_profile;
817 end if;
818 END get_user_profile;
819 --
820 PROCEDURE get_user_email_profile (
821 p_user_id in number default null,
822 p_profile_1 in varchar2 default null,
823 p_profile_2 in varchar2 default null,
824 p_profile_3 in varchar2 default null,
825 p_profile_4 in varchar2 default null,
826 p_value_1 out nocopy varchar2,
827 p_value_2 out nocopy varchar2,
828 p_value_3 out nocopy varchar2,
829 p_value_4 out nocopy varchar2)
830 IS
831
832 l_defined_z boolean;
833
834 CURSOR value_user_profile(v_name varchar2, v_user_id number)
835 IS
836 SELECT valu.profile_option_value
837 FROM fnd_profile_options options
838 ,fnd_profile_option_values valu
839 WHERE options.profile_option_name = upper(v_name)
840 AND options.start_date_active <= sysdate
841 AND nvl(options.end_date_active, sysdate) >= sysdate
842 AND options.profile_option_id = valu.profile_option_id
843 AND valu.application_id = 805
844 AND valu.level_id = 10004
845 AND valu.level_value = v_user_id;
846
847 BEGIN
848 if(p_profile_1 is not null) then
849 open value_user_profile(p_profile_1,p_user_id);
850 fetch value_user_profile
851 into p_value_1;
852 close value_user_profile;
853 end if;
854 if(p_profile_2 is not null) then
855 open value_user_profile(p_profile_2,p_user_id);
856 fetch value_user_profile
857 into p_value_2;
858 close value_user_profile;
859 end if;
860 if(p_profile_3 is not null) then
861 open value_user_profile(p_profile_3,p_user_id);
862 fetch value_user_profile
863 into p_value_3;
864 close value_user_profile;
865 end if;
866 if(p_profile_4 is not null) then
867 open value_user_profile(p_profile_4,p_user_id);
868 fetch value_user_profile
869 into p_value_4;
870 close value_user_profile;
871 end if;
872 END get_user_email_profile;
873 --
874 FUNCTION get_bdgt_pct_of_elig_sal_decs return number is
875 l_return_value number;
876 begin
877 l_return_value := to_number(get_profile('BEN_CWB_BS_PCT_ES_DECS_DISP'));
878 if l_return_value is null then
879 return 2;
880 elsif l_return_value > 10 then
881 return 10;
882 else
883 return l_return_value;
884 end if;
885 exception
886 when others then
887 return 2;
888 end get_bdgt_pct_of_elig_sal_decs;
889 --
890 FUNCTION get_alloc_pct_of_elig_sal_decs return number is
891 l_return_value number;
892 begin
893 l_return_value := to_number(get_profile('BEN_CWB_WS_PCT_ES_DECS_DISP'));
894 if l_return_value is null then
895 return 2;
896 elsif l_return_value > 10 then
897 return 10;
898 else
899 return l_return_value;
900 end if;
901 exception
902 when others then
903 return 2;
904 end get_alloc_pct_of_elig_sal_decs;
905 --
906 FUNCTION is_person_switchable(p_person_id in number,
907 p_effective_date in date)
908 return varchar2
909 is
910 CURSOR is_person_in_secured_view
911 is
912 SELECT 'x'
913 FROM per_people_f ppf,
914 per_person_types ppt
915 WHERE ppf.person_id = p_person_id
916 AND ppt.person_type_id = ppf.person_type_id
917 AND ppt.system_person_type <> 'EX_EMP_APL'
918 AND p_effective_date between ppf.effective_start_date and ppf.effective_end_date;
919
920 l_switch varchar2(1);
921
922 begin
923 OPEN is_person_in_secured_view;
924 FETCH is_person_in_secured_view INTO l_switch;
925 if is_person_in_secured_view%NOTFOUND then
926 CLOSE is_person_in_secured_view;
927 return 'N';
928 else
929 CLOSE is_person_in_secured_view;
930 return 'Y';
931 end if;
932 END is_person_switchable;
933
934
935 function add_number_with_null_check(p_orig_val in number,
936 p_new_val in number) return number is
937 begin
938 if p_orig_val is null then
939 return p_new_val;
940 else
941 return p_orig_val + nvl(p_new_val,0);
942 end if;
943 end add_number_with_null_check;
944
945
946
947 /* ---------------------------------------------------------------------
948 Procedures/Functions Below are defined for Document Management
949 Enhancements to support Printable Documents (PDF)
950 BEGIN
951 --------------------------------------------------------------------- */
952
953
954 Function get_option1_name(
955 p_group_plan_id in number,
956 p_lf_evnt_ocrd_dt in Date,
957 p_oipl_id in number,
958 p_group_per_in_ler_id in number,
959 p_pl_id in number,
960 p_ws_sub_acty_typ_cd in varchar2) return varchar2
961 is
962 cursor cur_option1_name is
963 Select name
964 From ben_cwb_pl_dsgn
965 Where pl_id = p_group_plan_id
966 and group_pl_id = p_group_plan_id
967 And lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
968 --And oipl_id <> -1
969 --And opt_count = 1;
973 Begin
970 and oipl_ordr_num = 1;
971
972 l_option1_name varchar2(240);
974
975 open cur_option1_name;
976 fetch cur_option1_name into l_option1_name;
977 close cur_option1_name;
978 return l_option1_name;
979 End;
980
981
982 Procedure populate_person_option1_rec(
983 p_group_plan_id in number,
984 p_lf_evt_ocrd_dt in Date,
985 p_oipl_id in number,
986 p_group_per_in_ler_id in number,
987 p_pl_id in number,
988 p_ws_sub_acty_typ_cd in varchar2)
989 Is
990 cursor cur_option1_rate is
991 Select bcpr.*
992 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
993 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
994 And bcpd.group_pl_id = p_group_plan_id
995 -- AND bcpd.pl_id = p_group_plan_id
996 And bcpd.lf_evt_ocrd_dt = p_lf_evt_ocrd_dt
997 --And bcpd.oipl_id <> -1
998 --And bcpd.opt_count = 1
999 and oipl_ordr_num = 1
1000 And bcpr.pl_id = bcpd.pl_id
1001 And bcpr.group_pl_id = bcpd.group_pl_id
1002 And bcpr.oipl_id = bcpd.oipl_id
1003 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
1004 and bcpr.elig_flag = 'Y';
1005 Begin
1006
1007 g_opt1_person_rates_rec := null;
1008 open cur_option1_rate;
1009 fetch cur_option1_rate into g_opt1_person_rates_rec;
1010 close cur_option1_rate;
1011
1012 End;
1013
1014 Function get_option1_rate_ws_amt(
1015 p_group_plan_id in number,
1016 p_lf_evnt_ocrd_dt in Date,
1017 p_oipl_id in number,
1018 p_group_per_in_ler_id in number,
1019 p_pl_id in number,
1020 p_ws_sub_acty_typ_cd in varchar2) return number
1021 is
1022 Begin
1023 populate_person_option1_rec(
1024 p_group_plan_id,
1025 p_lf_evnt_ocrd_dt,
1026 p_oipl_id,
1027 p_group_per_in_ler_id,
1028 p_pl_id,
1029 p_ws_sub_acty_typ_cd);
1030 return g_opt1_person_rates_rec.ws_val;
1031
1032 End get_option1_rate_ws_amt;
1033
1034 Function get_option1_unit(
1035 p_group_plan_id in number,
1036 p_lf_evnt_ocrd_dt in Date,
1037 p_oipl_id in number,
1038 p_group_per_in_ler_id in number,
1039 p_pl_id in number,
1040 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1041 Is
1042 --- ws_nmmntry_uom need to be decode from lookup table
1043 Cursor cur_option1_units is
1044 Select decode(ws_nnmntry_uom,null,currency, hr_general.decode_lookup('BEN_NNMNTRY_UOM',ws_nnmntry_uom) )
1045 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1046 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1047 And bcpd.group_pl_id = p_group_plan_id
1048 And bcpd.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1049 And bcpr.pl_id = bcpd.pl_id
1050 And bcpr.group_pl_id = bcpd.group_pl_id
1051 And bcpr.oipl_id = bcpd.oipl_id
1052 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
1053 and bcpr.elig_flag = 'Y'
1054 and oipl_ordr_num = 1;
1055
1056 l_option1_unit varchar2(30);
1057 Begin
1058 open cur_option1_units;
1059 fetch cur_option1_units into l_option1_unit;
1060 close cur_option1_units;
1061 return l_option1_unit;
1062 End get_option1_unit;
1063
1064
1065 Function get_option1_elg_sal(
1066 p_group_plan_id in number,
1067 p_lf_evnt_ocrd_dt in Date,
1068 p_oipl_id in number,
1069 p_group_per_in_ler_id in number,
1070 p_pl_id in number,
1071 p_ws_sub_acty_typ_cd in varchar2) return number
1072 is
1073 Begin
1074 populate_person_option1_rec(
1075 p_group_plan_id,
1076 p_lf_evnt_ocrd_dt,
1077 p_oipl_id,
1078 p_group_per_in_ler_id,
1079 p_pl_id,
1080 p_ws_sub_acty_typ_cd);
1081 return g_opt1_person_rates_rec.ELIG_SAL_VAL;
1082
1083 End get_option1_elg_sal;
1084
1085 Function get_option1_elg_per_sal(
1086 p_group_plan_id in number,
1087 p_lf_evnt_ocrd_dt in Date,
1088 p_oipl_id in number,
1089 p_group_per_in_ler_id in number,
1090 p_pl_id in number,
1091 p_ws_sub_acty_typ_cd in varchar2) return number
1092 Is
1093 Begin
1094
1095 populate_person_option1_rec(
1096 p_group_plan_id,
1097 p_lf_evnt_ocrd_dt,
1098 p_oipl_id,
1099 p_group_per_in_ler_id,
1100 p_pl_id,
1101 p_ws_sub_acty_typ_cd);
1102
1103 if (g_opt1_person_rates_rec.elig_sal_val <> 0) then
1104 return round( (g_opt1_person_rates_rec.ws_val / g_opt1_person_rates_rec.elig_sal_val) * 100,2);
1105 else
1106 return to_number(null);
1107 end if;
1108
1109 End get_option1_elg_per_sal;
1110
1111 Function get_option1_rate_reco_amt(
1112 p_group_plan_id in number,
1113 p_lf_evnt_ocrd_dt in Date,
1114 p_oipl_id in number,
1115 p_group_per_in_ler_id in number,
1116 p_pl_id in number,
1117 p_ws_sub_acty_typ_cd in varchar2) return number
1121 p_group_plan_id,
1118 is
1119 Begin
1120 populate_person_option1_rec(
1122 p_lf_evnt_ocrd_dt,
1123 p_oipl_id,
1124 p_group_per_in_ler_id,
1125 p_pl_id,
1126 p_ws_sub_acty_typ_cd);
1127 return g_opt1_person_rates_rec.REC_VAL;
1128
1129 End get_option1_rate_reco_amt;
1130
1131 Function get_option1_rate_oth_sal(
1132 p_group_plan_id in number,
1133 p_lf_evnt_ocrd_dt in Date,
1134 p_oipl_id in number,
1135 p_group_per_in_ler_id in number,
1136 p_pl_id in number,
1137 p_ws_sub_acty_typ_cd in varchar2) return number
1138 is
1139 Begin
1140 populate_person_option1_rec(
1141 p_group_plan_id,
1142 p_lf_evnt_ocrd_dt,
1143 p_oipl_id,
1144 p_group_per_in_ler_id,
1145 p_pl_id,
1146 p_ws_sub_acty_typ_cd);
1147 return g_opt1_person_rates_rec.OTH_COMP_VAL;
1148
1149 End get_option1_rate_oth_sal;
1150
1151 Function get_option1_rate_sta_sal(
1152 p_group_plan_id in number,
1153 p_lf_evnt_ocrd_dt in Date,
1154 p_oipl_id in number,
1155 p_group_per_in_ler_id in number,
1156 p_pl_id in number,
1157 p_ws_sub_acty_typ_cd in varchar2) return number
1158 is
1159 Begin
1160 populate_person_option1_rec(
1161 p_group_plan_id,
1162 p_lf_evnt_ocrd_dt,
1163 p_oipl_id,
1164 p_group_per_in_ler_id,
1165 p_pl_id,
1166 p_ws_sub_acty_typ_cd);
1167 return g_opt1_person_rates_rec.STAT_SAL_VAL;
1168
1169 End get_option1_rate_sta_sal;
1170
1171 Function get_option1_rate_tot_comp(
1172 p_group_plan_id in number,
1173 p_lf_evnt_ocrd_dt in Date,
1174 p_oipl_id in number,
1175 p_group_per_in_ler_id in number,
1176 p_pl_id in number,
1177 p_ws_sub_acty_typ_cd in varchar2) return number
1178 is
1179 Begin
1180 populate_person_option1_rec(
1181 p_group_plan_id,
1182 p_lf_evnt_ocrd_dt,
1183 p_oipl_id,
1184 p_group_per_in_ler_id,
1185 p_pl_id,
1186 p_ws_sub_acty_typ_cd);
1187 return g_opt1_person_rates_rec.TOT_COMP_VAL;
1188
1189 End get_option1_rate_tot_comp;
1190
1191
1192 Function get_option1_rate_misc1(
1193 p_group_plan_id in number,
1194 p_lf_evnt_ocrd_dt in Date,
1195 p_oipl_id in number,
1196 p_group_per_in_ler_id in number,
1197 p_pl_id in number,
1198 p_ws_sub_acty_typ_cd in varchar2) return number
1199 is
1200 Begin
1201 populate_person_option1_rec(
1202 p_group_plan_id,
1203 p_lf_evnt_ocrd_dt,
1204 p_oipl_id,
1205 p_group_per_in_ler_id,
1206 p_pl_id,
1207 p_ws_sub_acty_typ_cd);
1208 return g_opt1_person_rates_rec.MISC1_VAL;
1209
1210 End get_option1_rate_misc1;
1211
1212 Function get_option1_rate_misc2(
1213 p_group_plan_id in number,
1214 p_lf_evnt_ocrd_dt in Date,
1215 p_oipl_id in number,
1216 p_group_per_in_ler_id in number,
1217 p_pl_id in number,
1218 p_ws_sub_acty_typ_cd in varchar2) return number
1219 is
1220 Begin
1221 populate_person_option1_rec(
1222 p_group_plan_id,
1223 p_lf_evnt_ocrd_dt,
1224 p_oipl_id,
1225 p_group_per_in_ler_id,
1226 p_pl_id,
1227 p_ws_sub_acty_typ_cd);
1228 return g_opt1_person_rates_rec.MISC2_VAL;
1229
1230 End get_option1_rate_misc2;
1231
1232 Function get_option1_rate_misc3(
1233 p_group_plan_id in number,
1234 p_lf_evnt_ocrd_dt in Date,
1235 p_oipl_id in number,
1236 p_group_per_in_ler_id in number,
1237 p_pl_id in number,
1238 p_ws_sub_acty_typ_cd in varchar2) return number
1239 is
1240 Begin
1241 populate_person_option1_rec(
1242 p_group_plan_id,
1243 p_lf_evnt_ocrd_dt,
1244 p_oipl_id,
1245 p_group_per_in_ler_id,
1246 p_pl_id,
1247 p_ws_sub_acty_typ_cd);
1248 return g_opt1_person_rates_rec.MISC3_VAL;
1249
1250 End get_option1_rate_misc3;
1251
1252
1253 Function get_option2_name(
1254 p_group_plan_id in number,
1255 p_lf_evnt_ocrd_dt in Date,
1256 p_oipl_id in number,
1257 p_group_per_in_ler_id in number,
1258 p_pl_id in number,
1259 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1260 is
1261 cursor cur_option2_name is
1262 Select name
1263 From ben_cwb_pl_dsgn
1264 Where pl_id = p_group_plan_id
1265 And group_pl_id = p_group_plan_id
1266 And lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1267 -- And oipl_id <> -1
1268 -- And opt_count = 2;
1269 and oipl_ordr_num = 2;
1270
1271 l_option2_name varchar2(240);
1272 Begin
1273
1274 open cur_option2_name;
1275 fetch cur_option2_name into l_option2_name;
1279
1276 close cur_option2_name;
1277 return l_option2_name;
1278 End;
1280 Procedure populate_person_option2_rec(
1281 p_group_plan_id in number,
1282 p_lf_evt_ocrd_dt in Date,
1283 p_oipl_id in number,
1284 p_group_per_in_ler_id in number,
1285 p_pl_id in number,
1286 p_ws_sub_acty_typ_cd in varchar2)
1287 Is
1288 cursor cur_option2_rate is
1289 Select bcpr.*
1290 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1291 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1292 And bcpd.group_pl_id = p_group_plan_id
1293 --AND bcpd.pl_id = p_group_plan_id
1294 And bcpd.lf_evt_ocrd_dt= p_lf_evt_ocrd_dt
1295 --And bcpd.oipl_id <> -1
1296 -- And bcpd.opt_count = 2
1297 and oipl_ordr_num = 2
1298 And bcpd.pl_id = bcpr.pl_id
1299 And bcpd.group_pl_id = bcpr.group_pl_id
1300 And bcpd.oipl_id = bcpr.oipl_id
1301 And bcpd.lf_evt_ocrd_dt = bcpr.lf_evt_ocrd_dt
1302 and bcpr.elig_flag = 'Y';
1303 Begin
1304
1305 g_opt2_person_rates_rec := null;
1306 open cur_option2_rate;
1307 fetch cur_option2_rate into g_opt2_person_rates_rec;
1308 close cur_option2_rate;
1309
1310 End populate_person_option2_rec;
1311
1312 Function get_option2_rate_ws_amt(
1313 p_group_plan_id in number,
1314 p_lf_evnt_ocrd_dt in Date,
1315 p_oipl_id in number,
1316 p_group_per_in_ler_id in number,
1317 p_pl_id in number,
1318 p_ws_sub_acty_typ_cd in varchar2) return number
1319 is
1320 Begin
1321 populate_person_option2_rec(
1322 p_group_plan_id,
1323 p_lf_evnt_ocrd_dt,
1324 p_oipl_id,
1325 p_group_per_in_ler_id,
1326 p_pl_id,
1327 p_ws_sub_acty_typ_cd);
1328 return g_opt2_person_rates_rec.ws_val;
1329
1330 End get_option2_rate_ws_amt;
1331
1332 Function get_option2_unit(
1333 p_group_plan_id in number,
1334 p_lf_evnt_ocrd_dt in Date,
1335 p_oipl_id in number,
1336 p_group_per_in_ler_id in number,
1337 p_pl_id in number,
1338 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1339 Is
1340 ----- ws_nnmntry_uom needs to be decoded from lookup table
1341 Cursor cur_option2_units is
1342 Select decode(ws_nnmntry_uom,null,currency,hr_general.decode_lookup('BEN_NNMNTRY_UOM',ws_nnmntry_uom))
1343 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1344 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1345 And bcpd.group_pl_id = p_group_plan_id
1346 And bcpd.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1347 And bcpr.pl_id = bcpd.pl_id
1348 And bcpr.group_pl_id = bcpd.group_pl_id
1349 And bcpr.oipl_id = bcpd.oipl_id
1350 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
1351 and bcpr.elig_flag = 'Y'
1352 and oipl_ordr_num = 2;
1353
1354 l_option2_unit varchar2(30);
1355 Begin
1356 open cur_option2_units;
1357 fetch cur_option2_units into l_option2_unit;
1358 close cur_option2_units;
1359 return l_option2_unit;
1360 End get_option2_unit;
1361
1362
1363 Function get_option2_elg_sal(
1364 p_group_plan_id in number,
1365 p_lf_evnt_ocrd_dt in Date,
1366 p_oipl_id in number,
1367 p_group_per_in_ler_id in number,
1368 p_pl_id in number,
1369 p_ws_sub_acty_typ_cd in varchar2) return number
1370 is
1371 Begin
1372
1373 populate_person_option2_rec(
1374 p_group_plan_id,
1375 p_lf_evnt_ocrd_dt,
1376 p_oipl_id,
1377 p_group_per_in_ler_id,
1378 p_pl_id,
1379 p_ws_sub_acty_typ_cd);
1380 return g_opt2_person_rates_rec.ELIG_SAL_VAL;
1381
1382 End get_option2_elg_sal;
1383
1384 Function get_option2_elg_per_sal(
1385 p_group_plan_id in number,
1386 p_lf_evnt_ocrd_dt in Date,
1387 p_oipl_id in number,
1388 p_group_per_in_ler_id in number,
1389 p_pl_id in number,
1390 p_ws_sub_acty_typ_cd in varchar2) return number
1391 Is
1392 Begin
1393
1394 populate_person_option2_rec(
1395 p_group_plan_id,
1396 p_lf_evnt_ocrd_dt,
1397 p_oipl_id,
1398 p_group_per_in_ler_id,
1399 p_pl_id,
1400 p_ws_sub_acty_typ_cd);
1401
1402 if (g_opt2_person_rates_rec.elig_sal_val <> 0) then
1403 return round( (g_opt2_person_rates_rec.ws_val / g_opt2_person_rates_rec.elig_sal_val) * 100,2);
1404 else
1405 return to_number(null);
1406 end if;
1407
1408 End get_option2_elg_per_sal;
1409
1410 Function get_option2_rate_reco_amt(
1411 p_group_plan_id in number,
1412 p_lf_evnt_ocrd_dt in Date,
1413 p_oipl_id in number,
1414 p_group_per_in_ler_id in number,
1415 p_pl_id in number,
1416 p_ws_sub_acty_typ_cd in varchar2) return number
1417 is
1418 Begin
1419 populate_person_option2_rec(
1420 p_group_plan_id,
1421 p_lf_evnt_ocrd_dt,
1422 p_oipl_id,
1423 p_group_per_in_ler_id,
1424 p_pl_id,
1425 p_ws_sub_acty_typ_cd);
1426 return g_opt2_person_rates_rec.REC_VAL;
1430 Function get_option2_rate_oth_sal(
1427
1428 End get_option2_rate_reco_amt;
1429
1431 p_group_plan_id in number,
1432 p_lf_evnt_ocrd_dt in Date,
1433 p_oipl_id in number,
1434 p_group_per_in_ler_id in number,
1435 p_pl_id in number,
1436 p_ws_sub_acty_typ_cd in varchar2) return number
1437 is
1438 Begin
1439 populate_person_option2_rec(
1440 p_group_plan_id,
1441 p_lf_evnt_ocrd_dt,
1442 p_oipl_id,
1443 p_group_per_in_ler_id,
1444 p_pl_id,
1445 p_ws_sub_acty_typ_cd);
1446 return g_opt2_person_rates_rec.OTH_COMP_VAL;
1447
1448 End get_option2_rate_oth_sal;
1449
1450 Function get_option2_rate_sta_sal(
1451 p_group_plan_id in number,
1452 p_lf_evnt_ocrd_dt in Date,
1453 p_oipl_id in number,
1454 p_group_per_in_ler_id in number,
1455 p_pl_id in number,
1456 p_ws_sub_acty_typ_cd in varchar2) return number
1457 is
1458 Begin
1459 populate_person_option2_rec(
1460 p_group_plan_id,
1461 p_lf_evnt_ocrd_dt,
1462 p_oipl_id,
1463 p_group_per_in_ler_id,
1464 p_pl_id,
1465 p_ws_sub_acty_typ_cd);
1466 return g_opt2_person_rates_rec.STAT_SAL_VAL;
1467
1468 End get_option2_rate_sta_sal;
1469
1470 Function get_option2_rate_tot_comp(
1471 p_group_plan_id in number,
1472 p_lf_evnt_ocrd_dt in Date,
1473 p_oipl_id in number,
1474 p_group_per_in_ler_id in number,
1475 p_pl_id in number,
1476 p_ws_sub_acty_typ_cd in varchar2) return number
1477 is
1478 Begin
1479 populate_person_option2_rec(
1480 p_group_plan_id,
1481 p_lf_evnt_ocrd_dt,
1482 p_oipl_id,
1483 p_group_per_in_ler_id,
1484 p_pl_id,
1485 p_ws_sub_acty_typ_cd);
1486 return g_opt2_person_rates_rec.TOT_COMP_VAL;
1487
1488 End get_option2_rate_tot_comp;
1489
1490
1491 Function get_option2_rate_misc1(
1492 p_group_plan_id in number,
1493 p_lf_evnt_ocrd_dt in Date,
1494 p_oipl_id in number,
1495 p_group_per_in_ler_id in number,
1496 p_pl_id in number,
1497 p_ws_sub_acty_typ_cd in varchar2) return number
1498 is
1499 Begin
1500 populate_person_option2_rec(
1501 p_group_plan_id,
1502 p_lf_evnt_ocrd_dt,
1503 p_oipl_id,
1504 p_group_per_in_ler_id,
1505 p_pl_id,
1506 p_ws_sub_acty_typ_cd);
1507 return g_opt2_person_rates_rec.MISC1_VAL;
1508
1509 End get_option2_rate_misc1;
1510
1511 Function get_option2_rate_misc2(
1512 p_group_plan_id in number,
1513 p_lf_evnt_ocrd_dt in Date,
1514 p_oipl_id in number,
1515 p_group_per_in_ler_id in number,
1516 p_pl_id in number,
1517 p_ws_sub_acty_typ_cd in varchar2) return number
1518 is
1519 Begin
1520 populate_person_option2_rec(
1521 p_group_plan_id,
1522 p_lf_evnt_ocrd_dt,
1523 p_oipl_id,
1524 p_group_per_in_ler_id,
1525 p_pl_id,
1526 p_ws_sub_acty_typ_cd);
1527 return g_opt2_person_rates_rec.MISC2_VAL;
1528
1529 End get_option2_rate_misc2;
1530
1531 Function get_option2_rate_misc3(
1532 p_group_plan_id in number,
1533 p_lf_evnt_ocrd_dt in Date,
1534 p_oipl_id in number,
1535 p_group_per_in_ler_id in number,
1536 p_pl_id in number,
1537 p_ws_sub_acty_typ_cd in varchar2) return number
1538 is
1539 Begin
1540 populate_person_option2_rec(
1541 p_group_plan_id,
1542 p_lf_evnt_ocrd_dt,
1543 p_oipl_id,
1544 p_group_per_in_ler_id,
1545 p_pl_id,
1546 p_ws_sub_acty_typ_cd);
1547 return g_opt2_person_rates_rec.MISC3_VAL;
1548
1549 End get_option2_rate_misc3;
1550
1551
1552 Function get_option3_name(
1553 p_group_plan_id in number,
1554 p_lf_evnt_ocrd_dt in Date,
1555 p_oipl_id in number,
1556 p_group_per_in_ler_id in number,
1557 p_pl_id in number,
1558 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1559 is
1560 cursor cur_option3_name is
1561 Select name
1562 From ben_cwb_pl_dsgn
1563 Where pl_id = p_group_plan_id
1564 And group_pl_id = p_group_plan_id
1565 And lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1566 -- And oipl_id <> -1
1567 -- And opt_count = 3;
1568 and oipl_ordr_num = 3;
1569
1570 l_option3_name varchar2(240);
1571 Begin
1572
1573 open cur_option3_name;
1574 fetch cur_option3_name into l_option3_name;
1575 close cur_option3_name;
1576 return l_option3_name;
1577 End get_option3_name;
1578
1579 Procedure populate_person_option3_rec(
1580 p_group_plan_id in number,
1581 p_lf_evt_ocrd_dt in Date,
1582 p_oipl_id in number,
1583 p_group_per_in_ler_id in number,
1584 p_pl_id in number,
1585 p_ws_sub_acty_typ_cd in varchar2)
1586 Is
1587 cursor cur_option3_rate is
1588 Select bcpr.*
1589 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1590 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1591 And bcpd.group_pl_id = p_group_plan_id
1592 -- AND bcpd.pl_id = p_group_plan_id
1593 And bcpd.lf_evt_ocrd_dt = p_lf_evt_ocrd_dt
1594 --And bcpd.oipl_id <> -1
1595 --And bcpd.opt_count = 3
1596 and oipl_ordr_num = 3
1597 And bcpd.pl_id = bcpr.pl_id
1598 And bcpd.group_pl_id = bcpr.group_pl_id
1599 And bcpd.oipl_id = bcpr.oipl_id
1600 And bcpd.lf_evt_ocrd_dt = bcpr.lf_evt_ocrd_dt
1601 and bcpr.elig_flag = 'Y';
1602 Begin
1603
1604 g_opt3_person_rates_rec := null;
1605 open cur_option3_rate;
1606 fetch cur_option3_rate into g_opt3_person_rates_rec;
1607 close cur_option3_rate;
1608
1609 End populate_person_option3_rec;
1610
1611 Function get_option3_rate_ws_amt(
1612 p_group_plan_id in number,
1613 p_lf_evnt_ocrd_dt in Date,
1614 p_oipl_id in number,
1615 p_group_per_in_ler_id in number,
1616 p_pl_id in number,
1617 p_ws_sub_acty_typ_cd in varchar2) return number
1618 is
1619 Begin
1620 populate_person_option3_rec(
1621 p_group_plan_id,
1622 p_lf_evnt_ocrd_dt,
1623 p_oipl_id,
1624 p_group_per_in_ler_id,
1625 p_pl_id,
1626 p_ws_sub_acty_typ_cd);
1627 return g_opt3_person_rates_rec.ws_val;
1628
1629 End get_option3_rate_ws_amt;
1630
1631 Function get_option3_unit(
1632 p_group_plan_id in number,
1633 p_lf_evnt_ocrd_dt in Date,
1634 p_oipl_id in number,
1635 p_group_per_in_ler_id in number,
1636 p_pl_id in number,
1637 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1638 Is
1639 -- ws_nnmntry_uom needs to be decoded from lookup table
1640 Cursor cur_option3_units is
1641 Select decode(ws_nnmntry_uom,null,currency,hr_general.decode_lookup('BEN_NNMNTRY_UOM',ws_nnmntry_uom))
1642 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1643 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1644 And bcpd.group_pl_id = p_group_plan_id
1645 And bcpd.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1646 And bcpr.pl_id = bcpd.pl_id
1647 And bcpr.group_pl_id = bcpd.group_pl_id
1648 And bcpr.oipl_id = bcpd.oipl_id
1649 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
1650 and bcpr.elig_flag = 'Y'
1651 and oipl_ordr_num = 3;
1652
1653 l_option3_unit varchar2(30);
1654 Begin
1655 open cur_option3_units;
1656 fetch cur_option3_units into l_option3_unit;
1657 close cur_option3_units;
1658 return l_option3_unit;
1659 End get_option3_unit;
1660
1661
1662 Function get_option3_elg_sal(
1663 p_group_plan_id in number,
1664 p_lf_evnt_ocrd_dt in Date,
1665 p_oipl_id in number,
1666 p_group_per_in_ler_id in number,
1667 p_pl_id in number,
1668 p_ws_sub_acty_typ_cd in varchar2) return number
1669 is
1670 Begin
1671
1672 populate_person_option3_rec(
1673 p_group_plan_id,
1674 p_lf_evnt_ocrd_dt,
1675 p_oipl_id,
1676 p_group_per_in_ler_id,
1677 p_pl_id,
1678 p_ws_sub_acty_typ_cd);
1682
1679 return g_opt3_person_rates_rec.ELIG_SAL_VAL;
1680
1681 End get_option3_elg_sal;
1683 Function get_option3_elg_per_sal(
1684 p_group_plan_id in number,
1685 p_lf_evnt_ocrd_dt in Date,
1686 p_oipl_id in number,
1687 p_group_per_in_ler_id in number,
1688 p_pl_id in number,
1689 p_ws_sub_acty_typ_cd in varchar2) return number
1690 Is
1691 Begin
1692
1693 populate_person_option3_rec(
1694 p_group_plan_id,
1695 p_lf_evnt_ocrd_dt,
1696 p_oipl_id,
1697 p_group_per_in_ler_id,
1698 p_pl_id,
1699 p_ws_sub_acty_typ_cd);
1700 if (g_opt3_person_rates_rec.elig_sal_val <> 0) then
1701 return round( (g_opt3_person_rates_rec.ws_val / g_opt3_person_rates_rec.elig_sal_val) * 100,2);
1702 else
1703 return to_number(null);
1704 end if;
1705
1706
1707 End get_option3_elg_per_sal;
1708
1709 Function get_option3_rate_reco_amt(
1710 p_group_plan_id in number,
1711 p_lf_evnt_ocrd_dt in Date,
1712 p_oipl_id in number,
1713 p_group_per_in_ler_id in number,
1714 p_pl_id in number,
1715 p_ws_sub_acty_typ_cd in varchar2) return number
1716 is
1717 Begin
1718 populate_person_option3_rec(
1719 p_group_plan_id,
1720 p_lf_evnt_ocrd_dt,
1721 p_oipl_id,
1722 p_group_per_in_ler_id,
1723 p_pl_id,
1724 p_ws_sub_acty_typ_cd);
1725 return g_opt3_person_rates_rec.REC_VAL;
1726
1727 End get_option3_rate_reco_amt;
1728
1729 Function get_option3_rate_oth_sal(
1730 p_group_plan_id in number,
1731 p_lf_evnt_ocrd_dt in Date,
1732 p_oipl_id in number,
1733 p_group_per_in_ler_id in number,
1734 p_pl_id in number,
1735 p_ws_sub_acty_typ_cd in varchar2) return number
1736 is
1737 Begin
1738 populate_person_option3_rec(
1739 p_group_plan_id,
1740 p_lf_evnt_ocrd_dt,
1741 p_oipl_id,
1742 p_group_per_in_ler_id,
1743 p_pl_id,
1744 p_ws_sub_acty_typ_cd);
1745 return g_opt3_person_rates_rec.OTH_COMP_VAL;
1746
1747 End get_option3_rate_oth_sal;
1748
1749 Function get_option3_rate_sta_sal(
1750 p_group_plan_id in number,
1751 p_lf_evnt_ocrd_dt in Date,
1752 p_oipl_id in number,
1753 p_group_per_in_ler_id in number,
1754 p_pl_id in number,
1755 p_ws_sub_acty_typ_cd in varchar2) return number
1756 is
1757 Begin
1758 populate_person_option3_rec(
1759 p_group_plan_id,
1760 p_lf_evnt_ocrd_dt,
1761 p_oipl_id,
1762 p_group_per_in_ler_id,
1763 p_pl_id,
1764 p_ws_sub_acty_typ_cd);
1765 return g_opt3_person_rates_rec.STAT_SAL_VAL;
1766
1767 End get_option3_rate_sta_sal;
1768
1769 Function get_option3_rate_tot_comp(
1770 p_group_plan_id in number,
1771 p_lf_evnt_ocrd_dt in Date,
1772 p_oipl_id in number,
1773 p_group_per_in_ler_id in number,
1774 p_pl_id in number,
1775 p_ws_sub_acty_typ_cd in varchar2) return number
1776 is
1777 Begin
1778 populate_person_option3_rec(
1779 p_group_plan_id,
1780 p_lf_evnt_ocrd_dt,
1781 p_oipl_id,
1782 p_group_per_in_ler_id,
1783 p_pl_id,
1784 p_ws_sub_acty_typ_cd);
1785 return g_opt3_person_rates_rec.TOT_COMP_VAL;
1786
1787 End get_option3_rate_tot_comp;
1788
1789
1790 Function get_option3_rate_misc1(
1791 p_group_plan_id in number,
1792 p_lf_evnt_ocrd_dt in Date,
1793 p_oipl_id in number,
1794 p_group_per_in_ler_id in number,
1795 p_pl_id in number,
1796 p_ws_sub_acty_typ_cd in varchar2) return number
1797 is
1798 Begin
1799 populate_person_option3_rec(
1800 p_group_plan_id,
1801 p_lf_evnt_ocrd_dt,
1802 p_oipl_id,
1803 p_group_per_in_ler_id,
1804 p_pl_id,
1805 p_ws_sub_acty_typ_cd);
1806 return g_opt3_person_rates_rec.MISC1_VAL;
1807
1808 End get_option3_rate_misc1;
1809
1810 Function get_option3_rate_misc2(
1811 p_group_plan_id in number,
1812 p_lf_evnt_ocrd_dt in Date,
1813 p_oipl_id in number,
1814 p_group_per_in_ler_id in number,
1815 p_pl_id in number,
1816 p_ws_sub_acty_typ_cd in varchar2) return number
1817 is
1818 Begin
1819 populate_person_option3_rec(
1820 p_group_plan_id,
1821 p_lf_evnt_ocrd_dt,
1822 p_oipl_id,
1823 p_group_per_in_ler_id,
1824 p_pl_id,
1825 p_ws_sub_acty_typ_cd);
1826 return g_opt3_person_rates_rec.MISC2_VAL;
1827
1828 End get_option3_rate_misc2;
1829
1830 Function get_option3_rate_misc3(
1831 p_group_plan_id in number,
1832 p_lf_evnt_ocrd_dt in Date,
1833 p_oipl_id in number,
1834 p_group_per_in_ler_id in number,
1835 p_pl_id in number,
1836 p_ws_sub_acty_typ_cd in varchar2) return number
1837 is
1838 Begin
1839 populate_person_option3_rec(
1840 p_group_plan_id,
1841 p_lf_evnt_ocrd_dt,
1842 p_oipl_id,
1843 p_group_per_in_ler_id,
1844 p_pl_id,
1845 p_ws_sub_acty_typ_cd);
1846 return g_opt3_person_rates_rec.MISC3_VAL;
1847 End get_option3_rate_misc3;
1848
1849 Function get_option4_name(
1850 p_group_plan_id in number,
1851 p_lf_evnt_ocrd_dt in Date,
1852 p_oipl_id in number,
1853 p_group_per_in_ler_id in number,
1854 p_pl_id in number,
1855 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1856 is
1857 cursor cur_option4_name is
1858 Select name
1859 From ben_cwb_pl_dsgn
1860 Where pl_id = p_group_plan_id
1861 And group_pl_id = p_group_plan_id
1862 And lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1863 -- And oipl_id <> -1
1864 -- And opt_count = 4;
1865 and oipl_ordr_num = 4 ;
1866
1867 l_option4_name varchar2(240);
1868 Begin
1869
1870 open cur_option4_name;
1871 fetch cur_option4_name into l_option4_name;
1872 close cur_option4_name;
1873 return l_option4_name;
1874 End get_option4_name;
1875
1876 Procedure populate_person_option4_rec(
1877 p_group_plan_id in number,
1878 p_lf_evt_ocrd_dt in Date,
1879 p_oipl_id in number,
1880 p_group_per_in_ler_id in number,
1881 p_pl_id in number,
1882 p_ws_sub_acty_typ_cd in varchar2)
1883 Is
1884 cursor cur_option4_rate is
1885 Select bcpr.*
1886 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1887 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1888 And bcpd.group_pl_id = p_group_plan_id
1889 -- AND bcpd.pl_id = p_group_plan_id
1890 And bcpd.lf_evt_ocrd_dt = p_lf_evt_ocrd_dt
1891 --And bcpd.oipl_id <> -1
1892 -- And bcpd.opt_count = 4
1893 and oipl_ordr_num = 4
1894 And bcpd.pl_id = bcpr.pl_id
1895 And bcpd.group_pl_id = bcpr.group_pl_id
1896 And bcpd.oipl_id = bcpr.oipl_id
1897 And bcpd.lf_evt_ocrd_dt = bcpr.lf_evt_ocrd_dt
1898 and bcpr.elig_flag = 'Y';
1899 Begin
1900 g_opt4_person_rates_rec := null;
1901 open cur_option4_rate;
1902 fetch cur_option4_rate into g_opt4_person_rates_rec;
1903 close cur_option4_rate;
1904
1905 End populate_person_option4_rec;
1906
1907 Function get_option4_rate_ws_amt(
1908 p_group_plan_id in number,
1909 p_lf_evnt_ocrd_dt in Date,
1910 p_oipl_id in number,
1911 p_group_per_in_ler_id in number,
1912 p_pl_id in number,
1913 p_ws_sub_acty_typ_cd in varchar2) return number
1914 is
1915 Begin
1916 populate_person_option4_rec(
1917 p_group_plan_id,
1918 p_lf_evnt_ocrd_dt,
1919 p_oipl_id,
1920 p_group_per_in_ler_id,
1921 p_pl_id,
1922 p_ws_sub_acty_typ_cd);
1923 return g_opt4_person_rates_rec.ws_val;
1924
1925 End get_option4_rate_ws_amt;
1926
1927 Function get_option4_unit(
1928 p_group_plan_id in number,
1929 p_lf_evnt_ocrd_dt in Date,
1930 p_oipl_id in number,
1931 p_group_per_in_ler_id in number,
1932 p_pl_id in number,
1933 p_ws_sub_acty_typ_cd in varchar2) return varchar2
1934 Is
1935 -- ws_nnmntry_uom needs to be decoded from lookup table
1936 Cursor cur_option4_units is
1937 Select decode(ws_nnmntry_uom,null,currency,hr_general.decode_lookup('BEN_NNMNTRY_UOM',ws_nnmntry_uom))
1938 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
1939 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
1940 And bcpd.group_pl_id = p_group_plan_id
1941 And bcpd.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
1942 And bcpr.pl_id = bcpd.pl_id
1943 And bcpr.group_pl_id = bcpd.group_pl_id
1947 and oipl_ordr_num = 4;
1944 And bcpr.oipl_id = bcpd.oipl_id
1945 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
1946 and bcpr.elig_flag = 'Y'
1948
1949 l_option4_unit varchar2(30);
1950 Begin
1951 open cur_option4_units;
1952 fetch cur_option4_units into l_option4_unit;
1953 close cur_option4_units;
1954 return l_option4_unit;
1955 End get_option4_unit;
1956
1957
1958 Function get_option4_elg_sal(
1959 p_group_plan_id in number,
1960 p_lf_evnt_ocrd_dt in Date,
1961 p_oipl_id in number,
1962 p_group_per_in_ler_id in number,
1963 p_pl_id in number,
1964 p_ws_sub_acty_typ_cd in varchar2) return number
1965 is
1966 Begin
1967
1968 populate_person_option4_rec(
1969 p_group_plan_id,
1970 p_lf_evnt_ocrd_dt,
1971 p_oipl_id,
1972 p_group_per_in_ler_id,
1973 p_pl_id,
1974 p_ws_sub_acty_typ_cd);
1975 return g_opt4_person_rates_rec.ELIG_SAL_VAL;
1976
1977 End get_option4_elg_sal;
1978
1979 Function get_option4_elg_per_sal(
1980 p_group_plan_id in number,
1981 p_lf_evnt_ocrd_dt in Date,
1982 p_oipl_id in number,
1983 p_group_per_in_ler_id in number,
1984 p_pl_id in number,
1985 p_ws_sub_acty_typ_cd in varchar2) return number
1986 Is
1987 Begin
1988
1989 populate_person_option4_rec(
1990 p_group_plan_id,
1991 p_lf_evnt_ocrd_dt,
1992 p_oipl_id,
1993 p_group_per_in_ler_id,
1994 p_pl_id,
1995 p_ws_sub_acty_typ_cd);
1996 if (g_opt4_person_rates_rec.elig_sal_val <> 0) then
1997 return round( (g_opt4_person_rates_rec.ws_val / g_opt4_person_rates_rec.elig_sal_val) * 100,2);
1998 else
1999 return to_number(null);
2000 end if;
2001
2002 End get_option4_elg_per_sal;
2003
2004 Function get_option4_rate_reco_amt(
2005 p_group_plan_id in number,
2006 p_lf_evnt_ocrd_dt in Date,
2007 p_oipl_id in number,
2008 p_group_per_in_ler_id in number,
2009 p_pl_id in number,
2010 p_ws_sub_acty_typ_cd in varchar2) return number
2011 is
2012 Begin
2013 populate_person_option4_rec(
2014 p_group_plan_id,
2015 p_lf_evnt_ocrd_dt,
2016 p_oipl_id,
2017 p_group_per_in_ler_id,
2018 p_pl_id,
2019 p_ws_sub_acty_typ_cd);
2020 return g_opt4_person_rates_rec.REC_VAL;
2021
2022 End get_option4_rate_reco_amt;
2023
2024 Function get_option4_rate_oth_sal(
2025 p_group_plan_id in number,
2026 p_lf_evnt_ocrd_dt in Date,
2027 p_oipl_id in number,
2028 p_group_per_in_ler_id in number,
2029 p_pl_id in number,
2030 p_ws_sub_acty_typ_cd in varchar2) return number
2031 is
2032 Begin
2033 populate_person_option4_rec(
2034 p_group_plan_id,
2035 p_lf_evnt_ocrd_dt,
2036 p_oipl_id,
2037 p_group_per_in_ler_id,
2038 p_pl_id,
2039 p_ws_sub_acty_typ_cd);
2040 return g_opt4_person_rates_rec.OTH_COMP_VAL;
2041
2042 End get_option4_rate_oth_sal;
2043
2044 Function get_option4_rate_sta_sal(
2045 p_group_plan_id in number,
2046 p_lf_evnt_ocrd_dt in Date,
2047 p_oipl_id in number,
2048 p_group_per_in_ler_id in number,
2049 p_pl_id in number,
2050 p_ws_sub_acty_typ_cd in varchar2) return number
2051 is
2052 Begin
2053 populate_person_option4_rec(
2054 p_group_plan_id,
2055 p_lf_evnt_ocrd_dt,
2056 p_oipl_id,
2057 p_group_per_in_ler_id,
2058 p_pl_id,
2059 p_ws_sub_acty_typ_cd);
2060 return g_opt4_person_rates_rec.STAT_SAL_VAL;
2061
2062 End get_option4_rate_sta_sal;
2063
2064 Function get_option4_rate_tot_comp(
2065 p_group_plan_id in number,
2066 p_lf_evnt_ocrd_dt in Date,
2067 p_oipl_id in number,
2068 p_group_per_in_ler_id in number,
2069 p_pl_id in number,
2070 p_ws_sub_acty_typ_cd in varchar2) return number
2071 is
2072 Begin
2073 populate_person_option4_rec(
2074 p_group_plan_id,
2075 p_lf_evnt_ocrd_dt,
2076 p_oipl_id,
2077 p_group_per_in_ler_id,
2078 p_pl_id,
2079 p_ws_sub_acty_typ_cd);
2080 return g_opt4_person_rates_rec.TOT_COMP_VAL;
2081
2082 End get_option4_rate_tot_comp;
2083
2084
2085 Function get_option4_rate_misc1(
2086 p_group_plan_id in number,
2087 p_lf_evnt_ocrd_dt in Date,
2088 p_oipl_id in number,
2089 p_group_per_in_ler_id in number,
2090 p_pl_id in number,
2091 p_ws_sub_acty_typ_cd in varchar2) return number
2092 is
2093 Begin
2094 populate_person_option4_rec(
2095 p_group_plan_id,
2096 p_lf_evnt_ocrd_dt,
2097 p_oipl_id,
2098 p_group_per_in_ler_id,
2099 p_pl_id,
2100 p_ws_sub_acty_typ_cd);
2101 return g_opt4_person_rates_rec.MISC1_VAL;
2105 Function get_option4_rate_misc2(
2102
2103 End get_option4_rate_misc1;
2104
2106 p_group_plan_id in number,
2107 p_lf_evnt_ocrd_dt in Date,
2108 p_oipl_id in number,
2109 p_group_per_in_ler_id in number,
2110 p_pl_id in number,
2111 p_ws_sub_acty_typ_cd in varchar2) return number
2112 is
2113 Begin
2114 populate_person_option4_rec(
2115 p_group_plan_id,
2116 p_lf_evnt_ocrd_dt,
2117 p_oipl_id,
2118 p_group_per_in_ler_id,
2119 p_pl_id,
2120 p_ws_sub_acty_typ_cd);
2121 return g_opt4_person_rates_rec.MISC2_VAL;
2122
2123 End get_option4_rate_misc2;
2124
2125 Function get_option4_rate_misc3(
2126 p_group_plan_id in number,
2127 p_lf_evnt_ocrd_dt in Date,
2128 p_oipl_id in number,
2129 p_group_per_in_ler_id in number,
2130 p_pl_id in number,
2131 p_ws_sub_acty_typ_cd in varchar2) return number
2132 is
2133 Begin
2134 populate_person_option4_rec(
2135 p_group_plan_id,
2136 p_lf_evnt_ocrd_dt,
2137 p_oipl_id,
2138 p_group_per_in_ler_id,
2139 p_pl_id,
2140 p_ws_sub_acty_typ_cd);
2141 return g_opt4_person_rates_rec.MISC3_VAL;
2142 End get_option4_rate_misc3;
2143
2144
2145 --
2146 PROCEDURE populate_person_rates_rec(
2147 p_group_plan_id in number,
2148 p_lf_evt_ocrd_dt in Date,
2149 p_oipl_id in number,
2150 p_group_per_in_ler_id in number,
2151 p_pl_id in number,
2152 p_ws_sub_acty_typ_cd in varchar2,
2153 p_new_or_prior in varchar2 ) is
2154
2155 -- *********
2156 -- This next cursor never retreives any record as the person
2157 -- always gets a new group_per_in_ler_id for each cycle. So for
2158 -- one group_per_in_ler_id, we can find only one lf_evt_ocrd_dt
2159 cursor c_prior_person_rate_dt is
2160 select max(lf_evt_ocrd_dt)
2161 from ben_cwb_person_rates
2162 where group_per_in_ler_id = p_group_per_in_ler_id
2163 and group_pl_id = p_group_plan_id
2164 --and pl_id = p_pl_id
2165 and lf_evt_ocrd_dt < p_lf_evt_ocrd_dt
2166 and elig_flag = 'Y';
2167
2168 -- *** change here. commented out group_pl_id and using pl_id
2169 cursor c_person_rates (c_lf_evt_ocrd_dt Date) is
2170 select * from ben_cwb_person_rates
2171 where group_per_in_ler_id = p_group_per_in_ler_id
2172 and group_pl_id = p_group_plan_id
2173 --and pl_id = p_pl_id
2174 and oipl_id = p_oipl_id
2175 and lf_evt_ocrd_dt = c_lf_evt_ocrd_dt
2176 and elig_flag = 'Y';
2177
2178
2179 l_lf_evt_ocrd_dt date;
2180 begin
2181 hr_utility.set_location('Entering populate_person_rates_rec. p_ws_sub_acty_typ_cd='||p_ws_sub_acty_typ_cd,10);
2182 -- if (p_ws_sub_acty_typ_cd ='ICM7') then -- Salary Plan
2183 hr_utility.set_location('p_new_or_prior='||p_ws_sub_acty_typ_cd,10);
2184 if (p_new_or_prior ='NEW') then
2185
2186 g_person_rates_rec := null;
2187 open c_person_rates (p_lf_evt_ocrd_dt);
2188 fetch c_person_rates into g_person_rates_rec;
2189 close c_person_rates;
2190
2191 elsif (p_new_or_prior ='PRIOR') then
2192 open c_prior_person_rate_dt;
2193 fetch c_prior_person_rate_dt into l_lf_evt_ocrd_dt;
2194 close c_prior_person_rate_dt;
2195
2196 if (l_lf_evt_ocrd_dt is not null) then
2197 g_prior_person_rates_rec := null;
2198 open c_person_rates (l_lf_evt_ocrd_dt);
2199 fetch c_person_rates into g_prior_person_rates_rec;
2200 close c_person_rates;
2201 end if;
2202
2203 end if;
2204 -- end if; then -- Salary Plan
2205 end;
2206
2207 FUNCTION get_pay_rate (
2208 p_group_plan_id in number,
2209 p_lf_evnt_ocrd_dt in Date,
2210 p_oipl_id in number,
2211 p_group_per_in_ler_id in number,
2212 p_pl_id in number,
2213 p_ws_sub_acty_typ_cd in varchar2,
2214 p_new_or_prior in varchar2) return number is
2215
2216
2217 l_proposed_salary number := 0;
2218
2219 cursor c_pay_proposal is
2220 select max(nvl(proposed_salary_n,0))
2221 from per_pay_proposals ppp ,ben_cwb_person_rates rts
2222 where rts.pay_proposal_id = ppp.pay_proposal_id
2223 and rts.group_per_in_ler_id = p_group_per_in_ler_id
2224 and rts.group_pl_id = p_group_plan_id
2225 and rts.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
2226 and rts.ws_val is not null
2227 and rts.elig_flag = 'Y';
2228 cursor c_prior_pay_proposal is
2229 select nvl(base_salary,0)
2230 from ben_cwb_person_info
2231 where group_per_in_ler_id = p_group_per_in_ler_id;
2232
2233 begin
2234
2235 if (p_new_or_prior = 'NEW') then
2236 open c_pay_proposal;
2237 fetch c_pay_proposal into l_proposed_salary;
2238 close c_pay_proposal;
2239 else
2240 -- we need to get the prior salary
2241 open c_prior_pay_proposal;
2242 fetch c_prior_pay_proposal into l_proposed_salary;
2243 close c_prior_pay_proposal;
2244 end if;
2245 return l_proposed_salary;
2246 end get_pay_rate;
2247
2248
2249
2250 FUNCTION get_pay_rate_change_amount (
2251 p_group_plan_id in number,
2252 p_lf_evt_ocrd_dt in Date,
2253 p_oipl_id in number,
2257
2254 p_group_per_in_ler_id in number,
2255 p_pl_id in number,
2256 p_ws_sub_acty_typ_cd in varchar2) return number is
2258 l_new_proposed_salary number;
2259 l_prior_proposed_salary number;
2260 l_pay_proposal varchar2(30);
2261 begin
2262 l_new_proposed_salary :=
2263 get_pay_rate (
2264 p_group_plan_id,p_lf_evt_ocrd_dt,
2265 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2266 p_ws_sub_acty_typ_cd, 'NEW');
2267
2268 l_prior_proposed_salary :=
2269 get_pay_rate (
2270 p_group_plan_id,p_lf_evt_ocrd_dt,
2271 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2272 p_ws_sub_acty_typ_cd, 'PRIOR');
2273
2274 if (l_new_proposed_salary = l_prior_proposed_salary) then
2275 return 0;
2276 else
2277 return l_new_proposed_salary - l_prior_proposed_salary;
2278 end if;
2279 end get_pay_rate_change_amount;
2280
2281
2282 FUNCTION get_pay_rate_change_percent (
2283 p_group_plan_id in number,
2284 p_lf_evt_ocrd_dt in Date,
2285 p_oipl_id in number,
2286 p_group_per_in_ler_id in number,
2287 p_pl_id in number,
2288 p_ws_sub_acty_typ_cd in varchar2) return number is
2289
2290 l_new_proposed_salary number;
2291 l_prior_proposed_salary number;
2292 l_pay_proposal varchar2(30);
2293 begin
2294 l_new_proposed_salary :=
2295 get_pay_rate (
2296 p_group_plan_id,p_lf_evt_ocrd_dt,
2297 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2298 p_ws_sub_acty_typ_cd, 'NEW');
2299
2300 l_prior_proposed_salary :=
2301 get_pay_rate (
2302 p_group_plan_id,p_lf_evt_ocrd_dt,
2303 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2304 p_ws_sub_acty_typ_cd, 'PRIOR');
2305
2306
2307 if (l_new_proposed_salary = l_prior_proposed_salary) then
2308 return 0;
2309 else
2310 if (l_new_proposed_salary = 0 ) then
2311 return 0;
2312 elsif (l_prior_proposed_salary = 0) then
2313 return 100;
2314 end if;
2315 return round(((l_new_proposed_salary - l_prior_proposed_salary) / l_prior_proposed_salary) * 100,2);
2316 end if;
2317 end get_pay_rate_change_percent;
2318
2319 FUNCTION get_pay_rate_change_date (
2320 p_group_plan_id in number,
2321 p_lf_evnt_ocrd_dt in Date,
2322 p_oipl_id in number,
2323 p_group_per_in_ler_id in number,
2324 p_pl_id in number,
2325 p_ws_sub_acty_typ_cd in varchar2,
2326 p_new_or_prior in varchar2) return varchar2 is
2327
2328
2329 l_change_date varchar2(30);
2330
2331 -- return the comp_posting_date
2332 cursor c_pay_proposal_date is
2333 select max(change_date)
2334 from per_pay_proposals ppp
2335 ,ben_cwb_person_rates rts
2336 where rts.pay_proposal_id = ppp.pay_proposal_id
2337 and rts.group_per_in_ler_id = p_group_per_in_ler_id
2338 and rts.group_pl_id = p_group_plan_id
2339 and rts.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
2340 and rts.ws_val is not null
2341 and rts.elig_flag = 'Y';
2342
2343
2344 cursor c_prior_pay_proposal_date is
2345 select BASE_SALARY_CHANGE_DATE
2346 from ben_cwb_person_info
2347 where group_per_in_ler_id = p_group_per_in_ler_id;
2348
2349 begin
2350 -- *********
2351 if (p_new_or_prior = 'NEW') then
2352 open c_pay_proposal_date;
2353 fetch c_pay_proposal_date into l_change_date;
2354 close c_pay_proposal_date;
2355 else
2356 -- we need to get the prior salary
2357 open c_prior_pay_proposal_date;
2358 fetch c_prior_pay_proposal_date into l_change_date;
2359 close c_prior_pay_proposal_date;
2360 end if;
2361
2362 return l_change_date;
2363
2364 end get_pay_rate_change_date;
2365
2366
2367 FUNCTION get_pay_rate_basis (
2368 p_group_plan_id in number,
2369 p_lf_evnt_ocrd_dt in Date,
2370 p_oipl_id in number,
2371 p_group_per_in_ler_id in number,
2372 p_pl_id in number,
2373 p_ws_sub_acty_typ_cd in varchar2) return Varchar2 is
2374
2375 Cursor c_pay_rate_basis is
2376 select initcap(pay_basis)
2377 from per_pay_bases ppb,
2378 per_all_assignments_f paaf
2379 where ppb.pay_basis_id = paaf.pay_basis_id
2380 and sysdate between paaf.effective_start_date and paaf.effective_end_date
2381 and paaf.primary_flag = 'Y'
2382 and paaf.assignment_id = g_person_rates_rec.assignment_id;
2383
2384 l_pay_basis per_pay_bases.pay_basis%Type;
2385 BEGIN
2386
2387 populate_person_rates_rec (
2388 p_group_plan_id,p_lf_evnt_ocrd_dt,
2389 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2390 p_ws_sub_acty_typ_cd, 'NEW');
2391
2392 OPEN c_pay_rate_basis;
2393 fetch c_pay_rate_basis into l_pay_basis;
2394 close c_pay_rate_basis;
2395
2396 return l_pay_basis;
2397 end get_pay_rate_basis;
2398
2399 FUNCTION get_plan_rate_ws_amt (
2400 p_group_plan_id in number,
2401 p_lf_evnt_ocrd_dt in Date,
2402 p_oipl_id in number,
2403 p_group_per_in_ler_id in number,
2404 p_pl_id in number,
2405 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2406 begin
2407 populate_person_rates_rec (
2408 p_group_plan_id,p_lf_evnt_ocrd_dt,
2409 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2413 end get_plan_rate_ws_amt;
2410 p_ws_sub_acty_typ_cd, 'NEW');
2411
2412 return g_person_rates_rec.ws_val;
2414
2415 FUNCTION get_plan_rate_elig_sal (
2416 p_group_plan_id in number,
2417 p_lf_evnt_ocrd_dt in Date,
2418 p_oipl_id in number,
2419 p_group_per_in_ler_id in number,
2420 p_pl_id in number,
2421 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2422 begin
2423 populate_person_rates_rec (
2424 p_group_plan_id,p_lf_evnt_ocrd_dt,
2425 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2426 p_ws_sub_acty_typ_cd, 'NEW');
2427
2428 return g_person_rates_rec.elig_sal_val;
2429 end get_plan_rate_elig_sal;
2430
2431 FUNCTION get_plan_percent_elig_sal (
2432 p_group_plan_id in number,
2433 p_lf_evnt_ocrd_dt in Date,
2434 p_oipl_id in number,
2435 p_group_per_in_ler_id in number,
2436 p_pl_id in number,
2437 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2438 begin
2439 populate_person_rates_rec (
2440 p_group_plan_id,p_lf_evnt_ocrd_dt,
2441 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2442 p_ws_sub_acty_typ_cd, 'NEW');
2443
2444 if (g_person_rates_rec.elig_sal_val <>0 ) then
2445 return round( (g_person_rates_rec.ws_val / g_person_rates_rec.elig_sal_val) * 100,2);
2446 else
2447 return to_number(null);
2448 end if;
2449
2450 end get_plan_percent_elig_sal;
2451
2452 FUNCTION get_plan_rate_rec_amt (
2453 p_group_plan_id in number,
2454 p_lf_evnt_ocrd_dt in Date,
2455 p_oipl_id in number,
2456 p_group_per_in_ler_id in number,
2457 p_pl_id in number,
2458 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2459 begin
2460 populate_person_rates_rec (
2461 p_group_plan_id,p_lf_evnt_ocrd_dt,
2462 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2463 p_ws_sub_acty_typ_cd, 'NEW');
2464
2465 return g_person_rates_rec.rec_val;
2466 end get_plan_rate_rec_amt;
2467
2468 FUNCTION get_plan_rate_other_sal (
2469 p_group_plan_id in number,
2470 p_lf_evnt_ocrd_dt in Date,
2471 p_oipl_id in number,
2472 p_group_per_in_ler_id in number,
2473 p_pl_id in number,
2474 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2475 begin
2476 populate_person_rates_rec (
2477 p_group_plan_id,p_lf_evnt_ocrd_dt,
2478 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2479 p_ws_sub_acty_typ_cd, 'NEW');
2480
2481 return g_person_rates_rec.oth_comp_val;
2482 end get_plan_rate_other_sal;
2483
2484 FUNCTION get_plan_rate_stat_sal (
2485 p_group_plan_id in number,
2486 p_lf_evnt_ocrd_dt in Date,
2487 p_oipl_id in number,
2488 p_group_per_in_ler_id in number,
2489 p_pl_id in number,
2490 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2491 begin
2492 populate_person_rates_rec (
2493 p_group_plan_id,p_lf_evnt_ocrd_dt,
2494 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2495 p_ws_sub_acty_typ_cd, 'NEW');
2496
2497 return g_person_rates_rec.stat_sal_val;
2498 end get_plan_rate_stat_sal;
2499
2500 FUNCTION get_plan_rate_total_comp (
2501 p_group_plan_id in number,
2502 p_lf_evnt_ocrd_dt in Date,
2503 p_oipl_id in number,
2504 p_group_per_in_ler_id in number,
2505 p_pl_id in number,
2506 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2507 begin
2508 populate_person_rates_rec (
2509 p_group_plan_id,p_lf_evnt_ocrd_dt,
2510 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2511 p_ws_sub_acty_typ_cd, 'NEW');
2512
2513 return g_person_rates_rec.tot_comp_val;
2514 end get_plan_rate_total_comp;
2515
2516 FUNCTION get_plan_rate_misc1 (
2517 p_group_plan_id in number,
2518 p_lf_evnt_ocrd_dt in Date,
2519 p_oipl_id in number,
2520 p_group_per_in_ler_id in number,
2521 p_pl_id in number,
2522 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2523 begin
2524 populate_person_rates_rec (
2525 p_group_plan_id,p_lf_evnt_ocrd_dt,
2526 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2527 p_ws_sub_acty_typ_cd, 'NEW');
2528
2529 return g_person_rates_rec.misc1_val;
2530 end get_plan_rate_misc1;
2531
2532 FUNCTION get_plan_rate_misc2 (
2533 p_group_plan_id in number,
2534 p_lf_evnt_ocrd_dt in Date,
2535 p_oipl_id in number,
2536 p_group_per_in_ler_id in number,
2537 p_pl_id in number,
2538 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2539 begin
2540 populate_person_rates_rec (
2541 p_group_plan_id,p_lf_evnt_ocrd_dt,
2542 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2543 p_ws_sub_acty_typ_cd, 'NEW');
2544
2545 return g_person_rates_rec.misc2_val;
2546 end get_plan_rate_misc2;
2547
2548 FUNCTION get_plan_rate_misc3 (
2549 p_group_plan_id in number,
2550 p_lf_evnt_ocrd_dt in Date,
2551 p_oipl_id in number,
2552 p_group_per_in_ler_id in number,
2553 p_pl_id in number,
2554 p_ws_sub_acty_typ_cd in varchar2 ) return number is
2555 begin
2556 populate_person_rates_rec (
2557 p_group_plan_id,p_lf_evnt_ocrd_dt,
2558 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2559 p_ws_sub_acty_typ_cd, 'NEW');
2560
2561 return g_person_rates_rec.misc3_val;
2562 end get_plan_rate_misc3;
2563
2564 PROCEDURE populate_asgn_txn_rec (
2568 BEGIN
2565 p_assignment_id in number,
2566 p_asg_updt_eff_date in date) IS
2567
2569
2570 --IF (nvl(g_asgn_txn_rec.assignment_id,-1) <> p_assignment_id OR
2571 -- nvl(to_date(g_asgn_txn_rec.asg_updt_eff_date,'RRRR/MM/DD'),hr_general.start_of_time ) <> p_asg_updt_eff_date ) THEN
2572
2573 g_asgn_txn_rec := null;
2574 OPEN g_cursor_asgn_txn (p_assignment_id, to_char(p_asg_updt_eff_date,'RRRR/MM/DD'));
2575 FETCH g_cursor_asgn_txn into g_asgn_txn_rec;
2576 CLOSE g_cursor_asgn_txn;
2577
2578 --END IF;
2579 END populate_asgn_txn_rec;
2580
2581 FUNCTION get_new_job (
2582 p_assignment_id in number,
2583 p_asg_updt_eff_date in date) return varchar2 IS
2584 begin
2585 populate_asgn_txn_rec (p_assignment_id, p_asg_updt_eff_date);
2586
2587 if ( g_asgn_txn_rec.job_id is not null) then
2588 return ( hr_general.decode_job(g_asgn_txn_rec.job_id));
2589 end if;
2590
2591 return null;
2592 end get_new_job;
2593
2594 FUNCTION get_new_position (
2595 p_assignment_id in number,
2596 p_asg_updt_eff_date in date) return varchar2 IS
2597 begin
2598 populate_asgn_txn_rec (p_assignment_id, p_asg_updt_eff_date);
2599 -- Using DECODE_POSITION_LATEST_NAME instead of DECODE_POSITION : Anadi
2600 if ( g_asgn_txn_rec.position_id is not null) then
2601 return ( hr_general.DECODE_POSITION_LATEST_NAME(g_asgn_txn_rec.position_id));
2602 end if;
2603
2604 return null;
2605 end get_new_position;
2606
2607 FUNCTION get_new_grade (
2608 p_assignment_id in number,
2609 p_asg_updt_eff_date in date) return varchar2 IS
2610 begin
2611 populate_asgn_txn_rec (p_assignment_id, p_asg_updt_eff_date);
2612
2613 if ( g_asgn_txn_rec.grade_id is not null) then
2614 return ( hr_general.decode_grade (g_asgn_txn_rec.grade_id));
2615 end if;
2616
2617 return null;
2618 end get_new_grade ;
2619
2620
2621 FUNCTION get_new_people_group(
2622 p_assignment_id in number,
2623 p_asg_updt_eff_date in date) return varchar2 IS
2624 begin
2625 populate_asgn_txn_rec (p_assignment_id, p_asg_updt_eff_date);
2626
2627 if ( g_asgn_txn_rec.people_group_id is not null) then
2628 return ( hr_general.decode_people_group (g_asgn_txn_rec.people_group_id));
2629 end if;
2630
2631 return null;
2632 end get_new_people_group ;
2633
2634 FUNCTION get_new_asgn_flex(
2635 p_assignment_id in number,
2636 p_asg_updt_eff_date in date,
2637 p_asg_flex_num in number
2638 ) return varchar2 IS
2639
2640 l_asgn_flex ben_transaction.attribute11%Type;
2641 begin
2642 populate_asgn_txn_rec (p_assignment_id, p_asg_updt_eff_date);
2643
2644 if (p_asg_flex_num = 1) then
2645 l_asgn_flex := g_asgn_txn_rec.asgn_flex1;
2646 elsif (p_asg_flex_num = 2) then
2647 l_asgn_flex := g_asgn_txn_rec.asgn_flex2;
2648 elsif (p_asg_flex_num = 3) then
2649 l_asgn_flex := g_asgn_txn_rec.asgn_flex3;
2650 elsif (p_asg_flex_num = 4) then
2651 l_asgn_flex := g_asgn_txn_rec.asgn_flex4;
2652 elsif (p_asg_flex_num = 5) then
2653 l_asgn_flex := g_asgn_txn_rec.asgn_flex5;
2654 elsif (p_asg_flex_num = 6) then
2655 l_asgn_flex := g_asgn_txn_rec.asgn_flex6;
2656 elsif (p_asg_flex_num = 7) then
2657 l_asgn_flex := g_asgn_txn_rec.asgn_flex7;
2658 elsif (p_asg_flex_num = 8) then
2659 l_asgn_flex := g_asgn_txn_rec.asgn_flex8;
2660 elsif (p_asg_flex_num = 9) then
2661 l_asgn_flex := g_asgn_txn_rec.asgn_flex9;
2662 elsif (p_asg_flex_num = 10) then
2663 l_asgn_flex := g_asgn_txn_rec.asgn_flex10;
2664 elsif (p_asg_flex_num = 11) then
2665 l_asgn_flex := g_asgn_txn_rec.asgn_flex11;
2666 elsif (p_asg_flex_num = 12) then
2667 l_asgn_flex := g_asgn_txn_rec.asgn_flex12;
2668 elsif (p_asg_flex_num = 13) then
2669 l_asgn_flex := g_asgn_txn_rec.asgn_flex13;
2670 elsif (p_asg_flex_num = 14) then
2671 l_asgn_flex := g_asgn_txn_rec.asgn_flex14;
2672 elsif (p_asg_flex_num = 15) then
2673 l_asgn_flex := g_asgn_txn_rec.asgn_flex15;
2674 elsif (p_asg_flex_num = 16) then
2675 l_asgn_flex := g_asgn_txn_rec.asgn_flex16;
2676 elsif (p_asg_flex_num = 17) then
2677 l_asgn_flex := g_asgn_txn_rec.asgn_flex17;
2678 elsif (p_asg_flex_num = 18) then
2679 l_asgn_flex := g_asgn_txn_rec.asgn_flex18;
2680 elsif (p_asg_flex_num = 19) then
2681 l_asgn_flex := g_asgn_txn_rec.asgn_flex19;
2682 elsif (p_asg_flex_num = 20) then
2683 l_asgn_flex := g_asgn_txn_rec.asgn_flex20;
2684 elsif (p_asg_flex_num = 21) then
2685 l_asgn_flex := g_asgn_txn_rec.asgn_flex21;
2686 elsif (p_asg_flex_num = 22) then
2687 l_asgn_flex := g_asgn_txn_rec.asgn_flex22;
2688 elsif (p_asg_flex_num = 23) then
2689 l_asgn_flex := g_asgn_txn_rec.asgn_flex23;
2690 elsif (p_asg_flex_num = 24) then
2691 l_asgn_flex := g_asgn_txn_rec.asgn_flex24;
2692 elsif (p_asg_flex_num = 25) then
2693 l_asgn_flex := g_asgn_txn_rec.asgn_flex25;
2694 elsif (p_asg_flex_num = 26) then
2695 l_asgn_flex := g_asgn_txn_rec.asgn_flex26;
2696 elsif (p_asg_flex_num = 27) then
2697 l_asgn_flex := g_asgn_txn_rec.asgn_flex27;
2698 elsif (p_asg_flex_num = 28) then
2699 l_asgn_flex := g_asgn_txn_rec.asgn_flex28;
2700 elsif (p_asg_flex_num = 29) then
2701 l_asgn_flex := g_asgn_txn_rec.asgn_flex29;
2702 elsif (p_asg_flex_num = 30) then
2703 l_asgn_flex := g_asgn_txn_rec.asgn_flex30;
2704 end if;
2705
2706 return l_asgn_flex;
2707
2708 end get_new_asgn_flex;
2709
2710 function get_new_perf_rating (
2714
2711 p_assignment_id in number,
2712 p_perf_revw_strt_dt in date,
2713 p_emp_interview_typ_cd in varchar2 ) return varchar2 IS
2715 CURSOR c_perf_rate is
2716 select hr_general.decode_lookup('PERFORMANCE_RATING',attribute3)
2717 From ben_transaction
2718 where transaction_id = p_assignment_id
2719 and transaction_type = 'CWBPERF'||to_char(p_perf_revw_strt_dt,'rrrr/mm/dd')
2720 ||p_emp_interview_typ_cd;
2721
2722 l_perf_rating ben_transaction.attribute3%Type;
2723 begin
2724 open c_perf_rate;
2725 fetch c_perf_rate into l_perf_rating;
2726 close c_perf_rate;
2727
2728 return l_perf_rating;
2729
2730 end get_new_perf_rating;
2731
2732 --
2733 function get_group_short_name (
2734 p_plan_id in number ,
2735 p_lf_evt_ocrd_dt in date ) return varchar2 is
2736 cursor c_doc_short_name is
2737 select pqh_document_short_name
2738 from ben_cwb_pl_dsgn
2739 where pl_id = p_plan_id
2740 and oipl_id = -1
2741 and lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
2742
2743 l_short_name pqh_documents_f.short_name%type;
2744 begin
2745
2746 if (p_plan_id is null) then
2747 return null;
2748 end if;
2749
2750 open c_doc_short_name;
2751 fetch c_doc_short_name into l_short_name;
2752 close c_doc_short_name;
2753
2754 return l_short_name;
2755 end get_group_short_name;
2756
2757
2758 procedure populate_ws_mgr(p_group_per_in_ler_id in number) is
2759
2760 cursor c_ws_mgr_name is
2761 select info.full_name, info.brief_name, info.custom_name
2762 from ben_cwb_person_info info,
2763 ben_cwb_group_hrchy hrchy
2764 where hrchy.emp_per_in_ler_id = p_group_per_in_ler_id
2765 and hrchy.mgr_per_in_ler_id = info.group_per_in_ler_id
2766 and hrchy.lvl_num = 1;
2767 begin
2768
2769 open c_ws_mgr_name;
2770 g_ws_mgr_full_name := null;
2771 g_ws_mgr_brief_name := null;
2772 g_ws_mgr_custom_name := null;
2773 fetch c_ws_mgr_name into g_ws_mgr_full_name,g_ws_mgr_brief_name,g_ws_mgr_custom_name;
2774 close c_ws_mgr_name;
2775
2776 end populate_ws_mgr;
2777
2778
2779 function get_ws_mgr_full_name(p_group_per_in_ler_id in number) return varchar2 is
2780 begin
2781 --if (g_ws_mgr_full_name is null) then
2782 populate_ws_mgr(p_group_per_in_ler_id);
2783 --end if;
2784 return g_ws_mgr_full_name;
2785 end get_ws_mgr_full_name;
2786
2787
2788 function get_ws_mgr_brief_name(p_group_per_in_ler_id in number) return varchar2 is
2789 begin
2790 --if (g_ws_mgr_brief_name is null) then
2791 populate_ws_mgr(p_group_per_in_ler_id);
2792 --end if;
2793 return g_ws_mgr_brief_name;
2794 end get_ws_mgr_brief_name;
2795
2796
2797 function get_ws_mgr_custom_name(p_group_per_in_ler_id in number) return varchar2 is
2798 begin
2799 --if (g_ws_mgr_custom_name is null) then
2800 populate_ws_mgr(p_group_per_in_ler_id);
2801 --end if;
2802 return g_ws_mgr_custom_name;
2803 end get_ws_mgr_custom_name;
2804
2805
2806 --
2807
2808 Function get_option_currency(
2809 p_group_plan_id in number,
2810 p_lf_evnt_ocrd_dt in Date,
2811 p_oipl_id in number,
2812 p_group_per_in_ler_id in number,
2813 p_pl_id in number,
2814 p_ws_sub_acty_typ_cd in varchar2,
2815 p_oipl_ordr_num in number) return varchar2
2816 Is
2817
2818 Cursor cur_option_currency is
2819 Select currency
2820 From ben_cwb_person_rates bcpr,ben_cwb_pl_dsgn bcpd
2821 Where bcpr.group_per_in_ler_id = p_group_per_in_ler_id
2822 And bcpd.group_pl_id = p_group_plan_id
2823 And bcpd.lf_evt_ocrd_dt = p_lf_evnt_ocrd_dt
2824 And bcpr.pl_id = bcpd.pl_id
2825 And bcpr.group_pl_id = bcpd.group_pl_id
2826 And bcpr.oipl_id = bcpd.oipl_id
2827 And bcpr.lf_evt_ocrd_dt = bcpd.lf_evt_ocrd_dt
2828 And bcpr.elig_flag = 'Y'
2829 And oipl_ordr_num = p_oipl_ordr_num;
2830
2831 l_option_currency varchar2(30);
2832 Begin
2833 open cur_option_currency;
2834 fetch cur_option_currency into l_option_currency;
2835 close cur_option_currency;
2836 return l_option_currency;
2837 End get_option_currency;
2838
2839
2840
2841 Function get_option1_currency(
2842 p_group_plan_id in number,
2843 p_lf_evnt_ocrd_dt in Date,
2844 p_oipl_id in number,
2845 p_group_per_in_ler_id in number,
2846 p_pl_id in number,
2847 p_ws_sub_acty_typ_cd in varchar2) return varchar2
2848 Is
2849 l_option1_currency varchar2(30);
2850 Begin
2851 l_option1_currency := get_option_currency(p_group_plan_id,p_lf_evnt_ocrd_dt,
2852 p_oipl_id,p_group_per_in_ler_id,
2853 p_pl_id,p_ws_sub_acty_typ_cd,1);
2854 return l_option1_currency;
2855 End get_option1_currency;
2856
2857 Function get_option2_currency(
2858 p_group_plan_id in number,
2859 p_lf_evnt_ocrd_dt in Date,
2860 p_oipl_id in number,
2861 p_group_per_in_ler_id in number,
2862 p_pl_id in number,
2863 p_ws_sub_acty_typ_cd in varchar2) return varchar2
2864 Is
2865 l_option2_currency varchar2(30);
2866 Begin
2867 l_option2_currency := get_option_currency(p_group_plan_id,p_lf_evnt_ocrd_dt,
2868 p_oipl_id,p_group_per_in_ler_id,
2869 p_pl_id,p_ws_sub_acty_typ_cd,2);
2870 return l_option2_currency;
2871 End get_option2_currency;
2872
2876 p_oipl_id in number,
2873 Function get_option3_currency(
2874 p_group_plan_id in number,
2875 p_lf_evnt_ocrd_dt in Date,
2877 p_group_per_in_ler_id in number,
2878 p_pl_id in number,
2879 p_ws_sub_acty_typ_cd in varchar2) return varchar2
2880 Is
2881 l_option3_currency varchar2(30);
2882 Begin
2883 l_option3_currency := get_option_currency(p_group_plan_id,p_lf_evnt_ocrd_dt,
2884 p_oipl_id,p_group_per_in_ler_id,
2885 p_pl_id,p_ws_sub_acty_typ_cd,3);
2886 return l_option3_currency;
2887 End get_option3_currency;
2888
2889 Function get_option4_currency(
2890 p_group_plan_id in number,
2891 p_lf_evnt_ocrd_dt in Date,
2892 p_oipl_id in number,
2893 p_group_per_in_ler_id in number,
2894 p_pl_id in number,
2895 p_ws_sub_acty_typ_cd in varchar2) return varchar2
2896 Is
2897 l_option4_currency varchar2(30);
2898 Begin
2899 l_option4_currency := get_option_currency(p_group_plan_id,p_lf_evnt_ocrd_dt,
2900 p_oipl_id,p_group_per_in_ler_id,
2901 p_pl_id,p_ws_sub_acty_typ_cd,4);
2902 return l_option4_currency;
2903 End get_option4_currency;
2904
2905 FUNCTION get_plan_rate_start_dt (
2906 p_group_plan_id in number,
2907 p_lf_evnt_ocrd_dt in Date,
2908 p_oipl_id in number,
2909 p_group_per_in_ler_id in number,
2910 p_pl_id in number,
2911 p_ws_sub_acty_typ_cd in varchar2 ) return varchar2 is
2912 begin
2913 populate_person_rates_rec (
2914 p_group_plan_id,p_lf_evnt_ocrd_dt,
2915 p_oipl_id,p_group_per_in_ler_id, p_pl_id,
2916 p_ws_sub_acty_typ_cd, 'NEW');
2917 return g_person_rates_rec.ws_rt_start_date;
2918 end get_plan_rate_start_dt;
2919
2920 Function get_option1_rate_start_dt(
2921 p_group_plan_id in number,
2922 p_lf_evnt_ocrd_dt in Date,
2923 p_oipl_id in number,
2924 p_group_per_in_ler_id in number,
2925 p_pl_id in number,
2926 p_ws_sub_acty_typ_cd in varchar2) return varchar2 is
2927 Begin
2928 populate_person_option1_rec(
2929 p_group_plan_id,
2930 p_lf_evnt_ocrd_dt,
2931 p_oipl_id,
2932 p_group_per_in_ler_id,
2933 p_pl_id,
2934 p_ws_sub_acty_typ_cd);
2935 return g_opt1_person_rates_rec.ws_rt_start_date;
2936 end get_option1_rate_start_dt;
2937
2938 Function get_option2_rate_start_dt(
2939 p_group_plan_id in number,
2940 p_lf_evnt_ocrd_dt in Date,
2941 p_oipl_id in number,
2942 p_group_per_in_ler_id in number,
2943 p_pl_id in number,
2944 p_ws_sub_acty_typ_cd in varchar2) return varchar2 is
2945 Begin
2946 populate_person_option2_rec(
2947 p_group_plan_id,
2948 p_lf_evnt_ocrd_dt,
2949 p_oipl_id,
2950 p_group_per_in_ler_id,
2951 p_pl_id,
2952 p_ws_sub_acty_typ_cd);
2953 return g_opt2_person_rates_rec.ws_rt_start_date;
2954 end get_option2_rate_start_dt;
2955
2956 Function get_option3_rate_start_dt(
2957 p_group_plan_id in number,
2958 p_lf_evnt_ocrd_dt in Date,
2959 p_oipl_id in number,
2960 p_group_per_in_ler_id in number,
2961 p_pl_id in number,
2962 p_ws_sub_acty_typ_cd in varchar2) return varchar2 is
2963 Begin
2964 populate_person_option3_rec(
2965 p_group_plan_id,
2966 p_lf_evnt_ocrd_dt,
2967 p_oipl_id,
2968 p_group_per_in_ler_id,
2969 p_pl_id,
2970 p_ws_sub_acty_typ_cd);
2971 return g_opt3_person_rates_rec.ws_rt_start_date;
2972 end get_option3_rate_start_dt;
2973
2974 Function get_option4_rate_start_dt(
2975 p_group_plan_id in number,
2976 p_lf_evnt_ocrd_dt in Date,
2977 p_oipl_id in number,
2978 p_group_per_in_ler_id in number,
2979 p_pl_id in number,
2980 p_ws_sub_acty_typ_cd in varchar2) return varchar2 is
2981 Begin
2982 populate_person_option4_rec(
2983 p_group_plan_id,
2984 p_lf_evnt_ocrd_dt,
2985 p_oipl_id,
2986 p_group_per_in_ler_id,
2987 p_pl_id,
2988 p_ws_sub_acty_typ_cd);
2989 return g_opt4_person_rates_rec.ws_rt_start_date;
2990 end get_option4_rate_start_dt;
2991
2992 Function get_custom_segment_message(
2993 p_custom_seg_text in varchar2 ) return varchar2
2994 is
2995 l_return_text varchar2(200) := null;
2996 l_prod_name varchar2(5) := null;
2997 l_msg_name varchar2(100) := null;
2998 begin
2999 l_return_text := p_custom_seg_text;
3000 if(p_custom_seg_text is not null) then
3001 if nvl(substr(p_custom_seg_text,1,4),'XXX') = 'INFO' then
3002 if((substr(p_custom_seg_text,6,3) is not null) AND (substr(p_custom_seg_text,10) is not null)) then
3003 l_prod_name := substr(p_custom_seg_text,6,3);
3004 l_msg_name := substr(p_custom_seg_text,10);
3005 l_return_text := fnd_message.get_string(l_prod_name,l_msg_name);
3006 end if;
3007 end if;
3008 end if;
3009 return l_return_text;
3010 end get_custom_segment_message;
3011
3012 --
3013
3014 /* ---------------------------------------------------------------------
3015 END -- Changes for Printable document
3016 --------------------------------------------------------------------- */
3017 END;