DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_FEDERAL_TAX_RULE_API

Source


1 PACKAGE BODY pay_federal_tax_rule_api AS
2 /* $Header: pyfedapi.pkb 120.0.12000000.3 2007/07/16 02:24:39 ahanda noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  pay_fed_api.';
7 --
8 --
9 -- ----------------------------------------------------------------------------
10 -- |-------------------------------< lck >------------------------------------|
11 -- ----------------------------------------------------------------------------
12 --
13 procedure lck
14   (
15    p_emp_fed_tax_rule_id            in     number
16   ,p_object_version_number          in     number
17   ,p_effective_date                 in     date
18   ,p_datetrack_mode                 in     varchar2
19   ,p_validation_start_date          out nocopy   date
20   ,p_validation_end_date            out nocopy   date
21   ) is
22   --
23   --
24   -- Declare cursors and local variables
25   --
26   l_proc varchar2(72) := g_package||'update_federal_tax_rule';
27   l_validation_start_date date;
28   l_validation_end_date date;
29   --
30 begin
31   --
32   hr_utility.set_location('Entering:'|| l_proc, 10);
33   --
34   pay_fed_shd.lck
35     (
36       p_emp_fed_tax_rule_id        => p_emp_fed_tax_rule_id
37      ,p_validation_start_date      => l_validation_start_date
38      ,p_validation_end_date        => l_validation_end_date
39      ,p_object_version_number      => p_object_version_number
40      ,p_effective_date             => p_effective_date
41      ,p_datetrack_mode             => p_datetrack_mode
42     );
43   --
44   hr_utility.set_location(' Leaving:'||l_proc, 70);
45   --
46 end lck;
47 
48 -- ----------------------------------------------------------------------------
49 -- |-------------------------< update_fed_tax_rule >--------------------------|
50 -- ----------------------------------------------------------------------------
51 --
52 procedure update_fed_tax_rule
53 (
54    p_validate                       IN     boolean    default false
55   ,p_effective_date                 IN     date
56   ,p_datetrack_update_mode          IN     varchar2
57   ,p_emp_fed_tax_rule_id            IN     number
58   ,p_object_version_number          IN OUT nocopy number
59   ,p_sui_state_code                 IN     varchar2  default hr_api.g_varchar2
60   ,p_additional_wa_amount           IN     number    default hr_api.g_number
61   ,p_filing_status_code             IN     varchar2  default hr_api.g_varchar2
62   ,p_fit_override_amount            IN     number    default hr_api.g_number
63   ,p_fit_override_rate              IN     number    default hr_api.g_number
64   ,p_withholding_allowances         IN     number    default hr_api.g_number
65   ,p_cumulative_taxation            IN     varchar2  default hr_api.g_varchar2
66   ,p_eic_filing_status_code         IN     varchar2  default hr_api.g_varchar2
67   ,p_fit_additional_tax             IN     number    default hr_api.g_number
68   ,p_fit_exempt                     IN     varchar2  default hr_api.g_varchar2
69   ,p_futa_tax_exempt                IN     varchar2  default hr_api.g_varchar2
70   ,p_medicare_tax_exempt            IN     varchar2  default hr_api.g_varchar2
71   ,p_ss_tax_exempt                  IN     varchar2  default hr_api.g_varchar2
72   ,p_wage_exempt                    IN     varchar2  default hr_api.g_varchar2
73   ,p_statutory_employee             IN     varchar2  default hr_api.g_varchar2
74   ,p_w2_filed_year                  IN     number    default hr_api.g_number
75   ,p_supp_tax_override_rate         IN     number    default hr_api.g_number
76   ,p_excessive_wa_reject_date       IN     date      default hr_api.g_date
77   ,p_attribute_category             in     varchar2  default hr_api.g_varchar2
78   ,p_attribute1                     in     varchar2  default hr_api.g_varchar2
79   ,p_attribute2                     in     varchar2  default hr_api.g_varchar2
80   ,p_attribute3                     in     varchar2  default hr_api.g_varchar2
81   ,p_attribute4                     in     varchar2  default hr_api.g_varchar2
82   ,p_attribute5                     in     varchar2  default hr_api.g_varchar2
83   ,p_attribute6                     in     varchar2  default hr_api.g_varchar2
84   ,p_attribute7                     in     varchar2  default hr_api.g_varchar2
85   ,p_attribute8                     in     varchar2  default hr_api.g_varchar2
86   ,p_attribute9                     in     varchar2  default hr_api.g_varchar2
87   ,p_attribute10                    in     varchar2  default hr_api.g_varchar2
88   ,p_attribute11                    in     varchar2  default hr_api.g_varchar2
89   ,p_attribute12                    in     varchar2  default hr_api.g_varchar2
90   ,p_attribute13                    in     varchar2  default hr_api.g_varchar2
91   ,p_attribute14                    in     varchar2  default hr_api.g_varchar2
92   ,p_attribute15                    in     varchar2  default hr_api.g_varchar2
93   ,p_attribute16                    in     varchar2  default hr_api.g_varchar2
94   ,p_attribute17                    in     varchar2  default hr_api.g_varchar2
95   ,p_attribute18                    in     varchar2  default hr_api.g_varchar2
96   ,p_attribute19                    in     varchar2  default hr_api.g_varchar2
97   ,p_attribute20                    in     varchar2  default hr_api.g_varchar2
98   ,p_attribute21                    in     varchar2  default hr_api.g_varchar2
99   ,p_attribute22                    in     varchar2  default hr_api.g_varchar2
100   ,p_attribute23                    in     varchar2  default hr_api.g_varchar2
101   ,p_attribute24                    in     varchar2  default hr_api.g_varchar2
102   ,p_attribute25                    in     varchar2  default hr_api.g_varchar2
103   ,p_attribute26                    in     varchar2  default hr_api.g_varchar2
104   ,p_attribute27                    in     varchar2  default hr_api.g_varchar2
105   ,p_attribute28                    in     varchar2  default hr_api.g_varchar2
106   ,p_attribute29                    in     varchar2  default hr_api.g_varchar2
107   ,p_attribute30                    in     varchar2  default hr_api.g_varchar2
108   ,p_fed_information_category       in     varchar2  default hr_api.g_varchar2
109   ,p_fed_information1               in     varchar2  default hr_api.g_varchar2
110   ,p_fed_information2               in     varchar2  default hr_api.g_varchar2
111   ,p_fed_information3               in     varchar2  default hr_api.g_varchar2
112   ,p_fed_information4               in     varchar2  default hr_api.g_varchar2
113   ,p_fed_information5               in     varchar2  default hr_api.g_varchar2
114   ,p_fed_information6               in     varchar2  default hr_api.g_varchar2
115   ,p_fed_information7               in     varchar2  default hr_api.g_varchar2
116   ,p_fed_information8               in     varchar2  default hr_api.g_varchar2
117   ,p_fed_information9               in     varchar2  default hr_api.g_varchar2
118   ,p_fed_information10              in     varchar2  default hr_api.g_varchar2
119   ,p_fed_information11              in     varchar2  default hr_api.g_varchar2
120   ,p_fed_information12              in     varchar2  default hr_api.g_varchar2
121   ,p_fed_information13              in     varchar2  default hr_api.g_varchar2
122   ,p_fed_information14              in     varchar2  default hr_api.g_varchar2
123   ,p_fed_information15              in     varchar2  default hr_api.g_varchar2
124   ,p_fed_information16              in     varchar2  default hr_api.g_varchar2
125   ,p_fed_information17              in     varchar2  default hr_api.g_varchar2
126   ,p_fed_information18              in     varchar2  default hr_api.g_varchar2
127   ,p_fed_information19              in     varchar2  default hr_api.g_varchar2
128   ,p_fed_information20              in     varchar2  default hr_api.g_varchar2
129   ,p_fed_information21              in     varchar2  default hr_api.g_varchar2
130   ,p_fed_information22              in     varchar2  default hr_api.g_varchar2
131   ,p_fed_information23              in     varchar2  default hr_api.g_varchar2
132   ,p_fed_information24              in     varchar2  default hr_api.g_varchar2
133   ,p_fed_information25              in     varchar2  default hr_api.g_varchar2
134   ,p_fed_information26              in     varchar2  default hr_api.g_varchar2
135   ,p_fed_information27              in     varchar2  default hr_api.g_varchar2
136   ,p_fed_information28              in     varchar2  default hr_api.g_varchar2
137   ,p_fed_information29              in     varchar2  default hr_api.g_varchar2
138   ,p_fed_information30              in     varchar2  default hr_api.g_varchar2
139   ,p_effective_start_date           OUT nocopy date
140   ,p_effective_end_date             OUT nocopy date
141   ) is
142   --
143   -- Declare cursors and local variables
144   --
145   l_proc varchar2(72) := g_package||'update_fed_tax_rule';
146   l_effective_date          date;
147   l_excessive_wa_reject_date date;
148   l_object_version_number   pay_us_emp_fed_tax_rules_f.object_version_number%TYPE;
149   l_effective_start_date    pay_us_emp_fed_tax_rules_f.effective_start_date%TYPE;
150   l_effective_end_date      pay_us_emp_fed_tax_rules_f.effective_end_date%TYPE;
151   l_sui_jurisdiction_code   pay_us_emp_fed_tax_rules_f.sui_jurisdiction_code%TYPE;
152 
153   -- Bug3433911 -- Local Variables which will hold and the procedure parameter.
154   l_fit_exempt varchar2(10)  := p_fit_exempt;
155   l_futa_tax_exempt varchar2(10)  := p_futa_tax_exempt;
156   l_medicare_tax_exempt varchar2(10) := p_medicare_tax_exempt;
157   l_ss_tax_exempt varchar2(10) := p_ss_tax_exempt;
158   l_wage_exempt   varchar2(10) := p_wage_exempt;
159   --
160 
161   --
162   cursor c_st_jd is
163     select psr.jurisdiction_code
164     from   pay_state_rules psr, pay_us_states pus
165     where  pus.state_code = p_sui_state_code
166     and    pus.state_abbrev = psr.state_code;
167   --
168   --
169 begin
170   --
171   hr_utility.set_location('Entering:'|| l_proc, 10);
172   --
173   -- Issue a savepoint
174   --
175   savepoint update_fed_tax_rule;
176   --
177   --
178   l_effective_date := trunc(p_effective_date);
179   l_excessive_wa_reject_date := trunc(p_excessive_wa_reject_date);
180   --
181   hr_utility.set_location(l_proc, 20);
182   --
183   -- Process Logic
184   --
185   l_object_version_number := p_object_version_number;
186   --
187   -- First check if geocode has been installed or not. If no geocodes
188   -- installed then return because there is nothing to be done by this
189   -- procedure
190   --
191   -- Changed chk_geocodes_installed to hr_general.chk_maintain_tax_records
192   -- to determine if we need to maintain tax records.
193   --
194   IF  hr_general.chk_maintain_tax_records = 'N' Then
195        return;
196   end if;
197   --
198   -- If p_sui_state_code is set to a system value, set the
199   -- l_sui_jurisdiction_code as well.  If p_sui_state_code is being
200   -- updated, derive l_jurisdiction_code.
201   --
202   If p_sui_state_code = hr_api.g_varchar2 then
203     l_sui_jurisdiction_code := hr_api.g_varchar2;
204   Else
205     Open c_st_jd;
206     Fetch c_st_jd into l_sui_jurisdiction_code;
207     If c_st_jd%notfound then
208       Close c_st_jd;
209       --
210       -- The sui_jurisdiction_code for this state code cannot be
211       --  found therefore we must error
212       --
213       hr_utility.set_message(801, 'HR_7952_ADDR_NO_STATE_CODE');
214       hr_utility.raise_error;
215     End If;
216     Close c_st_jd;
217   End If;
218   --
219 --  begin
220     --
221     -- Start of API User Hook for the before hook of update_fed_tax_rule
222     --
223 --    pay_fed_bk2.update_fed_tax_rule_b
224 --      (
225 --       p_emp_fed_tax_rule_id            =>  p_emp_fed_tax_rule_id
226 --      ,p_sui_state_code                 =>  p_sui_state_code
227 --      ,p_sui_jurisdiction_code          =>  l_sui_jurisdiction_code
228 --      ,p_additional_wa_amount           =>  p_additional_wa_amount
229 --      ,p_filing_status_code             =>  p_filing_status_code
230 --      ,p_fit_override_amount            =>  p_fit_override_amount
231 --      ,p_fit_override_rate              =>  p_fit_override_rate
232 --      ,p_withholding_allowances         =>  p_withholding_allowances
233 --      ,p_cumulative_taxation            =>  p_cumulative_taxation
234 --      ,p_eic_filing_status_code         =>  p_eic_filing_status_code
235 --      ,p_fit_additional_tax             =>  p_fit_additional_tax
236 --      ,p_fit_exempt                     =>  p_fit_exempt
237 --      ,p_futa_tax_exempt                =>  p_futa_tax_exempt
238 --      ,p_medicare_tax_exempt            =>  p_medicare_tax_exempt
239 --      ,p_ss_tax_exempt                  =>  p_ss_tax_exempt
240 --      ,p_wage_exempt                    =>  p_wage_exempt
241 --      ,p_statutory_employee             =>  p_statutory_employee
242 --      ,p_w2_filed_year                  =>  p_w2_filed_year
243 --      ,p_supp_tax_override_rate         =>  p_supp_tax_override_rate
244 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
245 --      ,p_object_version_number          =>  l_object_version_number
246 --      );
247 --  exception
248 --    when hr_api.cannot_find_prog_unit then
249 --      hr_api.cannot_find_prog_unit_error
250 --        (p_module_name => 'update_fed_tax_rule'
251 --        ,p_hook_type   => 'BP'
252 --        );
253     --
254     -- End of API User Hook for the before hook of update_fed_tax_rule
255     --
256 --  end;
257   --
258   --
259   pay_fed_upd.upd
260     (
261      p_emp_fed_tax_rule_id           => p_emp_fed_tax_rule_id
262     ,p_effective_start_date          => l_effective_start_date
263     ,p_effective_end_date            => l_effective_end_date
264     ,p_sui_state_code                => p_sui_state_code
265     ,p_sui_jurisdiction_code         => l_sui_jurisdiction_code
266     ,p_additional_wa_amount          => p_additional_wa_amount
267     ,p_filing_status_code            => p_filing_status_code
268     ,p_fit_override_amount           => p_fit_override_amount
269     ,p_fit_override_rate             => p_fit_override_rate
270     ,p_withholding_allowances        => p_withholding_allowances
271     ,p_cumulative_taxation           => p_cumulative_taxation
272     ,p_eic_filing_status_code        => p_eic_filing_status_code
273     ,p_fit_additional_tax            => p_fit_additional_tax
274     ,p_fit_exempt                    => l_fit_exempt		 -- Bug3433911
275     ,p_futa_tax_exempt               => l_futa_tax_exempt	 -- Bug3433911
276     ,p_medicare_tax_exempt           => l_medicare_tax_exempt	 -- Bug3433911
277     ,p_ss_tax_exempt                 => l_ss_tax_exempt		 -- Bug3433911
278     ,p_wage_exempt                   => l_wage_exempt		 -- Bug3433911
279     ,p_statutory_employee            => p_statutory_employee
280     ,p_w2_filed_year                 => p_w2_filed_year
281     ,p_supp_tax_override_rate        => p_supp_tax_override_rate
282     ,p_excessive_wa_reject_date      => l_excessive_wa_reject_date
283     ,p_object_version_number         => l_object_version_number
284     ,p_effective_date                => l_effective_date
285     ,p_datetrack_mode                => p_datetrack_update_mode
286     ,p_attribute_category            => p_attribute_category
287     ,p_attribute1                    => p_attribute1
288     ,p_attribute2                    => p_attribute2
289     ,p_attribute3                    => p_attribute3
290     ,p_attribute4                    => p_attribute4
291     ,p_attribute5                    => p_attribute5
292     ,p_attribute6                    => p_attribute6
293     ,p_attribute7                    => p_attribute7
294     ,p_attribute8                    => p_attribute8
295     ,p_attribute9                    => p_attribute9
296     ,p_attribute10                   => p_attribute10
297     ,p_attribute11                   => p_attribute11
298     ,p_attribute12                   => p_attribute12
299     ,p_attribute13                   => p_attribute13
300     ,p_attribute14                   => p_attribute14
301     ,p_attribute15                   => p_attribute15
302     ,p_attribute16                   => p_attribute16
303     ,p_attribute17                   => p_attribute17
304     ,p_attribute18                   => p_attribute18
305     ,p_attribute19                   => p_attribute19
306     ,p_attribute20                   => p_attribute20
307     ,p_attribute21                   => p_attribute21
308     ,p_attribute22                   => p_attribute22
309     ,p_attribute23                   => p_attribute23
310     ,p_attribute24                   => p_attribute24
311     ,p_attribute25                   => p_attribute25
312     ,p_attribute26                   => p_attribute26
313     ,p_attribute27                   => p_attribute27
314     ,p_attribute28                   => p_attribute28
315     ,p_attribute29                   => p_attribute29
316     ,p_attribute30                   => p_attribute30
317     ,p_fed_information_category            => p_fed_information_category
318     ,p_fed_information1                    => p_fed_information1
319     ,p_fed_information2                    => p_fed_information2
320     ,p_fed_information3                    => p_fed_information3
321     ,p_fed_information4                    => p_fed_information4
322     ,p_fed_information5                    => p_fed_information5
323     ,p_fed_information6                    => p_fed_information6
324     ,p_fed_information7                    => p_fed_information7
325     ,p_fed_information8                    => p_fed_information8
326     ,p_fed_information9                    => p_fed_information9
327     ,p_fed_information10                   => p_fed_information10
328     ,p_fed_information11                   => p_fed_information11
329     ,p_fed_information12                   => p_fed_information12
330     ,p_fed_information13                   => p_fed_information13
331     ,p_fed_information14                   => p_fed_information14
332     ,p_fed_information15                   => p_fed_information15
333     ,p_fed_information16                   => p_fed_information16
334     ,p_fed_information17                   => p_fed_information17
335     ,p_fed_information18                   => p_fed_information18
336     ,p_fed_information19                   => p_fed_information19
337     ,p_fed_information20                   => p_fed_information20
338     ,p_fed_information21                   => p_fed_information21
339     ,p_fed_information22                   => p_fed_information22
340     ,p_fed_information23                   => p_fed_information23
341     ,p_fed_information24                   => p_fed_information24
342     ,p_fed_information25                   => p_fed_information25
343     ,p_fed_information26                   => p_fed_information26
344     ,p_fed_information27                   => p_fed_information27
345     ,p_fed_information28                   => p_fed_information28
346     ,p_fed_information29                   => p_fed_information29
347     ,p_fed_information30                   => p_fed_information30
348     );
349   --
350   --
351   pay_us_tax_internal.maintain_wc(
352        p_emp_fed_tax_rule_id    =>  p_emp_fed_tax_rule_id
353       ,p_effective_start_date   =>  l_effective_start_date
354       ,p_effective_end_date     =>  l_effective_end_date
355       ,p_effective_date         =>  l_effective_date
356       ,p_datetrack_mode         =>  p_datetrack_update_mode
357       );
358   --
359   --
360 --  begin
361     --
362     -- Start of API User Hook for the after hook of update_fed_tax_rule
363     --
364 --    pay_fed_bk2.update_fed_tax_rule_a
365 --      (
366 --       p_emp_fed_tax_rule_id            =>  p_emp_fed_tax_rule_id
367 --      ,p_effective_start_date           =>  l_effective_start_date
368 --      ,p_effective_end_date             =>  l_effective_end_date
369 --      ,p_sui_state_code                 =>  p_sui_state_code
370 --      ,p_sui_jurisdiction_code          =>  l_sui_jurisdiction_code
371 --      ,p_additional_wa_amount           =>  p_additional_wa_amount
372 --      ,p_filing_status_code             =>  p_filing_status_code
373 --      ,p_fit_override_amount            =>  p_fit_override_amount
374 --      ,p_fit_override_rate              =>  p_fit_override_rate
375 --      ,p_withholding_allowances         =>  p_withholding_allowances
376 --      ,p_cumulative_taxation            =>  p_cumulative_taxation
377 --      ,p_eic_filing_status_code         =>  p_eic_filing_status_code
378 --      ,p_fit_additional_tax             =>  p_fit_additional_tax
379 --      ,p_fit_exempt                     =>  p_fit_exempt
380 --      ,p_futa_tax_exempt                =>  p_futa_tax_exempt
381 --      ,p_medicare_tax_exempt            =>  p_medicare_tax_exempt
382 --      ,p_ss_tax_exempt                  =>  p_ss_tax_exempt
383 --      ,p_wage_exempt                    =>  p_wage_exempt
384 --      ,p_statutory_employee             =>  p_statutory_employee
385 --      ,p_w2_filed_year                  =>  p_w2_filed_year
386 --      ,p_supp_tax_override_rate         =>  p_supp_tax_override_rate
387 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
388 --      ,p_object_version_number          =>  l_object_version_number
389 --      );
390 --  exception
391 --    when hr_api.cannot_find_prog_unit then
392 --      hr_api.cannot_find_prog_unit_error
393 --        (p_module_name => 'update_fed_tax_rule'
394 --        ,p_hook_type   => 'AP'
395 --        );
396     --
397     -- End of API User Hook for the after hook of update_fed_tax_rule
398     --
399 --  end;
400   --
401   hr_utility.set_location(l_proc, 60);
402   --
403   -- When in validation only mode raise the Validate_Enabled exception
404   --
405   if p_validate then
406     raise hr_api.validate_enabled;
407   end if;
408   --
409   -- Set all output arguments
410   --
411   p_object_version_number := l_object_version_number;
412   p_effective_start_date := l_effective_start_date;
413   p_effective_end_date := l_effective_end_date;
414   --
415   hr_utility.set_location(' Leaving:'||l_proc, 70);
419   when hr_api.validate_enabled then
416   --
417 exception
418   --
420     --
421     -- As the Validate_Enabled exception has been raised
422     -- we must rollback to the savepoint
423     --
424     ROLLBACK TO update_fed_tax_rule;
425     --
426     -- Only set output warning arguments
427     -- (Any key or derived arguments must be set to null
428     -- when validation only mode is being used.)
429     --
430     p_effective_start_date := null;
431     p_effective_end_date := null;
432     hr_utility.set_location(' Leaving:'||l_proc, 90);
433     --
434   when others then
435     --
436     -- A validation or unexpected error has occurred
437     --
438     ROLLBACK TO update_fed_tax_rule;
439     raise;
440     --
441 end update_fed_tax_rule;
442 
443 --
444 end pay_federal_tax_rule_api;