This commit is contained in:
Jared Self
2021-01-13 16:59:15 -07:00
parent 39db5caa7d
commit 1874a69fd9
3 changed files with 21 additions and 120 deletions

View File

@@ -7,11 +7,7 @@
<field name="country_id" ref="base.us"/> <field name="country_id" ref="base.us"/>
</record> </record>
<data noupdate="1"> <data noupdate="1">
<record id="rule_parameter_us_tx_suta_wage_base_2019" model="hr.rule.parameter.value"> <!-- Unchanged in 2021 https://www.twc.texas.gov/businesses/your-tax-rates -->
<field name="parameter_value">9000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_tx_suta_wage_base_2020" model="hr.rule.parameter.value"> <record id="rule_parameter_us_tx_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9000.0</field> <field name="parameter_value">9000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_wage_base"/> <field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_wage_base"/>
@@ -26,11 +22,7 @@
<field name="country_id" ref="base.us"/> <field name="country_id" ref="base.us"/>
</record> </record>
<data noupdate="1"> <data noupdate="1">
<record id="rule_parameter_us_tx_suta_rate_2019" model="hr.rule.parameter.value"> <!-- Unchanged for 2021 https://www.twc.texas.gov/businesses/new-texas-employer-information#newEmployerTaxRateInformation -->
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_tx_suta_rate_2020" model="hr.rule.parameter.value"> <record id="rule_parameter_us_tx_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field> <field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_rate"/> <field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_rate"/>
@@ -44,11 +36,7 @@
<field name="country_id" ref="base.us"/> <field name="country_id" ref="base.us"/>
</record> </record>
<data noupdate="1"> <data noupdate="1">
<record id="rule_parameter_us_tx_suta_oa_rate_2019" model="hr.rule.parameter.value"> <!-- Unchanged in 2021 https://www.twc.texas.gov/businesses/your-tax-rates#:~:text=The%202020%20Obligation%20Assessment%20Ratio%20(%20OA%20Ratio)%20is%200.00%20percent. -->
<field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_oa_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_tx_suta_oa_rate_2020" model="hr.rule.parameter.value"> <record id="rule_parameter_us_tx_suta_oa_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.0</field> <field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_oa_rate"/> <field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_oa_rate"/>
@@ -62,11 +50,7 @@
<field name="country_id" ref="base.us"/> <field name="country_id" ref="base.us"/>
</record> </record>
<data noupdate="1"> <data noupdate="1">
<record id="rule_parameter_us_tx_suta_etia_rate_2019" model="hr.rule.parameter.value"> <!-- Unchanged in 2021 https://www.twc.texas.gov/businesses/your-tax-rates#:~:text=The%20fifth%20component%20of%20your,wages%20paid%20by%20an%20employer. -->
<field name="parameter_value">0.1</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_etia_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_tx_suta_etia_rate_2020" model="hr.rule.parameter.value"> <record id="rule_parameter_us_tx_suta_etia_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.1</field> <field name="parameter_value">0.1</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_etia_rate"/> <field name="rule_parameter_id" ref="rule_parameter_us_tx_suta_etia_rate"/>

View File

@@ -1,100 +0,0 @@
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
from .common import TestUsPayslip, process_payslip
from odoo.addons.l10n_us_hr_payroll.models.hr_contract import USHRContract
class TestUsTXPayslip(TestUsPayslip):
###
# 2019 Taxes and Rates
###
TX_UNEMP_MAX_WAGE = 9000.0
TX_UNEMP = -2.7 / 100.0
TX_OA = 0.0
TX_ETIA = -0.1 / 100.0
def test_2019_taxes(self):
salary = 5000.0
employee = self._createEmployee()
contract = self._createContract(employee,
wage=salary,
state_id=self.get_us_state('TX'),
)
self._log('2019 Texas tax first payslip:')
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
self.assertPayrollEqual(rules['ER_US_TX_SUTA'], salary * self.TX_UNEMP)
self.assertPayrollEqual(rules['ER_US_TX_SUTA_OA'], salary * self.TX_OA)
self.assertPayrollEqual(rules['ER_US_TX_SUTA_ETIA'], salary * self.TX_ETIA)
process_payslip(payslip)
# Make a new payslip, this one will have maximums
remaining_tx_unemp_wages = self.TX_UNEMP_MAX_WAGE - salary if (self.TX_UNEMP_MAX_WAGE - 2*salary < salary) \
else salary
self._log('2019 Texas tax second payslip:')
payslip = self._createPayslip(employee, '2019-02-01', '2019-02-28')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
self.assertPayrollEqual(rules['ER_US_TX_SUTA'], remaining_tx_unemp_wages * self.TX_UNEMP)
def test_2019_taxes_with_external(self):
salary = 5000.0
external_wages = 6000.0
employee = self._createEmployee()
contract = self._createContract(employee,
wage=salary,
state_id=self.get_us_state('TX'),
external_wages=external_wages,
)
self._log('2019 Texas_external tax first payslip:')
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
expected_wage = self.TX_UNEMP_MAX_WAGE - external_wages
self.assertPayrollEqual(rules['ER_US_TX_SUTA'], expected_wage * self.TX_UNEMP)
self.assertPayrollEqual(rules['ER_US_TX_SUTA_OA'], expected_wage * self.TX_OA)
self.assertPayrollEqual(rules['ER_US_TX_SUTA_ETIA'], expected_wage * self.TX_ETIA)
def test_2019_taxes_with_state_exempt(self):
salary = 5000.0
external_wages = 6000.0
employee = self._createEmployee()
contract = self._createContract(employee,
wage=salary,
state_id=self.get_us_state('TX'),
external_wages=external_wages,
futa_type=USHRContract.FUTA_TYPE_BASIC)
self._log('2019 Texas_external tax first payslip:')
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
self.assertPayrollEqual(rules.get('ER_US_TX_SUTA', 0.0), 0.0)
self.assertPayrollEqual(rules.get('ER_US_TX_SUTA_OA', 0.0), 0.0)
self.assertPayrollEqual(rules.get('ER_US_TX_SUTA_ETIA', 0.0), 0.0)

View File

@@ -0,0 +1,17 @@
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
from datetime import date
from .common import TestUsPayslip
class TestUsTXPayslip(TestUsPayslip):
###
# 2020 Taxes and Rates
###
TX_UNEMP_MAX_WAGE = 9000.0
TX_UNEMP = 2.7
TX_OA = 0.0
TX_ETIA = 0.1
def test_2020_taxes(self):
combined_rate = self.TX_UNEMP + self.TX_OA + self.TX_ETIA
self._test_er_suta('TX', combined_rate, date(2020, 1, 1), wage_base=self.TX_UNEMP_MAX_WAGE)