You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Copyright 2021 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import _, api, fields, models from odoo.exceptions import ValidationError
class ResPartnerIdCategory(models.Model): _inherit = "res.partner.id_category"
has_unique_numbers = fields.Boolean( string="Enforce unicity", help="When set, duplicate numbers will not be allowed for this category.", )
@api.constrains("has_unique_numbers") def validate_must_be_unique(self): for rec in self: if not rec.has_unique_numbers: continue ids = self.env["res.partner.id_number"].search( [("category_id", "in", rec.ids)] ) unique_numbers = set(ids.mapped("name")) if len(ids) != len(unique_numbers): raise ValidationError( _( "The category {} can not be set to use unique numbers, " "because it already contains duplicates." ).format(rec.name) )
|