48 lines
1.5 KiB
Python
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'
|