diff --git a/l10n_us_hr_payroll/data/state/nj_newjersey.xml b/l10n_us_hr_payroll/data/state/nj_newjersey.xml index 50c72dcd..c1b7e003 100644 --- a/l10n_us_hr_payroll/data/state/nj_newjersey.xml +++ b/l10n_us_hr_payroll/data/state/nj_newjersey.xml @@ -7,16 +7,17 @@ - - 34400.00 - - - 35300.00 + + + 36200.00 + + + @@ -27,11 +28,7 @@ - - 2.6825 - - - + 2.6825 @@ -45,11 +42,7 @@ - - 0.3825 - - - + 0.3825 @@ -64,11 +57,7 @@ - - 0.5 - - - + 0.5 @@ -82,16 +71,17 @@ - - 0.17 - - - 0.26 + + + 0.47 + + + @@ -101,11 +91,7 @@ - - 0.1175 - - - + 0.1175 @@ -119,11 +105,7 @@ - - 0.0425 - - - + 0.0425 @@ -138,11 +120,7 @@ - - 0.0 - - - + 0.0 @@ -156,16 +134,17 @@ - - 0.08 - - - 0.16 + + + 0.28 + + + @@ -175,351 +154,6 @@ - - { - 'A': { - 'weekly': ( - ( 385, 0.00, 1.50), - ( 673, 5.77, 2.00), - ( 769, 11.54, 3.90), - ( 1442, 15.29, 6.10), - ( 9615, 56.34, 7.00), - (96154, 628.46, 9.90), - ('inf', 9195.77, 11.80), - ), - 'bi-weekly': ( - ( 769, 0.00, 1.50), - ( 1346, 12.00, 2.00), - ( 1538, 23.00, 3.90), - ( 2885, 31.00, 6.10), - ( 19231, 113.00, 7.00), - (192308, 1257.00, 9.90), - ( 'inf', 18392.00, 11.80), - ), - 'semi-monthly': ( - ( 833, 0.00, 1.50), - ( 1458, 13.00, 2.00), - ( 1667, 25.00, 3.90), - ( 3125, 33.00, 6.10), - ( 20833, 122.00, 7.00), - (208333, 1362.00, 9.90), - ( 'inf', 19924.00, 11.80), - ), - 'monthly': ( - ( 1667, 0.00, 1.50), - ( 2917, 25.00, 2.00), - ( 3333, 50.00, 3.90), - ( 6250, 66.00, 6.10), - ( 41667, 244.00, 7.00), - (416667, 2723.00, 9.90), - ( 'inf', 39848.00, 11.80), - ), - 'quarterly': ( - ( 5000, 0.00, 1.50), - ( 8750, 75.00, 2.00), - ( 10000, 150.00, 3.90), - ( 18750, 198.75, 6.10), - ( 125000, 732.50, 7.00), - (1250000, 8170.00, 9.90), - ( 'inf', 119545.00, 11.80), - ), - 'semi-annual': ( - ( 10000, 0.00, 1.50), - ( 17500, 150.00, 2.00), - ( 20000, 300.00, 3.90), - ( 37500, 397.50, 6.10), - ( 250000, 1465.00, 7.00), - (2500000, 16340.00, 9.90), - ( 'inf', 239090.00, 11.80), - ), - 'annual': ( - ( 20000, 0.00, 1.50), - ( 35000, 300.00, 2.00), - ( 40000, 600.00, 3.90), - ( 75000, 795.00, 6.10), - ( 500000, 2930.00, 7.00), - (5000000, 32680.00, 9.90), - ( 'inf', 478180.00, 11.80), - ), - }, - 'B': { - 'weekly': ( - ( 385, 0.00, 1.50), - ( 962, 5.77, 2.00), - ( 1346, 17.31, 2.70), - ( 1538, 27.69, 3.90), - ( 2885, 35.19, 6.10), - ( 9615, 117.31, 7.00), - (96154, 588.46, 9.90), - ('inf', 9155.77, 11.80), - ), - 'bi-weekly': ( - ( 769, 0.00, 1.50), - ( 1923, 12.00, 2.00), - ( 2692, 35.00, 2.70), - ( 3076, 55.00, 3.90), - ( 5769, 70.00, 6.10), - ( 19231, 235.00, 7.00), - (192308, 1177.00, 9.90), - ( 'inf', 18312.00, 11.80), - ), - 'semi-monthly': ( - ( 833, 0.00, 1.50), - ( 2083, 12.50, 2.00), - ( 2917, 37.50, 2.70), - ( 3333, 59.99, 3.90), - ( 6250, 76.25, 6.10), - ( 20833, 254.19, 7.00), - (208333, 1275.00, 9.90), - ( 'inf', 19838.00, 11.80), - ), - 'monthly': ( - ( 1667, 0.00, 1.50), - ( 4167, 25.00, 2.00), - ( 5833, 75.00, 2.70), - ( 6667, 120.00, 3.90), - ( 12500, 153.00, 6.10), - ( 41667, 508.00, 7.00), - (416667, 2550.00, 9.90), - ( 'inf', 39675.00, 11.80), - ), - 'quarterly': ( - ( 5000, 0.00, 1.50), - ( 12500, 75.00, 2.00), - ( 17500, 225.00, 2.70), - ( 20000, 360.00, 3.90), - ( 37500, 397.50, 6.10), - ( 125000, 1525.00, 7.00), - (1250000, 7650.00, 9.90), - ( 'inf', 119025.00, 11.80), - ), - 'semi-annual': ( - ( 10000, 0.00, 1.50), - ( 25000, 150.00, 2.00), - ( 35000, 450.00, 2.70), - ( 40000, 720.00, 3.90), - ( 75000, 915.00, 6.10), - ( 250000, 3050.00, 7.00), - (2500000, 15300.00, 9.90), - ( 'inf', 238050.00, 11.80), - ), - 'annual': ( - ( 20000, 0.00, 1.50), - ( 50000, 300.00, 2.00), - ( 70000, 900.00, 2.70), - (80000, 1440.00, 3.90), - ( 150000, 1830.00, 6.10), - ( 500000, 6100.00, 7.00), - (5000000, 30600.00, 9.90), - ( 'inf', 476100.00, 11.80), - ), - }, - 'C': { - 'weekly': ( - ( 385, 0.00, 1.50), - ( 769, 5.77, 2.30), - ( 962, 14.62, 2.80), - ( 1154, 20.00, 3.50), - ( 2885, 26.73, 5.60), - ( 9615, 123.65, 6.60), - (96154, 567.88, 9.90), - ('inf', 9135.19, 11.80), - ), - 'bi-weekly': ( - ( 769, 0.00, 1.50), - ( 1538, 11.54, 2.30), - ( 1923, 29.23, 2.80), - ( 2308, 40.00, 3.50), - ( 5769, 53.46, 5.60), - ( 19231, 247.31, 6.60), - (192308, 1135.77, 9.90), - ( 'inf', 18270.38, 11.80), - ), - 'semi-monthly': ( - ( 833, 0.00, 1.50), - ( 1667, 12.50, 2.30), - ( 2083, 31.67, 2.80), - ( 2500, 43.33, 3.50), - ( 6250, 57.92, 5.60), - ( 20833, 267.92, 6.60), - (208333, 1230.42, 9.90), - ( 'inf', 19792.92, 11.80), - ), - 'monthly': ( - ( 1667, 0.00, 1.50), - ( 3333, 25.00, 2.30), - ( 4167, 63.33, 2.80), - ( 5000, 86.67, 3.50), - ( 12500, 115.83, 5.60), - ( 41667, 535.85, 6.60), - (416667, 2460.83, 9.90), - ( 'inf', 39585.83, 11.80), - ), - 'quarterly': ( - ( 5000, 0.00, 1.50), - ( 10000, 75.00, 2.30), - ( 12500, 190.00, 2.80), - ( 15000, 260.00, 3.50), - ( 37500, 347.50, 5.60), - ( 125000, 1607.50, 6.60), - (1250000, 7382.50, 9.90), - ( 'inf', 118757.50, 11.80), - ), - 'semi-annual': ( - ( 10000, 0.00, 1.50), - ( 20000, 150.00, 2.30), - ( 25000, 380.00, 2.80), - ( 30000, 520.00, 3.50), - ( 75000, 695.00, 5.60), - ( 250000, 3215.00, 6.60), - (2500000, 14765.00, 9.90), - ( 'inf', 237515.00, 11.80), - ), - 'annual': ( - ( 20000, 0.00, 1.50), - ( 40000, 300.00, 2.30), - ( 50000, 760.00, 2.80), - ( 60000, 1040.00, 3.50), - ( 150000, 1390.00, 5.60), - ( 500000, 6430.00, 6.60), - (5000000, 29530.00, 9.90), - ( 'inf', 475030.00, 11.80), - ), - }, - 'D': { - 'weekly': ( - ( 385, 0.00, 1.50), - ( 769, 5.77, 2.70), - ( 962, 16.15, 3.40), - ( 1154, 22.69, 4.30), - ( 2885, 30.96, 5.60), - ( 9615, 127.88, 6.50), - ( 96154, 565.38, 9.90), - ( 'inf', 9132.69, 11.80), - ), - 'bi-weekly': ( - ( 769, 0.00, 1.50), - ( 1538, 11.54, 2.70), - ( 1923, 32.31, 3.40), - ( 2308, 45.38, 4.30), - ( 5769, 61.92, 5.60), - ( 19231, 255.77, 6.50), - (192308, 1130.77, 9.90), - ( 'inf', 18265.38, 11.80), - ), - 'semi-monthly': ( - ( 833, 0.00, 1.50), - ( 1667, 12.50, 2.70), - ( 2083, 35.00, 3.40), - ( 2500, 49.17, 4.30), - ( 6250, 67.08, 5.60), - ( 20833, 277.08, 6.50), - (208333, 1225.00, 9.90), - ( 'inf', 19787.50, 11.80), - ), - 'monthly': ( - ( 1667, 0.00, 1.50), - ( 3333, 25.00, 2.70), - ( 4167, 70.00, 3.40), - ( 5000, 98.33, 4.00), - ( 12500, 134.17, 5.60), - ( 41667, 554.17, 6.50), - (416667, 2450.00, 9.90), - ( 'inf', 39575.00, 11.80), - ), - 'quarterly': ( - ( 5000, 0.00, 1.50), - ( 10000, 75.00, 2.07), - ( 12500, 210.00, 3.40), - ( 15000, 295.00, 4.30), - ( 37500, 402.50, 5.60), - ( 125000, 1662.50, 6.50), - (1250000, 7350.00, 9.90), - ( 'inf', 118725.00, 11.80), - ), - 'semi-annual': ( - ( 10000, 0.00, 1.50), - ( 20000, 150.00, 2.70), - ( 25000, 420.00, 3.40), - ( 30000, 590.00, 4.30), - ( 75000, 805.00, 5.60), - ( 250000, 3325.00, 6.50), - (2500000, 14700.00, 9.90), - ( 'inf', 237450.00, 11.80), - ), - 'annual': ( - ( 20000, 0.00, 1.50), - ( 40000, 300.00, 2.70), - ( 50000, 840.00, 3.40), - ( 60000, 1180.00, 4.30), - ( 150000, 1610.00, 5.60), - ( 250000, 6650.00, 6.50), - (2500000, 29400.00, 9.90), - ( 'inf', 474900.00, 11.80), - ), - }, - 'E': { - 'weekly': ( - ( 385, 0.00, 1.50), - ( 673, 5.77, 2.00), - ( 1923, 11.54, 5.80), - ( 9615, 84.04, 6.50), - ( 96154, 584.04, 9.90), - ( 'inf', 9151.35, 11.80), - ), - 'bi-weekly': ( - ( 769, 0.00, 1.50), - ( 1346, 12.00, 2.00), - ( 3846, 23.00, 5.80), - ( 19231, 168.00, 6.50), - (192308, 1168.00, 9.90), - ( 'inf', 18303.00, 11.80), - ), - 'semi-monthly': ( - ( 833, 0.00, 1.50), - ( 1458, 13.00, 2.00), - ( 4167, 25.00, 5.80), - ( 20833, 182.00, 6.50), - (208333, 1265.00, 9.90), - ( 'inf', 19828.00, 11.80), - ), - 'monthly': ( - ( 1667, 0.00, 1.50), - ( 2916, 25.00, 2.00), - ( 8333, 50.00, 5.80), - ( 41667, 364.00, 6.50), - (416667, 2531.00, 9.90), - ( 'inf', 39656.00, 11.80), - ), - 'quarterly': ( - ( 5000, 0.00, 1.50), - ( 8750, 75.00, 2.00), - ( 25000, 150.00, 5.80), - ( 125000, 1092.50, 6.50), - (1250000, 7592.50, 9.90), - ( 'inf', 118967.50, 11.80), - ), - 'semi-annual': ( - ( 10000, 0.00, 1.50), - ( 17500, 150.00, 2.00), - ( 50000, 300.00, 5.80), - ( 250000, 2185.00, 6.50), - (2500000, 15185.00, 9.90), - ( 'inf', 237935.00, 11.80), - ), - 'annual': ( - ( 20000, 0.00, 1.50), - ( 35000, 300.00, 2.00), - ( 100000, 600.00, 5.80), - ( 500000, 4370.00, 6.50), - (5000000, 30370.00, 9.90), - ( 'inf', 475870.00, 11.80), - ), - }, - } - - - { @@ -866,6 +500,352 @@ + + + { + 'A': { + 'weekly': ( + ( 385, 0.00, 1.50), + ( 673, 5.77, 2.00), + ( 769, 11.54, 3.90), + ( 1442, 15.29, 6.10), + ( 9615, 56.34, 7.00), + (19231, 628.46, 9.90), + ('inf', 1580.38, 11.80), + ), + 'bi-weekly': ( + ( 769, 0.00, 1.50), + ( 1346, 12.00, 2.00), + ( 1538, 23.00, 3.90), + ( 2885, 31.00, 6.10), + ( 19231, 113.00, 7.00), + ( 38462, 1257.00, 9.90), + ( 'inf', 3161.00, 11.80), + ), + 'semi-monthly': ( + ( 833, 0.00, 1.50), + ( 1458, 13.00, 2.00), + ( 1667, 25.00, 3.90), + ( 3125, 33.00, 6.10), + ( 20833, 122.00, 7.00), + ( 41667, 1362.00, 9.90), + ( 'inf', 3424.00, 11.80), + ), + 'monthly': ( + ( 1667, 0.00, 1.50), + ( 2917, 25.00, 2.00), + ( 3333, 50.00, 3.90), + ( 6250, 66.00, 6.10), + ( 41667, 244.00, 7.00), + ( 83333, 2723.00, 9.90), + ( 'inf', 6848.00, 11.80), + ), + 'quarterly': ( + ( 5000, 0.00, 1.50), + ( 8750, 75.00, 2.00), + ( 10000, 150.00, 3.90), + ( 18750, 198.75, 6.10), + ( 125000, 732.50, 7.00), + ( 250000, 8170.00, 9.90), + ( 'inf', 20545.00, 11.80), + ), + 'semi-annual': ( + ( 10000, 0.00, 1.50), + ( 17500, 150.00, 2.00), + ( 20000, 300.00, 3.90), + ( 37500, 397.50, 6.10), + ( 250000, 1465.00, 7.00), + ( 500000, 16340.00, 9.90), + ( 'inf', 41060.00, 11.80), + ), + 'annual': ( + ( 20000, 0.00, 1.50), + ( 35000, 300.00, 2.00), + ( 40000, 600.00, 3.90), + ( 75000, 795.00, 6.10), + ( 500000, 2930.00, 7.00), + (1000000, 32680.00, 9.90), + ( 'inf', 82180.00, 11.80), + ), + }, + 'B': { + 'weekly': ( + ( 385, 0.00, 1.50), + ( 962, 5.77, 2.00), + ( 1346, 17.31, 2.70), + ( 1538, 27.69, 3.90), + ( 2885, 35.19, 6.10), + ( 9615, 117.31, 7.00), + (19231, 588.46, 9.90), + ('inf', 1540.38, 11.80), + ), + 'bi-weekly': ( + ( 769, 0.00, 1.50), + ( 1923, 12.00, 2.00), + ( 2692, 35.00, 2.70), + ( 3076, 55.00, 3.90), + ( 5769, 70.00, 6.10), + ( 19231, 235.00, 7.00), + ( 38462, 1177.00, 9.90), + ( 'inf', 3081.00, 11.80), + ), + 'semi-monthly': ( + ( 833, 0.00, 1.50), + ( 2083, 12.50, 2.00), + ( 2917, 37.50, 2.70), + ( 3333, 59.99, 3.90), + ( 6250, 76.25, 6.10), + ( 20833, 254.19, 7.00), + ( 41667, 1275.00, 9.90), + ( 'inf', 3338.00, 11.80), + ), + 'monthly': ( + ( 1667, 0.00, 1.50), + ( 4167, 25.00, 2.00), + ( 5833, 75.00, 2.70), + ( 6667, 120.00, 3.90), + ( 12500, 153.00, 6.10), + ( 41667, 508.00, 7.00), + ( 83333, 2550.00, 9.90), + ( 'inf', 6675.00, 11.80), + ), + 'quarterly': ( + ( 5000, 0.00, 1.50), + ( 12500, 75.00, 2.00), + ( 17500, 225.00, 2.70), + ( 20000, 360.00, 3.90), + ( 37500, 397.50, 6.10), + ( 125000, 1525.00, 7.00), + ( 250000, 7650.00, 9.90), + ( 'inf', 20025.00, 11.80), + ), + 'semi-annual': ( + ( 10000, 0.00, 1.50), + ( 25000, 150.00, 2.00), + ( 35000, 450.00, 2.70), + ( 40000, 720.00, 3.90), + ( 75000, 915.00, 6.10), + ( 250000, 3050.00, 7.00), + ( 500000, 15300.00, 9.90), + ( 'inf', 40050.00, 11.80), + ), + 'annual': ( + ( 20000, 0.00, 1.50), + ( 50000, 300.00, 2.00), + ( 70000, 900.00, 2.70), + (80000, 1440.00, 3.90), + ( 150000, 1830.00, 6.10), + ( 500000, 6100.00, 7.00), + (1000000, 30600.00, 9.90), + ( 'inf', 80100.00, 11.80), + ), + }, + 'C': { + 'weekly': ( + ( 385, 0.00, 1.50), + ( 769, 5.77, 2.30), + ( 962, 14.62, 2.80), + ( 1154, 20.00, 3.50), + ( 2885, 26.73, 5.60), + ( 9615, 123.65, 6.60), + (19231, 567.88, 9.90), + ('inf', 1519.81, 11.80), + ), + 'bi-weekly': ( + ( 769, 0.00, 1.50), + ( 1538, 11.54, 2.30), + ( 1923, 29.23, 2.80), + ( 2308, 40.00, 3.50), + ( 5769, 53.46, 5.60), + ( 19231, 247.31, 6.60), + ( 38462, 1135.77, 9.90), + ( 'inf', 3039.62, 11.80), + ), + 'semi-monthly': ( + ( 833, 0.00, 1.50), + ( 1667, 12.50, 2.30), + ( 2083, 31.67, 2.80), + ( 2500, 43.33, 3.50), + ( 6250, 57.92, 5.60), + ( 20833, 267.92, 6.60), + ( 41667, 1230.42, 9.90), + ( 'inf', 3292.92, 11.80), + ), + 'monthly': ( + ( 1667, 0.00, 1.50), + ( 3333, 25.00, 2.30), + ( 4167, 63.33, 2.80), + ( 5000, 86.67, 3.50), + ( 12500, 115.83, 5.60), + ( 41667, 535.85, 6.60), + ( 83333, 2460.83, 9.90), + ( 'inf', 6585.83, 11.80), + ), + 'quarterly': ( + ( 5000, 0.00, 1.50), + ( 10000, 75.00, 2.30), + ( 12500, 190.00, 2.80), + ( 15000, 260.00, 3.50), + ( 37500, 347.50, 5.60), + ( 125000, 1607.50, 6.60), + ( 250000, 7382.50, 9.90), + ( 'inf', 19757.50, 11.80), + ), + 'semi-annual': ( + ( 10000, 0.00, 1.50), + ( 20000, 150.00, 2.30), + ( 25000, 380.00, 2.80), + ( 30000, 520.00, 3.50), + ( 75000, 695.00, 5.60), + ( 250000, 3215.00, 6.60), + ( 500000, 14765.00, 9.90), + ( 'inf', 39515.00, 11.80), + ), + 'annual': ( + ( 20000, 0.00, 1.50), + ( 40000, 300.00, 2.30), + ( 50000, 760.00, 2.80), + ( 60000, 1040.00, 3.50), + ( 150000, 1390.00, 5.60), + ( 500000, 6430.00, 6.60), + (1000000, 29530.00, 9.90), + ( 'inf', 79030.00, 11.80), + ), + }, + 'D': { + 'weekly': ( + ( 385, 0.00, 1.50), + ( 769, 5.77, 2.70), + ( 962, 16.15, 3.40), + ( 1154, 22.69, 4.30), + ( 2885, 30.96, 5.60), + ( 9615, 127.88, 6.50), + ( 19231, 565.38, 9.90), + ( 'inf', 1517.31, 11.80), + ), + 'bi-weekly': ( + ( 769, 0.00, 1.50), + ( 1538, 11.54, 2.70), + ( 1923, 32.31, 3.40), + ( 2308, 45.38, 4.30), + ( 5769, 61.92, 5.60), + ( 19231, 255.77, 6.50), + ( 38462, 1130.77, 9.90), + ( 'inf', 3034.62, 11.80), + ), + 'semi-monthly': ( + ( 833, 0.00, 1.50), + ( 1667, 12.50, 2.70), + ( 2083, 35.00, 3.40), + ( 2500, 49.17, 4.30), + ( 6250, 67.08, 5.60), + ( 20833, 277.08, 6.50), + ( 41667, 1225.00, 9.90), + ( 'inf', 3287.50, 11.80), + ), + 'monthly': ( + ( 1667, 0.00, 1.50), + ( 3333, 25.00, 2.70), + ( 4167, 70.00, 3.40), + ( 5000, 98.33, 4.00), + ( 12500, 134.17, 5.60), + ( 41667, 554.17, 6.50), + ( 83333, 2450.00, 9.90), + ( 'inf', 6575.00, 11.80), + ), + 'quarterly': ( + ( 5000, 0.00, 1.50), + ( 10000, 75.00, 2.07), + ( 12500, 210.00, 3.40), + ( 15000, 295.00, 4.30), + ( 37500, 402.50, 5.60), + ( 125000, 1662.50, 6.50), + ( 250000, 7350.00, 9.90), + ( 'inf', 19725.00, 11.80), + ), + 'semi-annual': ( + ( 10000, 0.00, 1.50), + ( 20000, 150.00, 2.70), + ( 25000, 420.00, 3.40), + ( 30000, 590.00, 4.30), + ( 75000, 805.00, 5.60), + ( 250000, 3325.00, 6.50), + ( 500000, 14700.00, 9.90), + ( 'inf', 39450.00, 11.80), + ), + 'annual': ( + ( 20000, 0.00, 1.50), + ( 40000, 300.00, 2.70), + ( 50000, 840.00, 3.40), + ( 60000, 1180.00, 4.30), + ( 150000, 1610.00, 5.60), + ( 250000, 6650.00, 6.50), + (1000000, 29400.00, 9.90), + ( 'inf', 78900.00, 11.80), + ), + }, + 'E': { + 'weekly': ( + ( 385, 0.00, 1.50), + ( 673, 5.77, 2.00), + ( 1923, 11.54, 5.80), + ( 9615, 84.04, 6.50), + ( 19231, 584.04, 9.90), + ( 'inf', 1535.96, 11.80), + ), + 'bi-weekly': ( + ( 769, 0.00, 1.50), + ( 1346, 12.00, 2.00), + ( 3846, 23.00, 5.80), + ( 19231, 168.00, 6.50), + ( 38462, 1168.00, 9.90), + ( 'inf', 3072.00, 11.80), + ), + 'semi-monthly': ( + ( 833, 0.00, 1.50), + ( 1458, 13.00, 2.00), + ( 4167, 25.00, 5.80), + ( 20833, 182.00, 6.50), + ( 41667, 1265.00, 9.90), + ( 'inf', 3328.00, 11.80), + ), + 'monthly': ( + ( 1667, 0.00, 1.50), + ( 2916, 25.00, 2.00), + ( 8333, 50.00, 5.80), + ( 41667, 364.00, 6.50), + ( 83333, 2531.00, 9.90), + ( 'inf', 6656.00, 11.80), + ), + 'quarterly': ( + ( 5000, 0.00, 1.50), + ( 8750, 75.00, 2.00), + ( 25000, 150.00, 5.80), + ( 125000, 1092.50, 6.50), + ( 250000, 7592.50, 9.90), + ( 'inf', 19967.50, 11.80), + ), + 'semi-annual': ( + ( 10000, 0.00, 1.50), + ( 17500, 150.00, 2.00), + ( 50000, 300.00, 5.80), + ( 250000, 2185.00, 6.50), + ( 500000, 15185.00, 9.90), + ( 'inf', 39935.00, 11.80), + ), + 'annual': ( + ( 20000, 0.00, 1.50), + ( 35000, 300.00, 2.00), + ( 100000, 600.00, 5.80), + ( 500000, 4370.00, 6.50), + (1000000, 30370.00, 9.90), + ( 'inf', 79870.00, 11.80), + ), + }, + } + + + @@ -874,21 +854,8 @@ - - { - 'weekly': 19.20, - 'bi-weekly': 38.40, - 'semi-monthly': 41.60, - 'monthly': 83.30, - 'quarterly': 250.00, - 'semi-annual': 500.00, - 'annual': 1000.00, - 'daily or miscellaneous': 2.70, - } - - - + { 'weekly': 19.20, diff --git a/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2019.py b/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2019.py deleted file mode 100755 index c28849b5..00000000 --- a/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2019.py +++ /dev/null @@ -1,128 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from .common import TestUsPayslip, process_payslip - - -class TestUsNJPayslip(TestUsPayslip): - ### - # 2019 Taxes and Rates - ### - NJ_UNEMP_MAX_WAGE = 34400.0 # Note that this is used for SDI and FLI as well - - ER_NJ_UNEMP = -2.6825 / 100.0 - EE_NJ_UNEMP = -0.3825 / 100.0 - - ER_NJ_SDI = -0.5 / 100.0 - EE_NJ_SDI = -0.17 / 100.0 - - ER_NJ_WF = -0.1175 / 100.0 - EE_NJ_WF = -0.0425 / 100.0 - - ER_NJ_FLI = 0.0 - EE_NJ_FLI = -0.08 / 100.0 - - # Examples found on page 24 of http://www.state.nj.us/treasury/taxation/pdf/current/njwt.pdf - def test_2019_taxes_example1(self): - salary = 300 - - # Tax Percentage Method for Single, taxable under $385 - wh = -4.21 - - employee = self._createEmployee() - contract = self._createContract(employee, - wage=salary, - state_id=self.get_us_state('NJ'), - nj_njw4_sit_filing_status='single', - nj_njw4_sit_allowances=1, - state_income_tax_additional_withholding=0.0, - nj_njw4_sit_rate_table='A', - schedule_pay='weekly') - - self._log('2019 New Jersey tax first payslip:') - payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31') - - payslip.compute_sheet() - - cats = self._getCategories(payslip) - - self.assertPayrollEqual(cats['EE_US_SUTA'], salary * (self.EE_NJ_UNEMP + self.EE_NJ_SDI + self.EE_NJ_WF + self.EE_NJ_FLI)) - self.assertPayrollEqual(cats['ER_US_SUTA'], salary * (self.ER_NJ_UNEMP + self.ER_NJ_SDI + self.ER_NJ_WF + self.ER_NJ_FLI)) - self.assertTrue(all((cats['EE_US_SUTA'], cats['ER_US_SUTA']))) - # self.assertPayrollEqual(cats['EE_US_NJ_SDI_SIT'], cats['EE_US_NJ_SDI_SIT'] * self.EE_NJ_SDI) - # self.assertPayrollEqual(cats['ER_US_NJ_SDI_SUTA'], cats['ER_US_NJ_SDI_SUTA'] * self.ER_NJ_SDI) - # self.assertPayrollEqual(cats['EE_US_NJ_FLI_SIT'], cats['EE_US_NJ_FLI_SIT'] * self.EE_NJ_FLI) - # self.assertPayrollEqual(cats['EE_US_NJ_WF_SIT'], cats['EE_US_NJ_WF_SIT'] * self.EE_NJ_WF) - self.assertPayrollEqual(cats['EE_US_SIT'], wh) - - process_payslip(payslip) - - # # Make a new payslip, this one will have maximums - # - remaining_nj_unemp_wages = self.NJ_UNEMP_MAX_WAGE - salary if (self.NJ_UNEMP_MAX_WAGE - 2 * salary < salary) \ - else salary - - self._log('2019 New Jersey tax second payslip:') - payslip = self._createPayslip(employee, '2019-02-01', '2019-02-28') - - payslip.compute_sheet() - - cats = self._getCategories(payslip) - - # self.assertPayrollEqual(cats['WAGE_US_NJ_UNEMP'], remaining_nj_unemp_wages) - self.assertPayrollEqual(cats['ER_US_SUTA'], remaining_nj_unemp_wages * (self.ER_NJ_UNEMP + self.ER_NJ_SDI + self.ER_NJ_WF + self.ER_NJ_FLI)) - self.assertPayrollEqual(cats['EE_US_SUTA'], remaining_nj_unemp_wages * (self.EE_NJ_UNEMP + self.EE_NJ_SDI + self.EE_NJ_WF + self.EE_NJ_FLI)) - - def test_2019_taxes_example2(self): - salary = 1400.00 - - # Tax Percentage Method for Single, taxable pay over $962, under $1346 - wh = -27.58 - - employee = self._createEmployee() - contract = self._createContract(employee, - wage=salary, - state_id=self.get_us_state('NJ'), - nj_njw4_sit_filing_status='married_separate', - nj_njw4_sit_allowances=3, - state_income_tax_additional_withholding=0.0, - #nj_njw4_sit_rate_table='B', - schedule_pay='weekly') - - self.assertEqual(contract.schedule_pay, 'weekly') - - self._log('2019 New Jersey tax first payslip:') - payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31') - - payslip.compute_sheet() - - cats = self._getCategories(payslip) - - self.assertPayrollEqual(cats['EE_US_SIT'], wh) - - - def test_2019_taxes_to_the_limits(self): - salary = 30000.00 - - # Tax Percentage Method for Single, taxable pay over $18750, under 125000 - wh = -1467.51 - - employee = self._createEmployee() - contract = self._createContract(employee, - wage=salary, - state_id=self.get_us_state('NJ'), - nj_njw4_sit_filing_status='married_joint', - nj_njw4_sit_allowances=3, - state_income_tax_additional_withholding=0.0, - # nj_njw4_sit_rate_table='B', - schedule_pay='quarterly') - - self.assertEqual(contract.schedule_pay, 'quarterly') - - self._log('2019 New Jersey tax first payslip:') - payslip = self._createPayslip(employee, '2019-01-01', '2019-03-31') - - payslip.compute_sheet() - - cats = self._getCategories(payslip) - - self.assertPayrollEqual(cats['EE_US_SIT'], wh) diff --git a/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2021.py b/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2021.py new file mode 100755 index 00000000..2b3fc627 --- /dev/null +++ b/l10n_us_hr_payroll/tests/test_us_nj_newjersey_payslip_2021.py @@ -0,0 +1,51 @@ +# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. + +from datetime import date, timedelta +from .common import TestUsPayslip + + +class TestUsNJPayslip(TestUsPayslip): + ### + # 2021 Taxes and Rates + ### + NJ_UNEMP_MAX_WAGE = 36200.0 # Note that this is used for SDI and FLI as well + + ER_NJ_UNEMP = 2.6825 + EE_NJ_UNEMP = 0.3825 + + ER_NJ_SDI = 0.5 + EE_NJ_SDI = 0.47 + + ER_NJ_WF = 0.1175 + EE_NJ_WF = 0.0425 + + ER_NJ_FLI = 0.0 + EE_NJ_FLI = 0.28 + + def _test_sit(self, wage, filing_status, allowances, schedule_pay, date_start, expected_withholding, rate_table=False): + employee = self._createEmployee() + contract = self._createContract(employee, + wage=wage, + state_id=self.get_us_state('NJ'), + nj_njw4_sit_filing_status=filing_status, + nj_njw4_sit_allowances=allowances, + state_income_tax_additional_withholding=0.0, + nj_njw4_sit_rate_table=rate_table, + schedule_pay=schedule_pay) + payslip = self._createPayslip(employee, date_start, date_start + timedelta(days=7)) + payslip.compute_sheet() + cats = self._getCategories(payslip) + self.assertPayrollAlmostEqual(cats.get('EE_US_SIT', 0.0), -expected_withholding if filing_status else 0.0) + + def test_2021_taxes_example1(self): + combined_er_rate = self.ER_NJ_UNEMP + self.ER_NJ_FLI + self.ER_NJ_SDI + self.ER_NJ_WF + self._test_er_suta('NJ', combined_er_rate, date(2021, 1, 1), wage_base=self.NJ_UNEMP_MAX_WAGE, relaxed=True) + combined_ee_rate = self.EE_NJ_UNEMP + self.EE_NJ_FLI + self.EE_NJ_SDI + self.EE_NJ_WF + self._test_ee_suta('NJ', combined_ee_rate, date(2021, 1, 1), wage_base=self.NJ_UNEMP_MAX_WAGE, relaxed=True) + # these expected values come from https://www.state.nj.us/treasury/taxation/pdf/current/njwt.pdf + self._test_sit(300.0, 'single', 1, 'weekly', date(2021, 1, 1), 4.21) + self._test_sit(375.0, 'married_separate', 3, 'weekly', date(2021, 1, 1), 4.76) + self._test_sit(1400.0, 'head_household', 3, 'weekly', date(2021, 1, 1), 27.60) + self._test_sit(1400.0, '', 3, 'weekly', date(2021, 1, 1), 0.00) + self._test_sit(2500.0, 'single', 3, 'bi-weekly', date(2021, 1, 1), 82.66) + self._test_sit(15000.0, 'married_joint', 2, 'monthly', date(2021, 1, 1), 844.85)