DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_CWB_PL_DSGN_API

Source


1 Package Body ben_cwb_pl_dsgn_api as
2 /* $Header: becpdapi.pkb 120.1 2006/01/04 01:43:14 steotia noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  BEN_CWB_PL_DSGN_API.';
7 g_debug boolean := hr_utility.debug_enabled;
8 --
9 --
10 -- ----------------------------------------------------------------------------
11 -- |-------------------------< create_plan_or_option >------------------------|
12 -- ----------------------------------------------------------------------------
13 procedure create_plan_or_option
14   (p_validate                          in     boolean  default false
15   ,p_pl_id                             in     number
16   ,p_oipl_id                           in     number
17   ,p_lf_evt_ocrd_dt                    in     date
18   ,p_effective_date                    in     date      default null
19   ,p_name                              in     varchar2  default null
20   ,p_group_pl_id                       in     number    default null
21   ,p_group_oipl_id                     in     number    default null
22   ,p_opt_hidden_flag                   in     varchar2  default null
23   ,p_opt_id                            in     number    default null
24   ,p_pl_uom                            in     varchar2  default null
25   ,p_pl_ordr_num                       in     number    default null
26   ,p_oipl_ordr_num                     in     number    default null
27   ,p_pl_xchg_rate                      in     number    default null
28   ,p_opt_count                         in     number    default null
29   ,p_uses_bdgt_flag                    in     varchar2  default null
30   ,p_prsrv_bdgt_cd                     in     varchar2  default null
31   ,p_upd_start_dt                      in     date      default null
32   ,p_upd_end_dt                        in     date      default null
33   ,p_approval_mode                     in     varchar2  default null
34   ,p_enrt_perd_start_dt                in     date      default null
35   ,p_enrt_perd_end_dt                  in     date      default null
36   ,p_yr_perd_start_dt                  in     date      default null
37   ,p_yr_perd_end_dt                    in     date      default null
38   ,p_wthn_yr_start_dt                  in     date      default null
39   ,p_wthn_yr_end_dt                    in     date      default null
40   ,p_enrt_perd_id                      in     number    default null
41   ,p_yr_perd_id                        in     number    default null
42   ,p_business_group_id                 in     number    default null
43   ,p_perf_revw_strt_dt                 in     date      default null
44   ,p_asg_updt_eff_date                 in     date      default null
45   ,p_emp_interview_typ_cd              in     varchar2  default null
46   ,p_salary_change_reason              in     varchar2  default null
47   ,p_ws_abr_id                         in     number    default null
48   ,p_ws_nnmntry_uom                    in     varchar2  default null
49   ,p_ws_rndg_cd                        in     varchar2  default null
50   ,p_ws_sub_acty_typ_cd                in     varchar2  default null
51   ,p_dist_bdgt_abr_id                  in     number    default null
52   ,p_dist_bdgt_nnmntry_uom             in     varchar2  default null
53   ,p_dist_bdgt_rndg_cd                 in     varchar2  default null
54   ,p_ws_bdgt_abr_id                    in     number    default null
55   ,p_ws_bdgt_nnmntry_uom               in     varchar2  default null
56   ,p_ws_bdgt_rndg_cd                   in     varchar2  default null
57   ,p_rsrv_abr_id                       in     number    default null
58   ,p_rsrv_nnmntry_uom                  in     varchar2  default null
59   ,p_rsrv_rndg_cd                      in     varchar2  default null
60   ,p_elig_sal_abr_id                   in     number    default null
61   ,p_elig_sal_nnmntry_uom              in     varchar2  default null
62   ,p_elig_sal_rndg_cd                  in     varchar2  default null
63   ,p_misc1_abr_id                      in     number    default null
64   ,p_misc1_nnmntry_uom                 in     varchar2  default null
65   ,p_misc1_rndg_cd                     in     varchar2  default null
66   ,p_misc2_abr_id                      in     number    default null
67   ,p_misc2_nnmntry_uom                 in     varchar2  default null
68   ,p_misc2_rndg_cd                     in     varchar2  default null
69   ,p_misc3_abr_id                      in     number    default null
70   ,p_misc3_nnmntry_uom                 in     varchar2  default null
71   ,p_misc3_rndg_cd                     in     varchar2  default null
72   ,p_stat_sal_abr_id                   in     number    default null
73   ,p_stat_sal_nnmntry_uom              in     varchar2  default null
74   ,p_stat_sal_rndg_cd                  in     varchar2  default null
75   ,p_rec_abr_id                        in     number    default null
76   ,p_rec_nnmntry_uom                   in     varchar2  default null
77   ,p_rec_rndg_cd                       in     varchar2  default null
78   ,p_tot_comp_abr_id                   in     number    default null
79   ,p_tot_comp_nnmntry_uom              in     varchar2  default null
80   ,p_tot_comp_rndg_cd                  in     varchar2  default null
81   ,p_oth_comp_abr_id                   in     number    default null
82   ,p_oth_comp_nnmntry_uom              in     varchar2  default null
83   ,p_oth_comp_rndg_cd                  in     varchar2  default null
84   ,p_actual_flag                       in     varchar2  default null
85   ,p_acty_ref_perd_cd                  in     varchar2  default null
86   ,p_legislation_code                  in     varchar2  default null
87   ,p_pl_annulization_factor            in     number    default null
88   ,p_pl_stat_cd                        in     varchar2  default null
89   ,p_uom_precision                     in     number    default null
90   ,p_ws_element_type_id                in     number    default null
91   ,p_ws_input_value_id                 in     number    default null
92   ,p_data_freeze_date                  in     date      default null
93   ,p_ws_amt_edit_cd                    in     varchar2  default null
94   ,p_ws_amt_edit_enf_cd_for_nul        in     varchar2  default null
95   ,p_ws_over_budget_edit_cd            in     varchar2  default null
96   ,p_ws_over_budget_tol_pct            in     number    default null
97   ,p_bdgt_over_budget_edit_cd          in     varchar2  default null
98   ,p_bdgt_over_budget_tol_pct          in     number    default null
99   ,p_auto_distr_flag                   in     varchar2  default null
100   ,p_pqh_document_short_name           in     varchar2  default null
101   ,p_ovrid_rt_strt_dt                  in     date      default null
102   ,p_do_not_process_flag               in     varchar2  default null
103   ,p_ovr_perf_revw_strt_dt             in     date      default null
104   ,p_object_version_number             out    nocopy number
105   ) is
106   --
107   l_object_version_number number;
108   --
109   l_proc                varchar2(72) := g_package||'create_plan_or_option';
110 begin
111   if g_debug then
112      hr_utility.set_location('Entering:'|| l_proc, 10);
113   end if;
114   --
115   -- Issue a savepoint
116   --
117   savepoint create_plan_or_option;
118   --
119   -- Call Before Process User Hook
120   --
121   begin
122     ben_cwb_pl_dsgn_bk1.create_plan_or_option_b
123         (p_pl_id                          => p_pl_id
124         ,p_oipl_id                        => p_oipl_id
125         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
126         ,p_effective_date                 => p_effective_date
127         ,p_name                           => p_name
128         ,p_group_pl_id                    => p_group_pl_id
129         ,p_group_oipl_id                  => p_group_oipl_id
130         ,p_opt_hidden_flag                => p_opt_hidden_flag
131         ,p_opt_id                         => p_opt_id
132         ,p_pl_uom                         => p_pl_uom
133         ,p_pl_ordr_num                    => p_pl_ordr_num
134         ,p_oipl_ordr_num                  => p_oipl_ordr_num
135         ,p_pl_xchg_rate                   => p_pl_xchg_rate
136         ,p_opt_count                      => p_opt_count
137         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
138         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
139         ,p_upd_start_dt                   => p_upd_start_dt
140         ,p_upd_end_dt                     => p_upd_end_dt
141         ,p_approval_mode                  => p_approval_mode
142         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
143         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
144         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
145         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
146         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
147         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
148         ,p_enrt_perd_id                   => p_enrt_perd_id
149         ,p_yr_perd_id                     => p_yr_perd_id
150         ,p_business_group_id              => p_business_group_id
151         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
152         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
153         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
154         ,p_salary_change_reason           => p_salary_change_reason
155         ,p_ws_abr_id                      => p_ws_abr_id
156         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
157         ,p_ws_rndg_cd                     => p_ws_rndg_cd
158         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
159         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
160         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
161         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
162         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
163         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
164         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
165         ,p_rsrv_abr_id                    => p_rsrv_abr_id
166         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
167         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
168         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
169         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
170         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
171         ,p_misc1_abr_id                   => p_misc1_abr_id
172         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
173         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
174         ,p_misc2_abr_id                   => p_misc2_abr_id
175         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
176         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
177         ,p_misc3_abr_id                   => p_misc3_abr_id
178         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
179         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
180         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
181         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
182         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
183         ,p_rec_abr_id                     => p_rec_abr_id
184         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
185         ,p_rec_rndg_cd                    => p_rec_rndg_cd
186         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
187         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
188         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
189         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
190         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
191         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
192         ,p_actual_flag                    => p_actual_flag
193         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
194         ,p_legislation_code               => p_legislation_code
195         ,p_pl_annulization_factor         => p_pl_annulization_factor
196         ,p_pl_stat_cd                     => p_pl_stat_cd
197         ,p_uom_precision                  => p_uom_precision
198         ,p_ws_element_type_id             => p_ws_element_type_id
199         ,p_ws_input_value_id              => p_ws_input_value_id
200         ,p_data_freeze_date               => p_data_freeze_date
201         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
202         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
203         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
204         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
205         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
206         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
207         ,p_auto_distr_flag                => p_auto_distr_flag
208         ,p_pqh_document_short_name        => p_pqh_document_short_name
209         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
210         ,p_do_not_process_flag            => p_do_not_process_flag
211 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
212         );
213   exception
214     when hr_api.cannot_find_prog_unit then
215       hr_api.cannot_find_prog_unit_error
216         (p_module_name => 'create_plan_or_option'
217         ,p_hook_type   => 'BP'
218         );
219   end;
220   --
221   -- Validation in addition to Row Handlers
222   --
226   ben_cpd_ins.ins
223   --
224   -- Process Logic
225   --
227         (p_pl_id                          => p_pl_id
228         ,p_oipl_id                        => p_oipl_id
229         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
230         ,p_effective_date                 => p_effective_date
231         ,p_name                           => p_name
232         ,p_group_pl_id                    => p_group_pl_id
233         ,p_group_oipl_id                  => p_group_oipl_id
234         ,p_opt_hidden_flag                => p_opt_hidden_flag
235         ,p_opt_id                         => p_opt_id
236         ,p_pl_uom                         => p_pl_uom
237         ,p_pl_ordr_num                    => p_pl_ordr_num
238         ,p_oipl_ordr_num                  => p_oipl_ordr_num
239         ,p_pl_xchg_rate                   => p_pl_xchg_rate
240         ,p_opt_count                      => p_opt_count
241         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
242         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
243         ,p_upd_start_dt                   => p_upd_start_dt
244         ,p_upd_end_dt                     => p_upd_end_dt
245         ,p_approval_mode                  => p_approval_mode
246         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
247         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
248         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
249         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
250         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
251         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
252         ,p_enrt_perd_id                   => p_enrt_perd_id
253         ,p_yr_perd_id                     => p_yr_perd_id
254         ,p_business_group_id              => p_business_group_id
255         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
256         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
257         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
258         ,p_salary_change_reason           => p_salary_change_reason
259         ,p_ws_abr_id                      => p_ws_abr_id
260         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
261         ,p_ws_rndg_cd                     => p_ws_rndg_cd
262         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
263         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
264         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
265         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
266         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
267         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
268         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
269         ,p_rsrv_abr_id                    => p_rsrv_abr_id
270         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
271         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
272         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
273         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
274         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
275         ,p_misc1_abr_id                   => p_misc1_abr_id
276         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
277         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
278         ,p_misc2_abr_id                   => p_misc2_abr_id
279         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
280         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
281         ,p_misc3_abr_id                   => p_misc3_abr_id
282         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
283         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
284         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
285         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
286         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
287         ,p_rec_abr_id                     => p_rec_abr_id
288         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
289         ,p_rec_rndg_cd                    => p_rec_rndg_cd
290         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
291         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
292         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
293         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
294         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
295         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
296         ,p_actual_flag                    => p_actual_flag
297         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
298         ,p_legislation_code               => p_legislation_code
299         ,p_pl_annulization_factor         => p_pl_annulization_factor
300         ,p_pl_stat_cd                     => p_pl_stat_cd
301         ,p_uom_precision                  => p_uom_precision
302         ,p_ws_element_type_id             => p_ws_element_type_id
303         ,p_ws_input_value_id              => p_ws_input_value_id
304         ,p_data_freeze_date               => p_data_freeze_date
305         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
306         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
307         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
308         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
309         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
310         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
311         ,p_auto_distr_flag                => p_auto_distr_flag
312         ,p_pqh_document_short_name        => p_pqh_document_short_name
313         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
314         ,p_do_not_process_flag            => p_do_not_process_flag
315 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
316         ,p_object_version_number          => l_object_version_number
317         );
318   --
319   -- Call After Process User Hook
320   --
321   begin
325         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
322     ben_cwb_pl_dsgn_bk1.create_plan_or_option_a
323         (p_pl_id                          => p_pl_id
324         ,p_oipl_id                        => p_oipl_id
326         ,p_effective_date                 => p_effective_date
327         ,p_name                           => p_name
328         ,p_group_pl_id                    => p_group_pl_id
329         ,p_group_oipl_id                  => p_group_oipl_id
330         ,p_opt_hidden_flag                => p_opt_hidden_flag
331         ,p_opt_id                         => p_opt_id
332         ,p_pl_uom                         => p_pl_uom
333         ,p_pl_ordr_num                    => p_pl_ordr_num
334         ,p_oipl_ordr_num                  => p_oipl_ordr_num
335         ,p_pl_xchg_rate                   => p_pl_xchg_rate
336         ,p_opt_count                      => p_opt_count
337         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
338         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
339         ,p_upd_start_dt                   => p_upd_start_dt
340         ,p_upd_end_dt                     => p_upd_end_dt
341         ,p_approval_mode                  => p_approval_mode
342         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
343         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
344         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
345         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
346         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
347         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
348         ,p_enrt_perd_id                   => p_enrt_perd_id
349         ,p_yr_perd_id                     => p_yr_perd_id
350         ,p_business_group_id              => p_business_group_id
351         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
352         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
353         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
354         ,p_salary_change_reason           => p_salary_change_reason
355         ,p_ws_abr_id                      => p_ws_abr_id
356         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
357         ,p_ws_rndg_cd                     => p_ws_rndg_cd
358         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
359         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
360         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
361         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
362         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
363         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
364         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
365         ,p_rsrv_abr_id                    => p_rsrv_abr_id
366         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
367         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
368         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
369         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
370         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
371         ,p_misc1_abr_id                   => p_misc1_abr_id
372         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
373         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
374         ,p_misc2_abr_id                   => p_misc2_abr_id
375         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
376         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
377         ,p_misc3_abr_id                   => p_misc3_abr_id
378         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
379         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
380         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
381         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
382         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
383         ,p_rec_abr_id                     => p_rec_abr_id
384         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
385         ,p_rec_rndg_cd                    => p_rec_rndg_cd
386         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
387         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
388         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
389         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
390         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
391         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
392         ,p_actual_flag                    => p_actual_flag
393         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
394         ,p_legislation_code               => p_legislation_code
395         ,p_pl_annulization_factor         => p_pl_annulization_factor
396         ,p_pl_stat_cd                     => p_pl_stat_cd
397         ,p_uom_precision                  => p_uom_precision
398         ,p_ws_element_type_id             => p_ws_element_type_id
399         ,p_ws_input_value_id              => p_ws_input_value_id
400         ,p_data_freeze_date               => p_data_freeze_date
401         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
402         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
403         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
404         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
405         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
406         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
407         ,p_auto_distr_flag                => p_auto_distr_flag
408         ,p_pqh_document_short_name        => p_pqh_document_short_name
409         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
410         ,p_do_not_process_flag            => p_do_not_process_flag
411 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
412         ,p_object_version_number          => l_object_version_number
413         );
414   exception
415     when hr_api.cannot_find_prog_unit then
416       hr_api.cannot_find_prog_unit_error
420   end;
417         (p_module_name => 'create_plan_or_option'
418         ,p_hook_type   => 'AP'
419         );
421   --
422   -- When in validation only mode raise the Validate_Enabled exception
423   --
424   if p_validate then
425     raise hr_api.validate_enabled;
426   end if;
427   --
428   -- Set all IN OUT and OUT parameters with out values
429   --
430   p_object_version_number  := l_object_version_number;
431   --
432   if g_debug then
433      hr_utility.set_location(' Leaving:'||l_proc, 70);
434   end if;
435 exception
436   when hr_api.validate_enabled then
437     --
438     -- As the Validate_Enabled exception has been raised
439     -- we must rollback to the savepoint
440     --
441     rollback to create_plan_or_option;
442     --
443     if g_debug then
444        hr_utility.set_location(' Leaving:'||l_proc, 80);
445     end if;
446   when others then
447     --
448     -- A validation or unexpected error has occured
449     --
450     rollback to create_plan_or_option;
451     --
452     if g_debug then
453        hr_utility.set_location(' Leaving:'||l_proc, 90);
454     end if;
455     raise;
456 end create_plan_or_option;
457 --
458 --
459 -- ----------------------------------------------------------------------------
460 -- |---------------------------< data_syncopation >---------------------------|
461 -- ----------------------------------------------------------------------------
462 -- This is an internal procedure called by update_plan_or_option. This
463 -- procedure makes sure that all the child rows get correct data from parent
464 -- rows.
465 --
466 procedure data_syncopation(p_pl_id                    in    number
467                           ,p_oipl_id                  in    number
468                           ,p_lf_evt_ocrd_dt           in    date
469                           ,p_effective_date           in    date
470                           ,p_group_pl_id              in    number
471                           ,p_group_oipl_id            in    number
472                           ,p_pl_uom                   in    varchar2
473                           ,p_pl_ordr_num              in    varchar2
474                           ,p_oipl_ordr_num            in    number
475                           ,p_pl_xchg_rate             in    number
476                           ,p_upd_start_dt             in    date
477                           ,p_upd_end_dt               in    date
478                           ,p_approval_mode            in    varchar2
479                           ,p_enrt_perd_start_dt       in    date
480                           ,p_enrt_perd_end_dt         in    date
481                           ,p_yr_perd_start_dt         in    date
482                           ,p_yr_perd_end_dt           in    date
483                           ,p_wthn_yr_start_dt         in    date
484                           ,p_wthn_yr_end_dt           in    date
485                           ,p_business_group_id        in    number
486                           ,p_perf_revw_strt_dt        in    date
487                           ,p_asg_updt_eff_date        in    date
488                           ,p_emp_interview_typ_cd     in    varchar2
489                           ,p_salary_change_reason     in    varchar2
490                           ,p_actual_flag              in    varchar2
491                           ,p_acty_ref_perd_cd         in    varchar2
492                           ,p_legislation_code         in    varchar2
493                           ,p_pl_annulization_factor   in    number
494                           ,p_pl_stat_cd               in    varchar2
495                           ,p_uom_precision            in    number
496                           ,p_data_freeze_date         in    date
497                          ) is
498 -- cursor to fetch the local plans of a group plan
499 cursor csr_plans(p_group_pl_id number
500                       ,p_lf_evt_ocrd_dt date) is
501 select pl_id
502 from ben_cwb_pl_dsgn
503 where group_pl_id = p_group_pl_id
504 and   pl_id <> group_pl_id       -- Exclude group plan
505 and   oipl_id = -1
506 and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
507 
508 -- cursor to fetch the options of a plan
509 cursor csr_options(p_pl_id    number
510                   ,p_lf_evt_ocrd_dt date) is
511 select oipl_id
512 from ben_cwb_pl_dsgn
513 where pl_id = p_pl_id
514 and   oipl_id <> -1     -- Exclude Plans
515 and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
516 
517 -- cursor to fetch local option of a group plan
518 cursor csr_grp_pl_local_options(p_group_pl_id    number
519                                ,p_lf_evt_ocrd_dt date) is
520 select pl_id
521       ,oipl_id
522 from ben_cwb_pl_dsgn
523 where group_pl_id = p_group_pl_id
524 and   oipl_id <> -1     -- Exclude Plans
525 and   pl_id   <> p_group_pl_id   -- Exclude Group Options
526 and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
527 
528 -- cursor to fetch local option of a group option
529 cursor csr_grp_opt_local_options(p_group_pl_id    number
530                                 ,p_group_oipl_id  number
531                                 ,p_lf_evt_ocrd_dt date) is
532 select pl_id
533       ,oipl_id
534 from ben_cwb_pl_dsgn
535 where group_pl_id = p_group_pl_id
536 and   oipl_id <> -1     -- Exclude Plans
537 and   pl_id   <> p_group_pl_id   -- Exclude Group Options
538 and   group_oipl_id = p_group_oipl_id
539 and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
540 --
541    l_is_group_plan boolean;
542    l_is_local_plan boolean;
543    l_is_group_option boolean;
544    l_ovn number;
545 --
546    l_proc     varchar2(72) := g_package||'data_syncopation';
547 --
548 begin
549    --
550    if g_debug then
551       hr_utility.set_location('Entering:'|| l_proc, 10);
552    end if;
553    --
554    if(p_pl_id = p_group_pl_id) then
555       -- Group Plan or Option
556       if (p_oipl_id = -1) then
557          -- Group Plan
558          l_is_group_plan := true;
559        else
560          -- Group Option
561          l_is_group_option := true;
562        end if;
563    else
564       -- Local Plan or Option
565       if (p_oipl_id = -1) then
566          -- Local Plan
567          l_is_local_plan := true;
568       end if;
569    end if;
570    --
571    if g_debug then
572       hr_utility.set_location(l_proc, 20);
573    end if;
574    --
575    if (l_is_group_plan) then
576       --
577       if g_debug then
578          hr_utility.set_location(l_proc, 30);
579       end if;
580       --
581       -- Pass the values of to local plan : group_pl_id, effective_date,
582       -- upd_start_dt, upd_end_dt, approval_mode, enrt_perd_start-dt,
583       -- enrt_perd_end_dt, yr_perd_start_dt, yr_perd_end_dt, wthn_yr_start_dt,
584       -- wthn_yr_end_dt, perf_review_start_dt, asg_updt_eff_date,
585       -- emp_interview_typ_cd, salary_change_reason
586       for pl in csr_plans(p_pl_id, p_lf_evt_ocrd_dt)
587       loop
588          --
589          if g_debug then
590             hr_utility.set_location(l_proc, 40);
591          end if;
592          --
593          select object_version_number
594          into l_ovn
595          from ben_cwb_pl_dsgn
596          where pl_id = pl.pl_id
597          and   oipl_id = -1
598          and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
599          --
600          update_plan_or_option
601               (p_call_data_syncopation        => 'N'     -- no recursive calls
602               ,p_pl_id                        => pl.pl_id
603               ,p_oipl_id                      => -1
604               ,p_group_pl_id                  => p_group_pl_id
605               ,p_lf_evt_ocrd_dt               => p_lf_evt_ocrd_dt
606               ,p_effective_date               => p_effective_date
607               ,p_upd_start_dt                 => p_upd_start_dt
608               ,p_upd_end_dt                   => p_upd_end_dt
609               ,p_approval_mode                => p_approval_mode
610               ,p_enrt_perd_start_dt           => p_enrt_perd_start_dt
611               ,p_enrt_perd_end_dt             => p_enrt_perd_end_dt
612               ,p_yr_perd_start_dt             => p_yr_perd_start_dt
613               ,p_yr_perd_end_dt               => p_yr_perd_end_dt
614               ,p_wthn_yr_start_dt             => p_wthn_yr_start_dt
615               ,p_wthn_yr_end_dt               => p_wthn_yr_end_dt
616               ,p_perf_revw_strt_dt            => p_perf_revw_strt_dt
617               ,p_asg_updt_eff_date            => p_asg_updt_eff_date
618               ,p_emp_interview_typ_cd         => p_emp_interview_typ_cd
619               ,p_salary_change_reason         => p_salary_change_reason
623       --
620               ,p_data_freeze_date             => p_data_freeze_date
621               ,p_object_version_number        => l_ovn);
622       end loop;
624       if g_debug then
625          hr_utility.set_location(l_proc, 50);
626       end if;
627       --
628       -- Pass the values to the Group Option : effective_date, group_pl_id,
629       --  pl_uom, pl_xchg_rate, business_group_id, actual_flag,
630       -- acty_ref_perd_cd, legilsation_code, pl_annulization_factor,
631       -- pl_stat_cd, uom_precision
632       for oipl in csr_options(p_pl_id, p_lf_evt_ocrd_dt)
633       loop
634          --
635          if g_debug then
636             hr_utility.set_location(l_proc, 60);
637          end if;
638          --
639          select object_version_number
640          into l_ovn
641          from ben_cwb_pl_dsgn
642          where pl_id = p_pl_id
643          and   oipl_id = oipl.oipl_id
644          and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
645          --
646          update_plan_or_option
647                (p_call_data_syncopation      => 'N'   -- no recursive calls
648                ,p_pl_id                      => p_pl_id
649                ,p_oipl_id                    => oipl.oipl_id
650                ,p_lf_evt_ocrd_dt             => p_lf_evt_ocrd_dt
651                ,p_effective_date             => p_effective_date
652                ,p_group_pl_id                => p_group_pl_id
653                ,p_pl_uom                     => p_pl_uom
654                ,p_pl_xchg_rate               => p_pl_xchg_rate
655                ,p_business_group_id          => p_business_group_id
656                ,p_actual_flag                => p_actual_flag
657                ,p_acty_ref_perd_cd           => p_acty_ref_perd_cd
658                ,p_legislation_code           => p_legislation_code
659                ,p_pl_annulization_factor     => p_pl_annulization_factor
660                ,p_pl_stat_cd                 => p_pl_stat_cd
661                ,p_uom_precision              => p_uom_precision
662                ,p_object_version_number      => l_ovn);
663       end loop;
664       --
665       if g_debug then
666          hr_utility.set_location(l_proc, 70);
667       end if;
668       --
669       -- Pass the following values to local options : effective_date,
670       -- group_pl_id
671       for opt in csr_grp_pl_local_options(p_pl_id, p_lf_evt_ocrd_dt)
672       loop
673          select object_version_number
674          into l_ovn
675          from ben_cwb_pl_dsgn
676          where pl_id = opt.pl_id
677          and   oipl_id = opt.oipl_id
678          and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
679          --
680          update_plan_or_option
681                (p_call_data_syncopation      => 'N'   -- no recursive calls
682                ,p_pl_id                      => opt.pl_id
683                ,p_oipl_id                    => opt.oipl_id
684                ,p_lf_evt_ocrd_dt             => p_lf_evt_ocrd_dt
685                ,p_effective_date             => p_effective_date
686                ,p_group_pl_id                => p_group_pl_id
687                ,p_object_version_number      => l_ovn);
688       end loop;
689       --
690       if g_debug then
691          hr_utility.set_location(l_proc, 80);
692       end if;
693       --
694    elsif (l_is_local_plan) then
695       --
696       if g_debug then
697          hr_utility.set_location(l_proc, 90);
698       end if;
699       --
700       -- Pass the following values to local option : effective_date,
701       -- group_pl_id, pl_uom, pl_ordr_num, pl_xchg_rate, business_group_id,
702       -- actual_flag, acty_ref_perd_cd, legislation_code,
703       -- pl_annulization_factor, pl_stat_cd, uom_precision
704       for oipl in csr_options(p_pl_id, p_lf_evt_ocrd_dt)
705       loop
706          select object_version_number
707          into l_ovn
708          from ben_cwb_pl_dsgn
709          where pl_id = p_pl_id
710          and   oipl_id = oipl.oipl_id
711          and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
712          --
713          update_plan_or_option
714                (p_call_data_syncopation      => 'N'   -- no recursive calls
715                ,p_pl_id                      => p_pl_id
716                ,p_oipl_id                    => oipl.oipl_id
717                ,p_lf_evt_ocrd_dt             => p_lf_evt_ocrd_dt
718                ,p_effective_date             => p_effective_date
719                ,p_group_pl_id                => p_group_pl_id
720                ,p_pl_uom                     => p_pl_uom
721                ,p_pl_ordr_num                => p_pl_ordr_num
722                ,p_pl_xchg_rate               => p_pl_xchg_rate
723                ,p_business_group_id          => p_business_group_id
724                ,p_actual_flag                => p_actual_flag
725                ,p_acty_ref_perd_cd           => p_acty_ref_perd_cd
726                ,p_legislation_code           => p_legislation_code
727                ,p_pl_annulization_factor     => p_pl_annulization_factor
728                ,p_pl_stat_cd                 => p_pl_stat_cd
729                ,p_uom_precision              => p_uom_precision
730                ,p_object_version_number      => l_ovn);
731       end loop;
732       --
733       if g_debug then
734          hr_utility.set_location(l_proc, 100);
735       end if;
736       --
737    elsif (l_is_group_option) then
738       --
739       if g_debug then
740          hr_utility.set_location(l_proc, 110);
741       end if;
742       --
743       -- Pass the following values to local option : effective_date,
744       -- group_pl_id, group_oipl_id, oipl_ordr_num
745       for opt in csr_grp_opt_local_options(p_pl_id
746                                           ,p_oipl_id
747                                           ,p_lf_evt_ocrd_dt)
751          from ben_cwb_pl_dsgn
748       loop
749          select object_version_number
750          into l_ovn
752          where pl_id = opt.pl_id
753          and   oipl_id = opt.oipl_id
754          and   lf_evt_ocrd_dt = p_lf_evt_ocrd_dt;
755          --
756          update_plan_or_option
757                (p_call_data_syncopation      => 'N'   -- no recursive calls
758                ,p_pl_id                      => opt.pl_id
759                ,p_oipl_id                    => opt.oipl_id
760                ,p_lf_evt_ocrd_dt             => p_lf_evt_ocrd_dt
761                ,p_effective_date             => p_effective_date
762                ,p_group_pl_id                => p_group_pl_id
763                ,p_group_oipl_id              => p_group_oipl_id
764                ,p_oipl_ordr_num              => p_oipl_ordr_num
765                ,p_object_version_number      => l_ovn);
766       end loop;
767       --
768       if g_debug then
769          hr_utility.set_location(l_proc, 120);
770       end if;
771       --
772    end if;
773    --
774    if g_debug then
775       hr_utility.set_location(' Leaving:'|| l_proc, 999);
776    end if;
777 end;
778 --
779 -- ----------------------------------------------------------------------------
780 -- |-------------------------< update_plan_or_option >------------------------|
781 -- ----------------------------------------------------------------------------
782 --
783 procedure update_plan_or_option
784   (p_validate                       in   boolean   default false
785   ,p_pl_id                          in   number
786   ,p_oipl_id                        in   number
787   ,p_lf_evt_ocrd_dt                 in   date
788   ,p_effective_date                 in   date      default hr_api.g_date
789   ,p_name                           in   varchar2  default hr_api.g_varchar2
790   ,p_group_pl_id                    in   number    default hr_api.g_number
791   ,p_group_oipl_id                  in   number    default hr_api.g_number
792   ,p_opt_hidden_flag                in   varchar2  default hr_api.g_varchar2
793   ,p_opt_id                         in   number    default hr_api.g_number
794   ,p_pl_uom                         in   varchar2  default hr_api.g_varchar2
795   ,p_pl_ordr_num                    in   number    default hr_api.g_number
796   ,p_oipl_ordr_num                  in   number    default hr_api.g_number
797   ,p_pl_xchg_rate                   in   number    default hr_api.g_number
798   ,p_opt_count                      in   number    default hr_api.g_number
799   ,p_uses_bdgt_flag                 in   varchar2  default hr_api.g_varchar2
800   ,p_prsrv_bdgt_cd                  in   varchar2  default hr_api.g_varchar2
801   ,p_upd_start_dt                   in   date      default hr_api.g_date
802   ,p_upd_end_dt                     in   date      default hr_api.g_date
803   ,p_approval_mode                  in   varchar2  default hr_api.g_varchar2
804   ,p_enrt_perd_start_dt             in   date      default hr_api.g_date
805   ,p_enrt_perd_end_dt               in   date      default hr_api.g_date
806   ,p_yr_perd_start_dt               in   date      default hr_api.g_date
807   ,p_yr_perd_end_dt                 in   date      default hr_api.g_date
808   ,p_wthn_yr_start_dt               in   date      default hr_api.g_date
809   ,p_wthn_yr_end_dt                 in   date      default hr_api.g_date
810   ,p_enrt_perd_id                   in   number    default hr_api.g_number
811   ,p_yr_perd_id                     in   number    default hr_api.g_number
812   ,p_business_group_id              in   number    default hr_api.g_number
813   ,p_perf_revw_strt_dt              in   date      default hr_api.g_date
814   ,p_asg_updt_eff_date              in   date      default hr_api.g_date
815   ,p_emp_interview_typ_cd           in   varchar2  default hr_api.g_varchar2
816   ,p_salary_change_reason           in   varchar2  default hr_api.g_varchar2
817   ,p_ws_abr_id                      in   number    default hr_api.g_number
818   ,p_ws_nnmntry_uom                 in   varchar2  default hr_api.g_varchar2
819   ,p_ws_rndg_cd                     in   varchar2  default hr_api.g_varchar2
820   ,p_ws_sub_acty_typ_cd             in   varchar2  default hr_api.g_varchar2
821   ,p_dist_bdgt_abr_id               in   number    default hr_api.g_number
822   ,p_dist_bdgt_nnmntry_uom          in   varchar2  default hr_api.g_varchar2
823   ,p_dist_bdgt_rndg_cd              in   varchar2  default hr_api.g_varchar2
824   ,p_ws_bdgt_abr_id                 in   number    default hr_api.g_number
825   ,p_ws_bdgt_nnmntry_uom            in   varchar2  default hr_api.g_varchar2
826   ,p_ws_bdgt_rndg_cd                in   varchar2  default hr_api.g_varchar2
827   ,p_rsrv_abr_id                    in   number    default hr_api.g_number
828   ,p_rsrv_nnmntry_uom               in   varchar2  default hr_api.g_varchar2
829   ,p_rsrv_rndg_cd                   in   varchar2  default hr_api.g_varchar2
830   ,p_elig_sal_abr_id                in   number    default hr_api.g_number
831   ,p_elig_sal_nnmntry_uom           in   varchar2  default hr_api.g_varchar2
832   ,p_elig_sal_rndg_cd               in   varchar2  default hr_api.g_varchar2
833   ,p_misc1_abr_id                   in   number    default hr_api.g_number
834   ,p_misc1_nnmntry_uom              in   varchar2  default hr_api.g_varchar2
835   ,p_misc1_rndg_cd                  in   varchar2  default hr_api.g_varchar2
836   ,p_misc2_abr_id                   in   number    default hr_api.g_number
837   ,p_misc2_nnmntry_uom              in   varchar2  default hr_api.g_varchar2
838   ,p_misc2_rndg_cd                  in   varchar2  default hr_api.g_varchar2
839   ,p_misc3_abr_id                   in   number    default hr_api.g_number
840   ,p_misc3_nnmntry_uom              in   varchar2  default hr_api.g_varchar2
841   ,p_misc3_rndg_cd                  in   varchar2  default hr_api.g_varchar2
842   ,p_stat_sal_abr_id                in   number    default hr_api.g_number
843   ,p_stat_sal_nnmntry_uom           in   varchar2  default hr_api.g_varchar2
847   ,p_rec_rndg_cd                    in   varchar2  default hr_api.g_varchar2
844   ,p_stat_sal_rndg_cd               in   varchar2  default hr_api.g_varchar2
845   ,p_rec_abr_id                     in   number    default hr_api.g_number
846   ,p_rec_nnmntry_uom                in   varchar2  default hr_api.g_varchar2
848   ,p_tot_comp_abr_id                in   number    default hr_api.g_number
849   ,p_tot_comp_nnmntry_uom           in   varchar2  default hr_api.g_varchar2
850   ,p_tot_comp_rndg_cd               in   varchar2  default hr_api.g_varchar2
851   ,p_oth_comp_abr_id                in   number    default hr_api.g_number
852   ,p_oth_comp_nnmntry_uom           in   varchar2  default hr_api.g_varchar2
853   ,p_oth_comp_rndg_cd               in   varchar2  default hr_api.g_varchar2
854   ,p_actual_flag                    in   varchar2  default hr_api.g_varchar2
855   ,p_acty_ref_perd_cd               in   varchar2  default hr_api.g_varchar2
856   ,p_legislation_code               in   varchar2  default hr_api.g_varchar2
857   ,p_pl_annulization_factor         in   number    default hr_api.g_number
858   ,p_pl_stat_cd                     in   varchar2  default hr_api.g_varchar2
859   ,p_uom_precision                  in   number    default hr_api.g_number
860   ,p_ws_element_type_id             in   number    default hr_api.g_number
861   ,p_ws_input_value_id              in   number    default hr_api.g_number
862   ,p_data_freeze_date               in   date      default hr_api.g_date
863   ,p_ws_amt_edit_cd                 in   varchar2  default hr_api.g_varchar2
864   ,p_ws_amt_edit_enf_cd_for_nul     in   varchar2  default hr_api.g_varchar2
865   ,p_ws_over_budget_edit_cd         in   varchar2  default hr_api.g_varchar2
866   ,p_ws_over_budget_tol_pct         in   number    default hr_api.g_number
867   ,p_bdgt_over_budget_edit_cd       in   varchar2  default hr_api.g_varchar2
868   ,p_bdgt_over_budget_tol_pct       in   number    default hr_api.g_number
869   ,p_auto_distr_flag                in   varchar2  default hr_api.g_varchar2
870   ,p_pqh_document_short_name        in   varchar2  default hr_api.g_varchar2
871   ,p_call_data_syncopation          in   varchar2  default 'Y'
872   ,p_ovrid_rt_strt_dt               in   date      default hr_api.g_date
873   ,p_do_not_process_flag            in   varchar2  default 'N'
874   ,p_ovr_perf_revw_strt_dt          in   date      default hr_api.g_date
875   ,p_object_version_number          in out nocopy    number
876   ) is
877   --
878   -- Declare cursors and local variables
879   --
880   l_object_version_number    number;
881   --
882   l_proc                varchar2(72) := g_package||'update_plan_or_option';
883 begin
884   if g_debug then
885      hr_utility.set_location('Entering:'|| l_proc, 10);
886   end if;
887   --
888   -- Issue a savepoint
889   --
890   savepoint update_plan_or_option;
891   --
892   -- Remember IN OUT parameter IN values
893   --
894   l_object_version_number := p_object_version_number;
895   --
896   -- Call Before Process User Hook
897   --
898   begin
899     ben_cwb_pl_dsgn_bk2.update_plan_or_option_b
900         (p_pl_id                          => p_pl_id
901         ,p_oipl_id                        => p_oipl_id
902         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
903         ,p_effective_date                 => p_effective_date
904         ,p_name                           => p_name
905         ,p_group_pl_id                    => p_group_pl_id
906         ,p_group_oipl_id                  => p_group_oipl_id
907         ,p_opt_hidden_flag                => p_opt_hidden_flag
908         ,p_opt_id                         => p_opt_id
909         ,p_pl_uom                         => p_pl_uom
910         ,p_pl_ordr_num                    => p_pl_ordr_num
911         ,p_oipl_ordr_num                  => p_oipl_ordr_num
912         ,p_pl_xchg_rate                   => p_pl_xchg_rate
913         ,p_opt_count                      => p_opt_count
914         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
915         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
916         ,p_upd_start_dt                   => p_upd_start_dt
917         ,p_upd_end_dt                     => p_upd_end_dt
918         ,p_approval_mode                  => p_approval_mode
919         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
920         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
921         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
922         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
923         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
924         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
925         ,p_enrt_perd_id                   => p_enrt_perd_id
926         ,p_yr_perd_id                     => p_yr_perd_id
927         ,p_business_group_id              => p_business_group_id
928         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
929         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
930         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
931         ,p_salary_change_reason           => p_salary_change_reason
932         ,p_ws_abr_id                      => p_ws_abr_id
933         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
934         ,p_ws_rndg_cd                     => p_ws_rndg_cd
935         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
936         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
937         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
938         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
939         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
940         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
941         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
942         ,p_rsrv_abr_id                    => p_rsrv_abr_id
943         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
944         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
945         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
949         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
946         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
947         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
948         ,p_misc1_abr_id                   => p_misc1_abr_id
950         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
951         ,p_misc2_abr_id                   => p_misc2_abr_id
952         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
953         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
954         ,p_misc3_abr_id                   => p_misc3_abr_id
955         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
956         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
957         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
958         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
959         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
960         ,p_rec_abr_id                     => p_rec_abr_id
961         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
962         ,p_rec_rndg_cd                    => p_rec_rndg_cd
963         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
964         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
965         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
966         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
967         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
968         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
969         ,p_actual_flag                    => p_actual_flag
970         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
971         ,p_legislation_code               => p_legislation_code
972         ,p_pl_annulization_factor         => p_pl_annulization_factor
973         ,p_pl_stat_cd                     => p_pl_stat_cd
974         ,p_uom_precision                  => p_uom_precision
975         ,p_ws_element_type_id             => p_ws_element_type_id
976         ,p_ws_input_value_id              => p_ws_input_value_id
977         ,p_data_freeze_date               => p_data_freeze_date
978         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
979         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
980         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
981         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
982         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
983         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
984         ,p_auto_distr_flag                => p_auto_distr_flag
985         ,p_pqh_document_short_name        => p_pqh_document_short_name
986         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
987         ,p_do_not_process_flag            => p_do_not_process_flag
988 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
989         ,p_object_version_number          => l_object_version_number
990         );
991   exception
992     when hr_api.cannot_find_prog_unit then
993       hr_api.cannot_find_prog_unit_error
994         (p_module_name => 'update_plan_or_option'
995         ,p_hook_type   => 'BP'
996         );
997   end;
998   --
999   -- Validation in addition to Row Handlers
1000   --
1001   --
1002   -- Process Logic
1003   --
1004   ben_cpd_upd.upd
1005         (p_pl_id                          => p_pl_id
1006         ,p_oipl_id                        => p_oipl_id
1007         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
1008         ,p_effective_date                 => p_effective_date
1009         ,p_name                           => p_name
1010         ,p_group_pl_id                    => p_group_pl_id
1011         ,p_group_oipl_id                  => p_group_oipl_id
1012         ,p_opt_hidden_flag                => p_opt_hidden_flag
1013         ,p_opt_id                         => p_opt_id
1014         ,p_pl_uom                         => p_pl_uom
1015         ,p_pl_ordr_num                    => p_pl_ordr_num
1016         ,p_oipl_ordr_num                  => p_oipl_ordr_num
1017         ,p_pl_xchg_rate                   => p_pl_xchg_rate
1018         ,p_opt_count                      => p_opt_count
1019         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
1020         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
1021         ,p_upd_start_dt                   => p_upd_start_dt
1022         ,p_upd_end_dt                     => p_upd_end_dt
1023         ,p_approval_mode                  => p_approval_mode
1024         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
1025         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
1026         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
1027         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
1028         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
1029         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
1030         ,p_enrt_perd_id                   => p_enrt_perd_id
1031         ,p_yr_perd_id                     => p_yr_perd_id
1032         ,p_business_group_id              => p_business_group_id
1033         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
1034         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
1035         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
1036         ,p_salary_change_reason           => p_salary_change_reason
1037         ,p_ws_abr_id                      => p_ws_abr_id
1038         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
1039         ,p_ws_rndg_cd                     => p_ws_rndg_cd
1040         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
1041         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
1042         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
1043         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
1044         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
1045         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
1046         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
1050         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
1047         ,p_rsrv_abr_id                    => p_rsrv_abr_id
1048         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
1049         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
1051         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
1052         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
1053         ,p_misc1_abr_id                   => p_misc1_abr_id
1054         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
1055         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
1056         ,p_misc2_abr_id                   => p_misc2_abr_id
1057         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
1058         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
1059         ,p_misc3_abr_id                   => p_misc3_abr_id
1060         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
1061         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
1062         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
1063         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
1064         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
1065         ,p_rec_abr_id                     => p_rec_abr_id
1066         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
1067         ,p_rec_rndg_cd                    => p_rec_rndg_cd
1068         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
1069         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
1070         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
1071         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
1072         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
1073         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
1074         ,p_actual_flag                    => p_actual_flag
1075         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
1076         ,p_legislation_code               => p_legislation_code
1077         ,p_pl_annulization_factor         => p_pl_annulization_factor
1078         ,p_pl_stat_cd                     => p_pl_stat_cd
1079         ,p_uom_precision                  => p_uom_precision
1080         ,p_ws_element_type_id             => p_ws_element_type_id
1081         ,p_ws_input_value_id              => p_ws_input_value_id
1082         ,p_data_freeze_date               => p_data_freeze_date
1083         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
1084         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
1085         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
1086         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
1087         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
1088         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
1089         ,p_auto_distr_flag                => p_auto_distr_flag
1090         ,p_pqh_document_short_name        => p_pqh_document_short_name
1091         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
1092         ,p_do_not_process_flag            => p_do_not_process_flag
1093 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
1094         ,p_object_version_number          => l_object_version_number
1095         );
1096   --
1097   -- Call After Process User Hook
1098   --
1099   begin
1100     ben_cwb_pl_dsgn_bk2.update_plan_or_option_a
1101         (p_pl_id                          => p_pl_id
1102         ,p_oipl_id                        => p_oipl_id
1103         ,p_lf_evt_ocrd_dt                 => p_lf_evt_ocrd_dt
1104         ,p_effective_date                 => p_effective_date
1105         ,p_name                           => p_name
1106         ,p_group_pl_id                    => p_group_pl_id
1107         ,p_group_oipl_id                  => p_group_oipl_id
1108         ,p_opt_hidden_flag                => p_opt_hidden_flag
1109         ,p_opt_id                         => p_opt_id
1110         ,p_pl_uom                         => p_pl_uom
1111         ,p_pl_ordr_num                    => p_pl_ordr_num
1112         ,p_oipl_ordr_num                  => p_oipl_ordr_num
1113         ,p_pl_xchg_rate                   => p_pl_xchg_rate
1114         ,p_opt_count                      => p_opt_count
1115         ,p_uses_bdgt_flag                 => p_uses_bdgt_flag
1116         ,p_prsrv_bdgt_cd                  => p_prsrv_bdgt_cd
1117         ,p_upd_start_dt                   => p_upd_start_dt
1118         ,p_upd_end_dt                     => p_upd_end_dt
1119         ,p_approval_mode                  => p_approval_mode
1120         ,p_enrt_perd_start_dt             => p_enrt_perd_start_dt
1121         ,p_enrt_perd_end_dt               => p_enrt_perd_end_dt
1122         ,p_yr_perd_start_dt               => p_yr_perd_start_dt
1123         ,p_yr_perd_end_dt                 => p_yr_perd_end_dt
1124         ,p_wthn_yr_start_dt               => p_wthn_yr_start_dt
1125         ,p_wthn_yr_end_dt                 => p_wthn_yr_end_dt
1126         ,p_enrt_perd_id                   => p_enrt_perd_id
1127         ,p_yr_perd_id                     => p_yr_perd_id
1128         ,p_business_group_id              => p_business_group_id
1129         ,p_perf_revw_strt_dt              => p_perf_revw_strt_dt
1130         ,p_asg_updt_eff_date              => p_asg_updt_eff_date
1131         ,p_emp_interview_typ_cd           => p_emp_interview_typ_cd
1132         ,p_salary_change_reason           => p_salary_change_reason
1133         ,p_ws_abr_id                      => p_ws_abr_id
1134         ,p_ws_nnmntry_uom                 => p_ws_nnmntry_uom
1135         ,p_ws_rndg_cd                     => p_ws_rndg_cd
1136         ,p_ws_sub_acty_typ_cd             => p_ws_sub_acty_typ_cd
1137         ,p_dist_bdgt_abr_id               => p_dist_bdgt_abr_id
1138         ,p_dist_bdgt_nnmntry_uom          => p_dist_bdgt_nnmntry_uom
1139         ,p_dist_bdgt_rndg_cd              => p_dist_bdgt_rndg_cd
1140         ,p_ws_bdgt_abr_id                 => p_ws_bdgt_abr_id
1141         ,p_ws_bdgt_nnmntry_uom            => p_ws_bdgt_nnmntry_uom
1142         ,p_ws_bdgt_rndg_cd                => p_ws_bdgt_rndg_cd
1143         ,p_rsrv_abr_id                    => p_rsrv_abr_id
1147         ,p_elig_sal_nnmntry_uom           => p_elig_sal_nnmntry_uom
1144         ,p_rsrv_nnmntry_uom               => p_rsrv_nnmntry_uom
1145         ,p_rsrv_rndg_cd                   => p_rsrv_rndg_cd
1146         ,p_elig_sal_abr_id                => p_elig_sal_abr_id
1148         ,p_elig_sal_rndg_cd               => p_elig_sal_rndg_cd
1149         ,p_misc1_abr_id                   => p_misc1_abr_id
1150         ,p_misc1_nnmntry_uom              => p_misc1_nnmntry_uom
1151         ,p_misc1_rndg_cd                  => p_misc1_rndg_cd
1152         ,p_misc2_abr_id                   => p_misc2_abr_id
1153         ,p_misc2_nnmntry_uom              => p_misc2_nnmntry_uom
1154         ,p_misc2_rndg_cd                  => p_misc2_rndg_cd
1155         ,p_misc3_abr_id                   => p_misc3_abr_id
1156         ,p_misc3_nnmntry_uom              => p_misc3_nnmntry_uom
1157         ,p_misc3_rndg_cd                  => p_misc3_rndg_cd
1158         ,p_stat_sal_abr_id                => p_stat_sal_abr_id
1159         ,p_stat_sal_nnmntry_uom           => p_stat_sal_nnmntry_uom
1160         ,p_stat_sal_rndg_cd               => p_stat_sal_rndg_cd
1161         ,p_rec_abr_id                     => p_rec_abr_id
1162         ,p_rec_nnmntry_uom                => p_rec_nnmntry_uom
1163         ,p_rec_rndg_cd                    => p_rec_rndg_cd
1164         ,p_tot_comp_abr_id                => p_tot_comp_abr_id
1165         ,p_tot_comp_nnmntry_uom           => p_tot_comp_nnmntry_uom
1166         ,p_tot_comp_rndg_cd               => p_tot_comp_rndg_cd
1167         ,p_oth_comp_abr_id                => p_oth_comp_abr_id
1168         ,p_oth_comp_nnmntry_uom           => p_oth_comp_nnmntry_uom
1169         ,p_oth_comp_rndg_cd               => p_oth_comp_rndg_cd
1170         ,p_actual_flag                    => p_actual_flag
1171         ,p_acty_ref_perd_cd               => p_acty_ref_perd_cd
1172         ,p_legislation_code               => p_legislation_code
1173         ,p_pl_annulization_factor         => p_pl_annulization_factor
1174         ,p_pl_stat_cd                     => p_pl_stat_cd
1175         ,p_uom_precision                  => p_uom_precision
1176         ,p_ws_element_type_id             => p_ws_element_type_id
1177         ,p_ws_input_value_id              => p_ws_input_value_id
1178         ,p_data_freeze_date               => p_data_freeze_date
1179         ,p_ws_amt_edit_cd                 => p_ws_amt_edit_cd
1180         ,p_ws_amt_edit_enf_cd_for_nul     => p_ws_amt_edit_enf_cd_for_nul
1181         ,p_ws_over_budget_edit_cd         => p_ws_over_budget_edit_cd
1182         ,p_ws_over_budget_tol_pct         => p_ws_over_budget_tol_pct
1183         ,p_bdgt_over_budget_edit_cd       => p_bdgt_over_budget_edit_cd
1184         ,p_bdgt_over_budget_tol_pct       => p_bdgt_over_budget_tol_pct
1185         ,p_auto_distr_flag                => p_auto_distr_flag
1186         ,p_pqh_document_short_name        => p_pqh_document_short_name
1187         ,p_ovrid_rt_strt_dt               => p_ovrid_rt_strt_dt
1188         ,p_do_not_process_flag            => p_do_not_process_flag
1189 	,p_ovr_perf_revw_strt_dt          => p_ovr_perf_revw_strt_dt
1190         ,p_object_version_number          => l_object_version_number
1191         );
1192   exception
1193     when hr_api.cannot_find_prog_unit then
1194       hr_api.cannot_find_prog_unit_error
1195         (p_module_name => 'update_plan_or_option'
1196         ,p_hook_type   => 'AP'
1197         );
1198   end;
1199   -- call the data_syncopation procedure
1200   if (p_call_data_syncopation = 'Y') then
1201     data_syncopation(p_pl_id                  =>    p_pl_id
1202                     ,p_oipl_id                =>    p_oipl_id
1203                     ,p_lf_evt_ocrd_dt         =>    p_lf_evt_ocrd_dt
1204                     ,p_effective_date         =>    p_effective_date
1205                     ,p_group_pl_id            =>    p_group_pl_id
1206                     ,p_group_oipl_id          =>    p_group_oipl_id
1207                     ,p_pl_uom                 =>    p_pl_uom
1208                     ,p_pl_ordr_num            =>    p_pl_ordr_num
1209                     ,p_oipl_ordr_num          =>    p_oipl_ordr_num
1210                     ,p_pl_xchg_rate           =>    p_pl_xchg_rate
1211                     ,p_upd_start_dt           =>    p_upd_start_dt
1212                     ,p_upd_end_dt             =>    p_upd_end_dt
1213                     ,p_approval_mode          =>    p_approval_mode
1214                     ,p_enrt_perd_start_dt     =>    p_enrt_perd_start_dt
1215                     ,p_enrt_perd_end_dt       =>    p_enrt_perd_end_dt
1216                     ,p_yr_perd_start_dt       =>    p_yr_perd_start_dt
1217                     ,p_yr_perd_end_dt         =>    p_yr_perd_end_dt
1218                     ,p_wthn_yr_start_dt       =>    p_wthn_yr_start_dt
1219                     ,p_wthn_yr_end_dt         =>    p_wthn_yr_end_dt
1220                     ,p_business_group_id      =>    p_business_group_id
1221                     ,p_perf_revw_strt_dt      =>    p_perf_revw_strt_dt
1222                     ,p_asg_updt_eff_date      =>    p_asg_updt_eff_date
1223                     ,p_emp_interview_typ_cd   =>    p_emp_interview_typ_cd
1224                     ,p_salary_change_reason   =>    p_salary_change_reason
1225                     ,p_actual_flag            =>    p_actual_flag
1226                     ,p_acty_ref_perd_cd       =>    p_acty_ref_perd_cd
1227                     ,p_legislation_code       =>    p_legislation_code
1228                     ,p_pl_annulization_factor =>    p_pl_annulization_factor
1229                     ,p_pl_stat_cd             =>    p_pl_stat_cd
1230                     ,p_uom_precision          =>    p_uom_precision
1231                     ,p_data_freeze_date       =>    p_data_freeze_date);
1232    end if;
1233 
1234   --
1235   -- When in validation only mode raise the Validate_Enabled exception
1236   --
1237   if p_validate then
1238     raise hr_api.validate_enabled;
1239   end if;
1240   --
1241   -- Set all IN OUT and OUT parameters with out values
1242   --
1243   p_object_version_number  := l_object_version_number;
1244   --
1245   if g_debug then
1246      hr_utility.set_location(' Leaving:'||l_proc, 80);
1247   end if;
1248 exception
1249   when hr_api.validate_enabled then
1250     --
1251     -- As the Validate_Enabled exception has been raised
1252     -- we must rollback to the savepoint
1253     --
1254     rollback to update_plan_or_option;
1255     --
1256     -- Reset IN OUT parameters and set OUT parameters
1257     -- (Any key or derived arguments must be set to null
1258     -- when validation only mode is being used.)
1259     --
1260     if g_debug then
1261        hr_utility.set_location(' Leaving:'||l_proc, 90);
1262     end if;
1263   when others then
1264     --
1265     -- A validation or unexpected error has occured
1266     --
1267     rollback to update_plan_or_option;
1268     --
1269     -- Reset IN OUT parameters and set all
1270     -- OUT parameters, including warnings, to null
1271     --
1272     if g_debug then
1273        hr_utility.set_location(' Leaving:'||l_proc, 99);
1274     end if;
1275     raise;
1276 end update_plan_or_option;
1277 --
1278 --
1279 -- ----------------------------------------------------------------------------
1280 -- |------------------------< delete_plan_or_option >-------------------------|
1281 -- ----------------------------------------------------------------------------
1282 --
1283 procedure delete_plan_or_option
1284   (p_validate                     in     boolean  default false
1285   ,p_pl_id                        in     number
1286   ,p_oipl_id                      in     number
1287   ,p_lf_evt_ocrd_dt               in     date
1288   ,p_object_version_number        in     number
1289   ) is
1290   --
1291   -- Declare cursors and local variables
1292   --
1293   l_object_version_number number;
1294   l_proc                varchar2(72) := g_package||'delete_plan_or_option';
1295 begin
1296   if g_debug then
1297      hr_utility.set_location('Entering:'|| l_proc, 10);
1298   end if;
1299   --
1300   -- Issue a savepoint
1301   --
1302   savepoint delete_plan_or_option;
1303   --
1304   -- Remember IN OUT parameter IN values
1305   --
1306   --
1307   l_object_version_number := p_object_version_number;
1308   --
1309   -- Call Before Process User Hook
1310   --
1311   begin
1312     BEN_CWB_PL_DSGN_BK3.delete_plan_or_option_b
1313         (p_pl_id                   =>   p_pl_id
1314         ,p_oipl_id                 =>   p_oipl_id
1315         ,p_lf_evt_ocrd_dt          =>   p_lf_evt_ocrd_dt
1316         ,p_object_version_number   =>   l_object_version_number
1317         );
1318   exception
1319     when hr_api.cannot_find_prog_unit then
1320       hr_api.cannot_find_prog_unit_error
1321         (p_module_name => 'delete_plan_or_option'
1322         ,p_hook_type   => 'BP'
1323         );
1324   end;
1325   --
1326   -- Validation in addition to Row Handlers
1327   --
1328 
1329   --
1330   -- Process Logic
1331   --
1332   ben_cpd_del.del
1333         (p_pl_id                   =>   p_pl_id
1334         ,p_oipl_id                 =>   p_oipl_id
1335         ,p_lf_evt_ocrd_dt          =>   p_lf_evt_ocrd_dt
1336         ,p_object_version_number   =>   l_object_version_number
1337       );
1338   --
1339   -- Call After Process User Hook
1340   --
1341   begin
1342     ben_cwb_pl_dsgn_bk3.delete_plan_or_option_a
1343         (p_pl_id                   =>   p_pl_id
1344         ,p_oipl_id                 =>   p_oipl_id
1345         ,p_lf_evt_ocrd_dt          =>   p_lf_evt_ocrd_dt
1346         ,p_object_version_number   =>   l_object_version_number
1347         );
1348   exception
1349     when hr_api.cannot_find_prog_unit then
1350       hr_api.cannot_find_prog_unit_error
1351         (p_module_name => 'delete_plan_or_option'
1352         ,p_hook_type   => 'AP'
1353         );
1354   end;
1355   --
1356   -- When in validation only mode raise the Validate_Enabled exception
1357   --
1358   if p_validate then
1359     raise hr_api.validate_enabled;
1360   end if;
1361   --
1362   if g_debug then
1363      hr_utility.set_location(' Leaving:'||l_proc, 70);
1364   end if;
1365 exception
1366   when hr_api.validate_enabled then
1367     --
1368     -- As the Validate_Enabled exception has been raised
1369     -- we must rollback to the savepoint
1370     --
1371     rollback to delete_plan_or_option;
1372     --
1373     if g_debug then
1374        hr_utility.set_location(' Leaving:'||l_proc, 80);
1375     end if;
1376   when others then
1377     --
1378     -- A validation or unexpected error has occured
1379     --
1380     rollback to delete_plan_or_option;
1381     --
1382     -- Reset IN OUT parameters and set all
1383     -- OUT parameters, including warnings, to null
1384     --
1385     if g_debug then
1386        hr_utility.set_location(' Leaving:'||l_proc, 90);
1387     end if;
1388     raise;
1389 end delete_plan_or_option;
1390 --
1391 end ben_cwb_pl_dsgn_api;