Hi guys
Im trying to override odoo 9 sale.order create method, so that only products belonging to the same category can be sold:
from openerp import api
from openerp.osv import fields, osv
import vatnumber
from openerp.tools.translate import _
from openerp.exceptions import UserError, ValidationError
class sale_order(osv.osv):
_inherit = "sale.order"
@api.model
def create(self, vals):
product_ids=[]
product_categ_ids=[]
if vals.get('name', 'New') == 'New':
if vals.get('order_line'):
order_lines_vals=vals['order_line']
for l in order_lines_vals:
for value in l:
if isinstance(value, dict):
product_ids.append(value['product_id'])
if product_ids:
for j in self.env['product.product'].browse(product_ids):
product_categ_ids.append(j.product_tmpl_id.categ_id.id)
product_categ_ids=list(set(product_categ_ids))
if len(product_categ_ids) > 1:
raise ValidationError(_("Is not possible to add products belonging to more than one category!"))
result = super(SaleOrder, self).create(vals)
return result
Everything works fine except the error, record is not created but no popup window error is displayed,,,,,does anyone know how to handle correctly with exceptions in odoo 9?
Thanks in advance