Files
odoo_source/addons/l10n_latam_base/models/res_partner.py
T
Nikunj Ladava f3ee9de11b [FIX] l10n_latam_base: avoid singleton error
limit identification type search result in one
record to avoid apparent singleton error

closes odoo/odoo#50380

X-original-commit: fe62fbc520a7daee8006d2b453d0b2f2459ce1ad
Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-04-29 10:31:07 +00:00

29 lines
1.3 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api
class ResPartner(models.Model):
_inherit = 'res.partner'
l10n_latam_identification_type_id = fields.Many2one('l10n_latam.identification.type',
string="Identification Type", index=True, auto_join=True,
default=lambda self: self.env.ref('l10n_latam_base.it_vat', raise_if_not_found=False),
help="The type of identification")
vat = fields.Char(string='Identification Number', help="Identification Number for selected type")
@api.model
def _commercial_fields(self):
return super()._commercial_fields() + ['l10n_latam_identification_type_id']
@api.constrains('vat', 'l10n_latam_identification_type_id')
def check_vat(self):
with_vat = self.filtered(lambda x: x.l10n_latam_identification_type_id.is_vat)
return super(ResPartner, with_vat).check_vat()
@api.onchange('country_id')
def _onchange_country(self):
country = self.country_id or self.company_id.country_id or self.env.company.country_id
self.l10n_latam_identification_type_id = self.env['l10n_latam.identification.type'].search(
[('country_id', '=', country.id), ('is_vat', '=', True)], limit=1) or self.env.ref('l10n_latam_base.it_vat', raise_if_not_found=False)