在我的自定義銷售報價單報表中,我想展示一些0數量的產品,因此已爲某些產品創建了銷售訂單行,其數量設置爲0。它工作正常,並在銷售報價單中顯示。確認將銷售報價轉換成銷售訂單,其中某些數量設置爲0
但是,當我確認相同的銷售報價爲銷售訂單的OpenERP拋出以下消息:
「數據不足 請您在採購訂單(S)的數量,它不應該是小於或等於0 !」
如何確認一些數量設置爲0的訂單?
在我的自定義銷售報價單報表中,我想展示一些0數量的產品,因此已爲某些產品創建了銷售訂單行,其數量設置爲0。它工作正常,並在銷售報價單中顯示。確認將銷售報價轉換成銷售訂單,其中某些數量設置爲0
但是,當我確認相同的銷售報價爲銷售訂單的OpenERP拋出以下消息:
「數據不足 請您在採購訂單(S)的數量,它不應該是小於或等於0 !」
如何確認一些數量設置爲0的訂單?
首先,您必須繼承採購,然後在自定義模塊中覆蓋action_confirm方法。
在procurement.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
感謝您的代碼位,我已經通過將product_qty <= 0.00更改爲product_qty <0.00來解決這個問題。我無法弄清楚的是從採購視圖繼承的新視圖定義以及是否還必須創建xml ... – CloseISQ
如果您想更改視圖,那麼您需要繼承視圖。 xml,否則你不需要繼承視圖。 – 2013-01-08 08:54:59
你的方法很好,乾淨,我應該真的有一個去吧。不過,我需要一個緊急的解決方案,我修改了procurement.py文件以符合我的要求,然後重新編譯它。現在它工作正常。但我會嘗試繼承方法,這是一個更好的方式來做IMO。 – CloseISQ
是的,你應該在你的模塊中做,而不是修改核心模塊的代碼。如果你的問題解決了,那麼你應該接受我的答案,或者如果你有更好的解決方案,那麼你應該分享它。謝謝。 –
謝謝,接受! – CloseISQ