[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
80 ,p_attribute3 in varchar2 default hr_api.g_varchar2
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
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
267 ,p_filing_status_code => p_filing_status_code
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
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);
416 --
417 exception
418 --
419 when hr_api.validate_enabled then
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;