DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_COUNTY_TAX_RULE_API

Source


1 PACKAGE BODY pay_county_tax_rule_api AS
2 /* $Header: pycntapi.pkb 120.0.12000000.2 2007/05/01 22:52:43 ahanda noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  pay_county_tax_rule_api.';
7 --
8 -- Global package cursor
9 --
10 cursor csr_derive_business_grp(
11                                l_assignment_id  number,
12                                l_effective_date date
13                               )
14 is
15   Select Business_Group_Id
16   From Per_Assignments_F
17   Where Assignment_Id = l_assignment_id
18     and l_effective_date between effective_start_date
19       and effective_end_date;
20 
21 cursor csr_defaulting_date(p_assignment_id number)
22 is
23   Select min(effective_start_date)
24   From Pay_Us_Emp_Fed_Tax_Rules_f
25   Where assignment_id = p_assignment_id;
26 
27 --
28 -- ----------------------------------------------------------------------------
29 -- |------------------------< create_county_tax_rule >----------------------|
30 -- ----------------------------------------------------------------------------
31 --
32 procedure create_county_tax_rule
33   (p_validate                       in  boolean   default false
34   ,p_emp_county_tax_rule_id         out nocopy number
35   ,p_effective_start_date           out nocopy date
36   ,p_effective_end_date             out nocopy date
37   ,p_assignment_id                  in  number
38   ,p_state_code                     in  varchar2
39   ,p_county_code                    in  varchar2
40   ,p_additional_wa_rate             in  number
41   ,p_filing_status_code             in  varchar2
42   ,p_lit_additional_tax             in  number
43   ,p_lit_override_amount            in  number
44   ,p_lit_override_rate              in  number
45   ,p_withholding_allowances         in  number
46   ,p_lit_exempt                     in  varchar2  default null
47   ,p_sd_exempt                      in  varchar2  default null
48   ,p_ht_exempt                      in  varchar2  default null
49   ,p_wage_exempt                    in  varchar2  default null
50   ,p_school_district_code           in  varchar2  default null
51   ,p_object_version_number          out nocopy number
52   ,p_effective_date                 in  date
53   ,p_attribute_category             in     varchar2  default null
54   ,p_attribute1                     in     varchar2  default null
55   ,p_attribute2                     in     varchar2  default null
56   ,p_attribute3                     in     varchar2  default null
57   ,p_attribute4                     in     varchar2  default null
58   ,p_attribute5                     in     varchar2  default null
59   ,p_attribute6                     in     varchar2  default null
60   ,p_attribute7                     in     varchar2  default null
61   ,p_attribute8                     in     varchar2  default null
62   ,p_attribute9                     in     varchar2  default null
63   ,p_attribute10                    in     varchar2  default null
64   ,p_attribute11                    in     varchar2  default null
65   ,p_attribute12                    in     varchar2  default null
66   ,p_attribute13                    in     varchar2  default null
67   ,p_attribute14                    in     varchar2  default null
68   ,p_attribute15                    in     varchar2  default null
69   ,p_attribute16                    in     varchar2  default null
70   ,p_attribute17                    in     varchar2  default null
71   ,p_attribute18                    in     varchar2  default null
72   ,p_attribute19                    in     varchar2  default null
73   ,p_attribute20                    in     varchar2  default null
74   ,p_attribute21                    in     varchar2  default null
75   ,p_attribute22                    in     varchar2  default null
76   ,p_attribute23                    in     varchar2  default null
77   ,p_attribute24                    in     varchar2  default null
78   ,p_attribute25                    in     varchar2  default null
79   ,p_attribute26                    in     varchar2  default null
80   ,p_attribute27                    in     varchar2  default null
81   ,p_attribute28                    in     varchar2  default null
82   ,p_attribute29                    in     varchar2  default null
83   ,p_attribute30                    in     varchar2  default null
84   ,p_cnt_information_category       in     varchar2  default null
85   ,p_cnt_information1               in     varchar2  default null
86   ,p_cnt_information2               in     varchar2  default null
87   ,p_cnt_information3               in     varchar2  default null
88   ,p_cnt_information4               in     varchar2  default null
89   ,p_cnt_information5               in     varchar2  default null
90   ,p_cnt_information6               in     varchar2  default null
91   ,p_cnt_information7               in     varchar2  default null
92   ,p_cnt_information8               in     varchar2  default null
93   ,p_cnt_information9               in     varchar2  default null
94   ,p_cnt_information10              in     varchar2  default null
95   ,p_cnt_information11              in     varchar2  default null
96   ,p_cnt_information12              in     varchar2  default null
97   ,p_cnt_information13              in     varchar2  default null
98   ,p_cnt_information14              in     varchar2  default null
99   ,p_cnt_information15              in     varchar2  default null
100   ,p_cnt_information16              in     varchar2  default null
101   ,p_cnt_information17              in     varchar2  default null
102   ,p_cnt_information18              in     varchar2  default null
103   ,p_cnt_information19              in     varchar2  default null
104   ,p_cnt_information20              in     varchar2  default null
105   ,p_cnt_information21              in     varchar2  default null
106   ,p_cnt_information22              in     varchar2  default null
107   ,p_cnt_information23              in     varchar2  default null
108   ,p_cnt_information24              in     varchar2  default null
109   ,p_cnt_information25              in     varchar2  default null
110   ,p_cnt_information26              in     varchar2  default null
111   ,p_cnt_information27              in     varchar2  default null
112   ,p_cnt_information28              in     varchar2  default null
113   ,p_cnt_information29              in     varchar2  default null
114   ,p_cnt_information30              in     varchar2  default null
115   ) is
116   --
117   -- Declare cursors and local variables
118   --
119   l_business_group_id      per_assignments_f.business_group_id%TYPE;
120   l_defaulting_date        pay_us_emp_county_tax_rules_f.effective_end_date%TYPE;
121   l_emp_county_tax_rule_id pay_us_emp_county_tax_rules_f.emp_county_tax_rule_id%TYPE;
122   l_effective_start_date   pay_us_emp_county_tax_rules_f.effective_start_date%TYPE;
123   l_effective_end_date     pay_us_emp_county_tax_rules_f.effective_end_date%TYPE;
124   l_proc                   varchar2(72) := g_package||'create_county_tax_rule';
125   l_object_version_number  pay_us_emp_county_tax_rules_f.object_version_number%TYPE;
126   l_jurisdiction_code      pay_us_emp_county_tax_rules_f.jurisdiction_code%TYPE;
127   l_element_entry_id       pay_element_entries_f.element_entry_id%TYPE := null;
128   --
129 begin
130   --
131   hr_utility.set_location('Entering:'|| l_proc, 10);
132   --
133   -- Issue a savepoint if operating in validation only mode
134   --
135   savepoint create_county_tax_rule;
136 
137   --
138   hr_utility.set_location(l_proc, 15);
139   --
140   -- Process Logic
141   --
142   /*
143   begin
144     --
145     -- Start of API User Hook for the before hook of create_county_tax_rule
146     --
147     pay_cnt_bk1.create_county_tax_rule_b
148       (
149        p_assignment_id                  =>  p_assignment_id
150       ,p_state_code                     =>  p_state_code
151       ,p_county_code                    =>  p_county_code
152       ,p_business_group_id              =>  l_business_group_id
153       ,p_additional_wa_rate             =>  p_additional_wa_rate
154       ,p_filing_status_code             =>  p_filing_status_code
155       ,p_jurisdiction_code              =>  l_jurisdiction_code
156       ,p_lit_additional_tax             =>  p_lit_additional_tax
157       ,p_lit_override_amount            =>  p_lit_override_amount
158       ,p_lit_override_rate              =>  p_lit_override_rate
159       ,p_withholding_allowances         =>  p_withholding_allowances
160       ,p_lit_exempt                     =>  p_lit_exempt
161       ,p_sd_exempt                      =>  p_sd_exempt
162       ,p_ht_exempt                      =>  p_ht_exempt
163       ,p_wage_exempt                    =>  p_wage_exempt
164       ,p_school_district_code           =>  p_school_district_code
165       );
166   exception
167     when hr_api.cannot_find_prog_unit then
168       hr_api.cannot_find_prog_unit_error
169         (
170          p_module_name => 'CREATE_COUNTY_TAX_RULE'
171         ,p_hook_type   => 'BP'
172         );
173     --
174     -- End of API User Hook for the before hook of create_county_tax_rule
175     --
176   end;
177   */
178   --
179   --
180   -- Business Process Main Code
181   --
182   Open csr_derive_Business_Grp(p_assignment_id, p_effective_date);
183   Fetch csr_derive_business_grp into l_business_group_id;
184   If csr_derive_business_grp%Found then
185      close csr_derive_business_grp;
186   open csr_defaulting_date(p_assignment_id);
187      Fetch csr_defaulting_date into l_defaulting_date;
188      If l_defaulting_date is null then
189         close csr_defaulting_date;
190         hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
191         hr_utility.set_message_token('table_name', 'PAY_US_EMP_FED_TAX_RULES_F');
192         hr_utility.raise_error;
193      Else
194         l_jurisdiction_code := p_state_code||'-'||p_county_code||'-0000';
195         close csr_defaulting_date;
196         hr_utility.set_location(l_proc, 20);
197         pay_cnt_ins.ins
198           (
199            p_emp_county_tax_rule_id        => l_emp_county_tax_rule_id
200           ,p_effective_start_date          => l_effective_start_date
201           ,p_effective_end_date            => l_effective_end_date
202           ,p_assignment_id                 => p_assignment_id
203           ,p_state_code                    => p_state_code
204           ,p_county_code                   => p_county_code
205           ,p_business_group_id             => l_business_group_id
206           ,p_additional_wa_rate            => p_additional_wa_rate
207           ,p_filing_status_code            => p_filing_status_code
208           ,p_jurisdiction_code             => l_jurisdiction_code
209           ,p_lit_additional_tax            => p_lit_additional_tax
210           ,p_lit_override_amount           => p_lit_override_amount
211           ,p_lit_override_rate             => p_lit_override_rate
212           ,p_withholding_allowances        => p_withholding_allowances
213           ,p_lit_exempt                    => p_lit_exempt
214           ,p_sd_exempt                     => p_sd_exempt
215           ,p_ht_exempt                     => p_ht_exempt
216           ,p_wage_exempt                   => p_wage_exempt
217           ,p_school_district_code          => p_school_district_code
218           ,p_object_version_number         => l_object_version_number
219           ,p_effective_date                => l_defaulting_date
220           ,p_attribute_category            => p_attribute_category
221           ,p_attribute1                    => p_attribute1
222           ,p_attribute2                    => p_attribute2
223           ,p_attribute3                    => p_attribute3
224           ,p_attribute4                    => p_attribute4
225           ,p_attribute5                    => p_attribute5
226           ,p_attribute6                    => p_attribute6
227           ,p_attribute7                    => p_attribute7
228           ,p_attribute8                    => p_attribute8
229           ,p_attribute9                    => p_attribute9
230           ,p_attribute10                   => p_attribute10
231           ,p_attribute11                   => p_attribute11
232           ,p_attribute12                   => p_attribute12
233           ,p_attribute13                   => p_attribute13
234           ,p_attribute14                   => p_attribute14
235           ,p_attribute15                   => p_attribute15
236           ,p_attribute16                   => p_attribute16
237           ,p_attribute17                   => p_attribute17
238           ,p_attribute18                   => p_attribute18
239           ,p_attribute19                   => p_attribute19
240           ,p_attribute20                   => p_attribute20
241           ,p_attribute21                   => p_attribute21
242           ,p_attribute22                   => p_attribute22
243           ,p_attribute23                   => p_attribute23
244           ,p_attribute24                   => p_attribute24
245           ,p_attribute25                   => p_attribute25
246           ,p_attribute26                   => p_attribute26
247           ,p_attribute27                   => p_attribute27
248           ,p_attribute28                   => p_attribute28
249           ,p_attribute29                   => p_attribute29
250           ,p_attribute30                   => p_attribute30
251           ,p_cnt_information_category      => p_cnt_information_category
252           ,p_cnt_information1                    => p_cnt_information1
253           ,p_cnt_information2                    => p_cnt_information2
254           ,p_cnt_information3                    => p_cnt_information3
255           ,p_cnt_information4                    => p_cnt_information4
256           ,p_cnt_information5                    => p_cnt_information5
257           ,p_cnt_information6                    => p_cnt_information6
258           ,p_cnt_information7                    => p_cnt_information7
259           ,p_cnt_information8                    => p_cnt_information8
260           ,p_cnt_information9                    => p_cnt_information9
261           ,p_cnt_information10                   => p_cnt_information10
262           ,p_cnt_information11                   => p_cnt_information11
263           ,p_cnt_information12                   => p_cnt_information12
264           ,p_cnt_information13                   => p_cnt_information13
265           ,p_cnt_information14                   => p_cnt_information14
266           ,p_cnt_information15                   => p_cnt_information15
267           ,p_cnt_information16                   => p_cnt_information16
268           ,p_cnt_information17                   => p_cnt_information17
269           ,p_cnt_information18                   => p_cnt_information18
270           ,p_cnt_information19                   => p_cnt_information19
271           ,p_cnt_information20                   => p_cnt_information20
272           ,p_cnt_information21                   => p_cnt_information21
273           ,p_cnt_information22                   => p_cnt_information22
274           ,p_cnt_information23                   => p_cnt_information23
275           ,p_cnt_information24                   => p_cnt_information24
276           ,p_cnt_information25                   => p_cnt_information25
277           ,p_cnt_information26                   => p_cnt_information26
278           ,p_cnt_information27                   => p_cnt_information27
279           ,p_cnt_information28                   => p_cnt_information28
280           ,p_cnt_information29                   => p_cnt_information29
281           ,p_cnt_information30                   => p_cnt_information30
282           );
283         --
284         hr_utility.set_location(l_proc, 25);
285         --
286         pay_us_tax_internal.maintain_tax_percentage
287            (
288             p_assignment_id          => p_assignment_id,
289             p_effective_date         => p_effective_date,
290             p_state_code             => p_state_code,
291             p_county_code            => p_county_code,
292             p_city_code              => '0000',
293             p_calculate_pct          => FALSE,
294             p_datetrack_mode         => 'INSERT',
295             p_effective_start_date   => l_effective_start_date,
296             p_effective_end_date     => l_effective_end_date
297            );
298            --
299         --
300         -- Call create_asg_geo_row to create rows in the pay_us_asg_reporting
301         -- table if this is a new county
302         --
303         pay_asg_geo_pkg.create_asg_geo_row(
304                      p_assignment_id => p_assignment_id
305                     ,p_jurisdiction  => l_jurisdiction_code
306                     );
307     End if;
308   Else
309      close csr_derive_business_grp;
310      hr_utility.set_message(801, 'HR_7348_ASSIGNMENT_INVALID');
311      hr_utility.set_message_token('PROCEDURE', l_proc);
312      hr_utility.set_message_token('STEP','30');
313      hr_utility.raise_error;
314   End if;
315   --
316   --
317   /*
318   begin
319     --
320     -- Start of API User Hook for the after hook of create_county_tax_rule
321     --
322     pay_cnt_bk1.create_county_tax_rule_a
323       (
324        p_emp_county_tax_rule_id         =>  l_emp_county_tax_rule_id
325       ,p_effective_start_date           =>  l_effective_start_date
326       ,p_effective_end_date             =>  l_effective_end_date
327       ,p_assignment_id                  =>  p_assignment_id
328       ,p_state_code                     =>  p_state_code
329       ,p_county_code                    =>  p_county_code
330       ,p_business_group_id              =>  l_business_group_id
331       ,p_additional_wa_rate             =>  p_additional_wa_rate
332       ,p_filing_status_code             =>  p_filing_status_code
333       ,p_jurisdiction_code              =>  l_jurisdiction_code
334       ,p_lit_additional_tax             =>  p_lit_additional_tax
335       ,p_lit_override_amount            =>  p_lit_override_amount
336       ,p_lit_override_rate              =>  p_lit_override_rate
337       ,p_withholding_allowances         =>  p_withholding_allowances
338       ,p_lit_exempt                     =>  p_lit_exempt
339       ,p_sd_exempt                      =>  p_sd_exempt
340       ,p_ht_exempt                      =>  p_ht_exempt
341       ,p_wage_exempt                    =>  p_wage_exempt
342       ,p_school_district_code           =>  p_school_district_code
343       ,p_object_version_number          =>  l_object_version_number
344       );
345   exception
346     when hr_api.cannot_find_prog_unit then
347       hr_api.cannot_find_prog_unit_error
348         (p_module_name => 'CREATE_COUNTY_TAX_RULE'
349         ,p_hook_type   => 'AP'
350         );
351     --
352     -- End of API User Hook for the after hook of create_county_tax_rule
353     --
354   end;
355   */
356   --
357   hr_utility.set_location(l_proc, 40);
358   --
359   -- When in validation only mode raise the Validate_Enabled exception
360   --
361   if p_validate then
362     raise hr_api.validate_enabled;
363   end if;
364   --
365   -- Set all output arguments
366   --
367   p_emp_county_tax_rule_id := l_emp_county_tax_rule_id;
368   p_effective_start_date := l_effective_start_date;
369   p_effective_end_date := l_effective_end_date;
370   p_object_version_number := l_object_version_number;
371   --
372   hr_utility.set_location(' Leaving:'||l_proc, 50);
373   --
374 exception
375   --
376   when hr_api.validate_enabled then
377     --
378     -- As the Validate_Enabled exception has been raised
379     -- we must rollback to the savepoint
380     --
381     ROLLBACK TO create_county_tax_rule;
382     --
383     -- Only set output warning arguments
384     -- (Any key or derived arguments must be set to null
385     -- when validation only mode is being used.)
386     --
387     p_emp_county_tax_rule_id := null;
388     p_effective_start_date := null;
389     p_effective_end_date := null;
390     p_object_version_number  := null;
391     hr_utility.set_location(' Leaving:'||l_proc, 70);
392     --
393   when others then
394     --
395     -- A validation or unexpected error has occurred
396     --
397     ROLLBACK TO create_county_tax_rule;
398     --
399     -- Reset IN OUT params and set OUT params.
400     --
401     p_emp_county_tax_rule_id := null;
402     p_effective_start_date := null;
403     p_effective_end_date := null;
404     p_object_version_number  := null;
405     --
406     raise;
407     --
408 end create_county_tax_rule;
409 --
410 -- ----------------------------------------------------------------------------
411 -- |------------------------< update_county_tax_rule >------------------------|
412 -- ----------------------------------------------------------------------------
413 --
414 procedure update_county_tax_rule
415   (p_validate                       in  boolean   default false
416   ,p_emp_county_tax_rule_id         in  number
417   ,p_effective_start_date           out nocopy date
418   ,p_effective_end_date             out nocopy date
419   ,p_additional_wa_rate             in  number    default hr_api.g_number
420   ,p_filing_status_code             in  varchar2  default hr_api.g_varchar2
421   ,p_lit_additional_tax             in  number    default hr_api.g_number
422   ,p_lit_override_amount            in  number    default hr_api.g_number
423   ,p_lit_override_rate              in  number    default hr_api.g_number
424   ,p_withholding_allowances         in  number    default hr_api.g_number
425   ,p_lit_exempt                     in  varchar2  default hr_api.g_varchar2
426   ,p_sd_exempt                      in  varchar2  default hr_api.g_varchar2
427   ,p_ht_exempt                      in  varchar2  default hr_api.g_varchar2
428   ,p_wage_exempt                    in  varchar2  default hr_api.g_varchar2
429   ,p_school_district_code           in  varchar2  default hr_api.g_varchar2
430   ,p_object_version_number          in out nocopy number
431   ,p_effective_date                 in  date
432   ,p_datetrack_mode                 in  varchar2
433   ,p_attribute_category             in     varchar2  default hr_api.g_varchar2
434   ,p_attribute1                     in     varchar2  default hr_api.g_varchar2
435   ,p_attribute2                     in     varchar2  default hr_api.g_varchar2
436   ,p_attribute3                     in     varchar2  default hr_api.g_varchar2
437   ,p_attribute4                     in     varchar2  default hr_api.g_varchar2
438   ,p_attribute5                     in     varchar2  default hr_api.g_varchar2
439   ,p_attribute6                     in     varchar2  default hr_api.g_varchar2
440   ,p_attribute7                     in     varchar2  default hr_api.g_varchar2
441   ,p_attribute8                     in     varchar2  default hr_api.g_varchar2
442   ,p_attribute9                     in     varchar2  default hr_api.g_varchar2
443   ,p_attribute10                    in     varchar2  default hr_api.g_varchar2
444   ,p_attribute11                    in     varchar2  default hr_api.g_varchar2
445   ,p_attribute12                    in     varchar2  default hr_api.g_varchar2
446   ,p_attribute13                    in     varchar2  default hr_api.g_varchar2
447   ,p_attribute14                    in     varchar2  default hr_api.g_varchar2
448   ,p_attribute15                    in     varchar2  default hr_api.g_varchar2
449   ,p_attribute16                    in     varchar2  default hr_api.g_varchar2
450   ,p_attribute17                    in     varchar2  default hr_api.g_varchar2
451   ,p_attribute18                    in     varchar2  default hr_api.g_varchar2
452   ,p_attribute19                    in     varchar2  default hr_api.g_varchar2
453   ,p_attribute20                    in     varchar2  default hr_api.g_varchar2
454   ,p_attribute21                    in     varchar2  default hr_api.g_varchar2
455   ,p_attribute22                    in     varchar2  default hr_api.g_varchar2
456   ,p_attribute23                    in     varchar2  default hr_api.g_varchar2
457   ,p_attribute24                    in     varchar2  default hr_api.g_varchar2
458   ,p_attribute25                    in     varchar2  default hr_api.g_varchar2
459   ,p_attribute26                    in     varchar2  default hr_api.g_varchar2
460   ,p_attribute27                    in     varchar2  default hr_api.g_varchar2
461   ,p_attribute28                    in     varchar2  default hr_api.g_varchar2
462   ,p_attribute29                    in     varchar2  default hr_api.g_varchar2
463   ,p_attribute30                    in     varchar2  default hr_api.g_varchar2
464   ,p_cnt_information_category       in     varchar2  default hr_api.g_varchar2
465   ,p_cnt_information1               in     varchar2  default hr_api.g_varchar2
466   ,p_cnt_information2               in     varchar2  default hr_api.g_varchar2
467   ,p_cnt_information3               in     varchar2  default hr_api.g_varchar2
468   ,p_cnt_information4               in     varchar2  default hr_api.g_varchar2
469   ,p_cnt_information5               in     varchar2  default hr_api.g_varchar2
470   ,p_cnt_information6               in     varchar2  default hr_api.g_varchar2
471   ,p_cnt_information7               in     varchar2  default hr_api.g_varchar2
472   ,p_cnt_information8               in     varchar2  default hr_api.g_varchar2
473   ,p_cnt_information9               in     varchar2  default hr_api.g_varchar2
474   ,p_cnt_information10              in     varchar2  default hr_api.g_varchar2
475   ,p_cnt_information11              in     varchar2  default hr_api.g_varchar2
476   ,p_cnt_information12              in     varchar2  default hr_api.g_varchar2
477   ,p_cnt_information13              in     varchar2  default hr_api.g_varchar2
478   ,p_cnt_information14              in     varchar2  default hr_api.g_varchar2
479   ,p_cnt_information15              in     varchar2  default hr_api.g_varchar2
480   ,p_cnt_information16              in     varchar2  default hr_api.g_varchar2
481   ,p_cnt_information17              in     varchar2  default hr_api.g_varchar2
482   ,p_cnt_information18              in     varchar2  default hr_api.g_varchar2
483   ,p_cnt_information19              in     varchar2  default hr_api.g_varchar2
484   ,p_cnt_information20              in     varchar2  default hr_api.g_varchar2
485   ,p_cnt_information21              in     varchar2  default hr_api.g_varchar2
486   ,p_cnt_information22              in     varchar2  default hr_api.g_varchar2
487   ,p_cnt_information23              in     varchar2  default hr_api.g_varchar2
488   ,p_cnt_information24              in     varchar2  default hr_api.g_varchar2
489   ,p_cnt_information25              in     varchar2  default hr_api.g_varchar2
490   ,p_cnt_information26              in     varchar2  default hr_api.g_varchar2
491   ,p_cnt_information27              in     varchar2  default hr_api.g_varchar2
492   ,p_cnt_information28              in     varchar2  default hr_api.g_varchar2
493   ,p_cnt_information29              in     varchar2  default hr_api.g_varchar2
494   ,p_cnt_information30              in     varchar2  default hr_api.g_varchar2
495   ) is
496   --
497   -- Declare cursors and local variables
498   --
499   l_proc                   varchar2(72) := g_package||'update_county_tax_rule';
500   l_object_version_number  pay_us_emp_county_tax_rules_f.object_version_number%TYPE;
501   l_effective_start_date   pay_us_emp_county_tax_rules_f.effective_start_date%TYPE;
502   l_effective_end_date     pay_us_emp_county_tax_rules_f.effective_end_date%TYPE;
503   l_assignment_id      pay_us_emp_county_tax_rules_f.assignment_id%TYPE;
504   l_jurisdiction_code  pay_us_emp_county_tax_rules_f.jurisdiction_code%TYPE;
505   --
506   CURSOR csr_assignment_id (p_rule_id NUMBER,
507                             p_eff_date DATE) IS
508     SELECT ctr.assignment_id,
509            ctr.state_code||'-'||ctr.school_district_code
510     FROM   pay_us_emp_county_tax_rules_f ctr
511     WHERE  ctr.emp_county_tax_rule_id = p_rule_id
512     AND    p_eff_date BETWEEN ctr.effective_start_date
513                           AND ctr.effective_end_date;
514   --
515 begin
516   --
517   hr_utility.set_location('Entering:'|| l_proc, 10);
518   --
519   -- Issue a savepoint if operating in validation only mode
520   --
521   savepoint update_county_tax_rule;
522 
523   --
524   hr_utility.set_location(l_proc, 15);
525   --
526   --  Check to see if we need to maintain the tax records.
527   --
528   IF  hr_general.chk_maintain_tax_records = 'N' Then
529      return;
530   end if;
531 
532   --
533   -- Process Logic
534   --
535   l_object_version_number := p_object_version_number;
536   --
537   /*
538   begin
539     --
540     -- Start of API User Hook for the before hook of update_county_tax_rule
541     --
542     pay_cnt_bk2.update_county_tax_rule_b
543       (
544        p_emp_county_tax_rule_id         =>  p_emp_county_tax_rule_id
545       ,p_assignment_id                  =>  p_assignment_id
546       ,p_state_code                     =>  p_state_code
547       ,p_county_code                    =>  p_county_code
548       ,p_business_group_id              =>  l_business_group_id
549       ,p_additional_wa_rate             =>  p_additional_wa_rate
550       ,p_filing_status_code             =>  p_filing_status_code
551       ,p_jurisdiction_code              =>  l_jurisdiction_code
552       ,p_lit_additional_tax             =>  p_lit_additional_tax
553       ,p_lit_override_amount            =>  p_lit_override_amount
554       ,p_lit_override_rate              =>  p_lit_override_rate
555       ,p_withholding_allowances         =>  p_withholding_allowances
556       ,p_lit_exempt                     =>  p_lit_exempt
557       ,p_sd_exempt                      =>  p_sd_exempt
558       ,p_ht_exempt                      =>  p_ht_exempt
559       ,p_wage_exempt                    =>  p_wage_exempt
560       ,p_school_district_code           =>  p_school_district_code
561       ,p_object_version_number          =>  p_object_version_number
562       );
563   exception
564     when hr_api.cannot_find_prog_unit then
565       hr_api.cannot_find_prog_unit_error
566         (p_module_name => 'UPDATE_COUNTY_TAX_RULE'
567         ,p_hook_type   => 'BP'
568         );
569     --
570     -- End of API User Hook for the before hook of update_county_tax_rule
571     --
572   end;
573   */
574      --
575      hr_utility.set_location(l_proc, 20);
576      --
577      pay_cnt_upd.upd
578        (
579         p_emp_county_tax_rule_id        => p_emp_county_tax_rule_id
580        ,p_effective_start_date          => l_effective_start_date
581        ,p_effective_end_date            => l_effective_end_date
582        ,p_additional_wa_rate            => p_additional_wa_rate
583        ,p_filing_status_code            => p_filing_status_code
584        ,p_lit_additional_tax            => p_lit_additional_tax
585        ,p_lit_override_amount           => p_lit_override_amount
586        ,p_lit_override_rate             => p_lit_override_rate
587        ,p_withholding_allowances        => p_withholding_allowances
588        ,p_lit_exempt                    => p_lit_exempt
589        ,p_sd_exempt                     => p_sd_exempt
590        ,p_ht_exempt                     => p_ht_exempt
591        ,p_wage_exempt                   => p_wage_exempt
592        ,p_school_district_code          => p_school_district_code
593        ,p_object_version_number         => l_object_version_number
594        ,p_effective_date                => p_effective_date
595        ,p_datetrack_mode                => p_datetrack_mode
596     ,p_attribute_category            => p_attribute_category
597     ,p_attribute1                    => p_attribute1
598     ,p_attribute2                    => p_attribute2
599     ,p_attribute3                    => p_attribute3
600     ,p_attribute4                    => p_attribute4
601     ,p_attribute5                    => p_attribute5
602     ,p_attribute6                    => p_attribute6
603     ,p_attribute7                    => p_attribute7
604     ,p_attribute8                    => p_attribute8
605     ,p_attribute9                    => p_attribute9
606     ,p_attribute10                   => p_attribute10
607     ,p_attribute11                   => p_attribute11
608     ,p_attribute12                   => p_attribute12
609     ,p_attribute13                   => p_attribute13
610     ,p_attribute14                   => p_attribute14
611     ,p_attribute15                   => p_attribute15
612     ,p_attribute16                   => p_attribute16
613     ,p_attribute17                   => p_attribute17
614     ,p_attribute18                   => p_attribute18
615     ,p_attribute19                   => p_attribute19
616     ,p_attribute20                   => p_attribute20
617     ,p_attribute21                   => p_attribute21
618     ,p_attribute22                   => p_attribute22
619     ,p_attribute23                   => p_attribute23
620     ,p_attribute24                   => p_attribute24
621     ,p_attribute25                   => p_attribute25
622     ,p_attribute26                   => p_attribute26
623     ,p_attribute27                   => p_attribute27
624     ,p_attribute28                   => p_attribute28
625     ,p_attribute29                   => p_attribute29
626     ,p_attribute30                   => p_attribute30
627     ,p_cnt_information_category      => p_cnt_information_category
628     ,p_cnt_information1                    => p_cnt_information1
629     ,p_cnt_information2                    => p_cnt_information2
630     ,p_cnt_information3                    => p_cnt_information3
631     ,p_cnt_information4                    => p_cnt_information4
632     ,p_cnt_information5                    => p_cnt_information5
633     ,p_cnt_information6                    => p_cnt_information6
634     ,p_cnt_information7                    => p_cnt_information7
635     ,p_cnt_information8                    => p_cnt_information8
636     ,p_cnt_information9                    => p_cnt_information9
637     ,p_cnt_information10                   => p_cnt_information10
638     ,p_cnt_information11                   => p_cnt_information11
639     ,p_cnt_information12                   => p_cnt_information12
640     ,p_cnt_information13                   => p_cnt_information13
641     ,p_cnt_information14                   => p_cnt_information14
642     ,p_cnt_information15                   => p_cnt_information15
643     ,p_cnt_information16                   => p_cnt_information16
644     ,p_cnt_information17                   => p_cnt_information17
645     ,p_cnt_information18                   => p_cnt_information18
646     ,p_cnt_information19                   => p_cnt_information19
647     ,p_cnt_information20                   => p_cnt_information20
648     ,p_cnt_information21                   => p_cnt_information21
649     ,p_cnt_information22                   => p_cnt_information22
650     ,p_cnt_information23                   => p_cnt_information23
651     ,p_cnt_information24                   => p_cnt_information24
652     ,p_cnt_information25                   => p_cnt_information25
653     ,p_cnt_information26                   => p_cnt_information26
654     ,p_cnt_information27                   => p_cnt_information27
655     ,p_cnt_information28                   => p_cnt_information28
656     ,p_cnt_information29                   => p_cnt_information29
657     ,p_cnt_information30                   => p_cnt_information30
658        );
659   --
660   --
661   -- Call create_asg_geo_row to create rows in the pay_us_asg_reporting
662   -- table if the county school district has changed
663   --
664   if p_school_district_code IS NOT NULL AND
665      p_school_district_code <> hr_api.g_varchar2 THEN
666     hr_utility.set_location(l_proc, 22);
667     OPEN csr_assignment_id(p_emp_county_tax_rule_id,
668                            p_effective_date);
669     FETCH csr_assignment_id
670     INTO l_assignment_id,
671          l_jurisdiction_code;
672     pay_asg_geo_pkg.create_asg_geo_row(
673                p_assignment_id => l_assignment_id
674               ,p_jurisdiction  => l_jurisdiction_code
675               );
676     CLOSE csr_assignment_id;
677   end if;
678   /*
679   begin
680     --
681     -- Start of API User Hook for the after hook of update_county_tax_rule
682     --
683     pay_cnt_bk2.update_county_tax_rule_a
684       (
685        p_emp_county_tax_rule_id         =>  p_emp_county_tax_rule_id
686       ,p_effective_start_date           =>  l_effective_start_date
687       ,p_effective_end_date             =>  l_effective_end_date
688       ,p_assignment_id                  =>  p_assignment_id
689       ,p_state_code                     =>  p_state_code
690       ,p_county_code                    =>  p_county_code
691       ,p_business_group_id              =>  l_business_group_id
692       ,p_additional_wa_rate             =>  p_additional_wa_rate
693       ,p_filing_status_code             =>  p_filing_status_code
694       ,p_jurisdiction_code              =>  l_jurisdiction_code
695       ,p_lit_additional_tax             =>  p_lit_additional_tax
696       ,p_lit_override_amount            =>  p_lit_override_amount
697       ,p_lit_override_rate              =>  p_lit_override_rate
698       ,p_withholding_allowances         =>  p_withholding_allowances
699       ,p_lit_exempt                     =>  p_lit_exempt
700       ,p_sd_exempt                      =>  p_sd_exempt
701       ,p_ht_exempt                      =>  p_ht_exempt
702       ,p_wage_exempt                    =>  p_wage_exempt
703       ,p_school_district_code           =>  p_school_district_code
704       ,p_object_version_number          =>  l_object_version_number
705       );
706   exception
707     when hr_api.cannot_find_prog_unit then
708       hr_api.cannot_find_prog_unit_error
709         (p_module_name => 'UPDATE_COUNTY_TAX_RULE'
710         ,p_hook_type   => 'AP'
711         );
712     --
713     -- End of API User Hook for the after hook of update_county_tax_rule
714     --
715   end;
716   */
717   --
718   hr_utility.set_location(l_proc, 25);
719   --
720   -- When in validation only mode raise the Validate_Enabled exception
721   --
722   if p_validate then
723     raise hr_api.validate_enabled;
724   end if;
725   --
726   -- Set all output arguments
727   --
728   p_object_version_number := l_object_version_number;
729   p_effective_start_date := l_effective_start_date;
730   p_effective_end_date := l_effective_end_date;
731   --
732   hr_utility.set_location(' Leaving:'||l_proc, 30);
733   --
734 exception
735   --
736   when hr_api.validate_enabled then
737     --
738     -- As the Validate_Enabled exception has been raised
739     -- we must rollback to the savepoint
740     --
741     ROLLBACK TO update_county_tax_rule;
742     --
743     -- Only set output warning arguments
744     -- (Any key or derived arguments must be set to null
745     -- when validation only mode is being used.)
746     --
747     p_object_version_number  := l_object_version_number;
748     p_effective_start_date := null;
749     p_effective_end_date := null;
750     hr_utility.set_location(' Leaving:'||l_proc, 50);
751     --
752   when others then
753     --
754     -- A validation or unexpected error has occurred
755     --
756     ROLLBACK TO update_county_tax_rule;
757     --
758     -- Reset IN OUT params and set OUT params.
759     --
760     p_object_version_number  := l_object_version_number;
761     p_effective_start_date := null;
762     p_effective_end_date := null;
763     --
764     raise;
765     --
766 end update_county_tax_rule;
767 --
768 -- ----------------------------------------------------------------------------
769 -- |-------------------------------< lck >------------------------------------|
770 -- ----------------------------------------------------------------------------
771 --
772 procedure lck
773   (
774    p_emp_county_tax_rule_id         in     number
775   ,p_object_version_number          in     number
776   ,p_effective_date                 in     date
777   ,p_datetrack_mode                 in     varchar2
778   ,p_validation_start_date          out    nocopy date
779   ,p_validation_end_date            out    nocopy date
780   ) is
781   --
782   --
783   -- Declare cursors and local variables
784   --
785   l_proc varchar2(72) := g_package||'update_county_tax_rule';
786   l_validation_start_date date;
787   l_validation_end_date date;
788   --
789 begin
790   --
791   hr_utility.set_location('Entering:'|| l_proc, 10);
792   --
793   pay_cnt_shd.lck
794     (
795       p_emp_county_tax_rule_id     => p_emp_county_tax_rule_id
796      ,p_validation_start_date      => l_validation_start_date
797      ,p_validation_end_date        => l_validation_end_date
798      ,p_object_version_number      => p_object_version_number
799      ,p_effective_date             => p_effective_date
800      ,p_datetrack_mode             => p_datetrack_mode
801     );
802   --
803   hr_utility.set_location(' Leaving:'||l_proc, 70);
804   --
805 end lck;
806 --
807 end pay_county_tax_rule_api;