[Home] [Help]
PACKAGE BODY: APPS.HR_ABSENCE_TYPE_API
Source
1 Package Body hr_absence_type_api as
2 /* $Header: peabbapi.pkb 120.2.12010000.2 2008/08/06 08:52:03 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := ' hr_absence_type_api.';
7 g_debug boolean := hr_utility.debug_enabled;
8 --
9 -- ----------------------------------------------------------------------------
10 -- |--------------------------< create_absence_type >-------------------------|
11 -- ----------------------------------------------------------------------------
12 procedure create_absence_type
13 (p_validate in boolean default false
14 ,p_language_code in varchar2 default hr_api.userenv_lang
15 ,p_business_group_id in number default null
16 ,p_input_value_id in number default null
17 ,p_date_effective in date
18 ,p_date_end in out nocopy date
19 ,p_name in varchar2
20 ,p_absence_category in varchar2 default null
21 ,p_comments in varchar2 default null
22 ,p_hours_or_days in varchar2 default null
23 ,p_inc_or_dec_flag in varchar2 default null
24 ,p_attribute_category in varchar2 default null
25 ,p_attribute1 in varchar2 default null
26 ,p_attribute2 in varchar2 default null
27 ,p_attribute3 in varchar2 default null
28 ,p_attribute4 in varchar2 default null
29 ,p_attribute5 in varchar2 default null
30 ,p_attribute6 in varchar2 default null
31 ,p_attribute7 in varchar2 default null
32 ,p_attribute8 in varchar2 default null
33 ,p_attribute9 in varchar2 default null
34 ,p_attribute10 in varchar2 default null
35 ,p_attribute11 in varchar2 default null
36 ,p_attribute12 in varchar2 default null
37 ,p_attribute13 in varchar2 default null
38 ,p_attribute14 in varchar2 default null
39 ,p_attribute15 in varchar2 default null
40 ,p_attribute16 in varchar2 default null
41 ,p_attribute17 in varchar2 default null
42 ,p_attribute18 in varchar2 default null
43 ,p_attribute19 in varchar2 default null
44 ,p_attribute20 in varchar2 default null
45 ,p_information_category in varchar2 default null
46 ,p_information1 in varchar2 default null
47 ,p_information2 in varchar2 default null
48 ,p_information3 in varchar2 default null
49 ,p_information4 in varchar2 default null
50 ,p_information5 in varchar2 default null
51 ,p_information6 in varchar2 default null
52 ,p_information7 in varchar2 default null
53 ,p_information8 in varchar2 default null
54 ,p_information9 in varchar2 default null
55 ,p_information10 in varchar2 default null
56 ,p_information11 in varchar2 default null
57 ,p_information12 in varchar2 default null
58 ,p_information13 in varchar2 default null
59 ,p_information14 in varchar2 default null
60 ,p_information15 in varchar2 default null
61 ,p_information16 in varchar2 default null
62 ,p_information17 in varchar2 default null
63 ,p_information18 in varchar2 default null
64 ,p_information19 in varchar2 default null
65 ,p_information20 in varchar2 default null
66 ,p_user_role in varchar2 default null
67 ,p_assignment_status_type_id in number default null
68 ,p_advance_pay in varchar2 default null
69 ,p_absence_overlap_flag in varchar2 default null
70 ,p_absence_attendance_type_id out nocopy number
71 ,p_object_version_number out nocopy number
72 ) is
73 --
74 -- Declare cursors and local variables
75 --
76 l_object_version_number number;
77 l_absence_attendance_type_id number;
78 l_date_effective date;
79 l_date_end date;
80 l_date_end_orig date := p_date_end;
81 l_proc varchar2(72) := g_package||'create_absence_type';
82 l_language_code fnd_languages.language_code%TYPE;
83 --
84 begin
85 --
86 if g_debug then
87 hr_utility.set_location('Entering:'|| l_proc, 10);
88 end if;
89 --
90 -- Issue a savepoint
91 --
92 savepoint create_absence_type;
93 --
94 -- Truncate the time portion from all IN date parameters
95 --
96 l_date_effective := trunc(p_date_effective);
97 l_date_end := trunc(p_date_end);
98 --
99 -- Validate the language parameter. l_language_code should be passed
100 -- instead of p_language_code from now on, to allow an IN OUT parameter to
101 -- be passed through.
102 --
103 l_language_code := p_language_code;
104 hr_api.validate_language_code(p_language_code => l_language_code);
105 --
106 --
107 -- Call Before Process User Hook
108 --
109 begin
110 hr_absence_type_bk1.create_absence_type_b
111 (p_language_code => l_language_code
112 ,p_business_group_id => p_business_group_id
113 ,p_input_value_id => p_input_value_id
114 ,p_date_effective => l_date_effective
115 ,p_date_end => l_date_end
116 ,p_name => p_name
117 ,p_absence_category => p_absence_category
118 ,p_comments => p_comments
119 ,p_hours_or_days => p_hours_or_days
120 ,p_inc_or_dec_flag => p_inc_or_dec_flag
121 ,p_attribute_category => p_attribute_category
122 ,p_attribute1 => p_attribute1
123 ,p_attribute2 => p_attribute2
124 ,p_attribute3 => p_attribute3
125 ,p_attribute4 => p_attribute4
126 ,p_attribute5 => p_attribute5
127 ,p_attribute6 => p_attribute6
128 ,p_attribute7 => p_attribute7
129 ,p_attribute8 => p_attribute8
130 ,p_attribute9 => p_attribute9
131 ,p_attribute10 => p_attribute10
132 ,p_attribute11 => p_attribute11
133 ,p_attribute12 => p_attribute12
134 ,p_attribute13 => p_attribute13
135 ,p_attribute14 => p_attribute14
136 ,p_attribute15 => p_attribute15
137 ,p_attribute16 => p_attribute16
138 ,p_attribute17 => p_attribute17
139 ,p_attribute18 => p_attribute18
140 ,p_attribute19 => p_attribute19
141 ,p_attribute20 => p_attribute20
142 ,p_information_category => p_information_category
143 ,p_information1 => p_information1
144 ,p_information2 => p_information2
145 ,p_information3 => p_information3
146 ,p_information4 => p_information4
147 ,p_information5 => p_information5
148 ,p_information6 => p_information6
149 ,p_information7 => p_information7
150 ,p_information8 => p_information8
151 ,p_information9 => p_information9
152 ,p_information10 => p_information10
153 ,p_information11 => p_information11
154 ,p_information12 => p_information12
155 ,p_information13 => p_information13
156 ,p_information14 => p_information14
157 ,p_information15 => p_information15
158 ,p_information16 => p_information16
159 ,p_information17 => p_information17
160 ,p_information18 => p_information18
161 ,p_information19 => p_information19
162 ,p_information20 => p_information20
163 ,p_user_role => p_user_role
164 ,p_assignment_status_type_id => p_assignment_status_type_id
165 ,p_advance_pay => p_advance_pay
166 ,p_absence_overlap_flag => p_absence_overlap_flag
167 );
168 exception
169 when hr_api.cannot_find_prog_unit then
170 hr_api.cannot_find_prog_unit_error
171 (p_module_name => 'create_absence_type'
172 ,p_hook_type => 'BP'
173 );
174 end;
175 --
176 -- Validation in addition to Row Handlers
177 --
178 if p_business_group_id is null
179 and p_input_value_id is not null then
180 fnd_message.set_name('PER','PER_449173_ABB_NO_BG_NO_INPUT');
181 fnd_message.raise_error;
182 end if;
183 --
184 if g_debug then
185 hr_utility.set_location('Entering:'|| l_proc, 20);
186 end if;
187 --
188 --
189 -- Process Logic
190 --
191 per_abb_ins.ins
192 (p_business_group_id => p_business_group_id
193 ,p_date_effective => l_date_effective
194 ,p_name => p_name
195 ,p_input_value_id => p_input_value_id
196 ,p_absence_category => p_absence_category
197 ,p_comments => p_comments
198 ,p_date_end => l_date_end
199 ,p_hours_or_days => p_hours_or_days
200 ,p_inc_or_dec_flag => p_inc_or_dec_flag
201 ,p_attribute_category => p_attribute_category
202 ,p_attribute1 => p_attribute1
203 ,p_attribute2 => p_attribute2
204 ,p_attribute3 => p_attribute3
205 ,p_attribute4 => p_attribute4
206 ,p_attribute5 => p_attribute5
207 ,p_attribute6 => p_attribute6
208 ,p_attribute7 => p_attribute7
209 ,p_attribute8 => p_attribute8
210 ,p_attribute9 => p_attribute9
211 ,p_attribute10 => p_attribute10
212 ,p_attribute11 => p_attribute11
213 ,p_attribute12 => p_attribute12
214 ,p_attribute13 => p_attribute13
215 ,p_attribute14 => p_attribute14
216 ,p_attribute15 => p_attribute15
217 ,p_attribute16 => p_attribute16
218 ,p_attribute17 => p_attribute17
219 ,p_attribute18 => p_attribute18
220 ,p_attribute19 => p_attribute19
221 ,p_attribute20 => p_attribute20
222 ,p_information_category => p_information_category
223 ,p_information1 => p_information1
224 ,p_information2 => p_information2
225 ,p_information3 => p_information3
226 ,p_information4 => p_information4
227 ,p_information5 => p_information5
228 ,p_information6 => p_information6
229 ,p_information7 => p_information7
230 ,p_information8 => p_information8
231 ,p_information9 => p_information9
232 ,p_information10 => p_information10
233 ,p_information11 => p_information11
234 ,p_information12 => p_information12
235 ,p_information13 => p_information13
236 ,p_information14 => p_information14
237 ,p_information15 => p_information15
238 ,p_information16 => p_information16
239 ,p_information17 => p_information17
240 ,p_information18 => p_information18
241 ,p_information19 => p_information19
242 ,p_information20 => p_information20
243 ,p_user_role => p_user_role
244 ,p_assignment_status_type_id => p_assignment_status_type_id
245 ,p_advance_pay => p_advance_pay
246 ,p_absence_overlap_flag => p_absence_overlap_flag
247 ,p_absence_attendance_type_id => l_absence_attendance_type_id
248 ,p_object_version_number => l_object_version_number
249 );
250 --
251 if g_debug then
252 hr_utility.set_location(l_proc, 30);
253 hr_utility.set_location(to_char(l_absence_attendance_type_id), 30);
254 end if;
255 --
256 per_abt_ins.ins_tl
257 (p_language_code => l_language_code
258 ,p_absence_attendance_type_id => l_absence_attendance_type_id
259 ,p_name => p_name
260 );
261 --
262 -- Call to create database items
263 --
264 hrdyndbi.create_absence_dict(l_absence_attendance_type_id);
265 --
266 -- Call After Process User Hook
267 --
268 begin
269 hr_absence_type_bk1.create_absence_type_a
270 (p_language_code => l_language_code
271 ,p_business_group_id => p_business_group_id
272 ,p_input_value_id => p_input_value_id
273 ,p_date_effective => l_date_effective
274 ,p_date_end => l_date_end
275 ,p_name => p_name
276 ,p_absence_category => p_absence_category
277 ,p_comments => p_comments
278 ,p_hours_or_days => p_hours_or_days
279 ,p_inc_or_dec_flag => p_inc_or_dec_flag
280 ,p_attribute_category => p_attribute_category
281 ,p_attribute1 => p_attribute1
282 ,p_attribute2 => p_attribute2
283 ,p_attribute3 => p_attribute3
284 ,p_attribute4 => p_attribute4
285 ,p_attribute5 => p_attribute5
286 ,p_attribute6 => p_attribute6
287 ,p_attribute7 => p_attribute7
288 ,p_attribute8 => p_attribute8
289 ,p_attribute9 => p_attribute9
290 ,p_attribute10 => p_attribute10
291 ,p_attribute11 => p_attribute11
292 ,p_attribute12 => p_attribute12
293 ,p_attribute13 => p_attribute13
294 ,p_attribute14 => p_attribute14
295 ,p_attribute15 => p_attribute15
296 ,p_attribute16 => p_attribute16
297 ,p_attribute17 => p_attribute17
298 ,p_attribute18 => p_attribute18
299 ,p_attribute19 => p_attribute19
300 ,p_attribute20 => p_attribute20
301 ,p_information_category => p_information_category
302 ,p_information1 => p_information1
303 ,p_information2 => p_information2
304 ,p_information3 => p_information3
305 ,p_information4 => p_information4
306 ,p_information5 => p_information5
307 ,p_information6 => p_information6
308 ,p_information7 => p_information7
309 ,p_information8 => p_information8
310 ,p_information9 => p_information9
311 ,p_information10 => p_information10
312 ,p_information11 => p_information11
313 ,p_information12 => p_information12
314 ,p_information13 => p_information13
315 ,p_information14 => p_information14
316 ,p_information15 => p_information15
317 ,p_information16 => p_information16
318 ,p_information17 => p_information17
319 ,p_information18 => p_information18
320 ,p_information19 => p_information19
321 ,p_information20 => p_information20
322 ,p_user_role => p_user_role
323 ,p_assignment_status_type_id => p_assignment_status_type_id
324 ,p_advance_pay => p_advance_pay
325 ,p_absence_overlap_flag => p_absence_overlap_flag
326 ,p_absence_attendance_type_id => l_absence_attendance_type_id
327 ,p_object_version_number => l_object_version_number
328 );
329 exception
330 when hr_api.cannot_find_prog_unit then
331 hr_api.cannot_find_prog_unit_error
332 (p_module_name => 'create_absence_type'
333 ,p_hook_type => 'AP'
334 );
335 end;
336 --
337 -- When in validation only mode raise the Validate_Enabled exception
338 --
339 if p_validate then
340 raise hr_api.validate_enabled;
341 end if;
342 --
343 -- Set all IN OUT and OUT parameters with out values
344 --
345 p_absence_attendance_type_id := l_absence_attendance_type_id;
346 p_object_version_number := l_object_version_number;
347 p_date_end := l_date_end;
348 --
349 --
350 if g_debug then
351 hr_utility.set_location(' Leaving:'||l_proc, 70);
352 end if;
353 --
354 exception
355 when hr_api.validate_enabled then
356 --
357 -- As the Validate_Enabled exception has been raised
358 -- we must rollback to the savepoint
359 --
360 rollback to create_absence_type;
361 --
362 -- Reset IN OUT parameters and set OUT parameters
363 -- (Any key or derived arguments must be set to null
364 -- when validation only mode is being used.)
365 --
366 p_absence_attendance_type_id := null;
367 p_object_version_number := null;
368 p_date_end := l_date_end_orig;
369 --
370 if g_debug then
371 hr_utility.set_location(' Leaving:'||l_proc, 80);
372 end if;
373 --
374 when others then
375 --
376 -- A validation or unexpected error has occured
377 --
378 rollback to create_absence_type;
379 --
380 -- Reset IN OUT parameters and set all
381 -- OUT parameters, including warnings, to null
382 --
383 p_absence_attendance_type_id := null;
384 p_object_version_number := null;
385 p_date_end := l_date_end_orig;
386 --
387 if g_debug then
388 hr_utility.set_location(' Leaving:'||l_proc, 90);
389 end if;
390 --
391 raise;
392 end create_absence_type;
393 --
394 -- ----------------------------------------------------------------------------
395 -- |--------------------------< update_absence_type >--------------------------|
396 -- ----------------------------------------------------------------------------
397 procedure update_absence_type
398 (p_validate in boolean default false
399 ,p_absence_attendance_type_id in number
400 ,p_language_code in varchar2 default hr_api.userenv_lang
401 ,p_input_value_id in number default hr_api.g_number
402 ,p_date_effective in date default hr_api.g_date
403 ,p_date_end in out nocopy date
404 ,p_name in varchar2 default hr_api.g_varchar2
405 ,p_absence_category in varchar2 default hr_api.g_varchar2
406 ,p_comments in varchar2 default hr_api.g_varchar2
407 ,p_hours_or_days in varchar2 default hr_api.g_varchar2
408 ,p_inc_or_dec_flag in varchar2 default hr_api.g_varchar2
409 ,p_attribute_category in varchar2 default hr_api.g_varchar2
410 ,p_attribute1 in varchar2 default hr_api.g_varchar2
411 ,p_attribute2 in varchar2 default hr_api.g_varchar2
412 ,p_attribute3 in varchar2 default hr_api.g_varchar2
413 ,p_attribute4 in varchar2 default hr_api.g_varchar2
414 ,p_attribute5 in varchar2 default hr_api.g_varchar2
415 ,p_attribute6 in varchar2 default hr_api.g_varchar2
416 ,p_attribute7 in varchar2 default hr_api.g_varchar2
417 ,p_attribute8 in varchar2 default hr_api.g_varchar2
418 ,p_attribute9 in varchar2 default hr_api.g_varchar2
419 ,p_attribute10 in varchar2 default hr_api.g_varchar2
420 ,p_attribute11 in varchar2 default hr_api.g_varchar2
421 ,p_attribute12 in varchar2 default hr_api.g_varchar2
422 ,p_attribute13 in varchar2 default hr_api.g_varchar2
423 ,p_attribute14 in varchar2 default hr_api.g_varchar2
424 ,p_attribute15 in varchar2 default hr_api.g_varchar2
425 ,p_attribute16 in varchar2 default hr_api.g_varchar2
426 ,p_attribute17 in varchar2 default hr_api.g_varchar2
427 ,p_attribute18 in varchar2 default hr_api.g_varchar2
428 ,p_attribute19 in varchar2 default hr_api.g_varchar2
429 ,p_attribute20 in varchar2 default hr_api.g_varchar2
430 ,p_information_category in varchar2 default hr_api.g_varchar2
431 ,p_information1 in varchar2 default hr_api.g_varchar2
432 ,p_information2 in varchar2 default hr_api.g_varchar2
433 ,p_information3 in varchar2 default hr_api.g_varchar2
434 ,p_information4 in varchar2 default hr_api.g_varchar2
435 ,p_information5 in varchar2 default hr_api.g_varchar2
436 ,p_information6 in varchar2 default hr_api.g_varchar2
437 ,p_information7 in varchar2 default hr_api.g_varchar2
438 ,p_information8 in varchar2 default hr_api.g_varchar2
439 ,p_information9 in varchar2 default hr_api.g_varchar2
440 ,p_information10 in varchar2 default hr_api.g_varchar2
441 ,p_information11 in varchar2 default hr_api.g_varchar2
442 ,p_information12 in varchar2 default hr_api.g_varchar2
443 ,p_information13 in varchar2 default hr_api.g_varchar2
444 ,p_information14 in varchar2 default hr_api.g_varchar2
445 ,p_information15 in varchar2 default hr_api.g_varchar2
446 ,p_information16 in varchar2 default hr_api.g_varchar2
447 ,p_information17 in varchar2 default hr_api.g_varchar2
448 ,p_information18 in varchar2 default hr_api.g_varchar2
449 ,p_information19 in varchar2 default hr_api.g_varchar2
450 ,p_information20 in varchar2 default hr_api.g_varchar2
451 ,p_user_role in varchar2 default hr_api.g_varchar2
452 ,p_assignment_status_type_id in number default hr_api.g_number
453 ,p_advance_pay in varchar2 default hr_api.g_varchar2
454 ,p_absence_overlap_flag in varchar2 default hr_api.g_varchar2
455 ,p_object_version_number in out nocopy number
456 ) is
457 --
458 -- Declare cursors and local variables
459 --
460 l_object_version_number number;
461 l_absence_attendance_type_id number;
462 l_date_effective date;
463 l_date_end date;
464 l_date_end_orig date := p_date_end;
465 l_proc varchar2(72) := g_package||'update_absence_type';
466 l_language_code fnd_languages.language_code%TYPE;
467 --
468 cursor csr_derived_row is
469 select business_group_id,input_value_id,date_effective
470 from per_absence_attendance_types
471 where absence_attendance_type_id = p_absence_attendance_type_id;
472 --
473 l_derived_rec csr_derived_row%rowtype;
474 --
475 begin
476 --
477 if g_debug then
478 hr_utility.set_location('Entering:'|| l_proc, 10);
479 end if;
480 --
481 -- Issue a savepoint
482 --
483 savepoint update_absence_type;
484 --
485 l_object_version_number := p_object_version_number;
486 --
487 -- Truncate the time portion from all IN date parameters
488 --
489 l_date_effective := trunc(p_date_effective);
490 l_date_end := trunc(p_date_end);
491 --
492 -- Validate the language parameter. l_language_code should be passed
493 -- instead of p_language_code from now on, to allow an IN OUT parameter to
494 -- be passed through.
495 --
496 l_language_code := p_language_code;
497 hr_api.validate_language_code(p_language_code => l_language_code);
498 --
499 --
500 -- Call Before Process User Hook
501 --
502 begin
503 hr_absence_type_bk2.update_absence_type_b
504 (p_language_code => l_language_code
505 ,p_absence_attendance_type_id => p_absence_attendance_type_id
506 ,p_input_value_id => p_input_value_id
507 ,p_date_effective => l_date_effective
508 ,p_date_end => l_date_end
509 ,p_name => p_name
510 ,p_absence_category => p_absence_category
511 ,p_comments => p_comments
512 ,p_hours_or_days => p_hours_or_days
513 ,p_inc_or_dec_flag => p_inc_or_dec_flag
514 ,p_attribute_category => p_attribute_category
515 ,p_attribute1 => p_attribute1
516 ,p_attribute2 => p_attribute2
517 ,p_attribute3 => p_attribute3
518 ,p_attribute4 => p_attribute4
519 ,p_attribute5 => p_attribute5
520 ,p_attribute6 => p_attribute6
521 ,p_attribute7 => p_attribute7
522 ,p_attribute8 => p_attribute8
523 ,p_attribute9 => p_attribute9
524 ,p_attribute10 => p_attribute10
525 ,p_attribute11 => p_attribute11
526 ,p_attribute12 => p_attribute12
527 ,p_attribute13 => p_attribute13
528 ,p_attribute14 => p_attribute14
529 ,p_attribute15 => p_attribute15
530 ,p_attribute16 => p_attribute16
531 ,p_attribute17 => p_attribute17
532 ,p_attribute18 => p_attribute18
533 ,p_attribute19 => p_attribute19
534 ,p_attribute20 => p_attribute20
535 ,p_information_category => p_information_category
536 ,p_information1 => p_information1
537 ,p_information2 => p_information2
538 ,p_information3 => p_information3
539 ,p_information4 => p_information4
540 ,p_information5 => p_information5
541 ,p_information6 => p_information6
542 ,p_information7 => p_information7
543 ,p_information8 => p_information8
544 ,p_information9 => p_information9
545 ,p_information10 => p_information10
546 ,p_information11 => p_information11
547 ,p_information12 => p_information12
548 ,p_information13 => p_information13
549 ,p_information14 => p_information14
550 ,p_information15 => p_information15
551 ,p_information16 => p_information16
552 ,p_information17 => p_information17
553 ,p_information18 => p_information18
554 ,p_information19 => p_information19
555 ,p_information20 => p_information20
556 ,p_user_role => p_user_role
557 ,p_assignment_status_type_id => p_assignment_status_type_id
558 ,p_advance_pay => p_advance_pay
559 ,p_absence_overlap_flag => p_absence_overlap_flag
560 ,p_object_version_number => l_object_version_number
561 );
562 exception
563 when hr_api.cannot_find_prog_unit then
564 hr_api.cannot_find_prog_unit_error
565 (p_module_name => 'update_absence_type'
566 ,p_hook_type => 'BP'
567 );
568 end;
569 --
570 -- Validation in addition to Row Handlers
571 --
572 -- Get the business_group_id and other parameters for use later
573 --
574 open csr_derived_row;
575 fetch csr_derived_row into l_derived_rec;
576 close csr_derived_row;
577 --
578 if g_debug then
579 hr_utility.set_location('Entering:'|| l_proc, 20);
580 end if;
581 --
582 if l_derived_rec.business_group_id is null
583 and nvl(p_input_value_id,hr_api.g_number) <> hr_api.g_number then
584 fnd_message.set_name('PER','PER_449173_ABB_NO_BG_NO_INPUT');
585 fnd_message.raise_error;
586 end if;
587 --
588 if g_debug then
589 hr_utility.set_location('Entering:'|| l_proc, 30);
590 end if;
591 --
592 -- Process Logic
593 --
594 per_abb_upd.upd
595 (p_absence_attendance_type_id => p_absence_attendance_type_id
596 ,p_object_version_number => l_object_version_number
597 ,p_business_group_id => l_derived_rec.business_group_id
598 ,p_date_effective => l_date_effective
599 ,p_name => p_name
600 ,p_input_value_id => p_input_value_id
601 ,p_absence_category => p_absence_category
602 ,p_comments => p_comments
603 ,p_date_end => l_date_end
604 ,p_hours_or_days => p_hours_or_days
605 ,p_inc_or_dec_flag => p_inc_or_dec_flag
606 ,p_attribute_category => p_attribute_category
607 ,p_attribute1 => p_attribute1
608 ,p_attribute2 => p_attribute2
609 ,p_attribute3 => p_attribute3
610 ,p_attribute4 => p_attribute4
611 ,p_attribute5 => p_attribute5
612 ,p_attribute6 => p_attribute6
613 ,p_attribute7 => p_attribute7
614 ,p_attribute8 => p_attribute8
615 ,p_attribute9 => p_attribute9
616 ,p_attribute10 => p_attribute10
617 ,p_attribute11 => p_attribute11
618 ,p_attribute12 => p_attribute12
619 ,p_attribute13 => p_attribute13
620 ,p_attribute14 => p_attribute14
621 ,p_attribute15 => p_attribute15
622 ,p_attribute16 => p_attribute16
623 ,p_attribute17 => p_attribute17
624 ,p_attribute18 => p_attribute18
625 ,p_attribute19 => p_attribute19
626 ,p_attribute20 => p_attribute20
627 ,p_information_category => p_information_category
628 ,p_information1 => p_information1
629 ,p_information2 => p_information2
630 ,p_information3 => p_information3
631 ,p_information4 => p_information4
632 ,p_information5 => p_information5
633 ,p_information6 => p_information6
634 ,p_information7 => p_information7
635 ,p_information8 => p_information8
636 ,p_information9 => p_information9
637 ,p_information10 => p_information10
638 ,p_information11 => p_information11
639 ,p_information12 => p_information12
640 ,p_information13 => p_information13
641 ,p_information14 => p_information14
642 ,p_information15 => p_information15
643 ,p_information16 => p_information16
644 ,p_information17 => p_information17
645 ,p_information18 => p_information18
646 ,p_information19 => p_information19
647 ,p_information20 => p_information20
648 ,p_user_role => p_user_role
649 ,p_assignment_status_type_id => p_assignment_status_type_id
650 ,p_absence_overlap_flag => p_absence_overlap_flag
651 ,p_advance_pay => p_advance_pay
652 );
653 --
654 if g_debug then
655 hr_utility.set_location('Entering:'|| l_proc, 50);
656 end if;
657 --
658 per_abt_upd.upd_tl
659 (p_language_code => l_language_code
660 ,p_absence_attendance_type_id => p_absence_attendance_type_id
661 ,p_name => p_name
662 );
663 --
664 -- Call to create database items
665 --
666 hrdyndbi.create_absence_dict(p_absence_attendance_type_id);
667 --
668 -- Call After Process User Hook
669 --
670 begin
671 hr_absence_type_bk2.update_absence_type_a
672 (p_language_code => l_language_code
673 ,p_absence_attendance_type_id => p_absence_attendance_type_id
674 ,p_input_value_id => p_input_value_id
675 ,p_date_effective => l_date_effective
676 ,p_date_end => l_date_end
677 ,p_name => p_name
678 ,p_absence_category => p_absence_category
679 ,p_comments => p_comments
680 ,p_hours_or_days => p_hours_or_days
681 ,p_inc_or_dec_flag => p_inc_or_dec_flag
682 ,p_attribute_category => p_attribute_category
683 ,p_attribute1 => p_attribute1
684 ,p_attribute2 => p_attribute2
685 ,p_attribute3 => p_attribute3
686 ,p_attribute4 => p_attribute4
687 ,p_attribute5 => p_attribute5
688 ,p_attribute6 => p_attribute6
689 ,p_attribute7 => p_attribute7
690 ,p_attribute8 => p_attribute8
691 ,p_attribute9 => p_attribute9
692 ,p_attribute10 => p_attribute10
693 ,p_attribute11 => p_attribute11
694 ,p_attribute12 => p_attribute12
695 ,p_attribute13 => p_attribute13
696 ,p_attribute14 => p_attribute14
697 ,p_attribute15 => p_attribute15
698 ,p_attribute16 => p_attribute16
699 ,p_attribute17 => p_attribute17
700 ,p_attribute18 => p_attribute18
701 ,p_attribute19 => p_attribute19
702 ,p_attribute20 => p_attribute20
703 ,p_information_category => p_information_category
704 ,p_information1 => p_information1
705 ,p_information2 => p_information2
706 ,p_information3 => p_information3
707 ,p_information4 => p_information4
708 ,p_information5 => p_information5
709 ,p_information6 => p_information6
710 ,p_information7 => p_information7
711 ,p_information8 => p_information8
712 ,p_information9 => p_information9
713 ,p_information10 => p_information10
714 ,p_information11 => p_information11
715 ,p_information12 => p_information12
716 ,p_information13 => p_information13
717 ,p_information14 => p_information14
718 ,p_information15 => p_information15
719 ,p_information16 => p_information16
720 ,p_information17 => p_information17
721 ,p_information18 => p_information18
722 ,p_information19 => p_information19
723 ,p_information20 => p_information20
724 ,p_user_role => p_user_role
725 ,p_assignment_status_type_id => p_assignment_status_type_id
726 ,p_advance_pay => p_advance_pay
727 ,p_absence_overlap_flag => p_absence_overlap_flag
728 ,p_object_version_number => l_object_version_number
729 );
730 exception
731 when hr_api.cannot_find_prog_unit then
732 hr_api.cannot_find_prog_unit_error
733 (p_module_name => 'update_absence_type'
734 ,p_hook_type => 'AP'
735 );
736 end;
737 --
738 -- When in validation only mode raise the Validate_Enabled exception
739 --
740 if p_validate then
741 raise hr_api.validate_enabled;
742 end if;
743 --
744 -- Set all IN OUT and OUT parameters with out values
745 --
746 p_object_version_number := l_object_version_number;
747 p_date_end := l_date_end;
748 --
749 if g_debug then
750 hr_utility.set_location(' Leaving:'||l_proc, 60);
751 end if;
752 --
753 exception
754 when hr_api.validate_enabled then
755 --
756 -- As the Validate_Enabled exception has been raised
757 -- we must rollback to the savepoint
758 --
759 rollback to update_absence_type;
760 --
761 -- Reset IN OUT parameters and set OUT parameters
762 -- (Any key or derived arguments must be set to null
763 -- when validation only mode is being used.)
764 --
765 p_object_version_number := l_object_version_number;
766 p_date_end := l_date_end_orig;
767 --
768 if g_debug then
769 hr_utility.set_location(' Leaving:'||l_proc, 80);
770 end if;
771 when others then
772 --
773 -- A validation or unexpected error has occured
774 --
775 rollback to update_absence_type;
776 --
777 -- Reset IN OUT parameters and set all
778 -- OUT parameters, including warnings, to null
779 --
780 p_object_version_number := l_object_version_number;
781 p_date_end := l_date_end_orig;
782 --
783 if g_debug then
784 hr_utility.set_location(' Leaving:'||l_proc, 90);
785 end if;
786 --
787 raise;
788 end update_absence_type;
789 --
790 -- ----------------------------------------------------------------------------
791 -- |--------------------------< delete_absence_type >--------------------------|
792 -- ----------------------------------------------------------------------------
793 procedure delete_absence_type
794 (p_validate in boolean default false
795 ,p_absence_attendance_type_id in number
796 ,p_object_version_number in number
797 ) is
798 --
799 l_proc varchar2(72) := g_package||'delete_absence_type';
800 --
801 begin
802 --
803 if g_debug then
804 hr_utility.set_location('Entering:'|| l_proc, 10);
805 end if;
806 --
807 -- Issue a savepoint
808 --
809 savepoint delete_absence_type;
810 --
811 -- Call Before Process User Hook
812 --
813 begin
814 hr_absence_type_bk3.delete_absence_type_b
815 (p_absence_attendance_type_id => p_absence_attendance_type_id
816 ,p_object_version_number => p_object_version_number
817 );
818 exception
819 when hr_api.cannot_find_prog_unit then
820 hr_api.cannot_find_prog_unit_error
821 (p_module_name => 'delete_absence_type'
822 ,p_hook_type => 'BP'
823 );
824 end;
825 --
826 -- Validation in addition to Row Handlers
827 --
828
829 --
830 -- Process Logic
831 --
832 per_abt_del.del_tl
833 (p_absence_attendance_type_id => p_absence_attendance_type_id
834 );
835
836 per_abb_del.del
837 (p_absence_attendance_type_id => p_absence_attendance_type_id
838 ,p_object_version_number => p_object_version_number
839 );
840 --
841
842 /*Fix for the bug 6894537 starts here
843 Added the call to delete DBI when the absence type is deleted.*/
844
845 hrdyndbi.delete_absence_dict
846 (p_absence_attendance_type_id
847 );
848 /*Fix for the bug 6894537 ends here*/
849
850 -- Call After Process User Hook
851 --
852 begin
853 hr_absence_type_bk3.delete_absence_type_a
854 (p_absence_attendance_type_id => p_absence_attendance_type_id
855 ,p_object_version_number => p_object_version_number
856 );
857 exception
858 when hr_api.cannot_find_prog_unit then
859 hr_api.cannot_find_prog_unit_error
860 (p_module_name => 'delete_absence_type'
861 ,p_hook_type => 'AP'
862 );
863 end;
864 --
865 -- When in validation only mode raise the Validate_Enabled exception
866 --
867 if p_validate then
868 raise hr_api.validate_enabled;
869 end if;
870 --
871 if g_debug then
872 hr_utility.set_location(' Leaving:'||l_proc, 70);
873 end if;
874 exception
875 when hr_api.validate_enabled then
876 --
877 -- As the Validate_Enabled exception has been raised
878 -- we must rollback to the savepoint
879 --
880 rollback to delete_absence_type;
881 --
882 if g_debug then
883 hr_utility.set_location(' Leaving:'||l_proc, 80);
884 end if;
885 when others then
886 --
887 -- A validation or unexpected error has occured
888 --
889 rollback to delete_absence_type;
890 --
891 if g_debug then
892 hr_utility.set_location(' Leaving:'||l_proc, 90);
893 end if;
894 --
895 raise;
896 end delete_absence_type;
897 --
898 end hr_absence_type_api;