DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_RTS_UPD

Source


1 Package Body ben_rts_upd as
2 /* $Header: bertsrhi.pkb 120.1 2006/01/09 14:37 maagrawa noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ben_rts_upd.';  -- Global package name
9 g_debug boolean := hr_utility.debug_enabled;
10 --
11 -- ----------------------------------------------------------------------------
12 -- |------------------------------< update_dml >------------------------------|
13 -- ----------------------------------------------------------------------------
14 -- {Start Of Comments}
15 --
16 -- Description:
17 --   This procedure controls the actual dml update logic. The processing of
18 --   this procedure is:
19 --   1) Increment the object_version_number by 1 if the object_version_number
20 --      is defined as an attribute for this entity.
21 --   2) To set and unset the g_api_dml status as required (as we are about to
22 --      perform dml).
23 --   3) To update the specified row in the schema using the primary key in
24 --      the predicates.
25 --   4) To trap any constraint violations that may have occurred.
26 --   5) To raise any other errors.
27 --
28 -- Prerequisites:
29 --   This is an internal private procedure which must be called from the upd
30 --   procedure.
31 --
32 -- In Parameters:
33 --   A Pl/Sql record structre.
34 --
35 -- Post Success:
36 --   The specified row will be updated in the schema.
37 --
38 -- Post Failure:
39 --   On the update dml failure it is important to note that we always reset the
40 --   g_api_dml status to false.
41 --   If a check, unique or parent integrity constraint violation is raised the
42 --   constraint_error procedure will be called.
43 --   If any other error is reported, the error will be raised after the
44 --   g_api_dml status is reset.
45 --
46 -- Developer Implementation Notes:
47 --   The update 'set' attribute list should be modified if any of your
48 --   attributes are not updateable.
49 --
50 -- Access Status:
51 --   Internal Row Handler Use Only.
52 --
53 -- {End Of Comments}
54 -- ----------------------------------------------------------------------------
55 Procedure update_dml
56   (p_rec in out nocopy ben_rts_shd.g_rec_type
57   ) is
58 --
59   l_proc  varchar2(72) := g_package||'update_dml';
60 --
61 Begin
62   if g_debug then
63      hr_utility.set_location('Entering:'||l_proc, 5);
64   end if;
65   --
66   -- Increment the object version
67   p_rec.object_version_number := p_rec.object_version_number + 1;
68   --
69   ben_rts_shd.g_api_dml := true;  -- Set the api dml status
70   --
71   -- Update the ben_cwb_person_rates Row
72   --
73   update ben_cwb_person_rates
74     set
75      group_pl_id                     = p_rec.group_pl_id
76     ,group_oipl_id                   = p_rec.group_oipl_id
77     ,lf_evt_ocrd_dt                  = p_rec.lf_evt_ocrd_dt
78     ,person_id                       = p_rec.person_id
79     ,assignment_id                   = p_rec.assignment_id
80     ,elig_flag                       = p_rec.elig_flag
81     ,ws_val                          = p_rec.ws_val
82     ,ws_mn_val                       = p_rec.ws_mn_val
83     ,ws_mx_val                       = p_rec.ws_mx_val
84     ,ws_incr_val                     = p_rec.ws_incr_val
85     ,elig_sal_val                    = p_rec.elig_sal_val
86     ,stat_sal_val                    = p_rec.stat_sal_val
87     ,oth_comp_val                    = p_rec.oth_comp_val
88     ,tot_comp_val                    = p_rec.tot_comp_val
89     ,misc1_val                       = p_rec.misc1_val
90     ,misc2_val                       = p_rec.misc2_val
91     ,misc3_val                       = p_rec.misc3_val
92     ,rec_val                         = p_rec.rec_val
93     ,rec_mn_val                      = p_rec.rec_mn_val
94     ,rec_mx_val                      = p_rec.rec_mx_val
95     ,rec_incr_val                    = p_rec.rec_incr_val
96     ,ws_val_last_upd_date            = p_rec.ws_val_last_upd_date
97     ,ws_val_last_upd_by              = p_rec.ws_val_last_upd_by
98     ,pay_proposal_id                 = p_rec.pay_proposal_id
99     ,element_entry_value_id          = p_rec.element_entry_value_id
100     ,inelig_rsn_cd                   = p_rec.inelig_rsn_cd
101     ,elig_ovrid_dt                   = p_rec.elig_ovrid_dt
102     ,elig_ovrid_person_id            = p_rec.elig_ovrid_person_id
103     ,copy_dist_bdgt_val              = p_rec.copy_dist_bdgt_val
104     ,copy_ws_bdgt_val                = p_rec.copy_ws_bdgt_val
105     ,copy_rsrv_val                   = p_rec.copy_rsrv_val
106     ,copy_dist_bdgt_mn_val           = p_rec.copy_dist_bdgt_mn_val
107     ,copy_dist_bdgt_mx_val           = p_rec.copy_dist_bdgt_mx_val
108     ,copy_dist_bdgt_incr_val         = p_rec.copy_dist_bdgt_incr_val
109     ,copy_ws_bdgt_mn_val             = p_rec.copy_ws_bdgt_mn_val
110     ,copy_ws_bdgt_mx_val             = p_rec.copy_ws_bdgt_mx_val
111     ,copy_ws_bdgt_incr_val           = p_rec.copy_ws_bdgt_incr_val
112     ,copy_rsrv_mn_val                = p_rec.copy_rsrv_mn_val
113     ,copy_rsrv_mx_val                = p_rec.copy_rsrv_mx_val
114     ,copy_rsrv_incr_val              = p_rec.copy_rsrv_incr_val
115     ,copy_dist_bdgt_iss_val          = p_rec.copy_dist_bdgt_iss_val
116     ,copy_ws_bdgt_iss_val            = p_rec.copy_ws_bdgt_iss_val
117     ,copy_dist_bdgt_iss_date         = p_rec.copy_dist_bdgt_iss_date
118     ,copy_ws_bdgt_iss_date           = p_rec.copy_ws_bdgt_iss_date
119     ,comp_posting_date               = p_rec.comp_posting_date
120     ,ws_rt_start_date                = p_rec.ws_rt_start_date
121     ,currency                        = p_rec.currency
122     ,object_version_number           = p_rec.object_version_number
123     where group_per_in_ler_id = p_rec.group_per_in_ler_id
124     and pl_id = p_rec.pl_id
125     and oipl_id = p_rec.oipl_id;
126   --
127   ben_rts_shd.g_api_dml := false;   -- Unset the api dml status
128   --
129   if g_debug then
130      hr_utility.set_location(' Leaving:'||l_proc, 10);
131   end if;
132 --
133 Exception
134   When hr_api.check_integrity_violated Then
135     -- A check constraint has been violated
136     ben_rts_shd.g_api_dml := false;   -- Unset the api dml status
137     ben_rts_shd.constraint_error
138       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
139   When hr_api.parent_integrity_violated Then
140     -- Parent integrity has been violated
141     ben_rts_shd.g_api_dml := false;   -- Unset the api dml status
142     ben_rts_shd.constraint_error
143       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
144   When hr_api.unique_integrity_violated Then
145     -- Unique integrity has been violated
146     ben_rts_shd.g_api_dml := false;   -- Unset the api dml status
147     ben_rts_shd.constraint_error
148       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
149   When Others Then
150     ben_rts_shd.g_api_dml := false;   -- Unset the api dml status
151     Raise;
152 End update_dml;
153 --
154 -- ----------------------------------------------------------------------------
155 -- |------------------------------< pre_update >------------------------------|
156 -- ----------------------------------------------------------------------------
157 -- {Start Of Comments}
158 --
159 -- Description:
160 --   This private procedure contains any processing which is required before
161 --   the update dml.
162 --
163 -- Prerequisites:
164 --   This is an internal procedure which is called from the upd procedure.
165 --
166 -- In Parameters:
167 --   A Pl/Sql record structure.
168 --
169 -- Post Success:
170 --   Processing continues.
171 --
172 -- Post Failure:
173 --   If an error has occurred, an error message and exception wil be raised
174 --   but not handled.
175 --
176 -- Developer Implementation Notes:
177 --   Any pre-processing required before the update dml is issued should be
178 --   coded within this procedure. It is important to note that any 3rd party
179 --   maintenance should be reviewed before placing in this procedure.
180 --
181 -- Access Status:
182 --   Internal Row Handler Use Only.
183 --
184 -- {End Of Comments}
185 -- ----------------------------------------------------------------------------
186 Procedure pre_update
187   (p_rec in ben_rts_shd.g_rec_type
188   ) is
189 --
190   l_proc  varchar2(72) := g_package||'pre_update';
191 --
192 Begin
193   if g_debug then
194      hr_utility.set_location('Entering:'||l_proc, 5);
195   end if;
196   --
197   if g_debug then
198      hr_utility.set_location(' Leaving:'||l_proc, 10);
199   end if;
200 End pre_update;
201 --
202 -- ----------------------------------------------------------------------------
203 -- |-----------------------------< post_update >------------------------------|
204 -- ----------------------------------------------------------------------------
205 -- {Start Of Comments}
206 --
207 -- Description:
208 --   This private procedure contains any processing which is required after
209 --   the update dml.
210 --
211 -- Prerequisites:
212 --   This is an internal procedure which is called from the upd procedure.
213 --
214 -- In Parameters:
215 --   A Pl/Sql record structure.
216 --
217 -- Post Success:
218 --   Processing continues.
219 --
220 -- Post Failure:
221 --   If an error has occurred, an error message and exception will be raised
222 --   but not handled.
223 --
224 -- Developer Implementation Notes:
225 --   Any post-processing required after the update dml is issued should be
226 --   coded within this procedure. It is important to note that any 3rd party
227 --   maintenance should be reviewed before placing in this procedure.
228 --
229 -- Access Status:
230 --   Internal Row Handler Use Only.
231 --
232 -- {End Of Comments}
233 -- ----------------------------------------------------------------------------
234 Procedure post_update
235   (p_rec                          in ben_rts_shd.g_rec_type
236   ) is
237 --
238   l_proc  varchar2(72) := g_package||'post_update';
239 --
240 Begin
241   if g_debug then
242      hr_utility.set_location('Entering:'||l_proc, 5);
243   end if;
244   begin
245     --
246     ben_rts_rku.after_update
247       (p_person_rate_id
248       => p_rec.person_rate_id
249       ,p_group_per_in_ler_id
250       => p_rec.group_per_in_ler_id
251       ,p_pl_id
252       => p_rec.pl_id
253       ,p_oipl_id
254       => p_rec.oipl_id
255       ,p_group_pl_id
256       => p_rec.group_pl_id
257       ,p_group_oipl_id
258       => p_rec.group_oipl_id
259       ,p_lf_evt_ocrd_dt
260       => p_rec.lf_evt_ocrd_dt
261       ,p_person_id
262       => p_rec.person_id
263       ,p_assignment_id
264       => p_rec.assignment_id
265       ,p_elig_flag
266       => p_rec.elig_flag
267       ,p_ws_val
268       => p_rec.ws_val
269       ,p_ws_mn_val
270       => p_rec.ws_mn_val
271       ,p_ws_mx_val
272       => p_rec.ws_mx_val
273       ,p_ws_incr_val
274       => p_rec.ws_incr_val
275       ,p_elig_sal_val
276       => p_rec.elig_sal_val
277       ,p_stat_sal_val
278       => p_rec.stat_sal_val
279       ,p_oth_comp_val
280       => p_rec.oth_comp_val
281       ,p_tot_comp_val
282       => p_rec.tot_comp_val
283       ,p_misc1_val
284       => p_rec.misc1_val
285       ,p_misc2_val
286       => p_rec.misc2_val
287       ,p_misc3_val
288       => p_rec.misc3_val
289       ,p_rec_val
290       => p_rec.rec_val
291       ,p_rec_mn_val
292       => p_rec.rec_mn_val
293       ,p_rec_mx_val
294       => p_rec.rec_mx_val
295       ,p_rec_incr_val
296       => p_rec.rec_incr_val
297       ,p_ws_val_last_upd_date
298       => p_rec.ws_val_last_upd_date
299       ,p_ws_val_last_upd_by
300       => p_rec.ws_val_last_upd_by
301       ,p_pay_proposal_id
302       => p_rec.pay_proposal_id
303       ,p_element_entry_value_id
304       => p_rec.element_entry_value_id
305       ,p_inelig_rsn_cd
306       => p_rec.inelig_rsn_cd
307       ,p_elig_ovrid_dt
308       => p_rec.elig_ovrid_dt
309       ,p_elig_ovrid_person_id
310       => p_rec.elig_ovrid_person_id
311       ,p_copy_dist_bdgt_val
312       => p_rec.copy_dist_bdgt_val
313       ,p_copy_ws_bdgt_val
314       => p_rec.copy_ws_bdgt_val
315       ,p_copy_rsrv_val
316       => p_rec.copy_rsrv_val
317       ,p_copy_dist_bdgt_mn_val
318       => p_rec.copy_dist_bdgt_mn_val
319       ,p_copy_dist_bdgt_mx_val
320       => p_rec.copy_dist_bdgt_mx_val
321       ,p_copy_dist_bdgt_incr_val
322       => p_rec.copy_dist_bdgt_incr_val
323       ,p_copy_ws_bdgt_mn_val
324       => p_rec.copy_ws_bdgt_mn_val
325       ,p_copy_ws_bdgt_mx_val
326       => p_rec.copy_ws_bdgt_mx_val
327       ,p_copy_ws_bdgt_incr_val
328       => p_rec.copy_ws_bdgt_incr_val
329       ,p_copy_rsrv_mn_val
330       => p_rec.copy_rsrv_mn_val
331       ,p_copy_rsrv_mx_val
332       => p_rec.copy_rsrv_mx_val
333       ,p_copy_rsrv_incr_val
334       => p_rec.copy_rsrv_incr_val
335       ,p_copy_dist_bdgt_iss_val
336       => p_rec.copy_dist_bdgt_iss_val
337       ,p_copy_ws_bdgt_iss_val
338       => p_rec.copy_ws_bdgt_iss_val
339       ,p_copy_dist_bdgt_iss_date
340       => p_rec.copy_dist_bdgt_iss_date
341       ,p_copy_ws_bdgt_iss_date
342       => p_rec.copy_ws_bdgt_iss_date
343       ,p_comp_posting_date
344       => p_rec.comp_posting_date
345       ,p_ws_rt_start_date
346       => p_rec.ws_rt_start_date
347       ,p_currency
348       => p_rec.currency
349       ,p_object_version_number
350       => p_rec.object_version_number
351       ,p_group_per_in_ler_id_o
352       => ben_rts_shd.g_old_rec.group_per_in_ler_id
353       ,p_pl_id_o
354       => ben_rts_shd.g_old_rec.pl_id
355       ,p_oipl_id_o
356       => ben_rts_shd.g_old_rec.oipl_id
357       ,p_group_pl_id_o
358       => ben_rts_shd.g_old_rec.group_pl_id
359       ,p_group_oipl_id_o
360       => ben_rts_shd.g_old_rec.group_oipl_id
361       ,p_lf_evt_ocrd_dt_o
362       => ben_rts_shd.g_old_rec.lf_evt_ocrd_dt
363       ,p_person_id_o
364       => ben_rts_shd.g_old_rec.person_id
365       ,p_assignment_id_o
366       => ben_rts_shd.g_old_rec.assignment_id
367       ,p_elig_flag_o
368       => ben_rts_shd.g_old_rec.elig_flag
369       ,p_ws_val_o
370       => ben_rts_shd.g_old_rec.ws_val
371       ,p_ws_mn_val_o
372       => ben_rts_shd.g_old_rec.ws_mn_val
373       ,p_ws_mx_val_o
374       => ben_rts_shd.g_old_rec.ws_mx_val
375       ,p_ws_incr_val_o
376       => ben_rts_shd.g_old_rec.ws_incr_val
377       ,p_elig_sal_val_o
378       => ben_rts_shd.g_old_rec.elig_sal_val
379       ,p_stat_sal_val_o
380       => ben_rts_shd.g_old_rec.stat_sal_val
381       ,p_oth_comp_val_o
382       => ben_rts_shd.g_old_rec.oth_comp_val
383       ,p_tot_comp_val_o
384       => ben_rts_shd.g_old_rec.tot_comp_val
385       ,p_misc1_val_o
386       => ben_rts_shd.g_old_rec.misc1_val
387       ,p_misc2_val_o
388       => ben_rts_shd.g_old_rec.misc2_val
389       ,p_misc3_val_o
390       => ben_rts_shd.g_old_rec.misc3_val
391       ,p_rec_val_o
392       => ben_rts_shd.g_old_rec.rec_val
393       ,p_rec_mn_val_o
394       => ben_rts_shd.g_old_rec.rec_mn_val
395       ,p_rec_mx_val_o
396       => ben_rts_shd.g_old_rec.rec_mx_val
397       ,p_rec_incr_val_o
398       => ben_rts_shd.g_old_rec.rec_incr_val
399       ,p_ws_val_last_upd_date_o
400       => ben_rts_shd.g_old_rec.ws_val_last_upd_date
401       ,p_ws_val_last_upd_by_o
402       => ben_rts_shd.g_old_rec.ws_val_last_upd_by
403       ,p_pay_proposal_id_o
404       => ben_rts_shd.g_old_rec.pay_proposal_id
405       ,p_element_entry_value_id_o
406       => ben_rts_shd.g_old_rec.element_entry_value_id
407       ,p_inelig_rsn_cd_o
408       => ben_rts_shd.g_old_rec.inelig_rsn_cd
409       ,p_elig_ovrid_dt_o
410       => ben_rts_shd.g_old_rec.elig_ovrid_dt
411       ,p_elig_ovrid_person_id_o
412       => ben_rts_shd.g_old_rec.elig_ovrid_person_id
413       ,p_copy_dist_bdgt_val_o
414       => ben_rts_shd.g_old_rec.copy_dist_bdgt_val
415       ,p_copy_ws_bdgt_val_o
416       => ben_rts_shd.g_old_rec.copy_ws_bdgt_val
417       ,p_copy_rsrv_val_o
418       => ben_rts_shd.g_old_rec.copy_rsrv_val
419       ,p_copy_dist_bdgt_mn_val_o
420       => ben_rts_shd.g_old_rec.copy_dist_bdgt_mn_val
421       ,p_copy_dist_bdgt_mx_val_o
422       => ben_rts_shd.g_old_rec.copy_dist_bdgt_mx_val
423       ,p_copy_dist_bdgt_incr_val_o
424       => ben_rts_shd.g_old_rec.copy_dist_bdgt_incr_val
425       ,p_copy_ws_bdgt_mn_val_o
426       => ben_rts_shd.g_old_rec.copy_ws_bdgt_mn_val
427       ,p_copy_ws_bdgt_mx_val_o
428       => ben_rts_shd.g_old_rec.copy_ws_bdgt_mx_val
429       ,p_copy_ws_bdgt_incr_val_o
430       => ben_rts_shd.g_old_rec.copy_ws_bdgt_incr_val
431       ,p_copy_rsrv_mn_val_o
432       => ben_rts_shd.g_old_rec.copy_rsrv_mn_val
433       ,p_copy_rsrv_mx_val_o
434       => ben_rts_shd.g_old_rec.copy_rsrv_mx_val
435       ,p_copy_rsrv_incr_val_o
436       => ben_rts_shd.g_old_rec.copy_rsrv_incr_val
437       ,p_copy_dist_bdgt_iss_val_o
438       => ben_rts_shd.g_old_rec.copy_dist_bdgt_iss_val
439       ,p_copy_ws_bdgt_iss_val_o
440       => ben_rts_shd.g_old_rec.copy_ws_bdgt_iss_val
441       ,p_copy_dist_bdgt_iss_date_o
442       => ben_rts_shd.g_old_rec.copy_dist_bdgt_iss_date
443       ,p_copy_ws_bdgt_iss_date_o
444       => ben_rts_shd.g_old_rec.copy_ws_bdgt_iss_date
445       ,p_comp_posting_date_o
446       => ben_rts_shd.g_old_rec.comp_posting_date
447       ,p_ws_rt_start_date_o
448       => ben_rts_shd.g_old_rec.ws_rt_start_date
449       ,p_currency_o
450       => ben_rts_shd.g_old_rec.currency
451       ,p_object_version_number_o
452       => ben_rts_shd.g_old_rec.object_version_number
453       );
454     --
455   exception
456     --
457     when hr_api.cannot_find_prog_unit then
458       --
459       hr_api.cannot_find_prog_unit_error
460         (p_module_name => 'BEN_CWB_PERSON_RATES'
461         ,p_hook_type   => 'AU');
462       --
463   end;
464   --
465   if g_debug then
466      hr_utility.set_location(' Leaving:'||l_proc, 10);
467   end if;
468 End post_update;
469 --
470 -- ----------------------------------------------------------------------------
471 -- |-----------------------------< convert_defs >-----------------------------|
472 -- ----------------------------------------------------------------------------
473 -- {Start Of Comments}
474 --
475 -- Description:
476 --   The Convert_Defs procedure has one very important function:
477 --   It must return the record structure for the row with all system defaulted
478 --   values converted into its corresponding parameter value for update. When
479 --   we attempt to update a row through the Upd process , certain
480 --   parameters can be defaulted which enables flexibility in the calling of
481 --   the upd process (e.g. only attributes which need to be updated need to be
482 --   specified). For the upd process to determine which attributes
483 --   have NOT been specified we need to check if the parameter has a reserved
484 --   system default value. Therefore, for all parameters which have a
485 --   corresponding reserved system default mechanism specified we need to
486 --   check if a system default is being used. If a system default is being
487 --   used then we convert the defaulted value into its corresponding attribute
488 --   value held in the g_old_rec data structure.
489 --
490 -- Prerequisites:
491 --   This private function can only be called from the upd process.
492 --
493 -- In Parameters:
494 --   A Pl/Sql record structure.
495 --
496 -- Post Success:
497 --   The record structure will be returned with all system defaulted parameter
498 --   values converted into its current row attribute value.
499 --
500 -- Post Failure:
501 --   No direct error handling is required within this function. Any possible
502 --   errors within this procedure will be a PL/SQL value error due to
503 --   conversion of datatypes or data lengths.
504 --
505 -- Developer Implementation Notes:
506 --   None.
507 --
508 -- Access Status:
509 --   Internal Row Handler Use Only.
510 --
511 -- {End Of Comments}
512 -- ----------------------------------------------------------------------------
513 Procedure convert_defs
514   (p_rec in out nocopy ben_rts_shd.g_rec_type
515   ) is
516 --
517 Begin
518   --
519   -- We must now examine each argument value in the
520   -- p_rec plsql record structure
521   -- to see if a system default is being used. If a system default
522   -- is being used then we must set to the 'current' argument value.
523   --
524   If (p_rec.group_pl_id = hr_api.g_number) then
525     p_rec.group_pl_id :=
526     ben_rts_shd.g_old_rec.group_pl_id;
527   End If;
528   If (p_rec.group_oipl_id = hr_api.g_number) then
529     p_rec.group_oipl_id :=
530     ben_rts_shd.g_old_rec.group_oipl_id;
531   End If;
532   If (p_rec.lf_evt_ocrd_dt = hr_api.g_date) then
533     p_rec.lf_evt_ocrd_dt :=
534     ben_rts_shd.g_old_rec.lf_evt_ocrd_dt;
535   End If;
536   If (p_rec.person_id = hr_api.g_number) then
537     p_rec.person_id :=
538     ben_rts_shd.g_old_rec.person_id;
539   End If;
540   If (p_rec.assignment_id = hr_api.g_number) then
541     p_rec.assignment_id :=
542     ben_rts_shd.g_old_rec.assignment_id;
543   End If;
544   If (p_rec.elig_flag = hr_api.g_varchar2) then
545     p_rec.elig_flag :=
546     ben_rts_shd.g_old_rec.elig_flag;
547   End If;
548   If (p_rec.ws_val = hr_api.g_number) then
549     p_rec.ws_val :=
550     ben_rts_shd.g_old_rec.ws_val;
551   End If;
552   If (p_rec.ws_mn_val = hr_api.g_number) then
553     p_rec.ws_mn_val :=
554     ben_rts_shd.g_old_rec.ws_mn_val;
555   End If;
556   If (p_rec.ws_mx_val = hr_api.g_number) then
557     p_rec.ws_mx_val :=
558     ben_rts_shd.g_old_rec.ws_mx_val;
559   End If;
560   If (p_rec.ws_incr_val = hr_api.g_number) then
561     p_rec.ws_incr_val :=
562     ben_rts_shd.g_old_rec.ws_incr_val;
563   End If;
564   If (p_rec.elig_sal_val = hr_api.g_number) then
565     p_rec.elig_sal_val :=
566     ben_rts_shd.g_old_rec.elig_sal_val;
567   End If;
568   If (p_rec.stat_sal_val = hr_api.g_number) then
569     p_rec.stat_sal_val :=
570     ben_rts_shd.g_old_rec.stat_sal_val;
571   End If;
572   If (p_rec.oth_comp_val = hr_api.g_number) then
573     p_rec.oth_comp_val :=
574     ben_rts_shd.g_old_rec.oth_comp_val;
575   End If;
576   If (p_rec.tot_comp_val = hr_api.g_number) then
577     p_rec.tot_comp_val :=
578     ben_rts_shd.g_old_rec.tot_comp_val;
579   End If;
580   If (p_rec.misc1_val = hr_api.g_number) then
581     p_rec.misc1_val :=
582     ben_rts_shd.g_old_rec.misc1_val;
583   End If;
584   If (p_rec.misc2_val = hr_api.g_number) then
585     p_rec.misc2_val :=
586     ben_rts_shd.g_old_rec.misc2_val;
587   End If;
588   If (p_rec.misc3_val = hr_api.g_number) then
589     p_rec.misc3_val :=
590     ben_rts_shd.g_old_rec.misc3_val;
591   End If;
592   If (p_rec.rec_val = hr_api.g_number) then
593     p_rec.rec_val :=
594     ben_rts_shd.g_old_rec.rec_val;
595   End If;
596   If (p_rec.rec_mn_val = hr_api.g_number) then
597     p_rec.rec_mn_val :=
598     ben_rts_shd.g_old_rec.rec_mn_val;
599   End If;
600   If (p_rec.rec_mx_val = hr_api.g_number) then
601     p_rec.rec_mx_val :=
602     ben_rts_shd.g_old_rec.rec_mx_val;
603   End If;
604   If (p_rec.rec_incr_val = hr_api.g_number) then
605     p_rec.rec_incr_val :=
606     ben_rts_shd.g_old_rec.rec_incr_val;
607   End If;
608   If (p_rec.ws_val_last_upd_date = hr_api.g_date) then
609     p_rec.ws_val_last_upd_date :=
610     ben_rts_shd.g_old_rec.ws_val_last_upd_date;
611   End If;
612   If (p_rec.ws_val_last_upd_by = hr_api.g_number) then
613     p_rec.ws_val_last_upd_by :=
614     ben_rts_shd.g_old_rec.ws_val_last_upd_by;
615   End If;
616   If (p_rec.pay_proposal_id = hr_api.g_number) then
617     p_rec.pay_proposal_id :=
618     ben_rts_shd.g_old_rec.pay_proposal_id;
619   End If;
620   If (p_rec.element_entry_value_id = hr_api.g_number) then
621     p_rec.element_entry_value_id :=
622     ben_rts_shd.g_old_rec.element_entry_value_id;
623   End If;
624   If (p_rec.inelig_rsn_cd = hr_api.g_varchar2) then
625     p_rec.inelig_rsn_cd :=
626     ben_rts_shd.g_old_rec.inelig_rsn_cd;
627   End If;
628   If (p_rec.elig_ovrid_dt = hr_api.g_date) then
629     p_rec.elig_ovrid_dt :=
630     ben_rts_shd.g_old_rec.elig_ovrid_dt;
631   End If;
632   If (p_rec.elig_ovrid_person_id = hr_api.g_number) then
633     p_rec.elig_ovrid_person_id :=
634     ben_rts_shd.g_old_rec.elig_ovrid_person_id;
635   End If;
636   If (p_rec.copy_dist_bdgt_val = hr_api.g_number) then
637     p_rec.copy_dist_bdgt_val :=
638     ben_rts_shd.g_old_rec.copy_dist_bdgt_val;
639   End If;
640   If (p_rec.copy_ws_bdgt_val = hr_api.g_number) then
641     p_rec.copy_ws_bdgt_val :=
642     ben_rts_shd.g_old_rec.copy_ws_bdgt_val;
643   End If;
644   If (p_rec.copy_rsrv_val = hr_api.g_number) then
645     p_rec.copy_rsrv_val :=
646     ben_rts_shd.g_old_rec.copy_rsrv_val;
647   End If;
648   If (p_rec.copy_dist_bdgt_mn_val = hr_api.g_number) then
649     p_rec.copy_dist_bdgt_mn_val :=
650     ben_rts_shd.g_old_rec.copy_dist_bdgt_mn_val;
651   End If;
652   If (p_rec.copy_dist_bdgt_mx_val = hr_api.g_number) then
653     p_rec.copy_dist_bdgt_mx_val :=
654     ben_rts_shd.g_old_rec.copy_dist_bdgt_mx_val;
655   End If;
656   If (p_rec.copy_dist_bdgt_incr_val = hr_api.g_number) then
657     p_rec.copy_dist_bdgt_incr_val :=
658     ben_rts_shd.g_old_rec.copy_dist_bdgt_incr_val;
659   End If;
660   If (p_rec.copy_ws_bdgt_mn_val = hr_api.g_number) then
661     p_rec.copy_ws_bdgt_mn_val :=
662     ben_rts_shd.g_old_rec.copy_ws_bdgt_mn_val;
663   End If;
664   If (p_rec.copy_ws_bdgt_mx_val = hr_api.g_number) then
665     p_rec.copy_ws_bdgt_mx_val :=
666     ben_rts_shd.g_old_rec.copy_ws_bdgt_mx_val;
667   End If;
668   If (p_rec.copy_ws_bdgt_incr_val = hr_api.g_number) then
669     p_rec.copy_ws_bdgt_incr_val :=
670     ben_rts_shd.g_old_rec.copy_ws_bdgt_incr_val;
671   End If;
672   If (p_rec.copy_rsrv_mn_val = hr_api.g_number) then
673     p_rec.copy_rsrv_mn_val :=
674     ben_rts_shd.g_old_rec.copy_rsrv_mn_val;
675   End If;
676   If (p_rec.copy_rsrv_mx_val = hr_api.g_number) then
677     p_rec.copy_rsrv_mx_val :=
678     ben_rts_shd.g_old_rec.copy_rsrv_mx_val;
679   End If;
680   If (p_rec.copy_rsrv_incr_val = hr_api.g_number) then
681     p_rec.copy_rsrv_incr_val :=
682     ben_rts_shd.g_old_rec.copy_rsrv_incr_val;
683   End If;
684   If (p_rec.copy_dist_bdgt_iss_val = hr_api.g_number) then
685     p_rec.copy_dist_bdgt_iss_val :=
686     ben_rts_shd.g_old_rec.copy_dist_bdgt_iss_val;
687   End If;
688   If (p_rec.copy_ws_bdgt_iss_val = hr_api.g_number) then
689     p_rec.copy_ws_bdgt_iss_val :=
690     ben_rts_shd.g_old_rec.copy_ws_bdgt_iss_val;
691   End If;
692   If (p_rec.copy_dist_bdgt_iss_date = hr_api.g_date) then
693     p_rec.copy_dist_bdgt_iss_date :=
694     ben_rts_shd.g_old_rec.copy_dist_bdgt_iss_date;
695   End If;
696   If (p_rec.copy_ws_bdgt_iss_date = hr_api.g_date) then
697     p_rec.copy_ws_bdgt_iss_date :=
698     ben_rts_shd.g_old_rec.copy_ws_bdgt_iss_date;
699   End If;
700   If (p_rec.comp_posting_date = hr_api.g_date) then
701     p_rec.comp_posting_date :=
702     ben_rts_shd.g_old_rec.comp_posting_date;
703   End If;
704   If (p_rec.ws_rt_start_date = hr_api.g_date) then
705     p_rec.ws_rt_start_date :=
706     ben_rts_shd.g_old_rec.ws_rt_start_date;
707   End If;
708   If (p_rec.currency = hr_api.g_varchar2) then
709     p_rec.currency :=
710     ben_rts_shd.g_old_rec.currency;
711   End If;
712   --
713 End convert_defs;
714 --
715 -- ----------------------------------------------------------------------------
716 -- |---------------------------------< upd >----------------------------------|
717 -- ----------------------------------------------------------------------------
718 Procedure upd
719   (p_rec                          in out nocopy ben_rts_shd.g_rec_type
720   ) is
721 --
722   l_proc  varchar2(72) := g_package||'upd';
723 --
724 Begin
725   if g_debug then
726      hr_utility.set_location('Entering:'||l_proc, 5);
727   end if;
728   --
729   -- We must lock the row which we need to update.
730   --
731   ben_rts_shd.lck
732     (p_rec.group_per_in_ler_id
733     ,p_rec.pl_id
734     ,p_rec.oipl_id
735     ,p_rec.object_version_number
736     );
737   --
738   -- 1. During an update system defaults are used to determine if
739   --    arguments have been defaulted or not. We must therefore
740   --    derive the full record structure values to be updated.
741   --
742   -- 2. Call the supporting update validate operations.
743   --
744   convert_defs(p_rec);
745   ben_rts_bus.update_validate
746      (p_rec
747      );
748   --
749   -- Call to raise any errors on multi-message list
750   hr_multi_message.end_validation_set;
751   --
752   -- Call the supporting pre-update operation
753   --
754   ben_rts_upd.pre_update(p_rec);
755   --
756   -- Update the row.
757   --
758   ben_rts_upd.update_dml(p_rec);
759   --
760   -- Call the supporting post-update operation
761   --
762   ben_rts_upd.post_update
763      (p_rec
764      );
765   --
766   -- Call to raise any errors on multi-message list
767   hr_multi_message.end_validation_set;
768 End upd;
769 --
770 -- ----------------------------------------------------------------------------
771 -- |---------------------------------< upd >----------------------------------|
772 -- ----------------------------------------------------------------------------
773 Procedure upd
774   (p_group_per_in_ler_id          in     number
775   ,p_pl_id                        in     number
776   ,p_oipl_id                      in     number
777   ,p_object_version_number        in out nocopy number
778   ,p_group_pl_id                  in     number    default hr_api.g_number
779   ,p_group_oipl_id                in     number    default hr_api.g_number
780   ,p_lf_evt_ocrd_dt               in     date      default hr_api.g_date
781   ,p_person_id                    in     number    default hr_api.g_number
782   ,p_assignment_id                in     number    default hr_api.g_number
783   ,p_elig_flag                    in     varchar2  default hr_api.g_varchar2
784   ,p_ws_val                       in     number    default hr_api.g_number
785   ,p_ws_mn_val                    in     number    default hr_api.g_number
786   ,p_ws_mx_val                    in     number    default hr_api.g_number
787   ,p_ws_incr_val                  in     number    default hr_api.g_number
788   ,p_elig_sal_val                 in     number    default hr_api.g_number
789   ,p_stat_sal_val                 in     number    default hr_api.g_number
790   ,p_oth_comp_val                 in     number    default hr_api.g_number
791   ,p_tot_comp_val                 in     number    default hr_api.g_number
792   ,p_misc1_val                    in     number    default hr_api.g_number
793   ,p_misc2_val                    in     number    default hr_api.g_number
794   ,p_misc3_val                    in     number    default hr_api.g_number
795   ,p_rec_val                      in     number    default hr_api.g_number
796   ,p_rec_mn_val                   in     number    default hr_api.g_number
797   ,p_rec_mx_val                   in     number    default hr_api.g_number
798   ,p_rec_incr_val                 in     number    default hr_api.g_number
799   ,p_ws_val_last_upd_date         in     date      default hr_api.g_date
800   ,p_ws_val_last_upd_by           in     number    default hr_api.g_number
801   ,p_pay_proposal_id              in     number    default hr_api.g_number
802   ,p_element_entry_value_id       in     number    default hr_api.g_number
803   ,p_inelig_rsn_cd                in     varchar2  default hr_api.g_varchar2
804   ,p_elig_ovrid_dt                in     date      default hr_api.g_date
805   ,p_elig_ovrid_person_id         in     number    default hr_api.g_number
806   ,p_copy_dist_bdgt_val           in     number    default hr_api.g_number
807   ,p_copy_ws_bdgt_val             in     number    default hr_api.g_number
808   ,p_copy_rsrv_val                in     number    default hr_api.g_number
809   ,p_copy_dist_bdgt_mn_val        in     number    default hr_api.g_number
810   ,p_copy_dist_bdgt_mx_val        in     number    default hr_api.g_number
811   ,p_copy_dist_bdgt_incr_val      in     number    default hr_api.g_number
812   ,p_copy_ws_bdgt_mn_val          in     number    default hr_api.g_number
813   ,p_copy_ws_bdgt_mx_val          in     number    default hr_api.g_number
814   ,p_copy_ws_bdgt_incr_val        in     number    default hr_api.g_number
815   ,p_copy_rsrv_mn_val             in     number    default hr_api.g_number
816   ,p_copy_rsrv_mx_val             in     number    default hr_api.g_number
817   ,p_copy_rsrv_incr_val           in     number    default hr_api.g_number
818   ,p_copy_dist_bdgt_iss_val       in     number    default hr_api.g_number
819   ,p_copy_ws_bdgt_iss_val         in     number    default hr_api.g_number
820   ,p_copy_dist_bdgt_iss_date      in     date      default hr_api.g_date
821   ,p_copy_ws_bdgt_iss_date        in     date      default hr_api.g_date
822   ,p_comp_posting_date            in     date      default hr_api.g_date
823   ,p_ws_rt_start_date             in     date      default hr_api.g_date
824   ,p_currency                     in     varchar2  default hr_api.g_varchar2
825   ) is
826 --
827   l_rec   ben_rts_shd.g_rec_type;
828   l_proc  varchar2(72) := g_package||'upd';
829 --
830 Begin
831   if g_debug then
832      hr_utility.set_location('Entering:'||l_proc, 5);
833   end if;
834   --
835   -- Call conversion function to turn arguments into the
836   -- l_rec structure.
837   --
838   l_rec :=
839   ben_rts_shd.convert_args
840   (null   -- p_person_rate_id
841   ,p_group_per_in_ler_id
842   ,p_pl_id
843   ,p_oipl_id
844   ,p_group_pl_id
845   ,p_group_oipl_id
846   ,p_lf_evt_ocrd_dt
847   ,p_person_id
848   ,p_assignment_id
849   ,p_elig_flag
850   ,p_ws_val
851   ,p_ws_mn_val
852   ,p_ws_mx_val
853   ,p_ws_incr_val
854   ,p_elig_sal_val
855   ,p_stat_sal_val
856   ,p_oth_comp_val
857   ,p_tot_comp_val
858   ,p_misc1_val
859   ,p_misc2_val
860   ,p_misc3_val
861   ,p_rec_val
862   ,p_rec_mn_val
863   ,p_rec_mx_val
864   ,p_rec_incr_val
865   ,p_ws_val_last_upd_date
866   ,p_ws_val_last_upd_by
867   ,p_pay_proposal_id
868   ,p_element_entry_value_id
869   ,p_inelig_rsn_cd
870   ,p_elig_ovrid_dt
871   ,p_elig_ovrid_person_id
872   ,p_copy_dist_bdgt_val
873   ,p_copy_ws_bdgt_val
874   ,p_copy_rsrv_val
875   ,p_copy_dist_bdgt_mn_val
876   ,p_copy_dist_bdgt_mx_val
877   ,p_copy_dist_bdgt_incr_val
878   ,p_copy_ws_bdgt_mn_val
879   ,p_copy_ws_bdgt_mx_val
880   ,p_copy_ws_bdgt_incr_val
881   ,p_copy_rsrv_mn_val
882   ,p_copy_rsrv_mx_val
883   ,p_copy_rsrv_incr_val
884   ,p_copy_dist_bdgt_iss_val
885   ,p_copy_ws_bdgt_iss_val
886   ,p_copy_dist_bdgt_iss_date
887   ,p_copy_ws_bdgt_iss_date
888   ,p_comp_posting_date
889   ,p_ws_rt_start_date
890   ,p_currency
891   ,p_object_version_number
892   );
893   --
894   -- Having converted the arguments into the
895   -- plsql record structure we call the corresponding record
896   -- business process.
897   --
898   ben_rts_upd.upd
899      (l_rec
900      );
901   p_object_version_number := l_rec.object_version_number;
902   --
903   if g_debug then
904      hr_utility.set_location(' Leaving:'||l_proc, 10);
905   end if;
906 End upd;
907 --
908 end ben_rts_upd;