[IMP] base: warn when duplicating VAT number
Task 1942984 Add a warning to alert for partner duplicates based on VAT number When we create a new partner with an existing vat number, on change from vat number --> trigger a warning, closes odoo/odoo#31597 Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
This commit is contained in:
@@ -162,6 +162,7 @@ class Partner(models.Model):
|
||||
user_id = fields.Many2one('res.users', string='Salesperson',
|
||||
help='The internal user in charge of this contact.')
|
||||
vat = fields.Char(string='Tax ID', help="The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.")
|
||||
same_vat_partner = fields.Html(string='Partner with same TIN', compute='_compute_same_vat_partner', store=False) # this needs to be a html and not a m2o because the link needs to be created for unexisting records and the framework doenst manage that
|
||||
bank_ids = fields.One2many('res.partner.bank', 'partner_id', string='Banks')
|
||||
website = fields.Char('Website Link')
|
||||
comment = fields.Text(string='Notes')
|
||||
@@ -261,6 +262,19 @@ class Partner(models.Model):
|
||||
for partner in self:
|
||||
partner.partner_share = not partner.user_ids or not any(not user.share for user in partner.user_ids)
|
||||
|
||||
@api.depends('vat')
|
||||
def _compute_same_vat_partner(self):
|
||||
for partner in self:
|
||||
partner_id = partner.id
|
||||
if isinstance(partner_id, models.NewId):
|
||||
# deal with onchange(), which is always called on a single record
|
||||
partner_id = self._origin.id
|
||||
domain = [('vat', '=', partner.vat)]
|
||||
if partner_id:
|
||||
domain += [('id', '!=', partner_id), '!', ('id', 'child_of', partner_id)]
|
||||
same_vat_partner = self.env['res.partner'].search(domain, limit=1)
|
||||
partner.same_vat_partner = partner.vat and not partner.parent_id and same_vat_partner and "<a href='/web#id={}&model=res.partner' target='_blank'>{}</a>".format(same_vat_partner.id, same_vat_partner.name) or False
|
||||
|
||||
@api.depends(lambda self: self._display_address_depends())
|
||||
def _compute_contact_address(self):
|
||||
for partner in self:
|
||||
|
||||
@@ -199,6 +199,9 @@
|
||||
<field name="priority" eval="1"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Partners">
|
||||
<div class="alert alert-warning oe_edit_only" role="alert" attrs="{'invisible': [('same_vat_partner', '=', False)]}">
|
||||
A partner with the same Tax ID already exists (<field name="same_vat_partner" widget="html" class="d-inline-block"/>), are you sure to create a new one?
|
||||
</div>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="toggle_active" type="object"
|
||||
|
||||
Reference in New Issue
Block a user