请教数据纪录实时保存的问题
-
我在修改sales order模块,遇到了一个问题,这个模板下,每此新建订单,会自动生成一个订单号码,此号码是流水号,依次递增,如SO001,SO002等
我现在在确认订单函数中增加了一段代码,如下:<br />if body_text1[0]['amount_total']==0.0:<br /> raise osv.except_osv(_('错误 !'),<br /> _('订单总金额为零,请确认已选择产品或已计算订单总金额'))<br /> return False<br />
这段代码的意思是,如果订单总金额为零,则不能继续执行,用这段代码控制用户忘记选择产品或者忘记计算总金额。
现在遇到的问题是,如果用户是忘记选择产品,而直接点击了“订单确认”,那么弹出错误提示后,在重新选择产品时,会提示“订单号已存在”,也就是说刚才的订单已经保存,此时手动修改订单号,可以继续。
请问这个问题应如何解决呢?
非常感谢! -
兄弟你贴出的代码与 “订单号已存在” 错误没有什么关联,问题应该在你的订单号定制部分的代码。
-
谢谢大家,不过还是有问题需要请教。
我在create中做判断,在新建订单明细的时候就提示错误了,导致无法添加订单明细,代码如下:<br />def create(self, cr, uid, vals, context={}):<br /> if not 'order_line' in vals or not vals['order_line']: <br /> raise osv.except_osv(_('错误 !'),<br /> _('订单总金额为零,请确认已选择产品'))<br /> return False<br /> return super(sales_order,self).create(cr, uid, vals, context)<br />
我想这个问题应该是在新建订单明细的时候,就执行了create动作,但是我是希望我点“确认订单”的时候再判断order_line的情况,请问这时我应该如何修改create函数呢?
暂时有另外一个解决办法,在确认订单时:<br />if get_order_line==[]:<br /> raise osv.except_osv(_('错误 !'),<br /> _('订单总金额为零,请确认已选择产品'))<br /> return False<br />
我之前是判断amount_total,改成判断order_line就没有问题了。