|
|
for partner in self:
# use _origin to deal with onchange()
partner_id = partner._origin.id
#active_test = False because if a partner has been deactivated you still want to raise the error,
#so that you can reactivate it instead of creating a new one, which would loose its history.
Partner = self.with_context(active_test=False).sudo()
domain = [
('vat', '=', partner.vat),
]
if partner.company_id:
domain += [('company_id', 'in', [False, partner.company_id.id])]
if partner_id:
domain += [('id', '!=', partner_id), '!', ('id', 'child_of', partner_id)]
# For VAT number being only one character, we will skip the check just like the regular check_vat
should_check_vat = partner.vat and len(partner.vat) != 1
partner.same_vat_partner_id = should_check_vat and not partner.parent_id and Partner.search(domain, limit=1)
# check company_registry
domain = [
('company_registry', '=', partner.company_registry),
('company_id', 'in', [False, partner.company_id.id]),
]
if partner_id:
domain += [('id', '!=', partner_id), '!', ('id', 'child_of', partner_id)]
partner.same_company_registry_partner_id = bool(partner.company_registry) and not partner.parent_id and Partner.search(domain, limit=1)
|
|