カスタムの販売見積レポートで、数量が 0 の製品を表示したいので、数量が 0 に設定された製品の販売注文ラインを作成しました。正常に機能し、販売見積レポートに表示されます。
しかし、同じ販売見積を販売注文に確認すると、OpenERP は次のメッセージをスローします。
「データが不十分です! 調達オーダーの数量を確認してください。0 以下であってはなりません!」
一部の数量が 0 に設定されている注文を確認するにはどうすればよいですか?
カスタムの販売見積レポートで、数量が 0 の製品を表示したいので、数量が 0 に設定された製品の販売注文ラインを作成しました。正常に機能し、販売見積レポートに表示されます。
しかし、同じ販売見積を販売注文に確認すると、OpenERP は次のメッセージをスローします。
「データが不十分です! 調達オーダーの数量を確認してください。0 以下であってはなりません!」
一部の数量が 0 に設定されている注文を確認するにはどうすればよいですか?
まず、 Procurementを継承してから、カスタムモジュールのaction_confirmメソッドをオーバーライドする必要があります。
調達.pyで、320行目の「defaction_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