DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_CPG_SHD

Source


1 Package Body ben_cpg_shd as
2 /* $Header: becpgrhi.pkb 120.0 2005/05/28 01:13:13 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ben_cpg_shd.';  -- Global package name
9 g_debug  boolean := hr_utility.debug_enabled;
10 --
11 -- ----------------------------------------------------------------------------
12 -- |------------------------< return_api_dml_status >-------------------------|
13 -- ----------------------------------------------------------------------------
14 Function return_api_dml_status Return Boolean Is
15 --
16 Begin
17   --
18   Return (nvl(g_api_dml, false));
19   --
20 End return_api_dml_status;
21 --
22 -- ----------------------------------------------------------------------------
23 -- |---------------------------< constraint_error >---------------------------|
24 -- ----------------------------------------------------------------------------
25 Procedure constraint_error
26   (p_constraint_name in all_constraints.constraint_name%TYPE
27   ) Is
28 --
29   l_proc        varchar2(72) := g_package||'constraint_error';
30 --
31 Begin
32   --
33   If (p_constraint_name = 'BEN_CWB_PERSON_GROUPS_PK') Then
34     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
35     fnd_message.set_token('PROCEDURE', l_proc);
36     fnd_message.set_token('STEP','5');
37     fnd_message.raise_error;
38   Else
39     fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
40     fnd_message.set_token('PROCEDURE', l_proc);
41     fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
42     fnd_message.raise_error;
43   End If;
44   --
45 End constraint_error;
46 --
47 -- ----------------------------------------------------------------------------
48 -- |-----------------------------< api_updating >-----------------------------|
49 -- ----------------------------------------------------------------------------
50 Function api_updating
51   (p_group_per_in_ler_id                  in     number
52   ,p_group_pl_id                          in     number
53   ,p_group_oipl_id                        in     number
54   ,p_object_version_number                in     number
55   )
56   Return Boolean Is
57   --
58   --
59   -- Cursor selects the 'current' row from the HR Schema
60   --
61   Cursor C_Sel1 is
62     select
63        group_per_in_ler_id
64       ,group_pl_id
65       ,group_oipl_id
66       ,lf_evt_ocrd_dt
67       ,bdgt_pop_cd
68       ,due_dt
69       ,access_cd
70       ,approval_cd
71       ,approval_date
72       ,approval_comments
73       ,submit_cd
74       ,submit_date
75       ,submit_comments
76       ,dist_bdgt_val
77       ,ws_bdgt_val
78       ,rsrv_val
79       ,dist_bdgt_mn_val
80       ,dist_bdgt_mx_val
81       ,dist_bdgt_incr_val
82       ,ws_bdgt_mn_val
83       ,ws_bdgt_mx_val
84       ,ws_bdgt_incr_val
85       ,rsrv_mn_val
86       ,rsrv_mx_val
87       ,rsrv_incr_val
88       ,dist_bdgt_iss_val
89       ,ws_bdgt_iss_val
90       ,dist_bdgt_iss_date
91       ,ws_bdgt_iss_date
92       ,ws_bdgt_val_last_upd_date
93       ,dist_bdgt_val_last_upd_date
94       ,rsrv_val_last_upd_date
95       ,ws_bdgt_val_last_upd_by
96       ,dist_bdgt_val_last_upd_by
97       ,rsrv_val_last_upd_by
98       ,object_version_number
99     from        ben_cwb_person_groups
100     where       group_per_in_ler_id = p_group_per_in_ler_id
101     and   group_pl_id = p_group_pl_id
102     and   group_oipl_id = p_group_oipl_id;
103   --
104   l_fct_ret     boolean;
105   --
106 Begin
107   --
108   If (p_group_per_in_ler_id is null and
109       p_group_pl_id is null and
110       p_group_oipl_id is null and
111       p_object_version_number is null
112      ) Then
113     --
114     -- One of the primary key arguments is null therefore we must
115     -- set the returning function value to false
116     --
117     l_fct_ret := false;
118   Else
119     If (p_group_per_in_ler_id
120         = ben_cpg_shd.g_old_rec.group_per_in_ler_id and
121         p_group_pl_id
122         = ben_cpg_shd.g_old_rec.group_pl_id and
123         p_group_oipl_id
124         = ben_cpg_shd.g_old_rec.group_oipl_id and
125         p_object_version_number
126         = ben_cpg_shd.g_old_rec.object_version_number
127        ) Then
128       --
129       -- The g_old_rec is current therefore we must
130       -- set the returning function to true
131       --
132       l_fct_ret := true;
133     Else
134       --
135       -- Select the current row into g_old_rec
136       --
137       Open C_Sel1;
138       Fetch C_Sel1 Into ben_cpg_shd.g_old_rec;
139       If C_Sel1%notfound Then
140         Close C_Sel1;
141         --
142         -- The primary key is invalid therefore we must error
143         --
144         fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
145         fnd_message.raise_error;
146       End If;
147       Close C_Sel1;
148       If (p_object_version_number
149           <> ben_cpg_shd.g_old_rec.object_version_number) Then
150         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
151         fnd_message.raise_error;
152       End If;
153       l_fct_ret := true;
154     End If;
155   End If;
156   Return (l_fct_ret);
157 --
158 End api_updating;
159 --
160 -- ----------------------------------------------------------------------------
161 -- |---------------------------------< lck >----------------------------------|
162 -- ----------------------------------------------------------------------------
163 Procedure lck
164   (p_group_per_in_ler_id                  in     number
165   ,p_group_pl_id                          in     number
166   ,p_group_oipl_id                        in     number
167   ,p_object_version_number                in     number
168   ) is
169 --
170 -- Cursor selects the 'current' row from the HR Schema
171 --
172   Cursor C_Sel1 is
173     select
174        group_per_in_ler_id
175       ,group_pl_id
176       ,group_oipl_id
177       ,lf_evt_ocrd_dt
178       ,bdgt_pop_cd
179       ,due_dt
180       ,access_cd
181       ,approval_cd
182       ,approval_date
183       ,approval_comments
184       ,submit_cd
185       ,submit_date
186       ,submit_comments
187       ,dist_bdgt_val
188       ,ws_bdgt_val
189       ,rsrv_val
190       ,dist_bdgt_mn_val
191       ,dist_bdgt_mx_val
192       ,dist_bdgt_incr_val
193       ,ws_bdgt_mn_val
194       ,ws_bdgt_mx_val
195       ,ws_bdgt_incr_val
196       ,rsrv_mn_val
197       ,rsrv_mx_val
198       ,rsrv_incr_val
199       ,dist_bdgt_iss_val
200       ,ws_bdgt_iss_val
201       ,dist_bdgt_iss_date
202       ,ws_bdgt_iss_date
203       ,ws_bdgt_val_last_upd_date
204       ,dist_bdgt_val_last_upd_date
205       ,rsrv_val_last_upd_date
206       ,ws_bdgt_val_last_upd_by
207       ,dist_bdgt_val_last_upd_by
208       ,rsrv_val_last_upd_by
209       ,object_version_number
210     from        ben_cwb_person_groups
211     where       group_per_in_ler_id = p_group_per_in_ler_id
212     and   group_pl_id = p_group_pl_id
213     and   group_oipl_id = p_group_oipl_id
214     for update nowait;
215 --
216   l_proc        varchar2(72) := g_package||'lck';
217 --
218 Begin
219   if g_debug then
220      hr_utility.set_location('Entering:'||l_proc, 5);
221   end if;
222   --
223   hr_api.mandatory_arg_error
224     (p_api_name           => l_proc
225     ,p_argument           => 'GROUP_PER_IN_LER_ID'
226     ,p_argument_value     => p_group_per_in_ler_id
227     );
228   if g_debug then
229      hr_utility.set_location(l_proc,6);
230   end if;
231   hr_api.mandatory_arg_error
232     (p_api_name           => l_proc
233     ,p_argument           => 'GROUP_PL_ID'
234     ,p_argument_value     => p_group_pl_id
235     );
236   if g_debug then
237      hr_utility.set_location(l_proc,7);
238   end if;
239   hr_api.mandatory_arg_error
240     (p_api_name           => l_proc
241     ,p_argument           => 'GROUP_OIPL_ID'
242     ,p_argument_value     => p_group_oipl_id
243     );
244   if g_debug then
245      hr_utility.set_location(l_proc,8);
246   end if;
247   hr_api.mandatory_arg_error
248     (p_api_name           => l_proc
249     ,p_argument           => 'OBJECT_VERSION_NUMBER'
250     ,p_argument_value     => p_object_version_number
251     );
252   --
253   Open  C_Sel1;
254   Fetch C_Sel1 Into ben_cpg_shd.g_old_rec;
255   If C_Sel1%notfound then
256     Close C_Sel1;
257     --
258     -- The primary key is invalid therefore we must error
259     --
260     fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
261     fnd_message.raise_error;
262   End If;
263   Close C_Sel1;
264   If (p_object_version_number
265       <> ben_cpg_shd.g_old_rec.object_version_number) Then
266         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
267         fnd_message.raise_error;
268   End If;
269   --
270   if g_debug then
271      hr_utility.set_location(' Leaving:'||l_proc, 10);
272   end if;
273   --
274   -- We need to trap the ORA LOCK exception
275   --
276 Exception
277   When HR_Api.Object_Locked then
278     --
279     -- The object is locked therefore we need to supply a meaningful
280     -- error message.
281     --
282     fnd_message.set_name('PAY', 'HR_7165_OBJECT_LOCKED');
283     fnd_message.set_token('TABLE_NAME', 'ben_cwb_person_groups');
284     fnd_message.raise_error;
285 End lck;
286 --
287 -- ----------------------------------------------------------------------------
288 -- |-----------------------------< convert_args >-----------------------------|
289 -- ----------------------------------------------------------------------------
290 Function convert_args
291   (p_group_per_in_ler_id            in number
292   ,p_group_pl_id                    in number
293   ,p_group_oipl_id                  in number
294   ,p_lf_evt_ocrd_dt                 in date
295   ,p_bdgt_pop_cd                    in varchar2
296   ,p_due_dt                         in date
297   ,p_access_cd                      in varchar2
298   ,p_approval_cd                    in varchar2
299   ,p_approval_date                  in date
300   ,p_approval_comments              in varchar2
301   ,p_submit_cd                      in varchar2
302   ,p_submit_date                    in date
303   ,p_submit_comments                in varchar2
304   ,p_dist_bdgt_val                  in number
305   ,p_ws_bdgt_val                    in number
306   ,p_rsrv_val                       in number
307   ,p_dist_bdgt_mn_val               in number
308   ,p_dist_bdgt_mx_val               in number
309   ,p_dist_bdgt_incr_val             in number
310   ,p_ws_bdgt_mn_val                 in number
311   ,p_ws_bdgt_mx_val                 in number
312   ,p_ws_bdgt_incr_val               in number
313   ,p_rsrv_mn_val                    in number
314   ,p_rsrv_mx_val                    in number
315   ,p_rsrv_incr_val                  in number
316   ,p_dist_bdgt_iss_val              in number
317   ,p_ws_bdgt_iss_val                in number
318   ,p_dist_bdgt_iss_date             in date
319   ,p_ws_bdgt_iss_date               in date
320   ,p_ws_bdgt_val_last_upd_date      in date
321   ,p_dist_bdgt_val_last_upd_date    in date
322   ,p_rsrv_val_last_upd_date         in date
323   ,p_ws_bdgt_val_last_upd_by        in number
324   ,p_dist_bdgt_val_last_upd_by      in number
325   ,p_rsrv_val_last_upd_by           in number
326   ,p_object_version_number          in number
327   )
328   Return g_rec_type is
329 --
330   l_rec   g_rec_type;
331 --
332 Begin
333   --
334   -- Convert arguments into local l_rec structure.
335   --
336   l_rec.group_per_in_ler_id              := p_group_per_in_ler_id;
337   l_rec.group_pl_id                      := p_group_pl_id;
338   l_rec.group_oipl_id                    := p_group_oipl_id;
339   l_rec.lf_evt_ocrd_dt                   := p_lf_evt_ocrd_dt;
340   l_rec.bdgt_pop_cd                      := p_bdgt_pop_cd;
341   l_rec.due_dt                           := p_due_dt;
342   l_rec.access_cd                        := p_access_cd;
343   l_rec.approval_cd                      := p_approval_cd;
344   l_rec.approval_date                    := p_approval_date;
345   l_rec.approval_comments                := p_approval_comments;
346   l_rec.submit_cd                        := p_submit_cd;
347   l_rec.submit_date                      := p_submit_date;
348   l_rec.submit_comments                  := p_submit_comments;
349   l_rec.dist_bdgt_val                    := p_dist_bdgt_val;
350   l_rec.ws_bdgt_val                      := p_ws_bdgt_val;
351   l_rec.rsrv_val                         := p_rsrv_val;
352   l_rec.dist_bdgt_mn_val                 := p_dist_bdgt_mn_val;
353   l_rec.dist_bdgt_mx_val                 := p_dist_bdgt_mx_val;
354   l_rec.dist_bdgt_incr_val               := p_dist_bdgt_incr_val;
355   l_rec.ws_bdgt_mn_val                   := p_ws_bdgt_mn_val;
356   l_rec.ws_bdgt_mx_val                   := p_ws_bdgt_mx_val;
357   l_rec.ws_bdgt_incr_val                 := p_ws_bdgt_incr_val;
358   l_rec.rsrv_mn_val                      := p_rsrv_mn_val;
359   l_rec.rsrv_mx_val                      := p_rsrv_mx_val;
360   l_rec.rsrv_incr_val                    := p_rsrv_incr_val;
361   l_rec.dist_bdgt_iss_val                := p_dist_bdgt_iss_val;
362   l_rec.ws_bdgt_iss_val                  := p_ws_bdgt_iss_val;
363   l_rec.dist_bdgt_iss_date               := p_dist_bdgt_iss_date;
364   l_rec.ws_bdgt_iss_date                 := p_ws_bdgt_iss_date;
365   l_rec.ws_bdgt_val_last_upd_date        := p_ws_bdgt_val_last_upd_date;
366   l_rec.dist_bdgt_val_last_upd_date      := p_dist_bdgt_val_last_upd_date;
367   l_rec.rsrv_val_last_upd_date           := p_rsrv_val_last_upd_date;
368   l_rec.ws_bdgt_val_last_upd_by          := p_ws_bdgt_val_last_upd_by;
369   l_rec.dist_bdgt_val_last_upd_by        := p_dist_bdgt_val_last_upd_by;
370   l_rec.rsrv_val_last_upd_by             := p_rsrv_val_last_upd_by;
371   l_rec.object_version_number            := p_object_version_number;
372   --
373   -- Return the plsql record structure.
374   --
375   Return(l_rec);
376 --
377 End convert_args;
378 --
379 end ben_cpg_shd;