DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_DISABILITY_API

Source


1 Package Body per_disability_api as
2 /* $Header: pedisapi.pkb 115.5 2002/12/10 16:32:02 pkakar noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  per_disability_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_disability >--------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_disability
13   (p_validate                      in     boolean  default false
14   ,p_effective_date                in     date
15   ,p_person_id                     in     number
16   ,p_category                      in     varchar2
17   ,p_status                        in     varchar2
18   ,p_quota_fte                     in     number   default 1.00
19   ,p_organization_id               in     number   default null
20   ,p_registration_id               in     varchar2 default null
21   ,p_registration_date             in     date     default null
22   ,p_registration_exp_date         in     date     default null
23   ,p_description                   in     varchar2 default null
24   ,p_degree                        in     number   default null
25   ,p_reason                        in     varchar2 default null
26   ,p_work_restriction              in     varchar2 default null
27   ,p_incident_id                   in     number   default null
28   ,p_medical_assessment_id         in     number   default null
29   ,p_pre_registration_job          in     varchar2 default null
30   ,p_attribute_category            in     varchar2 default null
31   ,p_attribute1                    in     varchar2 default null
32   ,p_attribute2                    in     varchar2 default null
33   ,p_attribute3                    in     varchar2 default null
34   ,p_attribute4                    in     varchar2 default null
35   ,p_attribute5                    in     varchar2 default null
36   ,p_attribute6                    in     varchar2 default null
37   ,p_attribute7                    in     varchar2 default null
38   ,p_attribute8                    in     varchar2 default null
39   ,p_attribute9                    in     varchar2 default null
40   ,p_attribute10                   in     varchar2 default null
41   ,p_attribute11                   in     varchar2 default null
42   ,p_attribute12                   in     varchar2 default null
43   ,p_attribute13                   in     varchar2 default null
44   ,p_attribute14                   in     varchar2 default null
45   ,p_attribute15                   in     varchar2 default null
46   ,p_attribute16                   in     varchar2 default null
47   ,p_attribute17                   in     varchar2 default null
48   ,p_attribute18                   in     varchar2 default null
49   ,p_attribute19                   in     varchar2 default null
50   ,p_attribute20                   in     varchar2 default null
51   ,p_attribute21                   in     varchar2 default null
52   ,p_attribute22                   in     varchar2 default null
53   ,p_attribute23                   in     varchar2 default null
54   ,p_attribute24                   in     varchar2 default null
55   ,p_attribute25                   in     varchar2 default null
56   ,p_attribute26                   in     varchar2 default null
57   ,p_attribute27                   in     varchar2 default null
58   ,p_attribute28                   in     varchar2 default null
59   ,p_attribute29                   in     varchar2 default null
60   ,p_attribute30                   in     varchar2 default null
61   ,p_dis_information_category      in     varchar2 default null
62   ,p_dis_information1              in     varchar2 default null
63   ,p_dis_information2              in     varchar2 default null
64   ,p_dis_information3              in     varchar2 default null
65   ,p_dis_information4              in     varchar2 default null
66   ,p_dis_information5              in     varchar2 default null
67   ,p_dis_information6              in     varchar2 default null
68   ,p_dis_information7              in     varchar2 default null
69   ,p_dis_information8              in     varchar2 default null
70   ,p_dis_information9              in     varchar2 default null
71   ,p_dis_information10             in     varchar2 default null
72   ,p_dis_information11             in     varchar2 default null
73   ,p_dis_information12             in     varchar2 default null
74   ,p_dis_information13             in     varchar2 default null
75   ,p_dis_information14             in     varchar2 default null
76   ,p_dis_information15             in     varchar2 default null
77   ,p_dis_information16             in     varchar2 default null
78   ,p_dis_information17             in     varchar2 default null
79   ,p_dis_information18             in     varchar2 default null
80   ,p_dis_information19             in     varchar2 default null
81   ,p_dis_information20             in     varchar2 default null
82   ,p_dis_information21             in     varchar2 default null
83   ,p_dis_information22             in     varchar2 default null
84   ,p_dis_information23             in     varchar2 default null
85   ,p_dis_information24             in     varchar2 default null
86   ,p_dis_information25             in     varchar2 default null
87   ,p_dis_information26             in     varchar2 default null
88   ,p_dis_information27             in     varchar2 default null
89   ,p_dis_information28             in     varchar2 default null
90   ,p_dis_information29             in     varchar2 default null
91   ,p_dis_information30             in     varchar2 default null
92   ,p_disability_id                    out nocopy number
93   ,p_object_version_number            out nocopy number
94   ,p_effective_start_date             out nocopy date
95   ,p_effective_end_date               out nocopy date
96   ) is
97   --
98   -- Declare cursors and local variables
99   --
100   l_proc                     varchar2(72) := g_package||'create_disability';
101   l_disability_id            per_disabilities_f.disability_id%TYPE;
102   l_object_version_number    per_disabilities_f.object_version_number%TYPE;
103   l_object_version_number1   per_medical_assessments.object_version_number%TYPE;
104   l_effective_date           date;
105   l_effective_start_date     per_disabilities_f.effective_start_date%TYPE;
106   l_effective_end_date       per_disabilities_f.effective_end_date%TYPE;
107   l_registration_date        per_disabilities_f.registration_date%TYPE;
108   l_registration_exp_date    per_disabilities_f.registration_exp_date%TYPE;
109   --
110 begin
111   hr_utility.set_location('Entering:'|| l_proc, 10);
112   --
113   -- Issue a savepoint
114   --
115   savepoint create_disability;
116   --
117   -- Truncate the time portion from all IN date parameters
118   --
119   l_effective_date := trunc(p_effective_date);
120   l_registration_date := trunc(p_registration_date);
121   l_registration_exp_date := trunc(p_registration_exp_date);
122 
123   --
124   -- Call Before Process User Hook
125   --
126   begin
127     per_disability_api_bk1.create_disability_b
128        (p_effective_date                => l_effective_date
129        ,p_person_id                     => p_person_id
130        ,p_category                      => p_category
131        ,p_status                        => p_status
132        ,p_quota_fte                     => p_quota_fte
133        ,p_organization_id               => p_organization_id
134        ,p_registration_id               => p_registration_id
135        ,p_registration_date             => l_registration_date
136        ,p_registration_exp_date         => l_registration_exp_date
137        ,p_description                   => p_description
138        ,p_degree                        => p_degree
139        ,p_reason                        => p_reason
140        ,p_work_restriction              => p_work_restriction
141        ,p_incident_id                   => p_incident_id
142        ,p_pre_registration_job          => p_pre_registration_job
143        ,p_attribute_category            => p_attribute_category
144        ,p_attribute1                    => p_attribute1
145        ,p_attribute2                    => p_attribute2
146        ,p_attribute3                    => p_attribute3
147        ,p_attribute4                    => p_attribute4
148        ,p_attribute5                    => p_attribute5
149        ,p_attribute6                    => p_attribute6
150        ,p_attribute7                    => p_attribute7
151        ,p_attribute8                    => p_attribute8
152        ,p_attribute9                    => p_attribute9
153        ,p_attribute10                   => p_attribute10
154        ,p_attribute11                   => p_attribute11
155        ,p_attribute12                   => p_attribute12
156        ,p_attribute13                   => p_attribute13
157        ,p_attribute14                   => p_attribute14
158        ,p_attribute15                   => p_attribute15
159        ,p_attribute16                   => p_attribute16
160        ,p_attribute17                   => p_attribute17
161        ,p_attribute18                   => p_attribute18
162        ,p_attribute19                   => p_attribute19
163        ,p_attribute20                   => p_attribute20
164        ,p_attribute21                   => p_attribute21
165        ,p_attribute22                   => p_attribute22
166        ,p_attribute23                   => p_attribute23
167        ,p_attribute24                   => p_attribute24
168        ,p_attribute25                   => p_attribute25
169        ,p_attribute26                   => p_attribute26
170        ,p_attribute27                   => p_attribute27
171        ,p_attribute28                   => p_attribute28
172        ,p_attribute29                   => p_attribute29
173        ,p_attribute30                   => p_attribute30
174        ,p_dis_information_category      => p_dis_information_category
175        ,p_dis_information1              => p_dis_information1
176        ,p_dis_information2              => p_dis_information2
177        ,p_dis_information3              => p_dis_information3
178        ,p_dis_information4              => p_dis_information4
179        ,p_dis_information5              => p_dis_information5
180        ,p_dis_information6              => p_dis_information6
181        ,p_dis_information7              => p_dis_information7
182        ,p_dis_information8              => p_dis_information8
183        ,p_dis_information9              => p_dis_information9
184        ,p_dis_information10             => p_dis_information10
185        ,p_dis_information11             => p_dis_information11
186        ,p_dis_information12             => p_dis_information12
187        ,p_dis_information13             => p_dis_information13
188        ,p_dis_information14             => p_dis_information14
189        ,p_dis_information15             => p_dis_information15
190        ,p_dis_information16             => p_dis_information16
191        ,p_dis_information17             => p_dis_information17
192        ,p_dis_information18             => p_dis_information18
193        ,p_dis_information19             => p_dis_information19
194        ,p_dis_information20             => p_dis_information20
195        ,p_dis_information21             => p_dis_information21
196        ,p_dis_information22             => p_dis_information22
197        ,p_dis_information23             => p_dis_information23
198        ,p_dis_information24             => p_dis_information24
199        ,p_dis_information25             => p_dis_information25
200        ,p_dis_information26             => p_dis_information26
201        ,p_dis_information27             => p_dis_information27
202        ,p_dis_information28             => p_dis_information28
203        ,p_dis_information29             => p_dis_information29
204        ,p_dis_information30             => p_dis_information30);
205   exception
206     when hr_api.cannot_find_prog_unit then
207       hr_api.cannot_find_prog_unit_error
208         (p_module_name => 'create_disability_b'
209         ,p_hook_type   => 'BP'
210         );
211   end;
212   --
213   -- Validation in addition to Row Handlers
214   --
215   -- check person type the disability is allowd to be created for...
216   --
217   -- Process Logic
218   --
219 per_dis_ins.ins
220        (p_effective_date                => l_effective_date
221        ,p_person_id                     => p_person_id
222        ,p_category                      => p_category
223        ,p_status                        => p_status
224        ,p_quota_fte                     => p_quota_fte
225        ,p_organization_id               => p_organization_id
226        ,p_registration_id               => p_registration_id
227        ,p_registration_date             => l_registration_date
228        ,p_registration_exp_date         => l_registration_exp_date
229        ,p_description                   => p_description
230        ,p_degree                        => p_degree
231        ,p_reason                        => p_reason
232        ,p_work_restriction              => p_work_restriction
233        ,p_incident_id                   => p_incident_id
234        ,p_pre_registration_job          => p_pre_registration_job
235        ,p_attribute_category            => p_attribute_category
236        ,p_attribute1                    => p_attribute1
237        ,p_attribute2                    => p_attribute2
238        ,p_attribute3                    => p_attribute3
239        ,p_attribute4                    => p_attribute4
240        ,p_attribute5                    => p_attribute5
241        ,p_attribute6                    => p_attribute6
242        ,p_attribute7                    => p_attribute7
243        ,p_attribute8                    => p_attribute8
244        ,p_attribute9                    => p_attribute9
245        ,p_attribute10                   => p_attribute10
246        ,p_attribute11                   => p_attribute11
247        ,p_attribute12                   => p_attribute12
248        ,p_attribute13                   => p_attribute13
249        ,p_attribute14                   => p_attribute14
250        ,p_attribute15                   => p_attribute15
251        ,p_attribute16                   => p_attribute16
252        ,p_attribute17                   => p_attribute17
253        ,p_attribute18                   => p_attribute18
254        ,p_attribute19                   => p_attribute19
255        ,p_attribute20                   => p_attribute20
256        ,p_attribute21                   => p_attribute21
257        ,p_attribute22                   => p_attribute22
258        ,p_attribute23                   => p_attribute23
259        ,p_attribute24                   => p_attribute24
260        ,p_attribute25                   => p_attribute25
261        ,p_attribute26                   => p_attribute26
262        ,p_attribute27                   => p_attribute27
263        ,p_attribute28                   => p_attribute28
264        ,p_attribute29                   => p_attribute29
265        ,p_attribute30                   => p_attribute30
266        ,p_dis_information_category      => p_dis_information_category
267        ,p_dis_information1              => p_dis_information1
268        ,p_dis_information2              => p_dis_information2
269        ,p_dis_information3              => p_dis_information3
270        ,p_dis_information4              => p_dis_information4
271        ,p_dis_information5              => p_dis_information5
272        ,p_dis_information6              => p_dis_information6
273        ,p_dis_information7              => p_dis_information7
274        ,p_dis_information8              => p_dis_information8
275        ,p_dis_information9              => p_dis_information9
276        ,p_dis_information10             => p_dis_information10
277        ,p_dis_information11             => p_dis_information11
278        ,p_dis_information12             => p_dis_information12
279        ,p_dis_information13             => p_dis_information13
280        ,p_dis_information14             => p_dis_information14
281        ,p_dis_information15             => p_dis_information15
282        ,p_dis_information16             => p_dis_information16
283        ,p_dis_information17             => p_dis_information17
284        ,p_dis_information18             => p_dis_information18
285        ,p_dis_information19             => p_dis_information19
286        ,p_dis_information20             => p_dis_information20
287        ,p_dis_information21             => p_dis_information21
288        ,p_dis_information22             => p_dis_information22
289        ,p_dis_information23             => p_dis_information23
290        ,p_dis_information24             => p_dis_information24
291        ,p_dis_information25             => p_dis_information25
292        ,p_dis_information26             => p_dis_information26
293        ,p_dis_information27             => p_dis_information27
297        ,p_disability_id                 => l_disability_id
294        ,p_dis_information28             => p_dis_information28
295        ,p_dis_information29             => p_dis_information29
296        ,p_dis_information30             => p_dis_information30
298        ,p_object_version_number         => l_object_version_number
299        ,p_effective_start_date          => l_effective_start_date
300        ,p_effective_end_date            => l_effective_end_date);
301   --
302   -- Call After Process User Hook
303   --
304   begin
305     per_disability_api_bk1.create_disability_a
306        (p_effective_date                => l_effective_date
307        ,p_person_id                     => p_person_id
308        ,p_category                      => p_category
309        ,p_status                        => p_status
310        ,p_quota_fte                     => p_quota_fte
311        ,p_organization_id               => p_organization_id
312        ,p_registration_id               => p_registration_id
313        ,p_registration_date             => l_registration_date
314        ,p_registration_exp_date         => l_registration_exp_date
315        ,p_description                   => p_description
316        ,p_degree                        => p_degree
317        ,p_reason                        => p_reason
318        ,p_work_restriction              => p_work_restriction
319        ,p_incident_id                   => p_incident_id
320        ,p_pre_registration_job          => p_pre_registration_job
321        ,p_attribute_category            => p_attribute_category
322        ,p_attribute1                    => p_attribute1
323        ,p_attribute2                    => p_attribute2
324        ,p_attribute3                    => p_attribute3
325        ,p_attribute4                    => p_attribute4
326        ,p_attribute5                    => p_attribute5
327        ,p_attribute6                    => p_attribute6
328        ,p_attribute7                    => p_attribute7
329        ,p_attribute8                    => p_attribute8
330        ,p_attribute9                    => p_attribute9
331        ,p_attribute10                   => p_attribute10
332        ,p_attribute11                   => p_attribute11
333        ,p_attribute12                   => p_attribute12
334        ,p_attribute13                   => p_attribute13
335        ,p_attribute14                   => p_attribute14
336        ,p_attribute15                   => p_attribute15
337        ,p_attribute16                   => p_attribute16
338        ,p_attribute17                   => p_attribute17
339        ,p_attribute18                   => p_attribute18
340        ,p_attribute19                   => p_attribute19
341        ,p_attribute20                   => p_attribute20
342        ,p_attribute21                   => p_attribute21
343        ,p_attribute22                   => p_attribute22
344        ,p_attribute23                   => p_attribute23
345        ,p_attribute24                   => p_attribute24
346        ,p_attribute25                   => p_attribute25
347        ,p_attribute26                   => p_attribute26
348        ,p_attribute27                   => p_attribute27
349        ,p_attribute28                   => p_attribute28
350        ,p_attribute29                   => p_attribute29
351        ,p_attribute30                   => p_attribute30
352        ,p_dis_information_category      => p_dis_information_category
353        ,p_dis_information1              => p_dis_information1
354        ,p_dis_information2              => p_dis_information2
355        ,p_dis_information3              => p_dis_information3
356        ,p_dis_information4              => p_dis_information4
357        ,p_dis_information5              => p_dis_information5
358        ,p_dis_information6              => p_dis_information6
359        ,p_dis_information7              => p_dis_information7
360        ,p_dis_information8              => p_dis_information8
361        ,p_dis_information9              => p_dis_information9
362        ,p_dis_information10             => p_dis_information10
363        ,p_dis_information11             => p_dis_information11
364        ,p_dis_information12             => p_dis_information12
365        ,p_dis_information13             => p_dis_information13
366        ,p_dis_information14             => p_dis_information14
367        ,p_dis_information15             => p_dis_information15
368        ,p_dis_information16             => p_dis_information16
369        ,p_dis_information17             => p_dis_information17
370        ,p_dis_information18             => p_dis_information18
371        ,p_dis_information19             => p_dis_information19
372        ,p_dis_information20             => p_dis_information20
373        ,p_dis_information21             => p_dis_information21
374        ,p_dis_information22             => p_dis_information22
375        ,p_dis_information23             => p_dis_information23
376        ,p_dis_information24             => p_dis_information24
377        ,p_dis_information25             => p_dis_information25
378        ,p_dis_information26             => p_dis_information26
379        ,p_dis_information27             => p_dis_information27
380        ,p_dis_information28             => p_dis_information28
381        ,p_dis_information29             => p_dis_information29
382        ,p_dis_information30             => p_dis_information30
383        ,p_disability_id                 => l_disability_id
384        ,p_object_version_number         => l_object_version_number
385        ,p_effective_start_date          => l_effective_start_date
386        ,p_effective_end_date            => l_effective_end_date
387        );
391         (p_module_name => 'create_disability_a'
388   exception
389     when hr_api.cannot_find_prog_unit then
390       hr_api.cannot_find_prog_unit_error
392         ,p_hook_type   => 'AP'
393         );
394   end;
395 
396   -- if medical assessment id has been passed in then
397   -- call per_medical_assessment_api.update_medical_assessment to
398   -- set the foreign key of disability_id for the supplied
399   -- medical asessment id, and therby link the disability to the
400   -- assessment.
401   --
402   if p_medical_assessment_id is not null then
403    begin
404    -- get ovn of medical_assessment record
405    -- for update.
406 
407 	select mea.object_version_number into l_object_version_number1
408      from per_medical_assessments mea
409      where mea.medical_assessment_id = p_medical_assessment_id;
410 
411      per_medical_assessment_api.update_medical_assessment
412      (p_validate                            => p_validate
413      ,p_medical_assessment_id               => p_medical_assessment_id
414      ,p_object_version_number               => l_object_version_number1
415      ,p_effective_date                      => l_effective_date
416      ,p_disability_id                       => l_disability_id);
417 
418 
419    EXCEPTION
420    WHEN NO_DATA_FOUND then
421      hr_utility.set_message(800, 'HR_289018_DIS_INV_ASSMT');
422      hr_utility.raise_error;
423    END;
424   end if;
425 
426   --
427   -- When in validation only mode raise the Validate_Enabled exception
428   --
429   if p_validate then
430     raise hr_api.validate_enabled;
431   end if;
432   --
433   -- Set all output arguments
434   --
435   p_disability_id          := l_disability_id;
436   p_object_version_number  := l_object_version_number;
437   p_effective_start_date   := l_effective_start_date;
438   p_effective_end_date     := l_effective_end_date;
439   --
440   hr_utility.set_location(' Leaving:'||l_proc, 70);
441 exception
442   when hr_api.validate_enabled then
443     --
444     -- As the Validate_Enabled exception has been raised
445     -- we must rollback to the savepoint
446     --
447     rollback to create_disability;
448     --
449     -- Only set output warning arguments
450     -- (Any key or derived arguments must be set to null
451     -- when validation only mode is being used.)
452     --
453     p_disability_id          := null;
454     p_object_version_number  := null;
455     p_effective_start_date   := null;
456     p_effective_end_date     := null;
457     --
458     hr_utility.set_location(' Leaving:'||l_proc, 80);
459   when others then
460     --
461     -- A validation or unexpected error has occured
462     --
463     rollback to create_disability;
464     --
465     -- set in out parameters and set out parameters
466     --
467     p_disability_id          := null;
468     p_object_version_number  := null;
469     p_effective_start_date   := null;
470     p_effective_end_date     := null;
471     --
472     hr_utility.set_location(' Leaving:'||l_proc, 90);
473     raise;
474 end create_disability;
475 --
476 --
477 -- ----------------------------------------------------------------------------
478 -- |---------------------------< update_disability >--------------------------|
479 -- ----------------------------------------------------------------------------
480 --
481 procedure update_disability
482   (p_validate                      in     boolean  default false
483   ,p_effective_date                in     date
484   ,p_datetrack_mode                in     varchar2
485   ,p_disability_id                 in     number
486   ,p_object_version_number         in out nocopy number
487   ,p_category                      in     varchar2 default hr_api.g_varchar2
488   ,p_status                        in     varchar2 default hr_api.g_varchar2
489   ,p_quota_fte                     in     number   default hr_api.g_number
490   ,p_organization_id               in     number   default hr_api.g_number
491   ,p_registration_id               in     varchar2 default hr_api.g_varchar2
492   ,p_registration_date             in     date     default hr_api.g_date
493   ,p_registration_exp_date         in     date     default hr_api.g_date
494   ,p_description                   in     varchar2 default hr_api.g_varchar2
495   ,p_degree                        in     number   default hr_api.g_number
496   ,p_reason                        in     varchar2 default hr_api.g_varchar2
497   ,p_work_restriction              in     varchar2 default hr_api.g_varchar2
498   ,p_incident_id                   in     number   default hr_api.g_number
499   ,p_medical_assessment_id         in     number   default hr_api.g_number
500   ,p_pre_registration_job          in     varchar2 default hr_api.g_varchar2
501   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
502   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
503   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
504   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
505   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
506   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
507   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
508   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
509   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
513   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
510   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
511   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
512   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
514   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
515   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
516   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
517   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
518   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
519   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
520   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
521   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
522   ,p_attribute21                   in     varchar2 default hr_api.g_varchar2
523   ,p_attribute22                   in     varchar2 default hr_api.g_varchar2
524   ,p_attribute23                   in     varchar2 default hr_api.g_varchar2
525   ,p_attribute24                   in     varchar2 default hr_api.g_varchar2
526   ,p_attribute25                   in     varchar2 default hr_api.g_varchar2
527   ,p_attribute26                   in     varchar2 default hr_api.g_varchar2
528   ,p_attribute27                   in     varchar2 default hr_api.g_varchar2
529   ,p_attribute28                   in     varchar2 default hr_api.g_varchar2
530   ,p_attribute29                   in     varchar2 default hr_api.g_varchar2
531   ,p_attribute30                   in     varchar2 default hr_api.g_varchar2
532   ,p_dis_information_category      in     varchar2 default hr_api.g_varchar2
533   ,p_dis_information1              in     varchar2 default hr_api.g_varchar2
534   ,p_dis_information2              in     varchar2 default hr_api.g_varchar2
535   ,p_dis_information3              in     varchar2 default hr_api.g_varchar2
536   ,p_dis_information4              in     varchar2 default hr_api.g_varchar2
537   ,p_dis_information5              in     varchar2 default hr_api.g_varchar2
538   ,p_dis_information6              in     varchar2 default hr_api.g_varchar2
539   ,p_dis_information7              in     varchar2 default hr_api.g_varchar2
540   ,p_dis_information8              in     varchar2 default hr_api.g_varchar2
541   ,p_dis_information9              in     varchar2 default hr_api.g_varchar2
542   ,p_dis_information10             in     varchar2 default hr_api.g_varchar2
543   ,p_dis_information11             in     varchar2 default hr_api.g_varchar2
544   ,p_dis_information12             in     varchar2 default hr_api.g_varchar2
545   ,p_dis_information13             in     varchar2 default hr_api.g_varchar2
546   ,p_dis_information14             in     varchar2 default hr_api.g_varchar2
547   ,p_dis_information15             in     varchar2 default hr_api.g_varchar2
548   ,p_dis_information16             in     varchar2 default hr_api.g_varchar2
549   ,p_dis_information17             in     varchar2 default hr_api.g_varchar2
550   ,p_dis_information18             in     varchar2 default hr_api.g_varchar2
551   ,p_dis_information19             in     varchar2 default hr_api.g_varchar2
552   ,p_dis_information20             in     varchar2 default hr_api.g_varchar2
553   ,p_dis_information21             in     varchar2 default hr_api.g_varchar2
554   ,p_dis_information22             in     varchar2 default hr_api.g_varchar2
555   ,p_dis_information23             in     varchar2 default hr_api.g_varchar2
556   ,p_dis_information24             in     varchar2 default hr_api.g_varchar2
557   ,p_dis_information25             in     varchar2 default hr_api.g_varchar2
558   ,p_dis_information26             in     varchar2 default hr_api.g_varchar2
559   ,p_dis_information27             in     varchar2 default hr_api.g_varchar2
560   ,p_dis_information28             in     varchar2 default hr_api.g_varchar2
561   ,p_dis_information29             in     varchar2 default hr_api.g_varchar2
562   ,p_dis_information30             in     varchar2 default hr_api.g_varchar2
563   ,p_effective_start_date             out nocopy date
564   ,p_effective_end_date               out nocopy date
565   ) is
566   --
567   -- cusor to check if any causal med_assment recs exist
568   -- for the current disability_id
569   --
570   cursor c_control_med_assmt is
571     select mea.medical_assessment_id
572     from per_medical_assessments mea
573     where mea.disability_id = p_disability_id
574     and mea.consultation_result = 'DI';
575   --
576   l_proc                     varchar2(72) := g_package||'update_disability';
577   l_disability_id            per_disabilities_f.disability_id%TYPE;
578   l_object_version_number    per_disabilities_f.object_version_number%TYPE;
579   l_ovn per_disabilities_f.object_version_number%TYPE := p_object_version_number;
580   l_object_version_number1   per_medical_assessments.object_version_number%TYPE;
581   l_effective_date           date;
582   l_effective_start_date     per_disabilities_f.effective_start_date%TYPE;
583   l_effective_end_date       per_disabilities_f.effective_end_date%TYPE;
584   l_registration_date        per_disabilities_f.registration_date%TYPE;
585   l_registration_exp_date    per_disabilities_f.registration_exp_date%TYPE;
586   --
587   l_mea_id                   per_medical_assessments.medical_assessment_id%TYPE;
588   l_new_flag                 boolean := TRUE;
589 begin
590   hr_utility.set_location('Entering:'|| l_proc, 10);
591   --
592   -- Issue a savepoint
593   --
594   savepoint update_disability;
595   --
599   l_registration_date := trunc(p_registration_date);
596   -- Truncate the time portion from all IN date parameters
597   --
598   l_effective_date := trunc(p_effective_date);
600   l_registration_exp_date := trunc(p_registration_exp_date);
601   --
602   -- store ovn passed in
603   l_object_version_number := p_object_version_number;
604 
605 
606   --
607   --  Control linking/unlinking of child medical_assessment records:
608   --
609   -- 1) unlink causal medical assessment rec from disability rec if medical_assessment is null
610   -- or value has changed.
611   --
612   -- 2) link a new causal medical assessment to the disability, if supplied.
613   --  (if a disability_id has not yet been set for the medical assessment record)
614 
615  if (p_medical_assessment_id is null) or
616     ((p_medical_assessment_id is not null) and (p_medical_assessment_id <> hr_api.g_number)) then
617    --
618    -- always execute the cursor if not default value, to determine state of
619    -- any medical_assessment record for the disability
620    --
621    open c_control_med_assmt;
622    fetch c_control_med_assmt into l_mea_id;
623     if c_control_med_assmt%found then
624       close c_control_med_assmt;
625       -- a child causal medical record exists for the disability_id
626       if (p_medical_assessment_id is NULL) or
627          (p_medical_assessment_id is not NULL and l_mea_id <> p_medical_assessment_id) then
628         BEGIN
629         --
630         -- unlink previous child medical record first.
631         --
632           select mea.object_version_number into l_object_version_number1
633           from per_medical_assessments mea
634           where mea.medical_assessment_id = l_mea_id;
635 
636           per_medical_assessment_api.update_medical_assessment
637           (p_validate                            => p_validate
638           ,p_medical_assessment_id               => l_mea_id
639           ,p_object_version_number               => l_object_version_number1
640           ,p_effective_date                      => l_effective_date
641           ,p_disability_id                       => NULL);
642           --
643           if p_medical_assessment_id IS NULL then
644             l_new_flag := FALSE;
645           end if;
646           --
647           EXCEPTION
648            WHEN NO_DATA_FOUND then
649            hr_utility.set_message(800, 'HR_289018_DIS_INV_ASSMT');
650            hr_utility.raise_error;
651         END;
652       end if;
653     else
654       close c_control_med_assmt;
655     end if;
656 
657     if l_new_flag and p_medical_assessment_id is not null then
658       BEGIN
659       --
660       -- make a new link to new medical assessment child record,
661       -- (as identified by the p_medical_assessment_id value).
662       --
663       select mea.object_version_number into l_object_version_number1
664       from per_medical_assessments mea
665       where mea.medical_assessment_id = p_medical_assessment_id
666       and mea.consultation_result = 'DI'
667       and (mea.disability_id is null or mea.disability_id = p_disability_id);
668 
669         per_medical_assessment_api.update_medical_assessment
670         (p_validate                            => p_validate
671         ,p_medical_assessment_id               => p_medical_assessment_id
672         ,p_object_version_number               => l_object_version_number1
673         ,p_effective_date                      => l_effective_date
674         ,p_disability_id                       => p_disability_id);
675 
676        EXCEPTION
677        WHEN NO_DATA_FOUND then
678          hr_utility.set_message(800, 'HR_289018_DIS_INV_ASSMT');
679          hr_utility.raise_error;
680       END;
681     end if;
682 
683   end if;
684 
685   --
686   -- Call Before Process User Hook
687   --
688   BEGIN
689 
690     per_disability_api_bk2.update_disability_b
691        (p_effective_date                => l_effective_date
692        ,p_datetrack_mode                => p_datetrack_mode
693        ,p_disability_id                 => p_disability_id
694        ,p_object_version_number         => l_object_version_number
695        ,p_category                      => p_category
696        ,p_status                        => p_status
697        ,p_quota_fte                     => p_quota_fte
698        ,p_organization_id               => p_organization_id
699        ,p_registration_id               => p_registration_id
700        ,p_registration_date             => l_registration_date
701        ,p_registration_exp_date         => l_registration_exp_date
702        ,p_description                   => p_description
703        ,p_degree                        => p_degree
704        ,p_reason                        => p_reason
705        ,p_work_restriction              => p_work_restriction
706        ,p_incident_id                   => p_incident_id
707        ,p_pre_registration_job          => p_pre_registration_job
708        ,p_attribute_category            => p_attribute_category
709        ,p_attribute1                    => p_attribute1
710        ,p_attribute2                    => p_attribute2
711        ,p_attribute3                    => p_attribute3
712        ,p_attribute4                    => p_attribute4
713        ,p_attribute5                    => p_attribute5
714        ,p_attribute6                    => p_attribute6
715        ,p_attribute7                    => p_attribute7
716        ,p_attribute8                    => p_attribute8
720        ,p_attribute12                   => p_attribute12
717        ,p_attribute9                    => p_attribute9
718        ,p_attribute10                   => p_attribute10
719        ,p_attribute11                   => p_attribute11
721        ,p_attribute13                   => p_attribute13
722        ,p_attribute14                   => p_attribute14
723        ,p_attribute15                   => p_attribute15
724        ,p_attribute16                   => p_attribute16
725        ,p_attribute17                   => p_attribute17
726        ,p_attribute18                   => p_attribute18
727        ,p_attribute19                   => p_attribute19
728        ,p_attribute20                   => p_attribute20
729        ,p_attribute21                   => p_attribute21
730        ,p_attribute22                   => p_attribute22
731        ,p_attribute23                   => p_attribute23
732        ,p_attribute24                   => p_attribute24
733        ,p_attribute25                   => p_attribute25
734        ,p_attribute26                   => p_attribute26
735        ,p_attribute27                   => p_attribute27
736        ,p_attribute28                   => p_attribute28
737        ,p_attribute29                   => p_attribute29
738        ,p_attribute30                   => p_attribute30
739        ,p_dis_information_category      => p_dis_information_category
740        ,p_dis_information1              => p_dis_information1
741        ,p_dis_information2              => p_dis_information2
742        ,p_dis_information3              => p_dis_information3
743        ,p_dis_information4              => p_dis_information4
744        ,p_dis_information5              => p_dis_information5
745        ,p_dis_information6              => p_dis_information6
746        ,p_dis_information7              => p_dis_information7
747        ,p_dis_information8              => p_dis_information8
748        ,p_dis_information9              => p_dis_information9
749        ,p_dis_information10             => p_dis_information10
750        ,p_dis_information11             => p_dis_information11
751        ,p_dis_information12             => p_dis_information12
752        ,p_dis_information13             => p_dis_information13
753        ,p_dis_information14             => p_dis_information14
754        ,p_dis_information15             => p_dis_information15
755        ,p_dis_information16             => p_dis_information16
756        ,p_dis_information17             => p_dis_information17
757        ,p_dis_information18             => p_dis_information18
758        ,p_dis_information19             => p_dis_information19
759        ,p_dis_information20             => p_dis_information20
760        ,p_dis_information21             => p_dis_information21
761        ,p_dis_information22             => p_dis_information22
762        ,p_dis_information23             => p_dis_information23
763        ,p_dis_information24             => p_dis_information24
764        ,p_dis_information25             => p_dis_information25
765        ,p_dis_information26             => p_dis_information26
766        ,p_dis_information27             => p_dis_information27
767        ,p_dis_information28             => p_dis_information28
768        ,p_dis_information29             => p_dis_information29
769        ,p_dis_information30             => p_dis_information30);
770   exception
771     when hr_api.cannot_find_prog_unit then
772       hr_api.cannot_find_prog_unit_error
773         (p_module_name => 'update_disability_b'
774         ,p_hook_type   => 'BP'
775         );
776   end;
777   --
778   --
779   -- Process Logic
780   --
781 per_dis_upd.upd
782        (p_effective_date                => l_effective_date
783        ,p_datetrack_mode                => p_datetrack_mode
784        ,p_disability_id                 => p_disability_id
785        ,p_object_version_number         => l_object_version_number
786        ,p_category                      => p_category
787        ,p_status                        => p_status
788        ,p_quota_fte                     => p_quota_fte
789        ,p_organization_id               => p_organization_id
790        ,p_registration_id               => p_registration_id
791        ,p_registration_date             => l_registration_date
792        ,p_registration_exp_date         => l_registration_exp_date
793        ,p_description                   => p_description
794        ,p_degree                        => p_degree
795        ,p_reason                        => p_reason
796        ,p_work_restriction              => p_work_restriction
797        ,p_incident_id                   => p_incident_id
798        ,p_pre_registration_job          => p_pre_registration_job
799        ,p_attribute_category            => p_attribute_category
800        ,p_attribute1                    => p_attribute1
801        ,p_attribute2                    => p_attribute2
802        ,p_attribute3                    => p_attribute3
803        ,p_attribute4                    => p_attribute4
804        ,p_attribute5                    => p_attribute5
805        ,p_attribute6                    => p_attribute6
806        ,p_attribute7                    => p_attribute7
807        ,p_attribute8                    => p_attribute8
808        ,p_attribute9                    => p_attribute9
809        ,p_attribute10                   => p_attribute10
810        ,p_attribute11                   => p_attribute11
811        ,p_attribute12                   => p_attribute12
812        ,p_attribute13                   => p_attribute13
813        ,p_attribute14                   => p_attribute14
814        ,p_attribute15                   => p_attribute15
818        ,p_attribute19                   => p_attribute19
815        ,p_attribute16                   => p_attribute16
816        ,p_attribute17                   => p_attribute17
817        ,p_attribute18                   => p_attribute18
819        ,p_attribute20                   => p_attribute20
820        ,p_attribute21                   => p_attribute21
821        ,p_attribute22                   => p_attribute22
822        ,p_attribute23                   => p_attribute23
823        ,p_attribute24                   => p_attribute24
824        ,p_attribute25                   => p_attribute25
825        ,p_attribute26                   => p_attribute26
826        ,p_attribute27                   => p_attribute27
827        ,p_attribute28                   => p_attribute28
828        ,p_attribute29                   => p_attribute29
829        ,p_attribute30                   => p_attribute30
830        ,p_dis_information_category      => p_dis_information_category
831        ,p_dis_information1              => p_dis_information1
832        ,p_dis_information2              => p_dis_information2
833        ,p_dis_information3              => p_dis_information3
834        ,p_dis_information4              => p_dis_information4
835        ,p_dis_information5              => p_dis_information5
836        ,p_dis_information6              => p_dis_information6
837        ,p_dis_information7              => p_dis_information7
838        ,p_dis_information8              => p_dis_information8
839        ,p_dis_information9              => p_dis_information9
840        ,p_dis_information10             => p_dis_information10
841        ,p_dis_information11             => p_dis_information11
842        ,p_dis_information12             => p_dis_information12
843        ,p_dis_information13             => p_dis_information13
844        ,p_dis_information14             => p_dis_information14
845        ,p_dis_information15             => p_dis_information15
846        ,p_dis_information16             => p_dis_information16
847        ,p_dis_information17             => p_dis_information17
848        ,p_dis_information18             => p_dis_information18
849        ,p_dis_information19             => p_dis_information19
850        ,p_dis_information20             => p_dis_information20
851        ,p_dis_information21             => p_dis_information21
852        ,p_dis_information22             => p_dis_information22
853        ,p_dis_information23             => p_dis_information23
854        ,p_dis_information24             => p_dis_information24
855        ,p_dis_information25             => p_dis_information25
856        ,p_dis_information26             => p_dis_information26
857        ,p_dis_information27             => p_dis_information27
858        ,p_dis_information28             => p_dis_information28
859        ,p_dis_information29             => p_dis_information29
860        ,p_dis_information30             => p_dis_information30
861        ,p_effective_start_date          => l_effective_start_date
862        ,p_effective_end_date            => l_effective_end_date);
863   --
864   -- Call After Process User Hook
865   --
866   begin
867     per_disability_api_bk2.update_disability_a
868        (p_effective_date                => l_effective_date
869        ,p_datetrack_mode                => p_datetrack_mode
870        ,p_disability_id                 => p_disability_id
871        ,p_object_version_number         => l_object_version_number
872        ,p_category                      => p_category
873        ,p_status                        => p_status
874        ,p_quota_fte                     => p_quota_fte
875        ,p_organization_id               => p_organization_id
876        ,p_registration_id               => p_registration_id
877        ,p_registration_date             => l_registration_date
878        ,p_registration_exp_date         => l_registration_exp_date
879        ,p_description                   => p_description
880        ,p_degree                        => p_degree
881        ,p_reason                        => p_reason
882        ,p_work_restriction              => p_work_restriction
883        ,p_incident_id                   => p_incident_id
884        ,p_pre_registration_job          => p_pre_registration_job
885        ,p_attribute_category            => p_attribute_category
886        ,p_attribute1                    => p_attribute1
887        ,p_attribute2                    => p_attribute2
888        ,p_attribute3                    => p_attribute3
889        ,p_attribute4                    => p_attribute4
890        ,p_attribute5                    => p_attribute5
891        ,p_attribute6                    => p_attribute6
892        ,p_attribute7                    => p_attribute7
893        ,p_attribute8                    => p_attribute8
894        ,p_attribute9                    => p_attribute9
895        ,p_attribute10                   => p_attribute10
896        ,p_attribute11                   => p_attribute11
897        ,p_attribute12                   => p_attribute12
898        ,p_attribute13                   => p_attribute13
899        ,p_attribute14                   => p_attribute14
900        ,p_attribute15                   => p_attribute15
901        ,p_attribute16                   => p_attribute16
902        ,p_attribute17                   => p_attribute17
903        ,p_attribute18                   => p_attribute18
904        ,p_attribute19                   => p_attribute19
905        ,p_attribute20                   => p_attribute20
906        ,p_attribute21                   => p_attribute21
907        ,p_attribute22                   => p_attribute22
908        ,p_attribute23                   => p_attribute23
912        ,p_attribute27                   => p_attribute27
909        ,p_attribute24                   => p_attribute24
910        ,p_attribute25                   => p_attribute25
911        ,p_attribute26                   => p_attribute26
913        ,p_attribute28                   => p_attribute28
914        ,p_attribute29                   => p_attribute29
915        ,p_attribute30                   => p_attribute30
916        ,p_dis_information_category      => p_dis_information_category
917        ,p_dis_information1              => p_dis_information1
918        ,p_dis_information2              => p_dis_information2
919        ,p_dis_information3              => p_dis_information3
920        ,p_dis_information4              => p_dis_information4
921        ,p_dis_information5              => p_dis_information5
922        ,p_dis_information6              => p_dis_information6
923        ,p_dis_information7              => p_dis_information7
924        ,p_dis_information8              => p_dis_information8
925        ,p_dis_information9              => p_dis_information9
926        ,p_dis_information10             => p_dis_information10
927        ,p_dis_information11             => p_dis_information11
928        ,p_dis_information12             => p_dis_information12
929        ,p_dis_information13             => p_dis_information13
930        ,p_dis_information14             => p_dis_information14
931        ,p_dis_information15             => p_dis_information15
932        ,p_dis_information16             => p_dis_information16
933        ,p_dis_information17             => p_dis_information17
934        ,p_dis_information18             => p_dis_information18
935        ,p_dis_information19             => p_dis_information19
936        ,p_dis_information20             => p_dis_information20
937        ,p_dis_information21             => p_dis_information21
938        ,p_dis_information22             => p_dis_information22
939        ,p_dis_information23             => p_dis_information23
940        ,p_dis_information24             => p_dis_information24
941        ,p_dis_information25             => p_dis_information25
942        ,p_dis_information26             => p_dis_information26
943        ,p_dis_information27             => p_dis_information27
944        ,p_dis_information28             => p_dis_information28
945        ,p_dis_information29             => p_dis_information29
946        ,p_dis_information30             => p_dis_information30
947        ,p_effective_start_date          => l_effective_start_date
948        ,p_effective_end_date            => l_effective_end_date
949        );
950   exception
951     when hr_api.cannot_find_prog_unit then
952       hr_api.cannot_find_prog_unit_error
953         (p_module_name => 'update_disability_a'
954         ,p_hook_type   => 'AP'
955         );
956   end;
957 
958   --
959   -- When in validation only mode raise the Validate_Enabled exception
960   --
961   if p_validate then
962     raise hr_api.validate_enabled;
963   end if;
964   --
965   -- Set all output arguments
966   --
967   p_object_version_number  := l_object_version_number;
968   p_effective_start_date   := l_effective_start_date;
969   p_effective_end_date     := l_effective_end_date;
970   --
971   hr_utility.set_location(' Leaving:'||l_proc, 70);
972 exception
973   when hr_api.validate_enabled then
974     --
975     -- As the Validate_Enabled exception has been raised
976     -- we must rollback to the savepoint
977     --
978     rollback to update_disability;
979     --
980     -- Only set output warning arguments
981     -- (Any key or derived arguments must be set to null
982     -- when validation only mode is being used.)
983     --
984     -- passed in values are returned.
985     -- p_object_version_number  := null;
986     -- p_effective_start_date   := null;
987     -- p_effective_end_date     := null;
988     --
989     hr_utility.set_location(' Leaving:'||l_proc, 80);
990   when others then
991     --
992     -- A validation or unexpected error has occured
993     --
994     rollback to update_disability;
995     --
996     -- set in out parameters and set out parameters
997     --
998      p_object_version_number  := l_ovn;
999      p_effective_start_date   := null;
1000      p_effective_end_date     := null;
1001     --
1002     hr_utility.set_location(' Leaving:'||l_proc, 90);
1003     raise;
1004 end update_disability;
1005 --
1006 --
1007 -- ----------------------------------------------------------------------------
1008 -- |---------------------------< delete_disability >--------------------------|
1009 -- ----------------------------------------------------------------------------
1010 --
1011 procedure delete_disability
1012   (p_validate                      in     boolean  default false
1013   ,p_effective_date                in     date
1014   ,p_datetrack_mode                in     varchar2
1015   ,p_disability_id                 in     number
1016   ,p_object_version_number         in out nocopy number
1017   ,p_effective_start_date             out nocopy date
1018   ,p_effective_end_date               out nocopy date
1019   ) is
1020   --
1021   -- Declare cursors and local variables
1022   --
1023   Cursor csr_mea is
1024      select medical_assessment_id, object_version_number
1025      from per_medical_assessments mea
1026      where mea.disability_id = p_disability_id;
1027   --
1028   --
1029   l_proc varchar2(72) := g_package||'delete_disability';
1033   l_effective_end_date per_disabilities_f.effective_end_date%TYPE;
1030   l_object_version_number per_disabilities_f.object_version_number%TYPE;
1031   l_ovn per_disabilities_f.object_version_number%TYPE := p_object_version_number;
1032   l_effective_start_date per_disabilities_f.effective_start_date%TYPE;
1034   l_ovn1 per_medical_assessments.object_version_number%TYPE;
1035   l_assessment_id per_medical_assessments.medical_assessment_id%TYPE;
1036   --
1037 begin
1038   --
1039   hr_utility.set_location('Entering:'|| l_proc, 10);
1040   --
1041   -- Issue a savepoint if operating in validation only mode
1042   --
1043   savepoint delete_disability;
1044   --
1045   hr_utility.set_location(l_proc, 20);
1046   --
1047   -- Process Logic
1048   --
1049   hr_utility.set_location(l_proc, 30);
1050   --
1051   l_object_version_number := p_object_version_number;
1052   --
1053   begin
1054     --
1055     -- Start of API User Hook for the before hook of delete_disability
1056     --
1057     per_disability_api_bk3.delete_disability_b
1058       (p_effective_date                   =>  trunc(p_effective_date)
1059       ,p_datetrack_mode                   =>  p_datetrack_mode
1060       ,p_disability_id                    =>  p_disability_id
1061       ,p_object_version_number            =>  l_object_version_number
1062       );
1063     --
1064   exception
1065     when hr_api.cannot_find_prog_unit then
1066       hr_api.cannot_find_prog_unit_error
1067         (p_module_name => 'delete_disability_b'
1068         ,p_hook_type   => 'BP'
1069         );
1070     --
1071     -- End of API User Hook for the before hook of delete_disability
1072     --
1073   end;
1074     --
1075     -- Nullify any foreign key references that may exist for the
1076     -- disability record to be deleted in per_medical_assessments table.
1077     -- (required when performing DT Purge only, as this field is not
1078     --  part of date tracked disability entity)
1079     --
1080     if p_datetrack_mode = 'ZAP' then
1081       open csr_mea;
1082       loop
1083       fetch csr_mea into l_assessment_id, l_ovn1;
1084       exit when csr_mea%notfound;
1085     --
1086       per_medical_assessment_api.update_medical_assessment
1087       (p_validate                            => p_validate
1088       ,p_medical_assessment_id               => l_assessment_id
1089       ,p_object_version_number               => l_ovn1
1090       ,p_effective_date                      => trunc(p_effective_date)
1091       ,p_disability_id                       => NULL);
1092 
1093       end loop;
1094       close csr_mea;
1095     end if;
1096 
1097     --
1098     -- Continue with delete of disability.
1099     --
1100     per_dis_del.del
1101       (p_disability_id                 => p_disability_id
1102       ,p_effective_start_date          => l_effective_start_date
1103       ,p_effective_end_date            => l_effective_end_date
1104       ,p_object_version_number         => l_object_version_number
1105       ,p_effective_date                => trunc(p_effective_date)
1106       ,p_datetrack_mode                => p_datetrack_mode
1107       );
1108     --
1109   begin
1110     --
1111     -- Start of API User Hook for the after hook of delete_contract
1112     --
1113     per_disability_api_bk3.delete_disability_a
1117       ,p_object_version_number          =>  l_object_version_number
1114       (p_effective_date                 =>  trunc(p_effective_date)
1115       ,p_datetrack_mode                 =>  p_datetrack_mode
1116       ,p_disability_id                  =>  p_disability_id
1118       ,p_effective_start_date           =>  l_effective_start_date
1119       ,p_effective_end_date             =>  l_effective_end_date
1120       );
1121   exception
1122     when hr_api.cannot_find_prog_unit then
1123       hr_api.cannot_find_prog_unit_error
1124         (p_module_name => 'delete_disability_a'
1125         ,p_hook_type   => 'AP'
1126         );
1127     --
1128     -- End of API User Hook for the after hook of delete_contract
1129     --
1130   end;
1131   --
1132   hr_utility.set_location(l_proc, 60);
1133   --
1134   -- When in validation only mode raise the Validate_Enabled exception
1135   --
1136   p_object_version_number := l_object_version_number;
1137   --
1138   if p_validate then
1139     raise hr_api.validate_enabled;
1140   end if;
1141   --
1142   -- Set all output arguments (returned by some dt modes only)
1143   --
1144   p_object_version_number  := l_object_version_number;
1145   --
1146   hr_utility.set_location(' Leaving:'||l_proc, 70);
1147   --
1148 exception
1149   --
1150   when hr_api.validate_enabled then
1151     --
1152     -- As the Validate_Enabled exception has been raised
1153     -- we must rollback to the savepoint
1154     --
1155     ROLLBACK TO delete_disability;
1156     --
1157     -- Only set output warning arguments
1158     -- (Any key or derived arguments must be set to null
1159     -- when validation only mode is being used.)
1160     --
1161     p_effective_start_date := null;
1162     p_effective_end_date := null;
1163     p_object_version_number := null;
1164     --
1165   when others then
1166     --
1167     -- A validation or unexpected error has occured
1168     --
1169     ROLLBACK TO delete_disability;
1170     --
1171     -- set in out parameters and set out parameters
1172     --
1173      p_object_version_number  := l_ovn;
1174      p_effective_start_date   := null;
1175      p_effective_end_date     := null;
1176     --
1177     raise;
1178     --
1179 end delete_disability;
1180 --
1181 --
1182 end per_disability_api;