79 lines
3.3 KiB
Python
79 lines
3.3 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'
|
|
|
|
l10n_ar_type_tax_use = fields.Selection(
|
|
selection=[
|
|
('sale', 'Sales'),
|
|
('purchase', 'Purchases'),
|
|
('none', 'Other'),
|
|
('supplier', 'Vendor Payment Withholding'),
|
|
('customer', 'Customer Payment Withholding')
|
|
],
|
|
compute='_compute_l10n_ar_type_tax_use', inverse='_inverse_l10n_ar_type_tax_use',
|
|
string="Argentina Tax Type"
|
|
)
|
|
l10n_ar_withholding_payment_type = fields.Selection(
|
|
selection=[('supplier', 'Vendor Payment'), ('customer', 'Customer Payment')],
|
|
string="Argentina Withholding Payment Type",
|
|
help="Withholding tax for supplier or customer payments.")
|
|
l10n_ar_tax_type = fields.Selection(
|
|
string='WTH Tax',
|
|
selection=[
|
|
('earnings', 'Earnings'),
|
|
('earnings_scale', 'Earnings Scale'),
|
|
('iibb_untaxed', 'IIBB Untaxed'),
|
|
('iibb_total', 'IIBB Total Amount'),
|
|
]
|
|
)
|
|
l10n_ar_withholding_sequence_id = fields.Many2one(
|
|
'ir.sequence',
|
|
string='WTH Sequence',
|
|
copy=False, check_company=True,
|
|
help='If no sequence provided then it will be required for you to enter withholding number when registering one.')
|
|
l10n_ar_code = fields.Char('AFIP Code')
|
|
l10n_ar_non_taxable_amount = fields.Float(
|
|
string='Non Taxable Amount',
|
|
digits='Account',
|
|
help="Until this base amount, the tax is not applied."
|
|
)
|
|
l10n_ar_minimum_threshold = fields.Float(
|
|
string="Minimum Treshold",
|
|
help="If the calculated withholding tax amount is lower than minimum withholding threshold then it is 0.0.")
|
|
l10n_ar_state_id = fields.Many2one(
|
|
'res.country.state', string="Jurisdiction", ondelete='restrict', domain="[('country_id', '=?', country_id)]")
|
|
l10n_ar_scale_id = fields.Many2one(
|
|
comodel_name='l10n_ar.earnings.scale',
|
|
string="Scale", help="Earnings table scale if tax type is 'Earnings Scale'."
|
|
)
|
|
|
|
@api.depends('type_tax_use', 'l10n_ar_withholding_payment_type')
|
|
def _compute_l10n_ar_type_tax_use(self):
|
|
for tax in self:
|
|
if tax.type_tax_use in ('sale', 'purchase'):
|
|
tax.l10n_ar_type_tax_use = tax.type_tax_use
|
|
elif tax.l10n_ar_withholding_payment_type in ('supplier', 'customer'):
|
|
tax.l10n_ar_type_tax_use = tax.l10n_ar_withholding_payment_type
|
|
else:
|
|
tax.l10n_ar_type_tax_use = 'none'
|
|
|
|
@api.onchange('l10n_ar_type_tax_use')
|
|
def _inverse_l10n_ar_type_tax_use(self):
|
|
for tax in self:
|
|
if tax.l10n_ar_type_tax_use in ('sale', 'purchase'):
|
|
tax.type_tax_use = tax.l10n_ar_type_tax_use
|
|
tax.l10n_ar_tax_type = False
|
|
tax.l10n_ar_state_id = False
|
|
tax.l10n_ar_withholding_payment_type = False
|
|
else:
|
|
if tax.l10n_ar_type_tax_use in ('supplier', 'customer'):
|
|
tax.l10n_ar_withholding_payment_type = tax.l10n_ar_type_tax_use
|
|
else:
|
|
tax.l10n_ar_withholding_payment_type = False
|
|
tax.l10n_ar_tax_type = False
|
|
tax.type_tax_use = 'none'
|