NJ New Jersey

This commit is contained in:
Jared Self
2021-01-12 18:10:05 -07:00
parent 3c36600c9d
commit 308fd1854f
3 changed files with 422 additions and 532 deletions

View File

@@ -7,16 +7,17 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">34400.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_nj_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">35300.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
<!-- https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_suta_wage_base_2021" model="hr.rule.parameter.value">
<field name="parameter_value">36200.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_wage_base"/>
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
@@ -27,11 +28,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.6825</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.6825</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_rate"/>
@@ -45,11 +42,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_suta_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.3825</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_suta_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.3825</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_suta_ee_rate"/>
@@ -64,11 +57,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_sdi_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sdi_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_sdi_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sdi_rate"/>
@@ -82,16 +71,17 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_sdi_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.17</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sdi_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_nj_sdi_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.26</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sdi_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
<!-- https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_sdi_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.47</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sdi_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- WF -->
@@ -101,11 +91,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_wf_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.1175</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_wf_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_wf_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.1175</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_wf_rate"/>
@@ -119,11 +105,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_wf_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.0425</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_wf_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_wf_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.0425</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_wf_ee_rate"/>
@@ -138,11 +120,7 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_fli_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_fli_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- 2021 unchanged https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_fli_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_fli_rate"/>
@@ -156,16 +134,17 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_fli_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.08</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_fli_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_nj_fli_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.16</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_fli_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
<!-- https://www.nj.gov/labor/ea/employer-services/rate-info/ -->
<record id="rule_parameter_us_nj_fli_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.28</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_fli_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- SIT -->
@@ -175,351 +154,6 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'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),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- Table from Percentage Method Calculations https://www.state.nj.us/treasury/taxation/pdf/current/njwt.pdf -->
<record id="rule_parameter_us_nj_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
@@ -866,6 +500,352 @@
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
<!-- Table from Percentage Method Calculations https://www.nj.gov/treasury/taxation/pdf/withholdingtables.pdf -->
<record id="rule_parameter_us_nj_sit_rate_2021" model="hr.rule.parameter.value">
<field name="parameter_value">{
'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),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sit_rate"/>
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_nj_sit_allowance_rate" model="hr.rule.parameter">
@@ -874,21 +854,8 @@
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nj_sit_allowance_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'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,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nj_sit_allowance_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- Allownce Value table https://www.state.nj.us/treasury/taxation/pdf/current/njwt.pdf -->
<!-- Unchanged in 2021 https://www.nj.gov/treasury/taxation/pdf/withholdingtables.pdf -->
<record id="rule_parameter_us_nj_sit_allowance_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 19.20,

View File

@@ -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)

View File

@@ -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)