DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_BALANCE_TYPES_API

Source


1 Package Body PAY_BALANCE_TYPES_API as
2 /* $Header: pybltapi.pkb 120.0 2005/05/29 03:20:37 appldev noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  PAY_BALANCE_TYPES_API.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< CREATE_BAL_TYPE >--------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_bal_type
13   (p_validate                      in     boolean  default false
14   ,p_effective_date                in     date
15   ,p_language_code                 in     varchar2 Default hr_api.userenv_lang
16   ,p_balance_name                  in     varchar2
17   ,p_balance_uom                   in     varchar2
18   ,p_business_group_id             in     number
19   ,p_legislation_code              in     varchar2 default null
20   ,p_currency_code                 in     varchar2 default null
21   ,p_assignment_remuneration_flag  in     varchar2 default 'N'
22   ,p_comments                      in     varchar2 default null
23   ,p_legislation_subgroup          in     varchar2 default null
24   ,p_reporting_name                in     varchar2 default null
25   ,p_attribute_category            in     varchar2 default null
26   ,p_attribute1                    in	  varchar2 default null
27   ,p_attribute2                    in	  varchar2 default null
28   ,p_attribute3                    in	  varchar2 default null
29   ,p_attribute4                    in	  varchar2 default null
30   ,p_attribute5                    in	  varchar2 default null
31   ,p_attribute6                    in	  varchar2 default null
35   ,p_attribute10                   in	  varchar2 default null
32   ,p_attribute7                    in	  varchar2 default null
33   ,p_attribute8                    in	  varchar2 default null
34   ,p_attribute9                    in	  varchar2 default null
36   ,p_attribute11                   in	  varchar2 default null
37   ,p_attribute12                   in	  varchar2 default null
38   ,p_attribute13                   in	  varchar2 default null
39   ,p_attribute14                   in	  varchar2 default null
40   ,p_attribute15                   in	  varchar2 default null
41   ,p_attribute16                   in	  varchar2 default null
42   ,p_attribute17                   in	  varchar2 default null
43   ,p_attribute18                   in	  varchar2 default null
44   ,p_attribute19                   in	  varchar2 default null
45   ,p_attribute20                   in	  varchar2 default null
46   ,p_jurisdiction_level            in     number   default null
47   ,p_tax_type                      in     varchar2 default null
48   ,p_balance_category_id           in     number   default null
49   ,p_base_balance_type_id          in     number   default null
50   ,p_input_value_id                in     number   default null
51   ,p_balance_type_id                  out nocopy   number
52   ,p_object_version_number            out nocopy   number
53   ) is
54   --
55   -- Declare cursors and local variables
56   --
57   l_in_out_parameter          number;
58   l_effective_date            date;
59   l_balance_type_id	      pay_balance_types.balance_type_id%type;
60   l_object_version_number     pay_balance_types.object_version_number%type;
61   l_default_currency_code     pay_balance_types.currency_code%type;
62   l_proc                      varchar2(72) := g_package||'create_bal_type';
63 begin
64   hr_utility.set_location('Entering:'|| l_proc, 10);
65   --
66   -- Issue a savepoint
67   --
68   savepoint CREATE_BAL_TYPE;
69   --
70   --
71   -- Truncate the time portion from all IN date parameters
72   --
73   l_effective_date := trunc(p_effective_date);
74   --
75   -- Validation in addition to Row Handlers
76   --
77   -- assign default value to currency
78 
79   hr_utility.set_location('Entering:'|| l_proc, 20);
80 
81    if (p_balance_uom = 'M' and p_currency_code is null) then
82       -- Get the default currency based on the legislation
83       --
84       BEGIN
85          l_default_currency_code :=
86 	                  hr_general.default_currency_code(p_legislation_code);
87 
88       EXCEPTION
89          WHEN others THEN
90             IF sqlcode = -20001 THEN
91             -- No default currency available from the legislation so
92             -- get the default currency based on the business group
93 	    --
94             l_default_currency_code :=
95 	            hr_general.default_currency_code(p_business_group_id);
96 	    END IF;
97       END;
98   else
99       l_default_currency_code := p_currency_code;
100   end if;
101   --
102   hr_utility.set_location('Entering:'|| l_proc, 30);
103   --
104   -- Call Before Process User Hook
105   --
106   begin
107     PAY_BALANCE_TYPES_BK1.create_bal_type_b
108       (p_effective_date			=>   l_effective_date
109       ,p_language_code			=>   p_language_code
110       ,p_balance_name			=>   p_balance_name
111       ,p_balance_uom			=>   p_balance_uom
112       ,p_business_group_id		=>   p_business_group_id
113       ,p_legislation_code		=>   p_legislation_code
114       ,p_currency_code			=>   l_default_currency_code
115       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
116       ,p_comments			=>   p_comments
117       ,p_legislation_subgroup		=>   p_legislation_subgroup
118       ,p_reporting_name			=>   p_reporting_name
119       ,p_attribute_category		=>   p_attribute_category
120       ,p_attribute1                     =>   p_attribute1
121       ,p_attribute2                     =>   p_attribute2
122       ,p_attribute3                     =>   p_attribute3
123       ,p_attribute4                     =>   p_attribute4
124       ,p_attribute5                     =>   p_attribute5
125       ,p_attribute6                     =>   p_attribute6
126       ,p_attribute7                     =>   p_attribute7
127       ,p_attribute8                     =>   p_attribute8
128       ,p_attribute9                     =>   p_attribute9
129       ,p_attribute10                    =>   p_attribute10
130       ,p_attribute11                    =>   p_attribute11
131       ,p_attribute12                    =>   p_attribute12
132       ,p_attribute13                    =>   p_attribute13
133       ,p_attribute14                    =>   p_attribute14
134       ,p_attribute15                    =>   p_attribute15
135       ,p_attribute16                    =>   p_attribute16
136       ,p_attribute17                    =>   p_attribute17
137       ,p_attribute18                    =>   p_attribute18
138       ,p_attribute19                    =>   p_attribute19
139       ,p_attribute20                    =>   p_attribute20
140       ,p_jurisdiction_level             =>   p_jurisdiction_level
141       ,p_tax_type                       =>   p_tax_type
142       ,p_balance_category_id            =>   p_balance_category_id
143       ,p_base_balance_type_id           =>   p_base_balance_type_id
144       ,p_input_value_id                 =>   p_input_value_id
145   );
146   exception
147     when hr_api.cannot_find_prog_unit then
148       hr_api.cannot_find_prog_unit_error
149         (p_module_name => 'CREATE_BAL_TYPE'
150         ,p_hook_type   => 'BP'
151         );
152   end;
153   --
154     hr_utility.set_location('Entering:'|| l_proc, 40);
155   --
156   -- Process Logic
157   --
161       ,p_balance_uom                    =>   p_balance_uom
158      pay_blt_ins.ins
159       (p_effective_date                 =>   l_effective_date
160       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
162       ,p_business_group_id              =>   p_business_group_id
163       ,p_legislation_code               =>   p_legislation_code
164       ,p_currency_code                  =>   l_default_currency_code
165       ,p_balance_name                   =>   p_balance_name
166       ,p_comments                       =>   p_comments
167       ,p_legislation_subgroup           =>   p_legislation_subgroup
168       ,p_reporting_name                 =>   p_reporting_name
169       ,p_attribute_category		=>   p_attribute_category
170       ,p_attribute1                     =>   p_attribute1
171       ,p_attribute2                     =>   p_attribute2
172       ,p_attribute3                     =>   p_attribute3
173       ,p_attribute4                     =>   p_attribute4
174       ,p_attribute5                     =>   p_attribute5
175       ,p_attribute6                     =>   p_attribute6
176       ,p_attribute7                     =>   p_attribute7
177       ,p_attribute8                     =>   p_attribute8
178       ,p_attribute9                     =>   p_attribute9
179       ,p_attribute10                    =>   p_attribute10
180       ,p_attribute11                    =>   p_attribute11
181       ,p_attribute12                    =>   p_attribute12
182       ,p_attribute13                    =>   p_attribute13
183       ,p_attribute14                    =>   p_attribute14
184       ,p_attribute15                    =>   p_attribute15
185       ,p_attribute16                    =>   p_attribute16
186       ,p_attribute17                    =>   p_attribute17
187       ,p_attribute18                    =>   p_attribute18
188       ,p_attribute19                    =>   p_attribute19
189       ,p_attribute20                    =>   p_attribute20
190       ,p_jurisdiction_level             =>   p_jurisdiction_level
191       ,p_tax_type                       =>   p_tax_type
192       ,p_balance_category_id            =>   p_balance_category_id
193       ,p_base_balance_type_id           =>   p_base_balance_type_id
194       ,p_input_value_id                 =>   p_input_value_id
195       ,p_balance_type_id                =>   l_balance_type_id
196       ,p_object_version_number          =>   l_object_version_number
197    );
198   --
199     hr_utility.set_location('Entering:'|| l_proc, 50);
200   --
201   -- Create default entries in pay_balance_types_tl table
202   --
203   pay_btt_ins.ins_tl
204   (p_language_code                =>  p_language_code
205   ,p_balance_type_id              =>  l_balance_type_id
206   ,p_balance_name                 =>  p_balance_name
207   ,p_reporting_name               =>  p_reporting_name
208   );
209   --
210   -- Call After Process User Hook
211   --
212   --
213     hr_utility.set_location('Entering:'|| l_proc, 60);
214   --
215   begin
216     PAY_BALANCE_TYPES_BK1.create_bal_type_a
217       (p_effective_date                 =>   l_effective_date
218       ,p_language_code			=>   p_language_code
219       ,p_balance_name			=>   p_balance_name
220       ,p_balance_uom			=>   p_balance_uom
221       ,p_business_group_id		=>   p_business_group_id
222       ,p_legislation_code		=>   p_legislation_code
223       ,p_currency_code			=>   l_default_currency_code
224       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
225       ,p_comments			=>   p_comments
226       ,p_legislation_subgroup		=>   p_legislation_subgroup
227       ,p_reporting_name			=>   p_reporting_name
228       ,p_attribute_category		=>   p_attribute_category
229       ,p_attribute1                     =>   p_attribute1
230       ,p_attribute2                     =>   p_attribute2
231       ,p_attribute3                     =>   p_attribute3
232       ,p_attribute4                     =>   p_attribute4
233       ,p_attribute5                     =>   p_attribute5
234       ,p_attribute6                     =>   p_attribute6
235       ,p_attribute7                     =>   p_attribute7
236       ,p_attribute8                     =>   p_attribute8
237       ,p_attribute9                     =>   p_attribute9
238       ,p_attribute10                    =>   p_attribute10
239       ,p_attribute11                    =>   p_attribute11
240       ,p_attribute12                    =>   p_attribute12
241       ,p_attribute13                    =>   p_attribute13
242       ,p_attribute14                    =>   p_attribute14
243       ,p_attribute15                    =>   p_attribute15
244       ,p_attribute16                    =>   p_attribute16
245       ,p_attribute17                    =>   p_attribute17
246       ,p_attribute18                    =>   p_attribute18
247       ,p_attribute19                    =>   p_attribute19
248       ,p_attribute20                    =>   p_attribute20
249       ,p_jurisdiction_level             =>   p_jurisdiction_level
250       ,p_tax_type                       =>   p_tax_type
251       ,p_balance_category_id            =>   p_balance_category_id
252       ,p_base_balance_type_id           =>   p_base_balance_type_id
253       ,p_input_value_id                 =>   p_input_value_id
254       ,p_balance_type_id                =>   l_balance_type_id
255       ,p_object_version_number          =>   l_object_version_number
256    );
257   exception
258     when hr_api.cannot_find_prog_unit then
259       hr_api.cannot_find_prog_unit_error
260         (p_module_name => 'CREATE_BAL_TYPE'
261         ,p_hook_type   => 'AP'
262         );
263   end;
264   --
265   -- When in validation only mode raise the Validate_Enabled exception
266   --
267   if p_validate then
268     raise hr_api.validate_enabled;
269   end if;
270   --
271   -- Set all IN OUT and OUT parameters with out values
272   --
273   p_balance_type_id        := l_balance_type_id;
274   p_object_version_number  := l_object_version_number;
275 
276   --
277   hr_utility.set_location(' Leaving:'||l_proc, 70);
278 exception
279   when hr_api.validate_enabled then
280     --
281     -- As the Validate_Enabled exception has been raised
282     -- we must rollback to the savepoint
283     --
284     rollback to CREATE_BAL_TYPE;
285     --
286     -- Reset IN OUT parameters and set OUT parameters
287     -- (Any key or derived arguments must be set to null
288     -- when validation only mode is being used.)
289     --
290     p_balance_type_id        := null;
291     p_object_version_number  := null;
292 
293     hr_utility.set_location(' Leaving:'||l_proc, 80);
294   when others then
295     --
296     -- A validation or unexpected error has occured
297     --
298     rollback to CREATE_BAL_TYPE;
299     --
300     -- Reset IN OUT parameters and set all
301     -- OUT parameters, including warnings, to null
302     --
303     p_balance_type_id        := null;
304     p_object_version_number  := null;
305 
306     hr_utility.set_location(' Leaving:'||l_proc, 90);
307     raise;
308 end CREATE_BAL_TYPE;
309 --
310 -- ----------------------------------------------------------------------------
311 -- |--------------------------< UPDATE_BAL_TYPE >--------------------------|
312 -- ----------------------------------------------------------------------------
313 --
314 procedure update_bal_type
315   (p_validate                      in     boolean  default false
316   ,p_effective_date                in     date
317   ,p_language_code                 in     varchar2 Default hr_api.userenv_lang
318   ,p_balance_type_id               in     number
319   ,p_object_version_number         in out nocopy   number
320   ,p_balance_name                  in     varchar2 default hr_api.g_varchar2
321   ,p_balance_uom                   in     varchar2 default hr_api.g_varchar2
322   ,p_currency_code                 in     varchar2 default hr_api.g_varchar2
323   ,p_assignment_remuneration_flag  in     varchar2 default hr_api.g_varchar2
324   ,p_comments                      in     varchar2 default hr_api.g_varchar2
325   ,p_reporting_name                in     varchar2 default hr_api.g_varchar2
326   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
327   ,p_attribute1                    in	  varchar2 default hr_api.g_varchar2
328   ,p_attribute2                    in	  varchar2 default hr_api.g_varchar2
329   ,p_attribute3                    in	  varchar2 default hr_api.g_varchar2
330   ,p_attribute4                    in	  varchar2 default hr_api.g_varchar2
331   ,p_attribute5                    in	  varchar2 default hr_api.g_varchar2
332   ,p_attribute6                    in	  varchar2 default hr_api.g_varchar2
333   ,p_attribute7                    in	  varchar2 default hr_api.g_varchar2
334   ,p_attribute8                    in	  varchar2 default hr_api.g_varchar2
335   ,p_attribute9                    in	  varchar2 default hr_api.g_varchar2
336   ,p_attribute10                   in	  varchar2 default hr_api.g_varchar2
337   ,p_attribute11                   in	  varchar2 default hr_api.g_varchar2
338   ,p_attribute12                   in	  varchar2 default hr_api.g_varchar2
339   ,p_attribute13                   in	  varchar2 default hr_api.g_varchar2
340   ,p_attribute14                   in	  varchar2 default hr_api.g_varchar2
341   ,p_attribute15                   in	  varchar2 default hr_api.g_varchar2
342   ,p_attribute16                   in	  varchar2 default hr_api.g_varchar2
343   ,p_attribute17                   in	  varchar2 default hr_api.g_varchar2
344   ,p_attribute18                   in	  varchar2 default hr_api.g_varchar2
345   ,p_attribute19                   in	  varchar2 default hr_api.g_varchar2
346   ,p_attribute20                   in	  varchar2 default hr_api.g_varchar2
347   ,p_balance_category_id           in     number   default hr_api.g_number
348   ,p_base_balance_type_id          in     number   default hr_api.g_number
349   ,p_input_value_id                in     number   default hr_api.g_number
350   ,p_balance_name_warning             out nocopy   number
351   ) is
352   --
353    -- Declare cursors and local variables
354   --
355   cursor csr_derived_values
356   is
357   select business_group_id,legislation_code,legislation_subgroup
358   from pay_balance_types
359   where balance_type_id = p_balance_type_id;
360 
361 
362   l_business_group_id       pay_balance_types.business_group_id%type;
363   l_legislation_code        pay_balance_types.legislation_code%type;
364   l_legislation_subgroup    pay_balance_types.legislation_subgroup%type;
365   l_object_version_number   pay_balance_types.object_version_number%type;
366   l_default_currency_code   pay_balance_types.currency_code%type;
367   l_balance_name_warning    number;
368   l_effective_date          date;
369   l_proc                    varchar2(72) := g_package||'UPDATE_BAL_TYPE';
370 begin
371   hr_utility.set_location('Entering:'|| l_proc, 10);
372   --
373   -- Issue a savepoint
374   --
375   savepoint UPDATE_BAL_TYPE;
376   --
377   -- Remember IN OUT parameter IN values
378   --
379   l_object_version_number := p_object_version_number;
380 
381   --
382   -- Truncate the time portion from all IN date parameters
383   --
384   l_effective_date := trunc(p_effective_date);
385   --
386   --
387     hr_utility.set_location('Entering:'|| l_proc, 20);
388   --
389   --
390   -- Call Before Process User Hook
391   --
392   begin
393     PAY_BALANCE_TYPES_BK2.update_bal_type_b
394       (p_effective_date                 =>   l_effective_date
395       ,p_language_code                  =>   p_language_code
396       ,p_balance_type_id                =>   p_balance_type_id
397       ,p_object_version_number          =>   l_object_version_number
398       ,p_balance_name                   =>   p_balance_name
399       ,p_balance_uom                    =>   p_balance_uom
400       ,p_currency_code                  =>   p_currency_code
401       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
402       ,p_comments                       =>   p_comments
403       ,p_reporting_name                 =>   p_reporting_name
404       ,p_attribute_category		=>   p_attribute_category
405       ,p_attribute1                     =>   p_attribute1
406       ,p_attribute2                     =>   p_attribute2
407       ,p_attribute3                     =>   p_attribute3
408       ,p_attribute4                     =>   p_attribute4
409       ,p_attribute5                     =>   p_attribute5
410       ,p_attribute6                     =>   p_attribute6
411       ,p_attribute7                     =>   p_attribute7
412       ,p_attribute8                     =>   p_attribute8
413       ,p_attribute9                     =>   p_attribute9
414       ,p_attribute10                    =>   p_attribute10
415       ,p_attribute11                    =>   p_attribute11
416       ,p_attribute12                    =>   p_attribute12
417       ,p_attribute13                    =>   p_attribute13
418       ,p_attribute14                    =>   p_attribute14
419       ,p_attribute15                    =>   p_attribute15
420       ,p_attribute16                    =>   p_attribute16
421       ,p_attribute17                    =>   p_attribute17
422       ,p_attribute18                    =>   p_attribute18
423       ,p_attribute19                    =>   p_attribute19
424       ,p_attribute20                    =>   p_attribute20
425       ,p_balance_category_id            =>   p_balance_category_id
426       ,p_base_balance_type_id           =>   p_base_balance_type_id
427       ,p_input_value_id                 =>   p_input_value_id
428       );
429   exception
430     when hr_api.cannot_find_prog_unit then
431       hr_api.cannot_find_prog_unit_error
432         (p_module_name => 'UPDATE_BAL_TYPE'
433         ,p_hook_type   => 'BP'
434         );
435   end;
436   --
437   -- Validation in addition to Row Handlers
438   --
439   --
440     hr_utility.set_location('Entering:'|| l_proc, 30);
441   --
442   --
443   open csr_derived_values;
444   fetch csr_derived_values into l_business_group_id,l_legislation_code,
445                             l_legislation_subgroup;
446   close csr_derived_values;
447   --
448   --
449     hr_utility.set_location('Entering:'|| l_proc, 40);
450   --
451   -- assign default value to currency
452   if (p_balance_uom = 'M' and p_currency_code is null) then
453       -- Get the default currency based on the legislation
454       --
455       BEGIN
456          l_default_currency_code :=
457 	                  hr_general.default_currency_code(l_legislation_code);
458       EXCEPTION
459          WHEN others THEN
460             IF sqlcode = -20001 THEN
461             -- No default currency available from the legislation so
462             -- get the default currency based on the business group
463 	    --
464             l_default_currency_code :=
465 	            hr_general.default_currency_code(l_business_group_id);
466 	    END IF;
467       END;
468   else
469       l_default_currency_code := p_currency_code;
470   end if;
471   --
472     hr_utility.set_location('Entering:'|| l_proc, 50);
473   --
474   --
475   -- Process Logic
476   --
477   pay_blt_upd.upd
478      ( p_effective_date                 =>   l_effective_date
479       ,p_balance_type_id                =>   p_balance_type_id
480       ,p_object_version_number          =>   l_object_version_number
481       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
482       ,p_balance_uom                    =>   p_balance_uom
483       ,p_business_group_id              =>   l_business_group_id
484       ,p_legislation_code               =>   l_legislation_code
485       ,p_currency_code                  =>   l_default_currency_code
486       ,p_balance_name                   =>   p_balance_name
487       ,p_comments                       =>   p_comments
488       ,p_legislation_subgroup           =>   l_legislation_subgroup
489       ,p_reporting_name                 =>   p_reporting_name
490       ,p_attribute_category		=>   p_attribute_category
491       ,p_attribute1                     =>   p_attribute1
492       ,p_attribute2                     =>   p_attribute2
493       ,p_attribute3                     =>   p_attribute3
494       ,p_attribute4                     =>   p_attribute4
495       ,p_attribute5                     =>   p_attribute5
496       ,p_attribute6                     =>   p_attribute6
497       ,p_attribute7                     =>   p_attribute7
498       ,p_attribute8                     =>   p_attribute8
499       ,p_attribute9                     =>   p_attribute9
500       ,p_attribute10                    =>   p_attribute10
501       ,p_attribute11                    =>   p_attribute11
502       ,p_attribute12                    =>   p_attribute12
503       ,p_attribute13                    =>   p_attribute13
504       ,p_attribute14                    =>   p_attribute14
505       ,p_attribute15                    =>   p_attribute15
506       ,p_attribute16                    =>   p_attribute16
507       ,p_attribute17                    =>   p_attribute17
508       ,p_attribute18                    =>   p_attribute18
509       ,p_attribute19                    =>   p_attribute19
510       ,p_attribute20                    =>   p_attribute20
511       ,p_balance_category_id            =>   p_balance_category_id
512       ,p_base_balance_type_id           =>   p_base_balance_type_id
513       ,p_input_value_id                 =>   p_input_value_id
514       ,p_balance_name_warning           =>   l_balance_name_warning
515    );
516   --
517     hr_utility.set_location('Entering:'|| l_proc, 60);
518   --
519   --
520   -- Update the translation table values
521   --
522    pay_btt_upd.upd_tl
523      (p_language_code                 => p_language_code
524      ,p_balance_type_id               => p_balance_type_id
525      ,p_balance_name                  => p_balance_name
526      ,p_reporting_name                => p_reporting_name
527      );
528 
529   --
530   --
531     hr_utility.set_location('Entering:'|| l_proc, 70);
532   --
533   --
534   -- Call After Process User Hook
535   --
536   begin
537     PAY_BALANCE_TYPES_BK2.update_bal_type_a
538       (p_effective_date                 =>   l_effective_date
539       ,p_language_code			=>   p_language_code
540       ,p_balance_type_id                =>   p_balance_type_id
541       ,p_object_version_number          =>   l_object_version_number
542       ,p_balance_name			=>   p_balance_name
543       ,p_balance_uom			=>   p_balance_uom
544       ,p_currency_code                  =>   l_default_currency_code
545       ,p_assignment_remuneration_flag   =>   p_assignment_remuneration_flag
546       ,p_comments			=>   p_comments
547       ,p_reporting_name			=>   p_reporting_name
548       ,p_attribute_category		=>   p_attribute_category
549       ,p_attribute1                     =>   p_attribute1
550       ,p_attribute2                     =>   p_attribute2
551       ,p_attribute3                     =>   p_attribute3
552       ,p_attribute4                     =>   p_attribute4
553       ,p_attribute5                     =>   p_attribute5
554       ,p_attribute6                     =>   p_attribute6
555       ,p_attribute7                     =>   p_attribute7
556       ,p_attribute8                     =>   p_attribute8
557       ,p_attribute9                     =>   p_attribute9
558       ,p_attribute10                    =>   p_attribute10
559       ,p_attribute11                    =>   p_attribute11
560       ,p_attribute12                    =>   p_attribute12
561       ,p_attribute13                    =>   p_attribute13
562       ,p_attribute14                    =>   p_attribute14
563       ,p_attribute15                    =>   p_attribute15
564       ,p_attribute16                    =>   p_attribute16
565       ,p_attribute17                    =>   p_attribute17
566       ,p_attribute18                    =>   p_attribute18
567       ,p_attribute19                    =>   p_attribute19
568       ,p_attribute20                    =>   p_attribute20
569       ,p_balance_category_id            =>   p_balance_category_id
570       ,p_base_balance_type_id           =>   p_base_balance_type_id
571       ,p_input_value_id                 =>   p_input_value_id
572       ,p_balance_name_warning           =>   l_balance_name_warning
573       );
574   exception
575     when hr_api.cannot_find_prog_unit then
576       hr_api.cannot_find_prog_unit_error
577         (p_module_name => 'UPDATE_BAL_TYPE'
578         ,p_hook_type   => 'AP'
579         );
580   end;
581   --
582   -- When in validation only mode raise the Validate_Enabled exception
583   --
584   if p_validate then
585     raise hr_api.validate_enabled;
586   end if;
587   --
588   -- Set all IN OUT and OUT parameters with out values
589   --
590   p_object_version_number  := l_object_version_number;
591   p_balance_name_warning   := l_balance_name_warning;
592 
593   --
594   hr_utility.set_location(' Leaving:'||l_proc, 80);
595 exception
596   when hr_api.validate_enabled then
597     --
598     -- As the Validate_Enabled exception has been raised
599     -- we must rollback to the savepoint
600     --
601     rollback to UPDATE_BAL_TYPE;
602     --
603     -- Reset IN OUT parameters and set OUT parameters
604     -- (Any key or derived arguments must be set to null
605     -- when validation only mode is being used.)
606     --
607     p_object_version_number  := null;
608     p_balance_name_warning   := l_balance_name_warning;
609     hr_utility.set_location(' Leaving:'||l_proc, 90);
610   when others then
611     --
612     -- A validation or unexpected error has occured
613     --
614     rollback to UPDATE_BAL_TYPE;
615     --
616     -- Reset IN OUT parameters and set all
617     -- OUT parameters, including warnings, to null
618     --
619 
620     p_object_version_number  := null;
621     p_balance_name_warning   := null;
622     hr_utility.set_location(' Leaving:'||l_proc, 100);
623     raise;
624 end UPDATE_BAL_TYPE;
625 --
626 -- ----------------------------------------------------------------------------
627 -- |--------------------------< DELETE_BAL_TYPE >--------------------------|
628 -- ----------------------------------------------------------------------------
629 --
630 procedure DELETE_BAL_TYPE
631   (p_validate                      in     boolean  default false
632   ,p_balance_type_id               in     number
633   ,p_object_version_number         in out nocopy   number
634   ) is
635   --
636   -- Declare cursors and local variables
637   --
638   l_object_version_number   number;
639   l_proc                    varchar2(72) := g_package||'DELETE_BAL_TYPE';
640 begin
641   hr_utility.set_location('Entering:'|| l_proc, 10);
642   --
643   -- Issue a savepoint
644   --
645   savepoint DELETE_BAL_TYPE;
646   --
647   -- Remember IN OUT parameter IN values
648   --
649   l_object_version_number := p_object_version_number;
650 
651   --
652     hr_utility.set_location('Entering:'|| l_proc, 20);
653   --
654   --
655   -- Call Before Process User Hook
656   --
657   begin
658     PAY_BALANCE_TYPES_BK3.delete_bal_type_b
659       (p_balance_type_id            => p_balance_type_id
660       ,p_object_version_number      => l_object_version_number
661       );
662   exception
663     when hr_api.cannot_find_prog_unit then
664       hr_api.cannot_find_prog_unit_error
665         (p_module_name => 'DELETE_BAL_TYPE'
666         ,p_hook_type   => 'BP'
667         );
668   end;
669   --
670   -- Validation in addition to Row Handlers
671   --
672   --
673     hr_utility.set_location('Entering:'|| l_proc, 30);
674   --
675   --
676   -- Process Logic
677   --
678   pay_blt_del.del
679   (p_balance_type_id                      => p_balance_type_id
680   ,p_object_version_number                => l_object_version_number
681   );
682   --
683   -- delete from translation table
684   --
685   --
686     hr_utility.set_location('Entering:'|| l_proc, 40);
687   --
688   pay_btt_del.del_tl
689   (p_balance_type_id                      => p_balance_type_id
690   ,p_associated_column1                   => null
691   );
692   --
693     --
694     hr_utility.set_location('Entering:'|| l_proc, 50);
695   --
696   --
697   -- Call After Process User Hook
698   --
699   begin
700     PAY_BALANCE_TYPES_BK3.delete_bal_type_a
701       (p_balance_type_id            => p_balance_type_id
702       ,p_object_version_number      => l_object_version_number
703       );
704   exception
705     when hr_api.cannot_find_prog_unit then
706       hr_api.cannot_find_prog_unit_error
707         (p_module_name => 'DELETE_BAL_TYPE'
708         ,p_hook_type   => 'AP'
709         );
710   end;
711   --
712   -- When in validation only mode raise the Validate_Enabled exception
713   --
714   if p_validate then
715     raise hr_api.validate_enabled;
716   end if;
717   --
718   -- Set all IN OUT and OUT parameters with out values
719   --
720   p_object_version_number  := l_object_version_number;
721   --
722   hr_utility.set_location(' Leaving:'||l_proc, 70);
723 exception
724   when hr_api.validate_enabled then
725     --
726     -- As the Validate_Enabled exception has been raised
727     -- we must rollback to the savepoint
728     --
729     rollback to DELETE_BAL_TYPE;
730     --
731     -- Reset IN OUT parameters and set OUT parameters
732     -- (Any key or derived arguments must be set to null
733     -- when validation only mode is being used.)
734     --
735     p_object_version_number  := null;
736     hr_utility.set_location(' Leaving:'||l_proc, 80);
737   when others then
738     --
739     -- A validation or unexpected error has occured
740     --
741     rollback to DELETE_BAL_TYPE;
742     --
743     -- Reset IN OUT parameters and set all
744     -- OUT parameters, including warnings, to null
745     --
746 
747     p_object_version_number  := null;
748     hr_utility.set_location(' Leaving:'||l_proc, 90);
749     raise;
750 end DELETE_BAL_TYPE;
751 --
752 end PAY_BALANCE_TYPES_API;