12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # -*- coding: utf-8 -*-
- from openerp.http import request
- _MODEL = 'account.move'
- '''
- Create account move
- '''
- def create_account_move(invoice_id, invoice_move_lines):
- invoice = request.env['account.invoice'].browse(invoice_id)
- accounting_partner = request.env['res.partner']._find_accounting_partner(invoice.partner_id)
- move_line_values = [(0, 0, invoice.line_get_convert(line, accounting_partner.id, invoice.date_invoice)) for line in invoice_move_lines]
- move_line_values = invoice.group_lines(invoice_move_lines, move_line_values)
- move_line_values = invoice.finalize_invoice_move_lines(move_line_values)
- ctx = dict(request.context, lang=invoice.partner_id.lang, company_id=invoice.company_id.id)
- period = invoice.period_id
- if not period:
- period = period.with_context(ctx).find(invoice.date_invoice)[:1]
- if period:
- for line in move_line_values:
- line[2]['period_id'] = period.id
- ctx['invoice'] = invoice
- ctx_nolang = ctx.copy()
- ctx_nolang.pop('lang', None)
- account_move = request.env[_MODEL].with_context(ctx_nolang).create({
- 'ref': invoice.reference or invoice.name,
- 'line_id': move_line_values,
- 'journal_id': invoice.journal_id.id,
- 'date': invoice.date_invoice,
- 'narration': invoice.comment,
- 'company_id': invoice.company_id.id,
- 'period_id': period.id
- })
- invoice.with_context(ctx).write({
- 'move_id': account_move.id,
- 'period_id': account_move.period_id.id,
- 'move_name': account_move.name,
- })
- account_move.post()
- return account_move
|