This question has been flagged
1 Reply
3559 Views

While we make quotations to customers, don't allow users to quote below the sales price of products. How can we achieve this? Please help me. Am using v7.. Thanks in advance

Avatar
Discard
Author Best Answer

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}
Avatar
Discard