在我的自定义销售报价报告中,我想显示一些数量为 0 的产品,因此为一些数量设置为 0 的产品创建了销售订单行。它工作正常并显示在销售报价报告中。
但是当我在销售订单中确认相同的销售报价时,OpenERP 会抛出以下消息:
“数据不足!请检查采购订单中的数量,不能为0或更少!”
如何确认一些数量设置为 0 的订单?
在我的自定义销售报价报告中,我想显示一些数量为 0 的产品,因此为一些数量设置为 0 的产品创建了销售订单行。它工作正常并显示在销售报价报告中。
但是当我在销售订单中确认相同的销售报价时,OpenERP 会抛出以下消息:
“数据不足!请检查采购订单中的数量,不能为0或更少!”
如何确认一些数量设置为 0 的订单?
首先,您必须继承采购,然后在您的自定义模块中覆盖action_confirm方法。
在purchase.py 中,在第 320 行找到“def action_confirm ()”。复制并粘贴整个方法并删除那些引发异常的行。
希望这能解决您的问题。
谢谢你。
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