DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_TDG_BUS

Source


1 Package Body hr_tdg_bus as
2 /* $Header: hrtdgrhi.pkb 115.3 2002/12/03 10:33:25 raranjan noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  hr_tdg_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_template_data_group_id      number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21   (p_template_data_group_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_template_data_group_id               in     number
44   )
45   Return Varchar2 Is
46   --
47   -- Declare cursor
48   --
49   cursor csr_leg_code is
50     select tmp.legislation_code
51       from hr_form_templates_b tmp
52           ,hr_template_data_groups tdg
53      where tmp.form_template_id = tdg.form_template_id
54        and tdg.template_data_group_id = p_template_data_group_id;
55   --
56   -- Declare local variables
57   --
58   l_legislation_code  varchar2(150);
59   l_proc              varchar2(72)  :=  g_package||'return_legislation_code';
60   --
61 Begin
62   --
63   hr_utility.set_location('Entering:'|| l_proc, 10);
64   --
65   -- Ensure that all the mandatory parameter are not null
66   --
67   hr_api.mandatory_arg_error
68     (p_api_name           => l_proc
69     ,p_argument           => 'template_data_group_id'
70     ,p_argument_value     => p_template_data_group_id
71     );
72   --
73   if ( nvl(hr_tdg_bus.g_template_data_group_id, hr_api.g_number)
74        = p_template_data_group_id) then
75     --
76     -- The legislation code has already been found with a previous
77     -- call to this function. Just return the value in the global
78     -- variable.
79     --
80     l_legislation_code := hr_tdg_bus.g_legislation_code;
81     hr_utility.set_location(l_proc, 20);
82   else
83     --
84     -- The ID is different to the last call to this function
85     -- or this is the first call to this function.
86     --
87     open csr_leg_code;
88     fetch csr_leg_code into l_legislation_code;
89     --
90     if csr_leg_code%notfound then
91       --
92       -- The primary key is invalid therefore we must error
93       --
94       close csr_leg_code;
95       fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
96       fnd_message.raise_error;
97     end if;
98     hr_utility.set_location(l_proc,30);
99     --
100     -- Set the global variables so the values are
101     -- available for the next call to this function.
102     --
103     close csr_leg_code;
104     hr_tdg_bus.g_template_data_group_id := p_template_data_group_id;
105     hr_tdg_bus.g_legislation_code := l_legislation_code;
106   end if;
107   hr_utility.set_location(' Leaving:'|| l_proc, 40);
108   return l_legislation_code;
109 end return_legislation_code;
110 --
111 -- ----------------------------------------------------------------------------
112 -- |-----------------------< chk_non_updateable_args >------------------------|
113 -- ----------------------------------------------------------------------------
114 -- {Start Of Comments}
115 --
116 -- Description:
117 --   This procedure is used to ensure that non updateable attributes have
118 --   not been updated. If an attribute has been updated an error is generated.
119 --
120 -- Pre Conditions:
121 --   g_old_rec has been populated with details of the values currently in
122 --   the database.
123 --
124 -- In Arguments:
125 --   p_rec has been populated with the updated values the user would like the
126 --   record set to.
127 --
128 -- Post Success:
129 --   Processing continues if all the non updateable attributes have not
130 --   changed.
131 --
132 -- Post Failure:
133 --   An application error is raised if any of the non updatable attributes
134 --   have been altered.
135 --
136 -- {End Of Comments}
137 -- ----------------------------------------------------------------------------
138 Procedure chk_non_updateable_args
139   (p_rec in hr_tdg_shd.g_rec_type
140   ) IS
141 --
142   l_proc     varchar2(72) := g_package || 'chk_non_updateable_args';
143   l_error    EXCEPTION;
144   l_argument varchar2(30);
145 --
146 Begin
147   --
148   -- Only proceed with the validation if a row exists for the current
149   -- record in the HR Schema.
150   --
151   IF NOT hr_tdg_shd.api_updating
152       (p_template_data_group_id               => p_rec.template_data_group_id
153       ,p_object_version_number                => p_rec.object_version_number
154       ) THEN
155      fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
156      fnd_message.set_token('PROCEDURE ', l_proc);
157      fnd_message.set_token('STEP ', '5');
158      fnd_message.raise_error;
159   END IF;
160   --
161   IF (nvl(p_rec.form_data_group_id,hr_api.g_number) <>
162       nvl(hr_tdg_shd.g_old_rec.form_data_group_id,hr_api.g_number)
163      ) THEN
164      l_argument := 'form_data_group_id';
165      RAISE l_error;
166   END IF;
167   --
168   IF (nvl(p_rec.form_template_id,hr_api.g_number) <>
169       nvl(hr_tdg_shd.g_old_rec.form_template_id,hr_api.g_number)
170      ) THEN
171      l_argument := 'form_template_id';
172      RAISE l_error;
173   END IF;
174   --
175   EXCEPTION
176     WHEN l_error THEN
177        hr_api.argument_changed_error
178          (p_api_name => l_proc
179          ,p_argument => l_argument);
180     WHEN OTHERS THEN
181        RAISE;
182 End chk_non_updateable_args;
183 --
184 -- ----------------------------------------------------------------------------
185 -- |------------------------< chk_form_data_group_id >------------------------|
186 -- ----------------------------------------------------------------------------
187 Procedure chk_form_data_group_id
188   (p_template_data_group_id       in     number
189   ,p_object_version_number        in     number
190   ,p_form_data_group_id           in     number
191   ) is
192   --
193   l_proc                         varchar2(72) := g_package || 'chk_form_data_group_id';
194   l_api_updating                 boolean;
195   --
196 Begin
197   hr_utility.set_location('Entering:'||l_proc, 10);
198   --
199   -- Check value has been passed
200   --
201   hr_api.mandatory_arg_error
202     (p_api_name                     => l_proc
203     ,p_argument                     => 'form_data_group_id'
204     ,p_argument_value               => p_form_data_group_id
205     );
206   --
207   hr_utility.set_location('Leaving:'||l_proc, 100);
208 End chk_form_data_group_id;
209 --
210 -- ----------------------------------------------------------------------------
211 -- |-------------------------< chk_form_template_id >-------------------------|
212 -- ----------------------------------------------------------------------------
213 Procedure chk_form_template_id
214   (p_template_data_group_id       in     number
215   ,p_object_version_number        in     number
216   ,p_form_template_id             in     number
217   ) is
218   --
219   l_proc                         varchar2(72) := g_package || 'chk_form_template_id';
220   l_api_updating                 boolean;
221   --
222 Begin
223   hr_utility.set_location('Entering:'||l_proc, 10);
224   --
225   -- Check value has been passed
226   --
227   hr_api.mandatory_arg_error
228     (p_api_name                     => l_proc
229     ,p_argument                     => 'form_template_id'
230     ,p_argument_value               => p_form_template_id
231     );
232   --
233   hr_utility.set_location('Leaving:'||l_proc, 100);
234 End chk_form_template_id;
235 --
236 -- ----------------------------------------------------------------------------
237 -- |---------------------< chk_data_group_and_template >----------------------|
238 -- ----------------------------------------------------------------------------
239 Procedure chk_data_group_and_template
240   (p_template_data_group_id       in     number
241   ,p_object_version_number        in     number
242   ,p_form_data_group_id           in     number
243   ,p_form_template_id             in     number
244   ) is
245   --
246   cursor csr_form_data_group is
247     select fdg.application_id
248           ,fdg.form_id
249       from hr_form_data_groups_b fdg
250      where fdg.form_data_group_id = p_form_data_group_id;
251   --
252   cursor csr_form_template is
253     select tmp.application_id
254           ,tmp.form_id
255       from hr_form_templates_b tmp
256      where tmp.form_template_id = p_form_template_id;
257   --
258   l_proc                         varchar2(72) := g_package || 'chk_data_group_and_template';
259   l_api_updating                 boolean;
260   l_data_group_application_id    number;
261   l_data_group_form_id           number;
262   l_template_application_id      number;
263   l_template_form_id             number;
264   --
265 Begin
266   hr_utility.set_location('Entering:'||l_proc, 10);
267   --
268   l_api_updating := hr_tdg_shd.api_updating
269     (p_template_data_group_id       => p_template_data_group_id
270     ,p_object_version_number        => p_object_version_number
271     );
272   hr_utility.set_location(l_proc,20);
273   --
274   -- Only proceed with SQL validation if absolutely necessary
275   --
276   if (  (   l_api_updating
277         and (  nvl(hr_tdg_shd.g_old_rec.form_data_group_id,hr_api.g_number) <>
278                nvl(p_form_data_group_id,hr_api.g_number)
279             or nvl(hr_tdg_shd.g_old_rec.form_template_id,hr_api.g_number) <>
280                nvl(p_form_template_id,hr_api.g_number)))
281      or (NOT l_api_updating)) then
282     --
283     hr_utility.set_location(l_proc,30);
284     --
285     -- Check data group and template reference the same form
286     --
287     open csr_form_data_group;
288     fetch csr_form_data_group into l_data_group_application_id, l_data_group_form_id;
289     if csr_form_data_group%notfound then
290       close csr_form_data_group;
291       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
292       fnd_message.set_token('PROCEDURE', l_proc);
293       fnd_message.set_token('STEP','10');
294       fnd_message.raise_error;
295     end if;
296     close csr_form_data_group;
297     --
298     open csr_form_template;
299     fetch csr_form_template into l_template_application_id, l_template_form_id;
300     if csr_form_template%notfound then
301       close csr_form_template;
302       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
303       fnd_message.set_token('PROCEDURE', l_proc);
304       fnd_message.set_token('STEP','20');
305       fnd_message.raise_error;
306     end if;
307     close csr_form_template;
308     --
309     hr_utility.set_location(l_proc,40);
310     --
311     if   nvl(l_data_group_application_id,hr_api.g_number) <>
312          nvl(l_template_application_id,hr_api.g_number)
313       or nvl(l_data_group_form_id,hr_api.g_number) <>
314          nvl(l_template_form_id,hr_api.g_number) then
315       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
316       fnd_message.set_token('PROCEDURE', l_proc);
317       fnd_message.set_token('STEP','30');
318       fnd_message.raise_error;
319     end if;
320     --
321   end if;
322   --
323   hr_utility.set_location('Leaving:'||l_proc, 100);
324 End chk_data_group_and_template;
325 --
326 -- ----------------------------------------------------------------------------
327 -- |------------------------------< chk_delete >------------------------------|
328 -- ----------------------------------------------------------------------------
329 Procedure chk_delete
330   (p_rec                          in hr_tdg_shd.g_rec_type
331   ) is
332 --
333   l_proc  varchar2(72) := g_package||'chk_delete';
334 --
335 Begin
336   hr_utility.set_location('Entering:'||l_proc, 5);
337   --
338   -- No additional validation required
339   --
340   null;
341   --
342   hr_utility.set_location(' Leaving:'||l_proc, 10);
343 End chk_delete;
344 --
345 -- ----------------------------------------------------------------------------
346 -- |---------------------------< insert_validate >----------------------------|
347 -- ----------------------------------------------------------------------------
348 Procedure insert_validate
349   (p_rec                          in hr_tdg_shd.g_rec_type
350   ) is
351 --
352   l_proc  varchar2(72) := g_package||'insert_validate';
353 --
354 Begin
355   hr_utility.set_location('Entering:'||l_proc, 5);
356   --
357   -- Call all supporting business operations
358   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
359   --
360   chk_form_data_group_id
361     (p_template_data_group_id       => p_rec.template_data_group_id
362     ,p_object_version_number        => p_rec.object_version_number
363     ,p_form_data_group_id           => p_rec.form_data_group_id
364     );
365   --
366   chk_form_template_id
367     (p_template_data_group_id       => p_rec.template_data_group_id
368     ,p_object_version_number        => p_rec.object_version_number
369     ,p_form_template_id             => p_rec.form_template_id
370     );
371   --
372   chk_data_group_and_template
373     (p_template_data_group_id       => p_rec.template_data_group_id
374     ,p_object_version_number        => p_rec.object_version_number
375     ,p_form_data_group_id           => p_rec.form_data_group_id
376     ,p_form_template_id             => p_rec.form_template_id
377     );
378   --
379   hr_utility.set_location(' Leaving:'||l_proc, 10);
380 End insert_validate;
381 --
382 -- ----------------------------------------------------------------------------
383 -- |---------------------------< update_validate >----------------------------|
384 -- ----------------------------------------------------------------------------
385 Procedure update_validate
386   (p_rec                          in hr_tdg_shd.g_rec_type
387   ) is
388 --
389   l_proc  varchar2(72) := g_package||'update_validate';
390 --
391 Begin
392   hr_utility.set_location('Entering:'||l_proc, 5);
393   --
394   -- Call all supporting business operations
395   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
396   --
397   chk_non_updateable_args
398     (p_rec                          => p_rec
399     );
400   --
401   chk_form_data_group_id
402     (p_template_data_group_id       => p_rec.template_data_group_id
403     ,p_object_version_number        => p_rec.object_version_number
404     ,p_form_data_group_id           => p_rec.form_data_group_id
405     );
406   --
407   chk_form_template_id
408     (p_template_data_group_id       => p_rec.template_data_group_id
409     ,p_object_version_number        => p_rec.object_version_number
410     ,p_form_template_id             => p_rec.form_template_id
411     );
412   --
413   chk_data_group_and_template
414     (p_template_data_group_id       => p_rec.template_data_group_id
415     ,p_object_version_number        => p_rec.object_version_number
416     ,p_form_data_group_id           => p_rec.form_data_group_id
417     ,p_form_template_id             => p_rec.form_template_id
418     );
419   --
420   hr_utility.set_location(' Leaving:'||l_proc, 10);
421 End update_validate;
422 --
423 -- ----------------------------------------------------------------------------
424 -- |---------------------------< delete_validate >----------------------------|
425 -- ----------------------------------------------------------------------------
426 Procedure delete_validate
427   (p_rec                          in hr_tdg_shd.g_rec_type
428   ) is
429 --
430   l_proc  varchar2(72) := g_package||'delete_validate';
431 --
432 Begin
433   hr_utility.set_location('Entering:'||l_proc, 5);
434   --
435   -- Call all supporting business operations
436   --
437   chk_delete
438     (p_rec                          => p_rec
439     );
440   --
441   hr_utility.set_location(' Leaving:'||l_proc, 10);
442 End delete_validate;
443 --
444 end hr_tdg_bus;