[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;