mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
ny new york
This commit is contained in:
@@ -1,22 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Wage Base -->
|
||||
<!-- https://www.tax.ny.gov/pdf/current_forms/wt/nys45i.pdf -->
|
||||
<record id="rule_parameter_us_ny_suta_wage_base" model="hr.rule.parameter">
|
||||
<field name="name">US NY New York SUTA Wage Base</field>
|
||||
<field name="code">us_ny_suta_wage_base</field>
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<data noupdate="1">
|
||||
<record id="rule_parameter_us_ny_suta_wage_base_2019" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">11400.0</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_wage_base"/>
|
||||
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_suta_wage_base_2020" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">11600.0</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_wage_base"/>
|
||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_suta_wage_base_2021" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">11800.0</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_wage_base"/>
|
||||
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<!-- Rate -->
|
||||
@@ -25,6 +26,8 @@
|
||||
<field name="code">us_ny_suta_rate</field>
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<!-- todo: New york unemployment Rates are published in February and due quarterly-->
|
||||
<!-- https://dol.ny.gov/unemployment-insurance-rate-information-->
|
||||
<data noupdate="1">
|
||||
<record id="rule_parameter_us_ny_suta_rate_2019" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">2.5</field>
|
||||
@@ -80,26 +83,6 @@
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<data noupdate="1">
|
||||
<record id="rule_parameter_us_ny_sit_tax_rate_2019" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
'weekly': ((163, 0.0400, 0.0), (225, 0.0450, 6.54), (267, 0.0525, 9.31), (412, 0.0590, 11.54), (1551, 0.0633, 20.04), (1862, 0.0657, 92.17), (2070, 0.0758, 112.58), (3032, 0.0808, 128.38), (4142, 0.0707, 206.08), (5104, 0.0856, 284.60), (20722, 0.0735, 366.90), (21684, 0.5208, 1514.85), ('inf', 0.0962, 2015.62)),
|
||||
'bi-weekly': ((327, 0.0400, 0.0), (450, 0.0450, 13.08), (535, 0.0525, 18.62), (823, 0.0590, 23.08), (3102, 0.0633, 40.08), (3723, 0.0657, 184.35), (4140, 0.0758, 225.15), (6063, 0.0808, 256.77), (8285, 0.0707, 412.15), (10208, 0.0856, 569.19), (41444, 0.0735, 733.81), (43367, 0.5208, 3029.69), ('inf', 0.0962, 4021.23)),
|
||||
'semi-monthly': ((354, 0.0400, 0.0), (488, 0.0450, 14.17), (579, 0.0525, 20.17), (892, 0.0590, 25.00), (3360, 0.0633, 43.42), (4033, 0.0657, 199.71), (4485, 0.0758, 243.92), (6569, 0.0808, 278.17), (8975, 0.0707, 446.50), (11058, 0.0856, 616.63), (44898, 0.0735, 794.96), (46981, 0.5208, 3282.17), ('inf', 0.0962, 4367.17)),
|
||||
'monthly': ((708, 0.0400, 0.0), (975, 0.0450, 28.33), (1158, 0.0525, 40.33), (1783, 0.0590, 50.00), (6721, 0.0633, 86.83), (8067, 0.0657, 399.42), (8971, 0.0758, 487.83), (13138, 0.0808, 556.33), (17950, 0.0707, 893.00), (22117, 0.0856, 1233.25), (89796, 0.0735, 1589.92), (93963, 0.5208, 6564.33), ('inf', 0.0962, 8734.33)),
|
||||
'annually': ((8500, 0.0400, 0.0), (11700, 0.0450, 340.00), (13900, 0.0525, 484.00), (21400, 0.0590, 600.00), (80650, 0.0633, 1042.00), (96800, 0.0657, 4793.00), (107650, 0.0758, 5854.00), (157650, 0.0808, 6676.00), (215400, 0.0707, 10716.00), (265400, 0.0856, 14799.00), (1077550, 0.0735, 19079.00), (1127550, 0.5208, 78772.00), ('inf', 0.0962, 104812.00)),
|
||||
},
|
||||
'married': {
|
||||
'weekly': ((163, 0.0400, 0.0), (225, 0.0450, 6.54), (267, 0.0525, 9.31), (412, 0.0590, 11.54), (1551, 0.0633, 20.04), (1862, 0.0657, 92.17), (2070, 0.0783, 112.58), (3032, 0.0833, 128.90), (4068, 0.0785, 209.00), (6215, 0.0707, 290.37), (7177, 0.0916, 442.17), (20722, 0.0735, 530.25), (41449, 0.0765, 1525.83), (42411, 0.9454, 3111.42), ('inf', 0.0962, 4020.46)),
|
||||
'bi-weekly': ((327, 0.0400, 0.0), (450, 0.0450, 13.08), (535, 0.0525, 18.62), (823, 0.0590, 23.08), (3102, 0.0633, 40.08), (3723, 0.0657, 184.35), (4140, 0.0783, 225.15), (6063, 0.0833, 257.81), (8137, 0.0785, 418.00), (12431, 0.0707, 580.73), (14354, 0.0916, 884.35), (41444, 0.0735, 1060.50), (82898, 0.0765, 3051.65), (84821, 0.9454, 6222.85), ('inf', 0.0962, 8040.92)),
|
||||
'semi-monthly': ((354, 0.0400, 0.0), (488, 0.0450, 14.17), (579, 0.0525, 20.17), (892, 0.0590, 25.00), (3360, 0.0633, 43.42), (4033, 0.0657, 199.71), (4485, 0.0783, 243.92), (6569, 0.0833, 279.29), (8815, 0.0785, 452.83), (13476, 0.0707, 629.13), (15550, 0.0916, 958.04), (44898, 0.0735, 1148.88), (89806, 0.0765, 3305.96), (91890, 0.9454, 6741.42), ('inf', 0.0962, 8711.00)),
|
||||
'monthly': ((708, 0.0400, 0.0), (975, 0.0450, 28.33), (1158, 0.0525, 40.33), (1783, 0.0590, 50.00), (6721, 0.0633, 86.83), (8067, 0.0657, 399.42), (8971, 0.0783, 487.83), (13138, 0.0833, 558.58), (17629, 0.0785, 905.67), (26933, 0.0707, 1258.25), (31100, 0.0916, 1916.08), (89796, 0.0735, 2297.75), (179613, 0.0765, 6611.92), (183779, 0.9454, 13482.83), ('inf', 0.0962, 17422.00)),
|
||||
'annually': ((8500, 0.0400, 0.0), (11700, 0.0450, 340.00), (13900, 0.0525, 484.00), (21400, 0.0590, 600.00), (80650, 0.0633, 1042.00), (96800, 0.0657, 4793.00), (107650, 0.0783, 5854.00), (157650, 0.0833, 6703.00), (211550, 0.0785, 10868.00), (323200, 0.0707, 15099.00), (373200, 0.0916, 22993.00), (1077550, 0.0735, 27573.00), (2155350, 0.0765, 79343.00), (2205350, 0.9454, 161794.00), ('inf', 0.0962, 209064.00)),
|
||||
}
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_tax_rate"/>
|
||||
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_sit_tax_rate_2020" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
@@ -270,6 +253,177 @@
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_tax_rate"/>
|
||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</record>
|
||||
<!-- https://www.tax.ny.gov/pdf/publications/withholding/nys50_t_nys_121.pdf-->
|
||||
<record id="rule_parameter_us_ny_sit_tax_rate_2021" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
'weekly': (
|
||||
( 163, 0.0400, 0.00),
|
||||
( 225, 0.0450, 6.54),
|
||||
( 267, 0.0525, 9.31),
|
||||
( 412, 0.0590, 11.54),
|
||||
( 1551, 0.0597, 20.04),
|
||||
( 1862, 0.0633, 88.06),
|
||||
( 2070, 0.0738, 107.73),
|
||||
( 3032, 0.0788, 123.12),
|
||||
( 4142, 0.0683, 198.88),
|
||||
( 5104, 0.0959, 274.75),
|
||||
(20722, 0.0735, 366.96),
|
||||
(21684, 0.5208, 1514.90),
|
||||
('inf', 0.0962, 2015.67),
|
||||
),
|
||||
'bi-weekly': (
|
||||
( 327, 0.0400, 0.00),
|
||||
( 450, 0.0450, 13.08),
|
||||
( 535, 0.0525, 18.62),
|
||||
( 823, 0.0590, 23.08),
|
||||
( 3102, 0.0597, 40.08),
|
||||
( 3723, 0.0633, 176.12),
|
||||
( 4140, 0.0738, 215.46),
|
||||
( 6063, 0.0788, 246.23),
|
||||
( 8285, 0.0683, 397.77),
|
||||
(10208, 0.0959, 549.50),
|
||||
(41444, 0.0735, 733.92),
|
||||
(43367, 0.5208, 3029.81),
|
||||
('inf', 0.0962, 4031.45),
|
||||
),
|
||||
'semi-monthly': (
|
||||
( 354, 0.0400, 0.00),
|
||||
( 488, 0.0450, 14.17),
|
||||
( 579, 0.0525, 20.17),
|
||||
( 892, 0.0590, 25.00),
|
||||
( 3360, 0.0597, 43.42),
|
||||
( 4033, 0.0633, 190.79),
|
||||
( 4485, 0.0738, 233.42),
|
||||
( 6569, 0.0788, 266.75),
|
||||
( 8975, 0.0683, 430.92),
|
||||
(11058, 0.0959, 595.29),
|
||||
(44898, 0.0735, 795.08),
|
||||
(46981, 0.5208, 3282.29),
|
||||
('inf', 0.0962, 4367.29),
|
||||
),
|
||||
'monthly': (
|
||||
( 708, 0.0400, 0.00),
|
||||
( 975, 0.0450, 28.33),
|
||||
( 1158, 0.0525, 40.33),
|
||||
( 1783, 0.0590, 50.00),
|
||||
( 6721, 0.0597, 86.83),
|
||||
( 8067, 0.0633, 381.58),
|
||||
( 8971, 0.0738, 466.83),
|
||||
(13138, 0.0788, 533.50),
|
||||
(17950, 0.0683, 861.83),
|
||||
(22117, 0.0959, 1190.58),
|
||||
(89796, 0.0735, 1590.17),
|
||||
(93963, 0.5208, 6564.58),
|
||||
('inf', 0.0962, 8734.58),
|
||||
),
|
||||
'annually': (
|
||||
( 8500, 0.0400, 0.00),
|
||||
( 11700, 0.0450, 340.00),
|
||||
( 13900, 0.0525, 484.00),
|
||||
( 21400, 0.0590, 600.00),
|
||||
( 80650, 0.0597, 1042.00),
|
||||
( 96800, 0.0633, 4579.00),
|
||||
( 107650, 0.0738, 5602.00),
|
||||
( 157650, 0.0788, 6402.00),
|
||||
( 215400, 0.0683, 10342.00),
|
||||
( 265400, 0.0959, 14287.00),
|
||||
(1077550, 0.0735, 19082.00),
|
||||
(1127550, 0.5208, 78775.00),
|
||||
( 'inf', 0.0962, 104815.00),
|
||||
),
|
||||
},
|
||||
'married': {
|
||||
'weekly': (
|
||||
( 163, 0.0400, 0.00),
|
||||
( 225, 0.0450, 6.54),
|
||||
( 267, 0.0525, 9.31),
|
||||
( 412, 0.0590, 11.54),
|
||||
( 1551, 0.0597, 20.04),
|
||||
( 1862, 0.0633, 88.06),
|
||||
( 2070, 0.0728, 107.73),
|
||||
( 3032, 0.0778, 122.90),
|
||||
( 4068, 0.0799, 197.71),
|
||||
( 6215, 0.0683, 280.54),
|
||||
( 7177, 0.1071, 427.19),
|
||||
(20722, 0.0735, 530.17),
|
||||
(41449, 0.0765, 1525.73),
|
||||
(42411, 0.9454, 3111.35),
|
||||
('inf', 0.0962, 4020.38),
|
||||
),
|
||||
'bi-weekly': (
|
||||
( 327, 0.0400, 0.00),
|
||||
( 450, 0.0450, 13.08),
|
||||
( 535, 0.0525, 18.62),
|
||||
( 823, 0.0590, 23.08),
|
||||
( 3102, 0.0597, 40.08),
|
||||
( 3723, 0.0633, 176.12),
|
||||
( 4140, 0.0728, 215.46),
|
||||
( 6063, 0.0778, 245.81),
|
||||
( 8137, 0.0799, 395.42),
|
||||
(12431, 0.0683, 561.08),
|
||||
(14354, 0.1071, 854.38),
|
||||
(41444, 0.0735, 1060.35),
|
||||
(82898, 0.0765, 3051.46),
|
||||
(84821, 0.9454, 6222.69),
|
||||
('inf', 0.0962, 8040.77),
|
||||
),
|
||||
'semi-monthly': (
|
||||
( 354, 0.0400, 0.00),
|
||||
( 488, 0.0450, 14.17),
|
||||
( 579, 0.0525, 20.17),
|
||||
( 892, 0.0590, 25.00),
|
||||
( 3360, 0.0597, 43.42),
|
||||
( 4033, 0.0633, 190.79),
|
||||
( 4485, 0.0728, 233.42),
|
||||
( 6569, 0.0778, 266.29),
|
||||
( 8815, 0.0799, 428.38),
|
||||
(13467, 0.0683, 607.83),
|
||||
(15550, 0.1071, 925.58),
|
||||
(44898, 0.0735, 1148.71),
|
||||
(89806, 0.0765, 3305.75),
|
||||
(91890, 0.9454, 6741.25),
|
||||
('inf', 0.0962, 8710.83),
|
||||
),
|
||||
'monthly': (
|
||||
( 708, 0.0400, 0.00),
|
||||
( 975, 0.0450, 28.33),
|
||||
( 1158, 0.0525, 40.33),
|
||||
( 1783, 0.0590, 50.00),
|
||||
( 6721, 0.0597, 86.83),
|
||||
( 8067, 0.0633, 381.58),
|
||||
( 8971, 0.0728, 466.83),
|
||||
( 13138, 0.0778, 532.58),
|
||||
( 17629, 0.0799, 856.75),
|
||||
( 26933, 0.0683, 1215.67),
|
||||
( 31100, 0.1071, 1851.17),
|
||||
( 89796, 0.0735, 2297.42),
|
||||
(179613, 0.0765, 6611.50),
|
||||
(183779, 0.9454, 13482.50),
|
||||
( 'inf', 0.0962, 17421.67),
|
||||
),
|
||||
'annually': (
|
||||
( 8500, 0.0400, 0.00),
|
||||
( 11700, 0.0450, 340.00),
|
||||
( 13900, 0.0525, 484.00),
|
||||
( 21400, 0.0590, 600.00),
|
||||
( 80650, 0.0597, 1042.00),
|
||||
( 96800, 0.0633, 4579.00),
|
||||
( 107650, 0.0728, 5602.00),
|
||||
( 157650, 0.0778, 6391.00),
|
||||
( 211550, 0.0799, 10281.00),
|
||||
( 323200, 0.0683, 14588.00),
|
||||
( 373200, 0.1071, 22214.00),
|
||||
(1077550, 0.0735, 27569.00),
|
||||
(2155350, 0.0765, 79338.00),
|
||||
(2205350, 0.9454, 161790.00),
|
||||
( 'inf', 0.0962, 209060.00),
|
||||
),
|
||||
}
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_tax_rate"/>
|
||||
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<record id="rule_parameter_us_ny_sit_over_10_exemption_rate" model="hr.rule.parameter">
|
||||
@@ -278,17 +432,6 @@
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<data noupdate="1">
|
||||
<record id="rule_parameter_us_ny_sit_over_10_exemption_rate_2019" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'weekly': (142.30, 152.90, 19.25),
|
||||
'bi-weekly': (284.60, 305.80, 38.50),
|
||||
'semi-monthly': (308.35, 331.25, 41.65),
|
||||
'monthly': (616.70, 662.50, 83.30),
|
||||
'annual': (7400, 7950, 1000),
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_over_10_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_sit_over_10_exemption_rate_2020" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'weekly': (142.30, 152.90, 19.25),
|
||||
@@ -300,6 +443,17 @@
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_over_10_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_sit_over_10_exemption_rate_2021" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'weekly': (142.30, 152.90, 19.25),
|
||||
'bi-weekly': (284.60, 305.80, 38.50),
|
||||
'semi-monthly': (308.35, 331.25, 41.65),
|
||||
'monthly': (616.70, 662.50, 83.30),
|
||||
'annual': (7400, 7950, 1000),
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_over_10_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||
</record>
|
||||
</data>
|
||||
<!-- Table A - Combined deduction and exemption allowance (Step 1) -->
|
||||
<record id="rule_parameter_us_ny_sit_deduction_exemption_rate" model="hr.rule.parameter">
|
||||
@@ -308,26 +462,6 @@
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<data noupdate="1">
|
||||
<record id="rule_parameter_us_ny_sit_deduction_exemption_rate_2019" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
'weekly': (142.30, 161.55, 180.80, 200.05, 219.30, 238.55, 257.80, 277.05, 296.30, 315.55, 334.80),
|
||||
'bi-weekly': (284.60, 323.10, 361.60, 400.10, 438.60, 477.10, 515.60, 544.10, 592.60, 631.10, 669.60),
|
||||
'semi-monthly': (308.35, 350.0, 391.65, 433.30, 474.95, 516.60, 558.25, 599.90, 641.55, 683.20, 724.85),
|
||||
'monthly': (616.70, 700, 783.30, 866.60, 949.90, 1033.20, 1116.50, 1199.80, 1283.10, 1366.40, 1449.70),
|
||||
'annually': (7400, 8400, 9400, 10400, 11400, 12400, 13400, 14400, 15400, 16400, 17400),
|
||||
},
|
||||
'married': {
|
||||
'weekly': (152.90, 172.15, 191.40, 210.65, 229.90, 249.15, 268.40, 287.65, 306.90, 326.15, 345.40),
|
||||
'bi-weekly': (305.80, 344.30, 382.80, 421.30, 459.80, 498.30, 536.80, 575.30, 613.80, 652.30, 690.80),
|
||||
'semi-monthly': (331.25, 372.90, 414.55, 456.20, 497.85, 539.50, 581.15, 622.80, 664.45, 706.10, 747.75),
|
||||
'monthly': (662.50, 745.80, 829.10, 912.40, 995.70, 1079.00, 1162.30, 1245.60, 1328.90, 1412.20, 1495.50),
|
||||
'annually': (7950, 8950, 9950, 10950, 11950, 12950, 13950, 14950, 15950, 16950, 17950),
|
||||
},
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_deduction_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_sit_deduction_exemption_rate_2020" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
@@ -348,6 +482,26 @@
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_deduction_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</record>
|
||||
<record id="rule_parameter_us_ny_sit_deduction_exemption_rate_2021" model="hr.rule.parameter.value">
|
||||
<field name="parameter_value">{
|
||||
'single': {
|
||||
'weekly': (142.30, 161.55, 180.80, 200.05, 219.30, 238.55, 257.80, 277.05, 296.30, 315.55, 334.80),
|
||||
'bi-weekly': (284.60, 323.10, 361.60, 400.10, 438.60, 477.10, 515.60, 544.10, 592.60, 631.10, 669.60),
|
||||
'semi-monthly': (308.35, 350.0, 391.65, 433.30, 474.95, 516.60, 558.25, 599.90, 641.55, 683.20, 724.85),
|
||||
'monthly': (616.70, 700, 783.30, 866.60, 949.90, 1033.20, 1116.50, 1199.80, 1283.10, 1366.40, 1449.70),
|
||||
'annually': (7400, 8400, 9400, 10400, 11400, 12400, 13400, 14400, 15400, 16400, 17400),
|
||||
},
|
||||
'married': {
|
||||
'weekly': (152.90, 172.15, 191.40, 210.65, 229.90, 249.15, 268.40, 287.65, 306.90, 326.15, 345.40),
|
||||
'bi-weekly': (305.80, 344.30, 382.80, 421.30, 459.80, 498.30, 536.80, 575.30, 613.80, 652.30, 690.80),
|
||||
'semi-monthly': (331.25, 372.90, 414.55, 456.20, 497.85, 539.50, 581.15, 622.80, 664.45, 706.10, 747.75),
|
||||
'monthly': (662.50, 745.80, 829.10, 912.40, 995.70, 1079.00, 1162.30, 1245.60, 1328.90, 1412.20, 1495.50),
|
||||
'annually': (7950, 8950, 9950, 10950, 11950, 12950, 13950, 14950, 15950, 16950, 17950),
|
||||
},
|
||||
}</field>
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_deduction_exemption_rate"/>
|
||||
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<!-- Partners and Contribution Registers -->
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
|
||||
|
||||
from .common import TestUsPayslip, process_payslip
|
||||
|
||||
|
||||
class TestUsNYPayslip(TestUsPayslip):
|
||||
###
|
||||
# Taxes and Rates
|
||||
###
|
||||
NY_UNEMP_MAX_WAGE = 11400.0
|
||||
NY_UNEMP = 2.5
|
||||
NY_RSF = 0.075
|
||||
NY_MCTMT = 0.0
|
||||
|
||||
def test_single_example1(self):
|
||||
salary = 400
|
||||
schedule_pay = 'weekly'
|
||||
allowances = 3
|
||||
additional_withholding = 0
|
||||
filing_status = 'single'
|
||||
additional = 0.0
|
||||
wh = -8.20
|
||||
|
||||
employee = self._createEmployee()
|
||||
|
||||
contract = self._createContract(employee,
|
||||
wage=salary,
|
||||
state_id=self.get_us_state('NY'),
|
||||
ny_it2104_sit_filing_status=filing_status,
|
||||
state_income_tax_additional_withholding=additional,
|
||||
ny_it2104_sit_allowances=allowances,
|
||||
schedule_pay=schedule_pay)
|
||||
|
||||
self.assertEqual(contract.schedule_pay, 'weekly')
|
||||
self._log('2018 New York tax first payslip:')
|
||||
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31')
|
||||
|
||||
payslip.compute_sheet()
|
||||
|
||||
cats = self._getCategories(payslip)
|
||||
|
||||
self.assertPayrollEqual(cats['NY_UNEMP'], cats['NY_UNEMP_WAGES'] * self.NY_UNEMP)
|
||||
self.assertPayrollEqual(cats['NY_RSF'], cats['NY_UNEMP_WAGES'] * self.NY_RSF)
|
||||
self.assertPayrollEqual(cats['NY_MCTMT'], cats['NY_UNEMP_WAGES'] * self.NY_MCTMT)
|
||||
self.assertPayrollEqual(cats['EE_US_SIT'], wh)
|
||||
|
||||
process_payslip(payslip)
|
||||
|
||||
def test_married_example2(self):
|
||||
salary = 5000
|
||||
schedule_pay = 'semi-monthly'
|
||||
allowances = 3
|
||||
additional = 0
|
||||
filing_status = 'married'
|
||||
wh = -284.19
|
||||
|
||||
employee = self._createEmployee()
|
||||
contract = self._createContract(employee,
|
||||
wage=salary,
|
||||
state_id=self.get_us_state('NY'),
|
||||
ny_it2104_sit_filing_status=filing_status,
|
||||
state_income_tax_additional_withholding=additional,
|
||||
ny_it2104_sit_allowances=allowances,
|
||||
schedule_pay=schedule_pay)
|
||||
|
||||
self._log('2019 New York tax first payslip:')
|
||||
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31')
|
||||
|
||||
payslip.compute_sheet()
|
||||
|
||||
cats = self._getCategories(payslip)
|
||||
|
||||
self.assertPayrollEqual(cats['NY_UNEMP'], cats['NY_UNEMP_WAGES'] * self.NY_UNEMP)
|
||||
self.assertPayrollEqual(cats['NY_RSF'], cats['NY_UNEMP_WAGES'] * self.NY_RSF)
|
||||
self.assertPayrollEqual(cats['NY_MCTMT'], cats['NY_UNEMP_WAGES'] * self.NY_MCTMT)
|
||||
self.assertPayrollEqual(cats['EE_US_SIT'], wh)
|
||||
|
||||
process_payslip(payslip)
|
||||
|
||||
def test_single_example3(self):
|
||||
salary = 50000
|
||||
schedule_pay = 'monthly'
|
||||
allowances = 3
|
||||
additional = 0
|
||||
filing_status = 'single'
|
||||
wh = -3575.63
|
||||
|
||||
employee = self._createEmployee()
|
||||
|
||||
contract = self._createContract(employee,
|
||||
wage=salary,
|
||||
state_id=self.get_us_state('NY'),
|
||||
ny_it2104_sit_filing_status=filing_status,
|
||||
state_income_tax_additional_withholding=additional,
|
||||
ny_it2104_sit_allowances=allowances,
|
||||
schedule_pay=schedule_pay)
|
||||
|
||||
self._log('2019 New York 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_exempt_example3(self):
|
||||
salary = 50000
|
||||
schedule_pay = 'monthly'
|
||||
allowances = 3
|
||||
additional = 0
|
||||
filing_status = ''
|
||||
wh = 0.0
|
||||
|
||||
employee = self._createEmployee()
|
||||
|
||||
contract = self._createContract(employee,
|
||||
wage=salary,
|
||||
state_id=self.get_us_state('NY'),
|
||||
ny_it2104_sit_filing_status=filing_status,
|
||||
state_income_tax_additional_withholding=additional,
|
||||
ny_it2104_sit_allowances=allowances,
|
||||
schedule_pay=schedule_pay)
|
||||
|
||||
self._log('2019 New York 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)
|
||||
|
||||
39
l10n_us_hr_payroll/tests/test_us_ny_new_york_payslip_2021.py
Normal file
39
l10n_us_hr_payroll/tests/test_us_ny_new_york_payslip_2021.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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 TestUsNYPayslip(TestUsPayslip):
|
||||
###
|
||||
# 2021 Taxes and Rates
|
||||
###
|
||||
NY_UNEMP_MAX_WAGE = 11800.0
|
||||
NY_UNEMP = 2.5 #todo: update Feb 2021
|
||||
NY_RSF = 0.075 #todo: update Feb 2021
|
||||
NY_MCTMT = 0.0 #todo: update Feb 2021
|
||||
|
||||
def _test_sit(self, wage, filing_status, additional_withholding, allowances, schedule_pay, date_start, expected_withholding):
|
||||
employee = self._createEmployee()
|
||||
contract = self._createContract(employee,
|
||||
wage=wage,
|
||||
state_id=self.get_us_state('NY'),
|
||||
ny_it2104_sit_filing_status=filing_status,
|
||||
state_income_tax_additional_withholding=additional_withholding,
|
||||
ny_it2104_sit_allowances=allowances,
|
||||
schedule_pay=schedule_pay)
|
||||
payslip = self._createPayslip(employee, date_start, date_start + timedelta(days=7))
|
||||
payslip.compute_sheet()
|
||||
cats = self._getCategories(payslip)
|
||||
|
||||
self._log('Computed period tax: ' + str(expected_withholding))
|
||||
self.assertPayrollAlmostEqual(cats.get('EE_US_SIT', 0.0), -expected_withholding)
|
||||
|
||||
def test_2020_taxes_example(self):
|
||||
combined_er_rate = self.NY_UNEMP + self.NY_RSF + self.NY_MCTMT
|
||||
self._test_er_suta('NY', combined_er_rate, date(2021, 1, 1), wage_base=self.NY_UNEMP_MAX_WAGE, relaxed=True)
|
||||
self._test_sit(400.0, 'single', 0.0, 3, 'weekly', date(2021, 1, 1), 8.20)
|
||||
self._test_sit(10000.0, 'single', 0.0, 3, 'monthly', date(2021, 1, 1), 546.30)
|
||||
self._test_sit(8000.0, 'married', 0.0, 5, 'monthly', date(2021, 1, 1), 394.24)
|
||||
self._test_sit(4500.0, 'married', 10.0, 3, 'semi-monthly', date(2021, 1, 1), 244.21)
|
||||
self._test_sit(50000.0, '', 0.0, 0, 'monthly', date(2021, 1, 1), 0.00)
|
||||
Reference in New Issue
Block a user