[IMP] l10n_us_hr_payroll: Rules and improvements. (+104 squashed commits)

Squashed commits:
[9ca3d040] [FIX] l10n_us_hr_payroll: payslip category sum over date range now includes child categories
[7a92b96e] [FIX] l10n_us_hr_payroll: remove overwrite to correct wage calculation above
[45d130ce] [IMP] l10n_us_hr_payroll: Add migration code to handle known issues from Odoo S.A. migrations.
[54bffced] [FIX] l10n_us_hr_payroll: add missing `semi-monthly` as a default schedule pay
[d7206395] [IMP] l10n_us_hr_payroll: common test call paramaterize defaults for Structure Type and Resource Calendar
[a1174740] [FIX] l10n_us_hr_payroll : Fixed exempt test case for 2019.
[2d8ec31b] [IMP] l10n_us_hr_payroll: Improved Tax table and improved Test case for NJ New Jersey 2020
[51f61ab5] [IMP] l10n_us_hr_payroll: Added comment and improved Test case for MS Mississippi 2020
[5bfe38f3] [IMP] l10n_us_hr_payroll: Improved Test case for MI Michigan 2020
[c21aa7a7] [IMP] l10n_us_hr_payroll: Added comment for MN Minnesota 2020
[ed67319a] [IMP] l10n_us_hr_payroll: Added comment and improved Test case for MO Missouri 2020
[cc68ea2e] [IMP] l10n_us_hr_payroll: Added Tax table and improved Test case for MT Montana 2020
[9450418c] [IMP] l10n_us_hr_payroll: Added Tax table and improved Test case for ID Idaho 2020
[c389748c] [IMP] l10n_us_hr_payroll: Added Tax table and improved Test case for KY Kentucky 2020
[6d4171fc] [IMP] l10n_us_hr_payroll: Reformat tax table, improved comments and test case for IA Iowa 2020
[77588bc6] [IMP] l10n_us_hr_payroll: Improved Tax table and Test case for HI Hawaii 2020
[585f8cbf] [IMP] l10n_us_hr_payroll: Added Tax table for 2020 and improved Test case for GA Georgia 2020
[92a89e59] [IMP] l10n_us_hr_payroll: Reformat tax table, improved comments and test case for CA California 2020
[785b33e3] [IMP] l10n_us_hr_payroll: Improved comments and test case for CT Connecticut 2020
[13198a9e] [IMP] l10n_us_hr_payroll: Improved test case for CO Colorado 2020
[c65b62a7] [IMP] l10n_us_hr_payroll: Improved comments and test case for AR Arkansas 2020
[e01eeb65] [IMP] l10n_us_hr_payroll: Improved test case for AZ Arizona 2020
[5cf0b69e] [IMP] l10n_us_hr_payroll: Improved comments, Tax table, filing status and test case for AL Alabama 2020
[64436b6e] [IMP] l10n_us_hr_payroll: Improved comments and test case for NM New Mexico 2020
[c395c8a9] [IMP] l10n_us_hr_payroll: Added Comment, removed one filing status which was not used in calculation and improve test case for exempt for NC North Carolina 2020
[ff4adfe8] [IMP] l10n_us_hr_payroll: Comment add for table for VA Virginia 2020
[9fc9b3b6] [IMP] l10n_us_hr_payroll: Reformat Tax table and changed wage for VT Vermont 2020
[5c96026b] [IMP] l10n_us_hr_payroll: Reformat Tax table and changed SUTA rate for RI Rhode Island 2020
[2a2abb62] [IMP] l10n_us_hr_payroll: Reformat Tax table, changed SUTA rate and improved test case for UT Utah 2020.
[42edfc06] [IMP] l10n_us_hr_payroll: Refactored Tax table, changed filing status string and Improved test case for KS Kansas 2020.
[733e721a] [IMP] l10n_us_hr_payroll: Reformat Tax table, changed field string and improved test case for OK Oklahoma 2020
[7c2d9a20] [IMP] l10n_us_hr_payroll: Reformat Tax table for WV West Virginia 2020.
[91630c86] [IMP] l10n_us_hr_payroll: Refactored Tax table, changed tax rate and added additional withholding field. Improved test case for ME Maine 2020.
[9c62ebaf] [IMP] l10n_us_hr_payroll: Refactored Tax table and Improved test case for NE Nebraska 2020.
[88118297] [IMP] l10n_us_hr_payroll: Refactored  Tax table and Improved test case for ME Maine 2020.
[641bb815] [IMP] l10n_us_hr_payroll: Refactored sit rate tax table and added allowance field and apply on calculation. Also Improved test case for for ND North Dakota 2020.
[f6f81615] [IMP] l10n_us_hr_payroll: Changed Form name and additional withholding field string for IN Indiana 2020.
[e4c9774f] [IMP] l10n_us_hr_payroll: Added additional withholding, changed suta rate for 2020 and Improved test for SC South Carolina 2020.
[91887067] [IMP] l10n_us_hr_payroll: Improved test and restructured table for WI Wisconsin 2020.
[9110d174] [FIX] l10n_us_hr_payroll: Updated NY New York 2020 rates and tests.
[1a7c26d8] [FIX]  l10n_us_hr_payroll: Added exempt on filing status for NY.
[8f447aaa] [IMP] l10n_us_hr_payroll: Changed wage base and suta rate for NY New York 2019/2020.
[e9a53918] [IMP] l10n_us_hr_payroll: Changed suta rate for WY Wyoming 2020.

H2914
[eddc6431] [IMP] l10n_us_hr_payroll: Changed suta rate and added exempt.

H2816
[dff4a2ca] [IMP] l10n_us_hr_payroll: For Rhode Island 13.0
[baea9412] [IMP] l10n_us_hr_payroll: For West Virginia 13.0
[8fed8e7b] [IMP] l10n_us_hr_payroll: For Wisconsin 13.0
[57182a87] [IMP] l10n_us_hr_payroll: For South Dakota 13.0
[1011c62e] [IMP] l10n_us_hr_payroll: For Tennessee 13.0
[688a3cc1] [IMP] l10n_us_hr_payroll: For Utah 13.0
[ded656db] [IMP] l10n_us_hr_payroll: For Vermont 13.0
[a0da1841] [IMP] l10n_us_hr_payroll: Port `l10n_us_wy_hr_payroll` WY Wyoming including migration.
[977cc3af] [IMP] l10n_us_hr_payroll: For Oklahoma 13.0
[68a0697c] [FIX]l10n_us_hr_payroll: Spell mistake on Kansas state payroll.
[addd5f03] [IMP] l10n_us_hr_payroll: For Kentucky 13.0
[4fb48854] [IMP] l10n_us_hr_payroll: For Kansas 13.0
[60d40449] [IMP] l10n_us_hr_payroll: For Nevada 13.0
[2475250f] [IMP] l10n_us_hr_payroll: For Maine 13.0
[1234467d] [IMP] l10n_us_hr_payroll: For North Dakota 13.0
[d1642bbe] IMP `l10n_us_hr_payroll` Allow configurable changes to payslip summing behavior.

In stock Odoo, summing anything in payroll rules (but most importantly rule amounts and category amounts by code), the considered payslips are referenced from their `date_from` field.  However in the USA, it is in fact the `date_to` that is more important (or accounting date). A Payslip made for 2019-12-20 to 2020-01-04 should in fact be considered a '2020' payslip, and thus the summation on other '2020' payslips must find it by considering payslips `date_to`.
[0af81085] IMP `l10n_us_hr_payroll` Port `l10n_us_ny_hr_payroll` NY New York including migration
[bc5c0b47] IMP `l10n_us_hr_payroll` for Nebraska 13.0
[6f3120f8] IMP `l10n_us_hr_payroll` Port `l10n_us_sc_hr_payroll` SC South Carolina including migration
[9bee1ce7] IMP `l10n_us_hr_payroll` Port `l10n_us_la_hr_payroll` LA Louisiana including migration
[368a7e59] IMP `l10n_us_hr_payroll` for Indiana 13.0
[c7647d08] IMP `l10n_us_hr_payroll` for New Hampshire 13.0
[a738a0af] IMP `l10n_us_hr_payroll` for New Mexico 13.0
[d2898035] IMP `l10n_us_hr_payroll` Port `l10n_us_ia_hr_payroll` IA Iowa including migration
[acdd3d43] IMP `l10n_us_hr_payroll` for Colorado 13.0
[e1eccfc2] IMP `l10n_us_hr_payroll` Port `l10n_us_de_hr_payroll` DE Delaware including migration
[7b4adef4] IMP `l10n_us_hr_payroll` Port `l10n_us_hi_hr_payroll` HI Hawaii including migration
[28eb5b9d] FIX `l10n_us_hr_payroll` Don't give error on Zero wage in FIT
[498137cb] FIX `l10n_us_hr_payroll` Port `l10n_us_id_hr_payroll` Remove supplier from the Partners..
[8895e59f] FIX `l10n_us_hr_payroll` Port `l10n_us_ca_hr_payroll` Added test case on file.
[0082fce8] IMP `l10n_us_hr_payroll` Port `l10n_us_id_hr_payroll` ID Idaho including migration
[92f6d30c] IMP `l10n_us_hr_payroll` Port `l10n_us_ca_hr_payroll` CA California including migration
[2059172b] IMP `l10n_us_hr_payroll` Port `l10n_us_ct_hr_payroll` CT Connecticut including migration
[dd8f7369] IMP `l10n_us_hr_payroll` Port `l10n_us_al_hr_payroll` AL Alabama including migration
[d5c3e427] IMP `l10n_us_hr_payroll` Port `l10n_us_ak_hr_payroll` AK Alaska including migration
[fbba5b2b] FIX `l10n_us_hr_payroll` Changed SUTA Rate for Illinois 2020.
[18421d01] IMP `l10n_us_hr_payroll` Port `l10n_us_az_hr_payroll` AZ Arizona including migration
[f960d135] IMP `l10n_us_hr_payroll` Port `l10n_us_il_hr_payroll` IL Illinois including migration
[b85e7483] IMP `l10n_us_hr_payroll` Port `l10n_us_ar_hr_payroll` AR Arkansas including migration
[61e9530f] IMP `l10n_us_hr_payroll` Create tax exempt categories for table coverage from IRS Pub. 15-B
[38decf71] IMP `l10n_us_hr_payroll` Port `l10n_us_mn_hr_payroll` MN Minnesota including migration
[2c9dca19] IMP `l10n_us_hr_payroll` Port `l10n_us_mi_hr_payroll` MI Michigan including migration
[e175ecbb] IMP `l10n_us_hr_payroll` Port `l10n_us_nc_hr_payroll` NC North Carolina including migration
[db689da4] IMP `l10n_us_hr_payroll` Port `l10n_us_nj_hr_payroll` NJ New Jersey including migration
[130ce65c] IMP `l10n_us_hr_payroll` Add MO Missouri (unemployment, income tax)
[4d4fcd45] IMP `l10n_us_hr_payroll` Use the raw ER rate for Washington LNI (instead of the combined rate and removing EE portion)
[45fb9682] FIX `l10n_us_hr_payroll` Missing Parent Category and Code not matching pattern.
[3ae7b859] IMP `l10n_us_hr_payroll` Refactor to simply tax exempt deductions.
[30eafd14] IMP `l10n_us_hr_payroll` Add MS Mississippi (unemployment, income tax)
[2f7e7b96] IMP `l10n_us_hr_payroll` Add GA Georgia (unemployment, income tax)
[3d79ed81] IMP `l10n_us_hr_payroll` Add form name in Virginia's state box.
[2e6c7050] IMP `l10n_us_hr_payroll` Add VA Virginia (unemployment, income tax)
[8ae58731] IMP `l10n_us_hr_payroll` Add TX Texas (unemployment, OA, ETIA)
[f83bf47c] IMP `l10n_us_hr_payroll` Add WA Washington (unemployment, lni, fml)
[1d661f8d] IMP `l10n_us_hr_payroll` Add OH Ohio (unemployment, income tax)
[edbc8c59] IMP `l10n_us_hr_payroll` Add MT Montana (unemployment (with AFT), income tax)
[dfe38521] IMP `l10n_us_hr_payroll` Implement generic state income tax exempt and additional fields.  Include in PA Tests and State Form section.
[900bc138] IMP `l10n_us_hr_payroll` Add Generic SIT Category and method, add PA Pennsylvania (unemployment (ER, EE), income tax)
[dcafce90] IMP `l10n_us_hr_payroll` Refactor SUTA tests into generic test. (Reworked Florida 2020) (+1 squashed commit)
Squashed commits:
[667cc8c4] IMP `l10n_us_hr_payroll` Add Generic SUTA Category and method, add FL Florida (unemployment, no income tax)
This commit is contained in:
Jared Kipe
2020-01-07 07:52:41 -08:00
parent 5c7c9e6397
commit be1fd5c8d2
184 changed files with 19772 additions and 57 deletions

View File

@@ -17,4 +17,112 @@
]"/>
</record>
<!-- State Unemployment -->
<record id="hr_payroll_category_ee_us_suta" model="hr.salary.rule.category">
<field name="name">EE: State Unemployment SUTA</field>
<field name="code">EE_US_SUTA</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_er_us_suta" model="hr.salary.rule.category">
<field name="name">ER: State Unemployment SUTA</field>
<field name="code">ER_US_SUTA</field>
<field name="parent_id" ref="hr_payroll.COMP"/>
</record>
<!-- State Income Tax -->
<record id="hr_payroll_category_ee_us_sit" model="hr.salary.rule.category">
<field name="name">EE: State Income Tax Withholding</field>
<field name="code">EE_US_SIT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<!-- Tax Exempt Benefits/Wage -->
<!-- IRS Publication 15-B Lists several categories of benefits, limits and classifications -->
<!-- If your rule is intended to add to gross wages or be pre-gross, use the ALW_ Categories -->
<record id="hr_payroll_category_alw_fit_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FIT Exempt</field>
<field name="code">ALW_FIT_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_fit_fica_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FIT &amp; FICA Exempt</field>
<field name="code">ALW_FIT_FICA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_fit_futa_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FIT &amp; FUTA Exempt</field>
<field name="code">ALW_FIT_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_fit_fica_futa_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FIT &amp; FICA &amp; FUTA Exempt</field>
<field name="code">ALW_FIT_FICA_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_fica_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FICA Exempt</field>
<field name="code">ALW_FICA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_fica_futa_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FICA &amp; FUTA Exempt</field>
<field name="code">ALW_FICA_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_category_alw_futa_exempt" model="hr.salary.rule.category">
<field name="name">Wage: US FUTA Exempt</field>
<field name="code">ALW_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<!-- Tax Exempt Deductions -->
<!-- If your rule is intended to withhold from gross, use the DED_ Categories -->
<record id="hr_payroll_category_ded_fit_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FIT Exempt</field>
<field name="code">DED_FIT_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_fit_fica_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FIT &amp; FICA Exempt</field>
<field name="code">DED_FIT_FICA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_fit_futa_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FIT &amp; FUTA Exempt</field>
<field name="code">DED_FIT_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_fit_fica_futa_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FIT &amp; FICA &amp; FUTA Exempt</field>
<field name="code">DED_FIT_FICA_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_fica_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FICA Exempt</field>
<field name="code">DED_FICA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_fica_futa_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FICA &amp; FUTA Exempt</field>
<field name="code">DED_FICA_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_category_ded_futa_exempt" model="hr.salary.rule.category">
<field name="name">Deduction: US FUTA Exempt</field>
<field name="code">DED_FUTA_EXEMPT</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
</odoo>

View File

@@ -11,12 +11,6 @@
<field name="parent_id" ref="hr_payroll.COMP"/>
</record>
<!-- Category to increase when reducing wage for Unemployment Insurance/Tax -->
<record id="hr_payroll_category_wage_fed_940_futa_exempt" model="hr.salary.rule.category">
<field name="name">WAGE: Federal 940 FUTA Exempt</field>
<field name="code">WAGE_US_940_FUTA_EXEMPT</field>
</record>
<record id="hr_payroll_rule_er_fed_940" model="hr.salary.rule">
<field name="sequence" eval="440"/>
<field name="struct_id" ref="hr_payroll_structure"/>

View File

@@ -17,12 +17,6 @@
<field name="parent_id" ref="hr_payroll.COMP"/>
</record>
<!-- Category to increase when reducing wage for FICA -->
<record id="hr_payroll_category_wage_fed_941_fica_exempt" model="hr.salary.rule.category">
<field name="name">WAGE: Federal 941 FICA Exempt</field>
<field name="code">WAGE_US_941_FICA_EXEMPT</field>
</record>
<!-- Social Security -->
<record id="hr_payroll_rule_ee_fed_941_ss" model="hr.salary.rule">

View File

@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Category to increase when reducing wage for Federal Income Tax (e.g. 401k) -->
<record id="hr_payroll_category_wage_fed_941_fit_exempt" model="hr.salary.rule.category">
<field name="name">WAGE: Federal 941 Income Tax Exempt</field>
<field name="code">WAGE_US_941_FIT_EXEMPT</field>
</record>
<record id="hr_payroll_category_ee_fed_941_fit" model="hr.salary.rule.category">
<field name="name">EE: Federal 941 Income Tax Withholding</field>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ak_suta_wage_base" model="hr.rule.parameter">
<field name="name">US AK Alaska SUTA Wage Base</field>
<field name="code">us_ak_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ak_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">39900.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ak_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">41500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ak_suta_rate" model="hr.rule.parameter">
<field name="name">US AK Alaska SUTA Rate</field>
<field name="code">us_ak_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ak_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.780</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ak_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.590</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ak_suta_ee_rate" model="hr.rule.parameter">
<field name="name">US AK Alaska SUTA Rate EE</field>
<field name="code">us_ak_suta_ee_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ak_suta_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.500</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ak_suta_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.500</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ak_suta_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ak_dor" model="res.partner">
<field name="name">US Alaska - Department of Labor and Workforce Development (ADLWD) - Unemployment Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ak_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US AK Alaska State Unemployment</field>
<field name="code">ER_US_AK_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ak_suta_wage_base', rate='us_ak_suta_rate', state_code='AK')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ak_suta_wage_base', rate='us_ak_suta_rate', state_code='AK')</field>
<field name="partner_id" ref="res_partner_us_ak_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ak_suta" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_suta"/>
<field name="name">EE: US AK Alaska State Unemployment (UC-2)</field>
<field name="code">EE_US_AK_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ak_suta_wage_base', rate='us_ak_suta_ee_rate', state_code='AK')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ak_suta_wage_base', rate='us_ak_suta_ee_rate', state_code='AK')</field>
<field name="partner_id" ref="res_partner_us_ak_dor"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_al_suta_wage_base" model="hr.rule.parameter">
<field name="name">US AL Alabama SUTA Wage Base</field>
<field name="code">us_al_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_al_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">8000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_al_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">8000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_al_suta_rate" model="hr.rule.parameter">
<field name="name">US AL Alabama SUTA Rate</field>
<field name="code">us_al_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_al_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_al_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_al_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US AL Alabama SIT Tax Rate</field>
<field name="code">us_al_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_al_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0': [
( 500, 2),
( 3000, 4),
('inf', 5),
],
'M': [
( 1000, 2),
( 6000, 4),
('inf', 5),
],
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_al_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0' : [
( 500, 2),
( 2500, 4),
('inf', 5),
],
'M': [
( 1000, 2),
( 5000, 4),
('inf', 5),
],
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_al_sit_dependent_rate" model="hr.rule.parameter">
<field name="name">US AL Alabama Dependent Rate</field>
<field name="code">us_al_sit_dependent_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. D-->
<record id="rule_parameter_us_al_sit_dependent_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 1000, 20000),
( 500, 100000),
( 300, 'inf'),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_dependent_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. D-->
<record id="rule_parameter_us_al_sit_dependent_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 1000, 20000),
( 500, 100000),
( 300, 'inf'),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_dependent_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_al_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US AL Alabama Standard Deduction Rate</field>
<field name="code">us_al_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. A-->
<record id="rule_parameter_us_al_sit_standard_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0': ((23499.0, 2500.0), (33000.0, 2500.0, 25.0, 500.0), ('inf', 2000.0)),
'S': ((23499.0, 2500.0), (33000.0, 2500.0, 25.0, 500.0), ('inf', 2000.0)),
'MS': ((10749.0, 3750.0), (15500.0, 3750.0, 88.0, 250.0), ('inf', 2000.0)),
'M': ((23499.0, 7500.0), (33000.0, 7500.0, 175.0, 500.0), ('inf', 4000.0)),
'H': ((23499.0, 4700.0), (33000.0, 7500.0, 175.0, 500.0), ('inf', 4000.0)),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. A-->
<record id="rule_parameter_us_al_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0': ((23499.0, 2500.0), (33000.0, 2500.0, 25.0, 500.0), ('inf', 2000.0)),
'S': ((23499.0, 2500.0), (33000.0, 2500.0, 25.0, 500.0), ('inf', 2000.0)),
'MS': ((10749.0, 3750.0), (15500.0, 3750.0, 88.0, 250.0), ('inf', 2000.0)),
'M': ((23499.0, 7500.0), (33000.0, 7500.0, 175.0, 500.0), ('inf', 4000.0)),
'H': ((23499.0, 4700.0), (33000.0, 7500.0, 175.0, 500.0), ('inf', 4000.0)),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_al_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US AL Alabama Personal Exemption Rate</field>
<field name="code">us_al_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. C-->
<record id="rule_parameter_us_al_sit_personal_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0' : 0,
'S' : 1500,
'MS': 1500,
'M' : 3000,
'H' : 3000,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://revenue.alabama.gov/wp-content/uploads/2019/01/whbooklet_0119.pdf -->
<!-- Page 7. C-->
<record id="rule_parameter_us_al_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'0' : 0,
'S' : 1500,
'MS': 1500,
'M' : 3000,
'H' : 3000,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_al_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_al_dor" model="res.partner">
<field name="name">US Alabama - Department of Economic Security (IDES) - Unemployment Tax</field>
</record>
<record id="res_partner_us_al_dor_sit" model="res.partner">
<field name="name">US Alabama - Department of Revenue (IDOR) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_al_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US AL Alabama State Unemployment</field>
<field name="code">ER_US_AL_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_al_suta_wage_base', rate='us_al_suta_rate', state_code='AL')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_al_suta_wage_base', rate='us_al_suta_rate', state_code='AL')</field>
<field name="partner_id" ref="res_partner_us_al_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_al_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US AL Alabama State Income Tax Withholding</field>
<field name="code">EE_US_AL_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = al_alabama_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = al_alabama_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_al_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ar_suta_wage_base" model="hr.rule.parameter">
<field name="name">US AR Arkansas SUTA Wage Base</field>
<field name="code">us_ar_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ar_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">10000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ar_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">8000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ar_suta_rate" model="hr.rule.parameter">
<field name="name">US AR Arkansas SUTA Rate</field>
<field name="code">us_ar_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ar_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3.2</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ar_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.9</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ar_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US AR Arkansas SIT Tax Rate</field>
<field name="code">us_ar_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ar_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 4599, 0.0, 0.00),
( 9099, 2.0, 91.98),
( 13699, 3.0, 182.97),
( 22599, 3.4, 237.77),
( 37899, 5.0, 421.46),
( 80800, 5.9, 762.55),
( 81800, 6.6, 1243.40),
( 82800, 6.6, 1143.40),
( 84100, 6.6, 1043.40),
( 85200, 6.6, 943.40),
( 86200, 6.6, 843.40),
( 'inf', 6.6, 803.40),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.dfa.arkansas.gov/images/uploads/incomeTaxOffice/whformula.pdf-->
<!-- Notover, percentage , minus adjustment page 1. 3.-->
<record id="rule_parameter_us_ar_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 4599, 0.0, 0.00),
( 9099, 2.0, 91.98),
( 13699, 3.0, 182.97),
( 22599, 3.4, 237.77),
( 37899, 5.0, 421.46),
( 80800, 5.9, 762.55),
( 81800, 6.6, 1243.40),
( 82800, 6.6, 1143.40),
( 84100, 6.6, 1043.40),
( 85200, 6.6, 943.40),
( 86200, 6.6, 843.40),
( 'inf', 6.6, 803.40),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ar_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US AR Arkansas Allowances Rate</field>
<field name="code">us_ar_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ar_sit_standard_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2200.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ar_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2200.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ar_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ar_dor" model="res.partner">
<field name="name">US Arkansas - Department of Workforce Solutions - Unemployment Tax</field>
</record>
<record id="res_partner_us_ar_dor_sit" model="res.partner">
<field name="name">US Arkansas - Department of Financial Administration - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ar_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US AR Arkansas State Unemployment</field>
<field name="code">ER_US_AR_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ar_suta_wage_base', rate='us_ar_suta_rate', state_code='AR')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ar_suta_wage_base', rate='us_ar_suta_rate', state_code='AR')</field>
<field name="partner_id" ref="res_partner_us_ar_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ar_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US AR Arkansas State Income Tax Withholding</field>
<field name="code">EE_US_AR_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ar_arkansas_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ar_arkansas_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ar_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_az_suta_wage_base" model="hr.rule.parameter">
<field name="name">US AZ Arizona SUTA Wage Base</field>
<field name="code">us_az_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_az_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">7000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_az_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_az_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">7000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_az_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_az_suta_rate" model="hr.rule.parameter">
<field name="name">US AZ Arizona SUTA Rate</field>
<field name="code">us_az_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_az_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_az_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_az_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_az_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_az_dor" model="res.partner">
<field name="name">US Arizona - Department of Economic Security (ADES) - Unemployment Tax</field>
</record>
<record id="res_partner_us_az_dor_sit" model="res.partner">
<field name="name">US Arizona - Department of Revenue (ADOR) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_az_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US AZ Arizona State Unemployment</field>
<field name="code">ER_US_AZ_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_az_suta_wage_base', rate='us_az_suta_rate', state_code='AZ')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_az_suta_wage_base', rate='us_az_suta_rate', state_code='AZ')</field>
<field name="partner_id" ref="res_partner_us_az_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_az_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US AZ Arizona State Income Tax Withholding</field>
<field name="code">EE_US_AZ_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = az_arizona_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = az_arizona_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_az_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,829 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ca_suta_wage_base" model="hr.rule.parameter">
<field name="name">US CA California SUTA Wage Base</field>
<field name="code">us_ca_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">7000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ca_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">7000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ca_suta_rate" model="hr.rule.parameter">
<field name="name">US CA California SUTA Rate</field>
<field name="code">us_ca_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ca_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.4</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- ETT Rate -->
<record id="rule_parameter_us_ca_suta_ett_rate" model="hr.rule.parameter">
<field name="name">US CA California SUTA ETT Rate</field>
<field name="code">us_ca_suta_ett_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_suta_ett_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.1</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_ett_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ca_suta_ett_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.1</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_ett_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- SDI Rate -->
<record id="rule_parameter_us_ca_suta_sdi_rate" model="hr.rule.parameter">
<field name="name">US CA California SUTA SDI Rate</field>
<field name="code">us_ca_suta_sdi_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_suta_sdi_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_sdi_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ca_suta_sdi_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_suta_sdi_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ca_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US CA California SIT Tax Rate</field>
<field name="code">us_ca_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'head_household': {
'weekly': (
( 316, 0.0110, 0.00),
( 750, 0.0220, 3.48),
( 967, 0.0440, 13.03),
( 1196, 0.0660, 22.58),
( 1413, 0.0880, 37.69),
( 7212, 0.1023, 56.79),
( 8654, 0.1133, 650.03),
(14423, 0.1243, 813.41),
(19231, 0.1353, 1530.50),
('inf', 0.1463, 2181.02),
),
'bi-weekly': (
( 632, 0.0110, 0.00),
( 1500, 0.0220, 6.95),
( 1934, 0.0440, 26.05),
( 2392, 0.0660, 45.15),
( 2826, 0.0880, 75.38),
(14424, 0.1023, 113.57),
(17308, 0.1133, 1300.05),
(28846, 0.1243, 1626.81),
(38462, 0.1353, 3060.98),
('inf', 0.1463, 4362.02),
),
'semi-monthly': (
( 686, 0.0110, 0.00),
( 1625, 0.0220, 7.55),
( 2094, 0.0440, 28.21),
( 2592, 0.0660, 48.85),
( 3062, 0.0880, 81.72),
(15625, 0.1023, 123.08),
(18750, 0.1133, 1408.27),
(31250, 0.1243, 1762.33),
(41667, 0.1353, 3316.08),
('inf', 0.1463, 4725.50),
),
'monthly': (
( 1372, 0.0110, 0.00),
( 3250, 0.0220, 15.09),
( 4188, 0.0440, 56.41),
( 5184, 0.0660, 97.68),
( 6124, 0.0880, 163.42),
(31250, 0.1023, 246.14),
(37500, 0.1133, 2816.53),
(62500, 0.1243, 3524.66),
(83334, 0.1353, 6632.16),
('inf', 0.1463, 9451.00),
),
'quarterly': (
( 4114, 0.0110, 0.00),
( 9748, 0.0220, 45.25),
( 12566, 0.0440, 169.20),
( 15552, 0.0660, 293.19),
( 18369, 0.0880, 490.27),
( 93751, 0.1023, 738.17),
(112501, 0.1133, 8449.75),
(187501, 0.1243, 10574.13),
(250000, 0.1353, 19896.63),
( 'inf', 0.1463, 28352.74),
),
'semi-annual': (
( 8228, 0.0110, 0.00),
( 19496, 0.0220, 90.51),
( 25132, 0.0440, 338.41),
( 31104, 0.0660, 586.39),
( 36738, 0.0880, 980.54),
(187502, 0.1023, 1476.33),
(225002, 0.1133, 16899.49),
(375002, 0.1243, 21148.24),
(500000, 0.1353, 39793.24),
( 'inf', 0.1463, 56705.47),
),
'annually': (
( 16457, 0.0110, 0.00),
( 38991, 0.0220, 181.03),
( 50264, 0.0440, 676.78),
( 62206, 0.0660, 1172.79),
( 73477, 0.0880, 1960.96),
( 375002, 0.1023, 2952.81),
( 450003, 0.1133, 33798.82),
( 750003, 0.1243, 42296.43),
(1000000, 0.1353, 79586.43),
( 'inf', 0.1463, 113411.02),
),
},
'married': {
'weekly': (
( 316, 0.0110, 0.00),
( 750, 0.0220, 3.48),
( 1184, 0.0440, 13.03),
( 1642, 0.0660, 32.13),
( 2076, 0.0880, 62.36),
(10606, 0.1023, 100.55),
(12726, 0.1133, 973.17),
(19231, 0.1243, 1213.37),
(21210, 0.1353, 2021.94),
('inf', 0.1463, 2289.70),
),
'bi-weekly': (
( 632, 0.0110, 0.00),
( 1500, 0.0220, 6.95),
( 2368, 0.0440, 26.05),
( 3284, 0.0660, 64.24),
( 4152, 0.0880, 124.70),
(21212, 0.1023, 201.08),
(25452, 0.1133, 1946.32),
(38462, 0.1243, 2426.71),
(42420, 0.1353, 4043.85),
('inf', 0.1463, 4579.37),
),
'semi-monthly': (
( 686, 0.0110, 0.00),
( 1624, 0.0220, 7.55),
( 2564, 0.0440, 28.19),
( 3560, 0.0660, 69.55),
( 4498, 0.0880, 135.29),
(22978, 0.1023, 217.83),
(27574, 0.1133, 2108.33),
(41667, 0.1243, 2629.06),
(45956, 0.1353, 4380.82),
('inf', 0.1463, 4961.12),
),
'monthly': (
( 1372, 0.0110, 0.00),
( 3248, 0.0220, 15.09),
( 5128, 0.0440, 56.36),
( 7120, 0.0660, 139.08),
( 8996, 0.0880, 270.55),
(45956, 0.1023, 435.64),
(55148, 0.1133, 4216.65),
(83334, 0.1243, 5258.10),
(91912, 0.1353, 8761.62),
('inf', 0.1463, 9922.22),
),
'quarterly': (
( 4112, 0.0110, 0.00),
( 9748, 0.0220, 45.23),
( 15384, 0.0440, 169.22),
( 21356, 0.0660, 417.20),
( 26990, 0.0880, 811.35),
(137870, 0.1023, 1307.14),
(165442, 0.1133, 12650.16),
(250000, 0.1243, 15774.07),
(275736, 0.1353, 26284.63),
( 'inf', 0.1463, 29766.71),
),
'semi-annual': (
( 8224, 0.0110, 0.00),
( 19496, 0.0220, 90.46),
( 30768, 0.0440, 338.44),
( 42712, 0.0660, 834.41),
( 53980, 0.0880, 1622.71),
(275740, 0.1023, 2614.29),
(330884, 0.1133, 25300.34),
(500000, 0.1243, 31548.16),
(551472, 0.1353, 52569.28),
( 'inf', 0.1463, 59533.44),
),
'annually': (
( 16446, 0.0110, 0.00),
( 38990, 0.0220, 180.91),
( 61538, 0.0440, 676.88),
( 85422, 0.0660, 1668.99),
( 107960, 0.0880, 3245.33),
( 551476, 0.1023, 5228.67),
( 661768, 0.1133, 50600.36),
(1000000, 0.1243, 63096.44),
(1102946, 0.1353, 105138.68),
( 'inf', 0.1463, 119067.26),
),
},
'single': {
'weekly': (
( 158, 0.0110, 0.00),
( 375, 0.0220, 1.74),
( 592, 0.0440, 6.51),
( 821, 0.0660, 16.06),
( 1038, 0.0880, 31.17),
( 5303, 0.1023, 50.27),
( 6363, 0.1133, 486.58),
(10605, 0.1243, 606.68),
(19231, 0.1353, 1133.96),
('inf', 0.1463, 2301.06),
),
'bi-weekly': (
( 316, 0.0110, 0.00),
( 750, 0.0220, 3.48),
( 1184, 0.0440, 13.03),
( 1642, 0.066, 32.13),
( 2076, 0.0880, 62.36),
(10606, 0.1023, 100.55),
(12726, 0.1133, 973.17),
(21210, 0.1243, 1213.37),
(38462, 0.1353, 2267.93),
('inf', 0.1463, 4602.13),
),
'semi-monthly': (
( 343, 0.0110, 0.00),
( 812, 0.0220, 3.77),
( 1282, 0.0440, 14.09),
( 1780, 0.0660, 34.77),
( 2249, 0.0880, 67.64),
(11489, 0.1023, 108.91),
(13787, 0.1133, 1054.16),
(22978, 0.1243, 1314.52),
(41667, 0.1353, 2456.96),
('inf', 0.1463, 4985.58),
),
'monthly': (
( 686, 0.0110, 0.00),
( 1624, 0.0220, 7.55),
( 2564, 0.0440, 28.19),
( 3560, 0.0660, 69.55),
( 4498, 0.0880, 135.29),
(22978, 0.1023, 217.83),
(27574, 0.1133, 2108.33),
(45956, 0.1243, 2629.06),
(83334, 0.1353, 4913.94),
('inf', 0.1463, 9971.18),
),
'quarterly': (
( 2056, 0.0110, 0.00),
( 4874, 0.0220, 22.62),
( 7692, 0.0440, 84.62),
( 10678, 0.066, 208.61),
( 13495, 0.0880, 405.69),
( 68935, 0.1023, 653.59),
( 82721, 0.1133, 6325.10),
(137868, 0.1243, 7887.05),
(250000, 0.1353, 14741.82),
( 'inf', 0.1463, 29913.28),
),
'semi-annual': (
( 4112, 0.0110, 0.00),
( 9748, 0.0220, 45.23),
( 15384, 0.0440, 169.22),
( 21356, 0.0660, 417.20),
( 26990, 0.0880, 811.35),
(137870, 0.1023, 1307.14),
(165442, 0.1133, 12650.16),
(275736, 0.1243, 15774.07),
(500000, 0.1353, 29483.61),
('inf', 0.1463, 59826.53),
),
'annually': (
( 8223, 0.0110, 0.00),
( 19495, 0.0220, 90.45),
( 30769, 0.0440, 338.43),
( 42711, 0.0660, 834.49),
( 53980, 0.0880, 1622.66),
( 275738, 0.1023, 2614.33),
( 330884, 0.1133, 25300.17),
( 551473, 0.1243, 31548.21),
(1000000, 0.1353, 58967.42),
( 'inf', 0.1463, 119653.12),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.edd.ca.gov/pdf_pub_ctr/20methb.pdf -->
<!-- Table 5. Tax rate table -->
<record id="rule_parameter_us_ca_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'head_household': {
'weekly': (
( 339, 0.0110, 0.00),
( 803, 0.0220, 3.73),
( 1035, 0.0440, 13.93),
( 1281, 0.0660, 24.15),
( 1514, 0.0880, 40.39),
( 7725, 0.1023, 60.89),
( 9270, 0.1133, 696.28),
(15450, 0.1243, 871.33),
(19231, 0.1353, 1639.50),
('inf', 0.1463, 2151.07),
),
'bi-weekly': (
( 678, 0.0110, 0.00),
( 1606, 0.0220, 7.46),
( 2070, 0.0440, 27.88),
( 2562, 0.0660, 48.30),
( 3028, 0.0880, 80.77),
(15450, 0.1023, 121.78),
(18540, 0.1133, 1392.55),
(30900, 0.1243, 1742.65),
(38462, 0.1353, 3279.00),
('inf', 0.1463, 4302.14),
),
'semi-monthly': (
( 735, 0.0110, 0.00),
( 1740, 0.0220, 8.09),
( 2243, 0.0440, 30.20),
( 2777, 0.0660, 52.33),
( 3280, 0.0880, 87.57),
(16738, 0.1023, 131.83),
(20085, 0.1133, 1508.58),
(33475, 0.1243, 1887.80),
(41667, 0.1353, 3552.18),
('inf', 0.1463, 4660.56),
),
'monthly': (
( 1470, 0.0110, 0.00),
( 3480, 0.0220, 16.17),
( 4486, 0.0440, 60.39),
( 5554, 0.0660, 104.65),
( 6560, 0.0880, 175.14),
(33476, 0.1023, 263.67),
(40170, 0.1133, 3017.18),
(66950, 0.1243, 3775.61),
(83334, 0.1353, 7104.36),
('inf', 0.1463, 9321.12),
),
'quarterly': (
( 4407, 0.0110, 0.00),
( 10442, 0.0220, 48.48),
( 13461, 0.0440, 181.25),
( 16659, 0.0660, 314.09),
( 19678, 0.0880, 525.16),
(100426, 0.1023, 790.83),
(120512, 0.1133, 9051.35),
(200853, 0.1243, 11327.09),
(250000, 0.1353, 21313.48),
( 'inf', 0.1463, 27963.07),
),
'semi-annual': (
( 8814, 0.0110, 0.00),
( 20884, 0.0220, 96.95),
( 26922, 0.0440, 362.49),
( 33318, 0.0660, 628.16),
( 39356, 0.0880, 1050.30),
(200852, 0.1023, 1581.64),
(241024, 0.1133, 18102.68),
(401706, 0.1243, 22654.17),
(500000, 0.1353, 42626.94),
( 'inf', 0.1463, 55926.12),
),
'annually': (
( 17629, 0.0110, 0.00),
( 41768, 0.0220, 193.92),
( 53843, 0.0440, 724.98),
( 66636, 0.0660, 1256.28),
( 78710, 0.0880, 2100.62),
( 401705, 0.1023, 3163.13),
( 482047, 0.1133, 36205.52),
( 803410, 0.1243, 45308.27),
(1000000, 0.1353, 85253.69),
( 'inf', 0.1463, 111852.32),
),
},
'married': {
'weekly': (
( 338, 0.0110, 0.00),
( 804, 0.0220, 3.72),
( 1268, 0.0440, 13.97),
( 1760, 0.0660, 34.39),
( 2224, 0.0880, 66.86),
(11360, 0.1023, 107.69),
(13632, 0.1133, 1042.30),
(19231, 0.1243, 1299.72),
(22721, 0.1353, 1995.68),
('inf', 0.1463, 2467.88),
),
'bi-weekly': (
( 676, 0.0110, 0.00),
( 1608, 0.0220, 7.44),
( 2536, 0.0440, 27.94),
( 3520, 0.0660, 68.77),
( 4448, 0.0880, 124.70),
(21212, 0.1023, 201.08),
(25452, 0.1133, 1946.32),
(38462, 0.1243, 2426.71),
(42420, 0.1353, 4043.85),
('inf', 0.1463, 4579.37),
),
'semi-monthly': (
( 734, 0.0110, 0.00),
( 1740, 0.0220, 8.07),
( 2746, 0.0440, 30.20),
( 3812, 0.0660, 74.46),
( 4818, 0.0880, 144.82),
(24614, 0.1023, 233.35),
(29538, 0.1133, 2258.48),
(41667, 0.1243, 2816.37),
(49229, 0.1353, 4324.00),
('inf', 0.1463, 5347.14),
),
'monthly': (
( 1468, 0.0110, 0.00),
( 3480, 0.0220, 16.15),
( 5492, 0.0440, 60.41),
( 7624, 0.0660, 148.94),
( 9636, 0.0880, 289.65),
(49228, 0.1023, 466.71),
(59076, 0.1133, 4516.97),
(83334, 0.1243, 5632.75),
(98458, 0.1353, 8648.02),
('inf', 0.1463, 10694.30),
),
'quarterly': (
( 4404, 0.0110, 0.00),
( 10442, 0.0220, 48.44),
( 16480, 0.0440, 181.28),
( 22876, 0.0660, 446.95),
( 28912, 0.0880, 869.09),
(147686, 0.1023, 1400.26),
(177222, 0.1133, 13550.84),
(250000, 0.1243, 16897.27),
(295371, 0.1353, 25943.58),
( 'inf', 0.1463, 32082.28),
),
'semi-annual': (
( 8808, 0.0110, 0.00),
( 20884, 0.0220, 96.89),
( 32960, 0.0440, 362.56),
( 45752, 0.0660, 893.90),
( 57824, 0.0880, 1738.17),
(295372, 0.1023, 2800.51),
(354444, 0.1133, 27101.67),
(500000, 0.1243, 33794.53),
(590742, 0.1353, 51887.14),
( 'inf', 0.1463, 64164.53),
),
'annually': (
( 17618, 0.0110, 0.00),
( 41766, 0.0220, 193.80),
( 65920, 0.0440, 725.06),
( 91506, 0.0660, 1787.84),
( 115648, 0.0880, 3476.52),
( 590746, 0.1023, 5601.02),
( 708890, 0.1133, 54203.55),
(1000000, 0.1243, 67589.27),
(1181484, 0.1353, 103774.24),
( 'inf', 0.1463, 128329.03),
),
},
'single': {
'weekly': (
( 169, 0.0110, 0.00),
( 402, 0.0220, 1.86),
( 634, 0.0440, 6.99),
( 880, 0.0660, 17.20),
( 1112, 0.0880, 33.44),
( 5680, 0.1023, 53.86),
( 6816, 0.1133, 521.17),
(11360, 0.1243, 649.88),
(19231, 0.1353, 1214.70),
('inf', 0.1463, 2279.65),
),
'bi-weekly': (
( 338, 0.0110, 0.00),
( 804, 0.0220, 3.72),
( 1268, 0.0440, 13.97),
( 1760, 0.0660, 34.39),
( 2224, 0.0880, 66.86),
(11360, 0.1023, 107.69),
(13632, 0.1133, 1042.30),
(22720, 0.1243, 1299.72),
(38462, 0.1353, 2429.36),
('inf', 0.1463, 4559.25),
),
'semi-monthly': (
( 367, 0.0110, 0.00),
( 870, 0.0220, 4.04),
( 1373, 0.0440, 15.11),
( 1906, 0.0660, 37.24),
( 2409, 0.0880, 72.42),
(12307, 0.1023, 116.68),
(14769, 0.1133, 1129.25),
(24614, 0.1243, 1408.19),
(41667, 0.1353, 2631.92),
('inf', 0.1463, 4939.19),
),
'monthly': (
( 734, 0.0110, 0.00),
( 1740, 0.0220, 8.07),
( 2746, 0.0440, 30.20),
( 3812, 0.0660, 74.46),
( 4818, 0.0880, 144.82),
(24614, 0.1023, 233.35),
(29538, 0.1133, 2258.48),
(49228, 0.1243, 2816.37),
(83334, 0.1353, 5263.84),
('inf', 0.1463, 9878.38),
),
'quarterly': (
( 2202, 0.0110, 0.00),
( 5221, 0.0220, 24.22),
( 8240, 0.0440, 90.64),
( 11438, 0.0660, 223.48),
( 14456, 0.0880, 434.55),
( 73843, 0.1023, 700.13),
( 88611, 0.1133, 6775.42),
(147686, 0.1243, 8448.63),
(250000, 0.1353, 15791.65),
( 'inf', 0.1463, 29634.73),
),
'semi-annual': (
( 4404, 0.0110, 0.00),
( 10442, 0.0220, 48.44),
( 16480, 0.0440, 181.28),
( 22876, 0.0660, 446.95),
( 28912, 0.0880, 869.09),
(147686, 0.1023, 1400.26),
(177222, 0.1133, 13550.84),
(295372, 0.1243, 16897.27),
(500000, 0.1353, 31583.32),
( 'inf', 0.1463, 59269.49),
),
'annually': (
( 8809, 0.0110, 0.00),
( 20883, 0.0220, 96.90),
( 32960, 0.0440, 362.53),
( 45753, 0.0660, 893.92),
( 57824, 0.0880, 1738.26),
( 295373, 0.1023, 2800.51),
( 354445, 0.1133, 27101.77),
( 590742, 0.1243, 33794.63),
(1000000, 0.1353, 63166.35),
( 'inf', 0.1463, 118538.96),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ca_sit_income_exemption_rate" model="hr.rule.parameter">
<field name="name">US CA California Low Income Exemption Rate</field>
<field name="code">us_ca_sit_income_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_sit_income_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 280, 280, 561, 561),
'bi-weekly': ( 561, 561, 1121, 1121),
'semi-monthly': ( 607, 607, 1214, 1214),
'monthly': ( 1214, 1214, 2429, 2429),
'quarterly': ( 3643, 3643, 7287, 7287),
'semi-annual': ( 7287, 7287, 14573, 14573),
'annually': (14573, 14573, 29146, 29146),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_income_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.edd.ca.gov/pdf_pub_ctr/20methb.pdf -->
<!-- Table 1. Low income exemption table -->
<record id="rule_parameter_us_ca_sit_income_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 289, 289, 579, 579),
'bi-weekly': ( 579, 579, 1157, 1157),
'semi-monthly': ( 627, 627, 1253, 1253),
'monthly': ( 1254, 1254, 2507, 2507),
'quarterly': ( 3761, 3761, 7521, 7521),
'semi-annual': ( 7521, 7521, 15042, 15042),
'annually': (15042, 15042, 30083, 30083),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_income_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ca_sit_estimated_deduction_rate" model="hr.rule.parameter">
<field name="name">US CA California Estimated Deduction Rate</field>
<field name="code">us_ca_sit_estimated_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_sit_estimated_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 19, 38, 58, 77, 96, 115, 135, 154, 173, 192),
'bi-weekly': ( 38, 77, 115, 154, 192, 231, 269, 308, 346, 385),
'semi-monthly': ( 42, 83, 125, 167, 208, 250, 292, 333, 375, 417),
'monthly': ( 83, 167, 250, 333, 417, 500, 583, 667, 750, 833),
'quarterly': ( 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500),
'semi-annual': ( 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000),
'annually': (1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_estimated_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.edd.ca.gov/pdf_pub_ctr/20methb.pdf -->
<!-- Table 2. Estimated Deduction table -->
<record id="rule_parameter_us_ca_sit_estimated_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 19, 38, 58, 77, 96, 115, 135, 154, 173, 192),
'bi-weekly': ( 38, 77, 115, 154, 192, 231, 269, 308, 346, 385),
'semi-monthly': ( 42, 83, 125, 167, 208, 250, 292, 333, 375, 417),
'monthly': ( 83, 167, 250, 333, 417, 500, 583, 667, 750, 833),
'quarterly': ( 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500),
'semi-annual': ( 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000),
'annually': (1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_estimated_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ca_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US CA California Standard Deduction Rate</field>
<field name="code">us_ca_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_sit_standard_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 85, 85, 169, 169),
'bi-weekly': ( 169, 169, 339, 339),
'semi-monthly': ( 183, 183, 367, 367),
'monthly': ( 367, 367, 734, 734),
'quarterly': (1100, 1100, 2201, 2201),
'semi-annual': (2201, 2201, 4401, 4401),
'annually': (4401, 4401, 8802, 8802),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.edd.ca.gov/pdf_pub_ctr/20methb.pdf -->
<!-- Table 3. Standard Deduction table -->
<record id="rule_parameter_us_ca_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 87, 87, 175, 175),
'bi-weekly': ( 175, 175, 349, 349),
'semi-monthly': ( 189, 189, 378, 378),
'monthly': ( 378, 378, 756, 756),
'quarterly': (1134, 1134, 2269, 2269),
'semi-annual': (2269, 2269, 4537, 4537),
'annually': (4537, 4537, 9074, 9074),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ca_sit_exemption_allowance_rate" model="hr.rule.parameter">
<field name="name">US CA California Exemption Allowance Rate</field>
<field name="code">us_ca_sit_exemption_allowance_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ca_sit_exemption_allowance_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 2.41, 4.82, 7.23, 9.65, 12.06, 14.47, 16.88, 19.29, 21.70, 24.12),
'bi-weekly': ( 4.82, 9.65, 14.47, 19.29, 24.12, 28.94, 33.76, 38.58, 43.41, 48.23),
'semi-monthly': ( 5.23, 10.45, 15.68, 20.90, 26.13, 31.35, 36.58, 41.80, 47.03, 52.25),
'monthly': ( 10.45, 20.90, 31.35, 41.80, 52.25, 62.70, 73.15, 83.60, 94.05, 104.50),
'quarterly': ( 31.35, 62.70, 94.05, 125.40, 156.75, 188.10, 219.45, 250.80, 282.15, 313.50),
'semi-annual': ( 62.70, 125.40, 188.10, 250.80, 313.50, 376.20, 438.90, 501.60, 564.30, 627.00),
'annually': (125.40, 250.80, 376.20, 501.60, 627.00, 752.40, 877.80, 1003.20, 1128.60, 1254.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_exemption_allowance_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.edd.ca.gov/pdf_pub_ctr/20methb.pdf -->
<!-- Table 4. Exemption Allowance table -->
<record id="rule_parameter_us_ca_sit_exemption_allowance_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': ( 2.58, 5.16, 7.74, 10.32, 12.90, 15.48, 18.07, 20.65, 23.23, 25.81),
'bi-weekly': ( 5.16, 10.32, 15.48, 20.65, 25.81, 30.97, 36.13, 41.29, 46.45, 51.62),
'semi-monthly': ( 5.59, 11.18, 16.78, 22.37, 27.96, 33.55, 39.14, 44.73, 50.33, 55.92),
'monthly': ( 11.18, 22.37, 33.55, 44.73, 55.92, 67.10, 78.28, 89.47, 100.65, 111.83),
'quarterly': ( 33.55, 67.10, 100.65, 134.20, 167.75, 201.30, 234.85, 268.40, 301.95, 335.50),
'semi-annual': ( 67.10, 134.20, 201.30, 268.40, 335.50, 402.60, 469.70, 536.80, 603.90, 671.00),
'annually': (134.20, 268.40, 402.60, 536.80, 671.00, 805.20, 939.40, 1073.60, 1207.80, 1342.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ca_sit_exemption_allowance_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ca_dor" model="res.partner">
<field name="name">US California - Department of Taxation (CA DE88) - Unemployment Tax</field>
</record>
<record id="res_partner_us_ca_dor_sit" model="res.partner">
<field name="name">US California - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ca_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US CA California State Unemployment</field>
<field name="code">ER_US_CA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_rate', state_code='CA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_rate', state_code='CA')</field>
<field name="partner_id" ref="res_partner_us_ca_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_ca_suta_ett" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US CA California State Employee Training Tax</field>
<field name="code">ER_US_CA_SUTA_ETT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_ett_rate', state_code='CA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_ett_rate', state_code='CA')</field>
<field name="partner_id" ref="res_partner_us_ca_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ca_suta_sdi" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_suta"/>
<field name="name">EE: US CA California State Disability Insurance</field>
<field name="code">EE_US_CA_SUTA_SDI</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_sdi_rate', state_code='CA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ca_suta_wage_base', rate='us_ca_suta_sdi_rate', state_code='CA')</field>
<field name="partner_id" ref="res_partner_us_ca_dor"/>
<field name="appears_on_payslip" eval="True"/>
</record>
<record id="hr_payroll_rule_ee_us_ca_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US CA California State Income Tax Withholding</field>
<field name="code">EE_US_CA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ca_california_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ca_california_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ca_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_co_suta_wage_base" model="hr.rule.parameter">
<field name="name">US CO Colorado SUTA Wage Base</field>
<field name="code">us_co_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_co_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">13600.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_co_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_co_suta_rate" model="hr.rule.parameter">
<field name="name">US CO Colorado SUTA Rate</field>
<field name="code">us_co_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_co_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_co_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_co_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US CO Colorado SIT Tax Rate</field>
<field name="code">us_co_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_co_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4.63</field>
<field name="rule_parameter_id" ref="rule_parameter_us_co_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_co_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US CO Colorado SIT Exemption Rate</field>
<field name="code">us_co_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_co_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4000</field>
<field name="rule_parameter_id" ref="rule_parameter_us_co_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_co_dor" model="res.partner">
<field name="name">US Colorado - Department of Labor and Employment - Unemployment Tax</field>
</record>
<record id="res_partner_us_co_dor_sit" model="res.partner">
<field name="name">US Colorado - Division of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_co_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US CO Colorado State Unemployment</field>
<field name="code">ER_US_CO_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_co_suta_wage_base', rate='us_co_suta_rate', state_code='CO')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_co_suta_wage_base', rate='us_co_suta_rate', state_code='CO')</field>
<field name="partner_id" ref="res_partner_us_co_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_co_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US CO Colorado State Income Tax Withholding</field>
<field name="code">EE_US_CO_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = co_colorado_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = co_colorado_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_co_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_de_suta_wage_base" model="hr.rule.parameter">
<field name="name">US DE Delaware SUTA Wage Base</field>
<field name="code">us_de_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_de_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">16500.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_de_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_de_suta_rate" model="hr.rule.parameter">
<field name="name">US DE Delaware SUTA Rate</field>
<field name="code">us_de_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_de_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.50</field>
<field name="rule_parameter_id" ref="rule_parameter_us_de_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_de_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US DE Delaware SIT Tax Rate</field>
<field name="code">us_de_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_de_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 2000, 0.0, 0.00),
( 5000, 0.0, 2.20),
(10000, 66.0, 3.90),
(20000, 261.0, 4.80),
(25000, 741.0, 5.20),
(60000, 1001.0, 5.55),
('inf', 2943.0, 6.60),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_de_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_de_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US DE Delaware Standard Deduction Rate</field>
<field name="code">us_de_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_de_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3250</field>
<field name="rule_parameter_id" ref="rule_parameter_us_de_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_de_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US DE Delaware Personal Exemption Rate</field>
<field name="code">us_de_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_de_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">110</field>
<field name="rule_parameter_id" ref="rule_parameter_us_de_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_de_dor" model="res.partner">
<field name="name">US Delaware - Division of Unemployment Insurance - Unemployment Tax</field>
</record>
<record id="res_partner_us_de_dor_sit" model="res.partner">
<field name="name">US Delaware - Division of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_de_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US DE Delaware State Unemployment</field>
<field name="code">ER_US_DE_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_de_suta_wage_base', rate='us_de_suta_rate', state_code='DE')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_de_suta_wage_base', rate='us_de_suta_rate', state_code='DE')</field>
<field name="partner_id" ref="res_partner_us_de_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_de_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US DE Delaware State Income Tax Withholding</field>
<field name="code">EE_US_DE_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = de_delaware_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = de_delaware_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_de_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_fl_suta_wage_base" model="hr.rule.parameter">
<field name="name">US FL Florida SUTA Wage Base</field>
<field name="code">us_fl_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_fl_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">7000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_fl_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_fl_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">7000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_fl_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_fl_suta_rate" model="hr.rule.parameter">
<field name="name">US FL Florida SUTA Rate</field>
<field name="code">us_fl_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_fl_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_fl_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_fl_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_fl_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_fl_dor" model="res.partner">
<field name="name">US Florida - Department of Revenue</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_fl_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US FL Florida State Unemployment (RT-6)</field>
<field name="code">ER_US_FL_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_fl_suta_wage_base', rate='us_fl_suta_rate', state_code='FL')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_fl_suta_wage_base', rate='us_fl_suta_rate', state_code='FL')</field>
<field name="partner_id" ref="res_partner_us_fl_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

View File

@@ -0,0 +1,943 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ga_suta_wage_base" model="hr.rule.parameter">
<field name="name">US GA Georgia SUTA Wage Base</field>
<field name="code">us_ga_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">9500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ga_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ga_suta_rate" model="hr.rule.parameter">
<field name="name">US GA Georgia SUTA Rate</field>
<field name="code">us_ga_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ga_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ga_sit_rate" model="hr.rule.parameter">
<field name="name">US GA Georgia SIT Rate Table</field>
<field name="code">us_ga_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': (
( 9.50, 0.00, 1.00),
(29.00, 0.10, 2.00),
(48.00, 0.48, 3.00),
(67.50, 1.06, 4.00),
(96.00, 1.83, 5.00),
('inf', 3.27, 5.75),
),
'bi-weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.00, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'semi-monthly': (
( 21.00, 0.00, 1.00),
( 62.50, 0.21, 2.00),
(104.00, 1.04, 3.00),
(146.00, 2.29, 4.00),
(208.00, 3.96, 5.00),
( 'inf', 7.08, 5.75),
),
'monthly': (
( 41.50, 0.00, 1.00),
(125.50, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'quarterly': (
( 125.00, 0.00, 1.00),
( 375.00, 1.25, 2.00),
( 625.00, 6.25, 3.00),
( 875.00, 13.75, 4.00),
(1250.00, 23.75, 5.00),
( 'inf', 42.50, 5.75),
),
'semi-annual': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
},
'married filing joint, one spouse working': {
'weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.50, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'bi-weekly': (
( 38.50, 0.00, 1.00),
(115.00, 0.38, 2.00),
(192.00, 1.92, 3.00),
(269.00, 4.23, 4.00),
(385.00, 7.31, 5.00),
( 'inf', 13.08, 5.75),
),
'semi-monthly': (
( 41.50, 0.00, 1.00),
(125.00, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'monthly': (
( 83.00, 0.00, 1.00),
(250.00, 0.83, 2.00),
(417.00, 4.17, 3.00),
(583.00, 9.17, 4.00),
(833.00, 15.83, 5.00),
( 'inf', 28.33, 5.75),
),
'quarterly': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'semi-annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
'annual': (
( 1000.00, 0.00, 1.00),
( 3000.00, 10.00, 2.00),
( 5000.00, 50.00, 3.00),
( 7000.00, 110.00, 4.00),
(10000.00, 190.00, 5.00),
( 'inf', 340.00, 5.75),
),
},
'single': {
'weekly': (
( 14.50, 0.00, 1.00),
( 43.50, 0.14, 2.00),
( 72.00, 0.72, 3.00),
(101.00, 1.59, 4.00),
(135.00, 2.74, 5.00),
( 'inf', 4.42, 5.75),
),
'bi-weekly': (
( 29.00, 0.00, 1.00),
( 86.50, 0.29, 2.00),
(144.00, 1.44, 3.00),
(202.00, 3.17, 4.00),
(269.00, 5.48, 5.00),
( 'inf', 8.85, 5.75),
),
'semi-monthly': (
( 31.00, 0.00, 1.00),
( 93.50, 0.31, 2.00),
(156.00, 1.56, 3.00),
(219.00, 3.34, 4.00),
(292.00, 5.94, 5.00),
( 'inf', 9.58, 5.75),
),
'monthly': (
( 62.50, 0.00, 1.00),
(187.00, 0.62, 2.00),
(312.00, 3.12, 3.00),
(437.00, 6.87, 4.00),
(583.00, 11.87, 5.00),
( 'inf', 19.17, 5.75),
),
'quarterly': (
( 187.50, 0.00, 1.00),
( 562.50, 1.88, 2.00),
( 937.50, 9.38, 3.00),
(1312.00, 20.63, 4.00),
(1750.00, 35.63, 5.00),
( 'inf', 57.50, 5.75),
),
'semi-annual': (
( 375.00, 0.00, 1.00),
(1125.00, 3.75, 2.00),
(1875.00, 18.75, 3.00),
(2625.00, 41.25, 4.00),
(3500.00, 71.25, 5.00),
( 'inf', 115.00, 5.75),
),
'annual': (
( 750.00, 0.00, 1.00),
(2250.00, 7.50, 2.00),
(3750.00, 37.50, 3.00),
(5250.00, 82.50, 4.00),
(7000.00, 142.50, 5.00),
( 'inf', 230.00, 5.75),
),
},
'head of household': {
'weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.50, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'bi-weekly': (
( 38.50, 0.00, 1.00),
(115.00, 0.38, 2.00),
(192.00, 1.92, 3.00),
(269.00, 4.23, 4.00),
(385.00, 7.31, 5.00),
( 'inf', 13.08, 5.75),
),
'semi-monthly': (
( 41.50, 0.00, 1.00),
(125.00, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'monthly': (
( 83.00, 0.00, 1.00),
(250.00, 0.83, 2.00),
(417.00, 4.17, 3.00),
(583.00, 9.17, 4.00),
(833.00, 15.83, 5.00),
( 'inf', 28.33, 5.75),
),
'quarterly': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'semi-annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
'annual': (
( 1000.00, 0.00, 1.00),
( 3000.00, 10.00, 2.00),
( 5000.00, 50.00, 3.00),
( 7000.00, 110.00, 4.00),
(10000.00, 190.00, 5.00),
( 'inf', 340.00, 5.75),
),
},
'married filing separate': {
'weekly': (
( 9.50, 0.00, 1.00),
(29.00, 0.10, 2.00),
(48.00, 0.48, 3.00),
(67.50, 1.06, 4.00),
(96.00, 1.83, 5.00),
('inf', 3.27, 5.75),
),
'bi-weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.00, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'semi-monthly': (
( 21.00, 0.00, 1.00),
( 62.50, 0.21, 2.00),
(104.00, 1.04, 3.00),
(146.00, 2.29, 4.00),
(208.00, 3.96, 5.00),
( 'inf', 7.08, 5.75),
),
'monthly': (
( 41.50, 0.00, 1.00),
(125.50, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'quarterly': (
( 125.00, 0.00, 1.00),
( 375.00, 1.25, 2.00),
( 625.00, 6.25, 3.00),
( 875.00, 13.75, 4.00),
(1250.00, 23.75, 5.00),
( 'inf', 42.50, 5.75),
),
'semi-annual': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.georgia.gov/employers-tax-guide File 2020 -->
<!-- Table F, G ,H-->
<record id="rule_parameter_us_ga_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': (
( 9.50, 0.00, 1.00),
(29.00, 0.10, 2.00),
(48.00, 0.48, 3.00),
(67.50, 1.06, 4.00),
(96.00, 1.83, 5.00),
('inf', 3.27, 5.75),
),
'bi-weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.00, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'semi-monthly': (
( 21.00, 0.00, 1.00),
( 62.50, 0.21, 2.00),
(104.00, 1.04, 3.00),
(146.00, 2.29, 4.00),
(208.00, 3.96, 5.00),
( 'inf', 7.08, 5.75),
),
'monthly': (
( 41.50, 0.00, 1.00),
(125.50, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'quarterly': (
( 125.00, 0.00, 1.00),
( 375.00, 1.25, 2.00),
( 625.00, 6.25, 3.00),
( 875.00, 13.75, 4.00),
(1250.00, 23.75, 5.00),
( 'inf', 42.50, 5.75),
),
'semi-annual': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
},
'married filing joint, one spouse working': {
'weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.50, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'bi-weekly': (
( 38.50, 0.00, 1.00),
(115.00, 0.38, 2.00),
(192.00, 1.92, 3.00),
(269.00, 4.23, 4.00),
(385.00, 7.31, 5.00),
( 'inf', 13.08, 5.75),
),
'semi-monthly': (
( 41.50, 0.00, 1.00),
(125.00, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'monthly': (
( 83.00, 0.00, 1.00),
(250.00, 0.83, 2.00),
(417.00, 4.17, 3.00),
(583.00, 9.17, 4.00),
(833.00, 15.83, 5.00),
( 'inf', 28.33, 5.75),
),
'quarterly': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'semi-annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
'annual': (
( 1000.00, 0.00, 1.00),
( 3000.00, 10.00, 2.00),
( 5000.00, 50.00, 3.00),
( 7000.00, 110.00, 4.00),
(10000.00, 190.00, 5.00),
( 'inf', 340.00, 5.75),
),
},
'single': {
'weekly': (
( 14.50, 0.00, 1.00),
( 43.50, 0.14, 2.00),
( 72.00, 0.72, 3.00),
(101.00, 1.59, 4.00),
(135.00, 2.74, 5.00),
( 'inf', 4.42, 5.75),
),
'bi-weekly': (
( 29.00, 0.00, 1.00),
( 86.50, 0.29, 2.00),
(144.00, 1.44, 3.00),
(202.00, 3.17, 4.00),
(269.00, 5.48, 5.00),
( 'inf', 8.85, 5.75),
),
'semi-monthly': (
( 31.00, 0.00, 1.00),
( 93.50, 0.31, 2.00),
(156.00, 1.56, 3.00),
(219.00, 3.34, 4.00),
(292.00, 5.94, 5.00),
( 'inf', 9.58, 5.75),
),
'monthly': (
( 62.50, 0.00, 1.00),
(187.00, 0.62, 2.00),
(312.00, 3.12, 3.00),
(437.00, 6.87, 4.00),
(583.00, 11.87, 5.00),
( 'inf', 19.17, 5.75),
),
'quarterly': (
( 187.50, 0.00, 1.00),
( 562.50, 1.88, 2.00),
( 937.50, 9.38, 3.00),
(1312.00, 20.63, 4.00),
(1750.00, 35.63, 5.00),
( 'inf', 57.50, 5.75),
),
'semi-annual': (
( 375.00, 0.00, 1.00),
(1125.00, 3.75, 2.00),
(1875.00, 18.75, 3.00),
(2625.00, 41.25, 4.00),
(3500.00, 71.25, 5.00),
( 'inf', 115.00, 5.75),
),
'annual': (
( 750.00, 0.00, 1.00),
(2250.00, 7.50, 2.00),
(3750.00, 37.50, 3.00),
(5250.00, 82.50, 4.00),
(7000.00, 142.50, 5.00),
( 'inf', 230.00, 5.75),
),
},
'head of household': {
'weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.50, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'bi-weekly': (
( 38.50, 0.00, 1.00),
(115.00, 0.38, 2.00),
(192.00, 1.92, 3.00),
(269.00, 4.23, 4.00),
(385.00, 7.31, 5.00),
( 'inf', 13.08, 5.75),
),
'semi-monthly': (
( 41.50, 0.00, 1.00),
(125.00, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'monthly': (
( 83.00, 0.00, 1.00),
(250.00, 0.83, 2.00),
(417.00, 4.17, 3.00),
(583.00, 9.17, 4.00),
(833.00, 15.83, 5.00),
( 'inf', 28.33, 5.75),
),
'quarterly': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'semi-annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
'annual': (
( 1000.00, 0.00, 1.00),
( 3000.00, 10.00, 2.00),
( 5000.00, 50.00, 3.00),
( 7000.00, 110.00, 4.00),
(10000.00, 190.00, 5.00),
( 'inf', 340.00, 5.75),
),
},
'married filing separate': {
'weekly': (
( 9.50, 0.00, 1.00),
(29.00, 0.10, 2.00),
(48.00, 0.48, 3.00),
(67.50, 1.06, 4.00),
(96.00, 1.83, 5.00),
('inf', 3.27, 5.75),
),
'bi-weekly': (
( 19.00, 0.00, 1.00),
( 57.50, 0.19, 2.00),
( 96.00, 0.96, 3.00),
(135.00, 2.12, 4.00),
(192.00, 3.65, 5.00),
( 'inf', 6.54, 5.75),
),
'semi-monthly': (
( 21.00, 0.00, 1.00),
( 62.50, 0.21, 2.00),
(104.00, 1.04, 3.00),
(146.00, 2.29, 4.00),
(208.00, 3.96, 5.00),
( 'inf', 7.08, 5.75),
),
'monthly': (
( 41.50, 0.00, 1.00),
(125.50, 0.42, 2.00),
(208.00, 2.08, 3.00),
(292.00, 4.58, 4.00),
(417.00, 7.92, 5.00),
( 'inf', 14.17, 5.75),
),
'quarterly': (
( 125.00, 0.00, 1.00),
( 375.00, 1.25, 2.00),
( 625.00, 6.25, 3.00),
( 875.00, 13.75, 4.00),
(1250.00, 23.75, 5.00),
( 'inf', 42.50, 5.75),
),
'semi-annual': (
( 250.00, 0.00, 1.00),
( 750.00, 2.50, 2.00),
(1250.00, 12.50, 3.00),
(1750.00, 27.50, 4.00),
(2500.00, 47.50, 5.00),
( 'inf', 85.00, 5.75),
),
'annual': (
( 500.00, 0.00, 1.00),
(1500.00, 5.00, 2.00),
(2500.00, 25.00, 3.00),
(3500.00, 55.00, 4.00),
(5000.00, 95.00, 5.00),
( 'inf', 170.00, 5.75),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ga_sit_personal_allowance" model="hr.rule.parameter">
<field name="name">US GA Georgia SIT Personal Allowance</field>
<field name="code">us_ga_sit_personal_allowance</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_sit_personal_allowance_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': 142.30,
'bi-weekly': 284.62,
'semi-monthly': 308.33,
'monthly': 616.67,
'quarterly': 1850.00,
'semi-annual': 3700.00,
'annual': 7400.00,
},
'married filing joint, one spouse working': {
'weekly': 142.30,
'bi-weekly': 284.62,
'semi-monthly': 308.33,
'monthly': 616.67,
'quarterly': 1850.00,
'semi-annual': 3700.00,
'annual': 7400.00,
},
'single': {
'weekly': 51.92,
'bi-weekly': 103.85,
'semi-monthly': 112.50,
'monthly': 225.00,
'quarterly': 675.00,
'semi-annual': 1350.00,
'annual': 2700.00,
},
'head of household': {
'weekly': 51.92,
'bi-weekly': 103.85,
'semi-monthly': 112.50,
'monthly': 225.00,
'quarterly': 675.00,
'semi-annual': 1350.00,
'annual': 2700.00,
},
'married filing separate': {
'weekly': 71.15,
'bi-weekly': 142.30,
'semi-monthly': 154.16,
'monthly': 308.33,
'quarterly': 925.00,
'semi-annual': 1850.00,
'annual': 3700.00,
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_personal_allowance"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.georgia.gov/employers-tax-guide File 2020 -->
<!-- Table E Column 4. 5. 6.-->
<record id="rule_parameter_us_ga_sit_personal_allowance_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': 142.30,
'bi-weekly': 284.62,
'semi-monthly': 308.33,
'monthly': 616.67,
'quarterly': 1850.00,
'semi-annual': 3700.00,
'annual': 7400.00,
},
'married filing joint, one spouse working': {
'weekly': 142.30,
'bi-weekly': 284.62,
'semi-monthly': 308.33,
'monthly': 616.67,
'quarterly': 1850.00,
'semi-annual': 3700.00,
'annual': 7400.00,
},
'single': {
'weekly': 51.92,
'bi-weekly': 103.85,
'semi-monthly': 112.50,
'monthly': 225.00,
'quarterly': 675.00,
'semi-annual': 1350.00,
'annual': 2700.00,
},
'head of household': {
'weekly': 51.92,
'bi-weekly': 103.85,
'semi-monthly': 112.50,
'monthly': 225.00,
'quarterly': 675.00,
'semi-annual': 1350.00,
'annual': 2700.00,
},
'married filing separate': {
'weekly': 71.15,
'bi-weekly': 142.30,
'semi-monthly': 154.16,
'monthly': 308.33,
'quarterly': 925.00,
'semi-annual': 1850.00,
'annual': 3700.00,
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_personal_allowance"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ga_sit_dependent_allowance_rate" model="hr.rule.parameter">
<field name="name">US GA Georgia SIT Dependent Allowance Rate</field>
<field name="code">us_ga_sit_dependent_allowance_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_sit_dependent_allowance_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 57.50,
'bi-weekly': 115.00,
'semi-monthly': 125.00,
'monthly': 250.00,
'quarterly': 750.00,
'semi-annual': 1500.00,
'annual': 3000.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_dependent_allowance_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.georgia.gov/employers-tax-guide File 2020 -->
<!-- Table E Column 7.-->
<record id="rule_parameter_us_ga_sit_dependent_allowance_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 57.50,
'bi-weekly': 115.00,
'semi-monthly': 125.00,
'monthly': 250.00,
'quarterly': 750.00,
'semi-annual': 1500.00,
'annual': 3000.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_dependent_allowance_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ga_sit_deduction" model="hr.rule.parameter">
<field name="name">US GA Georgia SIT Deduction</field>
<field name="code">us_ga_sit_deduction</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ga_sit_deduction_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': 115.50,
'bi-weekly': 230.75,
'semi-monthly': 250.00,
'monthly': 500.00,
'quarterly': 1500.00,
'semi-annual': 3000.00,
'annual': 6000.00,
},
'married filing joint, one spouse working': {
'weekly': 115.50,
'bi-weekly': 230.75,
'semi-monthly': 250.00,
'monthly': 500.00,
'quarterly': 1500.00,
'semi-annual': 3000.00,
'annual': 6000.00,
},
'single': {
'weekly': 88.50,
'bi-weekly': 177.00,
'semi-monthly': 191.75,
'monthly': 383.50,
'quarterly': 1150.00,
'semi-annual': 2300.00,
'annual': 4600.00,
},
'head of household': {
'weekly': 88.50,
'bi-weekly': 177.00,
'semi-monthly': 191.75,
'monthly': 383.50,
'quarterly': 1150.00,
'semi-annual': 2300.00,
'annual': 4600.00,
},
'married filing separate': {
'weekly': 57.75,
'bi-weekly': 115.50,
'semi-monthly': 125.00,
'monthly': 250.00,
'quarterly': 750.00,
'semi-annual': 1500.00,
'annual': 3000.00,
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_deduction"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.georgia.gov/employers-tax-guide File 2020 -->
<!-- Table E Column 1. 2. 3.-->
<record id="rule_parameter_us_ga_sit_deduction_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'married filing joint, both spouses working': {
'weekly': 115.50,
'bi-weekly': 230.75,
'semi-monthly': 250.00,
'monthly': 500.00,
'quarterly': 1500.00,
'semi-annual': 3000.00,
'annual': 6000.00,
},
'married filing joint, one spouse working': {
'weekly': 115.50,
'bi-weekly': 230.75,
'semi-monthly': 250.00,
'monthly': 500.00,
'quarterly': 1500.00,
'semi-annual': 3000.00,
'annual': 6000.00,
},
'single': {
'weekly': 88.50,
'bi-weekly': 177.00,
'semi-monthly': 191.75,
'monthly': 383.50,
'quarterly': 1150.00,
'semi-annual': 2300.00,
'annual': 4600.00,
},
'head of household': {
'weekly': 88.50,
'bi-weekly': 177.00,
'semi-monthly': 191.75,
'monthly': 383.50,
'quarterly': 1150.00,
'semi-annual': 2300.00,
'annual': 4600.00,
},
'married filing separate': {
'weekly': 57.75,
'bi-weekly': 115.50,
'semi-monthly': 125.00,
'monthly': 250.00,
'quarterly': 750.00,
'semi-annual': 1500.00,
'annual': 3000.00,
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ga_sit_deduction"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ga_dor" model="res.partner">
<field name="name">US Georgia - Department of Taxation - Unemployment Tax</field>
</record>
<record id="res_partner_us_ga_dor_sit" model="res.partner">
<field name="name">US Georgia - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ga_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US GA Georgia State Unemployment</field>
<field name="code">ER_US_GA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ga_suta_wage_base', rate='us_ga_suta_rate', state_code='GA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ga_suta_wage_base', rate='us_ga_suta_rate', state_code='GA')</field>
<field name="partner_id" ref="res_partner_us_ga_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ga_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US GA Georgia State Income Tax Withholding</field>
<field name="code">EE_US_GA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ga_georgia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ga_georgia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ga_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_hi_suta_wage_base" model="hr.rule.parameter">
<field name="name">US HI Hawaii SUTA Wage Base</field>
<field name="code">us_hi_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_hi_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">46800.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_hi_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">48100.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_hi_suta_rate" model="hr.rule.parameter">
<field name="name">US HI Hawaii SUTA Rate</field>
<field name="code">us_hi_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_hi_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.40</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_hi_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.40</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_hi_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US HI Hawaii SIT Tax Rate</field>
<field name="code">us_hi_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_hi_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 2400, 0.00, 1.40),
( 4800, 34.00, 3.20),
( 9600, 110.00, 5.50),
(14400, 374.00, 6.40),
(19200, 682.00, 6.80),
(24000, 1008.00, 7.20),
(36000, 1354.00, 7.60),
('inf', 2266.00, 7.90),
),
'married': (
( 4800, 0.00, 1.40),
( 9600, 67.00, 3.20),
(19200, 221.00, 5.50),
(28800, 749.00, 6.40),
(38400, 1363.00, 6.80),
(48000, 2016.00, 7.20),
(72000, 2707.00, 7.60),
('inf', 4531.00, 7.90),
),
'head_of_household': (
( 2400, 0.00, 1.40),
( 4800, 34.00, 3.20),
( 9600, 110.00, 5.50),
(14400, 374.00, 6.40),
(19200, 682.00, 6.80),
(24000, 1008.00, 7.20),
(36000, 1354.00, 7.60),
('inf', 2266.00, 7.90),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://files.hawaii.gov/tax/forms/2019/19table.pdf -->
<!-- Table from Schedule I, II and III -->
<record id="rule_parameter_us_hi_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 2400, 0.00, 1.40),
( 4800, 34.00, 3.20),
( 9600, 110.00, 5.50),
(14400, 374.00, 6.40),
(19200, 682.00, 6.80),
(24000, 1008.00, 7.20),
(36000, 1354.00, 7.60),
('inf', 2266.00, 7.90),
),
'married': (
( 4800, 0.00, 1.40),
( 9600, 67.00, 3.20),
(19200, 221.00, 5.50),
(28800, 749.00, 6.40),
(38400, 1363.00, 6.80),
(48000, 2016.00, 7.20),
(72000, 2707.00, 7.60),
('inf', 4531.00, 7.90),
),
'head_of_household': (
( 2400, 0.00, 1.40),
( 4800, 34.00, 3.20),
( 9600, 110.00, 5.50),
(14400, 374.00, 6.40),
(19200, 682.00, 6.80),
(24000, 1008.00, 7.20),
(36000, 1354.00, 7.60),
('inf', 2266.00, 7.90),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_hi_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US HI Hawaii Personal Exemption Rate</field>
<field name="code">us_hi_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_hi_sit_personal_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1144</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_hi_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1144</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_hi_dor" model="res.partner">
<field name="name">US Hawaii - Department of Labor and Industrial Relations - Unemployment Tax</field>
</record>
<record id="res_partner_us_hi_dor_sit" model="res.partner">
<field name="name">US Hawaii - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_hi_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US HI Hawaii State Unemployment</field>
<field name="code">ER_US_HI_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_hi_suta_wage_base', rate='us_hi_suta_rate', state_code='HI')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_hi_suta_wage_base', rate='us_hi_suta_rate', state_code='HI')</field>
<field name="partner_id" ref="res_partner_us_hi_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_hi_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US HI Hawaii State Income Tax Withholding</field>
<field name="code">EE_US_HI_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = hi_hawaii_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = hi_hawaii_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_hi_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ia_suta_wage_base" model="hr.rule.parameter">
<field name="name">US IA Iowa SUTA Wage Base</field>
<field name="code">us_ia_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ia_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">30600.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ia_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">31600.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ia_suta_rate" model="hr.rule.parameter">
<field name="name">US IA Iowa SUTA Rate</field>
<field name="code">us_ia_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ia_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ia_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ia_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US IA Iowa SIT Tax Rate</field>
<field name="code">us_ia_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ia_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': (
( 5.13, 0.0033, 0.00),
( 10.25, 0.0067, 0.02),
( 20.50, 0.0225, 0.05),
( 46.13, 0.0414, 0.28),
( 76.89, 0.0563, 1.34),
(102.52, 0.0596, 3.07),
(153.78, 0.0625, 4.60),
(230.68, 0.0744, 7.80),
( 'inf', 0.0853, 13.52),
),
'weekly': (
( 25.63, 0.0033, 0.00),
( 51.27, 0.0067, 0.08),
( 102.52, 0.0225, 0.25),
( 230.67, 0.0414, 1.40),
( 384.46, 0.0563, 6.71),
( 512.62, 0.0596, 15.37),
( 768.92, 0.0625, 23.01),
(1153.38, 0.0744, 39.03),
( 'inf', 0.0853, 67.63),
),
'bi-weekly': (
( 51.27, 0.0033, 0.00),
( 102.54, 0.0067, 0.17),
( 205.04, 0.0225, 0.51),
( 461.35, 0.0414, 2.82),
( 768.92, 0.0563, 13.43),
(1025.23, 0.0596, 30.75),
(1537.85, 0.0625, 46.03),
(2306.77, 0.0744, 78.07),
( 'inf', 0.0853, 135.28),
),
'semi-monthly': (
( 55.54, 0.0033, 0.00),
( 111.08, 0.0067, 0.18),
( 222.13, 0.0225, 0.55),
( 499.79, 0.0414, 3.05),
( 833.00, 0.0563, 14.59),
(1110.67, 0.0596, 33.31),
(1666.00, 0.0625, 49.86),
(2499.00, 0.0744, 84.57),
( 'inf', 0.0853, 146.55),
),
'monthly': (
( 111.08, 0.0033, 0.00),
( 222.17, 0.0067, 0.37),
( 444.25, 0.0225, 1.11),
( 999.58, 0.0414, 6.11),
(1666.00, 0.0563, 29.10),
(2221.33, 0.0596, 62.66),
(3332.00, 0.0625, 99.72),
(4998.00, 0.0744, 169.14),
( 'inf', 0.0853, 293.09),
),
'annual': (
( 1333.00, 0.0033, 0.00),
( 2666.00, 0.0067, 4.40),
( 5331.00, 0.0225, 13.33),
(11995.00, 0.0414, 73.29),
(19992.00, 0.0563, 349.19),
(26656.00, 0.0596, 799.41),
(39984.00, 0.0625, 1196.58),
(59976.00, 0.0744, 2029.58),
( 'inf', 0.0853, 3516.98),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://tax.iowa.gov/sites/default/files/idr/documents/WH/IA%20Withholding%20Formula%20and%20Instructions%20TY2020.pdf -->
<!-- Table from page 2.-->
<record id="rule_parameter_us_ia_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': (
( 5.69, 0.0033, 0.00),
( 11.38, 0.0067, 0.02),
( 22.76, 0.0225, 0.06),
( 51.22, 0.0414, 0.32),
( 85.36, 0.0563, 1.50),
(113.81, 0.0596, 3.42),
(170.71, 0.0625, 5.12),
(256.07, 0.0744, 8.68),
( 'inf', 0.0853, 15.03),
),
'weekly': (
( 28.46, 0.0033, 0.00),
( 56.90, 0.0067, 0.09),
( 113.81, 0.0225, 0.28),
( 256.08, 0.0414, 1.56),
( 426.79, 0.0563, 7.45),
( 569.04, 0.0596, 17.06),
( 853.56, 0.0625, 25.54),
(1280.35, 0.0744, 43.32),
( 'inf', 0.0853, 75.07),
),
'bi-weekly': (
( 56.92, 0.0033, 0.00),
( 113.81, 0.0067, 0.19),
( 227.62, 0.0225, 0.57),
( 512.15, 0.0414, 3.13),
( 853.58, 0.0563, 14.91),
(1138.08, 0.0596, 34.13),
(1707.12, 0.0625, 51.09),
(2560.69, 0.0744, 86.66),
( 'inf', 0.0853, 150.17),
),
'semi-monthly': (
( 61.67, 0.0033, 0.00),
( 23.29, 0.0067, 0.20),
( 246.58, 0.0225, 0.61),
( 554.83, 0.0414, 3.38),
( 924.71, 0.0563, 16.14),
(1232.92, 0.0596, 36.96),
(1849.38, 0.0625, 55.33),
(2774.08, 0.0744, 93.86),
( 'inf', 0.0853, 162.66),
),
'monthly': (
( 123.33, 0.0033, 0.00),
( 246.58, 0.0067, 0.41),
( 493.17, 0.0225, 1.24),
(1109.67, 0.0414, 6.79),
(1849.42, 0.0563, 32.31),
(2465.83, 0.0596, 73.96),
(3698.75, 0.0625, 110.70),
(5548.17, 0.0744, 187.76),
( 'inf', 0.0853, 325.36),
),
'annual': (
( 1480.00, 0.0033, 0.00),
( 2959.00, 0.0067, 4.88),
( 5918.00, 0.0225, 14.79),
(13316.00, 0.0414, 81.37),
(22193.00, 0.0563, 387.65),
(29590.00, 0.0596, 887.43),
(44385.00, 0.0625, 1328.29),
(66578.00, 0.0744, 2252.98),
( 'inf', 0.0853, 3904.14),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ia_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US IA Iowa Standard Deduction Rate</field>
<field name="code">us_ia_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ia_sit_standard_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': ( 6.50, 16.00),
'weekly': ( 32.50, 80.00),
'bi-weekly': ( 65.00, 160.00),
'semi-monthly': ( 70.42, 173.33),
'monthly': ( 140.83, 346.67),
'annually': (1690.00, 4160.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://tax.iowa.gov/sites/default/files/idr/documents/WH/IA%20Withholding%20Formula%20and%20Instructions%20TY2020.pdf-->
<!-- Step 2 -->
<record id="rule_parameter_us_ia_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': ( 7.23, 17.81),
'weekly': ( 36.15, 89.04),
'bi-weekly': ( 72.31, 178.08),
'semi-monthly': ( 78.33, 192.92),
'monthly': ( 156.67, 385.83),
'annually': (1880.00, 4630.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ia_sit_deduction_allowance_rate" model="hr.rule.parameter">
<field name="name">US IA Iowa Deduction Allowance Rate</field>
<field name="code">us_ia_sit_deduction_allowance_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ia_sit_deduction_allowance_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': 0.15,
'weekly': 0.77,
'bi-weekly': 1.54,
'semi-monthly': 1.67,
'monthly': 3.33,
'annually': 40.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_deduction_allowance_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://tax.iowa.gov/sites/default/files/idr/documents/WH/IA%20Withholding%20Formula%20and%20Instructions%20TY2020.pdf -->
<!-- Step 4 -->
<record id="rule_parameter_us_ia_sit_deduction_allowance_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': 0.15,
'weekly': 0.77,
'bi-weekly': 1.54,
'semi-monthly': 1.67,
'monthly': 3.33,
'annually': 40.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ia_sit_deduction_allowance_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ia_dor" model="res.partner">
<field name="name">US Iowa - Department of Economic Security (IDES) - Unemployment Tax</field>
</record>
<record id="res_partner_us_ia_dor_sit" model="res.partner">
<field name="name">US Iowa - Department of Revenue (IDOR) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ia_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US IA Iowa State Unemployment</field>
<field name="code">ER_US_IA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ia_suta_wage_base', rate='us_ia_suta_rate', state_code='IA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ia_suta_wage_base', rate='us_ia_suta_rate', state_code='IA')</field>
<field name="partner_id" ref="res_partner_us_ia_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ia_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US IA Iowa State Income Tax Withholding</field>
<field name="code">EE_US_IA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ia_iowa_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ia_iowa_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ia_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,448 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_id_suta_wage_base" model="hr.rule.parameter">
<field name="name">US ID Idaho SUTA Wage Base</field>
<field name="code">us_id_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_id_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">40000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_id_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">41600.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_id_suta_rate" model="hr.rule.parameter">
<field name="name">US ID Idaho SUTA Rate</field>
<field name="code">us_id_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_id_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_id_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_id_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US ID Idaho SIT Tax Rate</field>
<field name="code">us_id_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_id_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 235, 0.00, 0.000),
( 264, 0.00, 1.125),
( 294, 0.00, 3.125),
( 324, 1.00, 3.625),
( 353, 2.00, 4.625),
( 383, 4.00, 5.625),
( 457, 5.00, 6.625),
('inf', 10.00, 6.925),
),
'bi-weekly': (
( 469, 0.00, 0.000),
( 529, 0.00, 1.125),
( 588, 1.00, 3.125),
( 647, 3.00, 3.625),
( 706, 5.00, 4.625),
( 766, 7.00, 5.625),
( 914, 11.00, 6.625),
('inf', 21.00, 6.925),
),
'semi-monthly': (
( 508, 0.00, 0.000),
( 573, 0.00, 1.125),
( 637, 1.00, 3.125),
( 701, 3.00, 3.625),
( 765, 5.00, 4.625),
( 829, 8.00, 5.625),
( 990, 12.00, 6.625),
('inf', 22.00, 6.925),
),
'monthly': (
( 1017, 0.00, 0.000),
( 1145, 0.00, 1.125),
( 1273, 1.00, 3.125),
( 1402, 5.00, 3.625),
( 1530, 10.00, 4.625),
( 1659, 16.00, 5.625),
( 1980, 23.00, 6.625),
('inf', 45.00, 6.925),
),
'annually': (
(12200, 0.00, 0.000),
(13741, 0.00, 1.125),
(15281, 17.00, 3.125),
(16822, 65.00, 3.625),
(18362, 121.00, 4.625),
(19903, 192.00, 5.625),
(23754, 279.00, 6.625),
('inf', 534.00, 6.925),
),
},
'married': {
'weekly': (
( 469, 0.00, 0.000),
( 529, 0.00, 1.125),
( 588, 0.00, 3.125),
( 647, 1.00, 3.625),
( 706, 2.00, 4.625),
( 766, 4.00, 5.625),
( 914, 5.00, 6.625),
('inf', 10.00, 6.925),
),
'bi-weekly': (
( 938, 0.00, 0.000),
( 1057, 0.00, 1.125),
( 1175, 1.00, 3.125),
( 1294, 5.00, 3.625),
( 1412, 9.00, 4.625),
( 1531, 15.00, 5.625),
( 1827, 21.00, 6.625),
('inf', 41.00, 6.925),
),
'semi-monthly': (
( 1017, 0.00, 0.000),
( 1145, 0.00, 1.125),
( 1273, 1.00, 3.125),
( 1402, 5.00, 3.625),
( 1530, 10.00, 4.625),
( 1659, 16.00, 5.625),
( 1980, 23.00, 6.625),
('inf', 45.00, 6.925),
),
'monthly': (
( 2033, 0.00, 0.000),
( 2290, 0.00, 1.125),
( 2547, 3.00, 3.125),
( 2804, 11.00, 3.625),
( 3060, 20.00, 4.625),
( 3317, 32.00, 5.625),
( 3959, 47.00, 6.625),
('inf', 89.00, 6.925),
),
'annually': (
(24400, 0.00, 0.000),
(27482, 0.00, 1.125),
(30562, 35.00, 3.125),
(33644, 131.00, 3.625),
(36724, 243.00, 4.625),
(39806, 385.00, 5.625),
(47508, 558.00, 6.625),
('inf', 1068.00, 6.925),
),
},
'head of household': {
'weekly': (
( 235, 0.00, 0.000),
( 264, 0.00, 1.125),
( 294, 0.00, 3.125),
( 324, 1.00, 3.625),
( 353, 2.00, 4.625),
( 383, 4.00, 5.625),
( 457, 5.00, 6.625),
('inf', 10.00, 6.925),
),
'bi-weekly': (
( 469, 0.00, 0.000),
( 529, 0.00, 1.125),
( 588, 1.00, 3.125),
( 647, 3.00, 3.625),
( 706, 5.00, 4.625),
( 766, 7.00, 5.625),
( 914, 11.00, 6.625),
('inf', 21.00, 6.925),
),
'semi-monthly': (
( 508, 0.00, 0.000),
( 573, 0.00, 1.125),
( 637, 1.00, 3.125),
( 701, 3.00, 3.625),
( 765, 5.00, 4.625),
( 829, 8.00, 5.625),
( 990, 12.00, 6.625),
('inf', 22.00, 6.925),
),
'monthly': (
( 1017, 0.00, 0.000),
( 1145, 0.00, 1.125),
( 1273, 1.00, 3.125),
( 1402, 5.00, 3.625),
( 1530, 10.00, 4.625),
( 1659, 16.00, 5.625),
( 1980, 23.00, 6.625),
('inf', 45.00, 6.925),
),
'annually': (
(12200, 0.00, 0.000),
(13741, 0.00, 1.125),
(15281, 17.00, 3.125),
(16822, 65.00, 3.625),
(18362, 121.00, 4.625),
(19903, 192.00, 5.625),
(23754, 279.00, 6.625),
('inf', 534.00, 6.925),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://tax.idaho.gov/pubs/EPB00744_06-16-2020.pdf -->
<!-- Page 1 to 3 -->
<record id="rule_parameter_us_id_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 238, 0.00, 0.000),
( 269, 0.00, 1.125),
( 299, 0.00, 3.125),
( 329, 1.00, 3.625),
( 359, 2.00, 4.625),
( 389, 4.00, 5.625),
( 465, 5.00, 6.625),
('inf', 10.00, 6.925),
),
'bi-weekly': (
( 477, 0.00, 0.000),
( 537, 0.00, 1.125),
( 598, 1.00, 3.125),
( 658, 3.00, 3.625),
( 718, 5.00, 4.625),
( 778, 8.00, 5.625),
( 929, 11.00, 6.625),
('inf', 21.00, 6.925),
),
'semi-monthly': (
( 517, 0.00, 0.000),
( 582, 0.00, 1.125),
( 647, 1.00, 3.125),
( 713, 3.00, 3.625),
( 778, 5.00, 4.625),
( 843, 8.00, 5.625),
( 1007, 12.00, 6.625),
('inf', 23.00, 6.925),
),
'monthly': (
( 1033, 0.00, 0.000),
( 1164, 0.00, 1.125),
( 1295, 1.00, 3.125),
( 1425, 6.00, 3.625),
( 1556, 10.00, 4.625),
( 1687, 16.00, 5.625),
( 2013, 24.00, 6.625),
('inf', 45.00, 6.925),
),
'annually': (
(12400, 0.00, 0.000),
(13968, 0.00, 1.125),
(15536, 18.00, 3.125),
(17104, 67.00, 3.625),
(18672, 124.00, 4.625),
(20240, 197.00, 5.625),
(24160, 285.00, 6.625),
('inf', 545.00, 6.925),
),
},
'married': {
'weekly': (
( 477, 0.00, 0.000),
( 537, 0.00, 1.125),
( 598, 0.00, 3.125),
( 658, 1.00, 3.625),
( 718, 3.00, 4.625),
( 778, 5.00, 5.625),
( 929, 11.00, 6.625),
('inf', 21.00, 6.925),
),
'bi-weekly': (
( 954, 0.00, 0.000),
( 1074, 0.00, 1.125),
( 1195, 1.00, 3.125),
( 1316, 5.00, 3.625),
( 1436, 9.00, 4.625),
( 1557, 15.00, 5.625),
( 1858, 22.00, 6.625),
('inf', 42.00, 6.925),
),
'semi-monthly': (
( 1033, 0.00, 0.000),
( 1164, 0.00, 1.125),
( 1295, 1.00, 3.125),
( 1425, 6.00, 3.625),
( 1556, 10.00, 4.625),
( 1687, 16.00, 5.625),
( 2013, 24.00, 6.625),
('inf', 45.00, 6.925),
),
'monthly': (
( 2067, 0.00, 0.000),
( 2328, 0.00, 1.125),
( 2589, 3.00, 3.125),
( 2851, 11.00, 3.625),
( 3112, 21.00, 4.625),
( 3373, 33.00, 5.625),
( 4027, 47.00, 6.625),
('inf', 91.00, 6.925),
),
'annually': (
(24400, 0.00, 0.000),
(27482, 0.00, 1.125),
(30562, 35.00, 3.125),
(33644, 131.00, 3.625),
(36724, 243.00, 4.625),
(39806, 385.00, 5.625),
(47508, 558.00, 6.625),
('inf', 1068.00, 6.925),
),
},
'head of household': {
'weekly': (
( 238, 0.00, 0.000),
( 269, 0.00, 1.125),
( 299, 0.00, 3.125),
( 329, 1.00, 3.625),
( 359, 2.00, 4.625),
( 389, 4.00, 5.625),
( 465, 5.00, 6.625),
('inf', 10.00, 6.925),
),
'bi-weekly': (
( 477, 0.00, 0.000),
( 537, 0.00, 1.125),
( 598, 1.00, 3.125),
( 658, 3.00, 3.625),
( 718, 5.00, 4.625),
( 778, 8.00, 5.625),
( 929, 11.00, 6.625),
('inf', 21.00, 6.925),
),
'semi-monthly': (
( 517, 0.00, 0.000),
( 582, 0.00, 1.125),
( 647, 1.00, 3.125),
( 713, 3.00, 3.625),
( 778, 5.00, 4.625),
( 843, 8.00, 5.625),
( 1007, 12.00, 6.625),
('inf', 23.00, 6.925),
),
'monthly': (
( 1033, 0.00, 0.000),
( 1164, 0.00, 1.125),
( 1295, 1.00, 3.125),
( 1425, 6.00, 3.625),
( 1556, 10.00, 4.625),
( 1687, 16.00, 5.625),
( 2013, 24.00, 6.625),
('inf', 45.00, 6.925),
),
'annually': (
(12400, 0.00, 0.000),
(13968, 0.00, 1.125),
(15536, 18.00, 3.125),
(17104, 67.00, 3.625),
(18672, 124.00, 4.625),
(20240, 197.00, 5.625),
(24160, 285.00, 6.625),
('inf', 545.00, 6.925),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_id_sit_ictcat_rate" model="hr.rule.parameter">
<field name="name">US ID Idaho Child Tax Credit Allowance Rate</field>
<field name="code">us_id_sit_ictcat_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_id_sit_ictcat_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 56.92,
'bi-weekly': 113.85,
'semi-monthly': 123.33,
'monthly': 246.67,
'annually': 2960.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_sit_ictcat_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://tax.idaho.gov/i-1026.cfm?seg=compute -->
<!-- Idaho Child Tax Credit Allowances Table -->
<record id="rule_parameter_us_id_sit_ictcat_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 56.92,
'bi-weekly': 113.85,
'semi-monthly': 123.33,
'monthly': 246.67,
'annually': 2960.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_id_sit_ictcat_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_id_dor" model="res.partner">
<field name="name">US Idaho - Department of Labor (IDOL) - Unemployment Tax</field>
</record>
<record id="res_partner_us_id_dor_sit" model="res.partner">
<field name="name">US Idaho - State Tax Commission (ISTC) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_id_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US ID Idaho State Unemployment</field>
<field name="code">ER_US_ID_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_id_suta_wage_base', rate='us_id_suta_rate', state_code='ID')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_id_suta_wage_base', rate='us_id_suta_rate', state_code='ID')</field>
<field name="partner_id" ref="res_partner_us_id_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_id_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US ID Idaho State Income Tax Withholding</field>
<field name="code">EE_US_ID_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = id_idaho_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = id_idaho_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_id_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_il_suta_wage_base" model="hr.rule.parameter">
<field name="name">US IL Illinois SUTA Wage Base</field>
<field name="code">us_il_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_il_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">12960.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_il_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">12740.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_il_suta_rate" model="hr.rule.parameter">
<field name="name">US IL Illinois SUTA Rate</field>
<field name="code">us_il_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_il_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3.175</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_il_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.125</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_il_sit_basic_allowances_rate" model="hr.rule.parameter">
<field name="name">US IL Illinois Basic Allowances Rate</field>
<field name="code">us_il_sit_basic_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_il_sit_basic_allowances_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2275.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_sit_basic_allowances_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_il_sit_basic_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2325.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_sit_basic_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_il_sit_additional_allowances_rate" model="hr.rule.parameter">
<field name="name">US IL Illinois Additional Allowances Rate</field>
<field name="code">us_il_sit_additional_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_il_sit_additional_allowances_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_sit_additional_allowances_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_il_sit_additional_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_il_sit_additional_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_il_dor" model="res.partner">
<field name="name">US Illinois - Department of Economic Security (IDES) - Unemployment Tax</field>
</record>
<record id="res_partner_us_il_dor_sit" model="res.partner">
<field name="name">US Illinois - Department of Revenue (IDOR) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_il_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US IL Illinois State Unemployment</field>
<field name="code">ER_US_IL_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_il_suta_wage_base', rate='us_il_suta_rate', state_code='IL')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_il_suta_wage_base', rate='us_il_suta_rate', state_code='IL')</field>
<field name="partner_id" ref="res_partner_us_il_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_il_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US IL Illinois State Income Tax Withholding</field>
<field name="code">EE_US_IL_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = il_illinois_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = il_illinois_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_il_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_in_suta_wage_base" model="hr.rule.parameter">
<field name="name">US IN Indiana SUTA Wage Base</field>
<field name="code">us_in_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_in_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_in_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_in_suta_rate" model="hr.rule.parameter">
<field name="name">US IN Indiana SUTA Rate</field>
<field name="code">us_in_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_in_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_in_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- state income rate -->
<record id="rule_parameter_us_in_suta_income_rate" model="hr.rule.parameter">
<field name="name">US IN Indiana SUTA Income Rate</field>
<field name="code">us_in_suta_income_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_in_suta_income_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.23</field>
<field name="rule_parameter_id" ref="rule_parameter_us_in_suta_income_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_in_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US IN Indiana SIT Personal Exemption Rate</field>
<field name="code">us_in_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_in_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': ( 2.74, 5.48, 8.22, 10.96, 13.70, 16.44),
'weekly': ( 19.23, 38.46, 57.69, 76.92, 96.15, 115.38),
'bi-weekly': ( 38.46, 76.92, 115.38, 153.85, 192.31, 230.77),
'semi-monthly': ( 41.67, 83.33, 125.00, 166.67, 208.33, 250.00),
'monthly': ( 83.33, 166.67, 250.00, 333.33, 416.67, 500.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_in_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_in_sit_dependent_exemption_rate" model="hr.rule.parameter">
<field name="name">US IN Indiana SIT Dependent Exemption Rate</field>
<field name="code">us_in_sit_dependent_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_in_sit_dependent_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'daily': ( 4.11, 8.22, 12.33, 16.44, 20.55),
'weekly': ( 28.85, 57.69, 86.54, 115.38, 144.23),
'bi-weekly': ( 57.69, 115.38, 173.08, 230.77, 288.46),
'semi-monthly': ( 62.50, 125.00, 187.50, 250.00, 312.50),
'monthly': (125.00, 250.00, 375.00, 500.00, 625.00),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_in_sit_dependent_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_in_dor" model="res.partner">
<field name="name">US Indiana - Department of Workforce Development - Unemployment Tax</field>
</record>
<record id="res_partner_us_in_dor_sit" model="res.partner">
<field name="name">US Indiana - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_in_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US IN Indiana State Unemployment</field>
<field name="code">ER_US_IN_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_in_suta_wage_base', rate='us_in_suta_rate', state_code='IN')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_in_suta_wage_base', rate='us_in_suta_rate', state_code='IN')</field>
<field name="partner_id" ref="res_partner_us_in_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_in_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US IN Indiana State Income Tax Withholding</field>
<field name="code">EE_US_IN_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = in_indiana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = in_indiana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_in_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ks_suta_wage_base" model="hr.rule.parameter">
<field name="name">US KS Kansas SUTA Wage Base</field>
<field name="code">us_ks_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ks_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">14000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ks_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ks_suta_rate" model="hr.rule.parameter">
<field name="name">US KS Kansas SUTA Rate</field>
<field name="code">us_ks_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ks_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ks_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ks_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US KS Kansas Allowances Rate</field>
<field name="code">us_ks_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ks_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 43.27,
'bi-weekly' : 86.54,
'semi-monthly': 93.75,
'monthly' : 187.50,
'quarterly' : 562.50,
'semi-annual': 1125.00,
'annually': 2250.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ks_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table from percentage table from https://www.ksrevenue.org/pdf/kw100.pdf -->
<record id="rule_parameter_us_ks_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US KS Kansas SIT Tax Rate</field>
<field name="code">us_ks_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ks_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 58, 0.00, 0.00),
( 346, 3.10, 0.00),
( 635, 5.25, 8.94),
('inf', 5.70, 24.09),
),
'bi-weekly': (
( 115, 0.00, 0.00),
( 692, 3.10, 0.00),
( 1269, 5.25, 17.88),
('inf', 5.70, 48.17),
),
'semi-monthly': (
( 125, 0.00, 0.00),
( 750, 3.10, 0.00),
( 1375, 5.25, 19.38),
('inf', 5.70, 52.19),
),
'monthly': (
( 250, 0.00, 0.00),
( 1500, 3.10, 0.00),
( 2750, 5.25, 38.75),
('inf', 5.70, 104.38),
),
'quarterly': (
( 750, 0.00, 0.00),
( 4500, 3.10, 0.00),
(8250, 5.25, 116.25),
('inf', 5.70, 313.13),
),
'semi-annual': (
( 1500, 0.00, 0.00),
( 9000, 3.10, 0.00),
(16500, 5.25, 232.50),
('inf', 5.70, 626.25),
),
'annually': (
( 3000, 0.00, 0.00),
(18000, 3.10, 0.00),
(33000, 5.25, 465.00),
('inf', 5.70, 1252.50),
),
},
'married': {
'weekly': (
( 144, 0.00, 0.00),
( 721, 3.10, 0.00),
(1298, 5.25, 17.88),
('inf', 5.70, 48.17),
),
'bi-weekly': (
( 288, 0.00, 0.00),
( 1442, 3.10, 0.00),
( 2596, 5.25, 35.77),
('inf', 5.70, 96.35),
),
'semi-monthly': (
( 313, 0.00, 0.00),
( 1563, 3.10, 0.00),
( 2813, 5.25, 38.75),
('inf', 5.70, 104.38),
),
'monthly': (
( 625, 0.00, 0.00),
( 3125, 3.10, 0.00),
( 5625, 5.25, 77.50),
('inf', 5.70, 208.75),
),
'quarterly': (
( 1875, 0.00, 0.00),
( 9375, 3.10, 0.00),
(16875, 5.25, 232.50),
('inf', 5.70, 626.25),
),
'semi-annual': (
( 3750, 0.00, 0.00),
(18750, 3.10, 0.00),
(33750, 5.25, 465.00),
('inf', 5.70, 1252.50),
),
'annually': (
( 7500, 0.00, 0.00),
(37500, 3.10, 0.00),
(67500, 5.25, 930.00),
('inf', 5.70, 2505.00),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ks_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ks_dor" model="res.partner">
<field name="name">US Kansas - Department of Labor - Unemployment Tax</field>
</record>
<record id="res_partner_us_ks_dor_sit" model="res.partner">
<field name="name">US Kansas - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ks_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US KS Kansas State Unemployment</field>
<field name="code">ER_US_KS_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ks_suta_wage_base', rate='us_ks_suta_rate', state_code='KS')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ks_suta_wage_base', rate='us_ks_suta_rate', state_code='KS')</field>
<field name="partner_id" ref="res_partner_us_ks_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ks_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US KS Kansas State Income Tax Withholding</field>
<field name="code">EE_US_KS_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ks_kansas_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ks_kansas_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ks_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ky_suta_wage_base" model="hr.rule.parameter">
<field name="name">US KY Kentucky SUTA Wage Base</field>
<field name="code">us_ky_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ky_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">10800.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ky_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ky_suta_rate" model="hr.rule.parameter">
<field name="name">US KY Kentucky SUTA Rate</field>
<field name="code">us_ky_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ky_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ky_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ky_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US KY Kentucky Standard Deduction Rate</field>
<field name="code">us_ky_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- Data from https://revenue.ky.gov/Forms/42A003(T)%20(12-2019)%202020%20Tax%20Tables.pdf -->
<record id="rule_parameter_us_ky_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2650</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ky_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ky_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US KY Kentucky SIT Tax Rate</field>
<field name="code">us_ky_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<!-- Data from https://revenue.ky.gov/Forms/42A003(T)%20(12-2019)%202020%20Tax%20Tables.pdf -->
<data noupdate="1">
<record id="rule_parameter_us_ky_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">5.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ky_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ky_dor" model="res.partner">
<field name="name">US Kentucky - Office of Unemployment Insurance - Unemployment Tax</field>
</record>
<record id="res_partner_us_ky_dor_sit" model="res.partner">
<field name="name">US Kentucky - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ky_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US KY Kentucky State Unemployment</field>
<field name="code">ER_US_KY_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ky_suta_wage_base', rate='us_ky_suta_rate', state_code='KY')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ky_suta_wage_base', rate='us_ky_suta_rate', state_code='KY')</field>
<field name="partner_id" ref="res_partner_us_ky_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ky_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US KY Kentucky State Income Tax Withholding</field>
<field name="code">EE_US_KY_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ky_kentucky_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ky_kentucky_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ky_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_la_suta_wage_base" model="hr.rule.parameter">
<field name="name">US LA Louisiana SUTA Wage Base</field>
<field name="code">us_la_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_la_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">7700.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_la_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">7700.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_la_suta_rate" model="hr.rule.parameter">
<field name="name">US LA Louisiana SUTA Rate</field>
<field name="code">us_la_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_la_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.14</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_la_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.14</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- table data from http://www.revenue.louisiana.gov/taxforms/1306(7_09)W.pdf page 9. -->
<record id="rule_parameter_us_la_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US LA Louisiana SIT Tax Rate</field>
<field name="code">us_la_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_la_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
(12500.00, 2.10),
(50000.00, 1.60),
( 'inf', 1.35),
),
'married': (
( 25000.00, 2.10),
(100000.00, 1.65),
( 'inf', 1.35),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_la_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
(12500.00, 2.10),
(50000.00, 1.60),
( 'inf', 1.35)
),
'married': (
( 25000.00, 2.10),
(100000.00, 1.65),
( 'inf', 1.35)
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_la_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US LA Louisiana Personal Exemption Rate</field>
<field name="code">us_la_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_la_sit_personal_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">4500</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_la_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4500</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_la_sit_dependent_rate" model="hr.rule.parameter">
<field name="name">US LA Louisiana Dependent Rate</field>
<field name="code">us_la_sit_dependent_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_la_sit_dependent_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_dependent_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_la_sit_dependent_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_la_sit_dependent_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_la_dor" model="res.partner">
<field name="name">US Louisiana - Workforce Commission (LWC) - Unemployment Tax</field>
</record>
<record id="res_partner_us_la_dor_sit" model="res.partner">
<field name="name">US Louisiana - Department of Revenue (LDOR) - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_la_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US LA Louisiana State Unemployment</field>
<field name="code">ER_US_LA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_la_suta_wage_base', rate='us_la_suta_rate', state_code='LA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_la_suta_wage_base', rate='us_la_suta_rate', state_code='LA')</field>
<field name="partner_id" ref="res_partner_us_la_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_la_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US LA Louisiana State Income Tax Withholding</field>
<field name="code">EE_US_LA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = la_louisiana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = la_louisiana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_la_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_me_suta_wage_base" model="hr.rule.parameter">
<field name="name">US ME Maine SUTA Wage Base</field>
<field name="code">us_me_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_me_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">12000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_me_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_me_suta_rate" model="hr.rule.parameter">
<field name="name">US ME Maine SUTA Rate</field>
<field name="code">us_me_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_me_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.92</field>
<field name="rule_parameter_id" ref="rule_parameter_us_me_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- table based on https://www.maine.gov/revenue/forms/with/2020/20_WH_Tab&Instructions.pdf step 6.-->
<record id="rule_parameter_us_me_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US ME Maine SIT Tax Rate</field>
<field name="code">us_me_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_me_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 22200, 0, 5.80),
( 52600, 1288, 6.75),
( 'inf', 3340, 7.15),
),
'married': (
( 44450, 0, 5.80),
( 105200, 2578, 6.75),
( 'inf', 6679, 7.15),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_me_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_me_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US ME Maine Standard Deduction Rate</field>
<field name="code">us_me_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_me_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
( 82900, 9550),
(157900, 75000),
},
'married': {
(165800, 21950),
(315800, 150000),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_me_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_me_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US ME Maine Personal Exemption Rate</field>
<field name="code">us_me_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_me_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4300</field>
<field name="rule_parameter_id" ref="rule_parameter_us_me_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_me_dor" model="res.partner">
<field name="name">US Maine - Department Of Labor | ReEmploy - Unemployment Tax</field>
</record>
<record id="res_partner_us_me_dor_sit" model="res.partner">
<field name="name">US Maine - Department Of Revenue Services - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_me_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US ME Maine State Unemployment</field>
<field name="code">ER_US_ME_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_me_suta_wage_base', rate='us_me_suta_rate', state_code='ME')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_me_suta_wage_base', rate='us_me_suta_rate', state_code='ME')</field>
<field name="partner_id" ref="res_partner_us_me_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_me_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US ME Maine State Income Tax Withholding</field>
<field name="code">EE_US_ME_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = me_maine_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = me_maine_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_me_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_mi_suta_wage_base" model="hr.rule.parameter">
<field name="name">US MI Michigan SUTA Wage Base</field>
<field name="code">us_mi_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mi_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">9500.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mi_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_mi_suta_rate" model="hr.rule.parameter">
<field name="name">US MI Michigan SUTA Rate</field>
<field name="code">us_mi_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mi_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mi_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mi_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US MI Michigan Exemption Rate</field>
<field name="code">us_mi_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mi_sit_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">4400.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mi_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4750.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mi_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_mi_dor" model="res.partner">
<field name="name">US Michigan - Unemployment Insurance Agency - Unemployment Tax</field>
</record>
<record id="res_partner_us_mi_dor_sit" model="res.partner">
<field name="name">US Michigan - Department of Treasury - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_mi_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MI Michigan State Unemployment</field>
<field name="code">ER_US_MI_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mi_suta_wage_base', rate='us_mi_suta_rate', state_code='MI')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mi_suta_wage_base', rate='us_mi_suta_rate', state_code='MI')</field>
<field name="partner_id" ref="res_partner_us_mi_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_mi_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US MI Michigan State Income Tax Withholding</field>
<field name="code">EE_US_MI_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = mi_michigan_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = mi_michigan_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_mi_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_mn_suta_wage_base" model="hr.rule.parameter">
<field name="name">US MN Minnesota SUTA Wage Base</field>
<field name="code">us_mn_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mn_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">34000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mn_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">35000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_mn_suta_rate" model="hr.rule.parameter">
<field name="name">US MN Minnesota SUTA Rate</field>
<field name="code">us_mn_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mn_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.11</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mn_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.11</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mn_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US MN Minnesota SIT Tax Rate</field>
<field name="code">us_mn_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mn_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 28920, 2400, 5.35, 0.00),
( 89510, 28920, 7.05, 1418.82),
(166290, 89510, 7.85, 5690.42),
( 'inf', 166290, 9.85, 11717.65),
),
'married': (
( 47820, 9050, 5.35, 0.00),
( 163070, 47820, 7.05, 2074.20),
( 282200, 163070, 7.85, 10199.33),
( 'inf', 282200, 9.85, 19551.04),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.revenue.state.mn.us/sites/default/files/2019-12/wh_inst_20_0.pdf -->
<!-- Chart for step 5 value -->
<record id="rule_parameter_us_mn_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 30760, 3800, 5.35, 0.00),
( 92350, 30760, 6.80, 1442.36),
(168200, 92350, 7.85, 5630.48),
( 'inf', 168200, 9.85, 11584.71),
),
'married': (
( 51310, 11900, 5.35, 0.00),
( 168470, 51310, 6.80, 2108.44),
( 285370, 168470, 7.85, 10075.32),
( 'inf', 285370, 9.85, 19251.97),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mn_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US MN Minnesota Allowances Rate</field>
<field name="code">us_mn_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mn_sit_allowances_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">4250.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.revenue.state.mn.us/sites/default/files/2019-12/wh_inst_20_0.pdf -->
<!-- Step 3. -->
<record id="rule_parameter_us_mn_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">4300.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mn_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_mn_dor" model="res.partner">
<field name="name">US Minnesota - Unemployment Insurance Agency - Unemployment Tax</field>
</record>
<record id="res_partner_us_mn_dor_sit" model="res.partner">
<field name="name">US Minnesota - Department of Treasury - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_mn_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MN Minnesota State Unemployment</field>
<field name="code">ER_US_MN_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mn_suta_wage_base', rate='us_mn_suta_rate', state_code='MN')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mn_suta_wage_base', rate='us_mn_suta_rate', state_code='MN')</field>
<field name="partner_id" ref="res_partner_us_mn_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_mn_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US MN Minnesota State Income Tax Withholding</field>
<field name="code">EE_US_MN_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = mn_minnesota_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = mn_minnesota_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_mn_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_mo_suta_wage_base" model="hr.rule.parameter">
<field name="name">US MO Missouri SUTA Wage Base</field>
<field name="code">us_mo_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mo_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">12000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mo_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">11500.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_mo_suta_rate" model="hr.rule.parameter">
<field name="name">US MO Missouri SUTA Rate</field>
<field name="code">us_mo_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mo_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.376</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mo_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.376</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mo_sit_rate" model="hr.rule.parameter">
<field name="name">US MO Missouri SIT Rate Table</field>
<field name="code">us_mo_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://dor.mo.gov/forms/4282_2019.pdf -->
<record id="rule_parameter_us_mo_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
(1053.0, 1.5),
(1053.0, 2.0),
(1053.0, 2.5),
(1053.0, 3.0),
(1053.0, 3.5),
(1053.0, 4.0),
(1053.0, 4.5),
(1053.0, 5.0),
( 'inf', 5.4),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.mo.gov/forms/4282_2020.pdf -->
<!-- Income Tax Withholding Percentage Table-->
<record id="rule_parameter_us_mo_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
(1073.0, 1.5),
(1073.0, 2.0),
(1073.0, 2.5),
(1073.0, 3.0),
(1073.0, 3.5),
(1073.0, 4.0),
(1073.0, 4.5),
(1073.0, 5.0),
( 'inf', 5.4),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mo_sit_deduction" model="hr.rule.parameter">
<field name="name">US MO Missouri SIT Deduction</field>
<field name="code">us_mo_sit_deduction</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://dor.mo.gov/forms/4282_2019.pdf -->
<record id="rule_parameter_us_mo_sit_deduction_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': 12400.0,
'married': 24800.0,
'head_of_household': 18650.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_sit_deduction"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://dor.mo.gov/forms/4282_2020.pdf -->
<!-- 2020 Missouri Withholding Tax Formula Page.12 -->
<record id="rule_parameter_us_mo_sit_deduction_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': 12400.0,
'married': 24800.0,
'head_of_household': 18650.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mo_sit_deduction"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_mo_dor" model="res.partner">
<field name="name">US Missouri - Department of Taxation - Unemployment Tax</field>
</record>
<record id="res_partner_us_mo_dor_sit" model="res.partner">
<field name="name">US Missouri - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_mo_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MO Missouri State Unemployment</field>
<field name="code">ER_US_MO_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mo_suta_wage_base', rate='us_mo_suta_rate', state_code='MO')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mo_suta_wage_base', rate='us_mo_suta_rate', state_code='MO')</field>
<field name="partner_id" ref="res_partner_us_mo_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_mo_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US MO Missouri State Income Tax Withholding</field>
<field name="code">EE_US_MO_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = mo_missouri_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = mo_missouri_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_mo_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ms_suta_wage_base" model="hr.rule.parameter">
<field name="name">US MS Mississippi SUTA Wage Base</field>
<field name="code">us_ms_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ms_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">14000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ms_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">14000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ms_suta_rate" model="hr.rule.parameter">
<field name="name">US MS Mississippi SUTA Rate</field>
<field name="code">us_ms_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ms_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.2</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ms_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.2</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ms_sit_rate" model="hr.rule.parameter">
<field name="name">US MS Mississippi SIT Rate Table</field>
<field name="code">us_ms_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ms_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 10000.00, 290.0, 0.05),
( 5000.00, 90.0, 0.04),
( 2000.00, 0.0, 0.03),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.dor.ms.gov/Documents/Computer%20Payroll%20Flowchart.pdf -->
<!-- Table D. -->
<record id="rule_parameter_us_ms_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 10000.00, 260.0, 0.05),
( 5000.00, 60.0, 0.04),
( 3000.00, 0.0, 0.03),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ms_sit_deduction" model="hr.rule.parameter">
<field name="name">US MS Mississippi SIT Deduction</field>
<field name="code">us_ms_sit_deduction</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ms_sit_deduction_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': 2300.0,
'head_of_household': 3400.0,
'married_dual': 2300.0,
'married': 4600.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_sit_deduction"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://www.dor.ms.gov/Documents/Computer%20Payroll%20Flowchart.pdf -->
<!-- Table C. -->
<record id="rule_parameter_us_ms_sit_deduction_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': 2300.0,
'head_of_household': 3400.0,
'married_dual': 2300.0,
'married': 4600.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ms_sit_deduction"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ms_dor" model="res.partner">
<field name="name">US Mississippi - Department of Employment Security (Unemployment)</field>
</record>
<record id="res_partner_us_ms_dor_sit" model="res.partner">
<field name="name">US Mississippi - Mississippi Department of Revenue (Income Tax)</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ms_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MS Mississippi State Unemployment</field>
<field name="code">ER_US_MS_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ms_suta_wage_base', rate='us_ms_suta_rate', state_code='MS')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ms_suta_wage_base', rate='us_ms_suta_rate', state_code='MS')</field>
<field name="partner_id" ref="res_partner_us_ms_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ms_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US MS Mississippi State Income Tax Withholding</field>
<field name="code">EE_US_MS_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ms_mississippi_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ms_mississippi_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ms_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,227 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_mt_suta_wage_base" model="hr.rule.parameter">
<field name="name">US MT Montana SUTA Wage Base</field>
<field name="code">us_mt_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mt_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">33000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mt_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">34100.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_mt_suta_rate" model="hr.rule.parameter">
<field name="name">US MT Montana SUTA Rate (UI)</field>
<field name="code">us_mt_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mt_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.18</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mt_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.18</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mt_suta_aft_rate" model="hr.rule.parameter">
<field name="name">US MT Montana SUTA Administrative Fund Tax Rate</field>
<field name="code">us_mt_suta_aft_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mt_suta_aft_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.13</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_aft_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_mt_suta_aft_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.13</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_suta_aft_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mt_sit_rate" model="hr.rule.parameter">
<field name="name">US MT Montana SIT Rate Table</field>
<field name="code">us_mt_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mt_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': (
( 135.00, 0.0, 1.80),
( 288.00, 2.0, 4.40),
( 2308.00, 9.0, 6.00),
( 'inf', 130.0, 6.60),
),
'bi-weekly': (
( 269.00, 0.0, 1.80),
( 577.00, 5.0, 4.40),
( 4615.00, 18.0, 6.00),
( 'inf', 261.0, 6.60),
),
'semi-monthly': (
( 292.00, 0.0, 1.80),
( 625.00, 5.0, 4.40),
( 5000.00, 20.0, 6.00),
( 'inf', 282.0, 6.60),
),
'monthly': (
( 583.00, 0.0, 1.80),
( 1250.00, 11.0, 4.40),
( 10000.00, 40.0, 6.00),
( 'inf', 565.0, 6.60),
),
'annually': (
( 7000.00, 0.0, 1.80),
( 15000.00, 126.0, 4.40),
( 120000.00, 478.0, 6.00),
( 'inf', 6778.0, 6.60),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://app.mt.gov/myrevenue/Endpoint/DownloadPdf?yearId=705 -->
<!-- Table Montana Withholding Tax Formula for Computerized Payroll Systems -->
<record id="rule_parameter_us_mt_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': (
( 135.00, 0.0, 1.80),
( 288.00, 2.0, 4.40),
( 2308.00, 9.0, 6.00),
( 'inf', 130.0, 6.60),
),
'bi-weekly': (
( 269.00, 0.0, 1.80),
( 577.00, 5.0, 4.40),
( 4615.00, 18.0, 6.00),
( 'inf', 261.0, 6.60),
),
'semi-monthly': (
( 292.00, 0.0, 1.80),
( 625.00, 5.0, 4.40),
( 5000.00, 20.0, 6.00),
( 'inf', 282.0, 6.60),
),
'monthly': (
( 583.00, 0.0, 1.80),
( 1250.00, 11.0, 4.40),
( 10000.00, 40.0, 6.00),
( 'inf', 565.0, 6.60),
),
'annually': (
( 7000.00, 0.0, 1.80),
( 15000.00, 126.0, 4.40),
( 120000.00, 478.0, 6.00),
( 'inf', 6778.0, 6.60),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_mt_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US MT Montana SIT Exemption Rate Table</field>
<field name="code">us_mt_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_mt_sit_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 37.0,
'bi-weekly': 73.0,
'semi-monthly': 79.0,
'monthly': 158.0,
'annually': 1900.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://app.mt.gov/myrevenue/Endpoint/DownloadPdf?yearId=705 -->
<!-- Table Montana Withholding Tax Formula for Computerized Payroll Systems -->
<record id="rule_parameter_us_mt_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': 37.0,
'bi-weekly': 73.0,
'semi-monthly': 79.0,
'monthly': 158.0,
'annually': 1900.0,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_mt_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_mt_dor" model="res.partner">
<field name="name">US Montana - Department of Labor &amp; Industries</field>
</record>
<record id="res_partner_us_mt_dor_sit" model="res.partner">
<field name="name">US Montana - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_mt_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MT Montana State Unemployment (UI-5)</field>
<field name="code">ER_US_MT_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mt_suta_wage_base', rate='us_mt_suta_rate', state_code='MT')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mt_suta_wage_base', rate='us_mt_suta_rate', state_code='MT')</field>
<field name="partner_id" ref="res_partner_us_mt_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_mt_suta_aft" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US MT Montana State Unemployment Administrative Fund Tax (AFT) (UI-5)</field>
<field name="code">ER_US_MT_SUTA_AFT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mt_suta_wage_base', rate='us_mt_suta_aft_rate', state_code='MT')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_mt_suta_wage_base', rate='us_mt_suta_aft_rate', state_code='MT')</field>
<field name="partner_id" ref="res_partner_us_mt_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_mt_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US MT Montana State Income Tax Withholding (MW-3)</field>
<field name="code">EE_US_MT_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = mt_montana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = mt_montana_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_mt_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_nc_suta_wage_base" model="hr.rule.parameter">
<field name="name">US NC North Carolina SUTA Wage Base</field>
<field name="code">us_nc_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nc_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">24300.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_nc_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">25200.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_nc_suta_rate" model="hr.rule.parameter">
<field name="name">US NC North Carolina SUTA Rate</field>
<field name="code">us_nc_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nc_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_nc_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_nc_sit_allowance_rate" model="hr.rule.parameter">
<field name="name">US NC North Carolina Allowance Rate</field>
<field name="code">us_nc_sit_allowance_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- https://files.nc.gov/ncdor/documents/files/NC-30_book_Web_1-16-19_v4_Final.pdf -->
<!-- Allowance Table Page 19. + SD For single or married + SD for Head of household (SD Page. 16-18)-->
<record id="rule_parameter_us_nc_sit_allowance_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': {'allowance': 48.08, 'standard_deduction': 192.31, 'standard_deduction_hh': 288.46},
'bi-weekly': {'allowance': 96.15, 'standard_deduction': 384.62, 'standard_deduction_hh': 576.92},
'semi-monthly': {'allowance': 104.17, 'standard_deduction': 416.67, 'standard_deduction_hh': 625.00},
'monthly': {'allowance': 208.33, 'standard_deduction': 833.33, 'standard_deduction_hh': 1250.00},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_sit_allowance_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- https://files.nc.gov/ncdor/documents/files/2020-NC-30_Final.pdf -->
<!-- Allowance Table Page 19. + SD For single or married + SD for Head of household (SD Page. 16-18)-->
<record id="rule_parameter_us_nc_sit_allowance_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': {'allowance': 48.08, 'standard_deduction': 206.73, 'standard_deduction_hh': 310.10},
'bi-weekly': {'allowance': 96.15, 'standard_deduction': 413.46, 'standard_deduction_hh': 620.19},
'semi-monthly': {'allowance': 104.17, 'standard_deduction': 447.92, 'standard_deduction_hh': 671.88},
'monthly': {'allowance': 208.33, 'standard_deduction': 895.83, 'standard_deduction_hh': 1343.75},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nc_sit_allowance_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_nc_dor" model="res.partner">
<field name="name">US North Carolina - Department of Taxation - Unemployment Tax</field>
</record>
<record id="res_partner_us_nc_dor_sit" model="res.partner">
<field name="name">US North Carolina - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_nc_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NC North Carolina State Unemployment</field>
<field name="code">ER_US_NC_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nc_suta_wage_base', rate='us_nc_suta_rate', state_code='NC')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nc_suta_wage_base', rate='us_nc_suta_rate', state_code='NC')</field>
<field name="partner_id" ref="res_partner_us_nc_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_nc_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US NC North Carolina State Income Tax Withholding</field>
<field name="code">EE_US_NC_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = nc_northcarolina_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = nc_northcarolina_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_nc_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,280 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_nd_suta_wage_base" model="hr.rule.parameter">
<field name="name">US ND North Dakota SUTA Wage Base</field>
<field name="code">us_nd_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nd_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">37900.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nd_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_nd_suta_rate" model="hr.rule.parameter">
<field name="name">US ND North Dakota SUTA Rate</field>
<field name="code">us_nd_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nd_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.02</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nd_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table based on https://www.nd.gov/tax/data/upfiles/media/rates-and-instructions.pdf?20191208155535 -->
<record id="rule_parameter_us_nd_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US ND North Dakota SIT Tax Rate</field>
<field name="code">us_nd_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nd_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 119, 0.00, 0.00),
( 891, 0.00, 1.10),
( 1988, 8.49, 2.04),
( 4016, 30.87, 2.27),
( 8592, 76.91, 2.64),
('inf', 197.71, 2.90),
),
'bi-weekly': (
( 238, 0.00, 0.00),
( 1782, 0.00, 1.10),
( 3975, 16.98, 2.04),
( 8033, 61.72, 2.27),
( 17185, 153.84, 2.64),
( 'inf', 395.45, 2.90),
),
'semi-monthly': (
( 258, 0.00, 0.00),
( 1930, 0.00, 1.10),
( 4306, 18.39, 2.04),
( 8702, 66.86, 2.27),
( 18617, 166.65, 2.64),
( 'inf', 428.41, 2.90),
),
'monthly': (
( 517, 0.00, 0.00),
( 3860, 0.00, 1.10),
( 8613, 36.77, 2.04),
( 17404, 133.73, 2.27),
( 37233, 333.29, 2.64),
( 'inf', 856.78, 2.90),
),
'quarterly': (
( 1550, 0.00, 0.00),
( 11581, 0.00, 1.10),
( 25838, 110.34, 2.04),
( 52213, 401.18, 2.27),
( 111700, 999.90, 2.64),
( 'inf', 2570.35, 2.90),
),
'semi-annual': (
( 3100, 0.00, 0.00),
( 23163, 0.00, 1.10),
( 51675, 220.69, 2.04),
( 104425, 802.34, 2.27),
( 223400, 1999.76, 2.64),
( 'inf', 5140.70, 2.90),
),
'annual': (
( 6200, 0.00, 0.00),
( 46325, 0.00, 1.10),
( 103350, 441.38, 2.04),
( 208850, 1604.69, 2.27),
( 446800, 3999.54, 2.64),
( 'inf', 10281.42, 2.90),
),
},
'married': {
'weekly': (
( 238, 0.00, 0.00),
( 883, 0.00, 1.10),
( 1796, 7.10, 2.04),
( 2611, 25.72, 2.27),
( 4475, 44.22, 2.64),
('inf', 93.43, 2.90),
),
'bi-weekly': (
( 477, 0.00, 0.00),
( 1766, 0.00, 1.10),
( 3591, 14.18, 2.04),
( 5221, 51.41, 2.27),
( 8950, 88.41, 2.64),
( 'inf', 186.86, 2.90),
),
'semi-monthly': (
( 517, 0.00, 0.00),
( 1914, 0.00, 1.10),
( 3891, 15.37, 2.04),
( 5656, 55.70, 2.27),
( 9696, 95.76, 2.64),
( 'inf', 202.42, 2.90),
),
'monthly': (
( 1033, 0.00, 0.00),
( 3827, 0.00, 1.10),
( 7781, 30.73, 2.04),
( 11313, 111.40, 2.27),
( 19392, 191.57, 2.64),
( 'inf', 404.86, 2.90),
),
'quarterly': (
( 3100, 0.00, 0.00),
( 11481, 0.00, 1.10),
( 23344, 92.19, 2.04),
( 33938, 334.20, 2.27),
( 58175, 574.68, 2.64),
( 'inf', 1214.54, 2.90),
),
'semi-annual': (
( 6200, 0.00, 0.00),
( 22963, 0.00, 1.10),
( 46688, 184.39, 2.04),
( 67875, 668.38, 2.27),
( 116350, 1149.33, 2.64),
( 'inf', 2429.07, 2.90),
),
'annual': (
( 12400, 0.00, 0.00),
( 45925, 0.00, 1.10),
( 93375, 368.78, 2.04),
( 135750, 1336.76, 2.27),
( 232700, 2298.67, 2.64),
( 'inf', 4858.15, 2.90),
),
},
'head_household':{
'weekly': (
( 119, 0.00, 0.00),
( 891, 0.00, 1.10),
( 1988, 8.49, 2.04),
( 4016, 30.87, 2.27),
( 8592, 76.91, 2.64),
('inf', 197.71, 2.90),
),
'bi-weekly': (
( 238, 0.00, 0.00),
( 1782, 0.00, 1.10),
( 3975, 16.98, 2.04),
( 8033, 61.72, 2.27),
( 17185, 153.84, 2.64),
( 'inf', 395.45, 2.90),
),
'semi-monthly': (
( 258, 0.00, 0.00),
( 1930, 0.00, 1.10),
( 4306, 18.39, 2.04),
( 8702, 66.86, 2.27),
( 18617, 166.65, 2.64),
( 'inf', 428.41, 2.90),
),
'monthly': (
( 517, 0.00, 0.00),
( 3860, 0.00, 1.10),
( 8613, 36.77, 2.04),
( 17404, 133.73, 2.27),
( 37233, 333.29, 2.64),
( 'inf', 856.78, 2.90),
),
'quarterly': (
( 1550, 0.00, 0.00),
( 11581, 0.00, 1.10),
( 25838, 110.34, 2.04),
( 52213, 401.18, 2.27),
( 111700, 999.90, 2.64),
( 'inf', 2570.35, 2.90),
),
'semi-annual': (
( 3100, 0.00, 0.00),
( 23163, 0.00, 1.10),
( 51675, 220.69, 2.04),
( 104425, 802.34, 2.27),
( 223400, 1999.76, 2.64),
( 'inf', 5140.70, 2.90),
),
'annual': (
( 6200, 0.00, 0.00),
( 46325, 0.00, 1.10),
( 103350, 441.38, 2.04),
( 208850, 1604.69, 2.27),
( 446800, 3999.54, 2.64),
( 'inf', 10281.42, 2.90),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nd_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_nd_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US ND North Dakota Allowances Rate</field>
<field name="code">us_nd_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nd_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 83.00,
'bi-weekly' : 165.00,
'semi-monthly': 179.00,
'monthly' : 358.00,
'quarterly' : 1075.00,
'semi-annual': 2150.00,
'annually': 4300.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nd_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_nd_dor" model="res.partner">
<field name="name">US North Dakota - Office of State Tax Commissioner - Unemployment Tax</field>
</record>
<record id="res_partner_us_nd_dor_sit" model="res.partner">
<field name="name">US North Dakota - Taxpayer Access Point - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_nd_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US ND North Dakota State Unemployment</field>
<field name="code">ER_US_ND_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nd_suta_wage_base', rate='us_nd_suta_rate', state_code='ND')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nd_suta_wage_base', rate='us_nd_suta_rate', state_code='ND')</field>
<field name="partner_id" ref="res_partner_us_nd_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_nd_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US ND North Dakota State Income Tax Withholding</field>
<field name="code">EE_US_ND_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = nd_north_dakota_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = nd_north_dakota_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_nd_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,237 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ne_suta_wage_base" model="hr.rule.parameter">
<field name="name">US NE Nebraska SUTA Wage Base</field>
<field name="code">us_ne_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ne_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ne_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ne_suta_rate" model="hr.rule.parameter">
<field name="name">US NE Nebraska SUTA Rate</field>
<field name="code">us_ne_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ne_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.25</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ne_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table based on Percentage method from https://revenue.nebraska.gov/sites/revenue.nebraska.gov/files/doc/business/2017cir-en_whole.pdf -->
<record id="rule_parameter_us_ne_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US NE Nebraska SIT Tax Rate</field>
<field name="code">us_ne_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ne_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 57, 0.00, 0.00),
( 105, 0.00, 2.26),
( 342, 1.08, 3.22),
( 496, 8.71, 4.91),
( 629, 16.27, 6.20),
( 1182, 24.52, 6.59),
('inf', 60.96, 6.95),
),
'bi-weekly': (
( 114, 0.00, 0.00),
( 211, 0.00, 2.26),
( 684, 2.19, 3.22),
( 992, 17.42, 4.91),
( 1259, 32.54, 6.20),
( 2364, 49.09, 6.59),
('inf', 121.91, 6.95),
),
'semi-monthly': (
( 124, 0.00, 0.00),
( 228, 0.00, 2.26),
( 741, 2.35, 3.22),
( 1074, 18.87, 4.91),
( 1364, 35.22, 6.20),
( 2561, 53.20, 6.59),
('inf', 132.08, 6.95),
),
'monthly': (
( 248, 0.00, 0.00),
( 457, 0.00, 2.26),
( 1483, 4.72, 3.22),
( 2148, 37.76, 4.91),
( 2728, 70.41, 6.20),
( 5123, 106.37, 6.59),
('inf', 264.20, 6.95),
),
'quarterly': (
( 744, 0.00, 0.00),
( 1370, 0.00, 2.26),
( 4448, 14.15, 3.22),
( 6445, 113.26, 4.91),
( 8183, 211.31, 6.20),
( 15368, 319.07, 6.59),
( 'inf', 792.56, 6.95),
),
'semi-annual': (
( 1488, 0.00, 0.00),
( 2740, 0.00, 2.26),
( 8895, 28.30, 3.22),
( 12890, 226.49, 4.91),
( 16365, 422.64, 6.20),
( 30735, 638.09, 6.59),
( 'inf', 1585.07, 6.95),
),
'annually': (
( 2975, 0.00, 0.00),
( 5480, 0.00, 2.26),
( 17790, 56.61, 3.22),
( 25780, 452.99, 4.91),
( 32730, 845.30, 6.20),
( 61470, 1276.20, 6.59),
( 'inf', 3170.17, 6.95),
),
},
'married': {
'weekly': (
( 137, 0.00, 0.00),
( 204, 0.00, 2.26),
( 508, 1.51, 3.22),
( 790, 11.30, 4.91),
( 981, 25.15, 6.20),
( 1300, 36.99, 6.59),
('inf', 58.01, 6.95),
),
'bi-weekly': (
( 273, 0.00, 0.00),
( 408, 0.00, 2.26),
( 1016, 3.05, 3.22),
( 1581, 22.63, 4.91),
( 1961, 50.37, 6.20),
( 2601, 73.93, 6.59),
('inf', 116.11, 6.95),
),
'semi-monthly': (
( 296, 0.00, 0.00),
( 442, 0.00, 2.26),
( 1101, 3.30, 3.22),
( 1713, 24.52, 4.91),
( 2125, 54.57, 6.20),
( 2818, 80.11, 6.59),
('inf', 125.78, 6.95),
),
'monthly': (
( 592, 0.00, 0.00),
( 884, 0.00, 2.26),
( 2202, 6.60, 3.22),
( 3425, 49.04, 4.91),
( 4249, 109.09, 6.20),
( 5635, 160.18, 6.59),
('inf', 251.52, 6.95),
),
'quarterly': (
( 1775, 0.00, 0.00),
( 2653, 0.00, 2.26),
( 6605, 19.84, 3.22),
( 10275, 147.09, 4.91),
( 12748, 327.29, 6.20),
( 16905, 480.62, 6.59),
( 'inf', 754.57, 6.95),
),
'semi-annual': (
( 3550, 0.00, 0.00),
( 5305, 0.00, 2.26),
( 13210, 39.66, 3.22),
( 20550, 294.20, 4.91),
( 25495, 654.59, 6.20),
( 33810, 961.18, 6.59),
( 'inf', 1509.14, 6.95),
),
'annually': (
( 7100, 0.00, 0.00),
( 10610, 0.00, 2.26),
( 26420, 79.33, 3.22),
( 41100, 588.41, 4.91),
( 50990, 1309.20, 6.20),
( 67620, 1992.38, 6.59),
( 'inf', 3018.30, 6.95),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ne_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ne_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US NE Nebraska Allowances Rate</field>
<field name="code">us_ne_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ne_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 37.69,
'bi-weekly' : 75.38,
'semi-monthly': 81.67,
'monthly' : 163.33,
'quarterly' : 490.00,
'semi-annual': 980.00,
'annually': 1960.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ne_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ne_dor" model="res.partner">
<field name="name">US Nebraska - Nebraska Department of Labor - Unemployment Tax</field>
</record>
<record id="res_partner_us_ne_dor_sit" model="res.partner">
<field name="name">US Nebraska - Nebraska Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ne_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NE Nebraska State Unemployment</field>
<field name="code">ER_US_NE_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ne_suta_wage_base', rate='us_ne_suta_rate', state_code='NE')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ne_suta_wage_base', rate='us_ne_suta_rate', state_code='NE')</field>
<field name="partner_id" ref="res_partner_us_ne_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ne_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US NE Nebraska State Income Tax Withholding</field>
<field name="code">EE_US_NE_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ne_nebraska_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ne_nebraska_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ne_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_nh_suta_wage_base" model="hr.rule.parameter">
<field name="name">US NH New Hampshire SUTA Wage Base</field>
<field name="code">us_nh_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nh_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">14000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nh_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_nh_suta_rate" model="hr.rule.parameter">
<field name="name">US NH New Hampshire SUTA Rate</field>
<field name="code">us_nh_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nh_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.2</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nh_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_nh_dor" model="res.partner">
<field name="name">US New Hampshire - Department of Employment Security - Unemployment Tax</field>
</record>
<!-- Rules -->
<record id="hr_payroll_rule_er_us_nh_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NH New Hampshire State Unemployment</field>
<field name="code">ER_US_NH_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nh_suta_wage_base', rate='us_nh_suta_rate', state_code='NH')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nh_suta_wage_base', rate='us_nh_suta_rate', state_code='NH')</field>
<field name="partner_id" ref="res_partner_us_nh_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_nm_suta_wage_base" model="hr.rule.parameter">
<field name="name">US NM New Mexico SUTA Wage Base</field>
<field name="code">us_nm_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nm_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">25800.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nm_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_nm_suta_rate" model="hr.rule.parameter">
<field name="name">US NM New Mexico SUTA Rate</field>
<field name="code">us_nm_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nm_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nm_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_nm_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US NM New Mexico SIT Tax Rate</field>
<field name="code">us_nm_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<!-- Table based on Percentage method from https://s3.amazonaws.com/realFile34821a95-73ca-43e7-b06d-fad20f5183fd/a9bf1098-533b-4a3d-806a-4bf6336af6e4?response-content-disposition=filename%3D%22FYI-104+-+New+Mexico+Withholding+Tax+-+Effective+January+1%2C+2020.pdf%22&response-content-type=application%2Fpdf&AWSAccessKeyId=AKIAJBI25DHBYGD7I7TA&Signature=OK0i%2F7YIRTdSEQHWAC2UY3ukZVI%3D&Expires=1597878297 -->
<record id="rule_parameter_us_nm_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 119, 0.00, 0.0),
( 225, 0.00, 1.7),
( 331, 1.80, 3.2),
( 427, 5.18, 4.7),
( 619, 9.70, 4.9),
( 927, 19.13, 4.9),
( 1369, 34.20, 4.9),
('inf', 55.88, 4.9),
),
'bi-weekly': (
( 238, 0.00, 0.0),
( 450, 0.00, 1.7),
( 662, 3.60, 3.2),
( 854, 10.37, 4.7),
( 1238, 19.40, 4.9),
( 1854, 38.25, 4.9),
( 2738, 68.40, 4.9),
('inf', 111.75, 4.9),
),
'semi-monthly': (
( 258, 0.00, 0.0),
( 488, 0.00, 1.7),
( 717, 3.90, 3.2),
( 925, 11.23, 4.7),
( 1342, 21.02, 4.9),
( 2008, 41.44, 4.9),
( 2967, 74.10, 4.9),
('inf', 121.06, 4.9),
),
'monthly': (
( 517, 0.00, 0.0),
( 975, 0.00, 1.7),
( 1433, 7.79, 3.2),
( 1850, 22.46, 4.7),
( 2683, 42.04, 4.9),
( 4017, 82.88, 4.9),
( 5933, 148.21, 4.9),
('inf', 242.13, 4.9),
),
'quarterly': (
( 1550, 0.00, 0.0),
( 2925, 0.00, 1.7),
( 4300, 23.38, 3.2),
( 5550, 67.38, 4.7),
( 8050, 126.13, 4.9),
( 12050, 248.63, 4.9),
( 17800, 444.63, 4.9),
( 'inf', 726.38, 4.9),
),
'semi-annual': (
( 3100, 0.00, 0.0),
( 5850, 0.00, 1.7),
( 8600, 46.75, 3.2),
(11100, 134.75, 4.7),
(16100, 252.25, 4.9),
(24100, 497.25, 4.9),
(35600, 889.25, 4.9),
('inf', 1452.75, 4.9),
),
'annually': (
( 6200, 0.00, 0.0),
(11700, 0.00, 1.7),
(17200, 93.50, 3.2),
(22200, 269.50, 4.7),
(32200, 504.50, 4.9),
(48200, 994.50, 4.9),
(71200, 1778.50, 4.9),
('inf', 2905.50, 4.9),
),
},
'married': {
'weekly': (
( 238, 0.00, 0.0),
( 392, 0.00, 1.7),
( 546, 2.62, 3.2),
( 700, 7.54, 4.7),
( 1008, 14.77, 4.9),
( 1469, 29.85, 4.9),
( 2162, 52.46, 4.9),
('inf', 86.38, 4.9),
),
'bi-weekly': (
( 477, 0.00, 0.0),
( 785, 0.00, 1.7),
( 1092, 5.23, 3.2),
( 1400, 15.08, 4.7),
(2015, 29.54, 4.9),
( 2938, 59.69, 4.9),
( 4323, 104.92, 4.9),
('inf', 172.77, 4.9),
),
'semi-monthly': (
( 517, 0.00, 0.0),
( 850, 0.00, 1.7),
( 1183, 5.67, 3.2),
( 1517, 16.33, 4.7),
( 2183, 32.00, 4.9),
( 3183, 64.67, 4.9),
( 4683, 113.67, 4.9),
('inf', 187.17, 4.9),
),
'monthly': (
( 1033, 0.00, 0.0),
( 1700, 0.00, 1.7),
( 2367, 11.33, 3.2),
( 3033, 32.67, 4.7),
( 4367, 64.00, 4.9),
( 6367, 129.33, 4.9),
( 9367, 227.33, 4.9),
('inf', 374.33, 4.9),
),
'quarterly': (
( 3100, 0.00, 0.0),
( 5100, 0.00, 1.7),
( 7100, 34.00, 3.2),
( 9100, 98.00, 4.7),
(13100, 192.00, 4.9),
(19100, 388.00, 4.9),
(28100, 682.00, 4.9),
('inf', 1123.00, 4.9),
),
'semi-annual': (
( 6200, 0.00, 0.0),
(10200, 0.00, 1.7),
(14200, 68.00, 3.2),
(18200, 196.00, 4.7),
(26200, 384.00, 4.9),
(38200, 776.00, 4.9),
(56200, 1364.00, 4.9),
('inf', 2246.00, 4.9),
),
'annually': (
( 12400, 0.00, 0.0),
( 20400, 0.00, 1.7),
( 28400, 136.00, 3.2),
( 36400, 392.00, 4.7),
( 52400, 768.00, 4.9),
( 76400, 1552.00, 4.9),
(112400, 2728.00, 4.9),
( 'inf', 4492.00, 4.9),
),
},
'married_as_single': {
'weekly': (
( 179, 0.00, 0.0),
( 333, 0.00, 1.7),
( 487, 2.62, 3.2),
( 641, 7.54, 4.7),
( 949, 14.77, 4.9),
( 1410, 29.85, 4.9),
( 2102, 52.46, 4.9),
('inf', 86.38, 4.9),
),
'bi-weekly': (
( 359, 0.00, 0.0),
( 666, 0.00, 1.7),
( 974, 5.23, 3.2),
( 1282, 15.08, 4.7),
( 1897, 29.54, 4.9),
( 2820, 59.69, 4.9),
( 4205, 104.92, 4.9),
('inf', 172.77, 4.9),
),
'semi-monthly': (
( 389, 0.00, 0.0),
( 722, 0.00, 1.7),
( 1055, 5.67, 3.2),
( 1389, 16.33, 4.7),
( 2055, 32.00, 4.9),
( 3055, 64.67, 4.9),
( 4555, 113.67, 4.9),
('inf', 187.17, 4.9),
),
'monthly': (
( 777, 0.00, 0.0),
( 1444, 0.00, 1.7),
( 2110, 11.33, 3.2),
( 2777, 32.67, 4.7),
( 4110, 64.00, 4.9),
( 6110, 129.33, 4.9),
( 9110, 227.33, 4.9),
('inf', 374.33, 4.9),
),
'quarterly': (
( 2331, 0.00, 0.0),
( 4331, 0.00, 1.7),
( 6331, 34.00, 3.2),
( 8331, 98.00, 4.7),
( 12331, 192.00, 4.9),
( 18331, 388.00, 4.9),
( 27331, 682.00, 4.9),
( 'inf', 1123.00, 4.9),
),
'semi-annual': (
( 4663, 0.00, 0.0),
( 8663, 0.00, 1.7),
( 12663, 68.00, 3.2),
( 16663, 196.00, 4.7),
( 24663, 384.00, 4.9),
( 36663, 776.00, 4.9),
( 54663, 1364.00, 4.9),
( 'inf', 2246.00, 4.9),
),
'annually': (
( 9325, 0.00, 0.0),
( 17325, 0.00, 1.7),
( 25325, 136.00, 3.2),
( 33325, 392.00, 4.7),
( 49325, 768.00, 4.9),
( 73325, 1552.00, 4.9),
(109325, 2728.00, 4.9),
( 'inf', 4492.00, 4.9),
),
}
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nm_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_nm_dor" model="res.partner">
<field name="name">US New Mexico - Department of Workforce Solutions - Unemployment Tax</field>
</record>
<record id="res_partner_us_nm_dor_sit" model="res.partner">
<field name="name">US New Mexico - Department of Taxation and Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_nm_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NM New Mexico State Unemployment</field>
<field name="code">ER_US_NM_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nm_suta_wage_base', rate='us_nm_suta_rate', state_code='NM')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nm_suta_wage_base', rate='us_nm_suta_rate', state_code='NM')</field>
<field name="partner_id" ref="res_partner_us_nm_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_nm_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US NM New Mexico State Income Tax Withholding</field>
<field name="code">EE_US_NM_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = nm_new_mexico_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = nm_new_mexico_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_nm_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_nv_suta_wage_base" model="hr.rule.parameter">
<field name="name">US NV Nevada SUTA Wage Base</field>
<field name="code">us_nv_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nv_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">32500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nv_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_nv_suta_rate" model="hr.rule.parameter">
<field name="name">US NV Nevada SUTA Rate</field>
<field name="code">us_nv_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_nv_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.95</field>
<field name="rule_parameter_id" ref="rule_parameter_us_nv_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_nv_dor" model="res.partner">
<field name="name">US Nevada - Department of Employment, Training, and Rehabilitation, Employment Security Division - Unemployment Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_nv_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NV Nevada State Unemployment (RT-6)</field>
<field name="code">ER_US_NV_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nv_suta_wage_base', rate='us_nv_suta_rate', state_code='NV')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_nv_suta_wage_base', rate='us_nv_suta_rate', state_code='NV')</field>
<field name="partner_id" ref="res_partner_us_nv_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

View File

@@ -0,0 +1,429 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<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>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ny_suta_rate" model="hr.rule.parameter">
<field name="name">US NY New York SUTA Rate</field>
<field name="code">us_ny_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ny_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ny_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ny_suta_rsf_rate" model="hr.rule.parameter">
<field name="name">US NY New York SUTA RSF Rate</field>
<field name="code">us_ny_suta_rsf_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ny_suta_rsf_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.075</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_rsf_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ny_suta_rsf_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.075</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_rsf_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ny_suta_mctmt_rate" model="hr.rule.parameter">
<field name="name">US NY New York SUTA MCTMT Rate</field>
<field name="code">us_ny_suta_mctmt_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ny_suta_mctmt_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_mctmt_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_ny_suta_mctmt_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_suta_mctmt_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ny_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US NY New York SIT Tax Rate</field>
<field name="code">us_ny_sit_tax_rate</field>
<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': {
'weekly': (
( 163, 0.0400, 0.00),
( 225, 0.0450, 6.54),
( 267, 0.0525, 9.31),
( 412, 0.0590, 11.54),
( 1551, 0.0609, 20.04),
( 1862, 0.0641, 89.42),
( 2070, 0.0745, 109.35),
( 3032, 0.0795, 124.88),
( 4142, 0.0691, 201.33),
( 5104, 0.0925, 278.06),
(20722, 0.0735, 367.00),
(21684, 0.5208, 1514.94),
('inf', 0.0962, 2015.71),
),
'bi-weekly': (
( 327, 0.0400, 0.00),
( 450, 0.0450, 13.08),
( 535, 0.0525, 18.62),
( 823, 0.0590, 23.08),
( 3102, 0.0609, 40.08),
( 3723, 0.0641, 178.85),
( 4140, 0.0745, 218.69),
( 6063, 0.0795, 249.77),
( 8285, 0.0691, 402.65),
(10208, 0.0925, 556.12),
(41444, 0.0735, 734.00),
(43367, 0.5208, 3029.88),
('inf', 0.0962, 4031.42),
),
'semi-monthly': (
( 354, 0.0400, 0.00),
( 488, 0.0450, 14.17),
( 579, 0.0525, 20.17),
( 892, 0.0590, 25.00),
( 3360, 0.0609, 43.42),
( 4033, 0.0641, 193.75),
( 4485, 0.0745, 236.92),
( 6569, 0.0795, 270.58),
( 8975, 0.0691, 436.21),
(11058, 0.0925, 602.46),
(44898, 0.0735, 795.17),
(46981, 0.5208, 3282.38),
('inf', 0.0962, 4367.38),
),
'monthly': (
( 708, 0.0400, 0.00),
( 975, 0.0450, 28.33),
( 1158, 0.0525, 40.33),
( 1783, 0.0590, 50.00),
( 6721, 0.0609, 86.83),
( 8067, 0.0641, 387.50),
( 8971, 0.0745, 473.83),
(13138, 0.0795, 541.17),
(17950, 0.0691, 872.42),
(22117, 0.0925, 1204.92),
(89796, 0.0735, 1590.33),
(93963, 0.5208, 6564.75),
('inf', 0.0962, 8734.75),
),
'annually': (
( 8500, 0.0400, 0.00),
( 11700, 0.0450, 340.00),
( 13900, 0.0525, 484.00),
( 21400, 0.0590, 600.00),
( 80650, 0.0609, 1042.00),
( 96800, 0.0641, 4650.00),
( 107650, 0.0745, 5686.00),
( 157650, 0.0795, 6494.00),
( 215400, 0.0691, 10469.00),
( 265400, 0.0925, 14459.00),
(1077550, 0.0735, 19084.00),
(1127550, 0.5208, 78777.00),
( 'inf', 0.0962, 104817.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.0609, 20.04),
( 1862, 0.0641, 89.42),
( 2070, 0.0746, 109.35),
( 3032, 0.0796, 124.90),
( 4068, 0.0794, 201.44),
( 6215, 0.0691, 283.75),
( 7177, 0.1019, 432.12),
(20722, 0.0735, 530.10),
(41449, 0.0765, 1525.65),
(42411, 0.9454, 3111.27),
('inf', 0.0962, 4020.31),
),
'bi-weekly': (
( 327, 0.0400, 0.00),
( 450, 0.0450, 13.08),
( 535, 0.0525, 18.62),
( 823, 0.0590, 23.08),
( 3102, 0.0609, 40.08),
( 3723, 0.0641, 178.85),
( 4140, 0.0746, 218.69),
( 6063, 0.0796, 249.81),
( 8137, 0.0794, 402.88),
(12431, 0.0691, 567.50),
(14354, 0.1019, 864.23),
(41444, 0.0735, 1060.19),
(82898, 0.0765, 3051.31),
(84821, 0.9454, 6222.54),
('inf', 0.0962, 8040.62),
),
'semi-monthly': (
( 354, 0.0400, 0.00),
( 488, 0.0450, 14.17),
( 579, 0.0525, 20.17),
( 892, 0.0590, 25.00),
( 3360, 0.0609, 43.42),
( 4033, 0.0641, 193.75),
( 4485, 0.0746, 236.92),
( 6569, 0.0796, 270.63),
( 8815, 0.0794, 436.46),
(13467, 0.0691, 614.79),
(15550, 0.1019, 936.25),
(44898, 0.0735, 1148.54),
(89806, 0.0765, 3305.58),
(91890, 0.9454, 6741.08),
('inf', 0.0962, 8710.67),
),
'monthly': (
( 708, 0.0400, 0.00),
( 975, 0.0450, 28.33),
( 1158, 0.0525, 40.33),
( 1783, 0.0590, 50.00),
( 6721, 0.0609, 86.83),
( 8067, 0.0641, 387.50),
( 8971, 0.0746, 473.83),
( 13138, 0.0796, 541.25),
( 17629, 0.0794, 872.92),
( 26933, 0.0691, 1229.58),
( 31100, 0.1019, 1872.50),
( 89796, 0.0735, 2297.08),
(179613, 0.0765, 6611.17),
(183779, 0.9454, 13482.17),
( 'inf', 0.0962, 17421.33),
),
'annually': (
( 8500, 0.0400, 0.00),
( 11700, 0.0450, 340.00),
( 13900, 0.0525, 484.00),
( 21400, 0.0590, 600.00),
( 80650, 0.0609, 1042.00),
( 96800, 0.0641, 4650.00),
( 107650, 0.0746, 5686.00),
( 157650, 0.0796, 6495.00),
( 211550, 0.0794, 10475.00),
( 323200, 0.0691, 14755.00),
( 373200, 0.1019, 22470.00),
(1077550, 0.0735, 27565.00),
(2155350, 0.0765, 79334.00),
(2205350, 0.9454, 161786.00),
( 'inf', 0.0962, 209056.00),
),
}
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ny_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ny_sit_over_10_exemption_rate" model="hr.rule.parameter">
<field name="name">US NY New York Over 10 Exemption Rate</field>
<field name="code">us_ny_sit_over_10_exemption_rate</field>
<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),
'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(2020, 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">
<field name="name">US NY New York Deduction Exemption Rate</field>
<field name="code">us_ny_sit_deduction_exemption_rate</field>
<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': {
'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(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ny_dor" model="res.partner">
<field name="name">US New York - Department of Taxation and Finance - Unemployment Tax</field>
</record>
<record id="res_partner_us_ny_dor_rsf" model="res.partner">
<field name="name">US New York - Department of Taxation and Finance - Re-employment Service Fund</field>
</record>
<record id="res_partner_us_ny_dor_mcmt" model="res.partner">
<field name="name">US New York - Department of Taxation and Finance - Metropolitan Commuter Transportation Mobility Tax</field>
</record>
<record id="res_partner_us_ny_dor_sit" model="res.partner">
<field name="name">US New York - Department of Taxation and Finance - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ny_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NY New York State Unemployment</field>
<field name="code">ER_US_NY_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_rate', state_code='NY')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_rate', state_code='NY')</field>
<field name="partner_id" ref="res_partner_us_ny_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_ny_suta_rsf" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NY New York State Re-employment Service Fund</field>
<field name="code">ER_US_NY_SUTA_RSF</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_rsf_rate', state_code='NY')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_rsf_rate', state_code='NY')</field>
<field name="partner_id" ref="res_partner_us_ny_dor_rsf"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_ny_suta_mctmt" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US NY New York State Metropolitan Commuter Transportation Mobility Tax</field>
<field name="code">ER_US_NY_SUTA_MCTMT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_mctmt_rate', state_code='NY')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ny_suta_wage_base', rate='us_ny_suta_mctmt_rate', state_code='NY')</field>
<field name="partner_id" ref="res_partner_us_ny_dor_mcmt"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ny_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US NY New York State Income Tax Withholding</field>
<field name="code">EE_US_NY_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ny_new_york_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ny_new_york_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ny_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_oh_suta_wage_base" model="hr.rule.parameter">
<field name="name">US OH Ohio SUTA Wage Base</field>
<field name="code">us_oh_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_oh_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">9500.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_oh_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">9000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_oh_suta_rate" model="hr.rule.parameter">
<field name="name">US OH Ohio SUTA Rate</field>
<field name="code">us_oh_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_oh_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_oh_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_oh_sit_rate" model="hr.rule.parameter">
<field name="name">US OH Ohio SIT Rate Table</field>
<field name="code">us_oh_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_oh_sit_rate_2019" model="hr.rule.parameter.value">
<!-- https://www.tax.ohio.gov/Portals/0/employer_withholding/2019%20tables/WTH_OptionalComputerFormula_2019.pdf -->
<!-- wage_less_than, base_amount, rate_over -->
<field name="parameter_value">[
( 5000.00, 0.0, 0.005),
( 10000.00, 25.0, 0.010),
( 15000.00, 75.0, 0.020),
( 20000.00, 175.0, 0.025),
( 40000.00, 300.0, 0.030),
( 80000.00, 900.0, 0.035),
( 100000.00, 2300.0, 0.040),
( 'inf', 3100.0, 0.050),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_oh_sit_rate_2020" model="hr.rule.parameter.value">
<!-- https://www.tax.ohio.gov/Portals/0/employer_withholding/2020%20tables/WTH_OptionalComputerFormula_2020.pdf -->
<!-- wage_less_than, base_amount, rate_over -->
<field name="parameter_value">[
( 5000.00, 0.0, 0.005),
( 10000.00, 25.0, 0.010),
( 15000.00, 75.0, 0.020),
( 20000.00, 175.0, 0.025),
( 40000.00, 300.0, 0.030),
( 80000.00, 900.0, 0.035),
( 100000.00, 2300.0, 0.040),
( 'inf', 3100.0, 0.050),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_oh_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US OH Ohio SIT Exemption Rate</field>
<field name="code">us_oh_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_oh_sit_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">650.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_oh_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">650.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_oh_sit_multiplier" model="hr.rule.parameter">
<field name="name">US OH Ohio SIT Multiplier Value</field>
<field name="code">us_oh_sit_multiplier</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_oh_sit_multiplier_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.075</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_multiplier"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_oh_sit_multiplier_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.032</field>
<field name="rule_parameter_id" ref="rule_parameter_us_oh_sit_multiplier"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_oh_dor" model="res.partner">
<field name="name">US Ohio - OBG - Unemployment</field>
</record>
<record id="res_partner_us_oh_dor_sit" model="res.partner">
<field name="name">US Ohio - OBG - Income Withholding</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_oh_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US OH Ohio State Unemployment (JFS-20125)</field>
<field name="code">ER_US_OH_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_oh_suta_wage_base', rate='us_oh_suta_rate', state_code='OH')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_oh_suta_wage_base', rate='us_oh_suta_rate', state_code='OH')</field>
<field name="partner_id" ref="res_partner_us_oh_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_oh_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US OH Ohio State Income Tax Withholding (IT 501)</field>
<field name="code">EE_US_OH_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = oh_ohio_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = oh_ohio_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_oh_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,301 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ok_suta_wage_base" model="hr.rule.parameter">
<field name="name">US OK Oklahoma SUTA Wage Base</field>
<field name="code">us_ok_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ok_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">18700.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ok_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ok_suta_rate" model="hr.rule.parameter">
<field name="name">US OK Oklahoma SUTA Rate</field>
<field name="code">us_ok_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ok_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ok_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- table from https://www.ok.gov/tax/documents/2020WHTables.pdf -->
<record id="rule_parameter_us_ok_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US OK Oklahoma Allowances Rate</field>
<field name="code">us_ok_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ok_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 19.23,
'bi-weekly' : 38.46,
'semi-monthly': 41.67,
'monthly' : 83.33,
'quarterly' : 250.00,
'semi-annual': 500.00,
'annually': 1000.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ok_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- table from https://www.ok.gov/tax/documents/2020WHTables.pdf -->
<record id="rule_parameter_us_ok_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US OK Oklahoma SIT Tax Rate</field>
<field name="code">us_ok_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ok_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 122, 0.00, 0.00),
( 141, 0.50, 0.00),
( 170, 1.00, 0.10),
( 194, 2.00, 0.38),
( 216, 3.00, 0.87),
( 261, 4.00, 1.53),
('inf', 5.00, 3.30),
),
'bi-weekly': (
( 244, 0.00, 0.00),
( 283, 0.50, 0.00),
( 340, 1.00, 0.19),
( 388, 2.00, 0.77),
( 433, 3.00, 1.73),
( 521, 4.00, 3.06),
('inf', 5.00, 6.60),
),
'semi-monthly': (
( 265, 0.00, 0.00),
( 306, 0.50, 0.00),
( 369, 1.00, 0.21),
( 421, 2.00, 0.83),
( 469, 3.00, 1.88),
( 565, 4.00, 3.31),
('inf', 5.00, 7.15),
),
'monthly': (
( 529, 0.00, 0.00),
( 613, 0.50, 0.00),
( 738, 1.00, 0.42),
( 842, 2.00, 1.67),
( 938, 3.00, 3.75),
(1129, 4.00, 6.63),
('inf', 5.00, 14.29),
),
'quarterly': (
( 1588, 0.00, 0.00),
( 1838, 0.50, 0.00),
( 2213, 1.00, 1.25),
( 2525, 2.00, 5.00),
( 2813, 3.00, 11.25),
( 3388, 4.00, 19.88),
('inf', 5.00, 42.88),
),
'semi-annual': (
( 3175, 0.00, 0.00),
( 3675, 0.50, 0.00),
( 4425, 1.00, 2.50),
( 5050, 2.00, 10.00),
(5625, 3.00, 22.50),
( 6775, 4.00, 39.75),
('inf', 5.00, 85.75),
),
'annually': (
( 6350, 0.00, 0.00),
( 7350, 0.50, 0.00),
( 8850, 1.00, 5.00),
(10100, 2.00, 20.00),
(11250, 3.00, 45.00),
(13550, 4.00, 79.50),
('inf', 5.00, 171.50),
),
},
'married': {
'weekly': (
( 244, 0.00, 0.00),
( 283, 0.50, 0.00),
( 340, 1.00, 0.19),
( 388, 2.00, 0.77),
( 433, 3.00, 1.73),
( 479, 4.00, 3.06),
('inf', 5.00, 4.90),
),
'bi-weekly': (
( 488, 0.00, 0.00),
( 565, 0.50, 0.00),
( 681, 1.00, 0.38),
( 777, 2.00, 1.54),
( 865, 3.00, 3.46),
( 958, 4.00, 6.12),
('inf', 5.00, 9.81),
),
'semi-monthly': (
( 529, 0.00, 0.00),
( 613, 0.50, 0.00),
( 738, 1.00, 0.42),
( 842, 2.00, 1.67),
( 938, 3.00, 3.75),
( 1038, 4.00, 6.63),
('inf', 5.00, 10.63),
),
'monthly': (
( 1058, 0.00, 0.00),
( 1225, 0.50, 0.00),
( 1475, 1.00, 0.83),
( 1683, 2.00, 3.33),
( 1875, 3.00, 7.50),
( 2075, 4.00, 13.25),
('inf', 5.00, 21.25),
),
'quarterly': (
( 3175, 0.00, 0.00),
( 3675, 0.50, 0.00),
( 4425, 1.00, 2.50),
( 5050, 2.00, 10.00),
( 5625, 3.00, 22.50),
( 6225, 4.00, 39.75),
('inf', 5.00, 63.75),
),
'semi-annual': (
( 6350, 0.00, 0.00),
( 7350, 0.50, 0.00),
( 8850, 1.00, 5.00),
( 10100, 2.00, 20.00),
( 11250, 3.00, 45.00),
( 12450, 4.00, 79.50),
( 'inf', 5.00, 127.50),
),
'annually': (
( 12700, 0.00, 0.00),
( 14700, 0.50, 0.00),
( 17700, 1.00, 10.00),
( 20200, 2.00, 40.00),
( 22500, 3.00, 90.00),
( 24900, 4.00, 159.00),
( 'inf', 5.00, 255.00),
),
},
'head_household': {
'weekly': (
( 122, 0.00, 0.00),
( 141, 0.50, 0.00),
( 170, 1.00, 0.10),
( 194, 2.00, 0.38),
( 216, 3.00, 0.87),
( 261, 4.00, 1.53),
('inf', 5.00, 3.30),
),
'bi-weekly': (
( 244, 0.00, 0.00),
( 283, 0.50, 0.00),
( 340, 1.00, 0.19),
( 388, 2.00, 0.77),
( 433, 3.00, 1.73),
( 521, 4.00, 3.06),
('inf', 5.00, 6.60),
),
'semi-monthly': (
( 265, 0.00, 0.00),
( 306, 0.50, 0.00),
( 369, 1.00, 0.21),
( 421, 2.00, 0.83),
( 469, 3.00, 1.88),
( 565, 4.00, 3.31),
('inf', 5.00, 7.15),
),
'monthly': (
( 529, 0.00, 0.00),
( 613, 0.50, 0.00),
( 738, 1.00, 0.42),
( 842, 2.00, 1.67),
( 938, 3.00, 3.75),
( 1129, 4.00, 6.63),
('inf', 5.00, 14.29),
),
'quarterly': (
( 1588, 0.00, 0.00),
( 1838, 0.50, 0.00),
( 2213, 1.00, 1.25),
( 2525, 2.00, 5.00),
( 2813, 3.00, 11.25),
( 3388, 4.00, 19.88),
('inf', 5.00, 42.88),
),
'semi-annual': (
( 3175, 0.00, 0.00),
( 3675, 0.50, 0.00),
( 4425, 1.00, 2.50),
( 5050, 2.00, 10.00),
( 5625, 3.00, 22.50),
( 6775, 4.00, 39.75),
('inf', 5.00, 85.75),
),
'annually': (
( 6350, 0.00, 0.00),
( 7350, 0.50, 0.00),
( 8850, 1.00, 5.00),
(10100, 2.00, 20.00),
(11250, 3.00, 45.00),
(13550, 4.00, 79.50),
('inf', 5.00, 171.50),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ok_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ok_dor" model="res.partner">
<field name="name">US Oklahoma - Employment Security Commission - Unemployment Tax</field>
</record>
<record id="res_partner_us_ok_dor_sit" model="res.partner">
<field name="name">US Oklahoma - Tax Commission - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ok_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US OK Oklahoma State Unemployment</field>
<field name="code">ER_US_OK_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ok_suta_wage_base', rate='us_ok_suta_rate', state_code='OK')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ok_suta_wage_base', rate='us_ok_suta_rate', state_code='OK')</field>
<field name="partner_id" ref="res_partner_us_ok_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ok_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US OK Oklahoma State Income Tax Withholding</field>
<field name="code">EE_US_OK_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ok_oklahoma_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ok_oklahoma_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ok_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_pa_suta_wage_base" model="hr.rule.parameter">
<field name="name">US PA Pennsylvania SUTA Wage Base (ER)</field>
<field name="code">us_pa_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_pa_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">10000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_pa_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">10000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_pa_suta_rate" model="hr.rule.parameter">
<field name="name">US PA Pennsylvania SUTA Rate</field>
<field name="code">us_pa_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_pa_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3.6890</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_pa_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.6890</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_pa_suta_ee_rate" model="hr.rule.parameter">
<field name="name">US PA Pennsylvania SUTA Employee Rate</field>
<field name="code">us_pa_suta_ee_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_pa_suta_ee_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.06</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_ee_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_pa_suta_ee_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.06</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_suta_ee_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_pa_sit_rate" model="hr.rule.parameter">
<field name="name">US PA Pennsylvania SIT Rate</field>
<field name="code">us_pa_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_pa_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3.07</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_pa_sit_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.07</field>
<field name="rule_parameter_id" ref="rule_parameter_us_pa_sit_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_pa_dor" model="res.partner">
<field name="name">US Pennsylvania - Department of Revenue - Unemployment Tax</field>
</record>
<record id="res_partner_us_pa_dor_sit" model="res.partner">
<field name="name">US Pennsylvania - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_pa_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US PA Pennsylvania State Unemployment (UC-2)</field>
<field name="code">ER_US_PA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_pa_suta_wage_base', rate='us_pa_suta_rate', state_code='PA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_pa_suta_wage_base', rate='us_pa_suta_rate', state_code='PA')</field>
<field name="partner_id" ref="res_partner_us_pa_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_pa_suta" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_suta"/>
<field name="name">EE: US PA Pennsylvania State Unemployment (UC-2)</field>
<field name="code">EE_US_PA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, rate='us_pa_suta_ee_rate', state_code='PA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, rate='us_pa_suta_ee_rate', state_code='PA')</field>
<field name="partner_id" ref="res_partner_us_pa_dor"/>
<field name="appears_on_payslip" eval="True"/>
</record>
<record id="hr_payroll_rule_ee_us_pa_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US PA Pennsylvania State Income Tax Withholding (PA-501)</field>
<field name="code">EE_US_PA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_income_withholding(payslip, categories, worked_days, inputs, rate='us_pa_sit_rate', state_code='PA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_income_withholding(payslip, categories, worked_days, inputs, rate='us_pa_sit_rate', state_code='PA')</field>
<field name="partner_id" ref="res_partner_us_pa_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ri_suta_wage_base" model="hr.rule.parameter">
<field name="name">US RI Rhode Island SUTA Wage Base</field>
<field name="code">us_ri_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ri_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">24000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ri_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ri_suta_rate" model="hr.rule.parameter">
<field name="name">US RI Rhode Island SUTA Rate</field>
<field name="code">us_ri_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ri_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.06</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ri_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Withhooding tax exemption based on two table on page 7. from http://www.tax.ri.gov/forms/2020/Withholding/2020%20Withhholding%20Tax%20Booklet.pdf -->
<record id="rule_parameter_us_ri_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US RI Rhode Island Exemption Rate</field>
<field name="code">us_ri_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ri_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : (( 0.00, 19.23), ( 4451.92, 0.00)),
'bi-weekly' : (( 0.00, 38.46), ( 8903.85, 0.00)),
'semi-monthly': (( 0.00, 41.67), ( 9645.83, 0.00)),
'monthly' : (( 0.00, 83.33), ( 19291.67, 0.00)),
'quarterly' : (( 0.00, 250.00), ( 57875.00, 0.00)),
'semi-annually': (( 0.00, 500.00), ( 115750.00, 0.00)),
'annually': (( 0.00, 1000.0), ( 231500.00, 0000)),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ri_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ri_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US RI Rhode Island SIT Tax Rate</field>
<field name="code">us_ri_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ri_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly': (
( 1255, 0.00, 3.75),
( 2853, 47.06, 4.75),
('inf', 122.97, 5.99),
),
'bi-weekly': (
( 2510, 0.00, 3.75),
( 5706, 94.13, 4.75),
('inf', 245.94, 5.99),
),
'semi-monthly': (
( 2719, 0.00, 3.75),
( 6181, 101.96, 4.75),
('inf', 266.41, 5.99),
),
'monthly': (
( 5438, 0.00, 3.75),
(12363, 203.93, 4.75),
('inf', 532.87, 5.99),
),
'quarterly': (
(16313, 0.00, 3.75),
(37088, 611.74, 4.75),
('inf', 1598.55, 5.99),
),
'semi-annually': (
(32625, 0.00, 3.75),
(74175, 1223.44, 4.75),
('inf', 3197.07, 5.99),
),
'annually': (
( 65250, 0.00, 3.75),
(148350, 2446.88, 4.75),
( 'inf', 6394.13, 5.99),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ri_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ri_dor" model="res.partner">
<field name="name">US Rhode Island - Department of Labor and Training - Unemployment Tax</field>
</record>
<record id="res_partner_us_ri_dor_sit" model="res.partner">
<field name="name">US Rhode Island - Division of Taxations - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ri_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US RI Rhode Island State Unemployment</field>
<field name="code">ER_US_RI_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ri_suta_wage_base', rate='us_ri_suta_rate', state_code='RI')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ri_suta_wage_base', rate='us_ri_suta_rate', state_code='RI')</field>
<field name="partner_id" ref="res_partner_us_ri_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ri_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US RI Rhode Island State Income Tax Withholding</field>
<field name="code">EE_US_RI_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ri_rhode_island_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ri_rhode_island_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ri_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_sc_suta_wage_base" model="hr.rule.parameter">
<field name="name">US SC South Carolina SUTA Wage Base</field>
<field name="code">us_sc_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sc_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">14000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_sc_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">14000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_sc_suta_rate" model="hr.rule.parameter">
<field name="name">US SC South Carolina SUTA Rate</field>
<field name="code">us_sc_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sc_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.09</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- Tax rate from https://taxnews.ey.com/news/2019-2183-south-carolina-2020-sui-tax-rates-to-decrease-due-to-elimination-of-the-variable-solvency-surcharge-wage-base-unchanged -->
<record id="rule_parameter_us_sc_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.55</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_sc_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US SC South Carolina SIT Tax Rate</field>
<field name="code">us_sc_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sc_sit_tax_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 2450, 1.1, 0.0),
( 4900, 3.0, 26.95),
( 7350, 4.0, 100.45),
( 9800, 5.0, 198.45),
(12250, 6.0, 320.95),
('inf', 7.0, 467.95),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_tax_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<!-- Substraction Method table from https://dor.sc.gov/forms-site/Forms/WH1603F_2020.pdf-->
<record id="rule_parameter_us_sc_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 2620, 0.8, 0.0),
( 5240, 3.0, 57.64),
( 7860, 4.0, 110.04),
(10490, 5.0, 188.64),
(13110, 6.0, 293.54),
('inf', 7.0, 424.64),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_sc_sit_personal_exemption_rate" model="hr.rule.parameter">
<field name="name">US SC South Carolina Personal Exemption Rate</field>
<field name="code">us_sc_sit_personal_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sc_sit_personal_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2510</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_sc_sit_personal_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2590</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_personal_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_sc_sit_standard_deduction_rate" model="hr.rule.parameter">
<field name="name">US SC South Carolina Standard Deduction Rate</field>
<field name="code">us_sc_sit_standard_deduction_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sc_sit_standard_deduction_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">3470.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_sc_sit_standard_deduction_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3820.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sc_sit_standard_deduction_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_sc_dor" model="res.partner">
<field name="name">US South Carolina - Department of Labor and Industrial Relations - Unemployment Tax</field>
</record>
<record id="res_partner_us_sc_dor_sit" model="res.partner">
<field name="name">US South Carolina - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_sc_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US SC South Carolina State Unemployment</field>
<field name="code">ER_US_SC_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_sc_suta_wage_base', rate='us_sc_suta_rate', state_code='SC')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_sc_suta_wage_base', rate='us_sc_suta_rate', state_code='SC')</field>
<field name="partner_id" ref="res_partner_us_sc_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_sc_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US SC South Carolina State Income Tax Withholding</field>
<field name="code">EE_US_SC_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = sc_south_carolina_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = sc_south_carolina_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_sc_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_sd_suta_wage_base" model="hr.rule.parameter">
<field name="name">US SD South Dakota SUTA Wage Base</field>
<field name="code">us_sd_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sd_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">15000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sd_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_sd_suta_rate" model="hr.rule.parameter">
<field name="name">US SD South Dakota SUTA Rate</field>
<field name="code">us_sd_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_sd_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.75</field>
<field name="rule_parameter_id" ref="rule_parameter_us_sd_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_sd_dor" model="res.partner">
<field name="name">US South Dakota - Department of Labor - Unemployment Tax</field>
</record>
<!-- Rules -->
<record id="hr_payroll_rule_er_us_sd_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US SD South Dakota State Unemployment</field>
<field name="code">ER_US_SD_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_sd_suta_wage_base', rate='us_sd_suta_rate', state_code='SD')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_sd_suta_wage_base', rate='us_sd_suta_rate', state_code='SD')</field>
<field name="partner_id" ref="res_partner_us_sd_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_tn_suta_wage_base" model="hr.rule.parameter">
<field name="name">US TN Tennessee SUTA Wage Base</field>
<field name="code">us_tn_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tn_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">7000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tn_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_tn_suta_rate" model="hr.rule.parameter">
<field name="name">US TN Tennessee SUTA Rate</field>
<field name="code">us_tn_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tn_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_tn_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_tn_dor" model="res.partner">
<field name="name">US Tennessee - Department of Revenue - Unemployment Tax</field>
</record>
<!-- Rules -->
<record id="hr_payroll_rule_er_us_tn_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US TN Tennessee State Unemployment</field>
<field name="code">ER_US_TN_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tn_suta_wage_base', rate='us_tn_suta_rate', state_code='TN')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tn_suta_wage_base', rate='us_tn_suta_rate', state_code='TN')</field>
<field name="partner_id" ref="res_partner_us_tn_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_tx_suta_wage_base" model="hr.rule.parameter">
<field name="name">US TX Texas SUTA Wage Base</field>
<field name="code">us_tx_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tx_suta_wage_base_2019" model="hr.rule.parameter.value">
<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">
<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(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_tx_suta_rate" model="hr.rule.parameter">
<field name="name">US TX Texas SUTA Rate</field>
<field name="code">us_tx_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tx_suta_rate_2019" model="hr.rule.parameter.value">
<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">
<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(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_tx_suta_oa_rate" model="hr.rule.parameter">
<field name="name">US TX Texas Obligation Assessment Rate</field>
<field name="code">us_tx_suta_oa_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tx_suta_oa_rate_2019" model="hr.rule.parameter.value">
<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">
<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(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_tx_suta_etia_rate" model="hr.rule.parameter">
<field name="name">US TX Texas Employment &amp; Training Investment Assessment Rate</field>
<field name="code">us_tx_suta_etia_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_tx_suta_etia_rate_2019" model="hr.rule.parameter.value">
<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">
<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(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_tx_dor" model="res.partner">
<field name="name">US Texas - Workforce Commission (Unemployment)</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_tx_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US TX Texas State Unemployment (C-3)</field>
<field name="code">ER_US_TX_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_rate', state_code='TX')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_rate', state_code='TX')</field>
<field name="partner_id" ref="res_partner_us_tx_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_tx_suta_oa" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US TX Texas Obligation Assessment (C-3)</field>
<field name="code">ER_US_TX_SUTA_OA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_oa_rate', state_code='TX')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_oa_rate', state_code='TX')</field>
<field name="partner_id" ref="res_partner_us_tx_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_tx_suta_etia" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US TX Texas Employment &amp; Training Investment Assessment (C-3)</field>
<field name="code">ER_US_TX_SUTA_ETIA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_etia_rate', state_code='TX')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_tx_suta_wage_base', rate='us_tx_suta_etia_rate', state_code='TX')</field>
<field name="partner_id" ref="res_partner_us_tx_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_ut_suta_wage_base" model="hr.rule.parameter">
<field name="name">US UT Utah SUTA Wage Base</field>
<field name="code">us_ut_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ut_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">36600.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ut_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_ut_suta_rate" model="hr.rule.parameter">
<field name="name">US UT Utah SUTA Rate</field>
<field name="code">us_ut_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ut_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.1</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ut_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_ut_tax_rate" model="hr.rule.parameter">
<field name="name">US UT Utah TAX Rate</field>
<field name="code">us_ut_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ut_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.0495</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ut_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table based on https://tax.utah.gov/forms/pubs/pub-14.pdf -->
<record id="rule_parameter_us_ut_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US UT Utah Allowances Rate</field>
<field name="code">us_ut_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ut_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly' : 7,
'bi-weekly' : 14,
'semi-monthly': 15,
'monthly' : 30,
'quarterly' : 90,
'semi-annual': 180,
'annually': 360,
},
'married': {
'weekly' : 14,
'bi-weekly' : 28,
'semi-monthly': 30,
'monthly' : 60,
'quarterly' : 180,
'semi-annual': 360,
'annually': 720,
},
'head_household': {
'weekly' : 7,
'bi-weekly' : 14,
'semi-monthly': 15,
'monthly' : 30,
'quarterly' : 90,
'semi-annual': 180,
'annually': 360,
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ut_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table based on https://tax.utah.gov/forms/pubs/pub-14.pdf -->
<record id="rule_parameter_us_ut_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US UT Utah SIT Tax Rate</field>
<field name="code">us_ut_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_ut_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': ((137, 1.3)),
'bi-weekly': ((274, 1.3)),
'semi-monthly': ((297, 1.3)),
'monthly': ((594, 1.3)),
'quarterly': ((1782, 1.3)),
'semi-annual': ((3564, 1.3)),
'annually': ((7128, 1.3)),
},
'married': {
'weekly': ((274, 1.3)),
'bi-weekly': (548, 1.3),
'semi-monthly': ((594, 1.3)),
'monthly': ((1188, 1.3)),
'quarterly': ((3564, 1.3)),
'semi-annual': ((7128, 1.3)),
'annually': ((14256, 1.3)),
},
'head_household': {
'weekly': ((137, 1.3)),
'bi-weekly': ((274, 1.3)),
'semi-monthly': ((297, 1.3)),
'monthly': ((594, 1.3)),
'quarterly': ((1782, 1.3)),
'semi-annual': ((3564, 1.3)),
'annually': ((7128, 1.3)),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_ut_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_ut_dor" model="res.partner">
<field name="name">US Utah - Employment Security Commission - Unemployment Tax</field>
</record>
<record id="res_partner_us_ut_dor_sit" model="res.partner">
<field name="name">US Utah - Tax Commission - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_ut_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US UT Utah State Unemployment</field>
<field name="code">ER_US_UT_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ut_suta_wage_base', rate='us_ut_suta_rate', state_code='UT')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_ut_suta_wage_base', rate='us_ut_suta_rate', state_code='UT')</field>
<field name="partner_id" ref="res_partner_us_ut_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_ut_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US UT Utah State Income Tax Withholding</field>
<field name="code">EE_US_UT_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = ut_utah_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ut_utah_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_ut_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_va_suta_wage_base" model="hr.rule.parameter">
<field name="name">US VA Virginia SUTA Wage Base</field>
<field name="code">us_va_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">8000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_va_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">8000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_va_suta_rate" model="hr.rule.parameter">
<field name="name">US VA Virginia SUTA Rate</field>
<field name="code">us_va_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.51</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_va_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.51</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table page no 10 based https://www.tax.virginia.gov/sites/default/files/inline-files/Employer%20Withholding%20Instructions.pdf -->
<record id="rule_parameter_us_va_sit_rate" model="hr.rule.parameter">
<field name="name">US VA Virginia SIT Rate Table</field>
<field name="code">us_va_sit_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_sit_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">[
( 0.00, 0.0, 2.00),
( 3000.00, 60.0, 3.00),
( 5000.00, 120.0, 5.00),
( 17000.00, 720.0, 5.75),
]</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_sit_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_va_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US VA Virginia SIT Exemption Rate Table</field>
<field name="code">us_va_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_sit_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">930.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_va_sit_other_exemption_rate" model="hr.rule.parameter">
<field name="name">US VA Virginia SIT Other Exemption Rate Table</field>
<field name="code">us_va_sit_other_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_sit_other_exemption_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">800.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_sit_other_exemption_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_va_sit_deduction" model="hr.rule.parameter">
<field name="name">US VA Virginia SIT Deduction</field>
<field name="code">us_va_sit_deduction</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_va_sit_deduction_2019" model="hr.rule.parameter.value">
<field name="parameter_value">4500.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_va_sit_deduction"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_va_dor" model="res.partner">
<field name="name">US Virginia - Department of Taxation - Unemployment Tax</field>
</record>
<record id="res_partner_us_va_dor_sit" model="res.partner">
<field name="name">US Virginia - Department of Taxation - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_va_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US VA Virginia State Unemployment</field>
<field name="code">ER_US_VA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_va_suta_wage_base', rate='us_va_suta_rate', state_code='VA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_va_suta_wage_base', rate='us_va_suta_rate', state_code='VA')</field>
<field name="partner_id" ref="res_partner_us_va_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_va_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US VA Virginia State Income Tax Withholding</field>
<field name="code">EE_US_VA_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = va_virginia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = va_virginia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_va_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,193 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base from https://labor.vermont.gov/unemployment-insurance/ui-employers/quarterly-reporting-taxable-wage-information -->
<record id="rule_parameter_us_vt_suta_wage_base" model="hr.rule.parameter">
<field name="name">US VT Vermont SUTA Wage Base</field>
<field name="code">us_vt_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_vt_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">16100.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_vt_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_vt_suta_rate" model="hr.rule.parameter">
<field name="name">US VT Vermont SUTA Rate</field>
<field name="code">us_vt_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<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"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_vt_sit_allowances_rate" model="hr.rule.parameter">
<field name="name">US VT Vermont Allowances Rate</field>
<field name="code">us_vt_sit_allowances_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_vt_sit_allowances_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 83.65,
'bi-weekly' : 167.31,
'semi-monthly': 181.25,
'monthly' : 362.50,
'quarterly' : 1087.50,
'annually': 4350.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_allowances_rate"/>
<field name="date_from" eval="datetime(2020, 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">
<field name="name">US VT Vermont SIT Tax Rate</field>
<field name="code">us_vt_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_vt_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly': (
( 60, 0.00, 0.00),
( 836, 0.00, 3.35),
( 1941, 26.00, 6.60),
( 3983, 98.93, 7.60),
('inf', 254.12, 8.75),
),
'bi-weekly': (
( 120, 0.00, 0.00),
( 1672, 0.00, 3.35),
( 3882, 51.99, 6.60),
( 7966, 197.85, 7.60),
('inf', 508.24, 8.75),
),
'semi-monthly': (
( 130, 0.00, 0.00),
( 1811, 0.00, 3.35),
( 4205, 56.31, 6.60),
( 8630, 214.32, 7.60),
('inf', 550.62, 8.75),
),
'monthly': (
( 260, 0.00, 0.00),
( 3623, 0.00, 3.35),
( 8410, 112.66, 6.60),
(17260, 428.60, 7.60),
('inf', 1101.20, 8.75),
),
'quarterly': (
( 781, 0.00, 0.00),
(10869, 0.00, 3.35),
(25231, 337.95, 6.60),
(51781, 1285.84, 7.60),
('inf', 3303.64, 8.75),
),
'annually': (
( 3125, 0.00, 0.00),
( 43475, 0.00, 3.35),
(100925, 1351.73, 6.60),
(207125, 5143.43, 7.60),
( 'inf', 13214.63, 8.75),
),
},
'married': {
'weekly': (
( 180, 0.00, 0.00),
( 1477, 0.00, 3.35),
( 3315, 43.45, 6.60),
( 4956, 164.76, 7.60),
('inf', 289.47, 8.75),
),
'bi-weekly': (
( 361, 0.00, 0.00),
( 2955, 0.00, 3.35),
( 6630, 86.90, 6.60),
(9913, 329.45, 7.60),
('inf', 578.96, 8.75),
),
'semi-monthly': (
( 391, 0.00, 0.00),
( 3201, 0.00, 3.35),
( 7182, 94.14, 6.60),
(10739, 356.88, 7.60),
('inf', 627.21, 8.75),
),
'monthly': (
( 781, 0.00, 0.00),
( 6402, 0.00, 3.35),
(14365, 188.30, 6.60),
(21477, 713.86, 7.60),
('inf', 1254.37, 8.75),
),
'quarterly': (
( 2344, 0.00, 0.00),
(19206, 0.00, 3.35),
(43094, 564.88, 6.60),
(64431, 2141.49, 7.60),
('inf', 3763.10, 8.75),
),
'annually': (
( 9375, 0.00, 0.00),
( 76825, 0.00, 3.35),
(172375, 2259.58, 6.60),
(257725, 8565.88, 7.60),
( 'inf', 15052.48, 8.75),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_vt_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_vt_dor" model="res.partner">
<field name="name">US Vermont - Employment Security Commission - Unemployment Tax</field>
</record>
<record id="res_partner_us_vt_dor_sit" model="res.partner">
<field name="name">US Vermont - Tax Commission - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_vt_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US VT Vermont State Unemployment</field>
<field name="code">ER_US_VT_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_vt_suta_wage_base', rate='us_vt_suta_rate', state_code='VT')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_vt_suta_wage_base', rate='us_vt_suta_rate', state_code='VT')</field>
<field name="partner_id" ref="res_partner_us_vt_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_vt_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US VT Vermont State Income Tax Withholding</field>
<field name="code">EE_US_VT_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = vt_vermont_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = vt_vermont_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_vt_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_wa_suta_wage_base" model="hr.rule.parameter">
<field name="name">US WA Washington SUTA Wage Base</field>
<field name="code">us_wa_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">49800.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">52700.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_wa_fml_wage_base" model="hr.rule.parameter">
<field name="name">US WA Washington FML Wage Base</field>
<field name="code">us_wa_fml_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_fml_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">132900.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_fml_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">137700.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_wa_suta_rate" model="hr.rule.parameter">
<field name="name">US WA Washington SUTA Rate</field>
<field name="code">us_wa_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">1.18</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">1.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_wa_fml_rate" model="hr.rule.parameter">
<field name="name">US WA Washington FML Rate (Total)</field>
<field name="code">us_wa_fml_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_fml_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">0.4</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_fml_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">0.4</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_wa_fml_rate_ee" model="hr.rule.parameter">
<field name="name">US WA Washington FML Rate (Employee)</field>
<field name="code">us_wa_fml_rate_ee</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_fml_rate_ee_2019" model="hr.rule.parameter.value">
<field name="parameter_value">66.33</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate_ee"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_fml_rate_ee_2020" model="hr.rule.parameter.value">
<field name="parameter_value">66.33</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate_ee"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_wa_fml_rate_er" model="hr.rule.parameter">
<field name="name">US WA Washington FML Rate (Employer)</field>
<field name="code">us_wa_fml_rate_er</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wa_fml_rate_er_2019" model="hr.rule.parameter.value">
<field name="parameter_value">33.67</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate_er"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wa_fml_rate_er_2020" model="hr.rule.parameter.value">
<field name="parameter_value">33.67</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wa_fml_rate_er"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_wa_dor" model="res.partner">
<field name="name">US Washington - Employment Security Department (Unemployment)</field>
</record>
<record id="res_partner_us_wa_dor_lni" model="res.partner">
<field name="name">US Washington - Department of Labor &amp; Industries</field>
</record>
<record id="res_partner_us_wa_dor_fml" model="res.partner">
<field name="name">US Washington - Employment Security Department (PFML)</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_wa_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US WA Washington State Unemployment (5208A/B)</field>
<field name="code">ER_US_WA_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wa_suta_wage_base', rate='us_wa_suta_rate', state_code='WA')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wa_suta_wage_base', rate='us_wa_suta_rate', state_code='WA')</field>
<field name="partner_id" ref="res_partner_us_wa_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_er_us_wa_fml" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll.COMP"/>
<field name="name">ER: US WA Washington State Family Medical Leave</field>
<field name="code">ER_US_WA_FML</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = wa_washington_fml_er(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = wa_washington_fml_er(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_wa_dor_fml"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_wa_fml" model="hr.salary.rule">
<field name="sequence" eval="196"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">EE: US WA Washington State Family Medical Leave</field>
<field name="code">EE_US_WA_FML</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = wa_washington_fml_ee(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = wa_washington_fml_ee(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_wa_dor_fml"/>
<field name="appears_on_payslip" eval="True"/>
</record>
<!-- LNI May need to be updated depending on hours worked (or drywall laid) -->
<record id="hr_payroll_rule_er_us_wa_lni" model="hr.salary.rule">
<field name="sequence" eval="451"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll.COMP"/>
<field name="name">ER: US WA Washington State LNI</field>
<field name="code">ER_US_WA_LNI</field>
<field name="condition_select">python</field>
<field name="condition_python">result = is_us_state(payslip, 'WA') and payslip.contract_id.us_payroll_config_value('workers_comp_ee_code') and worked_days.WORK100 and worked_days.WORK100.number_of_hours and payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_er_code'))</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours, -payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_er_code'))</field>
<field name="partner_id" ref="res_partner_us_wa_dor_lni"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_wa_lni" model="hr.salary.rule">
<field name="sequence" eval="196"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">EE: US WA Washington State LNI</field>
<field name="code">EE_US_WA_LNI</field>
<field name="condition_select">python</field>
<field name="condition_python">result = is_us_state(payslip, 'WA') and payslip.contract_id.us_payroll_config_value('workers_comp_ee_code') and worked_days.WORK100 and worked_days.WORK100.number_of_hours and payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_ee_code'))</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours, -payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_ee_code'))</field>
<field name="partner_id" ref="res_partner_us_wa_dor_lni"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_wi_suta_wage_base" model="hr.rule.parameter">
<field name="name">US WI Wisconsin SUTA Wage Base</field>
<field name="code">us_wi_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wi_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">14000.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wi_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<!-- Rate based on this file https://dwd.wisconsin.gov/ui/employers/taxrates.htm -->
<record id="rule_parameter_us_wi_suta_rate" model="hr.rule.parameter">
<field name="name">US WI Wisconsin SUTA Rate</field>
<field name="code">us_wi_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wi_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">3.05</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wi_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<record id="rule_parameter_us_wi_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US WI Wisconsin Exemption Rate</field>
<field name="code">us_wi_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wi_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">22</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wi_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table based on https://www.revenue.wi.gov/DOR%20Publications/pb166.pdf page 25. -->
<record id="rule_parameter_us_wi_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US WI Wisconsin SIT Tax Rate</field>
<field name="code">us_wi_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wi_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': (
( 5730, 0.0000, 0.00),
( 15200, 4.0000, 0.00),
( 16486, 4.4800, 378.80),
( 26227, 6.5408, 436.41),
( 62950, 7.0224, 1073.55),
(240190, 6.2700, 3652.39),
( 'inf', 7.6500, 14765.34),
),
'married': (
( 7870, 0.0000, 0.00),
( 18780, 4.0000, 0.00),
( 21400, 5.8400, 436.40),
( 28308, 7.0080, 589.41),
( 60750, 7.5240, 1073.52),
(240190, 6.2700, 3514.46),
( 'inf', 7.6500, 14765.35),
),
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wi_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_wi_dor" model="res.partner">
<field name="name">US Wisconsin - Department of Workforce Development - Unemployment Tax</field>
</record>
<record id="res_partner_us_wi_dor_sit" model="res.partner">
<field name="name">US Wisconsin - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_wi_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US WI Wisconsin State Unemployment</field>
<field name="code">ER_US_WI_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wi_suta_wage_base', rate='us_wi_suta_rate', state_code='WI')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wi_suta_wage_base', rate='us_wi_suta_rate', state_code='WI')</field>
<field name="partner_id" ref="res_partner_us_wi_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_wi_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US WI Wisconsin State Income Tax Withholding</field>
<field name="code">EE_US_WI_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = wi_wisconsin_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = wi_wisconsin_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_wi_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,215 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_wv_suta_wage_base" model="hr.rule.parameter">
<field name="name">US WV West Virginia SUTA Wage Base</field>
<field name="code">us_wv_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wv_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">12000.0</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wv_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_wv_suta_rate" model="hr.rule.parameter">
<field name="name">US WV West Virginia SUTA Rate</field>
<field name="code">us_wv_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wv_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">2.7</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wv_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table base on this https://tax.wv.gov/Documents/TaxForms/it100.1a.pdf page 16-->
<record id="rule_parameter_us_wv_sit_exemption_rate" model="hr.rule.parameter">
<field name="name">US WV West Virginia Exemption Rate</field>
<field name="code">us_wv_sit_exemption_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wv_sit_exemption_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'weekly' : 38.46,
'bi-weekly' : 76.92,
'semi-monthly': 83.33,
'monthly' : 166.67,
'annually': 2000.00,
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wv_sit_exemption_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Table base on this https://tax.wv.gov/Documents/TaxForms/it100.1a.pdf page 17-->
<record id="rule_parameter_us_wv_sit_tax_rate" model="hr.rule.parameter">
<field name="name">US WV West Virginia SIT Tax Rate</field>
<field name="code">us_wv_sit_tax_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wv_sit_tax_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">{
'single': {
'weekly':(
( 192, 0.00, 3.0),
( 481, 5.76, 4.0),
( 769, 17.32, 4.5),
( 1154, 30.28, 6.0),
('inf', 53.38, 6.5),
),
'bi-weekly':(
( 385, 0.00, 3.0),
( 962, 11.55, 4.0),
( 1538, 34.63, 4.5),
( 2308, 60.55, 6.0),
('inf', 106.75, 6.5),
),
'semi-monthly':(
( 417, 0.00, 3.0),
( 1042 , 12.51, 4.0),
( 1667, 37.51, 4.5),
( 2500, 65.64, 6.0),
('inf', 115.62, 6.5),
),
'monthly':(
( 833, 0.00, 3.0),
( 2083, 24.99, 4.0),
( 3333, 74.99, 4.5),
( 5000, 131.24, 6.0),
('inf', 231.26, 6.5),
),
'annually':(
( 10000, 0.00, 3.0),
( 25000, 300.00, 4.0),
( 40000, 900.00, 4.5),
( 60000, 1575.00, 6.0),
( 'inf', 2775.00, 6.5),
),
},
'married': {
'weekly':(
( 115, 0.00, 3.0),
( 288, 3.45, 4.0),
( 462, 10.37, 4.5),
( 692, 18.20, 6.0),
('inf', 32.00, 6.5),
),
'bi-weekly':(
( 231, 0.00, 3.0),
( 577, 6.93, 4.0),
( 923, 20.77, 4.5),
( 1385, 36.34, 6.0),
('inf', 64.06, 6.5),
),
'semi-monthly':(
( 250, 0.00, 3.0),
( 625, 7.50, 4.0),
( 1000, 22.50, 4.5),
( 1500, 39.38, 6.0),
('inf', 69.38, 6.5),
),
'monthly':(
( 500, 0.00, 3.0),
( 1250, 15.00, 4.0),
( 2000, 45.00, 4.5),
( 3000, 78.75, 6.0),
('inf', 138.75, 6.5),
),
'annually':(
( 6000, 0.00, 3.0),
(15000, 180.00, 4.0),
(24000, 540.00, 4.5),
(36000, 945.00, 6.0),
('inf', 1665.00, 6.5),
),
},
'head_household': {
'weekly':(
( 192, 0.00, 3.0),
( 481, 5.76, 4.0),
( 769, 17.32, 4.5),
( 1154, 30.28, 6.0),
('inf', 53.38, 6.5),
),
'bi-weekly':(
( 385, 0.00, 3.0),
( 962, 11.55, 4.0),
( 1538, 34.63, 4.5),
( 2308, 60.55, 6.0),
('inf', 106.75, 6.5),
),
'semi-monthly':(
( 417, 0.00, 3.0),
( 1042, 12.51, 4.0),
( 1667, 37.51, 4.5),
( 2500, 65.64, 6.0),
('inf', 115.62, 6.5),
),
'monthly':(
( 833, 0.00, 3.0),
( 2083, 24.99, 4.0),
( 3333, 74.99, 4.5),
( 5000, 131.24, 6.0),
('inf', 231.26, 6.5),
),
'annually':(
( 10000, 0.00, 3.0),
( 25000, 300.00, 4.0),
( 40000, 900.00, 4.5),
( 60000, 1575.00, 6.0),
( 'inf', 2775.00, 6.5),
),
},
}</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wv_sit_tax_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_wv_dor" model="res.partner">
<field name="name">US West Virginia - WorkForce - Unemployment Tax</field>
</record>
<record id="res_partner_us_wv_dor_sit" model="res.partner">
<field name="name">US West Virginia - Department of Revenue - Income Tax</field>
</record>
<!-- Categories -->
<!-- Rules -->
<record id="hr_payroll_rule_er_us_wv_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US WV West Virginia State Unemployment</field>
<field name="code">ER_US_WV_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wv_suta_wage_base', rate='us_wv_suta_rate', state_code='WV')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wv_suta_wage_base', rate='us_wv_suta_rate', state_code='WV')</field>
<field name="partner_id" ref="res_partner_us_wv_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rule_ee_us_wv_sit" model="hr.salary.rule">
<field name="sequence" eval="195"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_ee_us_sit"/>
<field name="name">EE: US WV West Virginia State Income Tax Withholding</field>
<field name="code">EE_US_WV_SIT</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = wv_west_virginia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = wv_west_virginia_state_income_withholding(payslip, categories, worked_days, inputs)</field>
<field name="partner_id" ref="res_partner_us_wv_dor_sit"/>
<field name="appears_on_payslip" eval="True"/>
</record>
</odoo>

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Wage Base -->
<record id="rule_parameter_us_wy_suta_wage_base" model="hr.rule.parameter">
<field name="name">US WY Wyoming SUTA Wage Base</field>
<field name="code">us_wy_suta_wage_base</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wy_suta_wage_base_2019" model="hr.rule.parameter.value">
<field name="parameter_value">25400.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wy_suta_wage_base"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wy_suta_wage_base_2020" model="hr.rule.parameter.value">
<field name="parameter_value">26400.00</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wy_suta_wage_base"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Rate -->
<record id="rule_parameter_us_wy_suta_rate" model="hr.rule.parameter">
<field name="name">US WY Wyoming SUTA Rate</field>
<field name="code">us_wy_suta_rate</field>
<field name="country_id" ref="base.us"/>
</record>
<data noupdate="1">
<record id="rule_parameter_us_wy_suta_rate_2019" model="hr.rule.parameter.value">
<field name="parameter_value">2.10</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wy_suta_rate"/>
<field name="date_from" eval="datetime(2019, 1, 1).date()"/>
</record>
<record id="rule_parameter_us_wy_suta_rate_2020" model="hr.rule.parameter.value">
<field name="parameter_value">8.5</field>
<field name="rule_parameter_id" ref="rule_parameter_us_wy_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
</data>
<!-- Partners and Contribution Registers -->
<record id="res_partner_us_wy_dor" model="res.partner">
<field name="name">US Wyoming - Department of Workforce Services (WDWS) - Unemployment Tax</field>
</record>
<!-- Rules -->
<record id="hr_payroll_rule_er_us_wy_suta" model="hr.salary.rule">
<field name="sequence" eval="450"/>
<field name="struct_id" ref="hr_payroll_structure"/>
<field name="category_id" ref="hr_payroll_category_er_us_suta"/>
<field name="name">ER: US WY Wyoming State Unemployment</field>
<field name="code">ER_US_WY_SUTA</field>
<field name="condition_select">python</field>
<field name="condition_python">result, _ = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wy_suta_wage_base', rate='us_wy_suta_rate', state_code='WY')</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = general_state_unemployment(payslip, categories, worked_days, inputs, wage_base='us_wy_suta_wage_base', rate='us_wy_suta_rate', state_code='WY')</field>
<field name="partner_id" ref="res_partner_us_wy_dor"/>
<field name="appears_on_payslip" eval="False"/>
</record>
</odoo>