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="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</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>
|
||||
|
||||
<!-- Rate -->
|
||||
@@ -21,6 +26,7 @@
|
||||
<field name="country_id" ref="base.us"/>
|
||||
</record>
|
||||
<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">
|
||||
<field name="parameter_value">1.0</field>
|
||||
<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="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</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>
|
||||
<!-- 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">
|
||||
@@ -148,6 +167,101 @@
|
||||
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_tax_rate"/>
|
||||
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
||||
</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>
|
||||
|
||||
<!-- 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