Código fonte para l10n_br_stock_account.wizard.stock_invoice_onshipping
# -*- coding: utf-8 -*-
# Copyright (C) 2009 Renato Lima - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import ast
from openerp import models, fields, api, _
from openerp.exceptions import Warning as UserError
[documentos]class StockInvoiceOnShipping(models.TransientModel):
_inherit = 'stock.invoice.onshipping'
journal_id = fields.Many2one(
'account.journal', 'Destination Journal',
domain="[('type', '=', journal_type)]")
fiscal_category_journal = fields.Boolean(
u'Diário da Categoria Fiscal', default=True)
@api.multi
[documentos] def open_invoice(self):
context = dict(self.env.context)
for wizard in self:
fiscal_document_code = (wizard.journal_id.company_id.
product_invoice_id.code)
context.update(
{'fiscal_document_code': fiscal_document_code})
result = super(StockInvoiceOnShipping,
self.with_context(context)).open_invoice()
if result.get('context'):
super_context = ast.literal_eval(result.get('context'))
super_context.update(context)
result['context'] = str(super_context)
return result
@api.multi
[documentos] def create_invoice(self):
context = dict(self.env.context)
active_ids = context.get('active_ids', [])
for picking in self.env['stock.picking'].browse(active_ids):
journal_id = picking.fiscal_category_id.property_journal
fiscal_document_code = picking.company_id.product_invoice_id.code
context.update(
{'fiscal_document_code': fiscal_document_code})
if not journal_id:
raise UserError(
_('Invalid Journal!'),
_('There is not journal defined for this company: %s in '
'fiscal operation: %s !') %
(picking.company_id.name,
picking.fiscal_category_id.name))
self.write({'journal_id': journal_id.id})
result = super(StockInvoiceOnShipping,
self.with_context(context)).create_invoice()
return result