DBA Data[Home] [Help]

PACKAGE: APPS.PER_ABS_BUS

Source


1 Package per_abs_bus AUTHID CURRENT_USER as
2 /* $Header: peabsrhi.pkh 120.6 2011/11/15 11:39:54 sidsaxen ship $ */
3 --
4 --  ---------------------------------------------------------------------------
5 --  |---------------------<  get_running_totals  >----------------------------|
6 --  ---------------------------------------------------------------------------
7 --
8 --  Description:
9 --    This procedure gets the year to date totals and running totals for
10 --    both days and hours.
11 --
12 --  Pre-conditions:
13 --    None.
14 --
15 --  In Arguments:
16 --    p_person_id
17 --    p_absence_attendance_type_id
18 --    p_effective_date
19 --
20 --  Out Arguments:
21 --    p_running_total_hours
22 --    p_running_total_days
23 --    p_year_to_date_hours
24 --    p_year_to_date_days
25 --
26 --  Post Success:
27 --    If validation passes, processing continues.
28 --
29 --  Post Failure:
30 --    If validation fails, an error is raised and processing stops.
31 --
32 --  Access Status:
33 --    Internal Table Handler Use Only. API updating is not required as this
34 --    is called from other chk procedures that use API updating.
35 --
36 -- {End Of Comments}
37 -- ----------------------------------------------------------------------------
38 procedure get_running_totals
39   (p_person_id                  in  number
40   ,p_absence_attendance_type_id in  number
41   ,p_effective_date             in  date
42   ,p_running_total_hours        out nocopy number
43   ,p_running_total_days         out nocopy number
44   ,p_year_to_date_hours         out nocopy number
45   ,p_year_to_date_days          out nocopy number);
46 --
47 --  ---------------------------------------------------------------------------
48 --  |---------------------<  per_valid_for_absence  >-------------------------|
49 --  ---------------------------------------------------------------------------
50 --
51 --  Description:
52 --    This function validates that the person exists and that they have
53 --    a valid period of service for the entire absence duration.
54 --
55 --  Pre-conditions:
56 --    None.
57 --
58 --  In Arguments:
59 --    p_person_id
60 --    p_business_group_id
61 --    p_person_type
62 --    p_date_projected_start
63 --    p_date_projected_end
64 --    p_date_start
65 --    p_date_end
66 --
67 --  Post Success:
68 --    If validation passes, the function returns TRUE.
69 --
70 --  Post Failure:
71 --    IF validation fails, the function returns FALSE.
72 --
73 --  Access Status:
74 --    Internal Table Handler Use Only. API updating is not required as this
75 --    is called from other chk procedures that use API updating.
76 --
77 -- {End Of Comments}
78 -- ----------------------------------------------------------------------------
79 function per_valid_for_absence
80   (p_person_id            in number
81   ,p_business_group_id    in number
82   ,p_date_projected_start in date
83   ,p_date_projected_end   in date
84   ,p_date_start           in date
85   ,p_date_end             in date) return boolean;
86 --
87 --  ---------------------------------------------------------------------------
88 --  |---------------------------<  convert_to_minutes >-----------------------|
89 --  ---------------------------------------------------------------------------
90 --
91 --  Description:
92 --   Converts two times into duration minutes.
93 --
94 --  Pre-conditions:
95 --
96 --  In Arguments:
97 --    p_time_start
98 --    p_time_end
99 --
100 --  Post Success:
101 --    The function returns duration minutes and processing continues.
102 --
103 --  Post Failure:
104 --    The function errors and processing stops.
105 --
106 --  Access Status:
107 --    Internal Development Use Only.
108 --
109 -- {End Of Comments}
110 -- ----------------------------------------------------------------------------
111 function convert_to_minutes
112   (p_time_start in varchar2
113   ,p_time_end   in varchar2) return number;
114 --
115 --  ---------------------------------------------------------------------------
116 --  |---------------------------<  chk_time_format >--------------------------|
117 --  ---------------------------------------------------------------------------
118 --
119 --  Description:
120 --   Checks that the time format is valid.
121 --
122 --  Pre-conditions:
123 --
124 --  In Arguments:
125 --    p_time
126 --
127 --  Post Success:
128 --    If the time format is valid, processing continues.
129 --
130 --  Post Failure:
131 --    If the time format is invalid processing stops and an error is raised.
132 --
133 --  Access Status:
134 --    Internal Development Use Only.
135 --
136 -- {End Of Comments}
137 -- ----------------------------------------------------------------------------
138 procedure chk_time_format
139   (p_time in varchar2);
140 --
141 --  ---------------------------------------------------------------------------
142 --  |-----------------<  calculate_absence_duration >-------------------------|
143 --  ---------------------------------------------------------------------------
144 --
145 --  Description:
146 --    Calculates the absence duration in hours and / or days and sets
147 --    the duration.
148 --
149 --  Pre-conditions:
150 --    None.
151 --
152 --  In Arguments:
153 --    p_absence_attendance_id
154 --    p_absence_attendance_type_id
155 --    p_business_group_id
156 --    p_object_version_number
157 --    p_effective_date
158 --    p_person_id
159 --    p_date_start
160 --    p_date_end
161 --    p_time_start
162 --    p_time_end
163 --
164 --  Out Arguments:
165 --    p_absence_days
166 --    p_absence_hours
167 --    p_use_formula
168 --
169 --  Post Success:
170 --    The absence duration in days and hours is returned.
171 --
172 --  Post Failure:
173 --    If a failure occurs, an application error is raised and
174 --    processing terminates.
175 --
176 --  Access Status:
177 --    Internal Development Use Only.
178 --
179 -- {End Of Comments}
180 -- ----------------------------------------------------------------------------
181 procedure calculate_absence_duration
182  (p_absence_attendance_id      in  number
183  ,p_absence_attendance_type_id in  number
184  ,p_business_group_id          in  number
185  ,p_object_version_number      in  number
186  ,p_effective_date             in  date
187  ,p_person_id                  in  number
188  ,p_date_start                 in  date
189  ,p_date_end                   in  date
190  ,p_time_start                 in  varchar2
191  ,p_time_end                   in  varchar2
192  ,p_absence_days               out nocopy number
193  ,p_absence_hours              out nocopy number
194  ,p_use_formula                out nocopy boolean);
195 --
196 --  ---------------------------------------------------------------------------
197 --  |-----------------<  calculate_absence_duration -new >-------------------------|
198 --  ---------------------------------------------------------------------------
199 --
200 --  Description:
201 --    Calculates the absence duration in hours and / or days and sets
202 --    the duration.
203 --
204 --  Pre-conditions:
205 --    None.
206 --
207 --  In Arguments:
208 --    p_absence_attendance_id
209 --    p_absence_attendance_type_id
210 --    p_business_group_id
211 --    p_object_version_number
212 --    p_effective_date
213 --    p_person_id
214 --    p_date_start
215 --    p_date_end
216 --    p_time_start
217 --    p_time_end
218 --    p_ABS_INFORMATION_CATEGORY
219 --    p_ABS_INFORMATION1
220 --    p_ABS_INFORMATION2
221 --    p_ABS_INFORMATION3
222 --    p_ABS_INFORMATION4
223 --    p_ABS_INFORMATION5
224 --    p_ABS_INFORMATION6
225 --
226 --  Out Arguments:
227 --    p_absence_days
228 --    p_absence_hours
229 --    p_use_formula
230 --
231 --  Post Success:
232 --    The absence duration in days and hours is returned.
233 --
234 --  Post Failure:
235 --    If a failure occurs, an application error is raised and
236 --    processing terminates.
237 --
238 --  Access Status:
239 --    Internal Development Use Only.
240 --
241 -- {End Of Comments}
242 -- ----------------------------------------------------------------------------
243 procedure calculate_absence_duration
244  (p_absence_attendance_id      in  number
245  ,p_absence_attendance_type_id in  number
246  ,p_business_group_id          in  number
247  ,p_object_version_number      in  number
248  ,p_effective_date             in  date
249  ,p_person_id                  in  number
250  ,p_date_start                 in  date
251  ,p_date_end                   in  date
252  ,p_time_start                 in  varchar2
253  ,p_time_end                   in  varchar2
254  ,p_ABS_INFORMATION_CATEGORY   in varchar2
255  ,p_ABS_INFORMATION1          in varchar2
256  ,p_ABS_INFORMATION2          in varchar2
257  ,p_ABS_INFORMATION3          in varchar2
258  ,p_ABS_INFORMATION4          in varchar2
259  ,p_ABS_INFORMATION5          in varchar2
260  ,p_ABS_INFORMATION6          in varchar2
261  ,p_absence_days               out nocopy number
262  ,p_absence_hours              out nocopy number
263  ,p_use_formula                out nocopy boolean);
264 --
265 --  ---------------------------------------------------------------------------
266 --  |---------------------------<  chk_person_id >----------------------------|
267 --  ---------------------------------------------------------------------------
268 --
269 --  Description:
270 --    Validates that the person exists, that they have a valid period of
271 --    service and that they match the business group id being passed.
272 --
273 --  Pre-conditions:
274 --
275 --  In Arguments:
276 --    p_absence_attendance_id
277 --    p_person_id
278 --    p_business_group_id
279 --
280 --  Post Success:
281 --    If the person and their period of service are valid, processing
282 --    continues.
283 --
284 --  Post Failure:
285 --    An application error will be raised and processing is terminated.
286 --
287 --  Access Status:
288 --    Internal Development Use Only.
289 --
290 -- {End Of Comments}
291 -- ----------------------------------------------------------------------------
292 procedure chk_person_id
293   (p_absence_attendance_id in number
294   ,p_person_id             in number
295   ,p_business_group_id     in number
296   ,p_object_version_number in number
297   ,p_date_projected_start  in date
298   ,p_date_projected_end    in date
299   ,p_date_start            in date
300   ,p_date_end              in date);
301 --
302 --  ---------------------------------------------------------------------------
303 --  |-----------------<  chk_absence_attendance_type_id >---------------------|
304 --  ---------------------------------------------------------------------------
305 --
306 --  Description:
307 --    Validates that the absence_attendance_type_id exists in
308 --    per_absence_attendance_types for the same business group and that it
309 --    is effective for the entire absence duration.
310 --
311 --  Pre-conditions:
312 --    None.
313 --
314 --  In Arguments:
315 --    p_absence_attendance_id
316 --    p_business_group_id
317 --    p_absence_attendance_type_id
318 --    p_object_version_number
319 --
320 --  Post Success:
321 --    If absence_attendance_type_id exists and is valid,
322 --    processing continues.
323 --
324 --  Post Failure:
325 --    If absence_attendance_type_id is invalid,
326 --    an application error is raised and processing terminates.
327 --
328 --  Access Status:
329 --    Internal Development Use Only.
330 --
331 -- {End Of Comments}
332 -- ----------------------------------------------------------------------------
333 procedure chk_absence_attendance_type_id
334  (p_absence_attendance_id      in  number
335  ,p_absence_attendance_type_id in  number
336  ,p_business_group_id          in  number
337  ,p_object_version_number      in  number
338  ,p_date_projected_start       in  date
339  ,p_date_projected_end         in  date
340  ,p_date_start                 in  date
341  ,p_date_end                   in  date);
342 --
343 --  ---------------------------------------------------------------------------
344 --  |-----------------<  chk_abs_attendance_reason_id >-----------------------|
345 --  ---------------------------------------------------------------------------
346 --
347 --  Description:
348 --    Validates that an abs_attendance_reason_id exists in table
349 --    per_abs_attendance_reasons, also valid in hr_lookups
350 --    where lookup_type is 'ABSENCE_REASON' and enabled_flag is 'Y'
351 --    and effective_date is between the active dates (if they are not null).
352 --
353 --  Pre-conditions:
354 --    absence_attendance_type_id must be valid.
355 --    business_group_id must be valid.
356 --    effective_date must be valid.
357 --
358 --  In Arguments:
359 --    p_absence_attendance_id
360 --    p_absence_attendance_type_id
361 --    p_abs_attendance_reason_id
362 --    p_business_group_id
363 --    p_object_version_number
364 --    p_effective_date
365 --
366 --  Post Success:
367 --    If a row does exist; processing continues.
368 --
369 --  Post Failure:
370 --    If a row does not exist in per_abs_attendance_reason and hr_lookups for
371 --    a given reason id then an error will be raised and processing terminated.
372 --
373 --  Access Status:
374 --    Internal Table Handler Use Only.
375 --
376 -- {End Of Comments}
377 -- ----------------------------------------------------------------------------
378 procedure chk_abs_attendance_reason_id
379   (p_absence_attendance_id      in number
380   ,p_absence_attendance_type_id in number
381   ,p_abs_attendance_reason_id   in number
382   ,p_business_group_id          in number
383   ,p_object_version_number      in number
384   ,p_effective_date             in date);
385 --
386 --  ---------------------------------------------------------------------------
387 --  |-----------------<  chk_absence_period --new >---------------------------------|
388 --  ---------------------------------------------------------------------------
389 --
390 --  Description:
391 --    Validates the projected dates, actual dates, times and the duration.
392 --
393 --  Pre-conditions:
394 --    absence_attendance_type_id must be valid.
395 --    business_group_id must be valid.
396 --    effective_date must be valid.
397 --
398 --  In Arguments:
399 --    p_absence_attendance_id
400 --    p_absence_attendance_type_id
401 --    p_business_group_id
402 --    p_object_version_number
403 --    p_effective_date
404 --    p_person_id
405 --    p_date_projected_start
406 --    p_time_projected_start
407 --    p_date_projected_end
408 --    p_time_projected_end
409 --    p_date_start
410 --    p_time_start
411 --    p_date_end
412 --    p_time_end
413 --    p_ABS_INFORMATION_CATEGORY
414 --    p_ABS_INFORMATION1
415 --    p_ABS_INFORMATION2
416 --    p_ABS_INFORMATION3
417 --    p_ABS_INFORMATION4
418 --    p_ABS_INFORMATION5
419 --    p_ABS_INFORMATION6
420 --
421 --  In Out Arguments:
422 --    p_absence_days
423 --    p_absence_hours
424 --
425 --  Post Success:
426 --    If validation passes, processing continues.
427 --
428 --  Post Failure:
429 --    IF validation fails, the appropriate error or warning is raised.
430 --
431 --  Access Status:
432 --    Internal Table Handler Use Only.
433 --
434 -- {End Of Comments}
435 -- ----------------------------------------------------------------------------
436 procedure chk_absence_period
437   (p_absence_attendance_id      in     number
438   ,p_absence_attendance_type_id in     number
439   ,p_business_group_id          in     number
440   ,p_object_version_number      in     number
441   ,p_effective_date             in     date
442   ,p_person_id                  in     number
443   ,p_date_projected_start       in     date
444   ,p_time_projected_start       in     varchar2
445   ,p_date_projected_end         in     date
446   ,p_time_projected_end         in     varchar2
447   ,p_date_start                 in     date
448   ,p_time_start                 in     varchar2
449   ,p_date_end                   in     date
450   ,p_time_end                   in     varchar2
451   ,p_ABS_INFORMATION_CATEGORY   in varchar2
452   ,p_ABS_INFORMATION1          in varchar2
453   ,p_ABS_INFORMATION2          in varchar2
454   ,p_ABS_INFORMATION3          in varchar2
455   ,p_ABS_INFORMATION4          in varchar2
456   ,p_ABS_INFORMATION5          in varchar2
457   ,p_ABS_INFORMATION6          in varchar2
458   ,p_absence_days               in out nocopy number
459   ,p_absence_hours              in out nocopy number
460   ,p_dur_dys_less_warning       out nocopy    boolean
461   ,p_dur_hrs_less_warning       out nocopy    boolean
462   ,p_exceeds_pto_entit_warning  out nocopy    boolean
463   ,p_exceeds_run_total_warning  out nocopy    boolean
464   ,p_abs_overlap_warning        out nocopy    boolean
465   ,p_abs_day_after_warning      out nocopy    boolean
466   ,p_dur_overwritten_warning    out nocopy    boolean);
467 --
468 --  ---------------------------------------------------------------------------
469 --  |-----------------<  chk_absence_period -- old>---------------------------------|
470 --  ---------------------------------------------------------------------------
471 --
472 --  Description:
473 --    Validates the projected dates, actual dates, times and the duration.
474 --
475 --  Pre-conditions:
476 --    absence_attendance_type_id must be valid.
477 --    business_group_id must be valid.
478 --    effective_date must be valid.
479 --
480 --  In Arguments:
481 --    p_absence_attendance_id
482 --    p_absence_attendance_type_id
483 --    p_business_group_id
484 --    p_object_version_number
485 --    p_effective_date
486 --    p_person_id
487 --    p_date_projected_start
488 --    p_time_projected_start
489 --    p_date_projected_end
490 --    p_time_projected_end
491 --    p_date_start
492 --    p_time_start
493 --    p_date_end
494 --    p_time_end
495 --
496 --  In Out Arguments:
497 --    p_absence_days
498 --    p_absence_hours
499 --
500 --  Post Success:
501 --    If validation passes, processing continues.
502 --
503 --  Post Failure:
504 --    IF validation fails, the appropriate error or warning is raised.
505 --
506 --  Access Status:
507 --    Internal Table Handler Use Only.
508 --
509 -- {End Of Comments}
510 -- ----------------------------------------------------------------------------
511 procedure chk_absence_period
512   (p_absence_attendance_id      in     number
513   ,p_absence_attendance_type_id in     number
514   ,p_business_group_id          in     number
515   ,p_object_version_number      in     number
516   ,p_effective_date             in     date
517   ,p_person_id                  in     number
518   ,p_date_projected_start       in     date
519   ,p_time_projected_start       in     varchar2
520   ,p_date_projected_end         in     date
521   ,p_time_projected_end         in     varchar2
522   ,p_date_start                 in     date
523   ,p_time_start                 in     varchar2
524   ,p_date_end                   in     date
525   ,p_time_end                   in     varchar2
526 
527   ,p_absence_days               in out nocopy number
528   ,p_absence_hours              in out nocopy number
529   ,p_dur_dys_less_warning       out nocopy    boolean
530   ,p_dur_hrs_less_warning       out nocopy    boolean
531   ,p_exceeds_pto_entit_warning  out nocopy    boolean
532   ,p_exceeds_run_total_warning  out nocopy    boolean
536 --
533   ,p_abs_overlap_warning        out nocopy    boolean
534   ,p_abs_day_after_warning      out nocopy    boolean
535   ,p_dur_overwritten_warning    out nocopy    boolean);
537 --  ---------------------------------------------------------------------------
538 --  |----------------------<  chk_replacement_person_id >---------------------|
539 --  ---------------------------------------------------------------------------
540 --
541 --  Description:
542 --    Validates that the person exists, that they have a valid period of
543 --    service and that they match the business group id being passed.
544 --
545 --  Pre-conditions:
546 --
547 --  In Arguments:
548 --    p_absence_attendance_id
549 --    p_replacement_person_id
550 --    p_business_group_id
551 --
552 --  Post Success:
553 --    If the person and their period of service are valid, processing
554 --    continues.
555 --
556 --  Post Failure:
557 --    An application error will be raised and processing is terminated.
558 --
559 --  Access Status:
560 --    Internal Development Use Only.
561 --
562 -- {End Of Comments}
563 -- ----------------------------------------------------------------------------
564 procedure chk_replacement_person_id
565   (p_absence_attendance_id in number
566   ,p_replacement_person_id in number
567   ,p_business_group_id     in number
568   ,p_object_version_number in number
569   ,p_date_projected_start  in date
570   ,p_date_projected_end    in date
571   ,p_date_start            in date
572   ,p_date_end              in date);
573 --
574 --  ---------------------------------------------------------------------------
575 --  |----------------------<  chk_authorising_person_id >---------------------|
576 --  ---------------------------------------------------------------------------
577 --
578 --  Description:
579 --    Validates that the person exists, that they have a valid period of
580 --    service and that they match the business group id being passed.
581 --
582 --  Pre-conditions:
583 --
584 --  In Arguments:
585 --    p_absence_attendance_id
586 --    p_replacement_person_id
587 --    p_business_group_id
588 --
589 --  Post Success:
590 --    If the person and their period of service are valid, processing
591 --    continues.
592 --
593 --  Post Failure:
594 --    An application error will be raised and processing is terminated.
595 --
596 --  Access Status:
597 --    Internal Development Use Only.
598 --
599 -- {End Of Comments}
600 -- ----------------------------------------------------------------------------
601 procedure chk_authorising_person_id
602   (p_absence_attendance_id in number
603   ,p_authorising_person_id in number
604   ,p_business_group_id     in number
605   ,p_object_version_number in number
606   ,p_date_projected_start  in date
607   ,p_date_projected_end    in date
608   ,p_date_start            in date
609   ,p_date_end              in date);
610 --
611 -- ---------------------------------------------------------------------------
612 -- |----------------------< set_security_group_id >--------------------------|
613 -- ---------------------------------------------------------------------------
614 -- {Start Of Comments}
615 --
616 --  Description:
617 --    Sets the security_group_id in CLIENT_INFO for the appropriate business
618 --    group context.
619 --
620 --  Prerequisites:
621 --    The primary key identified by p_absence_attendance_id
622 --     already exists.
623 --
624 --  In Arguments:
625 --    p_absence_attendance_id
626 --
627 --
628 --  Post Success:
629 --    The security_group_id will be set in CLIENT_INFO.
630 --
631 --  Post Failure:
632 --    An error is raised if the value does not exist.
633 --
634 --  Access Status:
635 --    Internal Development Use Only.
636 --
637 -- {End Of Comments}
638 -- ---------------------------------------------------------------------------
639 procedure set_security_group_id
640   (p_absence_attendance_id                in number
641   );
642 --
643 -- ---------------------------------------------------------------------------
644 -- |---------------------< return_legislation_code >-------------------------|
645 -- ---------------------------------------------------------------------------
646 -- {Start Of Comments}
647 --
648 --  Description:
649 --    Return the legislation code for a specific primary key value
650 --
651 --  Prerequisites:
652 --    The primary key identified by p_absence_attendance_id
653 --     already exists.
654 --
655 --  In Arguments:
656 --    p_absence_attendance_id
657 --
658 --
659 --  Post Success:
660 --    The business group's legislation code will be returned.
661 --
662 --  Post Failure:
663 --    An error is raised if the value does not exist.
664 --
665 --  Access Status:
666 --    Internal Development Use Only.
667 --
668 -- {End Of Comments}
669 -- ---------------------------------------------------------------------------
670 FUNCTION return_legislation_code
671   (p_absence_attendance_id                in     number
672   ) RETURN varchar2;
673 --
677 -- {Start of comments}
674 -- ----------------------------------------------------------------------------
675 -- |---------------------------< insert_validate >----------------------------|
676 -- ----------------------------------------------------------------------------
678 --
679 -- Description:
680 --   This procedure controls the execution of all insert business rules
681 --   validation.
682 --
683 -- Prerequisites:
684 --   This private procedure is called from ins procedure.
685 --
686 -- In Parameters:
687 --   A Pl/Sql record structure.
688 --
689 -- Out Parameters:
690 --   p_dur_dys_less_warning  - true, when HR_EMP_ABS_SHORT_DURATION warning
691 --                             is raised.
692 --   p_dur_hrs_less_warning  - true, when HR_ABS_HOUR_LESS_DURATION warning
693 --                             is raised.
694 --   p_exceeds_pto_entit_warning - true, when HR_EMP_NOT_ENTITLED warning
695 --                             is raised.
696 --   p_exceeds_run_total_warning - true, when HR_ABS_DET_RUNNING_ZERO warning
697 --                             is raised.
698 --   p_abs_overlap_warning   - true, when HR_ABS_DET_OVERLAP warning is
699 --                             raised.
700 --   p_abs_day_after_warning - true, when HR_ABS_DET_ABS_DAY_AFTER warning
701 --                             is raised.
702 --   p_dur_overwritten_warning true, when the absence durations have been
703 --                             overwritten by the Fast Formula values.
704 --
705 -- Post Success:
706 --   Processing continues.
707 --
708 -- Post Failure:
709 --   If a business rules fails the error will not be handled by this procedure
710 --   unless explicity coded.
711 --
712 -- Developer Implementation Notes:
713 --   For insert, your business rules should be executed from this procedure and
714 --   should ideally (unless really necessary) just be straight procedure or
715 --   function calls. Try and avoid using conditional branching logic.
716 --
717 -- Access Status:
718 --   Internal Row Handler Use Only.
719 --
720 -- {End of comments}
721 -- ----------------------------------------------------------------------------
722 Procedure insert_validate
723   (p_effective_date               in date
724   ,p_rec                          in per_abs_shd.g_rec_type
725   ,p_dur_dys_less_warning         out nocopy boolean
726   ,p_dur_hrs_less_warning         out nocopy boolean
727   ,p_exceeds_pto_entit_warning    out nocopy boolean
728   ,p_exceeds_run_total_warning    out nocopy boolean
729   ,p_abs_overlap_warning          out nocopy boolean
730   ,p_abs_day_after_warning        out nocopy boolean
731   ,p_dur_overwritten_warning      out nocopy boolean
732   );
733 --
734 -- ----------------------------------------------------------------------------
735 -- |---------------------------< update_validate >----------------------------|
736 -- ----------------------------------------------------------------------------
737 -- {Start Of Comments}
738 --
739 -- Description:
740 --   This procedure controls the execution of all update business rules
741 --   validation.
742 --
743 -- Prerequisites:
744 --   This private procedure is called from upd procedure.
745 --
746 -- In Parameters:
747 --   A Pl/Sql record structure.
748 --
749 -- Out Parameters:
750 --   p_dur_dys_less_warning  - true, when HR_EMP_ABS_SHORT_DURATION warning
751 --                             is raised.
752 --   p_dur_hrs_less_warning  - true, when HR_ABS_HOUR_LESS_DURATION warning
753 --                             is raised.
754 --   p_exceeds_pto_entit_warning - true, when HR_EMP_NOT_ENTITLED warning
755 --                             is raised.
756 --   p_exceeds_run_total_warning - true, when HR_ABS_DET_RUNNING_ZERO warning
757 --                             is raised.
758 --   p_abs_overlap_warning   - true, when HR_ABS_DET_OVERLAP warning is
759 --                             raised.
760 --   p_abs_day_after_warning - true, when HR_ABS_DET_ABS_DAY_AFTER warning
761 --                             is raised.
762 --   p_dur_overwritten_warning true, when the absence durations have been
763 --                             overwritten by the Fast Formula values.
764 --
765 -- Post Success:
766 --   Processing continues.
767 --
768 -- Post Failure:
769 --   If a business rules fails the error will not be handled by this procedure
770 --   unless explicity coded.
771 --
772 -- Developer Implementation Notes:
773 --   For update, your business rules should be executed from this procedure and
774 --   should ideally (unless really necessary) just be straight procedure or
775 --   function calls. Try and avoid using conditional branching logic.
776 --
777 -- Access Status:
778 --   Internal Row Handler Use Only.
779 --
780 -- {End Of Comments}
781 -- ----------------------------------------------------------------------------
782 Procedure update_validate
783   (p_effective_date               in date
784   ,p_rec                          in per_abs_shd.g_rec_type
785   ,p_dur_dys_less_warning         out nocopy boolean
786   ,p_dur_hrs_less_warning         out nocopy boolean
787   ,p_exceeds_pto_entit_warning    out nocopy boolean
788   ,p_exceeds_run_total_warning    out nocopy boolean
789   ,p_abs_overlap_warning          out nocopy boolean
790   ,p_abs_day_after_warning        out nocopy boolean
791   ,p_dur_overwritten_warning      out nocopy boolean
792   );
793 --
794 -- ----------------------------------------------------------------------------
795 -- |---------------------------< delete_validate >----------------------------|
796 -- ----------------------------------------------------------------------------
797 -- {Start Of Comments}
798 --
799 -- Description:
800 --   This procedure controls the execution of all delete business rules
801 --   validation.
802 --
803 -- Prerequisites:
804 --   This private procedure is called from del procedure.
805 --
806 -- In Parameters:
807 --   A Pl/Sql record structure.
808 --
809 -- Post Success:
810 --   Processing continues.
811 --
812 -- Post Failure:
813 --   If a business rules fails the error will not be handled by this procedure
814 --   unless explicity coded.
815 --
816 -- Developer Implementation Notes:
817 --   For delete, your business rules should be executed from this procedure and
818 --   should ideally (unless really necessary) just be straight procedure or
819 --   function calls. Try and avoid using conditional branching logic.
820 --
821 -- Access Status:
822 --   Internal Row Handler Use Only.
823 --
824 -- {End Of Comments}
825 -- ----------------------------------------------------------------------------
826 Procedure delete_validate
827   (p_rec              in per_abs_shd.g_rec_type
828   );
829 --
830 end per_abs_bus;