DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_LOA_SS

Source


1 PACKAGE BODY HR_LOA_SS
2 /* $Header: hrloawrs.pkb 120.15 2011/11/15 11:56:47 sidsaxen ship $*/
3 AS
4 g_package      constant varchar2(75):='HR_LOA_SS.';
5 g_data_error            exception;
6 g_date_format  constant varchar2(10):='RRRR-MM-DD';
7 g_confirm      constant varchar2(9):='CONFIRMED';
8 g_planned      constant varchar2(7):='PLANNED';
9 g_usr_date_fmt       varchar2(20) := fnd_profile.value('ICX_DATE_FORMAT_MASK');
10 g_usr_day_time_fmt  varchar(40) := g_usr_date_fmt|| ' HH24:MI:SS';
11 
12 --2793140 change starts
13 --cursor to fetch the absence row from per_absence_attendances
14 CURSOR gc_get_absence_row (p_absence_attendance_id in number) IS
15 SELECT     paa.absence_attendance_type_id
16           ,paa.business_group_id
17           ,paa.person_id
18           ,paa.abs_attendance_reason_id
19           ,paa.authorising_person_id
20           ,paa.replacement_person_id
21           ,paa.absence_days
22           ,paa.absence_hours
23           ,paa.date_projected_start
24           ,paa.time_projected_start
25           ,paa.date_projected_end
26           ,paa.time_projected_end
27           ,paa.date_start
28           ,paa.time_start
29           ,paa.date_end
30           ,paa.time_end
31           ,paa.comments
32           ,paa.absence_attendance_id
33           ,paa.object_version_number
34           ,paa.date_notification
35           ,paa.attribute_category
36           ,paa.attribute1
37 	  ,paa.attribute2
38 	  ,paa.attribute3
39 	  ,paa.attribute4
40 	  ,paa.attribute5
41 	 ,paa.attribute6
42 	 ,paa.attribute7
43 	 ,paa.attribute8
44 	 ,paa.attribute9
45 	 ,paa.attribute10
46 	 ,paa.attribute11
47 	 ,paa.attribute12
48 	 ,paa.attribute13
49 	 ,paa.attribute14
50 	 ,paa.attribute15
51 	 ,paa.attribute16
52 	 ,paa.attribute17
53 	 ,paa.attribute18
54 	 ,paa.attribute19
55 	 ,paa.attribute20
56 	 ,paa.abs_information_category
57 	 ,paa.abs_information1
58 	 ,paa.abs_information2
59 	 ,paa.abs_information3
60 	 ,paa.abs_information4
61 	 ,paa.abs_information5
62 	 ,paa.abs_information6
63 	 ,paa.abs_information7
64 	 ,paa.abs_information8
65 	 ,paa.abs_information9
66 	 ,paa.abs_information10
67 	 ,paa.abs_information11
68 	 ,paa.abs_information12
69 	 ,paa.abs_information13
70 	 ,paa.abs_information14
71 	 ,paa.abs_information15
72 	 ,paa.abs_information16
73 	 ,paa.abs_information17
74 	 ,paa.abs_information18
75 	 ,paa.abs_information19
76 	 ,paa.abs_information20
77 	 ,paa.abs_information21
78 	 ,paa.abs_information22
79 	 ,paa.abs_information23
80 	 ,paa.abs_information24
81 	 ,paa.abs_information25
82 	 ,paa.abs_information26
83 	 ,paa.abs_information27
84 	 ,paa.abs_information28
85 	 ,paa.abs_information29
86 	 ,paa.abs_information30
87 FROM per_absence_attendances paa
88 WHERE   paa.absence_attendance_id = p_absence_attendance_id;
89 
90 --2793140 change ends
91   /*
92   ||===========================================================================
93   || PROCEDURE: create_person_absence
94   ||---------------------------------------------------------------------------
95   ||
96   || Description:
97   ||     This procedure will call the actual API -
98   ||                hr_person_absence_api.create_person_absence()
99   ||
100   || Access Status:
101   ||     Public.
102   ||
103   ||===========================================================================
104   */
105   PROCEDURE create_person_absence
106   (p_validate                      in     number  default 0
107   ,p_effective_date                in     date
108   ,p_person_id                     in     number
109   ,p_business_group_id             in     number
110   ,p_absence_attendance_type_id    in     number
111   ,p_abs_attendance_reason_id      in     number   default null
112   ,p_comments                      in     clob     default null	-- Bug#13362792
113   ,p_date_notification             in     date     default null
114   ,p_date_projected_start          in     date     default null
115   ,p_time_projected_start          in     varchar2 default null
116   ,p_date_projected_end            in     date     default null
117   ,p_time_projected_end            in     date     default null
118   ,p_date_start                    in     date     default null
119   ,p_time_start                    in     varchar2 default null
120   ,p_date_end                      in     date     default null
121   ,p_time_end                      in     varchar2 default null
122   ,p_absence_days                  in out nocopy number
123   ,p_absence_hours                 in out nocopy number
124   ,p_authorising_person_id         in     number   default null
125   ,p_replacement_person_id         in     number   default null
126   ,p_attribute_category            in     varchar2 default null
127   ,p_attribute1                    in     varchar2 default null
128   ,p_attribute2                    in     varchar2 default null
129   ,p_attribute3                    in     varchar2 default null
130   ,p_attribute4                    in     varchar2 default null
131   ,p_attribute5                    in     varchar2 default null
132   ,p_attribute6                    in     varchar2 default null
133   ,p_attribute7                    in     varchar2 default null
134   ,p_attribute8                    in     varchar2 default null
135   ,p_attribute9                    in     varchar2 default null
136   ,p_attribute10                   in     varchar2 default null
137   ,p_attribute11                   in     varchar2 default null
138   ,p_attribute12                   in     varchar2 default null
139   ,p_attribute13                   in     varchar2 default null
140   ,p_attribute14                   in     varchar2 default null
141   ,p_attribute15                   in     varchar2 default null
142   ,p_attribute16                   in     varchar2 default null
143   ,p_attribute17                   in     varchar2 default null
144   ,p_attribute18                   in     varchar2 default null
145   ,p_attribute19                   in     varchar2 default null
146   ,p_attribute20                   in     varchar2 default null
147   ,p_period_of_incapacity_id       in     number   default null
148   ,p_ssp1_issued                   in     varchar2 default 'N'
149   ,p_maternity_id                  in     number   default null
150   ,p_sickness_start_date           in     date     default null
151   ,p_sickness_end_date             in     date     default null
152   ,p_pregnancy_related_illness     in     varchar2 default 'N'
153   ,p_reason_for_notification_dela  in     varchar2 default null
154   ,p_accept_late_notification_fla  in     varchar2 default 'N'
155   ,p_linked_absence_id             in     number   default null
156   ,p_abs_information_category      in     varchar2 default null
157   ,p_abs_information1              in     varchar2 default null
158   ,p_abs_information2              in     varchar2 default null
159   ,p_abs_information3              in     varchar2 default null
160   ,p_abs_information4              in     varchar2 default null
161   ,p_abs_information5              in     varchar2 default null
162   ,p_abs_information6              in     varchar2 default null
163   ,p_abs_information7              in     varchar2 default null
164   ,p_abs_information8              in     varchar2 default null
165   ,p_abs_information9              in     varchar2 default null
166   ,p_abs_information10             in     varchar2 default null
167   ,p_abs_information11             in     varchar2 default null
168   ,p_abs_information12             in     varchar2 default null
169   ,p_abs_information13             in     varchar2 default null
170   ,p_abs_information14             in     varchar2 default null
171   ,p_abs_information15             in     varchar2 default null
172   ,p_abs_information16             in     varchar2 default null
173   ,p_abs_information17             in     varchar2 default null
174   ,p_abs_information18             in     varchar2 default null
175   ,p_abs_information19             in     varchar2 default null
176   ,p_abs_information20             in     varchar2 default null
177   ,p_abs_information21             in     varchar2 default null
178   ,p_abs_information22             in     varchar2 default null
179   ,p_abs_information23             in     varchar2 default null
180   ,p_abs_information24             in     varchar2 default null
181   ,p_abs_information25             in     varchar2 default null
182   ,p_abs_information26             in     varchar2 default null
183   ,p_abs_information27             in     varchar2 default null
184   ,p_abs_information28             in     varchar2 default null
185   ,p_abs_information29             in     varchar2 default null
186   ,p_abs_information30             in     varchar2 default null
187   ,p_absence_attendance_id         out nocopy    number
188   ,p_object_version_number         out nocopy    number
189   ,p_occurrence                    out nocopy    number
190   ,p_dur_dys_less_warning          out nocopy    number
191   ,p_dur_hrs_less_warning          out nocopy    number
192   ,p_exceeds_pto_entit_warning     out nocopy    number
193   ,p_exceeds_run_total_warning     out nocopy    number
194   ,p_abs_overlap_warning           out nocopy    number
195   ,p_abs_day_after_warning         out nocopy    number
196   ,p_dur_overwritten_warning       out nocopy    number
197   )
198   IS
199 
200     l_proc                       varchar2(72) := g_package||'create_person_absence';
201     lb_abs_day_after_warning     BOOLEAN;
202     lb_abs_overlap_warning       BOOLEAN;
203     lb_dur_dys_less_warning      BOOLEAN;
204     lb_dur_hrs_less_warning      BOOLEAN;
205     lb_exceeds_pto_entit_warning BOOLEAN;
206     lb_exceeds_run_total_warning BOOLEAN;
207     lb_dur_overwritten_warning   BOOLEAN;
208 
209 
210   BEGIN
211   --
212   --
213   --
214     hr_utility.set_location(' Entering:' || l_proc,5);
215 
216     -- Call the actual API.
217     hr_person_absence_api.create_person_absence
218       (p_validate                      => hr_java_conv_util_ss.get_boolean (
219                                             p_number => p_validate
220                                           )
221       ,p_effective_date                => p_effective_date
222       ,p_person_id                     => p_person_id
223       ,p_business_group_id             => p_business_group_id
224       ,p_absence_attendance_type_id    => p_absence_attendance_type_id
225       ,p_abs_attendance_reason_id      => p_abs_attendance_reason_id
226       ,p_comments                      => p_comments
227       ,p_date_notification             => p_date_notification
228       ,p_date_projected_start          => p_date_projected_start
229       ,p_time_projected_start          => p_time_projected_start
230       ,p_date_projected_end            => p_date_projected_end
231       ,p_time_projected_end            => p_time_projected_end
232       ,p_date_start                    => p_date_start
233       ,p_time_start                    => p_time_start
234       ,p_date_end                      => p_date_end
235       ,p_time_end                      => p_time_end
236       ,p_absence_days                  => p_absence_days
237       ,p_absence_hours                 => p_absence_hours
238       ,p_authorising_person_id         => p_authorising_person_id
239       ,p_replacement_person_id         => p_replacement_person_id
240       ,p_attribute_category            => p_attribute_category
241       ,p_attribute1                    => p_attribute1
242       ,p_attribute2                    => p_attribute2
243       ,p_attribute3                    => p_attribute3
244       ,p_attribute4                    => p_attribute4
245       ,p_attribute5                    => p_attribute5
246       ,p_attribute6                    => p_attribute6
247       ,p_attribute7                    => p_attribute7
248       ,p_attribute8                    => p_attribute8
249       ,p_attribute9                    => p_attribute9
250       ,p_attribute10                   => p_attribute10
251       ,p_attribute11                   => p_attribute11
252       ,p_attribute12                   => p_attribute12
253       ,p_attribute13                   => p_attribute13
254       ,p_attribute14                   => p_attribute14
255       ,p_attribute15                   => p_attribute15
256       ,p_attribute16                   => p_attribute16
257       ,p_attribute17                   => p_attribute17
258       ,p_attribute18                   => p_attribute18
259       ,p_attribute19                   => p_attribute19
260       ,p_attribute20                   => p_attribute20
261       ,p_period_of_incapacity_id       => p_period_of_incapacity_id
262       ,p_ssp1_issued                   => p_ssp1_issued
263       ,p_maternity_id                  => p_maternity_id
264       ,p_sickness_start_date           => p_sickness_start_date
265       ,p_sickness_end_date             => p_sickness_end_date
266       ,p_pregnancy_related_illness     => p_pregnancy_related_illness
267       ,p_reason_for_notification_dela  => p_reason_for_notification_dela
268       ,p_accept_late_notification_fla  => p_accept_late_notification_fla
269       ,p_linked_absence_id             => p_linked_absence_id
270       ,p_abs_information_category            => p_abs_information_category
271       ,p_abs_information1                    => p_abs_information1
272       ,p_abs_information2                    => p_abs_information2
273       ,p_abs_information3                    => p_abs_information3
274       ,p_abs_information4                    => p_abs_information4
275       ,p_abs_information5                    => p_abs_information5
276       ,p_abs_information6                    => p_abs_information6
277       ,p_abs_information7                    => p_abs_information7
278       ,p_abs_information8                    => p_abs_information8
279       ,p_abs_information9                    => p_abs_information9
280       ,p_abs_information10                   => p_abs_information10
281       ,p_abs_information11                   => p_abs_information11
282       ,p_abs_information12                   => p_abs_information12
283       ,p_abs_information13                   => p_abs_information13
284       ,p_abs_information14                   => p_abs_information14
285       ,p_abs_information15                   => p_abs_information15
286       ,p_abs_information16                   => p_abs_information16
287       ,p_abs_information17                   => p_abs_information17
288       ,p_abs_information18                   => p_abs_information18
289       ,p_abs_information19                   => p_abs_information19
290       ,p_abs_information20                   => p_abs_information20
291       ,p_abs_information21                   => p_abs_information21
292       ,p_abs_information22                   => p_abs_information22
293       ,p_abs_information23                   => p_abs_information23
294       ,p_abs_information24                   => p_abs_information24
295       ,p_abs_information25                   => p_abs_information25
296       ,p_abs_information26                   => p_abs_information26
297       ,p_abs_information27                   => p_abs_information27
298       ,p_abs_information28                   => p_abs_information28
299       ,p_abs_information29                   => p_abs_information29
300       ,p_abs_information30                   => p_abs_information30
301       ,p_absence_attendance_id         => p_absence_attendance_id
302       ,p_object_version_number         => p_object_version_number
303       ,p_occurrence                    => p_occurrence
304       ,p_dur_dys_less_warning          => lb_dur_dys_less_warning
305       ,p_dur_hrs_less_warning          => lb_dur_hrs_less_warning
306       ,p_exceeds_pto_entit_warning     => lb_exceeds_pto_entit_warning
307       ,p_exceeds_run_total_warning     => lb_exceeds_run_total_warning
308       ,p_abs_overlap_warning           => lb_abs_overlap_warning
309       ,p_abs_day_after_warning         => lb_abs_day_after_warning
310       ,p_dur_overwritten_warning       => lb_dur_overwritten_warning
311     );
312     hr_utility.set_location( l_proc,10);
313 
314       p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
315       p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
316       p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
317       p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
318       p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
319       p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
320       p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
321 
322  hr_utility.set_location(' Leaving:' || l_proc,15);
323 
324   EXCEPTION
325     WHEN OTHERS THEN
326       hr_utility.trace(' Exception in HR_LOA_SS.create_person_absence: ' || SQLERRM );
327       hr_utility.set_location(' Leaving:' || l_proc,555);
328 
329       RAISE;  -- Raise error here relevant to the new tech stack.
330 
331   END create_person_absence;
332 
333   --2793140 change starts
334   /*
335   ||===========================================================================
336   || PROCEDURE: is_rec_changed
337   ||---------------------------------------------------------------------------
338   ||
339   || Description:
340   ||     This procedure will check if the user has changed the data or not
341   ||
342   || Access Status:
343   ||     Private.
344   ||
345   ||===========================================================================
346   */
347 
348   FUNCTION  is_rec_changed
349     (p_effective_date                in     date   default hr_api.g_date
350   ,p_absence_attendance_id         in     number   default hr_api.g_number
351   ,p_abs_attendance_reason_id      in     number   default hr_api.g_number
352   ,p_comments                      in     clob     default hr_api.g_varchar2	-- Bug#13362792
353   ,p_date_notification             in     date     default hr_api.g_date
354   ,p_date_projected_start          in     date     default hr_api.g_date
355   ,p_time_projected_start          in     varchar2 default hr_api.g_varchar2
356   ,p_date_projected_end            in     date     default hr_api.g_date
357   ,p_time_projected_end            in     varchar2 default hr_api.g_varchar2
358   ,p_date_start                    in     date     default hr_api.g_date
359   ,p_time_start                    in     varchar2 default hr_api.g_varchar2
360   ,p_date_end                      in     date     default hr_api.g_date
361   ,p_time_end                      in     varchar2 default hr_api.g_varchar2
362   ,p_absence_days                  in     number   default hr_api.g_number
363   ,p_absence_hours                 in     number   default hr_api.g_number
364   ,p_authorising_person_id         in     number   default hr_api.g_number
365   ,p_replacement_person_id         in     number   default hr_api.g_number
366   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
367   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
368   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
369   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
370   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
371   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
372   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
373   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
374   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
375   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
376   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
377   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
378   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
379   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
380   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
381   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
382   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
383   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
384   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
385   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
386   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
387   ,p_absiod_of_incapacity_id       in     number   default hr_api.g_number
388   ,p_ssp1_issued                   in     varchar2 default hr_api.g_varchar2
389   ,p_maternity_id                  in     number   default hr_api.g_number
390   ,p_sickness_start_date           in     date     default hr_api.g_date
391   ,p_sickness_end_date             in     date     default hr_api.g_date
392   ,p_pregnancy_related_illness     in     varchar2 default hr_api.g_varchar2
393   ,p_reason_for_notification_dela  in     varchar2 default hr_api.g_varchar2
394   ,p_accept_late_notification_fla  in     varchar2 default hr_api.g_varchar2
395   ,p_linked_absence_id             in     number   default hr_api.g_number
396   ,p_batch_id                      in     number   default hr_api.g_number
397   ,p_abs_information_category      in     varchar2 default hr_api.g_varchar2
398   ,p_abs_information1              in     varchar2 default hr_api.g_varchar2
399   ,p_abs_information2              in     varchar2 default hr_api.g_varchar2
400   ,p_abs_information3              in     varchar2 default hr_api.g_varchar2
401   ,p_abs_information4              in     varchar2 default hr_api.g_varchar2
402   ,p_abs_information5              in     varchar2 default hr_api.g_varchar2
403   ,p_abs_information6              in     varchar2 default hr_api.g_varchar2
404   ,p_abs_information7              in     varchar2 default hr_api.g_varchar2
405   ,p_abs_information8              in     varchar2 default hr_api.g_varchar2
406   ,p_abs_information9              in     varchar2 default hr_api.g_varchar2
407   ,p_abs_information10             in     varchar2 default hr_api.g_varchar2
408   ,p_abs_information11             in     varchar2 default hr_api.g_varchar2
409   ,p_abs_information12             in     varchar2 default hr_api.g_varchar2
410   ,p_abs_information13             in     varchar2 default hr_api.g_varchar2
411   ,p_abs_information14             in     varchar2 default hr_api.g_varchar2
412   ,p_abs_information15             in     varchar2 default hr_api.g_varchar2
413   ,p_abs_information16             in     varchar2 default hr_api.g_varchar2
414   ,p_abs_information17             in     varchar2 default hr_api.g_varchar2
415   ,p_abs_information18             in     varchar2 default hr_api.g_varchar2
416   ,p_abs_information19             in     varchar2 default hr_api.g_varchar2
417   ,p_abs_information20             in     varchar2 default hr_api.g_varchar2
418   ,p_abs_information21             in     varchar2 default hr_api.g_varchar2
419   ,p_abs_information22             in     varchar2 default hr_api.g_varchar2
420   ,p_abs_information23             in     varchar2 default hr_api.g_varchar2
421   ,p_abs_information24             in     varchar2 default hr_api.g_varchar2
422   ,p_abs_information25             in     varchar2 default hr_api.g_varchar2
423   ,p_abs_information26             in     varchar2 default hr_api.g_varchar2
424   ,p_abs_information27             in     varchar2 default hr_api.g_varchar2
425   ,p_abs_information28             in     varchar2 default hr_api.g_varchar2
426   ,p_abs_information29             in     varchar2 default hr_api.g_varchar2
427   ,p_abs_information30             in     varchar2 default hr_api.g_varchar2
428   ,p_object_version_number         in     number   default hr_api.g_number
429    )
430    return boolean
431    IS
432 
433   l_proc varchar2(200) := g_package || 'is_rec_changed';
434   l_rec_changed                    boolean default false;
435   l_cur_absence_row                gc_get_absence_row%rowtype;
436   custom_exc exception;
437 --
438 BEGIN
439 
440   hr_utility.set_location(' Entering:' || l_proc,5);
441 
442   OPEN gc_get_absence_row (p_absence_attendance_id => p_absence_attendance_id);
443 
444   FETCH gc_get_absence_row into l_cur_absence_row;
445   IF gc_get_absence_row%NOTFOUND
446   THEN
447      hr_utility.set_location(l_proc,10);
448      CLOSE gc_get_absence_row;
449      raise g_data_error;
450   ELSE
451      hr_utility.set_location(l_proc,15);
452      CLOSE gc_get_absence_row;
453   END IF;
454 --
455 ------------------------------------------------------------------------------
456 -- NOTE: We need to use nvl(xxx attribute name, hr_api.g_xxxx) because the
457 --       parameter coming in can be null.  If we do not use nvl, then it will
458 --       never be equal to the database null value if the parameter value is
459 --       also null.
460 ------------------------------------------------------------------------------
461   IF p_date_projected_start <> hr_api.g_date OR p_date_projected_start IS NULL
462   THEN
463      hr_utility.set_location(l_proc,20);
464      IF nvl(p_date_projected_start, hr_api.g_date) <>
465         nvl(l_cur_absence_row.date_projected_start, hr_api.g_date)
466      THEN
467         hr_utility.set_location(' Leaving:' || l_proc,25);
468         return TRUE;
469      END IF;
470   END IF;
471 --
472   IF p_date_projected_end <> hr_api.g_date OR p_date_projected_end IS NULL
473     THEN
474      IF nvl(p_date_projected_end, hr_api.g_date) <>
475         nvl(l_cur_absence_row.date_projected_end, hr_api.g_date)
476      THEN
477         hr_utility.set_location(' Leaving:' || l_proc,30);
478         return TRUE;
479      END IF;
480   END IF;
481 --
482   IF p_time_projected_start <> hr_api.g_varchar2 OR p_time_projected_start IS NULL
483   THEN
484      IF nvl(p_time_projected_start, hr_api.g_varchar2) <>
485         nvl(l_cur_absence_row.time_projected_start, hr_api.g_varchar2)
486      THEN
487         hr_utility.set_location(' Leaving:' || l_proc,35);
488 	return TRUE;
489      END IF;
490   END IF;
491 --
492   IF p_time_projected_end <> hr_api.g_varchar2 OR p_time_projected_end IS NULL
493   THEN
494      IF nvl(p_time_projected_end, hr_api.g_varchar2) <>
495         nvl(l_cur_absence_row.time_projected_end, hr_api.g_varchar2)
496      THEN
497         hr_utility.set_location(' Leaving:' || l_proc,40);
498 	return TRUE;
499      END IF;
500   END IF;
501 --
502   IF p_date_start <> hr_api.g_date OR p_date_start IS NULL
503   THEN
504      IF nvl(p_date_start, hr_api.g_date) <>
505         nvl(l_cur_absence_row.date_start, hr_api.g_date)
506      THEN
507         hr_utility.set_location(' Leaving:' || l_proc,45);
508 	return TRUE;
509      END IF;
510   END IF;
511 --
512   IF p_date_end <> hr_api.g_date OR p_date_end IS NULL
513     THEN
514      IF nvl(p_date_end, hr_api.g_date) <>
515         nvl(l_cur_absence_row.date_end, hr_api.g_date)
516      THEN
517         hr_utility.set_location(' Leaving:' || l_proc,50);
518 	return TRUE;
519      END IF;
520   END IF;
521 --
522   IF p_time_start <> hr_api.g_varchar2 OR p_time_start IS NULL
523   THEN
524      IF nvl(p_time_start, hr_api.g_varchar2) <>
525         nvl(l_cur_absence_row.time_start, hr_api.g_varchar2)
526      THEN
527         hr_utility.set_location(' Leaving:' || l_proc,55);
528 	return TRUE;
529      END IF;
530   END IF;
531 --
532   IF p_time_end <> hr_api.g_varchar2 OR p_time_end IS NULL
533   THEN
534      IF nvl(p_time_end, hr_api.g_varchar2) <>
535         nvl(l_cur_absence_row.time_end, hr_api.g_varchar2)
536      THEN
537         hr_utility.set_location(' Leaving:' || l_proc,60);
538 	return TRUE;
539      END IF;
540   END IF;
541 --
542   IF p_absence_days <> hr_api.g_number OR p_absence_days IS NULL
543   THEN
544      IF nvl(p_absence_days, hr_api.g_number) <>
545         nvl(l_cur_absence_row.absence_days, hr_api.g_number)
546      THEN
547         hr_utility.set_location(' Leaving:' || l_proc,65);
548 	return TRUE;
549      END IF;
550   END IF;
551 --
552   IF p_absence_hours <> hr_api.g_number OR p_absence_hours IS NULL
553   THEN
554      IF nvl(p_absence_hours, hr_api.g_number) <>
555         nvl(l_cur_absence_row.absence_hours, hr_api.g_number)
556      THEN
557         hr_utility.set_location(' Leaving:' || l_proc,70);
558 	return TRUE;
559      END IF;
560   END IF;
561 --
562   IF p_replacement_person_id <> hr_api.g_number OR p_replacement_person_id IS NULL
563   THEN
564      IF nvl(p_replacement_person_id, hr_api.g_number) <>
565         nvl(l_cur_absence_row.replacement_person_id, hr_api.g_number)
566      THEN
567         hr_utility.set_location(' Leaving:' || l_proc,70);
568 	return TRUE;
569      END IF;
570   END IF;
571 --
572   IF p_comments <> hr_api.g_varchar2 OR p_comments IS NULL
573   THEN
574      IF nvl(p_comments, hr_api.g_varchar2) <>
575         nvl(l_cur_absence_row.comments, hr_api.g_varchar2)
576      THEN
577         hr_utility.set_location(' Leaving:' || l_proc,75);
578 	return TRUE;
579      END IF;
580   END IF;
581 --
582   IF p_attribute_category <> hr_api.g_varchar2 OR p_attribute_category IS NULL
583   THEN
584      IF nvl(p_attribute_category, hr_api.g_varchar2) <>
585         nvl(l_cur_absence_row.attribute_category, hr_api.g_varchar2)
586      THEN
587         hr_utility.set_location(' Leaving:' || l_proc,80);
588 	return TRUE;
589      END IF;
590   END IF;
591 --
592   IF p_attribute1 <> hr_api.g_varchar2 OR p_attribute1 IS NULL
593   THEN
594      IF nvl(p_attribute1, hr_api.g_varchar2) <>
595         nvl(l_cur_absence_row.attribute1, hr_api.g_varchar2)
596      THEN
597         hr_utility.set_location(' Leaving:' || l_proc,85);
598 	return TRUE;
599      END IF;
600   END IF;
601 --
602   IF p_attribute2 <> hr_api.g_varchar2 OR p_attribute2 IS NULL
603   THEN
604      IF nvl(p_attribute2, hr_api.g_varchar2) <>
605         nvl(l_cur_absence_row.attribute2, hr_api.g_varchar2)
606      THEN
607         hr_utility.set_location(' Leaving:' || l_proc,90);
608 	return TRUE;
609      END IF;
610   END IF;
611 --
612   IF p_attribute3 <> hr_api.g_varchar2 OR p_attribute3 IS NULL
613   THEN
614      IF nvl(p_attribute3, hr_api.g_varchar2) <>
615         nvl(l_cur_absence_row.attribute3, hr_api.g_varchar2)
616      THEN
617         hr_utility.set_location(' Leaving:' || l_proc,95);
618 	return TRUE;
619      END IF;
620   END IF;
621 --
622   IF p_attribute4 <> hr_api.g_varchar2 OR p_attribute4 IS NULL
623   THEN
624      IF nvl(p_attribute4, hr_api.g_varchar2) <>
625         nvl(l_cur_absence_row.attribute4, hr_api.g_varchar2)
626      THEN
627         hr_utility.set_location(' Leaving:' || l_proc,100);
628 	return TRUE;
629      END IF;
630   END IF;
631 --
632   IF p_attribute5 <> hr_api.g_varchar2 OR p_attribute5 IS NULL
633   THEN
634      IF nvl(p_attribute5, hr_api.g_varchar2) <>
635         nvl(l_cur_absence_row.attribute5, hr_api.g_varchar2)
636      THEN
637         hr_utility.set_location(' Leaving:' || l_proc,105);
638 	return TRUE;
639      END IF;
640   END IF;
641 --
642   IF p_attribute6 <> hr_api.g_varchar2 OR p_attribute6 IS NULL
643   THEN
644      IF nvl(p_attribute6, hr_api.g_varchar2) <>
645         nvl(l_cur_absence_row.attribute6, hr_api.g_varchar2)
646      THEN
647         hr_utility.set_location(' Leaving:' || l_proc,110);
648 	return TRUE;
649      END IF;
650   END IF;
651 --
652   IF p_attribute7 <> hr_api.g_varchar2 OR p_attribute7 IS NULL
653   THEN
654      IF nvl(p_attribute7, hr_api.g_varchar2) <>
655         nvl(l_cur_absence_row.attribute7, hr_api.g_varchar2)
656      THEN
657         hr_utility.set_location(' Leaving:' || l_proc,115);
658 	return TRUE;
659      END IF;
660   END IF;
661 --
662   IF p_attribute8 <> hr_api.g_varchar2 OR p_attribute8 IS NULL
663   THEN
664      IF nvl(p_attribute8, hr_api.g_varchar2) <>
665         nvl(l_cur_absence_row.attribute8, hr_api.g_varchar2)
666      THEN
667         hr_utility.set_location(' Leaving:' || l_proc,120);
668 	return TRUE;
669      END IF;
670   END IF;
671 --
672   IF p_attribute9 <> hr_api.g_varchar2 OR p_attribute9 IS NULL
673   THEN
674      IF nvl(p_attribute9, hr_api.g_varchar2) <>
675         nvl(l_cur_absence_row.attribute9, hr_api.g_varchar2)
676      THEN
677         hr_utility.set_location(' Leaving:' || l_proc,125);
678 	return TRUE;
679      END IF;
680   END IF;
681 --
682   IF p_attribute10 <> hr_api.g_varchar2 OR p_attribute10 IS NULL
683   THEN
684      IF nvl(p_attribute10, hr_api.g_varchar2) <>
685         nvl(l_cur_absence_row.attribute10, hr_api.g_varchar2)
686      THEN
687         hr_utility.set_location(' Leaving:' || l_proc,130);
688 	return TRUE;
689      END IF;
690   END IF;
691 --
692   IF p_attribute11 <> hr_api.g_varchar2 OR p_attribute11 IS NULL
693   THEN
694      IF nvl(p_attribute11, hr_api.g_varchar2) <>
695         nvl(l_cur_absence_row.attribute11, hr_api.g_varchar2)
696      THEN
697         hr_utility.set_location(' Leaving:' || l_proc,135);
698 	return TRUE;
699      END IF;
700   END IF;
701 --
702   IF p_attribute12 <> hr_api.g_varchar2 OR p_attribute12 IS NULL
703   THEN
704      IF nvl(p_attribute12, hr_api.g_varchar2) <>
705         nvl(l_cur_absence_row.attribute12, hr_api.g_varchar2)
706      THEN
707         hr_utility.set_location(' Leaving:' || l_proc,140);
708 	return TRUE;
709      END IF;
710   END IF;
711 --
712   IF p_attribute13 <> hr_api.g_varchar2 OR p_attribute13 IS NULL
713   THEN
714      IF nvl(p_attribute13, hr_api.g_varchar2) <>
715         nvl(l_cur_absence_row.attribute13, hr_api.g_varchar2)
716      THEN
717         hr_utility.set_location(' Leaving:' || l_proc,145);
718 	return TRUE;
719      END IF;
720   END IF;
721 --
722   IF p_attribute14 <> hr_api.g_varchar2 OR p_attribute14 IS NULL
723   THEN
724      IF nvl(p_attribute14, hr_api.g_varchar2) <>
725         nvl(l_cur_absence_row.attribute14, hr_api.g_varchar2)
726      THEN
727         hr_utility.set_location(' Leaving:' || l_proc,150);
728 	return TRUE;
729      END IF;
730   END IF;
731 --
732   IF p_attribute15 <> hr_api.g_varchar2 OR p_attribute15 IS NULL
733   THEN
734      IF nvl(p_attribute15, hr_api.g_varchar2) <>
735         nvl(l_cur_absence_row.attribute15, hr_api.g_varchar2)
736      THEN
737         hr_utility.set_location(' Leaving:' || l_proc,155);
738 	return TRUE;
739      END IF;
740   END IF;
741 --
742   IF p_attribute16 <> hr_api.g_varchar2 OR p_attribute16 IS NULL
743   THEN
744      IF nvl(p_attribute16, hr_api.g_varchar2) <>
745         nvl(l_cur_absence_row.attribute16, hr_api.g_varchar2)
746      THEN
747         hr_utility.set_location(' Leaving:' || l_proc,160);
748 	return TRUE;
749      END IF;
750   END IF;
751 --
752   IF p_attribute17 <> hr_api.g_varchar2 OR p_attribute17 IS NULL
753   THEN
754      IF nvl(p_attribute17, hr_api.g_varchar2) <>
755         nvl(l_cur_absence_row.attribute17, hr_api.g_varchar2)
756      THEN
757         hr_utility.set_location(' Leaving:' || l_proc,165);
758 	return TRUE;
759      END IF;
760   END IF;
761 --
762   IF p_attribute18 <> hr_api.g_varchar2 OR p_attribute18 IS NULL
763   THEN
764      IF nvl(p_attribute18, hr_api.g_varchar2) <>
765         nvl(l_cur_absence_row.attribute18, hr_api.g_varchar2)
766      THEN
767         hr_utility.set_location(' Leaving:' || l_proc,170);
768 	return TRUE;
769      END IF;
770   END IF;
771 --
772   IF p_attribute19 <> hr_api.g_varchar2 OR p_attribute19 IS NULL
773   THEN
774      IF nvl(p_attribute19, hr_api.g_varchar2) <>
775         nvl(l_cur_absence_row.attribute19, hr_api.g_varchar2)
776      THEN
777         hr_utility.set_location(' Leaving:' || l_proc,175);
778 	return TRUE;
779      END IF;
780   END IF;
781 --
782   IF p_attribute20 <> hr_api.g_varchar2 OR p_attribute20 IS NULL
783   THEN
784      IF nvl(p_attribute20, hr_api.g_varchar2) <>
785         nvl(l_cur_absence_row.attribute20, hr_api.g_varchar2)
786      THEN
787      hr_utility.set_location(' Leaving:' || l_proc,180);
788 	return TRUE;
789      END IF;
790   END IF;
791 --
792   IF p_abs_information_category <> hr_api.g_varchar2 OR p_abs_information_category IS NULL
793   THEN
794      IF nvl(p_abs_information_category, hr_api.g_varchar2) <>
795         nvl(l_cur_absence_row.abs_information_category, hr_api.g_varchar2)
796      THEN
797      hr_utility.set_location(' Leaving:' || l_proc,185);
798 	return TRUE;
799      END IF;
800   END IF;
801 --
802   IF p_abs_information1 <> hr_api.g_varchar2 OR p_abs_information1 IS NULL
803   THEN
804      IF nvl(p_abs_information1, hr_api.g_varchar2) <>
805         nvl(l_cur_absence_row.abs_information1, hr_api.g_varchar2)
806      THEN
807      hr_utility.set_location(' Leaving:' || l_proc,190);
808 	return TRUE;
809      END IF;
810   END IF;
811 --
812   IF p_abs_information2 <> hr_api.g_varchar2 OR p_abs_information2 IS NULL
813   THEN
814      IF nvl(p_abs_information2, hr_api.g_varchar2) <>
815         nvl(l_cur_absence_row.abs_information2, hr_api.g_varchar2)
816      THEN
817      hr_utility.set_location(' Leaving:' || l_proc,195);
818 	return TRUE;
819      END IF;
820   END IF;
821 --
822   IF p_abs_information3 <> hr_api.g_varchar2 OR p_abs_information3 IS NULL
823   THEN
824      IF nvl(p_abs_information3, hr_api.g_varchar2) <>
825         nvl(l_cur_absence_row.abs_information3, hr_api.g_varchar2)
826      THEN
827      hr_utility.set_location(' Leaving:' || l_proc,200);
828 	return TRUE;
829      END IF;
830   END IF;
831 --
832   IF p_abs_information4 <> hr_api.g_varchar2 OR p_abs_information4 IS NULL
833   THEN
834      IF nvl(p_abs_information4, hr_api.g_varchar2) <>
835         nvl(l_cur_absence_row.abs_information4, hr_api.g_varchar2)
836      THEN
837      hr_utility.set_location(' Leaving:' || l_proc,205);
838 	return TRUE;
839      END IF;
840   END IF;
841 --
842   IF p_abs_information5 <> hr_api.g_varchar2 OR p_abs_information5 IS NULL
843   THEN
844      IF nvl(p_abs_information5, hr_api.g_varchar2) <>
845         nvl(l_cur_absence_row.abs_information5, hr_api.g_varchar2)
846      THEN
847      hr_utility.set_location(' Leaving:' || l_proc,210);
848 	return TRUE;
849      END IF;
850   END IF;
851 --
852   IF p_abs_information6 <> hr_api.g_varchar2 OR p_abs_information6 IS NULL
853   THEN
854      IF nvl(p_abs_information6, hr_api.g_varchar2) <>
855         nvl(l_cur_absence_row.abs_information6, hr_api.g_varchar2)
856      THEN
857      hr_utility.set_location(' Leaving:' || l_proc,215);
858 	return TRUE;
859      END IF;
860   END IF;
861 --
862   IF p_abs_information7 <> hr_api.g_varchar2 OR p_abs_information7 IS NULL
863   THEN
864      IF nvl(p_abs_information7, hr_api.g_varchar2) <>
865         nvl(l_cur_absence_row.abs_information7, hr_api.g_varchar2)
866      THEN
867      hr_utility.set_location(' Leaving:' || l_proc,220);
868 	return TRUE;
869      END IF;
870   END IF;
871 --
872   IF p_abs_information8 <> hr_api.g_varchar2 OR p_abs_information8 IS NULL
873   THEN
874      IF nvl(p_abs_information8, hr_api.g_varchar2) <>
875         nvl(l_cur_absence_row.abs_information8, hr_api.g_varchar2)
876      THEN
877      hr_utility.set_location(' Leaving:' || l_proc,225);
878 	return TRUE;
879      END IF;
880   END IF;
881 --
882   IF p_abs_information9 <> hr_api.g_varchar2 OR p_abs_information9 IS NULL
883   THEN
884      IF nvl(p_abs_information9, hr_api.g_varchar2) <>
885         nvl(l_cur_absence_row.abs_information9, hr_api.g_varchar2)
886      THEN
887      hr_utility.set_location(' Leaving:' || l_proc,230);
888 	return TRUE;
889      END IF;
890   END IF;
891 --
892   IF p_abs_information10 <> hr_api.g_varchar2 OR p_abs_information10 IS NULL
893   THEN
894      IF nvl(p_abs_information10, hr_api.g_varchar2) <>
895         nvl(l_cur_absence_row.abs_information10, hr_api.g_varchar2)
896      THEN
897      hr_utility.set_location(' Leaving:' || l_proc,235);
898 	return TRUE;
899      END IF;
900   END IF;
901 --
902   IF p_abs_information11 <> hr_api.g_varchar2 OR p_abs_information11 IS NULL
903   THEN
904      IF nvl(p_abs_information11, hr_api.g_varchar2) <>
905      nvl(l_cur_absence_row.abs_information11, hr_api.g_varchar2)
906      THEN
907      hr_utility.set_location(' Leaving:' || l_proc,240);
908 	return TRUE;
909      END IF;
910   END IF;
911 --
912   IF p_abs_information12 <> hr_api.g_varchar2 OR p_abs_information12 IS NULL
913   THEN
914      IF nvl(p_abs_information12, hr_api.g_varchar2) <>
915         nvl(l_cur_absence_row.abs_information12, hr_api.g_varchar2)
916      THEN
917      hr_utility.set_location(' Leaving:' || l_proc,245);
918 	return TRUE;
919      END IF;
920   END IF;
921 --
922   IF p_abs_information13 <> hr_api.g_varchar2 OR p_abs_information13 IS NULL
923   THEN
924      IF nvl(p_abs_information13, hr_api.g_varchar2) <>
925         nvl(l_cur_absence_row.abs_information13, hr_api.g_varchar2)
926      THEN
927      hr_utility.set_location(' Leaving:' || l_proc,250);
928 	return TRUE;
929      END IF;
930   END IF;
931 --
932   IF p_abs_information14 <> hr_api.g_varchar2 OR p_abs_information14 IS NULL
933   THEN
934      IF nvl(p_abs_information14, hr_api.g_varchar2) <>
935         nvl(l_cur_absence_row.abs_information14, hr_api.g_varchar2)
936      THEN
937      hr_utility.set_location(' Leaving:' || l_proc,255);
938 	return TRUE;
939      END IF;
940   END IF;
941 --
942   IF p_abs_information15 <> hr_api.g_varchar2 OR p_abs_information15 IS NULL
943   THEN
944      IF nvl(p_abs_information15, hr_api.g_varchar2) <>
945         nvl(l_cur_absence_row.abs_information15, hr_api.g_varchar2)
946      THEN
947      hr_utility.set_location(' Leaving:' || l_proc,260);
948 	return TRUE;
949      END IF;
950   END IF;
951 --
952   IF p_abs_information16 <> hr_api.g_varchar2 OR p_abs_information16 IS NULL
953   THEN
954      IF nvl(p_abs_information16, hr_api.g_varchar2) <>
955         nvl(l_cur_absence_row.abs_information16, hr_api.g_varchar2)
956      THEN
957      hr_utility.set_location(' Leaving:' || l_proc,265);
958 	return TRUE;
959      END IF;
960   END IF;
961 --
962   IF p_abs_information17 <> hr_api.g_varchar2 OR p_abs_information17 IS NULL
963   THEN
964      IF nvl(p_abs_information17, hr_api.g_varchar2) <>
965         nvl(l_cur_absence_row.abs_information17, hr_api.g_varchar2)
966      THEN
967      hr_utility.set_location(' Leaving:' || l_proc,270);
968 	return TRUE;
969      END IF;
970   END IF;
971 --
972   IF p_abs_information18 <> hr_api.g_varchar2 OR p_abs_information18 IS NULL
973   THEN
974      IF nvl(p_abs_information18, hr_api.g_varchar2) <>
975         nvl(l_cur_absence_row.abs_information18, hr_api.g_varchar2)
976      THEN
977      hr_utility.set_location(' Leaving:' || l_proc,275);
978 	return TRUE;
979      END IF;
980   END IF;
981 --
982   IF p_abs_information19 <> hr_api.g_varchar2 OR p_abs_information19 IS NULL
983   THEN
984      IF nvl(p_abs_information19, hr_api.g_varchar2) <>
985         nvl(l_cur_absence_row.abs_information19, hr_api.g_varchar2)
986      THEN
987      hr_utility.set_location(' Leaving:' || l_proc,280);
988 	return TRUE;
989      END IF;
990   END IF;
991 --
992   IF p_abs_information20 <> hr_api.g_varchar2 OR p_abs_information20 IS NULL
993   THEN
994      IF nvl(p_abs_information20, hr_api.g_varchar2) <>
995         nvl(l_cur_absence_row.abs_information20, hr_api.g_varchar2)
996      THEN
997      hr_utility.set_location(' Leaving:' || l_proc,285);
998 	return TRUE;
999      END IF;
1000   END IF;
1001 --
1002   IF p_abs_information21 <> hr_api.g_varchar2 OR p_abs_information21 IS NULL
1003   THEN
1004      IF nvl(p_abs_information21, hr_api.g_varchar2) <>
1005         nvl(l_cur_absence_row.abs_information21, hr_api.g_varchar2)
1006      THEN
1007      hr_utility.set_location(' Leaving:' || l_proc,290);
1008 	return TRUE;
1009      END IF;
1010   END IF;
1011 --
1012   IF p_abs_information22 <> hr_api.g_varchar2 OR p_abs_information22 IS NULL
1013   THEN
1014      IF nvl(p_abs_information22, hr_api.g_varchar2) <>
1015         nvl(l_cur_absence_row.abs_information22, hr_api.g_varchar2)
1016      THEN
1017      hr_utility.set_location(' Leaving:' || l_proc,295);
1018 	return TRUE;
1019      END IF;
1020   END IF;
1021 --
1022   IF p_abs_information23 <> hr_api.g_varchar2 OR p_abs_information23 IS NULL
1023   THEN
1024      IF nvl(p_abs_information23, hr_api.g_varchar2) <>
1025         nvl(l_cur_absence_row.abs_information23, hr_api.g_varchar2)
1026      THEN
1027      hr_utility.set_location(' Leaving:' || l_proc,300);
1028 	return TRUE;
1029      END IF;
1030   END IF;
1031 --
1032   IF p_abs_information24 <> hr_api.g_varchar2 OR p_abs_information24 IS NULL
1033   THEN
1034      IF nvl(p_abs_information24, hr_api.g_varchar2) <>
1035         nvl(l_cur_absence_row.abs_information24, hr_api.g_varchar2)
1036      THEN
1037      hr_utility.set_location(' Leaving:' || l_proc,305);
1038 	return TRUE;
1039      END IF;
1040   END IF;
1041 --
1042   IF p_abs_information25 <> hr_api.g_varchar2 OR p_abs_information25 IS NULL
1043   THEN
1044      IF nvl(p_abs_information25, hr_api.g_varchar2) <>
1045         nvl(l_cur_absence_row.abs_information25, hr_api.g_varchar2)
1046      THEN
1047      hr_utility.set_location(' Leaving:' || l_proc,310);
1048 	return TRUE;
1049      END IF;
1050   END IF;
1051 --
1052   IF p_abs_information26 <> hr_api.g_varchar2 OR p_abs_information26 IS NULL
1053   THEN
1054      IF nvl(p_abs_information26, hr_api.g_varchar2) <>
1055         nvl(l_cur_absence_row.abs_information26, hr_api.g_varchar2)
1056      THEN
1057      hr_utility.set_location(' Leaving:' || l_proc,315);
1058 	return TRUE;
1059      END IF;
1060   END IF;
1061 --
1062   IF p_abs_information27 <> hr_api.g_varchar2 OR p_abs_information27 IS NULL
1063   THEN
1064      IF nvl(p_abs_information27, hr_api.g_varchar2) <>
1065         nvl(l_cur_absence_row.abs_information27, hr_api.g_varchar2)
1066      THEN
1067      hr_utility.set_location(' Leaving:' || l_proc,320);
1068 	return TRUE;
1069      END IF;
1070   END IF;
1071 --
1072   IF p_abs_information28 <> hr_api.g_varchar2 OR p_abs_information28 IS NULL
1073   THEN
1074      IF nvl(p_abs_information28, hr_api.g_varchar2) <>
1075         nvl(l_cur_absence_row.abs_information28, hr_api.g_varchar2)
1076      THEN
1077      hr_utility.set_location(' Leaving:' || l_proc,325);
1078 	return TRUE;
1079      END IF;
1080   END IF;
1081 --
1082   IF p_abs_information29 <> hr_api.g_varchar2 OR p_abs_information29 IS NULL
1083   THEN
1084      IF nvl(p_abs_information29, hr_api.g_varchar2) <>
1085         nvl(l_cur_absence_row.abs_information29, hr_api.g_varchar2)
1086      THEN
1087      hr_utility.set_location(' Leaving:' || l_proc,330);
1088 	return TRUE;
1089      END IF;
1090   END IF;
1091 --
1092   IF p_abs_information30 <> hr_api.g_varchar2 OR p_abs_information30 IS NULL
1093   THEN
1094      IF nvl(p_abs_information30, hr_api.g_varchar2) <>
1095         nvl(l_cur_absence_row.abs_information30, hr_api.g_varchar2)
1096      THEN
1097      hr_utility.set_location(' Leaving:' || l_proc,335);
1098 	return TRUE;
1099      END IF;
1100   END IF;
1101 --
1102 hr_utility.set_location(' Leaving:' || l_proc,340);
1103   RETURN FALSE;
1104 
1105 
1106 EXCEPTION
1107   When g_data_error THEN
1108   hr_utility.set_location(' Leaving:' || l_proc,555);
1109        raise;
1110 
1111   When others THEN
1112   hr_utility.set_location(' Leaving:' || l_proc,560);
1113        raise;
1114 
1115 END is_rec_changed;
1116 
1117   --2793140 change ends
1118 
1119   /*
1120   ||===========================================================================
1121   || PROCEDURE: update_person_absence
1122   ||---------------------------------------------------------------------------
1123   ||
1124   || Description:
1125   ||     This procedure will call the actual API -
1126   ||                hr_person_absence_api.update_person_absence()
1127   ||
1128   || Access Status:
1129   ||     Public.
1130   ||
1131   ||===========================================================================
1132   */
1133 
1134  PROCEDURE update_person_absence
1135   (p_validate                      in     number  default 0
1136   ,p_effective_date                in     date
1137   ,p_business_group_id             in     number
1138   ,p_absence_attendance_id         in     number
1139   ,p_abs_attendance_reason_id      in     number   default hr_api.g_number
1140   ,p_comments                      in     clob     default hr_api.g_varchar2	-- Bug#13362792
1141   ,p_date_notification             in     date     default hr_api.g_date
1142   ,p_date_projected_start          in     date     default hr_api.g_date
1143   ,p_time_projected_start          in     varchar2 default hr_api.g_varchar2
1144   ,p_date_projected_end            in     date     default hr_api.g_date
1145   ,p_time_projected_end            in     varchar2 default hr_api.g_varchar2
1146   ,p_date_start                    in     date     default hr_api.g_date
1147   ,p_time_start                    in     varchar2 default hr_api.g_varchar2
1148   ,p_date_end                      in     date     default hr_api.g_date
1149   ,p_time_end                      in     varchar2 default hr_api.g_varchar2
1150   ,p_absence_days                  in out nocopy number
1151   ,p_absence_hours                 in out nocopy number
1152   ,p_authorising_person_id         in     number   default hr_api.g_number
1153   ,p_replacement_person_id         in     number   default hr_api.g_number
1154   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
1155   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
1156   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
1157   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
1158   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
1159   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
1160   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
1161   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
1162   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
1163   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
1164   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
1165   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
1166   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
1167   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
1168   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
1169   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
1170   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
1171   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
1172   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
1173   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
1174   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
1175   ,p_period_of_incapacity_id       in     number   default hr_api.g_number
1176   ,p_ssp1_issued                   in     varchar2 default hr_api.g_varchar2
1177   ,p_maternity_id                  in     number   default hr_api.g_number
1178   ,p_sickness_start_date           in     date     default hr_api.g_date
1179   ,p_sickness_end_date             in     date     default hr_api.g_date
1180   ,p_pregnancy_related_illness     in     varchar2 default hr_api.g_varchar2
1181   ,p_reason_for_notification_dela  in     varchar2 default hr_api.g_varchar2
1182   ,p_accept_late_notification_fla  in     varchar2 default hr_api.g_varchar2
1183   ,p_linked_absence_id             in     number   default hr_api.g_number
1184   ,p_object_version_number         in out nocopy number
1185   ,p_abs_information_category      in     varchar2 default null
1186   ,p_abs_information1              in     varchar2 default null
1187   ,p_abs_information2              in     varchar2 default null
1188   ,p_abs_information3              in     varchar2 default null
1189   ,p_abs_information4              in     varchar2 default null
1190   ,p_abs_information5              in     varchar2 default null
1191   ,p_abs_information6              in     varchar2 default null
1192   ,p_abs_information7              in     varchar2 default null
1193   ,p_abs_information8              in     varchar2 default null
1194   ,p_abs_information9              in     varchar2 default null
1195   ,p_abs_information10             in     varchar2 default null
1196   ,p_abs_information11             in     varchar2 default null
1197   ,p_abs_information12             in     varchar2 default null
1198   ,p_abs_information13             in     varchar2 default null
1199   ,p_abs_information14             in     varchar2 default null
1200   ,p_abs_information15             in     varchar2 default null
1201   ,p_abs_information16             in     varchar2 default null
1202   ,p_abs_information17             in     varchar2 default null
1203   ,p_abs_information18             in     varchar2 default null
1204   ,p_abs_information19             in     varchar2 default null
1205   ,p_abs_information20             in     varchar2 default null
1206   ,p_abs_information21             in     varchar2 default null
1207   ,p_abs_information22             in     varchar2 default null
1208   ,p_abs_information23             in     varchar2 default null
1209   ,p_abs_information24             in     varchar2 default null
1210   ,p_abs_information25             in     varchar2 default null
1211   ,p_abs_information26             in     varchar2 default null
1212   ,p_abs_information27             in     varchar2 default null
1213   ,p_abs_information28             in     varchar2 default null
1214   ,p_abs_information29             in     varchar2 default null
1215   ,p_abs_information30             in     varchar2 default null
1216   ,p_dur_dys_less_warning          out nocopy    number
1217   ,p_dur_hrs_less_warning          out nocopy    number
1218   ,p_exceeds_pto_entit_warning     out nocopy    number
1219   ,p_exceeds_run_total_warning     out nocopy    number
1220   ,p_abs_overlap_warning           out nocopy    number
1221   ,p_abs_day_after_warning         out nocopy    number
1222   ,p_dur_overwritten_warning       out nocopy    number
1223   ,p_del_element_entry_warning     out nocopy    number
1224   )
1225   IS
1226 
1227     l_proc                       varchar2(72) := g_package||'update_person_absence';
1228     lb_abs_day_after_warning     BOOLEAN;
1229     lb_abs_overlap_warning       BOOLEAN;
1230     lb_dur_dys_less_warning      BOOLEAN;
1231     lb_dur_hrs_less_warning      BOOLEAN;
1232     lb_exceeds_pto_entit_warning BOOLEAN;
1233     lb_exceeds_run_total_warning BOOLEAN;
1234     lb_dur_overwritten_warning   BOOLEAN;
1235     lb_del_element_entry_warning BOOLEAN;
1236 
1237   BEGIN
1238     hr_utility.set_location(' Entering:' || l_proc,5);
1239 
1240 
1241     -- Call the actual API.
1242     hr_person_absence_api.update_person_absence
1243       (p_validate                      => hr_java_conv_util_ss.get_boolean (
1244                                             p_number => p_validate
1245                                           )
1246       ,p_effective_date                => p_effective_date
1247 --      ,p_business_group_id             => p_business_group_id
1248       ,p_absence_attendance_id         => p_absence_attendance_id
1249       ,p_abs_attendance_reason_id      => p_abs_attendance_reason_id
1250       ,p_comments                      => p_comments
1251       ,p_date_notification             => p_date_notification
1252       ,p_date_projected_start          => p_date_projected_start
1253       ,p_time_projected_start          => p_time_projected_start
1254       ,p_date_projected_end            => p_date_projected_end
1255       ,p_time_projected_end            => p_time_projected_end
1256       ,p_date_start                    => p_date_start
1257       ,p_time_start                    => p_time_start
1258       ,p_date_end                      => p_date_end
1259       ,p_time_end                      => p_time_end
1260       ,p_absence_days                  => p_absence_days
1261       ,p_absence_hours                 => p_absence_hours
1262       ,p_authorising_person_id         => p_authorising_person_id
1263       ,p_replacement_person_id         => p_replacement_person_id
1264       ,p_attribute_category            => p_attribute_category
1265       ,p_attribute1                    => p_attribute1
1266       ,p_attribute2                    => p_attribute2
1267       ,p_attribute3                    => p_attribute3
1268       ,p_attribute4                    => p_attribute4
1269       ,p_attribute5                    => p_attribute5
1270       ,p_attribute6                    => p_attribute6
1271       ,p_attribute7                    => p_attribute7
1272       ,p_attribute8                    => p_attribute8
1273       ,p_attribute9                    => p_attribute9
1274       ,p_attribute10                   => p_attribute10
1275       ,p_attribute11                   => p_attribute11
1276       ,p_attribute12                   => p_attribute12
1277       ,p_attribute13                   => p_attribute13
1278       ,p_attribute14                   => p_attribute14
1279       ,p_attribute15                   => p_attribute15
1280       ,p_attribute16                   => p_attribute16
1281       ,p_attribute17                   => p_attribute17
1282       ,p_attribute18                   => p_attribute18
1283       ,p_attribute19                   => p_attribute19
1284       ,p_attribute20                   => p_attribute20
1285       ,p_period_of_incapacity_id       => p_period_of_incapacity_id
1286       ,p_ssp1_issued                   => p_ssp1_issued
1287       ,p_maternity_id                  => p_maternity_id
1288       ,p_sickness_start_date           => p_sickness_start_date
1289       ,p_sickness_end_date             => p_sickness_end_date
1290       ,p_pregnancy_related_illness     => p_pregnancy_related_illness
1291       ,p_reason_for_notification_dela  => p_reason_for_notification_dela
1292       ,p_accept_late_notification_fla  => p_accept_late_notification_fla
1293       ,p_linked_absence_id             => p_linked_absence_id
1294       ,p_object_version_number         => p_object_version_number
1295       ,p_abs_information_category            => p_abs_information_category
1296       ,p_abs_information1                    => p_abs_information1
1297       ,p_abs_information2                    => p_abs_information2
1298       ,p_abs_information3                    => p_abs_information3
1299       ,p_abs_information4                    => p_abs_information4
1300       ,p_abs_information5                    => p_abs_information5
1301       ,p_abs_information6                    => p_abs_information6
1302       ,p_abs_information7                    => p_abs_information7
1303       ,p_abs_information8                    => p_abs_information8
1304       ,p_abs_information9                    => p_abs_information9
1305       ,p_abs_information10                   => p_abs_information10
1306       ,p_abs_information11                   => p_abs_information11
1307       ,p_abs_information12                   => p_abs_information12
1308       ,p_abs_information13                   => p_abs_information13
1309       ,p_abs_information14                   => p_abs_information14
1310       ,p_abs_information15                   => p_abs_information15
1311       ,p_abs_information16                   => p_abs_information16
1312       ,p_abs_information17                   => p_abs_information17
1313       ,p_abs_information18                   => p_abs_information18
1314       ,p_abs_information19                   => p_abs_information19
1315       ,p_abs_information20                   => p_abs_information20
1316       ,p_abs_information21                   => p_abs_information21
1317       ,p_abs_information22                   => p_abs_information22
1318       ,p_abs_information23                   => p_abs_information23
1319       ,p_abs_information24                   => p_abs_information24
1320       ,p_abs_information25                   => p_abs_information25
1321       ,p_abs_information26                   => p_abs_information26
1322       ,p_abs_information27                   => p_abs_information27
1323       ,p_abs_information28                   => p_abs_information28
1324       ,p_abs_information29                   => p_abs_information29
1325       ,p_abs_information30                   => p_abs_information30
1326       ,p_dur_dys_less_warning          => lb_dur_dys_less_warning
1327       ,p_dur_hrs_less_warning          => lb_dur_hrs_less_warning
1328       ,p_exceeds_pto_entit_warning     => lb_exceeds_pto_entit_warning
1329       ,p_exceeds_run_total_warning     => lb_exceeds_run_total_warning
1330       ,p_abs_overlap_warning           => lb_abs_overlap_warning
1331       ,p_abs_day_after_warning         => lb_abs_day_after_warning
1332       ,p_dur_overwritten_warning       => lb_dur_overwritten_warning
1333       ,p_del_element_entry_warning     => lb_del_element_entry_warning
1334     );
1335 
1336       p_abs_day_after_warning :=  hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning );
1337       p_abs_overlap_warning :=  hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
1338       p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
1339       p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
1340       p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
1341       p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
1342       p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
1343       p_del_element_entry_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_del_element_entry_warning);
1344 
1345 hr_utility.set_location(' Leaving:' || l_proc,10);
1346 
1347   EXCEPTION
1348     WHEN OTHERS THEN
1349       hr_utility.trace(' Exception in HR_LOA_SS.update_person_absence: ' || SQLERRM );
1350       hr_utility.set_location(' Leaving:' || l_proc,555);
1351 
1352       RAISE;  -- Raise error here relevant to the new tech stack.
1353 
1354   END update_person_absence;
1355 
1356 /*
1357   ||===========================================================================
1358   || PROCEDURE: create_transactrion
1359   ||---------------------------------------------------------------------------
1360   ||
1361   || Description:
1362   ||     This procedure will call the following API
1363   ||                hr_transaction_ss
1364   ||                hr_transaction_api
1365   ||
1366   || Access Status:
1367   ||     Public.
1368   ||
1369   ||===========================================================================
1370   */
1371   PROCEDURE  create_transaction(
1372      p_item_type           IN WF_ITEMS.ITEM_TYPE%TYPE ,
1373      p_item_key  	   IN WF_ITEMS.ITEM_KEY%TYPE ,
1374      p_act_id    	   IN NUMBER ,
1375      p_activity_name       IN VARCHAR2,
1376      p_transaction_id      IN OUT NOCOPY NUMBER ,
1377      p_transaction_step_id IN OUT NOCOPY NUMBER,
1378      p_login_person_id     IN NUMBER,
1379      p_review_proc_call    IN VARCHAR2) IS
1380 
1381   l_proc                 varchar2(72) := g_package||'create_transaction';
1382   ln_transaction_id      NUMBER ;
1383   ln_transaction_step_id NUMBER ;
1384   lv_result  VARCHAR2(100) ;
1385   ltt_trans_obj_vers_num  hr_util_web.g_varchar2_tab_type;
1386   lv_activity_name        wf_item_activity_statuses_v.activity_name%TYPE;
1387   ln_trans_step_rows      number  default 0;
1388   ltt_trans_step_ids      hr_util_web.g_varchar2_tab_type;
1389   ln_ovn                  hr_api_transaction_steps.object_version_number%TYPE;
1390   lv_creator_person_id    per_all_people_f.person_id%TYPE;
1391 
1392 
1393   BEGIN
1394 
1395     hr_utility.set_location(' Entering:' || l_proc,5);
1396 
1397     hr_util_misc_web.validate_session(p_person_id => lv_creator_person_id);
1398 
1399 
1400     ---------------------------------------------------------------------
1401     -- Check if there is already a transaction for this process?
1402     ---------------------------------------------------------------------
1403     ln_transaction_id := hr_transaction_ss.get_transaction_id
1404       (p_Item_Type => p_item_type
1405       ,p_Item_Key => p_item_key);
1406 
1407 
1408     IF ln_transaction_id IS NULL
1409     THEN
1410       hr_utility.set_location(l_proc,10);
1411 
1412 
1413       -------------------------------------------------------------------
1414       -- Create a new transaction
1415       -------------------------------------------------------------------
1416       hr_transaction_ss.start_transaction
1417       (itemtype => p_item_type
1418        ,itemkey => p_item_key
1419        ,actid => p_act_id
1420        ,funmode => 'RUN'
1421        ,p_login_person_id=>p_login_person_id
1422        ,result => lv_result);
1423 
1424 
1425        ln_transaction_id := hr_transaction_ss.get_transaction_id
1426                               (p_item_type => p_item_type
1427                                ,p_item_key => p_item_key);
1428 
1429 
1430     END IF;     -- now we have a valid txn id , let's find out txn steps
1431 
1432     hr_utility.set_location(l_proc,15);
1433     ---------------------------------------------------------------------
1434     -- There is already a transaction for this process.
1435     -- Retieve the transaction step for this current
1436     -- activity. We will update this transaction step with
1437     -- the new information.
1438     ---------------------------------------------------------------------
1439 
1440     hr_transaction_api.get_transaction_step_info
1441         (p_Item_Type     => p_item_type
1442         ,p_Item_Key      => p_item_key
1443         ,p_activity_id   => to_number(p_act_id)
1444         ,p_transaction_step_id => ltt_trans_step_ids
1445         ,p_object_version_number => ltt_trans_obj_vers_num
1446         ,p_rows                  => ln_trans_step_rows);
1447 
1448 
1449     IF ln_trans_step_rows < 1 THEN
1450       hr_utility.set_location(l_proc,20);
1451 
1452        ---------------------------------------------------------------------
1453        --There is no transaction step for this transaction.
1454        --Create a step within this new transaction
1455        ---------------------------------------------------------------------
1456 
1457        hr_transaction_api.create_transaction_step(
1458            p_validate => false
1459   	   ,p_creator_person_id => p_login_person_id
1460 	   ,p_transaction_id => ln_transaction_id
1461 	   ,p_api_name => 'HR_LOA_SS.PROCESS_API'
1462 	   ,p_Item_Type => p_item_type
1463 	   ,p_Item_Key => p_item_key
1464 	   ,p_activity_id => p_act_id
1465 	   ,p_transaction_step_id => ln_transaction_step_id
1466            ,p_object_version_number =>ln_ovn ) ;
1467 
1468     ELSE
1469         hr_utility.set_location(l_proc,25);
1470          ---------------------------------------------------------------------
1471 	 --There are transaction steps for this transaction.
1472          --Get the Transaction Step ID for this activity.
1473          ---------------------------------------------------------------------
1474          ln_transaction_step_id :=
1475          hr_transaction_ss.get_activity_trans_step_id(
1476            p_activity_name => 'HR_CREATE_ABSENCE' ,
1477 	   p_trans_step_id_tbl => ltt_trans_step_ids);
1478 
1479     END IF;
1480 
1481     hr_utility.set_location(l_proc,30);
1482  -- write  activity name  to txn table
1483  -- review page requires the following information
1484     hr_transaction_api.set_varchar2_value (
1485           p_transaction_step_id =>ln_transaction_step_id,
1486           p_person_id => lv_creator_person_id ,
1487           p_name => 'p_activity_name' ,
1488           p_value => p_activity_name ) ;
1489 
1490     hr_transaction_api.set_varchar2_value (
1491           p_transaction_step_id =>ln_transaction_step_id,
1492           p_person_id => lv_creator_person_id ,
1493           p_name => 'P_REVIEW_PROC_CALL' ,
1494           p_value => p_review_proc_call ) ;
1495 
1496     hr_transaction_api.set_varchar2_value (
1497           p_transaction_step_id =>ln_transaction_step_id,
1498           p_person_id => lv_creator_person_id ,
1499           p_name => 'P_REVIEW_ACTID' ,
1500           p_value => p_act_id ) ;
1501 
1502     p_transaction_id := ln_transaction_id ;
1503     p_transaction_step_id := ln_transaction_step_id ;
1504 
1505 
1506      hr_utility.set_location(' Leaving:' || l_proc,35);
1507 
1508   EXCEPTION
1509    WHEN OTHERS THEN
1510      hr_utility.trace(' Exception in HR_LOA_SS.create_transaction:' || SQLERRM );
1511      hr_utility.set_location(' Leaving:' || l_proc,555);
1512 
1513      raise ;
1514   END create_transaction ;
1515 
1516 /*
1517   ||===========================================================================
1518   || PROCEDURE: write_transaction
1519   ||---------------------------------------------------------------------------
1520   ||
1521   || Description:
1522   ||     This procedure will write transaction data into transaction table
1523   ||                hr_api_transaction_vlues
1524   ||
1525   || Access Status:
1526   ||     Public.
1527   ||
1528   ||===========================================================================
1529   */
1530   PROCEDURE write_transaction (
1531   p_transaction_step_id  in NUMBER
1532   ,p_validate           in NUMBER default 0
1533   ,p_effective_date     in Date
1534   ,p_person_id          in NUMBER default NULL
1535   ,p_business_group_id  in NUMBER default NULL
1536   ,p_absence_attendance_type_id    in NUMBER default NULL
1537   ,p_abs_attendance_reason_id      in NUMBER default NULL
1538   ,p_comments           in clob	-- Bug#13362792
1539   ,p_date_notification  in Date
1540   ,p_projected_start_date in Date
1541   ,p_projected_start_time in varchar2
1542   ,p_projected_end_date  in Date
1543   ,p_projected_end_time in varchar2
1544   ,p_start_date         in Date
1545   ,p_start_time         in VARCHAR2
1546   ,p_end_date           in Date
1547   ,p_end_time           in VARCHAR2
1548   ,p_days               in VARCHAR2
1549   ,p_hours              in VARCHAR2
1550   ,p_authorising_id     in NUMBER default NULL
1551   ,p_replacement_id     in NUMBER default NULL
1552   ,p_attribute_category in varchar2 default null
1553   ,p_attribute1         in varchar2 default null
1554   ,p_attribute2         in varchar2 default null
1555   ,p_attribute3         in varchar2 default null
1556   ,p_attribute4         in varchar2 default null
1557   ,p_attribute5         in varchar2 default null
1558   ,p_attribute6         in varchar2 default null
1559   ,p_attribute7         in varchar2 default null
1560   ,p_attribute8         in varchar2 default null
1561   ,p_attribute9         in varchar2 default null
1562   ,p_attribute10        in varchar2 default null
1563   ,p_attribute11        in varchar2 default null
1564   ,p_attribute12        in varchar2 default null
1565   ,p_attribute13        in varchar2 default null
1566   ,p_attribute14        in varchar2 default null
1567   ,p_attribute15        in varchar2 default null
1568   ,p_attribute16        in varchar2 default null
1569   ,p_attribute17        in varchar2 default null
1570   ,p_attribute18        in varchar2 default null
1571   ,p_attribute19        in varchar2 default null
1572   ,p_attribute20        in varchar2 default null
1573   ,p_abs_information_category      in     varchar2 default null
1574   ,p_abs_information1              in     varchar2 default null
1575   ,p_abs_information2              in     varchar2 default null
1576   ,p_abs_information3              in     varchar2 default null
1577   ,p_abs_information4              in     varchar2 default null
1578   ,p_abs_information5              in     varchar2 default null
1579   ,p_abs_information6              in     varchar2 default null
1580   ,p_abs_information7              in     varchar2 default null
1581   ,p_abs_information8              in     varchar2 default null
1582   ,p_abs_information9              in     varchar2 default null
1583   ,p_abs_information10             in     varchar2 default null
1584   ,p_abs_information11             in     varchar2 default null
1585   ,p_abs_information12             in     varchar2 default null
1586   ,p_abs_information13             in     varchar2 default null
1587   ,p_abs_information14             in     varchar2 default null
1588   ,p_abs_information15             in     varchar2 default null
1589   ,p_abs_information16             in     varchar2 default null
1590   ,p_abs_information17             in     varchar2 default null
1591   ,p_abs_information18             in     varchar2 default null
1592   ,p_abs_information19             in     varchar2 default null
1593   ,p_abs_information20             in     varchar2 default null
1594   ,p_abs_information21             in     varchar2 default null
1595   ,p_abs_information22             in     varchar2 default null
1596   ,p_abs_information23             in     varchar2 default null
1597   ,p_abs_information24             in     varchar2 default null
1598   ,p_abs_information25             in     varchar2 default null
1599   ,p_abs_information26             in     varchar2 default null
1600   ,p_abs_information27             in     varchar2 default null
1601   ,p_abs_information28             in     varchar2 default null
1602   ,p_abs_information29             in     varchar2 default null
1603   ,p_abs_information30             in     varchar2 default null
1604 
1605 ) IS
1606 
1607   l_proc                 varchar2(72) := g_package||'write_transaction';
1608   lv_creator_person_id per_all_people_f.person_id%TYPE;
1609 
1610   BEGIN
1611 
1612     hr_utility.set_location(' Entering:' || l_proc,5);
1613 
1614     hr_util_misc_web.validate_session(p_person_id => lv_creator_person_id);
1615 
1616 
1617       hr_transaction_api.set_number_value (
1618         p_transaction_step_id =>p_transaction_step_id,
1619         p_person_id => lv_creator_person_id ,
1620         p_name => 'p_validate' ,
1621         p_value =>p_validate ) ;
1622 
1623       hr_transaction_api.set_date_value (
1624         p_transaction_step_id =>p_transaction_step_id,
1625         p_person_id => lv_creator_person_id ,
1626         p_name => 'p_effective_date' ,
1627         p_value =>p_effective_date ) ;
1628 
1629       hr_transaction_api.set_number_value (
1630         p_transaction_step_id =>p_transaction_step_id,
1631         p_person_id => lv_creator_person_id ,
1632         p_name => 'p_person_id' ,
1633         p_value =>p_person_id ) ;
1634 
1635       hr_transaction_api.set_number_value (
1636         p_transaction_step_id =>p_transaction_step_id,
1637         p_person_id => lv_creator_person_id ,
1638         p_name => 'p_business_group_id' ,
1639         p_value =>p_business_group_id ) ;
1640 
1641       hr_transaction_api.set_number_value (
1642         p_transaction_step_id =>p_transaction_step_id,
1643         p_person_id => lv_creator_person_id ,
1644         p_name => 'p_absence_attendance_type_id' ,
1645         p_value =>p_absence_attendance_type_id ) ;
1646 
1647       hr_transaction_api.set_number_value (
1648         p_transaction_step_id =>p_transaction_step_id,
1649         p_person_id => lv_creator_person_id ,
1650         p_name => 'p_abs_attendance_reason_id' ,
1651         p_value =>p_abs_attendance_reason_id ) ;
1652 
1653      hr_transaction_api.set_varchar2_value (
1654         p_transaction_step_id =>p_transaction_step_id,
1655         p_person_id => lv_creator_person_id ,
1656         p_name => 'p_comments' ,
1657         p_value =>p_comments ) ;
1658 
1659       hr_transaction_api.set_number_value (
1660         p_transaction_step_id =>p_transaction_step_id,
1661         p_person_id => lv_creator_person_id ,
1662         p_name => 'p_replacement_person_id' ,
1663         p_value =>p_replacement_id ) ;
1664 
1665       hr_transaction_api.set_date_value (
1666         p_transaction_step_id =>p_transaction_step_id,
1667         p_person_id => lv_creator_person_id ,
1668         p_name => 'p_date_projected_start' ,
1669         p_value =>p_projected_start_date) ;
1670 
1671      hr_transaction_api.set_varchar2_value (
1672         p_transaction_step_id =>p_transaction_step_id,
1673         p_person_id => lv_creator_person_id ,
1674         p_name => 'p_time_projected_start' ,
1675         p_value =>p_projected_start_time ) ;
1676 
1677       hr_transaction_api.set_date_value (
1678         p_transaction_step_id =>p_transaction_step_id,
1679         p_person_id => lv_creator_person_id ,
1680         p_name => 'p_date_projected_end' ,
1681         p_value =>p_projected_end_date) ;
1682 
1683      hr_transaction_api.set_varchar2_value (
1684         p_transaction_step_id =>p_transaction_step_id,
1685         p_person_id => lv_creator_person_id ,
1686         p_name => 'p_time_projected_end' ,
1687         p_value =>p_projected_end_time ) ;
1688 
1689       hr_transaction_api.set_number_value (
1690         p_transaction_step_id =>p_transaction_step_id,
1691         p_person_id => lv_creator_person_id ,
1692         p_name => 'p_replacement_person_id' ,
1693         p_value =>p_replacement_id ) ;
1694 
1695       hr_transaction_api.set_date_value (
1696         p_transaction_step_id =>p_transaction_step_id,
1697         p_person_id => lv_creator_person_id ,
1698         p_name => 'p_date_start' ,
1699         p_value =>p_start_date) ;
1700 
1701      hr_transaction_api.set_varchar2_value (
1702         p_transaction_step_id =>p_transaction_step_id,
1703         p_person_id => lv_creator_person_id ,
1704         p_name => 'p_time_start' ,
1705         p_value =>p_start_time ) ;
1706 
1707 
1708       hr_transaction_api.set_date_value (
1709         p_transaction_step_id =>p_transaction_step_id,
1710         p_person_id => lv_creator_person_id ,
1711         p_name => 'p_date_end' ,
1712         p_value =>p_end_date) ;
1713 
1714      hr_transaction_api.set_varchar2_value (
1715         p_transaction_step_id =>p_transaction_step_id,
1716         p_person_id => lv_creator_person_id ,
1717         p_name => 'p_time_end' ,
1718         p_value =>p_end_time ) ;
1719 
1720      hr_transaction_api.set_varchar2_value (
1721         p_transaction_step_id =>p_transaction_step_id,
1722         p_person_id => lv_creator_person_id ,
1723         p_name => 'p_absence_days' ,
1724         p_value =>p_days ) ;
1725 
1726      hr_transaction_api.set_varchar2_value (
1727         p_transaction_step_id =>p_transaction_step_id,
1728         p_person_id => lv_creator_person_id ,
1729         p_name => 'p_absence_hours' ,
1730         p_value =>p_hours ) ;
1731 
1732       hr_transaction_api.set_date_value (
1733         p_transaction_step_id =>p_transaction_step_id,
1734         p_person_id => lv_creator_person_id ,
1735         p_name => 'p_date_notification' ,
1736         p_value =>p_date_notification ) ;
1737 
1738       hr_transaction_api.set_number_value (
1739         p_transaction_step_id =>p_transaction_step_id,
1740         p_person_id => lv_creator_person_id ,
1741         p_name => 'p_authorising_person_id' ,
1742         p_value =>p_authorising_id ) ;
1743 
1744      hr_transaction_api.set_varchar2_value (
1745         p_transaction_step_id =>p_transaction_step_id,
1746         p_person_id => lv_creator_person_id ,
1747         p_name => 'p_attribute_category' ,
1748         p_value =>p_attribute_category ) ;
1749 
1750      hr_transaction_api.set_varchar2_value (
1751         p_transaction_step_id =>p_transaction_step_id,
1752         p_person_id => lv_creator_person_id ,
1753         p_name => 'p_attribute1' ,
1754         p_value =>p_attribute1 ) ;
1755 
1756      hr_transaction_api.set_varchar2_value (
1757         p_transaction_step_id =>p_transaction_step_id,
1758         p_person_id => lv_creator_person_id ,
1759         p_name => 'p_attribute2' ,
1760         p_value =>p_attribute2 ) ;
1761 
1762 
1763      hr_transaction_api.set_varchar2_value (
1764         p_transaction_step_id =>p_transaction_step_id,
1765         p_person_id => lv_creator_person_id ,
1766         p_name => 'p_attribute3' ,
1767         p_value =>p_attribute3 ) ;
1768 
1769      hr_transaction_api.set_varchar2_value (
1770         p_transaction_step_id =>p_transaction_step_id,
1771         p_person_id => lv_creator_person_id ,
1772         p_name => 'p_attribute4' ,
1773         p_value =>p_attribute4 ) ;
1774 
1775      hr_transaction_api.set_varchar2_value (
1776         p_transaction_step_id =>p_transaction_step_id,
1777         p_person_id => lv_creator_person_id ,
1778         p_name => 'p_attribute5' ,
1779         p_value =>p_attribute5 ) ;
1780 
1781      hr_transaction_api.set_varchar2_value (
1782         p_transaction_step_id =>p_transaction_step_id,
1783         p_person_id => lv_creator_person_id ,
1784         p_name => 'p_attribute6' ,
1785         p_value =>p_attribute6 ) ;
1786 
1787      hr_transaction_api.set_varchar2_value (
1788         p_transaction_step_id =>p_transaction_step_id,
1789         p_person_id => lv_creator_person_id ,
1790         p_name => 'p_attribute7' ,
1791         p_value =>p_attribute7 ) ;
1792 
1793      hr_transaction_api.set_varchar2_value (
1794         p_transaction_step_id =>p_transaction_step_id,
1795         p_person_id => lv_creator_person_id ,
1796         p_name => 'p_attribute8' ,
1797         p_value =>p_attribute8 ) ;
1798 
1799      hr_transaction_api.set_varchar2_value (
1800         p_transaction_step_id =>p_transaction_step_id,
1801         p_person_id => lv_creator_person_id ,
1802         p_name => 'p_attribute9' ,
1803         p_value =>p_attribute9 ) ;
1804 
1805      hr_transaction_api.set_varchar2_value (
1806         p_transaction_step_id =>p_transaction_step_id,
1807         p_person_id => lv_creator_person_id ,
1808         p_name => 'p_attribute10' ,
1809         p_value =>p_attribute10 ) ;
1810 
1811      hr_transaction_api.set_varchar2_value (
1812         p_transaction_step_id =>p_transaction_step_id,
1813         p_person_id => lv_creator_person_id ,
1814         p_name => 'p_attribute11' ,
1815         p_value =>p_attribute11 ) ;
1816 
1817      hr_transaction_api.set_varchar2_value (
1818         p_transaction_step_id =>p_transaction_step_id,
1819         p_person_id => lv_creator_person_id ,
1820         p_name => 'p_attribute12' ,
1821         p_value =>p_attribute12 ) ;
1822 
1823      hr_transaction_api.set_varchar2_value (
1824         p_transaction_step_id =>p_transaction_step_id,
1825         p_person_id => lv_creator_person_id ,
1826         p_name => 'p_attribute13' ,
1827         p_value =>p_attribute13 ) ;
1828 
1829      hr_transaction_api.set_varchar2_value (
1830         p_transaction_step_id =>p_transaction_step_id,
1831         p_person_id => lv_creator_person_id ,
1832         p_name => 'p_attribute14' ,
1833         p_value =>p_attribute14 ) ;
1834 
1835      hr_transaction_api.set_varchar2_value (
1836         p_transaction_step_id =>p_transaction_step_id,
1837         p_person_id => lv_creator_person_id ,
1838         p_name => 'p_attribute15' ,
1839         p_value =>p_attribute15 ) ;
1840 
1841      hr_transaction_api.set_varchar2_value (
1842         p_transaction_step_id =>p_transaction_step_id,
1843         p_person_id => lv_creator_person_id ,
1844         p_name => 'p_attribute16' ,
1845         p_value =>p_attribute16 ) ;
1846 
1847      hr_transaction_api.set_varchar2_value (
1848         p_transaction_step_id =>p_transaction_step_id,
1849         p_person_id => lv_creator_person_id ,
1850         p_name => 'p_attribute17' ,
1851         p_value =>p_attribute17 ) ;
1852 
1853      hr_transaction_api.set_varchar2_value (
1854         p_transaction_step_id =>p_transaction_step_id,
1855         p_person_id => lv_creator_person_id ,
1856         p_name => 'p_attribute18' ,
1857         p_value =>p_attribute18 ) ;
1858 
1859      hr_transaction_api.set_varchar2_value (
1860         p_transaction_step_id =>p_transaction_step_id,
1861         p_person_id => lv_creator_person_id ,
1862         p_name => 'p_attribute19' ,
1863         p_value =>p_attribute19 ) ;
1864 
1865      hr_transaction_api.set_varchar2_value (
1866         p_transaction_step_id =>p_transaction_step_id,
1867         p_person_id => lv_creator_person_id ,
1868         p_name => 'p_attribute20' ,
1869         p_value =>p_attribute20 ) ;
1870 
1871      hr_transaction_api.set_varchar2_value (
1872         p_transaction_step_id =>p_transaction_step_id,
1873         p_person_id => lv_creator_person_id ,
1874         p_name => 'p_abs_information_category' ,
1875         p_value =>p_abs_information_category ) ;
1876 
1877      hr_transaction_api.set_varchar2_value (
1878         p_transaction_step_id =>p_transaction_step_id,
1879         p_person_id => lv_creator_person_id ,
1880         p_name => 'p_abs_information1' ,
1881         p_value =>p_abs_information1 ) ;
1882 
1883      hr_transaction_api.set_varchar2_value (
1884         p_transaction_step_id =>p_transaction_step_id,
1885         p_person_id => lv_creator_person_id ,
1886         p_name => 'p_abs_information2' ,
1887         p_value =>p_abs_information2 ) ;
1888 
1889 
1890      hr_transaction_api.set_varchar2_value (
1891         p_transaction_step_id =>p_transaction_step_id,
1892         p_person_id => lv_creator_person_id ,
1893         p_name => 'p_abs_information3' ,
1894         p_value =>p_abs_information3 ) ;
1895 
1896      hr_transaction_api.set_varchar2_value (
1897         p_transaction_step_id =>p_transaction_step_id,
1898         p_person_id => lv_creator_person_id ,
1899         p_name => 'p_abs_information4' ,
1900         p_value =>p_abs_information4 ) ;
1901 
1902      hr_transaction_api.set_varchar2_value (
1903         p_transaction_step_id =>p_transaction_step_id,
1904         p_person_id => lv_creator_person_id ,
1905         p_name => 'p_abs_information5' ,
1906         p_value =>p_abs_information5 ) ;
1907 
1908      hr_transaction_api.set_varchar2_value (
1909         p_transaction_step_id =>p_transaction_step_id,
1910         p_person_id => lv_creator_person_id ,
1911         p_name => 'p_abs_information6' ,
1912         p_value =>p_abs_information6 ) ;
1913 
1914      hr_transaction_api.set_varchar2_value (
1915         p_transaction_step_id =>p_transaction_step_id,
1916         p_person_id => lv_creator_person_id ,
1917         p_name => 'p_abs_information7' ,
1918         p_value =>p_abs_information7 ) ;
1919 
1920      hr_transaction_api.set_varchar2_value (
1921         p_transaction_step_id =>p_transaction_step_id,
1922         p_person_id => lv_creator_person_id ,
1923         p_name => 'p_abs_information8' ,
1924         p_value =>p_abs_information8 ) ;
1925 
1926      hr_transaction_api.set_varchar2_value (
1927         p_transaction_step_id =>p_transaction_step_id,
1928         p_person_id => lv_creator_person_id ,
1929         p_name => 'p_abs_information9' ,
1930         p_value =>p_abs_information9 ) ;
1931 
1932      hr_transaction_api.set_varchar2_value (
1933         p_transaction_step_id =>p_transaction_step_id,
1934         p_person_id => lv_creator_person_id ,
1935         p_name => 'p_abs_information10' ,
1936         p_value =>p_abs_information10 ) ;
1937 
1938      hr_transaction_api.set_varchar2_value (
1939         p_transaction_step_id =>p_transaction_step_id,
1940         p_person_id => lv_creator_person_id ,
1941         p_name => 'p_abs_information11' ,
1942         p_value =>p_abs_information11 ) ;
1943 
1944      hr_transaction_api.set_varchar2_value (
1945         p_transaction_step_id =>p_transaction_step_id,
1946         p_person_id => lv_creator_person_id ,
1947         p_name => 'p_abs_information12' ,
1948         p_value =>p_abs_information12 ) ;
1949 
1950      hr_transaction_api.set_varchar2_value (
1951         p_transaction_step_id =>p_transaction_step_id,
1952         p_person_id => lv_creator_person_id ,
1953         p_name => 'p_abs_information13' ,
1954         p_value =>p_abs_information13 ) ;
1955 
1956      hr_transaction_api.set_varchar2_value (
1957         p_transaction_step_id =>p_transaction_step_id,
1958         p_person_id => lv_creator_person_id ,
1959         p_name => 'p_abs_information14' ,
1960         p_value =>p_abs_information14 ) ;
1961 
1962      hr_transaction_api.set_varchar2_value (
1963         p_transaction_step_id =>p_transaction_step_id,
1964         p_person_id => lv_creator_person_id ,
1965         p_name => 'p_abs_information15' ,
1966         p_value =>p_abs_information15 ) ;
1967 
1968      hr_transaction_api.set_varchar2_value (
1969         p_transaction_step_id =>p_transaction_step_id,
1970         p_person_id => lv_creator_person_id ,
1971         p_name => 'p_abs_information16' ,
1972         p_value =>p_abs_information16 ) ;
1973 
1974      hr_transaction_api.set_varchar2_value (
1975         p_transaction_step_id =>p_transaction_step_id,
1976         p_person_id => lv_creator_person_id ,
1977         p_name => 'p_abs_information17' ,
1978         p_value =>p_abs_information17 ) ;
1979 
1980      hr_transaction_api.set_varchar2_value (
1981         p_transaction_step_id =>p_transaction_step_id,
1982         p_person_id => lv_creator_person_id ,
1983         p_name => 'p_abs_information18' ,
1984         p_value =>p_abs_information18 ) ;
1985 
1986      hr_transaction_api.set_varchar2_value (
1987         p_transaction_step_id =>p_transaction_step_id,
1988         p_person_id => lv_creator_person_id ,
1989         p_name => 'p_abs_information19' ,
1990         p_value =>p_abs_information19 ) ;
1991 
1992      hr_transaction_api.set_varchar2_value (
1993         p_transaction_step_id =>p_transaction_step_id,
1994         p_person_id => lv_creator_person_id ,
1995         p_name => 'p_abs_information20' ,
1996         p_value =>p_abs_information20 ) ;
1997 
1998      hr_transaction_api.set_varchar2_value (
1999         p_transaction_step_id =>p_transaction_step_id,
2000         p_person_id => lv_creator_person_id ,
2001         p_name => 'p_abs_information21' ,
2002         p_value =>p_abs_information21 ) ;
2003 
2004      hr_transaction_api.set_varchar2_value (
2005         p_transaction_step_id =>p_transaction_step_id,
2006         p_person_id => lv_creator_person_id ,
2007         p_name => 'p_abs_information22' ,
2008         p_value =>p_abs_information22 ) ;
2009 
2010      hr_transaction_api.set_varchar2_value (
2011         p_transaction_step_id =>p_transaction_step_id,
2012         p_person_id => lv_creator_person_id ,
2013         p_name => 'p_abs_information23' ,
2014         p_value =>p_abs_information23 ) ;
2015 
2016      hr_transaction_api.set_varchar2_value (
2017         p_transaction_step_id =>p_transaction_step_id,
2018         p_person_id => lv_creator_person_id ,
2019         p_name => 'p_abs_information24' ,
2020         p_value =>p_abs_information24 ) ;
2021 
2022      hr_transaction_api.set_varchar2_value (
2023         p_transaction_step_id =>p_transaction_step_id,
2024         p_person_id => lv_creator_person_id ,
2025         p_name => 'p_abs_information25' ,
2026         p_value =>p_abs_information25 ) ;
2027 
2028      hr_transaction_api.set_varchar2_value (
2029         p_transaction_step_id =>p_transaction_step_id,
2030         p_person_id => lv_creator_person_id ,
2031         p_name => 'p_abs_information26' ,
2032         p_value =>p_abs_information26 ) ;
2033 
2034      hr_transaction_api.set_varchar2_value (
2035         p_transaction_step_id =>p_transaction_step_id,
2036         p_person_id => lv_creator_person_id ,
2037         p_name => 'p_abs_information27' ,
2038         p_value =>p_abs_information27 ) ;
2039 
2040      hr_transaction_api.set_varchar2_value (
2041         p_transaction_step_id =>p_transaction_step_id,
2042         p_person_id => lv_creator_person_id ,
2043         p_name => 'p_abs_information28' ,
2044         p_value =>p_abs_information28 ) ;
2045 
2046      hr_transaction_api.set_varchar2_value (
2047         p_transaction_step_id =>p_transaction_step_id,
2048         p_person_id => lv_creator_person_id ,
2049         p_name => 'p_abs_information29' ,
2050         p_value =>p_abs_information29 ) ;
2051 
2052      hr_transaction_api.set_varchar2_value (
2053         p_transaction_step_id =>p_transaction_step_id,
2054         p_person_id => lv_creator_person_id ,
2055         p_name => 'p_abs_information30' ,
2056         p_value =>p_abs_information30 ) ;
2057 
2058 hr_utility.set_location(' Leaving:' || l_proc,10);
2059 
2060   EXCEPTION
2061   WHEN OTHERS THEN
2062    hr_utility.trace(' HR_LOA_SS.write_transaction:' || SQLERRM );
2063    hr_utility.set_location(' Leaving:' || l_proc,555);
2064 
2065     raise ;
2066 
2067   END write_transaction ;
2068 
2069 /*
2070   ||===========================================================================
2071   || PROCEDURE: get_absence_transaction
2072   ||---------------------------------------------------------------------------
2073   ||
2074   || Description:
2075   ||     Reads Absence Transaction from transaction table
2076   ||
2077   || Pre Conditions:
2078   ||
2079   || In Arguments:
2080   ||     Transaction id keys
2081   ||
2082   || out nocopy Arguments:
2083   ||     None.
2084   ||
2085   || In out nocopy Arguments:
2086   ||
2087   || Post Success:
2088   ||     Reads from transaction table
2089   ||
2090   || Post Failure:
2091   ||     Raises an exception
2092   ||
2093   || Access Status:
2094   ||     Public
2095   ||
2096   ||===========================================================================
2097   */
2098   procedure get_absence_transaction
2099   (p_transaction_step_id   		IN VARCHAR2,
2100    p_effective_date        	 OUT NOCOPY VARCHAR2,
2101    p_person_id             	 OUT NOCOPY VARCHAR2,
2102    p_absence_attendance_type_id	 OUT NOCOPY VARCHAR2,
2103    p_abs_attendance_reason_id  	 OUT NOCOPY VARCHAR2,
2104    p_comments              	 OUT NOCOPY VARCHAR2,
2105    p_date_notification    	        OUT NOCOPY VARCHAR2,
2106    p_authorising_id       	        OUT NOCOPY VARCHAR2,
2107    p_replacement_id        	 OUT NOCOPY VARCHAR2,
2108    p_projected_start_date  	 OUT NOCOPY VARCHAR2,
2109    p_projected_start_time  	 OUT NOCOPY VARCHAR2,
2110    p_projected_end_date  	        OUT NOCOPY VARCHAR2,
2111    p_projected_end_time    	 OUT NOCOPY VARCHAR2,
2112    p_start_date           	        OUT NOCOPY VARCHAR2,
2113    p_start_time           	        OUT NOCOPY VARCHAR2,
2114    p_end_date                           OUT NOCOPY VARCHAR2,
2115    p_end_time              	 OUT NOCOPY VARCHAR2,
2116    p_days          		        OUT NOCOPY VARCHAR2,
2117    p_hours                 	 OUT NOCOPY VARCHAR2,
2118    p_start_ampm        		        OUT NOCOPY VARCHAR2,
2119    p_end_ampm           	        OUT NOCOPY VARCHAR2,
2120    p_attribute_category 	        OUT NOCOPY VARCHAR2,
2121    p_attribute1            	 OUT NOCOPY VARCHAR2,
2122    p_attribute2 		        OUT NOCOPY VARCHAR2,
2123    p_attribute3      		        OUT NOCOPY VARCHAR2,
2124    p_attribute4   		        OUT NOCOPY VARCHAR2,
2125    p_attribute5     		        OUT NOCOPY VARCHAR2,
2126    p_attribute6 		        OUT NOCOPY VARCHAR2,
2127    p_attribute7    		        OUT NOCOPY VARCHAR2,
2128    p_attribute8		                OUT NOCOPY VARCHAR2,
2129    p_attribute9		                OUT NOCOPY VARCHAR2,
2130    p_attribute10		        OUT NOCOPY VARCHAR2,
2131    p_attribute11     		        OUT NOCOPY VARCHAR2,
2132    p_attribute12     		        OUT NOCOPY VARCHAR2,
2133    p_attribute13     		        OUT NOCOPY VARCHAR2,
2134    p_attribute14    		        OUT NOCOPY VARCHAR2,
2135    p_attribute15     		        OUT NOCOPY VARCHAR2,
2136    p_attribute16     		        OUT NOCOPY VARCHAR2,
2137    p_attribute17      		        OUT NOCOPY VARCHAR2,
2138    p_attribute18     		        OUT NOCOPY VARCHAR2,
2139    p_attribute19      		        OUT NOCOPY VARCHAR2,
2140    p_attribute20     		        OUT NOCOPY VARCHAR2,
2141    p_absence_attendance_id	 OUT NOCOPY VARCHAR2,
2142    p_review_actid      		        OUT NOCOPY VARCHAR2,
2143    p_review_proc_call     	        OUT NOCOPY VARCHAR2,
2144    p_abs_information_category           OUT NOCOPY VARCHAR2,
2145    p_abs_information1                   OUT NOCOPY VARCHAR2,
2146    p_abs_information2                   OUT NOCOPY VARCHAR2,
2147    p_abs_information3                   OUT NOCOPY VARCHAR2,
2148    p_abs_information4                   OUT NOCOPY VARCHAR2,
2149    p_abs_information5                   OUT NOCOPY VARCHAR2,
2150    p_abs_information6                   OUT NOCOPY VARCHAR2,
2151    p_abs_information7                   OUT NOCOPY VARCHAR2,
2152    p_abs_information8                   OUT NOCOPY VARCHAR2,
2153    p_abs_information9                   OUT NOCOPY VARCHAR2,
2154    p_abs_information10                  OUT NOCOPY VARCHAR2,
2155    p_abs_information11                  OUT NOCOPY VARCHAR2,
2156    p_abs_information12                  OUT NOCOPY VARCHAR2,
2157    p_abs_information13                  OUT NOCOPY VARCHAR2,
2158    p_abs_information14                  OUT NOCOPY VARCHAR2,
2159    p_abs_information15                  OUT NOCOPY VARCHAR2,
2160    p_abs_information16                  OUT NOCOPY VARCHAR2,
2161    p_abs_information17                  OUT NOCOPY VARCHAR2,
2162    p_abs_information18                  OUT NOCOPY VARCHAR2,
2163    p_abs_information19                  OUT NOCOPY VARCHAR2,
2164    p_abs_information20                  OUT NOCOPY VARCHAR2,
2165    p_abs_information21                  OUT NOCOPY VARCHAR2,
2166    p_abs_information22                  OUT NOCOPY VARCHAR2,
2167    p_abs_information23                  OUT NOCOPY VARCHAR2,
2168    p_abs_information24                  OUT NOCOPY VARCHAR2,
2169    p_abs_information25                  OUT NOCOPY VARCHAR2,
2170    p_abs_information26                  OUT NOCOPY VARCHAR2,
2171    p_abs_information27                  OUT NOCOPY VARCHAR2,
2172    p_abs_information28                  OUT NOCOPY VARCHAR2,
2173    p_abs_information29                  OUT NOCOPY VARCHAR2,
2174    p_abs_information30                  OUT NOCOPY VARCHAR2,
2175    p_leave_status                       OUT NOCOPY VARCHAR2,
2176    p_save_mode                          OUT NOCOPY VARCHAR2,
2177    p_activity_name                      OUT NOCOPY VARCHAR2,
2178    p_business_group_id                  OUT NOCOPY VARCHAR2,
2179    p_object_version_number    		OUT NOCOPY VARCHAR2  --2793220
2180  ) IS
2181 
2182   --
2183   l_proc              varchar2(72) := g_package||'get_absence_transaction';
2184   --
2185 
2186 BEGIN
2187   --
2188     hr_utility.set_location(' Entering:' || l_proc,5);
2189 
2190     p_effective_date:= to_char(
2191       hr_transaction_api.get_date_value
2192       (p_transaction_step_id => p_transaction_step_id
2193       ,p_name                => 'p_effective_date')
2194       ,g_date_format);
2195   --
2196     p_person_id :=
2197       hr_transaction_api.get_number_value
2198       (p_transaction_step_id => p_transaction_step_id
2199       ,p_name                => 'p_person_id');
2200   --
2201     p_absence_attendance_type_id :=
2202       hr_transaction_api.get_number_value
2203       (p_transaction_step_id =>  p_transaction_step_id
2204       ,p_name                => 'p_absence_attendance_type_id');
2205   --
2206     p_abs_attendance_reason_id:=
2207       hr_transaction_api.get_number_value
2208       (p_transaction_step_id =>  p_transaction_step_id
2209       ,p_name                => 'p_abs_attendance_reason_id');
2210   --
2211     p_comments:=
2212       hr_transaction_api.get_varchar2_value
2213       (p_transaction_step_id => p_transaction_step_id
2214       ,p_name                => 'p_comments');
2215   --
2216     p_date_notification:= to_char(
2217       hr_transaction_api.get_date_value
2218       (p_transaction_step_id => p_transaction_step_id
2219       ,p_name                => 'p_date_notification')
2220       ,g_date_format);
2221   --
2222     p_authorising_id:=
2223       hr_transaction_api.get_number_value
2224       (p_transaction_step_id =>  p_transaction_step_id
2225       ,p_name                => 'p_authorising_person_id');
2226   --
2227     p_replacement_id:=
2228       hr_transaction_api.get_number_value
2229       (p_transaction_step_id =>  p_transaction_step_id
2230       ,p_name                => 'p_replacement_person_id');
2231   --
2232     p_projected_start_date:= to_char(
2233       hr_transaction_api.get_date_value
2234       (p_transaction_step_id => p_transaction_step_id
2235       ,p_name                => 'p_date_projected_start')
2236       ,g_date_format);
2237   --
2238     p_projected_start_time:=
2239       hr_transaction_api.get_varchar2_value
2240       (p_transaction_step_id => p_transaction_step_id
2241       ,p_name                => 'p_time_projected_start');
2242   --
2243     p_projected_end_date:= to_char(
2244       hr_transaction_api.get_date_value
2245       (p_transaction_step_id => p_transaction_step_id
2246       ,p_name                => 'p_date_projected_end')
2247       ,g_date_format);
2248   --
2249     p_projected_end_time:=
2250       hr_transaction_api.get_varchar2_value
2251       (p_transaction_step_id => p_transaction_step_id
2252       ,p_name                => 'p_time_projected_end');
2253   --
2254     p_start_date:= to_char(
2255       hr_transaction_api.get_date_value
2256       (p_transaction_step_id => p_transaction_step_id
2257       ,p_name                => 'p_date_start')
2258       ,g_date_format);
2259   --
2260     p_start_time:=
2261       hr_transaction_api.get_varchar2_value
2262       (p_transaction_step_id => p_transaction_step_id
2263       ,p_name                => 'p_time_start');
2264   --
2265     p_end_date:= to_char(
2266       hr_transaction_api.get_date_value
2267       (p_transaction_step_id => p_transaction_step_id
2268       ,p_name                => 'p_date_end')
2269       ,g_date_format);
2270   --
2271     p_end_time:=
2272       hr_transaction_api.get_varchar2_value
2273       (p_transaction_step_id => p_transaction_step_id
2274       ,p_name                => 'p_time_end');
2275   --
2276     p_days:=
2277       hr_transaction_api.get_number_value
2278       (p_transaction_step_id => p_transaction_step_id
2279       ,p_name                => 'p_absence_days');
2280   --
2281     p_hours:=
2282       hr_transaction_api.get_number_value
2283       (p_transaction_step_id => p_transaction_step_id
2284       ,p_name                => 'p_absence_hours');
2285   --
2286     p_start_ampm:=
2287       hr_transaction_api.get_varchar2_value
2288       (p_transaction_step_id => p_transaction_step_id
2289       ,p_name                => 'p_start_ampm');
2290   --
2291     p_end_ampm:=
2292       hr_transaction_api.get_varchar2_value
2293       (p_transaction_step_id => p_transaction_step_id
2294       ,p_name                => 'p_end_ampm');
2295   --
2296     p_attribute_category:=
2297       hr_transaction_api.get_varchar2_value
2298       (p_transaction_step_id => p_transaction_step_id
2299       ,p_name                => 'p_attribute_category');
2300   --
2301     p_attribute1:=
2302       hr_transaction_api.get_varchar2_value
2303       (p_transaction_step_id => p_transaction_step_id
2304       ,p_name                => 'p_attribute1');
2305   --
2306     p_attribute2:=
2307       hr_transaction_api.get_varchar2_value
2308       (p_transaction_step_id => p_transaction_step_id
2309       ,p_name                => 'p_attribute2');
2310   --
2311     p_attribute3:=
2312       hr_transaction_api.get_varchar2_value
2313       (p_transaction_step_id => p_transaction_step_id
2314       ,p_name                => 'p_attribute3');
2315   --
2316     p_attribute4:=
2317       hr_transaction_api.get_varchar2_value
2318       (p_transaction_step_id => p_transaction_step_id
2319       ,p_name                => 'p_attribute4');
2320   --
2321     p_attribute5:=
2322       hr_transaction_api.get_varchar2_value
2323       (p_transaction_step_id => p_transaction_step_id
2324       ,p_name                => 'p_attribute5');
2325   --
2326     p_attribute6:=
2327       hr_transaction_api.get_varchar2_value
2328       (p_transaction_step_id => p_transaction_step_id
2329       ,p_name                => 'p_attribute6');
2330   --
2331     p_attribute7:=
2332       hr_transaction_api.get_varchar2_value
2333       (p_transaction_step_id => p_transaction_step_id
2334       ,p_name                => 'p_attribute7');
2335   --
2336     p_attribute8:=
2337       hr_transaction_api.get_varchar2_value
2338       (p_transaction_step_id => p_transaction_step_id
2339       ,p_name                => 'p_attribute8');
2340   --
2341     p_attribute9:=
2342       hr_transaction_api.get_varchar2_value
2343       (p_transaction_step_id => p_transaction_step_id
2344       ,p_name                => 'p_attribute9');
2345   --
2346     p_attribute10:=
2347       hr_transaction_api.get_varchar2_value
2348       (p_transaction_step_id => p_transaction_step_id
2349       ,p_name                => 'p_attribute10');
2350   --
2351     p_attribute11:=
2352       hr_transaction_api.get_varchar2_value
2353       (p_transaction_step_id => p_transaction_step_id
2354       ,p_name                => 'p_attribute11');
2355   --
2356     p_attribute12:=
2357       hr_transaction_api.get_varchar2_value
2358       (p_transaction_step_id => p_transaction_step_id
2359       ,p_name                => 'p_attribute12');
2360   --
2361     p_attribute13:=
2362       hr_transaction_api.get_varchar2_value
2363       (p_transaction_step_id => p_transaction_step_id
2364       ,p_name                => 'p_attribute13');
2365   --
2366     p_attribute14:=
2367       hr_transaction_api.get_varchar2_value
2368       (p_transaction_step_id => p_transaction_step_id
2369       ,p_name                => 'p_attribute14');
2370   --
2371     p_attribute15:=
2372       hr_transaction_api.get_varchar2_value
2373       (p_transaction_step_id => p_transaction_step_id
2374       ,p_name                => 'p_attribute15');
2375   --
2376     p_attribute16:=
2377       hr_transaction_api.get_varchar2_value
2378       (p_transaction_step_id => p_transaction_step_id
2379       ,p_name                => 'p_attribute16');
2380   --
2381     p_attribute17:=
2382       hr_transaction_api.get_varchar2_value
2383       (p_transaction_step_id => p_transaction_step_id
2384       ,p_name                => 'p_attribute17');
2385   --
2386     p_attribute18:=
2387       hr_transaction_api.get_varchar2_value
2388       (p_transaction_step_id => p_transaction_step_id
2389       ,p_name                => 'p_attribute18');
2390   --
2391     p_attribute19:=
2392       hr_transaction_api.get_varchar2_value
2393       (p_transaction_step_id => p_transaction_step_id
2394       ,p_name                => 'p_attribute19');
2395   --
2396     p_attribute20:=
2397       hr_transaction_api.get_varchar2_value
2398       (p_transaction_step_id => p_transaction_step_id
2399       ,p_name                => 'p_attribute20');
2400   --
2401     p_absence_attendance_id:=
2402       hr_transaction_api.get_number_value
2403       (p_transaction_step_id => p_transaction_step_id
2404       ,p_name                => 'p_absence_attendance_id');
2405   --
2406     p_review_proc_call:=
2407       hr_transaction_api.get_varchar2_value
2408       (p_transaction_step_id => p_transaction_step_id
2409       ,p_name                => 'p_review_proc_call');
2410   --
2411     p_review_actid:=
2412       hr_transaction_api.get_varchar2_value
2413       (p_transaction_step_id => p_transaction_step_id
2414       ,p_name                => 'p_review_actid');
2415 
2416   --
2417     p_abs_information_category:=
2418       hr_transaction_api.get_varchar2_value
2419       (p_transaction_step_id => p_transaction_step_id
2420       ,p_name                => 'p_abs_information_category');
2421   --
2422     p_abs_information1:=
2423       hr_transaction_api.get_varchar2_value
2424       (p_transaction_step_id => p_transaction_step_id
2425       ,p_name                => 'p_abs_information1');
2426   --
2427     p_abs_information2:=
2428       hr_transaction_api.get_varchar2_value
2429       (p_transaction_step_id => p_transaction_step_id
2430       ,p_name                => 'p_abs_information2');
2431   --
2432     p_abs_information3:=
2433       hr_transaction_api.get_varchar2_value
2434       (p_transaction_step_id => p_transaction_step_id
2435       ,p_name                => 'p_abs_information3');
2436   --
2437     p_abs_information4:=
2438       hr_transaction_api.get_varchar2_value
2439       (p_transaction_step_id => p_transaction_step_id
2440       ,p_name                => 'p_abs_information4');
2441   --
2442     p_abs_information5:=
2443       hr_transaction_api.get_varchar2_value
2444       (p_transaction_step_id => p_transaction_step_id
2445       ,p_name                => 'p_abs_information5');
2446   --
2447     p_abs_information6:=
2448       hr_transaction_api.get_varchar2_value
2449       (p_transaction_step_id => p_transaction_step_id
2450       ,p_name                => 'p_abs_information6');
2451   --
2452     p_abs_information7:=
2453       hr_transaction_api.get_varchar2_value
2454       (p_transaction_step_id => p_transaction_step_id
2455       ,p_name                => 'p_abs_information7');
2456   --
2457     p_abs_information8:=
2458       hr_transaction_api.get_varchar2_value
2459       (p_transaction_step_id => p_transaction_step_id
2460       ,p_name                => 'p_abs_information8');
2461   --
2462     p_abs_information9:=
2463       hr_transaction_api.get_varchar2_value
2464       (p_transaction_step_id => p_transaction_step_id
2465       ,p_name                => 'p_abs_information9');
2466   --
2467     p_abs_information10:=
2468       hr_transaction_api.get_varchar2_value
2469       (p_transaction_step_id => p_transaction_step_id
2470       ,p_name                => 'p_abs_information10');
2471   --
2472     p_abs_information11:=
2473       hr_transaction_api.get_varchar2_value
2474       (p_transaction_step_id => p_transaction_step_id
2475       ,p_name                => 'p_abs_information11');
2476   --
2477     p_abs_information12:=
2478       hr_transaction_api.get_varchar2_value
2479       (p_transaction_step_id => p_transaction_step_id
2480       ,p_name                => 'p_abs_information12');
2481   --
2482     p_abs_information13:=
2483       hr_transaction_api.get_varchar2_value
2484       (p_transaction_step_id => p_transaction_step_id
2485       ,p_name                => 'p_abs_information13');
2486   --
2487     p_abs_information14:=
2488       hr_transaction_api.get_varchar2_value
2489       (p_transaction_step_id => p_transaction_step_id
2490       ,p_name                => 'p_abs_information14');
2491   --
2492     p_abs_information15:=
2493       hr_transaction_api.get_varchar2_value
2494       (p_transaction_step_id => p_transaction_step_id
2495       ,p_name                => 'p_abs_information15');
2496   --
2497     p_abs_information16:=
2498       hr_transaction_api.get_varchar2_value
2499       (p_transaction_step_id => p_transaction_step_id
2500       ,p_name                => 'p_abs_information16');
2501   --
2502     p_abs_information17:=
2503       hr_transaction_api.get_varchar2_value
2504       (p_transaction_step_id => p_transaction_step_id
2505       ,p_name                => 'p_abs_information17');
2506   --
2507     p_abs_information18:=
2508       hr_transaction_api.get_varchar2_value
2509       (p_transaction_step_id => p_transaction_step_id
2510       ,p_name                => 'p_abs_information18');
2511   --
2512     p_abs_information19:=
2513       hr_transaction_api.get_varchar2_value
2514       (p_transaction_step_id => p_transaction_step_id
2515       ,p_name                => 'p_abs_information19');
2516   --
2517     p_abs_information20:=
2518       hr_transaction_api.get_varchar2_value
2519       (p_transaction_step_id => p_transaction_step_id
2520       ,p_name                => 'p_abs_information20');
2521   --
2522     p_abs_information21:=
2523       hr_transaction_api.get_varchar2_value
2524       (p_transaction_step_id => p_transaction_step_id
2525       ,p_name                => 'p_abs_information21');
2526   --
2527     p_abs_information22:=
2528       hr_transaction_api.get_varchar2_value
2529       (p_transaction_step_id => p_transaction_step_id
2530       ,p_name                => 'p_abs_information22');
2531   --
2532     p_abs_information23:=
2533       hr_transaction_api.get_varchar2_value
2534       (p_transaction_step_id => p_transaction_step_id
2535       ,p_name                => 'p_abs_information23');
2536   --
2537     p_abs_information24:=
2538       hr_transaction_api.get_varchar2_value
2539       (p_transaction_step_id => p_transaction_step_id
2540       ,p_name                => 'p_abs_information24');
2541   --
2542     p_abs_information25:=
2543       hr_transaction_api.get_varchar2_value
2544       (p_transaction_step_id => p_transaction_step_id
2545       ,p_name                => 'p_abs_information25');
2546   --
2547     p_abs_information26:=
2548       hr_transaction_api.get_varchar2_value
2549       (p_transaction_step_id => p_transaction_step_id
2550       ,p_name                => 'p_abs_information26');
2551   --
2552     p_abs_information27:=
2553       hr_transaction_api.get_varchar2_value
2554       (p_transaction_step_id => p_transaction_step_id
2555       ,p_name                => 'p_abs_information27');
2556   --
2557     p_abs_information28:=
2558       hr_transaction_api.get_varchar2_value
2559       (p_transaction_step_id => p_transaction_step_id
2560       ,p_name                => 'p_abs_information28');
2561   --
2562     p_abs_information29:=
2563       hr_transaction_api.get_varchar2_value
2564       (p_transaction_step_id => p_transaction_step_id
2565       ,p_name                => 'p_abs_information29');
2566   --
2567     p_abs_information30:=
2568       hr_transaction_api.get_varchar2_value
2569       (p_transaction_step_id => p_transaction_step_id
2570       ,p_name                => 'p_abs_information30');
2571   --
2572     p_leave_status:=
2573       hr_transaction_api.get_varchar2_value
2574       (p_transaction_step_id => p_transaction_step_id
2575       ,p_name                => 'p_leave_status');
2576   --
2577     p_save_mode:=
2578       hr_transaction_api.get_varchar2_value
2579       (p_transaction_step_id => p_transaction_step_id
2580       ,p_name                => 'p_save_mode');
2581   --
2582     p_activity_name:=
2583       hr_transaction_api.get_varchar2_value
2584       (p_transaction_step_id => p_transaction_step_id
2585       ,p_name                => 'p_activity_name');
2586   --
2587     p_business_group_id :=
2588       hr_transaction_api.get_number_value
2589       (p_transaction_step_id => p_transaction_step_id
2590       ,p_name                => 'p_business_group_id');
2591   --
2592     --2793220 changes start
2593     p_object_version_number :=
2594       hr_transaction_api.get_number_value
2595       (p_transaction_step_id => p_transaction_step_id
2596       ,p_name                => 'p_object_version_number');
2597     --2793220 changes end
2598 
2599     hr_utility.set_location(' Leaving:' || l_proc,10);
2600 
2601   EXCEPTION
2602   WHEN OTHERS THEN
2603   hr_utility.trace(' Exception in get_absence_transaction ' || SQLERRM );
2604   hr_utility.set_location(' Leaving:' || l_proc,555);
2605 
2606     RAISE;  -- Raise error here relevant to the new tech stack.
2607 END get_absence_transaction;
2608 
2609  /*
2610  ||===========================================================================
2611  || PROCEDURE: get_return_transaction
2612  ||---------------------------------------------------------------------------
2613  ||
2614  || Description:
2615  ||     This procedure will retrieve confirm return information from
2616  ||     trensaction table
2617  ||
2618  || Access Status:
2619  ||     Public.
2620  ||
2621  ||===========================================================================
2622  */
2623  procedure get_return_transaction
2624   (p_transaction_step_id   IN  VARCHAR2
2625   ,p_effective_date        OUT NOCOPY VARCHAR2
2626   ,p_start_date            OUT NOCOPY VARCHAR2
2627   ,p_start_time            OUT NOCOPY VARCHAR2
2628   ,p_end_date              OUT NOCOPY VARCHAR2
2629   ,p_end_time              OUT NOCOPY VARCHAR2
2630   ,p_days                  OUT NOCOPY VARCHAR2
2631   ,p_hours                 OUT NOCOPY VARCHAR2
2632   ,p_review_actid          OUT NOCOPY VARCHAR2
2633   ,p_review_proc_call      OUT NOCOPY VARCHAR2
2634   ,p_attribute_category                 OUT NOCOPY VARCHAR2
2635   ,p_attribute1                         OUT NOCOPY VARCHAR2
2636   ,p_attribute2                         OUT NOCOPY VARCHAR2
2637   ,p_attribute3                         OUT NOCOPY VARCHAR2
2638   ,p_attribute4                         OUT NOCOPY VARCHAR2
2639   ,p_attribute5                         OUT NOCOPY VARCHAR2
2640   ,p_attribute6                         OUT NOCOPY VARCHAR2
2641   ,p_attribute7                         OUT NOCOPY VARCHAR2
2642   ,p_attribute8                         OUT NOCOPY VARCHAR2
2643   ,p_attribute9                         OUT NOCOPY VARCHAR2
2644   ,p_attribute10                        OUT NOCOPY VARCHAR2
2645   ,p_attribute11                        OUT NOCOPY VARCHAR2
2646   ,p_attribute12                        OUT NOCOPY VARCHAR2
2647   ,p_attribute13                        OUT NOCOPY VARCHAR2
2648   ,p_attribute14                        OUT NOCOPY VARCHAR2
2649   ,p_attribute15                        OUT NOCOPY VARCHAR2
2650   ,p_attribute16                        OUT NOCOPY VARCHAR2
2651   ,p_attribute17                        OUT NOCOPY VARCHAR2
2652   ,p_attribute18                        OUT NOCOPY VARCHAR2
2653   ,p_attribute19                        OUT NOCOPY VARCHAR2
2654   ,p_attribute20                        OUT NOCOPY VARCHAR2
2655   ,p_abs_information_category           OUT NOCOPY VARCHAR2
2656   ,p_abs_information1                   OUT NOCOPY VARCHAR2
2657   ,p_abs_information2                   OUT NOCOPY VARCHAR2
2658   ,p_abs_information3                   OUT NOCOPY VARCHAR2
2659   ,p_abs_information4                   OUT NOCOPY VARCHAR2
2660   ,p_abs_information5                   OUT NOCOPY VARCHAR2
2661   ,p_abs_information6                   OUT NOCOPY VARCHAR2
2662   ,p_abs_information7                   OUT NOCOPY VARCHAR2
2663   ,p_abs_information8                   OUT NOCOPY VARCHAR2
2664   ,p_abs_information9                   OUT NOCOPY VARCHAR2
2665   ,p_abs_information10                  OUT NOCOPY VARCHAR2
2666   ,p_abs_information11                  OUT NOCOPY VARCHAR2
2667   ,p_abs_information12                  OUT NOCOPY VARCHAR2
2668   ,p_abs_information13                  OUT NOCOPY VARCHAR2
2669   ,p_abs_information14                  OUT NOCOPY VARCHAR2
2670   ,p_abs_information15                  OUT NOCOPY VARCHAR2
2671   ,p_abs_information16                  OUT NOCOPY VARCHAR2
2672   ,p_abs_information17                  OUT NOCOPY VARCHAR2
2673   ,p_abs_information18                  OUT NOCOPY VARCHAR2
2674   ,p_abs_information19                  OUT NOCOPY VARCHAR2
2675   ,p_abs_information20                  OUT NOCOPY VARCHAR2
2676   ,p_abs_information21                  OUT NOCOPY VARCHAR2
2677   ,p_abs_information22                  OUT NOCOPY VARCHAR2
2678   ,p_abs_information23                  OUT NOCOPY VARCHAR2
2679   ,p_abs_information24                  OUT NOCOPY VARCHAR2
2680   ,p_abs_information25                  OUT NOCOPY VARCHAR2
2681   ,p_abs_information26                  OUT NOCOPY VARCHAR2
2682   ,p_abs_information27                  OUT NOCOPY VARCHAR2
2683   ,p_abs_information28                  OUT NOCOPY VARCHAR2
2684   ,p_abs_information29                  OUT NOCOPY VARCHAR2
2685   ,p_abs_information30                  OUT NOCOPY VARCHAR2
2686  ) IS
2687 
2688   --
2689   l_proc              varchar2(72) := g_package||'get_return_transaction';
2690   --
2691   --
2692 
2693  BEGIN
2694   --
2695    hr_utility.set_location(' Entering:' || l_proc,5);
2696 
2697     p_effective_date:= to_char(
2698       hr_transaction_api.get_date_value
2699       (p_transaction_step_id => p_transaction_step_id
2700       ,p_name                => 'p_effective_date')
2701       ,g_date_format);
2702   --
2703     p_start_date:= to_char(
2704       hr_transaction_api.get_date_value
2705       (p_transaction_step_id => p_transaction_step_id
2706       ,p_name                => 'p_date_start')
2707       ,g_date_format);
2708   --
2709     p_start_time:=
2710       hr_transaction_api.get_varchar2_value
2711       (p_transaction_step_id => p_transaction_step_id
2712       ,p_name                => 'p_time_start');
2713   --
2714     p_end_date:= to_char(
2715       hr_transaction_api.get_date_value
2716       (p_transaction_step_id => p_transaction_step_id
2717       ,p_name                => 'p_date_end')
2718       ,g_date_format);
2719   --
2720     p_end_time:=
2721       hr_transaction_api.get_varchar2_value
2722       (p_transaction_step_id => p_transaction_step_id
2723       ,p_name                => 'p_time_end');
2724   --
2725     p_days:=
2726       hr_transaction_api.get_number_value
2727       (p_transaction_step_id => p_transaction_step_id
2728       ,p_name                => 'p_absence_days');
2729   --
2730     p_hours:=
2731       hr_transaction_api.get_number_value
2732       (p_transaction_step_id => p_transaction_step_id
2733       ,p_name                => 'p_absence_hours');
2734   --
2735     p_review_proc_call:=
2736       hr_transaction_api.get_varchar2_value
2737       (p_transaction_step_id => p_transaction_step_id
2738       ,p_name                => 'p_review_proc_call');
2739   --
2740     p_review_actid:=
2741       hr_transaction_api.get_varchar2_value
2742       (p_transaction_step_id => p_transaction_step_id
2743       ,p_name                => 'p_review_actid');
2744 
2745   --
2746     p_attribute_category:=
2747       hr_transaction_api.get_varchar2_value
2748       (p_transaction_step_id => p_transaction_step_id
2749       ,p_name                => 'p_attribute_category');
2750   --
2751     p_attribute1:=
2752       hr_transaction_api.get_varchar2_value
2753       (p_transaction_step_id => p_transaction_step_id
2754       ,p_name                => 'p_attribute1');
2755   --
2756     p_attribute2:=
2757       hr_transaction_api.get_varchar2_value
2758       (p_transaction_step_id => p_transaction_step_id
2759       ,p_name                => 'p_attribute2');
2760   --
2761     p_attribute3:=
2762       hr_transaction_api.get_varchar2_value
2763       (p_transaction_step_id => p_transaction_step_id
2764       ,p_name                => 'p_attribute3');
2765   --
2766     p_attribute4:=
2767       hr_transaction_api.get_varchar2_value
2768       (p_transaction_step_id => p_transaction_step_id
2769       ,p_name                => 'p_attribute4');
2770   --
2771     p_attribute5:=
2772       hr_transaction_api.get_varchar2_value
2773       (p_transaction_step_id => p_transaction_step_id
2774       ,p_name                => 'p_attribute5');
2775   --
2776     p_attribute6:=
2777       hr_transaction_api.get_varchar2_value
2778       (p_transaction_step_id => p_transaction_step_id
2779       ,p_name                => 'p_attribute6');
2780   --
2781     p_attribute7:=
2782       hr_transaction_api.get_varchar2_value
2783       (p_transaction_step_id => p_transaction_step_id
2784       ,p_name                => 'p_attribute7');
2785   --
2786     p_attribute8:=
2787       hr_transaction_api.get_varchar2_value
2788       (p_transaction_step_id => p_transaction_step_id
2789       ,p_name                => 'p_attribute8');
2790   --
2791     p_attribute9:=
2792       hr_transaction_api.get_varchar2_value
2793       (p_transaction_step_id => p_transaction_step_id
2794       ,p_name                => 'p_attribute9');
2795   --
2796     p_attribute10:=
2797       hr_transaction_api.get_varchar2_value
2798       (p_transaction_step_id => p_transaction_step_id
2799       ,p_name                => 'p_attribute10');
2800   --
2801     p_attribute11:=
2802       hr_transaction_api.get_varchar2_value
2803       (p_transaction_step_id => p_transaction_step_id
2804       ,p_name                => 'p_attribute11');
2805   --
2806     p_attribute12:=
2807       hr_transaction_api.get_varchar2_value
2808       (p_transaction_step_id => p_transaction_step_id
2809       ,p_name                => 'p_attribute12');
2810   --
2811     p_attribute13:=
2812       hr_transaction_api.get_varchar2_value
2813       (p_transaction_step_id => p_transaction_step_id
2814       ,p_name                => 'p_attribute13');
2815   --
2816     p_attribute14:=
2817       hr_transaction_api.get_varchar2_value
2818       (p_transaction_step_id => p_transaction_step_id
2819       ,p_name                => 'p_attribute14');
2820   --
2821     p_attribute15:=
2822       hr_transaction_api.get_varchar2_value
2823       (p_transaction_step_id => p_transaction_step_id
2824       ,p_name                => 'p_attribute15');
2825   --
2826     p_attribute16:=
2827       hr_transaction_api.get_varchar2_value
2828       (p_transaction_step_id => p_transaction_step_id
2829       ,p_name                => 'p_attribute16');
2830   --
2831     p_attribute17:=
2832       hr_transaction_api.get_varchar2_value
2833       (p_transaction_step_id => p_transaction_step_id
2834       ,p_name                => 'p_attribute17');
2835   --
2836     p_attribute18:=
2837       hr_transaction_api.get_varchar2_value
2838       (p_transaction_step_id => p_transaction_step_id
2839       ,p_name                => 'p_attribute18');
2840   --
2841     p_attribute19:=
2842       hr_transaction_api.get_varchar2_value
2843       (p_transaction_step_id => p_transaction_step_id
2844       ,p_name                => 'p_attribute19');
2845   --
2846     p_attribute20:=
2847       hr_transaction_api.get_varchar2_value
2848       (p_transaction_step_id => p_transaction_step_id
2849       ,p_name                => 'p_attribute20');
2850   --
2851     p_abs_information_category:=
2852       hr_transaction_api.get_varchar2_value
2853       (p_transaction_step_id => p_transaction_step_id
2854       ,p_name                => 'p_abs_information_category');
2855   --
2856     p_abs_information1:=
2857       hr_transaction_api.get_varchar2_value
2858       (p_transaction_step_id => p_transaction_step_id
2859       ,p_name                => 'p_abs_information1');
2860   --
2861     p_abs_information2:=
2862       hr_transaction_api.get_varchar2_value
2863       (p_transaction_step_id => p_transaction_step_id
2864       ,p_name                => 'p_abs_information2');
2865   --
2866     p_abs_information3:=
2867       hr_transaction_api.get_varchar2_value
2868       (p_transaction_step_id => p_transaction_step_id
2869       ,p_name                => 'p_abs_information3');
2870   --
2871     p_abs_information4:=
2872       hr_transaction_api.get_varchar2_value
2873       (p_transaction_step_id => p_transaction_step_id
2874       ,p_name                => 'p_abs_information4');
2875   --
2876     p_abs_information5:=
2877       hr_transaction_api.get_varchar2_value
2878       (p_transaction_step_id => p_transaction_step_id
2879       ,p_name                => 'p_abs_information5');
2880   --
2881     p_abs_information6:=
2882       hr_transaction_api.get_varchar2_value
2883       (p_transaction_step_id => p_transaction_step_id
2884       ,p_name                => 'p_abs_information6');
2885   --
2886     p_abs_information7:=
2887       hr_transaction_api.get_varchar2_value
2888       (p_transaction_step_id => p_transaction_step_id
2889       ,p_name                => 'p_abs_information7');
2890   --
2891     p_abs_information8:=
2892       hr_transaction_api.get_varchar2_value
2893       (p_transaction_step_id => p_transaction_step_id
2894       ,p_name                => 'p_abs_information8');
2895   --
2896     p_abs_information9:=
2897       hr_transaction_api.get_varchar2_value
2898       (p_transaction_step_id => p_transaction_step_id
2899       ,p_name                => 'p_abs_information9');
2900   --
2901     p_abs_information10:=
2902       hr_transaction_api.get_varchar2_value
2903       (p_transaction_step_id => p_transaction_step_id
2904       ,p_name                => 'p_abs_information10');
2905   --
2906     p_abs_information11:=
2907       hr_transaction_api.get_varchar2_value
2908       (p_transaction_step_id => p_transaction_step_id
2909       ,p_name                => 'p_abs_information11');
2910   --
2911     p_abs_information12:=
2912       hr_transaction_api.get_varchar2_value
2913       (p_transaction_step_id => p_transaction_step_id
2914       ,p_name                => 'p_abs_information12');
2915   --
2916     p_abs_information13:=
2917       hr_transaction_api.get_varchar2_value
2918       (p_transaction_step_id => p_transaction_step_id
2919       ,p_name                => 'p_abs_information13');
2920   --
2921     p_abs_information14:=
2922       hr_transaction_api.get_varchar2_value
2923       (p_transaction_step_id => p_transaction_step_id
2924       ,p_name                => 'p_abs_information14');
2925   --
2926     p_abs_information15:=
2927       hr_transaction_api.get_varchar2_value
2928       (p_transaction_step_id => p_transaction_step_id
2929       ,p_name                => 'p_abs_information15');
2930   --
2931     p_abs_information16:=
2932       hr_transaction_api.get_varchar2_value
2933       (p_transaction_step_id => p_transaction_step_id
2934       ,p_name                => 'p_abs_information16');
2935   --
2936     p_abs_information17:=
2937       hr_transaction_api.get_varchar2_value
2938       (p_transaction_step_id => p_transaction_step_id
2939       ,p_name                => 'p_abs_information17');
2940   --
2941     p_abs_information18:=
2942       hr_transaction_api.get_varchar2_value
2943       (p_transaction_step_id => p_transaction_step_id
2944       ,p_name                => 'p_abs_information18');
2945   --
2946     p_abs_information19:=
2947       hr_transaction_api.get_varchar2_value
2948       (p_transaction_step_id => p_transaction_step_id
2949       ,p_name                => 'p_abs_information19');
2950   --
2951     p_abs_information20:=
2952       hr_transaction_api.get_varchar2_value
2953       (p_transaction_step_id => p_transaction_step_id
2954       ,p_name                => 'p_abs_information20');
2955   --
2956     p_abs_information21:=
2957       hr_transaction_api.get_varchar2_value
2958       (p_transaction_step_id => p_transaction_step_id
2959       ,p_name                => 'p_abs_information21');
2960   --
2961     p_abs_information22:=
2962       hr_transaction_api.get_varchar2_value
2963       (p_transaction_step_id => p_transaction_step_id
2964       ,p_name                => 'p_abs_information22');
2965   --
2966     p_abs_information23:=
2967       hr_transaction_api.get_varchar2_value
2968       (p_transaction_step_id => p_transaction_step_id
2969       ,p_name                => 'p_abs_information23');
2970   --
2971     p_abs_information24:=
2972       hr_transaction_api.get_varchar2_value
2973       (p_transaction_step_id => p_transaction_step_id
2974       ,p_name                => 'p_abs_information24');
2975   --
2976     p_abs_information25:=
2977       hr_transaction_api.get_varchar2_value
2978       (p_transaction_step_id => p_transaction_step_id
2979       ,p_name                => 'p_abs_information25');
2980   --
2981     p_abs_information26:=
2982       hr_transaction_api.get_varchar2_value
2983       (p_transaction_step_id => p_transaction_step_id
2984       ,p_name                => 'p_abs_information26');
2985   --
2986     p_abs_information27:=
2987       hr_transaction_api.get_varchar2_value
2988       (p_transaction_step_id => p_transaction_step_id
2989       ,p_name                => 'p_abs_information27');
2990   --
2991     p_abs_information28:=
2992       hr_transaction_api.get_varchar2_value
2993       (p_transaction_step_id => p_transaction_step_id
2994       ,p_name                => 'p_abs_information28');
2995   --
2996     p_abs_information29:=
2997       hr_transaction_api.get_varchar2_value
2998       (p_transaction_step_id => p_transaction_step_id
2999       ,p_name                => 'p_abs_information29');
3000   --
3001     p_abs_information30:=
3002       hr_transaction_api.get_varchar2_value
3003       (p_transaction_step_id => p_transaction_step_id
3004       ,p_name                => 'p_abs_information30');
3005   --
3006 
3007 hr_utility.set_location(' Leaving:' || l_proc,10);
3008 
3009   EXCEPTION
3010   WHEN OTHERS THEN
3011   hr_utility.trace(' Exception in get_return_transaction :' || SQLERRM );
3012   hr_utility.set_location(' Leaving:' || l_proc,555);
3013 
3014     RAISE;  -- Raise error here relevant to the new tech stack.
3015 END get_return_transaction;
3016 
3017  /*
3018  ||===========================================================================
3019  || PROCEDURE: get_update_transaction
3020  ||---------------------------------------------------------------------------
3021  ||
3022  || Description:
3023  ||     This procedure will retrieve confirm return information from
3024  ||     trensaction table
3025  ||
3026  || Access Status:
3027  ||     Public.
3028  ||
3029  ||===========================================================================
3030  */
3031  procedure get_update_transaction
3032   (p_transaction_step_id   IN  VARCHAR2
3033   ,p_effective_date        OUT NOCOPY VARCHAR2
3034   ,p_projected_start_date  OUT NOCOPY VARCHAR2
3035   ,p_projected_start_time  OUT NOCOPY VARCHAR2
3036   ,p_projected_end_date    OUT NOCOPY VARCHAR2
3037   ,p_projected_end_time    OUT NOCOPY VARCHAR2
3038   ,p_days                  OUT NOCOPY VARCHAR2
3039   ,p_hours                 OUT NOCOPY VARCHAR2
3040   ,p_review_actid          OUT NOCOPY VARCHAR2
3041   ,p_review_proc_call      OUT NOCOPY VARCHAR2
3042   ,p_attribute_category                 OUT NOCOPY VARCHAR2
3043   ,p_attribute1                         OUT NOCOPY VARCHAR2
3044   ,p_attribute2                         OUT NOCOPY VARCHAR2
3045   ,p_attribute3                         OUT NOCOPY VARCHAR2
3046   ,p_attribute4                         OUT NOCOPY VARCHAR2
3047   ,p_attribute5                         OUT NOCOPY VARCHAR2
3048   ,p_attribute6                         OUT NOCOPY VARCHAR2
3049   ,p_attribute7                         OUT NOCOPY VARCHAR2
3050   ,p_attribute8                         OUT NOCOPY VARCHAR2
3051   ,p_attribute9                         OUT NOCOPY VARCHAR2
3052   ,p_attribute10                        OUT NOCOPY VARCHAR2
3053   ,p_attribute11                        OUT NOCOPY VARCHAR2
3054   ,p_attribute12                        OUT NOCOPY VARCHAR2
3055   ,p_attribute13                        OUT NOCOPY VARCHAR2
3056   ,p_attribute14                        OUT NOCOPY VARCHAR2
3057   ,p_attribute15                        OUT NOCOPY VARCHAR2
3058   ,p_attribute16                        OUT NOCOPY VARCHAR2
3059   ,p_attribute17                        OUT NOCOPY VARCHAR2
3060   ,p_attribute18                        OUT NOCOPY VARCHAR2
3061   ,p_attribute19                        OUT NOCOPY VARCHAR2
3062   ,p_attribute20                        OUT NOCOPY VARCHAR2
3063   ,p_abs_information_category           OUT NOCOPY VARCHAR2
3064   ,p_abs_information1                   OUT NOCOPY VARCHAR2
3065   ,p_abs_information2                   OUT NOCOPY VARCHAR2
3066   ,p_abs_information3                   OUT NOCOPY VARCHAR2
3067   ,p_abs_information4                   OUT NOCOPY VARCHAR2
3068   ,p_abs_information5                   OUT NOCOPY VARCHAR2
3069   ,p_abs_information6                   OUT NOCOPY VARCHAR2
3070   ,p_abs_information7                   OUT NOCOPY VARCHAR2
3071   ,p_abs_information8                   OUT NOCOPY VARCHAR2
3072   ,p_abs_information9                   OUT NOCOPY VARCHAR2
3073   ,p_abs_information10                  OUT NOCOPY VARCHAR2
3074   ,p_abs_information11                  OUT NOCOPY VARCHAR2
3075   ,p_abs_information12                  OUT NOCOPY VARCHAR2
3076   ,p_abs_information13                  OUT NOCOPY VARCHAR2
3077   ,p_abs_information14                  OUT NOCOPY VARCHAR2
3078   ,p_abs_information15                  OUT NOCOPY VARCHAR2
3079   ,p_abs_information16                  OUT NOCOPY VARCHAR2
3080   ,p_abs_information17                  OUT NOCOPY VARCHAR2
3081   ,p_abs_information18                  OUT NOCOPY VARCHAR2
3082   ,p_abs_information19                  OUT NOCOPY VARCHAR2
3083   ,p_abs_information20                  OUT NOCOPY VARCHAR2
3084   ,p_abs_information21                  OUT NOCOPY VARCHAR2
3085   ,p_abs_information22                  OUT NOCOPY VARCHAR2
3086   ,p_abs_information23                  OUT NOCOPY VARCHAR2
3087   ,p_abs_information24                  OUT NOCOPY VARCHAR2
3088   ,p_abs_information25                  OUT NOCOPY VARCHAR2
3089   ,p_abs_information26                  OUT NOCOPY VARCHAR2
3090   ,p_abs_information27                  OUT NOCOPY VARCHAR2
3091   ,p_abs_information28                  OUT NOCOPY VARCHAR2
3092   ,p_abs_information29                  OUT NOCOPY VARCHAR2
3093   ,p_abs_information30                  OUT NOCOPY VARCHAR2
3094   ,p_comments                           OUT NOCOPY VARCHAR2
3095 ) IS
3096 
3097   --
3098   l_proc              varchar2(72) := g_package||'get_update_transaction';
3099   --
3100   --
3101 
3102  BEGIN
3103   --
3104     hr_utility.set_location(' Entering:' || l_proc,5);
3105 
3106     p_effective_date:= to_char(
3107       hr_transaction_api.get_date_value
3108       (p_transaction_step_id => p_transaction_step_id
3109       ,p_name                => 'p_effective_date')
3110       ,g_date_format);
3111   --
3112     p_projected_start_date:= to_char(
3113       hr_transaction_api.get_date_value
3114       (p_transaction_step_id => p_transaction_step_id
3115       ,p_name                => 'p_date_projected_start')
3116       ,g_date_format);
3117   --
3118     p_projected_start_time:=
3119       hr_transaction_api.get_varchar2_value
3120       (p_transaction_step_id => p_transaction_step_id
3121       ,p_name                => 'p_time_projected_start');
3122   --
3123     p_projected_end_date:= to_char(
3124       hr_transaction_api.get_date_value
3125       (p_transaction_step_id => p_transaction_step_id
3126       ,p_name                => 'p_date_projected_end')
3127       ,g_date_format);
3128   --
3129     p_projected_end_time:=
3130       hr_transaction_api.get_varchar2_value
3131       (p_transaction_step_id => p_transaction_step_id
3132       ,p_name                => 'p_time_projected_end');
3133   --
3134     p_days:=
3135       hr_transaction_api.get_number_value
3136       (p_transaction_step_id => p_transaction_step_id
3137       ,p_name                => 'p_absence_days');
3138   --
3139     p_hours:=
3140       hr_transaction_api.get_number_value
3141       (p_transaction_step_id => p_transaction_step_id
3142       ,p_name                => 'p_absence_hours');
3143   --
3144     p_review_proc_call:=
3145       hr_transaction_api.get_varchar2_value
3146       (p_transaction_step_id => p_transaction_step_id
3147       ,p_name                => 'p_review_proc_call');
3148   --
3149     p_review_actid:=
3150       hr_transaction_api.get_varchar2_value
3151       (p_transaction_step_id => p_transaction_step_id
3152       ,p_name                => 'p_review_actid');
3153   --
3154     p_attribute_category:=
3155       hr_transaction_api.get_varchar2_value
3156       (p_transaction_step_id => p_transaction_step_id
3157       ,p_name                => 'p_attribute_category');
3158   --
3159     p_attribute1:=
3160       hr_transaction_api.get_varchar2_value
3161       (p_transaction_step_id => p_transaction_step_id
3162       ,p_name                => 'p_attribute1');
3163   --
3164     p_attribute2:=
3165       hr_transaction_api.get_varchar2_value
3166       (p_transaction_step_id => p_transaction_step_id
3167       ,p_name                => 'p_attribute2');
3168   --
3169     p_attribute3:=
3170       hr_transaction_api.get_varchar2_value
3171       (p_transaction_step_id => p_transaction_step_id
3172       ,p_name                => 'p_attribute3');
3173   --
3174     p_attribute4:=
3175       hr_transaction_api.get_varchar2_value
3176       (p_transaction_step_id => p_transaction_step_id
3177       ,p_name                => 'p_attribute4');
3178   --
3179     p_attribute5:=
3180       hr_transaction_api.get_varchar2_value
3181       (p_transaction_step_id => p_transaction_step_id
3182       ,p_name                => 'p_attribute5');
3183   --
3184     p_attribute6:=
3185       hr_transaction_api.get_varchar2_value
3186       (p_transaction_step_id => p_transaction_step_id
3187       ,p_name                => 'p_attribute6');
3188   --
3189     p_attribute7:=
3190       hr_transaction_api.get_varchar2_value
3191       (p_transaction_step_id => p_transaction_step_id
3192       ,p_name                => 'p_attribute7');
3193   --
3194     p_attribute8:=
3195       hr_transaction_api.get_varchar2_value
3196       (p_transaction_step_id => p_transaction_step_id
3197       ,p_name                => 'p_attribute8');
3198   --
3199     p_attribute9:=
3200       hr_transaction_api.get_varchar2_value
3201       (p_transaction_step_id => p_transaction_step_id
3202       ,p_name                => 'p_attribute9');
3203   --
3204     p_attribute10:=
3205       hr_transaction_api.get_varchar2_value
3206       (p_transaction_step_id => p_transaction_step_id
3207       ,p_name                => 'p_attribute10');
3208   --
3209     p_attribute11:=
3210       hr_transaction_api.get_varchar2_value
3211       (p_transaction_step_id => p_transaction_step_id
3212       ,p_name                => 'p_attribute11');
3213   --
3214     p_attribute12:=
3215       hr_transaction_api.get_varchar2_value
3216       (p_transaction_step_id => p_transaction_step_id
3217       ,p_name                => 'p_attribute12');
3218   --
3219     p_attribute13:=
3220       hr_transaction_api.get_varchar2_value
3221       (p_transaction_step_id => p_transaction_step_id
3222       ,p_name                => 'p_attribute13');
3223   --
3224     p_attribute14:=
3225       hr_transaction_api.get_varchar2_value
3226       (p_transaction_step_id => p_transaction_step_id
3227       ,p_name                => 'p_attribute14');
3228   --
3229     p_attribute15:=
3230       hr_transaction_api.get_varchar2_value
3231       (p_transaction_step_id => p_transaction_step_id
3232       ,p_name                => 'p_attribute15');
3233   --
3234     p_attribute16:=
3235       hr_transaction_api.get_varchar2_value
3236       (p_transaction_step_id => p_transaction_step_id
3237       ,p_name                => 'p_attribute16');
3238   --
3239     p_attribute17:=
3240       hr_transaction_api.get_varchar2_value
3241       (p_transaction_step_id => p_transaction_step_id
3242       ,p_name                => 'p_attribute17');
3243   --
3244     p_attribute18:=
3245       hr_transaction_api.get_varchar2_value
3246       (p_transaction_step_id => p_transaction_step_id
3247       ,p_name                => 'p_attribute18');
3248   --
3249     p_attribute19:=
3250       hr_transaction_api.get_varchar2_value
3251       (p_transaction_step_id => p_transaction_step_id
3252       ,p_name                => 'p_attribute19');
3253   --
3254     p_attribute20:=
3255       hr_transaction_api.get_varchar2_value
3256       (p_transaction_step_id => p_transaction_step_id
3257       ,p_name                => 'p_attribute20');
3258   --
3259     p_abs_information_category:=
3260       hr_transaction_api.get_varchar2_value
3261       (p_transaction_step_id => p_transaction_step_id
3262       ,p_name                => 'p_abs_information_category');
3263   --
3264     p_abs_information1:=
3265       hr_transaction_api.get_varchar2_value
3266       (p_transaction_step_id => p_transaction_step_id
3267       ,p_name                => 'p_abs_information1');
3268   --
3269     p_abs_information2:=
3270       hr_transaction_api.get_varchar2_value
3271       (p_transaction_step_id => p_transaction_step_id
3272       ,p_name                => 'p_abs_information2');
3273   --
3274     p_abs_information3:=
3275       hr_transaction_api.get_varchar2_value
3276       (p_transaction_step_id => p_transaction_step_id
3277       ,p_name                => 'p_abs_information3');
3278   --
3279     p_abs_information4:=
3280       hr_transaction_api.get_varchar2_value
3281       (p_transaction_step_id => p_transaction_step_id
3282       ,p_name                => 'p_abs_information4');
3283   --
3284     p_abs_information5:=
3285       hr_transaction_api.get_varchar2_value
3286       (p_transaction_step_id => p_transaction_step_id
3287       ,p_name                => 'p_abs_information5');
3288   --
3289     p_abs_information6:=
3290       hr_transaction_api.get_varchar2_value
3291       (p_transaction_step_id => p_transaction_step_id
3292       ,p_name                => 'p_abs_information6');
3293   --
3294     p_abs_information7:=
3295       hr_transaction_api.get_varchar2_value
3296       (p_transaction_step_id => p_transaction_step_id
3297       ,p_name                => 'p_abs_information7');
3298   --
3299     p_abs_information8:=
3300       hr_transaction_api.get_varchar2_value
3301       (p_transaction_step_id => p_transaction_step_id
3302       ,p_name                => 'p_abs_information8');
3303   --
3304     p_abs_information9:=
3305       hr_transaction_api.get_varchar2_value
3306       (p_transaction_step_id => p_transaction_step_id
3307       ,p_name                => 'p_abs_information9');
3308   --
3309     p_abs_information10:=
3310       hr_transaction_api.get_varchar2_value
3311       (p_transaction_step_id => p_transaction_step_id
3312       ,p_name                => 'p_abs_information10');
3313   --
3314     p_abs_information11:=
3315       hr_transaction_api.get_varchar2_value
3316       (p_transaction_step_id => p_transaction_step_id
3317       ,p_name                => 'p_abs_information11');
3318   --
3319     p_abs_information12:=
3320       hr_transaction_api.get_varchar2_value
3321       (p_transaction_step_id => p_transaction_step_id
3322       ,p_name                => 'p_abs_information12');
3323   --
3324     p_abs_information13:=
3325       hr_transaction_api.get_varchar2_value
3326       (p_transaction_step_id => p_transaction_step_id
3327       ,p_name                => 'p_abs_information13');
3328   --
3329     p_abs_information14:=
3330       hr_transaction_api.get_varchar2_value
3331       (p_transaction_step_id => p_transaction_step_id
3332       ,p_name                => 'p_abs_information14');
3333   --
3334     p_abs_information15:=
3335       hr_transaction_api.get_varchar2_value
3336       (p_transaction_step_id => p_transaction_step_id
3337       ,p_name                => 'p_abs_information15');
3338   --
3339     p_abs_information16:=
3340       hr_transaction_api.get_varchar2_value
3341       (p_transaction_step_id => p_transaction_step_id
3342       ,p_name                => 'p_abs_information16');
3343   --
3344     p_abs_information17:=
3345       hr_transaction_api.get_varchar2_value
3346       (p_transaction_step_id => p_transaction_step_id
3347       ,p_name                => 'p_abs_information17');
3348   --
3349     p_abs_information18:=
3350       hr_transaction_api.get_varchar2_value
3351       (p_transaction_step_id => p_transaction_step_id
3352       ,p_name                => 'p_abs_information18');
3353   --
3354     p_abs_information19:=
3355       hr_transaction_api.get_varchar2_value
3356       (p_transaction_step_id => p_transaction_step_id
3357       ,p_name                => 'p_abs_information19');
3358   --
3359     p_abs_information20:=
3360       hr_transaction_api.get_varchar2_value
3361       (p_transaction_step_id => p_transaction_step_id
3362       ,p_name                => 'p_abs_information20');
3363   --
3364     p_abs_information21:=
3365       hr_transaction_api.get_varchar2_value
3366       (p_transaction_step_id => p_transaction_step_id
3367       ,p_name                => 'p_abs_information21');
3368   --
3369     p_abs_information22:=
3370       hr_transaction_api.get_varchar2_value
3371       (p_transaction_step_id => p_transaction_step_id
3372       ,p_name                => 'p_abs_information22');
3373   --
3374     p_abs_information23:=
3375       hr_transaction_api.get_varchar2_value
3376       (p_transaction_step_id => p_transaction_step_id
3377       ,p_name                => 'p_abs_information23');
3378   --
3379     p_abs_information24:=
3380       hr_transaction_api.get_varchar2_value
3381       (p_transaction_step_id => p_transaction_step_id
3382       ,p_name                => 'p_abs_information24');
3383   --
3384     p_abs_information25:=
3385       hr_transaction_api.get_varchar2_value
3386       (p_transaction_step_id => p_transaction_step_id
3387       ,p_name                => 'p_abs_information25');
3388   --
3389     p_abs_information26:=
3390       hr_transaction_api.get_varchar2_value
3391       (p_transaction_step_id => p_transaction_step_id
3392       ,p_name                => 'p_abs_information26');
3393   --
3394     p_abs_information27:=
3395       hr_transaction_api.get_varchar2_value
3396       (p_transaction_step_id => p_transaction_step_id
3397       ,p_name                => 'p_abs_information27');
3398   --
3399     p_abs_information28:=
3400       hr_transaction_api.get_varchar2_value
3401       (p_transaction_step_id => p_transaction_step_id
3402       ,p_name                => 'p_abs_information28');
3403   --
3404     p_abs_information29:=
3405       hr_transaction_api.get_varchar2_value
3406       (p_transaction_step_id => p_transaction_step_id
3407       ,p_name                => 'p_abs_information29');
3408   --
3409     p_abs_information30:=
3410       hr_transaction_api.get_varchar2_value
3411       (p_transaction_step_id => p_transaction_step_id
3412       ,p_name                => 'p_abs_information30');
3413   --
3414     p_comments:=
3415       hr_transaction_api.get_varchar2_value
3416       (p_transaction_step_id => p_transaction_step_id
3417       ,p_name                => 'p_comments');
3418   --
3419 
3420 hr_utility.set_location(' Leaving:' || l_proc,10);
3421 
3422   EXCEPTION
3423   WHEN OTHERS THEN
3424     hr_utility.trace(' HR_LOA_SS.get_update_transaction ' || SQLERRM );
3425     hr_utility.set_location(' Leaving:' || l_proc,555);
3426 
3427     RAISE;  -- Raise error here relevant to the new tech stack.
3428 END get_update_transaction;
3429   /*
3430   ||===========================================================================
3431   || PROCEDURE: validate_api
3432   ||---------------------------------------------------------------------------
3433   ||
3434   || Description:
3435   ||     This procedure will call actual API with validate mode
3436   ||     if there are no error, save date into transaction table
3437   ||
3438   || Access Status:
3439   ||     Public.
3440   ||
3441   ||===========================================================================
3442   */
3443   procedure validate_api(
3444    p_effective_date                in     date
3445   ,p_person_id                     in     number
3446   ,p_business_group_id             in     number
3447   ,p_absence_attendance_type_id    in     number
3448   ,p_abs_attendance_reason_id      in     number   default null
3449   ,p_comments                      in     clob     default null	-- Bug#13362792
3450   ,p_date_notification             in     date     default null
3451   ,p_date_projected_start          in     date     default null
3452   ,p_time_projected_start          in     varchar2 default null
3453   ,p_date_projected_end            in     date     default null
3454   ,p_time_projected_end            in     date     default null
3455   ,p_date_start                    in     date     default null
3456   ,p_time_start                    in     varchar2 default null
3457   ,p_date_end                      in     date     default null
3458   ,p_time_end                      in     varchar2 default null
3459   ,p_absence_days                  in out nocopy number
3460   ,p_absence_hours                 in out nocopy number
3461 --  ,p_authorising_person_id         in     number   default null
3462 --  ,p_replacement_person_id         in     number   default null
3463   ,p_authorising_person_id         in     varchar2 default null
3464  ,p_replacement_person_id         in     varchar2 default null
3465   ,p_attribute_category            in     varchar2 default null
3466   ,p_attribute1                    in     varchar2 default null
3467   ,p_attribute2                    in     varchar2 default null
3468   ,p_attribute3                    in     varchar2 default null
3469   ,p_attribute4                    in     varchar2 default null
3470   ,p_attribute5                    in     varchar2 default null
3471   ,p_attribute6                    in     varchar2 default null
3472   ,p_attribute7                    in     varchar2 default null
3473   ,p_attribute8                    in     varchar2 default null
3474   ,p_attribute9                    in     varchar2 default null
3475   ,p_attribute10                   in     varchar2 default null
3476   ,p_attribute11                   in     varchar2 default null
3477   ,p_attribute12                   in     varchar2 default null
3478   ,p_attribute13                   in     varchar2 default null
3479   ,p_attribute14                   in     varchar2 default null
3480   ,p_attribute15                   in     varchar2 default null
3481   ,p_attribute16                   in     varchar2 default null
3482   ,p_attribute17                   in     varchar2 default null
3483   ,p_attribute18                   in     varchar2 default null
3484   ,p_attribute19                   in     varchar2 default null
3485   ,p_attribute20                   in     varchar2 default null
3486   ,p_abs_information_category      in     varchar2 default null
3487   ,p_abs_information1              in     varchar2 default null
3488   ,p_abs_information2              in     varchar2 default null
3489   ,p_abs_information3              in     varchar2 default null
3490   ,p_abs_information4              in     varchar2 default null
3491   ,p_abs_information5              in     varchar2 default null
3492   ,p_abs_information6              in     varchar2 default null
3493   ,p_abs_information7              in     varchar2 default null
3494   ,p_abs_information8              in     varchar2 default null
3495   ,p_abs_information9              in     varchar2 default null
3496   ,p_abs_information10             in     varchar2 default null
3497   ,p_abs_information11             in     varchar2 default null
3498   ,p_abs_information12             in     varchar2 default null
3499   ,p_abs_information13             in     varchar2 default null
3500   ,p_abs_information14             in     varchar2 default null
3501   ,p_abs_information15             in     varchar2 default null
3502   ,p_abs_information16             in     varchar2 default null
3503   ,p_abs_information17             in     varchar2 default null
3504   ,p_abs_information18             in     varchar2 default null
3505   ,p_abs_information19             in     varchar2 default null
3506   ,p_abs_information20             in     varchar2 default null
3507   ,p_abs_information21             in     varchar2 default null
3508   ,p_abs_information22             in     varchar2 default null
3509   ,p_abs_information23             in     varchar2 default null
3510   ,p_abs_information24             in     varchar2 default null
3511   ,p_abs_information25             in     varchar2 default null
3512   ,p_abs_information26             in     varchar2 default null
3513   ,p_abs_information27             in     varchar2 default null
3514   ,p_abs_information28             in     varchar2 default null
3515   ,p_abs_information29             in     varchar2 default null
3516   ,p_abs_information30             in     varchar2 default null
3517   ,p_absence_attendance_id         out nocopy    number
3518   ,p_object_version_number         out nocopy    number
3519   ,p_occurrence                    out nocopy    number
3520   ,p_dur_dys_less_warning          out nocopy    number
3521   ,p_dur_hrs_less_warning          out nocopy    number
3522   ,p_exceeds_pto_entit_warning     out nocopy    number
3523   ,p_exceeds_run_total_warning     out nocopy    number
3524   ,p_abs_overlap_warning           out nocopy    number
3525   ,p_abs_day_after_warning         out nocopy    number
3526   ,p_dur_overwritten_warning       out nocopy    number
3527   ) IS
3528 
3529    l_proc               varchar2(72) := g_package||'validate_api';
3530    l_validate           boolean;
3531    l_authorising_person_id          number;
3532    l_replacement_person_id          number;
3533    lb_abs_day_after_warning     BOOLEAN;
3534    lb_abs_overlap_warning       BOOLEAN;
3535    lb_dur_dys_less_warning      BOOLEAN;
3536    lb_dur_hrs_less_warning      BOOLEAN;
3537    lb_exceeds_pto_entit_warning BOOLEAN;
3538    lb_exceeds_run_total_warning BOOLEAN;
3539    lb_dur_overwritten_warning   BOOLEAN;
3540 
3541 
3542 BEGIN
3543 --
3544 --
3545 --
3546     hr_utility.set_location(' Entering:' || l_proc,5);
3547 
3548     l_validate := TRUE;
3549     l_authorising_person_id  := to_number(p_authorising_person_id);
3550     l_replacement_person_id  := to_number(p_replacement_person_id);
3551     hr_person_absence_api.create_person_absence(
3552        p_validate                      => l_validate
3553       ,p_effective_date                => p_effective_date
3554       ,p_person_id                     => p_person_id
3555       ,p_business_group_id             => p_business_group_id
3556       ,p_absence_attendance_type_id    => p_absence_attendance_type_id
3557       ,p_abs_attendance_reason_id      => p_abs_attendance_reason_id
3558       ,p_comments                      => p_comments
3559       ,p_date_notification             => p_date_notification
3560       ,p_date_projected_start          => p_date_projected_start
3561       ,p_time_projected_start          => p_time_projected_start
3562       ,p_date_projected_end            => p_date_projected_end
3563       ,p_time_projected_end            => p_time_projected_end
3564       ,p_date_start                    => p_date_start
3565       ,p_time_start                    => p_time_start
3566       ,p_date_end                      => p_date_end
3567       ,p_time_end                      => p_time_end
3568       ,p_absence_days                  => p_absence_days
3569       ,p_absence_hours                 => p_absence_hours
3570       ,p_authorising_person_id         => l_authorising_person_id
3571       ,p_replacement_person_id         => l_replacement_person_id
3572       ,p_attribute_category            => p_attribute_category
3573       ,p_attribute1                    => p_attribute1
3574       ,p_attribute2                    => p_attribute2
3575       ,p_attribute3                    => p_attribute3
3576       ,p_attribute4                    => p_attribute4
3577       ,p_attribute5                    => p_attribute5
3578       ,p_attribute6                    => p_attribute6
3579       ,p_attribute7                    => p_attribute7
3580       ,p_attribute8                    => p_attribute8
3581       ,p_attribute9                    => p_attribute9
3582       ,p_attribute10                   => p_attribute10
3583       ,p_attribute11                   => p_attribute11
3584       ,p_attribute12                   => p_attribute12
3585       ,p_attribute13                   => p_attribute13
3586       ,p_attribute14                   => p_attribute14
3587       ,p_attribute15                   => p_attribute15
3588       ,p_attribute16                   => p_attribute16
3589       ,p_attribute17                   => p_attribute17
3590       ,p_attribute18                   => p_attribute18
3591       ,p_attribute19                   => p_attribute19
3592       ,p_attribute20                   => p_attribute20
3593       ,p_period_of_incapacity_id       => null
3594       ,p_ssp1_issued                   => 'N'
3595       ,p_maternity_id                  => null
3596       ,p_sickness_start_date           => null
3597       ,p_sickness_end_date             => null
3598       ,p_pregnancy_related_illness     => 'N'
3599       ,p_reason_for_notification_dela  => null
3600       ,p_accept_late_notification_fla  => 'N'
3601       ,p_linked_absence_id             => null
3602       ,p_abs_information_category            => p_abs_information_category
3603       ,p_abs_information1                    => p_abs_information1
3604       ,p_abs_information2                    => p_abs_information2
3605       ,p_abs_information3                    => p_abs_information3
3606       ,p_abs_information4                    => p_abs_information4
3607       ,p_abs_information5                    => p_abs_information5
3608       ,p_abs_information6                    => p_abs_information6
3609       ,p_abs_information7                    => p_abs_information7
3610       ,p_abs_information8                    => p_abs_information8
3611       ,p_abs_information9                    => p_abs_information9
3612       ,p_abs_information10                   => p_abs_information10
3613       ,p_abs_information11                   => p_abs_information11
3614       ,p_abs_information12                   => p_abs_information12
3615       ,p_abs_information13                   => p_abs_information13
3616       ,p_abs_information14                   => p_abs_information14
3617       ,p_abs_information15                   => p_abs_information15
3618       ,p_abs_information16                   => p_abs_information16
3619       ,p_abs_information17                   => p_abs_information17
3620       ,p_abs_information18                   => p_abs_information18
3621       ,p_abs_information19                   => p_abs_information19
3622       ,p_abs_information20                   => p_abs_information20
3623       ,p_abs_information21                   => p_abs_information21
3624       ,p_abs_information22                   => p_abs_information22
3625       ,p_abs_information23                   => p_abs_information23
3626       ,p_abs_information24                   => p_abs_information24
3627       ,p_abs_information25                   => p_abs_information25
3628       ,p_abs_information26                   => p_abs_information26
3629       ,p_abs_information27                   => p_abs_information27
3630       ,p_abs_information28                   => p_abs_information28
3631       ,p_abs_information29                   => p_abs_information29
3632       ,p_abs_information30                   => p_abs_information30
3633       ,p_absence_attendance_id         => p_absence_attendance_id
3634       ,p_object_version_number         => p_object_version_number
3635       ,p_occurrence                    => p_occurrence
3636       ,p_dur_dys_less_warning          => lb_dur_dys_less_warning
3637       ,p_dur_hrs_less_warning          => lb_dur_hrs_less_warning
3638       ,p_exceeds_pto_entit_warning     => lb_exceeds_pto_entit_warning
3639       ,p_exceeds_run_total_warning     => lb_exceeds_run_total_warning
3640       ,p_abs_overlap_warning           => lb_abs_overlap_warning
3641       ,p_abs_day_after_warning         => lb_abs_day_after_warning
3642       ,p_dur_overwritten_warning       => lb_dur_overwritten_warning
3643      );
3644 
3645      p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
3646      p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
3647      p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
3648      p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
3649      p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
3650      p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
3651      p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
3652 
3653 hr_utility.set_location(' Leaving:' || l_proc,10);
3654 
3655     EXCEPTION
3656     WHEN g_data_error THEN
3657       hr_utility.trace('Exception in g_data_error in  HR_LOA_SS..validate_api ' || SQLERRM );
3658       hr_utility.set_location(' Leaving:' || l_proc,555);
3659 
3660       raise;
3661 
3662     WHEN OTHERS THEN
3663       hr_utility.trace('When others exception in  HR_LOA_SS..validate_api ' || SQLERRM );
3664       hr_utility.set_location(' Leaving:' || l_proc,560);
3665       raise ;
3666 
3667   END validate_api;
3668 
3669   /*
3670   ||===========================================================================
3671   || PROCEDURE: process_save
3672   ||---------------------------------------------------------------------------
3673   ||
3674   || Description:
3675   ||     This procedure will call actual API with validate mode
3676   ||     if there are no error, save date into transaction table
3677   ||
3678   || Access Status:
3679   ||     Public.
3680   ||
3681   ||===========================================================================
3682   */
3683   procedure process_save(
3684    p_item_type                     in     WF_ITEMS.ITEM_TYPE%TYPE
3685   ,p_item_key  	                   in     WF_ITEMS.ITEM_KEY%TYPE
3686   ,p_act_id    	                   in     NUMBER
3687   ,p_login_person_id               in     number
3688   ,p_review_proc_call              in     varchar2
3689   ,p_effective_date                in     date
3690   ,p_person_id                     in     number
3691   ,p_business_group_id             in     number
3692   ,p_absence_attendance_type_id    in     number
3693   ,p_abs_attendance_reason_id      in     number   default null
3694   ,p_comments                      in     clob     default null	-- Bug#13362792
3695   ,p_date_notification             in     date default null
3696   ,p_date_projected_start          in     date default null
3697   ,p_time_projected_start          in     varchar2 default null
3698   ,p_date_projected_end            in     date     default null
3699   ,p_time_projected_end            in     varchar2 default null
3700   ,p_date_start                    in     date     default null
3701   ,p_time_start                    in     varchar2 default null
3702   ,p_date_end                      in     date     default null
3703   ,p_time_end                      in     varchar2 default null
3704   ,p_absence_days                  in out nocopy number
3705   ,p_absence_hours                 in out nocopy number
3706   ,p_authorising_person_id         in     number   default null
3707   ,p_replacement_person_id         in     number   default null
3708   ,p_attribute_category            in     varchar2 default null
3709   ,p_attribute1                    in     varchar2 default null
3710   ,p_attribute2                    in     varchar2 default null
3711   ,p_attribute3                    in     varchar2 default null
3712   ,p_attribute4                    in     varchar2 default null
3713   ,p_attribute5                    in     varchar2 default null
3714   ,p_attribute6                    in     varchar2 default null
3715   ,p_attribute7                    in     varchar2 default null
3716   ,p_attribute8                    in     varchar2 default null
3717   ,p_attribute9                    in     varchar2 default null
3718   ,p_attribute10                   in     varchar2 default null
3719   ,p_attribute11                   in     varchar2 default null
3720   ,p_attribute12                   in     varchar2 default null
3721   ,p_attribute13                   in     varchar2 default null
3722   ,p_attribute14                   in     varchar2 default null
3723   ,p_attribute15                   in     varchar2 default null
3724   ,p_attribute16                   in     varchar2 default null
3725   ,p_attribute17                   in     varchar2 default null
3726   ,p_attribute18                   in     varchar2 default null
3727   ,p_attribute19                   in     varchar2 default null
3728   ,p_attribute20                   in     varchar2 default null
3729   ,p_start_ampm                    in     varchar2 default null
3730   ,p_end_ampm                      in     varchar2 default null
3731   ,p_save_mode                     in     varchar2 default null
3732   ,p_abs_information_category      in     varchar2 default null
3733   ,p_abs_information1              in     varchar2 default null
3734   ,p_abs_information2              in     varchar2 default null
3735   ,p_abs_information3              in     varchar2 default null
3736   ,p_abs_information4              in     varchar2 default null
3737   ,p_abs_information5              in     varchar2 default null
3738   ,p_abs_information6              in     varchar2 default null
3739   ,p_abs_information7              in     varchar2 default null
3740   ,p_abs_information8              in     varchar2 default null
3741   ,p_abs_information9              in     varchar2 default null
3742   ,p_abs_information10             in     varchar2 default null
3743   ,p_abs_information11             in     varchar2 default null
3744   ,p_abs_information12             in     varchar2 default null
3745   ,p_abs_information13             in     varchar2 default null
3746   ,p_abs_information14             in     varchar2 default null
3747   ,p_abs_information15             in     varchar2 default null
3748   ,p_abs_information16             in     varchar2 default null
3749   ,p_abs_information17             in     varchar2 default null
3750   ,p_abs_information18             in     varchar2 default null
3751   ,p_abs_information19             in     varchar2 default null
3752   ,p_abs_information20             in     varchar2 default null
3753   ,p_abs_information21             in     varchar2 default null
3754   ,p_abs_information22             in     varchar2 default null
3755   ,p_abs_information23             in     varchar2 default null
3756   ,p_abs_information24             in     varchar2 default null
3757   ,p_abs_information25             in     varchar2 default null
3758   ,p_abs_information26             in     varchar2 default null
3759   ,p_abs_information27             in     varchar2 default null
3760   ,p_abs_information28             in     varchar2 default null
3761   ,p_abs_information29             in     varchar2 default null
3762   ,p_abs_information30             in     varchar2 default null
3763   ,p_leave_status                  in     varchar2 default null
3764   ,p_return_on_warning             in     varchar2 default null --2713296
3765   ,p_absence_attendance_id         out nocopy    number
3766   ,p_object_version_number         out nocopy    number
3767   ,p_occurrence                    out nocopy    number
3768   ,p_dur_dys_less_warning          out nocopy    number
3769   ,p_dur_hrs_less_warning          out nocopy    number
3770   ,p_exceeds_pto_entit_warning     out nocopy    number
3771   ,p_exceeds_run_total_warning     out nocopy    number
3772   ,p_abs_overlap_warning           out nocopy    number
3773   ,p_abs_day_after_warning         out nocopy    number
3774   ,p_dur_overwritten_warning       out nocopy    number
3775   ,p_transaction_step_id           out nocopy    number
3776   ,p_page_error                    out nocopy    varchar2
3777   ,p_page_error_msg                out nocopy    varchar2
3778   ,p_page_error_num                out nocopy    varchar2
3779   ) IS
3780 
3781    l_proc                     varchar2(72) := g_package||'process_save';
3782    l_creator_person_id        per_all_people_f.person_id%TYPE;
3783    l_validate                 boolean;
3784    l_transaction_id	      number;
3785    l_absence_days             number;
3786    l_absence_hours            number;
3787    l_transaction_step_id      number;
3788    l_abs_attendance_reason_id number;
3789    l_login_person_id 	      number;
3790    l_authorising_person_id    number;
3791    l_replacement_person_id    number;
3792    lb_abs_day_after_warning    BOOLEAN;
3793    lb_abs_overlap_warning      BOOLEAN;
3794    lb_dur_dys_less_warning      BOOLEAN;
3795    lb_dur_hrs_less_warning      BOOLEAN;
3796    lb_exceeds_pto_entit_warning BOOLEAN;
3797    lb_exceeds_run_total_warning BOOLEAN;
3798    lb_dur_overwritten_warning   BOOLEAN;
3799 
3800    --2966372 changes start
3801    l_populate_sickness_dates boolean := false;
3802    l_sickness_start_date date := null;
3803    l_sickness_end_date date := null;
3804    --2966372 changes end
3805 
3806 
3807 BEGIN
3808     hr_utility.set_location('Entering:'|| l_proc, 10);
3809  --
3810  --  Call API with validate mode
3811  --
3812 
3813     l_validate := TRUE;
3814     l_authorising_person_id  := to_number(p_authorising_person_id);
3815     l_replacement_person_id  := to_number(p_replacement_person_id);
3816 
3817     if p_abs_attendance_reason_id = -1 then
3818       l_abs_attendance_reason_id := null;
3819     else
3820       l_abs_attendance_reason_id := p_abs_attendance_reason_id;
3821     end if;
3822     if p_absence_days = -1 then
3823       l_absence_days := null;
3824   --    p_absence_days := null; -- #2491612
3825     else
3826       l_absence_days := p_absence_days;
3827     end if;
3828     if p_absence_hours = -1 then
3829       l_absence_hours := null;
3830    --   p_absence_hours := null;
3831     else
3832       l_absence_hours := p_absence_hours;
3833     end if;
3834 
3835     --2966372 changes start
3836     l_populate_sickness_dates := is_gb_leg_and_category_s(p_absence_attendance_type_id , p_business_group_id);
3837 
3838     IF l_populate_sickness_dates THEN
3839        l_sickness_start_date := p_date_start;
3840        l_sickness_end_date := p_date_end;
3841     END IF;
3842     --2966372 changes end
3843 
3844     --
3845     -- Support Save For Later
3846     --
3847     if p_save_mode <> 'SaveForLater' then
3848 
3849       hr_utility.set_location(l_proc, 20);
3850 
3851       hr_person_absence_api.create_person_absence(
3852        p_validate                      => l_validate
3853       ,p_effective_date                => p_effective_date
3854       ,p_person_id                     => p_person_id
3855       ,p_business_group_id             => p_business_group_id
3856       ,p_absence_attendance_type_id    => p_absence_attendance_type_id
3857       ,p_abs_attendance_reason_id      => l_abs_attendance_reason_id
3858       ,p_comments                      => p_comments
3859       ,p_date_notification             => p_date_notification
3860       ,p_date_projected_start          => p_date_projected_start
3861       ,p_time_projected_start          => p_time_projected_start
3862       ,p_date_projected_end            => p_date_projected_end
3863       ,p_time_projected_end            => p_time_projected_end
3864       ,p_date_start                    => p_date_start
3865       ,p_time_start                    => p_time_start
3866       ,p_date_end                      => p_date_end
3867       ,p_time_end                      => p_time_end
3868       ,p_absence_days                  => l_absence_days
3869       ,p_absence_hours                 => l_absence_hours
3870       ,p_authorising_person_id         => l_authorising_person_id
3871       ,p_replacement_person_id         => l_replacement_person_id
3872       ,p_attribute_category            => p_attribute_category
3873       ,p_attribute1                    => p_attribute1
3874       ,p_attribute2                    => p_attribute2
3875       ,p_attribute3                    => p_attribute3
3876       ,p_attribute4                    => p_attribute4
3877       ,p_attribute5                    => p_attribute5
3878       ,p_attribute6                    => p_attribute6
3879       ,p_attribute7                    => p_attribute7
3880       ,p_attribute8                    => p_attribute8
3881       ,p_attribute9                    => p_attribute9
3882       ,p_attribute10                   => p_attribute10
3883       ,p_attribute11                   => p_attribute11
3884       ,p_attribute12                   => p_attribute12
3885       ,p_attribute13                   => p_attribute13
3886       ,p_attribute14                   => p_attribute14
3887       ,p_attribute15                   => p_attribute15
3888       ,p_attribute16                   => p_attribute16
3889       ,p_attribute17                   => p_attribute17
3890       ,p_attribute18                   => p_attribute18
3891       ,p_attribute19                   => p_attribute19
3892       ,p_attribute20                   => p_attribute20
3893       ,p_period_of_incapacity_id       => null
3894       ,p_ssp1_issued                   => 'N'
3895       ,p_maternity_id                  => null
3896       ,p_sickness_start_date           => l_sickness_start_date --2966372
3897       ,p_sickness_end_date             => l_sickness_end_date --2966372
3898       ,p_pregnancy_related_illness     => 'N'
3899       ,p_reason_for_notification_dela  => null
3900       ,p_accept_late_notification_fla  => 'N'
3901       ,p_linked_absence_id             => null
3902       ,p_abs_information_category            => p_abs_information_category
3903       ,p_abs_information1                    => p_abs_information1
3904       ,p_abs_information2                    => p_abs_information2
3905       ,p_abs_information3                    => p_abs_information3
3906       ,p_abs_information4                    => p_abs_information4
3907       ,p_abs_information5                    => p_abs_information5
3908       ,p_abs_information6                    => p_abs_information6
3909       ,p_abs_information7                    => p_abs_information7
3910       ,p_abs_information8                    => p_abs_information8
3911       ,p_abs_information9                    => p_abs_information9
3912       ,p_abs_information10                   => p_abs_information10
3913       ,p_abs_information11                   => p_abs_information11
3914       ,p_abs_information12                   => p_abs_information12
3915       ,p_abs_information13                   => p_abs_information13
3916       ,p_abs_information14                   => p_abs_information14
3917       ,p_abs_information15                   => p_abs_information15
3918       ,p_abs_information16                   => p_abs_information16
3919       ,p_abs_information17                   => p_abs_information17
3920       ,p_abs_information18                   => p_abs_information18
3921       ,p_abs_information19                   => p_abs_information19
3922       ,p_abs_information20                   => p_abs_information20
3923       ,p_abs_information21                   => p_abs_information21
3924       ,p_abs_information22                   => p_abs_information22
3925       ,p_abs_information23                   => p_abs_information23
3926       ,p_abs_information24                   => p_abs_information24
3927       ,p_abs_information25                   => p_abs_information25
3928       ,p_abs_information26                   => p_abs_information26
3929       ,p_abs_information27                   => p_abs_information27
3930       ,p_abs_information28                   => p_abs_information28
3931       ,p_abs_information29                   => p_abs_information29
3932       ,p_abs_information30                   => p_abs_information30
3933       ,p_absence_attendance_id         => p_absence_attendance_id
3934       ,p_object_version_number         => p_object_version_number
3935       ,p_occurrence                    => p_occurrence
3936       ,p_dur_dys_less_warning          => lb_dur_dys_less_warning
3937       ,p_dur_hrs_less_warning          => lb_dur_hrs_less_warning
3938       ,p_exceeds_pto_entit_warning     => lb_exceeds_pto_entit_warning
3939       ,p_exceeds_run_total_warning     => lb_exceeds_run_total_warning
3940       ,p_abs_overlap_warning           => lb_abs_overlap_warning
3941       ,p_abs_day_after_warning         => lb_abs_day_after_warning
3942       ,p_dur_overwritten_warning       => lb_dur_overwritten_warning
3943    );
3944 
3945    p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
3946    p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
3947    p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
3948    p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
3949    p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
3950    p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
3951    p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
3952 
3953    -- 2713296 changes start
3954    if (lb_abs_day_after_warning OR
3955        lb_abs_overlap_warning   OR
3956        lb_exceeds_pto_entit_warning OR   --2848345
3957        lb_dur_dys_less_warning  OR       --2765646
3958        lb_dur_hrs_less_warning  OR       --2765646
3959        lb_exceeds_run_total_warning) AND --2797220
3960        p_return_on_warning = 'true' then
3961      hr_utility.set_location(l_proc, 40);
3962      return;
3963    else -- BUG 2415512
3964       lb_abs_overlap_warning := chk_overlap(p_person_id,p_business_group_id,p_date_start,p_date_end,p_time_start,p_time_end);
3965 
3966       if lb_abs_overlap_warning AND p_return_on_warning = 'true' then
3967         hr_utility.set_location(l_proc, 50);
3968         p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
3969         return;
3970       end if;
3971    end if;
3972    -- 2713296 changes ends
3973    end if; -- Support Save For Later
3974 
3975    hr_utility.set_location(l_proc, 60);
3976  --
3977  --  Create transaction
3978  --
3979     create_transaction(
3980       p_item_type           => p_item_type
3981      ,p_item_key            => p_item_key
3982      ,p_act_id              => p_act_id
3983      ,p_activity_name       => p_review_proc_call
3984      ,p_transaction_id      => l_transaction_id
3985      ,p_transaction_step_id => l_transaction_step_id
3986      ,p_login_person_id     => p_login_person_id
3987      ,p_review_proc_call    => p_review_proc_call
3988     );
3989 
3990     p_transaction_step_id := l_transaction_step_id;
3991 
3992     p_absence_days := l_absence_days;
3993     p_absence_hours := l_absence_hours;
3994 
3995  --
3996  -- Write Transaction
3997  --
3998 
3999     l_validate := FALSE;
4000 --    hr_util_misc_web.validate_session(p_person_id => l_creator_person_id);
4001     l_creator_person_id := p_login_person_id;
4002 
4003 
4004       hr_transaction_api.set_boolean_value (
4005         p_transaction_step_id =>l_transaction_step_id,
4006         p_person_id => l_creator_person_id ,
4007         p_name => 'p_validate' ,
4008         p_value =>l_validate ) ;
4009 
4010       hr_transaction_api.set_date_value (
4011         p_transaction_step_id =>l_transaction_step_id,
4012         p_person_id => l_creator_person_id ,
4013         p_name => 'p_effective_date' ,
4014         p_value =>p_effective_date ) ;
4015 
4016       hr_transaction_api.set_number_value (
4017         p_transaction_step_id =>l_transaction_step_id,
4018         p_person_id => l_creator_person_id ,
4019         p_name => 'p_person_id' ,
4020         p_value =>p_person_id ) ;
4021 
4022       hr_transaction_api.set_number_value (
4023         p_transaction_step_id =>l_transaction_step_id,
4024         p_person_id => l_creator_person_id ,
4025         p_name => 'p_business_group_id' ,
4026         p_value =>p_business_group_id ) ;
4027 
4028       hr_transaction_api.set_number_value (
4029         p_transaction_step_id =>l_transaction_step_id,
4030         p_person_id => l_creator_person_id ,
4031         p_name => 'p_absence_attendance_type_id' ,
4032         p_value =>p_absence_attendance_type_id ) ;
4033 
4034      hr_transaction_api.set_number_value (
4035         p_transaction_step_id =>l_transaction_step_id,
4036         p_person_id => l_creator_person_id ,
4037         p_name => 'p_abs_attendance_reason_id' ,
4038         p_value =>l_abs_attendance_reason_id ) ;
4039 
4040      hr_transaction_api.set_varchar2_value (
4041         p_transaction_step_id =>l_transaction_step_id,
4042         p_person_id => l_creator_person_id ,
4043         p_name => 'p_comments' ,
4044         p_value =>p_comments ) ;
4045 
4046       hr_transaction_api.set_number_value (
4047         p_transaction_step_id =>l_transaction_step_id,
4048         p_person_id => l_creator_person_id ,
4049         p_name => 'p_authorising_person_id' ,
4050         p_value =>p_authorising_person_id ) ;
4051 
4052       hr_transaction_api.set_number_value (
4053         p_transaction_step_id =>l_transaction_step_id,
4054         p_person_id => l_creator_person_id ,
4055         p_name => 'p_replacement_person_id' ,
4056         p_value =>p_replacement_person_id ) ;
4057 
4058       hr_transaction_api.set_date_value (
4059         p_transaction_step_id =>l_transaction_step_id,
4060         p_person_id => l_creator_person_id ,
4061         p_name => 'p_date_projected_start' ,
4062         p_value =>p_date_projected_start) ;
4063 
4064      hr_transaction_api.set_varchar2_value (
4065         p_transaction_step_id =>l_transaction_step_id,
4066         p_person_id => l_creator_person_id ,
4067         p_name => 'p_time_projected_start' ,
4068         p_value =>p_time_projected_start ) ;
4069 
4070       hr_transaction_api.set_date_value (
4071         p_transaction_step_id =>l_transaction_step_id,
4072         p_person_id => l_creator_person_id ,
4073         p_name => 'p_date_projected_end' ,
4074         p_value =>p_date_projected_end) ;
4075 
4076       hr_transaction_api.set_varchar2_value (
4077         p_transaction_step_id =>l_transaction_step_id,
4078         p_person_id => l_creator_person_id ,
4079         p_name => 'p_time_projected_end' ,
4080         p_value =>p_time_projected_end ) ;
4081 
4082       hr_transaction_api.set_date_value (
4083         p_transaction_step_id =>l_transaction_step_id,
4084         p_person_id => l_creator_person_id ,
4085         p_name => 'p_date_start' ,
4086         p_value =>p_date_start) ;
4087 
4088      hr_transaction_api.set_varchar2_value (
4089         p_transaction_step_id =>l_transaction_step_id,
4090         p_person_id => l_creator_person_id ,
4091         p_name => 'p_time_start' ,
4092         p_value =>p_time_start ) ;
4093 
4094       hr_transaction_api.set_date_value (
4095         p_transaction_step_id =>l_transaction_step_id,
4096         p_person_id => l_creator_person_id ,
4097         p_name => 'p_date_end' ,
4098         p_value =>p_date_end) ;
4099 
4100      hr_transaction_api.set_varchar2_value (
4101         p_transaction_step_id =>l_transaction_step_id,
4102         p_person_id => l_creator_person_id ,
4103         p_name => 'p_time_end' ,
4104         p_value =>p_time_end ) ;
4105 
4106      hr_transaction_api.set_number_value (
4107         p_transaction_step_id =>l_transaction_step_id,
4108         p_person_id => l_creator_person_id ,
4109         p_name => 'p_absence_days' ,
4110         p_value =>p_absence_days ) ;
4111 
4112      hr_transaction_api.set_number_value (
4113         p_transaction_step_id =>l_transaction_step_id,
4114         p_person_id => l_creator_person_id ,
4115         p_name => 'p_absence_hours' ,
4116         p_value =>p_absence_hours ) ;
4117 
4118       hr_transaction_api.set_date_value (
4119         p_transaction_step_id =>l_transaction_step_id,
4120         p_person_id => l_creator_person_id ,
4121         p_name => 'p_date_notification' ,
4122         p_value =>p_date_notification ) ;
4123 
4124      hr_transaction_api.set_varchar2_value (
4125         p_transaction_step_id =>l_transaction_step_id,
4126         p_person_id => l_creator_person_id ,
4127         p_name => 'p_attribute_category' ,
4128         p_value =>p_attribute_category ) ;
4129 
4130      hr_transaction_api.set_varchar2_value (
4131         p_transaction_step_id =>l_transaction_step_id,
4132         p_person_id => l_creator_person_id ,
4133         p_name => 'p_attribute1' ,
4134         p_value =>p_attribute1 ) ;
4135 
4136      hr_transaction_api.set_varchar2_value (
4137         p_transaction_step_id =>l_transaction_step_id,
4138         p_person_id => l_creator_person_id ,
4139         p_name => 'p_attribute2' ,
4140         p_value =>p_attribute2 ) ;
4141 
4142      hr_transaction_api.set_varchar2_value (
4143         p_transaction_step_id =>l_transaction_step_id,
4144         p_person_id => l_creator_person_id ,
4145         p_name => 'p_attribute3' ,
4146         p_value =>p_attribute3 ) ;
4147 
4148      hr_transaction_api.set_varchar2_value (
4149         p_transaction_step_id =>l_transaction_step_id,
4150         p_person_id => l_creator_person_id ,
4151         p_name => 'p_attribute4' ,
4152         p_value =>p_attribute4 ) ;
4153 
4154      hr_transaction_api.set_varchar2_value (
4155         p_transaction_step_id =>l_transaction_step_id,
4156         p_person_id => l_creator_person_id ,
4157         p_name => 'p_attribute5' ,
4158         p_value =>p_attribute5 ) ;
4159 
4160      hr_transaction_api.set_varchar2_value (
4161         p_transaction_step_id =>l_transaction_step_id,
4162         p_person_id => l_creator_person_id ,
4163         p_name => 'p_attribute6' ,
4164         p_value =>p_attribute6 ) ;
4165 
4166      hr_transaction_api.set_varchar2_value (
4167         p_transaction_step_id =>l_transaction_step_id,
4168         p_person_id => l_creator_person_id ,
4169         p_name => 'p_attribute7' ,
4170         p_value =>p_attribute7 ) ;
4171 
4172      hr_transaction_api.set_varchar2_value (
4173         p_transaction_step_id =>l_transaction_step_id,
4174         p_person_id => l_creator_person_id ,
4175         p_name => 'p_attribute8' ,
4176         p_value =>p_attribute8 ) ;
4177 
4178      hr_transaction_api.set_varchar2_value (
4179         p_transaction_step_id =>l_transaction_step_id,
4180         p_person_id => l_creator_person_id ,
4181         p_name => 'p_attribute9' ,
4182         p_value =>p_attribute9 ) ;
4183 
4184      hr_transaction_api.set_varchar2_value (
4185         p_transaction_step_id =>l_transaction_step_id,
4186         p_person_id => l_creator_person_id ,
4187         p_name => 'p_attribute10' ,
4188         p_value =>p_attribute10 ) ;
4189 
4190      hr_transaction_api.set_varchar2_value (
4191         p_transaction_step_id =>l_transaction_step_id,
4192         p_person_id => l_creator_person_id ,
4193         p_name => 'p_attribute11' ,
4194         p_value =>p_attribute11 ) ;
4195 
4196      hr_transaction_api.set_varchar2_value (
4197         p_transaction_step_id =>l_transaction_step_id,
4198         p_person_id => l_creator_person_id ,
4199         p_name => 'p_attribute12' ,
4200         p_value =>p_attribute12 ) ;
4201 
4202      hr_transaction_api.set_varchar2_value (
4203         p_transaction_step_id =>l_transaction_step_id,
4204         p_person_id => l_creator_person_id ,
4205         p_name => 'p_attribute13' ,
4206         p_value =>p_attribute13 ) ;
4207 
4208      hr_transaction_api.set_varchar2_value (
4209         p_transaction_step_id =>l_transaction_step_id,
4210         p_person_id => l_creator_person_id ,
4211         p_name => 'p_attribute14' ,
4212         p_value =>p_attribute14 ) ;
4213 
4214      hr_transaction_api.set_varchar2_value (
4215         p_transaction_step_id =>l_transaction_step_id,
4216         p_person_id => l_creator_person_id ,
4217         p_name => 'p_attribute15' ,
4218         p_value =>p_attribute15 ) ;
4219 
4220      hr_transaction_api.set_varchar2_value (
4221         p_transaction_step_id =>l_transaction_step_id,
4222         p_person_id => l_creator_person_id ,
4223         p_name => 'p_attribute16' ,
4224         p_value =>p_attribute16 ) ;
4225 
4226      hr_transaction_api.set_varchar2_value (
4227         p_transaction_step_id =>l_transaction_step_id,
4228         p_person_id => l_creator_person_id ,
4229         p_name => 'p_attribute17' ,
4230         p_value =>p_attribute17 ) ;
4231 
4232      hr_transaction_api.set_varchar2_value (
4233         p_transaction_step_id =>l_transaction_step_id,
4234         p_person_id => l_creator_person_id ,
4235         p_name => 'p_attribute18' ,
4236         p_value =>p_attribute18 ) ;
4237 
4238      hr_transaction_api.set_varchar2_value (
4239         p_transaction_step_id =>l_transaction_step_id,
4240         p_person_id => l_creator_person_id ,
4241         p_name => 'p_attribute19' ,
4242         p_value =>p_attribute19 ) ;
4243 
4244      hr_transaction_api.set_varchar2_value (
4245         p_transaction_step_id =>l_transaction_step_id,
4246         p_person_id => l_creator_person_id ,
4247         p_name => 'p_attribute20' ,
4248         p_value =>p_attribute20 ) ;
4249 
4250      hr_transaction_api.set_varchar2_value (
4251         p_transaction_step_id =>l_transaction_step_id,
4252         p_person_id => l_creator_person_id ,
4253         p_name => 'p_abs_information_category' ,
4254         p_value =>p_abs_information_category ) ;
4255 
4256      hr_transaction_api.set_varchar2_value (
4257         p_transaction_step_id =>l_transaction_step_id,
4258         p_person_id => l_creator_person_id ,
4259         p_name => 'p_abs_information1' ,
4260         p_value =>p_abs_information1 ) ;
4261 
4262      hr_transaction_api.set_varchar2_value (
4263         p_transaction_step_id =>l_transaction_step_id,
4264         p_person_id => l_creator_person_id ,
4265         p_name => 'p_abs_information2' ,
4266         p_value =>p_abs_information2 ) ;
4267 
4268      hr_transaction_api.set_varchar2_value (
4269         p_transaction_step_id =>l_transaction_step_id,
4270         p_person_id => l_creator_person_id ,
4271         p_name => 'p_abs_information3' ,
4272         p_value =>p_abs_information3 ) ;
4273 
4274      hr_transaction_api.set_varchar2_value (
4275         p_transaction_step_id =>l_transaction_step_id,
4276         p_person_id => l_creator_person_id ,
4277         p_name => 'p_abs_information4' ,
4278         p_value =>p_abs_information4 ) ;
4279 
4280      hr_transaction_api.set_varchar2_value (
4281         p_transaction_step_id =>l_transaction_step_id,
4282         p_person_id => l_creator_person_id ,
4283         p_name => 'p_abs_information5' ,
4284         p_value =>p_abs_information5 ) ;
4285 
4286      hr_transaction_api.set_varchar2_value (
4287         p_transaction_step_id =>l_transaction_step_id,
4288         p_person_id => l_creator_person_id ,
4289         p_name => 'p_abs_information6' ,
4290         p_value =>p_abs_information6 ) ;
4291 
4292      hr_transaction_api.set_varchar2_value (
4293         p_transaction_step_id =>l_transaction_step_id,
4294         p_person_id => l_creator_person_id ,
4295         p_name => 'p_abs_information7' ,
4296         p_value =>p_abs_information7 ) ;
4297 
4298      hr_transaction_api.set_varchar2_value (
4299         p_transaction_step_id =>l_transaction_step_id,
4300         p_person_id => l_creator_person_id ,
4301         p_name => 'p_abs_information8' ,
4302         p_value =>p_abs_information8 ) ;
4303 
4304      hr_transaction_api.set_varchar2_value (
4305         p_transaction_step_id =>l_transaction_step_id,
4306         p_person_id => l_creator_person_id ,
4307         p_name => 'p_abs_information9' ,
4308         p_value =>p_abs_information9 ) ;
4309 
4310      hr_transaction_api.set_varchar2_value (
4311         p_transaction_step_id =>l_transaction_step_id,
4312         p_person_id => l_creator_person_id ,
4313         p_name => 'p_abs_information10' ,
4314         p_value =>p_abs_information10 ) ;
4315 
4316      hr_transaction_api.set_varchar2_value (
4317         p_transaction_step_id =>l_transaction_step_id,
4318         p_person_id => l_creator_person_id ,
4319         p_name => 'p_abs_information11' ,
4320         p_value =>p_abs_information11 ) ;
4321 
4322      hr_transaction_api.set_varchar2_value (
4323         p_transaction_step_id =>l_transaction_step_id,
4324         p_person_id => l_creator_person_id ,
4325         p_name => 'p_abs_information12' ,
4326         p_value =>p_abs_information12 ) ;
4327 
4328      hr_transaction_api.set_varchar2_value (
4329         p_transaction_step_id =>l_transaction_step_id,
4330         p_person_id => l_creator_person_id ,
4331         p_name => 'p_abs_information13' ,
4332         p_value =>p_abs_information13 ) ;
4333 
4334      hr_transaction_api.set_varchar2_value (
4335         p_transaction_step_id =>l_transaction_step_id,
4336         p_person_id => l_creator_person_id ,
4337         p_name => 'p_abs_information14' ,
4338         p_value =>p_abs_information14 ) ;
4339 
4340      hr_transaction_api.set_varchar2_value (
4341         p_transaction_step_id =>l_transaction_step_id,
4342         p_person_id => l_creator_person_id ,
4343         p_name => 'p_abs_information15' ,
4344         p_value =>p_abs_information15 ) ;
4345 
4346      hr_transaction_api.set_varchar2_value (
4347         p_transaction_step_id =>l_transaction_step_id,
4348         p_person_id => l_creator_person_id ,
4349         p_name => 'p_abs_information16' ,
4350         p_value =>p_abs_information16 ) ;
4351 
4352      hr_transaction_api.set_varchar2_value (
4353         p_transaction_step_id =>l_transaction_step_id,
4354         p_person_id => l_creator_person_id ,
4355         p_name => 'p_abs_information17' ,
4356         p_value =>p_abs_information17 ) ;
4357 
4358      hr_transaction_api.set_varchar2_value (
4359         p_transaction_step_id =>l_transaction_step_id,
4360         p_person_id => l_creator_person_id ,
4361         p_name => 'p_abs_information18' ,
4362         p_value =>p_abs_information18 ) ;
4363 
4364      hr_transaction_api.set_varchar2_value (
4365         p_transaction_step_id =>l_transaction_step_id,
4366         p_person_id => l_creator_person_id ,
4367         p_name => 'p_abs_information19' ,
4368         p_value =>p_abs_information19 ) ;
4369 
4370      hr_transaction_api.set_varchar2_value (
4371         p_transaction_step_id =>l_transaction_step_id,
4372         p_person_id => l_creator_person_id ,
4373         p_name => 'p_abs_information20' ,
4374         p_value =>p_abs_information20 ) ;
4375 
4376      hr_transaction_api.set_varchar2_value (
4377         p_transaction_step_id =>l_transaction_step_id,
4378         p_person_id => l_creator_person_id ,
4379         p_name => 'p_abs_information21' ,
4380         p_value =>p_abs_information21 ) ;
4381 
4382      hr_transaction_api.set_varchar2_value (
4383         p_transaction_step_id =>l_transaction_step_id,
4384         p_person_id => l_creator_person_id ,
4385         p_name => 'p_abs_information22' ,
4386         p_value =>p_abs_information22 ) ;
4387 
4388      hr_transaction_api.set_varchar2_value (
4389         p_transaction_step_id =>l_transaction_step_id,
4390         p_person_id => l_creator_person_id ,
4391         p_name => 'p_abs_information23' ,
4392         p_value =>p_abs_information23 ) ;
4393 
4394      hr_transaction_api.set_varchar2_value (
4395         p_transaction_step_id =>l_transaction_step_id,
4396         p_person_id => l_creator_person_id ,
4397         p_name => 'p_abs_information24' ,
4398         p_value =>p_abs_information24 ) ;
4399 
4400      hr_transaction_api.set_varchar2_value (
4401         p_transaction_step_id =>l_transaction_step_id,
4402         p_person_id => l_creator_person_id ,
4403         p_name => 'p_abs_information25' ,
4404         p_value =>p_abs_information25 ) ;
4405 
4406      hr_transaction_api.set_varchar2_value (
4407         p_transaction_step_id =>l_transaction_step_id,
4408         p_person_id => l_creator_person_id ,
4409         p_name => 'p_abs_information26' ,
4410         p_value =>p_abs_information26 ) ;
4411 
4412      hr_transaction_api.set_varchar2_value (
4413         p_transaction_step_id =>l_transaction_step_id,
4414         p_person_id => l_creator_person_id ,
4415         p_name => 'p_abs_information27' ,
4416         p_value =>p_abs_information27 ) ;
4417 
4418      hr_transaction_api.set_varchar2_value (
4419         p_transaction_step_id =>l_transaction_step_id,
4420         p_person_id => l_creator_person_id ,
4421         p_name => 'p_abs_information28' ,
4422         p_value =>p_abs_information28 ) ;
4423 
4424      hr_transaction_api.set_varchar2_value (
4425         p_transaction_step_id =>l_transaction_step_id,
4426         p_person_id => l_creator_person_id ,
4427         p_name => 'p_abs_information29' ,
4428         p_value =>p_abs_information29 ) ;
4429 
4430      hr_transaction_api.set_varchar2_value (
4431         p_transaction_step_id =>l_transaction_step_id,
4432         p_person_id => l_creator_person_id ,
4433         p_name => 'p_abs_information30' ,
4434         p_value =>p_abs_information30 ) ;
4435 
4436   --
4437      hr_transaction_api.set_varchar2_value (
4438         p_transaction_step_id =>l_transaction_step_id,
4439         p_person_id => l_creator_person_id ,
4440         p_name => 'p_leave_status' ,
4441         p_value =>p_leave_status ) ;
4442 
4443   --
4444   -- Save For Later
4445   --
4446      hr_transaction_api.set_varchar2_value (
4447         p_transaction_step_id =>l_transaction_step_id,
4448         p_person_id => l_creator_person_id ,
4449         p_name => 'p_start_ampm' ,
4450         p_value =>p_start_ampm ) ;
4451 
4452      hr_transaction_api.set_varchar2_value (
4453         p_transaction_step_id =>l_transaction_step_id,
4454         p_person_id => l_creator_person_id ,
4455         p_name => 'p_end_ampm' ,
4456         p_value =>p_end_ampm ) ;
4457 
4458      hr_transaction_api.set_varchar2_value (
4459         p_transaction_step_id =>l_transaction_step_id,
4460         p_person_id => l_creator_person_id ,
4461         p_name => 'p_save_mode' ,
4462         p_value =>p_save_mode ) ;
4463  --
4464  --
4465  --
4466  hr_utility.set_location('Leaving..:' || l_proc, 70);
4467     EXCEPTION
4468       WHEN hr_utility.hr_error then
4469          hr_message.provide_error;
4470          p_page_error := hr_message.last_message_app;
4471          p_page_error_msg := hr_message.get_message_text;
4472          p_page_error_num := hr_message.last_message_number;
4473 	 hr_utility.set_location('Leaving..:' || l_proc, 555);
4474       WHEN OTHERS THEN
4475       hr_utility.trace('Exception  HR_LOA_SS..process_save:: ' || SQLERRM );
4476       hr_utility.set_location('Leaving..:' || l_proc, 560);
4477         raise ;
4478 
4479   END process_save;
4480 
4481     --2966372 changes start
4482   /*
4483    ||===========================================================================
4484    || FUNCTION: is_gb_leg_and_category_s
4485    ||---------------------------------------------------------------------------
4486    ||
4487    || Description:
4488    ||     This function will return true if the absence category is 'Sickness'
4489    ||     and the legislation is 'GB' , else will return false.
4490    ||
4491    || Access Status:
4492    ||     Public.
4493    ||
4494    ||===========================================================================
4495    */
4496 
4497   function is_gb_leg_and_category_s(p_absence_attendance_type_id IN NUMBER ,
4498 				    p_business_group_id IN NUMBER)
4499   return boolean is
4500 
4501    l_proc varchar2(200) := g_package || 'is_gb_leg_and_category_s';
4502 
4503    populate_sickness_dates boolean := false;
4504    l_absence_category per_absence_attendance_types.absence_category%type ;
4505    l_legislation_code varchar2(150);
4506 
4507    cursor get_category_code (p_absence_attendance_type_id number) is
4508    select absence_category
4509    from per_absence_attendance_types
4510    where absence_attendance_type_id = p_absence_attendance_type_id;
4511 
4512   begin
4513     hr_utility.set_location(' Entering:' || l_proc,5);
4514 
4515     open get_category_code(p_absence_attendance_type_id);
4516     fetch get_category_code into l_absence_category ;
4517     close get_category_code ;
4518 
4519     IF l_absence_category = 'S' THEN
4520        l_legislation_code := hr_api.return_legislation_code(p_business_group_id);
4521        IF l_legislation_code = 'GB' THEN
4522           hr_utility.set_location(l_proc,10);
4523 
4524     	  populate_sickness_dates := true;
4525        END IF;
4526     END IF;
4527     hr_utility.set_location(' Leaving:' || l_proc,15);
4528 
4529     return populate_sickness_dates;
4530   END is_gb_leg_and_category_s ;
4531     --2966372 changes end
4532 
4533 
4534 --kcks
4535 
4536 procedure process_update_save(
4537    p_item_type                     in     WF_ITEMS.ITEM_TYPE%TYPE
4538   ,p_item_key  	                   in     WF_ITEMS.ITEM_KEY%TYPE
4539   ,p_act_id    	                   in     NUMBER
4540   ,p_login_person_id               in     number
4541   ,p_review_proc_call              in     varchar2
4542   ,p_effective_date                in     date
4543   ,p_date_notification             in     date
4544   ,p_absence_attendance_id         in     per_absence_attendances.absence_attendance_id%type
4545   ,p_object_version_number         in out nocopy number
4546   ,p_date_start			   in     date     default null
4547   ,p_time_start     	           in     varchar2 default null
4548   ,p_date_end			   in     date     default null
4549   ,p_time_end     	           in     varchar2 default null
4550   ,p_absence_days                  in out nocopy number
4551   ,p_absence_hours                 in out nocopy number
4552   ,p_replacement_person_id         in     number   default null
4553   ,p_update_return                 in     varchar2
4554   ,p_save_mode                     in     varchar2
4555   ,p_attribute_category            in     varchar2 default null
4556   ,p_attribute1                    in     varchar2 default null
4557   ,p_attribute2                    in     varchar2 default null
4558   ,p_attribute3                    in     varchar2 default null
4559   ,p_attribute4                    in     varchar2 default null
4560   ,p_attribute5                    in     varchar2 default null
4561   ,p_attribute6                    in     varchar2 default null
4562   ,p_attribute7                    in     varchar2 default null
4563   ,p_attribute8                    in     varchar2 default null
4564   ,p_attribute9                    in     varchar2 default null
4565   ,p_attribute10                   in     varchar2 default null
4566   ,p_attribute11                   in     varchar2 default null
4567   ,p_attribute12                   in     varchar2 default null
4568   ,p_attribute13                   in     varchar2 default null
4569   ,p_attribute14                   in     varchar2 default null
4570   ,p_attribute15                   in     varchar2 default null
4571   ,p_attribute16                   in     varchar2 default null
4572   ,p_attribute17                   in     varchar2 default null
4573   ,p_attribute18                   in     varchar2 default null
4574   ,p_attribute19                   in     varchar2 default null
4575   ,p_attribute20                   in     varchar2 default null
4576   ,p_abs_information_category      in     varchar2 default null
4577   ,p_abs_information1              in     varchar2 default null
4578   ,p_abs_information2              in     varchar2 default null
4579   ,p_abs_information3              in     varchar2 default null
4580   ,p_abs_information4              in     varchar2 default null
4581   ,p_abs_information5              in     varchar2 default null
4582   ,p_abs_information6              in     varchar2 default null
4583   ,p_abs_information7              in     varchar2 default null
4584   ,p_abs_information8              in     varchar2 default null
4585   ,p_abs_information9              in     varchar2 default null
4586   ,p_abs_information10             in     varchar2 default null
4587   ,p_abs_information11             in     varchar2 default null
4588   ,p_abs_information12             in     varchar2 default null
4589   ,p_abs_information13             in     varchar2 default null
4590   ,p_abs_information14             in     varchar2 default null
4591   ,p_abs_information15             in     varchar2 default null
4592   ,p_abs_information16             in     varchar2 default null
4593   ,p_abs_information17             in     varchar2 default null
4594   ,p_abs_information18             in     varchar2 default null
4595   ,p_abs_information19             in     varchar2 default null
4596   ,p_abs_information20             in     varchar2 default null
4597   ,p_abs_information21             in     varchar2 default null
4598   ,p_abs_information22             in     varchar2 default null
4599   ,p_abs_information23             in     varchar2 default null
4600   ,p_abs_information24             in     varchar2 default null
4601   ,p_abs_information25             in     varchar2 default null
4602   ,p_abs_information26             in     varchar2 default null
4603   ,p_abs_information27             in     varchar2 default null
4604   ,p_abs_information28             in     varchar2 default null
4605   ,p_abs_information29             in     varchar2 default null
4606   ,p_abs_information30             in     varchar2 default null
4607   ,p_leave_status                  in     varchar2 default null
4608   ,p_comments                      in     varchar2 default null
4609   ,p_person_id                     in     number
4610   ,p_absence_attendance_type_id    in     number
4611   ,p_abs_attendance_reason_id      in     number   default null
4612   ,p_date_projected_start	   in     date     default null
4613   ,p_time_projected_start          in     varchar2 default null
4614   ,p_date_projected_end		   in     date     default null
4615   ,p_time_projected_end	           in     varchar2 default null
4616   ,p_return_on_warning             in     varchar2 default null  --2713296
4617   ,p_dur_dys_less_warning          out nocopy    number
4618   ,p_dur_hrs_less_warning          out nocopy    number
4619   ,p_exceeds_pto_entit_warning     out nocopy    number
4620   ,p_exceeds_run_total_warning     out nocopy    number
4621   ,p_abs_overlap_warning           out nocopy    number
4622   ,p_abs_day_after_warning         out nocopy    number
4623   ,p_dur_overwritten_warning       out nocopy    number
4624   ,p_transaction_step_id           out nocopy    number
4625   ,p_page_error                    out nocopy    varchar2
4626   ,p_page_error_msg                out nocopy    varchar2
4627   ,p_page_error_num                out nocopy    varchar2
4628   ) IS
4629 
4630    l_proc              varchar2(72)  :=  g_package||'process_update_save';
4631    l_creator_person_id      per_all_people_f.person_id%TYPE;
4632    l_absence_rec            per_absence_attendances%rowtype;
4633    l_validate               boolean ;
4634    l_transaction_id	    number;
4635    l_transaction_step_id    number;
4636    l_login_person_id 	    number;
4637    l_object_version_number  number;
4638    lb_abs_day_after_warning BOOLEAN;
4639    lb_abs_overlap_warning   BOOLEAN;
4640    lb_dur_dys_less_warning      BOOLEAN;
4641    lb_dur_hrs_less_warning      BOOLEAN;
4642    lb_exceeds_pto_entit_warning BOOLEAN;
4643    lb_exceeds_run_total_warning BOOLEAN;
4644    lb_dur_overwritten_warning   BOOLEAN;
4645    lb_del_element_entry_warning BOOLEAN;
4646    l_absence_days           number;
4647    l_absence_day_hours      number;
4648    l_absence_hours          number;
4649    l_business_group_id      number;
4650 
4651    --2966372 changes start
4652    l_populate_sickness_dates boolean := false;
4653    l_sickness_start_date date := null;
4654    l_sickness_end_date date := null;
4655    --2966372 changes end
4656 
4657    l_leave_data_changed boolean := false ; --2793140
4658 
4659    cursor csr_abs_attendances is
4660    select *
4661      from per_absence_attendances paa
4662      where paa.absence_attendance_id = p_absence_attendance_id ;
4663 
4664 BEGIN
4665  --
4666  --
4667  --
4668    hr_utility.set_location('Entering:'|| l_proc, 10);
4669    open csr_abs_attendances;
4670    fetch csr_abs_attendances into l_absence_rec;
4671    if  csr_abs_attendances%notfound then
4672      close csr_abs_attendances;
4673      hr_utility.set_location('api error exists', 10);
4674      raise g_data_error;
4675    end if;
4676 
4677 
4678     if p_absence_days = -1 then
4679       l_absence_days := null;
4680     else
4681       l_absence_days := p_absence_days;
4682     end if;
4683     if p_absence_hours = -1 then
4684       l_absence_hours := null;
4685     else
4686       l_absence_hours := p_absence_hours;
4687     end if;
4688 
4689     --2793140 changes start
4690     l_leave_data_changed := is_rec_changed
4691                    (p_effective_date                => p_effective_date
4692     ,p_absence_attendance_id           => p_absence_attendance_id
4693     ,p_abs_attendance_reason_id      => p_abs_attendance_reason_id
4694     ,p_comments                      => p_comments
4695     ,p_date_notification             => p_date_notification
4696     ,p_date_projected_start          => p_date_projected_start
4697     ,p_time_projected_start          => p_time_projected_start
4698     ,p_date_projected_end            => p_date_projected_end
4699     ,p_time_projected_end            => p_time_projected_end
4700     ,p_date_start                    => p_date_start
4701     ,p_time_start                    => p_time_start
4702     ,p_date_end                      => p_date_end
4703     ,p_time_end                      => p_time_end
4704     ,p_absence_days                  => l_absence_days
4705     ,p_absence_hours                 => l_absence_hours
4706     ,p_replacement_person_id         => p_replacement_person_id
4707     ,p_attribute_category            => p_attribute_category
4708     ,p_attribute1                    => p_attribute1
4709     ,p_attribute2                    => p_attribute2
4710     ,p_attribute3                    => p_attribute3
4711     ,p_attribute4                    => p_attribute4
4712     ,p_attribute5                    => p_attribute5
4713     ,p_attribute6                    => p_attribute6
4714     ,p_attribute7                    => p_attribute7
4715     ,p_attribute8                    => p_attribute8
4716     ,p_attribute9                    => p_attribute9
4717     ,p_attribute10                   => p_attribute10
4718     ,p_attribute11                   => p_attribute11
4719     ,p_attribute12                   => p_attribute12
4720     ,p_attribute13                   => p_attribute13
4721     ,p_attribute14                   => p_attribute14
4722     ,p_attribute15                   => p_attribute15
4723     ,p_attribute16                   => p_attribute16
4724     ,p_attribute17                   => p_attribute17
4725     ,p_attribute18                   => p_attribute18
4726     ,p_attribute19                   => p_attribute19
4727     ,p_attribute20                   => p_attribute20
4728     ,p_abs_information_category      => p_abs_information_category
4729     ,p_abs_information1              => p_abs_information1
4730     ,p_abs_information2              => p_abs_information2
4731     ,p_abs_information3              => p_abs_information3
4732     ,p_abs_information4              => p_abs_information4
4733     ,p_abs_information5              => p_abs_information5
4734     ,p_abs_information6              => p_abs_information6
4735     ,p_abs_information7              => p_abs_information7
4736     ,p_abs_information8              => p_abs_information8
4737     ,p_abs_information9              => p_abs_information9
4738     ,p_abs_information10             => p_abs_information10
4739     ,p_abs_information11             => p_abs_information11
4740     ,p_abs_information12             => p_abs_information12
4741     ,p_abs_information13             => p_abs_information13
4742     ,p_abs_information14             => p_abs_information14
4743     ,p_abs_information15             => p_abs_information15
4744     ,p_abs_information16             => p_abs_information16
4745     ,p_abs_information17             => p_abs_information17
4746     ,p_abs_information18             => p_abs_information18
4747     ,p_abs_information19             => p_abs_information19
4748     ,p_abs_information20             => p_abs_information20
4749     ,p_abs_information21             => p_abs_information21
4750     ,p_abs_information22             => p_abs_information22
4751     ,p_abs_information23             => p_abs_information23
4752     ,p_abs_information24             => p_abs_information24
4753     ,p_abs_information25             => p_abs_information25
4754     ,p_abs_information26             => p_abs_information26
4755     ,p_abs_information27             => p_abs_information27
4756     ,p_abs_information28             => p_abs_information28
4757     ,p_abs_information29             => p_abs_information29
4758     ,p_abs_information30             => p_abs_information30
4759     ,p_object_version_number         => p_object_version_number
4760     );
4761 
4762     if l_leave_data_changed = false then
4763       hr_utility.set_location(l_proc||' no data changed:returning', 15);
4764       return;
4765     end if;
4766 
4767     --2793140 changes end
4768 
4769     l_object_version_number := p_object_version_number; -- WWBUG 2411426
4770     hr_utility.trace(l_proc || ':p_object_version_number =>'|| to_char(l_object_version_number));
4771 
4772     --2966372 changes start
4773     l_populate_sickness_dates := is_gb_leg_and_category_s(p_absence_attendance_type_id
4774 					, l_absence_rec.business_group_id);
4775 
4776     IF l_populate_sickness_dates THEN
4777        l_sickness_start_date := p_date_start;
4778        l_sickness_end_date := p_date_end;
4779     END IF;
4780     --2966372 changes end
4781 
4782  --
4783  --  Call API with validate mode
4784  --
4785 
4786     if p_save_mode <> 'SaveForLater' then
4787       hr_utility.set_location(l_proc, 20);
4788 
4789       l_validate := TRUE;
4790 
4791       if p_leave_status = g_confirm then
4792 
4793       hr_utility.set_location(l_proc, 30);
4794 
4795       hr_person_absence_api.update_person_absence(
4796        p_validate                   => l_validate
4797         ,p_effective_date             => p_effective_date
4798 --        ,p_business_group_id          => l_absence_rec.business_group_id
4799         ,p_absence_attendance_id      => p_absence_attendance_id
4800         ,p_date_notification          => p_date_notification
4801         ,p_date_start                 => p_date_start
4802         ,p_time_start                 => p_time_start
4803         ,p_date_end                   => p_date_end
4804         ,p_time_end                   => p_time_end
4805         ,p_absence_days               => l_absence_days
4806         ,p_absence_hours              => l_absence_hours
4807         ,p_replacement_person_id      => p_replacement_person_id
4808         ,p_object_version_number      => l_object_version_number
4809         ,p_attribute_category            => p_attribute_category
4810         ,p_attribute1                    => p_attribute1
4811         ,p_attribute2                    => p_attribute2
4812         ,p_attribute3                    => p_attribute3
4813         ,p_attribute4                    => p_attribute4
4814         ,p_attribute5                    => p_attribute5
4815         ,p_attribute6                    => p_attribute6
4816         ,p_attribute7                    => p_attribute7
4817         ,p_attribute8                    => p_attribute8
4818         ,p_attribute9                    => p_attribute9
4819         ,p_attribute10                   => p_attribute10
4820         ,p_attribute11                   => p_attribute11
4821         ,p_attribute12                   => p_attribute12
4822         ,p_attribute13                   => p_attribute13
4823         ,p_attribute14                   => p_attribute14
4824         ,p_attribute15                   => p_attribute15
4825         ,p_attribute16                   => p_attribute16
4826         ,p_attribute17                   => p_attribute17
4827         ,p_attribute18                   => p_attribute18
4828         ,p_attribute19                   => p_attribute19
4829         ,p_attribute20                   => p_attribute20
4830         ,p_abs_information_category            => p_abs_information_category
4831         ,p_abs_information1                    => p_abs_information1
4832         ,p_abs_information2                    => p_abs_information2
4833         ,p_abs_information3                    => p_abs_information3
4834         ,p_abs_information4                    => p_abs_information4
4835         ,p_abs_information5                    => p_abs_information5
4836         ,p_abs_information6                    => p_abs_information6
4837         ,p_abs_information7                    => p_abs_information7
4838         ,p_abs_information8                    => p_abs_information8
4839         ,p_abs_information9                    => p_abs_information9
4840         ,p_abs_information10                   => p_abs_information10
4841         ,p_abs_information11                   => p_abs_information11
4842         ,p_abs_information12                   => p_abs_information12
4843         ,p_abs_information13                   => p_abs_information13
4844         ,p_abs_information14                   => p_abs_information14
4845         ,p_abs_information15                   => p_abs_information15
4846         ,p_abs_information16                   => p_abs_information16
4847         ,p_abs_information17                   => p_abs_information17
4848         ,p_abs_information18                   => p_abs_information18
4849         ,p_abs_information19                   => p_abs_information19
4850         ,p_abs_information20                   => p_abs_information20
4851         ,p_abs_information21                   => p_abs_information21
4852         ,p_abs_information22                   => p_abs_information22
4853         ,p_abs_information23                   => p_abs_information23
4854         ,p_abs_information24                   => p_abs_information24
4855         ,p_abs_information25                   => p_abs_information25
4856         ,p_abs_information26                   => p_abs_information26
4857         ,p_abs_information27                   => p_abs_information27
4858         ,p_abs_information28                   => p_abs_information28
4859         ,p_abs_information29                   => p_abs_information29
4860         ,p_abs_information30                   => p_abs_information30
4861 	    ,p_sickness_start_date        => l_sickness_start_date --2966372
4862         ,p_sickness_end_date          => l_sickness_end_date --2966372
4863         ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
4864         ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
4865         ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
4866         ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
4867         ,p_abs_overlap_warning        => lb_abs_overlap_warning
4868         ,p_abs_day_after_warning      => lb_abs_day_after_warning
4869         ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
4870         ,p_del_element_entry_warning  => lb_del_element_entry_warning
4871       );
4872     else
4873 -- Update absence
4874       hr_utility.set_location(l_proc, 40);
4875 
4876       hr_person_absence_api.update_person_absence(
4877         p_validate                   => l_validate
4878        ,p_effective_date             => p_effective_date
4879 --       ,p_business_group_id          => l_absence_rec.business_group_id
4880        ,p_absence_attendance_id      => p_absence_attendance_id
4881        ,p_date_notification          => p_date_notification
4882        ,p_date_projected_start       => p_date_projected_start   --WWBUG 2413294
4883        ,p_time_projected_start       => p_time_projected_start   --WWBUG 2413294
4884        ,p_date_projected_end         => p_date_projected_end     --WWBUG 2413294
4885        ,p_time_projected_end         => p_time_projected_end     --WWBUG 2413294
4886        ,p_date_start                 => null
4887        ,p_time_start                 => null
4888        ,p_date_end                   => null
4889        ,p_time_end                   => null
4890        ,p_absence_days               => l_absence_days
4891        ,p_absence_hours              => l_absence_hours
4892        ,p_replacement_person_id      => p_replacement_person_id
4893        ,p_object_version_number      => l_object_version_number
4894        ,p_attribute_category            => p_attribute_category
4895        ,p_attribute1                    => p_attribute1
4896        ,p_attribute2                    => p_attribute2
4897        ,p_attribute3                    => p_attribute3
4898        ,p_attribute4                    => p_attribute4
4899        ,p_attribute5                    => p_attribute5
4900        ,p_attribute6                    => p_attribute6
4901        ,p_attribute7                    => p_attribute7
4902        ,p_attribute8                    => p_attribute8
4903        ,p_attribute9                    => p_attribute9
4904        ,p_attribute10                   => p_attribute10
4905        ,p_attribute11                   => p_attribute11
4906        ,p_attribute12                   => p_attribute12
4907        ,p_attribute13                   => p_attribute13
4908        ,p_attribute14                   => p_attribute14
4909        ,p_attribute15                   => p_attribute15
4910        ,p_attribute16                   => p_attribute16
4911        ,p_attribute17                   => p_attribute17
4912        ,p_attribute18                   => p_attribute18
4913        ,p_attribute19                   => p_attribute19
4914        ,p_attribute20                   => p_attribute20
4915        ,p_abs_information_category            => p_abs_information_category
4916        ,p_abs_information1                    => p_abs_information1
4917        ,p_abs_information2                    => p_abs_information2
4918        ,p_abs_information3                    => p_abs_information3
4919        ,p_abs_information4                    => p_abs_information4
4920        ,p_abs_information5                    => p_abs_information5
4921        ,p_abs_information6                    => p_abs_information6
4922        ,p_abs_information7                    => p_abs_information7
4923        ,p_abs_information8                    => p_abs_information8
4924        ,p_abs_information9                    => p_abs_information9
4925        ,p_abs_information10                   => p_abs_information10
4926        ,p_abs_information11                   => p_abs_information11
4927        ,p_abs_information12                   => p_abs_information12
4928        ,p_abs_information13                   => p_abs_information13
4929        ,p_abs_information14                   => p_abs_information14
4930        ,p_abs_information15                   => p_abs_information15
4931        ,p_abs_information16                   => p_abs_information16
4932        ,p_abs_information17                   => p_abs_information17
4933        ,p_abs_information18                   => p_abs_information18
4934        ,p_abs_information19                   => p_abs_information19
4935        ,p_abs_information20                   => p_abs_information20
4936        ,p_abs_information21                   => p_abs_information21
4937        ,p_abs_information22                   => p_abs_information22
4938        ,p_abs_information23                   => p_abs_information23
4939        ,p_abs_information24                   => p_abs_information24
4940        ,p_abs_information25                   => p_abs_information25
4941        ,p_abs_information26                   => p_abs_information26
4942        ,p_abs_information27                   => p_abs_information27
4943        ,p_abs_information28                   => p_abs_information28
4944        ,p_abs_information29                   => p_abs_information29
4945        ,p_abs_information30                   => p_abs_information30
4946        ,p_sickness_start_date        => l_sickness_start_date --2966372
4947        ,p_sickness_end_date          => l_sickness_end_date --2966372
4948        ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
4949        ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
4950        ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
4951        ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
4952        ,p_abs_overlap_warning        => lb_abs_overlap_warning
4953        ,p_abs_day_after_warning      => lb_abs_day_after_warning
4954        ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
4955        ,p_del_element_entry_warning     => lb_del_element_entry_warning
4956      );
4957    end if;
4958 
4959    p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
4960    p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
4961 
4962 --   When validate mode is 'TRUE', API always returns null for p_object_version_number
4963 --   p_object_version_number := l_object_version_number; -- WWBUG 2411426
4964 
4965    hr_utility.trace(l_proc || ':p_object_version_number =>'|| to_char(l_object_version_number));
4966 
4967    p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
4968    p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
4969    p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
4970    p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
4971    p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
4972 
4973    --2713296 change starts
4974    if (lb_abs_day_after_warning OR
4975        lb_abs_overlap_warning   OR
4976        lb_exceeds_pto_entit_warning OR   --2848345
4977        lb_dur_dys_less_warning  OR       --2765646
4978        lb_dur_hrs_less_warning  OR       --2765646
4979        lb_exceeds_run_total_warning) AND --2797220
4980        p_return_on_warning = 'true' then
4981      hr_utility.set_location(l_proc, 50);
4982      return;
4983    else -- BUG 2415512
4984       lb_abs_overlap_warning := chk_overlap(p_person_id,l_absence_rec.business_group_id,p_date_start,p_date_end,p_time_start,p_time_end);
4985 
4986 
4987       if lb_abs_overlap_warning AND p_return_on_warning = 'true' then
4988         hr_utility.set_location(l_proc, 55);
4989         p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
4990        return;
4991       end if;
4992     --2713296 change ends
4993    end if;
4994    hr_utility.set_location(l_proc, 60);
4995 
4996    end if; -- Support of Save Of Later
4997 
4998  --
4999  --  Create transaction
5000  --
5001     create_transaction(
5002       p_item_type           => p_item_type
5003      ,p_item_key            => p_item_key
5004      ,p_act_id              => p_act_id
5005      ,p_activity_name       => p_update_return
5006      ,p_transaction_id      => l_transaction_id
5007      ,p_transaction_step_id => l_transaction_step_id
5008      ,p_login_person_id     => p_login_person_id
5009      ,p_review_proc_call    => p_review_proc_call
5010     );
5011 
5012     p_transaction_step_id := l_transaction_step_id;
5013     hr_utility.set_location(l_proc, 70);
5014     hr_utility.trace(l_proc || ':transaction_step_id =>'|| to_char(l_transaction_step_id));
5015 
5016  --
5017  -- Write Transaction
5018  --
5019 
5020    l_creator_person_id := p_login_person_id;
5021 
5022    l_validate := FALSE;
5023 
5024    hr_transaction_api.set_boolean_value (
5025         p_transaction_step_id =>l_transaction_step_id,
5026         p_person_id => l_creator_person_id ,
5027         p_name => 'p_validate' ,
5028         p_value =>l_validate ) ;
5029 
5030    hr_transaction_api.set_date_value (
5031         p_transaction_step_id =>l_transaction_step_id,
5032         p_person_id => l_creator_person_id ,
5033         p_name => 'p_effective_date' ,
5034         p_value =>p_effective_date ) ;
5035 
5036    hr_transaction_api.set_date_value (
5037         p_transaction_step_id =>l_transaction_step_id,
5038         p_person_id => l_creator_person_id ,
5039         p_name => 'p_date_notification' ,
5040         p_value =>p_date_notification) ;
5041 
5042    hr_transaction_api.set_number_value (
5043         p_transaction_step_id =>l_transaction_step_id,
5044         p_person_id => l_creator_person_id ,
5045         p_name => 'p_business_group_id' ,
5046         p_value =>l_absence_rec.business_group_id ) ;
5047 
5048    hr_transaction_api.set_number_value (
5049         p_transaction_step_id =>l_transaction_step_id,
5050         p_person_id => l_creator_person_id ,
5051         p_name => 'p_object_version_number' ,
5052         p_value => p_object_version_number ) ;
5053 
5054    hr_transaction_api.set_number_value (
5055         p_transaction_step_id =>l_transaction_step_id,
5056         p_person_id => l_creator_person_id ,
5057         p_name => 'p_absence_attendance_id' ,
5058         p_value =>p_absence_attendance_id ) ;
5059 
5060    --if p_leave_status = g_confirm then
5061      hr_transaction_api.set_date_value (
5062           p_transaction_step_id =>l_transaction_step_id,
5063           p_person_id => l_creator_person_id ,
5064           p_name => 'p_date_start' ,
5065           p_value =>p_date_start) ;
5066 
5067     hr_transaction_api.set_varchar2_value (
5068           p_transaction_step_id =>l_transaction_step_id,
5069           p_person_id => l_creator_person_id ,
5070           p_name => 'p_time_start' ,
5071           p_value =>p_time_start ) ;
5072 
5073     hr_transaction_api.set_date_value (
5074           p_transaction_step_id =>l_transaction_step_id,
5075           p_person_id => l_creator_person_id ,
5076           p_name => 'p_date_end' ,
5077           p_value =>p_date_end) ;
5078 
5079     hr_transaction_api.set_varchar2_value (
5080           p_transaction_step_id =>l_transaction_step_id,
5081           p_person_id => l_creator_person_id ,
5082           p_name => 'p_time_end' ,
5083           p_value =>p_time_end ) ;
5084 
5085   --end if;
5086 
5087   hr_transaction_api.set_date_value (
5088           p_transaction_step_id =>l_transaction_step_id,
5089           p_person_id => l_creator_person_id ,
5090           p_name => 'p_date_projected_start' ,
5091           p_value =>p_date_projected_start) ;
5092 
5093   hr_transaction_api.set_varchar2_value (
5094           p_transaction_step_id =>l_transaction_step_id,
5095           p_person_id => l_creator_person_id ,
5096           p_name => 'p_time_projected_start' ,
5097           p_value =>p_time_projected_start ) ;
5098 
5099   hr_transaction_api.set_date_value (
5100           p_transaction_step_id =>l_transaction_step_id,
5101           p_person_id => l_creator_person_id ,
5102           p_name => 'p_date_projected_end' ,
5103           p_value =>p_date_projected_end) ;
5104 
5105   hr_transaction_api.set_varchar2_value (
5106           p_transaction_step_id =>l_transaction_step_id,
5107           p_person_id => l_creator_person_id ,
5108           p_name => 'p_time_projected_end' ,
5109           p_value =>p_time_projected_end ) ;
5110 
5111 
5112 
5113   hr_utility.set_location(l_proc, 90);
5114 
5115   hr_transaction_api.set_number_value (
5116         p_transaction_step_id =>l_transaction_step_id,
5117         p_person_id => l_creator_person_id ,
5118         p_name => 'p_absence_days' ,
5119         p_value =>l_absence_days ) ;
5120 
5121   hr_transaction_api.set_number_value (
5122         p_transaction_step_id =>l_transaction_step_id,
5123         p_person_id => l_creator_person_id ,
5124         p_name => 'p_absence_hours' ,
5125         p_value =>l_absence_hours ) ;
5126 
5127     hr_transaction_api.set_number_value (
5128         p_transaction_step_id =>l_transaction_step_id,
5129         p_person_id => l_creator_person_id ,
5130         p_name => 'p_replacement_person_id' ,
5131         p_value =>p_replacement_person_id ) ;
5132 
5133   hr_transaction_api.set_varchar2_value (
5134         p_transaction_step_id =>l_transaction_step_id,
5135         p_person_id => l_creator_person_id ,
5136         p_name => 'p_attribute_category' ,
5137         p_value =>p_attribute_category ) ;
5138 
5139   hr_transaction_api.set_varchar2_value (
5140         p_transaction_step_id =>l_transaction_step_id,
5141         p_person_id => l_creator_person_id ,
5142         p_name => 'p_attribute1' ,
5143         p_value =>p_attribute1 ) ;
5144 
5145   hr_transaction_api.set_varchar2_value (
5146         p_transaction_step_id =>l_transaction_step_id,
5147         p_person_id => l_creator_person_id ,
5148         p_name => 'p_attribute2' ,
5149         p_value =>p_attribute2 ) ;
5150 
5151   hr_transaction_api.set_varchar2_value (
5152         p_transaction_step_id =>l_transaction_step_id,
5153         p_person_id => l_creator_person_id ,
5154         p_name => 'p_attribute3' ,
5155         p_value =>p_attribute3 ) ;
5156 
5157   hr_transaction_api.set_varchar2_value (
5158         p_transaction_step_id =>l_transaction_step_id,
5159         p_person_id => l_creator_person_id ,
5160         p_name => 'p_attribute4' ,
5161         p_value =>p_attribute4 ) ;
5162 
5163   hr_transaction_api.set_varchar2_value (
5164         p_transaction_step_id =>l_transaction_step_id,
5165         p_person_id => l_creator_person_id ,
5166         p_name => 'p_attribute5' ,
5167         p_value =>p_attribute5 ) ;
5168 
5169   hr_transaction_api.set_varchar2_value (
5170         p_transaction_step_id =>l_transaction_step_id,
5171         p_person_id => l_creator_person_id ,
5172         p_name => 'p_attribute6' ,
5173         p_value =>p_attribute6 ) ;
5174 
5175   hr_transaction_api.set_varchar2_value (
5176         p_transaction_step_id =>l_transaction_step_id,
5177         p_person_id => l_creator_person_id ,
5178         p_name => 'p_attribute7' ,
5179         p_value =>p_attribute7 ) ;
5180 
5181   hr_transaction_api.set_varchar2_value (
5182         p_transaction_step_id =>l_transaction_step_id,
5183         p_person_id => l_creator_person_id ,
5184         p_name => 'p_attribute8' ,
5185         p_value =>p_attribute8 ) ;
5186 
5187   hr_transaction_api.set_varchar2_value (
5188         p_transaction_step_id =>l_transaction_step_id,
5189         p_person_id => l_creator_person_id ,
5190         p_name => 'p_attribute9' ,
5191         p_value =>p_attribute9 ) ;
5192 
5193   hr_transaction_api.set_varchar2_value (
5194         p_transaction_step_id =>l_transaction_step_id,
5195         p_person_id => l_creator_person_id ,
5196         p_name => 'p_attribute10' ,
5197         p_value =>p_attribute10 ) ;
5198 
5199   hr_transaction_api.set_varchar2_value (
5200         p_transaction_step_id =>l_transaction_step_id,
5201         p_person_id => l_creator_person_id ,
5202         p_name => 'p_attribute11' ,
5203         p_value =>p_attribute11 ) ;
5204 
5205   hr_transaction_api.set_varchar2_value (
5206         p_transaction_step_id =>l_transaction_step_id,
5207         p_person_id => l_creator_person_id ,
5208         p_name => 'p_attribute12' ,
5209         p_value =>p_attribute12 ) ;
5210 
5211   hr_transaction_api.set_varchar2_value (
5212         p_transaction_step_id =>l_transaction_step_id,
5213         p_person_id => l_creator_person_id ,
5214         p_name => 'p_attribute13' ,
5215         p_value =>p_attribute13 ) ;
5216 
5217   hr_transaction_api.set_varchar2_value (
5218         p_transaction_step_id =>l_transaction_step_id,
5219         p_person_id => l_creator_person_id ,
5220         p_name => 'p_attribute14' ,
5221         p_value =>p_attribute14 ) ;
5222 
5223   hr_transaction_api.set_varchar2_value (
5224         p_transaction_step_id =>l_transaction_step_id,
5225         p_person_id => l_creator_person_id ,
5226         p_name => 'p_attribute15' ,
5227         p_value =>p_attribute15 ) ;
5228 
5229   hr_transaction_api.set_varchar2_value (
5230         p_transaction_step_id =>l_transaction_step_id,
5231         p_person_id => l_creator_person_id ,
5232         p_name => 'p_attribute16' ,
5233         p_value =>p_attribute16 ) ;
5234 
5235   hr_transaction_api.set_varchar2_value (
5236         p_transaction_step_id =>l_transaction_step_id,
5237         p_person_id => l_creator_person_id ,
5238         p_name => 'p_attribute17' ,
5239         p_value =>p_attribute17 ) ;
5240 
5241   hr_transaction_api.set_varchar2_value (
5242         p_transaction_step_id =>l_transaction_step_id,
5243         p_person_id => l_creator_person_id ,
5244         p_name => 'p_attribute18' ,
5245         p_value =>p_attribute18 ) ;
5246 
5247   hr_transaction_api.set_varchar2_value (
5248         p_transaction_step_id =>l_transaction_step_id,
5249         p_person_id => l_creator_person_id ,
5250         p_name => 'p_attribute19' ,
5251         p_value =>p_attribute19 ) ;
5252 
5253   hr_transaction_api.set_varchar2_value (
5254         p_transaction_step_id =>l_transaction_step_id,
5255         p_person_id => l_creator_person_id ,
5256         p_name => 'p_attribute20' ,
5257         p_value =>p_attribute20 ) ;
5258 
5259   hr_transaction_api.set_varchar2_value (
5260         p_transaction_step_id =>l_transaction_step_id,
5261         p_person_id => l_creator_person_id ,
5262         p_name => 'p_abs_information_category' ,
5263         p_value =>p_abs_information_category ) ;
5264 
5265   hr_transaction_api.set_varchar2_value (
5266         p_transaction_step_id =>l_transaction_step_id,
5267         p_person_id => l_creator_person_id ,
5268         p_name => 'p_abs_information1' ,
5269         p_value =>p_abs_information1 ) ;
5270 
5271   hr_transaction_api.set_varchar2_value (
5272         p_transaction_step_id =>l_transaction_step_id,
5273         p_person_id => l_creator_person_id ,
5274         p_name => 'p_abs_information2' ,
5275         p_value =>p_abs_information2 ) ;
5276 
5277   hr_transaction_api.set_varchar2_value (
5278         p_transaction_step_id =>l_transaction_step_id,
5279         p_person_id => l_creator_person_id ,
5280         p_name => 'p_abs_information3' ,
5281         p_value =>p_abs_information3 ) ;
5282 
5283   hr_transaction_api.set_varchar2_value (
5284         p_transaction_step_id =>l_transaction_step_id,
5285         p_person_id => l_creator_person_id ,
5286         p_name => 'p_abs_information4' ,
5287         p_value =>p_abs_information4 ) ;
5288 
5289   hr_transaction_api.set_varchar2_value (
5290         p_transaction_step_id =>l_transaction_step_id,
5291         p_person_id => l_creator_person_id ,
5292         p_name => 'p_abs_information5' ,
5293         p_value =>p_abs_information5 ) ;
5294 
5295   hr_transaction_api.set_varchar2_value (
5296         p_transaction_step_id =>l_transaction_step_id,
5297         p_person_id => l_creator_person_id ,
5298         p_name => 'p_abs_information6' ,
5299         p_value =>p_abs_information6 ) ;
5300 
5301   hr_transaction_api.set_varchar2_value (
5302         p_transaction_step_id =>l_transaction_step_id,
5303         p_person_id => l_creator_person_id ,
5304         p_name => 'p_abs_information7' ,
5305         p_value =>p_abs_information7 ) ;
5306 
5307   hr_transaction_api.set_varchar2_value (
5308         p_transaction_step_id =>l_transaction_step_id,
5309         p_person_id => l_creator_person_id ,
5310         p_name => 'p_abs_information8' ,
5311         p_value =>p_abs_information8 ) ;
5312 
5313   hr_transaction_api.set_varchar2_value (
5314         p_transaction_step_id =>l_transaction_step_id,
5315         p_person_id => l_creator_person_id ,
5316         p_name => 'p_abs_information9' ,
5317         p_value =>p_abs_information9 ) ;
5318 
5319   hr_transaction_api.set_varchar2_value (
5320         p_transaction_step_id =>l_transaction_step_id,
5321         p_person_id => l_creator_person_id ,
5322         p_name => 'p_abs_information10' ,
5323         p_value =>p_abs_information10 ) ;
5324 
5325   hr_transaction_api.set_varchar2_value (
5326         p_transaction_step_id =>l_transaction_step_id,
5327         p_person_id => l_creator_person_id ,
5328         p_name => 'p_abs_information11' ,
5329         p_value =>p_abs_information11 ) ;
5330 
5331   hr_transaction_api.set_varchar2_value (
5332         p_transaction_step_id =>l_transaction_step_id,
5333         p_person_id => l_creator_person_id ,
5334         p_name => 'p_abs_information12' ,
5335         p_value =>p_abs_information12 ) ;
5336 
5337   hr_transaction_api.set_varchar2_value (
5338         p_transaction_step_id =>l_transaction_step_id,
5339         p_person_id => l_creator_person_id ,
5340         p_name => 'p_abs_information13' ,
5341         p_value =>p_abs_information13 ) ;
5342 
5343   hr_transaction_api.set_varchar2_value (
5344         p_transaction_step_id =>l_transaction_step_id,
5345         p_person_id => l_creator_person_id ,
5346         p_name => 'p_abs_information14' ,
5347         p_value =>p_abs_information14 ) ;
5348 
5349   hr_transaction_api.set_varchar2_value (
5350         p_transaction_step_id =>l_transaction_step_id,
5351         p_person_id => l_creator_person_id ,
5352         p_name => 'p_abs_information15' ,
5353         p_value =>p_abs_information15 ) ;
5354 
5355   hr_transaction_api.set_varchar2_value (
5356         p_transaction_step_id =>l_transaction_step_id,
5357         p_person_id => l_creator_person_id ,
5358         p_name => 'p_abs_information16' ,
5359         p_value =>p_abs_information16 ) ;
5360 
5361   hr_transaction_api.set_varchar2_value (
5362         p_transaction_step_id =>l_transaction_step_id,
5363         p_person_id => l_creator_person_id ,
5364         p_name => 'p_abs_information17' ,
5365         p_value =>p_abs_information17 ) ;
5366 
5367   hr_transaction_api.set_varchar2_value (
5368         p_transaction_step_id =>l_transaction_step_id,
5369         p_person_id => l_creator_person_id ,
5370         p_name => 'p_abs_information18' ,
5371         p_value =>p_abs_information18 ) ;
5372 
5373   hr_transaction_api.set_varchar2_value (
5374         p_transaction_step_id =>l_transaction_step_id,
5375         p_person_id => l_creator_person_id ,
5376         p_name => 'p_abs_information19' ,
5377         p_value =>p_abs_information19 ) ;
5378 
5379   hr_transaction_api.set_varchar2_value (
5380         p_transaction_step_id =>l_transaction_step_id,
5381         p_person_id => l_creator_person_id ,
5382         p_name => 'p_abs_information20' ,
5383         p_value =>p_abs_information20 ) ;
5384 
5385   hr_transaction_api.set_varchar2_value (
5386         p_transaction_step_id =>l_transaction_step_id,
5387         p_person_id => l_creator_person_id ,
5388         p_name => 'p_abs_information21' ,
5389         p_value =>p_abs_information21 ) ;
5390 
5391   hr_transaction_api.set_varchar2_value (
5392         p_transaction_step_id =>l_transaction_step_id,
5393         p_person_id => l_creator_person_id ,
5394         p_name => 'p_abs_information22' ,
5395         p_value =>p_abs_information22 ) ;
5396 
5397   hr_transaction_api.set_varchar2_value (
5398         p_transaction_step_id =>l_transaction_step_id,
5399         p_person_id => l_creator_person_id ,
5400         p_name => 'p_abs_information23' ,
5401         p_value =>p_abs_information23 ) ;
5402 
5403   hr_transaction_api.set_varchar2_value (
5404         p_transaction_step_id =>l_transaction_step_id,
5405         p_person_id => l_creator_person_id ,
5406         p_name => 'p_abs_information24' ,
5407         p_value =>p_abs_information24 ) ;
5408 
5409   hr_transaction_api.set_varchar2_value (
5410         p_transaction_step_id =>l_transaction_step_id,
5411         p_person_id => l_creator_person_id ,
5412         p_name => 'p_abs_information25' ,
5413         p_value =>p_abs_information25 ) ;
5414 
5415   hr_transaction_api.set_varchar2_value (
5416         p_transaction_step_id =>l_transaction_step_id,
5417         p_person_id => l_creator_person_id ,
5418         p_name => 'p_abs_information26' ,
5419         p_value =>p_abs_information26 ) ;
5420 
5421   hr_transaction_api.set_varchar2_value (
5422         p_transaction_step_id =>l_transaction_step_id,
5423         p_person_id => l_creator_person_id ,
5424         p_name => 'p_abs_information27' ,
5425         p_value =>p_abs_information27 ) ;
5426 
5427   hr_transaction_api.set_varchar2_value (
5428         p_transaction_step_id =>l_transaction_step_id,
5429         p_person_id => l_creator_person_id ,
5430         p_name => 'p_abs_information28' ,
5431         p_value =>p_abs_information28 ) ;
5432 
5433   hr_transaction_api.set_varchar2_value (
5434         p_transaction_step_id =>l_transaction_step_id,
5435         p_person_id => l_creator_person_id ,
5436         p_name => 'p_abs_information29' ,
5437         p_value =>p_abs_information29 ) ;
5438 
5439   hr_transaction_api.set_varchar2_value (
5440         p_transaction_step_id =>l_transaction_step_id,
5441         p_person_id => l_creator_person_id ,
5442         p_name => 'p_abs_information30' ,
5443         p_value =>p_abs_information30 ) ;
5444 
5445   hr_transaction_api.set_varchar2_value (
5446         p_transaction_step_id =>l_transaction_step_id,
5447         p_person_id => l_creator_person_id ,
5448         p_name => 'p_leave_status' ,
5449         p_value =>p_leave_status ) ;
5450 
5451   hr_transaction_api.set_varchar2_value (
5452         p_transaction_step_id =>l_transaction_step_id,
5453         p_person_id => l_creator_person_id ,
5454         p_name => 'p_comments' ,
5455         p_value =>p_comments ) ;
5456 
5457   hr_transaction_api.set_varchar2_value (
5458         p_transaction_step_id =>l_transaction_step_id,
5459         p_person_id => l_creator_person_id ,
5460         p_name => 'p_save_mode' ,
5461         p_value =>p_save_mode ) ;
5462 
5463   hr_transaction_api.set_number_value (
5464         p_transaction_step_id =>l_transaction_step_id,
5465         p_person_id => l_creator_person_id ,
5466         p_name => 'p_person_id' ,
5467         p_value =>p_person_id ) ;
5468 
5469   hr_transaction_api.set_number_value (
5470         p_transaction_step_id =>l_transaction_step_id,
5471         p_person_id => l_creator_person_id ,
5472         p_name => 'p_absence_attendance_type_id' ,
5473         p_value =>p_absence_attendance_type_id ) ;
5474 
5475   hr_transaction_api.set_number_value (
5476         p_transaction_step_id =>l_transaction_step_id,
5477         p_person_id => l_creator_person_id ,
5478         p_name => 'p_abs_attendance_reason_id' ,
5479         p_value =>p_abs_attendance_reason_id ) ;
5480 
5481 
5482   close csr_abs_attendances;
5483 
5484   hr_utility.set_location(l_proc, 100);
5485 
5486   p_absence_days := l_absence_days;
5487   p_absence_hours := l_absence_hours;
5488  --
5489  --
5490  -- hr_utility.set_location(' Leaving:' || l_proc,105);
5491 
5492     EXCEPTION
5493     WHEN hr_utility.hr_error then
5494          hr_message.provide_error;
5495          p_page_error := hr_message.last_message_app;
5496          p_page_error_msg := hr_message.get_message_text;
5497          p_page_error_num := hr_message.last_message_number;
5498 	 hr_utility.set_location(' Leaving:' || l_proc,555);
5499 
5500     WHEN g_data_error THEN
5501     hr_utility.trace( 'g_data_error in .process_update_save: ' || SQLERRM );
5502     hr_utility.set_location(' Leaving:' || l_proc,560);
5503 
5504       raise ;
5505     WHEN OTHERS THEN
5506       close csr_abs_attendances;
5507       hr_utility.trace( 'when others in .process_update_save: ' || SQLERRM );
5508       hr_utility.set_location(' Leaving:' || l_proc,565);
5509 
5510       raise ;
5511 
5512   END process_update_save;
5513 
5514  /*
5515   ||===========================================================================
5516   || PROCEDURE: process_update_txn_save
5517   ||---------------------------------------------------------------------------
5518   ||
5519   || Description:
5520   ||     This procedure will call actual API with validate mode
5521   ||     if there are no error, save date into transaction table
5522   ||     when updating transaction table for update absence
5523   ||
5524   || Access Status:
5525   ||     Public.
5526   ||
5527   ||===========================================================================
5528   */
5529    procedure process_update_txn_save(
5530    p_transaction_step_id           in     number
5531   ,p_login_person_id               in     number
5532   ,p_effective_date                in     date
5533   --2713296 changes start
5534   ,p_person_id                     in     number
5535   ,p_business_group_id             in     number
5536   ,p_absence_attendance_id         in     per_absence_attendances.absence_attendance_id%type
5537   ,p_object_version_number         in     number
5538   ,p_save_mode                     in     varchar2 default null
5539   --2713296 changes end
5540   ,p_absence_attendance_type_id    in     number   --2966372
5541   ,p_date_notification             in     date
5542   ,p_date_start			   in     date     default null
5543   ,p_time_start     	           in     varchar2 default null
5544   ,p_date_end			   in     date     default null
5545   ,p_time_end     	           in     varchar2 default null
5546   ,p_attribute_category            in     varchar2 default null
5547   ,p_attribute1                    in     varchar2 default null
5548   ,p_attribute2                    in     varchar2 default null
5549   ,p_attribute3                    in     varchar2 default null
5550   ,p_attribute4                    in     varchar2 default null
5551   ,p_attribute5                    in     varchar2 default null
5552   ,p_attribute6                    in     varchar2 default null
5553   ,p_attribute7                    in     varchar2 default null
5554   ,p_attribute8                    in     varchar2 default null
5555   ,p_attribute9                    in     varchar2 default null
5556   ,p_attribute10                   in     varchar2 default null
5557   ,p_attribute11                   in     varchar2 default null
5558   ,p_attribute12                   in     varchar2 default null
5559   ,p_attribute13                   in     varchar2 default null
5560   ,p_attribute14                   in     varchar2 default null
5561   ,p_attribute15                   in     varchar2 default null
5562   ,p_attribute16                   in     varchar2 default null
5563   ,p_attribute17                   in     varchar2 default null
5564   ,p_attribute18                   in     varchar2 default null
5565   ,p_attribute19                   in     varchar2 default null
5566   ,p_attribute20                   in     varchar2 default null
5567   ,p_abs_information_category      in     varchar2 default null
5568   ,p_abs_information1              in     varchar2 default null
5569   ,p_abs_information2              in     varchar2 default null
5570   ,p_abs_information3              in     varchar2 default null
5571   ,p_abs_information4              in     varchar2 default null
5572   ,p_abs_information5              in     varchar2 default null
5573   ,p_abs_information6              in     varchar2 default null
5574   ,p_abs_information7              in     varchar2 default null
5575   ,p_abs_information8              in     varchar2 default null
5576   ,p_abs_information9              in     varchar2 default null
5577   ,p_abs_information10             in     varchar2 default null
5578   ,p_abs_information11             in     varchar2 default null
5579   ,p_abs_information12             in     varchar2 default null
5580   ,p_abs_information13             in     varchar2 default null
5581   ,p_abs_information14             in     varchar2 default null
5582   ,p_abs_information15             in     varchar2 default null
5583   ,p_abs_information16             in     varchar2 default null
5584   ,p_abs_information17             in     varchar2 default null
5585   ,p_abs_information18             in     varchar2 default null
5586   ,p_abs_information19             in     varchar2 default null
5587   ,p_abs_information20             in     varchar2 default null
5588   ,p_abs_information21             in     varchar2 default null
5589   ,p_abs_information22             in     varchar2 default null
5590   ,p_abs_information23             in     varchar2 default null
5591   ,p_abs_information24             in     varchar2 default null
5592   ,p_abs_information25             in     varchar2 default null
5593   ,p_abs_information26             in     varchar2 default null
5594   ,p_abs_information27             in     varchar2 default null
5595   ,p_abs_information28             in     varchar2 default null
5596   ,p_abs_information29             in     varchar2 default null
5597   ,p_abs_information30             in     varchar2 default null
5598   ,p_leave_status                  in     varchar2 default null
5599   ,p_comments                      in     varchar2 default null
5600   ,p_absence_days                  in out nocopy number
5601   ,p_absence_hours                 in out nocopy number
5602   ,p_replacement_person_id         in     number   default null
5603   ,p_date_projected_start	   in     date     default null
5604   ,p_time_projected_start          in     varchar2 default null
5605   ,p_date_projected_end	           in     date     default null
5606   ,p_time_projected_end            in     varchar2 default null
5607   --2713296 changes start
5608   ,p_return_on_warning             in      varchar2 default null
5609   ,p_dur_dys_less_warning          out nocopy    number
5610   ,p_dur_hrs_less_warning          out nocopy    number
5611   ,p_exceeds_pto_entit_warning     out nocopy    number
5612   ,p_exceeds_run_total_warning     out nocopy    number
5613   ,p_abs_overlap_warning           out nocopy    number
5614   ,p_abs_day_after_warning         out nocopy    number
5615   ,p_dur_overwritten_warning       out nocopy    number
5616   ,p_page_error                    out nocopy    varchar2
5617   ,p_page_error_msg                out nocopy    varchar2
5618   ,p_page_error_num                out nocopy    varchar2
5619   --2713296 changes end
5620   ) IS
5621 
5622    l_proc                   varchar2(72) := g_package||'process_updae_txn_save';
5623    l_creator_person_id      per_all_people_f.person_id%TYPE;
5624    l_absence_rec            per_absence_attendances%rowtype;
5625    l_absence_days           per_absence_attendances.absence_days%TYPE;
5626    l_absence_hours          per_absence_attendances.absence_hours%TYPE;
5627    l_validate               boolean ;
5628    l_transaction_id	    number;
5629    l_transaction_step_id    number;
5630    l_login_person_id 	    number;
5631 
5632    --2713296 changes start
5633    l_object_version_number    number;
5634    l_authorising_person_id    number;
5635    l_replacement_person_id    number;
5636    lb_abs_day_after_warning    BOOLEAN;
5637    lb_abs_overlap_warning      BOOLEAN;
5638    lb_dur_dys_less_warning      BOOLEAN;
5639    lb_dur_hrs_less_warning      BOOLEAN;
5640    lb_exceeds_pto_entit_warning BOOLEAN;
5641    lb_exceeds_run_total_warning BOOLEAN;
5642    lb_dur_overwritten_warning   BOOLEAN;
5643    lb_del_element_entry_warning BOOLEAN;
5644 
5645    --2966372 changes start
5646    l_populate_sickness_dates boolean := false;
5647    l_sickness_start_date date := null;
5648    l_sickness_end_date date := null;
5649    --2966372 changes end
5650 
5651    -- Do not consider current transaction records while checking for overlap
5652    -- Absence timings are to be considered for checking overlap.
5653 
5654    l_exists            varchar2(1) ;
5655 
5656           CURSOR c_abs_overlap(p_person_id          IN NUMBER
5657                                  ,p_business_group_id IN NUMBER
5658                                  ,p_date_start         IN DATE
5659                                  ,p_date_end           IN DATE
5660                                  ,p_transaction_step_id IN varchar2
5661                                  ,p_time_start          IN VARCHAR2
5662                                  ,p_time_end            IN VARCHAR2
5663              ) IS
5664 
5665        SELECT null
5666            FROM  hr_api_transaction_values tv
5667                 ,hr_api_transaction_steps  ts
5668                 ,hr_api_transaction_values tv1
5669                 ,hr_api_transaction_values tv2
5670                 ,hr_api_transaction_values tv3
5671                 ,hr_api_transaction_values tv4
5672                 ,hr_api_transaction_values tv5
5673                 ,hr_api_transaction_values tv6
5674                 ,hr_api_transactions hat -- Fix 3191531
5675            WHERE
5676                 ts.api_name = 'HR_LOA_SS.PROCESS_API'
5677             and ts.UPDATE_PERSON_ID = p_person_id
5678             and p_date_start IS NOT NULL
5679             and p_date_end IS NOT NULL
5680             and ts.transaction_step_id = tv.transaction_step_id
5681             and tv.name = 'P_PERSON_ID'
5682             and tv.number_value = p_person_id
5683             and ts.transaction_step_id = tv1.transaction_step_id
5684             and tv1.name = 'P_BUSINESS_GROUP_ID'
5685             and tv1.number_value = p_business_group_id
5686             and ts.transaction_step_id = tv2.transaction_step_id
5687             and ts.transaction_id=hat.transaction_id
5688             and hat.status  in ('Y','C') -- Fix 3191531 and 3205669
5689             and ts.transaction_step_id = tv3.transaction_step_id
5690             and tv3.name = 'P_DATE_START'
5691             and ts.transaction_step_id = tv4.transaction_step_id
5692             and tv4.name = 'P_DATE_END'
5693             and ts.transaction_step_id = tv5.transaction_step_id
5694             and ts.transaction_step_id = tv6.transaction_step_id
5695             and tv5.name = 'P_TIME_START'
5696             and tv5.name = 'P_TIME_END'
5697             and tv3.date_value is NOT NULL
5698             and tv4.date_value is NOT NULL
5699 and (
5700 	                  (
5701 	                 to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt)  ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
5702 	                  BETWEEN to_date (to_char(p_date_start, g_usr_date_fmt)||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
5703 	                  AND to_date(to_char(p_date_end, g_usr_date_fmt) || ' '|| nvl(p_time_end,'00:00') , g_usr_day_time_fmt)
5704 	                   )
5705 	                  or
5706 	                  (
5707 	                  to_date (to_char(p_date_start, g_usr_date_fmt) ||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
5708 	                   BETWEEN
5709 	                   to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
5710 	                  AND
5711 	                  to_date( to_char(nvl(tv4.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv6.varchar2_value,'00:00'),g_usr_day_time_fmt)
5712 	                   )
5713 
5714           )
5715        and ts.transaction_step_id <>p_transaction_step_id ;
5716 
5717    --2713296 changes end
5718 
5719 
5720 
5721 
5722 BEGIN
5723 
5724  --
5725  -- Update Transaction Table
5726  --
5727    hr_utility.set_location(' Entering:' || l_proc,5);
5728 
5729    l_creator_person_id := p_login_person_id;
5730    l_transaction_step_id := p_transaction_step_id;
5731 
5732    --2713296 changes start
5733    l_object_version_number := p_object_version_number;
5734    l_validate := TRUE;
5735    --2713296 changes end
5736 
5737    if p_absence_days = -1 then
5738       l_absence_days := null;
5739    else
5740       l_absence_days := p_absence_days;
5741    end if;
5742    if p_absence_hours = -1 then
5743       l_absence_hours := null;
5744    else
5745       l_absence_hours := p_absence_hours;
5746    end if;
5747 
5748    --2966372 changes start
5749    l_populate_sickness_dates := is_gb_leg_and_category_s(p_absence_attendance_type_id , p_business_group_id);
5750 
5751    IF l_populate_sickness_dates THEN
5752       l_sickness_start_date := p_date_start;
5753       l_sickness_end_date := p_date_end;
5754    END IF;
5755    --2966372 changes end
5756 
5757    --2713296 changes start
5758    --
5759    -- Support Save For Later
5760    --
5761    -- p_absence_attendance_id and p_object_version_number will be 0
5762    -- when transaction corresponds to Return for correction.
5763   if p_save_mode <> 'SaveForLater'
5764      and p_absence_attendance_id <> 0 --2824349
5765   then
5766 
5767    hr_utility.set_location(l_proc, 20);
5768    hr_person_absence_api.update_person_absence(
5769           p_validate                   => l_validate
5770            ,p_effective_date             => p_effective_date
5771    --        ,p_business_group_id          => l_absence_rec.business_group_id
5772            ,p_absence_attendance_id      => p_absence_attendance_id
5773            ,p_date_notification          => p_date_notification
5774            ,p_date_start                 => p_date_start
5775            ,p_time_start                 => p_time_start
5776            ,p_date_end                   => p_date_end
5777            ,p_time_end                   => p_time_end
5778            ,p_absence_days               => l_absence_days
5779            ,p_absence_hours              => l_absence_hours
5780            ,p_replacement_person_id      => p_replacement_person_id
5781            ,p_object_version_number      => l_object_version_number
5782            ,p_attribute_category            => p_attribute_category
5783            ,p_attribute1                    => p_attribute1
5784            ,p_attribute2                    => p_attribute2
5785            ,p_attribute3                    => p_attribute3
5786            ,p_attribute4                    => p_attribute4
5787            ,p_attribute5                    => p_attribute5
5788            ,p_attribute6                    => p_attribute6
5789            ,p_attribute7                    => p_attribute7
5790            ,p_attribute8                    => p_attribute8
5791            ,p_attribute9                    => p_attribute9
5792            ,p_attribute10                   => p_attribute10
5793            ,p_attribute11                   => p_attribute11
5794            ,p_attribute12                   => p_attribute12
5795            ,p_attribute13                   => p_attribute13
5796            ,p_attribute14                   => p_attribute14
5797            ,p_attribute15                   => p_attribute15
5798            ,p_attribute16                   => p_attribute16
5799            ,p_attribute17                   => p_attribute17
5800            ,p_attribute18                   => p_attribute18
5801            ,p_attribute19                   => p_attribute19
5802            ,p_attribute20                   => p_attribute20
5803            ,p_abs_information_category            => p_abs_information_category
5804            ,p_abs_information1                    => p_abs_information1
5805            ,p_abs_information2                    => p_abs_information2
5806            ,p_abs_information3                    => p_abs_information3
5807            ,p_abs_information4                    => p_abs_information4
5808            ,p_abs_information5                    => p_abs_information5
5809            ,p_abs_information6                    => p_abs_information6
5810            ,p_abs_information7                    => p_abs_information7
5811            ,p_abs_information8                    => p_abs_information8
5812            ,p_abs_information9                    => p_abs_information9
5813            ,p_abs_information10                   => p_abs_information10
5814            ,p_abs_information11                   => p_abs_information11
5815            ,p_abs_information12                   => p_abs_information12
5816            ,p_abs_information13                   => p_abs_information13
5817            ,p_abs_information14                   => p_abs_information14
5818            ,p_abs_information15                   => p_abs_information15
5819            ,p_abs_information16                   => p_abs_information16
5820            ,p_abs_information17                   => p_abs_information17
5821            ,p_abs_information18                   => p_abs_information18
5822            ,p_abs_information19                   => p_abs_information19
5823            ,p_abs_information20                   => p_abs_information20
5824            ,p_abs_information21                   => p_abs_information21
5825            ,p_abs_information22                   => p_abs_information22
5826            ,p_abs_information23                   => p_abs_information23
5827            ,p_abs_information24                   => p_abs_information24
5828            ,p_abs_information25                   => p_abs_information25
5829            ,p_abs_information26                   => p_abs_information26
5830            ,p_abs_information27                   => p_abs_information27
5831            ,p_abs_information28                   => p_abs_information28
5832            ,p_abs_information29                   => p_abs_information29
5833            ,p_abs_information30                   => p_abs_information30
5834            ,p_sickness_start_date        => l_sickness_start_date --2966372
5835            ,p_sickness_end_date          => l_sickness_end_date --2966372
5836            ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
5837            ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
5838            ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
5839            ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
5840            ,p_abs_overlap_warning        => lb_abs_overlap_warning
5841            ,p_abs_day_after_warning      => lb_abs_day_after_warning
5842            ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
5843            ,p_del_element_entry_warning  => lb_del_element_entry_warning
5844       );
5845 
5846    p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
5847    p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
5848    p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
5849    p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
5850    p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
5851    p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
5852    p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
5853 
5854    if (lb_abs_day_after_warning OR
5855        lb_abs_overlap_warning   OR
5856        lb_exceeds_pto_entit_warning OR   --2848345
5857        lb_dur_dys_less_warning  OR       --2765646
5858        lb_dur_hrs_less_warning  OR       --2765646
5859        lb_exceeds_run_total_warning) AND --2797220
5860        p_return_on_warning = 'true' then  --2713296
5861      hr_utility.set_location(l_proc, 30);
5862      return;
5863    else
5864    -- Replaced call to chk_overlap function because we should check for overlapping
5865    -- in all but current transaction step id records of hr_api_transaction_values.
5866 
5867    -- Need to check for null otherwise, we may get invalid month error
5868      IF p_date_start IS NOT NULL AND p_date_end IS NOT NULL AND
5869        p_time_start IS NOT NULL and p_time_end IS NOT NULL AND p_transaction_step_id IS NOT NULL
5870      THEN
5871 
5872        open  c_abs_overlap(p_person_id,p_business_group_id,p_date_start,p_date_end,p_transaction_step_id,p_time_start,p_time_end);
5873 
5874        fetch c_abs_overlap into l_exists;
5875 
5876        if c_abs_overlap%found then
5877 
5878          lb_abs_overlap_warning := TRUE;
5879        else
5880          lb_abs_overlap_warning := FALSE;
5881        end if;
5882 
5883      END IF;     --Dates Not Null
5884 
5885      if lb_abs_overlap_warning and p_return_on_warning = 'true' then  --2713296
5886         hr_utility.set_location(l_proc, 40);
5887         p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
5888         return;
5889      end if;
5890 
5891    end if;	--WARNING CHECK
5892 
5893   end if; -- Support Save For Later
5894 
5895   --2713296 changes end
5896 
5897   --
5898   -- Update Transaction
5899   --
5900 
5901 
5902    hr_transaction_api.set_date_value (
5903         p_transaction_step_id =>l_transaction_step_id,
5904         p_person_id => l_creator_person_id ,
5905         p_name => 'p_effective_date' ,
5906         p_value =>p_effective_date ) ;
5907 
5908    hr_transaction_api.set_date_value (
5909         p_transaction_step_id =>l_transaction_step_id,
5910         p_person_id => l_creator_person_id ,
5911         p_name => 'p_date_notification' ,
5912         p_value =>p_date_notification) ;
5913 
5914    hr_transaction_api.set_date_value (
5915           p_transaction_step_id =>l_transaction_step_id,
5916           p_person_id => l_creator_person_id ,
5917           p_name => 'p_date_start' ,
5918           p_value =>p_date_start) ;
5919 
5920    hr_transaction_api.set_varchar2_value (
5921           p_transaction_step_id =>l_transaction_step_id,
5922           p_person_id => l_creator_person_id ,
5923           p_name => 'p_time_start' ,
5924           p_value =>p_time_start ) ;
5925 
5926    hr_transaction_api.set_date_value (
5927           p_transaction_step_id =>l_transaction_step_id,
5928           p_person_id => l_creator_person_id ,
5929           p_name => 'p_date_end' ,
5930           p_value =>p_date_end) ;
5931 
5932    hr_transaction_api.set_varchar2_value (
5933           p_transaction_step_id =>l_transaction_step_id,
5934           p_person_id => l_creator_person_id ,
5935           p_name => 'p_time_end' ,
5936           p_value =>p_time_end ) ;
5937 
5938    hr_transaction_api.set_varchar2_value (
5939         p_transaction_step_id =>l_transaction_step_id,
5940         p_person_id => l_creator_person_id ,
5941         p_name => 'p_attribute_category' ,
5942         p_value =>p_attribute_category ) ;
5943 
5944    hr_transaction_api.set_varchar2_value (
5945         p_transaction_step_id =>l_transaction_step_id,
5946         p_person_id => l_creator_person_id ,
5947         p_name => 'p_attribute1' ,
5948         p_value =>p_attribute1 ) ;
5949 
5950    hr_transaction_api.set_varchar2_value (
5951         p_transaction_step_id =>l_transaction_step_id,
5952         p_person_id => l_creator_person_id ,
5953         p_name => 'p_attribute2' ,
5954         p_value =>p_attribute2 ) ;
5955 
5956 
5957    hr_transaction_api.set_varchar2_value (
5958         p_transaction_step_id =>l_transaction_step_id,
5959         p_person_id => l_creator_person_id ,
5960         p_name => 'p_attribute3' ,
5961         p_value =>p_attribute3 ) ;
5962 
5963    hr_transaction_api.set_varchar2_value (
5964         p_transaction_step_id =>l_transaction_step_id,
5965         p_person_id => l_creator_person_id ,
5966         p_name => 'p_attribute4' ,
5967         p_value =>p_attribute4 ) ;
5968 
5969    hr_transaction_api.set_varchar2_value (
5970         p_transaction_step_id =>l_transaction_step_id,
5971         p_person_id => l_creator_person_id ,
5972         p_name => 'p_attribute5' ,
5973         p_value =>p_attribute5 ) ;
5974 
5975    hr_transaction_api.set_varchar2_value (
5976         p_transaction_step_id =>l_transaction_step_id,
5977         p_person_id => l_creator_person_id ,
5978         p_name => 'p_attribute6' ,
5979         p_value =>p_attribute6 ) ;
5980 
5981    hr_transaction_api.set_varchar2_value (
5982         p_transaction_step_id =>l_transaction_step_id,
5983         p_person_id => l_creator_person_id ,
5984         p_name => 'p_attribute7' ,
5985         p_value =>p_attribute7 ) ;
5986 
5987    hr_transaction_api.set_varchar2_value (
5988         p_transaction_step_id =>l_transaction_step_id,
5989         p_person_id => l_creator_person_id ,
5990         p_name => 'p_attribute8' ,
5991         p_value =>p_attribute8 ) ;
5992 
5993    hr_transaction_api.set_varchar2_value (
5994         p_transaction_step_id =>l_transaction_step_id,
5995         p_person_id => l_creator_person_id ,
5996         p_name => 'p_attribute9' ,
5997         p_value =>p_attribute9 ) ;
5998 
5999    hr_transaction_api.set_varchar2_value (
6000         p_transaction_step_id =>l_transaction_step_id,
6001         p_person_id => l_creator_person_id ,
6002         p_name => 'p_attribute10' ,
6003         p_value =>p_attribute10 ) ;
6004 
6005    hr_transaction_api.set_varchar2_value (
6006         p_transaction_step_id =>l_transaction_step_id,
6007         p_person_id => l_creator_person_id ,
6008         p_name => 'p_attribute11' ,
6009         p_value =>p_attribute11 ) ;
6010 
6011    hr_transaction_api.set_varchar2_value (
6012         p_transaction_step_id =>l_transaction_step_id,
6013         p_person_id => l_creator_person_id ,
6014         p_name => 'p_attribute12' ,
6015         p_value =>p_attribute12 ) ;
6016 
6017    hr_transaction_api.set_varchar2_value (
6018         p_transaction_step_id =>l_transaction_step_id,
6019         p_person_id => l_creator_person_id ,
6020         p_name => 'p_attribute13' ,
6021         p_value =>p_attribute13 ) ;
6022 
6023    hr_transaction_api.set_varchar2_value (
6024         p_transaction_step_id =>l_transaction_step_id,
6025         p_person_id => l_creator_person_id ,
6026         p_name => 'p_attribute14' ,
6027         p_value =>p_attribute14 ) ;
6028 
6029    hr_transaction_api.set_varchar2_value (
6030         p_transaction_step_id =>l_transaction_step_id,
6031         p_person_id => l_creator_person_id ,
6032         p_name => 'p_attribute15' ,
6033         p_value =>p_attribute15 ) ;
6034 
6035    hr_transaction_api.set_varchar2_value (
6036         p_transaction_step_id =>l_transaction_step_id,
6037         p_person_id => l_creator_person_id ,
6038         p_name => 'p_attribute16' ,
6039         p_value =>p_attribute16 ) ;
6040 
6041    hr_transaction_api.set_varchar2_value (
6042         p_transaction_step_id =>l_transaction_step_id,
6043         p_person_id => l_creator_person_id ,
6044         p_name => 'p_attribute17' ,
6045         p_value =>p_attribute17 ) ;
6046 
6047    hr_transaction_api.set_varchar2_value (
6048         p_transaction_step_id =>l_transaction_step_id,
6049         p_person_id => l_creator_person_id ,
6050         p_name => 'p_attribute18' ,
6051         p_value =>p_attribute18 ) ;
6052 
6053    hr_transaction_api.set_varchar2_value (
6054         p_transaction_step_id =>l_transaction_step_id,
6055         p_person_id => l_creator_person_id ,
6056         p_name => 'p_attribute19' ,
6057         p_value =>p_attribute19 ) ;
6058 
6059    hr_transaction_api.set_varchar2_value (
6060         p_transaction_step_id =>l_transaction_step_id,
6061         p_person_id => l_creator_person_id ,
6062         p_name => 'p_attribute20' ,
6063         p_value =>p_attribute20 ) ;
6064 
6065    hr_transaction_api.set_varchar2_value (
6066         p_transaction_step_id =>l_transaction_step_id,
6067         p_person_id => l_creator_person_id ,
6068         p_name => 'p_abs_information_category' ,
6069         p_value =>p_abs_information_category ) ;
6070 
6071    hr_transaction_api.set_varchar2_value (
6072         p_transaction_step_id =>l_transaction_step_id,
6073         p_person_id => l_creator_person_id ,
6074         p_name => 'p_abs_information1' ,
6075         p_value =>p_abs_information1 ) ;
6076 
6077    hr_transaction_api.set_varchar2_value (
6078         p_transaction_step_id =>l_transaction_step_id,
6079         p_person_id => l_creator_person_id ,
6080         p_name => 'p_abs_information2' ,
6081         p_value =>p_abs_information2 ) ;
6082 
6083    hr_transaction_api.set_varchar2_value (
6084         p_transaction_step_id =>l_transaction_step_id,
6085         p_person_id => l_creator_person_id ,
6086         p_name => 'p_abs_information3' ,
6087         p_value =>p_abs_information3 ) ;
6088 
6089    hr_transaction_api.set_varchar2_value (
6090         p_transaction_step_id =>l_transaction_step_id,
6091         p_person_id => l_creator_person_id ,
6092         p_name => 'p_abs_information4' ,
6093         p_value =>p_abs_information4 ) ;
6094 
6095    hr_transaction_api.set_varchar2_value (
6096         p_transaction_step_id =>l_transaction_step_id,
6097         p_person_id => l_creator_person_id ,
6098         p_name => 'p_abs_information5' ,
6099         p_value =>p_abs_information5 ) ;
6100 
6101    hr_transaction_api.set_varchar2_value (
6102         p_transaction_step_id =>l_transaction_step_id,
6103         p_person_id => l_creator_person_id ,
6104         p_name => 'p_abs_information6' ,
6105         p_value =>p_abs_information6 ) ;
6106 
6107    hr_transaction_api.set_varchar2_value (
6108         p_transaction_step_id =>l_transaction_step_id,
6109         p_person_id => l_creator_person_id ,
6110         p_name => 'p_abs_information7' ,
6111         p_value =>p_abs_information7 ) ;
6112 
6113    hr_transaction_api.set_varchar2_value (
6114         p_transaction_step_id =>l_transaction_step_id,
6115         p_person_id => l_creator_person_id ,
6116         p_name => 'p_abs_information8' ,
6117         p_value =>p_abs_information8 ) ;
6118 
6119    hr_transaction_api.set_varchar2_value (
6120         p_transaction_step_id =>l_transaction_step_id,
6121         p_person_id => l_creator_person_id ,
6122         p_name => 'p_abs_information9' ,
6123         p_value =>p_abs_information9 ) ;
6124 
6125    hr_transaction_api.set_varchar2_value (
6126         p_transaction_step_id =>l_transaction_step_id,
6127         p_person_id => l_creator_person_id ,
6128         p_name => 'p_abs_information10' ,
6129         p_value =>p_abs_information10 ) ;
6130 
6131    hr_transaction_api.set_varchar2_value (
6132         p_transaction_step_id =>l_transaction_step_id,
6133         p_person_id => l_creator_person_id ,
6134         p_name => 'p_abs_information11' ,
6135         p_value =>p_abs_information11 ) ;
6136 
6137    hr_transaction_api.set_varchar2_value (
6138         p_transaction_step_id =>l_transaction_step_id,
6139         p_person_id => l_creator_person_id ,
6140         p_name => 'p_abs_information12' ,
6141         p_value =>p_abs_information12 ) ;
6142 
6143    hr_transaction_api.set_varchar2_value (
6144         p_transaction_step_id =>l_transaction_step_id,
6145         p_person_id => l_creator_person_id ,
6146         p_name => 'p_abs_information13' ,
6147         p_value =>p_abs_information13 ) ;
6148 
6149    hr_transaction_api.set_varchar2_value (
6150         p_transaction_step_id =>l_transaction_step_id,
6151         p_person_id => l_creator_person_id ,
6152         p_name => 'p_abs_information14' ,
6153         p_value =>p_abs_information14 ) ;
6154 
6155    hr_transaction_api.set_varchar2_value (
6156         p_transaction_step_id =>l_transaction_step_id,
6157         p_person_id => l_creator_person_id ,
6158         p_name => 'p_abs_information15' ,
6159         p_value =>p_abs_information15 ) ;
6160 
6161    hr_transaction_api.set_varchar2_value (
6162         p_transaction_step_id =>l_transaction_step_id,
6163         p_person_id => l_creator_person_id ,
6164         p_name => 'p_abs_information16' ,
6165         p_value =>p_abs_information16 ) ;
6166 
6167    hr_transaction_api.set_varchar2_value (
6168         p_transaction_step_id =>l_transaction_step_id,
6169         p_person_id => l_creator_person_id ,
6170         p_name => 'p_abs_information17' ,
6171         p_value =>p_abs_information17 ) ;
6172 
6173    hr_transaction_api.set_varchar2_value (
6174         p_transaction_step_id =>l_transaction_step_id,
6175         p_person_id => l_creator_person_id ,
6176         p_name => 'p_abs_information18' ,
6177         p_value =>p_abs_information18 ) ;
6178 
6179    hr_transaction_api.set_varchar2_value (
6180         p_transaction_step_id =>l_transaction_step_id,
6181         p_person_id => l_creator_person_id ,
6182         p_name => 'p_abs_information19' ,
6183         p_value =>p_abs_information19 ) ;
6184 
6185    hr_transaction_api.set_varchar2_value (
6186         p_transaction_step_id =>l_transaction_step_id,
6187         p_person_id => l_creator_person_id ,
6188         p_name => 'p_abs_information20' ,
6189         p_value =>p_abs_information20 ) ;
6190 
6191    hr_transaction_api.set_varchar2_value (
6192         p_transaction_step_id =>l_transaction_step_id,
6193         p_person_id => l_creator_person_id ,
6194         p_name => 'p_abs_information21' ,
6195         p_value =>p_abs_information21 ) ;
6196 
6197    hr_transaction_api.set_varchar2_value (
6198         p_transaction_step_id =>l_transaction_step_id,
6199         p_person_id => l_creator_person_id ,
6200         p_name => 'p_abs_information22' ,
6201         p_value =>p_abs_information22 ) ;
6202 
6203    hr_transaction_api.set_varchar2_value (
6204         p_transaction_step_id =>l_transaction_step_id,
6205         p_person_id => l_creator_person_id ,
6206         p_name => 'p_abs_information23' ,
6207         p_value =>p_abs_information23 ) ;
6208 
6209    hr_transaction_api.set_varchar2_value (
6210         p_transaction_step_id =>l_transaction_step_id,
6211         p_person_id => l_creator_person_id ,
6212         p_name => 'p_abs_information24' ,
6213         p_value =>p_abs_information24 ) ;
6214 
6215    hr_transaction_api.set_varchar2_value (
6216         p_transaction_step_id =>l_transaction_step_id,
6217         p_person_id => l_creator_person_id ,
6218         p_name => 'p_abs_information25' ,
6219         p_value =>p_abs_information25 ) ;
6220 
6221    hr_transaction_api.set_varchar2_value (
6222         p_transaction_step_id =>l_transaction_step_id,
6223         p_person_id => l_creator_person_id ,
6224         p_name => 'p_abs_information26' ,
6225         p_value =>p_abs_information26 ) ;
6226 
6227    hr_transaction_api.set_varchar2_value (
6228         p_transaction_step_id =>l_transaction_step_id,
6229         p_person_id => l_creator_person_id ,
6230         p_name => 'p_abs_information27' ,
6231         p_value =>p_abs_information27 ) ;
6232 
6233    hr_transaction_api.set_varchar2_value (
6234         p_transaction_step_id =>l_transaction_step_id,
6235         p_person_id => l_creator_person_id ,
6236         p_name => 'p_abs_information28' ,
6237         p_value =>p_abs_information28 ) ;
6238 
6239    hr_transaction_api.set_varchar2_value (
6240         p_transaction_step_id =>l_transaction_step_id,
6241         p_person_id => l_creator_person_id ,
6242         p_name => 'p_abs_information29' ,
6243         p_value =>p_abs_information29 ) ;
6244 
6245    hr_transaction_api.set_varchar2_value (
6246         p_transaction_step_id =>l_transaction_step_id,
6247         p_person_id => l_creator_person_id ,
6248         p_name => 'p_abs_information30' ,
6249         p_value =>p_abs_information30 ) ;
6250 
6251    hr_transaction_api.set_varchar2_value (
6252         p_transaction_step_id =>l_transaction_step_id,
6253         p_person_id => l_creator_person_id ,
6254         p_name => 'p_leave_status' ,
6255         p_value =>p_leave_status ) ;
6256 
6257    hr_transaction_api.set_varchar2_value (
6258         p_transaction_step_id =>l_transaction_step_id,
6259         p_person_id => l_creator_person_id ,
6260         p_name => 'p_comments' ,
6261         p_value =>p_comments ) ;
6262 
6263    hr_transaction_api.set_number_value (
6264         p_transaction_step_id =>l_transaction_step_id,
6265         p_person_id => l_creator_person_id ,
6266         p_name => 'p_absence_days' ,
6267         p_value =>l_absence_days ) ;
6268 
6269    hr_transaction_api.set_number_value (
6270         p_transaction_step_id =>l_transaction_step_id,
6271         p_person_id => l_creator_person_id ,
6272         p_name => 'p_absence_hours' ,
6273         p_value =>l_absence_hours ) ;
6274 
6275    hr_transaction_api.set_number_value (
6276         p_transaction_step_id =>l_transaction_step_id,
6277         p_person_id => l_creator_person_id ,
6278         p_name => 'p_replacement_person_id' ,
6279         p_value =>p_replacement_person_id ) ;
6280 
6281    hr_transaction_api.set_date_value (
6282           p_transaction_step_id =>l_transaction_step_id,
6283           p_person_id => l_creator_person_id ,
6284           p_name => 'p_date_projected_start' ,
6285           p_value =>p_date_projected_start) ;
6286 
6287    hr_transaction_api.set_varchar2_value (
6288           p_transaction_step_id =>l_transaction_step_id,
6289           p_person_id => l_creator_person_id ,
6290           p_name => 'p_time_projected_start' ,
6291           p_value =>p_time_projected_start ) ;
6292 
6293    hr_transaction_api.set_date_value (
6294           p_transaction_step_id =>l_transaction_step_id,
6295           p_person_id => l_creator_person_id ,
6296           p_name => 'p_date_projected_end' ,
6297           p_value =>p_date_projected_end) ;
6298 
6299    hr_transaction_api.set_varchar2_value (
6300           p_transaction_step_id =>l_transaction_step_id,
6301           p_person_id => l_creator_person_id ,
6302           p_name => 'p_time_projected_end' ,
6303           p_value =>p_time_projected_end ) ;
6304 
6305  --
6306  --
6307  hr_utility.set_location(' Leaving:' || l_proc,45);
6308 
6309  --
6310     EXCEPTION
6311 
6312     --4064949
6313     WHEN hr_utility.hr_error then
6314          hr_message.provide_error;
6315          p_page_error := hr_message.last_message_app;
6316          p_page_error_msg := hr_message.get_message_text;
6317          p_page_error_num := hr_message.last_message_number;
6318          hr_utility.set_location(' Leaving:' || l_proc,500);
6319 
6320     WHEN g_data_error THEN
6321     hr_utility.trace('g_data_error exception in .process_update_txn_save: ' || SQLERRM );
6322     hr_utility.set_location(' Leaving:' || l_proc,555);
6323 
6324       raise ;
6325     WHEN OTHERS THEN
6326     hr_utility.trace(' when others exception in .process_update_txn_save: ' || SQLERRM );
6327     hr_utility.set_location(' Leaving:' || l_proc,560);
6328 
6329       raise ;
6330 
6331   END process_update_txn_save;
6332 
6333 
6334 
6335 --kcke
6336 
6337 /*
6338   ||===========================================================================
6339   || PROCEDURE: process_txn_save
6340   ||---------------------------------------------------------------------------
6341   ||
6342   || Description:
6343   ||     This procedure will call actual API with validate mode
6344   ||     if there are no error, save date into transaction table
6345   ||
6346   || Access Status:
6347   ||     Public.
6348   ||
6349   ||===========================================================================
6350   */
6351 
6352   procedure process_txn_save(
6353    p_transaction_step_id           in     NUMBER
6354   ,p_login_person_id               in     number
6355   ,p_review_proc_call              in     varchar2
6356   ,p_effective_date                in     date
6357   ,p_person_id                     in     number
6358   ,p_business_group_id             in     number
6359   ,p_absence_attendance_type_id    in     number
6360   ,p_abs_attendance_reason_id      in     number   default null
6361   ,p_comments                      in     clob     default null	-- Bug#13362792
6362   ,p_date_notification             in     date default null
6363   ,p_date_projected_start          in     date default null
6364   ,p_time_projected_start          in     varchar2 default null
6365   ,p_date_projected_end            in     date     default null
6366   ,p_time_projected_end            in     varchar2 default null
6367   ,p_date_start                    in     date     default null
6368   ,p_time_start                    in     varchar2 default null
6369   ,p_date_end                      in     date     default null
6370   ,p_time_end                      in     varchar2 default null
6371   ,p_absence_days                  in out nocopy number
6372   ,p_absence_hours                 in out nocopy number
6373   ,p_authorising_person_id         in     number   default null
6374   ,p_replacement_person_id         in     number   default null
6375   ,p_attribute_category            in     varchar2 default null
6376   ,p_attribute1                    in     varchar2 default null
6377   ,p_attribute2                    in     varchar2 default null
6378   ,p_attribute3                    in     varchar2 default null
6379   ,p_attribute4                    in     varchar2 default null
6380   ,p_attribute5                    in     varchar2 default null
6381   ,p_attribute6                    in     varchar2 default null
6382   ,p_attribute7                    in     varchar2 default null
6383   ,p_attribute8                    in     varchar2 default null
6384   ,p_attribute9                    in     varchar2 default null
6385   ,p_attribute10                   in     varchar2 default null
6386   ,p_attribute11                   in     varchar2 default null
6387   ,p_attribute12                   in     varchar2 default null
6388   ,p_attribute13                   in     varchar2 default null
6389   ,p_attribute14                   in     varchar2 default null
6390   ,p_attribute15                   in     varchar2 default null
6391   ,p_attribute16                   in     varchar2 default null
6392   ,p_attribute17                   in     varchar2 default null
6393   ,p_attribute18                   in     varchar2 default null
6394   ,p_attribute19                   in     varchar2 default null
6395   ,p_attribute20                   in     varchar2 default null
6396   ,p_start_ampm                    in     varchar2 default null
6397   ,p_end_ampm                      in     varchar2 default null
6398   ,p_save_mode                     in     varchar2 default null
6399   ,p_abs_information_category      in     varchar2 default null
6400   ,p_abs_information1              in     varchar2 default null
6401   ,p_abs_information2              in     varchar2 default null
6402   ,p_abs_information3              in     varchar2 default null
6403   ,p_abs_information4              in     varchar2 default null
6404   ,p_abs_information5              in     varchar2 default null
6405   ,p_abs_information6              in     varchar2 default null
6406   ,p_abs_information7              in     varchar2 default null
6407   ,p_abs_information8              in     varchar2 default null
6408   ,p_abs_information9              in     varchar2 default null
6409   ,p_abs_information10             in     varchar2 default null
6410   ,p_abs_information11             in     varchar2 default null
6411   ,p_abs_information12             in     varchar2 default null
6412   ,p_abs_information13             in     varchar2 default null
6413   ,p_abs_information14             in     varchar2 default null
6414   ,p_abs_information15             in     varchar2 default null
6415   ,p_abs_information16             in     varchar2 default null
6416   ,p_abs_information17             in     varchar2 default null
6417   ,p_abs_information18             in     varchar2 default null
6418   ,p_abs_information19             in     varchar2 default null
6419   ,p_abs_information20             in     varchar2 default null
6420   ,p_abs_information21             in     varchar2 default null
6421   ,p_abs_information22             in     varchar2 default null
6422   ,p_abs_information23             in     varchar2 default null
6423   ,p_abs_information24             in     varchar2 default null
6424   ,p_abs_information25             in     varchar2 default null
6425   ,p_abs_information26             in     varchar2 default null
6426   ,p_abs_information27             in     varchar2 default null
6427   ,p_abs_information28             in     varchar2 default null
6428   ,p_abs_information29             in     varchar2 default null
6429   ,p_abs_information30             in     varchar2 default null
6430   ,p_leave_status                  in     varchar2 default null
6431   ,p_return_on_warning             in     varchar2 default null  --2713296
6432   ,p_absence_attendance_id         out nocopy    number
6433   ,p_object_version_number         out nocopy    number
6434   ,p_occurrence                    out nocopy    number
6435   ,p_dur_dys_less_warning          out nocopy    number
6436   ,p_dur_hrs_less_warning          out nocopy    number
6437   ,p_exceeds_pto_entit_warning     out nocopy    number
6438   ,p_exceeds_run_total_warning     out nocopy    number
6439   ,p_abs_overlap_warning           out nocopy    number
6440   ,p_abs_day_after_warning         out nocopy    number
6441   ,p_dur_overwritten_warning       out nocopy    number
6442   ,p_page_error                    out nocopy    varchar2
6443   ,p_page_error_msg                out nocopy    varchar2
6444   ,p_page_error_num                out nocopy    varchar2
6445   ) IS
6446 
6447    l_proc                     varchar2(72) := g_package||'process_txn_save';
6448    l_creator_person_id        per_all_people_f.person_id%TYPE;
6449    l_validate                 boolean;
6450    l_transaction_id	      number;
6451    l_absence_days             number;
6452    l_absence_hours            number;
6453    l_transaction_step_id      number;
6454    l_abs_attendance_reason_id number;
6455    l_login_person_id 	      number;
6456    l_authorising_person_id    number;
6457    l_replacement_person_id    number;
6458    lb_abs_day_after_warning    BOOLEAN;
6459    lb_abs_overlap_warning      BOOLEAN;
6460    lb_dur_dys_less_warning      BOOLEAN;
6461    lb_dur_hrs_less_warning      BOOLEAN;
6462    lb_exceeds_pto_entit_warning BOOLEAN;
6463    lb_exceeds_run_total_warning BOOLEAN;
6464    lb_dur_overwritten_warning   BOOLEAN;
6465 
6466    --2966372 changes start
6467    l_populate_sickness_dates boolean := false;
6468    l_sickness_start_date date := null;
6469    l_sickness_end_date date := null;
6470    --2966372 changes end
6471 
6472   -- Fix 2666959 Start
6473   -- Do not consider current transaction records while checking for overlap
6474   --
6475 
6476   -- Fix 2706099
6477   -- Absence timings are to be considered for checking overlap.
6478   --
6479 
6480    l_exists            varchar2(1) ;
6481 
6482       CURSOR c_abs_overlap(p_person_id          IN NUMBER
6483                              ,p_business_group_id IN NUMBER
6484                              ,p_date_start         IN DATE
6485                              ,p_date_end           IN DATE
6486                              ,p_transaction_step_id IN varchar2
6487                              ,p_time_start          IN VARCHAR2
6488                              ,p_time_end            IN VARCHAR2
6489          ) IS
6490 
6491  SELECT null
6492         FROM  hr_api_transaction_values tv
6493              ,hr_api_transaction_steps  ts
6494              ,hr_api_transaction_values tv1
6495              ,hr_api_transaction_values tv2
6496              ,hr_api_transaction_values tv3
6497              ,hr_api_transaction_values tv4
6498              ,hr_api_transaction_values tv5
6499              ,hr_api_transaction_values tv6
6500              ,hr_api_transactions hat -- Fix 3191531
6501 
6502         WHERE
6503              ts.api_name = 'HR_LOA_SS.PROCESS_API'
6504          and ts.UPDATE_PERSON_ID = p_person_id
6505          and p_date_start IS NOT NULL
6506          and p_date_end IS NOT NULL
6507          and ts.transaction_step_id = tv.transaction_step_id
6508          and tv.name = 'P_PERSON_ID'
6509          and tv.number_value = p_person_id
6510          and ts.transaction_step_id = tv1.transaction_step_id
6511          and tv1.name = 'P_BUSINESS_GROUP_ID'
6512          and tv1.number_value = p_business_group_id
6513          and ts.transaction_step_id = tv2.transaction_step_id
6514          and ts.transaction_id=hat.transaction_id
6515          and hat.status  in ('Y','C') -- Fix 3191531 and 3205669
6516          and ts.transaction_step_id = tv3.transaction_step_id
6517          and tv3.name = 'P_DATE_START'
6518          and ts.transaction_step_id = tv4.transaction_step_id
6519          and tv4.name = 'P_DATE_END'
6520          and ts.transaction_step_id = tv5.transaction_step_id
6521          and ts.transaction_step_id = tv6.transaction_step_id
6522          and tv5.name = 'P_TIME_START'
6523          and tv5.name = 'P_TIME_END'
6524          and tv3.date_value is NOT NULL
6525          and tv4.date_value is NOT NULL
6526  and (
6527  	                  (
6528  	                 to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt)  ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
6529  	                  BETWEEN to_date (to_char(p_date_start, g_usr_date_fmt)||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
6530  	                  AND to_date(to_char(p_date_end, g_usr_date_fmt) || ' '|| nvl(p_time_end,'00:00') , g_usr_day_time_fmt)
6531  	                   )
6532  	                  or
6533  	                  (
6534  	                  to_date (to_char(p_date_start, g_usr_date_fmt) ||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
6535  	                   BETWEEN
6536  	                   to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
6537  	                  AND
6538  	                  to_date( to_char(nvl(tv4.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv6.varchar2_value,'00:00'),g_usr_day_time_fmt)
6539  	                   )
6540 
6541            )
6542        and ts.transaction_step_id <>p_transaction_step_id ;
6543     -- Fix 2666959 End
6544     -- For checking dates in transaction tables, we should convert dates into user's date and time format.
6545 
6546 BEGIN
6547     hr_utility.set_location('Entering..:' || l_proc, 10);
6548  --
6549  --  Call API with validate mode
6550  --
6551 
6552     l_transaction_step_id := p_transaction_step_id;
6553 
6554     l_validate := TRUE;
6555     l_authorising_person_id  := to_number(p_authorising_person_id);
6556     l_replacement_person_id  := to_number(p_replacement_person_id);
6557 
6558     if p_abs_attendance_reason_id = -1 then
6559       l_abs_attendance_reason_id := null;
6560     else
6561       l_abs_attendance_reason_id := p_abs_attendance_reason_id;
6562     end if;
6563     if p_absence_days = -1 then
6564       l_absence_days := null;
6565     else
6566       l_absence_days := p_absence_days;
6567     end if;
6568     if p_absence_hours = -1 then
6569       l_absence_hours := null;
6570     else
6571       l_absence_hours := p_absence_hours;
6572     end if;
6573 
6574     --2966372 changes start
6575     l_populate_sickness_dates := is_gb_leg_and_category_s(p_absence_attendance_type_id , p_business_group_id);
6576 
6577     IF l_populate_sickness_dates THEN
6578        l_sickness_start_date := p_date_start;
6579        l_sickness_end_date := p_date_end;
6580     END IF;
6581     --2966372 changes end
6582 
6583     --
6584     -- Support Save For Later
6585     --
6586     if p_save_mode <> 'SaveForLater' then
6587 
6588     hr_utility.set_location(l_proc, 20);
6589     hr_person_absence_api.create_person_absence(
6590        p_validate                      => l_validate
6591       ,p_effective_date                => p_effective_date
6592       ,p_person_id                     => p_person_id
6593       ,p_business_group_id             => p_business_group_id
6594       ,p_absence_attendance_type_id    => p_absence_attendance_type_id
6595       ,p_abs_attendance_reason_id      => l_abs_attendance_reason_id
6596       ,p_comments                      => p_comments
6597       ,p_date_notification             => p_date_notification
6598       ,p_date_projected_start          => p_date_projected_start
6599       ,p_time_projected_start          => p_time_projected_start
6600       ,p_date_projected_end            => p_date_projected_end
6601       ,p_time_projected_end            => p_time_projected_end
6602       ,p_date_start                    => p_date_start
6603       ,p_time_start                    => p_time_start
6604       ,p_date_end                      => p_date_end
6605       ,p_time_end                      => p_time_end
6606       ,p_absence_days                  => l_absence_days
6607       ,p_absence_hours                 => l_absence_hours
6608       ,p_authorising_person_id         => l_authorising_person_id
6609       ,p_replacement_person_id         => l_replacement_person_id
6610       ,p_attribute_category            => p_attribute_category
6611       ,p_attribute1                    => p_attribute1
6612       ,p_attribute2                    => p_attribute2
6613       ,p_attribute3                    => p_attribute3
6614       ,p_attribute4                    => p_attribute4
6615       ,p_attribute5                    => p_attribute5
6616       ,p_attribute6                    => p_attribute6
6617       ,p_attribute7                    => p_attribute7
6618       ,p_attribute8                    => p_attribute8
6619       ,p_attribute9                    => p_attribute9
6620       ,p_attribute10                   => p_attribute10
6621       ,p_attribute11                   => p_attribute11
6622       ,p_attribute12                   => p_attribute12
6623       ,p_attribute13                   => p_attribute13
6624       ,p_attribute14                   => p_attribute14
6625       ,p_attribute15                   => p_attribute15
6626       ,p_attribute16                   => p_attribute16
6627       ,p_attribute17                   => p_attribute17
6628       ,p_attribute18                   => p_attribute18
6629       ,p_attribute19                   => p_attribute19
6630       ,p_attribute20                   => p_attribute20
6631       ,p_period_of_incapacity_id       => null
6632       ,p_ssp1_issued                   => 'N'
6633       ,p_maternity_id                  => null
6634       ,p_sickness_start_date           => l_sickness_start_date --2966372
6635       ,p_sickness_end_date             => l_sickness_end_date --2966372
6636       ,p_pregnancy_related_illness     => 'N'
6637       ,p_reason_for_notification_dela  => null
6638       ,p_accept_late_notification_fla  => 'N'
6639       ,p_linked_absence_id             => null
6640       ,p_abs_information_category            => p_abs_information_category
6641       ,p_abs_information1                    => p_abs_information1
6642       ,p_abs_information2                    => p_abs_information2
6643       ,p_abs_information3                    => p_abs_information3
6644       ,p_abs_information4                    => p_abs_information4
6645       ,p_abs_information5                    => p_abs_information5
6646       ,p_abs_information6                    => p_abs_information6
6647       ,p_abs_information7                    => p_abs_information7
6648       ,p_abs_information8                    => p_abs_information8
6649       ,p_abs_information9                    => p_abs_information9
6650       ,p_abs_information10                   => p_abs_information10
6651       ,p_abs_information11                   => p_abs_information11
6652       ,p_abs_information12                   => p_abs_information12
6653       ,p_abs_information13                   => p_abs_information13
6654       ,p_abs_information14                   => p_abs_information14
6655       ,p_abs_information15                   => p_abs_information15
6656       ,p_abs_information16                   => p_abs_information16
6657       ,p_abs_information17                   => p_abs_information17
6658       ,p_abs_information18                   => p_abs_information18
6659       ,p_abs_information19                   => p_abs_information19
6660       ,p_abs_information20                   => p_abs_information20
6661       ,p_abs_information21                   => p_abs_information21
6662       ,p_abs_information22                   => p_abs_information22
6663       ,p_abs_information23                   => p_abs_information23
6664       ,p_abs_information24                   => p_abs_information24
6665       ,p_abs_information25                   => p_abs_information25
6666       ,p_abs_information26                   => p_abs_information26
6667       ,p_abs_information27                   => p_abs_information27
6668       ,p_abs_information28                   => p_abs_information28
6669       ,p_abs_information29                   => p_abs_information29
6670       ,p_abs_information30                   => p_abs_information30
6671       ,p_absence_attendance_id         => p_absence_attendance_id
6672       ,p_object_version_number         => p_object_version_number
6673       ,p_occurrence                    => p_occurrence
6674       ,p_dur_dys_less_warning          => lb_dur_dys_less_warning
6675       ,p_dur_hrs_less_warning          => lb_dur_hrs_less_warning
6676       ,p_exceeds_pto_entit_warning     => lb_exceeds_pto_entit_warning
6677       ,p_exceeds_run_total_warning     => lb_exceeds_run_total_warning
6678       ,p_abs_overlap_warning           => lb_abs_overlap_warning
6679       ,p_abs_day_after_warning         => lb_abs_day_after_warning
6680       ,p_dur_overwritten_warning       => lb_dur_overwritten_warning
6681    );
6682 
6683 
6684    p_abs_day_after_warning := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_day_after_warning);
6685    p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
6686    p_dur_dys_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_dys_less_warning);
6687    p_dur_hrs_less_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_hrs_less_warning);
6688    p_exceeds_pto_entit_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_pto_entit_warning);
6689    p_exceeds_run_total_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_exceeds_run_total_warning);
6690    p_dur_overwritten_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_dur_overwritten_warning);
6691 
6692    if (lb_abs_day_after_warning OR
6693        lb_abs_overlap_warning   OR
6694        lb_exceeds_pto_entit_warning OR   --2848345
6695        lb_dur_dys_less_warning  OR       --2765646
6696        lb_dur_hrs_less_warning  OR       --2765646
6697        lb_exceeds_run_total_warning) AND --2797220
6698        p_return_on_warning = 'true' then  --2713296
6699      hr_utility.set_location(l_proc, 30);
6700      return;
6701    else -- BUG 2415512
6702 
6703 
6704    -- Fix 2666959 Start
6705    -- Replaced call to chk_overlap function because we should check for overlapping
6706    -- in all but current transaction step id records of hr_api_transaction_values.
6707 
6708    -- Need to check for null otherwise, we may get invalid month error
6709      IF p_date_start IS NOT NULL AND p_date_end IS NOT NULL AND
6710        p_time_start IS NOT NULL and p_time_end IS NOT NULL AND p_transaction_step_id IS NOT NULL
6711      THEN
6712 
6713    open  c_abs_overlap(p_person_id,p_business_group_id,p_date_start,p_date_end,p_transaction_step_id,p_time_start,p_time_end);
6714 
6715      fetch c_abs_overlap into l_exists;
6716 
6717      if c_abs_overlap%found then
6718 
6719        lb_abs_overlap_warning := TRUE;
6720      else
6721        lb_abs_overlap_warning := FALSE;
6722      end if;
6723   END IF;
6724    -- Fix 2666959 End
6725 
6726    if lb_abs_overlap_warning and p_return_on_warning = 'true' then  --2713296
6727         hr_utility.set_location(l_proc, 40);
6728         p_abs_overlap_warning  := hr_java_conv_util_ss.get_number(p_boolean => lb_abs_overlap_warning);
6729         return;
6730       end if;
6731    end if;
6732    end if; -- Support Save For Later
6733 
6734     hr_utility.set_location(l_proc, 50);
6735 
6736     p_absence_days := l_absence_days;
6737     p_absence_hours := l_absence_hours;
6738  --
6739  -- Update Transaction
6740  --
6741 
6742     l_validate := FALSE;
6743 --    hr_util_misc_web.validate_session(p_person_id => l_creator_person_id);
6744     l_creator_person_id := p_login_person_id;
6745 
6746 
6747       hr_transaction_api.set_boolean_value (
6748         p_transaction_step_id =>l_transaction_step_id,
6749         p_person_id => l_creator_person_id ,
6750         p_name => 'p_validate' ,
6751         p_value =>l_validate ) ;
6752 
6753       hr_transaction_api.set_date_value (
6754         p_transaction_step_id =>l_transaction_step_id,
6755         p_person_id => l_creator_person_id ,
6756         p_name => 'p_effective_date' ,
6757         p_value =>p_effective_date ) ;
6758 
6759       hr_transaction_api.set_number_value (
6760         p_transaction_step_id =>l_transaction_step_id,
6761         p_person_id => l_creator_person_id ,
6762         p_name => 'p_person_id' ,
6763         p_value =>p_person_id ) ;
6764 
6765       hr_transaction_api.set_number_value (
6766         p_transaction_step_id =>l_transaction_step_id,
6767         p_person_id => l_creator_person_id ,
6768         p_name => 'p_business_group_id' ,
6769         p_value =>p_business_group_id ) ;
6770 
6771       hr_transaction_api.set_number_value (
6772         p_transaction_step_id =>l_transaction_step_id,
6773         p_person_id => l_creator_person_id ,
6774         p_name => 'p_absence_attendance_type_id' ,
6775         p_value =>p_absence_attendance_type_id ) ;
6776 
6777      hr_transaction_api.set_number_value (
6778         p_transaction_step_id =>l_transaction_step_id,
6779         p_person_id => l_creator_person_id ,
6780         p_name => 'p_abs_attendance_reason_id' ,
6781         p_value =>l_abs_attendance_reason_id ) ;
6782 
6783      hr_transaction_api.set_varchar2_value (
6784         p_transaction_step_id =>l_transaction_step_id,
6785         p_person_id => l_creator_person_id ,
6786         p_name => 'p_comments' ,
6787         p_value =>p_comments ) ;
6788 
6789       hr_transaction_api.set_number_value (
6790         p_transaction_step_id =>l_transaction_step_id,
6791         p_person_id => l_creator_person_id ,
6792         p_name => 'p_authorising_person_id' ,
6793         p_value =>p_authorising_person_id ) ;
6794 
6795       hr_transaction_api.set_number_value (
6796         p_transaction_step_id =>l_transaction_step_id,
6797         p_person_id => l_creator_person_id ,
6798         p_name => 'p_replacement_person_id' ,
6799         p_value =>p_replacement_person_id ) ;
6800 
6801       hr_transaction_api.set_date_value (
6802         p_transaction_step_id =>l_transaction_step_id,
6803         p_person_id => l_creator_person_id ,
6804         p_name => 'p_date_projected_start' ,
6805         p_value =>p_date_projected_start) ;
6806 
6807      hr_transaction_api.set_varchar2_value (
6808         p_transaction_step_id =>l_transaction_step_id,
6809         p_person_id => l_creator_person_id ,
6810         p_name => 'p_time_projected_start' ,
6811         p_value =>p_time_projected_start ) ;
6812 
6813       hr_transaction_api.set_date_value (
6814         p_transaction_step_id =>l_transaction_step_id,
6815         p_person_id => l_creator_person_id ,
6816         p_name => 'p_date_projected_end' ,
6817         p_value =>p_date_projected_end) ;
6818 
6819       hr_transaction_api.set_varchar2_value (
6820         p_transaction_step_id =>l_transaction_step_id,
6821         p_person_id => l_creator_person_id ,
6822         p_name => 'p_time_projected_end' ,
6823         p_value =>p_time_projected_end ) ;
6824 
6825       hr_transaction_api.set_date_value (
6826         p_transaction_step_id =>l_transaction_step_id,
6827         p_person_id => l_creator_person_id ,
6828         p_name => 'p_date_start' ,
6829         p_value =>p_date_start) ;
6830 
6831      hr_transaction_api.set_varchar2_value (
6832         p_transaction_step_id =>l_transaction_step_id,
6833         p_person_id => l_creator_person_id ,
6834         p_name => 'p_time_start' ,
6835         p_value =>p_time_start ) ;
6836 
6837       hr_transaction_api.set_date_value (
6838         p_transaction_step_id =>l_transaction_step_id,
6839         p_person_id => l_creator_person_id ,
6840         p_name => 'p_date_end' ,
6841         p_value =>p_date_end) ;
6842 
6843      hr_transaction_api.set_varchar2_value (
6844         p_transaction_step_id =>l_transaction_step_id,
6845         p_person_id => l_creator_person_id ,
6846         p_name => 'p_time_end' ,
6847         p_value =>p_time_end ) ;
6848 
6849      hr_transaction_api.set_number_value (
6850         p_transaction_step_id =>l_transaction_step_id,
6851         p_person_id => l_creator_person_id ,
6852         p_name => 'p_absence_days' ,
6853         p_value =>p_absence_days ) ;
6854 
6855      hr_transaction_api.set_number_value (
6856         p_transaction_step_id =>l_transaction_step_id,
6857         p_person_id => l_creator_person_id ,
6858         p_name => 'p_absence_hours' ,
6859         p_value =>p_absence_hours ) ;
6860 
6861       hr_transaction_api.set_date_value (
6862         p_transaction_step_id =>l_transaction_step_id,
6863         p_person_id => l_creator_person_id ,
6864         p_name => 'p_date_notification' ,
6865         p_value =>p_date_notification ) ;
6866 
6867      hr_transaction_api.set_varchar2_value (
6868         p_transaction_step_id =>l_transaction_step_id,
6869         p_person_id => l_creator_person_id ,
6870         p_name => 'p_attribute_category' ,
6871         p_value =>p_attribute_category ) ;
6872 
6873      hr_transaction_api.set_varchar2_value (
6874         p_transaction_step_id =>l_transaction_step_id,
6875         p_person_id => l_creator_person_id ,
6876         p_name => 'p_attribute1' ,
6877         p_value =>p_attribute1 ) ;
6878 
6879      hr_transaction_api.set_varchar2_value (
6880         p_transaction_step_id =>l_transaction_step_id,
6881         p_person_id => l_creator_person_id ,
6882         p_name => 'p_attribute2' ,
6883         p_value =>p_attribute2 ) ;
6884 
6885      hr_transaction_api.set_varchar2_value (
6886         p_transaction_step_id =>l_transaction_step_id,
6887         p_person_id => l_creator_person_id ,
6888         p_name => 'p_attribute3' ,
6889         p_value =>p_attribute3 ) ;
6890 
6891      hr_transaction_api.set_varchar2_value (
6892         p_transaction_step_id =>l_transaction_step_id,
6893         p_person_id => l_creator_person_id ,
6894         p_name => 'p_attribute4' ,
6895         p_value =>p_attribute4 ) ;
6896 
6897      hr_transaction_api.set_varchar2_value (
6898         p_transaction_step_id =>l_transaction_step_id,
6899         p_person_id => l_creator_person_id ,
6900         p_name => 'p_attribute5' ,
6901         p_value =>p_attribute5 ) ;
6902 
6903      hr_transaction_api.set_varchar2_value (
6904         p_transaction_step_id =>l_transaction_step_id,
6905         p_person_id => l_creator_person_id ,
6906         p_name => 'p_attribute6' ,
6907         p_value =>p_attribute6 ) ;
6908 
6909      hr_transaction_api.set_varchar2_value (
6910         p_transaction_step_id =>l_transaction_step_id,
6911         p_person_id => l_creator_person_id ,
6912         p_name => 'p_attribute7' ,
6913         p_value =>p_attribute7 ) ;
6914 
6915      hr_transaction_api.set_varchar2_value (
6916         p_transaction_step_id =>l_transaction_step_id,
6917         p_person_id => l_creator_person_id ,
6918         p_name => 'p_attribute8' ,
6919         p_value =>p_attribute8 ) ;
6920 
6921      hr_transaction_api.set_varchar2_value (
6922         p_transaction_step_id =>l_transaction_step_id,
6923         p_person_id => l_creator_person_id ,
6924         p_name => 'p_attribute9' ,
6925         p_value =>p_attribute9 ) ;
6926 
6927      hr_transaction_api.set_varchar2_value (
6928         p_transaction_step_id =>l_transaction_step_id,
6929         p_person_id => l_creator_person_id ,
6930         p_name => 'p_attribute10' ,
6931         p_value =>p_attribute10 ) ;
6932 
6933      hr_transaction_api.set_varchar2_value (
6934         p_transaction_step_id =>l_transaction_step_id,
6935         p_person_id => l_creator_person_id ,
6936         p_name => 'p_attribute11' ,
6937         p_value =>p_attribute11 ) ;
6938 
6939      hr_transaction_api.set_varchar2_value (
6940         p_transaction_step_id =>l_transaction_step_id,
6941         p_person_id => l_creator_person_id ,
6942         p_name => 'p_attribute12' ,
6943         p_value =>p_attribute12 ) ;
6944 
6945      hr_transaction_api.set_varchar2_value (
6946         p_transaction_step_id =>l_transaction_step_id,
6947         p_person_id => l_creator_person_id ,
6948         p_name => 'p_attribute13' ,
6949         p_value =>p_attribute13 ) ;
6950 
6951      hr_transaction_api.set_varchar2_value (
6952         p_transaction_step_id =>l_transaction_step_id,
6953         p_person_id => l_creator_person_id ,
6954         p_name => 'p_attribute14' ,
6955         p_value =>p_attribute14 ) ;
6956 
6957      hr_transaction_api.set_varchar2_value (
6958         p_transaction_step_id =>l_transaction_step_id,
6959         p_person_id => l_creator_person_id ,
6960         p_name => 'p_attribute15' ,
6961         p_value =>p_attribute15 ) ;
6962 
6963      hr_transaction_api.set_varchar2_value (
6964         p_transaction_step_id =>l_transaction_step_id,
6965         p_person_id => l_creator_person_id ,
6966         p_name => 'p_attribute16' ,
6967         p_value =>p_attribute16 ) ;
6968 
6969      hr_transaction_api.set_varchar2_value (
6970         p_transaction_step_id =>l_transaction_step_id,
6971         p_person_id => l_creator_person_id ,
6972         p_name => 'p_attribute17' ,
6973         p_value =>p_attribute17 ) ;
6974 
6975      hr_transaction_api.set_varchar2_value (
6976         p_transaction_step_id =>l_transaction_step_id,
6977         p_person_id => l_creator_person_id ,
6978         p_name => 'p_attribute18' ,
6979         p_value =>p_attribute18 ) ;
6980 
6981      hr_transaction_api.set_varchar2_value (
6982         p_transaction_step_id =>l_transaction_step_id,
6983         p_person_id => l_creator_person_id ,
6984         p_name => 'p_attribute19' ,
6985         p_value =>p_attribute19 ) ;
6986 
6987      hr_transaction_api.set_varchar2_value (
6988         p_transaction_step_id =>l_transaction_step_id,
6989         p_person_id => l_creator_person_id ,
6990         p_name => 'p_attribute20' ,
6991         p_value =>p_attribute20 ) ;
6992 
6993      hr_transaction_api.set_varchar2_value (
6994         p_transaction_step_id =>l_transaction_step_id,
6995         p_person_id => l_creator_person_id ,
6996         p_name => 'p_abs_information_category' ,
6997         p_value =>p_abs_information_category ) ;
6998 
6999      hr_transaction_api.set_varchar2_value (
7000         p_transaction_step_id =>l_transaction_step_id,
7001         p_person_id => l_creator_person_id ,
7002         p_name => 'p_abs_information1' ,
7003         p_value =>p_abs_information1 ) ;
7004 
7005      hr_transaction_api.set_varchar2_value (
7006         p_transaction_step_id =>l_transaction_step_id,
7007         p_person_id => l_creator_person_id ,
7008         p_name => 'p_abs_information2' ,
7009         p_value =>p_abs_information2 ) ;
7010 
7011      hr_transaction_api.set_varchar2_value (
7012         p_transaction_step_id =>l_transaction_step_id,
7013         p_person_id => l_creator_person_id ,
7014         p_name => 'p_abs_information3' ,
7015         p_value =>p_abs_information3 ) ;
7016 
7017      hr_transaction_api.set_varchar2_value (
7018         p_transaction_step_id =>l_transaction_step_id,
7019         p_person_id => l_creator_person_id ,
7020         p_name => 'p_abs_information4' ,
7021         p_value =>p_abs_information4 ) ;
7022 
7023      hr_transaction_api.set_varchar2_value (
7024         p_transaction_step_id =>l_transaction_step_id,
7025         p_person_id => l_creator_person_id ,
7026         p_name => 'p_abs_information5' ,
7027         p_value =>p_abs_information5 ) ;
7028 
7029      hr_transaction_api.set_varchar2_value (
7030         p_transaction_step_id =>l_transaction_step_id,
7031         p_person_id => l_creator_person_id ,
7032         p_name => 'p_abs_information6' ,
7033         p_value =>p_abs_information6 ) ;
7034 
7035      hr_transaction_api.set_varchar2_value (
7036         p_transaction_step_id =>l_transaction_step_id,
7037         p_person_id => l_creator_person_id ,
7038         p_name => 'p_abs_information7' ,
7039         p_value =>p_abs_information7 ) ;
7040 
7041      hr_transaction_api.set_varchar2_value (
7042         p_transaction_step_id =>l_transaction_step_id,
7043         p_person_id => l_creator_person_id ,
7044         p_name => 'p_abs_information8' ,
7045         p_value =>p_abs_information8 ) ;
7046 
7047      hr_transaction_api.set_varchar2_value (
7048         p_transaction_step_id =>l_transaction_step_id,
7049         p_person_id => l_creator_person_id ,
7050         p_name => 'p_abs_information9' ,
7051         p_value =>p_abs_information9 ) ;
7052 
7053      hr_transaction_api.set_varchar2_value (
7054         p_transaction_step_id =>l_transaction_step_id,
7055         p_person_id => l_creator_person_id ,
7056         p_name => 'p_abs_information10' ,
7057         p_value =>p_abs_information10 ) ;
7058 
7059      hr_transaction_api.set_varchar2_value (
7060         p_transaction_step_id =>l_transaction_step_id,
7061         p_person_id => l_creator_person_id ,
7062         p_name => 'p_abs_information11' ,
7063         p_value =>p_abs_information11 ) ;
7064 
7065      hr_transaction_api.set_varchar2_value (
7066         p_transaction_step_id =>l_transaction_step_id,
7067         p_person_id => l_creator_person_id ,
7068         p_name => 'p_abs_information12' ,
7069         p_value =>p_abs_information12 ) ;
7070 
7071      hr_transaction_api.set_varchar2_value (
7072         p_transaction_step_id =>l_transaction_step_id,
7073         p_person_id => l_creator_person_id ,
7074         p_name => 'p_abs_information13' ,
7075         p_value =>p_abs_information13 ) ;
7076 
7077      hr_transaction_api.set_varchar2_value (
7078         p_transaction_step_id =>l_transaction_step_id,
7079         p_person_id => l_creator_person_id ,
7080         p_name => 'p_abs_information14' ,
7081         p_value =>p_abs_information14 ) ;
7082 
7083      hr_transaction_api.set_varchar2_value (
7084         p_transaction_step_id =>l_transaction_step_id,
7085         p_person_id => l_creator_person_id ,
7086         p_name => 'p_abs_information15' ,
7087         p_value =>p_abs_information15 ) ;
7088 
7089      hr_transaction_api.set_varchar2_value (
7090         p_transaction_step_id =>l_transaction_step_id,
7091         p_person_id => l_creator_person_id ,
7092         p_name => 'p_abs_information16' ,
7093         p_value =>p_abs_information16 ) ;
7094 
7095      hr_transaction_api.set_varchar2_value (
7096         p_transaction_step_id =>l_transaction_step_id,
7097         p_person_id => l_creator_person_id ,
7098         p_name => 'p_abs_information17' ,
7099         p_value =>p_abs_information17 ) ;
7100 
7101      hr_transaction_api.set_varchar2_value (
7102         p_transaction_step_id =>l_transaction_step_id,
7103         p_person_id => l_creator_person_id ,
7104         p_name => 'p_abs_information18' ,
7105         p_value =>p_abs_information18 ) ;
7106 
7107      hr_transaction_api.set_varchar2_value (
7108         p_transaction_step_id =>l_transaction_step_id,
7109         p_person_id => l_creator_person_id ,
7110         p_name => 'p_abs_information19' ,
7111         p_value =>p_abs_information19 ) ;
7112 
7113      hr_transaction_api.set_varchar2_value (
7114         p_transaction_step_id =>l_transaction_step_id,
7115         p_person_id => l_creator_person_id ,
7116         p_name => 'p_abs_information20' ,
7117         p_value =>p_abs_information20 ) ;
7118 
7119      hr_transaction_api.set_varchar2_value (
7120         p_transaction_step_id =>l_transaction_step_id,
7121         p_person_id => l_creator_person_id ,
7122         p_name => 'p_abs_information21' ,
7123         p_value =>p_abs_information21 ) ;
7124 
7125      hr_transaction_api.set_varchar2_value (
7126         p_transaction_step_id =>l_transaction_step_id,
7127         p_person_id => l_creator_person_id ,
7128         p_name => 'p_abs_information22' ,
7129         p_value =>p_abs_information22 ) ;
7130 
7131      hr_transaction_api.set_varchar2_value (
7132         p_transaction_step_id =>l_transaction_step_id,
7133         p_person_id => l_creator_person_id ,
7134         p_name => 'p_abs_information23' ,
7135         p_value =>p_abs_information23 ) ;
7136 
7137      hr_transaction_api.set_varchar2_value (
7138         p_transaction_step_id =>l_transaction_step_id,
7139         p_person_id => l_creator_person_id ,
7140         p_name => 'p_abs_information24' ,
7141         p_value =>p_abs_information24 ) ;
7142 
7143      hr_transaction_api.set_varchar2_value (
7144         p_transaction_step_id =>l_transaction_step_id,
7145         p_person_id => l_creator_person_id ,
7146         p_name => 'p_abs_information25' ,
7147         p_value =>p_abs_information25 ) ;
7148 
7149      hr_transaction_api.set_varchar2_value (
7150         p_transaction_step_id =>l_transaction_step_id,
7151         p_person_id => l_creator_person_id ,
7152         p_name => 'p_abs_information26' ,
7153         p_value =>p_abs_information26 ) ;
7154 
7155      hr_transaction_api.set_varchar2_value (
7156         p_transaction_step_id =>l_transaction_step_id,
7157         p_person_id => l_creator_person_id ,
7158         p_name => 'p_abs_information27' ,
7159         p_value =>p_abs_information27 ) ;
7160 
7161      hr_transaction_api.set_varchar2_value (
7162         p_transaction_step_id =>l_transaction_step_id,
7163         p_person_id => l_creator_person_id ,
7164         p_name => 'p_abs_information28' ,
7165         p_value =>p_abs_information28 ) ;
7166 
7167      hr_transaction_api.set_varchar2_value (
7168         p_transaction_step_id =>l_transaction_step_id,
7169         p_person_id => l_creator_person_id ,
7170         p_name => 'p_abs_information29' ,
7171         p_value =>p_abs_information29 ) ;
7172 
7173      hr_transaction_api.set_varchar2_value (
7174         p_transaction_step_id =>l_transaction_step_id,
7175         p_person_id => l_creator_person_id ,
7176         p_name => 'p_abs_information30' ,
7177         p_value =>p_abs_information30 ) ;
7178 
7179   --
7180      hr_transaction_api.set_varchar2_value (
7181         p_transaction_step_id =>l_transaction_step_id,
7182         p_person_id => l_creator_person_id ,
7183         p_name => 'p_leave_status' ,
7184         p_value =>p_leave_status ) ;
7185 
7186   --
7187   -- Save For Later
7188   --
7189      hr_transaction_api.set_varchar2_value (
7190         p_transaction_step_id =>l_transaction_step_id,
7191         p_person_id => l_creator_person_id ,
7192         p_name => 'p_start_ampm' ,
7193         p_value =>p_start_ampm ) ;
7194 
7195      hr_transaction_api.set_varchar2_value (
7196         p_transaction_step_id =>l_transaction_step_id,
7197         p_person_id => l_creator_person_id ,
7198         p_name => 'p_end_ampm' ,
7199         p_value =>p_end_ampm ) ;
7200 
7201      hr_transaction_api.set_varchar2_value (
7202         p_transaction_step_id =>l_transaction_step_id,
7203         p_person_id => l_creator_person_id ,
7204         p_name => 'p_save_mode' ,
7205         p_value =>p_save_mode ) ;
7206  --
7207  --
7208  -- hr_utility.set_location('Leaving..:' || l_proc, 50);
7209     EXCEPTION
7210       WHEN hr_utility.hr_error then
7211          hr_message.provide_error;
7212          p_page_error := hr_message.last_message_app;
7213          p_page_error_msg := hr_message.get_message_text;
7214          p_page_error_num := hr_message.last_message_number;
7215 	 hr_utility.set_location('Leaving..:' || l_proc, 555);
7216       WHEN OTHERS THEN
7217       hr_utility.trace( ' HR_LOA_SS.process_save ' || SQLERRM );
7218       hr_utility.set_location('Leaving..:' || l_proc, 560);
7219          raise ;
7220 
7221 
7222   END process_txn_save;
7223 
7224   /*
7225   ||===========================================================================
7226   || PROCEDURE: process_api
7227   ||---------------------------------------------------------------------------
7228   ||
7229   || Description:
7230   ||     This procedure will call the actual API from transaction table
7231   ||                hr_person_absence_api.update_person_absence()
7232   ||
7233   || Access Status:
7234   ||     Public.
7235   ||
7236   ||===========================================================================
7237   */
7238   procedure process_api
7239   (p_validate                 in     boolean default false
7240   ,p_transaction_step_id      in     number
7241   ,p_effective_date           in     varchar2 default null
7242   ) is
7243 
7244    l_proc                         varchar2(72) := g_package||'process_api';
7245    l_validate                     boolean;
7246    l_effective_date	          date;
7247    l_absence_rec	          per_absence_attendances%rowtype;
7248    l_activity_name	          varchar2(30);
7249    l_leave_status	          varchar2(30);
7250    l_business_group_id            number;
7251    l_absence_attendance_id        number;
7252    l_object_version_number        number;
7253    l_occurrence                   number;
7254    lb_abs_day_after_warning       boolean;
7255    lb_abs_overlap_warning         boolean;
7256    lb_dur_dys_less_warning        BOOLEAN;
7257    lb_dur_hrs_less_warning        BOOLEAN;
7258    lb_exceeds_pto_entit_warning   BOOLEAN;
7259    lb_exceeds_run_total_warning   BOOLEAN;
7260    lb_dur_overwritten_warning     BOOLEAN;
7261    lb_del_element_entry_warning BOOLEAN;
7262    l_period_of_incapacity_id      number;
7263    l_ssp1_issued                  varchar2(30);
7264    l_maternity_id                 number;
7265    l_sickness_start_date          date := null; --2966372
7266    l_sickness_end_date            date := null; --2966372
7267    l_pregnancy_related_illness    varchar2(30);
7268    l_reason_for_notification_dela varchar2(2000);
7269    l_accept_late_notification_fla varchar2(30);
7270    l_absence_days                 number;
7271    l_absence_hours                number;
7272    l_populate_sickness_dates      boolean := false; --2966372
7273 
7274 BEGIN
7275 
7276   --
7277   --
7278     hr_utility.set_location('Entering:'|| l_proc, 10);
7279     if (p_effective_date is not null) then
7280       l_effective_date:= to_date(p_effective_date,g_date_format);
7281     else
7282       l_effective_date:= to_date(
7283         hr_transaction_ss.get_wf_effective_date
7284           (p_transaction_step_id => p_transaction_step_id),g_date_format);
7285     end if;
7286 
7287 --    l_effective_date :=
7288 --      hr_transaction_api.get_date_value
7289 --      (p_transaction_step_id => p_transaction_step_id
7290 --      ,p_name                => 'p_effective_date');
7291 
7292   --
7293     l_activity_name:=
7294       hr_transaction_api.get_varchar2_value
7295       (p_transaction_step_id => p_transaction_step_id
7296       ,p_name                => 'p_activity_name');
7297 
7298     l_leave_status:=
7299       hr_transaction_api.get_varchar2_value
7300       (p_transaction_step_id => p_transaction_step_id
7301       ,p_name                => 'p_leave_status');
7302 
7303 
7304     --
7305     -- Issue the savepoint.
7306     --
7307     savepoint loa_process_api;
7308 
7309     if l_activity_name = 'HrLoa' OR l_activity_name = 'HrLoaComp' then
7310       hr_utility.set_location(l_proc, 20);
7311 
7312       get_abs_from_tt
7313         (p_transaction_step_id => p_transaction_step_id
7314         ,p_absence_rec         => l_absence_rec);
7315 
7316       l_absence_days := l_absence_rec.absence_days ;
7317       l_absence_hours := l_absence_rec.absence_hours ;
7318 
7319       --2966372 changes start
7320       l_populate_sickness_dates := is_gb_leg_and_category_s(l_absence_rec.absence_attendance_type_id
7321 						, l_absence_rec.business_group_id);
7322 
7323       IF l_populate_sickness_dates THEN
7324          l_sickness_start_date := l_absence_rec.date_start;
7325          l_sickness_end_date := l_absence_rec.date_end;
7326       END IF;
7327       --2966372 changes end
7328 
7329       hr_person_absence_api.create_person_absence(
7330         p_validate                   => l_validate
7331        ,p_effective_date             => l_effective_date
7332        ,p_person_id                  => l_absence_rec.person_id
7333        ,p_business_group_id          => l_absence_rec.business_group_id
7334        ,p_absence_attendance_type_id => l_absence_rec.absence_attendance_type_id
7335        ,p_abs_attendance_reason_id   => l_absence_rec.abs_attendance_reason_id
7336        ,p_comments                   => l_absence_rec.comments
7337        ,p_date_notification          => l_absence_rec.date_notification
7338        ,p_date_projected_start       => l_absence_rec.date_projected_start
7339        ,p_time_projected_start       => l_absence_rec.time_projected_start
7340        ,p_date_projected_end         => l_absence_rec.date_projected_end
7341        ,p_time_projected_end         => l_absence_rec.time_projected_end
7342        ,p_date_start                 => l_absence_rec.date_start
7343        ,p_time_start                 => l_absence_rec.time_start
7344        ,p_date_end                   => l_absence_rec.date_end
7345        ,p_time_end                   => l_absence_rec.time_end
7346        ,p_absence_days               => l_absence_rec.absence_days
7347        ,p_absence_hours              => l_absence_rec.absence_hours
7348        ,p_authorising_person_id      => l_absence_rec.authorising_person_id
7349        ,p_replacement_person_id      => l_absence_rec.replacement_person_id
7350        ,p_attribute_category         => l_absence_rec.attribute_category
7351        ,p_attribute1                 => l_absence_rec.attribute1
7352        ,p_attribute2                 => l_absence_rec.attribute2
7353        ,p_attribute3                 => l_absence_rec.attribute3
7354        ,p_attribute4                 => l_absence_rec.attribute4
7355        ,p_attribute5                 => l_absence_rec.attribute5
7356        ,p_attribute6                 => l_absence_rec.attribute6
7357        ,p_attribute7                 => l_absence_rec.attribute7
7358        ,p_attribute8                 => l_absence_rec.attribute8
7359        ,p_attribute9                 => l_absence_rec.attribute9
7360        ,p_attribute10                => l_absence_rec.attribute10
7361        ,p_attribute11                => l_absence_rec.attribute11
7362        ,p_attribute12                => l_absence_rec.attribute12
7363        ,p_attribute13                => l_absence_rec.attribute13
7364        ,p_attribute14                => l_absence_rec.attribute14
7365        ,p_attribute15                => l_absence_rec.attribute15
7366        ,p_attribute16                => l_absence_rec.attribute16
7367        ,p_attribute17                => l_absence_rec.attribute17
7368        ,p_attribute18                => l_absence_rec.attribute18
7369        ,p_attribute19                => l_absence_rec.attribute19
7370        ,p_attribute20                => l_absence_rec.attribute20
7371        ,p_period_of_incapacity_id    => null
7372        ,p_ssp1_issued                => 'N'
7373        ,p_maternity_id               => null
7374        ,p_sickness_start_date        => l_sickness_start_date --2966372
7375        ,p_sickness_end_date          => l_sickness_end_date --2966372
7376        ,p_pregnancy_related_illness     => 'N'
7377        ,p_reason_for_notification_dela  => null
7378        ,p_accept_late_notification_fla  => 'N'
7379        ,p_linked_absence_id             => null
7380        ,p_abs_information_category         => l_absence_rec.abs_information_category
7381        ,p_abs_information1                 => l_absence_rec.abs_information1
7382        ,p_abs_information2                 => l_absence_rec.abs_information2
7383        ,p_abs_information3                 => l_absence_rec.abs_information3
7384        ,p_abs_information4                 => l_absence_rec.abs_information4
7385        ,p_abs_information5                 => l_absence_rec.abs_information5
7386        ,p_abs_information6                 => l_absence_rec.abs_information6
7387        ,p_abs_information7                 => l_absence_rec.abs_information7
7388        ,p_abs_information8                 => l_absence_rec.abs_information8
7389        ,p_abs_information9                 => l_absence_rec.abs_information9
7390        ,p_abs_information10                => l_absence_rec.abs_information10
7391        ,p_abs_information11                => l_absence_rec.abs_information11
7392        ,p_abs_information12                => l_absence_rec.abs_information12
7393        ,p_abs_information13                => l_absence_rec.abs_information13
7394        ,p_abs_information14                => l_absence_rec.abs_information14
7395        ,p_abs_information15                => l_absence_rec.abs_information15
7396        ,p_abs_information16                => l_absence_rec.abs_information16
7397        ,p_abs_information17                => l_absence_rec.abs_information17
7398        ,p_abs_information18                => l_absence_rec.abs_information18
7399        ,p_abs_information19                => l_absence_rec.abs_information19
7400        ,p_abs_information20                => l_absence_rec.abs_information20
7401        ,p_abs_information21                => l_absence_rec.abs_information21
7402        ,p_abs_information22                => l_absence_rec.abs_information22
7403        ,p_abs_information23                => l_absence_rec.abs_information23
7404        ,p_abs_information24                => l_absence_rec.abs_information24
7405        ,p_abs_information25                => l_absence_rec.abs_information25
7406        ,p_abs_information26                => l_absence_rec.abs_information26
7407        ,p_abs_information27                => l_absence_rec.abs_information27
7408        ,p_abs_information28                => l_absence_rec.abs_information28
7409        ,p_abs_information29                => l_absence_rec.abs_information29
7410        ,p_abs_information30                => l_absence_rec.abs_information30
7411        ,p_absence_attendance_id      => l_absence_attendance_id
7412        ,p_object_version_number      => l_object_version_number
7413        ,p_occurrence                 => l_occurrence
7414        ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
7415        ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
7416        ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
7417        ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
7418        ,p_abs_overlap_warning        => lb_abs_overlap_warning
7419        ,p_abs_day_after_warning      => lb_abs_day_after_warning
7420        ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
7421      );
7422 
7423     elsif l_activity_name = 'HrLoaReturn' OR l_leave_status = g_confirm then
7424       hr_utility.set_location(l_proc, 30);
7425 
7426       get_rtn_from_tt
7427         (p_transaction_step_id => p_transaction_step_id
7428         ,p_absence_rec         => l_absence_rec);
7429 
7430       --3400323 changes start
7431       l_populate_sickness_dates := is_gb_leg_and_category_s(l_absence_rec.absence_attendance_type_id
7432 						, l_absence_rec.business_group_id);
7433 
7434       IF l_populate_sickness_dates THEN
7435          l_sickness_start_date := l_absence_rec.date_start;
7436          l_sickness_end_date := l_absence_rec.date_end;
7437       END IF;
7438       --3400323 changes end
7439 
7440       l_absence_days := l_absence_rec.absence_days ;
7441       l_absence_hours := l_absence_rec.absence_hours ;
7442       l_object_version_number := l_absence_rec.object_version_number;
7443 
7444       hr_person_absence_api.update_person_absence(
7445         p_validate                   => l_validate
7446        ,p_effective_date             => l_effective_date
7447        ,p_date_notification          => l_effective_date
7448 --       ,p_business_group_id          => l_absence_rec.business_group_id
7449        ,p_absence_attendance_id      => l_absence_rec.absence_attendance_id
7450        ,p_date_start                 => l_absence_rec.date_start
7451        ,p_time_start                 => l_absence_rec.time_start
7452        ,p_date_end                   => l_absence_rec.date_end
7453        ,p_time_end                   => l_absence_rec.time_end
7454        ,p_replacement_person_id      => l_absence_rec.replacement_person_id
7455        ,p_comments                   => l_absence_rec.comments
7456        ,p_absence_days               => l_absence_rec.absence_days
7457        ,p_absence_hours              => l_absence_rec.absence_hours
7458        ,p_attribute_category         => l_absence_rec.attribute_category
7459        ,p_attribute1                 => l_absence_rec.attribute1
7460        ,p_attribute2                 => l_absence_rec.attribute2
7461        ,p_attribute3                 => l_absence_rec.attribute3
7462        ,p_attribute4                 => l_absence_rec.attribute4
7463        ,p_attribute5                 => l_absence_rec.attribute5
7464        ,p_attribute6                 => l_absence_rec.attribute6
7465        ,p_attribute7                 => l_absence_rec.attribute7
7466        ,p_attribute8                 => l_absence_rec.attribute8
7467        ,p_attribute9                 => l_absence_rec.attribute9
7468        ,p_attribute10                => l_absence_rec.attribute10
7469        ,p_attribute11                => l_absence_rec.attribute11
7470        ,p_attribute12                => l_absence_rec.attribute12
7471        ,p_attribute13                => l_absence_rec.attribute13
7472        ,p_attribute14                => l_absence_rec.attribute14
7473        ,p_attribute15                => l_absence_rec.attribute15
7474        ,p_attribute16                => l_absence_rec.attribute16
7475        ,p_attribute17                => l_absence_rec.attribute17
7476        ,p_attribute18                => l_absence_rec.attribute18
7477        ,p_attribute19                => l_absence_rec.attribute19
7478        ,p_attribute20                => l_absence_rec.attribute20
7479        ,p_sickness_start_date        => l_sickness_start_date --3400323
7480        ,p_sickness_end_date          => l_sickness_end_date --3400323
7481        ,p_abs_information_category         => l_absence_rec.abs_information_category
7482        ,p_abs_information1                 => l_absence_rec.abs_information1
7483        ,p_abs_information2                 => l_absence_rec.abs_information2
7484        ,p_abs_information3                 => l_absence_rec.abs_information3
7485        ,p_abs_information4                 => l_absence_rec.abs_information4
7486        ,p_abs_information5                 => l_absence_rec.abs_information5
7487        ,p_abs_information6                 => l_absence_rec.abs_information6
7488        ,p_abs_information7                 => l_absence_rec.abs_information7
7489        ,p_abs_information8                 => l_absence_rec.abs_information8
7490        ,p_abs_information9                 => l_absence_rec.abs_information9
7491        ,p_abs_information10                => l_absence_rec.abs_information10
7492        ,p_abs_information11                => l_absence_rec.abs_information11
7493        ,p_abs_information12                => l_absence_rec.abs_information12
7494        ,p_abs_information13                => l_absence_rec.abs_information13
7495        ,p_abs_information14                => l_absence_rec.abs_information14
7496        ,p_abs_information15                => l_absence_rec.abs_information15
7497        ,p_abs_information16                => l_absence_rec.abs_information16
7498        ,p_abs_information17                => l_absence_rec.abs_information17
7499        ,p_abs_information18                => l_absence_rec.abs_information18
7500        ,p_abs_information19                => l_absence_rec.abs_information19
7501        ,p_abs_information20                => l_absence_rec.abs_information20
7502        ,p_abs_information21                => l_absence_rec.abs_information21
7503        ,p_abs_information22                => l_absence_rec.abs_information22
7504        ,p_abs_information23                => l_absence_rec.abs_information23
7505        ,p_abs_information24                => l_absence_rec.abs_information24
7506        ,p_abs_information25                => l_absence_rec.abs_information25
7507        ,p_abs_information26                => l_absence_rec.abs_information26
7508        ,p_abs_information27                => l_absence_rec.abs_information27
7509        ,p_abs_information28                => l_absence_rec.abs_information28
7510        ,p_abs_information29                => l_absence_rec.abs_information29
7511        ,p_abs_information30                => l_absence_rec.abs_information30
7512        ,p_object_version_number      => l_object_version_number
7513        ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
7514        ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
7515        ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
7516        ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
7517        ,p_abs_overlap_warning        => lb_abs_overlap_warning
7518        ,p_abs_day_after_warning      => lb_abs_day_after_warning
7519        ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
7520        ,p_del_element_entry_warning  => lb_del_element_entry_warning
7521       );
7522 
7523     elsif l_activity_name = 'HrLoaUpdate' then
7524       hr_utility.set_location(l_proc, 40);
7525 
7526       get_upd_from_tt
7527         (p_transaction_step_id => p_transaction_step_id
7528         ,p_absence_rec         => l_absence_rec);
7529 
7530       l_absence_days := l_absence_rec.absence_days ;
7531       l_absence_hours := l_absence_rec.absence_hours ;
7532       l_object_version_number := l_absence_rec.object_version_number;
7533 
7534       --2966372 changes start
7535       l_populate_sickness_dates := is_gb_leg_and_category_s(l_absence_rec.absence_attendance_type_id
7536                                                 , l_absence_rec.business_group_id);
7537 
7538       IF l_populate_sickness_dates THEN
7539          l_sickness_start_date := l_absence_rec.date_start;
7540          l_sickness_end_date := l_absence_rec.date_end;
7541       END IF;
7542       --2966372 changes end
7543 
7544       hr_person_absence_api.update_person_absence(
7545         p_validate                   => l_validate
7546        ,p_effective_date             => l_effective_date
7547        ,p_date_notification          => l_effective_date
7548 --       ,p_business_group_id          => l_absence_rec.business_group_id
7549        ,p_absence_attendance_id      => l_absence_rec.absence_attendance_id
7550        ,p_date_projected_start       => l_absence_rec.date_projected_start
7551        ,p_time_projected_start       => l_absence_rec.time_projected_start
7552        ,p_date_projected_end         => l_absence_rec.date_projected_end
7553        ,p_time_projected_end         => l_absence_rec.time_projected_end
7554        ,p_date_start                 => null
7555        ,p_time_start                 => null
7556        ,p_date_end                   => null
7557        ,p_time_end                   => null
7558        ,p_absence_days               => l_absence_rec.absence_days
7559        ,p_absence_hours              => l_absence_rec.absence_hours
7560        ,p_replacement_person_id      => l_absence_rec.replacement_person_id
7561        ,p_attribute_category         => l_absence_rec.attribute_category
7562        ,p_attribute1                 => l_absence_rec.attribute1
7563        ,p_attribute2                 => l_absence_rec.attribute2
7564        ,p_attribute3                 => l_absence_rec.attribute3
7565        ,p_attribute4                 => l_absence_rec.attribute4
7566        ,p_attribute5                 => l_absence_rec.attribute5
7567        ,p_attribute6                 => l_absence_rec.attribute6
7568        ,p_attribute7                 => l_absence_rec.attribute7
7569        ,p_attribute8                 => l_absence_rec.attribute8
7570        ,p_attribute9                 => l_absence_rec.attribute9
7571        ,p_attribute10                => l_absence_rec.attribute10
7572        ,p_attribute11                => l_absence_rec.attribute11
7573        ,p_attribute12                => l_absence_rec.attribute12
7574        ,p_attribute13                => l_absence_rec.attribute13
7575        ,p_attribute14                => l_absence_rec.attribute14
7576        ,p_attribute15                => l_absence_rec.attribute15
7577        ,p_attribute16                => l_absence_rec.attribute16
7578        ,p_attribute17                => l_absence_rec.attribute17
7579        ,p_attribute18                => l_absence_rec.attribute18
7580        ,p_attribute19                => l_absence_rec.attribute19
7581        ,p_attribute20                => l_absence_rec.attribute20
7582        ,p_period_of_incapacity_id    => null
7583        ,p_ssp1_issued                => 'N'
7584        ,p_maternity_id               => null
7585        ,p_sickness_start_date        => l_sickness_start_date --2966372
7586        ,p_sickness_end_date          => l_sickness_end_date --2966372
7587        ,p_pregnancy_related_illness     => 'N'
7588        ,p_reason_for_notification_dela  => null
7589        ,p_accept_late_notification_fla  => 'N'
7590        ,p_linked_absence_id             => null
7591        ,p_abs_information_category         => l_absence_rec.abs_information_category
7592        ,p_abs_information1                 => l_absence_rec.abs_information1
7593        ,p_abs_information2                 => l_absence_rec.abs_information2
7594        ,p_abs_information3                 => l_absence_rec.abs_information3
7595        ,p_abs_information4                 => l_absence_rec.abs_information4
7596        ,p_abs_information5                 => l_absence_rec.abs_information5
7597        ,p_abs_information6                 => l_absence_rec.abs_information6
7598        ,p_abs_information7                 => l_absence_rec.abs_information7
7599        ,p_abs_information8                 => l_absence_rec.abs_information8
7600        ,p_abs_information9                 => l_absence_rec.abs_information9
7601        ,p_abs_information10                => l_absence_rec.abs_information10
7602        ,p_abs_information11                => l_absence_rec.abs_information11
7603        ,p_abs_information12                => l_absence_rec.abs_information12
7604        ,p_abs_information13                => l_absence_rec.abs_information13
7605        ,p_abs_information14                => l_absence_rec.abs_information14
7606        ,p_abs_information15                => l_absence_rec.abs_information15
7607        ,p_abs_information16                => l_absence_rec.abs_information16
7608        ,p_abs_information17                => l_absence_rec.abs_information17
7609        ,p_abs_information18                => l_absence_rec.abs_information18
7610        ,p_abs_information19                => l_absence_rec.abs_information19
7611        ,p_abs_information20                => l_absence_rec.abs_information20
7612        ,p_abs_information21                => l_absence_rec.abs_information21
7613        ,p_abs_information22                => l_absence_rec.abs_information22
7614        ,p_abs_information23                => l_absence_rec.abs_information23
7615        ,p_abs_information24                => l_absence_rec.abs_information24
7616        ,p_abs_information25                => l_absence_rec.abs_information25
7617        ,p_abs_information26                => l_absence_rec.abs_information26
7618        ,p_abs_information27                => l_absence_rec.abs_information27
7619        ,p_abs_information28                => l_absence_rec.abs_information28
7620        ,p_abs_information29                => l_absence_rec.abs_information29
7621        ,p_abs_information30                => l_absence_rec.abs_information30
7622        ,p_comments                   => l_absence_rec.comments --3232911
7623        ,p_object_version_number      => l_object_version_number
7624        ,p_dur_dys_less_warning       => lb_dur_dys_less_warning
7625        ,p_dur_hrs_less_warning       => lb_dur_hrs_less_warning
7626        ,p_exceeds_pto_entit_warning  => lb_exceeds_pto_entit_warning
7627        ,p_exceeds_run_total_warning  => lb_exceeds_run_total_warning
7628        ,p_abs_overlap_warning        => lb_abs_overlap_warning
7629        ,p_abs_day_after_warning      => lb_abs_day_after_warning
7630        ,p_dur_overwritten_warning    => lb_dur_overwritten_warning
7631        ,p_del_element_entry_warning     => lb_del_element_entry_warning
7632       );
7633 
7634   end if;
7635   -- Fix 2706099
7636   -- No error should be displayed for such warnings
7637 
7638 
7639   -- 2713296
7640   --if lb_abs_overlap_warning = true then
7641       --rollback to loa_process_api;
7642       --hr_utility.set_message(800, 'HR_LOA_ABSENCE_OVERLAP');
7643       --hr_utility.raise_error;
7644   --end if;
7645   -- 2713296
7646 
7647    hr_utility.set_location(' Leaving:' || l_proc,45);
7648 
7649 
7650   EXCEPTION
7651   WHEN OTHERS THEN
7652     rollback to loa_process_api;
7653     hr_utility.trace('Exception in .process_api:' || SQLERRM );
7654     hr_utility.set_location(' Leaving:' || l_proc,555);
7655 
7656     raise ;
7657   end process_api;
7658 
7659   /*
7660   ||===========================================================================
7661   || PROCEDURE: get_abs_from_tt
7662   ||---------------------------------------------------------------------------
7663   ||
7664   || Description:
7665   ||     This procedure will retrieve data from hr_api_transaction_values
7666   ||
7667   || Access Status:
7668   ||     Public.
7669   ||
7670   ||===========================================================================
7671   */
7672   procedure get_abs_from_tt(
7673    p_transaction_step_id in  number
7674   ,p_absence_rec         out nocopy per_absence_attendances%rowtype
7675   ) is
7676 
7677   l_proc                 varchar2(72) := g_package||'get_abs_from_tt';
7678   --
7679   begin
7680 
7681   --hr_utility.set_location(' Entering:' || l_proc,5);
7682 
7683     p_absence_rec.business_group_id:=
7684       hr_transaction_api.get_number_value
7685       (p_transaction_step_id => p_transaction_step_id
7686       ,p_name                => 'p_business_group_id');
7687   --
7688     p_absence_rec.person_id:=
7689       hr_transaction_api.get_number_value
7690       (p_transaction_step_id => p_transaction_step_id
7691       ,p_name                => 'p_person_id');
7692   --
7693     p_absence_rec.absence_attendance_type_id:=
7694       hr_transaction_api.get_number_value
7695       (p_transaction_step_id =>  p_transaction_step_id
7696       ,p_name                => 'p_absence_attendance_type_id');
7697   --
7698     p_absence_rec.abs_attendance_reason_id:=
7699       hr_transaction_api.get_number_value
7700       (p_transaction_step_id =>  p_transaction_step_id
7701       ,p_name                => 'p_abs_attendance_reason_id');
7702   --
7703     p_absence_rec.comments:=
7704       hr_transaction_api.get_varchar2_value
7705       (p_transaction_step_id => p_transaction_step_id
7706       ,p_name                => 'p_comments');
7707   --
7708     p_absence_rec.date_notification:=
7709       hr_transaction_api.get_date_value
7710       (p_transaction_step_id => p_transaction_step_id
7711       ,p_name                => 'p_date_notification');
7712   --
7713     p_absence_rec.authorising_person_id:=
7714       hr_transaction_api.get_number_value
7715       (p_transaction_step_id =>  p_transaction_step_id
7716       ,p_name                => 'p_authorising_person_id');
7717   --
7718     p_absence_rec.replacement_person_id:=
7719       hr_transaction_api.get_number_value
7720       (p_transaction_step_id =>  p_transaction_step_id
7721       ,p_name                => 'p_replacement_person_id');
7722   --
7723     p_absence_rec.date_projected_start:=
7724       hr_transaction_api.get_date_value
7725       (p_transaction_step_id => p_transaction_step_id
7726       ,p_name                => 'p_date_projected_start');
7727   --
7728     p_absence_rec.time_projected_start:=
7729       hr_transaction_api.get_varchar2_value
7730       (p_transaction_step_id => p_transaction_step_id
7731       ,p_name                => 'p_time_projected_start');
7732   --
7733     p_absence_rec.date_projected_end:=
7734       hr_transaction_api.get_date_value
7735       (p_transaction_step_id => p_transaction_step_id
7736       ,p_name                => 'p_date_projected_end');
7737   --
7738     p_absence_rec.time_projected_end:=
7739       hr_transaction_api.get_varchar2_value
7740       (p_transaction_step_id => p_transaction_step_id
7741       ,p_name                => 'p_time_projected_end');
7742   --
7743     p_absence_rec.date_start:=
7744       hr_transaction_api.get_date_value
7745       (p_transaction_step_id => p_transaction_step_id
7746       ,p_name                => 'p_date_start');
7747   --
7748     p_absence_rec.time_start:=
7749       hr_transaction_api.get_varchar2_value
7750       (p_transaction_step_id => p_transaction_step_id
7751       ,p_name                => 'p_time_start');
7752   --
7753     p_absence_rec.date_end:=
7754       hr_transaction_api.get_date_value
7755       (p_transaction_step_id => p_transaction_step_id
7756       ,p_name                => 'p_date_end');
7757   --
7758     p_absence_rec.time_end:=
7759       hr_transaction_api.get_varchar2_value
7760       (p_transaction_step_id => p_transaction_step_id
7761       ,p_name                => 'p_time_end');
7762   --
7763     p_absence_rec.absence_days:=
7764       hr_transaction_api.get_number_value
7765       (p_transaction_step_id => p_transaction_step_id
7766       ,p_name                => 'p_absence_days');
7767   --
7768     p_absence_rec.absence_hours:=
7769       hr_transaction_api.get_number_value
7770       (p_transaction_step_id => p_transaction_step_id
7771       ,p_name                => 'p_absence_hours');
7772   --
7773     p_absence_rec.attribute_category:=
7774       hr_transaction_api.get_varchar2_value
7775       (p_transaction_step_id => p_transaction_step_id
7776       ,p_name                => 'p_attribute_category');
7777   --
7778     p_absence_rec.attribute1 :=
7779       hr_transaction_api.get_varchar2_value
7780       (p_transaction_step_id => p_transaction_step_id
7781       ,p_name                => 'p_attribute1');
7782   --
7783 
7784     p_absence_rec.attribute2 :=
7785       hr_transaction_api.get_varchar2_value
7786       (p_transaction_step_id => p_transaction_step_id
7787       ,p_name                => 'p_attribute2');
7788   --
7789     p_absence_rec.attribute3 :=
7790       hr_transaction_api.get_varchar2_value
7791       (p_transaction_step_id => p_transaction_step_id
7792       ,p_name                => 'p_attribute3');
7793   --
7794     p_absence_rec.attribute4 :=
7795       hr_transaction_api.get_varchar2_value
7796       (p_transaction_step_id => p_transaction_step_id
7797       ,p_name                => 'p_attribute4');
7798   --
7799     p_absence_rec.attribute5 :=
7800       hr_transaction_api.get_varchar2_value
7801       (p_transaction_step_id => p_transaction_step_id
7802       ,p_name                => 'p_attribute5');
7803   --
7804     p_absence_rec.attribute6 :=
7805       hr_transaction_api.get_varchar2_value
7806       (p_transaction_step_id => p_transaction_step_id
7807       ,p_name                => 'p_attribute6');
7808   --
7809     p_absence_rec.attribute7 :=
7810       hr_transaction_api.get_varchar2_value
7811       (p_transaction_step_id => p_transaction_step_id
7812       ,p_name                => 'p_attribute7');
7813   --
7814     p_absence_rec.attribute8 :=
7815       hr_transaction_api.get_varchar2_value
7816       (p_transaction_step_id => p_transaction_step_id
7817       ,p_name                => 'p_attribute8');
7818   --
7819     p_absence_rec.attribute9 :=
7820       hr_transaction_api.get_varchar2_value
7821       (p_transaction_step_id => p_transaction_step_id
7822       ,p_name                => 'p_attribute9');
7823   --
7824     p_absence_rec.attribute10 :=
7825       hr_transaction_api.get_varchar2_value
7826       (p_transaction_step_id => p_transaction_step_id
7827       ,p_name                => 'p_attribute10');
7828   --
7829     p_absence_rec.attribute11 :=
7830       hr_transaction_api.get_varchar2_value
7831       (p_transaction_step_id => p_transaction_step_id
7832       ,p_name                => 'p_attribute11');
7833   --
7834     p_absence_rec.attribute12 :=
7835       hr_transaction_api.get_varchar2_value
7836       (p_transaction_step_id => p_transaction_step_id
7837       ,p_name                => 'p_attribute12');
7838   --
7839     p_absence_rec.attribute13 :=
7840       hr_transaction_api.get_varchar2_value
7841       (p_transaction_step_id => p_transaction_step_id
7842       ,p_name                => 'p_attribute13');
7843   --
7844     p_absence_rec.attribute14 :=
7845       hr_transaction_api.get_varchar2_value
7846       (p_transaction_step_id => p_transaction_step_id
7847       ,p_name                => 'p_attribute14');
7848   --
7849     p_absence_rec.attribute15 :=
7850       hr_transaction_api.get_varchar2_value
7851       (p_transaction_step_id => p_transaction_step_id
7852       ,p_name                => 'p_attribute15');
7853   --
7854     p_absence_rec.attribute16 :=
7855       hr_transaction_api.get_varchar2_value
7856       (p_transaction_step_id => p_transaction_step_id
7857       ,p_name                => 'p_attribute16');
7858   --
7859     p_absence_rec.attribute17 :=
7860       hr_transaction_api.get_varchar2_value
7861       (p_transaction_step_id => p_transaction_step_id
7862       ,p_name                => 'p_attribute17');
7863   --
7864     p_absence_rec.attribute18 :=
7865       hr_transaction_api.get_varchar2_value
7866       (p_transaction_step_id => p_transaction_step_id
7867       ,p_name                => 'p_attribute18');
7868   --
7869     p_absence_rec.attribute19 :=
7870       hr_transaction_api.get_varchar2_value
7871       (p_transaction_step_id => p_transaction_step_id
7872       ,p_name                => 'p_attribute19');
7873   --
7874     p_absence_rec.attribute20 :=
7875       hr_transaction_api.get_varchar2_value
7876       (p_transaction_step_id => p_transaction_step_id
7877       ,p_name                => 'p_attribute20');
7878   --
7879     p_absence_rec.abs_information_category:=
7880       hr_transaction_api.get_varchar2_value
7881       (p_transaction_step_id => p_transaction_step_id
7882       ,p_name                => 'p_abs_information_category');
7883   --
7884     p_absence_rec.abs_information1 :=
7885       hr_transaction_api.get_varchar2_value
7886       (p_transaction_step_id => p_transaction_step_id
7887       ,p_name                => 'p_abs_information1');
7888   --
7889 
7890     p_absence_rec.abs_information2 :=
7891       hr_transaction_api.get_varchar2_value
7892       (p_transaction_step_id => p_transaction_step_id
7893       ,p_name                => 'p_abs_information2');
7894   --
7895     p_absence_rec.abs_information3 :=
7896       hr_transaction_api.get_varchar2_value
7897       (p_transaction_step_id => p_transaction_step_id
7898       ,p_name                => 'p_abs_information3');
7899   --
7900     p_absence_rec.abs_information4 :=
7901       hr_transaction_api.get_varchar2_value
7902       (p_transaction_step_id => p_transaction_step_id
7903       ,p_name                => 'p_abs_information4');
7904   --
7905     p_absence_rec.abs_information5 :=
7906       hr_transaction_api.get_varchar2_value
7907       (p_transaction_step_id => p_transaction_step_id
7908       ,p_name                => 'p_abs_information5');
7909   --
7910     p_absence_rec.abs_information6 :=
7911       hr_transaction_api.get_varchar2_value
7912       (p_transaction_step_id => p_transaction_step_id
7913       ,p_name                => 'p_abs_information6');
7914   --
7915     p_absence_rec.abs_information7 :=
7916       hr_transaction_api.get_varchar2_value
7917       (p_transaction_step_id => p_transaction_step_id
7918       ,p_name                => 'p_abs_information7');
7919   --
7920     p_absence_rec.abs_information8 :=
7921       hr_transaction_api.get_varchar2_value
7922       (p_transaction_step_id => p_transaction_step_id
7923       ,p_name                => 'p_abs_information8');
7924   --
7925     p_absence_rec.abs_information9 :=
7926       hr_transaction_api.get_varchar2_value
7927       (p_transaction_step_id => p_transaction_step_id
7928       ,p_name                => 'p_abs_information9');
7929   --
7930     p_absence_rec.abs_information10 :=
7931       hr_transaction_api.get_varchar2_value
7932       (p_transaction_step_id => p_transaction_step_id
7933       ,p_name                => 'p_abs_information10');
7934   --
7935     p_absence_rec.abs_information11 :=
7936       hr_transaction_api.get_varchar2_value
7937       (p_transaction_step_id => p_transaction_step_id
7938       ,p_name                => 'p_abs_information11');
7939   --
7940     p_absence_rec.abs_information12 :=
7941       hr_transaction_api.get_varchar2_value
7942       (p_transaction_step_id => p_transaction_step_id
7943       ,p_name                => 'p_abs_information12');
7944   --
7945     p_absence_rec.abs_information13 :=
7946       hr_transaction_api.get_varchar2_value
7947       (p_transaction_step_id => p_transaction_step_id
7948       ,p_name                => 'p_abs_information13');
7949   --
7950     p_absence_rec.abs_information14 :=
7951       hr_transaction_api.get_varchar2_value
7952       (p_transaction_step_id => p_transaction_step_id
7953       ,p_name                => 'p_abs_information14');
7954   --
7955     p_absence_rec.abs_information15 :=
7956       hr_transaction_api.get_varchar2_value
7957       (p_transaction_step_id => p_transaction_step_id
7958       ,p_name                => 'p_abs_information15');
7959   --
7960     p_absence_rec.abs_information16 :=
7961       hr_transaction_api.get_varchar2_value
7962       (p_transaction_step_id => p_transaction_step_id
7963       ,p_name                => 'p_abs_information16');
7964   --
7965     p_absence_rec.abs_information17 :=
7966       hr_transaction_api.get_varchar2_value
7967       (p_transaction_step_id => p_transaction_step_id
7968       ,p_name                => 'p_abs_information17');
7969   --
7970     p_absence_rec.abs_information18 :=
7971       hr_transaction_api.get_varchar2_value
7972       (p_transaction_step_id => p_transaction_step_id
7973       ,p_name                => 'p_abs_information18');
7974   --
7975     p_absence_rec.abs_information19 :=
7976       hr_transaction_api.get_varchar2_value
7977       (p_transaction_step_id => p_transaction_step_id
7978       ,p_name                => 'p_abs_information19');
7979   --
7980     p_absence_rec.abs_information20 :=
7981       hr_transaction_api.get_varchar2_value
7982       (p_transaction_step_id => p_transaction_step_id
7983       ,p_name                => 'p_abs_information20');
7984   --
7985     p_absence_rec.abs_information21 :=
7986       hr_transaction_api.get_varchar2_value
7987       (p_transaction_step_id => p_transaction_step_id
7988       ,p_name                => 'p_abs_information21');
7989   --
7990     p_absence_rec.abs_information22 :=
7991       hr_transaction_api.get_varchar2_value
7992       (p_transaction_step_id => p_transaction_step_id
7993       ,p_name                => 'p_abs_information22');
7994   --
7995     p_absence_rec.abs_information23 :=
7996       hr_transaction_api.get_varchar2_value
7997       (p_transaction_step_id => p_transaction_step_id
7998       ,p_name                => 'p_abs_information23');
7999   --
8000     p_absence_rec.abs_information24 :=
8001       hr_transaction_api.get_varchar2_value
8002       (p_transaction_step_id => p_transaction_step_id
8003       ,p_name                => 'p_abs_information24');
8004   --
8005     p_absence_rec.abs_information25 :=
8006       hr_transaction_api.get_varchar2_value
8007       (p_transaction_step_id => p_transaction_step_id
8008       ,p_name                => 'p_abs_information25');
8009   --
8010     p_absence_rec.abs_information26 :=
8011       hr_transaction_api.get_varchar2_value
8012       (p_transaction_step_id => p_transaction_step_id
8013       ,p_name                => 'p_abs_information26');
8014   --
8015     p_absence_rec.abs_information27 :=
8016       hr_transaction_api.get_varchar2_value
8017       (p_transaction_step_id => p_transaction_step_id
8018       ,p_name                => 'p_abs_information27');
8019 
8020   --
8021     p_absence_rec.abs_information28 :=
8022       hr_transaction_api.get_varchar2_value
8023       (p_transaction_step_id => p_transaction_step_id
8024       ,p_name                => 'p_abs_information28');
8025   --
8026     p_absence_rec.abs_information29 :=
8027       hr_transaction_api.get_varchar2_value
8028       (p_transaction_step_id => p_transaction_step_id
8029       ,p_name                => 'p_abs_information29');
8030   --
8031     p_absence_rec.abs_information30 :=
8032       hr_transaction_api.get_varchar2_value
8033       (p_transaction_step_id => p_transaction_step_id
8034       ,p_name                => 'p_abs_information30');
8035   --
8036   hr_utility.set_location(' Leaving:' || l_proc,10);
8037 
8038 
8039   EXCEPTION
8040   WHEN OTHERS THEN
8041   hr_utility.trace ( 'Exception in .get_abs_from_tt: ' || SQLERRM );
8042   hr_utility.set_location(' Leaving:' || l_proc,15);
8043 
8044     raise ;
8045  end get_abs_from_tt;
8046 
8047   /*
8048   ||===========================================================================
8049   || PROCEDURE: get_rtn_from_tt
8050   ||---------------------------------------------------------------------------
8051   ||
8052   || Description:
8053   ||     This procedure will retrieve data from hr_api_transaction_values
8054   ||
8055   || Access Status:
8056   ||     Public.
8057   ||
8058   ||===========================================================================
8059   */
8060   procedure get_rtn_from_tt(
8061    p_transaction_step_id in  number
8062   ,p_absence_rec         out nocopy per_absence_attendances%rowtype
8063   ) is
8064 
8065   --
8066   l_proc                 varchar2(72) := g_package||'get_rtn_from_tt';
8067   --
8068   begin
8069 
8070   --
8071   hr_utility.set_location(' Entering:' || l_proc,5);
8072 
8073     p_absence_rec.person_id:=
8074       hr_transaction_api.get_number_value
8075       (p_transaction_step_id => p_transaction_step_id
8076       ,p_name                => 'p_person_id');
8077   --
8078     p_absence_rec.absence_attendance_type_id:=
8079       hr_transaction_api.get_number_value
8080       (p_transaction_step_id =>  p_transaction_step_id
8081       ,p_name                => 'p_absence_attendance_type_id');
8082   --
8083     p_absence_rec.absence_attendance_id:=
8084       hr_transaction_api.get_number_value
8085       (p_transaction_step_id => p_transaction_step_id
8086       ,p_name                => 'p_absence_attendance_id');
8087   --
8088     p_absence_rec.business_group_id:=
8089       hr_transaction_api.get_number_value
8090       (p_transaction_step_id => p_transaction_step_id
8091       ,p_name                => 'p_business_group_id');
8092   --
8093     p_absence_rec.object_version_number:=
8094       hr_transaction_api.get_number_value
8095       (p_transaction_step_id => p_transaction_step_id
8096       ,p_name                => 'p_object_version_number');
8097   --
8098     p_absence_rec.date_notification:=
8099       hr_transaction_api.get_date_value
8100       (p_transaction_step_id => p_transaction_step_id
8101       ,p_name                => 'p_date_notification');
8102   --
8103     p_absence_rec.date_start:=
8104       hr_transaction_api.get_date_value
8105       (p_transaction_step_id => p_transaction_step_id
8106       ,p_name                => 'p_date_start');
8107   --
8108     p_absence_rec.time_start:=
8109       hr_transaction_api.get_varchar2_value
8110       (p_transaction_step_id => p_transaction_step_id
8111       ,p_name                => 'p_time_start');
8112   --
8113     p_absence_rec.date_end:=
8114       hr_transaction_api.get_date_value
8115       (p_transaction_step_id => p_transaction_step_id
8116       ,p_name                => 'p_date_end');
8117   --
8118     p_absence_rec.time_end:=
8119       hr_transaction_api.get_varchar2_value
8120       (p_transaction_step_id => p_transaction_step_id
8121       ,p_name                => 'p_time_end');
8122   --
8123     p_absence_rec.absence_days:=
8124       hr_transaction_api.get_number_value
8125       (p_transaction_step_id => p_transaction_step_id
8126       ,p_name                => 'p_absence_days');
8127   --
8128     p_absence_rec.absence_hours:=
8129       hr_transaction_api.get_number_value
8130       (p_transaction_step_id => p_transaction_step_id
8131       ,p_name                => 'p_absence_hours');
8132   --
8133     p_absence_rec.replacement_person_id:=
8134       hr_transaction_api.get_number_value
8135       (p_transaction_step_id =>  p_transaction_step_id
8136       ,p_name                => 'p_replacement_person_id');
8137 
8138   --
8139     p_absence_rec.comments:=
8140       hr_transaction_api.get_varchar2_value
8141       (p_transaction_step_id => p_transaction_step_id
8142       ,p_name                => 'p_comments');
8143 
8144   --
8145     p_absence_rec.attribute_category:=
8146       hr_transaction_api.get_varchar2_value
8147       (p_transaction_step_id => p_transaction_step_id
8148       ,p_name                => 'p_attribute_category');
8149   --
8150     p_absence_rec.attribute1 :=
8151       hr_transaction_api.get_varchar2_value
8152       (p_transaction_step_id => p_transaction_step_id
8153       ,p_name                => 'p_attribute1');
8154   --
8155 
8156     p_absence_rec.attribute2 :=
8157       hr_transaction_api.get_varchar2_value
8158       (p_transaction_step_id => p_transaction_step_id
8159       ,p_name                => 'p_attribute2');
8160   --
8161     p_absence_rec.attribute3 :=
8162       hr_transaction_api.get_varchar2_value
8163       (p_transaction_step_id => p_transaction_step_id
8164       ,p_name                => 'p_attribute3');
8165   --
8166     p_absence_rec.attribute4 :=
8167       hr_transaction_api.get_varchar2_value
8168       (p_transaction_step_id => p_transaction_step_id
8169       ,p_name                => 'p_attribute4');
8170   --
8171     p_absence_rec.attribute5 :=
8172       hr_transaction_api.get_varchar2_value
8173       (p_transaction_step_id => p_transaction_step_id
8174       ,p_name                => 'p_attribute5');
8175   --
8176     p_absence_rec.attribute6 :=
8177       hr_transaction_api.get_varchar2_value
8178       (p_transaction_step_id => p_transaction_step_id
8179       ,p_name                => 'p_attribute6');
8180   --
8181     p_absence_rec.attribute7 :=
8182       hr_transaction_api.get_varchar2_value
8183       (p_transaction_step_id => p_transaction_step_id
8184       ,p_name                => 'p_attribute7');
8185   --
8186     p_absence_rec.attribute8 :=
8187       hr_transaction_api.get_varchar2_value
8188       (p_transaction_step_id => p_transaction_step_id
8189       ,p_name                => 'p_attribute8');
8190   --
8191     p_absence_rec.attribute9 :=
8192       hr_transaction_api.get_varchar2_value
8193       (p_transaction_step_id => p_transaction_step_id
8194       ,p_name                => 'p_attribute9');
8195   --
8196     p_absence_rec.attribute10 :=
8197       hr_transaction_api.get_varchar2_value
8198       (p_transaction_step_id => p_transaction_step_id
8199       ,p_name                => 'p_attribute10');
8200   --
8201     p_absence_rec.attribute11 :=
8202       hr_transaction_api.get_varchar2_value
8203       (p_transaction_step_id => p_transaction_step_id
8204       ,p_name                => 'p_attribute11');
8205   --
8206     p_absence_rec.attribute12 :=
8207       hr_transaction_api.get_varchar2_value
8208       (p_transaction_step_id => p_transaction_step_id
8209       ,p_name                => 'p_attribute12');
8210   --
8211     p_absence_rec.attribute13 :=
8212       hr_transaction_api.get_varchar2_value
8213       (p_transaction_step_id => p_transaction_step_id
8214       ,p_name                => 'p_attribute13');
8215   --
8216     p_absence_rec.attribute14 :=
8217       hr_transaction_api.get_varchar2_value
8218       (p_transaction_step_id => p_transaction_step_id
8219       ,p_name                => 'p_attribute14');
8220   --
8221     p_absence_rec.attribute15 :=
8222       hr_transaction_api.get_varchar2_value
8223       (p_transaction_step_id => p_transaction_step_id
8224       ,p_name                => 'p_attribute15');
8225   --
8226     p_absence_rec.attribute16 :=
8227       hr_transaction_api.get_varchar2_value
8228       (p_transaction_step_id => p_transaction_step_id
8229       ,p_name                => 'p_attribute16');
8230   --
8231     p_absence_rec.attribute17 :=
8232       hr_transaction_api.get_varchar2_value
8233       (p_transaction_step_id => p_transaction_step_id
8234       ,p_name                => 'p_attribute17');
8235   --
8236     p_absence_rec.attribute18 :=
8237       hr_transaction_api.get_varchar2_value
8238       (p_transaction_step_id => p_transaction_step_id
8239       ,p_name                => 'p_attribute18');
8240   --
8241     p_absence_rec.attribute19 :=
8242       hr_transaction_api.get_varchar2_value
8243       (p_transaction_step_id => p_transaction_step_id
8244       ,p_name                => 'p_attribute19');
8245   --
8246     p_absence_rec.attribute20 :=
8247       hr_transaction_api.get_varchar2_value
8248       (p_transaction_step_id => p_transaction_step_id
8249       ,p_name                => 'p_attribute20');
8250   --
8251     p_absence_rec.abs_information_category:=
8252       hr_transaction_api.get_varchar2_value
8253       (p_transaction_step_id => p_transaction_step_id
8254       ,p_name                => 'p_abs_information_category');
8255   --
8256     p_absence_rec.abs_information1 :=
8257       hr_transaction_api.get_varchar2_value
8258       (p_transaction_step_id => p_transaction_step_id
8259       ,p_name                => 'p_abs_information1');
8260   --
8261 
8262     p_absence_rec.abs_information2 :=
8263       hr_transaction_api.get_varchar2_value
8264       (p_transaction_step_id => p_transaction_step_id
8265       ,p_name                => 'p_abs_information2');
8266   --
8267     p_absence_rec.abs_information3 :=
8268       hr_transaction_api.get_varchar2_value
8269       (p_transaction_step_id => p_transaction_step_id
8270       ,p_name                => 'p_abs_information3');
8271   --
8272     p_absence_rec.abs_information4 :=
8273       hr_transaction_api.get_varchar2_value
8274       (p_transaction_step_id => p_transaction_step_id
8275       ,p_name                => 'p_abs_information4');
8276   --
8277     p_absence_rec.abs_information5 :=
8278       hr_transaction_api.get_varchar2_value
8279       (p_transaction_step_id => p_transaction_step_id
8280       ,p_name                => 'p_abs_information5');
8281   --
8282     p_absence_rec.abs_information6 :=
8283       hr_transaction_api.get_varchar2_value
8284       (p_transaction_step_id => p_transaction_step_id
8285       ,p_name                => 'p_abs_information6');
8286   --
8287     p_absence_rec.abs_information7 :=
8288       hr_transaction_api.get_varchar2_value
8289       (p_transaction_step_id => p_transaction_step_id
8290       ,p_name                => 'p_abs_information7');
8291   --
8292     p_absence_rec.abs_information8 :=
8293       hr_transaction_api.get_varchar2_value
8294       (p_transaction_step_id => p_transaction_step_id
8295       ,p_name                => 'p_abs_information8');
8296   --
8297     p_absence_rec.abs_information9 :=
8298       hr_transaction_api.get_varchar2_value
8299       (p_transaction_step_id => p_transaction_step_id
8300       ,p_name                => 'p_abs_information9');
8301   --
8302     p_absence_rec.abs_information10 :=
8303       hr_transaction_api.get_varchar2_value
8304       (p_transaction_step_id => p_transaction_step_id
8305       ,p_name                => 'p_abs_information10');
8306   --
8307     p_absence_rec.abs_information11 :=
8308       hr_transaction_api.get_varchar2_value
8309       (p_transaction_step_id => p_transaction_step_id
8310       ,p_name                => 'p_abs_information11');
8311   --
8312     p_absence_rec.abs_information12 :=
8313       hr_transaction_api.get_varchar2_value
8314       (p_transaction_step_id => p_transaction_step_id
8315       ,p_name                => 'p_abs_information12');
8316   --
8317     p_absence_rec.abs_information13 :=
8318       hr_transaction_api.get_varchar2_value
8319       (p_transaction_step_id => p_transaction_step_id
8320       ,p_name                => 'p_abs_information13');
8321   --
8322     p_absence_rec.abs_information14 :=
8323       hr_transaction_api.get_varchar2_value
8324       (p_transaction_step_id => p_transaction_step_id
8325       ,p_name                => 'p_abs_information14');
8326   --
8327     p_absence_rec.abs_information15 :=
8328       hr_transaction_api.get_varchar2_value
8329       (p_transaction_step_id => p_transaction_step_id
8330       ,p_name                => 'p_abs_information15');
8331   --
8332     p_absence_rec.abs_information16 :=
8333       hr_transaction_api.get_varchar2_value
8334       (p_transaction_step_id => p_transaction_step_id
8335       ,p_name                => 'p_abs_information16');
8336   --
8337     p_absence_rec.abs_information17 :=
8338       hr_transaction_api.get_varchar2_value
8339       (p_transaction_step_id => p_transaction_step_id
8340       ,p_name                => 'p_abs_information17');
8341   --
8342     p_absence_rec.abs_information18 :=
8343       hr_transaction_api.get_varchar2_value
8344       (p_transaction_step_id => p_transaction_step_id
8345       ,p_name                => 'p_abs_information18');
8346   --
8347     p_absence_rec.abs_information19 :=
8348       hr_transaction_api.get_varchar2_value
8349       (p_transaction_step_id => p_transaction_step_id
8350       ,p_name                => 'p_abs_information19');
8351   --
8352     p_absence_rec.abs_information20 :=
8353       hr_transaction_api.get_varchar2_value
8354       (p_transaction_step_id => p_transaction_step_id
8355       ,p_name                => 'p_abs_information20');
8356   --
8357     p_absence_rec.abs_information21 :=
8358       hr_transaction_api.get_varchar2_value
8359       (p_transaction_step_id => p_transaction_step_id
8360       ,p_name                => 'p_abs_information21');
8361   --
8362     p_absence_rec.abs_information22 :=
8363       hr_transaction_api.get_varchar2_value
8364       (p_transaction_step_id => p_transaction_step_id
8365       ,p_name                => 'p_abs_information22');
8366   --
8367     p_absence_rec.abs_information23 :=
8368       hr_transaction_api.get_varchar2_value
8369       (p_transaction_step_id => p_transaction_step_id
8370       ,p_name                => 'p_abs_information23');
8371   --
8372     p_absence_rec.abs_information24 :=
8373       hr_transaction_api.get_varchar2_value
8374       (p_transaction_step_id => p_transaction_step_id
8375       ,p_name                => 'p_abs_information24');
8376   --
8377     p_absence_rec.abs_information25 :=
8378       hr_transaction_api.get_varchar2_value
8379       (p_transaction_step_id => p_transaction_step_id
8380       ,p_name                => 'p_abs_information25');
8381   --
8382     p_absence_rec.abs_information26 :=
8383       hr_transaction_api.get_varchar2_value
8384       (p_transaction_step_id => p_transaction_step_id
8385       ,p_name                => 'p_abs_information26');
8386   --
8387     p_absence_rec.abs_information27 :=
8388       hr_transaction_api.get_varchar2_value
8389       (p_transaction_step_id => p_transaction_step_id
8390       ,p_name                => 'p_abs_information27');
8391 
8392   --
8393     p_absence_rec.abs_information28 :=
8394       hr_transaction_api.get_varchar2_value
8395       (p_transaction_step_id => p_transaction_step_id
8396       ,p_name                => 'p_abs_information28');
8397   --
8398     p_absence_rec.abs_information29 :=
8399       hr_transaction_api.get_varchar2_value
8400       (p_transaction_step_id => p_transaction_step_id
8401       ,p_name                => 'p_abs_information29');
8402   --
8403     p_absence_rec.abs_information30 :=
8404       hr_transaction_api.get_varchar2_value
8405       (p_transaction_step_id => p_transaction_step_id
8406       ,p_name                => 'p_abs_information30');
8407   --
8408   hr_utility.set_location(' Leaving:' || l_proc,10);
8409 
8410   EXCEPTION
8411   WHEN OTHERS THEN
8412   hr_utility.trace(' get_rtn_from_tt: ' || SQLERRM );
8413   hr_utility.set_location(' Leaving:' || l_proc,555);
8414 
8415     raise ;
8416  end get_rtn_from_tt;
8417 
8418   /*
8419   ||===========================================================================
8420   || PROCEDURE: get_upd_from_tt
8421   ||---------------------------------------------------------------------------
8422   ||
8423   || Description:
8424   ||     This procedure will retrieve data from hr_api_transaction_values
8425   ||
8426   || Access Status:
8427   ||     Public.
8428   ||
8429   ||===========================================================================
8430   */
8431   procedure get_upd_from_tt(
8432    p_transaction_step_id in  number
8433   ,p_absence_rec         out nocopy per_absence_attendances%rowtype
8434   ) is
8435 
8436   --
8437   l_proc                 varchar2(72) := g_package||'get_upd_from_tt';
8438   --
8439   begin
8440 
8441 hr_utility.set_location(' Entering:' || l_proc,5);
8442 
8443   --
8444     p_absence_rec.absence_attendance_id:=
8445       hr_transaction_api.get_number_value
8446       (p_transaction_step_id => p_transaction_step_id
8447       ,p_name                => 'p_absence_attendance_id');
8448   --
8449     p_absence_rec.business_group_id:=
8450       hr_transaction_api.get_number_value
8451       (p_transaction_step_id => p_transaction_step_id
8452       ,p_name                => 'p_business_group_id');
8453   --
8454     p_absence_rec.object_version_number:=
8455       hr_transaction_api.get_number_value
8456       (p_transaction_step_id => p_transaction_step_id
8457       ,p_name                => 'p_object_version_number');
8458   --
8459     p_absence_rec.date_notification:=
8460       hr_transaction_api.get_date_value
8461       (p_transaction_step_id => p_transaction_step_id
8462       ,p_name                => 'p_date_notification');
8463   --
8464     p_absence_rec.date_projected_start:=
8465       hr_transaction_api.get_date_value
8466       (p_transaction_step_id => p_transaction_step_id
8467       ,p_name                => 'p_date_projected_start');
8468   --
8469     p_absence_rec.time_projected_start:=
8470       hr_transaction_api.get_varchar2_value
8471       (p_transaction_step_id => p_transaction_step_id
8472       ,p_name                => 'p_time_projected_start');
8473   --
8474     p_absence_rec.date_projected_end:=
8475       hr_transaction_api.get_date_value
8476       (p_transaction_step_id => p_transaction_step_id
8477       ,p_name                => 'p_date_projected_end');
8478   --
8479     p_absence_rec.time_projected_end:=
8480       hr_transaction_api.get_varchar2_value
8481       (p_transaction_step_id => p_transaction_step_id
8482       ,p_name                => 'p_time_projected_end');
8483   --
8484 -- Fix 3400323 Start
8485   --
8486     p_absence_rec.date_start:=
8487       hr_transaction_api.get_date_value
8488       (p_transaction_step_id => p_transaction_step_id
8489       ,p_name                => 'p_date_start');
8490   --
8491     p_absence_rec.time_start:=
8492       hr_transaction_api.get_varchar2_value
8493       (p_transaction_step_id => p_transaction_step_id
8494       ,p_name                => 'p_time_start');
8495   --
8496     p_absence_rec.date_end:=
8497       hr_transaction_api.get_date_value
8498       (p_transaction_step_id => p_transaction_step_id
8499       ,p_name                => 'p_date_end');
8500   --
8501     p_absence_rec.time_end:=
8502       hr_transaction_api.get_varchar2_value
8503       (p_transaction_step_id => p_transaction_step_id
8504       ,p_name                => 'p_time_end');
8505 --
8506 -- Fix 3400323 End
8507     p_absence_rec.absence_days:=
8508       hr_transaction_api.get_number_value
8509       (p_transaction_step_id => p_transaction_step_id
8510       ,p_name                => 'p_absence_days');
8511   --
8512     p_absence_rec.absence_hours:=
8513       hr_transaction_api.get_number_value
8514       (p_transaction_step_id => p_transaction_step_id
8515       ,p_name                => 'p_absence_hours');
8516   --
8517     p_absence_rec.replacement_person_id:=
8518       hr_transaction_api.get_number_value
8519       (p_transaction_step_id =>  p_transaction_step_id
8520       ,p_name                => 'p_replacement_person_id');
8521 
8522   --
8523     p_absence_rec.comments:=
8524       hr_transaction_api.get_varchar2_value
8525       (p_transaction_step_id => p_transaction_step_id
8526       ,p_name                => 'p_comments');
8527 
8528   --
8529     p_absence_rec.attribute_category:=
8530       hr_transaction_api.get_varchar2_value
8531       (p_transaction_step_id => p_transaction_step_id
8532       ,p_name                => 'p_attribute_category');
8533   --
8534     p_absence_rec.attribute1 :=
8535       hr_transaction_api.get_varchar2_value
8536       (p_transaction_step_id => p_transaction_step_id
8537       ,p_name                => 'p_attribute1');
8538   --
8539 
8540     p_absence_rec.attribute2 :=
8541       hr_transaction_api.get_varchar2_value
8542       (p_transaction_step_id => p_transaction_step_id
8543       ,p_name                => 'p_attribute2');
8544   --
8545     p_absence_rec.attribute3 :=
8546       hr_transaction_api.get_varchar2_value
8547       (p_transaction_step_id => p_transaction_step_id
8548       ,p_name                => 'p_attribute3');
8549   --
8550     p_absence_rec.attribute4 :=
8551       hr_transaction_api.get_varchar2_value
8552       (p_transaction_step_id => p_transaction_step_id
8553       ,p_name                => 'p_attribute4');
8554   --
8555     p_absence_rec.attribute5 :=
8556       hr_transaction_api.get_varchar2_value
8557       (p_transaction_step_id => p_transaction_step_id
8558       ,p_name                => 'p_attribute5');
8559   --
8560     p_absence_rec.attribute6 :=
8561       hr_transaction_api.get_varchar2_value
8562       (p_transaction_step_id => p_transaction_step_id
8563       ,p_name                => 'p_attribute6');
8564   --
8565     p_absence_rec.attribute7 :=
8566       hr_transaction_api.get_varchar2_value
8567       (p_transaction_step_id => p_transaction_step_id
8568       ,p_name                => 'p_attribute7');
8569   --
8570     p_absence_rec.attribute8 :=
8571       hr_transaction_api.get_varchar2_value
8572       (p_transaction_step_id => p_transaction_step_id
8573       ,p_name                => 'p_attribute8');
8574   --
8575     p_absence_rec.attribute9 :=
8576       hr_transaction_api.get_varchar2_value
8577       (p_transaction_step_id => p_transaction_step_id
8578       ,p_name                => 'p_attribute9');
8579   --
8580     p_absence_rec.attribute10 :=
8581       hr_transaction_api.get_varchar2_value
8582       (p_transaction_step_id => p_transaction_step_id
8583       ,p_name                => 'p_attribute10');
8584   --
8585     p_absence_rec.attribute11 :=
8586       hr_transaction_api.get_varchar2_value
8587       (p_transaction_step_id => p_transaction_step_id
8588       ,p_name                => 'p_attribute11');
8589   --
8590     p_absence_rec.attribute12 :=
8591       hr_transaction_api.get_varchar2_value
8592       (p_transaction_step_id => p_transaction_step_id
8593       ,p_name                => 'p_attribute12');
8594   --
8595     p_absence_rec.attribute13 :=
8596       hr_transaction_api.get_varchar2_value
8597       (p_transaction_step_id => p_transaction_step_id
8598       ,p_name                => 'p_attribute13');
8599   --
8600     p_absence_rec.attribute14 :=
8601       hr_transaction_api.get_varchar2_value
8602       (p_transaction_step_id => p_transaction_step_id
8603       ,p_name                => 'p_attribute14');
8604   --
8605     p_absence_rec.attribute15 :=
8606       hr_transaction_api.get_varchar2_value
8607       (p_transaction_step_id => p_transaction_step_id
8608       ,p_name                => 'p_attribute15');
8609   --
8610     p_absence_rec.attribute16 :=
8611       hr_transaction_api.get_varchar2_value
8612       (p_transaction_step_id => p_transaction_step_id
8613       ,p_name                => 'p_attribute16');
8614   --
8615     p_absence_rec.attribute17 :=
8616       hr_transaction_api.get_varchar2_value
8617       (p_transaction_step_id => p_transaction_step_id
8618       ,p_name                => 'p_attribute17');
8619   --
8620     p_absence_rec.attribute18 :=
8621       hr_transaction_api.get_varchar2_value
8622       (p_transaction_step_id => p_transaction_step_id
8623       ,p_name                => 'p_attribute18');
8624   --
8625     p_absence_rec.attribute19 :=
8626       hr_transaction_api.get_varchar2_value
8627       (p_transaction_step_id => p_transaction_step_id
8628       ,p_name                => 'p_attribute19');
8629   --
8630     p_absence_rec.attribute20 :=
8631       hr_transaction_api.get_varchar2_value
8632       (p_transaction_step_id => p_transaction_step_id
8633       ,p_name                => 'p_attribute20');
8634   --
8635     p_absence_rec.abs_information_category:=
8636       hr_transaction_api.get_varchar2_value
8637       (p_transaction_step_id => p_transaction_step_id
8638       ,p_name                => 'p_abs_information_category');
8639   --
8640     p_absence_rec.abs_information1 :=
8641       hr_transaction_api.get_varchar2_value
8642       (p_transaction_step_id => p_transaction_step_id
8643       ,p_name                => 'p_abs_information1');
8644   --
8645 
8646     p_absence_rec.abs_information2 :=
8647       hr_transaction_api.get_varchar2_value
8648       (p_transaction_step_id => p_transaction_step_id
8649       ,p_name                => 'p_abs_information2');
8650   --
8651     p_absence_rec.abs_information3 :=
8652       hr_transaction_api.get_varchar2_value
8653       (p_transaction_step_id => p_transaction_step_id
8654       ,p_name                => 'p_abs_information3');
8655   --
8656     p_absence_rec.abs_information4 :=
8657       hr_transaction_api.get_varchar2_value
8658       (p_transaction_step_id => p_transaction_step_id
8659       ,p_name                => 'p_abs_information4');
8660   --
8661     p_absence_rec.abs_information5 :=
8662       hr_transaction_api.get_varchar2_value
8663       (p_transaction_step_id => p_transaction_step_id
8664       ,p_name                => 'p_abs_information5');
8665   --
8666     p_absence_rec.abs_information6 :=
8667       hr_transaction_api.get_varchar2_value
8668       (p_transaction_step_id => p_transaction_step_id
8669       ,p_name                => 'p_abs_information6');
8670   --
8671     p_absence_rec.abs_information7 :=
8672       hr_transaction_api.get_varchar2_value
8673       (p_transaction_step_id => p_transaction_step_id
8674       ,p_name                => 'p_abs_information7');
8675   --
8676     p_absence_rec.abs_information8 :=
8677       hr_transaction_api.get_varchar2_value
8678       (p_transaction_step_id => p_transaction_step_id
8679       ,p_name                => 'p_abs_information8');
8680   --
8681     p_absence_rec.abs_information9 :=
8682       hr_transaction_api.get_varchar2_value
8683       (p_transaction_step_id => p_transaction_step_id
8684       ,p_name                => 'p_abs_information9');
8685   --
8686     p_absence_rec.abs_information10 :=
8687       hr_transaction_api.get_varchar2_value
8688       (p_transaction_step_id => p_transaction_step_id
8689       ,p_name                => 'p_abs_information10');
8690   --
8691     p_absence_rec.abs_information11 :=
8692       hr_transaction_api.get_varchar2_value
8693       (p_transaction_step_id => p_transaction_step_id
8694       ,p_name                => 'p_abs_information11');
8695   --
8696     p_absence_rec.abs_information12 :=
8697       hr_transaction_api.get_varchar2_value
8698       (p_transaction_step_id => p_transaction_step_id
8699       ,p_name                => 'p_abs_information12');
8700   --
8701     p_absence_rec.abs_information13 :=
8702       hr_transaction_api.get_varchar2_value
8703       (p_transaction_step_id => p_transaction_step_id
8704       ,p_name                => 'p_abs_information13');
8705   --
8706     p_absence_rec.abs_information14 :=
8707       hr_transaction_api.get_varchar2_value
8708       (p_transaction_step_id => p_transaction_step_id
8709       ,p_name                => 'p_abs_information14');
8710   --
8711     p_absence_rec.abs_information15 :=
8712       hr_transaction_api.get_varchar2_value
8713       (p_transaction_step_id => p_transaction_step_id
8714       ,p_name                => 'p_abs_information15');
8715   --
8716     p_absence_rec.abs_information16 :=
8717       hr_transaction_api.get_varchar2_value
8718       (p_transaction_step_id => p_transaction_step_id
8719       ,p_name                => 'p_abs_information16');
8720   --
8721     p_absence_rec.abs_information17 :=
8722       hr_transaction_api.get_varchar2_value
8723       (p_transaction_step_id => p_transaction_step_id
8724       ,p_name                => 'p_abs_information17');
8725   --
8726     p_absence_rec.abs_information18 :=
8727       hr_transaction_api.get_varchar2_value
8728       (p_transaction_step_id => p_transaction_step_id
8729       ,p_name                => 'p_abs_information18');
8730   --
8731     p_absence_rec.abs_information19 :=
8732       hr_transaction_api.get_varchar2_value
8733       (p_transaction_step_id => p_transaction_step_id
8734       ,p_name                => 'p_abs_information19');
8735   --
8736     p_absence_rec.abs_information20 :=
8737       hr_transaction_api.get_varchar2_value
8738       (p_transaction_step_id => p_transaction_step_id
8739       ,p_name                => 'p_abs_information20');
8740   --
8741     p_absence_rec.abs_information21 :=
8742       hr_transaction_api.get_varchar2_value
8743       (p_transaction_step_id => p_transaction_step_id
8744       ,p_name                => 'p_abs_information21');
8745   --
8746     p_absence_rec.abs_information22 :=
8747       hr_transaction_api.get_varchar2_value
8748       (p_transaction_step_id => p_transaction_step_id
8749       ,p_name                => 'p_abs_information22');
8750   --
8751     p_absence_rec.abs_information23 :=
8752       hr_transaction_api.get_varchar2_value
8753       (p_transaction_step_id => p_transaction_step_id
8754       ,p_name                => 'p_abs_information23');
8755   --
8756     p_absence_rec.abs_information24 :=
8757       hr_transaction_api.get_varchar2_value
8758       (p_transaction_step_id => p_transaction_step_id
8759       ,p_name                => 'p_abs_information24');
8760   --
8761     p_absence_rec.abs_information25 :=
8762       hr_transaction_api.get_varchar2_value
8763       (p_transaction_step_id => p_transaction_step_id
8764       ,p_name                => 'p_abs_information25');
8765   --
8766     p_absence_rec.abs_information26 :=
8767       hr_transaction_api.get_varchar2_value
8768       (p_transaction_step_id => p_transaction_step_id
8769       ,p_name                => 'p_abs_information26');
8770   --
8771     p_absence_rec.abs_information27 :=
8772       hr_transaction_api.get_varchar2_value
8773       (p_transaction_step_id => p_transaction_step_id
8774       ,p_name                => 'p_abs_information27');
8775 
8776   --
8777     p_absence_rec.abs_information28 :=
8778       hr_transaction_api.get_varchar2_value
8779       (p_transaction_step_id => p_transaction_step_id
8780       ,p_name                => 'p_abs_information28');
8781   --
8782     p_absence_rec.abs_information29 :=
8783       hr_transaction_api.get_varchar2_value
8784       (p_transaction_step_id => p_transaction_step_id
8785       ,p_name                => 'p_abs_information29');
8786   --
8787     p_absence_rec.abs_information30 :=
8788       hr_transaction_api.get_varchar2_value
8789       (p_transaction_step_id => p_transaction_step_id
8790       ,p_name                => 'p_abs_information30');
8791   --
8792   hr_utility.set_location(' Leaving:' || l_proc,10);
8793 
8794   EXCEPTION
8795   WHEN OTHERS THEN
8796   hr_utility.trace(' .get_upd_from_tt: ' || SQLERRM );
8797   hr_utility.set_location(' Leaving:' || l_proc,555);
8798 
8799     raise ;
8800  end get_upd_from_tt;
8801 
8802 --
8803 --  +-------------------------------------------------------------------------+
8804 --  |-----------------<      good_time_format       >-------------------------|
8805 --  +-------------------------------------------------------------------------+
8806 --  Description:
8807 --    Tests CHAR values for valid time.
8808 --
8809 --  Pre-conditions:
8810 --    None.
8811 --
8812 --  In Arguments:
8813 --    p_time VARCHAR2
8814 --
8815 --  Out Arguments:
8816 --    BOOLEAN
8817 --
8818 --  Post Success:
8819 --    Returns TRUE or FALSE depending on valid time or not.
8820 --
8821 --  Post Failure:
8822 --    Returns FALSE for invalid time.
8823 --
8824 --  Access Status:
8825 --    Internal Development Use Only.
8826 --
8827 -- {End Of Comments}
8828 -- ----------------------------------------------------------------------------
8829 --
8830 FUNCTION good_time_format ( p_time IN VARCHAR2 ) RETURN BOOLEAN IS
8831 --
8832 BEGIN
8833   --
8834   IF p_time IS NOT NULL THEN
8835     --
8836     IF NOT (SUBSTR(p_time,1,2) BETWEEN '00' AND '23' AND
8837             SUBSTR(p_time,4,2) BETWEEN '00' AND '59' AND
8838             SUBSTR(p_time,3,1) = ':' AND
8839             LENGTH(p_time) = 5) THEN
8840       RETURN FALSE;
8841     ELSE
8842       RETURN TRUE;
8843     END IF;
8844     --
8845   ELSE
8846     RETURN FALSE;
8847   END IF;
8848   --
8849 EXCEPTION
8850   --
8851   WHEN OTHERS THEN
8852     RETURN FALSE;
8853   --
8854 END good_time_format;
8855 --
8856 --  +-------------------------------------------------------------------------+
8857 --  |-----------------<     calc_sch_based_dur      >-------------------------|
8858 --  +-------------------------------------------------------------------------+
8859 --  Description:
8860 --    Calculate the absence duration in hours/days based on the work schedule.
8861 --  This is a copy of the procedure PER_ABS_BUS.calc_sch_based_dur.
8862 --
8863 --  Pre-conditions:
8864 --    None.
8865 --
8866 --  In Arguments:
8867 --    p_days_or_hours VARCHAR2
8868 --    p_date_start    DATE
8869 --    p_date_end      DATE
8870 --    p_time_start    VARCHAR2
8871 --    p_time_end      VARCHAR2
8872 --    p_assignment_id NUMBER
8873 --
8874 --  Out Arguments:
8875 --    p_duration NUMBER
8876 --
8877 --  Post Success:
8878 --    Value returned for absence duration.
8879 --
8880 --  Post Failure:
8881 --    If a failure occurs, an application error is raised and
8882 --    processing terminates.
8883 --
8884 --  Access Status:
8885 --    Internal Development Use Only.
8886 --
8887 -- {End Of Comments}
8888 -- ----------------------------------------------------------------------------
8889 --
8890 PROCEDURE calc_sch_based_dur ( p_days_or_hours IN VARCHAR2,
8891                                p_date_start    IN DATE,
8892                                p_date_end      IN DATE,
8893                                p_time_start    IN VARCHAR2,
8894                                p_time_end      IN VARCHAR2,
8895                                p_assignment_id IN NUMBER,
8896                                p_duration      IN OUT NOCOPY NUMBER
8897                              ) IS
8898   --
8899   l_idx             NUMBER;
8900   l_ref_date        DATE;
8901   l_first_band      BOOLEAN;
8902   l_day_start_time  VARCHAR2(5);
8903   l_day_end_time    VARCHAR2(5);
8904   l_start_time      VARCHAR2(5);
8905   l_end_time        VARCHAR2(5);
8906   --
8907   l_start_date      DATE;
8908   l_end_date        DATE;
8909   l_schedule        cac_avlblty_time_varray;
8910   l_schedule_source VARCHAR2(10);
8911   l_return_status   VARCHAR2(1);
8912   l_return_message  VARCHAR2(2000);
8913   --
8914   l_time_start      VARCHAR2(5);
8915   l_time_end        VARCHAR2(5);
8916   --
8917   e_bad_time_format EXCEPTION;
8918   --
8919 BEGIN
8920   hr_utility.set_location('Entering '||g_package||'.calc_sch_based_dur',10);
8921   p_duration := 0;
8922   l_time_start := p_time_start;
8923   l_time_end := p_time_end;
8924   --
8925   IF l_time_start IS NULL THEN
8926     l_time_start := '00:00';
8927   ELSE
8928     IF NOT good_time_format(l_time_start) THEN
8929       RAISE e_bad_time_format;
8930     END IF;
8931   END IF;
8932   -- fix for the bug 8668042
8933    IF l_time_end IS NULL THEN
8934 
8935    IF p_days_or_hours = 'D' THEN
8936       l_time_end := '00:00';
8937    ELSE
8938       l_time_end := '23:59';
8939    END IF;
8940 
8941   ELSE
8942     IF NOT good_time_format(l_time_end) THEN
8943       RAISE e_bad_time_format;
8944     END IF;
8945   END IF;
8946   --fix for the bug 8668042
8947 
8948   l_start_date := TO_DATE(TO_CHAR(p_date_start,'DD-MM-YYYY')||' '||l_time_start,'DD-MM-YYYY HH24:MI');
8949   l_end_date := TO_DATE(TO_CHAR(p_date_end,'DD-MM-YYYY')||' '||l_time_end,'DD-MM-YYYY HH24:MI');
8950   IF p_days_or_hours = 'D' THEN
8951     l_end_date := l_end_date + 1;
8952   END IF;
8953   --
8954   -- Fetch the work schedule
8955   --
8956   hr_wrk_sch_pkg.get_per_asg_schedule
8957   ( p_person_assignment_id => p_assignment_id
8958   , p_period_start_date    => l_start_date
8959   , p_period_end_date      => l_end_date
8960   , p_schedule_category    => NULL
8961   , p_include_exceptions   => 'Y'
8962   , p_busy_tentative_as    => 'FREE'
8963   , x_schedule_source      => l_schedule_source
8964   , x_schedule             => l_schedule
8965   , x_return_status        => l_return_status
8966   , x_return_message       => l_return_message
8967   );
8968   --
8969   IF l_return_status = '0' THEN
8970     --
8971     -- Calculate duration
8972     --
8973     l_idx := l_schedule.first;
8974     --
8975     IF p_days_or_hours = 'D' THEN
8976       --
8977       l_first_band := TRUE;
8978       l_ref_date := NULL;
8979       WHILE l_idx IS NOT NULL
8980       LOOP
8981         IF l_schedule(l_idx).FREE_BUSY_TYPE IS NOT NULL THEN
8982           IF l_schedule(l_idx).FREE_BUSY_TYPE = 'FREE' THEN
8983             IF l_first_band THEN
8984               l_first_band := FALSE;
8985               l_ref_date := TRUNC(l_schedule(l_idx).START_DATE_TIME);
8986               IF (TRUNC(l_schedule(l_idx).END_DATE_TIME) = TRUNC(l_schedule(l_idx).START_DATE_TIME)) THEN
8987                 p_duration := p_duration + (TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME) + 1);
8988               ELSE
8989                 p_duration := p_duration + (TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME));
8990               END IF;
8991             ELSE -- not first time
8992               IF TRUNC(l_schedule(l_idx).START_DATE_TIME) = l_ref_date THEN
8993                 p_duration := p_duration + (TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME));
8994               ELSE
8995                 l_ref_date := TRUNC(l_schedule(l_idx).END_DATE_TIME);
8996                 IF (TRUNC(l_schedule(l_idx).END_DATE_TIME) = TRUNC(l_schedule(l_idx).START_DATE_TIME)) THEN
8997                   p_duration := p_duration + (TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME) + 1);
8998                 ELSE
8999                   p_duration := p_duration + (TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME));
9000                 END IF;
9001               END IF;
9002             END IF;
9003           END IF;
9004         END IF;
9005         l_idx := l_schedule(l_idx).NEXT_OBJECT_INDEX;
9006       END LOOP;
9007       --
9008     ELSE -- p_days_or_hours is 'H'
9009       --
9010       l_day_start_time := '00:00';
9011       l_day_end_time := '23:59';
9012       WHILE l_idx IS NOT NULL
9013       LOOP
9014         IF l_schedule(l_idx).FREE_BUSY_TYPE IS NOT NULL THEN
9015           IF l_schedule(l_idx).FREE_BUSY_TYPE = 'FREE' THEN
9016             IF l_schedule(l_idx).END_DATE_TIME < l_schedule(l_idx).START_DATE_TIME THEN
9017               -- Skip this invalid slot which ends before it starts
9018               NULL;
9019             ELSE
9020               IF TRUNC(l_schedule(l_idx).END_DATE_TIME) > TRUNC(l_schedule(l_idx).START_DATE_TIME) THEN
9021                 -- Start and End on different days
9022                 --
9023                 -- Get first day hours
9024                 l_start_time := TO_CHAR(l_schedule(l_idx).START_DATE_TIME,'HH24:MI');
9025                 SELECT p_duration + (((SUBSTR(l_day_end_time,1,2)*60 + SUBSTR(l_day_end_time,4,2)) -
9026                                       (SUBSTR(l_start_time,1,2)*60 + SUBSTR(l_start_time,4,2)))/60)
9027                 INTO p_duration
9028                 FROM DUAL;
9029                 --
9030                 -- Get last day hours
9031                 l_end_time := TO_CHAR(l_schedule(l_idx).END_DATE_TIME,'HH24:MI');
9032                 SELECT p_duration + (((SUBSTR(l_end_time,1,2)*60 + SUBSTR(l_end_time,4,2)) -
9033                                       (SUBSTR(l_day_start_time,1,2)*60 + SUBSTR(l_day_start_time,4,2)) + 1)/60)
9034                 INTO p_duration
9035                 FROM DUAL;
9036                 --
9037                 -- Get between full day hours
9038                 SELECT p_duration + ((TRUNC(l_schedule(l_idx).END_DATE_TIME) - TRUNC(l_schedule(l_idx).START_DATE_TIME) - 1) * 24)
9039                 INTO p_duration
9040                 FROM DUAL;
9041               ELSE
9042                 -- Start and End on same day
9043                 l_start_time := TO_CHAR(l_schedule(l_idx).START_DATE_TIME,'HH24:MI');
9044                 l_end_time := TO_CHAR(l_schedule(l_idx).END_DATE_TIME,'HH24:MI');
9045                 SELECT p_duration + (((SUBSTR(l_end_time,1,2)*60 + SUBSTR(l_end_time,4,2)) -
9046                                       (SUBSTR(l_start_time,1,2)*60 + SUBSTR(l_start_time,4,2)))/60)
9047                 INTO p_duration
9048                 FROM DUAL;
9049               END IF;
9050             END IF;
9051           END IF;
9052         END IF;
9053         l_idx := l_schedule(l_idx).NEXT_OBJECT_INDEX;
9054       END LOOP;
9055       p_duration := ROUND(p_duration,2);
9056       --
9057     END IF;
9058   END IF;
9059   --
9060   hr_utility.set_location('Leaving '||g_package||'.calc_sch_based_dur',20);
9061 EXCEPTION
9062   --
9063   WHEN e_bad_time_format THEN
9064     hr_utility.set_location('Leaving '||g_package||'.calc_sch_based_dur',30);
9065     hr_utility.set_location(SQLERRM,35);
9066     RAISE;
9067   --
9068   WHEN OTHERS THEN
9069     hr_utility.set_location('Leaving '||g_package||'.calc_sch_based_dur',40);
9070     hr_utility.set_location(SQLERRM,45);
9071     RAISE;
9072   --
9073 END calc_sch_based_dur;
9074 --
9075 --
9076 --  ---------------------------------------------------------------------------
9077 --  |-----------------<  calculate_absence_duration  (OLD)>--------------------|
9078 --  ---------------------------------------------------------------------------
9079 --
9080 --  Description:
9081 --    Calculates the absence duration in hours and / or days and sets
9082 --    the duration.
9083 --
9084 --  Pre-conditions:
9085 --    None.
9086 --
9087 --  In Arguments:
9088 --    p_absence_attendance_type_id
9089 --    p_business_group_id
9090 --    p_effective_date
9091 --    p_person_id
9092 --    p_date_start
9093 --    p_date_end
9094 --    p_time_start
9095 --    p_time_end
9096 --
9097 --  Out Arguments:
9098 --    p_absence_days
9099 --    p_absence_hours
9100 --    p_use_formula
9101 --
9102 --  Post Success:
9103 --    The absence duration in days and hours is returned.
9104 --
9105 --  Post Failure:
9106 --    If a failure occurs, an application error is raised and
9107 --    processing terminates.
9108 --
9109 --  Access Status:
9110 --    Internal Development Use Only.
9111 --
9112 -- {End Of Comments}
9113 -- ----------------------------------------------------------------------------
9114 --
9115 procedure calculate_absence_duration
9116  (
9117 --p_absence_attendance_id      in  number
9118   p_absence_attendance_type_id in  number
9119  ,p_business_group_id          in  number
9120 -- ,p_object_version_number      in  number
9121  ,p_effective_date             in  date
9122  ,p_person_id                  in  number
9123  ,p_date_start                 in  date
9124  ,p_date_end                   in  date
9125  ,p_time_start                 in  varchar2
9126  ,p_time_end                   in  varchar2
9127  ,p_absence_days               out nocopy number
9128  ,p_absence_hours              out nocopy number
9129  ,p_use_formula                out nocopy number
9130  ,p_min_max_failure  	       out nocopy varchar2
9131  ,p_warning_or_error           out nocopy varchar2
9132  ,p_page_error_msg         out nocopy varchar2 --2695922
9133 )
9134   is
9135 
9136   l_proc                 varchar2(72) := g_package||
9137                                         'calculate_absence_duration';
9138   l_exists               varchar2(1);
9139   l_api_updating         boolean;
9140   l_assignment_id        number;
9141   l_hours_or_days        varchar2(1);
9142   l_element_type_id      number;
9143   l_legislation_code     varchar2(150);
9144   l_formula_id           number;
9145   l_inputs               ff_exec.inputs_t;
9146   l_outputs              ff_exec.outputs_t;
9147   l_user_message         varchar2(1) := 'N';
9148   l_invalid_message      fnd_new_messages.message_text%TYPE;
9149   l_custom_exception     exception;  --2695922
9150   wrong_parameters       exception;
9151   l_normal_time_start    varchar2(5);
9152   l_normal_time_end      varchar2(5);
9153   l_normal_day_minutes   number;
9154   l_first_day_minutes    number;
9155   l_last_day_minutes     number;
9156   l_same_day_minutes     number;
9157   l_absence_days         number;
9158   l_absence_hours        number;
9159   l_use_formula          number;
9160   l_max_value            varchar2(60);
9161   l_min_value            varchar2(60);
9162   l_min_max_failure  	 varchar2(1) := null;  -- S:Success F:failure
9163   l_warning_or_error     varchar2(1) := null;
9164   l_screen_format        varchar2(100);
9165   l_element_link_id      number;
9166   l_input_value_id       number;
9167 
9168   --
9169   -- Bug 4534572 START
9170   --
9171   l_sch_based_dur        VARCHAR2(1);
9172   l_sch_based_dur_found  BOOLEAN;
9173   l_absence_duration     NUMBER;
9174   --
9175   -- Bug 4534572 END
9176   --
9177 
9178   cursor c_get_absence_info is
9179   select abt.hours_or_days
9180         ,piv.element_type_id
9181         ,piv.input_value_id
9182         ,piv.max_value        		-- WWBUG #2602856
9183         ,piv.min_value        		-- WWBUG #2602856
9184         ,pet.element_link_id        	-- WWBUG #2602856
9185   from   per_absence_attendance_types abt
9186         ,pay_input_values_f piv
9187         ,pay_element_links_f pet
9188   where  abt.absence_attendance_type_id = p_absence_attendance_type_id
9189   and    abt.input_value_id = piv.input_value_id(+)
9190   and    piv.element_type_id = pet.element_type_id(+)
9191   -- bug 5295672
9192   and p_effective_date between piv.effective_start_date
9193                                and piv.effective_end_date
9194        and  p_effective_date between pet.effective_start_date
9195                                and pet.effective_end_date;
9196 -- bug 5295672
9197   cursor c_get_normal_hours (p_assignment_id in number) is
9198   select nvl(nvl(asg.time_normal_start, pbg.default_start_time), '00:00'),
9199          nvl(nvl(asg.time_normal_finish, pbg.default_end_time), '23:59')
9200   FROM   per_all_assignments_f asg,
9201          per_business_groups pbg
9202   WHERE  asg.assignment_id = p_assignment_id
9203   AND    asg.business_group_id = pbg.business_group_id
9204   AND    p_effective_date between asg.effective_start_date
9205                           and     asg.effective_end_date;
9206 
9207 --
9208 begin
9209 
9210  hr_utility.set_location('Entering:'|| l_proc, 10);
9211 
9212  HR_LOA_SS.calculate_absence_duration
9213   (p_absence_attendance_type_id    => p_absence_attendance_type_id
9214   ,p_business_group_id             => p_business_group_id
9215   ,p_effective_date                => p_effective_date
9216   ,p_person_id                     => p_person_id
9217   ,p_date_start                    => p_date_start
9218   ,p_date_end                      => p_date_end
9219   ,p_time_start                    => p_time_start
9220   ,p_time_end                      => p_time_end
9221   ,p_abs_information_category      => NULL
9222   ,p_abs_information1             => NULL
9223   ,p_abs_information2             => NULL
9224   ,p_abs_information3             => NULL
9225   ,p_abs_information4             => NULL
9226   ,p_abs_information5             => NULL
9227   ,p_abs_information6             => NULL
9228   ,p_absence_days                  => p_absence_days
9229   ,p_absence_hours                 => p_absence_hours
9230   ,p_use_formula                   => p_use_formula
9231   ,p_min_max_failure               => p_min_max_failure
9232   ,p_warning_or_error              => p_warning_or_error
9233   ,p_page_error_msg                => p_page_error_msg
9234   );
9235   /*
9236   p_absence_days      :=	l_absence_days  ;
9237   p_absence_hours     :=	l_absence_hours  ;
9238   p_use_formula       :=	l_use_formula  ;
9239   p_min_max_failure   :=	l_min_max_failure ;
9240   p_warning_or_error  :=	l_warning_or_error ;
9241   p_page_error_msg    :=	l_invalid_message ;
9242   */
9243 
9244    hr_utility.set_location('Leaving:'|| l_proc, 20);
9245 
9246 EXCEPTION
9247 --2695922
9248    WHEN l_custom_exception THEN
9249 hr_utility.set_location(' Leaving:'|| l_proc, 555);
9250     p_page_error_msg := l_invalid_message;
9251 --2695922
9252    WHEN wrong_parameters then
9253     --
9254     -- The inputs / outputs of the Fast Formula are incorrect
9255     -- so raise an error.
9256     --
9257    hr_utility.set_location(' Leaving:'|| l_proc, 560);
9258 
9259     hr_utility.set_message(800,'HR_34964_BAD_FF_DEFINITION');
9260     hr_utility.raise_error;
9261 
9262    --3001784
9263    WHEN others THEN
9264    hr_utility.set_location(' Leaving:'|| l_proc, 565);
9265      p_page_error_msg := hr_utility.get_message;
9266    --3001784
9267 
9268 end calculate_absence_duration;
9269 
9270 --  New calculate_absence_duration with additional parameters
9271 --  ---------------------------------------------------------------------------
9272 --  |-----------------<  calculate_absence_duration >-------------------------|
9273 --  ---------------------------------------------------------------------------
9274 --
9275 --  Description:
9276 --    Calculates the absence duration in hours and / or days and sets
9277 --    the duration.
9278 --
9279 --  Pre-conditions:
9280 --    None.
9281 --
9282 --  In Arguments:
9283 --    p_absence_attendance_type_id
9284 --    p_business_group_id
9285 --    p_effective_date
9286 --    p_person_id
9287 --    p_date_start
9288 --    p_date_end
9289 --    p_time_start
9290 --    p_time_end
9291 --    p_abs_information_category
9292 --    p_abs_information1
9293 --    p_abs_information2
9294 --    p_abs_information3
9295 --    p_abs_information4
9296 --    p_abs_information5
9297 --    p_abs_information6
9298 --
9299 --  Out Arguments:
9300 --    p_absence_days
9301 --    p_absence_hours
9302 --    p_use_formula
9303 --
9304 --  Post Success:
9305 --    The absence duration in days and hours is returned.
9306 --
9307 --  Post Failure:
9308 --    If a failure occurs, an application error is raised and
9309 --    processing terminates.
9310 --
9311 --  Access Status:
9312 --    Internal Development Use Only.
9313 --
9314 -- {End Of Comments}
9315 -- ----------------------------------------------------------------------------
9316 --
9317 procedure calculate_absence_duration
9318  (
9319 --p_absence_attendance_id      in  number
9320   p_absence_attendance_type_id in  number
9321  ,p_business_group_id          in  number
9322 -- ,p_object_version_number      in  number
9323  ,p_effective_date             in  date
9324  ,p_person_id                  in  number
9325  ,p_date_start                 in  date
9326  ,p_date_end                   in  date
9327  ,p_time_start                 in  varchar2
9328  ,p_time_end                   in  varchar2
9329  ,p_abs_information_category   in varchar2
9330  ,p_abs_information1          in varchar2
9331  ,p_abs_information2          in varchar2
9332  ,p_abs_information3          in varchar2
9333  ,p_abs_information4          in varchar2
9334  ,p_abs_information5          in varchar2
9335  ,p_abs_information6          in varchar2
9336  ,p_absence_days               out nocopy number
9337  ,p_absence_hours              out nocopy number
9338  ,p_use_formula                out nocopy number
9339  ,p_min_max_failure  	       out nocopy varchar2
9340  ,p_warning_or_error           out nocopy varchar2
9341  ,p_page_error_msg         out nocopy varchar2 --2695922
9342 )
9343   is
9344 
9345   l_proc                 varchar2(72) := g_package||
9346                                         'calculate_absence_duration';
9347   l_exists               varchar2(1);
9348   l_api_updating         boolean;
9349   l_assignment_id        number;
9350   l_hours_or_days        varchar2(1);
9351   l_element_type_id      number;
9352   l_legislation_code     varchar2(150);
9353   l_formula_id           number;
9354   l_inputs               ff_exec.inputs_t;
9355   l_outputs              ff_exec.outputs_t;
9356   l_user_message         varchar2(1) := 'N';
9357   l_invalid_message      fnd_new_messages.message_text%TYPE;
9358   l_custom_exception     exception;  --2695922
9359   wrong_parameters       exception;
9360   l_normal_time_start    varchar2(5);
9361   l_normal_time_end      varchar2(5);
9362   l_normal_day_minutes   number;
9363   l_first_day_minutes    number;
9364   l_last_day_minutes     number;
9365   l_same_day_minutes     number;
9366   l_absence_days         number;
9367   l_absence_hours        number;
9368   l_use_formula          boolean;
9369   l_max_value            varchar2(60);
9370   l_min_value            varchar2(60);
9371   l_min_max_failure  	 varchar2(1) := null;  -- S:Success F:failure
9372   l_warning_or_error     varchar2(1) := null;
9373   l_screen_format        varchar2(100);
9374   l_element_link_id      number;
9375   l_input_value_id       number;
9376 
9377   --
9378   -- Bug 4534572 START
9379   --
9380   l_sch_based_dur        VARCHAR2(1);
9381   l_sch_based_dur_found  BOOLEAN;
9382   l_absence_duration     NUMBER;
9383   --
9384   -- Bug 4534572 END
9385   --
9386 
9387   cursor c_get_absence_info is
9388   select abt.hours_or_days
9389         ,piv.element_type_id
9390         ,piv.input_value_id
9391         ,piv.max_value        		-- WWBUG #2602856
9392         ,piv.min_value        		-- WWBUG #2602856
9393         ,pet.element_link_id        	-- WWBUG #2602856
9394   from   per_absence_attendance_types abt
9395         ,pay_input_values_f piv
9396         ,pay_element_links_f pet
9397   where  abt.absence_attendance_type_id = p_absence_attendance_type_id
9398   and    abt.input_value_id = piv.input_value_id(+)
9399   and    piv.element_type_id = pet.element_type_id(+)
9400   -- bug 5295672
9401   and p_effective_date between piv.effective_start_date
9402                                and piv.effective_end_date
9403        and  p_effective_date between pet.effective_start_date
9404                                and pet.effective_end_date;
9405 -- bug 5295672
9406   cursor c_get_normal_hours (p_assignment_id in number) is
9407   select nvl(nvl(asg.time_normal_start, pbg.default_start_time), '00:00'),
9408          nvl(nvl(asg.time_normal_finish, pbg.default_end_time), '23:59')
9409   FROM   per_all_assignments_f asg,
9410          per_business_groups pbg
9411   WHERE  asg.assignment_id = p_assignment_id
9412   AND    asg.business_group_id = pbg.business_group_id
9413   AND    p_effective_date between asg.effective_start_date
9414                           and     asg.effective_end_date;
9415 
9416 --
9417 begin
9418 
9419  hr_utility.set_location('Entering:'|| l_proc, 10);
9420 
9421 /*
9422   --
9423   -- Only proceed with validation if :
9424   -- a) The current g_old_rec is current and
9425   -- b) The date values have changed
9426   --
9427   l_api_updating := per_abs_shd.api_updating
9428          (p_absence_attendance_id  => p_absence_attendance_id
9429          ,p_object_version_number  => p_object_version_number);
9430   --
9431   if (l_api_updating
9432   and nvl(per_abs_shd.g_old_rec.date_start, hr_api.g_date)
9433     = nvl(p_date_start, hr_api.g_date)
9434   and nvl(per_abs_shd.g_old_rec.date_end, hr_api.g_date)
9435  = nvl(p_date_end, hr_api.g_date)
9436   and nvl(per_abs_shd.g_old_rec.time_start, hr_api.g_varchar2)
9437     = nvl(p_time_start, hr_api.g_varchar2)
9438   and nvl(per_abs_shd.g_old_rec.time_end, hr_api.g_varchar2)
9439     = nvl(p_time_end, hr_api.g_varchar2)
9440   and nvl(per_abs_shd.g_old_rec.absence_days, hr_api.g_number)
9441     = nvl(p_absence_days, hr_api.g_number)
9442   and nvl(per_abs_shd.g_old_rec.absence_hours, hr_api.g_number)
9443     = nvl(p_absence_hours, hr_api.g_number)) then
9444      return;
9445   end if;
9446 
9447 */
9448 
9449   per_abs_bus.chk_time_format (p_time => p_time_start);
9450   per_abs_bus.chk_time_format (p_time => p_time_end);
9451 
9452   hr_utility.set_location(l_proc, 15);
9453 
9454   --
9455   -- See if a Fast Formula exists. Here the Fast Formula names
9456   -- are hard-coded. Fast Formulas with these exact names can
9457   -- be defined at one of three levels to default the absence
9458   -- duration:
9459   --
9460   --  1. Business group (customer-definable)
9461   --  2. Legislation (Oracle internal legislation-specific)
9462   --  3. Core (Oracle internal core product)
9463   --
9464 
9465   --
9466   -- Get the varous additional values that are required for use later.
9467   --
9468 
9469   l_assignment_id := hr_person_absence_api.get_primary_assignment
9470       (p_person_id         => p_person_id
9471       ,p_effective_date    => p_effective_date);
9472 
9473   l_legislation_code := hr_api.return_legislation_code
9474       (p_business_group_id => p_business_group_id);
9475 
9476   open  c_get_absence_info;
9477   fetch c_get_absence_info into l_hours_or_days,
9478                                 l_element_type_id,
9479                                 l_input_value_id,
9480                                 l_max_value,
9481                                 l_min_value,
9482                                 l_element_link_id;
9483   close c_get_absence_info;
9484 
9485   --
9486   -- Bug 4534572 START
9487   --
9488   l_sch_based_dur := NVL(FND_PROFILE.Value('HR_SCH_BASED_ABS_CALC'),'N');
9489   l_sch_based_dur_found := FALSE;
9490   --
9491   IF l_sch_based_dur = 'Y' THEN
9492     --
9493     hr_utility.set_location(l_proc, 16);
9494     p_use_formula := hr_java_conv_util_ss.get_number(p_boolean => TRUE);
9495     --
9496     calc_sch_based_dur (p_days_or_hours => l_hours_or_days,
9497                         p_date_start    => p_date_start,
9498                         p_date_end      => p_date_end,
9499                         p_time_start    => p_time_start,
9500                         p_time_end      => p_time_end,
9501                         p_assignment_id => l_assignment_id,
9502                         p_duration      => l_absence_duration
9503                        );
9504     --
9505     IF l_absence_duration IS NOT NULL THEN
9506       --
9507       l_sch_based_dur_found := TRUE;
9508       --
9509       IF l_hours_or_days = 'H' THEN
9510         hr_utility.set_location(l_proc, 17);
9511         p_absence_hours := l_absence_duration;
9512       ELSIF l_hours_or_days = 'D' THEN
9513         hr_utility.set_location(l_proc, 18);
9514         p_absence_days := l_absence_duration;
9515       ELSE
9516         hr_utility.set_location(l_proc, 19);
9517         l_sch_based_dur_found := FALSE;
9518       END IF;
9519       --
9520     END IF;
9521     --
9522   END IF; -- sch_based_dur is 'Y'
9523   --
9524   IF l_sch_based_dur <> 'Y' OR (l_sch_based_dur = 'Y' AND NOT l_sch_based_dur_found) THEN
9525   --
9526   -- Bug 4534572 END
9527   --
9528 
9529   hr_utility.set_location(l_proc, 20);
9530 
9531   begin
9532     --
9533     -- Look for a customer-defined formula
9534     --
9535     select ff.formula_id
9536     into   l_formula_id
9537     from   ff_formulas_f ff
9538     where  ff.formula_name = 'BG_ABSENCE_DURATION'
9539     and    ff.business_group_id = p_business_group_id
9540     and    p_effective_date between ff.effective_start_date and
9541                                     ff.effective_end_date;
9542   exception
9543 
9544     when no_data_found then
9545       --
9546       -- There is no customer defined formula so look for
9547       -- a legislative formula.
9548       --
9549       begin
9550 
9551         hr_utility.set_location(l_proc, 25);
9552 
9553         select ff.formula_id
9554         into   l_formula_id
9555         from   ff_formulas_f ff
9556         where  ff.formula_name = 'LEGISLATION_ABSENCE_DURATION'
9557         and    ff.legislation_code = l_legislation_code
9558         and    ff.business_group_id is null
9559         and    p_effective_date between ff.effective_start_date and
9560                                         ff.effective_end_date;
9561 
9562       exception
9563 
9564         when no_data_found then
9565           --
9566 --
9567           -- If none of the two above then select the core formula
9568           --
9569           begin
9570 
9571             hr_utility.set_location(l_proc, 30);
9572 
9573             select ff.formula_id
9574             into   l_formula_id
9575             from   ff_formulas_f ff
9576             where  ff.formula_name = 'CORE_ABSENCE_DURATION'
9577             and    ff.legislation_code is null
9578             and    ff.business_group_id is null
9579             and    p_effective_date between ff.effective_start_date and
9580                                             ff.effective_end_date;
9581 
9582           exception
9583 
9584             when no_data_found then
9585               --
9586               -- No formula is found. We capture the error and do nothing.
9587               --
9588               null;
9589 
9590           end;
9591       end;
9592   end;
9593 
9594   hr_utility.set_location(l_proc, 35);
9595 
9596   if l_formula_id is not null then
9597     --
9598     -- An absence duration Fast Formula should be used so the
9599     -- formula is called. First, the formula is initialised.
9600     --
9601     l_use_formula := TRUE;
9602 
9603     hr_utility.set_location(l_proc, 40);
9604 
9605     --
9606     -- Initalise the formula.
9607     --
9608     ff_exec.init_formula
9609       (p_formula_id     => l_formula_id
9610       ,p_effective_date => p_effective_date
9611       ,p_inputs         => l_inputs
9612       ,p_outputs        => l_outputs);
9613 
9614     hr_utility.set_location(l_proc, 45);
9615 
9616     --
9617     -- Assign the inputs.
9618     --
9619     for i_input in l_inputs.first..l_inputs.last
9620     loop
9621 
9622       if l_inputs(i_input).name    = 'DAYS_OR_HOURS' then
9623          l_inputs(i_input).value  := l_hours_or_days;
9624       elsif l_inputs(i_input).name = 'DATE_START' then
9625          l_inputs(i_input).value  := fnd_date.date_to_canonical(p_date_start);
9626       elsif l_inputs(i_input).name = 'DATE_END' then
9627          l_inputs(i_input).value  := fnd_date.date_to_canonical(p_date_end);
9628       elsif l_inputs(i_input).name = 'TIME_START' then
9629          l_inputs(i_input).value  := p_time_start;
9630       elsif l_inputs(i_input).name = 'TIME_END' then
9631          l_inputs(i_input).value  := p_time_end;
9632       elsif l_inputs(i_input).name = 'DATE_EARNED' then
9633          l_inputs(i_input).value  := fnd_date.date_to_canonical
9634                                      (p_effective_date);
9635       elsif l_inputs(i_input).name = 'BUSINESS_GROUP_ID' then
9636          l_inputs(i_input).value  := p_business_group_id;
9637       elsif l_inputs(i_input).name = 'LEGISLATION_CODE' then
9638          l_inputs(i_input).value  := l_legislation_code;
9639       elsif l_inputs(i_input).name = 'ASSIGNMENT_ID' then
9640          l_inputs(i_input).value  := l_assignment_id;
9641       elsif l_inputs(i_input).name = 'ELEMENT_TYPE_ID' then
9642          l_inputs(i_input).value  := l_element_type_id;
9643       elsif l_inputs(i_input).name = 'ABSENCE_ATTENDANCE_TYPE_ID' then
9644          l_inputs(i_input).value  := p_absence_attendance_type_id;
9645       elsif l_inputs(i_input).name = 'ABS_INFORMATION_CATEGORY' then
9646          l_inputs(i_input).value  := p_ABS_INFORMATION_CATEGORY;
9647       elsif l_inputs(i_input).name = 'ABS_INFORMATION1' then
9648          l_inputs(i_input).value  := p_ABS_INFORMATION1;
9649       elsif l_inputs(i_input).name = 'ABS_INFORMATION2' then
9650          l_inputs(i_input).value  := p_ABS_INFORMATION2;
9651       elsif l_inputs(i_input).name = 'ABS_INFORMATION3' then
9652          l_inputs(i_input).value  := p_ABS_INFORMATION3;
9653       elsif l_inputs(i_input).name = 'ABS_INFORMATION4' then
9654          l_inputs(i_input).value  := p_ABS_INFORMATION4;
9655       elsif l_inputs(i_input).name = 'ABS_INFORMATION5' then
9656          l_inputs(i_input).value  := p_ABS_INFORMATION5;
9657       elsif l_inputs(i_input).name = 'ABS_INFORMATION6' then
9658          l_inputs(i_input).value  := p_ABS_INFORMATION6;
9659       else
9660          raise wrong_parameters;
9661       end if;
9662 
9663     end loop;
9664 
9665     hr_utility.set_location(l_proc, 50);
9666 
9667     --
9668     -- Run the formula.
9669     --
9670     ff_exec.run_formula(l_inputs, l_outputs);
9671 
9672     hr_utility.set_location(l_proc, 55);
9673 
9674     --
9675     -- Assign the outputs.
9676     --
9677     for i_output in l_outputs.first..l_outputs.last
9678     loop
9679 
9680       if l_outputs(i_output).name = 'DURATION' then
9681 
9682         if l_outputs(i_output).value = 'FAILED' then
9683           l_user_message := 'Y';
9684         else
9685           --
9686           -- The absence hours / days out parameter is set. If no UOM
9687           -- is set but the start or end time have been entered, the output
9688           -- is returned in hours.
9689           --
9690           if l_hours_or_days = 'H'
9691           or (p_time_start is not null and p_time_end is not null) then
9692             p_absence_hours := round(to_number(l_outputs(i_output).value),2);
9693             l_screen_format := to_char(p_absence_hours); -- WWBUG #2602856
9694           else
9695             p_absence_days := round(to_number(l_outputs(i_output).value),2);
9696             l_screen_format := to_char(p_absence_days); -- WWBUG #2602856
9697           end if;
9698         end if;
9699      elsif l_outputs(i_output).name = 'INVALID_MSG' then
9700 
9701        --    Here we do not plan to use p_invalid_message as error
9702        --    messages during this formula will be raised during the
9703        --    API.
9704 
9705            l_invalid_message := l_outputs(i_output).value;
9706 
9707         null;
9708       else
9709         raise wrong_parameters;
9710       end if;
9711 
9712     end loop;
9713 
9714     hr_utility.set_location(l_proc, 60);
9715     hr_utility.trace('l_user_message: '||l_user_message);
9716     hr_utility.trace('l_invalid_message: '||l_invalid_message);
9717 
9718     --
9719     -- If the Fast Formula raises a user-defined error message,
9720     -- raise the error back to the user. Here the message is
9721     -- truncated to 30 characters because that is the limit
9722     -- in the calling program.
9723     --
9724 
9725     if l_user_message = 'Y' then
9726       raise l_custom_exception; --2695922
9727       --hr_utility.set_message(800, substr(l_invalid_message, 1, 30));
9728       --hr_utility.raise_error;
9729     end if;
9730 
9731   else
9732     --
9733     -- No formula could be located so we calculate based on the
9734     -- standard hours of the assignment or business group.
9735     --
9736     l_use_formula := FALSE;
9737 
9738     hr_utility.set_location(l_proc, 65);
9739 
9740     --
9741     -- Get the default start and end times. First check the assignment, then
9742     -- the business group. If neither of these, assume 24 hours a day.
9743     --
9744     open  c_get_normal_hours (l_assignment_id);
9745     fetch c_get_normal_hours into l_normal_time_start,
9746                                   l_normal_time_end;
9747     close c_get_normal_hours;
9748 
9749     hr_utility.set_location(l_proc, 70);
9750 
9751     --
9752     -- Calculate the number of minutes in each day.
9753     --
9754     -- 3191259 changes start
9755     l_normal_day_minutes := per_abs_bus.convert_to_minutes(l_normal_time_start,
9756                                             l_normal_time_end);
9757     l_first_day_minutes := per_abs_bus.convert_to_minutes(nvl(p_time_start,
9758                                                l_normal_time_start),
9759                                                l_normal_time_end);
9760     l_last_day_minutes := per_abs_bus.convert_to_minutes(l_normal_time_start,
9761                                              nvl(p_time_end,
9762                                               l_normal_time_end));
9763 
9764     if l_first_day_minutes <= 0 OR l_first_day_minutes > l_normal_day_minutes
9765        OR l_last_day_minutes <= 0 OR l_last_day_minutes > l_normal_day_minutes  THEN
9766        --
9767        -- The leave timings are out off the standard timings.
9768        -- So use 24 hours rule to calculate the first day and last day minutes.
9769        --
9770        hr_utility.set_location(l_proc, 72);
9771        l_first_day_minutes := per_abs_bus.convert_to_minutes(nvl(p_time_start,
9772                                                  l_normal_time_start),
9773                                                 '24:00');
9774        l_last_day_minutes := per_abs_bus.convert_to_minutes('00:00', nvl(p_time_end,
9775                                               l_normal_time_end));
9776     end if;
9777 
9778     -- 3191259 changes end
9779 
9780     --3323744 change starts
9781     l_same_day_minutes := per_abs_bus.convert_to_minutes(nvl(p_time_start,
9782                                               l_normal_time_start),
9783                                           nvl(p_time_end,
9784                                               l_normal_time_end));
9785     --3323744 change ends
9786 
9787     --2943479 changes start
9788     if l_normal_time_end = '23:59'
9789     then
9790        l_normal_day_minutes := l_normal_day_minutes +1;
9791        l_first_day_minutes := l_first_day_minutes +1;
9792        --3075512 changes start
9793        if (p_time_end is null or p_time_end = '') then
9794          l_last_day_minutes := l_last_day_minutes +1;
9795          l_same_day_minutes := l_same_day_minutes +1;
9796        end if;
9797        --3075512 changes end
9798     end if;
9799     --2943479 changes end
9800 
9801     hr_utility.trace('Normal Day Minutes: ' || to_char(l_normal_day_minutes));
9802     hr_utility.trace('First Day Minutes: ' || to_char(l_first_day_minutes));
9803     hr_utility.trace('Last Day Minutes: ' || to_char(l_last_day_minutes));
9804     hr_utility.trace('Same Day Minutes: ' || to_char(l_same_day_minutes));
9805 
9806     hr_utility.set_location(l_proc, 75);
9807 
9808     --
9809     -- Calculate the absence days.
9810     --
9811     l_absence_days := (p_date_end - p_date_start) + 1;
9812 
9813     hr_utility.trace('Absence Days: ' || to_char(l_absence_days));
9814 
9815     --
9816     -- Calculate the absence hours.
9817     --
9818     if l_absence_days = 1 then
9819       --
9820       -- The absence starts and ends on the same day.
9821       --
9822       l_absence_hours := l_same_day_minutes / 60;
9823 
9824     elsif l_absence_days = 2 then
9825       --
9826       -- The absence ends the day after another.
9827       --
9828       l_absence_hours := (l_first_day_minutes + l_last_day_minutes) / 60;
9829 
9830     else
9831       --
9832       -- The absence is n number of days.
9833       --
9834       l_absence_hours := (l_first_day_minutes + l_last_day_minutes +
9835                           ((l_absence_days - 2) * l_normal_day_minutes)) / 60;
9836 
9837     end if;
9838 
9839     hr_utility.set_location(l_proc, 80);
9840 
9841     --
9842     -- Check that the absence hours are not less than zero. This could
9843     -- happen if the entered start time is after the normal start time or
9844     -- the entered end time is after the normal end time.
9845     --
9846     If l_absence_hours < 0 then
9847       l_absence_hours := 0;
9848     end if;
9849 
9850     --
9851     -- Set the absence days and hours out parameters.
9852     --
9853     if l_hours_or_days = 'H' then
9854       p_absence_hours := round(l_absence_hours,2);
9855       l_screen_format := to_char(p_absence_hours); -- WWBUG #2602856
9856 
9857     elsif l_hours_or_days = 'D' then
9858       p_absence_days := round(l_absence_days,2);
9859       l_screen_format := to_char(p_absence_days); -- WWBUG #2602856
9860 
9861     else
9862       p_absence_hours := round(l_absence_hours,2);
9863       p_absence_days := round(l_absence_days,2);
9864 
9865     end if;
9866 
9867   end if;
9868 
9869   hr_utility.set_location(l_proc, 90);
9870   --
9871   -- Check min/max value in input_value for element.(WWBUG #2602856)
9872   --
9873   hr_utility.trace('l_element_link_id is '|| l_element_link_id);
9874   hr_utility.trace('l_input_value_id is  '|| l_input_value_id);
9875   hr_utility.trace('p_effective_date is  '|| p_effective_date);
9876   hr_utility.trace('l_screen_format is   '|| l_screen_format);
9877 
9878   if l_element_link_id is not null and l_input_value_id is not null then
9879 
9880     hr_entry.check_format
9881        (l_element_link_id,
9882         l_input_value_id,
9883         p_effective_date,
9884         l_screen_format,
9885         l_screen_format,
9886         'Y',
9887         l_min_max_failure,
9888         l_warning_or_error,
9889         l_min_value,
9890         l_max_value);
9891 
9892   hr_utility.trace('l_min_max_failure is  '|| l_min_max_failure);
9893   hr_utility.trace('l_warning_or_error is '|| l_warning_or_error);
9894   hr_utility.trace('l_min_value is        '|| l_min_value);
9895   hr_utility.trace('l_max_value is        '|| l_max_value);
9896 
9897   else --3403256 changes start
9898     -- set absence_hrs to null if absence is not linked with an
9899     -- element and time values are not entered by user
9900     if l_element_link_id is null  and
9901     (p_time_start is null or p_time_start = '') and
9902     (p_time_end is null or p_time_end = '')
9903     then
9904        p_absence_hours := null;
9905     end if; --3403256 changes end
9906 
9907   end if;
9908   p_min_max_failure := l_min_max_failure;
9909   p_warning_or_error := l_warning_or_error;
9910 
9911   hr_utility.set_location(l_proc, 100);
9912 /*
9913   if l_min_max_failure = 'F' and l_warning_or_error = 'E' then
9914        hr_utility.set_message(800, 'PER_6303_INPUT_VALUE_OUT_RANGE');
9915        hr_utility.raise_error;
9916      end if;
9917      --
9918      -- if the warning_or_error flag has been set to 'Error' then only Warn
9919      -- but let the processing continue
9920      --
9921       if l_min_max_failure = 'F' and l_warning_or_error = 'W' then
9922         hr_utility.set_message(800, 'PER_6303_INPUT_VALUE_OUT_RANGE');
9923         hr_utility.set_warning;
9924       end if;
9925 
9926 */
9927   p_use_formula := hr_java_conv_util_ss.get_number(p_boolean => l_use_formula);
9928 
9929   --
9930   -- Bug 4534572 START
9931   --
9932   END IF; -- Schedule based calculation not used
9933   --
9934   -- Bug 4534572 END
9935   --
9936 
9937   hr_utility.set_location(' Leaving:'|| l_proc, 110);
9938 
9939 EXCEPTION
9940 --2695922
9941    WHEN l_custom_exception THEN
9942 hr_utility.set_location(' Leaving:'|| l_proc, 555);
9943     p_page_error_msg := l_invalid_message;
9944 --2695922
9945    WHEN wrong_parameters then
9946     --
9947     -- The inputs / outputs of the Fast Formula are incorrect
9948     -- so raise an error.
9949     --
9950    hr_utility.set_location(' Leaving:'|| l_proc, 560);
9951 
9952     hr_utility.set_message(800,'HR_34964_BAD_FF_DEFINITION');
9953     hr_utility.raise_error;
9954 
9955    --3001784
9956    WHEN others THEN
9957    hr_utility.set_location(' Leaving:'|| l_proc, 565);
9958      p_page_error_msg := hr_utility.get_message;
9959    --3001784
9960 
9961 end calculate_absence_duration;
9962 
9963   /*
9964   ||===========================================================================
9965   || PROCEDURE: delete_absenc
9966   ||---------------------------------------------------------------------------
9967   ||
9968   || Description:
9969   ||     This procedure will delete absence record from
9970   ||     per_absence_attendances
9971   ||
9972   || Access Status:
9973   ||     Public.
9974   ||
9975   ||===========================================================================
9976   */
9977   procedure delete_absence(
9978    p_absence_attendance_id         IN NUMBER
9979    ,p_page_error_msg         OUT NOCOPY VARCHAR2 --2782075
9980   ) is
9981 
9982   l_proc              varchar2(30)  :=  g_package||'delete_absence';
9983   l_ovn               number;
9984   --
9985   cursor csr_get_ovn_abs_attendances is
9986        select object_version_number
9987          from per_absence_attendances paa
9988          where paa.absence_attendance_id = p_absence_attendance_id ;
9989   --
9990   BEGIN
9991 
9992   hr_utility.set_location(' Entering:' || l_proc,5);
9993 
9994 
9995   open csr_get_ovn_abs_attendances;
9996   fetch csr_get_ovn_abs_attendances into l_ovn;
9997   if  csr_get_ovn_abs_attendances%notfound then
9998   hr_utility.set_location(l_proc,10);
9999 
10000      close csr_get_ovn_abs_attendances;
10001      hr_utility.set_location('api error exists', 10);
10002      raise g_data_error;
10003   end if;
10004 
10005 
10006  -- Call the actual API.
10007         hr_person_absence_api.delete_person_absence
10008         (
10009             p_absence_attendance_id         => p_absence_attendance_id
10010            ,p_object_version_number         => l_ovn
10011         );
10012 
10013 	hr_utility.set_location(' Leaving:' || l_proc,15);
10014 
10015   --
10016 
10017   EXCEPTION
10018   WHEN OTHERS THEN
10019     hr_utility.trace('When others exception in  .delete_absence: ' || SQLERRM );
10020     --2782075 changes start
10021     --Don't raise the error. just fetch the msg text and return
10022     p_page_error_msg := fnd_message.get;
10023     --2782075 changes start
10024 
10025  end delete_absence;
10026 
10027   /*
10028   ||===========================================================================
10029   || FUNCTION: chk_overlap
10030   ||---------------------------------------------------------------------------
10031   ||
10032   || Description:
10033   ||     This function will check overlap absence in transaction table
10034   ||
10035   || Access Status:
10036   ||     Public.
10037   ||
10038   ||===========================================================================
10039   */
10040   function chk_overlap(
10041     p_person_id          IN NUMBER
10042    ,p_business_group_id  IN NUMBER
10043    ,p_date_start         IN DATE
10044    ,p_date_end           IN DATE
10045    ,p_time_start         IN VARCHAR2
10046    ,p_time_end           IN VARCHAR2
10047   ) return boolean
10048   IS
10049   --
10050   --
10051   l_proc              varchar2(30)  :=  g_package||'chk_overlap';
10052   l_exists            varchar2(1) ;
10053   l_abs_overlap_warning boolean;
10054   --
10055   --
10056 
10057   -- Fix 2706099
10058    CURSOR c_abs_overlap(p_person_id          IN NUMBER
10059                        ,p_business_grroup_id IN NUMBER
10060                        ,p_date_start         IN DATE
10061                        ,p_date_end           IN DATE
10062                        ,p_time_start         IN VARCHAR2
10063                        ,p_time_end           IN VARCHAR2
10064    ) IS
10065 
10066  SELECT null
10067     FROM  hr_api_transaction_values tv
10068          ,hr_api_transaction_steps  ts
10069          ,hr_api_transaction_values tv1
10070          ,hr_api_transaction_values tv2
10071          ,hr_api_transaction_values tv3
10072          ,hr_api_transaction_values tv4
10073          ,hr_api_transaction_values tv5
10074          ,hr_api_transaction_values tv6
10075          ,hr_api_transactions hat -- Fix 3191531
10076     WHERE
10077          ts.api_name = 'HR_LOA_SS.PROCESS_API'
10078      and ts.UPDATE_PERSON_ID = p_person_id
10079      and p_date_start IS NOT NULL
10080      and p_date_end IS NOT NULL
10081      and ts.transaction_step_id = tv.transaction_step_id
10082      and tv.name = 'P_PERSON_ID'
10083      and tv.number_value = p_person_id
10084      and ts.transaction_step_id = tv1.transaction_step_id
10085      and tv1.name = 'P_BUSINESS_GROUP_ID'
10086      and tv1.number_value = p_business_group_id
10087      and ts.transaction_step_id = tv2.transaction_step_id
10088      and ts.transaction_id=hat.transaction_id
10089      and hat.status  in ('Y','C') -- Fix 3191531
10090      and ts.transaction_step_id = tv3.transaction_step_id
10091      and tv3.name = 'P_DATE_START'
10092      and ts.transaction_step_id = tv4.transaction_step_id
10093      and tv4.name = 'P_DATE_END'
10094      and ts.transaction_step_id = tv5.transaction_step_id
10095      and ts.transaction_step_id = tv6.transaction_step_id
10096      and tv5.name = 'P_TIME_START'
10097      and tv6.name = 'P_TIME_END'
10098      and tv3.date_value is NOT NULL
10099      and tv4.date_value is NOT NULL
10100           and (
10101 	                  (
10102 	                 to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt)  ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
10103 	                  BETWEEN to_date (to_char(p_date_start, g_usr_date_fmt)||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
10104 	                  AND to_date(to_char(p_date_end, g_usr_date_fmt) || ' '|| nvl(p_time_end,'00:00') , g_usr_day_time_fmt)
10105 	                   )
10106 	                  or
10107 	                  (
10108 	                  to_date (to_char(p_date_start, g_usr_date_fmt) ||' ' || nvl(p_time_start,'00:00'),g_usr_day_time_fmt)
10109 	                   BETWEEN
10110 	                   to_date( to_char(nvl(tv3.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv5.varchar2_value,'00:00'),g_usr_day_time_fmt)
10111 	                  AND
10112 	                  to_date( to_char(nvl(tv4.date_value,hr_api.g_eot), g_usr_date_fmt) ||' ' || nvl(tv6.varchar2_value,'00:00'),g_usr_day_time_fmt)
10113 	                   )
10114 
10115           );
10116 --
10117      --  TRANS_SUBMIT status
10118      --  'Y' - Submit for Approval
10119      --  'S' - Save For Laer
10120      --  'C' - Returned for Correction
10121      --  'W' - Initial Save For Later - Inadvertent Save
10122      --
10123 
10124  BEGIN
10125   --
10126   hr_utility.set_location('Entering:'|| l_proc, 10);
10127   --
10128   --       check if this absence overlaps another absence for the same person.
10129   --
10130 
10131   -- Fix 2706099
10132   -- Absence timings are to be considered for checking overlap.
10133   --
10134 
10135   open  c_abs_overlap(p_person_id,p_business_group_id,p_date_start,p_date_end,p_time_start,p_time_end);
10136   fetch c_abs_overlap into l_exists;
10137 
10138   if c_abs_overlap%found then
10139     hr_utility.set_location(l_proc, 10);
10140     --
10141     -- Set the warning message
10142     --
10143     l_abs_overlap_warning := TRUE;
10144     --
10145   else
10146     hr_utility.set_location(l_proc, 20);
10147     l_abs_overlap_warning := FALSE;
10148 
10149   end if;
10150   --
10151   hr_utility.set_location('Leaving:'|| l_proc, 30);
10152   return l_abs_overlap_warning;
10153 
10154   --
10155   EXCEPTION
10156   WHEN OTHERS THEN
10157   hr_utility.trace(' .chk_overlap: ' || SQLERRM );
10158   hr_utility.set_location('Leaving:'|| l_proc, 555);
10159     raise ;
10160  end chk_overlap;
10161 
10162 END HR_LOA_SS;