İçereği Atla
Menü
Bu soru işaretlendi
3 Cevaplar
10904 Görünümler

create 2 new fields in sale order and invoice lines as  “Order Type” and “Staff”.  When Creating Customer Invoice, pass the value of “Order Type”, “Staff” from SO to the corresponding fields in all invoice lines..

class SaleOrderForm(models.Model):
     _inherit = "sale.order"
     order_type = fields.Many2one('account.analytic.account', string='Order Type)
     staff = fields.Many2one('account.analytic.account', string='Staff', required=True)

     def _prepare_invoice(self, cr, uid, order, lines, context=None):
            self.pool.get('account.invoice.line').write(cr, uid, lines, {'order_type': order.order_type.id, 'staff': order.staff.id})
        return super(so_form, self)._prepare_invoice(cr, uid, order, lines, context=None)

This is a working code. but i just need it in new api. please help me.. Thanks in advance.
Avatar
Vazgeç

I don't no value of lines, ids invoice_line [1,2,3,4] or object invoice_line (account.invoice.line(1,2,3,4))?

En İyi Yanıt

Try this, It will work..


@api.modeldef _prepare_invoice(self, order, lines):
 print "****************Invoice Gen*****************"
print order.order_type.name
print lines
res = super(so_form, self)._prepare_invoice(order, lines)
if lines:
    for i in lines:
        self.env['account.invoice.line'].search([('id', '=', i)]).write({'order_type': order.order_type.id, 'staff':order.staff.id})
return res
Avatar
Vazgeç
Üretici

Thanks

En İyi Yanıt

Try this :

@api.multi
def _prepare_invoice(self, order, lines):
    self.env['account.invoice.line'].write(self._cr, self._uid, lines, {'order_type': order.order_type.id, 'staff': order.staff.id})
 return super(so_form, self)._prepare_invoice(order, lines)
Avatar
Vazgeç
Üretici

Thanks

İlgili Gönderiler Cevaplar Görünümler Aktivite
3
Tem 18
4016
4
Ara 15
11568
0
May 20
3027
2
Ara 18
27563
2
Haz 15
3919