Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
3 Răspunsuri
10900 Vizualizări

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.
Imagine profil
Abandonează

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))?

Cel mai bun răspuns

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
Imagine profil
Abandonează
Autor

Thanks

Cel mai bun răspuns

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)
Imagine profil
Abandonează
Autor

Thanks

Related Posts Răspunsuri Vizualizări Activitate
3
iul. 18
4016
4
dec. 15
11568
0
mai 20
3027
2
dec. 18
27563
2
iun. 15
3919