From 2f4ec15a37b916d0ea15665946de118564e4f3df Mon Sep 17 00:00:00 2001 From: Pratima Gupta Date: Wed, 31 Oct 2018 09:35:42 +0000 Subject: [PATCH] [IMP]base: Unique barcode for customers. If two customers have same barcode - Current functionality : To select customer in POS, if we scan barcode, only the newly created customer will be selected. To resolve this: Created the unique sql constraint for customer per company. This commit is related to task# 1877329. closes odoo/odoo#28316 --- addons/point_of_sale/models/res_partner.py | 5 +++++ addons/point_of_sale/views/res_partner_view.xml | 6 ++++++ odoo/addons/base/models/res_partner.py | 1 - odoo/addons/base/views/res_partner_views.xml | 3 --- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/addons/point_of_sale/models/res_partner.py b/addons/point_of_sale/models/res_partner.py index 5f005d308cb..a4b33c150fa 100644 --- a/addons/point_of_sale/models/res_partner.py +++ b/addons/point_of_sale/models/res_partner.py @@ -11,6 +11,11 @@ class ResPartner(models.Model): help="The number of point of sales orders related to this customer", groups="point_of_sale.group_pos_user", ) + barcode = fields.Char(oldname='ean13', help="Use a barcode to identify this contact from the Point of Sale.", copy=False) + + _sql_constraints = [ + ('unique_barcode', 'unique(barcode, company_id)', 'This barcode is already assigned to another contact. Please make sure you assign a unique barcode to this contact.'), + ] def _compute_pos_order(self): partners_data = self.env['pos.order'].read_group([('partner_id', 'in', self.ids)], ['partner_id'], ['partner_id']) diff --git a/addons/point_of_sale/views/res_partner_view.xml b/addons/point_of_sale/views/res_partner_view.xml index c537a7dda5c..7721b183b08 100644 --- a/addons/point_of_sale/views/res_partner_view.xml +++ b/addons/point_of_sale/views/res_partner_view.xml @@ -15,6 +15,12 @@ + + + + + + diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index b5562a17e54..2737275d2b6 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -169,7 +169,6 @@ class Partner(models.Model): category_id = fields.Many2many('res.partner.category', column1='partner_id', column2='category_id', string='Tags', default=_default_category) credit_limit = fields.Float(string='Credit Limit') - barcode = fields.Char(oldname='ean13', help="Use a barcode to identify this contact from the Point of Sale.") active = fields.Boolean(default=True) customer = fields.Boolean(string='Is a Customer', default=True, help="Check this box if this contact is a customer. It can be selected in sales orders.") diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index ac44e451bbb..2d92a283c31 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -385,9 +385,6 @@ - - -