mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
VT Vermont
This commit is contained in:
@@ -12,6 +12,11 @@
|
|||||||
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_wage_base"/>
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_wage_base"/>
|
||||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record id="rule_parameter_us_vt_suta_wage_base_2021" model="hr.rule.parameter.value">
|
||||||
|
<field name="parameter_value">14100.0</field>
|
||||||
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_wage_base"/>
|
||||||
|
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<!-- Rate -->
|
<!-- Rate -->
|
||||||
@@ -21,6 +26,7 @@
|
|||||||
<field name="country_id" ref="base.us"/>
|
<field name="country_id" ref="base.us"/>
|
||||||
</record>
|
</record>
|
||||||
<data noupdate="1">
|
<data noupdate="1">
|
||||||
|
<!-- Unchanged in 2021 https://labor.vermont.gov/unemployment-insurance/ui-employers/unemployment-tax-rates -->
|
||||||
<record id="rule_parameter_us_vt_suta_rate_2020" model="hr.rule.parameter.value">
|
<record id="rule_parameter_us_vt_suta_rate_2020" model="hr.rule.parameter.value">
|
||||||
<field name="parameter_value">1.0</field>
|
<field name="parameter_value">1.0</field>
|
||||||
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_rate"/>
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_rate"/>
|
||||||
@@ -46,6 +52,19 @@
|
|||||||
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_allowances_rate"/>
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_allowances_rate"/>
|
||||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||||
</record>
|
</record>
|
||||||
|
<!-- https://tax.vermont.gov/sites/tax/files/documents/GB-1210-2021.pdf -->
|
||||||
|
<record id="rule_parameter_us_vt_sit_allowances_rate_2021" model="hr.rule.parameter.value">
|
||||||
|
<field name="parameter_value">{
|
||||||
|
'weekly' : 84.62,
|
||||||
|
'bi-weekly' : 169.23,
|
||||||
|
'semi-monthly': 183.33,
|
||||||
|
'monthly' : 366.67,
|
||||||
|
'quarterly' : 1100.00,
|
||||||
|
'annually': 4400.00,
|
||||||
|
}</field>
|
||||||
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_allowances_rate"/>
|
||||||
|
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
<!-- Table based on https://tax.vermont.gov/sites/tax/files/documents/WithholdingInstructions.pdf-->
|
<!-- Table based on https://tax.vermont.gov/sites/tax/files/documents/WithholdingInstructions.pdf-->
|
||||||
<record id="rule_parameter_us_vt_sit_tax_rate" model="hr.rule.parameter">
|
<record id="rule_parameter_us_vt_sit_tax_rate" model="hr.rule.parameter">
|
||||||
@@ -148,6 +167,101 @@
|
|||||||
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_tax_rate"/>
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_tax_rate"/>
|
||||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||||
</record>
|
</record>
|
||||||
|
<!-- https://tax.vermont.gov/sites/tax/files/documents/GB-1210-2021.pdf -->
|
||||||
|
<record id="rule_parameter_us_vt_sit_tax_rate_2021" model="hr.rule.parameter.value">
|
||||||
|
<field name="parameter_value">{
|
||||||
|
'single': {
|
||||||
|
'weekly': (
|
||||||
|
( 61, 0.00, 0.00),
|
||||||
|
( 849, 0.00, 3.35),
|
||||||
|
( 1969, 26.40, 6.60),
|
||||||
|
( 4041, 100.32, 7.60),
|
||||||
|
('inf', 257.79, 8.75),
|
||||||
|
),
|
||||||
|
'bi-weekly': (
|
||||||
|
( 122, 0.00, 0.00),
|
||||||
|
( 1697, 0.00, 3.35),
|
||||||
|
( 3938, 52.76, 6.60),
|
||||||
|
( 8082, 200.67, 7.60),
|
||||||
|
('inf', 515.61, 8.75),
|
||||||
|
),
|
||||||
|
'semi-monthly': (
|
||||||
|
( 132, 0.00, 0.00),
|
||||||
|
( 1839, 0.00, 3.35),
|
||||||
|
( 4266, 57.18, 6.60),
|
||||||
|
( 8755, 217.37, 7.60),
|
||||||
|
('inf', 558.53, 8.75),
|
||||||
|
),
|
||||||
|
'monthly': (
|
||||||
|
( 265, 0.00, 0.00),
|
||||||
|
( 3677, 0.00, 3.35),
|
||||||
|
( 8531, 114.30, 6.60),
|
||||||
|
(17510, 434.67, 7.60),
|
||||||
|
('inf', 1117.07, 8.75),
|
||||||
|
),
|
||||||
|
'quarterly': (
|
||||||
|
( 794, 0.00, 0.00),
|
||||||
|
(11031, 0.00, 3.35),
|
||||||
|
(25594, 342.94, 6.60),
|
||||||
|
(52531, 1304.10, 7.60),
|
||||||
|
('inf', 3351.31, 8.75),
|
||||||
|
),
|
||||||
|
'annually': (
|
||||||
|
( 3175, 0.00, 0.00),
|
||||||
|
( 44125, 0.00, 3.35),
|
||||||
|
(102375, 1371.83, 6.60),
|
||||||
|
(210125, 5216.33, 7.60),
|
||||||
|
( 'inf', 13405.33, 8.75),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
'married': {
|
||||||
|
'weekly': (
|
||||||
|
( 183, 0.00, 0.00),
|
||||||
|
( 1499, 0.00, 3.35),
|
||||||
|
( 3363, 44.09, 6.60),
|
||||||
|
( 5028, 167.11, 7.60),
|
||||||
|
('inf', 293.65, 8.75),
|
||||||
|
),
|
||||||
|
'bi-weekly': (
|
||||||
|
( 366, 0.00, 0.00),
|
||||||
|
( 2997, 0.00, 3.35),
|
||||||
|
( 6726, 88.14, 6.60),
|
||||||
|
(10057, 334.25, 7.60),
|
||||||
|
('inf', 587.41, 8.75),
|
||||||
|
),
|
||||||
|
'semi-monthly': (
|
||||||
|
( 397, 0.00, 0.00),
|
||||||
|
( 3247, 0.00, 3.35),
|
||||||
|
( 7286, 95.48, 6.60),
|
||||||
|
(10895, 362.05, 7.60),
|
||||||
|
('inf', 636.33, 8.75),
|
||||||
|
),
|
||||||
|
'monthly': (
|
||||||
|
( 794, 0.00, 0.00),
|
||||||
|
( 6494, 0.00, 3.35),
|
||||||
|
(14573, 190.95, 6.60),
|
||||||
|
(21790, 724.16, 7.60),
|
||||||
|
('inf', 1272.66, 8.75),
|
||||||
|
),
|
||||||
|
'quarterly': (
|
||||||
|
( 2381, 0.00, 0.00),
|
||||||
|
(19481, 0.00, 3.35),
|
||||||
|
(43719, 572.85, 6.60),
|
||||||
|
(65719, 2172.56, 7.60),
|
||||||
|
('inf', 3817.96, 8.75),
|
||||||
|
),
|
||||||
|
'annually': (
|
||||||
|
( 9525, 0.00, 0.00),
|
||||||
|
( 77925, 0.00, 3.35),
|
||||||
|
(174875, 2291.40, 6.60),
|
||||||
|
(261475, 8690.10, 7.60),
|
||||||
|
( 'inf', 15271.70, 8.75),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
}</field>
|
||||||
|
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_tax_rate"/>
|
||||||
|
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<!-- Partners and Contribution Registers -->
|
<!-- Partners and Contribution Registers -->
|
||||||
|
|||||||
37
l10n_us_hr_payroll/tests/test_us_vt_vermont_payslip_2021.py
Executable file
37
l10n_us_hr_payroll/tests/test_us_vt_vermont_payslip_2021.py
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
# 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 TestUsVTPayslip(TestUsPayslip):
|
||||||
|
###
|
||||||
|
# 2021 Taxes and Rates
|
||||||
|
###
|
||||||
|
VT_UNEMP_MAX_WAGE = 14100.0
|
||||||
|
VT_UNEMP = 1.0
|
||||||
|
# Calculation based on example https://tax.vermont.gov/sites/tax/files/documents/WithholdingInstructions.pdf
|
||||||
|
|
||||||
|
def _test_sit(self, wage, filing_status, allowances, additional_withholding, exempt, schedule_pay, date_start, expected_withholding):
|
||||||
|
employee = self._createEmployee()
|
||||||
|
contract = self._createContract(employee,
|
||||||
|
wage=wage,
|
||||||
|
state_id=self.get_us_state('VT'),
|
||||||
|
vt_w4vt_sit_filing_status=filing_status,
|
||||||
|
vt_w4vt_sit_allowances=allowances,
|
||||||
|
state_income_tax_additional_withholding=additional_withholding,
|
||||||
|
state_income_tax_exempt=exempt,
|
||||||
|
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.assertPayrollEqual(cats.get('EE_US_SIT', 0.0), -expected_withholding)
|
||||||
|
|
||||||
|
def test_2021_taxes_example(self):
|
||||||
|
self._test_er_suta('VT', self.VT_UNEMP, date(2021, 1, 1), wage_base=self.VT_UNEMP_MAX_WAGE)
|
||||||
|
self._test_sit(1800, 'married', 2, 0, False, 'weekly', date(2021, 1, 1), 52.79)
|
||||||
|
self._test_sit(1800, 'married', 2, 10, False, 'weekly', date(2021, 1, 1), 62.79)
|
||||||
|
self._test_sit(1000, 'single', 1, 0, True, 'weekly', date(2021, 1, 1), 0.00)
|
||||||
|
self._test_sit(8000, 'single', 1, 10, False, 'bi-weekly', date(2021, 1, 1), 506.52)
|
||||||
Reference in New Issue
Block a user