From c168c71d419b303c6b2dded7e7ac0d3a3b8aa074 Mon Sep 17 00:00:00 2001 From: Mqdd Date: Tue, 6 Jan 2026 09:28:48 +0700 Subject: vendor pricelist validation --- fixco_custom/models/__init__.py | 3 ++- fixco_custom/models/product_supplierinfo.py | 37 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 fixco_custom/models/product_supplierinfo.py diff --git a/fixco_custom/models/__init__.py b/fixco_custom/models/__init__.py index 393efeb..47a4176 100755 --- a/fixco_custom/models/__init__.py +++ b/fixco_custom/models/__init__.py @@ -35,4 +35,5 @@ from . import token_log from . import purchase_pricelist_wizard from . import stock_picking_return from . import account_move_reversal -from . import upload_cancel_picking \ No newline at end of file +from . import upload_cancel_picking +from . import product_supplierinfo diff --git a/fixco_custom/models/product_supplierinfo.py b/fixco_custom/models/product_supplierinfo.py new file mode 100644 index 0000000..2ff911f --- /dev/null +++ b/fixco_custom/models/product_supplierinfo.py @@ -0,0 +1,37 @@ +from decimal import DefaultContext +from odoo import models, fields, api +from odoo import tools +from odoo.exceptions import UserError + +class ProductSupplierinfo(models.Model): + _inherit = "product.supplierinfo" + + @api.constrains('name', 'product_tmpl_id') + def _check_unique_supplierinfo(self): + for record in self: + if not record.name or not record.product_tmpl_id: + continue + + domain = [ + ('name', '=', record.name.id), + ('product_tmpl_id', '=', record.product_tmpl_id.id), + ('id', '!=', record.id), + ] + + if self.search_count(domain): + raise UserError( + "A Vendor Pricelist with the same supplier and product already exists." + ) + + + # @api.model + # def create(self, vals): + # record = super(ProductSupplierinfo, self).create(vals) + # self._check_unique_supplierinfo_on_vals(record) + # return record + + # def write(self, vals): + # res = super(ProductSupplierinfo, self).write(vals) + # for record in self: + # self._check_unique_supplierinfo_on_vals(record) + # return res -- cgit v1.2.3