Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
10896 Lượt xem

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.
Ảnh đại diện
Huỷ bỏ

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

Câu trả lời hay nhấ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
Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks

Câu trả lời hay nhấ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)
Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks

Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 7 18
4015
4
thg 12 15
11564
0
thg 5 20
3027
2
thg 12 18
27563
2
thg 6 15
3916