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

67 lines
3.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
from odoo.tools.translate import LazyTranslate
_lt = LazyTranslate(__name__)
_SELECTION_TAX_TYPE = [
('VAT', 'Normal VAT (percent based)'),
('AAM', 'AAM - Personal tax exemption'),
('TAM', 'TAM - tax-exempt activity or tax-exempt due to being in public interest or special in nature'),
('KBAET', 'KBAET - intra-Community exempt supply, without new means of transport'),
('KBAUK', 'KBAUK - tax-exempt, intra-Community sales of new means of transport'),
('EAM', 'EAM - tax-exempt, extra-Community sales of goods (export of goods to a non-EU country)'),
('NAM', 'NAM - tax-exempt on other grounds related to international transactions'),
('ATK', 'ATK - Outside the scope of VAT'),
('EUFAD37', 'EUFAD37 - Based on section 37 of the VAT Act, a reverse charge transaction carried out in another Member State'),
('EUFADE', 'EUFADE - Reverse charge transaction carried out in another Member State, not subject to Section 37 of the VAT Act'),
('EUE', 'EUE - Non-reverse charge transaction performed in another Member State'),
('HO', 'HO - Transaction in a third country'),
('DOMESTIC_REVERSE', 'DOMESTIC_REVERSE - Domestic reverse-charge regime'),
('TRAVEL_AGENCY', 'TRAVEL_AGENCY - Profit-margin based regime for travel agencies'),
('SECOND_HAND', 'SECOND_HAND - Profit-margin based regime for second-hand sales'),
('ARTWORK', 'ARTWORK - Profit-margin based regime for artwork sales'),
('ANTIQUES', 'ANTIQUES - Profit-margin based regime for antique sales'),
('REFUNDABLE_VAT', 'REFUNDABLE_VAT - VAT incurred under sections 11 or 14, without an agreement from the beneficiary to reimburse VAT'),
('NONREFUNDABLE_VAT', 'NONREFUNDABLE_VAT - VAT incurred under sections 11 or 14, with an agreement from the beneficiary to reimburse VAT'),
('NO_VAT', 'VAT not applicable pursuant to section 17 of the VAT Act'),
]
_DEFAULT_TAX_REASONS = {
'AAM': _lt('AAM Tax exempt'),
'TAM': _lt('TAM Exempt property'),
'KBAET': _lt('KBAET sale to EU - VAT tv.§ 89.'),
'KBAUK': _lt('KBAUK New means of transport within the EU - VAT tv.§ 89.§(2)'),
'EAM': _lt('EAM Product export to 3rd country - VAT tv.98-109.§'),
'NAM': _lt('NAM other export transaction VAT law § 110-118'),
'ATK': _lt('ATK Outside the scope of VAT - VAT tv.2-3.§'),
'EUFAD37': _lt('EUFAD37 § 37 (1) Reverse VAT in another EU country'),
'EUFADE': _lt('EUFADE Reverse charge of VAT in another EU country not VAT tv. § 37 (1)'),
'EUE': _lt('EUE Sales made in a 2nd EU country'),
'HO': _lt('HO Service to 3rd country'),
}
class AccountTax(models.Model):
_inherit = 'account.tax'
l10n_hu_tax_type = fields.Selection(
_SELECTION_TAX_TYPE,
string='NAV VAT Tax Type',
help='Precise identification of the VAT tax for the Hungarian authority.',
)
l10n_hu_tax_reason = fields.Char(
string='NAV VAT Tax Exemption Reason',
help='May be used to provide support for the use of a VAT-exempt VAT tax type.',
compute='_compute_l10n_hu_tax_reason',
readonly=False,
)
@api.depends('l10n_hu_tax_type')
def _compute_l10n_hu_tax_reason(self):
for tax in self:
reason = _DEFAULT_TAX_REASONS.get(tax.l10n_hu_tax_type, '')
tax.l10n_hu_tax_reason = self.env._(reason) # pylint: disable=gettext-variable