61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import models, fields, api
|
|
|
|
|
|
class TaxYearlyRates(models.Model):
|
|
_name = 'tax.yearly.rates'
|
|
_description = 'Yearly Tax Rates'
|
|
_order = 'id'
|
|
|
|
# === Selection Options ===
|
|
TAX_TYPE_SELECTION = [
|
|
('federal', 'Federal Taxes'),
|
|
('provincial', 'Provincial Taxes'),
|
|
]
|
|
|
|
DEDUCTION_TYPE_SELECTION = [
|
|
('cpp', 'Canada Pension Plan'),
|
|
('ei', 'Employment Insurance'),
|
|
]
|
|
|
|
# === Core Fields ===
|
|
fiscal_year = fields.Many2one(
|
|
'account.fiscal.year',
|
|
string='Fiscal Year',
|
|
)
|
|
tax_type = fields.Selection(
|
|
selection=TAX_TYPE_SELECTION,
|
|
string='Tax Type',
|
|
)
|
|
ded_type = fields.Selection(
|
|
selection=DEDUCTION_TYPE_SELECTION,
|
|
string='Deduction Type',
|
|
)
|
|
|
|
# === Tax Bracket Lines ===
|
|
tax_yearly_rate_ids = fields.One2many(
|
|
'tax.yearly.rate.line',
|
|
'tax_id',
|
|
string='Tax Lines',
|
|
)
|
|
|
|
# === Federal/Provincial Tax Fields ===
|
|
fed_tax_credit = fields.Float(string='Federal Tax Credit')
|
|
provincial_tax_credit = fields.Float(string='Provincial Tax Credit')
|
|
canada_emp_amount = fields.Float(string='Canada Employment Amount')
|
|
exemption = fields.Float(string='Exemption Amount')
|
|
|
|
# === CPP (Canada Pension Plan) Fields ===
|
|
cpp_date = fields.Date(string='CPP Date')
|
|
max_cpp = fields.Float(string='Maximum CPP')
|
|
emp_contribution_rate = fields.Float(string='Employee Contribution Rate')
|
|
employer_contribution_rate = fields.Float(string='Employer Contribution Rate')
|
|
|
|
# === EI (Employment Insurance) Fields ===
|
|
ei_date = fields.Date(string='EI Date')
|
|
ei_rate = fields.Float(string='EI Rate')
|
|
ei_earnings = fields.Float(string='Maximum EI Earnings')
|
|
emp_ei_amount = fields.Float(string='Employee EI Amount')
|
|
employer_ei_amount = fields.Float(string='Employer EI Amount')
|