DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FGI_BUS

Source


1 Package Body hr_fgi_bus as
2 /* $Header: hrfgirhi.pkb 115.3 2002/12/03 11:02:49 hjonnala noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  hr_fgi_bus.';  -- Global package name
9 --
10 -- The following two global variables are only to be
11 -- used by the return_legislation_code function.
12 --
13 g_legislation_code            varchar2(150)  default null;
14 g_form_data_group_item_id     number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21   (p_form_data_group_item_id              in number
22   ) is
23   --
24   l_proc              varchar2(72)  :=  g_package||'set_security_group_id';
25   --
26 begin
27   --
28   hr_utility.set_location('Entering:'|| l_proc, 10);
29   --
30   -- No business group context. Security group is not applicable.
31   --
32   null;
33   --
34   hr_utility.set_location(' Leaving:'|| l_proc, 20);
35   --
36 end set_security_group_id;
37 --
38 --  ---------------------------------------------------------------------------
39 --  |---------------------< return_legislation_code >-------------------------|
40 --  ---------------------------------------------------------------------------
41 --
42 Function return_legislation_code
43   (p_form_data_group_item_id              in     number
44   )
45   Return Varchar2 Is
46   --
47   l_legislation_code  varchar2(150);
48   l_proc              varchar2(72)  :=  g_package||'return_legislation_code';
49   --
50 Begin
51   --
52   hr_utility.set_location('Entering:'|| l_proc, 10);
53   --
54   -- Legislation code not available for form data group items
55   --
56   l_legislation_code := null;
57   --
58   hr_utility.set_location(' Leaving:'|| l_proc, 40);
59   return l_legislation_code;
60 end return_legislation_code;
61 --
62 -- ----------------------------------------------------------------------------
63 -- |-----------------------< chk_non_updateable_args >------------------------|
64 -- ----------------------------------------------------------------------------
65 -- {Start Of Comments}
66 --
67 -- Description:
68 --   This procedure is used to ensure that non updateable attributes have
69 --   not been updated. If an attribute has been updated an error is generated.
70 --
71 -- Pre Conditions:
72 --   g_old_rec has been populated with details of the values currently in
73 --   the database.
74 --
75 -- In Arguments:
76 --   p_rec has been populated with the updated values the user would like the
77 --   record set to.
78 --
79 -- Post Success:
80 --   Processing continues if all the non updateable attributes have not
81 --   changed.
82 --
83 -- Post Failure:
84 --   An application error is raised if any of the non updatable attributes
85 --   have been altered.
86 --
87 -- {End Of Comments}
88 -- ----------------------------------------------------------------------------
89 Procedure chk_non_updateable_args
90   (p_rec in hr_fgi_shd.g_rec_type
91   ) IS
92 --
93   l_proc     varchar2(72) := g_package || 'chk_non_updateable_args';
94   l_error    EXCEPTION;
95   l_argument varchar2(30);
96 --
97 Begin
98   --
99   -- Only proceed with the validation if a row exists for the current
100   -- record in the HR Schema.
101   --
102   IF NOT hr_fgi_shd.api_updating
103       (p_form_data_group_item_id              => p_rec.form_data_group_item_id
104       ,p_object_version_number                => p_rec.object_version_number
105       ) THEN
106      fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
107      fnd_message.set_token('PROCEDURE ', l_proc);
108      fnd_message.set_token('STEP ', '5');
109      fnd_message.raise_error;
110   END IF;
111   --
112   IF (nvl(p_rec.form_data_group_id,hr_api.g_number) <>
113       nvl(hr_fgi_shd.g_old_rec.form_data_group_id,hr_api.g_number)
114      ) THEN
115      l_argument := 'form_data_group_id';
116      RAISE l_error;
117   END IF;
118   --
119   IF (nvl(p_rec.form_item_id,hr_api.g_number) <>
120       nvl(hr_fgi_shd.g_old_rec.form_item_id,hr_api.g_number)
121      ) THEN
122      l_argument := 'form_data_group_id';
123      RAISE l_error;
124   END IF;
125   --
126   EXCEPTION
127     WHEN l_error THEN
128        hr_api.argument_changed_error
129          (p_api_name => l_proc
130          ,p_argument => l_argument);
131     WHEN OTHERS THEN
132        RAISE;
133 End chk_non_updateable_args;
134 --
135 -- ----------------------------------------------------------------------------
136 -- |------------------------< chk_form_data_group_id >------------------------|
137 -- ----------------------------------------------------------------------------
138 Procedure chk_form_data_group_id
139   (p_form_data_group_item_id      in number
140   ,p_object_version_number        in number
141   ,p_form_data_group_id           in number
142   ) is
143   --
144   l_proc                         varchar2(72) := g_package || 'chk_form_data_group_id';
145   l_api_updating                 boolean;
146   --
147 Begin
148   hr_utility.set_location('Entering:'||l_proc, 10);
149   --
150   -- Check value has been passed
151   --
152   hr_api.mandatory_arg_error
153     (p_api_name                     => l_proc
154     ,p_argument                     => 'form_data_group_id'
155     ,p_argument_value               => p_form_data_group_id
156     );
157   --
158   hr_utility.set_location('Leaving:'||l_proc, 100);
159 End chk_form_data_group_id;
160 --
161 -- ----------------------------------------------------------------------------
162 -- |---------------------------< chk_form_item_id >---------------------------|
163 -- ----------------------------------------------------------------------------
164 Procedure chk_form_item_id
165   (p_form_data_group_item_id      in number
166   ,p_object_version_number        in number
167   ,p_form_item_id                 in number
168   ) is
169   --
170   l_proc                         varchar2(72) := g_package || 'chk_form_item_id';
171   l_api_updating                 boolean;
172   --
173 Begin
174   hr_utility.set_location('Entering:'||l_proc, 10);
175   --
176   -- Check value has been passed
177   --
178   hr_api.mandatory_arg_error
179     (p_api_name                     => l_proc
180     ,p_argument                     => 'form_item_id'
181     ,p_argument_value               => p_form_item_id
182     );
183   --
184   hr_utility.set_location('Leaving:'||l_proc, 100);
185 End chk_form_item_id;
186 --
187 -- ----------------------------------------------------------------------------
188 -- |-----------------------< chk_data_group_and_item >------------------------|
189 -- ----------------------------------------------------------------------------
190 Procedure chk_data_group_and_item
191   (p_form_data_group_item_id      in number
192   ,p_object_version_number        in number
193   ,p_form_data_group_id           in number
194   ,p_form_item_id                 in number
195   ) is
196   --
197   cursor csr_data_group is
198     select fdg.application_id
199           ,fdg.form_id
200       from hr_form_data_groups_b fdg
201      where fdg.form_data_group_id = p_form_data_group_id;
202   --
203   cursor csr_item is
204     select fim.application_id
205           ,fim.form_id
206       from hr_form_items_b fim
207      where fim.form_item_id = p_form_item_id;
208   --
209   l_proc                         varchar2(72) := g_package || 'chk_data_group_and_item';
210   l_api_updating                 boolean;
211   l_data_group_application_id    number;
212   l_data_group_form_id           number;
213   l_item_application_id          number;
214   l_item_form_id                 number;
215   --
216 Begin
217   hr_utility.set_location('Entering:'||l_proc, 10);
218   --
219   l_api_updating := hr_fgi_shd.api_updating
220     (p_form_data_group_item_id      => p_form_data_group_item_id
221     ,p_object_version_number        => p_object_version_number
222     );
223   hr_utility.set_location(l_proc,20);
224   --
225   -- Only proceed with SQL validation if absolutely necessary
226   --
227   if (  (   l_api_updating
228         and (  (nvl(hr_fgi_shd.g_old_rec.form_data_group_id,hr_api.g_number) <>
229                 nvl(p_form_data_group_id,hr_api.g_number))
230             or (nvl(hr_fgi_shd.g_old_rec.form_item_id,hr_api.g_number) <>
231                 nvl(p_form_item_id,hr_api.g_number))))
232      or (NOT l_api_updating)) then
233     --
234     hr_utility.set_location(l_proc,30);
235     --
236     -- Check the data group and item reference the same form
237     --
238     open csr_data_group;
239     fetch csr_data_group into l_data_group_application_id, l_data_group_form_id;
240     if not csr_data_group%found then
241       close csr_data_group;
242       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
243       fnd_message.set_token('PROCEDURE', l_proc);
244       fnd_message.set_token('STEP','10');
245       fnd_message.raise_error;
246     end if;
247     close csr_data_group;
248     --
249     hr_utility.set_location(l_proc,40);
250     --
251     open csr_item;
252     fetch csr_item into l_item_application_id, l_item_form_id;
253     if not csr_item%found then
254       close csr_item;
255       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
256       fnd_message.set_token('PROCEDURE', l_proc);
257       fnd_message.set_token('STEP','20');
258       fnd_message.raise_error;
259     end if;
260     close csr_item;
261     --
262     hr_utility.set_location(l_proc,50);
263     --
264     if (   nvl(l_data_group_application_id,hr_api.g_number) <> nvl(l_item_application_id,hr_api.g_number)
265        or nvl(l_data_group_form_id,hr_api.g_number) <> nvl(l_item_form_id,hr_api.g_number)) then
266       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
267       fnd_message.set_token('PROCEDURE', l_proc);
268       fnd_message.set_token('STEP','30');
269       fnd_message.raise_error;
270     end if;
271     --
272   end if;
273   --
274   hr_utility.set_location('Leaving:'||l_proc, 100);
275 End chk_data_group_and_item;
276 --
277 -- ----------------------------------------------------------------------------
278 -- |------------------------------< chk_delete >------------------------------|
279 -- ----------------------------------------------------------------------------
280 Procedure chk_delete
281   (p_rec                          in hr_fgi_shd.g_rec_type
282   ) is
283 --
284   l_proc  varchar2(72) := g_package||'chk_delete';
285 --
286 Begin
287   hr_utility.set_location('Entering:'||l_proc, 5);
288   --
289   -- No additional validation required
290   --
291   null;
292   --
293   hr_utility.set_location(' Leaving:'||l_proc, 10);
294 End chk_delete;
295 --
296 -- ----------------------------------------------------------------------------
297 -- |---------------------------< insert_validate >----------------------------|
298 -- ----------------------------------------------------------------------------
299 Procedure insert_validate
300   (p_rec                          in hr_fgi_shd.g_rec_type
301   ) is
302 --
303   l_proc  varchar2(72) := g_package||'insert_validate';
304 --
305 Begin
306   hr_utility.set_location('Entering:'||l_proc, 5);
307   --
308   -- Call all supporting business operations
309   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
310   --
311   chk_form_data_group_id
312     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
313     ,p_object_version_number        => p_rec.object_version_number
314     ,p_form_data_group_id           => p_rec.form_data_group_id
315     );
316   --
317   chk_form_item_id
318     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
319     ,p_object_version_number        => p_rec.object_version_number
320     ,p_form_item_id                 => p_rec.form_item_id
321     );
322   --
323   chk_data_group_and_item
324     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
325     ,p_object_version_number        => p_rec.object_version_number
326     ,p_form_data_group_id           => p_rec.form_data_group_id
327     ,p_form_item_id                 => p_rec.form_item_id
328     );
329   --
330   hr_utility.set_location(' Leaving:'||l_proc, 10);
331 End insert_validate;
332 --
333 -- ----------------------------------------------------------------------------
334 -- |---------------------------< update_validate >----------------------------|
335 -- ----------------------------------------------------------------------------
336 Procedure update_validate
337   (p_rec                          in hr_fgi_shd.g_rec_type
338   ) is
339 --
340   l_proc  varchar2(72) := g_package||'update_validate';
341 --
342 Begin
343   hr_utility.set_location('Entering:'||l_proc, 5);
344   --
345   -- Call all supporting business operations
346   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
347   --
348   chk_non_updateable_args
349     (p_rec              => p_rec
350     );
351   --
352   chk_form_data_group_id
353     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
354     ,p_object_version_number        => p_rec.object_version_number
355     ,p_form_data_group_id           => p_rec.form_data_group_id
356     );
357   --
358   chk_form_item_id
359     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
360     ,p_object_version_number        => p_rec.object_version_number
361     ,p_form_item_id                 => p_rec.form_item_id
362     );
363   --
364   chk_data_group_and_item
365     (p_form_data_group_item_id      => p_rec.form_data_group_item_id
366     ,p_object_version_number        => p_rec.object_version_number
367     ,p_form_data_group_id           => p_rec.form_data_group_id
368     ,p_form_item_id                 => p_rec.form_item_id
369     );
370   --
371   hr_utility.set_location(' Leaving:'||l_proc, 10);
372 End update_validate;
373 --
374 -- ----------------------------------------------------------------------------
375 -- |---------------------------< delete_validate >----------------------------|
376 -- ----------------------------------------------------------------------------
377 Procedure delete_validate
378   (p_rec                          in hr_fgi_shd.g_rec_type
379   ) is
380 --
381   l_proc  varchar2(72) := g_package||'delete_validate';
382 --
383 Begin
384   hr_utility.set_location('Entering:'||l_proc, 5);
385   --
386   -- Call all supporting business operations
387   --
388   chk_delete
389     (p_rec              => p_rec
390     );
391   --
392   hr_utility.set_location(' Leaving:'||l_proc, 10);
393 End delete_validate;
394 --
395 end hr_fgi_bus;