DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_CITY_TAX_RULE_API

Source


1 PACKAGE BODY pay_city_tax_rule_api AS
2 /* $Header: pyctyapi.pkb 120.0.12000000.2 2007/05/01 22:53:30 ahanda noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  pay_cty_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 -- |------------------------< create_city_tax_rule >----------------------|
29 -- ----------------------------------------------------------------------------
30 --
31 procedure create_city_tax_rule
32   (p_validate                       in  boolean   default false
33   ,p_emp_city_tax_rule_id           out nocopy number
34   ,p_effective_start_date           out nocopy date
35   ,p_effective_end_date             out nocopy date
36   ,p_assignment_id                  in  number
37   ,p_state_code                     in  varchar2
38   ,p_county_code                    in  varchar2
39   ,p_city_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_cty_information_category       in     varchar2  default null
85   ,p_cty_information1               in     varchar2  default null
86   ,p_cty_information2               in     varchar2  default null
87   ,p_cty_information3               in     varchar2  default null
88   ,p_cty_information4               in     varchar2  default null
89   ,p_cty_information5               in     varchar2  default null
90   ,p_cty_information6               in     varchar2  default null
91   ,p_cty_information7               in     varchar2  default null
92   ,p_cty_information8               in     varchar2  default null
93   ,p_cty_information9               in     varchar2  default null
94   ,p_cty_information10              in     varchar2  default null
95   ,p_cty_information11              in     varchar2  default null
96   ,p_cty_information12              in     varchar2  default null
97   ,p_cty_information13              in     varchar2  default null
98   ,p_cty_information14              in     varchar2  default null
99   ,p_cty_information15              in     varchar2  default null
100   ,p_cty_information16              in     varchar2  default null
101   ,p_cty_information17              in     varchar2  default null
102   ,p_cty_information18              in     varchar2  default null
103   ,p_cty_information19              in     varchar2  default null
104   ,p_cty_information20              in     varchar2  default null
105   ,p_cty_information21              in     varchar2  default null
106   ,p_cty_information22              in     varchar2  default null
107   ,p_cty_information23              in     varchar2  default null
108   ,p_cty_information24              in     varchar2  default null
109   ,p_cty_information25              in     varchar2  default null
110   ,p_cty_information26              in     varchar2  default null
111   ,p_cty_information27              in     varchar2  default null
112   ,p_cty_information28              in     varchar2  default null
113   ,p_cty_information29              in     varchar2  default null
114   ,p_cty_information30              in     varchar2  default null
115   ) is
116   --
117   l_jurisdiction_code     pay_us_emp_city_tax_rules.jurisdiction_code%TYPE;
118   l_business_group_id     per_assignments_f.business_group_id%TYPE;
119   l_defaulting_date       pay_us_emp_city_tax_rules_f.effective_end_date%TYPE;
120   l_emp_city_tax_rule_id  pay_us_emp_city_tax_rules_f.emp_city_tax_rule_id%TYPE;
121   l_effective_start_date  pay_us_emp_city_tax_rules_f.effective_start_date%TYPE;
122   l_effective_end_date    pay_us_emp_city_tax_rules_f.effective_end_date%TYPE;
123   l_proc                  varchar2(72) := g_package||'create_city_tax_rule';
124   l_object_version_number pay_us_emp_city_tax_rules_f.object_version_number%TYPE;
125   l_element_entry_id      pay_element_entries_f.element_entry_id%TYPE := null;
126   --
127 begin
128   --
129   hr_utility.set_location('Entering:'|| l_proc, 10);
130   --
131   -- Issue a savepoint
132   --
133   savepoint create_city_tax_rule;
134 
135   --
136   hr_utility.set_location(l_proc, 15);
137   --
138   -- Process Logic
139   --
140   -- Derive the jurisdiction code
141   --
142   l_jurisdiction_code := p_state_code||'-'||p_county_code||'-'||p_city_code;
143   --
144   -- Derive the business group id
145   --
146   Open csr_derive_business_grp(p_assignment_id, p_effective_date);
147   fetch csr_derive_business_grp into l_business_group_id;
148   if csr_derive_business_grp%found then
149      close csr_derive_business_grp;
150   else
151      close csr_derive_business_grp;
152      hr_utility.set_message(801, 'HR_7348_ASSIGNMENT_INVALID');
153      hr_utility.set_message_token('PROCEDURE', l_proc);
154      hr_utility.set_message_token('step','20');
155      hr_utility.raise_error;
156   end if;
157   /*
158   begin
159     --
160     --
161     -- Start of API User Hook for the before hook of create_city_tax_rule
162     --
163     pay_cty_bk1.create_city_tax_rule_b
164       (
165        p_assignment_id                  =>  p_assignment_id
166       ,p_state_code                     =>  p_state_code
167       ,p_county_code                    =>  p_county_code
168       ,p_city_code                      =>  p_city_code
169       ,p_business_group_id              =>  l_business_group_id
170       ,p_additional_wa_rate             =>  p_additional_wa_rate
171       ,p_filing_status_code             =>  p_filing_status_code
172       ,p_jurisdiction_code              =>  l_jurisdiction_code
173       ,p_lit_additional_tax             =>  p_lit_additional_tax
174       ,p_lit_override_amount            =>  p_lit_override_amount
175       ,p_lit_override_rate              =>  p_lit_override_rate
176       ,p_withholding_allowances         =>  p_withholding_allowances
177       ,p_lit_exempt                     =>  p_lit_exempt
178       ,p_sd_exempt                      =>  p_sd_exempt
179       ,p_ht_exempt                      =>  p_ht_exempt
180       ,p_wage_exempt                    =>  p_wage_exempt
181       ,p_school_district_code           =>  p_school_district_code
182       );
183   exception
184     when hr_api.cannot_find_prog_unit then
185       hr_api.cannot_find_prog_unit_error
186         (
187          p_module_name => 'CREATE_CITY_TAX_RULE'
188         ,p_hook_type   => 'BP'
189         );
190     --
191     -- End of API User Hook for the before hook of create_city_tax_rule
192     --
193   end;
194   */
195   --
196   -- Business Process Main Code
197   --
198   open csr_defaulting_date(p_assignment_id);
199   fetch csr_defaulting_date into l_defaulting_date;
200   if l_defaulting_date is null then
201      close csr_defaulting_date;
202      hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
203      hr_utility.set_message_token('table_name', 'pay_us_emp_fed_tax_rules_f');
204      hr_utility.set_message_token('step','25');
205      hr_utility.raise_error;
206   else
207      close csr_defaulting_date;
208      pay_cty_ins.ins
209        (
210         p_emp_city_tax_rule_id          => l_emp_city_tax_rule_id
211        ,p_effective_start_date          => l_effective_start_date
212        ,p_effective_end_date            => l_effective_end_date
213        ,p_assignment_id                 => p_assignment_id
214        ,p_state_code                    => p_state_code
215        ,p_county_code                   => p_county_code
216        ,p_city_code                     => p_city_code
217        ,p_business_group_id             => l_business_group_id
218        ,p_additional_wa_rate            => p_additional_wa_rate
219        ,p_filing_status_code            => p_filing_status_code
220        ,p_jurisdiction_code             => l_jurisdiction_code
221        ,p_lit_additional_tax            => p_lit_additional_tax
222        ,p_lit_override_amount           => p_lit_override_amount
223        ,p_lit_override_rate             => p_lit_override_rate
224        ,p_withholding_allowances        => p_withholding_allowances
225        ,p_lit_exempt                    => p_lit_exempt
226        ,p_sd_exempt                     => p_sd_exempt
227        ,p_ht_exempt                     => p_ht_exempt
228        ,p_wage_exempt                   => p_wage_exempt
229        ,p_school_district_code          => p_school_district_code
230        ,p_object_version_number         => l_object_version_number
231        ,p_effective_date                => l_defaulting_date
232     ,p_attribute_category            => p_attribute_category
233     ,p_attribute1                    => p_attribute1
234     ,p_attribute2                    => p_attribute2
235     ,p_attribute3                    => p_attribute3
236     ,p_attribute4                    => p_attribute4
237     ,p_attribute5                    => p_attribute5
238     ,p_attribute6                    => p_attribute6
239     ,p_attribute7                    => p_attribute7
240     ,p_attribute8                    => p_attribute8
241     ,p_attribute9                    => p_attribute9
242     ,p_attribute10                   => p_attribute10
243     ,p_attribute11                   => p_attribute11
244     ,p_attribute12                   => p_attribute12
245     ,p_attribute13                   => p_attribute13
246     ,p_attribute14                   => p_attribute14
247     ,p_attribute15                   => p_attribute15
248     ,p_attribute16                   => p_attribute16
249     ,p_attribute17                   => p_attribute17
250     ,p_attribute18                   => p_attribute18
251     ,p_attribute19                   => p_attribute19
252     ,p_attribute20                   => p_attribute20
253     ,p_attribute21                   => p_attribute21
254     ,p_attribute22                   => p_attribute22
255     ,p_attribute23                   => p_attribute23
256     ,p_attribute24                   => p_attribute24
257     ,p_attribute25                   => p_attribute25
258     ,p_attribute26                   => p_attribute26
259     ,p_attribute27                   => p_attribute27
260     ,p_attribute28                   => p_attribute28
261     ,p_attribute29                   => p_attribute29
262     ,p_attribute30                   => p_attribute30
263     ,p_cty_information_category      => p_cty_information_category
264     ,p_cty_information1                    => p_cty_information1
265     ,p_cty_information2                    => p_cty_information2
266     ,p_cty_information3                    => p_cty_information3
267     ,p_cty_information4                    => p_cty_information4
268     ,p_cty_information5                    => p_cty_information5
269     ,p_cty_information6                    => p_cty_information6
270     ,p_cty_information7                    => p_cty_information7
271     ,p_cty_information8                    => p_cty_information8
272     ,p_cty_information9                    => p_cty_information9
273     ,p_cty_information10                   => p_cty_information10
274     ,p_cty_information11                   => p_cty_information11
275     ,p_cty_information12                   => p_cty_information12
276     ,p_cty_information13                   => p_cty_information13
277     ,p_cty_information14                   => p_cty_information14
278     ,p_cty_information15                   => p_cty_information15
279     ,p_cty_information16                   => p_cty_information16
280     ,p_cty_information17                   => p_cty_information17
281     ,p_cty_information18                   => p_cty_information18
282     ,p_cty_information19                   => p_cty_information19
283     ,p_cty_information20                   => p_cty_information20
284     ,p_cty_information21                   => p_cty_information21
285     ,p_cty_information22                   => p_cty_information22
286     ,p_cty_information23                   => p_cty_information23
287     ,p_cty_information24                   => p_cty_information24
288     ,p_cty_information25                   => p_cty_information25
289     ,p_cty_information26                   => p_cty_information26
290     ,p_cty_information27                   => p_cty_information27
291     ,p_cty_information28                   => p_cty_information28
292     ,p_cty_information29                   => p_cty_information29
293     ,p_cty_information30                   => p_cty_information30
294        );
295      --
296      hr_utility.set_location(l_proc, 30);
297      --
298      pay_us_tax_internal.maintain_tax_percentage
299         (
300          p_assignment_id          => p_assignment_id,
301          p_effective_date         => p_effective_date,
302          p_state_code             => p_state_code,
303          p_county_code            => p_county_code,
304          p_city_code              => p_city_code,
305          p_datetrack_mode         => 'INSERT',
306          p_calculate_pct          => FALSE,
307          p_effective_start_date   => l_effective_start_date,
308          p_effective_end_date     => l_effective_end_date
309         );
310     --
311     -- Call create_asg_geo_row to create rows in the pay_us_asg_reporting
312     -- table if this is a new city
313     --
314     pay_asg_geo_pkg.create_asg_geo_row(
315                  p_assignment_id => p_assignment_id
316                 ,p_jurisdiction  => l_jurisdiction_code
317                 );
318   End if;
319   --
320   /*
321   begin
322     --
323     -- Start of API User Hook for the after hook of create_city_tax_rule
324     --
325     pay_cty_bk1.create_city_tax_rule_a
326       (
327        p_emp_city_tax_rule_id           =>  l_emp_city_tax_rule_id
328       ,p_effective_start_date           =>  l_effective_start_date
329       ,p_effective_end_date             =>  l_effective_end_date
330       ,p_assignment_id                  =>  p_assignment_id
331       ,p_state_code                     =>  p_state_code
332       ,p_county_code                    =>  p_county_code
333       ,p_city_code                      =>  p_city_code
334       ,p_business_group_id              =>  l_business_group_id
335       ,p_additional_wa_rate             =>  p_additional_wa_rate
336       ,p_filing_status_code             =>  p_filing_status_code
337       ,p_jurisdiction_code              =>  l_jurisdiction_code
338       ,p_lit_additional_tax             =>  p_lit_additional_tax
339       ,p_lit_override_amount            =>  p_lit_override_amount
340       ,p_lit_override_rate              =>  p_lit_override_rate
341       ,p_withholding_allowances         =>  p_withholding_allowances
342       ,p_lit_exempt                     =>  p_lit_exempt
343       ,p_sd_exempt                      =>  p_sd_exempt
344       ,p_ht_exempt                      =>  p_ht_exempt
345       ,p_wage_exempt                    =>  p_wage_exempt
346       ,p_school_district_code           =>  p_school_district_code
347       ,p_object_version_number          =>  l_object_version_number
348       );
349   exception
350     when hr_api.cannot_find_prog_unit then
351       hr_api.cannot_find_prog_unit_error
352         (p_module_name => 'CREATE_CITY_TAX_RULE'
353         ,p_hook_type   => 'AP'
354         );
355     --
356     -- End of API User Hook for the after hook of create_city_tax_rule
357     --
358   end;
359   */
360   --
361   hr_utility.set_location(l_proc, 35);
362   --
363   -- When in validation only mode raise the Validate_Enabled exception
364   --
365   if p_validate then
366     raise hr_api.validate_enabled;
367   end if;
368   --
369   -- Set all output arguments
370   --
371   p_emp_city_tax_rule_id := l_emp_city_tax_rule_id;
372   p_effective_start_date := l_effective_start_date;
373   p_effective_end_date := l_effective_end_date;
374   p_object_version_number := l_object_version_number;
375   --
376   hr_utility.set_location(' Leaving:'||l_proc, 40);
377   --
378 exception
379   --
380   when hr_api.validate_enabled then
381     --
382     -- As the Validate_Enabled exception has been raised
383     -- we must rollback to the savepoint
384     --
385     ROLLBACK TO create_city_tax_rule;
386     --
387     -- Only set output warning arguments
388     -- (Any key or derived arguments must be set to null
389     -- when validation only mode is being used.)
390     --
391     p_emp_city_tax_rule_id := null;
392     p_effective_start_date := null;
393     p_effective_end_date := null;
394     p_object_version_number  := null;
395     hr_utility.set_location(' Leaving:'||l_proc, 60);
396     --
397   when others then
398     --
399     -- A validation or unexpected error has occurred
400     --
401     ROLLBACK TO create_city_tax_rule;
402     p_emp_city_tax_rule_id   := null;
403     p_effective_start_date   := null;
404     p_effective_end_date     := null;
405     p_object_version_number  := null;
406 
407     raise;
408     --
409 end create_city_tax_rule;
410 --
411 -- ----------------------------------------------------------------------------
412 -- |-------------------------< update_city_tax_rule >-------------------------|
413 -- ----------------------------------------------------------------------------
414 --
415 procedure update_city_tax_rule
416   (p_validate                       in  boolean   default false
417   ,p_emp_city_tax_rule_id           in  number
418   ,p_effective_start_date           out nocopy date
419   ,p_effective_end_date             out nocopy date
420   ,p_additional_wa_rate             in  number    default hr_api.g_number
421   ,p_filing_status_code             in  varchar2  default hr_api.g_varchar2
422   ,p_lit_additional_tax             in  number    default hr_api.g_number
423   ,p_lit_override_amount            in  number    default hr_api.g_number
424   ,p_lit_override_rate              in  number    default hr_api.g_number
425   ,p_withholding_allowances         in  number    default hr_api.g_number
426   ,p_lit_exempt                     in  varchar2  default hr_api.g_varchar2
427   ,p_sd_exempt                      in  varchar2  default hr_api.g_varchar2
428   ,p_ht_exempt                      in  varchar2  default hr_api.g_varchar2
429   ,p_wage_exempt                    in  varchar2  default hr_api.g_varchar2
430   ,p_school_district_code           in  varchar2  default hr_api.g_varchar2
431   ,p_object_version_number          in out nocopy number
432   ,p_effective_date                 in  date
433   ,p_datetrack_mode                 in  varchar2
434   ,p_attribute_category             in     varchar2  default hr_api.g_varchar2
435   ,p_attribute1                     in     varchar2  default hr_api.g_varchar2
436   ,p_attribute2                     in     varchar2  default hr_api.g_varchar2
437   ,p_attribute3                     in     varchar2  default hr_api.g_varchar2
438   ,p_attribute4                     in     varchar2  default hr_api.g_varchar2
439   ,p_attribute5                     in     varchar2  default hr_api.g_varchar2
440   ,p_attribute6                     in     varchar2  default hr_api.g_varchar2
441   ,p_attribute7                     in     varchar2  default hr_api.g_varchar2
442   ,p_attribute8                     in     varchar2  default hr_api.g_varchar2
443   ,p_attribute9                     in     varchar2  default hr_api.g_varchar2
444   ,p_attribute10                    in     varchar2  default hr_api.g_varchar2
445   ,p_attribute11                    in     varchar2  default hr_api.g_varchar2
446   ,p_attribute12                    in     varchar2  default hr_api.g_varchar2
447   ,p_attribute13                    in     varchar2  default hr_api.g_varchar2
448   ,p_attribute14                    in     varchar2  default hr_api.g_varchar2
449   ,p_attribute15                    in     varchar2  default hr_api.g_varchar2
450   ,p_attribute16                    in     varchar2  default hr_api.g_varchar2
451   ,p_attribute17                    in     varchar2  default hr_api.g_varchar2
452   ,p_attribute18                    in     varchar2  default hr_api.g_varchar2
453   ,p_attribute19                    in     varchar2  default hr_api.g_varchar2
454   ,p_attribute20                    in     varchar2  default hr_api.g_varchar2
455   ,p_attribute21                    in     varchar2  default hr_api.g_varchar2
456   ,p_attribute22                    in     varchar2  default hr_api.g_varchar2
457   ,p_attribute23                    in     varchar2  default hr_api.g_varchar2
458   ,p_attribute24                    in     varchar2  default hr_api.g_varchar2
459   ,p_attribute25                    in     varchar2  default hr_api.g_varchar2
460   ,p_attribute26                    in     varchar2  default hr_api.g_varchar2
461   ,p_attribute27                    in     varchar2  default hr_api.g_varchar2
462   ,p_attribute28                    in     varchar2  default hr_api.g_varchar2
463   ,p_attribute29                    in     varchar2  default hr_api.g_varchar2
464   ,p_attribute30                    in     varchar2  default hr_api.g_varchar2
465   ,p_cty_information_category       in     varchar2  default hr_api.g_varchar2
466   ,p_cty_information1               in     varchar2  default hr_api.g_varchar2
467   ,p_cty_information2               in     varchar2  default hr_api.g_varchar2
468   ,p_cty_information3               in     varchar2  default hr_api.g_varchar2
469   ,p_cty_information4               in     varchar2  default hr_api.g_varchar2
470   ,p_cty_information5               in     varchar2  default hr_api.g_varchar2
471   ,p_cty_information6               in     varchar2  default hr_api.g_varchar2
472   ,p_cty_information7               in     varchar2  default hr_api.g_varchar2
473   ,p_cty_information8               in     varchar2  default hr_api.g_varchar2
474   ,p_cty_information9               in     varchar2  default hr_api.g_varchar2
475   ,p_cty_information10              in     varchar2  default hr_api.g_varchar2
476   ,p_cty_information11              in     varchar2  default hr_api.g_varchar2
477   ,p_cty_information12              in     varchar2  default hr_api.g_varchar2
478   ,p_cty_information13              in     varchar2  default hr_api.g_varchar2
479   ,p_cty_information14              in     varchar2  default hr_api.g_varchar2
480   ,p_cty_information15              in     varchar2  default hr_api.g_varchar2
481   ,p_cty_information16              in     varchar2  default hr_api.g_varchar2
482   ,p_cty_information17              in     varchar2  default hr_api.g_varchar2
483   ,p_cty_information18              in     varchar2  default hr_api.g_varchar2
484   ,p_cty_information19              in     varchar2  default hr_api.g_varchar2
485   ,p_cty_information20              in     varchar2  default hr_api.g_varchar2
486   ,p_cty_information21              in     varchar2  default hr_api.g_varchar2
487   ,p_cty_information22              in     varchar2  default hr_api.g_varchar2
488   ,p_cty_information23              in     varchar2  default hr_api.g_varchar2
489   ,p_cty_information24              in     varchar2  default hr_api.g_varchar2
490   ,p_cty_information25              in     varchar2  default hr_api.g_varchar2
491   ,p_cty_information26              in     varchar2  default hr_api.g_varchar2
492   ,p_cty_information27              in     varchar2  default hr_api.g_varchar2
493   ,p_cty_information28              in     varchar2  default hr_api.g_varchar2
494   ,p_cty_information29              in     varchar2  default hr_api.g_varchar2
495   ,p_cty_information30              in     varchar2  default hr_api.g_varchar2
496   ) is
497   --
498   -- Declare cursors and local variables
499   --
500   l_proc                  varchar2(72) := g_package||'update_city_tax_rule';
501   l_object_version_number pay_us_emp_city_tax_rules_f.object_version_number%TYPE;
502   l_effective_start_date  pay_us_emp_city_tax_rules_f.effective_start_date%TYPE;
503   l_effective_end_date    pay_us_emp_city_tax_rules_f.effective_end_date%TYPE;
504   l_assignment_id         pay_us_emp_city_tax_rules_f.assignment_id%TYPE;
505   l_jurisdiction_code     pay_us_emp_city_tax_rules_f.jurisdiction_code%TYPE;
506   --
507   CURSOR csr_assignment_id (p_rule_id NUMBER,
508                             p_eff_date DATE) IS
509     SELECT ctr.assignment_id,
510            ctr.state_code||'-'||ctr.school_district_code
511     FROM   pay_us_emp_city_tax_rules_f ctr
512     WHERE  ctr.emp_city_tax_rule_id = p_rule_id
513     AND    p_eff_date BETWEEN ctr.effective_start_date
514                           AND ctr.effective_end_date;
515   --
516 begin
517   --
518   hr_utility.set_location('Entering:'|| l_proc, 10);
519   --
520   -- Issue a savepoint
521   --
522   savepoint update_city_tax_rule;
523   --
524   hr_utility.set_location(l_proc, 15);
525   --
526   -- Process Logic
527   --
528   -- Changed call to check hr_general.chk_maintain_tax_records to
529   -- determine if we need to maintain tax records.
530   --
531    IF  hr_general.chk_maintain_tax_records = 'N' Then
532      return;
533   end if;
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_city_tax_rule
541     --
542     pay_cty_bk2.update_city_tax_rule_b
543       (
544        p_emp_city_tax_rule_id           =>  p_emp_city_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_city_code                      =>  p_city_code
549       ,p_business_group_id              =>  l_business_group_id
550       ,p_additional_wa_rate             =>  p_additional_wa_rate
551       ,p_filing_status_code             =>  p_filing_status_code
552       ,p_jurisdiction_code              =>  l_jurisdiction_code
553       ,p_lit_additional_tax             =>  p_lit_additional_tax
554       ,p_lit_override_amount            =>  p_lit_override_amount
555       ,p_lit_override_rate              =>  p_lit_override_rate
556       ,p_withholding_allowances         =>  p_withholding_allowances
557       ,p_lit_exempt                     =>  p_lit_exempt
558       ,p_sd_exempt                      =>  p_sd_exempt
559       ,p_ht_exempt                      =>  p_ht_exempt
560       ,p_wage_exempt                    =>  p_wage_exempt
561       ,p_school_district_code           =>  p_school_district_code
562       ,p_object_version_number          =>  p_object_version_number
563       );
564   exception
565     when hr_api.cannot_find_prog_unit then
566       hr_api.cannot_find_prog_unit_error
567         (p_module_name => 'UPDATE_CITY_TAX_RULE'
568         ,p_hook_type   => 'BP'
569         );
570     --
571     -- End of API User Hook for the before hook of update_city_tax_rule
572     --
573   end;
574   */
575   --
576   pay_cty_upd.upd
577      (
578       p_emp_city_tax_rule_id          => p_emp_city_tax_rule_id
579      ,p_effective_start_date          => l_effective_start_date
580      ,p_effective_end_date            => l_effective_end_date
581      ,p_additional_wa_rate            => p_additional_wa_rate
582      ,p_filing_status_code            => p_filing_status_code
583      ,p_lit_additional_tax            => p_lit_additional_tax
584      ,p_lit_override_amount           => p_lit_override_amount
585      ,p_lit_override_rate             => p_lit_override_rate
586      ,p_withholding_allowances        => p_withholding_allowances
587      ,p_lit_exempt                    => p_lit_exempt
588      ,p_sd_exempt                     => p_sd_exempt
589      ,p_ht_exempt                     => p_ht_exempt
590      ,p_wage_exempt                   => p_wage_exempt
591      ,p_school_district_code          => p_school_district_code
592      ,p_object_version_number         => l_object_version_number
593      ,p_effective_date                => p_effective_date
594      ,p_datetrack_mode                => p_datetrack_mode
595     ,p_attribute_category            => p_attribute_category
596     ,p_attribute1                    => p_attribute1
597     ,p_attribute2                    => p_attribute2
598     ,p_attribute3                    => p_attribute3
599     ,p_attribute4                    => p_attribute4
600     ,p_attribute5                    => p_attribute5
601     ,p_attribute6                    => p_attribute6
602     ,p_attribute7                    => p_attribute7
603     ,p_attribute8                    => p_attribute8
604     ,p_attribute9                    => p_attribute9
605     ,p_attribute10                   => p_attribute10
606     ,p_attribute11                   => p_attribute11
607     ,p_attribute12                   => p_attribute12
608     ,p_attribute13                   => p_attribute13
609     ,p_attribute14                   => p_attribute14
610     ,p_attribute15                   => p_attribute15
611     ,p_attribute16                   => p_attribute16
612     ,p_attribute17                   => p_attribute17
613     ,p_attribute18                   => p_attribute18
614     ,p_attribute19                   => p_attribute19
615     ,p_attribute20                   => p_attribute20
616     ,p_attribute21                   => p_attribute21
617     ,p_attribute22                   => p_attribute22
618     ,p_attribute23                   => p_attribute23
619     ,p_attribute24                   => p_attribute24
620     ,p_attribute25                   => p_attribute25
621     ,p_attribute26                   => p_attribute26
622     ,p_attribute27                   => p_attribute27
623     ,p_attribute28                   => p_attribute28
624     ,p_attribute29                   => p_attribute29
625     ,p_attribute30                   => p_attribute30
626     ,p_cty_information_category      => p_cty_information_category
627     ,p_cty_information1                    => p_cty_information1
628     ,p_cty_information2                    => p_cty_information2
629     ,p_cty_information3                    => p_cty_information3
630     ,p_cty_information4                    => p_cty_information4
631     ,p_cty_information5                    => p_cty_information5
632     ,p_cty_information6                    => p_cty_information6
633     ,p_cty_information7                    => p_cty_information7
634     ,p_cty_information8                    => p_cty_information8
635     ,p_cty_information9                    => p_cty_information9
636     ,p_cty_information10                   => p_cty_information10
637     ,p_cty_information11                   => p_cty_information11
638     ,p_cty_information12                   => p_cty_information12
639     ,p_cty_information13                   => p_cty_information13
640     ,p_cty_information14                   => p_cty_information14
641     ,p_cty_information15                   => p_cty_information15
642     ,p_cty_information16                   => p_cty_information16
643     ,p_cty_information17                   => p_cty_information17
644     ,p_cty_information18                   => p_cty_information18
645     ,p_cty_information19                   => p_cty_information19
646     ,p_cty_information20                   => p_cty_information20
647     ,p_cty_information21                   => p_cty_information21
648     ,p_cty_information22                   => p_cty_information22
649     ,p_cty_information23                   => p_cty_information23
650     ,p_cty_information24                   => p_cty_information24
651     ,p_cty_information25                   => p_cty_information25
652     ,p_cty_information26                   => p_cty_information26
653     ,p_cty_information27                   => p_cty_information27
654     ,p_cty_information28                   => p_cty_information28
655     ,p_cty_information29                   => p_cty_information29
656     ,p_cty_information30                   => p_cty_information30
657      );
658   --
659   -- Call create_asg_geo_row to create rows in the pay_us_asg_reporting
660   -- table if this city school district has changed.
661   --
662   if p_school_district_code IS NOT NULL AND
663      p_school_district_code <> hr_api.g_varchar2 THEN
664     hr_utility.set_location(l_proc, 22);
665     OPEN csr_assignment_id(p_emp_city_tax_rule_id,
666                            p_effective_date);
667     FETCH csr_assignment_id
668     INTO l_assignment_id,
669          l_jurisdiction_code;
670     pay_asg_geo_pkg.create_asg_geo_row(
671                p_assignment_id => l_assignment_id
672               ,p_jurisdiction  => l_jurisdiction_code
673               );
674     CLOSE csr_assignment_id;
675   end if;
676   --
677   /*
678   begin
679     --
680     -- Start of API User Hook for the after hook of update_city_tax_rule
681     --
682     pay_cty_bk2.update_city_tax_rule_a
683       (
684        p_emp_city_tax_rule_id           =>  p_emp_city_tax_rule_id
685       ,p_effective_start_date           =>  l_effective_start_date
686       ,p_effective_end_date             =>  l_effective_end_date
687       ,p_assignment_id                  =>  p_assignment_id
688       ,p_state_code                     =>  p_state_code
689       ,p_county_code                    =>  p_county_code
690       ,p_city_code                      =>  p_city_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              =>  p_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          =>  p_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_CITY_TAX_RULE'
710         ,p_hook_type   => 'AP'
711         );
712     --
713     -- End of API User Hook for the after hook of update_city_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_city_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_city_tax_rule;
757     p_effective_start_date   := null;
758     p_effective_end_date     := null;
759     p_object_version_number  := l_object_version_number;
760 
761     raise;
762     --
763 end update_city_tax_rule;
764 --
765 --
766 -- ----------------------------------------------------------------------------
767 -- |-------------------------------< lck >------------------------------------|
768 -- ----------------------------------------------------------------------------
769 --
770 procedure lck
771   (
772    p_emp_city_tax_rule_id           in     number
773   ,p_object_version_number          in     number
774   ,p_effective_date                 in     date
775   ,p_datetrack_mode                 in     varchar2
776   ,p_validation_start_date          out nocopy    date
777   ,p_validation_end_date            out nocopy    date
778   ) is
779   --
780   --
781   -- Declare cursors and local variables
782   --
783   l_proc varchar2(72) := g_package||'update_city_tax_rule';
784   l_validation_start_date date;
785   l_validation_end_date date;
786   --
787 begin
788   --
789   hr_utility.set_location('Entering:'|| l_proc, 10);
790   --
791   pay_cty_shd.lck
792     (
793       p_emp_city_tax_rule_id       => p_emp_city_tax_rule_id
794      ,p_validation_start_date      => l_validation_start_date
795      ,p_validation_end_date        => l_validation_end_date
796      ,p_object_version_number      => p_object_version_number
797      ,p_effective_date             => p_effective_date
798      ,p_datetrack_mode             => p_datetrack_mode
799     );
800   --
801   hr_utility.set_location(' Leaving:'||l_proc, 70);
802   --
803 end lck;
804 --
805 end pay_city_tax_rule_api;