DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FSC_BUS

Source


1 Package Body hr_fsc_bus as
2 /* $Header: hrfscrhi.pkb 115.4 2002/12/03 12:56:30 hjonnala noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  hr_fsc_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_tab_stacked_canvas_id  number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21   (p_form_tab_stacked_canvas_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_tab_stacked_canvas_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 canvases
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_fsc_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_fsc_shd.api_updating
103       (p_form_tab_stacked_canvas_id           => p_rec.form_tab_stacked_canvas_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_tab_page_id,hr_api.g_number) <>
113       nvl(hr_fsc_shd.g_old_rec.form_tab_page_id,hr_api.g_number)
114      ) THEN
115      l_argument := 'form_tab_page_id';
116      RAISE l_error;
117   END IF;
118   --
119   IF (nvl(p_rec.form_canvas_id,hr_api.g_number) <>
120       nvl(hr_fsc_shd.g_old_rec.form_canvas_id,hr_api.g_number)
121      ) THEN
122      l_argument := 'form_canvas_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_tab_page_id >-------------------------|
137 -- ----------------------------------------------------------------------------
138 Procedure chk_form_tab_page_id
139   (p_form_tab_stacked_canvas_id   in number
140   ,p_object_version_number        in number
141   ,p_form_tab_page_id             in number
142   ) is
143   --
144   l_proc                         varchar2(72) := g_package || 'chk_form_tab_page_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_tab_page_id'
155     ,p_argument_value               => p_form_tab_page_id
156     );
157   --
158   hr_utility.set_location('Leaving:'||l_proc, 100);
159 End chk_form_tab_page_id;
160 --
161 -- ----------------------------------------------------------------------------
162 -- |--------------------------< chk_form_canvas_id >--------------------------|
163 -- ----------------------------------------------------------------------------
164 Procedure chk_form_canvas_id
165   (p_form_tab_stacked_canvas_id   in number
166   ,p_object_version_number        in number
167   ,p_form_canvas_id               in number
168   ) is
169   --
170   l_proc                         varchar2(72) := g_package || 'chk_form_canvas_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_canvas_id'
181     ,p_argument_value               => p_form_canvas_id
182     );
183   --
184   hr_utility.set_location('Leaving:'||l_proc, 100);
185 End chk_form_canvas_id;
186 --
187 -- ----------------------------------------------------------------------------
188 -- |------------------------< chk_tab_page_and_canvas >-----------------------|
189 -- ----------------------------------------------------------------------------
190 Procedure chk_tab_page_and_canvas
191   (p_form_tab_stacked_canvas_id   in number
192   ,p_object_version_number        in number
193   ,p_form_tab_page_id             in number
194   ,p_form_canvas_id               in number
195   ) is
196   --
197   cursor csr_form_tab_page is
198     select fcn.form_window_id
199       from hr_form_canvases_b fcn
200           ,hr_form_tab_pages_b ftp
201      where fcn.form_canvas_id = ftp.form_canvas_id
202        and ftp.form_tab_page_id = p_form_tab_page_id;
203   --
204   cursor csr_form_canvas is
205     select fcn.form_window_id
206           ,fcn.canvas_type
207       from hr_form_canvases_b fcn
208      where fcn.form_canvas_id = p_form_canvas_id;
209   --
210   l_proc                         varchar2(72) := g_package || 'chk_tab_page_and_canvas';
211   l_api_updating                 boolean;
212   l_tab_page_window_id           number;
213   l_canvas_window_id             number;
214   l_canvas_type                  varchar2(30);
215   --
216 Begin
217   hr_utility.set_location('Entering:'||l_proc, 10);
218   --
219   l_api_updating := hr_fsc_shd.api_updating
220     (p_form_tab_stacked_canvas_id   => p_form_tab_stacked_canvas_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_fsc_shd.g_old_rec.form_tab_page_id,hr_api.g_number) <>
229                nvl(p_form_tab_page_id,hr_api.g_number)
230             or nvl(hr_fsc_shd.g_old_rec.form_canvas_id,hr_api.g_number) <>
231                nvl(p_form_canvas_id,hr_api.g_number)))
232      or (NOT l_api_updating)) then
233     --
234     hr_utility.set_location(l_proc,30);
235     --
236     open csr_form_tab_page;
237     fetch csr_form_tab_page into l_tab_page_window_id;
238     if csr_form_tab_page%notfound then
239       close csr_form_tab_page;
240       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
241       fnd_message.set_token('PROCEDURE', l_proc);
242       fnd_message.set_token('STEP','10');
243       fnd_message.raise_error;
244     end if;
245     close csr_form_tab_page;
246     --
247     hr_utility.set_location(l_proc,40);
248     --
249     open csr_form_canvas;
250     fetch csr_form_canvas into l_canvas_window_id, l_canvas_type;
251     if csr_form_canvas%notfound then
252       close csr_form_canvas;
253       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
254       fnd_message.set_token('PROCEDURE', l_proc);
255       fnd_message.set_token('STEP','20');
256       fnd_message.raise_error;
257     end if;
258     close csr_form_canvas;
259     --
260     hr_utility.set_location(l_proc,50);
261     --
262     -- Check the canvas is of type TAB_STACKED
263     --
264     if nvl(l_canvas_type,hr_api.g_varchar2) <> 'TAB_STACKED' then
265       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
266       fnd_message.set_token('PROCEDURE', l_proc);
267       fnd_message.set_token('STEP','30');
268       fnd_message.raise_error;
269     end if;
270     --
271     hr_utility.set_location(l_proc,60);
272     --
273     -- Check the tab page and canvas reference the same window
274     --
275     if nvl(l_tab_page_window_id,hr_api.g_number) <>
276        nvl(l_canvas_window_id,hr_api.g_number) then
277       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
278       fnd_message.set_token('PROCEDURE', l_proc);
279       fnd_message.set_token('STEP','40');
280       fnd_message.raise_error;
281     end if;
282     --
283   end if;
284   --
285   hr_utility.set_location('Leaving:'||l_proc, 100);
286 End chk_tab_page_and_canvas;
287 --
288 -- ----------------------------------------------------------------------------
289 -- |------------------------------< chk_delete >------------------------------|
290 -- ----------------------------------------------------------------------------
291 Procedure chk_delete
292   (p_rec                          in hr_fsc_shd.g_rec_type
293   ) is
294 --
295   l_proc  varchar2(72) := g_package||'chk_delete';
296 --
297 Begin
298   hr_utility.set_location('Entering:'||l_proc, 5);
299   --
300   -- No additional validation required
301   --
302   null;
303   --
304   hr_utility.set_location(' Leaving:'||l_proc, 10);
305 End chk_delete;
306 --
307 -- ----------------------------------------------------------------------------
308 -- |---------------------------< insert_validate >----------------------------|
309 -- ----------------------------------------------------------------------------
310 Procedure insert_validate
311   (p_rec                          in hr_fsc_shd.g_rec_type
312   ) is
313 --
314   l_proc  varchar2(72) := g_package||'insert_validate';
315 --
316 Begin
317   hr_utility.set_location('Entering:'||l_proc, 5);
318   --
319   -- Call all supporting business operations
320   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
321   --
322   chk_form_tab_page_id
323     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
324     ,p_object_version_number        => p_rec.object_version_number
325     ,p_form_tab_page_id             => p_rec.form_tab_page_id
326     );
327   --
328   chk_form_canvas_id
329     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
330     ,p_object_version_number        => p_rec.object_version_number
331     ,p_form_canvas_id               => p_rec.form_canvas_id
332     );
333   --
334   chk_tab_page_and_canvas
335     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
336     ,p_object_version_number        => p_rec.object_version_number
337     ,p_form_tab_page_id             => p_rec.form_tab_page_id
338     ,p_form_canvas_id               => p_rec.form_canvas_id
339     );
340   --
341   hr_utility.set_location(' Leaving:'||l_proc, 10);
342 End insert_validate;
343 --
344 -- ----------------------------------------------------------------------------
345 -- |---------------------------< update_validate >----------------------------|
346 -- ----------------------------------------------------------------------------
347 Procedure update_validate
348   (p_rec                          in hr_fsc_shd.g_rec_type
349   ) is
350 --
351   l_proc  varchar2(72) := g_package||'update_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_non_updateable_args
360     (p_rec                          => p_rec
361     );
362   --
363   chk_form_tab_page_id
364     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
365     ,p_object_version_number        => p_rec.object_version_number
366     ,p_form_tab_page_id             => p_rec.form_tab_page_id
367     );
368   --
369   chk_form_canvas_id
370     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
371     ,p_object_version_number        => p_rec.object_version_number
372     ,p_form_canvas_id               => p_rec.form_canvas_id
373     );
374   --
375   chk_tab_page_and_canvas
376     (p_form_tab_stacked_canvas_id   => p_rec.form_tab_stacked_canvas_id
377     ,p_object_version_number        => p_rec.object_version_number
378     ,p_form_tab_page_id             => p_rec.form_tab_page_id
379     ,p_form_canvas_id               => p_rec.form_canvas_id
380     );
381   --
382   hr_utility.set_location(' Leaving:'||l_proc, 10);
383 End update_validate;
384 --
385 -- ----------------------------------------------------------------------------
386 -- |---------------------------< delete_validate >----------------------------|
387 -- ----------------------------------------------------------------------------
388 Procedure delete_validate
389   (p_rec                          in hr_fsc_shd.g_rec_type
390   ) is
391 --
392   l_proc  varchar2(72) := g_package||'delete_validate';
393 --
394 Begin
395   hr_utility.set_location('Entering:'||l_proc, 5);
396   --
397   -- Call all supporting business operations
398   --
399   chk_delete
400     (p_rec                          => p_rec
401     );
402   --
403   hr_utility.set_location(' Leaving:'||l_proc, 10);
404 End delete_validate;
405 --
406 end hr_fsc_bus;