DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_TTP_BUS

Source


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