DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FIM_BUS

Source


1 Package Body hr_fim_bus as
2 /* $Header: hrfimrhi.pkb 115.5 2002/12/03 11:18:58 hjonnala noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  hr_fim_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_item_id                number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21   (p_form_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_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 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_effective_date               in date
91   ,p_rec in hr_fim_shd.g_rec_type
92   ) IS
93 --
94   l_proc     varchar2(72) := g_package || 'chk_non_updateable_args';
95   l_error    EXCEPTION;
96   l_argument varchar2(30);
97 --
98 Begin
99   --
100   -- Only proceed with the validation if a row exists for the current
101   -- record in the HR Schema.
102   --
103   IF NOT hr_fim_shd.api_updating
104       (p_form_item_id                         => p_rec.form_item_id
105       ,p_object_version_number                => p_rec.object_version_number
106       ) THEN
107      fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
108      fnd_message.set_token('PROCEDURE ', l_proc);
109      fnd_message.set_token('STEP ', '5');
110      fnd_message.raise_error;
111   END IF;
112   --
113   IF (nvl(p_rec.application_id,hr_api.g_number) <>
114       nvl(hr_fim_shd.g_old_rec.application_id,hr_api.g_number)
115      ) THEN
116      l_argument := 'application_id';
117      RAISE l_error;
118   END IF;
119   --
120   IF (nvl(p_rec.form_id,hr_api.g_number) <>
121       nvl(hr_fim_shd.g_old_rec.form_id,hr_api.g_number)
122      ) THEN
123      l_argument := 'form_id';
124      RAISE l_error;
125   END IF;
126   --
127   IF (nvl(p_rec.form_canvas_id,hr_api.g_number) <>
128       nvl(hr_fim_shd.g_old_rec.form_canvas_id,hr_api.g_number)
129      ) THEN
130      l_argument := 'form_canvas_id';
131      RAISE l_error;
132   END IF;
133   --
134   IF (nvl(p_rec.form_tab_page_id,hr_api.g_number) <>
135       nvl(hr_fim_shd.g_old_rec.form_tab_page_id,hr_api.g_number)
136      ) THEN
137      l_argument := 'form_tab_page_id';
138      RAISE l_error;
139   END IF;
140   --
141   IF (nvl(p_rec.item_type,hr_api.g_varchar2) <>
142       nvl(hr_fim_shd.g_old_rec.item_type,hr_api.g_varchar2)
143      ) THEN
144      l_argument := 'item_type';
145      RAISE l_error;
146   END IF;
147   --
148   EXCEPTION
149     WHEN l_error THEN
150        hr_api.argument_changed_error
151          (p_api_name => l_proc
152          ,p_argument => l_argument);
153     WHEN OTHERS THEN
154        RAISE;
155 End chk_non_updateable_args;
156 --
157 -- ----------------------------------------------------------------------------
158 -- |--------------------------< chk_application_id >--------------------------|
159 -- ----------------------------------------------------------------------------
160 Procedure chk_application_id
161   (p_effective_date               in date
162   ,p_form_item_id                 in number
163   ,p_object_version_number        in number
164   ,p_application_id               in number
165   ) is
166   l_check number;
167   CURSOR cur_chk_app_id
168   IS
169   SELECT 1
170   FROM fnd_application
171   WHERE application_id = p_application_id;
172   --
173   l_proc                         varchar2(72) := g_package || 'chk_application_id';
174   l_api_updating                 boolean;
175   --
176 Begin
177   hr_utility.set_location('Entering:'||l_proc, 10);
178   --
179   -- Check value has been passed
180   --
181   hr_api.mandatory_arg_error
182     (p_api_name           => l_proc
183     ,p_argument           => 'application_id'
184     ,p_argument_value     => p_application_id
185     );
186   --
187   OPEN cur_chk_app_id;
188   FETCH cur_chk_app_id INTO l_check;
189   IF cur_chk_app_id%NOTFOUND THEN
190     CLOSE cur_chk_app_id;
191 -- error message
192     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
193     fnd_message.set_token('PROCEDURE', l_proc);
194     fnd_message.set_token('STEP','10');
195     fnd_message.raise_error;
196   END IF;
197   CLOSE cur_chk_app_id;
198 
199   hr_utility.set_location('Leaving:'||l_proc, 100);
200 End chk_application_id;
201 --
202 -- ----------------------------------------------------------------------------
203 -- |-----------------------------< chk_form_id >------------------------------|
204 -- ----------------------------------------------------------------------------
205 Procedure chk_form_id
206   (p_effective_date               in date
207   ,p_form_item_id                 in number
208   ,p_object_version_number        in number
209   ,p_form_id                      in number
210   ,p_application_id               in number
211   ) is
212   l_check number;
213   CURSOR cur_chk_form_id
214   IS
215   SELECT 1
216   FROM fnd_form
217   WHERE form_id = p_form_id
218   AND application_id = p_application_id;
219   --
220   l_proc                         varchar2(72) := g_package || 'chk_form_id';
221   l_api_updating                 boolean;
222   --
223 Begin
224   hr_utility.set_location('Entering:'||l_proc, 10);
225   --
226   -- Check value has been passed
227   --
228   hr_api.mandatory_arg_error
229     (p_api_name           => l_proc
230     ,p_argument           => 'form_id'
231     ,p_argument_value     => p_form_id
232     );
233   --
234   OPEN cur_chk_form_id;
235   FETCH cur_chk_form_id INTO l_check;
236   IF cur_chk_form_id%NOTFOUND THEN
237     CLOSE cur_chk_form_id;
238 -- error message
239     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
240     fnd_message.set_token('PROCEDURE', l_proc);
241     fnd_message.set_token('STEP','10');
242     fnd_message.raise_error;
243   END IF;
244   CLOSE cur_chk_form_id;
245   --
246   hr_utility.set_location('Leaving:'||l_proc, 100);
247 End chk_form_id;
248 --
249 -- ----------------------------------------------------------------------------
250 -- |--------------------------< chk_form_canvas_id >--------------------------|
251 -- ----------------------------------------------------------------------------
252 Procedure chk_form_canvas_id
253   (p_effective_date               in date
254   ,p_form_item_id                 in number
255   ,p_object_version_number        in number
256   ,p_form_canvas_id               in number
257   ) is
258   --
259   cursor csr_form_canvas is
260     select fcn.canvas_type
261       from hr_form_canvases_b fcn
262      where fcn.form_canvas_id = p_form_canvas_id;
263   --
264   l_proc                         varchar2(72) := g_package || 'chk_form_canvas_id';
265   l_api_updating                 boolean;
266   l_canvas_type                  varchar2(30);
267   --
268 Begin
269   hr_utility.set_location('Entering:'||l_proc, 10);
270   --
271   l_api_updating := hr_fim_shd.api_updating
272     (p_form_item_id                 => p_form_item_id
273     ,p_object_version_number        => p_object_version_number
274     );
275   hr_utility.set_location(l_proc,20);
276   --
277   -- Only proceed with SQL validation if absolutely necessary
278   --
279   if (  (   l_api_updating
280         and nvl(hr_fim_shd.g_old_rec.form_canvas_id,hr_api.g_number) <>
281             nvl(p_form_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 value has been passed
287     --
288     hr_api.mandatory_arg_error
289       (p_api_name           => l_proc
290       ,p_argument           => 'form_canvas_id'
291       ,p_argument_value     => p_form_canvas_id
292       );
293     --
294     hr_utility.set_location(l_proc,40);
295     --
296     -- Check form canvas exists and is of type CONTENT or TAB
297     --
298     open csr_form_canvas;
299     fetch csr_form_canvas into l_canvas_type;
300     if csr_form_canvas%notfound then
301       close csr_form_canvas;
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','10');
305       fnd_message.raise_error;
306     end if;
307     close csr_form_canvas;
308     --
309     hr_utility.set_location(l_proc,50);
310     --
311     if nvl(l_canvas_type,hr_api.g_varchar2) not in ('CONTENT','TAB','STACKED') then
312       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
313       fnd_message.set_token('PROCEDURE', l_proc);
314       fnd_message.set_token('STEP','20');
315       fnd_message.raise_error;
316     end if;
317     --
318   end if;
319   --
320   hr_utility.set_location('Leaving:'||l_proc, 100);
321 End chk_form_canvas_id;
322 --
323 -- ----------------------------------------------------------------------------
324 -- |-------------------------< chk_form_tab_page_id >-------------------------|
325 -- ----------------------------------------------------------------------------
326 Procedure chk_form_tab_page_id
327   (p_effective_date               in date
328   ,p_form_item_id                 in number
329   ,p_object_version_number        in number
330   ,p_form_tab_page_id             in number
331   ) is
332   --
333   l_proc                         varchar2(72) := g_package || 'chk_form_tab_page_id';
334   l_api_updating                 boolean;
335   --
336 Begin
337   hr_utility.set_location('Entering:'||l_proc, 10);
338   --
339   -- No additional validation required
340   --
341   null;
342   --
343   hr_utility.set_location('Leaving:'||l_proc, 100);
344 End chk_form_tab_page_id;
345 --
346 -- ----------------------------------------------------------------------------
347 -- |--------------------------< chk_full_item_name >--------------------------|
348 -- ----------------------------------------------------------------------------
349 Procedure chk_full_item_name
350   (p_effective_date               in date
351   ,p_form_item_id                 in number
352   ,p_object_version_number        in number
353   ,p_full_item_name               in varchar2
354   ,p_item_type                    in varchar2
355   ) is
356   --
357   l_proc                         varchar2(72) := g_package || 'chk_full_item_name';
358   l_api_updating                 boolean;
359   l_period_pos                   number;
360   --
361 Begin
362   hr_utility.set_location('Entering:'||l_proc, 10);
363   --
364   -- Check value has been passed
365   --
366   hr_api.mandatory_arg_error
367     (p_api_name           => l_proc
368     ,p_argument           => 'full_item_name'
369     ,p_argument_value     => p_full_item_name
370     );
371   --
372   -- Check value is in uppercase
373   --
374   if p_full_item_name <> upper(p_full_item_name) then
375     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
376     fnd_message.set_token('PROCEDURE', l_proc);
377     fnd_message.set_token('STEP','10');
378     fnd_message.raise_error;
379   end if;
380   --
381   hr_utility.set_location(l_proc,20);
382   --
383   -- Check value is of the form <data_block>.<item>
384   --
385   l_period_pos := instrb(p_full_item_name,'.',1,1);
386   if p_item_type = 'SCROLLBAR' then
387     if l_period_pos <> 0 then
388       -- Full item name (block name) contains a period
389       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
390       fnd_message.set_token('PROCEDURE', l_proc);
391       fnd_message.set_token('STEP','30');
392       fnd_message.raise_error;
393     end if;
394   else
395     if    l_period_pos = 0 then
396       -- Full item name does not contain period
397       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
398       fnd_message.set_token('PROCEDURE', l_proc);
399       fnd_message.set_token('STEP','20');
400       fnd_message.raise_error;
401     elsif l_period_pos = 1 then
402       -- Full item name does not contain data block name
403       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
404       fnd_message.set_token('PROCEDURE', l_proc);
405       fnd_message.set_token('STEP','30');
406       fnd_message.raise_error;
407     elsif l_period_pos = length(p_full_item_name) then
408       -- Full item name does not contain item name
409       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
410       fnd_message.set_token('PROCEDURE', l_proc);
411       fnd_message.set_token('STEP','40');
412       fnd_message.raise_error;
413     end if;
414   end if;
415   --
416   hr_utility.set_location(' Leaving:'||l_proc, 100);
417 End chk_full_item_name;
418 --
419 -- ----------------------------------------------------------------------------
420 -- |-----------------------------< chk_item_type >----------------------------|
421 -- ----------------------------------------------------------------------------
422 Procedure chk_item_type
423   (p_effective_date               in date
424   ,p_form_item_id                 in number
425   ,p_object_version_number        in number
426   ,p_item_type                    in varchar2
427   ) is
428   --
429   l_proc                         varchar2(72) := g_package || 'chk_item_type';
430   l_api_updating                 boolean;
431   --
432 Begin
433   hr_utility.set_location('Entering:'||l_proc, 10);
434   --
435   -- Check mandatory arguments have been set
436   --
437   hr_api.mandatory_arg_error
438     (p_api_name                     => l_proc
439     ,p_argument                     => 'effective_date'
440     ,p_argument_value               => p_effective_date
441     );
442   --
443   l_api_updating := hr_fim_shd.api_updating
444     (p_form_item_id                 => p_form_item_id
445     ,p_object_version_number        => p_object_version_number
446     );
447   hr_utility.set_location(l_proc,20);
448   --
449   -- Only proceed with SQL validation if absolutely necessary
450   --
451   if (  (   l_api_updating
452         and nvl(hr_fim_shd.g_old_rec.item_type,hr_api.g_varchar2) <>
453             nvl(p_item_type,hr_api.g_varchar2))
454      or (NOT l_api_updating)) then
455     --
456     hr_utility.set_location(l_proc,30);
457     --
458     -- Check value has been passed
459     --
460     hr_api.mandatory_arg_error
461       (p_api_name                     => l_proc
462       ,p_argument                     => 'item_type'
463       ,p_argument_value               => p_item_type
464       );
465     --
466     hr_utility.set_location(l_proc,40);
467     --
468     -- Must exist in hr_standard_lookups where lookup_type is ITEM_TYPES
469     --
470     if hr_api.not_exists_in_hrstanlookups
471       (p_effective_date               => p_effective_date
472       ,p_lookup_type                  => 'ITEM_TYPES'
473       ,p_lookup_code                  => p_item_type
474       ) then
475       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
476       fnd_message.set_token('PROCEDURE', l_proc);
477       fnd_message.set_token('STEP','10');
478       fnd_message.raise_error;
479     end if;
480     --
481   end if;
482   --
483   hr_utility.set_location('Leaving:'||l_proc, 100);
484 End chk_item_type;
485 --
486 -- -----------------------------------------------------------------------------
487 -- |--------------------------< chk_radio_button_name >------------------------|
488 -- -----------------------------------------------------------------------------
489 Procedure chk_radio_button_name
490   (p_effective_date               in date
491   ,p_form_item_id                 in number
492   ,p_object_version_number        in number
493   ,p_radio_button_name            in varchar2
494   ,p_item_type                    in varchar2
495   ) is
496   --
497   l_proc                         varchar2(72) := g_package || 'chk_radio_button_name';
498   l_api_updating                 boolean;
499 --
500 Begin
501   hr_utility.set_location('Entering:'||l_proc, 10);
502   --
503   if    (   (p_item_type = 'RADIO_BUTTON')
504         and (p_radio_button_name is null) ) then
505     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
506     fnd_message.set_token('PROCEDURE', l_proc);
507     fnd_message.set_token('STEP','10');
508     fnd_message.raise_error;
509   elsif (   (p_item_type <> 'RADIO_BUTTON')
510         and (p_radio_button_name is not null) ) then
511     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
512     fnd_message.set_token('PROCEDURE', l_proc);
513     fnd_message.set_token('STEP','20');
514     fnd_message.raise_error;
515   end if;
516   --
517   if (p_radio_button_name <> upper(p_radio_button_name)) then
518     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
519     fnd_message.set_token('PROCEDURE', l_proc);
520     fnd_message.set_token('STEP','30');
521     fnd_message.raise_error;
522   end if;
523   --
524   hr_utility.set_location('Leaving:'||l_proc, 100);
525 End chk_radio_button_name;
526 --
527 -- ----------------------------------------------------------------------------
528 -- |---------------------< chk_form_tab_page_id_override >--------------------|
529 -- ----------------------------------------------------------------------------
530 Procedure chk_form_tab_page_id_override
531   (p_effective_date               in date
532   ,p_form_item_id                 in number
533   ,p_object_version_number        in number
534   ,p_form_tab_page_id_override    in number
535   ) is
536   --
537   l_proc                         varchar2(72) := g_package || 'chk_form_tab_page_id_override';
538   l_api_updating                 boolean;
539   --
540 Begin
541   hr_utility.set_location('Entering:'||l_proc, 10);
542   --
543   -- No additional validation required
544   --
545   null;
546   --
547   hr_utility.set_location('Leaving:'||l_proc, 100);
548 End chk_form_tab_page_id_override;
549 --
550 -- ----------------------------------------------------------------------------
551 -- |-------------------------< chk_required_override >------------------------|
552 -- ----------------------------------------------------------------------------
553 Procedure chk_required_override
554   (p_effective_date               in date
555   ,p_form_item_id                 in number
556   ,p_object_version_number        in number
557   ,p_required_override            in number
558   ) is
559   --
560   l_proc                         varchar2(72) := g_package || 'chk_required_override';
561   l_api_updating                 boolean;
562   --
563 Begin
564   hr_utility.set_location('Entering:'||l_proc, 10);
565   --
566   -- Check mandatory arguments have been set
567   --
568   hr_api.mandatory_arg_error
569     (p_api_name                     => l_proc
570     ,p_argument                     => 'effective_date'
571     ,p_argument_value               => p_effective_date
572     );
573   --
574   l_api_updating := hr_fim_shd.api_updating
575     (p_form_item_id                 => p_form_item_id
576     ,p_object_version_number        => p_object_version_number
577     );
578   hr_utility.set_location(l_proc,20);
579   --
580   -- Only proceed with SQL validation if absolutely necessary
581   --
582   if (  (   l_api_updating
583         and nvl(hr_fim_shd.g_old_rec.required_override,hr_api.g_number) <>
584             nvl(p_required_override,hr_api.g_number))
585      or (NOT l_api_updating)) then
586     --
587     hr_utility.set_location(l_proc,30);
588     --
589     if (p_required_override is not null) then
590       --
591       hr_utility.set_location(l_proc,40);
592       --
593       -- Must exist in hr_standard_lookups where lookup_type is
594       -- PROPERTY_TRUE_OR_FALSE
595       --
596       if hr_api.not_exists_in_hrstanlookups
597         (p_effective_date               => p_effective_date
598         ,p_lookup_type                  => 'PROPERTY_TRUE_OR_FALSE'
599         ,p_lookup_code                  => p_required_override
600         ) then
601         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
602         fnd_message.set_token('PROCEDURE', l_proc);
603         fnd_message.set_token('STEP','10');
604         fnd_message.raise_error;
605       end if;
606       --
607     end if;
608     --
609   end if;
610   --
611   hr_utility.set_location('Leaving:'||l_proc, 100);
612 End chk_required_override;
613 --
614 -- ----------------------------------------------------------------------------
615 -- |-------------------------< chk_visible_override >-------------------------|
616 -- ----------------------------------------------------------------------------
617 Procedure chk_visible_override
618   (p_effective_date               in date
619   ,p_form_item_id                 in number
620   ,p_object_version_number        in number
621   ,p_visible_override             in number
622   ) is
623   --
624   l_proc                         varchar2(72) := g_package || 'chk_visible_override';
625   l_api_updating                 boolean;
626   --
627 Begin
628   hr_utility.set_location('Entering:'||l_proc, 10);
629   --
630   -- Check mandatory arguments have been set
631   --
632   hr_api.mandatory_arg_error
633     (p_api_name                     => l_proc
634     ,p_argument                     => 'effective_date'
635     ,p_argument_value               => p_effective_date
636     );
637   --
638   l_api_updating := hr_fim_shd.api_updating
639     (p_form_item_id                 => p_form_item_id
640     ,p_object_version_number        => p_object_version_number
641     );
642   hr_utility.set_location(l_proc,20);
643   --
644   -- Only proceed with SQL validation if absolutely necessary
645   --
646   if (  (   l_api_updating
647         and nvl(hr_fim_shd.g_old_rec.visible_override,hr_api.g_number) <>
648             nvl(p_visible_override,hr_api.g_number))
649      or (NOT l_api_updating)) then
650     --
651     hr_utility.set_location(l_proc,30);
652     --
653     if (p_visible_override is not null) then
654       --
655       hr_utility.set_location(l_proc,40);
656       --
657       -- Must exist in hr_standard_lookups where lookup_type is
658       -- PROPERTY_TRUE_OR_FALSE
659       --
660       if hr_api.not_exists_in_hrstanlookups
661         (p_effective_date               => p_effective_date
662         ,p_lookup_type                  => 'PROPERTY_TRUE_OR_FALSE'
663         ,p_lookup_code                  => p_visible_override
664         ) then
665         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
666         fnd_message.set_token('PROCEDURE', l_proc);
667         fnd_message.set_token('STEP','10');
668         fnd_message.raise_error;
669       end if;
670       --
671     end if;
672     --
673   end if;
674   --
675   hr_utility.set_location('Leaving:'||l_proc, 100);
676 End chk_visible_override;
677 --
678 -- ----------------------------------------------------------------------------
679 -- |-----------------------< chk_appl_form_and_canvas >-----------------------|
680 -- ----------------------------------------------------------------------------
681 Procedure chk_appl_form_and_canvas
682   (p_effective_date               in date
683   ,p_form_item_id                 in number
684   ,p_object_version_number        in number
685   ,p_application_id               in number
686   ,p_form_id                      in number
687   ,p_form_canvas_id               in number
688   ) is
689   --
690   cursor csr_form_canvas is
691     select fwn.application_id
692           ,fwn.form_id
693       from hr_form_windows_b fwn
694           ,hr_form_canvases_b fcn
695      where fwn.form_window_id = fcn.form_window_id
696        and fcn.form_canvas_id = p_form_canvas_id;
697   --
698   l_proc                         varchar2(72) := g_package || 'chk_appl_form_and_canvas';
699   l_api_updating                 boolean;
700   l_application_id               number;
701   l_form_id                      number;
702   --
703 Begin
704   hr_utility.set_location('Entering:'||l_proc, 10);
705   --
706   l_api_updating := hr_fim_shd.api_updating
707     (p_form_item_id                 => p_form_item_id
708     ,p_object_version_number        => p_object_version_number
709     );
710   hr_utility.set_location(l_proc,20);
711   --
712   -- Only proceed with SQL validation if absolutely necessary
713   --
714   if (  (   l_api_updating
715         and (  (nvl(hr_fim_shd.g_old_rec.application_id,hr_api.g_number) <>
716                 nvl(p_application_id,hr_api.g_number))
717             or (nvl(hr_fim_shd.g_old_rec.form_id,hr_api.g_number) <>
718                 nvl(p_form_id,hr_api.g_number))
719             or (nvl(hr_fim_shd.g_old_rec.form_canvas_id,hr_api.g_number) <>
720                 nvl(p_form_canvas_id,hr_api.g_number))))
721      or (NOT l_api_updating)) then
722     --
723     hr_utility.set_location(l_proc,30);
724     --
725     -- Check canvas exists and that it references the same form as the item
726     --
727     open csr_form_canvas;
728     fetch csr_form_canvas into l_application_id,l_form_id;
729     if csr_form_canvas%notfound then
730       close csr_form_canvas;
731       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
732       fnd_message.set_token('PROCEDURE', l_proc);
733       fnd_message.set_token('STEP','10');
734       fnd_message.raise_error;
735     end if;
736     close csr_form_canvas;
737     --
738     hr_utility.set_location(l_proc,40);
739     --
740     if (  (nvl(p_application_id,hr_api.g_number) <> nvl(l_application_id,hr_api.g_number))
741        or (nvl(p_form_id,hr_api.g_number) <> nvl(l_form_id,hr_api.g_number))) then
742       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
743       fnd_message.set_token('PROCEDURE', l_proc);
744       fnd_message.set_token('STEP','10');
745       fnd_message.raise_error;
746     end if;
747     --
748   end if;
749   --
750   hr_utility.set_location('Leaving:'||l_proc, 100);
751 --
752 end chk_appl_form_and_canvas;
753 --
754 -- ----------------------------------------------------------------------------
755 -- |-----------------------< chk_canvas_and_tab_pages >-----------------------|
756 -- ----------------------------------------------------------------------------
757 Procedure chk_canvas_and_tab_pages
758   (p_effective_date               in date
759   ,p_form_item_id                 in number
760   ,p_object_version_number        in number
761   ,p_form_canvas_id               in number
762   ,p_form_tab_page_id             in number
763   ,p_form_tab_page_id_override    in number
764   ) is
765   --
766   cursor csr_form_canvas is
767     select fcn.canvas_type
768       from hr_form_canvases_b fcn
769      where fcn.form_canvas_id = p_form_canvas_id;
770   --
771   cursor csr_form_tab_page is
772     select ftp.form_canvas_id
773       from hr_form_tab_pages_b ftp
774      where ftp.form_tab_page_id = p_form_tab_page_id;
775   --
776   l_proc                         varchar2(72) := g_package || 'chk_canvas_and_tab_pages';
777   l_api_updating                 boolean;
778   l_canvas_type                  varchar2(30);
779   l_form_canvas_id               number;
780   --
781 Begin
782   hr_utility.set_location('Entering:'||l_proc, 10);
783   --
784   l_api_updating := hr_fim_shd.api_updating
785     (p_form_item_id                 => p_form_item_id
786     ,p_object_version_number        => p_object_version_number
787     );
788   hr_utility.set_location(l_proc,20);
789   --
790   -- Only proceed with SQL validation if absolutely necessary
791   --
792   if (  (   l_api_updating
793         and (  (nvl(hr_fim_shd.g_old_rec.form_canvas_id,hr_api.g_number) <>
794                 nvl(p_form_canvas_id,hr_api.g_number))
795             or (nvl(hr_fim_shd.g_old_rec.form_tab_page_id,hr_api.g_number) <>
796                 nvl(p_form_tab_page_id,hr_api.g_number))
797             or (nvl(hr_fim_shd.g_old_rec.form_tab_page_id_override,hr_api.g_number) <>
798                 nvl(p_form_tab_page_id_override,hr_api.g_number))))
799      or (NOT l_api_updating)) then
800     --
801     hr_utility.set_location(l_proc,30);
802     --
803     -- Check canvas exists
804     --
805     open csr_form_canvas;
806     fetch csr_form_canvas into l_canvas_type;
807     if csr_form_canvas%notfound then
808       close csr_form_canvas;
809       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
810       fnd_message.set_token('PROCEDURE', l_proc);
811       fnd_message.set_token('STEP','10');
812       fnd_message.raise_error;
813     end if;
814     close csr_form_canvas;
815     --
816     hr_utility.set_location(l_proc,40);
817     --
818     -- Check tab page has been specified for items on tab canvases and the tab
819     -- page references the same canvas as the canvas specified for the item.
820     --
821     if nvl(l_canvas_type,hr_api.g_varchar2) = 'TAB' then
822       --
823       hr_utility.set_location(l_proc,50);
824       --
825       if p_form_tab_page_id is null then
826         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
827         fnd_message.set_token('PROCEDURE', l_proc);
828         fnd_message.set_token('STEP','20');
829         fnd_message.raise_error;
830       end if;
831       --
832       hr_utility.set_location(l_proc,60);
833       --
834       open csr_form_tab_page;
835       fetch csr_form_tab_page into l_form_canvas_id;
836       if csr_form_tab_page%notfound then
837         close csr_form_tab_page;
838         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
839         fnd_message.set_token('PROCEDURE', l_proc);
840         fnd_message.set_token('STEP','30');
841         fnd_message.raise_error;
842       end if;
843       close csr_form_tab_page;
844       --
845       hr_utility.set_location(l_proc,70);
846       --
847       if nvl(p_form_canvas_id,hr_api.g_number) <>
848          nvl(l_form_canvas_id,hr_api.g_number) then
849         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
850         fnd_message.set_token('PROCEDURE', l_proc);
851         fnd_message.set_token('STEP','40');
852         fnd_message.raise_error;
853       end if;
854       --
855     else
856       --
857       hr_utility.set_location(l_proc,80);
858       --
859       if p_form_tab_page_id is not null then
860         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
861         fnd_message.set_token('PROCEDURE', l_proc);
862         fnd_message.set_token('STEP','50');
863         fnd_message.raise_error;
864       end if;
865       --
866     end if;
867     --
868     hr_utility.set_location(l_proc,90);
869     --
870     -- Check the override tab page is the same as the standard tab page if
871     -- specified
872     --
873     if p_form_tab_page_id_override is not null then
874       if p_form_tab_page_id_override <> nvl(p_form_tab_page_id,hr_api.g_number) then
875         fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
876         fnd_message.set_token('PROCEDURE', l_proc);
877         fnd_message.set_token('STEP','60');
878         fnd_message.raise_error;
879       end if;
880     end if;
881     --
882   end if;
883   --
884   hr_utility.set_location('Leaving:'||l_proc, 100);
885 --
886 end chk_canvas_and_tab_pages;
887 --
888 -- ----------------------------------------------------------------------------
889 -- |------------------------------< chk_delete >------------------------------|
890 -- ----------------------------------------------------------------------------
891 Procedure chk_delete
892   (p_rec                          in hr_fim_shd.g_rec_type
893   ) is
894 --
895   l_proc  varchar2(72) := g_package||'chk_delete';
896 --
897 Begin
898   hr_utility.set_location('Entering:'||l_proc, 5);
899   --
900   -- No additional validation required
901   --
902   null;
903   --
904   hr_utility.set_location(' Leaving:'||l_proc, 10);
905 End chk_delete;
906 --
907 -- ----------------------------------------------------------------------------
908 -- |---------------------------< insert_validate >----------------------------|
909 -- ----------------------------------------------------------------------------
910 Procedure insert_validate
911   (p_effective_date               in date
912   ,p_rec                          in hr_fim_shd.g_rec_type
913   ) is
914 --
915   l_proc  varchar2(72) := g_package||'insert_validate';
916 --
917 Begin
918   hr_utility.set_location('Entering:'||l_proc, 5);
919   --
920   -- Call all supporting business operations
921   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
922   --
923   chk_application_id
924     (p_effective_date               => p_effective_date
925     ,p_form_item_id                 => p_rec.form_item_id
926     ,p_object_version_number        => p_rec.object_version_number
927     ,p_application_id               => p_rec.application_id
928     );
929   --
930   chk_form_id
931     (p_effective_date               => p_effective_date
932     ,p_form_item_id                 => p_rec.form_item_id
933     ,p_object_version_number        => p_rec.object_version_number
934     ,p_form_id                      => p_rec.form_id
935     ,p_application_id               => p_rec.application_id
936     );
937   --
938   chk_form_canvas_id
939     (p_effective_date               => p_effective_date
940     ,p_form_item_id                 => p_rec.form_item_id
941     ,p_object_version_number        => p_rec.object_version_number
942     ,p_form_canvas_id               => p_rec.form_canvas_id
943     );
944   --
945   chk_form_tab_page_id
946     (p_effective_date               => p_effective_date
947     ,p_form_item_id                 => p_rec.form_item_id
948     ,p_object_version_number        => p_rec.object_version_number
949     ,p_form_tab_page_id             => p_rec.form_tab_page_id
950     );
951   --
952   chk_full_item_name
953     (p_effective_date               => p_effective_date
954     ,p_form_item_id                 => p_rec.form_item_id
955     ,p_object_version_number        => p_rec.object_version_number
956     ,p_full_item_name               => p_rec.full_item_name
957     ,p_item_type                    => p_rec.item_type
958     );
959   --
960   chk_item_type
961     (p_effective_date               => p_effective_date
962     ,p_form_item_id                 => p_rec.form_item_id
963     ,p_object_version_number        => p_rec.object_version_number
964     ,p_item_type                    => p_rec.item_type
965     );
966   --
967   chk_radio_button_name
968     (p_effective_date               => p_effective_date
969     ,p_form_item_id                 => p_rec.form_item_id
970     ,p_object_version_number        => p_rec.object_version_number
971     ,p_radio_button_name            => p_rec.radio_button_name
972     ,p_item_type                    => p_rec.item_type
973     );
974   --
975   chk_form_tab_page_id_override
976     (p_effective_date               => p_effective_date
977     ,p_form_item_id                 => p_rec.form_item_id
978     ,p_object_version_number        => p_rec.object_version_number
979     ,p_form_tab_page_id_override    => p_rec.form_tab_page_id_override
980     );
981   --
982   chk_required_override
983     (p_effective_date               => p_effective_date
984     ,p_form_item_id                 => p_rec.form_item_id
985     ,p_object_version_number        => p_rec.object_version_number
986     ,p_required_override            => p_rec.required_override
987     );
988   --
989   chk_visible_override
990     (p_effective_date               => p_effective_date
991     ,p_form_item_id                 => p_rec.form_item_id
992     ,p_object_version_number        => p_rec.object_version_number
993     ,p_visible_override             => p_rec.visible_override
994     );
995   --
996   chk_appl_form_and_canvas
997     (p_effective_date               => p_effective_date
998     ,p_form_item_id                 => p_rec.form_item_id
999     ,p_object_version_number        => p_rec.object_version_number
1000     ,p_application_id               => p_rec.application_id
1001     ,p_form_id                      => p_rec.form_id
1002     ,p_form_canvas_id               => p_rec.form_canvas_id
1003     );
1004   --
1005   chk_canvas_and_tab_pages
1006     (p_effective_date               => p_effective_date
1007     ,p_form_item_id                 => p_rec.form_item_id
1008     ,p_object_version_number        => p_rec.object_version_number
1009     ,p_form_canvas_id               => p_rec.form_canvas_id
1010     ,p_form_tab_page_id             => p_rec.form_tab_page_id
1011     ,p_form_tab_page_id_override    => p_rec.form_tab_page_id_override
1012     );
1013   --
1014   hr_utility.set_location(' Leaving:'||l_proc, 10);
1015 End insert_validate;
1016 --
1017 -- ----------------------------------------------------------------------------
1018 -- |---------------------------< update_validate >----------------------------|
1019 -- ----------------------------------------------------------------------------
1020 Procedure update_validate
1021   (p_effective_date               in date
1022   ,p_rec                          in hr_fim_shd.g_rec_type
1023   ) is
1024 --
1025   l_proc  varchar2(72) := g_package||'update_validate';
1026 --
1027 Begin
1028   hr_utility.set_location('Entering:'||l_proc, 5);
1029   --
1030   -- Call all supporting business operations
1031   -- No business group context.  HR_STANDARD_LOOKUPS used for validation.
1032   --
1033   chk_non_updateable_args
1034     (p_effective_date               => p_effective_date
1035     ,p_rec                          => p_rec
1036     );
1037   --
1038   chk_application_id
1039     (p_effective_date               => p_effective_date
1040     ,p_form_item_id                 => p_rec.form_item_id
1041     ,p_object_version_number        => p_rec.object_version_number
1042     ,p_application_id               => p_rec.application_id
1043     );
1044   --
1045   chk_form_id
1046     (p_effective_date               => p_effective_date
1047     ,p_form_item_id                 => p_rec.form_item_id
1048     ,p_object_version_number        => p_rec.object_version_number
1049     ,p_form_id                      => p_rec.form_id
1050     ,p_application_id               => p_rec.application_id
1051     );
1052   --
1053   chk_form_canvas_id
1054     (p_effective_date               => p_effective_date
1055     ,p_form_item_id                 => p_rec.form_item_id
1056     ,p_object_version_number        => p_rec.object_version_number
1057     ,p_form_canvas_id               => p_rec.form_canvas_id
1058     );
1059   --
1060   chk_form_tab_page_id
1061     (p_effective_date               => p_effective_date
1062     ,p_form_item_id                 => p_rec.form_item_id
1063     ,p_object_version_number        => p_rec.object_version_number
1064     ,p_form_tab_page_id             => p_rec.form_tab_page_id
1065     );
1066   --
1067   chk_full_item_name
1068     (p_effective_date               => p_effective_date
1069     ,p_form_item_id                 => p_rec.form_item_id
1070     ,p_object_version_number        => p_rec.object_version_number
1071     ,p_full_item_name               => p_rec.full_item_name
1072     ,p_item_type                    => p_rec.item_type
1073     );
1074   --
1075   chk_item_type
1076     (p_effective_date               => p_effective_date
1077     ,p_form_item_id                 => p_rec.form_item_id
1078     ,p_object_version_number        => p_rec.object_version_number
1079     ,p_item_type                    => p_rec.item_type
1080     );
1081   --
1082   chk_radio_button_name
1083     (p_effective_date               => p_effective_date
1084     ,p_form_item_id                 => p_rec.form_item_id
1085     ,p_object_version_number        => p_rec.object_version_number
1086     ,p_radio_button_name            => p_rec.radio_button_name
1087     ,p_item_type                    => p_rec.item_type
1088     );
1089   --
1090   chk_form_tab_page_id_override
1091     (p_effective_date               => p_effective_date
1092     ,p_form_item_id                 => p_rec.form_item_id
1093     ,p_object_version_number        => p_rec.object_version_number
1094     ,p_form_tab_page_id_override    => p_rec.form_tab_page_id_override
1095     );
1096   --
1097   chk_required_override
1098     (p_effective_date               => p_effective_date
1099     ,p_form_item_id                 => p_rec.form_item_id
1100     ,p_object_version_number        => p_rec.object_version_number
1101     ,p_required_override            => p_rec.required_override
1102     );
1103   --
1104   chk_visible_override
1105     (p_effective_date               => p_effective_date
1106     ,p_form_item_id                 => p_rec.form_item_id
1107     ,p_object_version_number        => p_rec.object_version_number
1108     ,p_visible_override             => p_rec.visible_override
1109     );
1110   --
1111   chk_appl_form_and_canvas
1112     (p_effective_date               => p_effective_date
1113     ,p_form_item_id                 => p_rec.form_item_id
1114     ,p_object_version_number        => p_rec.object_version_number
1115     ,p_application_id               => p_rec.application_id
1116     ,p_form_id                      => p_rec.form_id
1117     ,p_form_canvas_id               => p_rec.form_canvas_id
1118     );
1119   --
1120   chk_canvas_and_tab_pages
1121     (p_effective_date               => p_effective_date
1122     ,p_form_item_id                 => p_rec.form_item_id
1123     ,p_object_version_number        => p_rec.object_version_number
1124     ,p_form_canvas_id               => p_rec.form_canvas_id
1125     ,p_form_tab_page_id             => p_rec.form_tab_page_id
1126     ,p_form_tab_page_id_override    => p_rec.form_tab_page_id_override
1127     );
1128   --
1129   hr_utility.set_location(' Leaving:'||l_proc, 10);
1130 End update_validate;
1131 --
1132 -- ----------------------------------------------------------------------------
1133 -- |---------------------------< delete_validate >----------------------------|
1134 -- ----------------------------------------------------------------------------
1135 Procedure delete_validate
1136   (p_rec                          in hr_fim_shd.g_rec_type
1137   ) is
1138 --
1139   l_proc  varchar2(72) := g_package||'delete_validate';
1140 --
1141 Begin
1142   hr_utility.set_location('Entering:'||l_proc, 5);
1143   --
1144   -- Call all supporting business operations
1145   --
1146   chk_delete
1147     (p_rec                          => p_rec
1148     );
1149   --
1150   hr_utility.set_location(' Leaving:'||l_proc, 10);
1151 End delete_validate;
1152 --
1153 end hr_fim_bus;