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