Call the function for the field price_unit
in the view xml
<xpath expr="//field[@name='price_unit']" position="attributes">
<attribute name="on_change">check_margin(product_id,price_unit)</attribute>
</xpath>
and in the class, define the function to process it.
def check_margin(self, cr, uid, ids, product_id, unit_price, context=None):
res = {}
warning = {}
sale_price = None
if product_id:
sale_price = self.pool.get('product.product').browse(cr, uid,product_id).list_price
if unit_price is None:
pass
elif unit_price < sale_price:
warning = {
'title': _("Warning"),
'message': _('Unit price given, is less than the sales price of the selected product. Please change (or contact your sales manager to change) the sales price of the selected product.'),
}
res = {'value': {'price_unit':sale_price}}
elif unit_price >= sale_price:
res = {'value': {'price_unit':unit_price}}
pass
return {'value': res.get('value'), 'warning':warning}