DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_PGM_UPD

Source


1 Package Body ben_pgm_upd as
2 /* $Header: bepgmrhi.pkb 120.1.12020000.2 2012/07/03 13:10:53 amnaraya ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ben_pgm_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_update_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the execution of dml from the datetrack mode
17 --   of CORRECTION only. It is important to note that the object version
18 --   number is only increment by 1 because the datetrack correction is
19 --   soley for one datetracked row.
20 --   This procedure controls the actual dml update logic. The functions of this
21 --   procedure are as follows:
22 --   1) Get the next object_version_number.
23 --   2) To set and unset the g_api_dml status as required (as we are about to
24 --      perform dml).
25 --   3) To update the specified row in the schema using the primary key in
26 --      the predicates.
27 --   4) To trap any constraint violations that may have occurred.
28 --   5) To raise any other errors.
29 --
30 -- Prerequisites:
31 --   This is an internal private procedure which must be called from the
32 --   update_dml procedure.
33 --
34 -- In Parameters:
35 --   A Pl/Sql record structre.
36 --
37 -- Post Success:
38 --   The specified row will be updated in the schema.
39 --
40 -- Post Failure:
41 --   On the update dml failure it is important to note that we always reset the
42 --   g_api_dml status to false.
43 --   If a check or unique integrity constraint violation is raised the
44 --   constraint_error procedure will be called.
45 --   If any other error is reported, the error will be raised after the
46 --   g_api_dml status is reset.
47 --
48 -- Developer Implementation Notes:
49 --   The update 'set' arguments list should be modified if any of your
50 --   attributes are not updateable.
51 --
52 -- Access Status:
53 --   Internal Row Handler Use Only.
54 --
55 -- {End Of Comments}
56 -- ----------------------------------------------------------------------------
57 Procedure dt_update_dml
58         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
59          p_effective_date        in     date,
60          p_datetrack_mode        in     varchar2,
61          p_validation_start_date in     date,
62          p_validation_end_date   in     date) is
63 --
64   l_proc        varchar2(72) := g_package||'dt_update_dml';
65 --
66 Begin
67   hr_utility.set_location('Entering:'||l_proc, 5);
68   --
69   If (p_datetrack_mode = 'CORRECTION') then
70     hr_utility.set_location(l_proc, 10);
71     --
72     -- Because we are updating a row we must get the next object
73     -- version number.
74     --
75     p_rec.object_version_number :=
76       dt_api.get_object_version_number
77           (p_base_table_name    => 'ben_pgm_f',
78            p_base_key_column    => 'pgm_id',
79            p_base_key_value     => p_rec.pgm_id);
80     --
81     ben_pgm_shd.g_api_dml := true;  -- Set the api dml status
82     --
83     -- Update the ben_pgm_f Row
84     --
85     update  ben_pgm_f
86     set
87     pgm_id                          = p_rec.pgm_id,
88     name                            = p_rec.name,
89     dpnt_adrs_rqd_flag              = p_rec.dpnt_adrs_rqd_flag,
90     pgm_prvds_no_auto_enrt_flag     = p_rec.pgm_prvds_no_auto_enrt_flag,
91     dpnt_dob_rqd_flag               = p_rec.dpnt_dob_rqd_flag,
92     pgm_prvds_no_dflt_enrt_flag     = p_rec.pgm_prvds_no_dflt_enrt_flag,
93     dpnt_legv_id_rqd_flag           = p_rec.dpnt_legv_id_rqd_flag,
94     dpnt_dsgn_lvl_cd                = p_rec.dpnt_dsgn_lvl_cd,
95     pgm_stat_cd                     = p_rec.pgm_stat_cd,
96     ivr_ident                       = p_rec.ivr_ident,
97     pgm_typ_cd                      = p_rec.pgm_typ_cd,
98     elig_apls_flag                  = p_rec.elig_apls_flag,
99     uses_all_asmts_for_rts_flag     = p_rec.uses_all_asmts_for_rts_flag,
100     url_ref_name                    = p_rec.url_ref_name,
101     pgm_desc                        = p_rec.pgm_desc,
102     prtn_elig_ovrid_alwd_flag       = p_rec.prtn_elig_ovrid_alwd_flag,
103     pgm_use_all_asnts_elig_flag     = p_rec.pgm_use_all_asnts_elig_flag,
104     dpnt_dsgn_cd                    = p_rec.dpnt_dsgn_cd,
105     mx_dpnt_pct_prtt_lf_amt         = p_rec.mx_dpnt_pct_prtt_lf_amt,
106     mx_sps_pct_prtt_lf_amt          = p_rec.mx_sps_pct_prtt_lf_amt,
107     acty_ref_perd_cd                = p_rec.acty_ref_perd_cd,
108     coord_cvg_for_all_pls_flg       = p_rec.coord_cvg_for_all_pls_flg,
109     enrt_cvg_end_dt_cd              = p_rec.enrt_cvg_end_dt_cd,
110     enrt_cvg_end_dt_rl              = p_rec.enrt_cvg_end_dt_rl,
111     dpnt_cvg_end_dt_cd              = p_rec.dpnt_cvg_end_dt_cd,
112     dpnt_cvg_end_dt_rl              = p_rec.dpnt_cvg_end_dt_rl,
113     dpnt_cvg_strt_dt_cd             = p_rec.dpnt_cvg_strt_dt_cd,
114     dpnt_cvg_strt_dt_rl             = p_rec.dpnt_cvg_strt_dt_rl,
115     dpnt_dsgn_no_ctfn_rqd_flag      = p_rec.dpnt_dsgn_no_ctfn_rqd_flag,
116     drvbl_fctr_dpnt_elig_flag       = p_rec.drvbl_fctr_dpnt_elig_flag,
117     drvbl_fctr_prtn_elig_flag       = p_rec.drvbl_fctr_prtn_elig_flag,
118     enrt_cvg_strt_dt_cd             = p_rec.enrt_cvg_strt_dt_cd,
119     enrt_cvg_strt_dt_rl             = p_rec.enrt_cvg_strt_dt_rl,
120     enrt_info_rt_freq_cd            = p_rec.enrt_info_rt_freq_cd,
121     rt_strt_dt_cd                   = p_rec.rt_strt_dt_cd,
122     rt_strt_dt_rl                   = p_rec.rt_strt_dt_rl,
123     rt_end_dt_cd                    = p_rec.rt_end_dt_cd,
124     rt_end_dt_rl                    = p_rec.rt_end_dt_rl,
125     pgm_grp_cd                      = p_rec.pgm_grp_cd,
126     pgm_uom                         = p_rec.pgm_uom,
127     drvbl_fctr_apls_rts_flag        = p_rec.drvbl_fctr_apls_rts_flag,
128     alws_unrstrctd_enrt_flag        = p_rec.alws_unrstrctd_enrt_flag,
129     enrt_cd                         = p_rec.enrt_cd,
130     enrt_mthd_cd                    = p_rec.enrt_mthd_cd,
131     poe_lvl_cd                      = p_rec.poe_lvl_cd,
132     enrt_rl                         = p_rec.enrt_rl,
133     auto_enrt_mthd_rl               = p_rec.auto_enrt_mthd_rl,
134     trk_inelig_per_flag             = p_rec.trk_inelig_per_flag,
135     business_group_id               = p_rec.business_group_id,
136     per_cvrd_cd                     = p_rec.per_cvrd_cd ,
137     vrfy_fmly_mmbr_rl               = p_rec.vrfy_fmly_mmbr_rl  ,
138     vrfy_fmly_mmbr_cd               = p_rec.vrfy_fmly_mmbr_cd,
139     short_name			    = p_rec.short_name,		/*FHR*/
140     short_code			    = p_rec.short_code,  	/*FHR*/
141         legislation_code			    = p_rec.legislation_code,  	/*FHR*/
142         legislation_subgroup			    = p_rec.legislation_subgroup,  	/*FHR*/
143     Dflt_pgm_flag                   = p_rec.Dflt_pgm_flag,
144     Use_prog_points_flag            = p_rec.Use_prog_points_flag,
145     Dflt_step_cd                    = p_rec.Dflt_step_cd,
146     Dflt_step_rl                    = p_rec.Dflt_step_rl,
147     Update_salary_cd                = p_rec.Update_salary_cd,
148     Use_multi_pay_rates_flag         = p_rec.Use_multi_pay_rates_flag,
149     dflt_element_type_id            = p_rec.dflt_element_type_id,
150     Dflt_input_value_id             = p_rec.Dflt_input_value_id,
151     Use_scores_cd                   = p_rec.Use_scores_cd,
152     Scores_calc_mthd_cd             = p_rec.Scores_calc_mthd_cd,
153     Scores_calc_rl                  = p_rec.Scores_calc_rl,
154     gsp_allow_override_flag          = p_rec.gsp_allow_override_flag,
155     use_variable_rates_flag          = p_rec.use_variable_rates_flag,
156     salary_calc_mthd_cd          = p_rec.salary_calc_mthd_cd,
157     salary_calc_mthd_rl          = p_rec.salary_calc_mthd_rl,
158     susp_if_dpnt_ssn_nt_prv_cd   = p_rec.susp_if_dpnt_ssn_nt_prv_cd,
159     susp_if_dpnt_dob_nt_prv_cd   = p_rec.susp_if_dpnt_dob_nt_prv_cd,
160     susp_if_dpnt_adr_nt_prv_cd   = p_rec.susp_if_dpnt_adr_nt_prv_cd,
161     susp_if_ctfn_not_dpnt_flag   = p_rec.susp_if_ctfn_not_dpnt_flag,
162     dpnt_ctfn_determine_cd       = p_rec.dpnt_ctfn_determine_cd,
163     pgm_attribute_category          = p_rec.pgm_attribute_category,
164     pgm_attribute1                  = p_rec.pgm_attribute1,
165     pgm_attribute2                  = p_rec.pgm_attribute2,
166     pgm_attribute3                  = p_rec.pgm_attribute3,
167     pgm_attribute4                  = p_rec.pgm_attribute4,
168     pgm_attribute5                  = p_rec.pgm_attribute5,
169     pgm_attribute6                  = p_rec.pgm_attribute6,
170     pgm_attribute7                  = p_rec.pgm_attribute7,
171     pgm_attribute8                  = p_rec.pgm_attribute8,
172     pgm_attribute9                  = p_rec.pgm_attribute9,
173     pgm_attribute10                 = p_rec.pgm_attribute10,
174     pgm_attribute11                 = p_rec.pgm_attribute11,
175     pgm_attribute12                 = p_rec.pgm_attribute12,
176     pgm_attribute13                 = p_rec.pgm_attribute13,
177     pgm_attribute14                 = p_rec.pgm_attribute14,
178     pgm_attribute15                 = p_rec.pgm_attribute15,
179     pgm_attribute16                 = p_rec.pgm_attribute16,
180     pgm_attribute17                 = p_rec.pgm_attribute17,
181     pgm_attribute18                 = p_rec.pgm_attribute18,
182     pgm_attribute19                 = p_rec.pgm_attribute19,
183     pgm_attribute20                 = p_rec.pgm_attribute20,
184     pgm_attribute21                 = p_rec.pgm_attribute21,
185     pgm_attribute22                 = p_rec.pgm_attribute22,
186     pgm_attribute23                 = p_rec.pgm_attribute23,
187     pgm_attribute24                 = p_rec.pgm_attribute24,
188     pgm_attribute25                 = p_rec.pgm_attribute25,
189     pgm_attribute26                 = p_rec.pgm_attribute26,
190     pgm_attribute27                 = p_rec.pgm_attribute27,
191     pgm_attribute28                 = p_rec.pgm_attribute28,
192     pgm_attribute29                 = p_rec.pgm_attribute29,
193     pgm_attribute30                 = p_rec.pgm_attribute30,
194     all_inelig                      = p_rec.all_inelig,
195     object_version_number           = p_rec.object_version_number
196     where   pgm_id = p_rec.pgm_id
197     and     effective_start_date = p_validation_start_date
198     and     effective_end_date   = p_validation_end_date;
199     --
200     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
201     --
202     -- Set the effective start and end dates
203     --
204     p_rec.effective_start_date := p_validation_start_date;
205     p_rec.effective_end_date   := p_validation_end_date;
206   End If;
207 --
208 hr_utility.set_location(' Leaving:'||l_proc, 15);
209 Exception
210   When hr_api.check_integrity_violated Then
211     -- A check constraint has been violated
212     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
213     ben_pgm_shd.constraint_error
214       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
215   When hr_api.unique_integrity_violated Then
216     -- Unique integrity has been violated
217     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
218     ben_pgm_shd.constraint_error
219       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
220   When Others Then
221     ben_pgm_shd.g_api_dml := false;   -- Unset the api dml status
222     Raise;
223 End dt_update_dml;
224 --
225 -- ----------------------------------------------------------------------------
226 -- |------------------------------< update_dml >------------------------------|
227 -- ----------------------------------------------------------------------------
228 -- {Start Of Comments}
229 --
230 -- Description:
231 --   This procedure calls the dt_update_dml control logic which handles
232 --   the actual datetrack dml.
233 --
234 -- Prerequisites:
235 --   This is an internal private procedure which must be called from the upd
236 --   procedure.
237 --
238 -- In Parameters:
239 --   A Pl/Sql record structre.
240 --
241 -- Post Success:
242 --   Processing contines.
243 --
244 -- Post Failure:
245 --   No specific error handling is required within this procedure.
246 --
247 -- Developer Implementation Notes:
248 --   The update 'set' arguments list should be modified if any of your
249 --   attributes are not updateable.
250 --
251 -- Access Status:
252 --   Internal Row Handler Use Only.
253 --
254 -- {End Of Comments}
255 -- ----------------------------------------------------------------------------
256 Procedure update_dml
257         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
258          p_effective_date        in     date,
259          p_datetrack_mode        in     varchar2,
260          p_validation_start_date in     date,
261          p_validation_end_date   in     date) is
262 --
263   l_proc        varchar2(72) := g_package||'update_dml';
264 --
265 Begin
266   hr_utility.set_location('Entering:'||l_proc, 5);
267   --
268   dt_update_dml(p_rec                   => p_rec,
269                 p_effective_date        => p_effective_date,
270                 p_datetrack_mode        => p_datetrack_mode,
271                 p_validation_start_date => p_validation_start_date,
272                 p_validation_end_date   => p_validation_end_date);
273   --
274   hr_utility.set_location(' Leaving:'||l_proc, 10);
275 End update_dml;
276 --
277 -- ----------------------------------------------------------------------------
278 -- |----------------------------< dt_pre_update >-----------------------------|
279 -- ----------------------------------------------------------------------------
280 -- {Start Of Comments}
281 --
282 -- Description:
283 --   The dt_pre_update procedure controls the execution
284 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
285 --   and UPDATE_CHANGE_INSERT only. The execution required is as
286 --   follows:
287 --
288 --   1) Providing the datetrack update mode is not 'CORRECTION'
289 --      then set the effective end date of the current row (this
290 --      will be the validation_start_date - 1).
291 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
292 --      corresponding delete_dml process to delete any future rows
293 --      where the effective_start_date is greater than or equal to
294 --      the validation_start_date.
295 --   3) Call the insert_dml process to insert the new updated row
296 --      details..
297 --
298 -- Prerequisites:
299 --   This is an internal procedure which is called from the
300 --   pre_update procedure.
301 --
302 -- In Parameters:
303 --
304 -- Post Success:
305 --   Processing continues.
306 --
307 -- Post Failure:
308 --   If an error has occurred, an error message and exception will be raised
309 --   but not handled.
310 --
311 -- Developer Implementation Notes:
312 --   This is an internal procedure which is required by Datetrack. Don't
313 --   remove or modify.
314 --
315 -- Access Status:
316 --   Internal Row Handler Use Only.
317 --
318 -- {End Of Comments}
319 -- ----------------------------------------------------------------------------
320 Procedure dt_pre_update
321         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
322          p_effective_date        in     date,
323          p_datetrack_mode        in     varchar2,
324          p_validation_start_date in     date,
325          p_validation_end_date   in     date) is
326 --
327   l_proc                 varchar2(72) := g_package||'dt_pre_update';
328   l_dummy_version_number number;
329 --
330 Begin
331   hr_utility.set_location('Entering:'||l_proc, 5);
332   If (p_datetrack_mode <> 'CORRECTION') then
333     hr_utility.set_location(l_proc, 10);
334     --
335     -- Update the current effective end date
336     --
337     ben_pgm_shd.upd_effective_end_date
338      (p_effective_date         => p_effective_date,
339       p_base_key_value         => p_rec.pgm_id,
340       p_new_effective_end_date => (p_validation_start_date - 1),
341       p_validation_start_date  => p_validation_start_date,
342       p_validation_end_date    => p_validation_end_date,
343       p_object_version_number  => l_dummy_version_number);
344     --
345     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
346       hr_utility.set_location(l_proc, 15);
347       --
348       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
349       -- delete any future rows
350       --
351       ben_pgm_del.delete_dml
352         (p_rec                   => p_rec,
353          p_effective_date        => p_effective_date,
354          p_datetrack_mode        => p_datetrack_mode,
355          p_validation_start_date => p_validation_start_date,
356          p_validation_end_date   => p_validation_end_date);
357     End If;
358     hr_utility.set_location(l_proc, 20);
359     --
360     -- We must now insert the updated row
361     --
362     ben_pgm_ins.insert_dml
363       (p_rec                    => p_rec,
364        p_effective_date         => p_effective_date,
365        p_datetrack_mode         => p_datetrack_mode,
366        p_validation_start_date  => p_validation_start_date,
367        p_validation_end_date    => p_validation_end_date);
368   End If;
369   hr_utility.set_location(' Leaving:'||l_proc, 20);
370 End dt_pre_update;
371 --
372 -- ----------------------------------------------------------------------------
373 -- |------------------------------< pre_update >------------------------------|
374 -- ----------------------------------------------------------------------------
375 -- {Start Of Comments}
376 --
377 -- Description:
378 --   This private procedure contains any processing which is required before
379 --   the update dml.
380 --
381 -- Prerequisites:
382 --   This is an internal procedure which is called from the upd procedure.
383 --
384 -- In Parameters:
385 --   A Pl/Sql record structre.
386 --
387 -- Post Success:
388 --   Processing continues.
389 --
390 -- Post Failure:
391 --   If an error has occurred, an error message and exception will be raised
392 --   but not handled.
393 --
394 -- Developer Implementation Notes:
395 --   Any pre-processing required before the update dml is issued should be
396 --   coded within this procedure. It is important to note that any 3rd party
397 --   maintenance should be reviewed before placing in this procedure. The call
398 --   to the dt_update_dml procedure should NOT be removed.
399 --
400 -- Access Status:
401 --   Internal Row Handler Use Only.
402 --
403 -- {End Of Comments}
404 -- ----------------------------------------------------------------------------
405 Procedure pre_update
406         (p_rec                   in out nocopy ben_pgm_shd.g_rec_type,
407          p_effective_date        in     date,
408          p_datetrack_mode        in     varchar2,
409          p_validation_start_date in     date,
410          p_validation_end_date   in     date) is
411 --
412   l_proc        varchar2(72) := g_package||'pre_update';
413 --
414 Begin
415   hr_utility.set_location('Entering:'||l_proc, 5);
416   --
417   --
418   --
419   dt_pre_update
420     (p_rec                   => p_rec,
421      p_effective_date        => p_effective_date,
422      p_datetrack_mode        => p_datetrack_mode,
423      p_validation_start_date => p_validation_start_date,
424      p_validation_end_date   => p_validation_end_date);
425   --
426   hr_utility.set_location(' Leaving:'||l_proc, 10);
427 End pre_update;
428 --
429 -- ----------------------------------------------------------------------------
430 -- |-----------------------------< post_update >------------------------------|
431 -- ----------------------------------------------------------------------------
432 -- {Start Of Comments}
433 --
434 -- Description:
435 --   This private procedure contains any processing which is required after the
436 --   update dml.
437 --
438 -- Prerequisites:
439 --   This is an internal procedure which is called from the upd procedure.
440 --
441 -- In Parameters:
442 --   A Pl/Sql record structre.
443 --
444 -- Post Success:
445 --   Processing continues.
446 --
447 -- Post Failure:
448 --   If an error has occurred, an error message and exception will be raised
449 --   but not handled.
450 --
451 -- Developer Implementation Notes:
452 --   Any post-processing required after the update dml is issued should be
453 --   coded within this procedure. It is important to note that any 3rd party
454 --   maintenance should be reviewed before placing in this procedure.
455 --
456 -- Access Status:
457 --   Internal Row Handler Use Only.
458 --
459 -- {End Of Comments}
460 -- ----------------------------------------------------------------------------
461 Procedure post_update
462         (p_rec                   in ben_pgm_shd.g_rec_type,
463          p_effective_date        in date,
464          p_datetrack_mode        in varchar2,
465          p_validation_start_date in date,
466          p_validation_end_date   in date) is
467 --
468   l_proc        varchar2(72) := g_package||'post_update';
469 --
470 Begin
471   hr_utility.set_location('Entering:'||l_proc, 5);
472   --
473     -- Added for GSP validations
474     pqh_gsp_ben_validations.pgm_validations
475     	(  p_pgm_id			=> p_rec.pgm_id
476     	 , p_dml_operation 		=> 'U'
477     	 , p_effective_date 		=> p_effective_date
478     	 , p_business_group_id  	=> p_rec.business_group_id
479     	 , p_short_name			=> p_rec.short_name
480     	 , p_short_code			=> p_rec.short_code
481     	 , p_Dflt_Pgm_Flag		=> p_rec.Dflt_Pgm_Flag
482     	 , p_Pgm_Typ_Cd			=> p_rec.Pgm_Typ_Cd
483     	 , p_pgm_Stat_cd		=> p_rec.pgm_Stat_cd
484     	 , p_Use_Prog_Points_Flag	=> p_rec.Use_Prog_Points_Flag
485     	 , p_Acty_Ref_Perd_Cd		=> p_rec.Acty_Ref_Perd_Cd
486     	 , p_Pgm_Uom			=> p_rec.Pgm_Uom
487     	 );
488 
489   hr_utility.set_location(' Leaving:'||l_proc, 10);
490 End post_update;
491 -- ----------------------------------------------------------------------------
492 -- |-----------------------------< convert_defs >-----------------------------|
493 -- ----------------------------------------------------------------------------
494 -- {Start Of Comments}
495 --
496 -- Description:
497 --   The Convert_Defs procedure has one very important function:
498 --   It must return the record structure for the row with all system defaulted
499 --   values converted into its corresponding parameter value for update. When
500 --   we attempt to update a row through the Upd process , certain
501 --   parameters can be defaulted which enables flexibility in the calling of
502 --   the upd process (e.g. only attributes which need to be updated need to be
503 --   specified). For the upd process to determine which attributes
504 --   have NOT been specified we need to check if the parameter has a reserved
505 --   system default value. Therefore, for all parameters which have a
506 --   corresponding reserved system default mechanism specified we need to
507 --   check if a system default is being used. If a system default is being
508 --   used then we convert the defaulted value into its corresponding attribute
509 --   value held in the g_old_rec data structure.
510 --
511 -- Prerequisites:
512 --   This private function can only be called from the upd process.
513 --
514 -- In Parameters:
515 --   A Pl/Sql record structre.
516 --
517 -- Post Success:
518 --   The record structure will be returned with all system defaulted parameter
519 --   values converted into its current row attribute value.
520 --
521 -- Post Failure:
522 --   No direct error handling is required within this function. Any possible
523 --   errors within this procedure will be a PL/SQL value error due to conversion
524 
525 --   of datatypes or data lengths.
526 --
527 -- Developer Implementation Notes:
528 --   None.
529 --
530 -- Access Status:
531 --   Internal Row Handler Use Only.
532 --
533 -- {End Of Comments}
534 -- ----------------------------------------------------------------------------
535 Procedure convert_defs(p_rec in out nocopy ben_pgm_shd.g_rec_type) is
536 --
537   l_proc  varchar2(72) := g_package||'convert_defs';
538 --
539 Begin
540   --
541   hr_utility.set_location('Entering:'||l_proc, 5);
542   --
543   -- We must now examine each argument value in the
544   -- p_rec plsql record structure
545   -- to see if a system default is being used. If a system default
546   -- is being used then we must set to the 'current' argument value.
547   --
548   If (p_rec.name = hr_api.g_varchar2) then
549     p_rec.name :=
550     ben_pgm_shd.g_old_rec.name;
551   End If;
552   If (p_rec.dpnt_adrs_rqd_flag = hr_api.g_varchar2) then
553     p_rec.dpnt_adrs_rqd_flag :=
554     ben_pgm_shd.g_old_rec.dpnt_adrs_rqd_flag;
555   End If;
556   If (p_rec.pgm_prvds_no_auto_enrt_flag = hr_api.g_varchar2) then
557     p_rec.pgm_prvds_no_auto_enrt_flag :=
558     ben_pgm_shd.g_old_rec.pgm_prvds_no_auto_enrt_flag;
559   End If;
560   If (p_rec.dpnt_dob_rqd_flag = hr_api.g_varchar2) then
561     p_rec.dpnt_dob_rqd_flag :=
562     ben_pgm_shd.g_old_rec.dpnt_dob_rqd_flag;
563   End If;
564   If (p_rec.pgm_prvds_no_dflt_enrt_flag = hr_api.g_varchar2) then
565     p_rec.pgm_prvds_no_dflt_enrt_flag :=
566     ben_pgm_shd.g_old_rec.pgm_prvds_no_dflt_enrt_flag;
567   End If;
568   If (p_rec.dpnt_legv_id_rqd_flag = hr_api.g_varchar2) then
569     p_rec.dpnt_legv_id_rqd_flag :=
570     ben_pgm_shd.g_old_rec.dpnt_legv_id_rqd_flag;
571   End If;
572   If (p_rec.dpnt_dsgn_lvl_cd = hr_api.g_varchar2) then
573     p_rec.dpnt_dsgn_lvl_cd :=
574     ben_pgm_shd.g_old_rec.dpnt_dsgn_lvl_cd;
575   End If;
576   If (p_rec.pgm_stat_cd = hr_api.g_varchar2) then
577     p_rec.pgm_stat_cd :=
578     ben_pgm_shd.g_old_rec.pgm_stat_cd;
579   End If;
580   If (p_rec.ivr_ident = hr_api.g_varchar2) then
581     p_rec.ivr_ident :=
582     ben_pgm_shd.g_old_rec.ivr_ident;
583   End If;
584   If (p_rec.pgm_typ_cd = hr_api.g_varchar2) then
585     p_rec.pgm_typ_cd :=
586     ben_pgm_shd.g_old_rec.pgm_typ_cd;
587   End If;
588   If (p_rec.elig_apls_flag = hr_api.g_varchar2) then
589     p_rec.elig_apls_flag :=
590     ben_pgm_shd.g_old_rec.elig_apls_flag;
591   End If;
592   If (p_rec.uses_all_asmts_for_rts_flag = hr_api.g_varchar2) then
593     p_rec.uses_all_asmts_for_rts_flag :=
594     ben_pgm_shd.g_old_rec.uses_all_asmts_for_rts_flag;
595   End If;
596   If (p_rec.url_ref_name = hr_api.g_varchar2) then
597     p_rec.url_ref_name :=
598     ben_pgm_shd.g_old_rec.url_ref_name;
599   End If;
600   If (p_rec.pgm_desc = hr_api.g_varchar2) then
601     p_rec.pgm_desc :=
602     ben_pgm_shd.g_old_rec.pgm_desc;
603   End If;
604   If (p_rec.prtn_elig_ovrid_alwd_flag = hr_api.g_varchar2) then
605     p_rec.prtn_elig_ovrid_alwd_flag :=
606     ben_pgm_shd.g_old_rec.prtn_elig_ovrid_alwd_flag;
607   End If;
608   If (p_rec.pgm_use_all_asnts_elig_flag = hr_api.g_varchar2) then
609     p_rec.pgm_use_all_asnts_elig_flag :=
610     ben_pgm_shd.g_old_rec.pgm_use_all_asnts_elig_flag;
611   End If;
612   If (p_rec.dpnt_dsgn_cd = hr_api.g_varchar2) then
613     p_rec.dpnt_dsgn_cd :=
614     ben_pgm_shd.g_old_rec.dpnt_dsgn_cd;
615   End If;
616   If (p_rec.mx_dpnt_pct_prtt_lf_amt = hr_api.g_number) then
617     p_rec.mx_dpnt_pct_prtt_lf_amt :=
618     ben_pgm_shd.g_old_rec.mx_dpnt_pct_prtt_lf_amt;
619   End If;
620   If (p_rec.mx_sps_pct_prtt_lf_amt = hr_api.g_number) then
621     p_rec.mx_sps_pct_prtt_lf_amt :=
622     ben_pgm_shd.g_old_rec.mx_sps_pct_prtt_lf_amt;
623   End If;
624   If (p_rec.acty_ref_perd_cd = hr_api.g_varchar2) then
625     p_rec.acty_ref_perd_cd :=
626     ben_pgm_shd.g_old_rec.acty_ref_perd_cd;
627   End If;
628   If (p_rec.coord_cvg_for_all_pls_flg = hr_api.g_varchar2) then
629     p_rec.coord_cvg_for_all_pls_flg :=
630     ben_pgm_shd.g_old_rec.coord_cvg_for_all_pls_flg;
631   End If;
632   If (p_rec.enrt_cvg_end_dt_cd = hr_api.g_varchar2) then
633     p_rec.enrt_cvg_end_dt_cd :=
634     ben_pgm_shd.g_old_rec.enrt_cvg_end_dt_cd;
635   End If;
636   If (p_rec.enrt_cvg_end_dt_rl = hr_api.g_number) then
637     p_rec.enrt_cvg_end_dt_rl :=
638     ben_pgm_shd.g_old_rec.enrt_cvg_end_dt_rl;
639   End If;
640   If (p_rec.dpnt_cvg_end_dt_cd = hr_api.g_varchar2) then
641     p_rec.dpnt_cvg_end_dt_cd :=
642     ben_pgm_shd.g_old_rec.dpnt_cvg_end_dt_cd;
643   End If;
644   If (p_rec.dpnt_cvg_end_dt_rl = hr_api.g_number) then
645     p_rec.dpnt_cvg_end_dt_rl :=
646     ben_pgm_shd.g_old_rec.dpnt_cvg_end_dt_rl;
647   End If;
648   If (p_rec.dpnt_cvg_strt_dt_cd = hr_api.g_varchar2) then
649     p_rec.dpnt_cvg_strt_dt_cd :=
650     ben_pgm_shd.g_old_rec.dpnt_cvg_strt_dt_cd;
651   End If;
652   If (p_rec.dpnt_cvg_strt_dt_rl = hr_api.g_number) then
653     p_rec.dpnt_cvg_strt_dt_rl :=
654     ben_pgm_shd.g_old_rec.dpnt_cvg_strt_dt_rl;
655   End If;
656   If (p_rec.dpnt_dsgn_no_ctfn_rqd_flag = hr_api.g_varchar2) then
657     p_rec.dpnt_dsgn_no_ctfn_rqd_flag :=
658     ben_pgm_shd.g_old_rec.dpnt_dsgn_no_ctfn_rqd_flag;
659   End If;
660   If (p_rec.drvbl_fctr_dpnt_elig_flag = hr_api.g_varchar2) then
661     p_rec.drvbl_fctr_dpnt_elig_flag :=
662     ben_pgm_shd.g_old_rec.drvbl_fctr_dpnt_elig_flag;
663   End If;
664   If (p_rec.drvbl_fctr_prtn_elig_flag = hr_api.g_varchar2) then
665     p_rec.drvbl_fctr_prtn_elig_flag :=
666     ben_pgm_shd.g_old_rec.drvbl_fctr_prtn_elig_flag;
667   End If;
668   If (p_rec.enrt_cvg_strt_dt_cd = hr_api.g_varchar2) then
669     p_rec.enrt_cvg_strt_dt_cd :=
670     ben_pgm_shd.g_old_rec.enrt_cvg_strt_dt_cd;
671   End If;
672   If (p_rec.enrt_cvg_strt_dt_rl = hr_api.g_number) then
673     p_rec.enrt_cvg_strt_dt_rl :=
674     ben_pgm_shd.g_old_rec.enrt_cvg_strt_dt_rl;
675   End If;
676   If (p_rec.enrt_info_rt_freq_cd = hr_api.g_varchar2) then
677     p_rec.enrt_info_rt_freq_cd :=
678     ben_pgm_shd.g_old_rec.enrt_info_rt_freq_cd;
679   End If;
680   If (p_rec.rt_strt_dt_cd = hr_api.g_varchar2) then
681     p_rec.rt_strt_dt_cd :=
682     ben_pgm_shd.g_old_rec.rt_strt_dt_cd;
683   End If;
684   If (p_rec.rt_strt_dt_rl = hr_api.g_number) then
685     p_rec.rt_strt_dt_rl :=
686     ben_pgm_shd.g_old_rec.rt_strt_dt_rl;
687   End If;
688   If (p_rec.rt_end_dt_cd = hr_api.g_varchar2) then
689     p_rec.rt_end_dt_cd :=
690     ben_pgm_shd.g_old_rec.rt_end_dt_cd;
691   End If;
692   If (p_rec.rt_end_dt_rl = hr_api.g_number) then
693     p_rec.rt_end_dt_rl :=
694     ben_pgm_shd.g_old_rec.rt_end_dt_rl;
695   End If;
696   If (p_rec.pgm_grp_cd = hr_api.g_varchar2) then
697     p_rec.pgm_grp_cd :=
698     ben_pgm_shd.g_old_rec.pgm_grp_cd;
699   End If;
700   If (p_rec.pgm_uom = hr_api.g_varchar2) then
701     p_rec.pgm_uom :=
702     ben_pgm_shd.g_old_rec.pgm_uom;
703   End If;
704   If (p_rec.drvbl_fctr_apls_rts_flag = hr_api.g_varchar2) then
705     p_rec.drvbl_fctr_apls_rts_flag :=
706     ben_pgm_shd.g_old_rec.drvbl_fctr_apls_rts_flag;
707   End If;
708   If (p_rec.alws_unrstrctd_enrt_flag = hr_api.g_varchar2) then
709     p_rec.alws_unrstrctd_enrt_flag :=
710     ben_pgm_shd.g_old_rec.alws_unrstrctd_enrt_flag;
711   End If;
712   If (p_rec.enrt_cd = hr_api.g_varchar2) then
713     p_rec.enrt_cd :=
714     ben_pgm_shd.g_old_rec.enrt_cd;
715   End If;
716   If (p_rec.enrt_mthd_cd = hr_api.g_varchar2) then
717     p_rec.enrt_mthd_cd :=
718     ben_pgm_shd.g_old_rec.enrt_mthd_cd;
719   End If;
720   If (p_rec.poe_lvl_cd = hr_api.g_varchar2) then
721     p_rec.poe_lvl_cd :=
722     ben_pgm_shd.g_old_rec.poe_lvl_cd;
723   End If;
724   If (p_rec.enrt_rl = hr_api.g_number) then
725     p_rec.enrt_rl :=
726     ben_pgm_shd.g_old_rec.enrt_rl;
727   End If;
728   If (p_rec.auto_enrt_mthd_rl = hr_api.g_number) then
729     p_rec.auto_enrt_mthd_rl :=
730     ben_pgm_shd.g_old_rec.auto_enrt_mthd_rl;
731   End If;
732   If (p_rec.trk_inelig_per_flag = hr_api.g_varchar2) then
733     p_rec.trk_inelig_per_flag :=
734     ben_pgm_shd.g_old_rec.trk_inelig_per_flag;
735   End If;
736   If (p_rec.business_group_id = hr_api.g_number) then
737     p_rec.business_group_id :=
738     ben_pgm_shd.g_old_rec.business_group_id;
739   End If;
740 
741 
742   If (p_rec.per_cvrd_cd = hr_api.g_varchar2) then
743     p_rec.per_cvrd_cd :=
744     ben_pgm_shd.g_old_rec.per_cvrd_cd;
745   End If;
746 
747   If (p_rec.vrfy_fmly_mmbr_rl = hr_api.g_number) then
748     p_rec.vrfy_fmly_mmbr_rl :=
749     ben_pgm_shd.g_old_rec.vrfy_fmly_mmbr_rl;
750   End If;
751 
752   If (p_rec.vrfy_fmly_mmbr_cd = hr_api.g_varchar2) then
753     p_rec.vrfy_fmly_mmbr_cd :=
754     ben_pgm_shd.g_old_rec.vrfy_fmly_mmbr_cd;
755   End If;
756 
757 --FHR
758   If (p_rec.short_name = hr_api.g_varchar2) then
759     p_rec.short_name :=
760     ben_pgm_shd.g_old_rec.short_name;
761   End If;
762 
763   If (p_rec.short_code = hr_api.g_varchar2) then
764     p_rec.short_code :=
765     ben_pgm_shd.g_old_rec.short_code;
766   End If;
767 
768   If (p_rec.legislation_code = hr_api.g_varchar2) then
769         p_rec.legislation_code :=
770         ben_pgm_shd.g_old_rec.legislation_code;
771   End If;
772   If (p_rec.legislation_subgroup = hr_api.g_varchar2) then
773         p_rec.legislation_subgroup :=
774         ben_pgm_shd.g_old_rec.legislation_subgroup;
775   End If;
776 
777 --GSTP
778   If (p_rec.Dflt_pgm_flag = hr_api.g_varchar2) then
779     p_rec.Dflt_pgm_flag :=
780     ben_pgm_shd.g_old_rec.Dflt_pgm_flag;
781   End If;
782   If (p_rec.Use_prog_points_flag = hr_api.g_varchar2) then
783     p_rec.Use_prog_points_flag :=
784     ben_pgm_shd.g_old_rec.Use_prog_points_flag;
785   End If;
786   If (p_rec.Dflt_step_cd = hr_api.g_varchar2) then
787     p_rec.Dflt_step_cd :=
788     ben_pgm_shd.g_old_rec.Dflt_step_cd;
789   End If;
790   If (p_rec.Dflt_step_rl = hr_api.g_number) then
791     p_rec.Dflt_step_rl :=
792     ben_pgm_shd.g_old_rec.Dflt_step_rl;
793   End If;
794   If (p_rec.Update_salary_cd = hr_api.g_varchar2) then
795     p_rec.Update_salary_cd :=
796     ben_pgm_shd.g_old_rec.Update_salary_cd;
797   End If;
798   If (p_rec.Use_multi_pay_rates_flag = hr_api.g_varchar2) then
799     p_rec.Use_multi_pay_rates_flag :=
800     ben_pgm_shd.g_old_rec.Use_multi_pay_rates_flag;
801   End If;
802   If (p_rec.dflt_element_type_id = hr_api.g_number) then
803     p_rec.dflt_element_type_id :=
804     ben_pgm_shd.g_old_rec.dflt_element_type_id;
805   End If;
806   If (p_rec.Dflt_input_value_id = hr_api.g_number) then
807     p_rec.Dflt_input_value_id :=
808     ben_pgm_shd.g_old_rec.Dflt_input_value_id;
809   End If;
810   If (p_rec.Use_scores_cd = hr_api.g_varchar2) then
811     p_rec.Use_scores_cd :=
812     ben_pgm_shd.g_old_rec.Use_scores_cd;
813   End If;
814   If (p_rec.Scores_calc_mthd_cd = hr_api.g_varchar2) then
815     p_rec.Scores_calc_mthd_cd :=
816     ben_pgm_shd.g_old_rec.Scores_calc_mthd_cd;
817   End If;
818   If (p_rec.Scores_calc_rl = hr_api.g_number) then
819     p_rec.Scores_calc_rl :=
820     ben_pgm_shd.g_old_rec.Scores_calc_rl;
821   End If;
822 --GSTP
823 
824   If (p_rec.gsp_allow_override_flag = hr_api.g_varchar2) then
825     p_rec.gsp_allow_override_flag :=
826     ben_pgm_shd.g_old_rec.gsp_allow_override_flag;
827   End If;
828 
829   If (p_rec.use_variable_rates_flag = hr_api.g_varchar2) then
830     p_rec.use_variable_rates_flag :=
831     ben_pgm_shd.g_old_rec.use_variable_rates_flag;
832   End If;
833 
834   If (p_rec.salary_calc_mthd_cd = hr_api.g_varchar2) then
835     p_rec.salary_calc_mthd_cd :=
836     ben_pgm_shd.g_old_rec.salary_calc_mthd_cd;
837   End If;
838 
839 
840   If (p_rec.salary_calc_mthd_rl = hr_api.g_number) then
841     p_rec.salary_calc_mthd_rl :=
842     ben_pgm_shd.g_old_rec.salary_calc_mthd_rl;
843   End If;
844 
845   If (p_rec.susp_if_dpnt_ssn_nt_prv_cd = hr_api.g_varchar2) then
846     p_rec.susp_if_dpnt_ssn_nt_prv_cd :=
847     ben_pgm_shd.g_old_rec.susp_if_dpnt_ssn_nt_prv_cd;
848   End If;
849 
850   If (p_rec.susp_if_dpnt_dob_nt_prv_cd = hr_api.g_varchar2) then
851     p_rec.susp_if_dpnt_dob_nt_prv_cd :=
852     ben_pgm_shd.g_old_rec.susp_if_dpnt_dob_nt_prv_cd;
853   End If;
854   If (p_rec.susp_if_dpnt_adr_nt_prv_cd = hr_api.g_varchar2) then
855     p_rec.susp_if_dpnt_adr_nt_prv_cd :=
856     ben_pgm_shd.g_old_rec.susp_if_dpnt_adr_nt_prv_cd;
857   End If;
858   If (p_rec.susp_if_ctfn_not_dpnt_flag = hr_api.g_varchar2) then
859     p_rec.susp_if_ctfn_not_dpnt_flag :=
860     ben_pgm_shd.g_old_rec.susp_if_ctfn_not_dpnt_flag;
861   End If;
862   If (p_rec.dpnt_ctfn_determine_cd = hr_api.g_varchar2) then
863     p_rec.dpnt_ctfn_determine_cd :=
864     ben_pgm_shd.g_old_rec.dpnt_ctfn_determine_cd;
865   End If;
866 
867   If (p_rec.pgm_attribute_category = hr_api.g_varchar2) then
868     p_rec.pgm_attribute_category :=
869     ben_pgm_shd.g_old_rec.pgm_attribute_category;
870   End If;
871 
872   If (p_rec.pgm_attribute1 = hr_api.g_varchar2) then
873     p_rec.pgm_attribute1 :=
874     ben_pgm_shd.g_old_rec.pgm_attribute1;
875   End If;
876 
877   If (p_rec.pgm_attribute2 = hr_api.g_varchar2) then
878     p_rec.pgm_attribute2 :=
879     ben_pgm_shd.g_old_rec.pgm_attribute2;
880   End If;
881   If (p_rec.pgm_attribute3 = hr_api.g_varchar2) then
882     p_rec.pgm_attribute3 :=
883     ben_pgm_shd.g_old_rec.pgm_attribute3;
884   End If;
885   If (p_rec.pgm_attribute4 = hr_api.g_varchar2) then
886     p_rec.pgm_attribute4 :=
887     ben_pgm_shd.g_old_rec.pgm_attribute4;
888   End If;
889   If (p_rec.pgm_attribute5 = hr_api.g_varchar2) then
890     p_rec.pgm_attribute5 :=
891     ben_pgm_shd.g_old_rec.pgm_attribute5;
892   End If;
893   If (p_rec.pgm_attribute6 = hr_api.g_varchar2) then
894     p_rec.pgm_attribute6 :=
895     ben_pgm_shd.g_old_rec.pgm_attribute6;
896   End If;
897   If (p_rec.pgm_attribute7 = hr_api.g_varchar2) then
898     p_rec.pgm_attribute7 :=
899     ben_pgm_shd.g_old_rec.pgm_attribute7;
900   End If;
901   If (p_rec.pgm_attribute8 = hr_api.g_varchar2) then
902     p_rec.pgm_attribute8 :=
903     ben_pgm_shd.g_old_rec.pgm_attribute8;
904   End If;
905   If (p_rec.pgm_attribute9 = hr_api.g_varchar2) then
906     p_rec.pgm_attribute9 :=
907     ben_pgm_shd.g_old_rec.pgm_attribute9;
908   End If;
909   If (p_rec.pgm_attribute10 = hr_api.g_varchar2) then
910     p_rec.pgm_attribute10 :=
911     ben_pgm_shd.g_old_rec.pgm_attribute10;
912   End If;
913   If (p_rec.pgm_attribute11 = hr_api.g_varchar2) then
914     p_rec.pgm_attribute11 :=
915     ben_pgm_shd.g_old_rec.pgm_attribute11;
916   End If;
917   If (p_rec.pgm_attribute12 = hr_api.g_varchar2) then
918     p_rec.pgm_attribute12 :=
919     ben_pgm_shd.g_old_rec.pgm_attribute12;
920   End If;
921   If (p_rec.pgm_attribute13 = hr_api.g_varchar2) then
922     p_rec.pgm_attribute13 :=
923     ben_pgm_shd.g_old_rec.pgm_attribute13;
924   End If;
925   If (p_rec.pgm_attribute14 = hr_api.g_varchar2) then
926     p_rec.pgm_attribute14 :=
927     ben_pgm_shd.g_old_rec.pgm_attribute14;
928   End If;
929   If (p_rec.pgm_attribute15 = hr_api.g_varchar2) then
930     p_rec.pgm_attribute15 :=
931     ben_pgm_shd.g_old_rec.pgm_attribute15;
932   End If;
933   If (p_rec.pgm_attribute16 = hr_api.g_varchar2) then
934     p_rec.pgm_attribute16 :=
935     ben_pgm_shd.g_old_rec.pgm_attribute16;
936   End If;
937   If (p_rec.pgm_attribute17 = hr_api.g_varchar2) then
938     p_rec.pgm_attribute17 :=
939     ben_pgm_shd.g_old_rec.pgm_attribute17;
940   End If;
941   If (p_rec.pgm_attribute18 = hr_api.g_varchar2) then
942     p_rec.pgm_attribute18 :=
943     ben_pgm_shd.g_old_rec.pgm_attribute18;
944   End If;
945   If (p_rec.pgm_attribute19 = hr_api.g_varchar2) then
946     p_rec.pgm_attribute19 :=
947     ben_pgm_shd.g_old_rec.pgm_attribute19;
948   End If;
949   If (p_rec.pgm_attribute20 = hr_api.g_varchar2) then
950     p_rec.pgm_attribute20 :=
951     ben_pgm_shd.g_old_rec.pgm_attribute20;
952   End If;
953   If (p_rec.pgm_attribute21 = hr_api.g_varchar2) then
954     p_rec.pgm_attribute21 :=
955     ben_pgm_shd.g_old_rec.pgm_attribute21;
956   End If;
957   If (p_rec.pgm_attribute22 = hr_api.g_varchar2) then
958     p_rec.pgm_attribute22 :=
959     ben_pgm_shd.g_old_rec.pgm_attribute22;
960   End If;
961   If (p_rec.pgm_attribute23 = hr_api.g_varchar2) then
962     p_rec.pgm_attribute23 :=
963     ben_pgm_shd.g_old_rec.pgm_attribute23;
964   End If;
965   If (p_rec.pgm_attribute24 = hr_api.g_varchar2) then
966     p_rec.pgm_attribute24 :=
967     ben_pgm_shd.g_old_rec.pgm_attribute24;
968   End If;
969   If (p_rec.pgm_attribute25 = hr_api.g_varchar2) then
970     p_rec.pgm_attribute25 :=
971     ben_pgm_shd.g_old_rec.pgm_attribute25;
972   End If;
973   If (p_rec.pgm_attribute26 = hr_api.g_varchar2) then
974     p_rec.pgm_attribute26 :=
975     ben_pgm_shd.g_old_rec.pgm_attribute26;
976   End If;
977   If (p_rec.pgm_attribute27 = hr_api.g_varchar2) then
978     p_rec.pgm_attribute27 :=
979     ben_pgm_shd.g_old_rec.pgm_attribute27;
980   End If;
981   If (p_rec.pgm_attribute28 = hr_api.g_varchar2) then
982     p_rec.pgm_attribute28 :=
983     ben_pgm_shd.g_old_rec.pgm_attribute28;
984   End If;
985   If (p_rec.pgm_attribute29 = hr_api.g_varchar2) then
986     p_rec.pgm_attribute29 :=
987     ben_pgm_shd.g_old_rec.pgm_attribute29;
988   End If;
989   If (p_rec.pgm_attribute30 = hr_api.g_varchar2) then
990     p_rec.pgm_attribute30 :=
991     ben_pgm_shd.g_old_rec.pgm_attribute30;
992   End If;
993 
994   If (p_rec.all_inelig = hr_api.g_varchar2) then
995     p_rec.all_inelig :=
996     ben_pgm_shd.g_old_rec.all_inelig;
997   End If;
998   --
999   hr_utility.set_location(' Leaving:'||l_proc, 10);
1000 --
1001 End convert_defs;
1002 --
1003 -- ----------------------------------------------------------------------------
1004 -- |---------------------------------< upd >----------------------------------|
1005 -- ----------------------------------------------------------------------------
1006 Procedure upd
1007   (
1008   p_rec                 in out nocopy  ben_pgm_shd.g_rec_type,
1009   p_effective_date      in      date,
1010   p_datetrack_mode      in      varchar2
1011   ) is
1012 --
1013   l_proc                        varchar2(72) := g_package||'upd';
1014   l_validation_start_date       date;
1015   l_validation_end_date         date;
1016 --
1017 Begin
1018   hr_utility.set_location('Entering:'||l_proc, 5);
1019   --
1020   -- Ensure that the DateTrack update mode is valid
1021   --
1022   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
1023   --
1024   -- We must lock the row which we need to update.
1025   --
1026   ben_pgm_shd.lck
1027         (p_effective_date        => p_effective_date,
1028          p_datetrack_mode        => p_datetrack_mode,
1029          p_pgm_id        => p_rec.pgm_id,
1030          p_object_version_number => p_rec.object_version_number,
1031          p_validation_start_date => l_validation_start_date,
1032          p_validation_end_date   => l_validation_end_date);
1033   --
1034   -- 1. During an update system defaults are used to determine if
1035   --    arguments have been defaulted or not. We must therefore
1036   --    derive the full record structure values to be updated.
1037   --
1038   -- 2. Call the supporting update validate operations.
1039   --
1040   convert_defs(p_rec);
1041   ben_pgm_bus.update_validate
1042         (p_rec                   => p_rec,
1043          p_effective_date        => p_effective_date,
1044          p_datetrack_mode        => p_datetrack_mode,
1045          p_validation_start_date => l_validation_start_date,
1046          p_validation_end_date   => l_validation_end_date);
1047   --
1048   -- Call the supporting pre-update operation
1049   --
1050   pre_update
1051         (p_rec                   => p_rec,
1052          p_effective_date        => p_effective_date,
1053          p_datetrack_mode        => p_datetrack_mode,
1054          p_validation_start_date => l_validation_start_date,
1055          p_validation_end_date   => l_validation_end_date);
1056   --
1057   -- Update the row.
1058   --
1059   update_dml
1060         (p_rec                   => p_rec,
1061          p_effective_date        => p_effective_date,
1062          p_datetrack_mode        => p_datetrack_mode,
1063          p_validation_start_date => l_validation_start_date,
1064          p_validation_end_date   => l_validation_end_date);
1065   --
1066   -- Call the supporting post-update operation
1067   --
1068   post_update
1069         (p_rec                   => p_rec,
1070          p_effective_date        => p_effective_date,
1071          p_datetrack_mode        => p_datetrack_mode,
1072          p_validation_start_date => l_validation_start_date,
1073          p_validation_end_date   => l_validation_end_date);
1074 End upd;
1075 --
1076 -- ----------------------------------------------------------------------------
1077 -- |---------------------------------< upd >----------------------------------|
1078 -- ----------------------------------------------------------------------------
1079 Procedure upd
1080   (
1081   p_pgm_id                       in number,
1082   p_effective_start_date         out nocopy date,
1083   p_effective_end_date           out nocopy date,
1084   p_name                         in varchar2         default hr_api.g_varchar2,
1085   p_dpnt_adrs_rqd_flag           in varchar2         default hr_api.g_varchar2,
1086   p_pgm_prvds_no_auto_enrt_flag  in varchar2         default hr_api.g_varchar2,
1087   p_dpnt_dob_rqd_flag            in varchar2         default hr_api.g_varchar2,
1088   p_pgm_prvds_no_dflt_enrt_flag  in varchar2         default hr_api.g_varchar2,
1089   p_dpnt_legv_id_rqd_flag        in varchar2         default hr_api.g_varchar2,
1090   p_dpnt_dsgn_lvl_cd             in varchar2         default hr_api.g_varchar2,
1091   p_pgm_stat_cd                  in varchar2         default hr_api.g_varchar2,
1092   p_ivr_ident                    in varchar2         default hr_api.g_varchar2,
1093   p_pgm_typ_cd                   in varchar2         default hr_api.g_varchar2,
1094   p_elig_apls_flag               in varchar2         default hr_api.g_varchar2,
1095   p_uses_all_asmts_for_rts_flag  in varchar2         default hr_api.g_varchar2,
1096   p_url_ref_name                 in varchar2         default hr_api.g_varchar2,
1097   p_pgm_desc                     in varchar2         default hr_api.g_varchar2,
1098   p_prtn_elig_ovrid_alwd_flag    in varchar2         default hr_api.g_varchar2,
1099   p_pgm_use_all_asnts_elig_flag  in varchar2         default hr_api.g_varchar2,
1100   p_dpnt_dsgn_cd                 in varchar2         default hr_api.g_varchar2,
1101   p_mx_dpnt_pct_prtt_lf_amt      in number           default hr_api.g_number,
1102   p_mx_sps_pct_prtt_lf_amt       in number           default hr_api.g_number,
1103   p_acty_ref_perd_cd             in varchar2         default hr_api.g_varchar2,
1104   p_coord_cvg_for_all_pls_flg    in varchar2         default hr_api.g_varchar2,
1105   p_enrt_cvg_end_dt_cd           in varchar2         default hr_api.g_varchar2,
1106   p_enrt_cvg_end_dt_rl           in number           default hr_api.g_number,
1107   p_dpnt_cvg_end_dt_cd           in varchar2         default hr_api.g_varchar2,
1108   p_dpnt_cvg_end_dt_rl           in number           default hr_api.g_number,
1109   p_dpnt_cvg_strt_dt_cd          in varchar2         default hr_api.g_varchar2,
1110   p_dpnt_cvg_strt_dt_rl          in number           default hr_api.g_number,
1111   p_dpnt_dsgn_no_ctfn_rqd_flag   in varchar2         default hr_api.g_varchar2,
1112   p_drvbl_fctr_dpnt_elig_flag    in varchar2         default hr_api.g_varchar2,
1113   p_drvbl_fctr_prtn_elig_flag    in varchar2         default hr_api.g_varchar2,
1114   p_enrt_cvg_strt_dt_cd          in varchar2         default hr_api.g_varchar2,
1115   p_enrt_cvg_strt_dt_rl          in number           default hr_api.g_number,
1116   p_enrt_info_rt_freq_cd         in varchar2         default hr_api.g_varchar2,
1117   p_rt_strt_dt_cd                in varchar2         default hr_api.g_varchar2,
1118   p_rt_strt_dt_rl                in number           default hr_api.g_number,
1119   p_rt_end_dt_cd                 in varchar2         default hr_api.g_varchar2,
1120   p_rt_end_dt_rl                 in number           default hr_api.g_number,
1121   p_pgm_grp_cd                   in varchar2         default hr_api.g_varchar2,
1122   p_pgm_uom                      in varchar2         default hr_api.g_varchar2,
1123   p_drvbl_fctr_apls_rts_flag     in varchar2         default hr_api.g_varchar2,
1124   p_alws_unrstrctd_enrt_flag     in  varchar2        default hr_api.g_varchar2,
1125   p_enrt_cd                      in  varchar2        default hr_api.g_varchar2,
1126   p_enrt_mthd_cd                 in  varchar2        default hr_api.g_varchar2,
1127   p_poe_lvl_cd                   in  varchar2        default hr_api.g_varchar2,
1128   p_enrt_rl                      in  number          default hr_api.g_number,
1129   p_auto_enrt_mthd_rl            in  number          default hr_api.g_number,
1130   p_trk_inelig_per_flag          in varchar2         default hr_api.g_varchar2,
1131   p_business_group_id            in number           default hr_api.g_number,
1132   p_per_cvrd_cd                  in varchar2        default hr_api.g_varchar2,
1133   P_vrfy_fmly_mmbr_rl            in number          default hr_api.g_number,
1134   P_vrfy_fmly_mmbr_cd            in varchar2        default hr_api.g_varchar2,
1135   p_short_name			 in varchar2         default hr_api.g_varchar2,    --FHR
1136   p_short_code			 in varchar2         default hr_api.g_varchar2,    --FHR
1137     p_legislation_code			 in varchar2         default hr_api.g_varchar2,
1138     p_legislation_subgroup			 in varchar2         default hr_api.g_varchar2,
1139   p_Dflt_pgm_flag                in Varchar2         default hr_api.g_varchar2,
1140   p_Use_prog_points_flag         in Varchar2         default hr_api.g_varchar2,
1141   p_Dflt_step_cd                 in Varchar2         default hr_api.g_varchar2,
1142   p_Dflt_step_rl                 in number           default hr_api.g_number,
1143   p_Update_salary_cd             in Varchar2         default hr_api.g_varchar2,
1144   p_Use_multi_pay_rates_flag     in Varchar2         default hr_api.g_varchar2,
1145   p_dflt_element_type_id         in number           default hr_api.g_number,
1146   p_Dflt_input_value_id          in number           default hr_api.g_number,
1147   p_Use_scores_cd                in Varchar2         default hr_api.g_varchar2,
1148   p_Scores_calc_mthd_cd          in Varchar2         default hr_api.g_varchar2,
1149   p_Scores_calc_rl               in number           default hr_api.g_number,
1150   p_gsp_allow_override_flag       in varchar2         default hr_api.g_varchar2,
1151   p_use_variable_rates_flag       in varchar2         default hr_api.g_varchar2,
1152   p_salary_calc_mthd_cd       in varchar2         default hr_api.g_varchar2,
1153   p_salary_calc_mthd_rl       in number         default hr_api.g_number,
1154   p_susp_if_dpnt_ssn_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1155   p_susp_if_dpnt_dob_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1156   p_susp_if_dpnt_adr_nt_prv_cd      in  varchar2   default hr_api.g_varchar2,
1157   p_susp_if_ctfn_not_dpnt_flag      in  varchar2   default hr_api.g_varchar2,
1158   p_dpnt_ctfn_determine_cd          in  varchar2   default hr_api.g_varchar2,
1159   p_pgm_attribute_category       in varchar2         default hr_api.g_varchar2,
1160   p_pgm_attribute1               in varchar2         default hr_api.g_varchar2,
1161   p_pgm_attribute2               in varchar2         default hr_api.g_varchar2,
1162   p_pgm_attribute3               in varchar2         default hr_api.g_varchar2,
1163   p_pgm_attribute4               in varchar2         default hr_api.g_varchar2,
1164   p_pgm_attribute5               in varchar2         default hr_api.g_varchar2,
1165   p_pgm_attribute6               in varchar2         default hr_api.g_varchar2,
1166   p_pgm_attribute7               in varchar2         default hr_api.g_varchar2,
1167   p_pgm_attribute8               in varchar2         default hr_api.g_varchar2,
1168   p_pgm_attribute9               in varchar2         default hr_api.g_varchar2,
1169   p_pgm_attribute10              in varchar2         default hr_api.g_varchar2,
1170   p_pgm_attribute11              in varchar2         default hr_api.g_varchar2,
1171   p_pgm_attribute12              in varchar2         default hr_api.g_varchar2,
1172   p_pgm_attribute13              in varchar2         default hr_api.g_varchar2,
1173   p_pgm_attribute14              in varchar2         default hr_api.g_varchar2,
1174   p_pgm_attribute15              in varchar2         default hr_api.g_varchar2,
1175   p_pgm_attribute16              in varchar2         default hr_api.g_varchar2,
1176   p_pgm_attribute17              in varchar2         default hr_api.g_varchar2,
1177   p_pgm_attribute18              in varchar2         default hr_api.g_varchar2,
1178   p_pgm_attribute19              in varchar2         default hr_api.g_varchar2,
1179   p_pgm_attribute20              in varchar2         default hr_api.g_varchar2,
1180   p_pgm_attribute21              in varchar2         default hr_api.g_varchar2,
1181   p_pgm_attribute22              in varchar2         default hr_api.g_varchar2,
1182   p_pgm_attribute23              in varchar2         default hr_api.g_varchar2,
1183   p_pgm_attribute24              in varchar2         default hr_api.g_varchar2,
1184   p_pgm_attribute25              in varchar2         default hr_api.g_varchar2,
1185   p_pgm_attribute26              in varchar2         default hr_api.g_varchar2,
1186   p_pgm_attribute27              in varchar2         default hr_api.g_varchar2,
1187   p_pgm_attribute28              in varchar2         default hr_api.g_varchar2,
1188   p_pgm_attribute29              in varchar2         default hr_api.g_varchar2,
1189   p_pgm_attribute30              in varchar2         default hr_api.g_varchar2,
1190   p_all_inelig                   in  varchar2        default hr_api.g_varchar2,
1191   p_object_version_number        in out nocopy number,
1192   p_effective_date               in date,
1193   p_datetrack_mode               in varchar2
1194   ) is
1195 --
1196   l_rec         ben_pgm_shd.g_rec_type;
1197   l_proc        varchar2(72) := g_package||'upd';
1198 --
1199 Begin
1200   hr_utility.set_location('Entering:'||l_proc, 5);
1201   --
1202   -- Call conversion function to turn arguments into the
1203   -- l_rec structure.
1204   --
1205   l_rec :=
1206   ben_pgm_shd.convert_args
1207   (
1208   p_pgm_id,
1209   null,
1210   null,
1211   p_name,
1212   p_dpnt_adrs_rqd_flag,
1213   p_pgm_prvds_no_auto_enrt_flag,
1214   p_dpnt_dob_rqd_flag,
1215   p_pgm_prvds_no_dflt_enrt_flag,
1216   p_dpnt_legv_id_rqd_flag,
1217   p_dpnt_dsgn_lvl_cd,
1218   p_pgm_stat_cd,
1219   p_ivr_ident,
1220   p_pgm_typ_cd,
1221   p_elig_apls_flag,
1222   p_uses_all_asmts_for_rts_flag,
1223   p_url_ref_name,
1224   p_pgm_desc,
1225   p_prtn_elig_ovrid_alwd_flag,
1226   p_pgm_use_all_asnts_elig_flag,
1227   p_dpnt_dsgn_cd,
1228   p_mx_dpnt_pct_prtt_lf_amt,
1229   p_mx_sps_pct_prtt_lf_amt,
1230   p_acty_ref_perd_cd,
1231   p_coord_cvg_for_all_pls_flg,
1232   p_enrt_cvg_end_dt_cd,
1233   p_enrt_cvg_end_dt_rl,
1234   p_dpnt_cvg_end_dt_cd,
1235   p_dpnt_cvg_end_dt_rl,
1236   p_dpnt_cvg_strt_dt_cd,
1237   p_dpnt_cvg_strt_dt_rl,
1238   p_dpnt_dsgn_no_ctfn_rqd_flag,
1239   p_drvbl_fctr_dpnt_elig_flag,
1240   p_drvbl_fctr_prtn_elig_flag,
1241   p_enrt_cvg_strt_dt_cd,
1242   p_enrt_cvg_strt_dt_rl,
1243   p_enrt_info_rt_freq_cd,
1244   p_rt_strt_dt_cd,
1245   p_rt_strt_dt_rl,
1246   p_rt_end_dt_cd,
1247   p_rt_end_dt_rl,
1248   p_pgm_grp_cd,
1249   p_pgm_uom,
1250   p_drvbl_fctr_apls_rts_flag,
1251   p_alws_unrstrctd_enrt_flag,
1252   p_enrt_cd,
1253   p_enrt_mthd_cd,
1254   p_poe_lvl_cd,
1255   p_enrt_rl,
1256   p_auto_enrt_mthd_rl,
1257   p_trk_inelig_per_flag,
1258   p_business_group_id,
1259   p_per_cvrd_cd  ,
1260   P_vrfy_fmly_mmbr_rl,
1261   P_vrfy_fmly_mmbr_cd,
1262   p_short_name,			/*FHR*/
1263   p_short_code,			/*FHR*/
1264     p_legislation_code,			/*FHR*/
1265     p_legislation_subgroup,			/*FHR*/
1266   p_Dflt_pgm_flag,
1267   p_Use_prog_points_flag,
1268   p_Dflt_step_cd,
1269   p_Dflt_step_rl,
1270   p_Update_salary_cd,
1271   p_Use_multi_pay_rates_flag,
1272   p_dflt_element_type_id,
1273   p_Dflt_input_value_id,
1274   p_Use_scores_cd,
1275   p_Scores_calc_mthd_cd,
1276   p_Scores_calc_rl,
1277   P_gsp_allow_override_flag,
1278   P_use_variable_rates_flag,
1279   P_salary_calc_mthd_cd,
1280   P_salary_calc_mthd_rl,
1281   p_susp_if_dpnt_ssn_nt_prv_cd,
1282   p_susp_if_dpnt_dob_nt_prv_cd,
1283   p_susp_if_dpnt_adr_nt_prv_cd,
1284   p_susp_if_ctfn_not_dpnt_flag,
1285   p_dpnt_ctfn_determine_cd,
1286   P_pgm_attribute_category,
1287   p_pgm_attribute1,
1288   p_pgm_attribute2,
1289   p_pgm_attribute3,
1290   p_pgm_attribute4,
1291   p_pgm_attribute5,
1292   p_pgm_attribute6,
1293   p_pgm_attribute7,
1294   p_pgm_attribute8,
1295   p_pgm_attribute9,
1296   p_pgm_attribute10,
1297   p_pgm_attribute11,
1298   p_pgm_attribute12,
1299   p_pgm_attribute13,
1300   p_pgm_attribute14,
1301   p_pgm_attribute15,
1302   p_pgm_attribute16,
1303   p_pgm_attribute17,
1304   p_pgm_attribute18,
1305   p_pgm_attribute19,
1306   p_pgm_attribute20,
1307   p_pgm_attribute21,
1308   p_pgm_attribute22,
1309   p_pgm_attribute23,
1310   p_pgm_attribute24,
1311   p_pgm_attribute25,
1312   p_pgm_attribute26,
1313   p_pgm_attribute27,
1314   p_pgm_attribute28,
1315   p_pgm_attribute29,
1316   p_pgm_attribute30,
1317   p_all_inelig,
1318   p_object_version_number
1319   );
1320   --
1321   -- Having converted the arguments into the
1322   -- plsql record structure we call the corresponding record
1323   -- business process.
1324   --
1325   --
1326   upd(l_rec, p_effective_date, p_datetrack_mode);
1327   p_object_version_number       := l_rec.object_version_number;
1328   p_effective_start_date        := l_rec.effective_start_date;
1329   p_effective_end_date          := l_rec.effective_end_date;
1330   --
1331   --
1332   hr_utility.set_location(' Leaving:'||l_proc, 10);
1333 End upd;
1334 --
1335 end ben_pgm_upd;