在我的自定义销售报价单中,我想显示一些数量为0的产品,因此为某些产品创建了销售订单行,其数量设置为0.它工作正常并显示在销售报价单中。
但是,当我确认销售订单中的相同销售报价时,OpenERP会抛出以下信息:
“数据不足! 请检查采购订单中的数量,不应该是0或更少!“
如何确认某些数量设置为0的订单?
答案 0 :(得分:1)
首先,您必须继承采购,然后覆盖自定义模块中的 action_confirm 方法。
在procurement.py中,在行上找到“def action_confirm()”:320。复制并遍历整个方法,并删除那些引发异常的行。
希望这能解决您的问题。
谢谢。
答案 1 :(得分:1)
class procurement_order(osv.osv):
_inherit = 'procurement.order'
def action_confirm(self, cr, uid, ids, context=None):
move_obj = self.pool.get('stock.move')
for procurement in self.browse(cr, uid, ids, context=context):
#if procurement.product_qty <= 0.00:
#raise osv.except_osv(_('Data Insufficient !'),_('Please check the quantity in procurement order(s), it should not be 0 or less!'))
if procurement.product_id.type in ('product', 'consu'):
if not procurement.move_id:
source = procurement.location_id.id
if procurement.procure_method == 'make_to_order':
source = procurement.product_id.product_tmpl_id.property_stock_procurement.id
id = move_obj.create(cr, uid, {
'name': procurement.name,
'location_id': source,
'location_dest_id': procurement.location_id.id,
'product_id': procurement.product_id.id,
'product_qty': procurement.product_qty,
'product_uom': procurement.product_uom.id,
'date_expected': procurement.date_planned,
'state': 'draft',
'company_id': procurement.company_id.id,
'auto_validate': True,
})
move_obj.action_confirm(cr, uid, [id], context=context)
self.write(cr, uid, [procurement.id], {'move_id': id, 'close_move': 1})
self.write(cr, uid, ids, {'state': 'confirmed', 'message': ''})
return True