21: l_effective_start_date date := p_effective_date;
22: l_effective_end_date date;
23: l_proc varchar2(72) := g_package||'correct_tax_percentage';
24: begin
25: hr_utility.set_location('Entering:'||l_proc, 10);
26: pay_us_tax_internal.maintain_tax_percentage
27: (
28: p_assignment_id => p_assignment_id,
29: p_effective_date => p_effective_date,
35: p_calculate_pct => TRUE,
36: p_effective_start_date => l_effective_start_date,
37: p_effective_end_date => l_effective_end_date
38: );
39: hr_utility.set_location('Leaving:'||l_proc, 20);
40: end correct_tax_percentage;
41: --
42: -- ----------------------------------------------------------------------------
43: -- |----------------------------< delete_tax_rule >---------------------------|
182: l_jurisdiction_rec gen_rec;
183: --
184: begin
185: --
186: hr_utility.set_location('Entering:'|| l_proc, 10);
187: --
188: -- Issue a savepoint
189: --
190: savepoint delete_tax_rule;
189: --
190: savepoint delete_tax_rule;
191:
192: --
193: hr_utility.set_location(l_proc, 15);
194: --
195: -- Process Logic
196: --
197: l_jurisdiction_code := p_state_code||'-'
198: ||p_county_code||'-'
199: ||p_city_code;
200: --
201: if p_city_code <> '0000' then
202: hr_utility.set_location(l_proc, 20);
203: l_delete_jurisdiction := CITY_JURISDICTION;
204: -- just delete the city.
205: elsif p_county_code <> '000' and p_city_code = '0000' then
206: hr_utility.set_location(l_proc, 25);
202: hr_utility.set_location(l_proc, 20);
203: l_delete_jurisdiction := CITY_JURISDICTION;
204: -- just delete the city.
205: elsif p_county_code <> '000' and p_city_code = '0000' then
206: hr_utility.set_location(l_proc, 25);
207: l_delete_jurisdiction := COUNTY_JURISDICTION;
208: -- find all of the cities, then delete them
209: for l_jurisdiction_rec in csr_city_parm_sel loop
210: delete_tax_rule
223: );
224: end loop;
225: elsif p_state_code is not null and p_county_code = '000'
226: and p_city_code = '0000' then
227: hr_utility.set_location(l_proc, 30);
228: l_delete_jurisdiction := STATE_JURISDICTION;
229: -- find all of the counties then delete them
230: for l_jurisdiction_rec in csr_county_parm_sel loop
231: delete_tax_rule
259: l_effective_end_date;
260: if get_city_tax_rule_id%FOUND then
261: close get_city_tax_rule_id;
262: --
263: hr_utility.set_location(l_proc, 40);
264: --
265: pay_cty_del.del
266: (
267: p_emp_city_tax_rule_id => l_emp_city_tax_rule_id
273: ,p_delete_routine => p_delete_routine
274: );
275: else
276: close get_city_tax_rule_id;
277: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
278: hr_utility.set_message_token('table', 'pay_us_emp_city_tax_rules_f');
279: hr_utility.set_message_token('step','45');
280: hr_utility.raise_error;
281: end if;
274: );
275: else
276: close get_city_tax_rule_id;
277: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
278: hr_utility.set_message_token('table', 'pay_us_emp_city_tax_rules_f');
279: hr_utility.set_message_token('step','45');
280: hr_utility.raise_error;
281: end if;
282: elsif l_delete_jurisdiction = COUNTY_JURISDICTION then
275: else
276: close get_city_tax_rule_id;
277: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
278: hr_utility.set_message_token('table', 'pay_us_emp_city_tax_rules_f');
279: hr_utility.set_message_token('step','45');
280: hr_utility.raise_error;
281: end if;
282: elsif l_delete_jurisdiction = COUNTY_JURISDICTION then
283: --
276: close get_city_tax_rule_id;
277: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
278: hr_utility.set_message_token('table', 'pay_us_emp_city_tax_rules_f');
279: hr_utility.set_message_token('step','45');
280: hr_utility.raise_error;
281: end if;
282: elsif l_delete_jurisdiction = COUNTY_JURISDICTION then
283: --
284: --
290: l_effective_end_date;
291: if get_county_tax_rule_id%FOUND then
292: close get_county_tax_rule_id;
293: --
294: hr_utility.set_location(l_proc, 50);
295: --
296: pay_cnt_del.del
297: (
298: p_emp_county_tax_rule_id => l_emp_county_tax_rule_id
304: ,p_delete_routine => p_delete_routine
305: );
306: else
307: close get_county_tax_rule_id;
308: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
309: hr_utility.set_message_token('table', 'pay_us_emp_county_tax_rules_f');
310: hr_utility.set_message_token('step','55');
311: hr_utility.raise_error;
312: end if;
305: );
306: else
307: close get_county_tax_rule_id;
308: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
309: hr_utility.set_message_token('table', 'pay_us_emp_county_tax_rules_f');
310: hr_utility.set_message_token('step','55');
311: hr_utility.raise_error;
312: end if;
313: elsif l_delete_jurisdiction = STATE_JURISDICTION then
306: else
307: close get_county_tax_rule_id;
308: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
309: hr_utility.set_message_token('table', 'pay_us_emp_county_tax_rules_f');
310: hr_utility.set_message_token('step','55');
311: hr_utility.raise_error;
312: end if;
313: elsif l_delete_jurisdiction = STATE_JURISDICTION then
314: --
307: close get_county_tax_rule_id;
308: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
309: hr_utility.set_message_token('table', 'pay_us_emp_county_tax_rules_f');
310: hr_utility.set_message_token('step','55');
311: hr_utility.raise_error;
312: end if;
313: elsif l_delete_jurisdiction = STATE_JURISDICTION then
314: --
315: --
321: l_effective_end_date;
322: if get_state_tax_rule_id%FOUND then
323: close get_state_tax_rule_id;
324: --
325: hr_utility.set_location(l_proc, 60);
326: --
327: pay_sta_del.del
328: (
329: p_emp_state_tax_rule_id => l_emp_state_tax_rule_id
335: ,p_delete_routine => p_delete_routine
336: );
337: else
338: close get_state_tax_rule_id;
339: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
340: hr_utility.set_message_token('table', 'pay_us_emp_state_tax_rules_f');
341: hr_utility.set_message_token('step','65');
342: hr_utility.raise_error;
343: end if;
336: );
337: else
338: close get_state_tax_rule_id;
339: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
340: hr_utility.set_message_token('table', 'pay_us_emp_state_tax_rules_f');
341: hr_utility.set_message_token('step','65');
342: hr_utility.raise_error;
343: end if;
344: end if;
337: else
338: close get_state_tax_rule_id;
339: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
340: hr_utility.set_message_token('table', 'pay_us_emp_state_tax_rules_f');
341: hr_utility.set_message_token('step','65');
342: hr_utility.raise_error;
343: end if;
344: end if;
345: --
338: close get_state_tax_rule_id;
339: hr_utility.set_message(801, 'HR_7182_DT_NO_MIN_MAX_ROWS');
340: hr_utility.set_message_token('table', 'pay_us_emp_state_tax_rules_f');
341: hr_utility.set_message_token('step','65');
342: hr_utility.raise_error;
343: end if;
344: end if;
345: --
346: if p_datetrack_mode = 'DELETE' then
352: fetch csr_chk_vertex_exist into l_vertex_exist;
353: t_effective_start_date := p_effective_date;
354: if csr_chk_vertex_exist%FOUND then
355: --
356: hr_utility.set_location(l_proc, 35);
357: --
358: pay_us_tax_internal.maintain_tax_percentage
359: (
360: p_assignment_id => p_assignment_id,
368: p_effective_end_date => l_effective_end_date
369: );
370: end if;
371: --
372: hr_utility.set_location(l_proc, 70);
373: --
374: -- When in validation only mode raise the Validate_Enabled exception
375: --
376: if p_validate then
376: if p_validate then
377: raise hr_api.validate_enabled;
378: end if;
379: --
380: hr_utility.set_location(' Leaving:'||l_proc, 80);
381: --
382: exception
383: --
384: when hr_api.validate_enabled then
500: c_state_rec c_state_tax_rows%ROWTYPE;
501:
502: BEGIN
503:
504: hr_utility.set_location('Entering :' || l_proc, 10);
505: -- set a savepoint before we do anything
506: SAVEPOINT submit_fed_w4;
507:
508: -- get the update method
521: open c_get_bg_id(p_person_id);
522: fetch c_get_bg_id into ln_business_group_id;
523: if c_get_bg_id%NOTFOUND then
524: close c_get_bg_id;
525: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
526: hr_utility.set_message_token('PROCEDURE',l_proc);
527: hr_utility.set_message_token('STEP','1');
528: hr_utility.raise_error;
529: end if;
522: fetch c_get_bg_id into ln_business_group_id;
523: if c_get_bg_id%NOTFOUND then
524: close c_get_bg_id;
525: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
526: hr_utility.set_message_token('PROCEDURE',l_proc);
527: hr_utility.set_message_token('STEP','1');
528: hr_utility.raise_error;
529: end if;
530: close c_get_bg_id;
523: if c_get_bg_id%NOTFOUND then
524: close c_get_bg_id;
525: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
526: hr_utility.set_message_token('PROCEDURE',l_proc);
527: hr_utility.set_message_token('STEP','1');
528: hr_utility.raise_error;
529: end if;
530: close c_get_bg_id;
531:
524: close c_get_bg_id;
525: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
526: hr_utility.set_message_token('PROCEDURE',l_proc);
527: hr_utility.set_message_token('STEP','1');
528: hr_utility.raise_error;
529: end if;
530: close c_get_bg_id;
531:
532: -- make sure we can update
534: p_effective_date => p_effective_date,
535: p_source_name => p_source_name
536: );
537: if lv_update_error_msg is not null then
538: hr_utility.set_message(801, lv_update_error_msg);
539: hr_utility.raise_error;
540: end if;
541: /*
542: begin
535: p_source_name => p_source_name
536: );
537: if lv_update_error_msg is not null then
538: hr_utility.set_message(801, lv_update_error_msg);
539: hr_utility.raise_error;
540: end if;
541: /*
542: begin
543: --
565: -- End of API User Hook for the before hook of create_state_tax_rule
566: --
567: end;
568: */
569: hr_utility.set_location(l_proc, 20);
570: -- start by putting a master w-4 transaction event which will be the
571: -- parent for the rest of these transactions
572: pay_aud_ins.ins(
573: p_effective_date => p_effective_date
598: ln_gre_id;
599:
600: if c_fed_tax_rows%NOTFOUND then
601: close c_fed_tax_rows;
602: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
603: hr_utility.set_message_token('PROCEDURE',l_proc);
604: hr_utility.set_message_token('STEP','2');
605: hr_utility.raise_error;
606: end if;
599:
600: if c_fed_tax_rows%NOTFOUND then
601: close c_fed_tax_rows;
602: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
603: hr_utility.set_message_token('PROCEDURE',l_proc);
604: hr_utility.set_message_token('STEP','2');
605: hr_utility.raise_error;
606: end if;
607:
600: if c_fed_tax_rows%NOTFOUND then
601: close c_fed_tax_rows;
602: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
603: hr_utility.set_message_token('PROCEDURE',l_proc);
604: hr_utility.set_message_token('STEP','2');
605: hr_utility.raise_error;
606: end if;
607:
608: hr_utility.set_location(l_proc, 30);
601: close c_fed_tax_rows;
602: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
603: hr_utility.set_message_token('PROCEDURE',l_proc);
604: hr_utility.set_message_token('STEP','2');
605: hr_utility.raise_error;
606: end if;
607:
608: hr_utility.set_location(l_proc, 30);
609: -- We loop on the cursor
604: hr_utility.set_message_token('STEP','2');
605: hr_utility.raise_error;
606: end if;
607:
608: hr_utility.set_location(l_proc, 30);
609: -- We loop on the cursor
610: WHILE c_fed_tax_rows%FOUND LOOP
611: -- We insert using datetrack mode of UPDATE
612: -- future dated records will cause an error
616: else
617: lv_datetrack_mode := 'UPDATE';
618: end if;
619:
620: hr_utility.trace('filing stat ' || ln_fed_tax_rule_id);
621: pay_federal_tax_rule_api.update_fed_tax_rule
622: (p_emp_fed_tax_rule_id => ln_fed_tax_rule_id
623: ,p_withholding_allowances => p_withholding_allowances
624: ,p_fit_additional_tax => p_fit_additional_tax
654:
655: -- as a sanity check we make sure that the dates are right
656: if (ld_start_date <> p_effective_date) or
657: (ld_end_date <> hr_api.g_eot) then
658: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
659: hr_utility.set_message_token('PROCEDURE',l_proc);
660: hr_utility.set_message_token('STEP','2');
661: hr_utility.raise_error;
662: end if;
655: -- as a sanity check we make sure that the dates are right
656: if (ld_start_date <> p_effective_date) or
657: (ld_end_date <> hr_api.g_eot) then
658: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
659: hr_utility.set_message_token('PROCEDURE',l_proc);
660: hr_utility.set_message_token('STEP','2');
661: hr_utility.raise_error;
662: end if;
663:
656: if (ld_start_date <> p_effective_date) or
657: (ld_end_date <> hr_api.g_eot) then
658: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
659: hr_utility.set_message_token('PROCEDURE',l_proc);
660: hr_utility.set_message_token('STEP','2');
661: hr_utility.raise_error;
662: end if;
663:
664: -- we fetch the next row
657: (ld_end_date <> hr_api.g_eot) then
658: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
659: hr_utility.set_message_token('PROCEDURE',l_proc);
660: hr_utility.set_message_token('STEP','2');
661: hr_utility.raise_error;
662: end if;
663:
664: -- we fetch the next row
665: FETCH c_fed_tax_rows INTO ln_fed_tax_rule_id,ln_ovn,ld_old_start_date,
669: -- next we update state tax records
670: -- we don't update the amount withheld, because it is probably of a different magnitude
671: -- then the state taxes.
672:
673: hr_utility.set_location(l_proc, 40);
674: fetch c_state_tax_rows into c_state_rec;
675:
676: WHILE c_state_tax_rows%FOUND LOOP
677: if c_state_rec.effective_start_date = p_effective_date then
759:
760: -- as a sanity check we make sure that the dates are right
761: if (ld_start_date <> p_effective_date) or
762: (ld_end_date <> hr_api.g_eot) then
763: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
764: hr_utility.set_message_token('PROCEDURE',l_proc);
765: hr_utility.set_message_token('STEP','3');
766: hr_utility.raise_error;
767: end if;
760: -- as a sanity check we make sure that the dates are right
761: if (ld_start_date <> p_effective_date) or
762: (ld_end_date <> hr_api.g_eot) then
763: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
764: hr_utility.set_message_token('PROCEDURE',l_proc);
765: hr_utility.set_message_token('STEP','3');
766: hr_utility.raise_error;
767: end if;
768:
761: if (ld_start_date <> p_effective_date) or
762: (ld_end_date <> hr_api.g_eot) then
763: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
764: hr_utility.set_message_token('PROCEDURE',l_proc);
765: hr_utility.set_message_token('STEP','3');
766: hr_utility.raise_error;
767: end if;
768:
769: -- fetch the next row
762: (ld_end_date <> hr_api.g_eot) then
763: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
764: hr_utility.set_message_token('PROCEDURE',l_proc);
765: hr_utility.set_message_token('STEP','3');
766: hr_utility.raise_error;
767: end if;
768:
769: -- fetch the next row
770: fetch c_state_tax_rows into c_state_rec;
772: end LOOP;
773:
774: -- Fire off the workflow to handle notifications
775:
776: hr_utility.set_location(l_proc, 50);
777:
778: pay_us_tax_wf.start_wf(p_transaction_id => ln_parent_audit_id
779: ,p_process => 'FED_W4_NOTIFICATION'
780: );
814:
815: -- Set the output variable
816: p_stat_trans_audit_id := ln_parent_audit_id;
817:
818: hr_utility.trace(' Leaving: ' || l_proc);
819: EXCEPTION
820: when hr_api.validate_enabled then
821: --
822: -- As the Validate_Enabled exception has been raised
964: curs_dummy VARCHAR2(1);
965: lv_update_method VARCHAR2(30);
966:
967: BEGIN
968: hr_utility.trace('Entering: ' || l_proc);
969:
970: -- NOTE: need to replace this call with a check of the bg org flex
971: lv_update_method := 'PRIMARY';
972:
970: -- NOTE: need to replace this call with a check of the bg org flex
971: lv_update_method := 'PRIMARY';
972:
973: -- check for update method set to NONE
974: hr_utility.trace(l_proc || ' - Testing W4_UPDATE_METHOD');
975:
976: if lv_update_method = 'PRIMARY' then
977: l_primary_only := 'Y';
978: elsif lv_update_method = 'ALL' then
977: l_primary_only := 'Y';
978: elsif lv_update_method = 'ALL' then
979: l_primary_only := 'N';
980: else -- update_method = NONE
981: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Method = None');
982: return 'PAY_US_OTF_NO_UPDATE_ALLOWED';
983: end if;
984:
985: -- we make sure tax records have been defaulted by the effective date
982: return 'PAY_US_OTF_NO_UPDATE_ALLOWED';
983: end if;
984:
985: -- we make sure tax records have been defaulted by the effective date
986: hr_utility.trace(l_proc || ' - Testing DEFAULT_TAX_RECORDS_CREATED');
987: open c_tax_defaulting;
988: fetch c_tax_defaulting into curs_dummy;
989:
990: if c_tax_defaulting%NOTFOUND then
987: open c_tax_defaulting;
988: fetch c_tax_defaulting into curs_dummy;
989:
990: if c_tax_defaulting%NOTFOUND then
991: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Defaulting has not taken place');
992: close c_tax_defaulting;
993: return 'PAY_US_OTF_NO_TAX_DEFAULTING';
994: end if;
995:
995:
996: close c_tax_defaulting;
997:
998: -- check for primary assignment being a retiree assignment
999: hr_utility.trace(l_proc || ' - Testing PRIMARY_ASG = RETIREE ASG');
1000: open c_primary_retiree_asg;
1001: fetch c_primary_retiree_asg into curs_dummy;
1002:
1003: if c_primary_retiree_asg%FOUND then
1000: open c_primary_retiree_asg;
1001: fetch c_primary_retiree_asg into curs_dummy;
1002:
1003: if c_primary_retiree_asg%FOUND then
1004: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Primary Assignment is a Retiree');
1005: close c_primary_retiree_asg;
1006: return 'PAY_US_OTF_RETIREE_PRIMARY_ASG';
1007: end if;
1008: close c_primary_retiree_asg;
1013: -- check for excessive wa reject date or override amounts
1014: -- Note: we don't actually check the date of the reject, just
1015: -- it's existence shuts the employee out
1016:
1017: hr_utility.trace(l_proc || ' - Testing FED_EXCESSIVE_WA_REJECT_DATE/OVERRIDES');
1018: open c_excess_over_fed;
1019: fetch c_excess_over_fed into curs_dummy;
1020:
1021: if c_excess_over_fed%FOUND then
1018: open c_excess_over_fed;
1019: fetch c_excess_over_fed into curs_dummy;
1020:
1021: if c_excess_over_fed%FOUND then
1022: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Fed Reject Date or Overrides');
1023: close c_excess_over_fed;
1024: return 'PAY_US_OTF_REJECT_DATE_OR_OVER';
1025: end if;
1026:
1025: end if;
1026:
1027: close c_excess_over_fed;
1028:
1029: hr_utility.trace(l_proc || ' - Testing STATE_EXCESSIVE_WA_REJECT_DATE/OVERRIDES');
1030: open c_excess_over_state_for_fed;
1031: fetch c_excess_over_state_for_fed into curs_dummy;
1032:
1033: if c_excess_over_state_for_fed%FOUND then
1030: open c_excess_over_state_for_fed;
1031: fetch c_excess_over_state_for_fed into curs_dummy;
1032:
1033: if c_excess_over_state_for_fed%FOUND then
1034: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - State Reject Date or Overrides');
1035: close c_excess_over_state_for_fed;
1036: return 'PAY_US_OTF_REJECT_DATE_OR_OVER';
1037: end if;
1038: close c_excess_over_state_for_fed;
1038: close c_excess_over_state_for_fed;
1039:
1040: -- check for any future dated changes in non-retiree asgs for both state and fed
1041:
1042: hr_utility.trace(l_proc || ' - Testing FED_FUTURE_DATED_CHANGES');
1043: open c_future_fed_recs;
1044: fetch c_future_fed_recs into curs_dummy;
1045: if c_future_fed_recs%FOUND then
1046: close c_future_fed_recs;
1043: open c_future_fed_recs;
1044: fetch c_future_fed_recs into curs_dummy;
1045: if c_future_fed_recs%FOUND then
1046: close c_future_fed_recs;
1047: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Future Dated Federal Tax Records');
1048: return 'PAY_US_OTF_FUTURE_RECORDS';
1049: end if;
1050: close c_future_fed_recs;
1051:
1048: return 'PAY_US_OTF_FUTURE_RECORDS';
1049: end if;
1050: close c_future_fed_recs;
1051:
1052: hr_utility.trace(l_proc || ' - Testing STATE_FUTURE_DATED_CHANGES');
1053: open c_future_state_recs_for_fed;
1054: fetch c_future_state_recs_for_fed into curs_dummy;
1055: if c_future_state_recs_for_fed%FOUND then
1056: close c_future_state_recs_for_fed;
1053: open c_future_state_recs_for_fed;
1054: fetch c_future_state_recs_for_fed into curs_dummy;
1055: if c_future_state_recs_for_fed%FOUND then
1056: close c_future_state_recs_for_fed;
1057: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Future Dated State Tax Records');
1058: return 'PAY_US_OTF_FUTURE_RECORDS';
1059: end if;
1060:
1061: close c_future_state_recs_for_fed;
1061: close c_future_state_recs_for_fed;
1062:
1063: else -- check the state cursors only
1064:
1065: hr_utility.trace(l_proc || ' - Testing STATE_EXCESSIVE_WA_REJECT_DATE/OVERRIDES');
1066: open c_excess_over_state;
1067: fetch c_excess_over_state into curs_dummy;
1068:
1069: if c_excess_over_state%FOUND then
1066: open c_excess_over_state;
1067: fetch c_excess_over_state into curs_dummy;
1068:
1069: if c_excess_over_state%FOUND then
1070: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - State Reject Date or Overrides');
1071: close c_excess_over_state;
1072: return 'PAY_US_OTF_REJECT_DATE_OR_OVER';
1073: end if;
1074: close c_excess_over_state;
1072: return 'PAY_US_OTF_REJECT_DATE_OR_OVER';
1073: end if;
1074: close c_excess_over_state;
1075:
1076: hr_utility.trace(l_proc || ' - Testing STATE_FUTURE_DATED_CHANGES');
1077: open c_future_state_recs;
1078: fetch c_future_state_recs into curs_dummy;
1079: if c_future_state_recs_for_fed%FOUND then
1080: close c_future_state_recs;
1077: open c_future_state_recs;
1078: fetch c_future_state_recs into curs_dummy;
1079: if c_future_state_recs_for_fed%FOUND then
1080: close c_future_state_recs;
1081: hr_utility.trace(' Leaving: ' || l_proc || ' - Failed - Future Dated State Tax Records');
1082: return 'PAY_US_OTF_FUTURE_RECORDS';
1083: end if;
1084: close c_future_state_recs;
1085: end if;
1084: close c_future_state_recs;
1085: end if;
1086:
1087: -- if we've reached this point, then allow update
1088: hr_utility.trace(' Leaving: ' || l_proc || ' - Passed ');
1089: return null;
1090:
1091: end chk_w4_allowed;
1092: