Files
Odoo-Modules/fusion_payroll/models/tax_yearly_rates.py
2026-02-22 01:22:18 -05:00

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')