Files
suite/l10n_us_ny_hr_payroll/hr_payroll.py
2018-05-24 13:54:02 -07:00

58 lines
2.3 KiB
Python
Executable File

from odoo import models, fields, api
class USNYHrContract(models.Model):
_inherit = 'hr.contract'
ny_it2104_allowances = fields.Integer(string="New York IT-2104 Allowances",
default=0,
help="Allowances claimed on line 1 of IT-2104")
ny_additional_withholding = fields.Integer(string="Additional Withholding",
default=0,
help="Line 3 of IT-2104")
ny_it2104_filing_status = fields.Selection([
('exempt', 'Exempt'),
('single', 'Single'),
('married', 'Married'),
], string='NY Filing Status', default='single')
@api.multi
def ny_unemp_rate(self, year):
self.ensure_one()
if self.futa_type == self.FUTA_TYPE_BASIC:
return 0.0
if hasattr(self.employee_id.company_id, 'ny_unemp_rate_' + str(year)):
return self.employee_id.company_id['ny_unemp_rate_' + str(year)]
raise NotImplemented('Year (' + str(year) + ') Not implemented for US New York.')
def ny_rsf_rate(self, year):
self.ensure_one()
if self.futa_type == self.FUTA_TYPE_BASIC:
return 0.0
if hasattr(self.employee_id.company_id, 'ny_rsf_rate_' + str(year)):
return self.employee_id.company_id['ny_rsf_rate_' + str(year)]
raise NotImplemented('Year (' + str(year) + ') Not implemented for US New York.')
def ny_mctmt_rate(self, year):
self.ensure_one()
if self.futa_type == self.FUTA_TYPE_BASIC:
return 0.0
if hasattr(self.employee_id.company_id, 'ny_mctmt_rate_' + str(year)):
return self.employee_id.company_id['ny_mctmt_rate_' + str(year)]
raise NotImplemented('Year (' + str(year) + ') Not implemented for US New York.')
class NYCompany(models.Model):
_inherit = 'res.company'
# Unemployment Rate is default for New Employer.
ny_unemp_rate_2018 = fields.Float(string="New York Unemployment Insurance Tax Rate 2018", default=3.925)
ny_rsf_rate_2018 = fields.Float(string="New York Re-employment Service Fund Rate 2018", default=0.075)
ny_mctmt_rate_2018 = fields.Float(string="New York Metropolitan Commuter Transportation Mobility Tax Rate 2018", default=0.0)