2015-07-17 11 views
0

Мне нужно переопределить встроенный метод _prepare_invoice из sale.py.переопределить _prepare_invoice (self, cr, uid, order, lines, context = None) в sale.py

, но я получаю эту ошибку

ValueError: "'builtin_function_or_method' object is not iterable" while evaluating 
u'action_invoice_create()' 

Мне нужно переопределить метод, чтобы создать новый счет-фактуру.

File "/home/cybrosys/Desktop/odoo-8.0-20150624/addons/Ship/Ship.py", line 104, in _prepare_invoice 
    sal_rec = self.browse(cr,uid,id,context=context) 
    File "/home/cybrosys/Desktop/odoo-8.0-20150624/openerp/api.py", line 241, in wrapper 
    return old_api(self, *args, **kwargs) 
    File "/home/cybrosys/Desktop/odoo-8.0-20150624/openerp/models.py", line 5222, in browse 
    ids = _normalize_ids(arg) 
    File "/home/cybrosys/Desktop/odoo-8.0-20150624/openerp/models.py", line 6090, in _normalize_ids 
    return tuple(arg) 

ответ

1

метод ниже переопределить другой способ, основанный на различных API вызова

Для OpenERP 7,0

from openerp.osv import fields, osv 
class sale_order(osv.osv): 
    _inherit = 'sale.order' 

    def _prepare_invoice(self, cr, uid, order, lines, context=None): 
     res=super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context) 
     res.update({'delivery_note': order.partner_id.picking_warn_msg}) 
     return res 

Для Odoo 8.0 или более поздней версии

Если вы используете новый API в Odoo п вы должны следовать ниже пути

from openerp import models, fields, api, _ 
class sale_order(models.Model) 
    _inherit = 'sale.order' 
    @api.v7 
    def _prepare_invoice(self, cr, uid, order, lines, context=None): 
     res=super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context) 
     res.update({'delivery_note': order.partner_id.picking_warn_msg}) 
     return res 

Я надеюсь, что мой ответ может помочь вам :)

+0

привет, что sale_order внутри супер не работает –

+0

привет, это работает, и ошибка идет в ValueError: "Рез. партнер»объект не имеет атрибута" picking_warn_msg»при оценке u'action_invoice_create()» –

+0

в какой версии odoo 8.0 новый API или старый апи –