[Home] [Help]
PACKAGE BODY: APPS.HR_PERSON_ABSENCE_SWI
Source
1 Package body hr_person_absence_swi As
2 /* $Header: hrabsswi.pkb 120.6.12010000.3 2008/09/09 12:21:13 pbalu ship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_person_absence_swi.';
7
8 function is_gb_leg_and_category_s(p_absence_attendance_type_id IN NUMBER ,
9 p_business_group_id IN NUMBER)
10 return boolean is
11
12 l_proc varchar2(200) := g_package || 'is_gb_leg_and_category_s';
13
14 populate_sickness_dates boolean := false;
15 l_absence_category per_absence_attendance_types.absence_category%type ;
16 l_legislation_code varchar2(150);
17
18 cursor get_category_code (p_absence_attendance_type_id number) is
19 select absence_category
20 from per_absence_attendance_types
21 where absence_attendance_type_id = p_absence_attendance_type_id;
22
23 begin
24 hr_utility.set_location(' Entering:' || l_proc,5);
25
26 open get_category_code(p_absence_attendance_type_id);
27 fetch get_category_code into l_absence_category ;
28 close get_category_code ;
29
30 IF l_absence_category = 'S' THEN
31 l_legislation_code := hr_api.return_legislation_code(p_business_group_id);
32 IF l_legislation_code = 'GB' THEN
33 hr_utility.set_location(l_proc,10);
34
35 populate_sickness_dates := true;
36 END IF;
37 END IF;
38 hr_utility.set_location(' Leaving:' || l_proc,15);
39
40 return populate_sickness_dates;
41 END is_gb_leg_and_category_s ;
42 --
43 --
44 -- ----------------------------------------------------------------------------
45 -- |-------------------------< create_person_absence >------------------------|
46 -- ----------------------------------------------------------------------------
47 PROCEDURE create_person_absence
48 (p_validate in number default hr_api.g_false_num
49 ,p_effective_date in date
50 ,p_person_id in number
51 ,p_business_group_id in number
52 ,p_absence_attendance_type_id in number
53 ,p_abs_attendance_reason_id in number default null
54 ,p_comments in long default null
55 ,p_date_notification in date default null
56 ,p_date_projected_start in date default null
57 ,p_time_projected_start in varchar2 default null
58 ,p_date_projected_end in date default null
59 ,p_time_projected_end in varchar2 default null
60 ,p_date_start in date default null
61 ,p_time_start in varchar2 default null
62 ,p_date_end in date default null
63 ,p_time_end in varchar2 default null
64 ,p_absence_days in out nocopy number
65 ,p_absence_hours in out nocopy number
66 ,p_authorising_person_id in number default null
67 ,p_replacement_person_id in number default null
68 ,p_attribute_category in varchar2 default null
69 ,p_attribute1 in varchar2 default null
70 ,p_attribute2 in varchar2 default null
71 ,p_attribute3 in varchar2 default null
72 ,p_attribute4 in varchar2 default null
73 ,p_attribute5 in varchar2 default null
74 ,p_attribute6 in varchar2 default null
75 ,p_attribute7 in varchar2 default null
76 ,p_attribute8 in varchar2 default null
77 ,p_attribute9 in varchar2 default null
78 ,p_attribute10 in varchar2 default null
79 ,p_attribute11 in varchar2 default null
80 ,p_attribute12 in varchar2 default null
81 ,p_attribute13 in varchar2 default null
82 ,p_attribute14 in varchar2 default null
83 ,p_attribute15 in varchar2 default null
84 ,p_attribute16 in varchar2 default null
85 ,p_attribute17 in varchar2 default null
86 ,p_attribute18 in varchar2 default null
87 ,p_attribute19 in varchar2 default null
88 ,p_attribute20 in varchar2 default null
89 ,p_period_of_incapacity_id in number default null
90 ,p_ssp1_issued in varchar2 default null
91 ,p_maternity_id in number default null
92 ,p_sickness_start_date in date default null
93 ,p_sickness_end_date in date default null
94 ,p_pregnancy_related_illness in varchar2 default null
95 ,p_reason_for_notification_dela in varchar2 default null
96 ,p_accept_late_notification_fla in varchar2 default null
97 ,p_linked_absence_id in number default null
98 ,p_batch_id in number default null
99 ,p_create_element_entry in number default null
100 ,p_abs_information_category in varchar2 default null
101 ,p_abs_information1 in varchar2 default null
102 ,p_abs_information2 in varchar2 default null
103 ,p_abs_information3 in varchar2 default null
104 ,p_abs_information4 in varchar2 default null
105 ,p_abs_information5 in varchar2 default null
106 ,p_abs_information6 in varchar2 default null
107 ,p_abs_information7 in varchar2 default null
108 ,p_abs_information8 in varchar2 default null
109 ,p_abs_information9 in varchar2 default null
110 ,p_abs_information10 in varchar2 default null
111 ,p_abs_information11 in varchar2 default null
112 ,p_abs_information12 in varchar2 default null
113 ,p_abs_information13 in varchar2 default null
114 ,p_abs_information14 in varchar2 default null
115 ,p_abs_information15 in varchar2 default null
116 ,p_abs_information16 in varchar2 default null
117 ,p_abs_information17 in varchar2 default null
118 ,p_abs_information18 in varchar2 default null
119 ,p_abs_information19 in varchar2 default null
120 ,p_abs_information20 in varchar2 default null
121 ,p_abs_information21 in varchar2 default null
122 ,p_abs_information22 in varchar2 default null
123 ,p_abs_information23 in varchar2 default null
124 ,p_abs_information24 in varchar2 default null
125 ,p_abs_information25 in varchar2 default null
126 ,p_abs_information26 in varchar2 default null
127 ,p_abs_information27 in varchar2 default null
128 ,p_abs_information28 in varchar2 default null
129 ,p_abs_information29 in varchar2 default null
130 ,p_abs_information30 in varchar2 default null
131 ,p_absence_case_id in number default null
132 ,p_absence_attendance_id in out nocopy number
133 ,p_object_version_number out nocopy number
134 ,p_occurrence out nocopy number
135 ,p_return_status out nocopy varchar2
136 ) is
137 --
138 -- Variables for API Boolean parameters
139 l_validate boolean;
140 l_create_element_entry boolean;
141 l_dur_dys_less_warning boolean;
142 l_dur_hrs_less_warning boolean;
143 l_exceeds_pto_entit_warning boolean;
144 l_exceeds_run_total_warning boolean;
145 l_abs_overlap_warning boolean;
146 l_abs_day_after_warning boolean;
147 l_dur_overwritten_warning boolean;
148 --
149 -- Variables for IN/OUT parameters
150 l_absence_days number;
151 l_absence_hours number;
152
153 l_populate_sickness_dates boolean := false;
154 l_sickness_start_date date := p_sickness_start_date;
155 l_sickness_end_date date := p_sickness_end_date;
156 l_date_notification date := p_date_notification;
157 l_abs_information_category varchar2(25) := p_abs_information_category;
158
159 l_date_start date := p_date_start;
160 l_date_end date := p_date_end;
161 l_date_projected_start date := p_date_projected_start;
162 l_date_projected_end date := p_date_projected_end;
163 l_ssp1_issued varchar2(1) := p_ssp1_issued;
164 l_pregnancy_related_illness varchar2(1) := p_pregnancy_related_illness;
165 l_accept_late_notification_fla varchar2(1) := p_accept_late_notification_fla;
166
167 --
168 -- Other variables
169 l_proc varchar2(72) := g_package ||'create_person_absence';
170 Begin
171 hr_utility.set_location(' Entering:' || l_proc,10);
172 --
173 -- Issue a savepoint
174 --
175 savepoint create_person_absence_swi;
176 --
177 -- Initialise Multiple Message Detection
178 --
179 hr_multi_message.enable_message_list;
180 --
181 -- Remember IN OUT parameter IN values
182 --
183 -- Bug 6347488 fix starts
184
185 if p_date_start is null then
186 p_absence_days := null;
187 p_absence_hours := null;
188 end if;
189
190 -- Bug 6347488 fix ends
191
192 l_absence_days := p_absence_days;
193 l_absence_hours := p_absence_hours;
194
195 --
196 -- Convert constant values to their corresponding boolean value
197 --
198 l_validate :=
199 hr_api.constant_to_boolean
200 (p_constant_value => p_validate);
201 l_create_element_entry :=
202 hr_api.constant_to_boolean
203 (p_constant_value => p_create_element_entry);
204 --
205 -- Register Surrogate ID or user key values
206 --
207 per_abs_ins.set_base_key_value
208 (p_absence_attendance_id => p_absence_attendance_id
209 );
210
211 l_populate_sickness_dates := is_gb_leg_and_category_s(p_absence_attendance_type_id , p_business_group_id);
212
213 IF l_populate_sickness_dates THEN
214 IF p_date_start IS NULL AND p_date_projected_start IS NOT NULL THEN
215 l_date_start := l_date_projected_start;
216 l_date_projected_start := NULL;
217 l_date_end := l_date_projected_end;
218 l_date_projected_end := NULL;
219 END IF;
220 IF l_date_start > SYSDATE THEN
221 fnd_message.set_name('SSP', 'SSP_35036_INV_NOTIF_DATE');
222 fnd_message.raise_error;
223 END IF;
224 l_sickness_start_date := l_date_start;
225 l_sickness_end_date := l_date_end;
226 l_date_notification := sysdate;
227 l_abs_information_category := 'GB_PQP_OSP_OMP_PART_DAYS';
228 l_ssp1_issued := 'N';
229 l_pregnancy_related_illness := 'N';
230 l_accept_late_notification_fla := 'N';
231 END IF;
232 --
233 -- Call API
234 --
235 hr_person_absence_api.create_person_absence
236 (p_validate => l_validate
237 ,p_effective_date => p_effective_date
238 ,p_person_id => p_person_id
239 ,p_business_group_id => p_business_group_id
240 ,p_absence_attendance_type_id => p_absence_attendance_type_id
241 ,p_abs_attendance_reason_id => p_abs_attendance_reason_id
242 ,p_comments => p_comments
243 ,p_date_notification => l_date_notification
244 ,p_date_projected_start => l_date_projected_start
245 ,p_time_projected_start => p_time_projected_start
246 ,p_date_projected_end => l_date_projected_end
247 ,p_time_projected_end => p_time_projected_end
248 ,p_date_start => l_date_start
249 ,p_time_start => p_time_start
250 ,p_date_end => l_date_end
251 ,p_time_end => p_time_end
252 ,p_absence_days => p_absence_days
253 ,p_absence_hours => p_absence_hours
254 ,p_authorising_person_id => p_authorising_person_id
255 ,p_replacement_person_id => p_replacement_person_id
256 ,p_attribute_category => p_attribute_category
257 ,p_attribute1 => p_attribute1
258 ,p_attribute2 => p_attribute2
259 ,p_attribute3 => p_attribute3
260 ,p_attribute4 => p_attribute4
261 ,p_attribute5 => p_attribute5
262 ,p_attribute6 => p_attribute6
263 ,p_attribute7 => p_attribute7
264 ,p_attribute8 => p_attribute8
265 ,p_attribute9 => p_attribute9
266 ,p_attribute10 => p_attribute10
267 ,p_attribute11 => p_attribute11
268 ,p_attribute12 => p_attribute12
269 ,p_attribute13 => p_attribute13
270 ,p_attribute14 => p_attribute14
271 ,p_attribute15 => p_attribute15
272 ,p_attribute16 => p_attribute16
273 ,p_attribute17 => p_attribute17
274 ,p_attribute18 => p_attribute18
275 ,p_attribute19 => p_attribute19
276 ,p_attribute20 => p_attribute20
277 ,p_period_of_incapacity_id => p_period_of_incapacity_id
278 ,p_ssp1_issued => l_ssp1_issued
279 ,p_maternity_id => p_maternity_id
280 ,p_sickness_start_date => l_sickness_start_date
281 ,p_sickness_end_date => l_sickness_end_date
282 ,p_pregnancy_related_illness => l_pregnancy_related_illness
283 ,p_reason_for_notification_dela => p_reason_for_notification_dela
284 ,p_accept_late_notification_fla => l_accept_late_notification_fla
285 ,p_linked_absence_id => p_linked_absence_id
286 ,p_batch_id => p_batch_id
287 ,p_create_element_entry => l_create_element_entry
288 ,p_abs_information_category => l_abs_information_category
289 ,p_abs_information1 => p_abs_information1
290 ,p_abs_information2 => p_abs_information2
291 ,p_abs_information3 => p_abs_information3
292 ,p_abs_information4 => p_abs_information4
293 ,p_abs_information5 => p_abs_information5
294 ,p_abs_information6 => p_abs_information6
295 ,p_abs_information7 => p_abs_information7
296 ,p_abs_information8 => p_abs_information8
297 ,p_abs_information9 => p_abs_information9
298 ,p_abs_information10 => p_abs_information10
299 ,p_abs_information11 => p_abs_information11
300 ,p_abs_information12 => p_abs_information12
301 ,p_abs_information13 => p_abs_information13
302 ,p_abs_information14 => p_abs_information14
303 ,p_abs_information15 => p_abs_information15
304 ,p_abs_information16 => p_abs_information16
305 ,p_abs_information17 => p_abs_information17
306 ,p_abs_information18 => p_abs_information18
307 ,p_abs_information19 => p_abs_information19
308 ,p_abs_information20 => p_abs_information20
309 ,p_abs_information21 => p_abs_information21
310 ,p_abs_information22 => p_abs_information22
311 ,p_abs_information23 => p_abs_information23
312 ,p_abs_information24 => p_abs_information24
313 ,p_abs_information25 => p_abs_information25
314 ,p_abs_information26 => p_abs_information26
315 ,p_abs_information27 => p_abs_information27
316 ,p_abs_information28 => p_abs_information28
317 ,p_abs_information29 => p_abs_information29
318 ,p_abs_information30 => p_abs_information30
319 ,p_absence_attendance_id => p_absence_attendance_id
320 ,p_absence_case_id => p_absence_case_id
321 ,p_object_version_number => p_object_version_number
322 ,p_occurrence => p_occurrence
323 ,p_dur_dys_less_warning => l_dur_dys_less_warning
324 ,p_dur_hrs_less_warning => l_dur_hrs_less_warning
325 ,p_exceeds_pto_entit_warning => l_exceeds_pto_entit_warning
326 ,p_exceeds_run_total_warning => l_exceeds_run_total_warning
327 ,p_abs_overlap_warning => l_abs_overlap_warning
328 ,p_abs_day_after_warning => l_abs_day_after_warning
329 ,p_dur_overwritten_warning => l_dur_overwritten_warning
330 );
331 --
332 -- Convert API warning boolean parameter values to specific
333 -- messages and add them to Multiple Message List
334 --
335 if l_validate then
336 if l_dur_dys_less_warning then
337 hr_utility.set_message(800, 'HR_EMP_ABS_SHORT_DURATION');
338 hr_multi_message.add
339 (p_message_type => hr_multi_message.g_warning_msg
340 );
341 end if;
342 if l_dur_hrs_less_warning then
343 hr_utility.set_message(800,'HR_ABS_HOUR_LESS_DURATION');
344 hr_multi_message.add
345 (p_message_type => hr_multi_message.g_warning_msg
346 );
347 end if;
348 if l_exceeds_pto_entit_warning then
349 hr_utility.set_message(800, 'HR_LOA_EMP_NOT_ENTITLED');
350 hr_multi_message.add
351 (p_message_type => hr_multi_message.g_warning_msg
352 );
353 end if;
354 if l_exceeds_run_total_warning then
355 hr_utility.set_message(800, 'HR_LOA_DET_RUNNING_ZERO');
356 hr_multi_message.add
357 (p_message_type => hr_multi_message.g_warning_msg
358 );
359 end if;
360 if l_abs_overlap_warning then
361 hr_utility.set_message(800, 'HR_LOA_ABSENCE_OVERLAP');
362 hr_multi_message.add
363 (p_message_type => hr_multi_message.g_warning_msg
364 );
365 end if;
366 if l_abs_day_after_warning then
367 hr_utility.set_message(800, 'HR_LOA_DET_ABS_DAY_AFTER');
368 hr_multi_message.add
369 (p_message_type => hr_multi_message.g_warning_msg
370 );
371 end if;
372 end if;
373 --
374 -- We don't raise overwritten warning from SSHR
375 --
376 --if l_dur_overwritten_warning then
377 -- hr_utility.set_message(800, 'EDIT_HERE: MESSAGE_NAME ');
378 -- hr_multi_message.add
379 -- (p_message_type => hr_multi_message.g_warning_msg
380 -- );
381 --end if; --
382 -- Convert API non-warning boolean parameter values
383 --
384 --
385 -- Derive the API return status value based on whether
386 -- messages of any type exist in the Multiple Message List.
387 -- Also disable Multiple Message Detection.
388 --
389 p_return_status := hr_multi_message.get_return_status_disable;
390 hr_utility.set_location(' Leaving:' || l_proc,20);
391 --
392 exception
393 when hr_multi_message.error_message_exist then
394 --
395 -- Catch the Multiple Message List exception which
396 -- indicates API processing has been aborted because
397 -- at least one message exists in the list.
398 --
399 rollback to create_person_absence_swi;
400 --
401 -- Reset IN OUT parameters and set OUT parameters
402 --
403 p_absence_days := l_absence_days;
404 p_absence_hours := l_absence_hours;
405 p_absence_attendance_id := null;
406 p_object_version_number := null;
407 p_occurrence := null;
408 p_return_status := hr_multi_message.get_return_status_disable;
409 hr_utility.set_location(' Leaving:' || l_proc, 30);
410 when others then
411 --
412 -- When Multiple Message Detection is enabled catch
413 -- any Application specific or other unexpected
414 -- exceptions. Adding appropriate details to the
415 -- Multiple Message List. Otherwise re-raise the
416 -- error.
417 --
418 rollback to create_person_absence_swi;
419 if hr_multi_message.unexpected_error_add(l_proc) then
420 hr_utility.set_location(' Leaving:' || l_proc,40);
421 raise;
422 end if;
423 --
424 -- Reset IN OUT and set OUT parameters
425 --
426 p_absence_days := l_absence_days;
427 p_absence_hours := l_absence_hours;
428 p_absence_attendance_id := null;
429 p_object_version_number := null;
430 p_occurrence := null;
431 p_return_status := hr_multi_message.get_return_status_disable;
432 hr_utility.set_location(' Leaving:' || l_proc,50);
433 end create_person_absence;
434 -- ----------------------------------------------------------------------------
435 -- |-------------------------< update_person_absence >------------------------|
436 -- ----------------------------------------------------------------------------
437 PROCEDURE update_person_absence
438 (p_validate in number default hr_api.g_false_num
439 ,p_effective_date in date
440 ,p_absence_attendance_id in number
441 ,p_abs_attendance_reason_id in number default hr_api.g_number
442 ,p_comments in long default hr_api.g_varchar2
443 ,p_date_notification in date default hr_api.g_date
444 ,p_date_projected_start in date default hr_api.g_date
445 ,p_time_projected_start in varchar2 default hr_api.g_varchar2
446 ,p_date_projected_end in date default hr_api.g_date
447 ,p_time_projected_end in varchar2 default hr_api.g_varchar2
448 ,p_date_start in date default hr_api.g_date
449 ,p_time_start in varchar2 default hr_api.g_varchar2
450 ,p_date_end in date default hr_api.g_date
451 ,p_time_end in varchar2 default hr_api.g_varchar2
452 ,p_absence_days in out nocopy number
453 ,p_absence_hours in out nocopy number
454 ,p_authorising_person_id in number default hr_api.g_number
455 ,p_replacement_person_id in number default hr_api.g_number
456 ,p_attribute_category in varchar2 default hr_api.g_varchar2
457 ,p_attribute1 in varchar2 default hr_api.g_varchar2
458 ,p_attribute2 in varchar2 default hr_api.g_varchar2
459 ,p_attribute3 in varchar2 default hr_api.g_varchar2
460 ,p_attribute4 in varchar2 default hr_api.g_varchar2
461 ,p_attribute5 in varchar2 default hr_api.g_varchar2
462 ,p_attribute6 in varchar2 default hr_api.g_varchar2
463 ,p_attribute7 in varchar2 default hr_api.g_varchar2
464 ,p_attribute8 in varchar2 default hr_api.g_varchar2
465 ,p_attribute9 in varchar2 default hr_api.g_varchar2
466 ,p_attribute10 in varchar2 default hr_api.g_varchar2
467 ,p_attribute11 in varchar2 default hr_api.g_varchar2
468 ,p_attribute12 in varchar2 default hr_api.g_varchar2
469 ,p_attribute13 in varchar2 default hr_api.g_varchar2
470 ,p_attribute14 in varchar2 default hr_api.g_varchar2
471 ,p_attribute15 in varchar2 default hr_api.g_varchar2
472 ,p_attribute16 in varchar2 default hr_api.g_varchar2
473 ,p_attribute17 in varchar2 default hr_api.g_varchar2
474 ,p_attribute18 in varchar2 default hr_api.g_varchar2
475 ,p_attribute19 in varchar2 default hr_api.g_varchar2
476 ,p_attribute20 in varchar2 default hr_api.g_varchar2
477 ,p_period_of_incapacity_id in number default hr_api.g_number
478 ,p_ssp1_issued in varchar2 default hr_api.g_varchar2
479 ,p_maternity_id in number default hr_api.g_number
480 ,p_sickness_start_date in date default hr_api.g_date
481 ,p_sickness_end_date in date default hr_api.g_date
482 ,p_pregnancy_related_illness in varchar2 default hr_api.g_varchar2
483 ,p_reason_for_notification_dela in varchar2 default hr_api.g_varchar2
484 ,p_accept_late_notification_fla in varchar2 default hr_api.g_varchar2
485 ,p_linked_absence_id in number default hr_api.g_number
486 ,p_batch_id in number default hr_api.g_number
487 ,p_abs_information_category in varchar2 default hr_api.g_varchar2
488 ,p_abs_information1 in varchar2 default hr_api.g_varchar2
489 ,p_abs_information2 in varchar2 default hr_api.g_varchar2
490 ,p_abs_information3 in varchar2 default hr_api.g_varchar2
491 ,p_abs_information4 in varchar2 default hr_api.g_varchar2
492 ,p_abs_information5 in varchar2 default hr_api.g_varchar2
493 ,p_abs_information6 in varchar2 default hr_api.g_varchar2
494 ,p_abs_information7 in varchar2 default hr_api.g_varchar2
495 ,p_abs_information8 in varchar2 default hr_api.g_varchar2
496 ,p_abs_information9 in varchar2 default hr_api.g_varchar2
497 ,p_abs_information10 in varchar2 default hr_api.g_varchar2
498 ,p_abs_information11 in varchar2 default hr_api.g_varchar2
499 ,p_abs_information12 in varchar2 default hr_api.g_varchar2
500 ,p_abs_information13 in varchar2 default hr_api.g_varchar2
501 ,p_abs_information14 in varchar2 default hr_api.g_varchar2
502 ,p_abs_information15 in varchar2 default hr_api.g_varchar2
503 ,p_abs_information16 in varchar2 default hr_api.g_varchar2
504 ,p_abs_information17 in varchar2 default hr_api.g_varchar2
505 ,p_abs_information18 in varchar2 default hr_api.g_varchar2
506 ,p_abs_information19 in varchar2 default hr_api.g_varchar2
507 ,p_abs_information20 in varchar2 default hr_api.g_varchar2
508 ,p_abs_information21 in varchar2 default hr_api.g_varchar2
509 ,p_abs_information22 in varchar2 default hr_api.g_varchar2
510 ,p_abs_information23 in varchar2 default hr_api.g_varchar2
511 ,p_abs_information24 in varchar2 default hr_api.g_varchar2
512 ,p_abs_information25 in varchar2 default hr_api.g_varchar2
513 ,p_abs_information26 in varchar2 default hr_api.g_varchar2
514 ,p_abs_information27 in varchar2 default hr_api.g_varchar2
515 ,p_abs_information28 in varchar2 default hr_api.g_varchar2
516 ,p_abs_information29 in varchar2 default hr_api.g_varchar2
517 ,p_abs_information30 in varchar2 default hr_api.g_varchar2
518 ,p_absence_case_id in number default hr_api.g_number
519 ,p_object_version_number in out nocopy number
520 ,p_return_status out nocopy varchar2
521 ) is
522 --
523 -- Variables for API Boolean parameters
524 l_validate boolean;
525 l_dur_dys_less_warning boolean;
526 l_dur_hrs_less_warning boolean;
527 l_exceeds_pto_entit_warning boolean;
528 l_exceeds_run_total_warning boolean;
529 l_abs_overlap_warning boolean;
530 l_abs_day_after_warning boolean;
531 l_dur_overwritten_warning boolean;
532 l_del_element_entry_warning boolean;
533 --
534 -- Variables for IN/OUT parameters
535 l_absence_days number;
536 l_absence_hours number;
537 l_object_version_number number;
538
539 --7382975 begin
540 l_populate_sickness_dates boolean := false;
541 l_sickness_start_date date := p_sickness_start_date;
542 l_sickness_end_date date := p_sickness_end_date;
543 l_absence_attendance_type_id per_absence_attendances.absence_attendance_type_id%type;
544 l_business_group_id per_absence_attendances.business_group_id%type;
545
546 Cursor c_is_gb_leg is
547 select absence_attendance_type_id, business_group_id
548 from per_absence_attendances
549 where absence_attendance_id = p_absence_attendance_id;
550 --7382975 End
551
552
553 --
554 -- Other variables
555 l_proc varchar2(72) := g_package ||'update_person_absence';
556 Begin
557 hr_utility.set_location(' Entering:' || l_proc,10);
558 --
559 -- Issue a savepoint
560 --
561 savepoint update_person_absence_swi;
562 --
563 -- Initialise Multiple Message Detection
564 --
565 hr_multi_message.enable_message_list;
566 --
567
568 -- Bug 6347488 fix starts
569
570 if p_date_start is null then
571 p_absence_days := null;
572 p_absence_hours := null;
573 end if;
574
575 -- Bug 6347488 fix ends
576
577 -- Remember IN OUT parameter IN values
578 --
579 l_absence_days := p_absence_days;
580 l_absence_hours := p_absence_hours;
581 l_object_version_number := p_object_version_number;
582 --
583 -- Convert constant values to their corresponding boolean value
584 --
585 l_validate :=
586 hr_api.constant_to_boolean
587 (p_constant_value => p_validate);
588 --
589 -- Register Surrogate ID or user key values
590 --
591 --7382975 begin
592 open c_is_gb_leg;
593 fetch c_is_gb_leg into l_absence_attendance_type_id, l_business_group_id;
594
595 IF c_is_gb_leg%FOUND THEN
596 l_populate_sickness_dates := is_gb_leg_and_category_s(l_absence_attendance_type_id , l_business_group_id);
597
598 IF l_populate_sickness_dates THEN
599 IF (p_date_start <> hr_api.g_date) THEN
600 IF p_date_start > SYSDATE THEN
601 fnd_message.set_name('SSP', 'SSP_35036_INV_NOTIF_DATE');
602 fnd_message.raise_error;
603 END IF;
604 l_sickness_start_date := p_date_start;
605 END IF;
606 IF (p_date_end <> hr_api.g_date) THEN
607 l_sickness_end_date := p_date_end;
608 END IF;
609 END IF;
610 END IF;
611
612 close c_is_gb_leg;
613 --7382975 end
614
615
616
617 --
618 -- Call API
619 --
620 hr_person_absence_api.update_person_absence
621 (p_validate => l_validate
622 ,p_effective_date => p_effective_date
623 ,p_absence_attendance_id => p_absence_attendance_id
624 ,p_abs_attendance_reason_id => p_abs_attendance_reason_id
625 ,p_comments => p_comments
626 ,p_date_notification => p_date_notification
627 ,p_date_projected_start => p_date_projected_start
628 ,p_time_projected_start => p_time_projected_start
629 ,p_date_projected_end => p_date_projected_end
630 ,p_time_projected_end => p_time_projected_end
631 ,p_date_start => p_date_start
632 ,p_time_start => p_time_start
633 ,p_date_end => p_date_end
634 ,p_time_end => p_time_end
635 ,p_absence_days => p_absence_days
636 ,p_absence_hours => p_absence_hours
637 ,p_authorising_person_id => p_authorising_person_id
638 ,p_replacement_person_id => p_replacement_person_id
639 ,p_attribute_category => p_attribute_category
640 ,p_attribute1 => p_attribute1
641 ,p_attribute2 => p_attribute2
642 ,p_attribute3 => p_attribute3
643 ,p_attribute4 => p_attribute4
644 ,p_attribute5 => p_attribute5
645 ,p_attribute6 => p_attribute6
646 ,p_attribute7 => p_attribute7
647 ,p_attribute8 => p_attribute8
648 ,p_attribute9 => p_attribute9
649 ,p_attribute10 => p_attribute10
650 ,p_attribute11 => p_attribute11
651 ,p_attribute12 => p_attribute12
652 ,p_attribute13 => p_attribute13
653 ,p_attribute14 => p_attribute14
654 ,p_attribute15 => p_attribute15
655 ,p_attribute16 => p_attribute16
656 ,p_attribute17 => p_attribute17
657 ,p_attribute18 => p_attribute18
658 ,p_attribute19 => p_attribute19
659 ,p_attribute20 => p_attribute20
660 ,p_period_of_incapacity_id => p_period_of_incapacity_id
661 ,p_ssp1_issued => p_ssp1_issued
662 ,p_maternity_id => p_maternity_id
663 ,p_sickness_start_date => l_sickness_start_date --7382975
664 ,p_sickness_end_date => l_sickness_end_date --7382975
665 ,p_pregnancy_related_illness => p_pregnancy_related_illness
666 ,p_reason_for_notification_dela => p_reason_for_notification_dela
667 ,p_accept_late_notification_fla => p_accept_late_notification_fla
668 ,p_linked_absence_id => p_linked_absence_id
669 ,p_batch_id => p_batch_id
670 ,p_abs_information_category => p_abs_information_category
671 ,p_abs_information1 => p_abs_information1
672 ,p_abs_information2 => p_abs_information2
673 ,p_abs_information3 => p_abs_information3
674 ,p_abs_information4 => p_abs_information4
675 ,p_abs_information5 => p_abs_information5
676 ,p_abs_information6 => p_abs_information6
677 ,p_abs_information7 => p_abs_information7
678 ,p_abs_information8 => p_abs_information8
679 ,p_abs_information9 => p_abs_information9
680 ,p_abs_information10 => p_abs_information10
681 ,p_abs_information11 => p_abs_information11
682 ,p_abs_information12 => p_abs_information12
683 ,p_abs_information13 => p_abs_information13
684 ,p_abs_information14 => p_abs_information14
685 ,p_abs_information15 => p_abs_information15
686 ,p_abs_information16 => p_abs_information16
687 ,p_abs_information17 => p_abs_information17
688 ,p_abs_information18 => p_abs_information18
689 ,p_abs_information19 => p_abs_information19
690 ,p_abs_information20 => p_abs_information20
691 ,p_abs_information21 => p_abs_information21
692 ,p_abs_information22 => p_abs_information22
693 ,p_abs_information23 => p_abs_information23
694 ,p_abs_information24 => p_abs_information24
695 ,p_abs_information25 => p_abs_information25
696 ,p_abs_information26 => p_abs_information26
697 ,p_abs_information27 => p_abs_information27
698 ,p_abs_information28 => p_abs_information28
699 ,p_abs_information29 => p_abs_information29
700 ,p_abs_information30 => p_abs_information30
701 ,p_absence_case_id => p_absence_case_id
702 ,p_object_version_number => p_object_version_number
703 ,p_dur_dys_less_warning => l_dur_dys_less_warning
704 ,p_dur_hrs_less_warning => l_dur_hrs_less_warning
705 ,p_exceeds_pto_entit_warning => l_exceeds_pto_entit_warning
706 ,p_exceeds_run_total_warning => l_exceeds_run_total_warning
707 ,p_abs_overlap_warning => l_abs_overlap_warning
708 ,p_abs_day_after_warning => l_abs_day_after_warning
709 ,p_dur_overwritten_warning => l_dur_overwritten_warning
710 ,p_del_element_entry_warning => l_del_element_entry_warning
711 );
712 --
713 -- Convert API warning boolean parameter values to specific
714 -- messages and add them to Multiple Message List
715 --
716 if l_validate then
717 if l_dur_dys_less_warning then
718 hr_utility.set_message(800, 'HR_EMP_ABS_SHORT_DURATION');
719 hr_multi_message.add
720 (p_message_type => hr_multi_message.g_warning_msg
721 );
722 end if;
723 if l_dur_hrs_less_warning then
724 hr_utility.set_message(800, 'HR_ABS_HOUR_LESS_DURATION');
725 hr_multi_message.add
726 (p_message_type => hr_multi_message.g_warning_msg
727 );
728 end if;
729 if l_exceeds_pto_entit_warning then
730 hr_utility.set_message(800, 'HR_LOA_EMP_NOT_ENTITLED');
731 hr_multi_message.add
732 (p_message_type => hr_multi_message.g_warning_msg
733 );
734 end if;
735 if l_exceeds_run_total_warning then
736 hr_utility.set_message(800, 'HR_LOA_DET_RUNNING_ZERO');
737 hr_multi_message.add
738 (p_message_type => hr_multi_message.g_warning_msg
739 );
740 end if;
741 if l_abs_overlap_warning then
742 hr_utility.set_message(800, 'HR_LOA_ABSENCE_OVERLAP');
743 hr_multi_message.add
744 (p_message_type => hr_multi_message.g_warning_msg
745 );
746 end if;
747 if l_abs_day_after_warning then
748 hr_utility.set_message(800, 'HR_LOA_DET_ABS_DAY_AFTER');
749 hr_multi_message.add
750 (p_message_type => hr_multi_message.g_warning_msg
751 );
752 end if;
753 --
754 -- We don't raise overwritten warning from SSHR
755 --
756 --if l_dur_overwritten_warning then
757 -- hr_utility.set_message(800, 'EDIT_HERE: MESSAGE_NAME ');
758 -- hr_multi_message.add
759 -- (p_message_type => hr_multi_message.g_warning_msg
760 -- );
761 --end if; --
762 if l_del_element_entry_warning then
763 fnd_message.set_name('EDIT HERE: APP_CODE', 'EDIT_HERE: MESSAGE_NAME ');
764 hr_multi_message.add
765 (p_message_type => hr_multi_message.g_warning_msg
766 );
767 end if;
768 end if; --
769 -- Convert API non-warning boolean parameter values
770 --
771 --
772 -- Derive the API return status value based on whether
773 -- messages of any type exist in the Multiple Message List.
774 -- Also disable Multiple Message Detection.
775 --
776 p_return_status := hr_multi_message.get_return_status_disable;
777 hr_utility.set_location(' Leaving:' || l_proc,20);
778 --
779 exception
780 when hr_multi_message.error_message_exist then
781 --
782 -- Catch the Multiple Message List exception which
783 -- indicates API processing has been aborted because
784 -- at least one message exists in the list.
785 --
786 rollback to update_person_absence_swi;
787 --
788 -- Reset IN OUT parameters and set OUT parameters
789 --
790 p_absence_days := l_absence_days;
791 p_absence_hours := l_absence_hours;
792 p_object_version_number := l_object_version_number;
793 p_return_status := hr_multi_message.get_return_status_disable;
794 hr_utility.set_location(' Leaving:' || l_proc, 30);
795 when others then
796 --
797 -- When Multiple Message Detection is enabled catch
798 -- any Application specific or other unexpected
799 -- exceptions. Adding appropriate details to the
800 -- Multiple Message List. Otherwise re-raise the
801 -- error.
802 --
803 rollback to update_person_absence_swi;
804 if hr_multi_message.unexpected_error_add(l_proc) then
805 hr_utility.set_location(' Leaving:' || l_proc,40);
806 raise;
807 end if;
808 --
809 -- Reset IN OUT and set OUT parameters
810 --
811 p_absence_days := l_absence_days;
812 p_absence_hours := l_absence_hours;
813 p_object_version_number := l_object_version_number;
814 p_return_status := hr_multi_message.get_return_status_disable;
815 hr_utility.set_location(' Leaving:' || l_proc,50);
816 end update_person_absence;
817 -- ----------------------------------------------------------------------------
818 -- |-------------------------< delete_person_absence >------------------------|
819 -- ----------------------------------------------------------------------------
820 PROCEDURE delete_person_absence
821 (p_validate in number default hr_api.g_false_num
822 ,p_absence_attendance_id in number
823 ,p_object_version_number in number
824 ,p_return_status out nocopy varchar2
825 ) is
826 --
827 -- Variables for API Boolean parameters
828 l_validate boolean;
829 --
830 -- Variables for IN/OUT parameters
831 --
832 -- Other variables
833 l_proc varchar2(72) := g_package ||'delete_person_absence';
834 Begin
835
836
837 hr_utility.set_location(' Entering:' || l_proc,10);
838 --
839 -- Issue a savepoint
840 --
841 savepoint delete_person_absence_swi;
842 --
843 -- Initialise Multiple Message Detection
844 --
845 hr_multi_message.enable_message_list;
846 --
847 -- Remember IN OUT parameter IN values
848 --
849 --
850 -- Convert constant values to their corresponding boolean value
851 --
852 l_validate :=
853 hr_api.constant_to_boolean
854 (p_constant_value => p_validate);
855 --
856 -- Register Surrogate ID or user key values
857 --
858 --
859 -- Call API
860 --
861 hr_person_absence_api.delete_person_absence
862 (p_validate => l_validate
863 ,p_absence_attendance_id => p_absence_attendance_id
864 ,p_object_version_number => p_object_version_number
865 );
866 --
867 -- Convert API warning boolean parameter values to specific
868 -- messages and add them to Multiple Message List
869 --
870 --
871 -- Convert API non-warning boolean parameter values
872 --
873 --
874 -- Derive the API return status value based on whether
875 -- messages of any type exist in the Multiple Message List.
876 -- Also disable Multiple Message Detection.
877 --
878 p_return_status := hr_multi_message.get_return_status_disable;
879 hr_utility.set_location(' Leaving:' || l_proc,20);
880 --
881 exception
882 when hr_multi_message.error_message_exist then
883 --
884 -- Catch the Multiple Message List exception which
885 -- indicates API processing has been aborted because
886 -- at least one message exists in the list.
887 --
888 rollback to delete_person_absence_swi;
889 --
890 -- Reset IN OUT parameters and set OUT parameters
891 --
892 p_return_status := hr_multi_message.get_return_status_disable;
893 hr_utility.set_location(' Leaving:' || l_proc, 30);
894 when others then
895 --
896 -- When Multiple Message Detection is enabled catch
897 -- any Application specific or other unexpected
898 -- exceptions. Adding appropriate details to the
899 -- Multiple Message List. Otherwise re-raise the
900 -- error.
901 --
902 rollback to delete_person_absence_swi;
903 if hr_multi_message.unexpected_error_add(l_proc) then
904 hr_utility.set_location(' Leaving:' || l_proc,40);
905 raise;
906 end if;
907 --
908 -- Reset IN OUT and set OUT parameters
909 --
910 p_return_status := hr_multi_message.get_return_status_disable;
911 hr_utility.set_location(' Leaving:' || l_proc,50);
912 end delete_person_absence;
913
914
915 -- ----------------------------------------------------------------------------
916 -- |--------------------------< update_attachment >----------------------------|
917 -- ----------------------------------------------------------------------------
918 --
919 procedure update_attachment
920 (p_entity_name in varchar2 default null
921 ,p_pk1_value in varchar2 default null
922 ,p_rowid in varchar2 ) is
923
924
925
926 l_proc varchar2(72) := g_package ||'update_attachment';
927 l_rowid varchar2(50);
928 l_language varchar2(30) ;
929 data_error exception;
930 --
931
932 cursor csr_get_attached_doc is
933 select *
934 from fnd_attached_documents
935 where rowid = p_rowid;
936 --
937 cursor csr_get_doc(csr_p_document_id in number) is
938 select *
939 from fnd_documents
940 where document_id = csr_p_document_id;
941 --
942 cursor csr_get_doc_tl (csr_p_lang in varchar2
943 ,csr_p_document_id in number) is
944 select *
945 from fnd_documents_tl
946 where document_id = csr_p_document_id
947 and language = csr_p_lang;
948 --
949 l_attached_doc_pre_upd csr_get_attached_doc%rowtype;
950 l_doc_pre_upd csr_get_doc%rowtype;
951 l_doc_tl_pre_upd csr_get_doc_tl%rowtype;
952 --
953 --
954 Begin
955 hr_utility.set_location(' Entering:' || l_proc,10);
956 --
957 -- Get language
958 select userenv('LANG') into l_language from dual;
959 --
960 -- Get the before update nullable fields which are not used by the
961 -- Web page to ensure the values are propagated.
962 Open csr_get_attached_doc;
963 fetch csr_get_attached_doc into l_attached_doc_pre_upd;
964 IF csr_get_attached_doc%NOTFOUND THEN
965 close csr_get_attached_doc;
966 raise data_error;
967 END IF;
968
969 Open csr_get_doc(l_attached_doc_pre_upd.document_id);
970 fetch csr_get_doc into l_doc_pre_upd;
971 IF csr_get_doc%NOTFOUND then
972 close csr_get_doc;
973 raise data_error;
974 END IF;
975
976 Open csr_get_doc_tl (csr_p_lang => l_language
977 ,csr_p_document_id => l_attached_doc_pre_upd.document_id);
978 fetch csr_get_doc_tl into l_doc_tl_pre_upd;
979 IF csr_get_doc_tl%NOTFOUND then
980 close csr_get_doc_tl;
981 raise data_error;
982 END IF;
983
984 hr_utility.set_location(' before fnd_attached_documents_pkg.lock_row :' || l_proc,20);
985 -- Now, lock the rows.
986 fnd_attached_documents_pkg.lock_row
987 (x_rowid => p_rowid
988 ,x_attached_document_id =>
989 l_attached_doc_pre_upd.attached_document_id
990 ,x_document_id => l_doc_pre_upd.document_id
991 ,x_seq_num => l_attached_doc_pre_upd.seq_num
992 ,x_entity_name => l_attached_doc_pre_upd.entity_name
993 ,x_column1 => l_attached_doc_pre_upd.column1
994 ,x_pk1_value => l_attached_doc_pre_upd.pk1_value
995 ,x_pk2_value => l_attached_doc_pre_upd.pk2_value
996 ,x_pk3_value => l_attached_doc_pre_upd.pk3_value
997 ,x_pk4_value => l_attached_doc_pre_upd.pk4_value
998 ,x_pk5_value => l_attached_doc_pre_upd.pk5_value
999 ,x_automatically_added_flag =>
1000 l_attached_doc_pre_upd.automatically_added_flag
1001 ,x_attribute_category =>
1002 l_attached_doc_pre_upd.attribute_category
1003 ,x_attribute1 => l_attached_doc_pre_upd.attribute1
1004 ,x_attribute2 => l_attached_doc_pre_upd.attribute2
1005 ,x_attribute3 => l_attached_doc_pre_upd.attribute3
1006 ,x_attribute4 => l_attached_doc_pre_upd.attribute4
1007 ,x_attribute5 => l_attached_doc_pre_upd.attribute5
1008 ,x_attribute6 => l_attached_doc_pre_upd.attribute6
1009 ,x_attribute7 => l_attached_doc_pre_upd.attribute7
1010 ,x_attribute8 => l_attached_doc_pre_upd.attribute8
1011 ,x_attribute9 => l_attached_doc_pre_upd.attribute9
1012 ,x_attribute10 => l_attached_doc_pre_upd.attribute10
1013 ,x_attribute11 => l_attached_doc_pre_upd.attribute11
1014 ,x_attribute12 => l_attached_doc_pre_upd.attribute12
1015 ,x_attribute13 => l_attached_doc_pre_upd.attribute13
1016 ,x_attribute14 => l_attached_doc_pre_upd.attribute14
1017 ,x_attribute15 => l_attached_doc_pre_upd.attribute15
1018 ,x_datatype_id => l_doc_pre_upd.datatype_id
1019 ,x_category_id => l_doc_pre_upd.category_id
1020 ,x_security_type => l_doc_pre_upd.security_type
1021 ,x_security_id => l_doc_pre_upd.security_id
1022 ,x_publish_flag => l_doc_pre_upd.publish_flag
1023 ,x_image_type => l_doc_pre_upd.image_type
1024 ,x_storage_type => l_doc_pre_upd.storage_type
1025 ,x_usage_type => l_doc_pre_upd.usage_type
1026 ,x_start_date_active => l_doc_pre_upd.start_date_active
1027 ,x_end_date_active => l_doc_pre_upd.end_date_active
1028 ,x_language => l_doc_tl_pre_upd.language
1029 ,x_description => l_doc_tl_pre_upd.description
1030 ,x_file_name => l_doc_pre_upd.file_name
1031 ,x_media_id => l_doc_pre_upd.media_id
1032 ,x_doc_attribute_category =>
1033 l_doc_tl_pre_upd.doc_attribute_category
1034 ,x_doc_attribute1 => l_doc_tl_pre_upd.doc_attribute1
1035 ,x_doc_attribute2 => l_doc_tl_pre_upd.doc_attribute2
1036 ,x_doc_attribute3 => l_doc_tl_pre_upd.doc_attribute3
1037 ,x_doc_attribute4 => l_doc_tl_pre_upd.doc_attribute4
1038 ,x_doc_attribute5 => l_doc_tl_pre_upd.doc_attribute5
1039 ,x_doc_attribute6 => l_doc_tl_pre_upd.doc_attribute6
1040 ,x_doc_attribute7 => l_doc_tl_pre_upd.doc_attribute7
1041 ,x_doc_attribute8 => l_doc_tl_pre_upd.doc_attribute8
1042 ,x_doc_attribute9 => l_doc_tl_pre_upd.doc_attribute9
1043 ,x_doc_attribute10 => l_doc_tl_pre_upd.doc_attribute10
1044 ,x_doc_attribute11 => l_doc_tl_pre_upd.doc_attribute11
1045 ,x_doc_attribute12 => l_doc_tl_pre_upd.doc_attribute12
1046 ,x_doc_attribute13 => l_doc_tl_pre_upd.doc_attribute13
1047 ,x_doc_attribute14 => l_doc_tl_pre_upd.doc_attribute14
1048 ,x_doc_attribute15 => l_doc_tl_pre_upd.doc_attribute15
1049 ,x_url => l_doc_pre_upd.url
1050 ,x_title => l_doc_tl_pre_upd.title
1051 );
1052
1053
1054 -- Update document to fnd_attached_documents, fnd_documents,
1055 -- fnd_documents_tl
1056 --
1057 hr_utility.set_location(' before fnd_attached_documents_pkg.update_row :' || l_proc,30);
1058 fnd_attached_documents_pkg.update_row
1059 (x_rowid => p_rowid
1060 ,x_attached_document_id =>
1061 l_attached_doc_pre_upd.attached_document_id
1062 ,x_document_id => l_doc_pre_upd.document_id
1063 ,x_last_update_date => trunc(sysdate)
1064 ,x_last_updated_by => l_attached_doc_pre_upd.last_updated_by
1065 ,x_seq_num => l_attached_doc_pre_upd.seq_num
1066 ,x_entity_name => p_entity_name
1067 ,x_column1 => l_attached_doc_pre_upd.column1
1068 ,x_pk1_value => p_pk1_value
1069 ,x_pk2_value => l_attached_doc_pre_upd.pk2_value
1070 ,x_pk3_value => l_attached_doc_pre_upd.pk3_value
1071 ,x_pk4_value => l_attached_doc_pre_upd.pk4_value
1072 ,x_pk5_value => l_attached_doc_pre_upd.pk5_value
1073 ,x_automatically_added_flag =>
1074 l_attached_doc_pre_upd.automatically_added_flag
1075 ,x_attribute_category =>
1076 l_attached_doc_pre_upd.attribute_category
1077 ,x_attribute1 => l_attached_doc_pre_upd.attribute1
1078 ,x_attribute2 => l_attached_doc_pre_upd.attribute2
1079 ,x_attribute3 => l_attached_doc_pre_upd.attribute3
1080 ,x_attribute4 => l_attached_doc_pre_upd.attribute4
1081 ,x_attribute5 => l_attached_doc_pre_upd.attribute5
1082 ,x_attribute6 => l_attached_doc_pre_upd.attribute6
1083 ,x_attribute7 => l_attached_doc_pre_upd.attribute7
1084 ,x_attribute8 => l_attached_doc_pre_upd.attribute8
1085 ,x_attribute9 => l_attached_doc_pre_upd.attribute9
1086 ,x_attribute10 => l_attached_doc_pre_upd.attribute10
1087 ,x_attribute11 => l_attached_doc_pre_upd.attribute11
1088 ,x_attribute12 => l_attached_doc_pre_upd.attribute12
1089 ,x_attribute13 => l_attached_doc_pre_upd.attribute13
1090 ,x_attribute14 => l_attached_doc_pre_upd.attribute14
1091 ,x_attribute15 => l_attached_doc_pre_upd.attribute15
1092 /* columns necessary for creating a document on the fly */
1093 ,x_datatype_id => l_doc_pre_upd.datatype_id
1094 ,x_category_id => l_doc_pre_upd.category_id
1095 ,x_security_type => l_doc_pre_upd.security_type
1096 ,x_security_id => l_doc_pre_upd.security_id
1097 ,x_publish_flag => l_doc_pre_upd.publish_flag
1098 ,x_image_type => l_doc_pre_upd.image_type
1099 ,x_storage_type => l_doc_pre_upd.storage_type
1100 ,x_usage_type => l_doc_pre_upd.usage_type
1101 ,x_start_date_active => trunc(sysdate)
1102 ,x_end_date_active => l_doc_pre_upd.end_date_active
1103 ,x_language => l_language
1104 ,x_description => l_doc_tl_pre_upd.description
1105 ,x_file_name => l_doc_pre_upd.file_name
1106 ,x_media_id => l_doc_pre_upd.media_id
1107 ,x_doc_attribute_category =>
1108 l_doc_tl_pre_upd.doc_attribute_category
1109 ,x_doc_attribute1 => l_doc_tl_pre_upd.doc_attribute1
1110 ,x_doc_attribute2 => l_doc_tl_pre_upd.doc_attribute2
1111 ,x_doc_attribute3 => l_doc_tl_pre_upd.doc_attribute3
1112 ,x_doc_attribute4 => l_doc_tl_pre_upd.doc_attribute4
1113 ,x_doc_attribute5 => l_doc_tl_pre_upd.doc_attribute5
1114 ,x_doc_attribute6 => l_doc_tl_pre_upd.doc_attribute6
1115 ,x_doc_attribute7 => l_doc_tl_pre_upd.doc_attribute7
1116 ,x_doc_attribute8 => l_doc_tl_pre_upd.doc_attribute8
1117 ,x_doc_attribute9 => l_doc_tl_pre_upd.doc_attribute9
1118 ,x_doc_attribute10 => l_doc_tl_pre_upd.doc_attribute10
1119 ,x_doc_attribute11 => l_doc_tl_pre_upd.doc_attribute11
1120 ,x_doc_attribute12 => l_doc_tl_pre_upd.doc_attribute12
1121 ,x_doc_attribute13 => l_doc_tl_pre_upd.doc_attribute13
1122 ,x_doc_attribute14 => l_doc_tl_pre_upd.doc_attribute14
1123 ,x_doc_attribute15 => l_doc_tl_pre_upd.doc_attribute15
1124 ,x_url => l_doc_pre_upd.url
1125 ,x_title => l_doc_tl_pre_upd.title
1126 );
1127
1128 hr_utility.set_location(' after fnd_attached_documents_pkg.update_row :' || l_proc,40);
1129 hr_utility.set_location(' Leaving:' || l_proc,50);
1130
1131 EXCEPTION
1132 when others then
1133 hr_utility.set_location(' Error in :' || l_proc,60);
1134 raise;
1135 --
1136 End update_attachment;
1137
1138
1139 procedure merge_attachments(p_transaction_id in number,
1140 p_absence_attendance_id in number,
1141 p_return_status in out nocopy varchar2)
1142 is
1143 -- Other variables
1144 l_proc varchar2(72) := g_package ||'merge_attachments';
1145 l_rowid varchar2(50);
1146 lv_pk1_value varchar2(72) := p_absence_attendance_id||'_'||p_transaction_id ;
1147 data_error exception;
1148 lv_entity_name constant varchar2(30) := 'PER_ABSENCE_ATTENDANCES';
1149
1150 cursor csr_get_attached_doc is
1151 select *
1152 from fnd_attached_documents
1153 where entity_name=lv_entity_name
1154 and pk1_value=lv_pk1_value;
1155
1156 CURSOR C (X_attached_document_id in number) IS
1157 SELECT rowid
1158 FROM fnd_attached_documents
1159 WHERE attached_document_id = X_attached_document_id;
1160 --
1161 Begin
1162 hr_utility.set_location(' Entering:' || l_proc,10);
1163 --
1164 -- Issue a savepoint
1165 --
1166 savepoint attachments_person_absence_swi;
1167 --
1168 -- Initialise Multiple Message Detection
1169 --
1170 hr_multi_message.enable_message_list;
1171
1172 for attached_documents_rec in csr_get_attached_doc loop
1173 OPEN C (attached_documents_rec.attached_document_id);
1174 FETCH C INTO l_rowid;
1175 if (C%NOTFOUND) then
1176 CLOSE C;
1177 RAISE NO_DATA_FOUND;
1178 end if;
1179 CLOSE C;
1180 -- call the update_attachement for each attached doc
1181 update_attachment
1182 (p_entity_name=>lv_entity_name
1183 ,p_pk1_value=> p_absence_attendance_id
1184 ,p_rowid=>l_rowid);
1185
1186 end loop;
1187
1188 p_return_status := hr_multi_message.get_return_status_disable;
1189
1190 hr_utility.set_location(' Leaving:' || l_proc,20);
1191 --
1192 exception
1193 when others then
1194 --
1195 -- When Multiple Message Detection is enabled catch
1196 -- any Application specific or other unexpected
1197 -- exceptions. Adding appropriate details to the
1198 -- Multiple Message List. Otherwise re-raise the
1199 -- error.
1200 --
1201 rollback to attachments_person_absence_swi;
1202 if hr_multi_message.unexpected_error_add(l_proc) then
1203 hr_utility.set_location(' Leaving:' || l_proc,40);
1204 raise;
1205 end if;
1206 --
1207 -- Reset IN OUT and set OUT parameters
1208 p_return_status := hr_multi_message.get_return_status_disable;
1209
1210 hr_utility.set_location(' Leaving:' || l_proc,50);
1211 end merge_attachments;
1212
1213
1214 -- ----------------------------------------------------------------------------
1215 -- |---------------------------< process_api >--------------------------------|
1216 -- ----------------------------------------------------------------------------
1217
1218 Procedure process_api
1219 ( p_document in CLOB
1220 ,p_return_status out nocopy VARCHAR2
1221 ,p_validate in number default hr_api.g_false_num
1222 ,p_effective_date in date default null
1223 )
1224 IS
1225 l_postState VARCHAR2(2);
1226 l_return_status VARCHAR2(1);
1227 l_commitElement xmldom.DOMElement;
1228 l_object_version_number number;
1229 l_parser xmlparser.Parser;
1230 l_CommitNode xmldom.DOMNode;
1231 l_proc varchar2(72) := g_package || 'process_api';
1232
1233 l_absence_days number;
1234 l_absence_hours number;
1235 l_absence_attendance_id number;
1236 l_occurrence number;
1237 lv_action varchar2(30);
1238
1239 BEGIN
1240
1241 hr_utility.set_location(' Entering:' || l_proc,10);
1242 hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
1243 l_parser := xmlparser.newParser;
1244 xmlparser.ParseCLOB(l_parser,p_document);
1245 l_CommitNode := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
1246
1247 hr_utility.set_location('Extracting the PostState:' || l_proc,20);
1248
1249 l_commitElement := xmldom.makeElement(l_CommitNode);
1250 l_postState := xmldom.getAttribute(l_commitElement, 'PS');
1251 l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
1252
1253 -- overiding for poststate
1254 -- CancelMode
1255 if(l_postState = '2') then
1256 -- Check if the transaction is for delete
1257 begin
1258 lv_action:= hr_xml_util.get_node_value(hr_transaction_swi.g_txn_ctx.TRANSACTION_ID,'AbsenceAction','Transaction/TransCtx/CNode',
1259 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
1260 end;
1261 if(lv_action='CancelMode') then
1262 -- reset the poststate
1263 l_postState:= '3';
1264 end if;
1265 end if;
1266
1267
1268 if l_postState = '0' then
1269
1270 l_absence_days := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceDays',null);
1271 l_absence_hours := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceHours',null);
1272 l_absence_attendance_id := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceId',null);
1273 l_occurrence := hr_transaction_swi.getNumberValue(l_CommitNode,'Occurrence',null);
1274
1275 create_person_absence
1276 (p_validate => p_validate
1277 ,p_effective_date => p_effective_date
1278 ,p_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',null)
1279 ,p_business_group_id => hr_transaction_swi.getNumberValue(l_CommitNode,'BusinessGroupId',null)
1280 ,p_absence_attendance_type_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceTypeId',null)
1281 ,p_abs_attendance_reason_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AbsAttendanceReasonId',null)
1282 ,p_comments => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Comments',null)
1283 ,p_date_notification => hr_transaction_swi.getDateValue(l_CommitNode,'DateNotification',null)
1284 ,p_date_projected_start => hr_transaction_swi.getDateValue(l_CommitNode,'DateProjectedStart',null)
1285 ,p_time_projected_start => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeProjectedStart',null)
1286 ,p_date_projected_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateProjectedEnd',null)
1287 ,p_time_projected_end => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeProjectedEnd',null)
1288 ,p_date_start => hr_transaction_swi.getDateValue(l_CommitNode,'DateStart',null)
1289 ,p_time_start => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeStart',null)
1290 ,p_date_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd',null)
1291 ,p_time_end => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeEnd',null)
1292 ,p_absence_days => l_absence_days
1293 ,p_absence_hours => l_absence_hours
1294 ,p_authorising_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AuthorisingPersonId',null)
1295 ,p_replacement_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'ReplacementPersonId',null)
1296 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',null)
1297 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',null)
1298 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',null)
1299 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',null)
1300 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',null)
1301 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',null)
1302 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',null)
1303 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',null)
1304 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',null)
1305 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',null)
1306 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',null)
1307 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',null)
1308 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',null)
1309 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',null)
1310 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',null)
1311 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',null)
1312 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',null)
1313 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',null)
1314 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',null)
1315 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',null)
1316 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',null)
1317 ,p_period_of_incapacity_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PeriodOfIncapacityId',null)
1318 ,p_ssp1_issued => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Ssp1Issued',null)
1319 ,p_maternity_id => hr_transaction_swi.getNumberValue(l_CommitNode,'MaternityId',null)
1320 ,p_sickness_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'SicknessStartDate',null)
1321 ,p_sickness_end_date => hr_transaction_swi.getDateValue(l_CommitNode,'SicknessEndDate',null)
1322 ,p_pregnancy_related_illness => hr_transaction_swi.getVarchar2Value(l_CommitNode,'PregnancyRelatedIllness',null)
1323 ,p_reason_for_notification_dela => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ReasonForNotificationDela',null)
1324 ,p_accept_late_notification_fla => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AcceptLateNotificationFla',null)
1325 ,p_linked_absence_id => hr_transaction_swi.getNumberValue(l_CommitNode,'LinkedAbsenceId',null)
1326 ,p_batch_id => hr_transaction_swi.getNumberValue(l_CommitNode,'BatchId',null)
1327 ,p_create_element_entry => hr_transaction_swi.getNumberValue(l_CommitNode,'CreateElementEntry',null)
1328 ,p_abs_information_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformationCategory',null)
1329 ,p_abs_information1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation1',null)
1330 ,p_abs_information2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation2',null)
1331 ,p_abs_information3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation3',null)
1332 ,p_abs_information4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation4',null)
1333 ,p_abs_information5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation5',null)
1334 ,p_abs_information6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation6',null)
1335 ,p_abs_information7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation7',null)
1336 ,p_abs_information8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation8',null)
1337 ,p_abs_information9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation9',null)
1338 ,p_abs_information10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation10',null)
1339 ,p_abs_information11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation11',null)
1340 ,p_abs_information12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation12',null)
1341 ,p_abs_information13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation13',null)
1342 ,p_abs_information14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation14',null)
1343 ,p_abs_information15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation15',null)
1344 ,p_abs_information16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation16',null)
1345 ,p_abs_information17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation17',null)
1346 ,p_abs_information18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation18',null)
1347 ,p_abs_information19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation19',null)
1348 ,p_abs_information20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation20',null)
1349 ,p_abs_information21 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation21',null)
1350 ,p_abs_information22 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation22',null)
1351 ,p_abs_information23 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation23',null)
1352 ,p_abs_information24 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation24',null)
1353 ,p_abs_information25 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation25',null)
1354 ,p_abs_information26 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation26',null)
1355 ,p_abs_information27 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation27',null)
1356 ,p_abs_information28 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation28',null)
1357 ,p_abs_information29 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation29',null)
1358 ,p_abs_information30 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation30',null)
1359 ,p_absence_attendance_id => l_absence_attendance_id
1360 ,p_object_version_number => l_object_version_number
1361 ,p_occurrence => l_occurrence
1362 ,p_return_status => l_return_status);
1363
1364 elsif l_postState = '2' then
1365
1366
1367 l_absence_days := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceDays',null);
1368 l_absence_hours := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceHours',null);
1369 l_absence_attendance_id := hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceId',null);
1370 update_person_absence
1371 (p_validate => p_validate
1372 ,p_effective_date => p_effective_date
1373 ,p_absence_attendance_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceId')
1374 ,p_abs_attendance_reason_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AbsAttendanceReasonId')
1375 ,p_comments => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Comments')
1376 ,p_date_notification => hr_transaction_swi.getDateValue(l_CommitNode,'DateNotification')
1377 ,p_date_projected_start => hr_transaction_swi.getDateValue(l_CommitNode,'DateProjectedStart')
1378 ,p_time_projected_start => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeProjectedStart')
1379 ,p_date_projected_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateProjectedEnd')
1380 ,p_time_projected_end => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeProjectedEnd')
1381 ,p_date_start => hr_transaction_swi.getDateValue(l_CommitNode,'DateStart')
1382 ,p_time_start => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeStart')
1383 ,p_date_end => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd')
1384 ,p_time_end => hr_transaction_swi.getVarchar2Value(l_CommitNode,'TimeEnd')
1385 ,p_absence_days => l_absence_days
1386 ,p_absence_hours => l_absence_hours
1387 ,p_authorising_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AuthorisingPerson_id')
1388 ,p_replacement_person_id => hr_transaction_swi.getNumberValue(l_CommitNode,'ReplacementPersonId')
1389 ,p_attribute_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory')
1390 ,p_attribute1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1')
1391 ,p_attribute2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2')
1392 ,p_attribute3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3')
1393 ,p_attribute4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4')
1394 ,p_attribute5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5')
1395 ,p_attribute6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6')
1396 ,p_attribute7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7')
1397 ,p_attribute8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8')
1398 ,p_attribute9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9')
1399 ,p_attribute10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10')
1400 ,p_attribute11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11')
1401 ,p_attribute12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12')
1402 ,p_attribute13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13')
1403 ,p_attribute14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14')
1404 ,p_attribute15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15')
1405 ,p_attribute16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16')
1406 ,p_attribute17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17')
1407 ,p_attribute18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18')
1408 ,p_attribute19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19')
1409 ,p_attribute20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20')
1410 ,p_period_of_incapacity_id => hr_transaction_swi.getNumberValue(l_CommitNode,'PeriodOfIncapacityId')
1411 ,p_ssp1_issued => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Ssp1Issued')
1412 ,p_maternity_id => hr_transaction_swi.getNumberValue(l_CommitNode,'MaternityId')
1413 ,p_sickness_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'SicknessStartDate')
1414 ,p_sickness_end_date => hr_transaction_swi.getDateValue(l_CommitNode,'SicknessEndDate')
1415 ,p_pregnancy_related_illness => hr_transaction_swi.getVarchar2Value(l_CommitNode,'PregnancyRelatedIllness')
1416 ,p_reason_for_notification_dela => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ReasonForNotificationDela')
1417 ,p_accept_late_notification_fla => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AcceptLateNotificationFla')
1418 ,p_linked_absence_id => hr_transaction_swi.getNumberValue(l_CommitNode,'LinkedAbsenceId')
1419 ,p_batch_id => hr_transaction_swi.getNumberValue(l_CommitNode,'BatchId')
1420 ,p_abs_information_category => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformationCategory')
1421 ,p_abs_information1 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation1')
1422 ,p_abs_information2 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation2')
1423 ,p_abs_information3 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation3')
1424 ,p_abs_information4 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation4')
1425 ,p_abs_information5 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation5')
1426 ,p_abs_information6 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation6')
1427 ,p_abs_information7 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation7')
1428 ,p_abs_information8 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation8')
1429 ,p_abs_information9 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation9')
1430 ,p_abs_information10 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation10')
1431 ,p_abs_information11 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation11')
1432 ,p_abs_information12 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation12')
1433 ,p_abs_information13 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation13')
1434 ,p_abs_information14 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation14')
1435 ,p_abs_information15 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation15')
1436 ,p_abs_information16 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation16')
1437 ,p_abs_information17 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation17')
1438 ,p_abs_information18 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation18')
1439 ,p_abs_information19 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation19')
1440 ,p_abs_information20 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation20')
1441 ,p_abs_information21 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation21')
1442 ,p_abs_information22 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation22')
1443 ,p_abs_information23 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation23')
1444 ,p_abs_information24 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation24')
1445 ,p_abs_information25 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation25')
1446 ,p_abs_information26 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation26')
1447 ,p_abs_information27 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation27')
1448 ,p_abs_information28 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation28')
1449 ,p_abs_information29 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation29')
1450 ,p_abs_information30 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AbsInformation30')
1451 ,p_object_version_number => l_object_version_number
1452 ,p_return_status => l_return_status);
1453
1454
1455 elsif l_postState = '3' then
1456
1457 delete_person_absence
1458 ( p_validate => p_validate
1459 ,p_absence_attendance_id => hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceId')
1460 ,p_object_version_number => l_object_version_number
1461 ,p_return_status => l_return_status
1462 );
1463
1464 end if;
1465
1466 -- finally call the attachements update
1467 if( l_return_status <> 'E') then
1468 merge_attachments(hr_transaction_swi.g_txn_ctx.TRANSACTION_ID,
1469 hr_transaction_swi.getNumberValue(l_CommitNode,'AbsenceAttendanceId'),
1470 l_return_status);
1471 end if;
1472
1473 p_return_status := l_return_status;
1474 hr_utility.set_location('Exiting:' || l_proc,40);
1475
1476 END process_api;
1477
1478 end hr_person_absence_swi;