Odoo18-Base/addons/l10n_my_edi/models/account_tax.py
2025-01-06 10:57:38 +07:00

48 lines
1.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class AccountTax(models.Model):
_inherit = 'account.tax'
# ------------------
# Fields declaration
# ------------------
l10n_my_tax_type = fields.Selection(
selection=[
('01', "Sales Tax"),
('02', "Service Tax"),
('03', "Tourism Tax"),
('04', "High-Value Goods Tax"),
('05', "Sales Tax on Low Value Goods"),
('06', "Not Applicable"),
('E', "Tax exemption (where applicable)"),
],
string="Malaysian Tax Type",
compute="_compute_l10n_my_tax_type",
store=True,
readonly=False,
)
# --------------------------------
# Compute, inverse, search methods
# --------------------------------
@api.depends('amount', 'country_id', 'tax_scope')
def _compute_l10n_my_tax_type(self):
""" Compute default tax type based on a few factors. """
for tax in self:
if tax.country_id.code != 'MY':
tax.l10n_my_tax_type = False
else:
if tax.amount == 0:
tax.l10n_my_tax_type = 'E'
elif tax.tax_scope == 'consu':
tax.l10n_my_tax_type = '01'
elif tax.tax_scope == 'service':
tax.l10n_my_tax_type = '02'
else:
tax.l10n_my_tax_type = '06'