DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_STATE_TAX_RULE_API

Source


1 PACKAGE BODY pay_state_tax_rule_api AS
2 /* $Header: pystaapi.pkb 120.6.12010000.1 2008/07/27 23:43:14 appldev ship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  pay_sta_api.';
7 --
8 --
9 -- ----------------------------------------------------------------------------
10 -- |-------------------------------< lck >------------------------------------|
11 -- ----------------------------------------------------------------------------
12 --
13 procedure lck
14   (
15    p_emp_state_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||'lck';
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_sta_shd.lck
35     (
36       p_emp_state_tax_rule_id      => p_emp_state_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 -- |------------------------< create_state_tax_rule >------------------------|
50 -- ----------------------------------------------------------------------------
51 --
52 procedure create_state_tax_rule
53 (
54    p_validate                       IN      boolean   default false
55   ,p_effective_date                 IN      date
56   ,p_default_flag                   IN      varchar2  default null
57   ,p_assignment_id                  IN      number
58   ,p_state_code                     IN      varchar2
59   ,p_additional_wa_amount           IN      number    default null
60   ,p_filing_status_code             IN      varchar2  default null
61   ,p_remainder_percent              IN      number    default null
62   ,p_secondary_wa                   IN      number    default null
63   ,p_sit_additional_tax             IN      number    default null
64   ,p_sit_override_amount            IN      number    default null
65   ,p_sit_override_rate              IN      number    default null
66   ,p_withholding_allowances         IN      number    default null
67   ,p_excessive_wa_reject_date       IN      date      default null
68   ,p_sdi_exempt                     IN      varchar2  default null
69   ,p_sit_exempt                     IN      varchar2  default null
70   ,p_sit_optional_calc_ind          IN      varchar2  default null
71   ,p_state_non_resident_cert        IN      varchar2  default null
72   ,p_sui_exempt                     IN      varchar2  default null
73   ,p_wc_exempt                      IN      varchar2  default null
74   ,p_wage_exempt                    IN      varchar2  default null
75   ,p_sui_wage_base_override_amoun   IN      number    default null
76   ,p_supp_tax_override_rate         IN      number    default null
77   ,p_attribute_category             in     varchar2  default null
78   ,p_attribute1                     in     varchar2  default null
79   ,p_attribute2                     in     varchar2  default null
80   ,p_attribute3                     in     varchar2  default null
81   ,p_attribute4                     in     varchar2  default null
82   ,p_attribute5                     in     varchar2  default null
83   ,p_attribute6                     in     varchar2  default null
84   ,p_attribute7                     in     varchar2  default null
85   ,p_attribute8                     in     varchar2  default null
86   ,p_attribute9                     in     varchar2  default null
87   ,p_attribute10                    in     varchar2  default null
88   ,p_attribute11                    in     varchar2  default null
89   ,p_attribute12                    in     varchar2  default null
90   ,p_attribute13                    in     varchar2  default null
91   ,p_attribute14                    in     varchar2  default null
92   ,p_attribute15                    in     varchar2  default null
93   ,p_attribute16                    in     varchar2  default null
94   ,p_attribute17                    in     varchar2  default null
95   ,p_attribute18                    in     varchar2  default null
96   ,p_attribute19                    in     varchar2  default null
97   ,p_attribute20                    in     varchar2  default null
98   ,p_attribute21                    in     varchar2  default null
99   ,p_attribute22                    in     varchar2  default null
100   ,p_attribute23                    in     varchar2  default null
101   ,p_attribute24                    in     varchar2  default null
102   ,p_attribute25                    in     varchar2  default null
103   ,p_attribute26                    in     varchar2  default null
104   ,p_attribute27                    in     varchar2  default null
105   ,p_attribute28                    in     varchar2  default null
106   ,p_attribute29                    in     varchar2  default null
107   ,p_attribute30                    in     varchar2  default null
108   ,p_sta_information_category       in     varchar2  default null
109   ,p_sta_information1               in     varchar2  default null
110   ,p_sta_information2               in     varchar2  default null
111   ,p_sta_information3               in     varchar2  default null
112   ,p_sta_information4               in     varchar2  default null
113   ,p_sta_information5               in     varchar2  default null
114   ,p_sta_information6               in     varchar2  default null
115   ,p_sta_information7               in     varchar2  default null
116   ,p_sta_information8               in     varchar2  default null
117   ,p_sta_information9               in     varchar2  default null
118   ,p_sta_information10              in     varchar2  default null
119   ,p_sta_information11              in     varchar2  default null
120   ,p_sta_information12              in     varchar2  default null
121   ,p_sta_information13              in     varchar2  default null
122   ,p_sta_information14              in     varchar2  default null
123   ,p_sta_information15              in     varchar2  default null
124   ,p_sta_information16              in     varchar2  default null
125   ,p_sta_information17              in     varchar2  default null
126   ,p_sta_information18              in     varchar2  default null
127   ,p_sta_information19              in     varchar2  default null
128   ,p_sta_information20              in     varchar2  default null
129   ,p_sta_information21              in     varchar2  default null
130   ,p_sta_information22              in     varchar2  default null
131   ,p_sta_information23              in     varchar2  default null
132   ,p_sta_information24              in     varchar2  default null
133   ,p_sta_information25              in     varchar2  default null
134   ,p_sta_information26              in     varchar2  default null
135   ,p_sta_information27              in     varchar2  default null
136   ,p_sta_information28              in     varchar2  default null
137   ,p_sta_information29              in     varchar2  default null
138   ,p_sta_information30              in     varchar2  default null
139   ,p_emp_state_tax_rule_id             OUT  nocopy number
140   ,p_object_version_number             OUT  nocopy number
141   ,p_effective_start_date              OUT  nocopy date
142   ,p_effective_end_date                OUT  nocopy date
143  ) is
144   --
145   -- Declare cursors and local variables
146   --
147   l_emp_state_tax_rule_id            pay_us_emp_state_tax_rules_f.emp_state_tax_rule_id%TYPE;
148   l_object_version_number            pay_us_emp_state_tax_rules_f.object_version_number%TYPE;
149   l_jurisdiction_code                pay_us_emp_state_tax_rules_f.jurisdiction_code%TYPE;
150   l_business_group_id                pay_us_emp_state_tax_rules_f.business_group_id%TYPE;
151   l_additional_wa_amount             pay_us_emp_state_tax_rules_f.additional_wa_amount%TYPE;
152   l_filing_status_code               pay_us_emp_state_tax_rules_f.filing_status_code%TYPE;
153   l_remainder_percent                pay_us_emp_state_tax_rules_f.remainder_percent%TYPE;
154   l_secondary_wa                     pay_us_emp_state_tax_rules_f.secondary_wa%TYPE;
155   l_sit_additional_tax               pay_us_emp_state_tax_rules_f.sit_additional_tax%TYPE;
156   l_sit_override_amount              pay_us_emp_state_tax_rules_f.sit_override_amount%TYPE;
157   l_sit_override_rate                pay_us_emp_state_tax_rules_f.sit_override_rate%TYPE;
158   l_withholding_allowances           pay_us_emp_state_tax_rules_f.withholding_allowances%TYPE;
159   l_excessive_wa_reject_date         pay_us_emp_state_tax_rules_f.excessive_wa_reject_date%TYPE;
160   l_sdi_exempt                       pay_us_emp_state_tax_rules_f.sdi_exempt%TYPE;
161   l_sit_exempt                       pay_us_emp_state_tax_rules_f.sit_exempt%TYPE;
162   l_sit_optional_calc_ind            pay_us_emp_state_tax_rules_f.sit_optional_calc_ind%TYPE;
163   l_state_non_resident_cert          pay_us_emp_state_tax_rules_f.state_non_resident_cert%TYPE;
164   l_sui_exempt                       pay_us_emp_state_tax_rules_f.sui_exempt%TYPE;
165   l_wc_exempt                        pay_us_emp_state_tax_rules_f.wc_exempt%TYPE;
166   l_wage_exempt                      pay_us_emp_state_tax_rules_f.wage_exempt%TYPE;
167   l_sui_wage_base_override_amoun     pay_us_emp_state_tax_rules_f.sui_wage_base_override_amount%TYPE;
168   l_supp_tax_override_rate           pay_us_emp_state_tax_rules_f.supp_tax_override_rate%TYPE;
169   l_effective_start_date             pay_us_emp_state_tax_rules_f.effective_start_date%TYPE;
170   l_effective_end_date               pay_us_emp_state_tax_rules_f.effective_end_date%TYPE;
171   l_attribute_category               pay_us_emp_state_tax_rules_f.attribute_category%TYPE;
172   l_attribute1                       pay_us_emp_state_tax_rules_f.attribute1%TYPE;
173   l_attribute2                       pay_us_emp_state_tax_rules_f.attribute2%TYPE;
174   l_attribute3                       pay_us_emp_state_tax_rules_f.attribute3%TYPE;
175   l_attribute4                       pay_us_emp_state_tax_rules_f.attribute4%TYPE;
176   l_attribute5                       pay_us_emp_state_tax_rules_f.attribute5%TYPE;
177   l_attribute6                       pay_us_emp_state_tax_rules_f.attribute6%TYPE;
178   l_attribute7                       pay_us_emp_state_tax_rules_f.attribute7%TYPE;
179   l_attribute8                       pay_us_emp_state_tax_rules_f.attribute8%TYPE;
180   l_attribute9                       pay_us_emp_state_tax_rules_f.attribute9%TYPE;
181   l_attribute10                      pay_us_emp_state_tax_rules_f.attribute10%TYPE;
182   l_attribute11                      pay_us_emp_state_tax_rules_f.attribute11%TYPE;
183   l_attribute12                      pay_us_emp_state_tax_rules_f.attribute12%TYPE;
184   l_attribute13                      pay_us_emp_state_tax_rules_f.attribute13%TYPE;
185   l_attribute14                      pay_us_emp_state_tax_rules_f.attribute14%TYPE;
186   l_attribute15                      pay_us_emp_state_tax_rules_f.attribute15%TYPE;
187   l_attribute16                      pay_us_emp_state_tax_rules_f.attribute16%TYPE;
188   l_attribute17                      pay_us_emp_state_tax_rules_f.attribute17%TYPE;
189   l_attribute18                      pay_us_emp_state_tax_rules_f.attribute18%TYPE;
190   l_attribute19                      pay_us_emp_state_tax_rules_f.attribute19%TYPE;
191   l_attribute20                      pay_us_emp_state_tax_rules_f.attribute20%TYPE;
192   l_attribute21                      pay_us_emp_state_tax_rules_f.attribute21%TYPE;
193   l_attribute22                      pay_us_emp_state_tax_rules_f.attribute22%TYPE;
194   l_attribute23                      pay_us_emp_state_tax_rules_f.attribute23%TYPE;
195   l_attribute24                      pay_us_emp_state_tax_rules_f.attribute24%TYPE;
196   l_attribute25                      pay_us_emp_state_tax_rules_f.attribute25%TYPE;
197   l_attribute26                      pay_us_emp_state_tax_rules_f.attribute26%TYPE;
198   l_attribute27                      pay_us_emp_state_tax_rules_f.attribute27%TYPE;
199   l_attribute28                      pay_us_emp_state_tax_rules_f.attribute28%TYPE;
200   l_attribute29                      pay_us_emp_state_tax_rules_f.attribute29%TYPE;
201   l_attribute30                      pay_us_emp_state_tax_rules_f.attribute30%TYPE;
202   l_sta_information_category         pay_us_emp_state_tax_rules_f.sta_information_category%TYPE;
203   l_sta_information1                 pay_us_emp_state_tax_rules_f.sta_information1%TYPE;
204   l_sta_information2                 pay_us_emp_state_tax_rules_f.sta_information2%TYPE;
205   l_sta_information3                 pay_us_emp_state_tax_rules_f.sta_information3%TYPE;
206   l_sta_information4                 pay_us_emp_state_tax_rules_f.sta_information4%TYPE;
207   l_sta_information5                 pay_us_emp_state_tax_rules_f.sta_information5%TYPE;
208   l_sta_information6                 pay_us_emp_state_tax_rules_f.sta_information6%TYPE;
209   l_sta_information7                 pay_us_emp_state_tax_rules_f.sta_information7%TYPE;
210   l_sta_information8                 pay_us_emp_state_tax_rules_f.sta_information8%TYPE;
211   l_sta_information9                 pay_us_emp_state_tax_rules_f.sta_information9%TYPE;
212   l_sta_information10                pay_us_emp_state_tax_rules_f.sta_information10%TYPE;
213   l_sta_information11                pay_us_emp_state_tax_rules_f.sta_information11%TYPE;
214   l_sta_information12                pay_us_emp_state_tax_rules_f.sta_information12%TYPE;
215   l_sta_information13                pay_us_emp_state_tax_rules_f.sta_information13%TYPE;
216   l_sta_information14                pay_us_emp_state_tax_rules_f.sta_information14%TYPE;
217   l_sta_information15                pay_us_emp_state_tax_rules_f.sta_information15%TYPE;
218   l_sta_information16                pay_us_emp_state_tax_rules_f.sta_information16%TYPE;
219   l_sta_information17                pay_us_emp_state_tax_rules_f.sta_information17%TYPE;
220   l_sta_information18                pay_us_emp_state_tax_rules_f.sta_information18%TYPE;
221   l_sta_information19                pay_us_emp_state_tax_rules_f.sta_information19%TYPE;
222   l_sta_information20                pay_us_emp_state_tax_rules_f.sta_information20%TYPE;
223   l_sta_information21                pay_us_emp_state_tax_rules_f.sta_information21%TYPE;
224   l_sta_information22                pay_us_emp_state_tax_rules_f.sta_information22%TYPE;
225   l_sta_information23                pay_us_emp_state_tax_rules_f.sta_information23%TYPE;
226   l_sta_information24                pay_us_emp_state_tax_rules_f.sta_information24%TYPE;
227   l_sta_information25                pay_us_emp_state_tax_rules_f.sta_information25%TYPE;
228   l_sta_information26                pay_us_emp_state_tax_rules_f.sta_information26%TYPE;
229   l_sta_information27                pay_us_emp_state_tax_rules_f.sta_information27%TYPE;
230   l_sta_information28                pay_us_emp_state_tax_rules_f.sta_information28%TYPE;
231   l_sta_information29                pay_us_emp_state_tax_rules_f.sta_information29%TYPE;
232   l_sta_information30                pay_us_emp_state_tax_rules_f.sta_information30%TYPE;
233 
234 
235 
236   l_proc varchar2(72) := g_package||'create_state_tax_rule';
237   l_effective_date         date;
238   l_defaulting_date        pay_us_emp_state_tax_rules_f.effective_start_date%TYPE;
239   l_def_pref               varchar2(30);
240   l_dummy                  varchar2(5);
241   --
242   cursor csr_tax_defaulting_date is
243      select min(fed.effective_start_date)
244      from   pay_us_emp_fed_tax_rules_f fed
245      where  fed.assignment_id = p_assignment_id;
246   --
247   cursor csr_state_tax_rule is
248      select null
249      from   pay_us_emp_state_tax_rules_f sta
250      where  sta.assignment_id = p_assignment_id
251      and    sta.state_code = p_state_code;
252   --
253   cursor csr_bus_grp is
254      select asg.business_group_id
255      from   per_assignments_f asg
256      where  asg.assignment_id = p_assignment_id
257      and    l_effective_date between asg.effective_start_date
258             and asg.effective_end_date;
259   --
260   cursor csr_state_jd is
261      select psr.jurisdiction_code
262      from   pay_state_rules psr, pay_us_states pus
263      where  pus.state_code = p_state_code
264      and    pus.state_abbrev = psr.state_code;
265   --
266 /*  cursor csr_filing_status is
267      select hrl.lookup_code, peft.withholding_allowances
268      from   HR_LOOKUPS hrl
269      ,      PAY_US_EMP_FED_TAX_RULES_V peft
270      where  hrl.lookup_type    = 'US_FS_'||p_state_code
271      and    upper(hrl.meaning) = decode(
272             upper(substr(peft.filing_status,1,7)),
276      and    peft.assignment_id = p_assignment_id ;
273                          'MARRIED',
274                          'MARRIED',
275                          upper(peft.filing_status))
277 */
278 
279   cursor csr_filing_status is
280      select flv.lookup_code, peft.withholding_allowances
281      from   FND_LOOKUP_VALUES flv
282      ,      PAY_US_EMP_FED_TAX_RULES_V peft
283      where  flv.lookup_type    = 'US_FS_'||p_state_code
284      and    upper(flv.meaning) = decode(
285             upper(substr(peft.filing_status,1,7)),
286                          'MARRIED',
287                          'MARRIED',
288                          upper(peft.filing_status))
289      and    peft.assignment_id = p_assignment_id
290      and flv.language = 'US'
291      and flv.enabled_flag='Y';
292   --
293   cursor csr_fed_or_def is
294      select hoi.org_information12
295      from PAY_US_STATES pus,
296           HR_ORGANIZATION_INFORMATION hoi,
297           PER_ASSIGNMENTS_F paf,
298           HR_SOFT_CODING_KEYFLEX hsck
299      where paf.assignment_id = p_assignment_id
300        and paf.soft_coding_keyflex_id = hsck.soft_coding_keyflex_id
301        and hoi.organization_id = hsck.segment1
302        and hoi.org_information_context = 'State Tax Rules'
303        and hoi.org_information1 = pus.state_abbrev
304        and pus.state_code = p_state_code;
305   --
306   -- Process Logic
307   --
308 begin
309   --
310   hr_utility.set_location('Entering:'|| l_proc, 10);
311   --
312   -- Issue a savepoint
313   --
314   savepoint create_state_tax_rule;
315 
316   --
317   l_effective_date := trunc(p_effective_date);
318   --
319   hr_utility.set_location(l_proc, 20);
320   --
321   -- Validate the assignment_id passed in
322   --
323   open  csr_bus_grp;
324   fetch csr_bus_grp into l_business_group_id;
325   if csr_bus_grp%NOTFOUND then
326     close csr_bus_grp;
327     --
328     -- The assignment does not exist in PER_ASSIGNMENTS_F
329     --
330     hr_utility.set_message(801, 'HR_51253_PYP_ASS__NOT_VALID');
331     hr_utility.raise_error;
332   end if;
333   close csr_bus_grp;
334   --
335   -- Validation checks whether it is appropriate to run this process
336   --
337   open  csr_tax_defaulting_date;
338   fetch csr_tax_defaulting_date into l_defaulting_date;
339   close csr_tax_defaulting_date;
340   if l_defaulting_date is null then
341     --
342     -- No Federal tax rule exists for this assignment
343     --
344     hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
345     hr_utility.set_message_token('TABLE_NAME','PAY_US_EMP_FED_TAX_RULES_F');
346     hr_utility.raise_error;
347   end if;
348   --
349   --
350   open  csr_state_tax_rule;
351   fetch csr_state_tax_rule into l_dummy;
352   if csr_state_tax_rule%FOUND then
353     close csr_state_tax_rule;
354     --
355     -- This state tax rule already exists
356     --
357     hr_utility.set_message(801, 'HR_7719_TAX_ONE_RULE_ONLY');
358     hr_utility.raise_error;
359   end if;
360   close csr_state_tax_rule;
361   --
362   --
363   open  csr_state_jd;
364   fetch csr_state_jd into l_jurisdiction_code;
365   if csr_state_jd%NOTFOUND then
366     close csr_state_jd;
367     --
368     -- The jurisdiction_code for this state code cannot be found
369     --      (Invalid state code)
370     hr_utility.set_message(801, 'HR_7952_ADDR_NO_STATE_CODE');
371     hr_utility.raise_error;
372   end if;
373   close csr_state_jd;
374   --
375   if p_default_flag = 'Y' then
376   --
377     open  csr_fed_or_def;
378     --
379     fetch csr_fed_or_def into l_def_pref;
380     --
381     hr_utility.set_location(l_proc,30);
382     --
383     if csr_fed_or_def%NOTFOUND then
384       --
385       CLOSE csr_fed_or_def;
386         if p_state_code = '07' then
387             hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',41);
388             l_filing_status_code := '07';
389             l_withholding_allowances := 0;
390         elsif p_state_code = '22' then
391             hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',42);
392             l_filing_status_code := '04';
393             l_withholding_allowances := 0;
394         else
395 	    l_filing_status_code := '01';
396 	    l_withholding_allowances := 0;
397             hr_utility.set_location(l_proc,43);
398         end if;
399     elsif csr_fed_or_def%FOUND then
400       --
401       CLOSE csr_fed_or_def;
402       --
403       if l_def_pref = 'SINGLE_ZERO' or l_def_pref is null then
404         --
405         if p_state_code = '07' then
406             hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',51);
407             l_filing_status_code := '07';
408             l_withholding_allowances := 0;
409         elsif p_state_code = '22' then
410             hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',52);
411             l_filing_status_code := '04';
412             l_withholding_allowances := 0;
413         else
414             hr_utility.set_location(l_proc,53);
415             l_filing_status_code := '01';
416             l_withholding_allowances         := 0;
417 	end if;
418         --
419       elsif l_def_pref = 'FED_DEF' then
423         --
420         --
421         hr_utility.set_location(l_proc,60);
422         open  csr_filing_status;
424         fetch csr_filing_status into l_filing_status_code, l_withholding_allowances;
425         l_filing_status_code := lpad(l_filing_status_code,2,'0');
426         --
427         if csr_filing_status%NOTFOUND then
428           --
429 	    if p_state_code = '07' then
430                 hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',71);
431                 l_filing_status_code := '07';
432                 l_withholding_allowances := 0;
433             elsif p_state_code = '22' then
434                 hr_utility.set_location('pay_us_emp_dt_tax_rules.ins_def_state',72);
435                 l_filing_status_code := '04';
436                 l_withholding_allowances := 0;
437             else
438 	        hr_utility.set_location(l_proc,73);
439                 l_filing_status_code := '01';
440                 l_withholding_allowances := 0;
441 	    end if;
442           --
443         end if;
444         --
445         close csr_filing_status;
446         --
447       end if;  -- l_def_pref
448       --
449     end if;    -- csr_fed_or_def found?
450     --
451     l_additional_wa_amount         := 0;
452     l_remainder_percent            := 0;
453     l_secondary_wa                 := 0;
454     l_sit_additional_tax           := 0;
455     l_sit_override_amount          := 0;
456     l_sit_override_rate            := 0;
457     l_sdi_exempt                   := 'N';
458     l_sit_exempt                   := 'N';
459     l_sui_exempt                   := 'N';
460     l_wage_exempt                  := 'N';
461     l_supp_tax_override_rate       := 0;
462     l_attribute_category           := NULL;
463     l_attribute1                   := NULL;
464     l_attribute2                   := NULL;
465     l_attribute3                   := NULL;
466     l_attribute4                   := NULL;
467     l_attribute5                   := NULL;
468     l_attribute6                   := NULL;
469     l_attribute7                   := NULL;
470     l_attribute8                   := NULL;
471     l_attribute9                   := NULL;
472     l_attribute10                  := NULL;
473     l_attribute11                  := NULL;
474     l_attribute12                  := NULL;
475     l_attribute13                  := NULL;
476     l_attribute14                  := NULL;
477     l_attribute15                  := NULL;
478     l_attribute16                  := NULL;
479     l_attribute17                  := NULL;
480     l_attribute18                  := NULL;
481     l_attribute19                  := NULL;
482     l_attribute20                  := NULL;
483     l_attribute21                  := NULL;
484     l_attribute22                  := NULL;
485     l_attribute23                  := NULL;
486     l_attribute24                  := NULL;
487     l_attribute25                  := NULL;
488     l_attribute26                  := NULL;
489     l_attribute27                  := NULL;
490     l_attribute28                  := NULL;
491     l_attribute29                  := NULL;
492     l_attribute30                  := NULL;
493     l_sta_information_category     := NULL;
494     l_sta_information1             := NULL;
495     l_sta_information2             := NULL;
496     l_sta_information3             := NULL;
497     l_sta_information4             := NULL;
498     l_sta_information5             := NULL;
499     l_sta_information6             := NULL;
500     l_sta_information7             := NULL;
501     l_sta_information8             := NULL;
502     l_sta_information9             := NULL;
503     l_sta_information10            := NULL;
504     l_sta_information11            := NULL;
505     l_sta_information12            := NULL;
506     l_sta_information13            := NULL;
507     l_sta_information14            := NULL;
508     l_sta_information15            := NULL;
509     l_sta_information16            := NULL;
510     l_sta_information17            := NULL;
511     l_sta_information18            := NULL;
512     l_sta_information19            := NULL;
513     l_sta_information20            := NULL;
514     l_sta_information21            := NULL;
515     l_sta_information22            := NULL;
516     l_sta_information23            := NULL;
517     l_sta_information24            := NULL;
518     l_sta_information25            := NULL;
519     l_sta_information26            := NULL;
520     l_sta_information27            := NULL;
521     l_sta_information28            := NULL;
522     l_sta_information29            := NULL;
523     l_sta_information30            := NULL;
524     --
525   else
526     l_additional_wa_amount         := p_additional_wa_amount;
527     l_filing_status_code           := p_filing_status_code;
528     l_remainder_percent            := p_remainder_percent;
529     l_secondary_wa                 := p_secondary_wa;
530     l_sit_additional_tax           := p_sit_additional_tax;
531     l_sit_override_amount          := p_sit_override_amount;
532     l_sit_override_rate            := p_sit_override_rate;
533     l_withholding_allowances       := p_withholding_allowances;
534     l_excessive_wa_reject_date     := trunc(p_excessive_wa_reject_date);
535     l_sdi_exempt                   := p_sdi_exempt;
536     l_sit_exempt                   := p_sit_exempt;
537     l_sit_optional_calc_ind        := p_sit_optional_calc_ind;
538     l_state_non_resident_cert      := p_state_non_resident_cert;
542     l_sui_wage_base_override_amoun := p_sui_wage_base_override_amoun;
539     l_sui_exempt                   := p_sui_exempt;
540     l_wc_exempt                    := p_wc_exempt;
541     l_wage_exempt                  := p_wage_exempt;
543     l_supp_tax_override_rate       := p_supp_tax_override_rate;
544     l_attribute_category           := p_attribute_category;
545     l_attribute1                   := p_attribute1;
546     l_attribute2                   := p_attribute2;
547     l_attribute3                   := p_attribute3;
548     l_attribute4                   := p_attribute4;
549     l_attribute5                   := p_attribute5;
550     l_attribute6                   := p_attribute6;
551     l_attribute7                   := p_attribute7;
552     l_attribute8                   := p_attribute8;
553     l_attribute9                   := p_attribute9;
554     l_attribute10                  := p_attribute10;
555     l_attribute11                  := p_attribute11;
556     l_attribute12                  := p_attribute12;
557     l_attribute13                  := p_attribute13;
558     l_attribute14                  := p_attribute14;
559     l_attribute15                  := p_attribute15;
560     l_attribute16                  := p_attribute16;
561     l_attribute17                  := p_attribute17;
562     l_attribute18                  := p_attribute18;
563     l_attribute19                  := p_attribute19;
564     l_attribute20                  := p_attribute20;
565     l_attribute21                  := p_attribute21;
566     l_attribute22                  := p_attribute22;
567     l_attribute23                  := p_attribute23;
568     l_attribute24                  := p_attribute24;
569     l_attribute25                  := p_attribute25;
570     l_attribute26                  := p_attribute26;
571     l_attribute27                  := p_attribute27;
572     l_attribute28                  := p_attribute28;
573     l_attribute29                  := p_attribute29;
574     l_attribute30                  := p_attribute30;
575     l_sta_information_category     := p_sta_information_category;
576     l_sta_information1             := p_sta_information1;
577     l_sta_information2             := p_sta_information2;
578     l_sta_information3             := p_sta_information3;
579     l_sta_information4             := p_sta_information4;
580     l_sta_information5             := p_sta_information5;
581     l_sta_information6             := p_sta_information6;
582     l_sta_information7             := p_sta_information7;
583     l_sta_information8             := p_sta_information8;
584     l_sta_information9             := p_sta_information9;
585     l_sta_information10            := p_sta_information10;
586     l_sta_information11            := p_sta_information11;
587     l_sta_information12            := p_sta_information12;
588     l_sta_information13            := p_sta_information13;
589     l_sta_information14            := p_sta_information14;
590     l_sta_information15            := p_sta_information15;
591     l_sta_information16            := p_sta_information16;
592     l_sta_information17            := p_sta_information17;
593     l_sta_information18            := p_sta_information18;
594     l_sta_information19            := p_sta_information19;
595     l_sta_information20            := p_sta_information20;
596     l_sta_information21            := p_sta_information21;
597     l_sta_information22            := p_sta_information22;
598     l_sta_information23            := p_sta_information23;
599     l_sta_information24            := p_sta_information24;
600     l_sta_information25            := p_sta_information25;
601     l_sta_information26            := p_sta_information26;
602     l_sta_information27            := p_sta_information27;
603     l_sta_information28            := p_sta_information28;
604     l_sta_information29            := p_sta_information29;
605     l_sta_information30            := p_sta_information30;
606     --
607   end if;  -- p_default_flag
608   --
609 --  begin
610     --
611     -- Start of API User Hook for the before hook of create_state_tax_rule
612     --
613 --    pay_sta_bk1.create_state_tax_rule_b
614 --      (
615 --       p_assignment_id                  =>  p_assignment_id
616 --      ,p_state_code                     =>  p_state_code
617 --      ,p_jurisdiction_code              =>  l_jurisdiction_code
618 --      ,p_business_group_id              =>  l_business_group_id
619 --      ,p_additional_wa_amount           =>  l_additional_wa_amount
620 --      ,p_filing_status_code             =>  l_filing_status_code
621 --      ,p_remainder_percent              =>  l_remainder_percent
622 --      ,p_secondary_wa                   =>  l_secondary_wa
623 --      ,p_sit_additional_tax             =>  l_sit_additional_tax
624 --      ,p_sit_override_amount            =>  l_sit_override_amount
625 --      ,p_sit_override_rate              =>  l_sit_override_rate
626 --      ,p_withholding_allowances         =>  l_withholding_allowances
627 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
628 --      ,p_sdi_exempt                     =>  l_sdi_exempt
629 --      ,p_sit_exempt                     =>  l_sit_exempt
630 --      ,p_sit_optional_calc_ind          =>  l_sit_optional_calc_ind
631 --      ,p_state_non_resident_cert        =>  l_state_non_resident_cert
632 --      ,p_sui_exempt                     =>  l_sui_exempt
633 --      ,p_wc_exempt                      =>  l_wc_exempt
634 --      ,p_wage_exempt                    =>  l_wage_exempt
635 --      ,p_sui_wage_base_override_amoun   =>  l_sui_wage_base_override_amoun
636 --      ,p_supp_tax_override_rate         =>  l_supp_tax_override_rate
640 --      hr_api.cannot_find_prog_unit_error
637 --      );
638 --  exception
639 --    when hr_api.cannot_find_prog_unit then
641 --        (
642 --         p_module_name => 'create_state_tax_rule'
643 --        ,p_hook_type   => 'BP'
644 --        );
645     --
646     -- End of API User Hook for the before hook of create_state_tax_rule
647     --
648 --  end;
649   --
650   -- Insert State Tax record
651   --
652   hr_utility.set_location(l_proc,80);
653   --
654   --
655   pay_sta_ins.ins
656     (
657      p_emp_state_tax_rule_id         => l_emp_state_tax_rule_id
658     ,p_effective_start_date          => l_effective_start_date
659     ,p_effective_end_date            => l_effective_end_date
660     ,p_assignment_id                 => p_assignment_id
661     ,p_state_code                    => p_state_code
662     ,p_jurisdiction_code             => l_jurisdiction_code
663     ,p_business_group_id             => l_business_group_id
664     ,p_additional_wa_amount          => l_additional_wa_amount
665     ,p_filing_status_code            => l_filing_status_code
666     ,p_remainder_percent             => l_remainder_percent
667     ,p_secondary_wa                  => l_secondary_wa
668     ,p_sit_additional_tax            => l_sit_additional_tax
669     ,p_sit_override_amount           => l_sit_override_amount
670     ,p_sit_override_rate             => l_sit_override_rate
671     ,p_withholding_allowances        => l_withholding_allowances
672     ,p_excessive_wa_reject_date      => l_excessive_wa_reject_date
673     ,p_sdi_exempt                    => l_sdi_exempt
674     ,p_sit_exempt                    => l_sit_exempt
675     ,p_sit_optional_calc_ind         => l_sit_optional_calc_ind
676     ,p_state_non_resident_cert       => l_state_non_resident_cert
677     ,p_sui_exempt                    => l_sui_exempt
678     ,p_wc_exempt                     => l_wc_exempt
679     ,p_wage_exempt                   => l_wage_exempt
680     ,p_sui_wage_base_override_amoun  => l_sui_wage_base_override_amoun
681     ,p_supp_tax_override_rate        => l_supp_tax_override_rate
682     ,p_object_version_number         => l_object_version_number
683     ,p_effective_date                => l_defaulting_date
684     ,p_attribute_category            => l_attribute_category
685     ,p_attribute1                    => l_attribute1
686     ,p_attribute2                    => l_attribute2
687     ,p_attribute3                    => l_attribute3
688     ,p_attribute4                    => l_attribute4
689     ,p_attribute5                    => l_attribute5
690     ,p_attribute6                    => l_attribute6
691     ,p_attribute7                    => l_attribute7
692     ,p_attribute8                    => l_attribute8
693     ,p_attribute9                    => l_attribute9
694     ,p_attribute10                   => l_attribute10
695     ,p_attribute11                   => l_attribute11
696     ,p_attribute12                   => l_attribute12
697     ,p_attribute13                   => l_attribute13
698     ,p_attribute14                   => l_attribute14
699     ,p_attribute15                   => l_attribute15
700     ,p_attribute16                   => l_attribute16
701     ,p_attribute17                   => l_attribute17
702     ,p_attribute18                   => l_attribute18
703     ,p_attribute19                   => l_attribute19
704     ,p_attribute20                   => l_attribute20
705     ,p_attribute21                   => l_attribute21
706     ,p_attribute22                   => l_attribute22
707     ,p_attribute23                   => l_attribute23
708     ,p_attribute24                   => l_attribute24
709     ,p_attribute25                   => l_attribute25
710     ,p_attribute26                   => l_attribute26
711     ,p_attribute27                   => l_attribute27
712     ,p_attribute28                   => l_attribute28
713     ,p_attribute29                   => l_attribute29
714     ,p_attribute30                   => l_attribute30
715     ,p_sta_information_category      => l_sta_information_category
716     ,p_sta_information1                    => l_sta_information1
717     ,p_sta_information2                    => l_sta_information2
718     ,p_sta_information3                    => l_sta_information3
719     ,p_sta_information4                    => l_sta_information4
720     ,p_sta_information5                    => l_sta_information5
721     ,p_sta_information6                    => l_sta_information6
722     ,p_sta_information7                    => l_sta_information7
723     ,p_sta_information8                    => l_sta_information8
724     ,p_sta_information9                    => l_sta_information9
725     ,p_sta_information10                   => l_sta_information10
726     ,p_sta_information11                   => l_sta_information11
727     ,p_sta_information12                   => l_sta_information12
728     ,p_sta_information13                   => l_sta_information13
729     ,p_sta_information14                   => l_sta_information14
730     ,p_sta_information15                   => l_sta_information15
731     ,p_sta_information16                   => l_sta_information16
732     ,p_sta_information17                   => l_sta_information17
733     ,p_sta_information18                   => l_sta_information18
734     ,p_sta_information19                   => l_sta_information19
735     ,p_sta_information20                   => l_sta_information20
736     ,p_sta_information21                   => l_sta_information21
737     ,p_sta_information22                   => l_sta_information22
738     ,p_sta_information23                   => l_sta_information23
742     ,p_sta_information27                   => l_sta_information27
739     ,p_sta_information24                   => l_sta_information24
740     ,p_sta_information25                   => l_sta_information25
741     ,p_sta_information26                   => l_sta_information26
743     ,p_sta_information28                   => l_sta_information28
744     ,p_sta_information29                   => l_sta_information29
745     ,p_sta_information30                   => l_sta_information30
746     );
747   --
748   -- Create tax %age element entry for the state
749   --
750   pay_us_tax_internal.maintain_tax_percentage(
751                p_assignment_id        => p_assignment_id
752               ,p_effective_date       => l_effective_date
753               ,p_state_code           => p_state_code
754               ,p_county_code          => '000'
755               ,p_city_code            => '0000'
756               ,p_datetrack_mode       => 'INSERT'
757               ,p_effective_start_date => l_effective_start_date
758               ,p_effective_end_date   => l_effective_end_date
759               ,p_calculate_pct        => FALSE
760               );
761   --
762   -- Call create_asg_geo_row to create rows in the pay_us_asg_reporting
763   -- table if this is a new state
764   --
765   pay_asg_geo_pkg.create_asg_geo_row(
766                p_assignment_id => p_assignment_id
767               ,p_jurisdiction  => l_jurisdiction_code
768               );
769   --
770 --  begin
771     --
772     -- Start of API User Hook for the after hook of create_state_tax_rule
773     --
774 --    pay_sta_bk1.create_state_tax_rule_a
775 --      (
776 --       p_emp_state_tax_rule_id          =>  l_emp_state_tax_rule_id
777 --      ,p_effective_start_date           =>  l_effective_start_date
778 --      ,p_effective_end_date             =>  l_effective_end_date
779 --      ,p_assignment_id                  =>  p_assignment_id
780 --      ,p_state_code                     =>  p_state_code
781 --      ,p_jurisdiction_code              =>  l_jurisdiction_code
782 --      ,p_business_group_id              =>  l_business_group_id
783 --      ,p_additional_wa_amount           =>  l_additional_wa_amount
784 --      ,p_filing_status_code             =>  l_filing_status_code
785 --      ,p_remainder_percent              =>  l_remainder_percent
786 --      ,p_secondary_wa                   =>  l_secondary_wa
787 --      ,p_sit_additional_tax             =>  l_sit_additional_tax
788 --      ,p_sit_override_amount            =>  l_sit_override_amount
789 --      ,p_sit_override_rate              =>  l_sit_override_rate
790 --      ,p_withholding_allowances         =>  l_withholding_allowances
791 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
792 --      ,p_sdi_exempt                     =>  l_sdi_exempt
793 --      ,p_sit_exempt                     =>  l_sit_exempt
794 --      ,p_sit_optional_calc_ind          =>  l_sit_optional_calc_ind
795 --      ,p_state_non_resident_cert        =>  l_state_non_resident_cert
796 --      ,p_sui_exempt                     =>  l_sui_exempt
797 --      ,p_wc_exempt                      =>  l_wc_exempt
798 --      ,p_wage_exempt                    =>  l_wage_exempt
799 --      ,p_sui_wage_base_override_amoun   =>  l_sui_wage_base_override_amoun
800 --      ,p_supp_tax_override_rate         =>  l_supp_tax_override_rate
801 --      ,p_object_version_number          =>  l_object_version_number
802 --      );
803 --  exception
804 --    when hr_api.cannot_find_prog_unit then
805 --      hr_api.cannot_find_prog_unit_error
806 --        (p_module_name => 'create_state_tax_rule'
807 --        ,p_hook_type   => 'AP'
808 --        );
809     --
810     -- End of API User Hook for the after hook of create_state_tax_rule
811     --
812 --  end;
813   --
814   hr_utility.set_location(l_proc, 90);
815   --
816   -- When in validation only mode raise the Validate_Enabled exception
817   --
818   if p_validate then
819     raise hr_api.validate_enabled;
820   end if;
821   --
822   -- Set all output arguments
823   --
824   p_emp_state_tax_rule_id := l_emp_state_tax_rule_id;
825   p_effective_start_date := l_effective_start_date;
826   p_effective_end_date := l_effective_end_date;
827   p_object_version_number := l_object_version_number;
828   --
829   hr_utility.set_location(' Leaving:'||l_proc, 100);
830   --
831 exception
832   --
833   when hr_api.validate_enabled then
834     --
835     -- As the Validate_Enabled exception has been raised
836     -- we must rollback to the savepoint
837     --
838     ROLLBACK TO create_state_tax_rule;
839     --
840     -- Only set output warning arguments
841     -- (Any key or derived arguments must be set to null
842     -- when validation only mode is being used.)
843     --
844     p_emp_state_tax_rule_id := null;
845     p_effective_start_date := null;
846     p_effective_end_date := null;
847     p_object_version_number  := null;
848     hr_utility.set_location(' Leaving:'||l_proc, 120);
849     --
850   when others then
851     --
852     -- A validation or unexpected error has occurred
853     --
854     ROLLBACK TO create_state_tax_rule;
855     --
856     --  as per nocopy implementation guidelines re-set all
857     --  out parameters to null
858     --
859     p_emp_state_tax_rule_id := null;
860     p_object_version_number := null;
861     p_effective_start_date := null;
862     p_effective_end_date := null;
863     --
864     raise;
865     --
866 end create_state_tax_rule;
867 
868 -- ----------------------------------------------------------------------------
869 -- |------------------------< update_state_tax_rule >-------------------------|
870 -- ----------------------------------------------------------------------------
871 --
872 procedure update_state_tax_rule
873 (
874    p_validate                       in     boolean    default false
875   ,p_effective_date                 in     date
876   ,p_datetrack_update_mode          in     varchar2
877   ,p_emp_state_tax_rule_id          in     number
878   ,p_object_version_number          in out nocopy number
879   ,p_additional_wa_amount           in     number    default hr_api.g_number
880   ,p_filing_status_code             in     varchar2  default hr_api.g_varchar2
881   ,p_remainder_percent              in     number    default hr_api.g_number
882   ,p_secondary_wa                   in     number    default hr_api.g_number
883   ,p_sit_additional_tax             in     number    default hr_api.g_number
884   ,p_sit_override_amount            in     number    default hr_api.g_number
885   ,p_sit_override_rate              in     number    default hr_api.g_number
886   ,p_withholding_allowances         in     number    default hr_api.g_number
887   ,p_excessive_wa_reject_date       in     date      default hr_api.g_date
888   ,p_sdi_exempt                     in     varchar2  default hr_api.g_varchar2
889   ,p_sit_exempt                     in     varchar2  default hr_api.g_varchar2
890   ,p_sit_optional_calc_ind          in     varchar2  default hr_api.g_varchar2
891   ,p_state_non_resident_cert        in     varchar2  default hr_api.g_varchar2
892   ,p_sui_exempt                     in     varchar2  default hr_api.g_varchar2
893   ,p_wc_exempt                      in     varchar2  default hr_api.g_varchar2
894   ,p_wage_exempt                    in     varchar2  default hr_api.g_varchar2
895   ,p_sui_wage_base_override_amoun   in     number    default hr_api.g_number
896   ,p_supp_tax_override_rate         in     number    default hr_api.g_number
897   ,p_attribute_category             in     varchar2  default hr_api.g_varchar2
898   ,p_attribute1                     in     varchar2  default hr_api.g_varchar2
899   ,p_attribute2                     in     varchar2  default hr_api.g_varchar2
900   ,p_attribute3                     in     varchar2  default hr_api.g_varchar2
901   ,p_attribute4                     in     varchar2  default hr_api.g_varchar2
902   ,p_attribute5                     in     varchar2  default hr_api.g_varchar2
903   ,p_attribute6                     in     varchar2  default hr_api.g_varchar2
904   ,p_attribute7                     in     varchar2  default hr_api.g_varchar2
905   ,p_attribute8                     in     varchar2  default hr_api.g_varchar2
906   ,p_attribute9                     in     varchar2  default hr_api.g_varchar2
907   ,p_attribute10                    in     varchar2  default hr_api.g_varchar2
908   ,p_attribute11                    in     varchar2  default hr_api.g_varchar2
909   ,p_attribute12                    in     varchar2  default hr_api.g_varchar2
910   ,p_attribute13                    in     varchar2  default hr_api.g_varchar2
911   ,p_attribute14                    in     varchar2  default hr_api.g_varchar2
912   ,p_attribute15                    in     varchar2  default hr_api.g_varchar2
913   ,p_attribute16                    in     varchar2  default hr_api.g_varchar2
914   ,p_attribute17                    in     varchar2  default hr_api.g_varchar2
915   ,p_attribute18                    in     varchar2  default hr_api.g_varchar2
916   ,p_attribute19                    in     varchar2  default hr_api.g_varchar2
917   ,p_attribute20                    in     varchar2  default hr_api.g_varchar2
918   ,p_attribute21                    in     varchar2  default hr_api.g_varchar2
919   ,p_attribute22                    in     varchar2  default hr_api.g_varchar2
920   ,p_attribute23                    in     varchar2  default hr_api.g_varchar2
921   ,p_attribute24                    in     varchar2  default hr_api.g_varchar2
922   ,p_attribute25                    in     varchar2  default hr_api.g_varchar2
923   ,p_attribute26                    in     varchar2  default hr_api.g_varchar2
924   ,p_attribute27                    in     varchar2  default hr_api.g_varchar2
925   ,p_attribute28                    in     varchar2  default hr_api.g_varchar2
926   ,p_attribute29                    in     varchar2  default hr_api.g_varchar2
927   ,p_attribute30                    in     varchar2  default hr_api.g_varchar2
928   ,p_sta_information_category       in     varchar2  default hr_api.g_varchar2
929   ,p_sta_information1               in     varchar2  default hr_api.g_varchar2
930   ,p_sta_information2               in     varchar2  default hr_api.g_varchar2
931   ,p_sta_information3               in     varchar2  default hr_api.g_varchar2
932   ,p_sta_information4               in     varchar2  default hr_api.g_varchar2
933   ,p_sta_information5               in     varchar2  default hr_api.g_varchar2
934   ,p_sta_information6               in     varchar2  default hr_api.g_varchar2
935   ,p_sta_information7               in     varchar2  default hr_api.g_varchar2
936   ,p_sta_information8               in     varchar2  default hr_api.g_varchar2
937   ,p_sta_information9               in     varchar2  default hr_api.g_varchar2
938   ,p_sta_information10              in     varchar2  default hr_api.g_varchar2
939   ,p_sta_information11              in     varchar2  default hr_api.g_varchar2
940   ,p_sta_information12              in     varchar2  default hr_api.g_varchar2
941   ,p_sta_information13              in     varchar2  default hr_api.g_varchar2
942   ,p_sta_information14              in     varchar2  default hr_api.g_varchar2
943   ,p_sta_information15              in     varchar2  default hr_api.g_varchar2
944   ,p_sta_information16              in     varchar2  default hr_api.g_varchar2
945   ,p_sta_information17              in     varchar2  default hr_api.g_varchar2
946   ,p_sta_information18              in     varchar2  default hr_api.g_varchar2
947   ,p_sta_information19              in     varchar2  default hr_api.g_varchar2
948   ,p_sta_information20              in     varchar2  default hr_api.g_varchar2
949   ,p_sta_information21              in     varchar2  default hr_api.g_varchar2
950   ,p_sta_information22              in     varchar2  default hr_api.g_varchar2
951   ,p_sta_information23              in     varchar2  default hr_api.g_varchar2
952   ,p_sta_information24              in     varchar2  default hr_api.g_varchar2
953   ,p_sta_information25              in     varchar2  default hr_api.g_varchar2
954   ,p_sta_information26              in     varchar2  default hr_api.g_varchar2
955   ,p_sta_information27              in     varchar2  default hr_api.g_varchar2
956   ,p_sta_information28              in     varchar2  default hr_api.g_varchar2
957   ,p_sta_information29              in     varchar2  default hr_api.g_varchar2
958   ,p_sta_information30              in     varchar2  default hr_api.g_varchar2
959   ,p_effective_start_date              out nocopy date
960   ,p_effective_end_date                out nocopy date
961  ) is
962   --
963   -- Declare cursors and local variables
964   --
965   l_proc varchar2(72) := g_package||'update_state_tax_rule';
966   l_effective_date          date;
967   l_excessive_wa_reject_date date;
968   l_object_version_number   pay_us_emp_state_tax_rules_f.object_version_number%TYPE;
969   l_effective_start_date    pay_us_emp_state_tax_rules_f.effective_start_date%TYPE;
970   l_effective_end_date      pay_us_emp_state_tax_rules_f.effective_end_date%TYPE;
971   --
972 begin
973   --
974   hr_utility.set_location('Entering:'|| l_proc, 10);
975   --
976   -- Issue a savepoint
977   --
978   savepoint update_state_tax_rule;
979 
980   --
981   l_effective_date := trunc(p_effective_date);
982   l_excessive_wa_reject_date := trunc(p_excessive_wa_reject_date);
983   --
984   hr_utility.set_location(l_proc, 20);
985   --
986   -- Process Logic
987   --
988   l_object_version_number := p_object_version_number;
989   --
990   -- First check if geocode has been installed or not. If no geocodes
991   -- installed then return because there is nothing to be done by this
992   -- procedure
993   --
994   -- Change chk_geocodes_installed to  hr_general.chk_maintain_tax_records
995   -- to determine if we need to maintain tax records.
996   --
997   IF  hr_general.chk_maintain_tax_records = 'N' Then
998      return;
999   end if;
1000     --
1001 --  begin
1002     --
1003     -- Start of API User Hook for the before hook of update_state_tax_rule
1004     --
1005 --    pay_sta_bk2.update_state_tax_rule_b
1006 --      (
1007 --       p_emp_state_tax_rule_id          =>  p_emp_state_tax_rule_id
1008 --      ,p_assignment_id                  =>  p_assignment_id
1009 --      ,p_state_code                     =>  p_state_code
1010 --      ,p_jurisdiction_code              =>  p_jurisdiction_code
1011 --      ,p_business_group_id              =>  p_business_group_id
1012 --      ,p_additional_wa_amount           =>  p_additional_wa_amount
1013 --      ,p_filing_status_code             =>  p_filing_status_code
1014 --      ,p_remainder_percent              =>  p_remainder_percent
1015 --      ,p_secondary_wa                   =>  p_secondary_wa
1016 --      ,p_sit_additional_tax             =>  p_sit_additional_tax
1017 --      ,p_sit_override_amount            =>  p_sit_override_amount
1018 --      ,p_sit_override_rate              =>  p_sit_override_rate
1019 --      ,p_withholding_allowances         =>  p_withholding_allowances
1020 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
1021 --      ,p_sdi_exempt                     =>  p_sdi_exempt
1022 --      ,p_sit_exempt                     =>  p_sit_exempt
1023 --      ,p_sit_optional_calc_ind          =>  p_sit_optional_calc_ind
1024 --      ,p_state_non_resident_cert        =>  p_state_non_resident_cert
1025 --      ,p_sui_exempt                     =>  p_sui_exempt
1026 --      ,p_wc_exempt                      =>  p_wc_exempt
1027 --      ,p_wage_exempt                    =>  p_wage_exempt
1028 --      ,p_sui_wage_base_override_amoun   =>  p_sui_wage_base_override_amoun
1029 --      ,p_supp_tax_override_rate         =>  p_supp_tax_override_rate
1030 --      ,p_object_version_number          =>  p_object_version_number
1031 --      );
1032 --  exception
1033 --    when hr_api.cannot_find_prog_unit then
1034 --      hr_api.cannot_find_prog_unit_error
1035 --        (p_module_name => 'update_state_tax_rule'
1036 --        ,p_hook_type   => 'BP'
1037 --        );
1038     --
1039     -- End of API User Hook for the before hook of update_state_tax_rule
1040     --
1041 --  end;
1042   --
1043   --
1044   pay_sta_upd.upd
1045     (
1046      p_emp_state_tax_rule_id         => p_emp_state_tax_rule_id
1047     ,p_effective_start_date          => l_effective_start_date
1048     ,p_effective_end_date            => l_effective_end_date
1049     ,p_additional_wa_amount          => p_additional_wa_amount
1050     ,p_filing_status_code            => p_filing_status_code
1051     ,p_remainder_percent             => p_remainder_percent
1052     ,p_secondary_wa                  => p_secondary_wa
1053     ,p_sit_additional_tax            => p_sit_additional_tax
1054     ,p_sit_override_amount           => p_sit_override_amount
1055     ,p_sit_override_rate             => p_sit_override_rate
1056     ,p_withholding_allowances        => p_withholding_allowances
1057     ,p_excessive_wa_reject_date      => l_excessive_wa_reject_date
1058     ,p_sdi_exempt                    => p_sdi_exempt
1059     ,p_sit_exempt                    => p_sit_exempt
1060     ,p_sit_optional_calc_ind         => p_sit_optional_calc_ind
1061     ,p_state_non_resident_cert       => p_state_non_resident_cert
1062     ,p_sui_exempt                    => p_sui_exempt
1063     ,p_wc_exempt                     => p_wc_exempt
1064     ,p_wage_exempt                   => p_wage_exempt
1065     ,p_sui_wage_base_override_amoun  => p_sui_wage_base_override_amoun
1066     ,p_supp_tax_override_rate        => p_supp_tax_override_rate
1067     ,p_object_version_number         => p_object_version_number
1068     ,p_attribute_category            => p_attribute_category
1069     ,p_attribute1                    => p_attribute1
1070     ,p_attribute2                    => p_attribute2
1071     ,p_attribute3                    => p_attribute3
1072     ,p_attribute4                    => p_attribute4
1073     ,p_attribute5                    => p_attribute5
1074     ,p_attribute6                    => p_attribute6
1075     ,p_attribute7                    => p_attribute7
1076     ,p_attribute8                    => p_attribute8
1077     ,p_attribute9                    => p_attribute9
1078     ,p_attribute10                   => p_attribute10
1079     ,p_attribute11                   => p_attribute11
1080     ,p_attribute12                   => p_attribute12
1081     ,p_attribute13                   => p_attribute13
1082     ,p_attribute14                   => p_attribute14
1083     ,p_attribute15                   => p_attribute15
1084     ,p_attribute16                   => p_attribute16
1085     ,p_attribute17                   => p_attribute17
1086     ,p_attribute18                   => p_attribute18
1087     ,p_attribute19                   => p_attribute19
1088     ,p_attribute20                   => p_attribute20
1089     ,p_attribute21                   => p_attribute21
1090     ,p_attribute22                   => p_attribute22
1091     ,p_attribute23                   => p_attribute23
1092     ,p_attribute24                   => p_attribute24
1093     ,p_attribute25                   => p_attribute25
1094     ,p_attribute26                   => p_attribute26
1095     ,p_attribute27                   => p_attribute27
1096     ,p_attribute28                   => p_attribute28
1097     ,p_attribute29                   => p_attribute29
1098     ,p_attribute30                   => p_attribute30
1099     ,p_sta_information_category      => p_sta_information_category
1100     ,p_sta_information1                    => p_sta_information1
1101     ,p_sta_information2                    => p_sta_information2
1102     ,p_sta_information3                    => p_sta_information3
1103     ,p_sta_information4                    => p_sta_information4
1104     ,p_sta_information5                    => p_sta_information5
1105     ,p_sta_information6                    => p_sta_information6
1106     ,p_sta_information7                    => p_sta_information7
1107     ,p_sta_information8                    => p_sta_information8
1108     ,p_sta_information9                    => p_sta_information9
1109     ,p_sta_information10                   => p_sta_information10
1110     ,p_sta_information11                   => p_sta_information11
1111     ,p_sta_information12                   => p_sta_information12
1112     ,p_sta_information13                   => p_sta_information13
1113     ,p_sta_information14                   => p_sta_information14
1114     ,p_sta_information15                   => p_sta_information15
1115     ,p_sta_information16                   => p_sta_information16
1116     ,p_sta_information17                   => p_sta_information17
1117     ,p_sta_information18                   => p_sta_information18
1118     ,p_sta_information19                   => p_sta_information19
1119     ,p_sta_information20                   => p_sta_information20
1120     ,p_sta_information21                   => p_sta_information21
1121     ,p_sta_information22                   => p_sta_information22
1122     ,p_sta_information23                   => p_sta_information23
1123     ,p_sta_information24                   => p_sta_information24
1124     ,p_sta_information25                   => p_sta_information25
1125     ,p_sta_information26                   => p_sta_information26
1126     ,p_sta_information27                   => p_sta_information27
1127     ,p_sta_information28                   => p_sta_information28
1128     ,p_sta_information29                   => p_sta_information29
1129     ,p_sta_information30                   => p_sta_information30
1130     ,p_effective_date                => l_effective_date
1131     ,p_datetrack_mode                => p_datetrack_update_mode
1132     );
1133   --
1134   --
1135 --  begin
1136     --
1137     -- Start of API User Hook for the after hook of update_state_tax_rule
1138     --
1139 --    pay_sta_bk2.update_state_tax_rule_a
1140 --      (
1141 --       p_emp_state_tax_rule_id          =>  p_emp_state_tax_rule_id
1142 --      ,p_effective_start_date           =>  l_effective_start_date
1143 --      ,p_effective_end_date             =>  l_effective_end_date
1144 --      ,p_assignment_id                  =>  p_assignment_id
1145 --      ,p_state_code                     =>  p_state_code
1146 --      ,p_jurisdiction_code              =>  p_jurisdiction_code
1147 --      ,p_business_group_id              =>  p_business_group_id
1148 --      ,p_additional_wa_amount           =>  p_additional_wa_amount
1149 --      ,p_filing_status_code             =>  p_filing_status_code
1150 --      ,p_remainder_percent              =>  p_remainder_percent
1151 --      ,p_secondary_wa                   =>  p_secondary_wa
1152 --      ,p_sit_additional_tax             =>  p_sit_additional_tax
1153 --      ,p_sit_override_amount            =>  p_sit_override_amount
1154 --      ,p_sit_override_rate              =>  p_sit_override_rate
1155 --      ,p_withholding_allowances         =>  p_withholding_allowances
1156 --      ,p_excessive_wa_reject_date       =>  l_excessive_wa_reject_date
1157 --      ,p_sdi_exempt                     =>  p_sdi_exempt
1158 --      ,p_sit_exempt                     =>  p_sit_exempt
1159 --      ,p_sit_optional_calc_ind          =>  p_sit_optional_calc_ind
1160 --      ,p_state_non_resident_cert        =>  p_state_non_resident_cert
1161 --      ,p_sui_exempt                     =>  p_sui_exempt
1162 --      ,p_wc_exempt                      =>  p_wc_exempt
1163 --      ,p_wage_exempt                    =>  p_wage_exempt
1164 --      ,p_sui_wage_base_override_amoun   =>  p_sui_wage_base_override_amoun
1165 --      ,p_supp_tax_override_rate         =>  p_supp_tax_override_rate
1166 --      ,p_object_version_number          =>  p_object_version_number
1167 --      );
1168 --  exception
1169 --    when hr_api.cannot_find_prog_unit then
1170 --      hr_api.cannot_find_prog_unit_error
1171 --        (p_module_name => 'update_state_tax_rule'
1172 --        ,p_hook_type   => 'AP'
1173 --        );
1174     --
1175     -- End of API User Hook for the after hook of update_state_tax_rule
1176     --
1177 --  end;
1178   --
1179   --
1180   hr_utility.set_location(l_proc, 60);
1181   --
1182   -- When in validation only mode raise the Validate_Enabled exception
1183   --
1184   if p_validate then
1185     raise hr_api.validate_enabled;
1186   end if;
1187   --
1188   -- Set all output arguments
1189   --
1190   --  p_object_version_number := l_object_version_number;
1191   p_effective_start_date := l_effective_start_date;
1192   p_effective_end_date := l_effective_end_date;
1193   --
1194   hr_utility.set_location(' Leaving:'||l_proc, 70);
1195   --
1196 exception
1197   --
1198   when hr_api.validate_enabled then
1199     --
1200     -- As the Validate_Enabled exception has been raised
1201     -- we must rollback to the savepoint
1202     --
1203     ROLLBACK TO update_state_tax_rule;
1204     --
1205     -- Only set output warning arguments
1206     -- (Any key or derived arguments must be set to null
1207     -- when validation only mode is being used.)
1208     --
1209     p_object_version_number := l_object_version_number;
1210     p_effective_start_date := null;
1211     p_effective_end_date := null;
1212     hr_utility.set_location(' Leaving:'||l_proc, 90);
1213     --
1214   when others then
1215     --
1216     -- A validation or unexpected error has occurred
1217     --
1218     ROLLBACK TO update_state_tax_rule;
1219     --
1220     --  as per nocopy implementation guidelines re-set
1221     --  out parameters to null
1222     --
1223     p_object_version_number := l_object_version_number;
1224     p_effective_start_date := null;
1225     p_effective_end_date := null;
1226     --
1227     raise;
1228     --
1229 end update_state_tax_rule;
1230 
1231 --
1232 end pay_state_tax_rule_api;