1: PACKAGE BODY pay_us_payroll_utils AS
2: /* $Header: pyusutil.pkb 120.1.12000000.1 2007/01/18 03:09:22 appldev noship $ */
3: /*
4: ******************************************************************
5: * *
16: * 500 Oracle Parkway, Redwood City, CA, 94065. *
17: * *
18: ******************************************************************
19:
20: Name : pay_us_payroll_utils
21:
22: Description : The package has all the common packages used in
23: US Payroll.
24:
130:
131: /*****************************************************************************
132: ** Package Local Variables
133: *****************************************************************************/
134: gv_package VARCHAR2(100) := 'pay_us_payroll_utils';
135: gc_csv_delimiter VARCHAR2(1) := ',';
136: gc_csv_data_delimiter VARCHAR2(1) := '"';
137:
138: gv_html_start_data VARCHAR2(5) := '
272: /***************************************************************
273: ** Build a PL/SQL table which has federal tax info
274: ***************************************************************/
275: if p_get_federal = 'Y' and
276: pay_us_payroll_utils.ltr_fed_tax_info.count < 1 then
277: ln_step := 5;
278: open c_get_federal_jit (p_effective_date, '401K LIMITS');
279: fetch c_get_federal_jit into ln_futa_wage, ln_futa_rate,
280: ln_ss_ee_wage, ln_ss_ee_rate,
295: p_effective_date => p_effective_date,
296: p_limit => '457 ADDITIONAL CATCHUP');
297: ln_dcp_limit := pqp_us_srs_extracts.get_dcp_limit(p_effective_date);
298:
299: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage := ln_futa_wage;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
296: p_limit => '457 ADDITIONAL CATCHUP');
297: ln_dcp_limit := pqp_us_srs_extracts.get_dcp_limit(p_effective_date);
298:
299: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage := ln_futa_wage;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
297: ln_dcp_limit := pqp_us_srs_extracts.get_dcp_limit(p_effective_date);
298:
299: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage := ln_futa_wage;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
298:
299: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage := ln_futa_wage;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
299: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage := ln_futa_wage;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
300: pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate := ln_futa_rate;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
301: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage := ln_ss_ee_wage;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
302: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate := ln_ss_ee_rate;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
303: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage := ln_ss_er_wage;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
304: pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate := ln_ss_er_rate;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
305: pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate := ln_medi_ee_rate;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
313: pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit := ln_dcp_limit;
306: pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate := ln_medi_er_rate;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
313: pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit := ln_dcp_limit;
314: end if;
307: pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit := ln_401k;
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
313: pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit := ln_dcp_limit;
314: end if;
315:
308: pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit := ln_403b;
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
313: pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit := ln_dcp_limit;
314: end if;
315:
316: /***************************************************************
309: pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit := ln_457;
310: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k := ln_401k_catchup;
311: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b := ln_403_catchup;
312: pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457 := ln_457_catchup;
313: pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit := ln_dcp_limit;
314: end if;
315:
316: /***************************************************************
317: ** Build a PL/SQL table which has state tax info for all states
318: ***************************************************************/
319: hr_utility.set_location(gv_package || lv_procedure_name, 300);
320: ln_step := 10;
321: hr_utility.set_location(p_get_state,310);
322: hr_utility.set_location(to_char( pay_us_payroll_utils.ltr_state_tax_info.count),320);
323: if p_get_state = 'Y' and
324: pay_us_payroll_utils.ltr_state_tax_info.count < 1 then
325: open c_get_states_jit(p_effective_date);
326: loop
320: ln_step := 10;
321: hr_utility.set_location(p_get_state,310);
322: hr_utility.set_location(to_char( pay_us_payroll_utils.ltr_state_tax_info.count),320);
323: if p_get_state = 'Y' and
324: pay_us_payroll_utils.ltr_state_tax_info.count < 1 then
325: open c_get_states_jit(p_effective_date);
326: loop
327: fetch c_get_states_jit into lv_state_code, lv_sit_exists,
328: ln_sui_ee_limit, ln_sui_er_limit ,
341: hr_utility.trace('ln_sdi_er_limit = ' || ln_sdi_er_limit);
342: hr_utility.trace('lv_steic_exists = ' || lv_steic_exists);
343: hr_utility.trace('ln_state_futa_rate= '|| ln_state_futa_rate);
344:
345: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists
346: := lv_sit_exists;
347: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit
348: := ln_sui_ee_limit;
349: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit
343: hr_utility.trace('ln_state_futa_rate= '|| ln_state_futa_rate);
344:
345: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists
346: := lv_sit_exists;
347: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit
348: := ln_sui_ee_limit;
349: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit
350: := ln_sui_er_limit;
351: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit
345: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists
346: := lv_sit_exists;
347: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit
348: := ln_sui_ee_limit;
349: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit
350: := ln_sui_er_limit;
351: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit
352: := ln_sdi_ee_limit;
353: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit
347: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit
348: := ln_sui_ee_limit;
349: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit
350: := ln_sui_er_limit;
351: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit
352: := ln_sdi_ee_limit;
353: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit
354: := ln_sdi_er_limit;
355: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists
349: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit
350: := ln_sui_er_limit;
351: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit
352: := ln_sdi_ee_limit;
353: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit
354: := ln_sdi_er_limit;
355: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists
356: := lv_steic_exists;
357: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate
351: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit
352: := ln_sdi_ee_limit;
353: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit
354: := ln_sdi_er_limit;
355: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists
356: := lv_steic_exists;
357: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate
358: := ln_state_futa_rate;
359:
353: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit
354: := ln_sdi_er_limit;
355: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists
356: := lv_steic_exists;
357: pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate
358: := ln_state_futa_rate;
359:
360: end loop;
361: close c_get_states_jit;
363: hr_utility.set_location(gv_package || lv_procedure_name, 350);
364:
365: ln_step := 55;
366: if p_get_county = 'Y' and
367: pay_us_payroll_utils.ltr_county_tax_info.count < 1 then
368: open c_get_county_jit(p_effective_date);
369: loop
370: fetch c_get_county_jit into lv_jurisdiction_code,
371: lv_county_tax_exists,
386: ln_index := to_number(lv_temp_code);
387:
388: /********************* End ****************************************************/
389:
390: pay_us_payroll_utils.ltr_county_tax_info(ln_index).jurisdiction_code
391: := lv_jurisdiction_code;
392: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_tax_exists
393: := lv_county_tax_exists;
394: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_head_tax_exists
388: /********************* End ****************************************************/
389:
390: pay_us_payroll_utils.ltr_county_tax_info(ln_index).jurisdiction_code
391: := lv_jurisdiction_code;
392: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_tax_exists
393: := lv_county_tax_exists;
394: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_head_tax_exists
395: := lv_county_head_tax_exists;
396: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_sd_tax_exists
390: pay_us_payroll_utils.ltr_county_tax_info(ln_index).jurisdiction_code
391: := lv_jurisdiction_code;
392: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_tax_exists
393: := lv_county_tax_exists;
394: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_head_tax_exists
395: := lv_county_head_tax_exists;
396: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_sd_tax_exists
397: := lv_county_sd_tax_exists;
398:
392: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_tax_exists
393: := lv_county_tax_exists;
394: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_head_tax_exists
395: := lv_county_head_tax_exists;
396: pay_us_payroll_utils.ltr_county_tax_info(ln_index).cnty_sd_tax_exists
397: := lv_county_sd_tax_exists;
398:
399: end loop;
400: close c_get_county_jit;
423: lv_city_head_tax_exists,
424: lv_city_sd_tax_exists;
425: if c_get_city_jit%notfound then
426: hr_utility.set_location(gv_package || lv_procedure_name, 460);
427: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
428: := p_jurisdiction_code;
429: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
430: := NULL;
431: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
425: if c_get_city_jit%notfound then
426: hr_utility.set_location(gv_package || lv_procedure_name, 460);
427: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
428: := p_jurisdiction_code;
429: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
430: := NULL;
431: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
432: := NULL;
433: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
427: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
428: := p_jurisdiction_code;
429: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
430: := NULL;
431: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
432: := NULL;
433: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
434: := NULL;
435: else
429: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
430: := NULL;
431: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
432: := NULL;
433: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
434: := NULL;
435: else
436: hr_utility.set_location(gv_package || lv_procedure_name, 470);
437: hr_utility.trace('lv_jurisdiction_code = ' || lv_city_jurisdiction_code);
435: else
436: hr_utility.set_location(gv_package || lv_procedure_name, 470);
437: hr_utility.trace('lv_jurisdiction_code = ' || lv_city_jurisdiction_code);
438:
439: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
440: := lv_city_jurisdiction_code;
441: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
442: := lv_city_tax_exists;
443: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
437: hr_utility.trace('lv_jurisdiction_code = ' || lv_city_jurisdiction_code);
438:
439: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
440: := lv_city_jurisdiction_code;
441: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
442: := lv_city_tax_exists;
443: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
444: := lv_city_head_tax_exists;
445: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
439: pay_us_payroll_utils.ltr_city_tax_info(ln_index).jurisdiction_code
440: := lv_city_jurisdiction_code;
441: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
442: := lv_city_tax_exists;
443: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
444: := lv_city_head_tax_exists;
445: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
446: := lv_city_sd_tax_exists;
447: end if;
441: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_tax_exists
442: := lv_city_tax_exists;
443: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_head_tax_exists
444: := lv_city_head_tax_exists;
445: pay_us_payroll_utils.ltr_city_tax_info(ln_index).city_sd_tax_exists
446: := lv_city_sd_tax_exists;
447: end if;
448:
449: close c_get_city_jit;
547:
548: --federal
549: if p_jurisdiction_code = '00-000-0000' then
550:
551: if pay_us_payroll_utils.ltr_fed_tax_info.count < 1 then
552: populate_jit_information( p_effective_date => p_effective_date
553: , p_get_federal => 'Y');
554: end if;
555:
553: , p_get_federal => 'Y');
554: end if;
555:
556: if p_tax_type = 'FUTA WAGE' then
557: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage;
558: elsif p_tax_type = 'FUTA RATE' then
559: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate;
560: elsif p_tax_type = 'SS EE' then
561: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage;
555:
556: if p_tax_type = 'FUTA WAGE' then
557: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage;
558: elsif p_tax_type = 'FUTA RATE' then
559: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate;
560: elsif p_tax_type = 'SS EE' then
561: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage;
562: elsif p_tax_type = 'SS EE RATE' then
563: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate;
557: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_wage;
558: elsif p_tax_type = 'FUTA RATE' then
559: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate;
560: elsif p_tax_type = 'SS EE' then
561: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage;
562: elsif p_tax_type = 'SS EE RATE' then
563: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate;
564: elsif p_tax_type = 'SS ER' then
565: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage;
559: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).futa_rate;
560: elsif p_tax_type = 'SS EE' then
561: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage;
562: elsif p_tax_type = 'SS EE RATE' then
563: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate;
564: elsif p_tax_type = 'SS ER' then
565: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage;
566: elsif p_tax_type = 'SS ER RATE' then
567: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate;
561: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_wage;
562: elsif p_tax_type = 'SS EE RATE' then
563: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate;
564: elsif p_tax_type = 'SS ER' then
565: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage;
566: elsif p_tax_type = 'SS ER RATE' then
567: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate;
568: elsif p_tax_type = 'MED EE RATE' then
569: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate;
563: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_ee_rate;
564: elsif p_tax_type = 'SS ER' then
565: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage;
566: elsif p_tax_type = 'SS ER RATE' then
567: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate;
568: elsif p_tax_type = 'MED EE RATE' then
569: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate;
570: elsif p_tax_type = 'MED ER RATE' then
571: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate;
565: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_wage;
566: elsif p_tax_type = 'SS ER RATE' then
567: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate;
568: elsif p_tax_type = 'MED EE RATE' then
569: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate;
570: elsif p_tax_type = 'MED ER RATE' then
571: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate;
572: elsif p_tax_type = '401K' then
573: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit;
567: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).ss_er_rate;
568: elsif p_tax_type = 'MED EE RATE' then
569: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate;
570: elsif p_tax_type = 'MED ER RATE' then
571: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate;
572: elsif p_tax_type = '401K' then
573: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit;
574: elsif p_tax_type = '403B' then
575: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit;
569: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_ee_rate;
570: elsif p_tax_type = 'MED ER RATE' then
571: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate;
572: elsif p_tax_type = '401K' then
573: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit;
574: elsif p_tax_type = '403B' then
575: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit;
576: elsif p_tax_type = '457' then
577: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit;
571: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).med_er_rate;
572: elsif p_tax_type = '401K' then
573: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit;
574: elsif p_tax_type = '403B' then
575: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit;
576: elsif p_tax_type = '457' then
577: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit;
578: elsif p_tax_type = '401K CATCHUP' then
579: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k;
573: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p401_limit;
574: elsif p_tax_type = '403B' then
575: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit;
576: elsif p_tax_type = '457' then
577: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit;
578: elsif p_tax_type = '401K CATCHUP' then
579: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k;
580: elsif p_tax_type = '403B CATCHUP' then
581: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b;
575: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p403_limit;
576: elsif p_tax_type = '457' then
577: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit;
578: elsif p_tax_type = '401K CATCHUP' then
579: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k;
580: elsif p_tax_type = '403B CATCHUP' then
581: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b;
582: elsif p_tax_type = '457 CATCHUP' then
583: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457;
577: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).p457_limit;
578: elsif p_tax_type = '401K CATCHUP' then
579: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k;
580: elsif p_tax_type = '403B CATCHUP' then
581: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b;
582: elsif p_tax_type = '457 CATCHUP' then
583: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457;
584: elsif p_tax_type = 'DCP' then
585: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit;
579: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_401k;
580: elsif p_tax_type = '403B CATCHUP' then
581: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b;
582: elsif p_tax_type = '457 CATCHUP' then
583: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457;
584: elsif p_tax_type = 'DCP' then
585: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit;
586: end if;
587:
581: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_403b;
582: elsif p_tax_type = '457 CATCHUP' then
583: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).catchup_457;
584: elsif p_tax_type = 'DCP' then
585: lv_value := pay_us_payroll_utils.ltr_fed_tax_info(1).dcp_limit;
586: end if;
587:
588: --state
589: elsif lv_state_code <> '00' and
589: elsif lv_state_code <> '00' and
590: lv_county_code = '000' and
591: lv_city_code = '0000' then
592:
593: if pay_us_payroll_utils.ltr_state_tax_info.count < 1 then
594: populate_jit_information(p_effective_date => p_effective_date
595: ,p_get_state => 'Y');
596: end if;
597:
595: ,p_get_state => 'Y');
596: end if;
597:
598: if p_tax_type = 'SUI EE' then
599: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit;
600: elsif p_tax_type = 'SUI ER' then
601: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit;
602: hr_utility.set_location(lv_value,230);
603: elsif p_tax_type = 'SDI EE' then
597:
598: if p_tax_type = 'SUI EE' then
599: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_ee_limit;
600: elsif p_tax_type = 'SUI ER' then
601: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit;
602: hr_utility.set_location(lv_value,230);
603: elsif p_tax_type = 'SDI EE' then
604: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit;
605: elsif p_tax_type = 'SDI ER' then
600: elsif p_tax_type = 'SUI ER' then
601: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sui_er_limit;
602: hr_utility.set_location(lv_value,230);
603: elsif p_tax_type = 'SDI EE' then
604: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit;
605: elsif p_tax_type = 'SDI ER' then
606: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit;
607: elsif p_tax_type = 'SIT EE' then
608: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists;
602: hr_utility.set_location(lv_value,230);
603: elsif p_tax_type = 'SDI EE' then
604: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit;
605: elsif p_tax_type = 'SDI ER' then
606: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit;
607: elsif p_tax_type = 'SIT EE' then
608: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists;
609: elsif p_tax_type = 'STEIC EE' then
610: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists;
604: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_ee_limit;
605: elsif p_tax_type = 'SDI ER' then
606: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit;
607: elsif p_tax_type = 'SIT EE' then
608: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists;
609: elsif p_tax_type = 'STEIC EE' then
610: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists;
611: elsif p_tax_type = 'FUTA ER' then
612: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate;
606: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sdi_er_limit;
607: elsif p_tax_type = 'SIT EE' then
608: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists;
609: elsif p_tax_type = 'STEIC EE' then
610: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists;
611: elsif p_tax_type = 'FUTA ER' then
612: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate;
613: elsif p_tax_type = 'FUTA ' then
614: lv_value := 'Y'; -- Bug3969061
608: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).sit_exists;
609: elsif p_tax_type = 'STEIC EE' then
610: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).steic_exists;
611: elsif p_tax_type = 'FUTA ER' then
612: lv_value := pay_us_payroll_utils.ltr_state_tax_info(lv_state_code).futa_rate;
613: elsif p_tax_type = 'FUTA ' then
614: lv_value := 'Y'; -- Bug3969061
615: elsif p_tax_type in ('WC EE', 'WC2 EE') then
616: begin
634: elsif lv_state_code <> '00' and
635: lv_county_code <> '000' and
636: lv_city_code = '0000' then
637:
638: if pay_us_payroll_utils.ltr_county_tax_info.count<1 then
639: populate_jit_information(p_effective_date => p_effective_date
640: ,p_get_county => 'Y');
641: end if;
642:
642:
643: lv_temp_code := lv_state_code||lv_county_code;
644: ln_index_code := to_number(lv_temp_code);
645:
646: if pay_us_payroll_utils.ltr_county_tax_info.exists(ln_index_code) then
647: lv_value := pay_us_payroll_utils.ltr_county_tax_info(ln_index_code).cnty_tax_exists;
648: end if;
649:
650: --city
643: lv_temp_code := lv_state_code||lv_county_code;
644: ln_index_code := to_number(lv_temp_code);
645:
646: if pay_us_payroll_utils.ltr_county_tax_info.exists(ln_index_code) then
647: lv_value := pay_us_payroll_utils.ltr_county_tax_info(ln_index_code).cnty_tax_exists;
648: end if;
649:
650: --city
651: elsif lv_state_code <> '00' and
656: /* for user defined cities we should return N because they are not
657: primary cities and will never have tax */
658: lv_value := 'N';
659: else
660: if pay_us_payroll_utils.ltr_city_tax_info.count < 1 then
661: populate_jit_information(p_effective_date => p_effective_date
662: ,p_get_city => 'Y'
663: ,p_jurisdiction_code => p_jurisdiction_code);
664: end if;
669: ln_index_code := to_number(lv_temp_code);
670: hr_utility.trace(' A4 ln_index_code');
671:
672: if p_tax_type = 'CITY' then
673: if pay_us_payroll_utils.ltr_city_tax_info.exists(ln_index_code) then
674:
675: hr_utility.trace(' CITY found in PLSQL table');
676: null;
677: else
681: ,p_get_city => 'Y'
682: ,p_jurisdiction_code => p_jurisdiction_code);
683: end if;
684: lv_value
685: := pay_us_payroll_utils.ltr_city_tax_info(ln_index_code).city_tax_exists;
686: end if;
687:
688: if p_tax_type = 'HT' then
689: if pay_us_payroll_utils.ltr_city_tax_info.exists(ln_index_code) then
685: := pay_us_payroll_utils.ltr_city_tax_info(ln_index_code).city_tax_exists;
686: end if;
687:
688: if p_tax_type = 'HT' then
689: if pay_us_payroll_utils.ltr_city_tax_info.exists(ln_index_code) then
690: hr_utility.trace(' HT found in PLSQL table');
691: null;
692: else
693: hr_utility.trace(' HT NOT found in PLSQL table');
694: populate_jit_information(p_effective_date => p_effective_date
695: ,p_get_city => 'Y'
696: ,p_jurisdiction_code => p_jurisdiction_code);
697: end if;
698: lv_value := pay_us_payroll_utils.ltr_city_tax_info(ln_index_code).city_head_tax_exists;
699: end if;
700:
701: /********************* Bug Number:2973119 End ****************************/
702:
781:
782: ln_attribute_exists NUMBER(1);
783: ln_valid_bal_exists NUMBER(1);
784: lv_return_status VARCHAR2(1) := 'N';
785: lv_package_stage VARCHAR2(50) := 'pay_us_payroll_utils.check_balance_status';
786:
787: l_attribute_count number;
788: l_valid_count number;
789: l_trunc_date date; /* Bug 3258868 */
1099: return(ln_min_action);
1100:
1101: END get_min_action;
1102:
1103: END pay_us_payroll_utils;