2013-01-05 2 views
1

В моем специальном отчете о продаже предложения я хочу показать некоторые товары с количеством 0 и поэтому создал строки заказа на поставку для некоторых продуктов с установленными в них количествами 0. Он отлично работает и отображается в отчете о продажах.Подтвердите продажу котировки в заказе на продажу с некоторыми количествами, установленными в 0

Но когда я подтверждаю, что же продажа котировка в OpenERP продажа заказа выдает следующее сообщение:

«Данные Недостаточный Пожалуйста, проверьте количество в порядке закупок (ы), оно не должно быть 0 или меньше !»

Как я могу подтвердить заказ с некоторыми величинами, установленными в 0?

ответ

1

Сначала вы должны наследовать закупок, а затем переопределить action_confirm метод в пользовательском модуле.

В procurement.py найдите «def action_confirm()» в строке: 320. Скопируйте и пропустите весь метод и удалите те строки, которые вызывают исключение.

Надеюсь, что это решит вашу проблему.

Thank you.

+0

Ваш метод приятный и чистый, и я должен действительно поупражняться в этом. Однако мне потребовалось срочное решение, и я изменил файл purchase.py в соответствии с моими требованиями, а затем перекомпилировал его. Теперь он отлично работает. Но я попробую метод наследования, который является лучшим способом сделать это IMO. – CloseISQ

+0

Да, вы должны сделать это в своем модуле, а не модифицировать код модуля. Если ваша проблема решена, вы должны принять мои анны или если у вас есть лучшее решение, вы должны поделиться им. Спасибо. –

+0

Спасибо, принят! – CloseISQ

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 
+0

Благодарим за бит кода, что я уже понял, изменив product_qty <= 0.00 на product_qty <0.00. То, что я не могу понять, - это новое определение определения, которое требуется для наследования из представления закупки, и если мне нужно создать xml ... – CloseISQ

+0

Если вы хотите изменить представление, вам необходимо наследовать представление в своем. xml, иначе вам не нужно наследовать представление. –