Código fonte para l10n_br_sale.wizard.sale_make_invoice_advanced_percentage

# -*- coding: utf-8 -*-
#    KMEE, KM Enterprising Engineering
#    Copyright (C) 2014 - Michell Stuttgart Faria (<http://www.kmee.com.br>).
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from openerp import models


[documentos]class SaleAdvancePaymentInvoice(models.TransientModel): _inherit = 'sale.advance.payment.inv' def _get_line_qty(self, cr, uid, line, context=None): if (line.order_id.invoice_quantity == 'order'): if line.product_uos: return line.product_uos_qty or 0.0 return line.product_uom_qty def _get_line_uom(self, cr, uid, line, context=None): if (line.order_id.invoice_quantity == 'order'): if line.product_uos: return line.product_uos.id return line.product_uom.id def _prepare_advance_invoice_vals(self, cr, uid, ids, context=None): # Lista de campos result = super( SaleAdvancePaymentInvoice, self)._prepare_advance_invoice_vals( cr, uid, ids, context) if context is None: context = {} sale_obj = self.pool['sale.order'] wizard = self.browse(cr, uid, ids[0], context) # get invoice type payment_type = wizard.advance_payment_method for res in result: for sale in sale_obj.browse(cr, uid, [res[0]], context=context): # Verificamos o tipo de fatura if payment_type == 'percentage': percent = wizard.amount / 100.0 else: percent = wizard.amount / sale.amount_gross # Aux list of invoice list_invoice = [] # Invoice dict in res invoice_dict = res[1]['invoice_line'][0][2] for order_line in sale.order_line: # Objeto sale.order.line order_line_obj = self.pool.get('sale.order.line') res_aux = {} res_aux = (order_line_obj. l10n_br_sale_prepare_order_line_invoice_line( cr, uid, order_line, res_aux, context)) res_aux = order_line_obj.\ l10n_br_sale_product_prepare_order_line_invoice_line( cr, uid, order_line, res_aux, context) tax_list_id = [] uosqty = self._get_line_qty( cr, uid, order_line, context=context) uos_id = self._get_line_uom( cr, uid, order_line, context=context) # Add the ID of tax of order line for tax in order_line.tax_id: tax_list_id.append(tax.id) # create the invoice inv_line_values = { 'name': order_line.name, 'origin': invoice_dict['origin'], 'account_id': invoice_dict['account_id'], 'price_unit': order_line.price_unit, 'quantity': (percent * uosqty) or 1.0, 'discount': invoice_dict['discount'], 'uos_id': uos_id, 'product_id': order_line.product_id.id, 'invoice_line_tax_id': [(6, 0, tax_list_id)], 'account_analytic_id': invoice_dict.get( 'account_analytic_id'), 'fiscal_category_id': res_aux.get( 'fiscal_category_id'), 'fiscal_position': res_aux.get('fiscal_position'), 'cfop_id': res_aux.get('cfop_id'), } list_invoice.append((0, 0, inv_line_values)) res[1]['invoice_line'] = list_invoice res[1]['comment'] = invoice_dict['name'] return result