From c9922b9d266940a11e02d8e2309cd3ab28742fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 25 Oct 2010 21:08:39 -0200 Subject: [PATCH 0001/1549] [REF] extracted l10n_br_base, l10n_sale and l10n_stock from l10n_br; renamed l10n_br into 10n_br_account. BE CAREFFUL WITH MIGRATIONS, HACK YOUR ir.model.data, XML files and module dependencies first!! --- l10n_br_account/__init__.py | 27 + l10n_br_account/__openerp__.py | 53 ++ l10n_br_account/account.py | 70 ++ .../account_fiscal_position_rule.py | 45 ++ .../account_fiscal_position_rule_view.xml | 34 + l10n_br_account/account_invoice_view.out.xml | 0 l10n_br_account/account_invoice_view.xml | 165 +++++ l10n_br_account/account_view.xml | 18 + .../data/account.account.template.csv | 639 ++++++++++++++++++ l10n_br_account/data/account.account.type.csv | 7 + .../data/account.tax.code.template.csv | 14 + l10n_br_account/data/account_tax_template.xml | 536 +++++++++++++++ l10n_br_account/data/l10n_br.cst.csv | 100 +++ .../data/l10n_br_chart_template.xml | 27 + l10n_br_account/invoice.py | 508 ++++++++++++++ l10n_br_account/l10n_br.py | 142 ++++ l10n_br_account/l10n_br_report.xml | 6 + l10n_br_account/l10n_br_view.xml | 316 +++++++++ l10n_br_account/partner.py | 33 + l10n_br_account/partner_view.xml | 18 + l10n_br_account/security/ir.model.access.csv | 8 + 21 files changed, 2766 insertions(+) create mode 100644 l10n_br_account/__init__.py create mode 100644 l10n_br_account/__openerp__.py create mode 100644 l10n_br_account/account.py create mode 100644 l10n_br_account/account_fiscal_position_rule.py create mode 100644 l10n_br_account/account_fiscal_position_rule_view.xml create mode 100644 l10n_br_account/account_invoice_view.out.xml create mode 100644 l10n_br_account/account_invoice_view.xml create mode 100644 l10n_br_account/account_view.xml create mode 100644 l10n_br_account/data/account.account.template.csv create mode 100644 l10n_br_account/data/account.account.type.csv create mode 100644 l10n_br_account/data/account.tax.code.template.csv create mode 100644 l10n_br_account/data/account_tax_template.xml create mode 100644 l10n_br_account/data/l10n_br.cst.csv create mode 100644 l10n_br_account/data/l10n_br_chart_template.xml create mode 100644 l10n_br_account/invoice.py create mode 100644 l10n_br_account/l10n_br.py create mode 100644 l10n_br_account/l10n_br_report.xml create mode 100644 l10n_br_account/l10n_br_view.xml create mode 100644 l10n_br_account/partner.py create mode 100644 l10n_br_account/partner_view.xml create mode 100644 l10n_br_account/security/ir.model.access.csv diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py new file mode 100644 index 000000000000..1a96a14a3d3a --- /dev/null +++ b/l10n_br_account/__init__.py @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +import l10n_br +import partner +import account +import invoice +import account_fiscal_position_rule + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py new file mode 100644 index 000000000000..8f467830ea7d --- /dev/null +++ b/l10n_br_account/__openerp__.py @@ -0,0 +1,53 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +{ + 'name' : 'Brazilian Localization', + 'description' : 'Brazilian Localization', + 'category' : 'Localisation/Account Charts', + 'author' : 'OpenERP Brasil', + 'website' : 'http://openerpbrasil.org', + 'version' : '0.6', + 'depends' : [ + 'base', + 'account', + 'account_chart', + 'account_fiscal_position_rule', + 'account_product_fiscal_classification' + ], + 'init_xml': [ + 'data/account.account.type.csv', + 'data/account.tax.code.template.csv', + 'data/account.account.template.csv', +# 'data/l10n_br.cst.csv', + 'data/l10n_br_chart_template.xml', + 'data/account_tax_template.xml', + ], + 'update_xml' : [ + 'l10n_br_view.xml', + 'partner_view.xml', + 'account_invoice_view.xml', + 'account_view.xml', + 'account_fiscal_position_rule_view.xml', + 'security/ir.model.access.csv', + ], + 'installable': True +} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py new file mode 100644 index 000000000000..827835389ebb --- /dev/null +++ b/l10n_br_account/account.py @@ -0,0 +1,70 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +import time +from datetime import datetime, timedelta +from dateutil.relativedelta import relativedelta +from operator import itemgetter + +import netsvc +import pooler +from osv import fields, osv +import decimal_precision as dp +from tools.misc import currency +from tools.translate import _ +from tools import config + + +############################################################################## +# Cadastro de Impostos Personalizado +############################################################################## +class account_tax(osv.osv): + _inherit = 'account.tax' + + _columns = { + 'tax_discount': fields.boolean('Descontar Imposto do Preço', help="Marque isso se este imposto é descontado no preço, exemplo: (ICMS, PIS e etc.)."), + } + + def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None): + """ + RETURN: { + 'total': 0.0, # Total without taxes + 'total_included: 0.0, # Total with taxes + 'total_tax_discount: 0.0, # Total Tax Discounts + 'taxes': [] # List of taxes, see compute for the format + } + """ + + tax_obj = self.pool.get('account.tax') + result = super(account_tax, self).compute_all(cr, uid, taxes, price_unit, quantity, address_id, product, partner) + totaldc = 0.0 + for tax in result['taxes']: + tax_brw = tax_obj.browse(cr, uid, tax['id']) + if tax_brw.tax_discount: + totaldc += tax['amount'] + + return { + 'total': result['total'], + 'total_included': result['total_included'], + 'taxes': result['taxes'], + 'total_tax_discount': totaldc + } + +account_tax() + diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py new file mode 100644 index 000000000000..6f43d1824be8 --- /dev/null +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -0,0 +1,45 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import osv, fields + +############################################################################## +# Modelo de Regras de Posições Fiscais Personalizadas +############################################################################## +class account_fiscal_position_rule_template(osv.osv): + _inherit = 'account.fiscal.position.rule.template' + _columns = { + 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), + 'use_picking' : fields.boolean('Use in Picking'), + } + +account_fiscal_position_rule_template() + +class account_fiscal_position_rule(osv.osv): + _inherit = 'account.fiscal.position.rule' + _columns = { + 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), + 'use_picking' : fields.boolean('Use in Picking'), + } + +account_fiscal_position_rule() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml new file mode 100644 index 000000000000..1edbe10e3432 --- /dev/null +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -0,0 +1,34 @@ + + + + + + l10n_br.fiscal.position.rule.template.form + account.fiscal.position.rule.template + + + + + + + + + + + + + l10n_br.fiscal.position.rule.form + account.fiscal.position.rule + + + + + + + + + + + + + \ No newline at end of file diff --git a/l10n_br_account/account_invoice_view.out.xml b/l10n_br_account/account_invoice_view.out.xml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml new file mode 100644 index 000000000000..8f1f23249231 --- /dev/null +++ b/l10n_br_account/account_invoice_view.xml @@ -0,0 +1,165 @@ + + + + + + + l10n_br.invoice.form + account.invoice + + + + + + + + + + + + + + + + l10n_br.invoice.form1 + account.invoice + + + + + + + + + l10n_br.invoice.form2 + account.invoice + + + + + + + + + + + + l10n_br.invoice.form3 + account.invoice + + + + + + + + + + l10n_br.invoice.form4 + account.invoice + + + + + + + + + + + l10n_br.invoice.supplier.form + account.invoice + + + + + + + + + + + + + + + l10n_br.invoice.supplier.form1 + account.invoice + + + + + + + + + l10n_br.invoice.supplier.form2 + account.invoice + + + + + + + + + + + + l10n_br.invoice.supplier.form3 + account.invoice + + + + + + + + + + + l10n_br.invoice.line.form + account.invoice.line + + + + + + + + + + l10n_br.invoice.line.form1 + account.invoice.line + + + + + + + + + + l10n_br.invoice.line.tree1 + account.invoice.line + + + + + + + + + + l10n_br.invoice.line.form2 + account.invoice.line + + + + + + + + + + diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml new file mode 100644 index 000000000000..4464f74e09d8 --- /dev/null +++ b/l10n_br_account/account_view.xml @@ -0,0 +1,18 @@ + + + + + + + l10n_br.tax.form + account.tax + + + + + + + + + + \ No newline at end of file diff --git a/l10n_br_account/data/account.account.template.csv b/l10n_br_account/data/account.account.template.csv new file mode 100644 index 000000000000..5657769538cf --- /dev/null +++ b/l10n_br_account/data/account.account.template.csv @@ -0,0 +1,639 @@ +"id","code","name","parent_id:id","type","user_type:id","reconcile" +"account_template_1","0","Plano de Contas Padrão","","view","ativo","True" +"account_template_2","1","ATIVO","account_template_1","view","ativo","True" +"account_template_3","1.1","CIRCULANTE","account_template_2","view","ativo","True" +"account_template_4","1.1.01","DISPONIBILIDADES","account_template_3","view","ativo","True" +"account_template_5","1.1.01.01","CAIXA","account_template_4","view","ativo","True" +"account_template_6","1.1.01.01.0001","Caixa Geral","account_template_5","receivable","ativo","True" +"account_template_7","1.1.01.01.0002","Fundo Fixo","account_template_5","receivable","ativo","True" +"account_template_8","1.1.01.02","BANCOS ","account_template_4","view","ativo","True" +"account_template_9","1.1.01.02.0001","Banco C/ Movimento","account_template_8","receivable","ativo","True" +"account_template_10","1.1.01.03","VALORES MOBILIÁRIOS-MERC.CAP.INTERNOS","account_template_4","view","ativo","True" +"account_template_11","1.1.01.03.0001","Aplicações Nacionais","account_template_10","receivable","ativo","True" +"account_template_12","1.1.01.04","TITULOS DE CAPITALIZAÇÃO","account_template_4","view","ativo","True" +"account_template_13","1.1.01.04.0001","Banco Título de Capitalização","account_template_12","receivable","ativo","True" +"account_template_14","1.1.02","CRÉDITOS","account_template_3","view","ativo","True" +"account_template_15","1.1.02.01","CLIENTES NACIONAIS","account_template_14","view","ativo","True" +"account_template_16","1.1.02.01.0001","Clientes Nacionais","account_template_15","receivable","ativo","True" +"account_template_17","1.1.02.02","CLIENTES NO EXTERIOR","account_template_14","view","ativo","True" +"account_template_18","1.1.02.02.0001","Clientes Internacionais","account_template_17","receivable","ativo","True" +"account_template_19","1.1.02.03","OUTROS VALORES A RECEBER","account_template_14","view","ativo","True" +"account_template_20","1.1.02.03.0001","Outras Contas a Receber","account_template_19","receivable","ativo","True" +"account_template_21","1.1.02.04","DUPLICATAS CONTA VINCULADA","account_template_14","view","ativo","True" +"account_template_22","1.1.02.04.0001","Banco Conta Garantida","account_template_21","receivable","ativo","True" +"account_template_23","1.1.02.05","DUPLICATAS CAUCIONADAS","account_template_14","view","ativo","True" +"account_template_24","1.1.02.05.0001","Banco Conta Caucionada","account_template_23","receivable","ativo","True" +"account_template_25","1.1.02.06","CHEQUES DEVOLVIDOS","account_template_14","view","ativo","True" +"account_template_26","1.1.02.06.0001","Cheques Devolvidos","account_template_25","receivable","ativo","True" +"account_template_27","1.1.02.07","ADIANTAMENTOS","account_template_14","view","ativo","True" +"account_template_28","1.1.02.07.0002","Adiantamento de Salários","account_template_27","receivable","ativo","True" +"account_template_29","1.1.02.07.0003","Adiantamento Despesa de Viagem","account_template_27","receivable","ativo","True" +"account_template_30","1.1.02.07.0004","Adiantamento de Férias","account_template_27","receivable","ativo","True" +"account_template_31","1.1.02.07.0005","Adiantamento 13º Salário","account_template_27","receivable","ativo","True" +"account_template_32","1.1.02.07.0006","Adiantamento de Pro-Labore a Diretores","account_template_27","receivable","ativo","True" +"account_template_33","1.1.02.07.0001","Adiantamento de PIS a Empregados","account_template_27","receivable","ativo","True" +"account_template_34","1.1.02.08","ADIANTAMENTO A FORNECEDORES","account_template_14","view","ativo","True" +"account_template_35","1.1.02.08.0001","Adiantamento a Fornecedor","account_template_34","receivable","ativo","True" +"account_template_36","1.1.02.09","IMPOSTOS E CONTRIBUIÇÕES A RECUPERAR","account_template_14","view","ativo","True" +"account_template_37","1.1.02.09.0001","CSLL a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_38","1.1.02.09.0002","CSLL a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" +"account_template_39","1.1.02.09.0003","COFINS a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_40","1.1.02.09.0004","COFINS a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" +"account_template_41","1.1.02.09.0008","Crédito COFINS Não-Cumulativo","account_template_36","receivable","ativo","True" +"account_template_42","1.1.02.09.0009","ICMS a Recuperar","account_template_36","receivable","ativo","True" +"account_template_43","1.1.02.09.0010","ICMS a Recup. s/Ativo Imobilizado","account_template_36","receivable","ativo","True" +"account_template_44","1.1.02.09.0012","IPI a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_45","1.1.02.09.0013","IPI a Compensar Pedido Restituição","account_template_36","receivable","ativo","True" +"account_template_46","1.1.02.09.0015","IRF s/Aplicações Financeiras","account_template_36","receivable","ativo","True" +"account_template_47","1.1.02.09.0016","IRRF a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_48","1.1.02.09.0017","IRPJ a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_49","1.1.02.09.0019","PIS a Recuperar/Compensar","account_template_36","receivable","ativo","True" +"account_template_50","1.1.02.09.0020","PIS a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" +"account_template_51","1.1.02.09.0022","PIS/COFINS/CSLL a Recuperar","account_template_36","receivable","ativo","True" +"account_template_52","1.1.02.09.0007","Crédito de PIS Não-Cumulativo","account_template_36","receivable","ativo","True" +"account_template_53","1.1.02.10","CRÉDITOS FISCAIS CSLL BASE CALC.NEGATIVA","account_template_14","view","ativo","True" +"account_template_54","1.1.02.10.0001","Base Negativa CSLL - Exerc. Anteriores","account_template_53","receivable","ativo","True" +"account_template_55","1.1.02.11","CRÉDITOS FISCAIS IRPJ-BASE CALC.NEGATIVA","account_template_14","view","ativo","True" +"account_template_56","1.1.02.11.0001","Base Negativa IRPJ - Exerc. Anteriores","account_template_55","receivable","ativo","True" +"account_template_57","1.1.03","ESTOQUES","account_template_3","view","ativo","True" +"account_template_58","1.1.03.01","ESTOQUE DE MERCADORIAS","account_template_57","view","ativo","True" +"account_template_59","1.1.03.01.0001","Insumos (Materiais Diretos)","account_template_58","receivable","ativo","True" +"account_template_60","1.1.03.01.0002","Material de Consumo-Almoxarifado","account_template_58","receivable","ativo","True" +"account_template_61","1.1.03.01.0003","Mercadorias para Revenda","account_template_58","receivable","ativo","True" +"account_template_62","1.1.03.01.0004","Produtos Acabados","account_template_58","receivable","ativo","True" +"account_template_63","1.1.03.01.0005","Produtos em Elaboração","account_template_58","receivable","ativo","True" +"account_template_64","1.1.03.02","(-) DEVOLUÇÕES DE COMPRAS","account_template_57","view","ativo","True" +"account_template_65","1.1.03.02.0001","Devoluções de Compras","account_template_64","receivable","ativo","True" +"account_template_66","1.1.03.03","TRANSFERÊNCIA DE MERCADORIAS","account_template_57","view","ativo","True" +"account_template_67","1.1.03.03.0001","Transferência de Mercadorias","account_template_66","receivable","ativo","True" +"account_template_68","1.1.03.04","ESTOQUE DE TERCEIROS EM NOSSO PODER","account_template_57","view","ativo","True" +"account_template_69","1.1.03.04.0001","Estoque de Terceiros em N/Poder","account_template_68","receivable","ativo","True" +"account_template_70","1.1.03.04.0002","Entrada P/Industrialização","account_template_68","receivable","ativo","True" +"account_template_71","1.1.03.04.0003","Entrada P/Conserto","account_template_68","receivable","ativo","True" +"account_template_72","1.1.03.04.0004","Entrada P/Demonstração","account_template_68","receivable","ativo","True" +"account_template_73","1.1.03.04.0005","Entrada P/Empréstimo","account_template_68","receivable","ativo","True" +"account_template_74","1.1.03.04.0006","Entrada em Consignação","account_template_68","receivable","ativo","True" +"account_template_75","1.1.03.04.0007","Entrada p/ Garantia","account_template_68","receivable","ativo","True" +"account_template_76","1.1.03.04.0008","Entrada p/ Locação","account_template_68","receivable","ativo","True" +"account_template_77","1.1.03.04.0009","Entrada em Comodato","account_template_68","receivable","ativo","True" +"account_template_78","1.1.03.05","NOSSO ESTOQUE EM PODER DE TERCEIROS","account_template_57","view","ativo","True" +"account_template_79","1.1.03.05.0001","N/Estoque em Poder de Terceiros","account_template_78","receivable","ativo","True" +"account_template_80","1.1.03.05.0002","Remessa P/Industrialização","account_template_78","receivable","ativo","True" +"account_template_81","1.1.03.05.0003","Remessa P/Conserto","account_template_78","receivable","ativo","True" +"account_template_82","1.1.03.05.0004","Remessa P/Demonstração","account_template_78","receivable","ativo","True" +"account_template_83","1.1.03.05.0005","Remessa P/Exposição","account_template_78","receivable","ativo","True" +"account_template_84","1.1.03.05.0006","Remessa P/Empréstimo","account_template_78","receivable","ativo","True" +"account_template_85","1.1.03.05.0007","Remessa em Consignação","account_template_78","receivable","ativo","True" +"account_template_86","1.1.03.05.0008","Remessa P/Locação","account_template_78","receivable","ativo","True" +"account_template_87","1.1.03.05.0009","Remessa em Garantia","account_template_78","receivable","ativo","True" +"account_template_88","1.1.03.06","(-) IMPOSTOS S/ESTOQUE DE TERCEIROS","account_template_57","view","ativo","True" +"account_template_89","1.1.03.06.0001","(-) ICMS s/Estoque de Terceiros","account_template_88","receivable","ativo","True" +"account_template_90","1.1.03.06.0002","(-) IPI s/Estoque de Terceiros","account_template_88","receivable","ativo","True" +"account_template_91","1.1.03.07","IMPORTAÇÕES EM ANDAMENTO","account_template_57","view","ativo","True" +"account_template_92","1.1.03.07.0001","D.I. nº 0000000-0 Importação","account_template_91","receivable","ativo","True" +"account_template_93","1.1.03.08","COMPRAS PARA ENTREGA FUTURA","account_template_57","view","ativo","True" +"account_template_94","1.1.03.08.0001","Compras p/Entrega Futura","account_template_93","receivable","ativo","True" +"account_template_95","1.1.04","DESPESAS DO EXERCÍCIO SEGUINTE","account_template_3","view","ativo","True" +"account_template_96","1.1.04.01","SEGUROS A APROPRIAR","account_template_95","view","ativo","True" +"account_template_97","1.1.04.01.0001","Seguros de Veículos","account_template_96","receivable","ativo","True" +"account_template_98","1.1.04.01.0002","Seguros Prédios/Bens/Estoques","account_template_96","receivable","ativo","True" +"account_template_99","1.1.04.01.0003","Seguros s/Lucros Cessantes","account_template_96","receivable","ativo","True" +"account_template_100","1.1.04.02","ASSINATURAS A APROPRIAR","account_template_95","view","ativo","True" +"account_template_101","1.1.04.02.0001","Assinaturas de Jornais/Boletins/Revistas","account_template_100","receivable","ativo","True" +"account_template_102","1.1.04.03","DESPESAS FINANCEIRAS A APROPRIAR","account_template_95","view","ativo","True" +"account_template_103","1.1.04.03.0001","Juros s/ Financiamentos a Apropriar","account_template_102","receivable","ativo","True" +"account_template_104","1.1.05","CONTAS RETIFICADORAS","account_template_3","view","ativo","True" +"account_template_105","1.1.05.01","(-) DUPLICATAS DESCONTADAS","account_template_104","view","ativo","True" +"account_template_106","1.1.05.01.0001","(-) Banco Conta - Duplicata Descontada","account_template_105","receivable","ativo","True" +"account_template_107","1.2","ATIVO NÃO CIRCULANTE","account_template_2","view","ativo","True" +"account_template_108","1.2.01","REALIZÁVEL A LONGO PRAZO","account_template_107","view","ativo","True" +"account_template_109","1.2.01.01","VALORES MOBILIÁRIOS-MERC.CAP.INTERNO","account_template_108","view","ativo","True" +"account_template_110","1.2.01.01.0001","Aplicações Nacionais","account_template_109","receivable","ativo","True" +"account_template_111","1.2.01.02","DÉBITOS DE SÓCIOS","account_template_108","view","ativo","True" +"account_template_112","1.2.01.02.0001","Sócio","account_template_111","receivable","ativo","True" +"account_template_113","1.2.01.03","EMPRÉSTIMOS A EMPRESAS LIGADAS","account_template_108","view","ativo","True" +"account_template_114","1.2.01.03.0001","Empresa Ligada","account_template_113","receivable","ativo","True" +"account_template_115","1.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_template_108","view","ativo","True" +"account_template_116","1.2.01.04.0001","Empréstimo de Terceiros","account_template_115","receivable","ativo","True" +"account_template_117","1.2.01.05","DEPÓSITOS JUDICIAIS","account_template_108","view","ativo","True" +"account_template_118","1.2.01.05.0001","Depósitos Judiciais","account_template_117","receivable","ativo","True" +"account_template_119","1.2.02","INVESTIMENTOS","account_template_107","view","ativo","True" +"account_template_120","1.2.02.01","PARTICIPAÇÕES SOCIETÁRIAS","account_template_119","view","ativo","True" +"account_template_121","1.2.02.01.0001","Participação Societárias","account_template_120","receivable","ativo","True" +"account_template_122","1.2.03","IMOBILIZADO - MATRIZ","account_template_107","view","ativo","True" +"account_template_123","1.2.03.01","IMOBILIZADO","account_template_122","view","ativo","True" +"account_template_124","1.2.03.01.0001","Máquinas e Equipamentos ","account_template_123","receivable","ativo","True" +"account_template_125","1.2.03.01.0002","Terrenos","account_template_123","receivable","ativo","True" +"account_template_126","1.2.03.01.0003","Ferramentas","account_template_123","receivable","ativo","True" +"account_template_127","1.2.03.01.0004","Modelos, Moldes e Matrizes","account_template_123","receivable","ativo","True" +"account_template_128","1.2.03.01.0005","Móveis e Utensílios","account_template_123","receivable","ativo","True" +"account_template_129","1.2.03.01.0006","Veículos","account_template_123","receivable","ativo","True" +"account_template_130","1.2.03.01.0007","Equipamentos de Informática","account_template_123","receivable","ativo","True" +"account_template_131","1.2.03.01.0008","Instalações","account_template_123","receivable","ativo","True" +"account_template_132","1.2.03.01.0009","Benfeitoria em Imóveis de Terceiros","account_template_123","receivable","ativo","True" +"account_template_133","1.2.03.01.0010","Direito de Uso Linhas Telefônicas","account_template_123","receivable","ativo","True" +"account_template_134","1.2.03.01.0011","Edifícios e Construções","account_template_123","receivable","ativo","True" +"account_template_135","1.2.03.02","CONSTRUÇÕES EM ANDAMENTO","account_template_122","view","ativo","True" +"account_template_136","1.2.03.02.0001","Imóvel","account_template_135","receivable","ativo","True" +"account_template_137","1.2.03.04","PARTICIPAÇÃO EM CONSÓRCIOS","account_template_122","view","ativo","True" +"account_template_138","1.2.03.04.0001","Consórcio","account_template_137","receivable","ativo","True" +"account_template_139","1.2.03.05","(-) DEPRECIAÇÃO ACUMULADA","account_template_122","view","ativo","True" +"account_template_140","1.2.03.05.0001","Deprec.de Máquinas e Equipamentos","account_template_139","receivable","ativo","True" +"account_template_141","1.2.03.05.0002","Deprec.de Modelos, Moldes e Matrizes","account_template_139","receivable","ativo","True" +"account_template_142","1.2.03.05.0003","Deprec.de Móveis e Utensílios","account_template_139","receivable","ativo","True" +"account_template_143","1.2.03.05.0004","Deprec.de Veículos","account_template_139","receivable","ativo","True" +"account_template_144","1.2.03.05.0005","Deprec.de Equip.de Informática","account_template_139","receivable","ativo","True" +"account_template_145","1.2.03.05.0006","Deprec.de Instalações","account_template_139","receivable","ativo","True" +"account_template_146","1.2.03.05.0007","Deprec.de Ferramentas","account_template_139","receivable","ativo","True" +"account_template_147","1.2.03.05.0008","Deprec.de Edificações","account_template_139","receivable","ativo","True" +"account_template_148","1.2.03.06","(-) AMORTIZAÇÃO ACUMULADA","account_template_122","view","ativo","True" +"account_template_149","1.2.03.06.0001","Amortiz.Benfeit.em Imóveis de Terceiros","account_template_148","receivable","ativo","True" +"account_template_150","1.2.03.06.0002","Amortiz.Direito Uso Linhas Telefônica","account_template_148","receivable","ativo","True" +"account_template_151","1.2.03.07","ICMS S/IMOBILIZADO-PARCELA NÃO CREDITADA","account_template_122","view","ativo","True" +"account_template_152","1.2.03.07.0001","ICMS s/ Imobilizado parc. não creditável","account_template_151","receivable","ativo","True" +"account_template_153","1.2.03.07.0002","(-) Amortização ICMS não creditado","account_template_151","receivable","ativo","True" +"account_template_154","1.2.04","IMOBILIZADO - FILIAL","account_template_107","view","ativo","True" +"account_template_155","1.2.04.01","IMOBILIZADO","account_template_154","view","ativo","True" +"account_template_156","1.2.04.01.0001","Máquinas e Equipamentos","account_template_155","receivable","ativo","True" +"account_template_157","1.2.04.01.0002","Terrenos","account_template_155","receivable","ativo","True" +"account_template_158","1.2.04.01.0003","Ferramentas","account_template_155","receivable","ativo","True" +"account_template_159","1.2.04.01.0004","Edifícios","account_template_155","receivable","ativo","True" +"account_template_160","1.2.04.01.0005","Móveis e Utensílios","account_template_155","receivable","ativo","True" +"account_template_161","1.2.04.01.0006","Veículos","account_template_155","receivable","ativo","True" +"account_template_162","1.2.04.01.0007","Equipamentos de Informática","account_template_155","receivable","ativo","True" +"account_template_163","1.2.04.01.0008","Instalações","account_template_155","receivable","ativo","True" +"account_template_164","1.2.04.02","(-) DEPRECIAÇÃO ACUMULADA - FILIAL","account_template_154","view","ativo","True" +"account_template_165","1.2.04.02.0001","Deprec.de Máquinas e Equipamentos","account_template_164","receivable","ativo","True" +"account_template_166","1.2.04.02.0003","Deprec.de Móveis e Utensílios","account_template_164","receivable","ativo","True" +"account_template_167","1.2.04.02.0004","Deprec.de Veículos","account_template_164","receivable","ativo","True" +"account_template_168","1.2.04.02.0005","Deprec.de Equip.de Informática","account_template_164","receivable","ativo","True" +"account_template_169","1.2.04.02.0006","Deprec.de Instalações","account_template_164","receivable","ativo","True" +"account_template_170","1.2.04.02.0007","Deprec.de Ferramentas","account_template_164","receivable","ativo","True" +"account_template_171","1.2.04.02.0008","Deprec.de Edifícios","account_template_164","receivable","ativo","True" +"account_template_172","1.2.04.03","(-) AMORTIZAÇÃO ACUMULADA - FILIAL","account_template_154","view","ativo","True" +"account_template_173","1.2.04.03.0001","Amortização Acumulada","account_template_172","receivable","ativo","True" +"account_template_174","1.2.05","BENS INTAGÍVEIS - MATRIZ","account_template_107","view","ativo","True" +"account_template_175","1.2.05.01","INTANGÍVEL","account_template_174","view","ativo","True" +"account_template_176","1.2.05.01.0001","Marcas e Patentes","account_template_175","receivable","ativo","True" +"account_template_177","1.2.05.01.0002","Softwares","account_template_175","receivable","ativo","True" +"account_template_178","1.2.05.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_template_174","view","ativo","True" +"account_template_179","1.2.05.02.0001","Amortiz.de Marcas e Patentes","account_template_178","receivable","ativo","True" +"account_template_180","1.2.05.02.0002","Amortização de Softwares","account_template_178","receivable","ativo","True" +"account_template_181","1.2.06","BENS INTANGÍVEIS - FILIAL","account_template_107","view","ativo","True" +"account_template_182","1.2.06.01","INTANGÍVEL","account_template_181","view","ativo","True" +"account_template_183","1.2.06.01.0001","Softwares","account_template_182","receivable","ativo","True" +"account_template_184","1.2.06.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_template_181","view","ativo","True" +"account_template_185","1.2.06.02.0001","Amortização de Softwares","account_template_184","receivable","ativo","True" +"account_template_186","1.2.07","TRANSFERÊNCIAS DE ATIVO IMOBILIZADO","account_template_107","view","ativo","True" +"account_template_187","1.2.07.01","TRANSFERÊNCIA DE ATIVO IMOBILIZADO","account_template_186","view","ativo","True" +"account_template_188","1.2.07.01.0001","Transferência de Ativo Imobilizado","account_template_187","receivable","ativo","True" +"account_template_189","1.2.08","DIFERIDO","account_template_107","view","ativo","True" +"account_template_190","1.2.08.01","DESPESAS PRÉ-INDUSTRIAIS","account_template_189","view","ativo","True" +"account_template_191","1.2.08.01.0001","Gastos Gerais de Implantação","account_template_190","receivable","ativo","True" +"account_template_192","1.2.08.01.0002","(-) Amortização Acumulada","account_template_190","receivable","ativo","True" +"account_template_193","2","PASSIVO","account_template_1","view","passivo","True" +"account_template_194","2.1","CIRCULANTE","account_template_193","view","passivo","True" +"account_template_195","2.1.01","OBRIGAÇÕES A CURTO PRAZO","account_template_194","view","passivo","True" +"account_template_196","2.1.01.01","FINANCIAMENTOS A CURTO PRAZO - SFN","account_template_195","view","passivo","True" +"account_template_197","2.1.01.01.0001","Banco Conta Empréstimo","account_template_196","payable","passivo","True" +"account_template_198","2.1.01.02","CHEQUES A COMPENSAR","account_template_195","view","passivo","True" +"account_template_199","2.1.01.02.0001","Banco Conta a Compensar","account_template_198","payable","passivo","True" +"account_template_200","2.1.01.03","LIMITE DE CRÉDITO CHEQUE ESPECIAL","account_template_195","view","passivo","True" +"account_template_201","2.1.01.03.0001","Banco Conta Limite","account_template_200","payable","passivo","True" +"account_template_202","2.1.02","FORNECEDORES ","account_template_194","view","passivo","True" +"account_template_203","2.1.02.01","FORNECEDORES NACIONAIS","account_template_202","view","passivo","True" +"account_template_204","2.1.02.01.0001","Fornecedores Nacionais","account_template_203","payable","passivo","True" +"account_template_205","2.1.02.02","FORNECEDORES ESTRANGEIROS","account_template_202","view","passivo","True" +"account_template_206","2.1.02.02.0001","Fornecedores Internacionais","account_template_205","payable","passivo","True" +"account_template_207","2.1.03","OBRIGAÇÕES TRABALHISTAS","account_template_194","view","passivo","True" +"account_template_208","2.1.03.01","FOLHA DE PAGAMENTO - EMPREGADOS","account_template_207","view","passivo","True" +"account_template_209","2.1.03.01.0001","Salários a Pagar","account_template_208","payable","passivo","True" +"account_template_210","2.1.03.01.0002","Férias a Pagar","account_template_208","payable","passivo","True" +"account_template_211","2.1.03.01.0003","Rescisões a Pagar","account_template_208","payable","passivo","True" +"account_template_212","2.1.03.01.0004","13º Salário a Pagar","account_template_208","payable","passivo","True" +"account_template_213","2.1.03.01.0005","Comissões a Pagar","account_template_208","payable","passivo","True" +"account_template_214","2.1.03.02","PROVISÕES DE FÉRIAS E 13º SALÁRIO","account_template_207","view","passivo","True" +"account_template_215","2.1.03.02.0001","Provisão de Férias","account_template_214","payable","passivo","True" +"account_template_216","2.1.03.02.0002","Provisão de INSS s/Férias","account_template_214","payable","passivo","True" +"account_template_217","2.1.03.02.0003","Provisão de FGTS s/Férias","account_template_214","payable","passivo","True" +"account_template_218","2.1.03.02.0004","Provisão de 13º Salário","account_template_214","payable","passivo","True" +"account_template_219","2.1.03.02.0005","Provisão de INSS s/13º Salário","account_template_214","payable","passivo","True" +"account_template_220","2.1.03.02.0006","Provisão FGTS s/13º Salário","account_template_214","payable","passivo","True" +"account_template_221","2.1.03.03","FOLHA DE PAGAMENTO - AUTÔNOMOS","account_template_207","view","passivo","True" +"account_template_222","2.1.03.03.0001","Rendimentos a Pagar","account_template_221","payable","passivo","True" +"account_template_223","2.1.03.04","FOLHA DE PAGAMENTO - DIRIGENTES","account_template_207","view","passivo","True" +"account_template_224","2.1.03.04.0001","Pro-Labore a Pagar","account_template_223","payable","passivo","True" +"account_template_225","2.1.03.05","ENCARGOS SOCIAIS A PAGAR","account_template_207","view","passivo","True" +"account_template_226","2.1.03.05.0001","INSS a Recolher","account_template_225","payable","passivo","True" +"account_template_227","2.1.03.05.0002","FGTS a Recolher","account_template_225","payable","passivo","True" +"account_template_228","2.1.03.05.0003","Contribuição Sindical a Pagar","account_template_225","payable","passivo","True" +"account_template_229","2.1.03.05.0004","Previdência Privada a Recolher","account_template_225","payable","passivo","True" +"account_template_230","2.1.04","OBRIGAÇÕES TRIBUTÁRIAS","account_template_194","view","passivo","True" +"account_template_231","2.1.04.01","IMPOSTOS RETIDOS A RECOLHER","account_template_230","view","passivo","True" +"account_template_232","2.1.04.01.0001","IRRF a Recolher - Pessoa Física","account_template_231","payable","passivo","True" +"account_template_233","2.1.04.01.0002","IRRF a Recolher - Pessoa Jurídica","account_template_231","payable","passivo","True" +"account_template_234","2.1.04.01.0003","ISS Retido a Recolher","account_template_231","payable","passivo","True" +"account_template_235","2.1.04.01.0004","PIS/COFINS/CSLL Retido a Recolher","account_template_231","payable","passivo","True" +"account_template_236","2.1.04.01.0005","INSS Retido a Recolher","account_template_231","payable","passivo","True" +"account_template_237","2.1.04.02","IMPOSTOS E CONTRIBUIÇÃO S/ O LUCRO","account_template_230","view","passivo","True" +"account_template_238","2.1.04.02.0001","Provisão para o Imposto de Renda","account_template_237","payable","passivo","True" +"account_template_239","2.1.04.02.0002","Provisão Contrib.Social s/Lucro Líquido","account_template_237","payable","passivo","True" +"account_template_240","2.1.04.03","IMPOSTOS E CONTRIBUIÇÃO S/ RECEITAS","account_template_230","view","passivo","True" +"account_template_241","2.1.04.03.0001","ICMS a Recolher","account_template_240","payable","passivo","True" +"account_template_242","2.1.04.03.0002","COFINS a Recolher","account_template_240","payable","passivo","True" +"account_template_243","2.1.04.03.0003","PIS a Recolher","account_template_240","payable","passivo","True" +"account_template_244","2.1.04.03.0004","IPI a Recolher","account_template_240","payable","passivo","True" +"account_template_245","2.1.04.03.0005","ISS a Recolher","account_template_240","payable","passivo","True" +"account_template_246","2.1.05","PARCELAMENTOS CURTO PRAZO","account_template_194","view","passivo","True" +"account_template_247","2.1.05.01","PARCELAMENTOS TRIBUTÁRIOS","account_template_246","view","passivo","True" +"account_template_248","2.1.05.01.0001","COFINS Parcelamento","account_template_247","payable","passivo","True" +"account_template_249","2.1.05.01.0002","PIS Parcelamento","account_template_247","payable","passivo","True" +"account_template_250","2.1.05.01.0003","IPI Parcelamento","account_template_247","payable","passivo","True" +"account_template_251","2.1.05.01.0004","ICMS Parcelamento","account_template_247","payable","passivo","True" +"account_template_252","2.1.05.01.0005","IRPJ Parcelamento","account_template_247","payable","passivo","True" +"account_template_253","2.1.05.01.0006","CSLL Parcelamento","account_template_247","payable","passivo","True" +"account_template_254","2.1.05.01.0007","INSS Parcelamento","account_template_247","payable","passivo","True" +"account_template_255","2.1.05.01.0008","FGTS Parcelamento","account_template_247","payable","passivo","True" +"account_template_256","2.1.06","OUTRAS OBRIGAÇÕES","account_template_194","view","passivo","True" +"account_template_257","2.1.06.01","CONTAS DE CONSUMO","account_template_256","view","passivo","True" +"account_template_258","2.1.06.01.0001","Consumo de Água/Esgoto","account_template_257","payable","passivo","True" +"account_template_259","2.1.06.01.0003","Consumo de Energia Elétrica","account_template_257","payable","passivo","True" +"account_template_260","2.1.06.01.0004","Consumo de Telefone","account_template_257","payable","passivo","True" +"account_template_261","2.1.06.01.0005","Consumo de Internet","account_template_257","payable","passivo","True" +"account_template_262","2.1.06.02","OUTRAS CONTAS A PAGAR","account_template_256","view","passivo","True" +"account_template_263","2.1.06.02.0001","Cheques a Compensar","account_template_262","payable","passivo","True" +"account_template_264","2.1.06.02.0002","Seguros a Pagar","account_template_262","payable","passivo","True" +"account_template_265","2.1.06.02.0003","Assinaturas de Periódicos a Pagar","account_template_262","payable","passivo","True" +"account_template_266","2.1.06.02.0004","Aluguel a Pagar","account_template_262","payable","passivo","True" +"account_template_267","2.1.06.02.0005","Doações a Pagar","account_template_262","payable","passivo","True" +"account_template_268","2.1.06.02.0006","Pensão Alimenticia a Pagar","account_template_262","payable","passivo","True" +"account_template_269","2.1.06.03","ADIANTAMENTO DE CLIENTES","account_template_256","view","passivo","True" +"account_template_270","2.1.06.03.0001","Adiantamento Clientes","account_template_269","payable","passivo","True" +"account_template_271","2.2","PASSIVO NÃO CIRCULANTE","account_template_193","view","passivo","True" +"account_template_272","2.2.01","EXIGÍVEL A LONGO PRAZO","account_template_271","view","passivo","True" +"account_template_273","2.2.01.01","FINANCIAMENTOS A LONGO PRAZO - SFN","account_template_272","view","passivo","True" +"account_template_274","2.2.01.01.0001","Banco Conta Empréstimo","account_template_273","payable","passivo","True" +"account_template_275","2.2.01.02","EMPRÉSTIMO DE SÓCIOS","account_template_272","view","passivo","True" +"account_template_276","2.2.01.02.0001","Sócio","account_template_275","payable","passivo","True" +"account_template_277","2.2.01.03","EMPRÉSTIMO DE EMPRESAS LIGADAS","account_template_272","view","passivo","True" +"account_template_278","2.2.01.03.0001","Empresas Ligadas","account_template_277","payable","passivo","True" +"account_template_279","2.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_template_272","view","passivo","True" +"account_template_280","2.2.01.04.0001","Terceiro","account_template_279","payable","passivo","True" +"account_template_281","2.2.01.05","PARCELAMENTOS TRIBUTÁRIOS","account_template_272","view","passivo","True" +"account_template_282","2.2.01.05.0001","COFINS Parcelamento","account_template_281","payable","passivo","True" +"account_template_283","2.2.01.05.0002","PIS Parcelamento","account_template_281","payable","passivo","True" +"account_template_284","2.2.01.05.0003","IPI Parcelamento","account_template_281","payable","passivo","True" +"account_template_285","2.2.01.05.0004","ICMS Parcelamento","account_template_281","payable","passivo","True" +"account_template_286","2.2.01.05.0005","ISS Parcelamento","account_template_281","payable","passivo","True" +"account_template_287","2.2.01.05.0006","IRPJ Parcelamento","account_template_281","payable","passivo","True" +"account_template_288","2.2.01.05.0007","CSLL Parcelamento","account_template_281","payable","passivo","True" +"account_template_289","2.2.01.05.0008","INSS Parcelamento","account_template_281","payable","passivo","True" +"account_template_290","2.2.01.05.0009","FGTS Parcelamento","account_template_281","payable","passivo","True" +"account_template_291","2.2.03","RECEITA DIFERIDA","account_template_271","view","passivo","True" +"account_template_292","2.2.03.01","RECEITAS DIFERIDAS","account_template_291","view","passivo","True" +"account_template_293","2.2.03.01.0001","Receitas a Realizar","account_template_292","payable","passivo","True" +"account_template_294","2.2.03.02","CUSTOS DIFERIDOS","account_template_291","view","passivo","True" +"account_template_295","2.2.03.02.0001","Custos Diferidos","account_template_294","payable","passivo","True" +"account_template_296","2.2.03.03","DESPESAS DIFERIDAS","account_template_291","view","passivo","True" +"account_template_297","2.2.03.03.0001","Despesas Diferidas","account_template_296","payable","passivo","True" +"account_template_298","2.4","PATRIMÔNIO LÍQUIDO","account_template_193","view","passivo","True" +"account_template_299","2.4.01","CAPITAL SOCIAL","account_template_298","view","passivo","True" +"account_template_300","2.4.01.01","CAPITAL SOCIAL REALIZADO","account_template_299","view","passivo","True" +"account_template_301","2.4.01.01.0001","Capital Social Realizado","account_template_300","payable","passivo","True" +"account_template_302","2.4.01.02","(-) CAPITAL A REALIZAR","account_template_299","view","passivo","True" +"account_template_303","2.4.01.02.0001","Capital Social a Realizar ","account_template_302","payable","passivo","True" +"account_template_304","2.4.02","RESERVAS","account_template_298","view","passivo","True" +"account_template_305","2.4.02.01","RESERVAS DE CAPITAL","account_template_304","view","passivo","True" +"account_template_306","2.4.02.01.0001","Reserva de Correção do Capital Realizado","account_template_305","payable","passivo","True" +"account_template_307","2.4.02.02","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_template_304","view","passivo","True" +"account_template_308","2.4.02.02.0001","Ajustes de Avaliação Patrimonial","account_template_307","payable","passivo","True" +"account_template_309","2.4.02.03","RESERVAS DE LUCROS","account_template_304","view","passivo","True" +"account_template_310","2.4.02.03.0001","Reserva de Lucros","account_template_309","payable","passivo","True" +"account_template_311","2.4.02.03.0002","Reserva para Aumento de Capital","account_template_309","payable","passivo","True" +"account_template_312","2.4.02.04","PREJUÍZOS ACUMULADOS","account_template_304","view","passivo","True" +"account_template_313","2.4.02.04.0002","(-) Prejuízos Acumulados","account_template_312","payable","passivo","True" +"account_template_314","2.4.02.04.0003","Ajustes Credores Exercícios Anteriores","account_template_312","payable","passivo","True" +"account_template_315","2.4.02.04.0001","Ajustes Devedores Exercícios Anteriores","account_template_312","payable","passivo","True" +"account_template_316","2.4.02.05","RESULTADO DO EXERCÍCIO","account_template_304","view","passivo","True" +"account_template_317","2.4.02.05.0001","Lucro do Exercício","account_template_316","payable","passivo","True" +"account_template_318","2.4.02.05.0002","Prejuízo do Exercício","account_template_316","payable","passivo","True" +"account_template_319","2.4.02.06","(-) LUCROS DISTRIBUÍDOS","account_template_304","view","passivo","True" +"account_template_320","2.4.02.06.0001","Lucros Distribuídos","account_template_319","payable","passivo","True" +"account_template_321","3","CONTAS DE RESULTADO - CUSTOS E DESPESAS","account_template_1","view","despesa","True" +"account_template_322","3.1","CUSTOS","account_template_321","view","despesa","True" +"account_template_323","3.1.01","CUSTOS DAS MERCADORIAS E PRODUTOS","account_template_322","view","despesa","True" +"account_template_324","3.1.01.01","CUSTOS DAS MERCADORIAS VENDIDAS","account_template_323","view","despesa","True" +"account_template_325","3.1.01.01.0001","Custo das Mercadorias Vendidas","account_template_324","payable","despesa","True" +"account_template_326","3.1.02","CUSTO DOS PRODUTOS VENDIDOS","account_template_322","view","despesa","True" +"account_template_327","3.1.02.01","CUSTO DAS MATÉRIAS PRIMAS","account_template_326","view","despesa","True" +"account_template_328","3.1.02.01.0001","Custo das Matérias Primas","account_template_327","payable","despesa","True" +"account_template_329","3.1.02.02","CUSTO DOS PRODUTOS ACABADOS","account_template_326","view","despesa","True" +"account_template_330","3.1.02.02.0001","Custo dos Produtos Acabados","account_template_329","payable","despesa","True" +"account_template_331","3.1.02.03","CUSTO DE MÃO-DE-OBRA DIRETA","account_template_326","view","despesa","True" +"account_template_332","3.1.02.03.0001","Salários","account_template_331","payable","despesa","True" +"account_template_333","3.1.02.03.0002","Horas Extras","account_template_331","payable","despesa","True" +"account_template_334","3.1.02.03.0003","Adicional Noturno","account_template_331","payable","despesa","True" +"account_template_335","3.1.02.03.0004","Férias","account_template_331","payable","despesa","True" +"account_template_336","3.1.02.03.0005","13º Salário","account_template_331","payable","despesa","True" +"account_template_337","3.1.02.03.0006","Aviso Prévio/Indeniz.Trabalhistas","account_template_331","payable","despesa","True" +"account_template_338","3.1.02.03.0007","Gratificações","account_template_331","payable","despesa","True" +"account_template_339","3.1.02.03.0008","INSS Empresa","account_template_331","payable","despesa","True" +"account_template_340","3.1.02.03.0009","FGTS ","account_template_331","payable","despesa","True" +"account_template_341","3.1.02.03.0010","Adicional Insalubridade","account_template_331","payable","despesa","True" +"account_template_342","3.1.02.03.0011","Vale Transporte","account_template_331","payable","despesa","True" +"account_template_343","3.1.02.03.0012","PAT - Programa Alim. Trabalhador","account_template_331","payable","despesa","True" +"account_template_344","3.1.02.03.0013","Assistência Médica","account_template_331","payable","despesa","True" +"account_template_345","3.1.02.03.0014","DSR - Descanso Semanal Remunerado","account_template_331","payable","despesa","True" +"account_template_346","3.1.02.03.0015","Salário Estagiários","account_template_331","payable","despesa","True" +"account_template_347","3.1.02.03.0016","Previdência Privada","account_template_331","payable","despesa","True" +"account_template_348","3.1.02.03.0017","Vestuário","account_template_331","payable","despesa","True" +"account_template_349","3.1.02.03.0018","Assiduidade","account_template_331","payable","despesa","True" +"account_template_350","3.1.02.03.0019","Abono Salarial","account_template_331","payable","despesa","True" +"account_template_351","3.1.02.03.0020","Vale Refeição","account_template_331","payable","despesa","True" +"account_template_352","3.1.02.03.0021","Farmácia","account_template_331","payable","despesa","True" +"account_template_353","3.1.02.03.0022","Pró-Labore","account_template_331","payable","despesa","True" +"account_template_354","3.1.02.04","GASTOS GERAIS DE FABRICAÇÃO","account_template_326","view","despesa","True" +"account_template_355","3.1.02.04.0001","Aluguel","account_template_354","payable","despesa","True" +"account_template_356","3.1.02.04.0002","Água e Esgoto","account_template_354","payable","despesa","True" +"account_template_357","3.1.02.04.0003","Energia Elétrica","account_template_354","payable","despesa","True" +"account_template_358","3.1.02.04.0004","Fretes e Carretos","account_template_354","payable","despesa","True" +"account_template_359","3.1.02.04.0005","Material de Consumo","account_template_354","payable","despesa","True" +"account_template_360","3.1.02.04.0006","Condução","account_template_354","payable","despesa","True" +"account_template_361","3.1.02.04.0007","Contribuição Sindical/Assoc.de Classe","account_template_354","payable","despesa","True" +"account_template_362","3.1.02.04.0008","Material de Limpeza","account_template_354","payable","despesa","True" +"account_template_363","3.1.02.04.0009","Seguros","account_template_354","payable","despesa","True" +"account_template_364","3.1.02.04.0010","Viagens e Estadias","account_template_354","payable","despesa","True" +"account_template_365","3.1.02.04.0011","Manutenção de Equipamentos","account_template_354","payable","despesa","True" +"account_template_366","3.1.02.04.0012","Depreciações e Amortizações","account_template_354","payable","despesa","True" +"account_template_367","3.1.02.04.0013","Combustíveis e Lubrificantes","account_template_354","payable","despesa","True" +"account_template_368","3.1.02.04.0014","Bens de Pequeno Valor","account_template_354","payable","despesa","True" +"account_template_369","3.1.02.04.0015","Leasing","account_template_354","payable","despesa","True" +"account_template_370","3.1.02.04.0016","Formação de Pessoal","account_template_354","payable","despesa","True" +"account_template_371","3.1.02.04.0017","Serviços de Terceiros - Pessoa Jurídica","account_template_354","payable","despesa","True" +"account_template_372","3.1.02.04.0018","Locação de Equipamentos","account_template_354","payable","despesa","True" +"account_template_373","3.1.02.04.0019","Feiras/Congressos/Simpósios/Cursos","account_template_354","payable","despesa","True" +"account_template_374","3.1.02.04.0020","Telefone","account_template_354","payable","despesa","True" +"account_template_375","3.1.02.04.0021","Comissões sobre Serviços","account_template_354","payable","despesa","True" +"account_template_376","3.1.02.04.0022","Jornais, Revistas e Periódicos","account_template_354","payable","despesa","True" +"account_template_377","3.1.02.04.0023","Confraternizações","account_template_354","payable","despesa","True" +"account_template_378","3.1.02.04.0024","Manutenção de Prédios","account_template_354","payable","despesa","True" +"account_template_379","3.1.02.04.0025","Brindes e Amostras","account_template_354","payable","despesa","True" +"account_template_380","3.1.02.04.0026","Aluguel de Equipamentos","account_template_354","payable","despesa","True" +"account_template_381","3.1.02.04.0027","Serv.de Terceiros P.Física - Autônomos","account_template_354","payable","despesa","True" +"account_template_382","3.1.02.04.0028","Manutenção de Veículos","account_template_354","payable","despesa","True" +"account_template_383","3.1.02.04.0029","Despesas de Importação","account_template_354","payable","despesa","True" +"account_template_384","3.1.02.04.0030","(-) Crédito PIS Não-Cumulativo","account_template_354","payable","despesa","True" +"account_template_385","3.1.02.04.0031","(-) Crédito Cofins Não-Cumulativo","account_template_354","payable","despesa","True" +"account_template_386","3.1.02.05","ESTOQUE INICIAL DE PROD.EM ELABORAÇÃO","account_template_326","view","despesa","True" +"account_template_387","3.1.02.05.0001","Estoque Inicial de Prod. em Elaboração","account_template_386","payable","despesa","True" +"account_template_388","3.1.02.06","ESTOQUE INICIAL DE PROD.ACABADOS","account_template_326","view","despesa","True" +"account_template_389","3.1.02.06.0001","Estoque Inicial de Prod.Acabados","account_template_388","payable","despesa","True" +"account_template_390","3.1.02.07","ESTOQUE FINAL DE PROD.EM ELABORAÇÃO","account_template_326","view","despesa","True" +"account_template_391","3.1.02.07.0001","Estoque Final de Prod.em Elaboração","account_template_390","payable","despesa","True" +"account_template_392","3.1.02.08","ESTOQUE FINAL DE PROD.ACABADOS","account_template_326","view","despesa","True" +"account_template_393","3.1.02.08.0001","Estoque Final de Prod.Acabados","account_template_392","payable","despesa","True" +"account_template_394","3.2","despesa","account_template_321","view","despesa","True" +"account_template_395","3.2.01","DESPESAS OPERACIONAIS COMERCIAIS","account_template_394","view","despesa","True" +"account_template_396","3.2.01.01","DESPESAS TRABALHISTAS","account_template_395","view","despesa","True" +"account_template_397","3.2.01.01.0001","Salários","account_template_396","payable","despesa","True" +"account_template_398","3.2.01.01.0002","Horas Extras","account_template_396","payable","despesa","True" +"account_template_399","3.2.01.01.0003","Vale Transporte","account_template_396","payable","despesa","True" +"account_template_400","3.2.01.01.0004","Férias","account_template_396","payable","despesa","True" +"account_template_401","3.2.01.01.0005","13º Salário","account_template_396","payable","despesa","True" +"account_template_402","3.2.01.01.0006","Aviso Prévio/Indeniz.Trabalhisas","account_template_396","payable","despesa","True" +"account_template_403","3.2.01.01.0007","Gratificações","account_template_396","payable","despesa","True" +"account_template_404","3.2.01.01.0008","Assiduidade","account_template_396","payable","despesa","True" +"account_template_405","3.2.01.01.0009","Abono Salarial","account_template_396","payable","despesa","True" +"account_template_406","3.2.01.01.0010","Adicional de Insalubridade","account_template_396","payable","despesa","True" +"account_template_407","3.2.01.01.0011","Vale Refeição","account_template_396","payable","despesa","True" +"account_template_408","3.2.01.01.0012","Adicional Noturno","account_template_396","payable","despesa","True" +"account_template_409","3.2.01.01.0013","Farmácia","account_template_396","payable","despesa","True" +"account_template_410","3.2.01.01.0014","PAT - Programa Alim. Trabalhador","account_template_396","payable","despesa","True" +"account_template_411","3.2.01.01.0015","Pró-Labore","account_template_396","payable","despesa","True" +"account_template_412","3.2.01.01.0016","Assistência Médica","account_template_396","payable","despesa","True" +"account_template_413","3.2.01.02","ENCARGOS SOCIAIS","account_template_395","view","despesa","True" +"account_template_414","3.2.01.02.0001","Inss","account_template_413","payable","despesa","True" +"account_template_415","3.2.01.02.0002","Fgts","account_template_413","payable","despesa","True" +"account_template_416","3.2.01.03","DESPESAS GERAIS COMERCIAIS","account_template_395","view","despesa","True" +"account_template_417","3.2.01.03.0001","Comissões sobre Vendas","account_template_416","payable","despesa","True" +"account_template_418","3.2.01.03.0002","Aluguel","account_template_416","payable","despesa","True" +"account_template_419","3.2.01.03.0003","Agua e Esgoto","account_template_416","payable","despesa","True" +"account_template_420","3.2.01.03.0004","Energia Elétrica","account_template_416","payable","despesa","True" +"account_template_421","3.2.01.03.0006","Material de Expediente","account_template_416","payable","despesa","True" +"account_template_422","3.2.01.03.0007","Condução","account_template_416","payable","despesa","True" +"account_template_423","3.2.01.03.0008","Correios e Malotes","account_template_416","payable","despesa","True" +"account_template_424","3.2.01.03.0009","Material de Limpeza","account_template_416","payable","despesa","True" +"account_template_425","3.2.01.03.0010","Seguros","account_template_416","payable","despesa","True" +"account_template_426","3.2.01.03.0011","Viagens e Estadias","account_template_416","payable","despesa","True" +"account_template_427","3.2.01.03.0012","Manutenção e Conservação","account_template_416","payable","despesa","True" +"account_template_428","3.2.01.03.0013","Depreciação e Amortização","account_template_416","payable","despesa","True" +"account_template_429","3.2.01.03.0014","Propaganda e Publicidade","account_template_416","payable","despesa","True" +"account_template_430","3.2.01.03.0015","Fretes e Carretos","account_template_416","payable","despesa","True" +"account_template_431","3.2.01.03.0016","Combustíveis e Lubrificantes","account_template_416","payable","despesa","True" +"account_template_432","3.2.01.03.0017","Leasing","account_template_416","payable","despesa","True" +"account_template_433","3.2.01.03.0018","Serv.Terceiros P.Física - Autônomos","account_template_416","payable","despesa","True" +"account_template_434","3.2.01.03.0019","Serv.Terceiros Pessoa Jurídica","account_template_416","payable","despesa","True" +"account_template_435","3.2.01.03.0020","Feiras/Congressos/Simpósios/Cursos","account_template_416","payable","despesa","True" +"account_template_436","3.2.01.03.0021","Telefone","account_template_416","payable","despesa","True" +"account_template_437","3.2.01.03.0022","Despesas com Exportação","account_template_416","payable","despesa","True" +"account_template_438","3.2.01.03.0024","Jornais, Revistas e Periódicos","account_template_416","payable","despesa","True" +"account_template_439","3.2.01.03.0025","Refeições e Lanches","account_template_416","payable","despesa","True" +"account_template_440","3.2.01.03.0026","Confraternizações","account_template_416","payable","despesa","True" +"account_template_441","3.2.01.03.0027","Brindes","account_template_416","payable","despesa","True" +"account_template_442","3.2.01.03.0028","Internet","account_template_416","payable","despesa","True" +"account_template_443","3.2.02","DESPESAS ADMINISTRATIVAS","account_template_394","view","despesa","True" +"account_template_444","3.2.02.01","DESPESAS TRABALHISTAS","account_template_443","view","despesa","True" +"account_template_445","3.2.02.01.0001","Pro-Labore","account_template_444","payable","despesa","True" +"account_template_446","3.2.02.01.0002","Salários","account_template_444","payable","despesa","True" +"account_template_447","3.2.02.01.0003","Horas Extras","account_template_444","payable","despesa","True" +"account_template_448","3.2.02.01.0004","Férias","account_template_444","payable","despesa","True" +"account_template_449","3.2.02.01.0005","13º Salário","account_template_444","payable","despesa","True" +"account_template_450","3.2.02.01.0006","Aviso Prévio/Indeniz.Trabalhistas","account_template_444","payable","despesa","True" +"account_template_451","3.2.02.01.0007","Gratificações","account_template_444","payable","despesa","True" +"account_template_452","3.2.02.01.0008","Adicional Insalubridade","account_template_444","payable","despesa","True" +"account_template_453","3.2.02.01.0009","Adicional Noturno","account_template_444","payable","despesa","True" +"account_template_454","3.2.02.01.0010","Vale Transporte","account_template_444","payable","despesa","True" +"account_template_455","3.2.02.01.0011","Farmácia","account_template_444","payable","despesa","True" +"account_template_456","3.2.02.01.0012","Vale Refeição","account_template_444","payable","despesa","True" +"account_template_457","3.2.02.01.0013","PAT - Programa Alim. Trabalhador","account_template_444","payable","despesa","True" +"account_template_458","3.2.02.01.0014","Salário Estagiários","account_template_444","payable","despesa","True" +"account_template_459","3.2.02.01.0015","Assiduidade","account_template_444","payable","despesa","True" +"account_template_460","3.2.02.01.0016","Abono Salarial","account_template_444","payable","despesa","True" +"account_template_461","3.2.02.01.0017","Previdência Privada","account_template_444","payable","despesa","True" +"account_template_462","3.2.02.01.0018","Assistência Médica","account_template_444","payable","despesa","True" +"account_template_463","3.2.02.02","ENCARGOS SOCIAIS","account_template_443","view","despesa","True" +"account_template_464","3.2.02.02.0001","Inss","account_template_463","payable","despesa","True" +"account_template_465","3.2.02.02.0002","Fgts","account_template_463","payable","despesa","True" +"account_template_466","3.2.02.03","DESPESAS GERAIS ADMINISTRATIVAS","account_template_443","view","despesa","True" +"account_template_467","3.2.02.03.0001","Aluguel","account_template_466","payable","despesa","True" +"account_template_468","3.2.02.03.0002","Água e Esgoto","account_template_466","payable","despesa","True" +"account_template_469","3.2.02.03.0003","Energia Elétrica","account_template_466","payable","despesa","True" +"account_template_470","3.2.02.03.0004","Copa, Cozinha e Refeitório","account_template_466","payable","despesa","True" +"account_template_471","3.2.02.03.0005","Material de Escritório","account_template_466","payable","despesa","True" +"account_template_472","3.2.02.03.0006","Fretes e Carretos","account_template_466","payable","despesa","True" +"account_template_473","3.2.02.03.0007","Correios e Malotes","account_template_466","payable","despesa","True" +"account_template_474","3.2.02.03.0008","Material de Limpeza","account_template_466","payable","despesa","True" +"account_template_475","3.2.02.03.0009","Seguros","account_template_466","payable","despesa","True" +"account_template_476","3.2.02.03.0010","Viagens e Estadias","account_template_466","payable","despesa","True" +"account_template_477","3.2.02.03.0011","Manutenção e Conservação","account_template_466","payable","despesa","True" +"account_template_478","3.2.02.03.0012","Depreciação e Amortização","account_template_466","payable","despesa","True" +"account_template_479","3.2.02.03.0013","Sindicato Patronal/Assoc.de Classe","account_template_466","payable","despesa","True" +"account_template_480","3.2.02.03.0014","Feiras/Congressos/Simpósios/Cursos","account_template_466","payable","despesa","True" +"account_template_481","3.2.02.03.0015","Internet","account_template_466","payable","despesa","True" +"account_template_482","3.2.02.03.0016","Combustíveis e Lubrificantes","account_template_466","payable","despesa","True" +"account_template_483","3.2.02.03.0017","Leasing","account_template_466","payable","despesa","True" +"account_template_484","3.2.02.03.0018","Serviço de Terceiros - Pessoa Jurídica","account_template_466","payable","despesa","True" +"account_template_485","3.2.02.03.0019","Telefone","account_template_466","payable","despesa","True" +"account_template_486","3.2.02.03.0020","Legais e Judiciais","account_template_466","payable","despesa","True" +"account_template_487","3.2.02.03.0021","Bens de Pequeno Valor","account_template_466","payable","despesa","True" +"account_template_488","3.2.02.03.0022","Jornais Revistas e Periódicos","account_template_466","payable","despesa","True" +"account_template_489","3.2.02.03.0023","Cópias e Reproduções","account_template_466","payable","despesa","True" +"account_template_490","3.2.02.03.0024","Confraternizações","account_template_466","payable","despesa","True" +"account_template_491","3.2.02.03.0025","Formação de Pessoal","account_template_466","payable","despesa","True" +"account_template_492","3.2.02.03.0026","Segurança e Vigilância","account_template_466","payable","despesa","True" +"account_template_493","3.2.02.03.0027","Despesas com Veículos","account_template_466","payable","despesa","True" +"account_template_494","3.2.02.03.0028","Impressos","account_template_466","payable","despesa","True" +"account_template_495","3.2.02.03.0029","Refeições e Lanches","account_template_466","payable","despesa","True" +"account_template_496","3.2.02.03.0030","Comissões","account_template_466","payable","despesa","True" +"account_template_497","3.2.02.03.0031","Condução ","account_template_466","payable","despesa","True" +"account_template_498","3.2.02.03.0032","Telefone Linha Fixa","account_template_466","payable","despesa","True" +"account_template_499","3.2.02.03.0033","Telefone Móvel Celular","account_template_466","payable","despesa","True" +"account_template_500","3.2.02.03.0034","Telefone Nextel","account_template_466","payable","despesa","True" +"account_template_501","3.2.02.03.0035","Crea-PR","account_template_466","payable","despesa","True" +"account_template_502","3.2.02.03.0036","Despesas de Cartório","account_template_466","payable","despesa","True" +"account_template_503","3.2.02.03.0037","Material de Consumo","account_template_466","payable","despesa","True" +"account_template_504","3.2.02.03.0038","Donativos e Contribuições","account_template_466","payable","despesa","True" +"account_template_505","3.2.02.03.0039","Locação de Equipamentos","account_template_466","payable","despesa","True" +"account_template_506","3.2.02.04","DESPESAS INDEDUTÍVEIS","account_template_443","view","despesa","True" +"account_template_507","3.2.02.04.0001","Autos de Infração","account_template_506","payable","despesa","True" +"account_template_508","3.2.02.04.0002","Multas Punitívas","account_template_506","payable","despesa","True" +"account_template_509","3.2.02.04.0003","Contribuições e Doações","account_template_506","payable","despesa","True" +"account_template_510","3.2.02.04.0004","Impostos Federais - Exerc. Anteriores","account_template_506","payable","despesa","True" +"account_template_511","3.2.02.04.0005","Impostos Estaduais - Exerc. Anteriores","account_template_506","payable","despesa","True" +"account_template_512","3.2.02.04.0006","Impostos Municipais - Exerc.Anteriores","account_template_506","payable","despesa","True" +"account_template_513","3.2.03","DESPESAS FINANCEIRAS","account_template_394","view","despesa","True" +"account_template_514","3.2.03.01","DESPESAS COM ATUALIZAÇÕES","account_template_513","view","despesa","True" +"account_template_515","3.2.03.01.0001","Variação Monetária Passiva","account_template_514","payable","despesa","True" +"account_template_516","3.2.03.01.0002","Variação Cambial Passiva","account_template_514","payable","despesa","True" +"account_template_517","3.2.03.01.0003","Despesas de Cobrança","account_template_514","payable","despesa","True" +"account_template_518","3.2.03.01.0004","Despesas Bancárias","account_template_514","payable","despesa","True" +"account_template_519","3.2.03.02","JUROS E DESCONTOS","account_template_513","view","despesa","True" +"account_template_520","3.2.03.02.0001","Juros de Mora","account_template_519","payable","despesa","True" +"account_template_521","3.2.03.02.0002","Descontos Concedidos","account_template_519","payable","despesa","True" +"account_template_522","3.2.03.02.0003","Juros s/ Empréstimos e Financiamentos","account_template_519","payable","despesa","True" +"account_template_523","3.2.03.02.0004","Juros s/ Descontos de Duplicatas","account_template_519","payable","despesa","True" +"account_template_524","3.2.04","DESPESAS TRIBUTÁRIAS","account_template_394","view","despesa","True" +"account_template_525","3.2.04.01","IMPOSTOS, TAXAS E CONTRIBUIÇÕES","account_template_524","view","despesa","True" +"account_template_526","3.2.04.01.0001","IOF","account_template_525","payable","despesa","True" +"account_template_527","3.2.04.01.0002","CPMF","account_template_525","payable","despesa","True" +"account_template_528","3.2.04.01.0003","IPTU","account_template_525","payable","despesa","True" +"account_template_529","3.2.04.01.0004","IPVA","account_template_525","payable","despesa","True" +"account_template_530","3.2.04.01.0005","IRF (Exclusivo na Fonte)","account_template_525","payable","despesa","True" +"account_template_531","3.2.04.01.0006","Impostos e Taxas Federais","account_template_525","payable","despesa","True" +"account_template_532","3.2.04.01.0007","Impostos e Taxas Estaduais","account_template_525","payable","despesa","True" +"account_template_533","3.2.04.01.0008","Impostos e Taxas Municipais","account_template_525","payable","despesa","True" +"account_template_534","3.2.04.02","MULTAS","account_template_524","view","despesa","True" +"account_template_535","3.2.04.02.0001","Multas Fiscais Compensatórias","account_template_534","payable","despesa","True" +"account_template_536","3.2.04.02.0002","Multas de Mora","account_template_534","payable","despesa","True" +"account_template_537","3.2.04.02.0003","Multas Contratuais","account_template_534","payable","despesa","True" +"account_template_538","3.2.05","OUTRAS DESPESAS OPERACIONAIS","account_template_394","view","despesa","True" +"account_template_539","3.2.05.01","PERDAS","account_template_538","view","despesa","True" +"account_template_540","3.2.05.01.0001","Perdas com Duplicatas Incobráveis","account_template_539","payable","despesa","True" +"account_template_541","3.2.06","DESPESAS NÃO OPERACIONAIS","account_template_394","view","despesa","True" +"account_template_542","3.2.06.01","PERDAS","account_template_541","view","despesa","True" +"account_template_543","3.2.06.01.0002","Perda crédito de ICMS s/ Imobilizado","account_template_542","payable","despesa","True" +"account_template_544","3.2.06.01.0003","Perdas com Sinistros","account_template_542","payable","despesa","True" +"account_template_545","3.2.06.01.0004","Perdas na Alienação de Imobilizado","account_template_542","payable","despesa","True" +"account_template_546","3.2.06.01.0001","Perdas na Alienação de Investimentos","account_template_542","payable","despesa","True" +"account_template_547","3.2.06.01.0005","Perdas, Deterioração de Mercadorias","account_template_542","payable","despesa","True" +"account_template_548","4","CONTAS DE RESULTADO - RECEITAS","account_template_1","view","receita","True" +"account_template_549","4.1","RECEITAS","account_template_548","view","receita","True" +"account_template_550","4.1.01","RECEITAS OPERACIONAIS VENDAS E SERVIÇOS","account_template_549","view","receita","True" +"account_template_551","4.1.01.01","RECEITA BRUTA VENDAS NO PAÍS ","account_template_550","view","receita","True" +"account_template_552","4.1.01.01.0001","Venda Produtos Fabricação Própria","account_template_551","receivable","receita","True" +"account_template_553","4.1.01.01.0002","Industrialização de Mercadorias","account_template_551","receivable","receita","True" +"account_template_554","4.1.01.01.0003","Revenda de Mercadorias","account_template_551","receivable","receita","True" +"account_template_555","4.1.01.01.0004","Venda Fabricação Própria","account_template_551","receivable","receita","True" +"account_template_556","4.1.01.01.0005","Industriazalição de Mercadorias","account_template_551","receivable","receita","True" +"account_template_557","4.1.01.01.0006","Revenda de Mercadorias","account_template_551","receivable","receita","True" +"account_template_558","4.1.01.02","RECEITA DE SERVIÇOS NO PAIS ","account_template_550","view","receita","True" +"account_template_559","4.1.01.02.0001","Receita de Serviços","account_template_558","receivable","receita","True" +"account_template_560","4.1.01.02.0002","Receita de Serviços","account_template_558","receivable","receita","True" +"account_template_561","4.1.01.03","RECEITA BRUTA DE VENDAS P/EXTERIOR","account_template_550","view","receita","True" +"account_template_562","4.1.01.03.0001","Venda de Produtos Fabricação Própria(EX)","account_template_561","receivable","receita","True" +"account_template_563","4.1.01.03.0002","Revenda de Mercadorias (EX)","account_template_561","receivable","receita","True" +"account_template_564","4.1.02","(-) DEDUÇÕES DA RECEITA BRUTA","account_template_549","view","receita","True" +"account_template_565","4.1.02.01","DEVOLUÇÕES E ABATIMENTOS","account_template_564","view","receita","True" +"account_template_566","4.1.02.01.0001","Devolução de Vendas","account_template_565","receivable","receita","True" +"account_template_567","4.1.02.01.0002","Abatimentos Concedidos","account_template_565","receivable","receita","True" +"account_template_568","4.1.02.01.0003","Devolução de Vendas","account_template_565","receivable","receita","True" +"account_template_569","4.1.02.01.0004","Abatimentos Concedidos","account_template_565","receivable","receita","True" +"account_template_570","4.1.02.02","IMPOSTOS SOBRE VENDAS E SERVIÇOS","account_template_564","view","receita","True" +"account_template_571","4.1.02.02.0001","ICMS sobre Vendas","account_template_570","receivable","receita","True" +"account_template_572","4.1.02.02.0002","IPI sobre Vendas","account_template_570","receivable","receita","True" +"account_template_573","4.1.02.02.0003","PIS sobre Vendas ","account_template_570","receivable","receita","True" +"account_template_574","4.1.02.02.0004","COFINS sobre Vendas","account_template_570","receivable","receita","True" +"account_template_575","4.1.02.02.0005","ISS sobre Serviços","account_template_570","receivable","receita","True" +"account_template_579","4.1.02.03","(-) IMPOSTOS S/ DEVOLUÇÃO DE VENDAS","account_template_564","view","receita","True" +"account_template_580","4.1.02.03.0001","(-) Cofins Não-Cumulativo s/ Dev. Vendas","account_template_579","receivable","receita","True" +"account_template_581","4.1.02.03.0002","(-) ICMS sobre Devolução de Vendas","account_template_579","receivable","receita","True" +"account_template_582","4.1.02.03.0003","(-) IPI s/Devolução de Vendas","account_template_579","receivable","receita","True" +"account_template_583","4.1.02.03.0004","(-) Pis Não-Cumulativo s/ Dev. Vendas","account_template_579","receivable","receita","True" +"account_template_584","4.1.03","RECEITAS FINANCEIRAS","account_template_549","view","receita","True" +"account_template_585","4.1.03.01","RECEITAS COM ATUALIZAÇÕES","account_template_584","view","receita","True" +"account_template_586","4.1.03.01.0001","Variação Monetária Ativa","account_template_585","receivable","receita","True" +"account_template_587","4.1.03.01.0002","Variação Cambial Ativa","account_template_585","receivable","receita","True" +"account_template_588","4.1.03.02","GANHOS COM APLICAÇÕES FINANCEIRAS","account_template_584","view","receita","True" +"account_template_589","4.1.03.02.0001","Rend. Aplic.Automática C/Corrente","account_template_588","receivable","receita","True" +"account_template_590","4.1.03.02.0002","Ganho Real Aplicações Renda Fixa","account_template_588","receivable","receita","True" +"account_template_591","4.1.03.02.0003","Ganho Real Aplic.Renda Variável","account_template_588","receivable","receita","True" +"account_template_592","4.1.03.02.0004","Rendimento Caderneta de Poupança","account_template_588","receivable","receita","True" +"account_template_593","4.1.03.03","JUROS E DESCONTOS OBTIDOS","account_template_584","view","receita","True" +"account_template_594","4.1.03.03.0001","Juros Recebidos","account_template_593","receivable","receita","True" +"account_template_595","4.1.03.03.0002","Descontos Obtidos","account_template_593","receivable","receita","True" +"account_template_596","4.1.03.04","(-) TRIBUTOS S/RECEITAS FINANCEIRAS","account_template_584","view","receita","True" +"account_template_597","4.1.03.04.0001","PIS sobre Receitas Financeiras","account_template_596","receivable","receita","True" +"account_template_598","4.1.03.04.0002","COFINS sobre Receitas Financeiras","account_template_596","receivable","receita","True" +"account_template_599","4.1.04","OUTRAS RECEITAS OPERACIONAIS","account_template_549","view","receita","True" +"account_template_600","4.1.04.01","LUCROS PARTIC.EM OUTRAS SOCIEDADES","account_template_599","view","receita","True" +"account_template_601","4.1.04.01.0001","Resultado de Coligadas e Controladas","account_template_600","receivable","receita","True" +"account_template_602","4.1.04.02","VENDAS DIVERSAS","account_template_599","view","receita","True" +"account_template_603","4.1.04.02.0001","Venda de Sucatas","account_template_602","receivable","receita","True" +"account_template_604","4.1.04.03","BRINDES E AMOSTRAS","account_template_599","view","receita","True" +"account_template_605","4.1.04.03.0001","Brindes e Bonificações","account_template_604","receivable","receita","True" +"account_template_606","4.1.04.03.0002","Amostras","account_template_604","receivable","receita","True" +"account_template_607","4.2","RESULTADOS NÃO OPERACIONAIS","account_template_548","view","receita","True" +"account_template_608","4.2.01","ALIENAÇÃO DE BENS PERMANENTES","account_template_607","view","receita","True" +"account_template_609","4.2.01.01","ALIENAÇÃO DE INVESTIMENTOS","account_template_608","view","receita","True" +"account_template_610","4.2.01.01.0001","Dividendos Recebidos","account_template_609","receivable","receita","True" +"account_template_611","4.2.01.01.0002","Alienação Partic.Societárias","account_template_609","receivable","receita","True" +"account_template_612","4.2.01.02","ALIENAÇÃO DE IMOBILIZADO","account_template_608","view","receita","True" +"account_template_613","4.2.01.02.0001","Alienação de Máquinas e Equipamentos","account_template_612","receivable","receita","True" +"account_template_614","4.2.01.02.0002","Alienação de Móveis e Utensílios","account_template_612","receivable","receita","True" +"account_template_615","4.2.01.02.0003","Alienação de Ferramentas","account_template_612","receivable","receita","True" +"account_template_616","4.2.01.02.0004","Alienação de Imóveis","account_template_612","receivable","receita","True" +"account_template_617","4.2.01.02.0005","Alienação de Veículos","account_template_612","receivable","receita","True" +"account_template_618","4.2.01.02.0006","Alienação de Equip.de Informática","account_template_612","receivable","receita","True" +"account_template_619","4.2.02","DEDUÇÕES DAS ALIENAÇÕES DE BENS","account_template_607","view","receita","True" +"account_template_620","4.2.02.01","CUSTO DA ALIENAÇÃO DE INVESTIMENTOS","account_template_619","view","receita","True" +"account_template_621","4.2.02.01.0001","Custo Alienação Partic.Societárias","account_template_620","receivable","receita","True" +"account_template_622","4.2.02.02","CUSTO DA ALIENAÇÃO DE IMOBILIZADO","account_template_619","view","receita","True" +"account_template_623","4.2.02.02.0001","Custo Alienação Máqs.e Equipamentos","account_template_622","receivable","receita","True" +"account_template_624","4.2.02.02.0002","Custo Alienação Movs.e Utensílios","account_template_622","receivable","receita","True" +"account_template_625","4.2.02.02.0003","Custo Alienação Ferramentas","account_template_622","receivable","receita","True" +"account_template_626","4.2.02.02.0004","Custo Alienação de Imóveis","account_template_622","receivable","receita","True" +"account_template_627","4.2.02.02.0005","Custo Alienação de Veículos","account_template_622","receivable","receita","True" +"account_template_628","4.2.02.02.0006","Custo Alienação Equip.Informática","account_template_622","receivable","receita","True" +"account_template_629","4.2.03","OUTRAS RECEITAS NÃO OPERACIONAIS","account_template_607","view","receita","True" +"account_template_630","4.2.03.01","INDENIZAÇÃO DE SEGUROS","account_template_629","view","receita","True" +"account_template_631","4.2.03.01.0001","Indenização de Seguros","account_template_630","receivable","receita","True" +"account_template_632","4.2.03.02","OUTRAS RECEITAS","account_template_629","view","receita","True" +"account_template_633","4.2.03.02.0001","Recuperação de Despesas","account_template_632","receivable","receita","True" +"account_template_634","5","CONTAS DE FECHAMENTO DE BALANÇO","account_template_1","view","resultado","True" +"account_template_635","5.1","RESULTADO DO EXERCÍCIO","account_template_634","view","resultado","True" +"account_template_636","5.1.01","RESULTADO OPERACIONAL","account_template_635","view","resultado","True" +"account_template_637","5.1.01.01","PROVISÃO IMPOSTOS E CONTRIB. S/ O LUCRO","account_template_636","view","resultado","True" +"account_template_638","5.1.01.01.0001","Provisão para IRPJ","account_template_637","closed","resultado","True" +"account_template_639","5.1.01.01.0002","Provisão para Contribuição Social","account_template_637","closed","resultado","True" +"account_template_640","5.1.01.02","RESULTADO FINAL DO EXERCÍCIO","account_template_636","view","resultado","True" +"account_template_641","5.1.01.02.0001","Resultado Líquido do Exercício","account_template_640","closed","resultado","True" diff --git a/l10n_br_account/data/account.account.type.csv b/l10n_br_account/data/account.account.type.csv new file mode 100644 index 000000000000..1b1d8cfddac1 --- /dev/null +++ b/l10n_br_account/data/account.account.type.csv @@ -0,0 +1,7 @@ +"id","code","name","close_method" +"ativo","1","Ativo","balance" +"passivo","2","Passivo","balance" +"despesa","3","Despesas","balance" +"receita","4","Receita","balance" +"resultado","5","Resultado","balance" + diff --git a/l10n_br_account/data/account.tax.code.template.csv b/l10n_br_account/data/account.tax.code.template.csv new file mode 100644 index 000000000000..4622200982f3 --- /dev/null +++ b/l10n_br_account/data/account.tax.code.template.csv @@ -0,0 +1,14 @@ +"id","code","name","parent_id:id","sign" +"tax_code_chart_root","","Códigos de Impostos Brasileiros","","1" +"tax_code_1","ICMS","ICMS Interno","tax_code_chart_root","1" +"tax_code_2","ICMS","ICMS Externo","tax_code_chart_root","1" +"tax_code_3","ICMS Subist","ICMS Subist","tax_code_chart_root","1" +"tax_code_4","IPI","IPI","tax_code_chart_root","1" +"tax_code_5","PIS","PIS","tax_code_chart_root","1" +"tax_code_6","COFINS","COFINS","tax_code_chart_root","1" +"tax_code_7","IRPJ","IRPJ","tax_code_chart_root","1" +"tax_code_8","IR","IR","tax_code_chart_root","1" +"tax_code_9","ISS","ISS","tax_code_chart_root","1" +"tax_code_10","CSLL","CSLL","tax_code_chart_root","1" + + diff --git a/l10n_br_account/data/account_tax_template.xml b/l10n_br_account/data/account_tax_template.xml new file mode 100644 index 000000000000..910680eaf9d9 --- /dev/null +++ b/l10n_br_account/data/account_tax_template.xml @@ -0,0 +1,536 @@ + + + + + + IPI + IPI + vat + 0.00 + + + + + + + + + + IPI 2% + IPI 2% + vat + 0.02 + + + + + + + + + + IPI 3% + IPI 3% + vat + 0.03 + + + + + + + + + + IPI 4% + IPI 4% + vat + 0.04 + + + + + + + + + + IPI 5% + IPI 5% + vat + 0.05 + + + + + + + + + + IPI 7% + IPI 7% + vat + 0.07 + + + + + + + + + + IPI 8% + IPI 8% + vat + 0.08 + False + + + + + + + + + IPI 10% + IPI 10% + vat + 0.10 + + + + + + + + + + IPI 12% + IPI 12% + vat + 0.12 + + + + + + + + + + IPI 13% + IPI 13% + vat + 0.13 + + + + + + + + + + IPI 15% + IPI 15% + vat + 0.15 + + + + + + + + + + IPI 16% + IPI 16% + vat + 0.16 + + + + + + + + + + IPI 18% + IPI 18% + vat + 0.18 + + + + + + + + + + IPI 20% + IPI 20% + vat + 0.20 + + + + + + + + + + IPI 22% + IPI 22% + vat + 0.22 + + + + + + + + + + IPI 25% + IPI 25% + vat + 0.25 + + + + + + + + + + IPI 27% + IPI 27% + vat + 0.27 + + + + + + + + + + IPI 30% + IPI 30% + vat + 0.30 + + + + + + + + + + IPI 35% + IPI 35% + vat + 0.35 + + + + + + + + + + IPI 40% + IPI 40% + vat + 0.40 + + + + + + + + + + IPI 42% + IPI 42% + vat + 0.42 + + + + + + + + + + IPI 45% + IPI 45% + vat + 0.45 + + + + + + + + + + IPI 50% + IPI 50% + vat + 0.50 + + + + + + + + + + IPI 60% + IPI 60% + vat + 0.60 + + + + + + + + + + IPI 330% + IPI 330% + vat + 3.30 + + + + + + + + + + ICMS Interno + ICMS Interno + vat + 0.00 + + + + + + + + + + ICMS Externo + ICMS Externo + vat + 0.00 + + + + + + + + + + ICMS Subist + ICMS Subist + vat + 0.00 + + + + + + + + + + ICMS 7% + ICMS 7% + vat + 0.07 + + + + + + + + + + + + + ICMS 12% + ICMS 12% + vat + 0.12 + + + + + + + + + + + + ICMS 19% + ICMS 19% + vat + 0.19 + + + + + + + + + + + + ICMS 26% + ICMS 26% + vat + 0.26 + + + + + + + + + + + + PIS + PIS + vat + 0.00 + + + + + + + + + + PIS 0,65% + PIS 0,65% + vat + 0.0065 + + + + + + + + + + + COFINS + COFINS + vat + 0.00 + + + + + + + + + + + COFINS 3% + COFINS 3% + vat + 0.03 + + + + + + + + + + IRPJ + IRPJ + vat + 0.00 + + + + + + + + + + IR + IR + vat + 0.00 + + + + + + + + + + ISS + ISS + vat + 0.00 + + + + + + + + + + CSLL + CSLL + vat + 0.00 + + + + + + + + + diff --git a/l10n_br_account/data/l10n_br.cst.csv b/l10n_br_account/data/l10n_br.cst.csv new file mode 100644 index 000000000000..2a451cd8e0a7 --- /dev/null +++ b/l10n_br_account/data/l10n_br.cst.csv @@ -0,0 +1,100 @@ +"id","code","name","tax_code_id:id" +"cst_1","00","Tributada integralmente","tax_code_1" +"cst_2","10","Tributada e com cobrança do ICMS por substituição tributária","tax_code_1" +"cst_3","20","Com redução de base de cálculo","tax_code_1" +"cst_4","30","Isenta ou não tributada e com cobrança do ICMS por substituição tributária","tax_code_1" +"cst_5","40","Isenta","tax_code_1" +"cst_6","41","Não tributada","tax_code_1" +"cst_7","50","Suspensão","tax_code_1" +"cst_8","51","Diferimento","tax_code_1" +"cst_9","60","ICMS cobrado anteriormente por substituição tributária","tax_code_1" +"cst_10","70","Com redução de base de cálculo e cobrança do ICMS por substituição tributária","tax_code_1" +"cst_11","90","Outras","tax_code_1" +"cst_12","00","Entrada com recuperação de crédito","tax_code_3" +"cst_13","01","Entrada tributada com alíquota zero","tax_code_3" +"cst_14","02","Entrada isenta","tax_code_3" +"cst_15","03","Entrada não-tributada","tax_code_3" +"cst_16","04","Entrada imune","tax_code_3" +"cst_17","05","Entrada com suspensão","tax_code_3" +"cst_18","49","Outras entradas","tax_code_3" +"cst_19","50","Saída tributada","tax_code_3" +"cst_20","51","Saída tributada com alíquota zero","tax_code_3" +"cst_21","52","Saída isenta","tax_code_3" +"cst_22","53","Saída não-tributada","tax_code_3" +"cst_23","54","Saída imune","tax_code_3" +"cst_24","55","Saída com suspensão","tax_code_3" +"cst_25","99","Outras saídas","tax_code_3" +"cst_26","01","Operação Tributável - Base de Cálculo = Valor da Operação Alíquota Normal (Cumulativo/Não Cumulativo)","tax_code_5" +"cst_27","02","Operação Tributável - Base de Calculo = Valor da Operação (Alíquota Diferenciada)","tax_code_5" +"cst_28","03","Operação Tributável - Base de Calculo = Quantidade Vendida x Alíquota por Unidade de Produto","tax_code_5" +"cst_29","04","Operação Tributável - Tributação Monofásica - (Alíquota Zero)","tax_code_5" +"cst_30","01","Operação Tributável com Alíquota Básica","tax_code_5" +"cst_31","02","Operação Tributável com Alíquota Diferenciada","tax_code_5" +"cst_32","03","Operação Tributável com Alíquota por Unidade de Medida de Produto","tax_code_5" +"cst_33","04","Operação Tributável Monofásica - Revenda a Alíquota Zero","tax_code_5" +"cst_34","05","Operação Tributável por Substituição Tributária","tax_code_5" +"cst_35","06","Operação Tributável a Alíquota zero","tax_code_5" +"cst_36","07","Operação Isenta da Contribuição","tax_code_5" +"cst_37","08","Operação sem Incidência da Contribuição","tax_code_5" +"cst_38","09","Operação com Suspensão da Contribuição","tax_code_5" +"cst_39","49","Outras Operações de Saída","tax_code_5" +"cst_40","50","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_5" +"cst_41","51","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_5" +"cst_42","52","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação","tax_code_5" +"cst_43","53","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_5" +"cst_44","54","Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_45","55","Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_46","56","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_47","60","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_5" +"cst_48","61","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_5" +"cst_49","62","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação","tax_code_5" +"cst_50","63","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_5" +"cst_51","64","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_52","65","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_53","66","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" +"cst_54","67","Crédito Presumido - Outras Operações","tax_code_5" +"cst_55","70","Operação de Aquisição sem Direito a Crédito","tax_code_5" +"cst_56","71","Operação de Aquisição com Isenção","tax_code_5" +"cst_57","72","Operação de Aquisição com Suspensão","tax_code_5" +"cst_58","73","Operação de Aquisição a Alíquota Zero","tax_code_5" +"cst_59","74","Operação de Aquisição sem Incidência da Contribuição","tax_code_5" +"cst_60","75","Operação de Aquisição por Substituição Tributária","tax_code_5" +"cst_61","98","Outras Operações de Entrada","tax_code_5" +"cst_62","99","Outras Operações","tax_code_5" +"cst_63","01","Operação Tributável - Base de Cálculo = Valor da Operação Alíquota Normal (Cumulativo/Não Cumulativo)","tax_code_4" +"cst_64","02","Operação Tributável - Base de Calculo = Valor da Operação (Alíquota Diferenciada)","tax_code_4" +"cst_65","03","Operação Tributável - Base de Calculo = Quantidade Vendida x Alíquota por Unidade de Produto","tax_code_4" +"cst_66","04","Operação Tributável - Tributação Monofásica - (Alíquota Zero)","tax_code_4" +"cst_67","01","Operação Tributável com Alíquota Básica","tax_code_4" +"cst_68","02","Operação Tributável com Alíquota Diferenciada","tax_code_4" +"cst_69","03","Operação Tributável com Alíquota por Unidade de Medida de Produto","tax_code_4" +"cst_70","04","Operação Tributável Monofásica - Revenda a Alíquota Zero","tax_code_4" +"cst_71","05","Operação Tributável por Substituição Tributária","tax_code_4" +"cst_72","06","Operação Tributável a Alíquota Zero","tax_code_4" +"cst_73","07","Operação Isenta da Contribuição","tax_code_4" +"cst_74","08","Operação sem Incidência da Contribuição","tax_code_4" +"cst_75","09","Operação com Suspensão da Contribuição","tax_code_4" +"cst_76","49","Outras Operações de Saída","tax_code_4" +"cst_77","50","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_4" +"cst_78","51","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno","tax_code_4" +"cst_79","52","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação","tax_code_4" +"cst_80","53","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_4" +"cst_81","54","Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_4" +"cst_82","55","Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_4" +"cst_83","56","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação","tax_code_4" +"cst_84","60","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_4" +"cst_85","61","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_4" +"cst_86","62","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação","tax_code_4" +"cst_87","63","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_4" +"cst_88","64","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_4" +"cst_89","65","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_4" +"cst_90","66","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação","tax_code_4" +"cst_91","67","Crédito Presumido - Outras Operações","tax_code_4" +"cst_92","70","Operação de Aquisição sem Direito a Crédito","tax_code_4" +"cst_93","71","Operação de Aquisição com Isenção","tax_code_4" +"cst_94","72","Operação de Aquisição com Suspensão","tax_code_4" +"cst_95","73","Operação de Aquisição a Alíquota Zero","tax_code_4" +"cst_96","74","Operação de Aquisição sem Incidência da Contribuição","tax_code_4" +"cst_97","75","Operação de Aquisição por Substituição Tributária","tax_code_4" +"cst_98","98","Outras Operações de Entrada","tax_code_4" +"cst_99","99","Outras Operações","tax_code_4" diff --git a/l10n_br_account/data/l10n_br_chart_template.xml b/l10n_br_account/data/l10n_br_chart_template.xml new file mode 100644 index 000000000000..7a1dc5eb23e4 --- /dev/null +++ b/l10n_br_account/data/l10n_br_chart_template.xml @@ -0,0 +1,27 @@ + + + + + + Planilha de Contas Brasileira + + + + + + + + + + + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. + This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + open + onskip + + + + + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py new file mode 100644 index 000000000000..a077df3ab594 --- /dev/null +++ b/l10n_br_account/invoice.py @@ -0,0 +1,508 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +import time +import netsvc +from osv import fields, osv +import decimal_precision as dp +import pooler +from tools import config +from tools.translate import _ + +############################################################################## +# Fatura (Nota Fiscal) Personalizado +############################################################################## +class account_invoice(osv.osv): + _inherit = 'account.invoice' + + def _amount_all(self, cr, uid, ids, name, args, context=None): + res = {} + for invoice in self.browse(cr, uid, ids, context=context): + res[invoice.id] = { + 'amount_untaxed': 0.0, + 'amount_tax': 0.0, + 'amount_tax_discount': 0.0, + 'amount_total': 0.0, + 'icms_base': 0.0, + 'icms_value': 0.0, + 'ipi_base': 0.0, + 'ipi_value': 0.0, + } + for line in invoice.invoice_line: + res[invoice.id]['amount_untaxed'] += line.price_total + res[invoice.id]['amount_tax_discount'] += line.price_total - line.price_subtotal + res[invoice.id]['icms_base'] += line.icms_base + res[invoice.id]['icms_value'] += line.icms_value + res[invoice.id]['ipi_base'] += line.ipi_base + res[invoice.id]['ipi_value'] += line.ipi_value + + + for invoice_tax in invoice.tax_line: + res[invoice.id]['amount_tax'] += invoice_tax.amount + + if res[invoice.id]['amount_tax_discount'] > 0 and res[invoice.id]['amount_tax'] > 0: + res[invoice.id]['amount_tax'] = res[invoice.id]['amount_tax'] - res[invoice.id]['amount_tax_discount'] + + res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] + + return res + + def _get_invoice_line(self, cr, uid, ids, context=None): + result = super(account_invoice, self)._get_invoice_line(cr, uid, ids, context) + return result.keys() + + def _get_invoice_tax(self, cr, uid, ids, context=None): + result = super(account_invoice, self)._get_invoice_tax(cr, uid, ids, context) + return result.keys() + + _columns = { + 'state': fields.selection([ + ('draft','Draft'), + ('proforma','Pro-forma'), + ('proforma2','Pro-forma'), + ('open','Open'), + ('sefaz_out','Enviar para Receita'), + ('sefaz_aut','Autorizada pela Receita'), + ('paid','Paid'), + ('cancel','Cancelled') + ],'State', select=True, readonly=True, + help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \ + \n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \ + \n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \ + \n* The \'Paid\' state is set automatically when invoice is paid.\ + \n* The \'sefaz_out\' Gerado aquivo de exportação para sistema daReceita.\ + \n* The \'sefaz_aut\' Recebido arquivo de autolização da Receita.\ + \n* The \'Cancelled\' state is used when user cancel invoice.'), + 'access_key_nfe': fields.char('Chave de Acesso', size=44, readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), + 'document_serie_id': fields.many2one('l10n_br.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), + 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'amount_tax': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Tax', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'amount_total': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Total', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'icms_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base ICMS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + #'account.invoice.tax': (_get_invoice_tax, None, 20), + #'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'icms_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor ICMS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'ipi_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base IPI', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'ipi_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor IPI', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + } + + def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ + date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): + + result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) + result['value']['fiscal_operation_id'] = False + result['value']['cfop_id'] = False + result['value']['fiscal_document_id'] = False + + if not partner_id or not company_id or not result['value']['address_invoice_id']: + return result + + obj_company = self.pool.get('res.company').browse(cr, uid, [company_id])[0] + + company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + from_country = company_addr_default.country_id.id + from_state = company_addr_default.state_id.id + + obj_partner = self.pool.get('res.partner').browse(cr, uid, [partner_id])[0] + partner_fiscal_type = obj_partner.partner_fiscal_type_id.id + + #if obj_partner.property_account_position.id: + # obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + # obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + # result['value']['fiscal_position'] = obj_fpo.id + # result['value']['fiscal_operation_id'] = obj_foperation.id + # result['value']['cfop_id'] = obj_foperation.cfop_id.id + # result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + + # for inv in self.browse(cr,uid,ids): + # for line in inv.invoice_line: + # line.cfop_id = obj_foperation.cfop_id.id + # + # return result + + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [result['value']['address_invoice_id']])[0] + + to_country = partner_addr_default.country_id.id + to_state = partner_addr_default.state_id.id + + fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('partner_fiscal_type_id','=',partner_fiscal_type),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) + + if fsc_pos_id: + obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] + obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + result['value']['fiscal_position'] = obj_fpo.id + result['value']['fiscal_operation_id'] = obj_foperation.id + result['value']['cfop_id'] = obj_foperation.cfop_id.id + result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + + #for inv in self.browse(cr,uid,ids): + # for line in inv.invoice_line: + # line.cfop_id = obj_foperation.cfop_id.id + #line.write(cr, uid, line.id, {'cfop_id': obj_foperation.cfop_id.id}) + return result + + def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id, fiscal_operation_category_id=False): + + result = super(account_invoice, self).onchange_company_id(cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id) + result['value']['fiscal_operation_id'] = False + result['value']['cfop_id'] = False + result['value']['fiscal_document_id'] = False + + if not partner_id or not company_id or not address_invoice_id: + return result + + obj_company = self.pool.get('res.company').browse(cr, uid, [company_id])[0] + + company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + from_country = company_addr_default.country_id.id + from_state = company_addr_default.state_id.id + + obj_partner = self.pool.get('res.partner').browse(cr, uid, [partner_id])[0] + partner_fiscal_type = obj_partner.partner_fiscal_type_id.id + + if obj_partner.property_account_position.id: + obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + result['value']['fiscal_position'] = obj_fpo.id + result['value']['fiscal_operation_id'] = obj_foperation.id + result['value']['cfop_id'] = obj_foperation.cfop_id.id + result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + return result + + partner_addr_invoice = self.pool.get('res.partner.address').browse(cr, uid, [address_invoice_id])[0] + + to_country = partner_addr_invoice.country_id.id + to_state = partner_addr_invoice.state_id.id + + fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('partner_fiscal_type_id','=',partner_fiscal_type),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) + + if fsc_pos_id: + obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] + obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + result['value']['fiscal_position'] = obj_fpo.id + result['value']['fiscal_operation_id'] = obj_foperation.id + result['value']['cfop_id'] = obj_foperation.cfop_id.id + result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + + for inv in self.browse(cr,uid,ids): + for line in inv.invoice_line: + line.cfop_id = obj_foperation.cfop_id.id + + return result + + def onchange_address_invoice_id(self, cr, uid, ids, cpy_id, ptn_id, ptn_invoice_id, fiscal_operation_category_id=False): + + result = super(account_invoice, self).onchange_address_invoice_id(cr,uid,ids,cpy_id,ptn_id,ptn_invoice_id) + result['value']['fiscal_operation_id'] = False + result['value']['cfop_id'] = False + result['value']['fiscal_document_id'] = False + + if not ptn_id or not cpy_id or not ptn_invoice_id: + return result + + obj_company = self.pool.get('res.company').browse(cr, uid, [cpy_id])[0] + + company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + from_country = company_addr_default.country_id.id + from_state = company_addr_default.state_id.id + + obj_partner = self.pool.get('res.partner').browse(cr, uid, [ptn_id])[0] + partner_fiscal_type = obj_partner.partner_fiscal_type_id.id + + if obj_partner.property_account_position.id: + obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + result['value']['fiscal_position'] = obj_fpo.id + result['value']['fiscal_operation_id'] = obj_foperation.id + result['value']['cfop_id'] = obj_foperation.cfop_id.id + result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + return result + + partner_addr_invoice = self.pool.get('res.partner.address').browse(cr, uid, [ptn_invoice_id])[0] + + to_country = partner_addr_invoice.country_id.id + to_state = partner_addr_invoice.state_id.id + + fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=', cpy_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) + + if fsc_pos_id: + obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] + obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] + obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + result['value']['fiscal_position'] = obj_fpo.id + result['value']['fiscal_operation_id'] = obj_foperation.id + result['value']['cfop_id'] = obj_foperation.cfop_id.id + result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + + for inv in self.browse(cr,uid,ids): + for line in inv.invoice_line: + line.cfop_id = obj_foperation.cfop_id.id + + return result + + def onchange_cfop_id(self, cr, uid, ids, cfop_id): + + if not cfop_id: + return False + + for inv in self.browse(cr, uid, ids): + for inv_line in inv.invoice_line: + self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv_line.fiscal_operation_id.cfop_id.id}) + + return {'value': {'cfop_id': cfop_id}} + +account_invoice() + +class account_invoice_line(osv.osv): + _inherit = 'account.invoice.line' + + def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): + + res = {} #super(account_invoice_line, self)._amount_line(cr, uid, ids, prop, unknow_none, unknow_dict) + + tax_obj = self.pool.get('account.tax') + fsc_op_line_obj = self.pool.get('l10n_br.fiscal.operation.line') + cur_obj = self.pool.get('res.currency') + + for line in self.browse(cr, uid, ids): + res[line.id] = { + 'price_subtotal': 0.0, + 'price_total': 0.0, + 'icms_base': 0.0, + 'icms_value': 0.0, + 'icms_percent': 0.0, + 'icms_cst': '', + 'ipi_base': 0.0, + 'ipi_value': 0.0, + 'ipi_percent': 0.0, + 'ipi_cst': '', + 'pis_base': 0.0, + 'pis_value': 0.0, + 'pis_percent': 0.0, + 'pis_cst': '', + 'cofins_base': 0.0, + 'cofins_value': 0.0, + 'cofins_percent': 0.0, + 'cofins_cst': '', + } + price = line.price_unit * (1-(line.discount or 0.0)/100.0) + taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, price, line.quantity, product=line.product_id, address_id=line.invoice_id.address_invoice_id, partner=line.invoice_id.partner_id) + + icms_base = 0.0 + icms_value = 0.0 + icms_percent = 0.0 + icms_cst = '' + ipi_base = 0.0 + ipi_value = 0.0 + ipi_percent = 0.0 + ipi_cst = '' + pis_base = 0.0 + pis_value = 0.0 + pis_percent = 0.0 + pis_cst = '' + cofins_base = 0.0 + cofins_value = 0.0 + cofins_percent = 0.0 + cofins_cst = '' + + for tax in taxes['taxes']: + fsc_op_line_ids = 0 + tax_brw = tax_obj.browse(cr, uid, tax['id']) + if line.invoice_id.fiscal_operation_id: + fsc_op_line_ids = fsc_op_line_obj.search(cr, uid, [('tax_code_id','=', tax_brw.tax_code_id.id),('fiscal_operation_id','=',line.invoice_id.fiscal_operation_id.id)]) + cst_code = '' + if fsc_op_line_ids: + fsc_op_line = fsc_op_line_obj.browse(cr, uid, fsc_op_line_ids)[0] + cst_code = fsc_op_line.cst_id.code + + if tax_brw.domain == 'icms': + icms_base = taxes['total'] + icms_value = tax['amount'] + icms_percent = tax_brw.amount * 100 + icms_cst = cst_code + + if tax_brw.domain == 'ipi': + ipi_base = taxes['total'] + ipi_value = tax['amount'] + ipi_percent = tax_brw.amount * 100 + ipi_cst = cst_code + + if tax_brw.domain == 'pis': + pis_base = taxes['total'] + ipi_value + pis_value = tax['amount'] + pis_percent = tax_brw.amount * 100 + pis_cst = cst_code + + if tax_brw.domain == 'cofins': + cofins_base = taxes['total'] + ipi_value + cofins_value = tax['amount'] + cofins_percent = tax_brw.amount * 100 + cofins_cst = cst_code + + res[line.id] = { + 'price_subtotal': taxes['total'] - taxes['total_tax_discount'], + 'price_total': taxes['total'], + 'icms_base': icms_base, + 'icms_value': icms_value, + 'icms_percent': icms_percent, + 'icms_cst': icms_cst, + 'ipi_base': ipi_base, + 'ipi_value': ipi_value, + 'ipi_percent': ipi_percent, + 'ipi_cst': ipi_cst, + 'pis_base': pis_base, + 'pis_value': pis_value, + 'pis_percent': pis_percent, + 'pis_cst': pis_cst, + 'cofins_base': cofins_base, + 'cofins_value': cofins_value, + 'cofins_percent': cofins_percent, + 'cofins_cst': cofins_cst, + } + + if line.invoice_id: + cur = line.invoice_id.currency_id + res[line.id] = { + 'price_subtotal': cur_obj.round(cr, uid, cur, res[line.id]['price_subtotal']), + 'price_total': cur_obj.round(cr, uid, cur, res[line.id]['price_total']), + 'icms_base': cur_obj.round(cr, uid, cur, icms_base), + 'icms_value': cur_obj.round(cr, uid, cur, icms_value), + 'icms_percent': icms_percent, + 'icms_cst': icms_cst, + 'ipi_base': cur_obj.round(cr, uid, cur, ipi_base), + 'ipi_value': cur_obj.round(cr, uid, cur, ipi_value), + 'ipi_percent': ipi_percent, + 'ipi_cst': ipi_cst, + 'pis_base': cur_obj.round(cr, uid, cur, pis_base), + 'pis_value': cur_obj.round(cr, uid, cur, pis_value), + 'pis_percent': pis_percent, + 'pis_cst': pis_cst, + 'cofins_base': cur_obj.round(cr, uid, cur, cofins_base), + 'cofins_value': cur_obj.round(cr, uid, cur, cofins_value), + 'cofins_percent': cofins_percent, + 'cofins_cst': cofins_cst, + } + return res + + _columns = { + 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP'), + 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'price_total': fields.function(_amount_line, method=True, string='Total', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'icms_base': fields.function(_amount_line, method=True, string='Base ICMS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'icms_value': fields.function(_amount_line, method=True, string='Valor ICMS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'icms_percent': fields.function(_amount_line, method=True, string='Perc ICMS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'icms_cst': fields.function(_amount_line, method=True, string='CST ICMS', type="char", size=2, + store=True, multi='all'), + 'ipi_base': fields.function(_amount_line, method=True, string='Base IPI', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'ipi_value': fields.function(_amount_line, method=True, string='Valor IPI', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'ipi_percent': fields.function(_amount_line, method=True, string='Perc IPI', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'ipi_cst': fields.function(_amount_line, method=True, string='CST IPI', type="char", size=2, + store=True, multi='all'), + 'pis_base': fields.function(_amount_line, method=True, string='Base PIS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'pis_value': fields.function(_amount_line, method=True, string='Valor PIS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'pis_percent': fields.function(_amount_line, method=True, string='Perc PIS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'pis_cst': fields.function(_amount_line, method=True, string='Valor ICMS', type="char", size=2, + store=True, multi='all'), + 'cofins_base': fields.function(_amount_line, method=True, string='Base COFINS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'cofins_value': fields.function(_amount_line, method=True, string='Valor COFINS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'cofins_percent': fields.function(_amount_line, method=True, string='Perc COFINS', type="float", + digits_compute= dp.get_precision('Account'), store=True, multi='all'), + 'cofins_cst': fields.function(_amount_line, method=True, string='Valor COFINS', type="char", size=2, + store=True, multi='all'), + } + + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, cfop_id=False): + + result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context) + + if not cfop_id: + return result + + result['value']['cfop_id'] = cfop_id + + return result + +account_invoice_line() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/l10n_br.py b/l10n_br_account/l10n_br.py new file mode 100644 index 000000000000..4da067f0787a --- /dev/null +++ b/l10n_br_account/l10n_br.py @@ -0,0 +1,142 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import osv, fields + +################################################################################# +# CFOP - Código Fiscal de Operações e Prestações +################################################################################# +class l10n_br_cfop(osv.osv): + _description = 'CFOP - Código Fiscal de Operações e Prestações' + _name = 'l10n_br.cfop' + + def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): + if not args: + args = [] + if context is None: + context = {} + ids = self.search(cr, user, ['|',('name',operator,name),('code',operator,name)] + args, limit=limit, context=context) + return self.name_get(cr, user, ids, context) + + def name_get(self, cr, uid, ids, context=None): + if not len(ids): + return [] + if isinstance(ids, (int, long)): + ids = [ids] + reads = self.read(cr, uid, ids, ['name','code'], context, load='_classic_write') + return [(x['id'], (x['code'] and x['code'] + ' - ' or '') + x['name']) \ + for x in reads] + + _columns = { + 'code': fields.char('Código', size=4), + 'name': fields.char('Nome', size=256), + 'small_name': fields.char('Nome Reduzido', size=32), + 'description': fields.text('Descrição'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), + 'parent_id': fields.many2one('l10n_br.cfop', 'CFOP Pai'), + 'child_ids': fields.one2many('l10n_br.cfop', 'parent_id', 'CFOP filhos'), + } +l10n_br_cfop() + +################################################################################# +# Tipo de Documento Fiscal +################################################################################# +class l10n_br_fiscal_document(osv.osv): + _name = 'l10n_br.fiscal.document' + _description = 'Tipo de Documento Fiscal' + _columns = { + 'code': fields.char('Codigo', size=8), + 'name': fields.char('Descrição', size=64), + 'nfe': fields.boolean('NFe'), + } +l10n_br_fiscal_document() + +################################################################################# +# Código de Situação Tributária +################################################################################# +class l10n_br_cst(osv.osv): + _name = 'l10n_br.cst' + _description = 'Código de Situação Tributária' + _columns = { + 'code': fields.char('Codigo', size=8,required=True), + 'name': fields.char('Descrição', size=64), + 'tax_code_id': fields.many2one('account.tax.code', 'Modelo do Imposto',required=True), + } +l10n_br_cst() + +################################################################################# +# Categorias Operações Fiscais +################################################################################# +class l10n_br_fiscal_operation_category(osv.osv): + _name = 'l10n_br.fiscal.operation.category' + _description = 'Categoria de Operações Fiscais' + _columns = { + 'code': fields.char('Código', size=24, required=True), + 'name': fields.char('Descrição', size=64), + } +l10n_br_fiscal_operation_category() + +################################################################################# +# Operações Fiscais +################################################################################# +class l10n_br_fiscal_operation(osv.osv): + _name = 'l10n_br.fiscal.operation' + _description = 'Operações fiscais' + _columns = { + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=64), + 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), + 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP', requeried=True), + 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento Fiscal', requeried=True), + 'fiscal_operation_line': fields.one2many('l10n_br.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), + } + +l10n_br_fiscal_operation() + +################################################################################# +# Linhas das Operações fiscais +################################################################################# +class l10n_br_fiscal_operation_line(osv.osv): + _name = 'l10n_br.fiscal.operation.line' + _description = 'Linhas das operações ficais' + _columns = { + 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto'), + 'cst_id': fields.many2one('l10n_br.cst', 'Código de Situação Tributária'), + 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), + } + +l10n_br_fiscal_operation_line() + +################################################################################# +# Serie de Documentos Fiscais +################################################################################# +class l10n_br_document_serie(osv.osv): + _name = 'l10n_br.document.serie' + _description = 'Serie de documentos fiscais' + _columns = { + 'code': fields.char('Código', size=3, required=True), + 'name': fields.char('Descrição', size=64), + 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento Fiscal', requeried=True), + 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), + 'active':fields.boolean('Ativo'), + } + +l10n_br_document_serie() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/l10n_br_report.xml b/l10n_br_account/l10n_br_report.xml new file mode 100644 index 000000000000..ebfe70e4c506 --- /dev/null +++ b/l10n_br_account/l10n_br_report.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/l10n_br_account/l10n_br_view.xml b/l10n_br_account/l10n_br_view.xml new file mode 100644 index 000000000000..f53bc98847bd --- /dev/null +++ b/l10n_br_account/l10n_br_view.xml @@ -0,0 +1,316 @@ + + + + + + l10n_br.cfop.name + l10n_br.cfop + form + +
+ + + + + + + + + +
+ + + l10n_br.cfop.search + l10n_br.cfop + search + + + + + + + + + + + + + + + + + + l10n_br.cfop + l10n_br.cfop + tree + + + + + + + + + + + l10n_br.fiscal.document + l10n_br.fiscal.document + form + +
+ + + + + +
+ + + l10n_br.fiscal.document + l10n_br.fiscal.document + tree + + + + + + + + + + + l10n_br.cst + l10n_br.cst + form + +
+ + + + + +
+ + + l10n_br.cst + l10n_br.cst + tree + + + + + + + + + + + l10n_br.fiscal.operation.category + l10n_br.fiscal.operation.category + form + +
+ + + + +
+ + + l10n_br.fiscal.operation.category + l10n_br.fiscal.operation.category + tree + + + + + + + + + + l10n_br.fiscal.operation + l10n_br.fiscal.operation + form + +
+ + + + + + + + +
+ + + l10n_br.fiscal.operation + l10n_br.fiscal.operation + tree + + + + + + + + + + + + + l10n_br.fiscal.operation.line + l10n_br.fiscal.operation.line + form + +
+ + + + +
+ + + l10n_br.fiscal.operation.line + l10n_br.fiscal.operation.line + tree + + + + + + + + + + l10n_br.partner.fiscal.type + l10n_br.partner.fiscal.type + form + +
+ + + + + + + + +
+ + + l10n_br.partner.fiscal.type + l10n_br.partner.fiscal.type + tree + + + + + + + + + + + l10n_br.document.serie + l10n_br.document.serie + form + +
+ + + + + + + +
+ + + l10n_br.document.serie + l10n_br.document.serie + tree + + + + + + + + + + + + + CFOP + ir.actions.act_window + l10n_br.cfop + tree,form + form + + + + + Documento Fiscal + ir.actions.act_window + l10n_br.fiscal.document + tree,form + form + + + + + Código de Situação Tributária + ir.actions.act_window + l10n_br.cst + tree,form + form + + + + + Operação Fiscal + ir.actions.act_window + l10n_br.fiscal.operation + tree,form + form + + + + + Operação Fiscal + ir.actions.act_window + l10n_br.fiscal.operation.category + tree,form + form + + + + + Document Serie + ir.actions.act_window + l10n_br.document.serie + tree,form + form + + + + + + + + + + + + + + + + + +
+ +
+ diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py new file mode 100644 index 000000000000..6c5ac535ceda --- /dev/null +++ b/l10n_br_account/partner.py @@ -0,0 +1,33 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import osv, fields + +############################################################################## +# Posição Fiscal Personalizada +############################################################################## +class account_fiscal_position(osv.osv): + _inherit = 'account.fiscal.position' + _columns = { + 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Operação Fiscal'), + } + +account_fiscal_position() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml new file mode 100644 index 000000000000..9b9e0cce8ed8 --- /dev/null +++ b/l10n_br_account/partner_view.xml @@ -0,0 +1,18 @@ + + + + + + l10n_br.fiscal.position.form + account.fiscal.position + + form + + + + + + + + + diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv new file mode 100644 index 000000000000..9d8813185cfd --- /dev/null +++ b/l10n_br_account/security/ir.model.access.csv @@ -0,0 +1,8 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"l10n_br_cfop","l10n_br.cfop","model_l10n_br_cfop","account.group_account_invoice",1,1,1,1 +"l10n_br_fiscal_document","l10n_br.fiscal.document","model_l10n_br_fiscal_document","account.group_account_invoice",1,1,1,1 +"l10n_br_cst","l10n_br.cst","model_l10n_br_cst","account.group_account_invoice",1,1,1,1 +"l10n_br_fiscal_operation_category","l10n_br.fiscal.operation.category","model_l10n_br_fiscal_operation_category","account.group_account_invoice",1,1,1,1 +"l10n_br_fiscal_operation","l10n_br.fiscal.operation","model_l10n_br_fiscal_operation","account.group_account_invoice",1,1,1,1 +"l10n_br_fiscal_operation_line","l10n_br.fiscal.operation.line","model_l10n_br_fiscal_operation_line","account.group_account_invoice",1,1,1,1 +"l10n_br_document_serie","l10n_br.document.serie","model_l10n_br_document_serie","account.group_account_invoice",1,1,1,1 From f3631133c4d5f4f325436fa31192a4be2d199e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 13:24:17 -0200 Subject: [PATCH 0002/1549] [REF] updated l10n_br_account file names --- l10n_br_account/__init__.py | 2 +- l10n_br_account/__openerp__.py | 2 +- l10n_br_account/l10n_br_report.xml | 6 - l10n_br_account/l10n_br_view.xml | 316 ----------------------------- 4 files changed, 2 insertions(+), 324 deletions(-) delete mode 100644 l10n_br_account/l10n_br_report.xml delete mode 100644 l10n_br_account/l10n_br_view.xml diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 1a96a14a3d3a..14a536c41beb 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -17,7 +17,7 @@ #along with this program. If not, see . # ################################################################################# -import l10n_br +import l10n_br_account import partner import account import invoice diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 8f467830ea7d..c3bb4f5b92de 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -40,7 +40,7 @@ 'data/account_tax_template.xml', ], 'update_xml' : [ - 'l10n_br_view.xml', + 'l10n_br_account_view.xml', 'partner_view.xml', 'account_invoice_view.xml', 'account_view.xml', diff --git a/l10n_br_account/l10n_br_report.xml b/l10n_br_account/l10n_br_report.xml deleted file mode 100644 index ebfe70e4c506..000000000000 --- a/l10n_br_account/l10n_br_report.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/l10n_br_account/l10n_br_view.xml b/l10n_br_account/l10n_br_view.xml deleted file mode 100644 index f53bc98847bd..000000000000 --- a/l10n_br_account/l10n_br_view.xml +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - l10n_br.cfop.name - l10n_br.cfop - form - -
- - - - - - - - - -
- - - l10n_br.cfop.search - l10n_br.cfop - search - - - - - - - - - - - - - - - - - - l10n_br.cfop - l10n_br.cfop - tree - - - - - - - - - - - l10n_br.fiscal.document - l10n_br.fiscal.document - form - -
- - - - - -
- - - l10n_br.fiscal.document - l10n_br.fiscal.document - tree - - - - - - - - - - - l10n_br.cst - l10n_br.cst - form - -
- - - - - -
- - - l10n_br.cst - l10n_br.cst - tree - - - - - - - - - - - l10n_br.fiscal.operation.category - l10n_br.fiscal.operation.category - form - -
- - - - -
- - - l10n_br.fiscal.operation.category - l10n_br.fiscal.operation.category - tree - - - - - - - - - - l10n_br.fiscal.operation - l10n_br.fiscal.operation - form - -
- - - - - - - - -
- - - l10n_br.fiscal.operation - l10n_br.fiscal.operation - tree - - - - - - - - - - - - - l10n_br.fiscal.operation.line - l10n_br.fiscal.operation.line - form - -
- - - - -
- - - l10n_br.fiscal.operation.line - l10n_br.fiscal.operation.line - tree - - - - - - - - - - l10n_br.partner.fiscal.type - l10n_br.partner.fiscal.type - form - -
- - - - - - - - -
- - - l10n_br.partner.fiscal.type - l10n_br.partner.fiscal.type - tree - - - - - - - - - - - l10n_br.document.serie - l10n_br.document.serie - form - -
- - - - - - - -
- - - l10n_br.document.serie - l10n_br.document.serie - tree - - - - - - - - - - - - - CFOP - ir.actions.act_window - l10n_br.cfop - tree,form - form - - - - - Documento Fiscal - ir.actions.act_window - l10n_br.fiscal.document - tree,form - form - - - - - Código de Situação Tributária - ir.actions.act_window - l10n_br.cst - tree,form - form - - - - - Operação Fiscal - ir.actions.act_window - l10n_br.fiscal.operation - tree,form - form - - - - - Operação Fiscal - ir.actions.act_window - l10n_br.fiscal.operation.category - tree,form - form - - - - - Document Serie - ir.actions.act_window - l10n_br.document.serie - tree,form - form - - - - - - - - - - - - - - - - - -
- -
- From 7233d779c93eeecdbf0aa6caad74fef77c9afd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 13:31:59 -0200 Subject: [PATCH 0003/1549] [REF] renamed l10n_br_account file --- l10n_br_account/{l10n_br.py => l10n_br_account.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename l10n_br_account/{l10n_br.py => l10n_br_account.py} (100%) diff --git a/l10n_br_account/l10n_br.py b/l10n_br_account/l10n_br_account.py similarity index 100% rename from l10n_br_account/l10n_br.py rename to l10n_br_account/l10n_br_account.py From b59d4d23bbee0054e627f3521f58ec5a7900de58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 13:51:20 -0200 Subject: [PATCH 0004/1549] [REF] moved "tipo pessoa" from l10_br_account to l10n_br_base --- l10n_br_account/l10n_br_account.py | 16 ++++++++++++++++ l10n_br_account/partner.py | 10 ++++++++++ l10n_br_account/partner_view.xml | 17 +++++++++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 4da067f0787a..f3372e1ef5a5 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -139,4 +139,20 @@ class l10n_br_document_serie(osv.osv): l10n_br_document_serie() +################################################################################ +# Tipo Fiscal de Parceiros +################################################################################# +class l10n_br_partner_fiscal_type(osv.osv): + _name = 'l10n_br.partner.fiscal.type' + _description = 'Tipo Fiscal de Parceiros' + _columns = { + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=64), + 'tipo_pessoa': fields.selection([('F', 'Física'), ('J', 'Jurídica')], 'Tipo de pessoa', required=True), + 'icms': fields.boolean('Recupera ICMS'), + 'ipi':fields.boolean('Recupera IPI'), + } + +l10n_br_partner_fiscal_type() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 6c5ac535ceda..78afb960037b 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -19,6 +19,16 @@ from osv import osv, fields +############################################################################## +# Parceiro Personalizado +############################################################################## +class res_partner(osv.osv): + _inherit = 'res.partner' + _columns = { + 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + } +res_partner() + ############################################################################## # Posição Fiscal Personalizada ############################################################################## diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index 9b9e0cce8ed8..f62f00bc6e58 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -2,8 +2,8 @@ - - l10n_br.fiscal.position.form + + l10n_br_account.fiscal.position.form account.fiscal.position form @@ -14,5 +14,18 @@ + + l10n_br_account.partner.form5 + res.partner + + + + + + + + + + From d6910119b100f870cbb23a56571487ff6d28d3bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 14:18:37 -0200 Subject: [PATCH 0005/1549] [REF] fixed l10n_br_base names, installation works, sounds great! --- l10n_br_account/security/ir.model.access.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index 9d8813185cfd..e1be4c7c5386 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -1,4 +1,5 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"l10n_br_account_partner_fiscal_type","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 "l10n_br_cfop","l10n_br.cfop","model_l10n_br_cfop","account.group_account_invoice",1,1,1,1 "l10n_br_fiscal_document","l10n_br.fiscal.document","model_l10n_br_fiscal_document","account.group_account_invoice",1,1,1,1 "l10n_br_cst","l10n_br.cst","model_l10n_br_cst","account.group_account_invoice",1,1,1,1 From e54d4fa736eb90debb7ce45d5d577a14d41b9fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 14:36:24 -0200 Subject: [PATCH 0006/1549] [REF] l10n_br_account: renaming l10n_br -> l10n_br_account: work in progress --- l10n_br_account/__openerp__.py | 4 +- l10n_br_account/data/l10n_br.cst.csv | 100 ------------------ ...xml => l10n_br_account_chart_template.xml} | 0 l10n_br_account/security/ir.model.access.csv | 14 +-- 4 files changed, 9 insertions(+), 109 deletions(-) delete mode 100644 l10n_br_account/data/l10n_br.cst.csv rename l10n_br_account/data/{l10n_br_chart_template.xml => l10n_br_account_chart_template.xml} (100%) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index c3bb4f5b92de..71a8537f4c1e 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -35,8 +35,8 @@ 'data/account.account.type.csv', 'data/account.tax.code.template.csv', 'data/account.account.template.csv', -# 'data/l10n_br.cst.csv', - 'data/l10n_br_chart_template.xml', +# 'data/l10n_br_account.cst.csv', + 'data/l10n_br_account_chart_template.xml', 'data/account_tax_template.xml', ], 'update_xml' : [ diff --git a/l10n_br_account/data/l10n_br.cst.csv b/l10n_br_account/data/l10n_br.cst.csv deleted file mode 100644 index 2a451cd8e0a7..000000000000 --- a/l10n_br_account/data/l10n_br.cst.csv +++ /dev/null @@ -1,100 +0,0 @@ -"id","code","name","tax_code_id:id" -"cst_1","00","Tributada integralmente","tax_code_1" -"cst_2","10","Tributada e com cobrança do ICMS por substituição tributária","tax_code_1" -"cst_3","20","Com redução de base de cálculo","tax_code_1" -"cst_4","30","Isenta ou não tributada e com cobrança do ICMS por substituição tributária","tax_code_1" -"cst_5","40","Isenta","tax_code_1" -"cst_6","41","Não tributada","tax_code_1" -"cst_7","50","Suspensão","tax_code_1" -"cst_8","51","Diferimento","tax_code_1" -"cst_9","60","ICMS cobrado anteriormente por substituição tributária","tax_code_1" -"cst_10","70","Com redução de base de cálculo e cobrança do ICMS por substituição tributária","tax_code_1" -"cst_11","90","Outras","tax_code_1" -"cst_12","00","Entrada com recuperação de crédito","tax_code_3" -"cst_13","01","Entrada tributada com alíquota zero","tax_code_3" -"cst_14","02","Entrada isenta","tax_code_3" -"cst_15","03","Entrada não-tributada","tax_code_3" -"cst_16","04","Entrada imune","tax_code_3" -"cst_17","05","Entrada com suspensão","tax_code_3" -"cst_18","49","Outras entradas","tax_code_3" -"cst_19","50","Saída tributada","tax_code_3" -"cst_20","51","Saída tributada com alíquota zero","tax_code_3" -"cst_21","52","Saída isenta","tax_code_3" -"cst_22","53","Saída não-tributada","tax_code_3" -"cst_23","54","Saída imune","tax_code_3" -"cst_24","55","Saída com suspensão","tax_code_3" -"cst_25","99","Outras saídas","tax_code_3" -"cst_26","01","Operação Tributável - Base de Cálculo = Valor da Operação Alíquota Normal (Cumulativo/Não Cumulativo)","tax_code_5" -"cst_27","02","Operação Tributável - Base de Calculo = Valor da Operação (Alíquota Diferenciada)","tax_code_5" -"cst_28","03","Operação Tributável - Base de Calculo = Quantidade Vendida x Alíquota por Unidade de Produto","tax_code_5" -"cst_29","04","Operação Tributável - Tributação Monofásica - (Alíquota Zero)","tax_code_5" -"cst_30","01","Operação Tributável com Alíquota Básica","tax_code_5" -"cst_31","02","Operação Tributável com Alíquota Diferenciada","tax_code_5" -"cst_32","03","Operação Tributável com Alíquota por Unidade de Medida de Produto","tax_code_5" -"cst_33","04","Operação Tributável Monofásica - Revenda a Alíquota Zero","tax_code_5" -"cst_34","05","Operação Tributável por Substituição Tributária","tax_code_5" -"cst_35","06","Operação Tributável a Alíquota zero","tax_code_5" -"cst_36","07","Operação Isenta da Contribuição","tax_code_5" -"cst_37","08","Operação sem Incidência da Contribuição","tax_code_5" -"cst_38","09","Operação com Suspensão da Contribuição","tax_code_5" -"cst_39","49","Outras Operações de Saída","tax_code_5" -"cst_40","50","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_5" -"cst_41","51","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_5" -"cst_42","52","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação","tax_code_5" -"cst_43","53","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_5" -"cst_44","54","Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_45","55","Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_46","56","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_47","60","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_5" -"cst_48","61","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_5" -"cst_49","62","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação","tax_code_5" -"cst_50","63","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_5" -"cst_51","64","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_52","65","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_53","66","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação","tax_code_5" -"cst_54","67","Crédito Presumido - Outras Operações","tax_code_5" -"cst_55","70","Operação de Aquisição sem Direito a Crédito","tax_code_5" -"cst_56","71","Operação de Aquisição com Isenção","tax_code_5" -"cst_57","72","Operação de Aquisição com Suspensão","tax_code_5" -"cst_58","73","Operação de Aquisição a Alíquota Zero","tax_code_5" -"cst_59","74","Operação de Aquisição sem Incidência da Contribuição","tax_code_5" -"cst_60","75","Operação de Aquisição por Substituição Tributária","tax_code_5" -"cst_61","98","Outras Operações de Entrada","tax_code_5" -"cst_62","99","Outras Operações","tax_code_5" -"cst_63","01","Operação Tributável - Base de Cálculo = Valor da Operação Alíquota Normal (Cumulativo/Não Cumulativo)","tax_code_4" -"cst_64","02","Operação Tributável - Base de Calculo = Valor da Operação (Alíquota Diferenciada)","tax_code_4" -"cst_65","03","Operação Tributável - Base de Calculo = Quantidade Vendida x Alíquota por Unidade de Produto","tax_code_4" -"cst_66","04","Operação Tributável - Tributação Monofásica - (Alíquota Zero)","tax_code_4" -"cst_67","01","Operação Tributável com Alíquota Básica","tax_code_4" -"cst_68","02","Operação Tributável com Alíquota Diferenciada","tax_code_4" -"cst_69","03","Operação Tributável com Alíquota por Unidade de Medida de Produto","tax_code_4" -"cst_70","04","Operação Tributável Monofásica - Revenda a Alíquota Zero","tax_code_4" -"cst_71","05","Operação Tributável por Substituição Tributária","tax_code_4" -"cst_72","06","Operação Tributável a Alíquota Zero","tax_code_4" -"cst_73","07","Operação Isenta da Contribuição","tax_code_4" -"cst_74","08","Operação sem Incidência da Contribuição","tax_code_4" -"cst_75","09","Operação com Suspensão da Contribuição","tax_code_4" -"cst_76","49","Outras Operações de Saída","tax_code_4" -"cst_77","50","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_4" -"cst_78","51","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno","tax_code_4" -"cst_79","52","Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação","tax_code_4" -"cst_80","53","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_4" -"cst_81","54","Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_4" -"cst_82","55","Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_4" -"cst_83","56","Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação","tax_code_4" -"cst_84","60","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno","tax_code_4" -"cst_85","61","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno","tax_code_4" -"cst_86","62","Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação","tax_code_4" -"cst_87","63","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno","tax_code_4" -"cst_88","64","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação","tax_code_4" -"cst_89","65","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação","tax_code_4" -"cst_90","66","Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação","tax_code_4" -"cst_91","67","Crédito Presumido - Outras Operações","tax_code_4" -"cst_92","70","Operação de Aquisição sem Direito a Crédito","tax_code_4" -"cst_93","71","Operação de Aquisição com Isenção","tax_code_4" -"cst_94","72","Operação de Aquisição com Suspensão","tax_code_4" -"cst_95","73","Operação de Aquisição a Alíquota Zero","tax_code_4" -"cst_96","74","Operação de Aquisição sem Incidência da Contribuição","tax_code_4" -"cst_97","75","Operação de Aquisição por Substituição Tributária","tax_code_4" -"cst_98","98","Outras Operações de Entrada","tax_code_4" -"cst_99","99","Outras Operações","tax_code_4" diff --git a/l10n_br_account/data/l10n_br_chart_template.xml b/l10n_br_account/data/l10n_br_account_chart_template.xml similarity index 100% rename from l10n_br_account/data/l10n_br_chart_template.xml rename to l10n_br_account/data/l10n_br_account_chart_template.xml diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index e1be4c7c5386..2bb9250c3173 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -1,9 +1,9 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "l10n_br_account_partner_fiscal_type","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 -"l10n_br_cfop","l10n_br.cfop","model_l10n_br_cfop","account.group_account_invoice",1,1,1,1 -"l10n_br_fiscal_document","l10n_br.fiscal.document","model_l10n_br_fiscal_document","account.group_account_invoice",1,1,1,1 -"l10n_br_cst","l10n_br.cst","model_l10n_br_cst","account.group_account_invoice",1,1,1,1 -"l10n_br_fiscal_operation_category","l10n_br.fiscal.operation.category","model_l10n_br_fiscal_operation_category","account.group_account_invoice",1,1,1,1 -"l10n_br_fiscal_operation","l10n_br.fiscal.operation","model_l10n_br_fiscal_operation","account.group_account_invoice",1,1,1,1 -"l10n_br_fiscal_operation_line","l10n_br.fiscal.operation.line","model_l10n_br_fiscal_operation_line","account.group_account_invoice",1,1,1,1 -"l10n_br_document_serie","l10n_br.document.serie","model_l10n_br_document_serie","account.group_account_invoice",1,1,1,1 +"l10n_br_account_cfop","l10n_br_account.cfop","model_l10n_br_account_cfop","account.group_account_invoice",1,1,1,1 +"l10n_br_account_fiscal_document","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_invoice",1,1,1,1 +"l10n_br_account_cst","l10n_br_account.cst","model_l10n_br_account_cst","account.group_account_invoice",1,1,1,1 +"l10n_br_account_fiscal_operation_category","l10n_br_account.fiscal.operation.category","model_l10n_br_account_fiscal_operation_category","account.group_account_invoice",1,1,1,1 +"l10n_br_account_fiscal_operation","l10n_br_account.fiscal.operation","model_l10n_br_account_fiscal_operation","account.group_account_invoice",1,1,1,1 +"l10n_br_account_fiscal_operation_line","l10n_br_account.fiscal.operation.line","model_l10n_br_account_fiscal_operation_line","account.group_account_invoice",1,1,1,1 +"l10n_br_account_document_serie","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_invoice",1,1,1,1 From ad5ad067952179fc3141a2161d5db78f249c4cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 16:27:21 -0200 Subject: [PATCH 0007/1549] [REF] l10n_br_account: renamed ids/names/objects l10n_br -> l10n_br_account; install works! --- l10n_br_account/__openerp__.py | 2 +- .../account_fiscal_position_rule.py | 8 +- .../account_fiscal_position_rule_view.xml | 8 +- l10n_br_account/account_invoice_view.out.xml | 0 l10n_br_account/account_invoice_view.xml | 60 ++++++-------- l10n_br_account/account_view.xml | 4 +- l10n_br_account/data/account_tax_template.xml | 80 +++++++++---------- .../data/l10n_br_account_chart_template.xml | 2 +- l10n_br_account/invoice.py | 24 +++--- l10n_br_account/l10n_br_account.py | 66 +++++++-------- l10n_br_account/partner.py | 4 +- l10n_br_account/partner_view.xml | 10 +-- 12 files changed, 128 insertions(+), 140 deletions(-) delete mode 100644 l10n_br_account/account_invoice_view.out.xml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 71a8537f4c1e..70456305724f 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -25,7 +25,7 @@ 'website' : 'http://openerpbrasil.org', 'version' : '0.6', 'depends' : [ - 'base', + 'l10n_br_base', 'account', 'account_chart', 'account_fiscal_position_rule', diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 6f43d1824be8..eca1ca72a192 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -25,8 +25,8 @@ class account_fiscal_position_rule_template(osv.osv): _inherit = 'account.fiscal.position.rule.template' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), 'use_picking' : fields.boolean('Use in Picking'), } @@ -35,8 +35,8 @@ class account_fiscal_position_rule_template(osv.osv): class account_fiscal_position_rule(osv.osv): _inherit = 'account.fiscal.position.rule' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), 'use_picking' : fields.boolean('Use in Picking'), } diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index 1edbe10e3432..e7fd75f2fc1e 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -2,8 +2,8 @@ - - l10n_br.fiscal.position.rule.template.form + + l10n_br_account.fiscal.position.rule.template.form account.fiscal.position.rule.template @@ -16,8 +16,8 @@ - - l10n_br.fiscal.position.rule.form + + l10n_br_account.fiscal.position.rule.form account.fiscal.position.rule diff --git a/l10n_br_account/account_invoice_view.out.xml b/l10n_br_account/account_invoice_view.out.xml deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 8f1f23249231..da31ce405e15 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -3,8 +3,8 @@ - - l10n_br.invoice.form + + l10n_br_account.invoice.form account.invoice @@ -20,8 +20,8 @@ - - l10n_br.invoice.form1 + + l10n_br_account.invoice.form1 account.invoice @@ -30,8 +30,8 @@ - - l10n_br.invoice.form2 + + l10n_br_account.invoice.form2 account.invoice @@ -43,8 +43,8 @@ - - l10n_br.invoice.form3 + + l10n_br_account.invoice.form3 account.invoice @@ -54,8 +54,8 @@ - - l10n_br.invoice.form4 + + l10n_br_account.invoice.form4 account.invoice @@ -66,8 +66,8 @@ - - l10n_br.invoice.supplier.form + + l10n_br_account.invoice.supplier.form account.invoice @@ -82,8 +82,8 @@ - - l10n_br.invoice.supplier.form1 + + l10n_br_account.invoice.supplier.form1 account.invoice @@ -92,8 +92,8 @@ - - l10n_br.invoice.supplier.form2 + + l10n_br_account.invoice.supplier.form2 account.invoice @@ -105,8 +105,8 @@ - - l10n_br.invoice.supplier.form3 + + l10n_br_account.invoice.supplier.form3 account.invoice @@ -117,19 +117,20 @@ - - l10n_br.invoice.line.form + + l10n_br_account.invoice.line.form account.invoice.line + - - l10n_br.invoice.line.form1 + + l10n_br_account.invoice.line.form1 account.invoice.line @@ -139,8 +140,8 @@ - - l10n_br.invoice.line.tree1 + + l10n_br_account.invoice.line.tree1 account.invoice.line @@ -149,17 +150,6 @@ - - - l10n_br.invoice.line.form2 - account.invoice.line - - - - - - - diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index 4464f74e09d8..dfbe521944de 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -3,8 +3,8 @@ - - l10n_br.tax.form + + l10n_br_account.tax.form account.tax diff --git a/l10n_br_account/data/account_tax_template.xml b/l10n_br_account/data/account_tax_template.xml index 910680eaf9d9..1aa0ab88afa2 100644 --- a/l10n_br_account/data/account_tax_template.xml +++ b/l10n_br_account/data/account_tax_template.xml @@ -8,7 +8,7 @@ vat 0.00 - + @@ -21,7 +21,7 @@ vat 0.02 - + @@ -34,7 +34,7 @@ vat 0.03 - + @@ -47,7 +47,7 @@ vat 0.04 - + @@ -60,7 +60,7 @@ vat 0.05 - + @@ -73,7 +73,7 @@ vat 0.07 - + @@ -86,7 +86,7 @@ vat 0.08 False - + @@ -99,7 +99,7 @@ vat 0.10 - + @@ -112,7 +112,7 @@ vat 0.12 - + @@ -125,7 +125,7 @@ vat 0.13 - + @@ -138,7 +138,7 @@ vat 0.15 - + @@ -151,7 +151,7 @@ vat 0.16 - + @@ -164,7 +164,7 @@ vat 0.18 - + @@ -177,7 +177,7 @@ vat 0.20 - + @@ -190,7 +190,7 @@ vat 0.22 - + @@ -203,7 +203,7 @@ vat 0.25 - + @@ -216,7 +216,7 @@ vat 0.27 - + @@ -229,7 +229,7 @@ vat 0.30 - + @@ -242,7 +242,7 @@ vat 0.35 - + @@ -255,7 +255,7 @@ vat 0.40 - + @@ -268,7 +268,7 @@ vat 0.42 - + @@ -281,7 +281,7 @@ vat 0.45 - + @@ -294,7 +294,7 @@ vat 0.50 - + @@ -307,7 +307,7 @@ vat 0.60 - + @@ -320,7 +320,7 @@ vat 3.30 - + @@ -333,7 +333,7 @@ vat 0.00 - + @@ -346,7 +346,7 @@ vat 0.00 - + @@ -359,7 +359,7 @@ vat 0.00 - + @@ -374,7 +374,7 @@ - + @@ -390,7 +390,7 @@ - + @@ -405,7 +405,7 @@ - + @@ -420,7 +420,7 @@ - + @@ -433,7 +433,7 @@ vat 0.00 - + @@ -446,7 +446,7 @@ vat 0.0065 - + @@ -460,7 +460,7 @@ vat 0.00 - + @@ -474,7 +474,7 @@ vat 0.03 - + @@ -487,7 +487,7 @@ vat 0.00 - + @@ -500,7 +500,7 @@ vat 0.00 - + @@ -513,7 +513,7 @@ vat 0.00 - + @@ -526,7 +526,7 @@ vat 0.00 - + diff --git a/l10n_br_account/data/l10n_br_account_chart_template.xml b/l10n_br_account/data/l10n_br_account_chart_template.xml index 7a1dc5eb23e4..dd714bacab88 100644 --- a/l10n_br_account/data/l10n_br_account_chart_template.xml +++ b/l10n_br_account/data/l10n_br_account_chart_template.xml @@ -2,7 +2,7 @@ - + Planilha de Contas Brasileira diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index a077df3ab594..703790e1fa34 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -90,11 +90,11 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): \n* The \'sefaz_aut\' Recebido arquivo de autolização da Receita.\ \n* The \'Cancelled\' state is used when user cancel invoice.'), 'access_key_nfe': fields.char('Chave de Acesso', size=44, readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), - 'document_serie_id': fields.many2one('l10n_br.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), - 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), + 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), @@ -192,7 +192,7 @@ def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ if fsc_pos_id: obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] result['value']['fiscal_position'] = obj_fpo.id result['value']['fiscal_operation_id'] = obj_foperation.id result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -227,7 +227,7 @@ def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoic if obj_partner.property_account_position.id: obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] result['value']['fiscal_position'] = obj_fpo.id result['value']['fiscal_operation_id'] = obj_foperation.id result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -244,7 +244,7 @@ def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoic if fsc_pos_id: obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] result['value']['fiscal_position'] = obj_fpo.id result['value']['fiscal_operation_id'] = obj_foperation.id result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -279,7 +279,7 @@ def onchange_address_invoice_id(self, cr, uid, ids, cpy_id, ptn_id, ptn_invoice_ if obj_partner.property_account_position.id: obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] result['value']['fiscal_position'] = obj_fpo.id result['value']['fiscal_operation_id'] = obj_foperation.id result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -296,7 +296,7 @@ def onchange_address_invoice_id(self, cr, uid, ids, cpy_id, ptn_id, ptn_invoice_ if fsc_pos_id: obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] result['value']['fiscal_position'] = obj_fpo.id result['value']['fiscal_operation_id'] = obj_foperation.id result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -329,7 +329,7 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): res = {} #super(account_invoice_line, self)._amount_line(cr, uid, ids, prop, unknow_none, unknow_dict) tax_obj = self.pool.get('account.tax') - fsc_op_line_obj = self.pool.get('l10n_br.fiscal.operation.line') + fsc_op_line_obj = self.pool.get('l10n_br_account.fiscal.operation.line') cur_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids): @@ -453,7 +453,7 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): return res _columns = { - 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP'), + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float", digits_compute= dp.get_precision('Account'), store=True, multi='all'), 'price_total': fields.function(_amount_line, method=True, string='Total', type="float", diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index f3372e1ef5a5..a4e488ed4223 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -22,9 +22,9 @@ ################################################################################# # CFOP - Código Fiscal de Operações e Prestações ################################################################################# -class l10n_br_cfop(osv.osv): +class l10n_br_account_cfop(osv.osv): _description = 'CFOP - Código Fiscal de Operações e Prestações' - _name = 'l10n_br.cfop' + _name = 'l10n_br_account.cfop' def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): if not args: @@ -49,101 +49,101 @@ def name_get(self, cr, uid, ids, context=None): 'small_name': fields.char('Nome Reduzido', size=32), 'description': fields.text('Descrição'), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), - 'parent_id': fields.many2one('l10n_br.cfop', 'CFOP Pai'), - 'child_ids': fields.one2many('l10n_br.cfop', 'parent_id', 'CFOP filhos'), + 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), + 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP filhos'), } -l10n_br_cfop() +l10n_br_account_cfop() ################################################################################# # Tipo de Documento Fiscal ################################################################################# -class l10n_br_fiscal_document(osv.osv): - _name = 'l10n_br.fiscal.document' +class l10n_br_account_fiscal_document(osv.osv): + _name = 'l10n_br_account.fiscal.document' _description = 'Tipo de Documento Fiscal' _columns = { 'code': fields.char('Codigo', size=8), 'name': fields.char('Descrição', size=64), 'nfe': fields.boolean('NFe'), } -l10n_br_fiscal_document() +l10n_br_account_fiscal_document() ################################################################################# # Código de Situação Tributária ################################################################################# -class l10n_br_cst(osv.osv): - _name = 'l10n_br.cst' +class l10n_br_account_cst(osv.osv): + _name = 'l10n_br_account.cst' _description = 'Código de Situação Tributária' _columns = { 'code': fields.char('Codigo', size=8,required=True), 'name': fields.char('Descrição', size=64), 'tax_code_id': fields.many2one('account.tax.code', 'Modelo do Imposto',required=True), } -l10n_br_cst() +l10n_br_account_cst() ################################################################################# # Categorias Operações Fiscais ################################################################################# -class l10n_br_fiscal_operation_category(osv.osv): - _name = 'l10n_br.fiscal.operation.category' +class l10n_br_account_fiscal_operation_category(osv.osv): + _name = 'l10n_br_account.fiscal.operation.category' _description = 'Categoria de Operações Fiscais' _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), } -l10n_br_fiscal_operation_category() +l10n_br_account_fiscal_operation_category() ################################################################################# # Operações Fiscais ################################################################################# -class l10n_br_fiscal_operation(osv.osv): - _name = 'l10n_br.fiscal.operation' +class l10n_br_account_fiscal_operation(osv.osv): + _name = 'l10n_br_account.fiscal.operation' _description = 'Operações fiscais' _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64), - 'fiscal_operation_category_id': fields.many2one('l10n_br.fiscal.operation.category', 'Categoria', requeried=True), - 'cfop_id': fields.many2one('l10n_br.cfop', 'CFOP', requeried=True), - 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento Fiscal', requeried=True), - 'fiscal_operation_line': fields.one2many('l10n_br.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', requeried=True), + 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), + 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), } -l10n_br_fiscal_operation() +l10n_br_account_fiscal_operation() ################################################################################# # Linhas das Operações fiscais ################################################################################# -class l10n_br_fiscal_operation_line(osv.osv): - _name = 'l10n_br.fiscal.operation.line' +class l10n_br_account_fiscal_operation_line(osv.osv): + _name = 'l10n_br_account.fiscal.operation.line' _description = 'Linhas das operações ficais' _columns = { 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto'), - 'cst_id': fields.many2one('l10n_br.cst', 'Código de Situação Tributária'), - 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), + 'cst_id': fields.many2one('l10n_br_account.cst', 'Código de Situação Tributária'), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), } -l10n_br_fiscal_operation_line() +l10n_br_account_fiscal_operation_line() ################################################################################# # Serie de Documentos Fiscais ################################################################################# -class l10n_br_document_serie(osv.osv): - _name = 'l10n_br.document.serie' +class l10n_br_account_document_serie(osv.osv): + _name = 'l10n_br_account.document.serie' _description = 'Serie de documentos fiscais' _columns = { 'code': fields.char('Código', size=3, required=True), 'name': fields.char('Descrição', size=64), - 'fiscal_document_id': fields.many2one('l10n_br.fiscal.document', 'Documento Fiscal', requeried=True), + 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), 'active':fields.boolean('Ativo'), } -l10n_br_document_serie() +l10n_br_account_document_serie() ################################################################################ # Tipo Fiscal de Parceiros ################################################################################# -class l10n_br_partner_fiscal_type(osv.osv): - _name = 'l10n_br.partner.fiscal.type' +class l10n_br_account_partner_fiscal_type(osv.osv): + _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' _columns = { 'code': fields.char('Código', size=16, required=True), @@ -153,6 +153,6 @@ class l10n_br_partner_fiscal_type(osv.osv): 'ipi':fields.boolean('Recupera IPI'), } -l10n_br_partner_fiscal_type() +l10n_br_account_partner_fiscal_type() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 78afb960037b..6ee97e6f5a1c 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -25,7 +25,7 @@ class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), } res_partner() @@ -35,7 +35,7 @@ class res_partner(osv.osv): class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = { - 'fiscal_operation_id': fields.many2one('l10n_br.fiscal.operation', 'Operação Fiscal'), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), } account_fiscal_position() diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index f62f00bc6e58..d809bfa87938 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -14,16 +14,14 @@ - + l10n_br_account.partner.form5 res.partner - - - - - + + + From c145cada06c100ee87105f28d368d31ff6e1a027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Tue, 26 Oct 2010 16:47:08 -0200 Subject: [PATCH 0008/1549] [ADD] added missing files to l10n_br_base and l10n_br_account. They have been renamed: l10n_br.py -> l10n_br_base.py; l10n_br_view.xml -> l10n_br_base_view.xml; l10n_br_view.xml -> l10n_br_account_view.xml --- l10n_br_account/l10n_br_account_view.xml | 328 +++++++++++++++++++++++ 1 file changed, 328 insertions(+) create mode 100644 l10n_br_account/l10n_br_account_view.xml diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml new file mode 100644 index 000000000000..19d0c0fa5c7c --- /dev/null +++ b/l10n_br_account/l10n_br_account_view.xml @@ -0,0 +1,328 @@ + + + + + + + + + l10n_br_account.cfop.name + l10n_br_account.cfop + form + +
+ + + + + + + + + +
+ + + l10n_br_account.cfop.search + l10n_br_account.cfop + search + + + + + + + + + + + + + + + + + + l10n_br_account.cfop + l10n_br_account.cfop + tree + + + + + + + + + + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + form + +
+ + + + + +
+ + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + tree + + + + + + + + + + + l10n_br_account.cst + l10n_br_account.cst + form + +
+ + + + + +
+ + + l10n_br_account.cst + l10n_br_account.cst + tree + + + + + + + + + + + l10n_br_account.fiscal.operation.category + l10n_br_account.fiscal.operation.category + form + +
+ + + + +
+ + + l10n_br_account.fiscal.operation.category + l10n_br_account.fiscal.operation.category + tree + + + + + + + + + + l10n_br_account.fiscal.operation + l10n_br_account.fiscal.operation + form + +
+ + + + + + + + +
+ + + l10n_br_account.fiscal.operation + l10n_br_account.fiscal.operation + tree + + + + + + + + + + + + + l10n_br_account.fiscal.operation.line + l10n_br_account.fiscal.operation.line + form + +
+ + + + +
+ + + l10n_br_account.fiscal.operation.line + l10n_br_account.fiscal.operation.line + tree + + + + + + + + + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + form + +
+ + + + + + + + +
+ + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + tree + + + + + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + form + +
+ + + + + + + +
+ + + l10n_br_account.document.serie + l10n_br_account.document.serie + tree + + + + + + + + + + + + + CFOP + ir.actions.act_window + l10n_br_account.cfop + tree,form + form + + + + + Documento Fiscal + ir.actions.act_window + l10n_br_account.fiscal.document + tree,form + form + + + + + Código de Situação Tributária + ir.actions.act_window + l10n_br_account.cst + tree,form + form + + + + + Operação Fiscal + ir.actions.act_window + l10n_br_account.fiscal.operation + tree,form + form + + + + + Operação Fiscal + ir.actions.act_window + l10n_br_account.fiscal.operation.category + tree,form + form + + + + + Document Serie + ir.actions.act_window + l10n_br_account.document.serie + tree,form + form + + + + + Tipo Fiscal de Parceiro + ir.actions.act_window + l10n_br_account.partner.fiscal.type + tree,form + form + + + + + + + + + + + + + + + + + +
+ +
+ From 9993c43b6f00991a9d961e9f554aaac3052b85b4 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 27 Oct 2010 11:08:56 -0200 Subject: [PATCH 0009/1549] =?UTF-8?q?Incluido=20as=20mudan=C3=A7as=20recen?= =?UTF-8?q?tes=20da=20localiza=C3=A7=C3=A3o,=20corrigido=20dependencias,?= =?UTF-8?q?=20incluido=20o=20modulo=20l10n=5Fbr=5Fpurchase,=20desmenbrado?= =?UTF-8?q?=20o=20modulo=20l10n=5Fbr=5Fdata=20em=20l10n=5Fbr=5Fdata=5Fbase?= =?UTF-8?q?=20e=20l10n=5Fbr=5Fdata=5Faccount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 4 ++-- l10n_br_account/invoice.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index da31ce405e15..2a39b54e1118 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -36,7 +36,7 @@ - + @@ -98,7 +98,7 @@ - + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 703790e1fa34..ad922c34c229 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -95,6 +95,8 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), + 'vendor_number': fields.char('NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Número da Nota Fiscal do Fornecedor"), + 'vendor_serie': fields.char('Série NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Série do número da Nota Fiscal do Fornecedor"), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), From 9d1bdf9e5c01395e8d67c2964c1a7bdf16fd9913 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 27 Oct 2010 12:47:04 -0200 Subject: [PATCH 0010/1549] Concertado os arquivos security dos modulos l10n_br_account e l10n_br_base e dependencias destes modulos --- l10n_br_account/__openerp__.py | 1 + .../security/l10n_br_account_security.xml | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 l10n_br_account/security/l10n_br_account_security.xml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 70456305724f..5c9a98eb1c3d 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -46,6 +46,7 @@ 'account_view.xml', 'account_fiscal_position_rule_view.xml', 'security/ir.model.access.csv', + 'security/l10n_br_account_security.xml', ], 'installable': True } diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml new file mode 100644 index 000000000000..0ef8f8d0a4b9 --- /dev/null +++ b/l10n_br_account/security/l10n_br_account_security.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + From 9659d724a5e91e82a9bad1af1c0c702fe78f595c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 27 Oct 2010 14:14:03 -0200 Subject: [PATCH 0011/1549] atualizando view de l10n_br_account e aquivo __init.py dos modulos l10n_br_data_account e l10n_br_data_base --- .../account_fiscal_position_rule_view.xml | 68 +++++++++++++++++-- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index e7fd75f2fc1e..551f034ab3b1 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -2,20 +2,33 @@ - - l10n_br_account.fiscal.position.rule.template.form + + l10n_br_account.fiscal.position.rule.template.tree account.fiscal.position.rule.template - + - + - + + + l10n_br_account.fiscal.position.rule.tree + account.fiscal.position.rule + + + + + + + + + + l10n_br_account.fiscal.position.rule.form account.fiscal.position.rule @@ -25,10 +38,51 @@ - + + + l10n_br_sale.fiscal.position.rule.template.search + account.fiscal.position.rule.template + + + + + + + + + + + + + + + + + + + + l10n_br_sale.fiscal.position.rule.search + account.fiscal.position.rule + + + + + + + + + + + + + + + + + - \ No newline at end of file +
From 2a8e360c3355cbc6007a9372aa6a73fe08930dab Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 27 Oct 2010 15:37:35 -0200 Subject: [PATCH 0012/1549] =?UTF-8?q?Corre=C3=A7=C3=A3o=20das=20views=20ac?= =?UTF-8?q?count=5Ffiscal=5Fposition=5Frule=20extendidas=20pela=20localiza?= =?UTF-8?q?=C3=A7=C3=A3o,=20e=20corrigo=20o=20metodo=20on=5Fchange=20do=20?= =?UTF-8?q?parceiro=20na=20ordem=20de=20venda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 8 ++++++++ l10n_br_account/l10n_br_account_view.xml | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index a4e488ed4223..985b923e3f5b 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -89,6 +89,10 @@ class l10n_br_account_fiscal_operation_category(osv.osv): _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), + 'use_sale' : fields.boolean('Usado em Vendas'), + 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), + 'use_purchase' : fields.boolean('Usado nas Compras'), + 'use_picking' : fields.boolean('Usado nas Listas de Separações'), } l10n_br_account_fiscal_operation_category() @@ -105,6 +109,10 @@ class l10n_br_account_fiscal_operation(osv.osv): 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', requeried=True), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), + 'use_sale' : fields.boolean('Usado em Vendas'), + 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), + 'use_purchase' : fields.boolean('Usado nas Compras'), + 'use_picking' : fields.boolean('Usado nas Listas de Separações'), } l10n_br_account_fiscal_operation() diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 19d0c0fa5c7c..c9e9a037161f 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -115,6 +115,10 @@
+ + + +
@@ -143,6 +147,10 @@ + + + +
From ebd8b93847e8b82bad3b1189115fb3b75b70a905 Mon Sep 17 00:00:00 2001 From: nvi-openerp Date: Thu, 4 Nov 2010 09:47:15 +0100 Subject: [PATCH 0013/1549] [IMP] Refactoring for certification --- l10n_br_account/__openerp__.py | 8 +- .../data/account.account.template.csv | 639 ------------------ l10n_br_account/data/account.account.type.csv | 7 - .../data/account.tax.code.template.csv | 14 - l10n_br_account/data/account_tax_template.xml | 536 --------------- .../data/l10n_br_account_chart_template.xml | 27 - 6 files changed, 1 insertion(+), 1230 deletions(-) delete mode 100644 l10n_br_account/data/account.account.template.csv delete mode 100644 l10n_br_account/data/account.account.type.csv delete mode 100644 l10n_br_account/data/account.tax.code.template.csv delete mode 100644 l10n_br_account/data/account_tax_template.xml delete mode 100644 l10n_br_account/data/l10n_br_account_chart_template.xml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 5c9a98eb1c3d..2a538c2e817d 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -25,19 +25,13 @@ 'website' : 'http://openerpbrasil.org', 'version' : '0.6', 'depends' : [ + 'l10n_br', 'l10n_br_base', - 'account', - 'account_chart', 'account_fiscal_position_rule', 'account_product_fiscal_classification' ], 'init_xml': [ - 'data/account.account.type.csv', - 'data/account.tax.code.template.csv', - 'data/account.account.template.csv', # 'data/l10n_br_account.cst.csv', - 'data/l10n_br_account_chart_template.xml', - 'data/account_tax_template.xml', ], 'update_xml' : [ 'l10n_br_account_view.xml', diff --git a/l10n_br_account/data/account.account.template.csv b/l10n_br_account/data/account.account.template.csv deleted file mode 100644 index 5657769538cf..000000000000 --- a/l10n_br_account/data/account.account.template.csv +++ /dev/null @@ -1,639 +0,0 @@ -"id","code","name","parent_id:id","type","user_type:id","reconcile" -"account_template_1","0","Plano de Contas Padrão","","view","ativo","True" -"account_template_2","1","ATIVO","account_template_1","view","ativo","True" -"account_template_3","1.1","CIRCULANTE","account_template_2","view","ativo","True" -"account_template_4","1.1.01","DISPONIBILIDADES","account_template_3","view","ativo","True" -"account_template_5","1.1.01.01","CAIXA","account_template_4","view","ativo","True" -"account_template_6","1.1.01.01.0001","Caixa Geral","account_template_5","receivable","ativo","True" -"account_template_7","1.1.01.01.0002","Fundo Fixo","account_template_5","receivable","ativo","True" -"account_template_8","1.1.01.02","BANCOS ","account_template_4","view","ativo","True" -"account_template_9","1.1.01.02.0001","Banco C/ Movimento","account_template_8","receivable","ativo","True" -"account_template_10","1.1.01.03","VALORES MOBILIÁRIOS-MERC.CAP.INTERNOS","account_template_4","view","ativo","True" -"account_template_11","1.1.01.03.0001","Aplicações Nacionais","account_template_10","receivable","ativo","True" -"account_template_12","1.1.01.04","TITULOS DE CAPITALIZAÇÃO","account_template_4","view","ativo","True" -"account_template_13","1.1.01.04.0001","Banco Título de Capitalização","account_template_12","receivable","ativo","True" -"account_template_14","1.1.02","CRÉDITOS","account_template_3","view","ativo","True" -"account_template_15","1.1.02.01","CLIENTES NACIONAIS","account_template_14","view","ativo","True" -"account_template_16","1.1.02.01.0001","Clientes Nacionais","account_template_15","receivable","ativo","True" -"account_template_17","1.1.02.02","CLIENTES NO EXTERIOR","account_template_14","view","ativo","True" -"account_template_18","1.1.02.02.0001","Clientes Internacionais","account_template_17","receivable","ativo","True" -"account_template_19","1.1.02.03","OUTROS VALORES A RECEBER","account_template_14","view","ativo","True" -"account_template_20","1.1.02.03.0001","Outras Contas a Receber","account_template_19","receivable","ativo","True" -"account_template_21","1.1.02.04","DUPLICATAS CONTA VINCULADA","account_template_14","view","ativo","True" -"account_template_22","1.1.02.04.0001","Banco Conta Garantida","account_template_21","receivable","ativo","True" -"account_template_23","1.1.02.05","DUPLICATAS CAUCIONADAS","account_template_14","view","ativo","True" -"account_template_24","1.1.02.05.0001","Banco Conta Caucionada","account_template_23","receivable","ativo","True" -"account_template_25","1.1.02.06","CHEQUES DEVOLVIDOS","account_template_14","view","ativo","True" -"account_template_26","1.1.02.06.0001","Cheques Devolvidos","account_template_25","receivable","ativo","True" -"account_template_27","1.1.02.07","ADIANTAMENTOS","account_template_14","view","ativo","True" -"account_template_28","1.1.02.07.0002","Adiantamento de Salários","account_template_27","receivable","ativo","True" -"account_template_29","1.1.02.07.0003","Adiantamento Despesa de Viagem","account_template_27","receivable","ativo","True" -"account_template_30","1.1.02.07.0004","Adiantamento de Férias","account_template_27","receivable","ativo","True" -"account_template_31","1.1.02.07.0005","Adiantamento 13º Salário","account_template_27","receivable","ativo","True" -"account_template_32","1.1.02.07.0006","Adiantamento de Pro-Labore a Diretores","account_template_27","receivable","ativo","True" -"account_template_33","1.1.02.07.0001","Adiantamento de PIS a Empregados","account_template_27","receivable","ativo","True" -"account_template_34","1.1.02.08","ADIANTAMENTO A FORNECEDORES","account_template_14","view","ativo","True" -"account_template_35","1.1.02.08.0001","Adiantamento a Fornecedor","account_template_34","receivable","ativo","True" -"account_template_36","1.1.02.09","IMPOSTOS E CONTRIBUIÇÕES A RECUPERAR","account_template_14","view","ativo","True" -"account_template_37","1.1.02.09.0001","CSLL a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_38","1.1.02.09.0002","CSLL a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" -"account_template_39","1.1.02.09.0003","COFINS a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_40","1.1.02.09.0004","COFINS a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" -"account_template_41","1.1.02.09.0008","Crédito COFINS Não-Cumulativo","account_template_36","receivable","ativo","True" -"account_template_42","1.1.02.09.0009","ICMS a Recuperar","account_template_36","receivable","ativo","True" -"account_template_43","1.1.02.09.0010","ICMS a Recup. s/Ativo Imobilizado","account_template_36","receivable","ativo","True" -"account_template_44","1.1.02.09.0012","IPI a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_45","1.1.02.09.0013","IPI a Compensar Pedido Restituição","account_template_36","receivable","ativo","True" -"account_template_46","1.1.02.09.0015","IRF s/Aplicações Financeiras","account_template_36","receivable","ativo","True" -"account_template_47","1.1.02.09.0016","IRRF a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_48","1.1.02.09.0017","IRPJ a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_49","1.1.02.09.0019","PIS a Recuperar/Compensar","account_template_36","receivable","ativo","True" -"account_template_50","1.1.02.09.0020","PIS a Compensar Lei 10.833/03","account_template_36","receivable","ativo","True" -"account_template_51","1.1.02.09.0022","PIS/COFINS/CSLL a Recuperar","account_template_36","receivable","ativo","True" -"account_template_52","1.1.02.09.0007","Crédito de PIS Não-Cumulativo","account_template_36","receivable","ativo","True" -"account_template_53","1.1.02.10","CRÉDITOS FISCAIS CSLL BASE CALC.NEGATIVA","account_template_14","view","ativo","True" -"account_template_54","1.1.02.10.0001","Base Negativa CSLL - Exerc. Anteriores","account_template_53","receivable","ativo","True" -"account_template_55","1.1.02.11","CRÉDITOS FISCAIS IRPJ-BASE CALC.NEGATIVA","account_template_14","view","ativo","True" -"account_template_56","1.1.02.11.0001","Base Negativa IRPJ - Exerc. Anteriores","account_template_55","receivable","ativo","True" -"account_template_57","1.1.03","ESTOQUES","account_template_3","view","ativo","True" -"account_template_58","1.1.03.01","ESTOQUE DE MERCADORIAS","account_template_57","view","ativo","True" -"account_template_59","1.1.03.01.0001","Insumos (Materiais Diretos)","account_template_58","receivable","ativo","True" -"account_template_60","1.1.03.01.0002","Material de Consumo-Almoxarifado","account_template_58","receivable","ativo","True" -"account_template_61","1.1.03.01.0003","Mercadorias para Revenda","account_template_58","receivable","ativo","True" -"account_template_62","1.1.03.01.0004","Produtos Acabados","account_template_58","receivable","ativo","True" -"account_template_63","1.1.03.01.0005","Produtos em Elaboração","account_template_58","receivable","ativo","True" -"account_template_64","1.1.03.02","(-) DEVOLUÇÕES DE COMPRAS","account_template_57","view","ativo","True" -"account_template_65","1.1.03.02.0001","Devoluções de Compras","account_template_64","receivable","ativo","True" -"account_template_66","1.1.03.03","TRANSFERÊNCIA DE MERCADORIAS","account_template_57","view","ativo","True" -"account_template_67","1.1.03.03.0001","Transferência de Mercadorias","account_template_66","receivable","ativo","True" -"account_template_68","1.1.03.04","ESTOQUE DE TERCEIROS EM NOSSO PODER","account_template_57","view","ativo","True" -"account_template_69","1.1.03.04.0001","Estoque de Terceiros em N/Poder","account_template_68","receivable","ativo","True" -"account_template_70","1.1.03.04.0002","Entrada P/Industrialização","account_template_68","receivable","ativo","True" -"account_template_71","1.1.03.04.0003","Entrada P/Conserto","account_template_68","receivable","ativo","True" -"account_template_72","1.1.03.04.0004","Entrada P/Demonstração","account_template_68","receivable","ativo","True" -"account_template_73","1.1.03.04.0005","Entrada P/Empréstimo","account_template_68","receivable","ativo","True" -"account_template_74","1.1.03.04.0006","Entrada em Consignação","account_template_68","receivable","ativo","True" -"account_template_75","1.1.03.04.0007","Entrada p/ Garantia","account_template_68","receivable","ativo","True" -"account_template_76","1.1.03.04.0008","Entrada p/ Locação","account_template_68","receivable","ativo","True" -"account_template_77","1.1.03.04.0009","Entrada em Comodato","account_template_68","receivable","ativo","True" -"account_template_78","1.1.03.05","NOSSO ESTOQUE EM PODER DE TERCEIROS","account_template_57","view","ativo","True" -"account_template_79","1.1.03.05.0001","N/Estoque em Poder de Terceiros","account_template_78","receivable","ativo","True" -"account_template_80","1.1.03.05.0002","Remessa P/Industrialização","account_template_78","receivable","ativo","True" -"account_template_81","1.1.03.05.0003","Remessa P/Conserto","account_template_78","receivable","ativo","True" -"account_template_82","1.1.03.05.0004","Remessa P/Demonstração","account_template_78","receivable","ativo","True" -"account_template_83","1.1.03.05.0005","Remessa P/Exposição","account_template_78","receivable","ativo","True" -"account_template_84","1.1.03.05.0006","Remessa P/Empréstimo","account_template_78","receivable","ativo","True" -"account_template_85","1.1.03.05.0007","Remessa em Consignação","account_template_78","receivable","ativo","True" -"account_template_86","1.1.03.05.0008","Remessa P/Locação","account_template_78","receivable","ativo","True" -"account_template_87","1.1.03.05.0009","Remessa em Garantia","account_template_78","receivable","ativo","True" -"account_template_88","1.1.03.06","(-) IMPOSTOS S/ESTOQUE DE TERCEIROS","account_template_57","view","ativo","True" -"account_template_89","1.1.03.06.0001","(-) ICMS s/Estoque de Terceiros","account_template_88","receivable","ativo","True" -"account_template_90","1.1.03.06.0002","(-) IPI s/Estoque de Terceiros","account_template_88","receivable","ativo","True" -"account_template_91","1.1.03.07","IMPORTAÇÕES EM ANDAMENTO","account_template_57","view","ativo","True" -"account_template_92","1.1.03.07.0001","D.I. nº 0000000-0 Importação","account_template_91","receivable","ativo","True" -"account_template_93","1.1.03.08","COMPRAS PARA ENTREGA FUTURA","account_template_57","view","ativo","True" -"account_template_94","1.1.03.08.0001","Compras p/Entrega Futura","account_template_93","receivable","ativo","True" -"account_template_95","1.1.04","DESPESAS DO EXERCÍCIO SEGUINTE","account_template_3","view","ativo","True" -"account_template_96","1.1.04.01","SEGUROS A APROPRIAR","account_template_95","view","ativo","True" -"account_template_97","1.1.04.01.0001","Seguros de Veículos","account_template_96","receivable","ativo","True" -"account_template_98","1.1.04.01.0002","Seguros Prédios/Bens/Estoques","account_template_96","receivable","ativo","True" -"account_template_99","1.1.04.01.0003","Seguros s/Lucros Cessantes","account_template_96","receivable","ativo","True" -"account_template_100","1.1.04.02","ASSINATURAS A APROPRIAR","account_template_95","view","ativo","True" -"account_template_101","1.1.04.02.0001","Assinaturas de Jornais/Boletins/Revistas","account_template_100","receivable","ativo","True" -"account_template_102","1.1.04.03","DESPESAS FINANCEIRAS A APROPRIAR","account_template_95","view","ativo","True" -"account_template_103","1.1.04.03.0001","Juros s/ Financiamentos a Apropriar","account_template_102","receivable","ativo","True" -"account_template_104","1.1.05","CONTAS RETIFICADORAS","account_template_3","view","ativo","True" -"account_template_105","1.1.05.01","(-) DUPLICATAS DESCONTADAS","account_template_104","view","ativo","True" -"account_template_106","1.1.05.01.0001","(-) Banco Conta - Duplicata Descontada","account_template_105","receivable","ativo","True" -"account_template_107","1.2","ATIVO NÃO CIRCULANTE","account_template_2","view","ativo","True" -"account_template_108","1.2.01","REALIZÁVEL A LONGO PRAZO","account_template_107","view","ativo","True" -"account_template_109","1.2.01.01","VALORES MOBILIÁRIOS-MERC.CAP.INTERNO","account_template_108","view","ativo","True" -"account_template_110","1.2.01.01.0001","Aplicações Nacionais","account_template_109","receivable","ativo","True" -"account_template_111","1.2.01.02","DÉBITOS DE SÓCIOS","account_template_108","view","ativo","True" -"account_template_112","1.2.01.02.0001","Sócio","account_template_111","receivable","ativo","True" -"account_template_113","1.2.01.03","EMPRÉSTIMOS A EMPRESAS LIGADAS","account_template_108","view","ativo","True" -"account_template_114","1.2.01.03.0001","Empresa Ligada","account_template_113","receivable","ativo","True" -"account_template_115","1.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_template_108","view","ativo","True" -"account_template_116","1.2.01.04.0001","Empréstimo de Terceiros","account_template_115","receivable","ativo","True" -"account_template_117","1.2.01.05","DEPÓSITOS JUDICIAIS","account_template_108","view","ativo","True" -"account_template_118","1.2.01.05.0001","Depósitos Judiciais","account_template_117","receivable","ativo","True" -"account_template_119","1.2.02","INVESTIMENTOS","account_template_107","view","ativo","True" -"account_template_120","1.2.02.01","PARTICIPAÇÕES SOCIETÁRIAS","account_template_119","view","ativo","True" -"account_template_121","1.2.02.01.0001","Participação Societárias","account_template_120","receivable","ativo","True" -"account_template_122","1.2.03","IMOBILIZADO - MATRIZ","account_template_107","view","ativo","True" -"account_template_123","1.2.03.01","IMOBILIZADO","account_template_122","view","ativo","True" -"account_template_124","1.2.03.01.0001","Máquinas e Equipamentos ","account_template_123","receivable","ativo","True" -"account_template_125","1.2.03.01.0002","Terrenos","account_template_123","receivable","ativo","True" -"account_template_126","1.2.03.01.0003","Ferramentas","account_template_123","receivable","ativo","True" -"account_template_127","1.2.03.01.0004","Modelos, Moldes e Matrizes","account_template_123","receivable","ativo","True" -"account_template_128","1.2.03.01.0005","Móveis e Utensílios","account_template_123","receivable","ativo","True" -"account_template_129","1.2.03.01.0006","Veículos","account_template_123","receivable","ativo","True" -"account_template_130","1.2.03.01.0007","Equipamentos de Informática","account_template_123","receivable","ativo","True" -"account_template_131","1.2.03.01.0008","Instalações","account_template_123","receivable","ativo","True" -"account_template_132","1.2.03.01.0009","Benfeitoria em Imóveis de Terceiros","account_template_123","receivable","ativo","True" -"account_template_133","1.2.03.01.0010","Direito de Uso Linhas Telefônicas","account_template_123","receivable","ativo","True" -"account_template_134","1.2.03.01.0011","Edifícios e Construções","account_template_123","receivable","ativo","True" -"account_template_135","1.2.03.02","CONSTRUÇÕES EM ANDAMENTO","account_template_122","view","ativo","True" -"account_template_136","1.2.03.02.0001","Imóvel","account_template_135","receivable","ativo","True" -"account_template_137","1.2.03.04","PARTICIPAÇÃO EM CONSÓRCIOS","account_template_122","view","ativo","True" -"account_template_138","1.2.03.04.0001","Consórcio","account_template_137","receivable","ativo","True" -"account_template_139","1.2.03.05","(-) DEPRECIAÇÃO ACUMULADA","account_template_122","view","ativo","True" -"account_template_140","1.2.03.05.0001","Deprec.de Máquinas e Equipamentos","account_template_139","receivable","ativo","True" -"account_template_141","1.2.03.05.0002","Deprec.de Modelos, Moldes e Matrizes","account_template_139","receivable","ativo","True" -"account_template_142","1.2.03.05.0003","Deprec.de Móveis e Utensílios","account_template_139","receivable","ativo","True" -"account_template_143","1.2.03.05.0004","Deprec.de Veículos","account_template_139","receivable","ativo","True" -"account_template_144","1.2.03.05.0005","Deprec.de Equip.de Informática","account_template_139","receivable","ativo","True" -"account_template_145","1.2.03.05.0006","Deprec.de Instalações","account_template_139","receivable","ativo","True" -"account_template_146","1.2.03.05.0007","Deprec.de Ferramentas","account_template_139","receivable","ativo","True" -"account_template_147","1.2.03.05.0008","Deprec.de Edificações","account_template_139","receivable","ativo","True" -"account_template_148","1.2.03.06","(-) AMORTIZAÇÃO ACUMULADA","account_template_122","view","ativo","True" -"account_template_149","1.2.03.06.0001","Amortiz.Benfeit.em Imóveis de Terceiros","account_template_148","receivable","ativo","True" -"account_template_150","1.2.03.06.0002","Amortiz.Direito Uso Linhas Telefônica","account_template_148","receivable","ativo","True" -"account_template_151","1.2.03.07","ICMS S/IMOBILIZADO-PARCELA NÃO CREDITADA","account_template_122","view","ativo","True" -"account_template_152","1.2.03.07.0001","ICMS s/ Imobilizado parc. não creditável","account_template_151","receivable","ativo","True" -"account_template_153","1.2.03.07.0002","(-) Amortização ICMS não creditado","account_template_151","receivable","ativo","True" -"account_template_154","1.2.04","IMOBILIZADO - FILIAL","account_template_107","view","ativo","True" -"account_template_155","1.2.04.01","IMOBILIZADO","account_template_154","view","ativo","True" -"account_template_156","1.2.04.01.0001","Máquinas e Equipamentos","account_template_155","receivable","ativo","True" -"account_template_157","1.2.04.01.0002","Terrenos","account_template_155","receivable","ativo","True" -"account_template_158","1.2.04.01.0003","Ferramentas","account_template_155","receivable","ativo","True" -"account_template_159","1.2.04.01.0004","Edifícios","account_template_155","receivable","ativo","True" -"account_template_160","1.2.04.01.0005","Móveis e Utensílios","account_template_155","receivable","ativo","True" -"account_template_161","1.2.04.01.0006","Veículos","account_template_155","receivable","ativo","True" -"account_template_162","1.2.04.01.0007","Equipamentos de Informática","account_template_155","receivable","ativo","True" -"account_template_163","1.2.04.01.0008","Instalações","account_template_155","receivable","ativo","True" -"account_template_164","1.2.04.02","(-) DEPRECIAÇÃO ACUMULADA - FILIAL","account_template_154","view","ativo","True" -"account_template_165","1.2.04.02.0001","Deprec.de Máquinas e Equipamentos","account_template_164","receivable","ativo","True" -"account_template_166","1.2.04.02.0003","Deprec.de Móveis e Utensílios","account_template_164","receivable","ativo","True" -"account_template_167","1.2.04.02.0004","Deprec.de Veículos","account_template_164","receivable","ativo","True" -"account_template_168","1.2.04.02.0005","Deprec.de Equip.de Informática","account_template_164","receivable","ativo","True" -"account_template_169","1.2.04.02.0006","Deprec.de Instalações","account_template_164","receivable","ativo","True" -"account_template_170","1.2.04.02.0007","Deprec.de Ferramentas","account_template_164","receivable","ativo","True" -"account_template_171","1.2.04.02.0008","Deprec.de Edifícios","account_template_164","receivable","ativo","True" -"account_template_172","1.2.04.03","(-) AMORTIZAÇÃO ACUMULADA - FILIAL","account_template_154","view","ativo","True" -"account_template_173","1.2.04.03.0001","Amortização Acumulada","account_template_172","receivable","ativo","True" -"account_template_174","1.2.05","BENS INTAGÍVEIS - MATRIZ","account_template_107","view","ativo","True" -"account_template_175","1.2.05.01","INTANGÍVEL","account_template_174","view","ativo","True" -"account_template_176","1.2.05.01.0001","Marcas e Patentes","account_template_175","receivable","ativo","True" -"account_template_177","1.2.05.01.0002","Softwares","account_template_175","receivable","ativo","True" -"account_template_178","1.2.05.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_template_174","view","ativo","True" -"account_template_179","1.2.05.02.0001","Amortiz.de Marcas e Patentes","account_template_178","receivable","ativo","True" -"account_template_180","1.2.05.02.0002","Amortização de Softwares","account_template_178","receivable","ativo","True" -"account_template_181","1.2.06","BENS INTANGÍVEIS - FILIAL","account_template_107","view","ativo","True" -"account_template_182","1.2.06.01","INTANGÍVEL","account_template_181","view","ativo","True" -"account_template_183","1.2.06.01.0001","Softwares","account_template_182","receivable","ativo","True" -"account_template_184","1.2.06.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_template_181","view","ativo","True" -"account_template_185","1.2.06.02.0001","Amortização de Softwares","account_template_184","receivable","ativo","True" -"account_template_186","1.2.07","TRANSFERÊNCIAS DE ATIVO IMOBILIZADO","account_template_107","view","ativo","True" -"account_template_187","1.2.07.01","TRANSFERÊNCIA DE ATIVO IMOBILIZADO","account_template_186","view","ativo","True" -"account_template_188","1.2.07.01.0001","Transferência de Ativo Imobilizado","account_template_187","receivable","ativo","True" -"account_template_189","1.2.08","DIFERIDO","account_template_107","view","ativo","True" -"account_template_190","1.2.08.01","DESPESAS PRÉ-INDUSTRIAIS","account_template_189","view","ativo","True" -"account_template_191","1.2.08.01.0001","Gastos Gerais de Implantação","account_template_190","receivable","ativo","True" -"account_template_192","1.2.08.01.0002","(-) Amortização Acumulada","account_template_190","receivable","ativo","True" -"account_template_193","2","PASSIVO","account_template_1","view","passivo","True" -"account_template_194","2.1","CIRCULANTE","account_template_193","view","passivo","True" -"account_template_195","2.1.01","OBRIGAÇÕES A CURTO PRAZO","account_template_194","view","passivo","True" -"account_template_196","2.1.01.01","FINANCIAMENTOS A CURTO PRAZO - SFN","account_template_195","view","passivo","True" -"account_template_197","2.1.01.01.0001","Banco Conta Empréstimo","account_template_196","payable","passivo","True" -"account_template_198","2.1.01.02","CHEQUES A COMPENSAR","account_template_195","view","passivo","True" -"account_template_199","2.1.01.02.0001","Banco Conta a Compensar","account_template_198","payable","passivo","True" -"account_template_200","2.1.01.03","LIMITE DE CRÉDITO CHEQUE ESPECIAL","account_template_195","view","passivo","True" -"account_template_201","2.1.01.03.0001","Banco Conta Limite","account_template_200","payable","passivo","True" -"account_template_202","2.1.02","FORNECEDORES ","account_template_194","view","passivo","True" -"account_template_203","2.1.02.01","FORNECEDORES NACIONAIS","account_template_202","view","passivo","True" -"account_template_204","2.1.02.01.0001","Fornecedores Nacionais","account_template_203","payable","passivo","True" -"account_template_205","2.1.02.02","FORNECEDORES ESTRANGEIROS","account_template_202","view","passivo","True" -"account_template_206","2.1.02.02.0001","Fornecedores Internacionais","account_template_205","payable","passivo","True" -"account_template_207","2.1.03","OBRIGAÇÕES TRABALHISTAS","account_template_194","view","passivo","True" -"account_template_208","2.1.03.01","FOLHA DE PAGAMENTO - EMPREGADOS","account_template_207","view","passivo","True" -"account_template_209","2.1.03.01.0001","Salários a Pagar","account_template_208","payable","passivo","True" -"account_template_210","2.1.03.01.0002","Férias a Pagar","account_template_208","payable","passivo","True" -"account_template_211","2.1.03.01.0003","Rescisões a Pagar","account_template_208","payable","passivo","True" -"account_template_212","2.1.03.01.0004","13º Salário a Pagar","account_template_208","payable","passivo","True" -"account_template_213","2.1.03.01.0005","Comissões a Pagar","account_template_208","payable","passivo","True" -"account_template_214","2.1.03.02","PROVISÕES DE FÉRIAS E 13º SALÁRIO","account_template_207","view","passivo","True" -"account_template_215","2.1.03.02.0001","Provisão de Férias","account_template_214","payable","passivo","True" -"account_template_216","2.1.03.02.0002","Provisão de INSS s/Férias","account_template_214","payable","passivo","True" -"account_template_217","2.1.03.02.0003","Provisão de FGTS s/Férias","account_template_214","payable","passivo","True" -"account_template_218","2.1.03.02.0004","Provisão de 13º Salário","account_template_214","payable","passivo","True" -"account_template_219","2.1.03.02.0005","Provisão de INSS s/13º Salário","account_template_214","payable","passivo","True" -"account_template_220","2.1.03.02.0006","Provisão FGTS s/13º Salário","account_template_214","payable","passivo","True" -"account_template_221","2.1.03.03","FOLHA DE PAGAMENTO - AUTÔNOMOS","account_template_207","view","passivo","True" -"account_template_222","2.1.03.03.0001","Rendimentos a Pagar","account_template_221","payable","passivo","True" -"account_template_223","2.1.03.04","FOLHA DE PAGAMENTO - DIRIGENTES","account_template_207","view","passivo","True" -"account_template_224","2.1.03.04.0001","Pro-Labore a Pagar","account_template_223","payable","passivo","True" -"account_template_225","2.1.03.05","ENCARGOS SOCIAIS A PAGAR","account_template_207","view","passivo","True" -"account_template_226","2.1.03.05.0001","INSS a Recolher","account_template_225","payable","passivo","True" -"account_template_227","2.1.03.05.0002","FGTS a Recolher","account_template_225","payable","passivo","True" -"account_template_228","2.1.03.05.0003","Contribuição Sindical a Pagar","account_template_225","payable","passivo","True" -"account_template_229","2.1.03.05.0004","Previdência Privada a Recolher","account_template_225","payable","passivo","True" -"account_template_230","2.1.04","OBRIGAÇÕES TRIBUTÁRIAS","account_template_194","view","passivo","True" -"account_template_231","2.1.04.01","IMPOSTOS RETIDOS A RECOLHER","account_template_230","view","passivo","True" -"account_template_232","2.1.04.01.0001","IRRF a Recolher - Pessoa Física","account_template_231","payable","passivo","True" -"account_template_233","2.1.04.01.0002","IRRF a Recolher - Pessoa Jurídica","account_template_231","payable","passivo","True" -"account_template_234","2.1.04.01.0003","ISS Retido a Recolher","account_template_231","payable","passivo","True" -"account_template_235","2.1.04.01.0004","PIS/COFINS/CSLL Retido a Recolher","account_template_231","payable","passivo","True" -"account_template_236","2.1.04.01.0005","INSS Retido a Recolher","account_template_231","payable","passivo","True" -"account_template_237","2.1.04.02","IMPOSTOS E CONTRIBUIÇÃO S/ O LUCRO","account_template_230","view","passivo","True" -"account_template_238","2.1.04.02.0001","Provisão para o Imposto de Renda","account_template_237","payable","passivo","True" -"account_template_239","2.1.04.02.0002","Provisão Contrib.Social s/Lucro Líquido","account_template_237","payable","passivo","True" -"account_template_240","2.1.04.03","IMPOSTOS E CONTRIBUIÇÃO S/ RECEITAS","account_template_230","view","passivo","True" -"account_template_241","2.1.04.03.0001","ICMS a Recolher","account_template_240","payable","passivo","True" -"account_template_242","2.1.04.03.0002","COFINS a Recolher","account_template_240","payable","passivo","True" -"account_template_243","2.1.04.03.0003","PIS a Recolher","account_template_240","payable","passivo","True" -"account_template_244","2.1.04.03.0004","IPI a Recolher","account_template_240","payable","passivo","True" -"account_template_245","2.1.04.03.0005","ISS a Recolher","account_template_240","payable","passivo","True" -"account_template_246","2.1.05","PARCELAMENTOS CURTO PRAZO","account_template_194","view","passivo","True" -"account_template_247","2.1.05.01","PARCELAMENTOS TRIBUTÁRIOS","account_template_246","view","passivo","True" -"account_template_248","2.1.05.01.0001","COFINS Parcelamento","account_template_247","payable","passivo","True" -"account_template_249","2.1.05.01.0002","PIS Parcelamento","account_template_247","payable","passivo","True" -"account_template_250","2.1.05.01.0003","IPI Parcelamento","account_template_247","payable","passivo","True" -"account_template_251","2.1.05.01.0004","ICMS Parcelamento","account_template_247","payable","passivo","True" -"account_template_252","2.1.05.01.0005","IRPJ Parcelamento","account_template_247","payable","passivo","True" -"account_template_253","2.1.05.01.0006","CSLL Parcelamento","account_template_247","payable","passivo","True" -"account_template_254","2.1.05.01.0007","INSS Parcelamento","account_template_247","payable","passivo","True" -"account_template_255","2.1.05.01.0008","FGTS Parcelamento","account_template_247","payable","passivo","True" -"account_template_256","2.1.06","OUTRAS OBRIGAÇÕES","account_template_194","view","passivo","True" -"account_template_257","2.1.06.01","CONTAS DE CONSUMO","account_template_256","view","passivo","True" -"account_template_258","2.1.06.01.0001","Consumo de Água/Esgoto","account_template_257","payable","passivo","True" -"account_template_259","2.1.06.01.0003","Consumo de Energia Elétrica","account_template_257","payable","passivo","True" -"account_template_260","2.1.06.01.0004","Consumo de Telefone","account_template_257","payable","passivo","True" -"account_template_261","2.1.06.01.0005","Consumo de Internet","account_template_257","payable","passivo","True" -"account_template_262","2.1.06.02","OUTRAS CONTAS A PAGAR","account_template_256","view","passivo","True" -"account_template_263","2.1.06.02.0001","Cheques a Compensar","account_template_262","payable","passivo","True" -"account_template_264","2.1.06.02.0002","Seguros a Pagar","account_template_262","payable","passivo","True" -"account_template_265","2.1.06.02.0003","Assinaturas de Periódicos a Pagar","account_template_262","payable","passivo","True" -"account_template_266","2.1.06.02.0004","Aluguel a Pagar","account_template_262","payable","passivo","True" -"account_template_267","2.1.06.02.0005","Doações a Pagar","account_template_262","payable","passivo","True" -"account_template_268","2.1.06.02.0006","Pensão Alimenticia a Pagar","account_template_262","payable","passivo","True" -"account_template_269","2.1.06.03","ADIANTAMENTO DE CLIENTES","account_template_256","view","passivo","True" -"account_template_270","2.1.06.03.0001","Adiantamento Clientes","account_template_269","payable","passivo","True" -"account_template_271","2.2","PASSIVO NÃO CIRCULANTE","account_template_193","view","passivo","True" -"account_template_272","2.2.01","EXIGÍVEL A LONGO PRAZO","account_template_271","view","passivo","True" -"account_template_273","2.2.01.01","FINANCIAMENTOS A LONGO PRAZO - SFN","account_template_272","view","passivo","True" -"account_template_274","2.2.01.01.0001","Banco Conta Empréstimo","account_template_273","payable","passivo","True" -"account_template_275","2.2.01.02","EMPRÉSTIMO DE SÓCIOS","account_template_272","view","passivo","True" -"account_template_276","2.2.01.02.0001","Sócio","account_template_275","payable","passivo","True" -"account_template_277","2.2.01.03","EMPRÉSTIMO DE EMPRESAS LIGADAS","account_template_272","view","passivo","True" -"account_template_278","2.2.01.03.0001","Empresas Ligadas","account_template_277","payable","passivo","True" -"account_template_279","2.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_template_272","view","passivo","True" -"account_template_280","2.2.01.04.0001","Terceiro","account_template_279","payable","passivo","True" -"account_template_281","2.2.01.05","PARCELAMENTOS TRIBUTÁRIOS","account_template_272","view","passivo","True" -"account_template_282","2.2.01.05.0001","COFINS Parcelamento","account_template_281","payable","passivo","True" -"account_template_283","2.2.01.05.0002","PIS Parcelamento","account_template_281","payable","passivo","True" -"account_template_284","2.2.01.05.0003","IPI Parcelamento","account_template_281","payable","passivo","True" -"account_template_285","2.2.01.05.0004","ICMS Parcelamento","account_template_281","payable","passivo","True" -"account_template_286","2.2.01.05.0005","ISS Parcelamento","account_template_281","payable","passivo","True" -"account_template_287","2.2.01.05.0006","IRPJ Parcelamento","account_template_281","payable","passivo","True" -"account_template_288","2.2.01.05.0007","CSLL Parcelamento","account_template_281","payable","passivo","True" -"account_template_289","2.2.01.05.0008","INSS Parcelamento","account_template_281","payable","passivo","True" -"account_template_290","2.2.01.05.0009","FGTS Parcelamento","account_template_281","payable","passivo","True" -"account_template_291","2.2.03","RECEITA DIFERIDA","account_template_271","view","passivo","True" -"account_template_292","2.2.03.01","RECEITAS DIFERIDAS","account_template_291","view","passivo","True" -"account_template_293","2.2.03.01.0001","Receitas a Realizar","account_template_292","payable","passivo","True" -"account_template_294","2.2.03.02","CUSTOS DIFERIDOS","account_template_291","view","passivo","True" -"account_template_295","2.2.03.02.0001","Custos Diferidos","account_template_294","payable","passivo","True" -"account_template_296","2.2.03.03","DESPESAS DIFERIDAS","account_template_291","view","passivo","True" -"account_template_297","2.2.03.03.0001","Despesas Diferidas","account_template_296","payable","passivo","True" -"account_template_298","2.4","PATRIMÔNIO LÍQUIDO","account_template_193","view","passivo","True" -"account_template_299","2.4.01","CAPITAL SOCIAL","account_template_298","view","passivo","True" -"account_template_300","2.4.01.01","CAPITAL SOCIAL REALIZADO","account_template_299","view","passivo","True" -"account_template_301","2.4.01.01.0001","Capital Social Realizado","account_template_300","payable","passivo","True" -"account_template_302","2.4.01.02","(-) CAPITAL A REALIZAR","account_template_299","view","passivo","True" -"account_template_303","2.4.01.02.0001","Capital Social a Realizar ","account_template_302","payable","passivo","True" -"account_template_304","2.4.02","RESERVAS","account_template_298","view","passivo","True" -"account_template_305","2.4.02.01","RESERVAS DE CAPITAL","account_template_304","view","passivo","True" -"account_template_306","2.4.02.01.0001","Reserva de Correção do Capital Realizado","account_template_305","payable","passivo","True" -"account_template_307","2.4.02.02","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_template_304","view","passivo","True" -"account_template_308","2.4.02.02.0001","Ajustes de Avaliação Patrimonial","account_template_307","payable","passivo","True" -"account_template_309","2.4.02.03","RESERVAS DE LUCROS","account_template_304","view","passivo","True" -"account_template_310","2.4.02.03.0001","Reserva de Lucros","account_template_309","payable","passivo","True" -"account_template_311","2.4.02.03.0002","Reserva para Aumento de Capital","account_template_309","payable","passivo","True" -"account_template_312","2.4.02.04","PREJUÍZOS ACUMULADOS","account_template_304","view","passivo","True" -"account_template_313","2.4.02.04.0002","(-) Prejuízos Acumulados","account_template_312","payable","passivo","True" -"account_template_314","2.4.02.04.0003","Ajustes Credores Exercícios Anteriores","account_template_312","payable","passivo","True" -"account_template_315","2.4.02.04.0001","Ajustes Devedores Exercícios Anteriores","account_template_312","payable","passivo","True" -"account_template_316","2.4.02.05","RESULTADO DO EXERCÍCIO","account_template_304","view","passivo","True" -"account_template_317","2.4.02.05.0001","Lucro do Exercício","account_template_316","payable","passivo","True" -"account_template_318","2.4.02.05.0002","Prejuízo do Exercício","account_template_316","payable","passivo","True" -"account_template_319","2.4.02.06","(-) LUCROS DISTRIBUÍDOS","account_template_304","view","passivo","True" -"account_template_320","2.4.02.06.0001","Lucros Distribuídos","account_template_319","payable","passivo","True" -"account_template_321","3","CONTAS DE RESULTADO - CUSTOS E DESPESAS","account_template_1","view","despesa","True" -"account_template_322","3.1","CUSTOS","account_template_321","view","despesa","True" -"account_template_323","3.1.01","CUSTOS DAS MERCADORIAS E PRODUTOS","account_template_322","view","despesa","True" -"account_template_324","3.1.01.01","CUSTOS DAS MERCADORIAS VENDIDAS","account_template_323","view","despesa","True" -"account_template_325","3.1.01.01.0001","Custo das Mercadorias Vendidas","account_template_324","payable","despesa","True" -"account_template_326","3.1.02","CUSTO DOS PRODUTOS VENDIDOS","account_template_322","view","despesa","True" -"account_template_327","3.1.02.01","CUSTO DAS MATÉRIAS PRIMAS","account_template_326","view","despesa","True" -"account_template_328","3.1.02.01.0001","Custo das Matérias Primas","account_template_327","payable","despesa","True" -"account_template_329","3.1.02.02","CUSTO DOS PRODUTOS ACABADOS","account_template_326","view","despesa","True" -"account_template_330","3.1.02.02.0001","Custo dos Produtos Acabados","account_template_329","payable","despesa","True" -"account_template_331","3.1.02.03","CUSTO DE MÃO-DE-OBRA DIRETA","account_template_326","view","despesa","True" -"account_template_332","3.1.02.03.0001","Salários","account_template_331","payable","despesa","True" -"account_template_333","3.1.02.03.0002","Horas Extras","account_template_331","payable","despesa","True" -"account_template_334","3.1.02.03.0003","Adicional Noturno","account_template_331","payable","despesa","True" -"account_template_335","3.1.02.03.0004","Férias","account_template_331","payable","despesa","True" -"account_template_336","3.1.02.03.0005","13º Salário","account_template_331","payable","despesa","True" -"account_template_337","3.1.02.03.0006","Aviso Prévio/Indeniz.Trabalhistas","account_template_331","payable","despesa","True" -"account_template_338","3.1.02.03.0007","Gratificações","account_template_331","payable","despesa","True" -"account_template_339","3.1.02.03.0008","INSS Empresa","account_template_331","payable","despesa","True" -"account_template_340","3.1.02.03.0009","FGTS ","account_template_331","payable","despesa","True" -"account_template_341","3.1.02.03.0010","Adicional Insalubridade","account_template_331","payable","despesa","True" -"account_template_342","3.1.02.03.0011","Vale Transporte","account_template_331","payable","despesa","True" -"account_template_343","3.1.02.03.0012","PAT - Programa Alim. Trabalhador","account_template_331","payable","despesa","True" -"account_template_344","3.1.02.03.0013","Assistência Médica","account_template_331","payable","despesa","True" -"account_template_345","3.1.02.03.0014","DSR - Descanso Semanal Remunerado","account_template_331","payable","despesa","True" -"account_template_346","3.1.02.03.0015","Salário Estagiários","account_template_331","payable","despesa","True" -"account_template_347","3.1.02.03.0016","Previdência Privada","account_template_331","payable","despesa","True" -"account_template_348","3.1.02.03.0017","Vestuário","account_template_331","payable","despesa","True" -"account_template_349","3.1.02.03.0018","Assiduidade","account_template_331","payable","despesa","True" -"account_template_350","3.1.02.03.0019","Abono Salarial","account_template_331","payable","despesa","True" -"account_template_351","3.1.02.03.0020","Vale Refeição","account_template_331","payable","despesa","True" -"account_template_352","3.1.02.03.0021","Farmácia","account_template_331","payable","despesa","True" -"account_template_353","3.1.02.03.0022","Pró-Labore","account_template_331","payable","despesa","True" -"account_template_354","3.1.02.04","GASTOS GERAIS DE FABRICAÇÃO","account_template_326","view","despesa","True" -"account_template_355","3.1.02.04.0001","Aluguel","account_template_354","payable","despesa","True" -"account_template_356","3.1.02.04.0002","Água e Esgoto","account_template_354","payable","despesa","True" -"account_template_357","3.1.02.04.0003","Energia Elétrica","account_template_354","payable","despesa","True" -"account_template_358","3.1.02.04.0004","Fretes e Carretos","account_template_354","payable","despesa","True" -"account_template_359","3.1.02.04.0005","Material de Consumo","account_template_354","payable","despesa","True" -"account_template_360","3.1.02.04.0006","Condução","account_template_354","payable","despesa","True" -"account_template_361","3.1.02.04.0007","Contribuição Sindical/Assoc.de Classe","account_template_354","payable","despesa","True" -"account_template_362","3.1.02.04.0008","Material de Limpeza","account_template_354","payable","despesa","True" -"account_template_363","3.1.02.04.0009","Seguros","account_template_354","payable","despesa","True" -"account_template_364","3.1.02.04.0010","Viagens e Estadias","account_template_354","payable","despesa","True" -"account_template_365","3.1.02.04.0011","Manutenção de Equipamentos","account_template_354","payable","despesa","True" -"account_template_366","3.1.02.04.0012","Depreciações e Amortizações","account_template_354","payable","despesa","True" -"account_template_367","3.1.02.04.0013","Combustíveis e Lubrificantes","account_template_354","payable","despesa","True" -"account_template_368","3.1.02.04.0014","Bens de Pequeno Valor","account_template_354","payable","despesa","True" -"account_template_369","3.1.02.04.0015","Leasing","account_template_354","payable","despesa","True" -"account_template_370","3.1.02.04.0016","Formação de Pessoal","account_template_354","payable","despesa","True" -"account_template_371","3.1.02.04.0017","Serviços de Terceiros - Pessoa Jurídica","account_template_354","payable","despesa","True" -"account_template_372","3.1.02.04.0018","Locação de Equipamentos","account_template_354","payable","despesa","True" -"account_template_373","3.1.02.04.0019","Feiras/Congressos/Simpósios/Cursos","account_template_354","payable","despesa","True" -"account_template_374","3.1.02.04.0020","Telefone","account_template_354","payable","despesa","True" -"account_template_375","3.1.02.04.0021","Comissões sobre Serviços","account_template_354","payable","despesa","True" -"account_template_376","3.1.02.04.0022","Jornais, Revistas e Periódicos","account_template_354","payable","despesa","True" -"account_template_377","3.1.02.04.0023","Confraternizações","account_template_354","payable","despesa","True" -"account_template_378","3.1.02.04.0024","Manutenção de Prédios","account_template_354","payable","despesa","True" -"account_template_379","3.1.02.04.0025","Brindes e Amostras","account_template_354","payable","despesa","True" -"account_template_380","3.1.02.04.0026","Aluguel de Equipamentos","account_template_354","payable","despesa","True" -"account_template_381","3.1.02.04.0027","Serv.de Terceiros P.Física - Autônomos","account_template_354","payable","despesa","True" -"account_template_382","3.1.02.04.0028","Manutenção de Veículos","account_template_354","payable","despesa","True" -"account_template_383","3.1.02.04.0029","Despesas de Importação","account_template_354","payable","despesa","True" -"account_template_384","3.1.02.04.0030","(-) Crédito PIS Não-Cumulativo","account_template_354","payable","despesa","True" -"account_template_385","3.1.02.04.0031","(-) Crédito Cofins Não-Cumulativo","account_template_354","payable","despesa","True" -"account_template_386","3.1.02.05","ESTOQUE INICIAL DE PROD.EM ELABORAÇÃO","account_template_326","view","despesa","True" -"account_template_387","3.1.02.05.0001","Estoque Inicial de Prod. em Elaboração","account_template_386","payable","despesa","True" -"account_template_388","3.1.02.06","ESTOQUE INICIAL DE PROD.ACABADOS","account_template_326","view","despesa","True" -"account_template_389","3.1.02.06.0001","Estoque Inicial de Prod.Acabados","account_template_388","payable","despesa","True" -"account_template_390","3.1.02.07","ESTOQUE FINAL DE PROD.EM ELABORAÇÃO","account_template_326","view","despesa","True" -"account_template_391","3.1.02.07.0001","Estoque Final de Prod.em Elaboração","account_template_390","payable","despesa","True" -"account_template_392","3.1.02.08","ESTOQUE FINAL DE PROD.ACABADOS","account_template_326","view","despesa","True" -"account_template_393","3.1.02.08.0001","Estoque Final de Prod.Acabados","account_template_392","payable","despesa","True" -"account_template_394","3.2","despesa","account_template_321","view","despesa","True" -"account_template_395","3.2.01","DESPESAS OPERACIONAIS COMERCIAIS","account_template_394","view","despesa","True" -"account_template_396","3.2.01.01","DESPESAS TRABALHISTAS","account_template_395","view","despesa","True" -"account_template_397","3.2.01.01.0001","Salários","account_template_396","payable","despesa","True" -"account_template_398","3.2.01.01.0002","Horas Extras","account_template_396","payable","despesa","True" -"account_template_399","3.2.01.01.0003","Vale Transporte","account_template_396","payable","despesa","True" -"account_template_400","3.2.01.01.0004","Férias","account_template_396","payable","despesa","True" -"account_template_401","3.2.01.01.0005","13º Salário","account_template_396","payable","despesa","True" -"account_template_402","3.2.01.01.0006","Aviso Prévio/Indeniz.Trabalhisas","account_template_396","payable","despesa","True" -"account_template_403","3.2.01.01.0007","Gratificações","account_template_396","payable","despesa","True" -"account_template_404","3.2.01.01.0008","Assiduidade","account_template_396","payable","despesa","True" -"account_template_405","3.2.01.01.0009","Abono Salarial","account_template_396","payable","despesa","True" -"account_template_406","3.2.01.01.0010","Adicional de Insalubridade","account_template_396","payable","despesa","True" -"account_template_407","3.2.01.01.0011","Vale Refeição","account_template_396","payable","despesa","True" -"account_template_408","3.2.01.01.0012","Adicional Noturno","account_template_396","payable","despesa","True" -"account_template_409","3.2.01.01.0013","Farmácia","account_template_396","payable","despesa","True" -"account_template_410","3.2.01.01.0014","PAT - Programa Alim. Trabalhador","account_template_396","payable","despesa","True" -"account_template_411","3.2.01.01.0015","Pró-Labore","account_template_396","payable","despesa","True" -"account_template_412","3.2.01.01.0016","Assistência Médica","account_template_396","payable","despesa","True" -"account_template_413","3.2.01.02","ENCARGOS SOCIAIS","account_template_395","view","despesa","True" -"account_template_414","3.2.01.02.0001","Inss","account_template_413","payable","despesa","True" -"account_template_415","3.2.01.02.0002","Fgts","account_template_413","payable","despesa","True" -"account_template_416","3.2.01.03","DESPESAS GERAIS COMERCIAIS","account_template_395","view","despesa","True" -"account_template_417","3.2.01.03.0001","Comissões sobre Vendas","account_template_416","payable","despesa","True" -"account_template_418","3.2.01.03.0002","Aluguel","account_template_416","payable","despesa","True" -"account_template_419","3.2.01.03.0003","Agua e Esgoto","account_template_416","payable","despesa","True" -"account_template_420","3.2.01.03.0004","Energia Elétrica","account_template_416","payable","despesa","True" -"account_template_421","3.2.01.03.0006","Material de Expediente","account_template_416","payable","despesa","True" -"account_template_422","3.2.01.03.0007","Condução","account_template_416","payable","despesa","True" -"account_template_423","3.2.01.03.0008","Correios e Malotes","account_template_416","payable","despesa","True" -"account_template_424","3.2.01.03.0009","Material de Limpeza","account_template_416","payable","despesa","True" -"account_template_425","3.2.01.03.0010","Seguros","account_template_416","payable","despesa","True" -"account_template_426","3.2.01.03.0011","Viagens e Estadias","account_template_416","payable","despesa","True" -"account_template_427","3.2.01.03.0012","Manutenção e Conservação","account_template_416","payable","despesa","True" -"account_template_428","3.2.01.03.0013","Depreciação e Amortização","account_template_416","payable","despesa","True" -"account_template_429","3.2.01.03.0014","Propaganda e Publicidade","account_template_416","payable","despesa","True" -"account_template_430","3.2.01.03.0015","Fretes e Carretos","account_template_416","payable","despesa","True" -"account_template_431","3.2.01.03.0016","Combustíveis e Lubrificantes","account_template_416","payable","despesa","True" -"account_template_432","3.2.01.03.0017","Leasing","account_template_416","payable","despesa","True" -"account_template_433","3.2.01.03.0018","Serv.Terceiros P.Física - Autônomos","account_template_416","payable","despesa","True" -"account_template_434","3.2.01.03.0019","Serv.Terceiros Pessoa Jurídica","account_template_416","payable","despesa","True" -"account_template_435","3.2.01.03.0020","Feiras/Congressos/Simpósios/Cursos","account_template_416","payable","despesa","True" -"account_template_436","3.2.01.03.0021","Telefone","account_template_416","payable","despesa","True" -"account_template_437","3.2.01.03.0022","Despesas com Exportação","account_template_416","payable","despesa","True" -"account_template_438","3.2.01.03.0024","Jornais, Revistas e Periódicos","account_template_416","payable","despesa","True" -"account_template_439","3.2.01.03.0025","Refeições e Lanches","account_template_416","payable","despesa","True" -"account_template_440","3.2.01.03.0026","Confraternizações","account_template_416","payable","despesa","True" -"account_template_441","3.2.01.03.0027","Brindes","account_template_416","payable","despesa","True" -"account_template_442","3.2.01.03.0028","Internet","account_template_416","payable","despesa","True" -"account_template_443","3.2.02","DESPESAS ADMINISTRATIVAS","account_template_394","view","despesa","True" -"account_template_444","3.2.02.01","DESPESAS TRABALHISTAS","account_template_443","view","despesa","True" -"account_template_445","3.2.02.01.0001","Pro-Labore","account_template_444","payable","despesa","True" -"account_template_446","3.2.02.01.0002","Salários","account_template_444","payable","despesa","True" -"account_template_447","3.2.02.01.0003","Horas Extras","account_template_444","payable","despesa","True" -"account_template_448","3.2.02.01.0004","Férias","account_template_444","payable","despesa","True" -"account_template_449","3.2.02.01.0005","13º Salário","account_template_444","payable","despesa","True" -"account_template_450","3.2.02.01.0006","Aviso Prévio/Indeniz.Trabalhistas","account_template_444","payable","despesa","True" -"account_template_451","3.2.02.01.0007","Gratificações","account_template_444","payable","despesa","True" -"account_template_452","3.2.02.01.0008","Adicional Insalubridade","account_template_444","payable","despesa","True" -"account_template_453","3.2.02.01.0009","Adicional Noturno","account_template_444","payable","despesa","True" -"account_template_454","3.2.02.01.0010","Vale Transporte","account_template_444","payable","despesa","True" -"account_template_455","3.2.02.01.0011","Farmácia","account_template_444","payable","despesa","True" -"account_template_456","3.2.02.01.0012","Vale Refeição","account_template_444","payable","despesa","True" -"account_template_457","3.2.02.01.0013","PAT - Programa Alim. Trabalhador","account_template_444","payable","despesa","True" -"account_template_458","3.2.02.01.0014","Salário Estagiários","account_template_444","payable","despesa","True" -"account_template_459","3.2.02.01.0015","Assiduidade","account_template_444","payable","despesa","True" -"account_template_460","3.2.02.01.0016","Abono Salarial","account_template_444","payable","despesa","True" -"account_template_461","3.2.02.01.0017","Previdência Privada","account_template_444","payable","despesa","True" -"account_template_462","3.2.02.01.0018","Assistência Médica","account_template_444","payable","despesa","True" -"account_template_463","3.2.02.02","ENCARGOS SOCIAIS","account_template_443","view","despesa","True" -"account_template_464","3.2.02.02.0001","Inss","account_template_463","payable","despesa","True" -"account_template_465","3.2.02.02.0002","Fgts","account_template_463","payable","despesa","True" -"account_template_466","3.2.02.03","DESPESAS GERAIS ADMINISTRATIVAS","account_template_443","view","despesa","True" -"account_template_467","3.2.02.03.0001","Aluguel","account_template_466","payable","despesa","True" -"account_template_468","3.2.02.03.0002","Água e Esgoto","account_template_466","payable","despesa","True" -"account_template_469","3.2.02.03.0003","Energia Elétrica","account_template_466","payable","despesa","True" -"account_template_470","3.2.02.03.0004","Copa, Cozinha e Refeitório","account_template_466","payable","despesa","True" -"account_template_471","3.2.02.03.0005","Material de Escritório","account_template_466","payable","despesa","True" -"account_template_472","3.2.02.03.0006","Fretes e Carretos","account_template_466","payable","despesa","True" -"account_template_473","3.2.02.03.0007","Correios e Malotes","account_template_466","payable","despesa","True" -"account_template_474","3.2.02.03.0008","Material de Limpeza","account_template_466","payable","despesa","True" -"account_template_475","3.2.02.03.0009","Seguros","account_template_466","payable","despesa","True" -"account_template_476","3.2.02.03.0010","Viagens e Estadias","account_template_466","payable","despesa","True" -"account_template_477","3.2.02.03.0011","Manutenção e Conservação","account_template_466","payable","despesa","True" -"account_template_478","3.2.02.03.0012","Depreciação e Amortização","account_template_466","payable","despesa","True" -"account_template_479","3.2.02.03.0013","Sindicato Patronal/Assoc.de Classe","account_template_466","payable","despesa","True" -"account_template_480","3.2.02.03.0014","Feiras/Congressos/Simpósios/Cursos","account_template_466","payable","despesa","True" -"account_template_481","3.2.02.03.0015","Internet","account_template_466","payable","despesa","True" -"account_template_482","3.2.02.03.0016","Combustíveis e Lubrificantes","account_template_466","payable","despesa","True" -"account_template_483","3.2.02.03.0017","Leasing","account_template_466","payable","despesa","True" -"account_template_484","3.2.02.03.0018","Serviço de Terceiros - Pessoa Jurídica","account_template_466","payable","despesa","True" -"account_template_485","3.2.02.03.0019","Telefone","account_template_466","payable","despesa","True" -"account_template_486","3.2.02.03.0020","Legais e Judiciais","account_template_466","payable","despesa","True" -"account_template_487","3.2.02.03.0021","Bens de Pequeno Valor","account_template_466","payable","despesa","True" -"account_template_488","3.2.02.03.0022","Jornais Revistas e Periódicos","account_template_466","payable","despesa","True" -"account_template_489","3.2.02.03.0023","Cópias e Reproduções","account_template_466","payable","despesa","True" -"account_template_490","3.2.02.03.0024","Confraternizações","account_template_466","payable","despesa","True" -"account_template_491","3.2.02.03.0025","Formação de Pessoal","account_template_466","payable","despesa","True" -"account_template_492","3.2.02.03.0026","Segurança e Vigilância","account_template_466","payable","despesa","True" -"account_template_493","3.2.02.03.0027","Despesas com Veículos","account_template_466","payable","despesa","True" -"account_template_494","3.2.02.03.0028","Impressos","account_template_466","payable","despesa","True" -"account_template_495","3.2.02.03.0029","Refeições e Lanches","account_template_466","payable","despesa","True" -"account_template_496","3.2.02.03.0030","Comissões","account_template_466","payable","despesa","True" -"account_template_497","3.2.02.03.0031","Condução ","account_template_466","payable","despesa","True" -"account_template_498","3.2.02.03.0032","Telefone Linha Fixa","account_template_466","payable","despesa","True" -"account_template_499","3.2.02.03.0033","Telefone Móvel Celular","account_template_466","payable","despesa","True" -"account_template_500","3.2.02.03.0034","Telefone Nextel","account_template_466","payable","despesa","True" -"account_template_501","3.2.02.03.0035","Crea-PR","account_template_466","payable","despesa","True" -"account_template_502","3.2.02.03.0036","Despesas de Cartório","account_template_466","payable","despesa","True" -"account_template_503","3.2.02.03.0037","Material de Consumo","account_template_466","payable","despesa","True" -"account_template_504","3.2.02.03.0038","Donativos e Contribuições","account_template_466","payable","despesa","True" -"account_template_505","3.2.02.03.0039","Locação de Equipamentos","account_template_466","payable","despesa","True" -"account_template_506","3.2.02.04","DESPESAS INDEDUTÍVEIS","account_template_443","view","despesa","True" -"account_template_507","3.2.02.04.0001","Autos de Infração","account_template_506","payable","despesa","True" -"account_template_508","3.2.02.04.0002","Multas Punitívas","account_template_506","payable","despesa","True" -"account_template_509","3.2.02.04.0003","Contribuições e Doações","account_template_506","payable","despesa","True" -"account_template_510","3.2.02.04.0004","Impostos Federais - Exerc. Anteriores","account_template_506","payable","despesa","True" -"account_template_511","3.2.02.04.0005","Impostos Estaduais - Exerc. Anteriores","account_template_506","payable","despesa","True" -"account_template_512","3.2.02.04.0006","Impostos Municipais - Exerc.Anteriores","account_template_506","payable","despesa","True" -"account_template_513","3.2.03","DESPESAS FINANCEIRAS","account_template_394","view","despesa","True" -"account_template_514","3.2.03.01","DESPESAS COM ATUALIZAÇÕES","account_template_513","view","despesa","True" -"account_template_515","3.2.03.01.0001","Variação Monetária Passiva","account_template_514","payable","despesa","True" -"account_template_516","3.2.03.01.0002","Variação Cambial Passiva","account_template_514","payable","despesa","True" -"account_template_517","3.2.03.01.0003","Despesas de Cobrança","account_template_514","payable","despesa","True" -"account_template_518","3.2.03.01.0004","Despesas Bancárias","account_template_514","payable","despesa","True" -"account_template_519","3.2.03.02","JUROS E DESCONTOS","account_template_513","view","despesa","True" -"account_template_520","3.2.03.02.0001","Juros de Mora","account_template_519","payable","despesa","True" -"account_template_521","3.2.03.02.0002","Descontos Concedidos","account_template_519","payable","despesa","True" -"account_template_522","3.2.03.02.0003","Juros s/ Empréstimos e Financiamentos","account_template_519","payable","despesa","True" -"account_template_523","3.2.03.02.0004","Juros s/ Descontos de Duplicatas","account_template_519","payable","despesa","True" -"account_template_524","3.2.04","DESPESAS TRIBUTÁRIAS","account_template_394","view","despesa","True" -"account_template_525","3.2.04.01","IMPOSTOS, TAXAS E CONTRIBUIÇÕES","account_template_524","view","despesa","True" -"account_template_526","3.2.04.01.0001","IOF","account_template_525","payable","despesa","True" -"account_template_527","3.2.04.01.0002","CPMF","account_template_525","payable","despesa","True" -"account_template_528","3.2.04.01.0003","IPTU","account_template_525","payable","despesa","True" -"account_template_529","3.2.04.01.0004","IPVA","account_template_525","payable","despesa","True" -"account_template_530","3.2.04.01.0005","IRF (Exclusivo na Fonte)","account_template_525","payable","despesa","True" -"account_template_531","3.2.04.01.0006","Impostos e Taxas Federais","account_template_525","payable","despesa","True" -"account_template_532","3.2.04.01.0007","Impostos e Taxas Estaduais","account_template_525","payable","despesa","True" -"account_template_533","3.2.04.01.0008","Impostos e Taxas Municipais","account_template_525","payable","despesa","True" -"account_template_534","3.2.04.02","MULTAS","account_template_524","view","despesa","True" -"account_template_535","3.2.04.02.0001","Multas Fiscais Compensatórias","account_template_534","payable","despesa","True" -"account_template_536","3.2.04.02.0002","Multas de Mora","account_template_534","payable","despesa","True" -"account_template_537","3.2.04.02.0003","Multas Contratuais","account_template_534","payable","despesa","True" -"account_template_538","3.2.05","OUTRAS DESPESAS OPERACIONAIS","account_template_394","view","despesa","True" -"account_template_539","3.2.05.01","PERDAS","account_template_538","view","despesa","True" -"account_template_540","3.2.05.01.0001","Perdas com Duplicatas Incobráveis","account_template_539","payable","despesa","True" -"account_template_541","3.2.06","DESPESAS NÃO OPERACIONAIS","account_template_394","view","despesa","True" -"account_template_542","3.2.06.01","PERDAS","account_template_541","view","despesa","True" -"account_template_543","3.2.06.01.0002","Perda crédito de ICMS s/ Imobilizado","account_template_542","payable","despesa","True" -"account_template_544","3.2.06.01.0003","Perdas com Sinistros","account_template_542","payable","despesa","True" -"account_template_545","3.2.06.01.0004","Perdas na Alienação de Imobilizado","account_template_542","payable","despesa","True" -"account_template_546","3.2.06.01.0001","Perdas na Alienação de Investimentos","account_template_542","payable","despesa","True" -"account_template_547","3.2.06.01.0005","Perdas, Deterioração de Mercadorias","account_template_542","payable","despesa","True" -"account_template_548","4","CONTAS DE RESULTADO - RECEITAS","account_template_1","view","receita","True" -"account_template_549","4.1","RECEITAS","account_template_548","view","receita","True" -"account_template_550","4.1.01","RECEITAS OPERACIONAIS VENDAS E SERVIÇOS","account_template_549","view","receita","True" -"account_template_551","4.1.01.01","RECEITA BRUTA VENDAS NO PAÍS ","account_template_550","view","receita","True" -"account_template_552","4.1.01.01.0001","Venda Produtos Fabricação Própria","account_template_551","receivable","receita","True" -"account_template_553","4.1.01.01.0002","Industrialização de Mercadorias","account_template_551","receivable","receita","True" -"account_template_554","4.1.01.01.0003","Revenda de Mercadorias","account_template_551","receivable","receita","True" -"account_template_555","4.1.01.01.0004","Venda Fabricação Própria","account_template_551","receivable","receita","True" -"account_template_556","4.1.01.01.0005","Industriazalição de Mercadorias","account_template_551","receivable","receita","True" -"account_template_557","4.1.01.01.0006","Revenda de Mercadorias","account_template_551","receivable","receita","True" -"account_template_558","4.1.01.02","RECEITA DE SERVIÇOS NO PAIS ","account_template_550","view","receita","True" -"account_template_559","4.1.01.02.0001","Receita de Serviços","account_template_558","receivable","receita","True" -"account_template_560","4.1.01.02.0002","Receita de Serviços","account_template_558","receivable","receita","True" -"account_template_561","4.1.01.03","RECEITA BRUTA DE VENDAS P/EXTERIOR","account_template_550","view","receita","True" -"account_template_562","4.1.01.03.0001","Venda de Produtos Fabricação Própria(EX)","account_template_561","receivable","receita","True" -"account_template_563","4.1.01.03.0002","Revenda de Mercadorias (EX)","account_template_561","receivable","receita","True" -"account_template_564","4.1.02","(-) DEDUÇÕES DA RECEITA BRUTA","account_template_549","view","receita","True" -"account_template_565","4.1.02.01","DEVOLUÇÕES E ABATIMENTOS","account_template_564","view","receita","True" -"account_template_566","4.1.02.01.0001","Devolução de Vendas","account_template_565","receivable","receita","True" -"account_template_567","4.1.02.01.0002","Abatimentos Concedidos","account_template_565","receivable","receita","True" -"account_template_568","4.1.02.01.0003","Devolução de Vendas","account_template_565","receivable","receita","True" -"account_template_569","4.1.02.01.0004","Abatimentos Concedidos","account_template_565","receivable","receita","True" -"account_template_570","4.1.02.02","IMPOSTOS SOBRE VENDAS E SERVIÇOS","account_template_564","view","receita","True" -"account_template_571","4.1.02.02.0001","ICMS sobre Vendas","account_template_570","receivable","receita","True" -"account_template_572","4.1.02.02.0002","IPI sobre Vendas","account_template_570","receivable","receita","True" -"account_template_573","4.1.02.02.0003","PIS sobre Vendas ","account_template_570","receivable","receita","True" -"account_template_574","4.1.02.02.0004","COFINS sobre Vendas","account_template_570","receivable","receita","True" -"account_template_575","4.1.02.02.0005","ISS sobre Serviços","account_template_570","receivable","receita","True" -"account_template_579","4.1.02.03","(-) IMPOSTOS S/ DEVOLUÇÃO DE VENDAS","account_template_564","view","receita","True" -"account_template_580","4.1.02.03.0001","(-) Cofins Não-Cumulativo s/ Dev. Vendas","account_template_579","receivable","receita","True" -"account_template_581","4.1.02.03.0002","(-) ICMS sobre Devolução de Vendas","account_template_579","receivable","receita","True" -"account_template_582","4.1.02.03.0003","(-) IPI s/Devolução de Vendas","account_template_579","receivable","receita","True" -"account_template_583","4.1.02.03.0004","(-) Pis Não-Cumulativo s/ Dev. Vendas","account_template_579","receivable","receita","True" -"account_template_584","4.1.03","RECEITAS FINANCEIRAS","account_template_549","view","receita","True" -"account_template_585","4.1.03.01","RECEITAS COM ATUALIZAÇÕES","account_template_584","view","receita","True" -"account_template_586","4.1.03.01.0001","Variação Monetária Ativa","account_template_585","receivable","receita","True" -"account_template_587","4.1.03.01.0002","Variação Cambial Ativa","account_template_585","receivable","receita","True" -"account_template_588","4.1.03.02","GANHOS COM APLICAÇÕES FINANCEIRAS","account_template_584","view","receita","True" -"account_template_589","4.1.03.02.0001","Rend. Aplic.Automática C/Corrente","account_template_588","receivable","receita","True" -"account_template_590","4.1.03.02.0002","Ganho Real Aplicações Renda Fixa","account_template_588","receivable","receita","True" -"account_template_591","4.1.03.02.0003","Ganho Real Aplic.Renda Variável","account_template_588","receivable","receita","True" -"account_template_592","4.1.03.02.0004","Rendimento Caderneta de Poupança","account_template_588","receivable","receita","True" -"account_template_593","4.1.03.03","JUROS E DESCONTOS OBTIDOS","account_template_584","view","receita","True" -"account_template_594","4.1.03.03.0001","Juros Recebidos","account_template_593","receivable","receita","True" -"account_template_595","4.1.03.03.0002","Descontos Obtidos","account_template_593","receivable","receita","True" -"account_template_596","4.1.03.04","(-) TRIBUTOS S/RECEITAS FINANCEIRAS","account_template_584","view","receita","True" -"account_template_597","4.1.03.04.0001","PIS sobre Receitas Financeiras","account_template_596","receivable","receita","True" -"account_template_598","4.1.03.04.0002","COFINS sobre Receitas Financeiras","account_template_596","receivable","receita","True" -"account_template_599","4.1.04","OUTRAS RECEITAS OPERACIONAIS","account_template_549","view","receita","True" -"account_template_600","4.1.04.01","LUCROS PARTIC.EM OUTRAS SOCIEDADES","account_template_599","view","receita","True" -"account_template_601","4.1.04.01.0001","Resultado de Coligadas e Controladas","account_template_600","receivable","receita","True" -"account_template_602","4.1.04.02","VENDAS DIVERSAS","account_template_599","view","receita","True" -"account_template_603","4.1.04.02.0001","Venda de Sucatas","account_template_602","receivable","receita","True" -"account_template_604","4.1.04.03","BRINDES E AMOSTRAS","account_template_599","view","receita","True" -"account_template_605","4.1.04.03.0001","Brindes e Bonificações","account_template_604","receivable","receita","True" -"account_template_606","4.1.04.03.0002","Amostras","account_template_604","receivable","receita","True" -"account_template_607","4.2","RESULTADOS NÃO OPERACIONAIS","account_template_548","view","receita","True" -"account_template_608","4.2.01","ALIENAÇÃO DE BENS PERMANENTES","account_template_607","view","receita","True" -"account_template_609","4.2.01.01","ALIENAÇÃO DE INVESTIMENTOS","account_template_608","view","receita","True" -"account_template_610","4.2.01.01.0001","Dividendos Recebidos","account_template_609","receivable","receita","True" -"account_template_611","4.2.01.01.0002","Alienação Partic.Societárias","account_template_609","receivable","receita","True" -"account_template_612","4.2.01.02","ALIENAÇÃO DE IMOBILIZADO","account_template_608","view","receita","True" -"account_template_613","4.2.01.02.0001","Alienação de Máquinas e Equipamentos","account_template_612","receivable","receita","True" -"account_template_614","4.2.01.02.0002","Alienação de Móveis e Utensílios","account_template_612","receivable","receita","True" -"account_template_615","4.2.01.02.0003","Alienação de Ferramentas","account_template_612","receivable","receita","True" -"account_template_616","4.2.01.02.0004","Alienação de Imóveis","account_template_612","receivable","receita","True" -"account_template_617","4.2.01.02.0005","Alienação de Veículos","account_template_612","receivable","receita","True" -"account_template_618","4.2.01.02.0006","Alienação de Equip.de Informática","account_template_612","receivable","receita","True" -"account_template_619","4.2.02","DEDUÇÕES DAS ALIENAÇÕES DE BENS","account_template_607","view","receita","True" -"account_template_620","4.2.02.01","CUSTO DA ALIENAÇÃO DE INVESTIMENTOS","account_template_619","view","receita","True" -"account_template_621","4.2.02.01.0001","Custo Alienação Partic.Societárias","account_template_620","receivable","receita","True" -"account_template_622","4.2.02.02","CUSTO DA ALIENAÇÃO DE IMOBILIZADO","account_template_619","view","receita","True" -"account_template_623","4.2.02.02.0001","Custo Alienação Máqs.e Equipamentos","account_template_622","receivable","receita","True" -"account_template_624","4.2.02.02.0002","Custo Alienação Movs.e Utensílios","account_template_622","receivable","receita","True" -"account_template_625","4.2.02.02.0003","Custo Alienação Ferramentas","account_template_622","receivable","receita","True" -"account_template_626","4.2.02.02.0004","Custo Alienação de Imóveis","account_template_622","receivable","receita","True" -"account_template_627","4.2.02.02.0005","Custo Alienação de Veículos","account_template_622","receivable","receita","True" -"account_template_628","4.2.02.02.0006","Custo Alienação Equip.Informática","account_template_622","receivable","receita","True" -"account_template_629","4.2.03","OUTRAS RECEITAS NÃO OPERACIONAIS","account_template_607","view","receita","True" -"account_template_630","4.2.03.01","INDENIZAÇÃO DE SEGUROS","account_template_629","view","receita","True" -"account_template_631","4.2.03.01.0001","Indenização de Seguros","account_template_630","receivable","receita","True" -"account_template_632","4.2.03.02","OUTRAS RECEITAS","account_template_629","view","receita","True" -"account_template_633","4.2.03.02.0001","Recuperação de Despesas","account_template_632","receivable","receita","True" -"account_template_634","5","CONTAS DE FECHAMENTO DE BALANÇO","account_template_1","view","resultado","True" -"account_template_635","5.1","RESULTADO DO EXERCÍCIO","account_template_634","view","resultado","True" -"account_template_636","5.1.01","RESULTADO OPERACIONAL","account_template_635","view","resultado","True" -"account_template_637","5.1.01.01","PROVISÃO IMPOSTOS E CONTRIB. S/ O LUCRO","account_template_636","view","resultado","True" -"account_template_638","5.1.01.01.0001","Provisão para IRPJ","account_template_637","closed","resultado","True" -"account_template_639","5.1.01.01.0002","Provisão para Contribuição Social","account_template_637","closed","resultado","True" -"account_template_640","5.1.01.02","RESULTADO FINAL DO EXERCÍCIO","account_template_636","view","resultado","True" -"account_template_641","5.1.01.02.0001","Resultado Líquido do Exercício","account_template_640","closed","resultado","True" diff --git a/l10n_br_account/data/account.account.type.csv b/l10n_br_account/data/account.account.type.csv deleted file mode 100644 index 1b1d8cfddac1..000000000000 --- a/l10n_br_account/data/account.account.type.csv +++ /dev/null @@ -1,7 +0,0 @@ -"id","code","name","close_method" -"ativo","1","Ativo","balance" -"passivo","2","Passivo","balance" -"despesa","3","Despesas","balance" -"receita","4","Receita","balance" -"resultado","5","Resultado","balance" - diff --git a/l10n_br_account/data/account.tax.code.template.csv b/l10n_br_account/data/account.tax.code.template.csv deleted file mode 100644 index 4622200982f3..000000000000 --- a/l10n_br_account/data/account.tax.code.template.csv +++ /dev/null @@ -1,14 +0,0 @@ -"id","code","name","parent_id:id","sign" -"tax_code_chart_root","","Códigos de Impostos Brasileiros","","1" -"tax_code_1","ICMS","ICMS Interno","tax_code_chart_root","1" -"tax_code_2","ICMS","ICMS Externo","tax_code_chart_root","1" -"tax_code_3","ICMS Subist","ICMS Subist","tax_code_chart_root","1" -"tax_code_4","IPI","IPI","tax_code_chart_root","1" -"tax_code_5","PIS","PIS","tax_code_chart_root","1" -"tax_code_6","COFINS","COFINS","tax_code_chart_root","1" -"tax_code_7","IRPJ","IRPJ","tax_code_chart_root","1" -"tax_code_8","IR","IR","tax_code_chart_root","1" -"tax_code_9","ISS","ISS","tax_code_chart_root","1" -"tax_code_10","CSLL","CSLL","tax_code_chart_root","1" - - diff --git a/l10n_br_account/data/account_tax_template.xml b/l10n_br_account/data/account_tax_template.xml deleted file mode 100644 index 1aa0ab88afa2..000000000000 --- a/l10n_br_account/data/account_tax_template.xml +++ /dev/null @@ -1,536 +0,0 @@ - - - - - - IPI - IPI - vat - 0.00 - - - - - - - - - - IPI 2% - IPI 2% - vat - 0.02 - - - - - - - - - - IPI 3% - IPI 3% - vat - 0.03 - - - - - - - - - - IPI 4% - IPI 4% - vat - 0.04 - - - - - - - - - - IPI 5% - IPI 5% - vat - 0.05 - - - - - - - - - - IPI 7% - IPI 7% - vat - 0.07 - - - - - - - - - - IPI 8% - IPI 8% - vat - 0.08 - False - - - - - - - - - IPI 10% - IPI 10% - vat - 0.10 - - - - - - - - - - IPI 12% - IPI 12% - vat - 0.12 - - - - - - - - - - IPI 13% - IPI 13% - vat - 0.13 - - - - - - - - - - IPI 15% - IPI 15% - vat - 0.15 - - - - - - - - - - IPI 16% - IPI 16% - vat - 0.16 - - - - - - - - - - IPI 18% - IPI 18% - vat - 0.18 - - - - - - - - - - IPI 20% - IPI 20% - vat - 0.20 - - - - - - - - - - IPI 22% - IPI 22% - vat - 0.22 - - - - - - - - - - IPI 25% - IPI 25% - vat - 0.25 - - - - - - - - - - IPI 27% - IPI 27% - vat - 0.27 - - - - - - - - - - IPI 30% - IPI 30% - vat - 0.30 - - - - - - - - - - IPI 35% - IPI 35% - vat - 0.35 - - - - - - - - - - IPI 40% - IPI 40% - vat - 0.40 - - - - - - - - - - IPI 42% - IPI 42% - vat - 0.42 - - - - - - - - - - IPI 45% - IPI 45% - vat - 0.45 - - - - - - - - - - IPI 50% - IPI 50% - vat - 0.50 - - - - - - - - - - IPI 60% - IPI 60% - vat - 0.60 - - - - - - - - - - IPI 330% - IPI 330% - vat - 3.30 - - - - - - - - - - ICMS Interno - ICMS Interno - vat - 0.00 - - - - - - - - - - ICMS Externo - ICMS Externo - vat - 0.00 - - - - - - - - - - ICMS Subist - ICMS Subist - vat - 0.00 - - - - - - - - - - ICMS 7% - ICMS 7% - vat - 0.07 - - - - - - - - - - - - - ICMS 12% - ICMS 12% - vat - 0.12 - - - - - - - - - - - - ICMS 19% - ICMS 19% - vat - 0.19 - - - - - - - - - - - - ICMS 26% - ICMS 26% - vat - 0.26 - - - - - - - - - - - - PIS - PIS - vat - 0.00 - - - - - - - - - - PIS 0,65% - PIS 0,65% - vat - 0.0065 - - - - - - - - - - - COFINS - COFINS - vat - 0.00 - - - - - - - - - - - COFINS 3% - COFINS 3% - vat - 0.03 - - - - - - - - - - IRPJ - IRPJ - vat - 0.00 - - - - - - - - - - IR - IR - vat - 0.00 - - - - - - - - - - ISS - ISS - vat - 0.00 - - - - - - - - - - CSLL - CSLL - vat - 0.00 - - - - - - - - - diff --git a/l10n_br_account/data/l10n_br_account_chart_template.xml b/l10n_br_account/data/l10n_br_account_chart_template.xml deleted file mode 100644 index dd714bacab88..000000000000 --- a/l10n_br_account/data/l10n_br_account_chart_template.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Planilha de Contas Brasileira - - - - - - - - - - - Generate Chart of Accounts from a Chart Template - Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. - This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. - - open - onskip - - - - - From 145604c42273c2d3d1a608fbd5db22bd668c8855 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 8 Nov 2010 13:40:42 -0200 Subject: [PATCH 0014/1549] =?UTF-8?q?atualiza=C3=A7=C3=A3o=20das=20views?= =?UTF-8?q?=20da=20Nota=20Fiscal=20de=20Entrada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 15 ++++++++++++++- l10n_br_account/l10n_br_account.py | 10 +++++++++- l10n_br_account/l10n_br_account_view.xml | 4 ++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 2a39b54e1118..f0b07b80689c 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -77,6 +77,8 @@ + + @@ -105,7 +107,7 @@ - + l10n_br_account.invoice.supplier.form3 account.invoice @@ -150,6 +152,17 @@ + + + l10n_br.invoice.line.form2 + account.invoice.line + + + + + + +
diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 985b923e3f5b..2cd9598e1eb9 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -89,11 +89,15 @@ class l10n_br_account_fiscal_operation_category(osv.osv): _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), } + _defaults = { + 'type': 'output', + } l10n_br_account_fiscal_operation_category() ################################################################################# @@ -105,7 +109,8 @@ class l10n_br_account_fiscal_operation(osv.osv): _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', domain="[('type','=',type)]", requeried=True), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', requeried=True), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), @@ -114,6 +119,9 @@ class l10n_br_account_fiscal_operation(osv.osv): 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), } + _defaults = { + 'type': 'output', + } l10n_br_account_fiscal_operation() diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index c9e9a037161f..afb6a695f31a 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -115,6 +115,7 @@
+ @@ -131,6 +132,7 @@ + @@ -143,6 +145,7 @@ + @@ -163,6 +166,7 @@ + From 721e91c92e594e0b081322d6a673e1903b187764 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 16 Nov 2010 02:41:16 -0200 Subject: [PATCH 0015/1549] resolvido referencias para o novo modulo l10n_br mudado o workflow da account.invoice para nfe --- l10n_br_account/__openerp__.py | 1 + l10n_br_account/account_invoice_view.xml | 13 +++++ l10n_br_account/account_invoice_workflow.xml | 50 ++++++++++++++++++++ l10n_br_account/invoice.py | 11 ++++- 4 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 l10n_br_account/account_invoice_workflow.xml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 2a538c2e817d..1a0fe061bf36 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -37,6 +37,7 @@ 'l10n_br_account_view.xml', 'partner_view.xml', 'account_invoice_view.xml', + 'account_invoice_workflow.xml', 'account_view.xml', 'account_fiscal_position_rule_view.xml', 'security/ir.model.access.csv', diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index f0b07b80689c..81987a96526c 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -65,6 +65,19 @@ + + l10n_br_account.invoice.form5 + account.invoice + + + + + + l10n_br_account.invoice.supplier.form diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml new file mode 100644 index 000000000000..a4636241e293 --- /dev/null +++ b/l10n_br_account/account_invoice_workflow.xml @@ -0,0 +1,50 @@ + + + + + + + + sefaz_out + True + write({'state':'sefaz_out'}) + function + + + + + sefaz_exception + True + write({'state':'sefaz_exception'}) + function + + + + + + + test_nfe() + sefaz_out + + + + + + True + + + + + + True + + + + + + sefaz_out + not test_nfe() + + + + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index ad922c34c229..4bfb7cb9d797 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -78,7 +78,7 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): ('proforma2','Pro-forma'), ('open','Open'), ('sefaz_out','Enviar para Receita'), - ('sefaz_aut','Autorizada pela Receita'), + ('sefaz_exception','Erro de autorização da Receita'), ('paid','Paid'), ('cancel','Cancelled') ],'State', select=True, readonly=True, @@ -91,6 +91,7 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): \n* The \'Cancelled\' state is used when user cancel invoice.'), 'access_key_nfe': fields.char('Chave de Acesso', size=44, readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), @@ -148,6 +149,14 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): multi='all'), } + def test_nfe(self, cr, uid, ids, *args): + ok = False + for inv in self.browse(cr, uid, ids): + if inv.fiscal_document_id: + return inv.fiscal_document_id.nfe + + return ok + def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): From 6f9f1671053c24145cfeecdd4f86d5fab35dae77 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 16 Nov 2010 19:13:35 -0200 Subject: [PATCH 0016/1549] Incluido o campo bairro (district) no res.partner.address --- l10n_br_account/account_invoice_workflow.xml | 4 ++-- l10n_br_account/invoice.py | 10 +--------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index a4636241e293..b7d8d71a12d1 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -2,7 +2,7 @@ - + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 4bfb7cb9d797..de0f20305e74 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -91,7 +91,7 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): \n* The \'Cancelled\' state is used when user cancel invoice.'), 'access_key_nfe': fields.char('Chave de Acesso', size=44, readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), + #'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), @@ -149,14 +149,6 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): multi='all'), } - def test_nfe(self, cr, uid, ids, *args): - ok = False - for inv in self.browse(cr, uid, ids): - if inv.fiscal_document_id: - return inv.fiscal_document_id.nfe - - return ok - def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): From 767c53764ea8751c26c5826f8b973cf3d2f3333c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 17 Nov 2010 03:01:38 -0200 Subject: [PATCH 0017/1549] =?UTF-8?q?Adicionado=20novas=20transi=C3=A7?= =?UTF-8?q?=C3=B5es=20e=20atividades=20no=20workflow=20account.invoice.bas?= =?UTF-8?q?ic=20para=20ser=20usado=20pela=20NFe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 61 ++++++++++++++++++-- l10n_br_account/account_invoice_workflow.xml | 52 +++++++++++------ l10n_br_account/invoice.py | 4 +- 3 files changed, 92 insertions(+), 25 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 81987a96526c..ac863d38d27c 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -1,7 +1,25 @@ - + + + l10n_br_account.invoice.form @@ -71,9 +89,20 @@ + + + + + l10n_br_account.invoice.form6 + account.invoice + + + @@ -131,6 +160,30 @@ + + l10n_br_account.invoice.supplier.form4 + account.invoice + + + + + + + + l10n_br_account.invoice.supplier.form5 + account.invoice + + + + + + l10n_br_account.invoice.line.form diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index b7d8d71a12d1..685bd744ba73 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -2,49 +2,63 @@ - + - sefaz_out - True - write({'state':'sefaz_out'}) + sefaz_export + write({'state':'sefaz_export'}) function sefaz_exception - True write({'state':'sefaz_exception'}) function - - + - - test_nfe() - sefaz_out + + fiscal_document_nfe == True + invoice_sefaz_export - - + + True + invoice_open + + + + + + True + invoice_cancel + + + + + + True + invoice_sefaz_exception - - - + + + True + invoice_cancel - sefaz_out - not test_nfe() + fiscal_document_nfe == False + invoice_sefaz_export - --> + + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index de0f20305e74..2942874ef7c5 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -77,7 +77,7 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): ('proforma','Pro-forma'), ('proforma2','Pro-forma'), ('open','Open'), - ('sefaz_out','Enviar para Receita'), + ('sefaz_export','Enviar para Receita'), ('sefaz_exception','Erro de autorização da Receita'), ('paid','Paid'), ('cancel','Cancelled') @@ -91,7 +91,7 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): \n* The \'Cancelled\' state is used when user cancel invoice.'), 'access_key_nfe': fields.char('Chave de Acesso', size=44, readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), - #'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), + 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), From 62717fd774710aeaa2c9a108e79fc405823b8305 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 29 Nov 2010 17:30:15 -0200 Subject: [PATCH 0018/1549] =?UTF-8?q?Adicionado=20integra=C3=A7=C3=A3o=20c?= =?UTF-8?q?om=20NFe=20v2.00=20feita=20atrav=C3=A9s=20de=20arquivos=20XML?= =?UTF-8?q?=20ou=20TXT=20para=20ser=20importado=20no=20Emissor=20de=20NFe?= =?UTF-8?q?=20e=20modulo=20l10n=5Fbr=5Ffp=5Frule=5Fsale=5Flink=20para=20re?= =?UTF-8?q?solver=20as=20compatibilidades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__init__.py | 1 + l10n_br_account/__openerp__.py | 1 + l10n_br_account/account.py | 27 + l10n_br_account/account_invoice_view.xml | 11 + l10n_br_account/account_invoice_workflow.xml | 36 +- l10n_br_account/account_view.xml | 26 +- l10n_br_account/invoice.py | 937 +++++++++++++++++- l10n_br_account/wizard/__init__.py | 23 + .../wizard/l10n_br_account_nfe_export.py | 73 ++ .../l10n_br_account_nfe_export_view.xml | 65 ++ 10 files changed, 1187 insertions(+), 13 deletions(-) create mode 100644 l10n_br_account/wizard/__init__.py create mode 100644 l10n_br_account/wizard/l10n_br_account_nfe_export.py create mode 100644 l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 14a536c41beb..a8d7e8ee61d4 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -22,6 +22,7 @@ import account import invoice import account_fiscal_position_rule +import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 1a0fe061bf36..ec04f56e8687 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -38,6 +38,7 @@ 'partner_view.xml', 'account_invoice_view.xml', 'account_invoice_workflow.xml', + 'wizard/l10n_br_account_nfe_export_view.xml', 'account_view.xml', 'account_fiscal_position_rule_view.xml', 'security/ir.model.access.csv', diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 827835389ebb..51f10ccb1877 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -31,6 +31,20 @@ from tools import config +############################################################################## +# Cadastro de Modelos de Impostos Personalizado +############################################################################## + +class account_tax_template(osv.osv): + _inherit = 'account.tax.template' + + _columns = { + 'tax_discount': fields.boolean('Descontar Imposto do Preço', help="Marque isso se este imposto é descontado no preço, exemplo: (ICMS, PIS e etc.)."), + } + +account_tax_template() + + ############################################################################## # Cadastro de Impostos Personalizado ############################################################################## @@ -67,4 +81,17 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, pro } account_tax() + + +############################################################################## +# Cadastro de Diários Contábeis +############################################################################## +class account_journal(osv.osv): + _inherit = "account.journal" + + _columns = { + 'internal_sequence': fields.many2one('ir.sequence', 'Internal Sequence'), + } + +account_journal() diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index ac863d38d27c..6b63b978f5eb 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -107,6 +107,17 @@ + + l10n_br_account.invoice.form6 + account.invoice + + + + + + + + l10n_br_account.invoice.supplier.form diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index 685bd744ba73..876b72b156a9 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -1,29 +1,40 @@ - - + + sefaz_export write({'state':'sefaz_export'}) function - + sefaz_exception - write({'state':'sefaz_exception'}) + action_date_assign() +action_move_create() +action_number() +action_internal_number() +write({'state':'sefaz_export'}) function + + + open + write({'state':'open'}) + function + + fiscal_document_nfe == True invoice_sefaz_export - + @@ -31,27 +42,34 @@ invoice_open - + True invoice_cancel - + + + + + True + invoice_open + + True invoice_sefaz_exception - + True invoice_cancel - + diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index dfbe521944de..d8ccf9c36999 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -3,6 +3,17 @@ + + l10n_br_account.tax.template.form + account.tax.template + + + + + + + + l10n_br_account.tax.form account.tax @@ -13,6 +24,19 @@ + + + l10n_br.journal.form.inherit + account.journal + form + + + + + + + + - \ No newline at end of file + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 2942874ef7c5..e4f6bba6ff58 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -25,6 +25,13 @@ from tools import config from tools.translate import _ +import re, string +from unicodedata import normalize +from xml.etree import ElementTree +from xml.etree.ElementTree import Element, SubElement, Comment, tostring +from xml.dom import minidom +from datetime import datetime + ############################################################################## # Fatura (Nota Fiscal) Personalizado ############################################################################## @@ -43,6 +50,10 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): 'icms_value': 0.0, 'ipi_base': 0.0, 'ipi_value': 0.0, + 'pis_base': 0.0, + 'pis_value': 0.0, + 'cofins_base': 0.0, + 'cofins_value': 0.0, } for line in invoice.invoice_line: res[invoice.id]['amount_untaxed'] += line.price_total @@ -51,6 +62,10 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): res[invoice.id]['icms_value'] += line.icms_value res[invoice.id]['ipi_base'] += line.ipi_base res[invoice.id]['ipi_value'] += line.ipi_value + res[invoice.id]['pis_base'] += line.pis_base + res[invoice.id]['pis_value'] += line.pis_value + res[invoice.id]['cofins_base'] += line.cofins_base + res[invoice.id]['cofins_value'] += line.cofins_value for invoice_tax in invoice.tax_line: @@ -146,9 +161,925 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): # 'account.invoice.tax': (_get_invoice_tax, None, 20), # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, - multi='all'), + multi='all'), + 'pis_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base PIS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'pis_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor PIS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'cofins_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base COFINS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), + 'cofins_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor COFINS', + store={ + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), + # 'account.invoice.tax': (_get_invoice_tax, None, 20), + # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + }, + multi='all'), } + def action_internal_number(self, cr, uid, ids, context=None): + + if context is None: + context = {} + + for obj_inv in self.browse(cr, uid, ids): + obj_sequence = self.pool.get('ir.sequence') + seq_no = obj_sequence.get_id(cr, uid, obj_inv.journal_id.internal_sequence.id, context=context) + self.write(cr, uid, obj_inv.id, {'internal_number': seq_no}) + + + return True + + def action_number(self, cr, uid, ids, context=None): + if context is None: + context = {} + #TODO: not correct fix but required a frech values before reading it. + self.write(cr, uid, ids, {}) + + for obj_inv in self.browse(cr, uid, ids): + id = obj_inv.id + invtype = obj_inv.type + number = obj_inv.number + move_id = obj_inv.move_id and obj_inv.move_id.id or False + reference = obj_inv.reference or '' + + #self.write(cr, uid, ids, {'internal_number':number}) + + if invtype in ('in_invoice', 'in_refund'): + if not reference: + ref = self._convert_ref(cr, uid, number) + else: + ref = reference + else: + ref = self._convert_ref(cr, uid, number) + + cr.execute('UPDATE account_move SET ref=%s ' \ + 'WHERE id=%s AND (ref is null OR ref = \'\')', + (ref, move_id)) + cr.execute('UPDATE account_move_line SET ref=%s ' \ + 'WHERE move_id=%s AND (ref is null OR ref = \'\')', + (ref, move_id)) + cr.execute('UPDATE account_analytic_line SET ref=%s ' \ + 'FROM account_move_line ' \ + 'WHERE account_move_line.move_id = %s ' \ + 'AND account_analytic_line.move_id = account_move_line.id', + (ref, move_id)) + + for inv_id, name in self.name_get(cr, uid, [id]): + ctx = context.copy() + if obj_inv.type in ('out_invoice', 'out_refund'): + ctx = self.get_log_context(cr, uid, context=ctx) + message = _('Invoice ') + " '" + name + "' "+ _("is validated.") + self.log(cr, uid, inv_id, message, context=ctx) + return True + + + def nfe_dv(self, key): + + return '2' + + def nfe_export_txt(self, cr, uid, ids, context=False): + + StrFile = '' + + StrNF = 'NOTA FISCAL|%s|\n' % len(ids) + + StrFile = StrNF + + for inv in self.browse(cr, uid, ids): + + #Endereço do company + company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + #nfe_key = unicode(company_addr_default.state_id.ibge_code).strip().rjust(2, u'0') + #nfe_key += unicode(datetime.strptime(inv.date_invoice, '%Y-%m-%d').strftime(u'%y%m')).strip().rjust(4, u'0') + #nfe_key += re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '') + #nfe_key += inv.fiscal_document_id.code + #nfe_key += unicode(inv.document_serie_id.code).strip().rjust(3, u'0') + #nfe_key += unicode(inv.internal_number).strip().rjust(9, u'0') + #fe_key += unicode('1').strip().rjust(1, u'0') # Homologação + #nfe_key += unicode(inv.internal_number).strip().rjust(8, u'0') + #nfe_key += unicode(self.nfe_dv(nfe_key)).strip().rjust(1, u'0') + + StrA = 'A|%s|%s|\n' % ('2.00', '') + + StrFile += StrA + + StrRegB = { + 'cUF': company_addr_default.state_id.ibge_code, + 'cNF': '', + 'NatOp': inv.cfop_id.name, + 'intPag': '2', + 'mod': inv.fiscal_document_id.code, + 'serie': inv.document_serie_id.code, + 'nNF': inv.internal_number or '', + 'dEmi': inv.date_invoice or '', + 'dSaiEnt': inv.date_invoice or '', + 'hSaiEnt': '', + 'tpNF': '', + 'cMunFG': ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.city_id.ibge_code), + 'TpImp': '1', + 'TpEmis': '1', + 'cDV': '', + 'tpAmb': '2', + 'finNFe': '1', + 'procEmi': '0', + 'VerProc': '2.0.4', + 'dhCont': '', + 'xJust': '', + } + + if inv.cfop_id.type in ("input"): + StrRegB['tpNF'] = '0' + else: + StrRegB['tpNF'] = '1' + + StrB = 'B|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegB['cUF'], StrRegB['cNF'], StrRegB['NatOp'], StrRegB['intPag'], + StrRegB['mod'], StrRegB['serie'], StrRegB['nNF'], StrRegB['dEmi'], StrRegB['dSaiEnt'], + StrRegB['hSaiEnt'], StrRegB['tpNF'], StrRegB['cMunFG'], StrRegB['TpImp'], StrRegB['TpEmis'], + StrRegB['cDV'], StrRegB['tpAmb'], StrRegB['finNFe'], StrRegB['procEmi'], StrRegB['VerProc'], + StrRegB['dhCont'], StrRegB['xJust']) + StrFile += StrB + + StrRegC = { + 'XNome': normalize('NFKD',unicode(inv.company_id.partner_id.legal_name or '')).encode('ASCII','ignore'), + 'XFant': normalize('NFKD',unicode(inv.company_id.partner_id.name or '')).encode('ASCII','ignore'), + 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), + 'IEST': '', + 'IM': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or ''), + 'CNAE': '', + 'CRT': '3', + } + + StrC = 'C|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC['XNome'], StrRegC['XFant'], StrRegC['IE'], StrRegC['IEST'], + StrRegC['IM'],StrRegC['CNAE'],StrRegC['CRT']) + + StrFile += StrC + + if inv.company_id.partner_id.tipo_pessoa == 'J': + StrC02 = 'C02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + else: + StrC02 = 'C02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + + StrFile += StrC02 + + StrRegC05 = { + 'XLgr': company_addr_default.street or '', + 'Nro': company_addr_default.number or '', + 'Cpl': company_addr_default.street2 or '', + 'Bairro': normalize('NFKD',unicode(company_addr_default.district or '')).encode('ASCII','ignore'), + 'CMun': '%s%s' % (company_addr_default.state_id.ibge_code, company_addr_default.city_id.ibge_code), + 'XMun': normalize('NFKD',unicode(company_addr_default.city_id.name or '')).encode('ASCII','ignore'), + 'UF': company_addr_default.state_id.code or '', + 'CEP': re.sub('[%s]' % re.escape(string.punctuation), '', company_addr_default.zip or ''), + 'cPais': company_addr_default.country_id.bc_code or '', + 'xPais': company_addr_default.country_id.name or '', + 'fone': company_addr_default.phone or '', + } + + StrC05 = 'C05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC05['XLgr'], StrRegC05['Nro'], StrRegC05['Cpl'], StrRegC05['Bairro'], + StrRegC05['CMun'], StrRegC05['XMun'], StrRegC05['UF'], StrRegC05['CEP'], + StrRegC05['cPais'], StrRegC05['xPais'], StrRegC05['fone']) + + StrFile += StrC05 + + StrRegE = { + 'xNome': inv.company_id.partner_id.legal_name, + 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), + 'ISUF': '', + 'email': inv.company_id.partner_id.email, + } + + StrE = 'E|%s|%s|%s|%s|\n' % (StrRegE['xNome'], StrRegE['IE'], StrRegE['ISUF'], StrRegE['email']) + + StrFile += StrE + + if inv.partner_id.tipo_pessoa == 'J': + StrE0 = 'E02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + else: + StrE0 = 'E03|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + + StrFile += StrE0 + + StrRegE05 = { + 'xLgr': inv.address_invoice_id.street or '', + 'nro': inv.address_invoice_id.number, + 'xCpl': normalize('NFKD',unicode(inv.address_invoice_id.street2 or '')).encode('ASCII','ignore'), + 'xBairro': normalize('NFKD',unicode(inv.address_invoice_id.district or '')).encode('ASCII','ignore'), + 'cMun': ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.city_id.ibge_code), + 'xMun': normalize('NFKD',unicode(inv.address_invoice_id.city_id.name or '')).encode('ASCII','ignore'), + 'UF': inv.address_invoice_id.state_id.code, + 'CEP': re.sub('[%s]' % re.escape(string.punctuation), '', inv.address_invoice_id.zip or ''), + 'cPais': inv.address_invoice_id.country_id.bc_code, + 'xPais': inv.address_invoice_id.country_id.name, + 'fone': inv.address_invoice_id.phone, + } + + StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'], + StrRegE05['cMun'], StrRegE05['xMun'], StrRegE05['UF'], StrRegE05['CEP'], + StrRegE05['cPais'],StrRegE05['xPais'], StrRegE05['fone'],) + + StrFile += StrE05 + + i = 0 + for inv_line in inv.invoice_line: + i += 1 + + StrH = 'H|%s||\n' % (i) + + StrFile += StrH + + StrRegI = { + 'CProd': inv_line.product_id.code, + 'CEAN': inv_line.product_id.ean13, + 'XProd': inv_line.product_id.name, + 'NCM': re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.product_id.property_fiscal_classification.name or ''), + 'EXTIPI': '', + 'CFOP': inv_line.cfop_id.code, + 'UCom': inv_line.uos_id.name, + 'QCom': str("%.4f" % inv_line.quantity), + 'VUnCom': str("%.2f" % inv_line.price_unit), + 'VProd': str("%.2f" % inv_line.price_subtotal), + 'CEANTrib': '', + 'UTrib': inv_line.uos_id.name, + 'QTrib': str("%.4f" % inv_line.quantity), + 'VUnTrib': str("%.2f" % inv_line.price_unit), + 'VFrete': '', + 'VSeg': '', + 'VDesc': '', + 'vOutro': '', + 'indTot': '1', + 'xPed': '', + 'nItemPed': '', + } + + if inv_line.product_id.code: + StrRegI['CProd'] = inv_line.product_id.code + else: + StrRegI['CProd'] = unicode(i).strip().rjust(4, u'0') + + if inv_line.discount > 0: + StrRegI['VDesc'] = str("%.2f" % inv_line.discount) + + StrI = 'I|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegI['CProd'], StrRegI['CEAN'], StrRegI['XProd'], StrRegI['NCM'], + StrRegI['EXTIPI'], StrRegI['CFOP'], StrRegI['UCom'], StrRegI['QCom'], + StrRegI['VUnCom'], StrRegI['VProd'], StrRegI['CEANTrib'], StrRegI['UTrib'], + StrRegI['QTrib'], StrRegI['VUnTrib'], StrRegI['VFrete'], StrRegI['VSeg'], + StrRegI['VDesc'], StrRegI['vOutro'], StrRegI['indTot'], StrRegI['xPed'], + StrRegI['nItemPed']) + + StrFile += StrI + + StrM = 'M|\n' + + StrFile += StrM + + StrN = 'N|\n' + + StrFile += StrN + + StrRegN02 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'ModBC': '0', + 'VBC': str("%.2f" % inv_line.icms_base), + 'PICMS': str("%.2f" % inv_line.icms_percent), + 'VICMS': str("%.2f" % inv_line.icms_value), + } + + #TODO - Fazer alteração para cada tipo de cst + StrN02 = 'N02|%s|%s|%s|%s|%s|%s|\n' % (StrRegN02['Orig'], StrRegN02['CST'], StrRegN02['ModBC'], StrRegN02['VBC'], StrRegN02['PICMS'], + StrRegN02['VICMS']) + + StrFile += StrN02 + + StrRegO = { + 'ClEnq': '', + 'CNPJProd': '', + 'CSelo': '', + 'QSelo': '', + 'CEnq': '999', + } + + StrO = 'O|%s|%s|%s|%s|%s|\n' % (StrRegO['ClEnq'], StrRegO['CNPJProd'], StrRegO['CSelo'], StrRegO['QSelo'], StrRegO['CEnq']) + + StrFile += StrO + + if inv_line.ipi_percent > 0: + StrRegO07 = { + 'CST': inv_line.ipi_cst, + 'VIPI': str("%.2f" % inv_line.ipi_value), + } + + StrO07 = 'O07|%s|%s|\n' % (StrRegO07['CST'], StrRegO07['VIPI']) + + StrFile += StrO07 + + StrRegO10 = { + 'QUnid': str("%.2f" % inv_line.ipi_base), + 'VUnid': str("%.2f" % inv_line.ipi_percent), + } + + StrO1 = 'O10|%s|%s|\n' % (StrRegO10['QUnid'], StrRegO10['VUnid']) + StrFile += StrO1 + + else: + StrO1 = 'O08|%s|\n' % inv_line.ipi_cst + StrFile += StrO1 + + StrQ = 'Q|\n' + + StrFile += StrQ + + if inv_line.pis_percent > 0: + StrRegQ02 = { + 'CST': inv_line.pis_cst, + 'VBC': str("%.2f" % inv_line.pis_base), + 'PPIS': str("%.2f" % inv_line.pis_percent), + 'VPIS': str("%.2f" % inv_line.pis_value), + } + + StrQ02 = ('Q02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], StrRegQ02['VBC'], StrRegQ02['PPIS'], StrRegQ02['VPIS']) + + else: + StrQ02 = 'Q04|%s|\n' % inv_line.pis_cst + + StrFile += StrQ02 + + StrQ = 'S|\n' + + StrFile += StrQ + + if inv_line.cofins_percent > 0: + StrRegS02 = { + 'CST': inv_line.cofins_cst, + 'VBC': str("%.2f" % inv_line.cofins_base), + 'PCOFINS': str("%.2f" % inv_line.cofins_percent), + 'VCOFINS': str("%.2f" % inv_line.cofins_value), + } + + StrS02 = ('S02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], StrRegQ02['VBC'], StrRegQ02['PPIS'], StrRegQ02['VPIS']) + + else: + StrS02 = 'S04|%s|\n' % inv_line.cofins_cst + + StrFile += StrS02 + + StrW = 'W|\n' + + StrFile += StrW + + StrRegW02 = { + 'vBC': str("%.2f" % inv.icms_base), + 'vICMS': str("%.2f" % inv.icms_value), + 'vBCST': '0.00', + 'vST': '0.00', + 'vProd': str("%.2f" % inv.amount_untaxed), + 'vFrete': '0.00', + 'vSeg': str("%.2f" % inv.amount_insurance), + 'vDesc': '0.00', + 'vII': '0.00', + 'vIPI': str("%.2f" % inv.ipi_value), + 'vPIS': str("%.2f" % inv.pis_value), + 'vCOFINS': str("%.2f" % inv.cofins_value), + 'vOutro': str("%.2f" % inv.amount_costs), + 'vNF': str("%.2f" % inv.amount_total), + } + + StrW02 = 'W02|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegW02['vBC'], StrRegW02['vICMS'], StrRegW02['vBCST'], StrRegW02['vST'], StrRegW02['vProd'], + StrRegW02['vFrete'], StrRegW02['vSeg'], StrRegW02['vDesc'], StrRegW02['vII'], StrRegW02['vIPI'], + StrRegW02['vPIS'], StrRegW02['vCOFINS'], StrRegW02['vOutro'], StrRegW02['vNF']) + + + StrFile += StrW02 + + StrX = 'X|%s|\n' % ('0') + + StrFile += StrX + + StrRegX03 = { + 'XNome': '', + 'IE': '', + 'XEnder': '', + 'UF': '', + 'XMun': '', + } + + StrX0 = '' + + if inv.carrier_id: + + #Endereço da transportadora + carrier_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) + carrier_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] + + if inv.carrier_id.partner_id.legal_name: + StrX03['XNome'] = inv.carrier_id.partner_id.legal_name + else: + StrX03['XNome'] = inv.carrier_id.partner_id.name or '' + + StrX03['IE'] = inv.carrier_id.partner_id.inscr_est + StrX03['xEnder'] = carrier_addr_default.street + StrX03['UF'] = carrier_addr_default.state_id.code + + StrX03['xMun'] = carrier_addr_default.city_id.name + + if inv.carrier_id.partner_id.tipo_pessoa == 'J': + StrX0 = 'X04|%s|\n' % (inv.carrier_id.partner_id.cnpj_cpf) + else: + StrX0 = 'X05|%s|\n' % (inv.carrier_id.partner_id.cnpj_cpf) + + + StrX03 = 'X03|%s|%s|%s|%s|%s|\n' % (StrRegX03['XNome'], StrRegX03['IE'], StrRegX03['XEnder'], StrRegX03['UF'], StrRegX03['XMun']) + + StrFile += StrX03 + StrFile += StrX0 + + + StrRegX18 = { + 'Placa': '', + 'UF': '', + 'RNTC': '', + } + + StrX18 = 'X18|%s|%s|%s|\n' % (StrRegX18['Placa'], StrRegX18['UF'], StrRegX18['RNTC']) + + StrFile += StrX18 + + StrRegX26 = { + 'QVol': '', + 'Esp': '', # TODO + 'Marca': '', + 'NVol': '', + 'PesoL': '', + 'PesoB': '', + } + + if inv.number_of_packages: + + StrRegX26['QVol'] = inv.number_of_packages + StrRegX26['Esp'] = 'Volume' + StrRegX26['Marca'] + StrRegX26['NVol'] + StrRegX26['PesoL'] = inv.weight_net + StrRegX26['PesoB'] = inv.weight + + StrX26 = 'X26|%s|%s|%s|%s|%s|%s|\n' % (StrRegX26['QVol'], StrRegX26['Esp'], StrRegX26['Marca'], StrRegX26['NVol'], StrRegX26['PesoL'], StrRegX26['PesoB']) + + StrFile += StrX26 + + StrRegZ = { + 'InfAdFisco': '', + 'InfCpl': '', + } + + StrZ = 'Z|%s|%s|\n' % (StrRegZ['InfAdFisco'], StrRegZ['InfCpl']) + + StrFile += StrZ + + return unicode(StrFile.encode('utf-8')) + + + def nfe_export_xml(self, cr, uid, ids, context=False): + + nfeProc = Element('nfeProc', {'versao': '2.00', 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) + + for inv in self.browse(cr, uid, ids): + + #Endereço do company + company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + #MontaChave da Nota Fiscal Eletronica + nfe_key = unicode(company_addr_default.state_id.ibge_code).strip().rjust(2, u'0') + nfe_key += unicode(datetime.strptime(inv.date_invoice, '%Y-%m-%d').strftime(u'%y%m')).strip().rjust(4, u'0') + nfe_key += '08478495000170' # unicode(inv.company_id.partner_id.cnpj_cpf).strip().rjust(14, u'0') + nfe_key += inv.fiscal_document_id.code + nfe_key += unicode(inv.document_serie_id.code).strip().rjust(3, u'0') + nfe_key += unicode(inv.internal_number).strip().rjust(9, u'0') + nfe_key += unicode('1').strip().rjust(1, u'0') # Homologação + nfe_key += unicode(inv.internal_number).strip().rjust(8, u'0') + nfe_key += unicode(self.nfe_dv(nfe_key)).strip().rjust(1, u'0') + + NFe = SubElement(nfeProc, 'NFe', { 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) + + infNFe = SubElement(NFe, 'infNFe', {'versao': '2.00', 'Id': nfe_key }) + + #Dados da identificação da nota fiscal + ide = SubElement(infNFe, 'ide') + + ide_cUF = SubElement(ide, 'cUF') + ide_cUF.text = company_addr_default.state_id.ibge_code + + ide_cNF = SubElement(ide, 'cNF') + ide_cNF.text = unicode(inv.internal_number).strip().rjust(8, u'0') + + ide_natOp = SubElement(ide, 'natOp') + ide_natOp.text = inv.cfop_id.name + + ide_indPag = SubElement(ide, 'indPag') + ide_indPag.text = "2" + + ide_mod = SubElement(ide, 'mod') + ide_mod.text = inv.fiscal_document_id.code + + ide_serie = SubElement(ide, 'serie') + ide_serie.text = inv.document_serie_id.code + + ide_nNF = SubElement(ide, 'nNF') + ide_nNF.text = inv.internal_number + + ide_dEmi = SubElement(ide, 'dEmi') + ide_dEmi.text = inv.date_invoice + + ide_dSaiEnt = SubElement(ide, 'dSaiEnt') + ide_dSaiEnt.text = inv.date_invoice + + ide_tpNF = SubElement(ide, 'tpNF') + if inv.type in ("out_invoice", "in_refuld"): + ide_tpNF.text = '0' + else: + ide_tpNF.text = '1' + + ide_cMunFG = SubElement(ide, 'cMunFG') + ide_cMunFG.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.city_id.ibge_code) + + ide_tpImp = SubElement(ide, 'tpImp') + ide_tpImp.text = "1" + + ide_tpEmis = SubElement(ide, 'tpEmis') + ide_tpEmis.text = "1" + + ide_cDV = SubElement(ide, 'cDV') + ide_cDV.text = self.nfe_dv(nfe_key) + + #Tipo de ambiente: 1 - Produção; 2 - Homologação + ide_tpAmb = SubElement(ide, 'tpAmb') + ide_tpAmb.text = "2" + + #Finalidade da emissão da NF-e: 1 - NFe normal 2 - NFe complementar 3 - NFe de ajuste + ide_finNFe = SubElement(ide, 'finNFe') + ide_finNFe.text = "1" + + ide_procEmi = SubElement(ide, 'procEmi') + ide_procEmi.text = "0" + + ide_verProc = SubElement(ide, 'verProc') + ide_verProc.text = "2.0.4" + + emit = SubElement(infNFe, 'emit') + + emit_CNPJ = SubElement(emit, 'CNPJ') + emit_CNPJ.text = inv.company_id.partner_id.cnpj_cpf + + emit_xNome = SubElement(emit, 'xNome') + emit_xNome.text = inv.company_id.partner_id.legal_name + + emit_xFant = SubElement(emit, 'xFant') + emit_xFant.text = inv.company_id.partner_id.name + + enderEmit = SubElement(emit, 'enderEmit') + + enderEmit_xLgr = SubElement(enderEmit, 'xLgr') + enderEmit_xLgr.text = company_addr_default.street + + enderEmit_nro = SubElement(enderEmit, 'nro') + enderEmit_nro.text = company_addr_default.number + + enderEmit_xBairro = SubElement(enderEmit, 'xBairro') + enderEmit_xBairro.text = company_addr_default.district + + enderEmit_cMun = SubElement(enderEmit, 'cMun') + enderEmit_cMun.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.city_id.ibge_code) + + enderEmit_xMun = SubElement(enderEmit, 'xMun') + enderEmit_xMun.text = company_addr_default.city_id.name + + enderEmit_UF = SubElement(enderEmit, 'UF') + enderEmit_UF.text = company_addr_default.state_id.code + + enderEmit_CEP = SubElement(enderEmit, 'CEP') + enderEmit_CEP.text = company_addr_default.zip + + enderEmit_cPais = SubElement(enderEmit, 'cPais') + enderEmit_cPais.text = company_addr_default.country_id.bc_code + + enderEmit_xPais = SubElement(enderEmit, 'xPais') + enderEmit_xPais.text = company_addr_default.country_id.name + + enderEmit_fone = SubElement(enderEmit, 'fone') + enderEmit_fone.text = company_addr_default.phone + + emit_IE = SubElement(emit, 'IE') + emit_IE.text = inv.company_id.partner_id.inscr_est + + emit_IEST = SubElement(emit, 'IEST') + emit_IEST.text = '0000000000' #FIXME + + emit_IM = SubElement(emit, 'IM') + emit_IM.text = '0000000000' #FIXME + + emit_CNAE = SubElement(emit, 'CNAE') + emit_CNAE.text = '0111301' #FIXME + + emit_CRT = SubElement(emit, 'CRT') + emit_CRT.text = '3' #FIXME + + dest = SubElement(infNFe, 'dest') + + dest_CNPJ = SubElement(dest, 'CNPJ') + dest_CNPJ.text = inv.partner_id.cnpj_cpf + + dest_xNome = SubElement(dest, 'xNome') + dest_xNome.text = inv.partner_id.legal_name + + enderDest = SubElement(dest, 'enderDest') + + enderDest_xLgr = SubElement(enderDest, 'xLgr') + enderDest_xLgr.text = inv.address_invoice_id.street + + enderDest_nro = SubElement(enderDest, 'nro') + enderDest_nro.text = inv.address_invoice_id.number + + enderDest_xBairro = SubElement(enderDest, 'xBairro') + enderDest_xBairro.text = inv.address_invoice_id.district + + enderDest_cMun = SubElement(enderDest, 'cMun') + enderDest_cMun.text = ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.city_id.ibge_code) + + enderDest_xMun = SubElement(enderDest, 'xMun') + enderDest_xMun.text = inv.address_invoice_id.city_id.name + + enderDest_UF = SubElement(enderDest, 'UF') + enderDest_UF.text = inv.address_invoice_id.state_id.code + + enderDest_CEP = SubElement(enderDest, 'CEP') + enderDest_CEP.text = inv.address_invoice_id.zip + + enderDest_cPais = SubElement(enderDest, 'cPais') + enderDest_cPais.text = inv.address_invoice_id.country_id.bc_code + + enderDest_xPais = SubElement(enderDest, 'xPais') + enderDest_xPais.text = inv.address_invoice_id.country_id.name + + enderDest_fone = SubElement(enderDest, 'fone') + enderDest_fone.text = inv.address_invoice_id.phone + + dest_IE = SubElement(dest, 'IE') + dest_IE.text = inv.partner_id.inscr_est + + for inv_line in inv.invoice_line: + i =+ 1 + det = SubElement(infNFe, 'det', {'nItem': str(i)}) + + det_prod = SubElement(det, 'prod') + + prod_cProd = SubElement(det_prod, 'cProd') + if inv_line.product_id.code: + prod_cProd.text = inv_line.product_id.code + else: + prod_cProd.text = unicode(i).strip().rjust(4, u'0') + + prod_cEAN = SubElement(det_prod, 'cEAN') + prod_cEAN.text = inv_line.product_id.ean13 + + prod_xProd = SubElement(det_prod, 'xProd') + prod_xProd.text = inv_line.product_id.name + + prod_NCM = SubElement(det_prod, 'NCM') + prod_NCM.text = inv_line.product_id.property_fiscal_classification.name + + prod_CFOP = SubElement(det_prod, 'CFOP') + prod_CFOP.text = inv_line.cfop_id.code + + prod_uCom = SubElement(det_prod, 'uCom') + prod_uCom.text = inv_line.uos_id.name + + print ElementTree.tostring(infNFe, 'utf-8') + + prod_qCom = SubElement(det_prod, 'qCom') + prod_qCom.text = str("%.4f" % inv_line.quantity) + + prod_vUnCom = SubElement(det_prod, 'vUnCom') + prod_vUnCom.text = str("%.4f" % inv_line.price_unit) + + prod_vProd = SubElement(det_prod, 'vProd') + prod_vProd.text = str("%.2f" % inv_line.price_subtotal) + + prod_cEANTrib = SubElement(det_prod, 'cEANTrib') + #prod_vProd.text(inv_line.total) + + prod_uTrib = SubElement(det_prod, 'uTrib') + prod_uTrib.text = inv_line.uos_id.name + + prod_qTrib = SubElement(det_prod, 'qTrib') + prod_qTrib.text = '0.0000' #TODO + + prod_vUnTrib = SubElement(det_prod, 'vUnTrib') + prod_vUnTrib.text = '0.00' #TODO + + prod_vFrete = SubElement(det_prod, 'vFrete') + prod_vFrete.text = '0.00' #TODO - Valor do Frete + + prod_vSeg = SubElement(det_prod, 'vSeg') + prod_vSeg.text = '0.00' #TODO - Valor do seguro + + prod_vDesc = SubElement(det_prod, 'vDesc') + prod_vDesc.text = str("%.2f" % inv_line.discount) #TODO + + prod_vOutro = SubElement(det_prod, 'vOutro') + prod_vOutro.text = '0.0000' #TODO + + prod_indTot = SubElement(det_prod, 'indTot') + prod_indTot.text = '1' #TODO + + prod_imposto = SubElement(det, 'imposto') + + imposto_icms = SubElement(prod_imposto, 'ICMS' ) # + inv_line.icms_cst) + + imposto_icms_cst = SubElement(imposto_icms, 'ICMS%s' % (inv_line.icms_cst)) + + icms_orig = SubElement(imposto_icms_cst, 'orig') + icms_orig.text = inv_line.product_id.origin + + icms_CST = SubElement(imposto_icms_cst, 'CST') + icms_CST.text = inv_line.icms_cst + + icms_modBC = SubElement(imposto_icms_cst, 'modBC') + icms_modBC.text = '0' # TODO + + icms_vBC = SubElement(imposto_icms_cst, 'vBC') + icms_vBC.text = str("%.2f" % inv_line.icms_base) + + icms_pICMS = SubElement(imposto_icms_cst, 'pICMS') + icms_pICMS.text = str("%.2f" % inv_line.icms_percent) + + icms_vICMS = SubElement(imposto_icms_cst, 'vICMS') + icms_vICMS.text = str("%.2f" % inv_line.icms_value) + + imposto_ipi = SubElement(prod_imposto, 'IPI') + + icms_cEnq = SubElement(imposto_ipi, 'cEnq') + icms_cEnq.text = '999' + + #Imposto Não Tributado + ipi_IPINT = SubElement(imposto_ipi, 'IPINT') + + ipi_CST = SubElement(ipi_IPINT, 'CST') + ipi_CST.text = inv_line.ipi_cst + + imposto_pis = SubElement(prod_imposto, 'PIS') + + pis_PISAliq = SubElement(imposto_pis, 'PISAliq') + + pis_CST = SubElement(pis_PISAliq, 'CST') + pis_CST.text = inv_line.pis_cst + + pis_vBC = SubElement(pis_PISAliq, 'vBC') + pis_vBC.text = str("%.2f" % inv_line.pis_base) + + pis_pPIS = SubElement(pis_PISAliq, 'pPIS') + pis_pPIS.text = str("%.2f" % inv_line.pis_percent) + + pis_vPIS = SubElement(pis_PISAliq, 'vPIS') + pis_vPIS.text = str("%.2f" % inv_line.pis_value) + + imposto_cofins = SubElement(prod_imposto, 'COFINS') + + cofins_COFINSAliq = SubElement(imposto_cofins, 'COFINSAliq') + + cofins_CST = SubElement(cofins_COFINSAliq, 'CST') + cofins_CST.text = inv_line.pis_cst + + cofins_vBC = SubElement(cofins_COFINSAliq, 'vBC') + cofins_vBC.text = str("%.2f" % inv_line.cofins_base) + + cofins_pCOFINS = SubElement(cofins_COFINSAliq, 'pCOFINS') + cofins_pCOFINS.text = str("%.2f" % inv_line.cofins_percent) + + cofins_vCOFINS = SubElement(cofins_COFINSAliq, 'vCOFINS') + cofins_vCOFINS.text = str("%.2f" % inv_line.cofins_value) + + total = SubElement(infNFe, 'total') + total_ICMSTot = SubElement(total, 'ICMSTot') + + ICMSTot_vBC = SubElement(total_ICMSTot, 'vBC') + ICMSTot_vBC.text = str("%.2f" % inv.icms_base) + + ICMSTot_vICMS = SubElement(total_ICMSTot, 'vICMS') + ICMSTot_vICMS.text = str("%.2f" % inv.icms_value) + + ICMSTot_vBCST = SubElement(total_ICMSTot, 'vBCST') + ICMSTot_vBCST.text = '0.00' # TODO + + ICMSTot_vST = SubElement(total_ICMSTot, 'vST') + ICMSTot_vST.text = '0.00' # TODO + + ICMSTot_vProd = SubElement(total_ICMSTot, 'vProd') + ICMSTot_vProd.text = str("%.2f" % inv.amount_untaxed) + + ICMSTot_vFrete = SubElement(total_ICMSTot, 'vFrete') + ICMSTot_vFrete.text = '0.00' # TODO + + ICMSTot_vSeg = SubElement(total_ICMSTot, 'vSeg') + ICMSTot_vSeg.text = str("%.2f" % inv.amount_insurance) + + ICMSTot_vDesc = SubElement(total_ICMSTot, 'vDesc') + ICMSTot_vDesc.text = '0.00' # TODO + + ICMSTot_II = SubElement(total_ICMSTot, 'vII') + ICMSTot_II.text = '0.00' # TODO + + ICMSTot_vIPI = SubElement(total_ICMSTot, 'vIPI') + ICMSTot_vIPI.text = str("%.2f" % inv.ipi_value) + + ICMSTot_vPIS = SubElement(total_ICMSTot, 'vPIS') + ICMSTot_vPIS.text = str("%.2f" % inv.pis_value) + + ICMSTot_vCOFINS = SubElement(total_ICMSTot, 'vCOFINS') + ICMSTot_vCOFINS.text = str("%.2f" % inv.cofins_value) + + ICMSTot_vOutro = SubElement(total_ICMSTot, 'vOutro') + ICMSTot_vOutro.text = str("%.2f" % inv.amount_costs) + + ICMSTot_vNF = SubElement(total_ICMSTot, 'vNF') + ICMSTot_vNF.text = str("%.2f" % inv.amount_total) + + + transp = SubElement(infNFe, 'transp') + + # Modo do Frete: 0- Por conta do emitente; 1- Por conta do destinatário/remetente; 2- Por conta de terceiros; 9- Sem frete (v2.0) + transp_modFrete = SubElement(transp, 'modFrete') + transp_modFrete.text = '0' #TODO + + if inv.carrier_id: + + #Endereço do company + carrier_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) + carrier_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] + + transp_transporta = SubElement(transp, 'transporta') + + if inv.carrier_id.partner_id.tipo_pessoa == 'J': + transporta_CNPJ = SubElement(transp_transporta, 'CNPJ') + transporta_CNPJ.text = inv.carrier_id.partner_id.cnpj_cpf + else: + transporta_CPF = SubElement(transp_transporta, 'CPF') + transporta_CPF.text = inv.carrier_id.partner_id.cnpj_cpf + + transporta_xNome = SubElement(transp_transporta, 'xNome') + if inv.carrier_id.partner_id.legal_name: + transporta_xNome.text = inv.carrier_id.partner_id.legal_name + else: + transporta_xNome.text = inv.carrier_id.partner_id.name + + transporta_IE = SubElement(transp_transporta, 'IE') + transporta_IE.text = inv.carrier_id.partner_id.inscr_est + + transporta_xEnder = SubElement(transp_transporta, 'xEnder') + transporta_xEnder.text = carrier_addr_default.street + + transporta_xMun = SubElement(transp_transporta, 'xMun') + transporta_xMun.text = ('%s%s') % (carrier_addr_default.state_id.ibge_code, carrier_addr_default.city_id.ibge_code) + + transporta_UF = SubElement(transp_transporta, 'UF') + transporta_UF.text = carrier_addr_default.state_id.code + + + if inv.number_of_packages: + transp_vol = SubElement(transp, 'vol') + + vol_qVol = SubElement(transp_vol, 'qVol') + vol_qVol.text = inv.number_of_packages + + vol_esp = SubElement(transp_vol, 'esp') + vol_esp.text = 'volume' #TODO + + vol_pesoL = SubElement(transp_vol, 'pesoL') + vol_pesoL.text = inv.weight_net + + vol_pesoB = SubElement(transp_vol, 'pesoB') + vol_pesoB.text = inv.weight + + xml_string = ElementTree.tostring(nfeProc, 'utf-8') + return xml_string + def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): @@ -173,7 +1104,7 @@ def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ #if obj_partner.property_account_position.id: # obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - # obj_foperation = self.pool.get('l10n_br.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] + # obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] # result['value']['fiscal_position'] = obj_fpo.id # result['value']['fiscal_operation_id'] = obj_foperation.id # result['value']['cfop_id'] = obj_foperation.cfop_id.id @@ -318,7 +1249,7 @@ def onchange_cfop_id(self, cr, uid, ids, cfop_id): for inv in self.browse(cr, uid, ids): for inv_line in inv.invoice_line: - self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv_line.fiscal_operation_id.cfop_id.id}) + self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv.fiscal_operation_id.cfop_id.id}) return {'value': {'cfop_id': cfop_id}} diff --git a/l10n_br_account/wizard/__init__.py b/l10n_br_account/wizard/__init__.py new file mode 100644 index 000000000000..9ec3261712b8 --- /dev/null +++ b/l10n_br_account/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +import l10n_br_account_nfe_export + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py new file mode 100644 index 000000000000..7c0456371692 --- /dev/null +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import osv, fields +import base64 + +class l10n_br_account_nfe_export(osv.osv_memory): + """ Exportar Nota Fiscal Eletrônica """ + + _name = "l10n_br_account.nfe_export" + _description = "Update Module" + _inherit = "ir.wizard.screen" + + _columns = { + 'file': fields.binary('Arquivo', readonly=True), + 'file_type': fields.selection([('xml','XML'),('txt','TXT')], 'Tipo do Arquivo'), + 'import_status_draft': fields.boolean('Importar NFs com status em rascunho'), + 'state':fields.selection([('init','init'),('done','done')], 'state', readonly=True), + } + + _defaults = { + 'state': 'init', + 'file_type': 'txt', + 'import_status_draft': False, + } + + def nfe_export(self, cr, uid, ids, context=None): + + inv_obj = self.pool.get('account.invoice') + inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export')]) + + #for inv in inv_obj.browse(cr, uid, inv_ids): + data = self.read(cr, uid, ids, [], context=context)[0] + if data['file_type'] == 'xml': + file = inv_obj.nfe_export_xml(cr, uid, inv_ids) + else: + file = inv_obj.nfe_export_txt(cr, uid, inv_ids) + file_total = file + + self.write(cr, uid, ids, {'file': base64.b64encode(file_total), 'state': 'done'}, context=context) + return False + + #def action_module_open(self, cr, uid, ids, context): + # res = { + # 'domain': str([]), + # 'name': 'Modules', + # 'view_type': 'form', + # 'view_mode': 'tree,form', + # 'res_model': 'ir.module.module', + # 'view_id': False, + # 'type': 'ir.actions.act_window', + # } + # return res + +l10n_br_account_nfe_export() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml new file mode 100644 index 000000000000..16badb7a415a --- /dev/null +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml @@ -0,0 +1,65 @@ + + + + + + Exportar Nota Fiscal + l10n_br_account.nfe_export + form + + + + + + + + + + + + + + + + + + + + + + l10n_br_account.invoice.supplier.form6 + account.invoice + + + + + + + + + + l10n_br_account.invoice.supplier.form7 + account.invoice + + + + + + + diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index 0e9078853f70..adc8eb21109e 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -2,7 +2,7 @@ - + sefaz_export diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index 6a9053d9b2e7..400c631e9fcf 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -2,29 +2,6 @@ - - - l10n_br_account.tax.code.form - account.tax.code - - - - - - - - - - l10n_br_account.tax.code.template.form - account.tax.code.template - - - - - - - - l10n_br_account.tax.template.form diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 0b481b026197..431cc7ce7c5d 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -77,13 +77,14 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): for invoice_tax in invoice.tax_line: - res[invoice.id]['amount_tax'] += invoice_tax.amount + if not invoice_tax.base_code_id.tax_discount: + res[invoice.id]['amount_tax'] += invoice_tax.amount - if res[invoice.id]['amount_tax_discount'] > 0 and res[invoice.id]['amount_tax'] > 0: - res[invoice.id]['amount_tax'] = res[invoice.id]['ipi_value'] #FIXME round(res[invoice.id]['amount_tax'] - res[invoice.id]['amount_tax_discount'], prec) + #if res[invoice.id]['amount_tax_discount'] > 0 and res[invoice.id]['amount_tax'] > 0: + # res[invoice.id]['amount_tax'] = res[invoice.id]['ipi_value'] #FIXME round(res[invoice.id]['amount_tax'] - res[invoice.id]['amount_tax_discount'], prec) - res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] + res[invoice.id]['icms_st_value'] + res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] return res @@ -99,6 +100,20 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): result[tax.invoice_id.id] = True return result.keys() + def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): + res = {} + for invoice in self.browse(cr, uid, ids, context=context): + id = invoice.id + res[id] = [] + if not invoice.move_id: + continue + data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable')] + New_ids = [] + for line in data_lines: + New_ids.append(line.id) + res[id] = New_ids + return res + _columns = { 'state': fields.selection([ ('draft','Draft'), @@ -117,18 +132,20 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): \n* The \'sefaz_out\' Gerado aquivo de exportação para sistema daReceita.\ \n* The \'sefaz_aut\' Recebido arquivo de autolização da Receita.\ \n* The \'Cancelled\' state is used when user cancel invoice.'), + 'own_invoice': fields.boolean('Nota Fiscal Própria',readonly=True, states={'draft':[('readonly',False)]}), + 'internal_number': fields.char('Invoice Number', size=32, readonly=True , states={'draft':[('readonly',False)]}, help="Unique number of the invoice, computed automatically when the invoice is created."), + 'vendor_serie': fields.char('Série NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Série do número da Nota Fiscal do Fornecedor"), 'nfe_access_key': fields.char('Chave de Acesso NFE', size=44, readonly=True, states={'draft':[('readonly',False)]}), 'nfe_status': fields.char('Status na Sefaz', size=44, readonly=True), 'nfe_date': fields.datetime('Data do Status NFE', readonly=True, states={'draft':[('readonly',False)]}), 'nfe_export_date': fields.datetime('Exportação NFE', readonly=True), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), - 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'move_line_receivable_id': fields.function(_get_receivable_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'), + 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id),('company_id','=',company_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), - 'vendor_number': fields.char('NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Número da Nota Fiscal do Fornecedor"), - 'vendor_serie': fields.char('Série NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Série do número da Nota Fiscal do Fornecedor"), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), @@ -153,75 +170,79 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): 'icms_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base ICMS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - #'account.invoice.tax': (_get_invoice_tax, None, 20), - #'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'icms_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor ICMS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'icms_st_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base ICMS ST', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - #'account.invoice.tax': (_get_invoice_tax, None, 20), - #'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'icms_st_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor ICMS ST', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'ipi_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base IPI', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'ipi_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor IPI', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'pis_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base PIS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'pis_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor PIS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'cofins_base': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Base COFINS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), 'cofins_value': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Valor COFINS', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), - # 'account.invoice.tax': (_get_invoice_tax, None, 20), - # 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), + 'account.invoice.tax': (_get_invoice_tax, None, 20), + 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount'], 20), }, multi='all'), } + + _defaults = { + 'own_invoice': True + } def copy(self, cr, uid, id, default={}, context=None): default.update({ @@ -239,10 +260,10 @@ def action_internal_number(self, cr, uid, ids, context=None): context = {} for obj_inv in self.browse(cr, uid, ids): - obj_sequence = self.pool.get('ir.sequence') - seq_no = obj_sequence.get_id(cr, uid, obj_inv.journal_id.internal_sequence.id, context=context) - self.write(cr, uid, obj_inv.id, {'internal_number': seq_no}) - + if obj_inv.own_invoice: + obj_sequence = self.pool.get('ir.sequence') + seq_no = obj_sequence.get_id(cr, uid, obj_inv.journal_id.internal_sequence.id, context=context) + self.write(cr, uid, obj_inv.id, {'internal_number': seq_no}) return True @@ -257,17 +278,18 @@ def action_number(self, cr, uid, ids, context=None): invtype = obj_inv.type number = obj_inv.number move_id = obj_inv.move_id and obj_inv.move_id.id or False - reference = obj_inv.reference or '' + reference = obj_inv.internal_number or obj_inv.reference or '' #self.write(cr, uid, ids, {'internal_number':number}) - if invtype in ('in_invoice', 'in_refund'): - if not reference: - ref = self._convert_ref(cr, uid, number) - else: - ref = reference - else: - ref = self._convert_ref(cr, uid, number) + #if invtype in ('in_invoice', 'in_refund'): + # if not reference: + # ref = self._convert_ref(cr, uid, number) + # else: + # ref = reference + #else: + # ref = self._convert_ref(cr, uid, number) + ref = reference cr.execute('UPDATE account_move SET ref=%s ' \ 'WHERE id=%s AND (ref is null OR ref = \'\')', @@ -304,6 +326,8 @@ def nfe_check(self, cr, uid, ids, context=None): for inv in self.browse(cr, uid, ids): #Nota fiscal + if not inv.own_invoice: + continue company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] @@ -345,7 +369,7 @@ def nfe_check(self, cr, uid, ids, context=None): if not company_addr_default.zip: strErro = 'Emitente / Endereço - CEP\n' - if not inv.company_id.cnae_main: + if not inv.company_id.cnae_main_id: strErro = 'Emitente / CNAE Principal\n' if not inv.company_id.partner_id.inscr_est: @@ -598,7 +622,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), 'IEST': '', 'IM': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or ''), - 'CNAE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main or ''), + 'CNAE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main_id.code or ''), 'CRT': inv.company_id.fiscal_type or '', } @@ -1087,7 +1111,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): self.write(cr, uid, [inv.id], {'nfe_export_date': datetime.now()}) - return unicode(StrFile.encode('utf-8')) + return unicode(StrFile.encode('utf-8'), errors='replace') def nfe_export_xml(self, cr, uid, ids, context=False): diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index dd1ff9f70ee7..7c1a3a1a5a00 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -44,14 +44,19 @@ def name_get(self, cr, uid, ids, context=None): for x in reads] _columns = { - 'code': fields.char('Código', size=4), - 'name': fields.char('Nome', size=256), - 'small_name': fields.char('Nome Reduzido', size=32), + 'code': fields.char('Código', size=4, requeried=True), + 'name': fields.char('Nome', size=256, requeried=True), + 'small_name': fields.char('Nome Reduzido', size=32, requeried=True), 'description': fields.text('Descrição'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), - 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP filhos'), - } + 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP Filhos'), + 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), + } + _defaults = { + 'internal_type': 'normal', + } + l10n_br_account_cfop() ################################################################################# @@ -107,6 +112,7 @@ class l10n_br_account_fiscal_operation_category(osv.osv): 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), + 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), } _defaults = { 'type': 'output', @@ -131,9 +137,14 @@ class l10n_br_account_fiscal_operation(osv.osv): 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), + 'refund_fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Op. Fiscal Devolução', domain="[('type','!=',type)]" ), + 'note': fields.text('Observação'), + 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), + 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', domain="[('fiscal_type','=',fiscal_type)]", requeried=True), } _defaults = { 'type': 'output', + 'fiscal_type': 'product', } l10n_br_account_fiscal_operation() @@ -145,10 +156,10 @@ class l10n_br_account_fiscal_operation_line(osv.osv): _name = 'l10n_br_account.fiscal.operation.line' _description = 'Linhas das operações ficais' _columns = { - 'company_id': fields.many2one('res.company', 'Empresa'), - 'fiscal_classification_id': fields.many2one('account.product.fiscal.classification', 'NCM', domain="[('company_id','=',company_id)]"), - 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', domain="[('company_id','=',company_id)]"), - 'cst_id': fields.many2one('l10n_br_account.cst', 'Código de Situação Tributária'), + 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), + 'fiscal_classification_id': fields.many2one('account.product.fiscal.classification', 'NCM', domain="[('company_id','=',company_id)]" ), + 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, domain="[('company_id','=',company_id)]"), + 'cst_id': fields.many2one('l10n_br_account.cst', 'Código de Situação Tributária', requeried=True), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), } @@ -166,7 +177,11 @@ class l10n_br_account_document_serie(osv.osv): 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), 'active':fields.boolean('Ativo'), + 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), } + _defaults = { + 'active': True, + } l10n_br_account_document_serie() @@ -186,4 +201,37 @@ class l10n_br_account_partner_fiscal_type(osv.osv): l10n_br_account_partner_fiscal_type() +################################################################################ +# Cadastro de CNAE +################################################################################# +class l10n_br_account_cnae(osv.osv): + _name = 'l10n_br_account.cnae' + _description = 'Cadastro de CNAE' + _columns = { + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=64, required=True), + 'version': fields.char('Versão', size=16, required=True), + 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), + 'child_ids': fields.one2many('l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos'), + 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), + } + _defaults = { + 'internal_type': 'normal', + } + + + def name_get(self, cr, uid, ids, context=None): + if not ids: + return [] + reads = self.read(cr, uid, ids, ['name', 'code'], context=context) + res = [] + for record in reads: + name = record['name'] + if record['code']: + name = record['code'] + ' - '+name + res.append((record['id'], name)) + return res + +l10n_br_account_cnae() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 55ea4d0ae6af..875d4a809a23 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -4,6 +4,7 @@ + l10n_br_account.cfop.name @@ -11,13 +12,15 @@ form
- + - + + - + +
@@ -112,14 +115,17 @@ l10n_br_account.fiscal.operation.category form -
+ - - - - + + + + + + +
@@ -129,7 +135,7 @@ l10n_br_account.fiscal.operation.category tree - + @@ -143,17 +149,32 @@ form
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -174,16 +195,17 @@
+ l10n_br_account.fiscal.operation.line l10n_br_account.fiscal.operation.line form
- + - - + +
@@ -241,6 +263,7 @@ + @@ -260,6 +283,65 @@
+ + + + l10n_br_account.cnae.form + l10n_br_account.cnae + form + +
+ + + + + + + +
+ + + l10n_br_account.cnae.tree + l10n_br_account.cnae + tree + + + + + + + + + + + + l10n_br_account.cnae.structure + l10n_br_account.cnae + tree + child_ids + + + + + + + + + + + + l10n_br_account.cfop.structure + l10n_br_account.cfop + tree + child_ids + + + + + + + + CFOP @@ -324,20 +406,55 @@ - - - + + CNAE + ir.actions.act_window + l10n_br_account.cnae + tree,form + form + + - + + Estrutura do CNAE + ir.actions.act_window + l10n_br_account.cnae + tree + [('parent_id','=',False)] + + + + + Estrutura do CFOP + ir.actions.act_window + l10n_br_account.cfop + tree + [('parent_id','=',False)] + + - + + + + + + + + + + + + + + + - + - + + + - - diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 8c4815d65650..687cb3281cca 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -25,7 +25,7 @@ class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', domain="[('tipo_pessoa','=',tipo_pessoa)]"), } res_partner() diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index 2e8a8fab0789..2d633b6b7dbf 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -26,10 +26,21 @@ class res_company(osv.osv): _inherit = "res.company" _columns = { 'fiscal_type': fields.selection([('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), ('3', 'Regime Normal')], 'Regime Tributário', required=True), - 'cnae_main': fields.char('CNAE', size=44), + 'document_serie_product_ids': fields.many2many('l10n_br_account.document.serie', 'res_company_l10n_br_account_document_serie', 'company_id', 'document_serie_product_id', 'Série de Documentos Fiscais', domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','product')]"), + 'document_serie_service_id': fields.many2one('l10n_br_account.document.serie', 'Série Fiscais para Serviço', domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','service')]" ), + 'cnae_main_id': fields.many2one('l10n_br_account.cnae', 'CNAE Primário' ), + 'cnae_secondary_ids': fields.many2many('l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', 'company_id', 'cnae_id', 'CNAE Segundários'), + 'nfe_version': fields.selection([('1.00', '1.00'), ('2.00', '2.00')], 'Versão NFe', required=True), + 'nfe_source_folder': fields.char('Pasta de Origem', size=254), + 'nfe_destination_folder': fields.char('Pasta de Destino', size=254), + 'nfse_version': fields.selection([('1.00', '1.00')], 'Versão NFse', required=True), + 'nfse_source_folder': fields.char('Pasta de Origem', size=254), + 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), } _defaults = { 'fiscal_type': '3', + 'nfe_version': '2.00', + 'nfse_version': '1.00', } res_company() diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml index e9f76dcfdc58..673ac1c361f8 100644 --- a/l10n_br_account/res_company_view.xml +++ b/l10n_br_account/res_company_view.xml @@ -8,10 +8,34 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index bbbffd9f94ce..4cb2709e9c73 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -7,4 +7,5 @@ "l10n_br_account_fiscal_operation","l10n_br_account.fiscal.operation","model_l10n_br_account_fiscal_operation","account.group_account_invoice",1,1,1,1 "l10n_br_account_fiscal_operation_line","l10n_br_account.fiscal.operation.line","model_l10n_br_account_fiscal_operation_line","account.group_account_invoice",1,1,1,1 "l10n_br_account_document_serie","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_invoice",1,1,1,1 -"l10n_br_account_product_operation_category","l10n_br_account.product.operation.category","model_l10n_br_account_product_operation_category","base.group_sale_salesman",1,1,1,1 \ No newline at end of file +"l10n_br_account_product_operation_category","l10n_br_account.product.operation.category","model_l10n_br_account_product_operation_category","base.group_sale_salesman",1,1,1,1 +"l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_invoice",1,1,1,1 \ No newline at end of file diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index 3cda36570591..b9c9dae4b148 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -47,7 +47,7 @@ def nfe_export(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] inv_obj = self.pool.get('account.invoice') - inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id'])]) + inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id']),('own_invoice','=',True)]) if data['file_type'] == 'xml': file = inv_obj.nfe_export_xml(cr, uid, inv_ids) From 1431405a9949356587f2f53b11d4d72acb3ff8ba Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 1 Mar 2011 20:15:27 -0300 Subject: [PATCH 0064/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20-=20Concertado?= =?UTF-8?q?=20o=20bug=20na=20exporta=C3=A7=C3=A3o=20na=20nfe=20que=20estav?= =?UTF-8?q?a=20incluindo=20a=20observa=C3=A7=C3=A3o=20na=20nota=20fiscal?= =?UTF-8?q?=20e=20mudado=20no=20l10n=5Fbr=5Fsale=20e=20l10n=5Fbr=5Fstock?= =?UTF-8?q?=20para=20copiar=20as=20observa=C3=A7=C3=B5es=20do=20pedido=20e?= =?UTF-8?q?=20da=20separacao=20na=20nota=20fiscal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/invoice.py | 46 ++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 431cc7ce7c5d..4eed7e568226 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -63,7 +63,6 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): } for line in invoice.invoice_line: res[invoice.id]['amount_untaxed'] += line.price_total - res[invoice.id]['amount_tax_discount'] += line.price_total - line.price_subtotal res[invoice.id]['icms_base'] += line.icms_base res[invoice.id]['icms_value'] += line.icms_value res[invoice.id]['icms_st_base'] += line.icms_st_base @@ -74,16 +73,11 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): res[invoice.id]['pis_value'] += line.pis_value res[invoice.id]['cofins_base'] += line.cofins_base res[invoice.id]['cofins_value'] += line.cofins_value - - + for invoice_tax in invoice.tax_line: if not invoice_tax.base_code_id.tax_discount: res[invoice.id]['amount_tax'] += invoice_tax.amount - #if res[invoice.id]['amount_tax_discount'] > 0 and res[invoice.id]['amount_tax'] > 0: - # res[invoice.id]['amount_tax'] = res[invoice.id]['ipi_value'] #FIXME round(res[invoice.id]['amount_tax'] - res[invoice.id]['amount_tax_discount'], prec) - - res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] return res @@ -1081,6 +1075,22 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrX26 = 'X26|%s|%s|%s|%s|%s|%s|\n' % (StrRegX26['QVol'], StrRegX26['Esp'], StrRegX26['Marca'], StrRegX26['NVol'], StrRegX26['PesoL'], StrRegX26['PesoB']) StrFile += StrX26 + + #StrY = 'Y|\n' + # + #StrFile += StrY + # + #for line in inv.move_line_receivable_id: + # y += 1 + # StrRegY07 = { + # 'NDup': i, + # 'DVenc': line.date_maturity or inv.date_due or inv.date_invoice, + # 'VDup': str("%.2f" % line.debit), + # } + # + # StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) + # + # StrFile += StrY07 StrRegZ = { 'InfAdFisco': '', @@ -1089,26 +1099,8 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrZ = 'Z|%s|%s|\n' % (StrRegZ['InfAdFisco'], StrRegZ['InfCpl']) - StrY = 'Y|\n' - - StrFile += StrY - - #if inv.move_id: - # move_ids = self.pool.get('account.move').search(cr, uid,[('invoice_id','=', inv.id),('active','=',True),('company_id','=',order.company_id.id)]) - # i = 0 - # for move in self.pool.get('account.move').browse(cr, uid, move_ids): - # i += 1 - - # StrRegY07 = { - # 'NDup': '', - # 'DVenc': '', - # 'VDup': '', - # } - # - # StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) - # - # StrFile += StrZ - + StrFile += StrZ + self.write(cr, uid, [inv.id], {'nfe_export_date': datetime.now()}) return unicode(StrFile.encode('utf-8'), errors='replace') From 15e634922b63b8fa20b9098a5c83b0c4bbd1b44d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 9 Mar 2011 00:18:30 -0300 Subject: [PATCH 0065/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20-=20Alterado=20?= =?UTF-8?q?rotina=20de=20exporta=C3=A7=C3=A3o=20para=20ser=20exportada=20o?= =?UTF-8?q?s=20vencimentos,=20incluida=20na=20nota=20fiscal=20a=20aba=20l1?= =?UTF-8?q?0n=5Fbr=20-=20Vencimento=20com=20todos=20os=20vencimentos=20da?= =?UTF-8?q?=20nota=20fiscal,=20incluido=20uma=20action=20na=20nota=20fisca?= =?UTF-8?q?l=20que=20permite=20no=20caso=20da=20nota=20fiscal=20eletronica?= =?UTF-8?q?=20reimportar.=20l10n=5Fbr=5Fstock=20e=20l10n=5Fbr=5Fsale=20-?= =?UTF-8?q?=20agora=20=C3=A9=20permitido=20incluir=20os=20di=C3=A1rios=20p?= =?UTF-8?q?adroes=20para=20cada=20categoria=20de=20opera=C3=A7=C3=A3o=20fi?= =?UTF-8?q?scal=20permitindo=20que=20ao=20gerar=20as=20notas=20fiscais=20n?= =?UTF-8?q?=C3=A3o=20seja=20necess=C3=A1rio=20escolher=20o=20di=C3=A1rio?= =?UTF-8?q?=20e=20tamb=C3=A9m=20=C3=A9=20possivel=20faturar=20mais=20de=20?= =?UTF-8?q?uma=20categora=20fiscal=20de=20uma=20unica=20vez?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 1 + l10n_br_account/account_invoice_view.xml | 3 + l10n_br_account/invoice.py | 65 +++++++++++++------ l10n_br_account/l10n_br_account.py | 2 + l10n_br_account/l10n_br_account_view.xml | 6 +- l10n_br_account/wizard/__init__.py | 1 + .../wizard/l10n_br_account_nfe_export.py | 17 +---- 7 files changed, 58 insertions(+), 37 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 4dab84b1717e..b1ead4269aa6 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -39,6 +39,7 @@ 'account_invoice_view.xml', 'account_invoice_workflow.xml', 'wizard/l10n_br_account_nfe_export_view.xml', + 'wizard/l10n_br_account_nfe_reexport_view.xml', 'account_fiscal_position_rule_view.xml', 'product_view.xml', 'res_company_view.xml', diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 8afc74b18ffd..8b1d492fd820 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -9,6 +9,9 @@ + + + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 4eed7e568226..fd9cadf1cc7c 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -19,6 +19,7 @@ import time import netsvc +import glob from osv import fields, osv import decimal_precision as dp import pooler @@ -32,6 +33,7 @@ from xml.dom import minidom from datetime import datetime + ############################################################################## # Fatura (Nota Fiscal) Personalizado ############################################################################## @@ -105,6 +107,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): New_ids = [] for line in data_lines: New_ids.append(line.id) + New_ids.sort() res[id] = New_ids return res @@ -262,10 +265,11 @@ def action_internal_number(self, cr, uid, ids, context=None): return True def action_number(self, cr, uid, ids, context=None): + if context is None: context = {} #TODO: not correct fix but required a frech values before reading it. - self.write(cr, uid, ids, {}) + #self.write(cr, uid, ids, {}) for obj_inv in self.browse(cr, uid, ids): id = obj_inv.id @@ -305,6 +309,25 @@ def action_number(self, cr, uid, ids, context=None): self.log(cr, uid, inv_id, message, context=ctx) return True + def action_move_create(self, cr, uid, ids, *args): + + result = super(account_invoice, self).action_move_create(cr, uid, ids, *args) + + for inv in self.browse(cr, uid, ids): + #print 'Agora vai: %s aqui tbm: %s' % (inv.move_id.id, inv.move_id.ref) + if inv.move_id: + self.pool.get('account.move').write(cr, uid, [inv.move_id.id], {'ref': inv.internal_number}) + for move_line in inv.move_id.line_id: + self.pool.get('account.move.line').write(cr, uid, [move_line.id], {'ref': inv.internal_number}) + + move_lines = [x for x in inv.move_id.line_id if x.account_id.id == inv.account_id.id and x.account_id.type in ('receivable', 'payable')] + i = len(move_lines) + for move_line in move_lines: + move_line_name = '%s/%s' % (inv.internal_number, i) + self.pool.get('account.move.line').write(cr, uid, [move_line.id], {'name': move_line_name}) + i -= 1 + + return result def nfe_dv(self, key): @@ -1075,27 +1098,28 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrX26 = 'X26|%s|%s|%s|%s|%s|%s|\n' % (StrRegX26['QVol'], StrRegX26['Esp'], StrRegX26['Marca'], StrRegX26['NVol'], StrRegX26['PesoL'], StrRegX26['PesoB']) StrFile += StrX26 + + if inv.fiscal_operation_category_id.revenue: - #StrY = 'Y|\n' - # - #StrFile += StrY - # - #for line in inv.move_line_receivable_id: - # y += 1 - # StrRegY07 = { - # 'NDup': i, - # 'DVenc': line.date_maturity or inv.date_due or inv.date_invoice, - # 'VDup': str("%.2f" % line.debit), - # } - # - # StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) - # - # StrFile += StrY07 - - StrRegZ = { - 'InfAdFisco': '', - 'InfCpl': normalize('NFKD',unicode(inv.comment or '')).encode('ASCII','ignore'), + StrY = 'Y|\n' + + StrFile += StrY + + for line in inv.move_line_receivable_id: + StrRegY07 = { + 'NDup': line.name, + 'DVenc': line.date_maturity or inv.date_due or inv.date_invoice, + 'VDup': str("%.2f" % line.debit), } + + StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) + + StrFile += StrY07 + + StrRegZ = { + 'InfAdFisco': '', + 'InfCpl': normalize('NFKD',unicode(inv.comment or '')).encode('ASCII','ignore'), + } StrZ = 'Z|%s|%s|\n' % (StrRegZ['InfAdFisco'], StrRegZ['InfCpl']) @@ -1104,7 +1128,6 @@ def nfe_export_txt(self, cr, uid, ids, context=False): self.write(cr, uid, [inv.id], {'nfe_export_date': datetime.now()}) return unicode(StrFile.encode('utf-8'), errors='replace') - def nfe_export_xml(self, cr, uid, ids, context=False): diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 7c1a3a1a5a00..a2302f9d4bc4 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -108,6 +108,8 @@ class l10n_br_account_fiscal_operation_category(osv.osv): 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), + 'journal_ids': fields.many2many('account.journal', 'l10n_br_account_fiscal_operation_category_rel', 'fiscal_operation_category_id', 'journal_id', 'Consolidated Children', domain="[('company_id','=',user.company_id)]" ), + 'revenue' : fields.boolean('Gera Financeiro'), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 875d4a809a23..a109f5c69977 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -120,12 +120,16 @@ + + + + @@ -380,7 +384,7 @@ - Operação Fiscal + Categoria de Operação Fiscal ir.actions.act_window l10n_br_account.fiscal.operation.category tree,form diff --git a/l10n_br_account/wizard/__init__.py b/l10n_br_account/wizard/__init__.py index 9ec3261712b8..e99563e431b6 100644 --- a/l10n_br_account/wizard/__init__.py +++ b/l10n_br_account/wizard/__init__.py @@ -18,6 +18,7 @@ ################################################################################# import l10n_br_account_nfe_export +import l10n_br_account_nfe_reexport # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index b9c9dae4b148..b8b03d20aed7 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -24,7 +24,7 @@ class l10n_br_account_nfe_export(osv.osv_memory): """ Exportar Nota Fiscal Eletrônica """ _name = "l10n_br_account.nfe_export" - _description = "Update Module" + _description = "Exportação de Nota Fiscal Eletrônica" _inherit = "ir.wizard.screen" _columns = { @@ -55,23 +55,10 @@ def nfe_export(self, cr, uid, ids, context=None): file = inv_obj.nfe_export_txt(cr, uid, inv_ids) file_total = file - - self.write(cr, uid, ids, {'file': base64.b64encode(file_total), 'state': 'done'}, context=context) + return False - #def action_module_open(self, cr, uid, ids, context): - # res = { - # 'domain': str([]), - # 'name': 'Modules', - # 'view_type': 'form', - # 'view_mode': 'tree,form', - # 'res_model': 'ir.module.module', - # 'view_id': False, - # 'type': 'ir.actions.act_window', - # } - # return res - l10n_br_account_nfe_export() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From fc56cdc6c56a0c6587b7958e96a012a73763bcb7 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 9 Mar 2011 00:19:05 -0300 Subject: [PATCH 0066/1549] =?UTF-8?q?#2=20l10n=5Fbr=5Faccount=20-=20Altera?= =?UTF-8?q?do=20rotina=20de=20exporta=C3=A7=C3=A3o=20para=20ser=20exportad?= =?UTF-8?q?a=20os=20vencimentos,=20incluida=20na=20nota=20fiscal=20a=20aba?= =?UTF-8?q?=20l10n=5Fbr=20-=20Vencimento=20com=20todos=20os=20vencimentos?= =?UTF-8?q?=20da=20nota=20fiscal,=20incluido=20uma=20action=20na=20nota=20?= =?UTF-8?q?fiscal=20que=20permite=20no=20caso=20da=20nota=20fiscal=20eletr?= =?UTF-8?q?onica=20reimportar.=20l10n=5Fbr=5Fstock=20e=20l10n=5Fbr=5Fsale?= =?UTF-8?q?=20-=20agora=20=C3=A9=20permitido=20incluir=20os=20di=C3=A1rios?= =?UTF-8?q?=20padroes=20para=20cada=20categoria=20de=20opera=C3=A7=C3=A3o?= =?UTF-8?q?=20fiscal=20permitindo=20que=20ao=20gerar=20as=20notas=20fiscai?= =?UTF-8?q?s=20n=C3=A3o=20seja=20necess=C3=A1rio=20escolher=20o=20di=C3=A1?= =?UTF-8?q?rio=20e=20tamb=C3=A9m=20=C3=A9=20possivel=20faturar=20mais=20de?= =?UTF-8?q?=20uma=20categora=20fiscal=20de=20uma=20unica=20vez?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wizard/l10n_br_account_nfe_reexport.py | 61 +++++++++++++++++++ .../l10n_br_account_nfe_reexport_view.xml | 43 +++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 l10n_br_account/wizard/l10n_br_account_nfe_reexport.py create mode 100644 l10n_br_account/wizard/l10n_br_account_nfe_reexport_view.xml diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py b/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py new file mode 100644 index 000000000000..f274b3c4a416 --- /dev/null +++ b/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2011 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU General Public License for more details. # +# # +#You should have received a copy of the GNU General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import osv, fields +from tools.translate import _ + +class l10n_br_account_nfe_reexport(osv.osv_memory): + """ Exportar Nota Fiscal Eletrônica """ + + _name = "l10n_br_account.nfe.reexport" + _description = "Reexportação de Nota Fiscal Eletrônica" + + def view_init(self, cr, uid, fields_list, context=None): + if context is None: + context = {} + res = super(l10n_br_account_nfe_reexport, self).view_init(cr, uid, fields_list, context=context) + inv_obj = self.pool.get('account.invoice') + count = 0 + active_ids = context.get('active_ids',[]) + for inv in inv_obj.browse(cr, uid, active_ids, context=context): + if inv.state != 'sefaz_export' and inv.own_invoice: + count += 1 + if len(active_ids) == 1 and count: + raise osv.except_osv(_('Warning !'), _('This invoice can not be reexport.')) + if len(active_ids) == count: + raise osv.except_osv(_('Warning !'), _('None of these invoices can not be reexport.')) + return res + + def nfe_reexport(self, cr, uid, ids, context=None): + + data = self.read(cr, uid, ids, [], context=context)[0] + + inv_obj = self.pool.get('account.invoice') + inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('id','in',ids),('own_invoice','=',True)]) + active_id = context.get('active_id', False) + + inv_obj.write(cr, uid, [active_id], {'nfe_export_date': False, 'nfe_access_key': False, 'nfe_status': False, 'nfe_date': False }) + + for inv in inv_obj.browse(cr, uid, [active_id], context=context): + message = _("The Invoice Id '%s', Internal Number '%s' has been set to be reexport.") %(inv.id, inv.internal_number,) + inv_obj.log(cr, uid, inv.id, message) + + return {'type': 'ir.actions.act_window_close'} + +l10n_br_account_nfe_reexport() \ No newline at end of file diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_reexport_view.xml b/l10n_br_account/wizard/l10n_br_account_nfe_reexport_view.xml new file mode 100644 index 000000000000..4db72789bcee --- /dev/null +++ b/l10n_br_account/wizard/l10n_br_account_nfe_reexport_view.xml @@ -0,0 +1,43 @@ + + + + + + + + l10n_br_account.nfe.reexport + l10n_br_account.nfe.reexport + form + +
+
@@ -127,22 +127,33 @@
+ + + l10n_br_delivery.invoice.form9 + account.invoice + + + + + + + - - [('type','=','out_invoice'),('fiscal_type','=','product')] + + [('type','=','out_invoice'),('fiscal_type','=','product')] - - Nota Fiscal de Serviço - account.invoice - form - tree,form,calendar,graph - - [('type','=','out_invoice'),('fiscal_type','=','service')] - {'type':'out_invoice', 'journal_type': 'sale','fiscal_type': 'service'} - - - With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. + + Nota Fiscal de Serviço + account.invoice + form + tree,form,calendar,graph + + [('type','=','out_invoice'),('fiscal_type','=','service')] + {'type':'out_invoice', 'journal_type': 'sale','fiscal_type': 'service'} + + + With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. @@ -162,7 +173,7 @@ - + @@ -174,7 +185,7 @@ - +
@@ -187,10 +198,10 @@ - - - - + + + +
diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index fa8588078d32..c83d2b718623 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -246,6 +246,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): \n* The \'sefaz_out\' Gerado aquivo de exportação para sistema daReceita.\ \n* The \'sefaz_aut\' Recebido arquivo de autolização da Receita.\ \n* The \'Cancelled\' state is used when user cancel invoice.'), + 'partner_shipping_id': fields.many2one('res.partner.address', 'Endereço de Entrega', readonly=True, states={'draft': [('readonly', False)]}, help="Shipping address for current sales order."), 'own_invoice': fields.boolean('Nota Fiscal Própria',readonly=True, states={'draft':[('readonly',False)]}), 'internal_number': fields.char('Invoice Number', size=32, readonly=True , states={'draft':[('readonly',False)]}, help="Unique number of the invoice, computed automatically when the invoice is created."), 'vendor_serie': fields.char('Série NF Entrada', size=12, readonly=True, states={'draft':[('readonly',False)]}, help="Série do número da Nota Fiscal do Fornecedor"), From d188e9655d5fcd1d067e9a8003e1e1baf03a5cb1 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 17 May 2011 16:25:44 -0300 Subject: [PATCH 0081/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20rotina=20de=20?= =?UTF-8?q?valida=C3=A7=C3=A3o=20n=C3=A3o=20deve=20validar=20as=20nfes=20d?= =?UTF-8?q?e=20terceiros=20e=20de=20servi=C3=A7o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 49 +++++++++--------------- l10n_br_account/invoice.py | 2 +- 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 7c8733004054..ebdf198495e0 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -77,7 +77,7 @@ - + @@ -88,9 +88,9 @@ @@ -129,7 +129,7 @@ - l10n_br_delivery.invoice.form9 + l10n_br_account.invoice.form9 account.invoice @@ -139,21 +139,21 @@ - - [('type','=','out_invoice'),('fiscal_type','=','product')] + + [('type','=','out_invoice'),('fiscal_type','=','product')] - - Nota Fiscal de Serviço - account.invoice - form - tree,form,calendar,graph - - [('type','=','out_invoice'),('fiscal_type','=','service')] - {'type':'out_invoice', 'journal_type': 'sale','fiscal_type': 'service'} - - - With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. + + Nota Fiscal de Serviço + account.invoice + form + tree,form,calendar,graph + + [('type','=','out_invoice'),('fiscal_type','=','service')] + {'type':'out_invoice', 'journal_type': 'sale','fiscal_type': 'service'} + + + With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. @@ -375,19 +375,6 @@ - - diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index c83d2b718623..d0defeef6697 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -474,7 +474,7 @@ def nfe_check(self, cr, uid, ids, context=None): for inv in self.browse(cr, uid, ids): #Nota fiscal - if not inv.own_invoice: + if not inv.own_invoice or not context['fiscal_type'] == 'service': continue company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) From e0226f707d626ebf5eb3cf799cb8bc049a95565f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 17 May 2011 16:54:20 -0300 Subject: [PATCH 0082/1549] Fix commit 183 --- l10n_br_account/invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index d0defeef6697..4e85ad3f5e2a 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -474,7 +474,7 @@ def nfe_check(self, cr, uid, ids, context=None): for inv in self.browse(cr, uid, ids): #Nota fiscal - if not inv.own_invoice or not context['fiscal_type'] == 'service': + if not inv.own_invoice or not inv.fiscal_type == 'service': continue company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) From 083910538278dc393d379e8d18f83417038f3f13 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 17 May 2011 16:57:53 -0300 Subject: [PATCH 0083/1549] Fix commit 183 --- l10n_br_account/invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 4e85ad3f5e2a..33c9c3237326 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -474,7 +474,7 @@ def nfe_check(self, cr, uid, ids, context=None): for inv in self.browse(cr, uid, ids): #Nota fiscal - if not inv.own_invoice or not inv.fiscal_type == 'service': + if not inv.own_invoice or inv.fiscal_type == 'service': continue company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) From 024c2e1250159f0e171b17cce5f6259181302db0 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 24 May 2011 20:15:08 -0300 Subject: [PATCH 0084/1549] =?UTF-8?q?removido=20o=20m=C3=B3dulo=20l10n=5Fb?= =?UTF-8?q?r=5Ffp=5Frule=5Fsale=5Flink,=20pois=20foi=20resolvido=20o=20pro?= =?UTF-8?q?blema=20de=20incompatiblidade=20entre=20o=20m=C3=B3dulo=20accou?= =?UTF-8?q?nt=5Ffiscal=5Fposition=5Frule=5Fsale=20e=20delivery,=20pois=20o?= =?UTF-8?q?s=20dois=20utilizam=20o=20mesmo=20m=C3=A9todo=20na=20ordem=20de?= =?UTF-8?q?=20venda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/invoice.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 33c9c3237326..99811af06922 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -78,7 +78,7 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): res[invoice.id]['cofins_value'] += line.cofins_value for invoice_tax in invoice.tax_line: - if not invoice_tax.base_code_id.tax_discount: + if not invoice_tax.tax_code_id.tax_discount: res[invoice.id]['amount_tax'] += invoice_tax.amount res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] @@ -86,7 +86,7 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): return res def _get_fiscal_type(self, cr, uid, context=None): - print context + if context is None: context = {} return context.get('fiscal_type', 'product') @@ -445,7 +445,7 @@ def action_move_create(self, cr, uid, ids, *args): result = super(account_invoice, self).action_move_create(cr, uid, ids, *args) for inv in self.browse(cr, uid, ids): - #print 'Agora vai: %s aqui tbm: %s' % (inv.move_id.id, inv.move_id.ref) + if inv.move_id: self.pool.get('account.move').write(cr, uid, [inv.move_id.id], {'ref': inv.internal_number}) for move_line in inv.move_id.line_id: @@ -461,7 +461,7 @@ def action_move_create(self, cr, uid, ids, *args): return result def nfe_dv(self, key): - + #Testing return '2' def nfe_check(self, cr, uid, ids, context=None): @@ -581,7 +581,7 @@ def nfe_check(self, cr, uid, ids, context=None): strErro = 'Destinatário / Endereço - Nome do municipio\n' if not inv.address_invoice_id.l10n_br_city_id.ibge_code: strErro = 'Destinatário / Endereço - Código do IBGE do municipio\n' - + if not inv.address_invoice_id.country_id: strErro = 'Destinatario / Endereco - Pais\n' else: @@ -589,7 +589,7 @@ def nfe_check(self, cr, uid, ids, context=None): strErro = 'Destinatario / Endereco - Nome do pais\n' if not inv.address_invoice_id.country_id.bc_code: strErro = 'Destinatario / Endereco - Codigo do BC do pais\n' - + #endereco de entrega if inv.partner_shipping_id: From 5751da0cd8bd3f84f17479c1eceee5ea8405ae9a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 30 May 2011 23:11:50 -0300 Subject: [PATCH 0085/1549] =?UTF-8?q?l10n=5Fbr=5Fbase,=20l10n=5Fbr=5Faccou?= =?UTF-8?q?nt:=20incluido=20os=20campos=20de=20digito=20de=20conta=20corre?= =?UTF-8?q?nte=20e=20n=C3=BAmero=20e=20digito=20da=20ag=C3=AAncia=20banc?= =?UTF-8?q?=C3=A1ria=20no=20objeto=20res.partner.bank?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 61 ++++++++++++++++-------- l10n_br_account/account_view.xml | 6 +-- l10n_br_account/partner_view.xml | 48 +++++++++++++++++-- 3 files changed, 90 insertions(+), 25 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index ebdf198495e0..68f65369486a 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -8,21 +8,11 @@ account.invoice - - + + - - - - - - - - - - - + @@ -138,6 +128,26 @@ + + + l10n_br_account.invoice.form10 + account.invoice + + + + + + + + + + + + + + + + [('type','=','out_invoice'),('fiscal_type','=','product')] @@ -196,13 +206,13 @@ - + - - - - - + + + + + @@ -286,6 +296,19 @@ + + + l10n_br_account.invoice.supplier.form8 + account.invoice + + + + + + + + + diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index 400c631e9fcf..6996a0d46ea6 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -24,7 +24,7 @@
- + l10n_br_account.tax.template.form1 account.tax.template @@ -36,7 +36,7 @@
- + l10n_br_account.tax.form1 account.tax @@ -62,5 +62,5 @@ - + diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index cfca95743341..6848a86abb25 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -14,16 +14,58 @@
- - l10n_br_account.partner.form5 + + l10n_br_account.partner.form res.partner - + + + l10n_br_account.partner.form2 + res.partner + + 33 + + + + + + + + + + + + + l10n_br_account.partner.form3 + res.partner + + 33 + + + + + + + + + l10n_br_account.partner.form4 + res.partner + + 33 + + + + + + + + + From 281da71ed81383a691b97409b8cb93bf14c7ce2c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 3 Jun 2011 15:18:58 -0300 Subject: [PATCH 0086/1549] =?UTF-8?q?Adicionado=20os=20m=C3=B3dulos=20l10n?= =?UTF-8?q?=5Fbr=5Faccount=5Fpayment=20e=20l10n=5Fbr=5Faccount=5Fpayment?= =?UTF-8?q?=5Fextension=20para=20extender=20fun=C3=A7=C3=B5es=20do=20finan?= =?UTF-8?q?eiro=20(contas=20a=20pagar=20e=20contas=20a=20receber)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 13 +++++++--- l10n_br_account/account_invoice_view.xml | 33 +++++++++++++++++++----- l10n_br_account/account_view.xml | 16 +++++++----- l10n_br_account/invoice.py | 18 ++++++------- l10n_br_account/l10n_br_account.py | 1 - l10n_br_account/l10n_br_account_view.xml | 1 - 6 files changed, 54 insertions(+), 28 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index c9eb5848132f..6fcbe279543d 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -30,9 +30,16 @@ from tools.translate import _ from tools import config -############################################################################## -# Cadastro de Impostos Personalizado -############################################################################## +class account_journal(osv.osv): + + _inherit = 'account.journal' + + _columns = { + 'revenue_expense' : fields.boolean('Gera Financeiro'), + } + +account_journal() + class account_tax(osv.osv): _inherit = 'account.tax' diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 68f65369486a..f9536f6fdfff 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -56,7 +56,7 @@ - + @@ -153,8 +153,8 @@ [('type','=','out_invoice'),('fiscal_type','=','product')] - - Nota Fiscal de Serviço + + Nota Fiscal de Serviço de Saida account.invoice form tree,form,calendar,graph @@ -165,14 +165,35 @@ With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. + + + Nota Fiscal de Serviço de Entrada + account.invoice + form + tree,form,calendar,graph + + [('type','=','in_invoice'),('fiscal_type','=','service')] + {'type':'in_invoice', 'journal_type': 'purchase','fiscal_type': 'service'} + + + With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers. + - + + + tree + + + + + + tree - + - + l10n_br_account.invoice.select diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index 6996a0d46ea6..947ac6f8f306 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -6,7 +6,7 @@ l10n_br_account.tax.template.form account.tax.template - + reexport @@ -48,16 +48,18 @@ - - - l10n_br.journal.form.inherit + + + l10n_br_account.journal.form1 account.journal form - - - + + + + + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 99811af06922..74942cc0ed84 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -99,9 +99,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, context = {} if not 'fiscal_type' in context.keys(): - return res - - journal_obj = self.pool.get('account.journal') + return res ui_view_ids = self.pool.get('ir.ui.view').search(cr,uid,[('name', '=', 'account.invoice.form')]) field_names = ['service_type_id'] @@ -177,13 +175,13 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, - + + + + - + - - - @@ -220,7 +218,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): res[id] = [] if not invoice.move_id: continue - data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable') and invoice.fiscal_operation_category_id.revenue] + data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable') and invoice.journal_id.revenue_expense] New_ids = [] for line in data_lines: New_ids.append(line.id) @@ -1201,7 +1199,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrFile += StrX26 - if inv.fiscal_operation_category_id.revenue: + if inv.journal_id.revenue_expense: StrY = 'Y|\n' diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 4f5c83efe0cc..2b53402a1884 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -143,7 +143,6 @@ class l10n_br_account_fiscal_operation_category(osv.osv): 'name': fields.char('Descrição', size=64), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), 'journal_ids': fields.many2many('account.journal', 'l10n_br_account_fiscal_operation_category_rel', 'fiscal_operation_category_id', 'journal_id', 'Consolidated Children', domain="[('company_id','=',user.company_id)]" ), - 'revenue' : fields.boolean('Gera Financeiro'), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index c207ddae5bbf..9fc9b68ee6d1 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -120,7 +120,6 @@ - From 1be65376fe3ba43f5445bb19035019c2aba75305 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 3 Jun 2011 18:54:44 -0300 Subject: [PATCH 0087/1549] l10n_br_stock: alterado os metodos onchange_partner_in e onchange_partner_in e onchange_fiscal_operation_category_id --- l10n_br_account/invoice.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index 74942cc0ed84..d6acd58bacaf 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -160,7 +160,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, - + @@ -168,11 +168,11 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, - + - - - + + + From c3d7595ced7830698ed1abd35b9132f04734f0be Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 3 Jun 2011 20:25:50 -0300 Subject: [PATCH 0088/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20atualizado=20a?= =?UTF-8?q?s=20vis=C3=B5es=20das=20notas=20fiscais=20de=20servi=C3=A7os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 194 +++++++++++++++++++++++ l10n_br_account/invoice.py | 124 ++++----------- 2 files changed, 222 insertions(+), 96 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index f9536f6fdfff..68114bc48625 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -219,6 +219,103 @@
+ + l10n_br_account.invoice.service.out.form + account.invoice + 32 + +
+ + + + + + @@ -283,7 +283,7 @@ diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index 1a9aff60b24a..18991f9024c3 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -1,18 +1,24 @@ - - + + - sefaz_export + router nfe_check() action_date_assign() action_internal_number() action_move_create() -action_number() -write({'state':'sefaz_export'}) +action_number() function - + + + + + sefaz_export + write({'state':'sefaz_export'}) + function + @@ -37,18 +43,18 @@ write({'state':'cancel'}) function - + + + True + invoice_validate + + + + + fiscal_document_nfe == True and own_invoice == True - invoice_sefaz_export - - - - - - True - invoice_open @@ -80,10 +86,9 @@ write({'state':'cancel'})
- + fiscal_document_nfe == False or own_invoice == False - invoice_sefaz_export From bebd18b4602a51b18ae0e89fdfd26e9ad63e688c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 27 Sep 2011 19:01:30 -0300 Subject: [PATCH 0105/1549] =?UTF-8?q?l10n=5Fbr=5Fdelivery=20corrigida=20vi?= =?UTF-8?q?s=C3=A3o=20herdada=20do=20l10n=5Fbr=5Faccount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_rule.py | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 0bbf2c53077b..6a92f70a837d 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -40,6 +40,80 @@ class account_fiscal_position_rule(osv.osv): 'use_picking' : fields.boolean('Use in Picking'), } + def fiscal_position_map(self, cr, uid, ids, partner_id=False, partner_address_id=False, company_id=False, fiscal_operation_category_id=False, set_default=True, context=None): + + my_partner_id = partner_invoice_id or partner_id + + + if my_partner_id == False or shop_id == False: + result['value']['fiscal_position'] = False + result['value']['fiscal_operation_id'] = False + return result + + # Recover involved objects -------------------------------------- + + # Partner: Invoice partner priority + Partner = self.pool.get("res.partner").browse(cr, uid, my_partner_id) or False + + # Shop + Shop = self.pool.get("sale.shop").browse(cr, uid, shop_id) or False + + # Fiscal Category + Operation = False + + if not fiscal_operation_category_id == False: + Operation = fiscal_operation_category_id + else: + Operation = False + + if Operation == False and set_default == True: + Operation = Shop.default_fo_category_id.id + result['value']['fiscal_operation_category_id'] = Shop.default_fo_category_id.id + if not Operation == False: + FiscalCategory = self.pool.get("l10n_br_account.fiscal.operation.category").browse(cr, uid, Operation) + else: + FiscalCategory = False + + # Fiscal data determination ------------------------------------- + + #Case 0: Any object missing + if Partner == False or Shop == False or FiscalCategory == False: + result['value']['fiscal_position'] = False + result['value']['fiscal_operation_id'] = False + return + + #Case 1: Parnter Specific Fiscal Posigion + if not Partner.property_account_position.id == False: + result['value']['fiscal_position'] = Partner.property_account_position.id + result['value']['fiscal_operation_id'] = Partner.property_account_position.id.fiscal_operation_id.id + return + + #Case 2: Rule based determination + company_addr = self.pool.get('res.partner').address_get(cr, uid, [Shop.company_id.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + + from_country = company_addr_default.country_id.id + from_state = company_addr_default.state_id.id + + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, Partner.id) + to_country = partner_addr_default.country_id.id + to_state = partner_addr_default.state_id.id + + fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, ['&',('company_id','=', Shop.company_id.id),('use_sale','=',True),('fiscal_operation_category_id','=',FiscalCategory.id), + '|',('from_country','=',from_country),('from_country','=',False), + '|',('to_country','=',to_country),('to_country','=',False), + '|',('from_state','=',from_state),('from_state','=',False), + '|',('to_state','=',to_state),('to_state','=',False), + '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False), + ]) + + if fsc_pos_id: + obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] + result['value']['fiscal_position'] = obj_fpo_rule.fiscal_position_id.id + result['value']['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id + + return result + account_fiscal_position_rule() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From af2ca73cb4a394a5f5ac5f4f8b3fef88acc25768 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 27 Sep 2011 19:48:10 -0300 Subject: [PATCH 0106/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20otimiza=C3=A7?= =?UTF-8?q?=C3=A3o=20das=20regras=20de=20posi=C3=A7=C3=A3o=20fiscal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_rule.py | 89 ++++++++----------- 1 file changed, 35 insertions(+), 54 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 6a92f70a837d..051d34544be4 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -42,75 +42,56 @@ class account_fiscal_position_rule(osv.osv): def fiscal_position_map(self, cr, uid, ids, partner_id=False, partner_address_id=False, company_id=False, fiscal_operation_category_id=False, set_default=True, context=None): - my_partner_id = partner_invoice_id or partner_id + result = {} - - if my_partner_id == False or shop_id == False: - result['value']['fiscal_position'] = False - result['value']['fiscal_operation_id'] = False + if partner_id == False or company_id == False or fiscal_operation_category_id: + result['fiscal_position'] = False + result['fiscal_operation_id'] = False + result['fiscal_operation_category_id'] = False return result - # Recover involved objects -------------------------------------- + obj_parnter = self.pool.get("res.partner") + obj_company = self.pool.get("res.company") + obj_partner_address = self.pool.get("res.partner.address") - # Partner: Invoice partner priority - Partner = self.pool.get("res.partner").browse(cr, uid, my_partner_id) or False + #Partner + parnter = obj_partner.browse(cr, uid, partner_id) - # Shop - Shop = self.pool.get("sale.shop").browse(cr, uid, shop_id) or False - - # Fiscal Category - Operation = False - - if not fiscal_operation_category_id == False: - Operation = fiscal_operation_category_id - else: - Operation = False + if parnter.property_account_position.id: + result['fiscal_position'] = parnter.property_account_position.id + result['fiscal_operation_id'] = parnter.property_account_position.fiscal_operation_id and parnter.property_account_position.fiscal_operation_id.id + result['fiscal_operation_category_id'] = parnter.property_account_position.fiscal_operation_id and parnter.property_account_position.fiscal_operation_id.fiscal_operation_category_id and parnter.property_account_position.fiscal_operation_id.fiscal_operation_category_id.id + return result - if Operation == False and set_default == True: - Operation = Shop.default_fo_category_id.id - result['value']['fiscal_operation_category_id'] = Shop.default_fo_category_id.id - if not Operation == False: - FiscalCategory = self.pool.get("l10n_br_account.fiscal.operation.category").browse(cr, uid, Operation) + if partner_address_id: + partner_addr_default = obj_partner_address.browse(cr, uid, partner_id) else: - FiscalCategory = False + partner_addr = obj_partner.address_get(cr, uid, [company.partner_id.id], ['default']) + partner_addr_default = obj_partner_address.browse(cr, uid, [company_addr['default']])[0] - # Fiscal data determination ------------------------------------- + to_country = partner_addr_default.country_id.id + to_state = partner_addr_default.state_id.id - #Case 0: Any object missing - if Partner == False or Shop == False or FiscalCategory == False: - result['value']['fiscal_position'] = False - result['value']['fiscal_operation_id'] = False - return - - #Case 1: Parnter Specific Fiscal Posigion - if not Partner.property_account_position.id == False: - result['value']['fiscal_position'] = Partner.property_account_position.id - result['value']['fiscal_operation_id'] = Partner.property_account_position.id.fiscal_operation_id.id - return - - #Case 2: Rule based determination - company_addr = self.pool.get('res.partner').address_get(cr, uid, [Shop.company_id.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + #Company + company = obj_company.browse(cr, uid, company_id) + company_addr = obj_partner.address_get(cr, uid, [company.partner_id.id], ['invoice','default']) + company_addr_default = obj_partner_address.browse(cr, uid, [company_addr['invoice']])[0] from_country = company_addr_default.country_id.id from_state = company_addr_default.state_id.id - partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, Partner.id) - to_country = partner_addr_default.country_id.id - to_state = partner_addr_default.state_id.id - - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, ['&',('company_id','=', Shop.company_id.id),('use_sale','=',True),('fiscal_operation_category_id','=',FiscalCategory.id), - '|',('from_country','=',from_country),('from_country','=',False), - '|',('to_country','=',to_country),('to_country','=',False), - '|',('from_state','=',from_state),('from_state','=',False), - '|',('to_state','=',to_state),('to_state','=',False), - '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False), - ]) + fsc_pos_id = self.search(cr, uid, ['&',('company_id','=', Shop.company_id.id),('use_sale','=',True),('fiscal_operation_category_id','=',FiscalCategory.id), + '|',('from_country','=',from_country),('from_country','=',False), + '|',('to_country','=',to_country),('to_country','=',False), + '|',('from_state','=',from_state),('from_state','=',False), + '|',('to_state','=',to_state),('to_state','=',False), + '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False), + ]) if fsc_pos_id: - obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] - result['value']['fiscal_position'] = obj_fpo_rule.fiscal_position_id.id - result['value']['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id + obj_fpo_rule = self.browse(cr, uid, fsc_pos_id)[0] + result['fiscal_position'] = obj_fpo_rule.fiscal_position_id.id + result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id and obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id return result From 473b0c36a9861932ca94d079a16093576d0aee15 Mon Sep 17 00:00:00 2001 From: Fabio Negrini Date: Sat, 1 Oct 2011 00:31:45 -0300 Subject: [PATCH 0107/1549] =?UTF-8?q?Corre=C3=A7=C3=A3o=20do=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_rule.py | 156 +++++++++++----- l10n_br_account/account_invoice_view.xml | 10 +- l10n_br_account/invoice.py | 172 +++++------------- 3 files changed, 161 insertions(+), 177 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 051d34544be4..ba11f4475a98 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -24,6 +24,7 @@ ############################################################################## class account_fiscal_position_rule_template(osv.osv): _inherit = 'account.fiscal.position.rule.template' + _columns = { 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), @@ -34,67 +35,134 @@ class account_fiscal_position_rule_template(osv.osv): class account_fiscal_position_rule(osv.osv): _inherit = 'account.fiscal.position.rule' - _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), - 'use_picking' : fields.boolean('Use in Picking'), - } - - def fiscal_position_map(self, cr, uid, ids, partner_id=False, partner_address_id=False, company_id=False, fiscal_operation_category_id=False, set_default=True, context=None): + def _fiscal_position_map(self, cr, uid, partner_address_id=False, partner_invoice_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False, use_partner_default=False, context=None): + + # initiate result result = {} + result['fiscal_position'] = False + result['fiscal_operation_id'] = False + + # Check for all needed objects ---------------------------------- + my_partner_id = partner_invoice_id or partner_id - if partner_id == False or company_id == False or fiscal_operation_category_id: - result['fiscal_position'] = False - result['fiscal_operation_id'] = False - result['fiscal_operation_category_id'] = False + if my_partner_id == False or company_id == False or fiscal_operation_category_id == False: return result - obj_parnter = self.pool.get("res.partner") - obj_company = self.pool.get("res.company") - obj_partner_address = self.pool.get("res.partner.address") + # Recover involved objects -------------------------------------- - #Partner - parnter = obj_partner.browse(cr, uid, partner_id) - - if parnter.property_account_position.id: - result['fiscal_position'] = parnter.property_account_position.id - result['fiscal_operation_id'] = parnter.property_account_position.fiscal_operation_id and parnter.property_account_position.fiscal_operation_id.id - result['fiscal_operation_category_id'] = parnter.property_account_position.fiscal_operation_id and parnter.property_account_position.fiscal_operation_id.fiscal_operation_category_id and parnter.property_account_position.fiscal_operation_id.fiscal_operation_category_id.id + # Partner: Invoice partner priority + + Partner = self.pool.get("res.partner").browse(cr, uid, my_partner_id) or False + + # Company + Company = self.pool.get("res.company").browse(cr, uid, company_id) or False + + # Fiscal Category + FiscalCategory = self.pool.get("l10n_br_account.fiscal.operation.category").browse(cr, uid, fiscal_operation_category_id) or False + + # Fiscal data determination ------------------------------------- + + #Case 0: Any object missing + if Partner == False or Company == False or FiscalCategory == False: + return result + + #Case 1: Parnter Specific Fiscal Posigion + if not Partner.property_account_position.id == False and use_partner_default == True: + result['fiscal_position'] = Partner.property_account_position.id + result['fiscal_operation_id'] = Partner.property_account_position.id.fiscal_operation_id.id return result + + #Case 2: Rule based determination + company_addr = self.pool.get('res.partner').address_get(cr, uid, [Company.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] - if partner_address_id: - partner_addr_default = obj_partner_address.browse(cr, uid, partner_id) + from_country = company_addr_default.country_id.id + from_state = company_addr_default.state_id.id + + if partner_address_id == False: + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, Partner.id) else: - partner_addr = obj_partner.address_get(cr, uid, [company.partner_id.id], ['default']) - partner_addr_default = obj_partner_address.browse(cr, uid, [company_addr['default']])[0] - + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, partner_address_id) + to_country = partner_addr_default.country_id.id to_state = partner_addr_default.state_id.id - - #Company - company = obj_company.browse(cr, uid, company_id) - company_addr = obj_partner.address_get(cr, uid, [company.partner_id.id], ['invoice','default']) - company_addr_default = obj_partner_address.browse(cr, uid, [company_addr['invoice']])[0] - from_country = company_addr_default.country_id.id - from_state = company_addr_default.state_id.id - - fsc_pos_id = self.search(cr, uid, ['&',('company_id','=', Shop.company_id.id),('use_sale','=',True),('fiscal_operation_category_id','=',FiscalCategory.id), - '|',('from_country','=',from_country),('from_country','=',False), - '|',('to_country','=',to_country),('to_country','=',False), - '|',('from_state','=',from_state),('from_state','=',False), - '|',('to_state','=',to_state),('to_state','=',False), - '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False), - ]) + + if context==None: + context = [] + + query = ['&',('company_id','=', Company.id), + ('fiscal_operation_category_id','=',FiscalCategory.id), + '|',('from_country','=',from_country),('from_country','=',False), + '|',('to_country','=',to_country),('to_country','=',False), + '|',('from_state','=',from_state),('from_state','=',False), + '|',('to_state','=',to_state),('to_state','=',False), + '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False)] + context + + fsc_pos_id = self.search(cr, uid, query) if fsc_pos_id: - obj_fpo_rule = self.browse(cr, uid, fsc_pos_id)[0] + obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] result['fiscal_position'] = obj_fpo_rule.fiscal_position_id.id - result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id and obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id + result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id return result + + def fiscal_position_map_sale(self, cr, uid, partner_invoice_id=False, partner_id=False, shop_id=False, fiscal_operation_category_id=False, set_default=True): + + #initiate result + result = {} + + if shop_id == False: + return result + + # Get Shop + Shop = self.pool.get("sale.shop").browse(cr, uid, shop_id) or False + + # Check default for fiscal_operation_category_id + Operation = False + + if not fiscal_operation_category_id == False: + Operation = fiscal_operation_category_id + + #Set default fiscal category + if Operation == False and set_default == True: + Operation = Shop.default_fo_category_id.id + result['fiscal_operation_category_id'] = Shop.default_fo_category_id.id + + result2 = self._fiscal_position_map(cr, uid, False, partner_invoice_id, partner_id, Shop.company_id.id, Operation, True, [('use_sale','=',True)]) + + result.update(result2) + + return result + + def fiscal_position_map_purchase(self, cr, uid, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): + + result = self._fiscal_position_map(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_purchase','=',True)]) + + return result + + def fiscal_position_map_stock(self, cr, uid, partner_id=False, company_id=False, fiscal_operation_category_id=False): + + result = self._fiscal_position_map(cr, uid, partner_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_picking', '=', True)]) + + return result + + def fiscal_position_map_invoice(self, cr, uid, partner_address_id=False, partner_invoice_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): + + result = self._fiscal_position_map(cr, uid, partner_address_id, partner_invoice_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_invoice','=',True)]) + + return result + + + _columns = { + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'use_picking' : fields.boolean('Use in Picking'), + } + account_fiscal_position_rule() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 38fb4dee17b3..2378eaa17ec0 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -41,9 +41,10 @@ l10n_br_account.invoice.form2 account.invoice + 15 - + @@ -53,7 +54,8 @@ l10n_br_account.invoice.form3 account.invoice - + + 15 @@ -64,7 +66,7 @@ l10n_br_account.invoice.form4 account.invoice - + @@ -258,7 +260,7 @@ - + diff --git a/l10n_br_account/invoice.py b/l10n_br_account/invoice.py index d1a355763b7d..1f92ad7f135b 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/invoice.py @@ -1639,159 +1639,73 @@ def nfe_export_xml(self, cr, uid, ids, context=False): xml_string = ElementTree.tostring(nfeProc, 'utf-8') return xml_string - def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ - date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): + def _fiscal_position_map(self, cr, uid, ids, partner_address_id, partner_id, company_id, fiscal_operation_category_id): - result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) - result['value']['fiscal_operation_id'] = False - result['value']['cfop_id'] = False - result['value']['fiscal_document_id'] = False + result = {} + result['fiscal_operation_id'] = False + result['cfop_id'] = False + result['fiscal_document_id'] = False + + rule = self.pool.get('account.fiscal.position.rule') + rule_result = rule.fiscal_position_map_invoice(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id) + + result.update(rule_result) - if not partner_id or not company_id or not result['value']['address_invoice_id']: - return result + my_fiscal_operation_id = result['fiscal_operation_id'] or False - obj_company = self.pool.get('res.company').browse(cr, uid, [company_id])[0] + if not my_fiscal_operation_id == False: + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, my_fiscal_operation_id) + result['cfop_id'] = obj_foperation.cfop_id.id + result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + for inv in self.browse(cr,uid,ids): + for line in inv.invoice_line: + line.cfop_id = obj_foperation.cfop_id.id - from_country = company_addr_default.country_id.id - from_state = company_addr_default.state_id.id + return result - obj_partner = self.pool.get('res.partner').browse(cr, uid, [partner_id])[0] - partner_fiscal_type = obj_partner.partner_fiscal_type_id.id - - partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [result['value']['address_invoice_id']])[0] - to_country = partner_addr_default.country_id.id - to_state = partner_addr_default.state_id.id + def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ + date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): + + result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) + my_address_invoice_id = result['value']['address_invoice_id'] or False + + fiscal_data = self._fiscal_position_map(cr, uid, ids, my_address_invoice_id, partner_id, company_id, fiscal_operation_category_id) - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('partner_fiscal_type_id','=',partner_fiscal_type),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - if not fsc_pos_id: - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - - if fsc_pos_id: - obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] - obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] - result['value']['fiscal_position'] = obj_fpo.id - result['value']['fiscal_operation_id'] = obj_foperation.id - result['value']['cfop_id'] = obj_foperation.cfop_id.id - result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - - #for inv in self.browse(cr,uid,ids): - # for line in inv.invoice_line: - # line.cfop_id = obj_foperation.cfop_id.id - #line.write(cr, uid, line.id, {'cfop_id': obj_foperation.cfop_id.id}) + result['value'].update(fiscal_data) + return result def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id, fiscal_operation_category_id=False): result = super(account_invoice, self).onchange_company_id(cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id) - result['value']['fiscal_operation_id'] = False - result['value']['cfop_id'] = False - result['value']['fiscal_document_id'] = False - - if not partner_id or not company_id or not address_invoice_id: - return result - - obj_company = self.pool.get('res.company').browse(cr, uid, [company_id])[0] - - company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] - - from_country = company_addr_default.country_id.id - from_state = company_addr_default.state_id.id - obj_partner = self.pool.get('res.partner').browse(cr, uid, [partner_id])[0] - partner_fiscal_type = obj_partner.partner_fiscal_type_id.id - - if obj_partner.property_account_position.id: - obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] - result['value']['fiscal_position'] = obj_fpo.id - result['value']['fiscal_operation_id'] = obj_foperation.id - result['value']['cfop_id'] = obj_foperation.cfop_id.id - result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - return result - - partner_addr_invoice = self.pool.get('res.partner.address').browse(cr, uid, [address_invoice_id])[0] - - to_country = partner_addr_invoice.country_id.id - to_state = partner_addr_invoice.state_id.id - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('partner_fiscal_type_id','=',partner_fiscal_type),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - if not fsc_pos_id: - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=',company_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - - if fsc_pos_id: - obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] - obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] - result['value']['fiscal_position'] = obj_fpo.id - result['value']['fiscal_operation_id'] = obj_foperation.id - result['value']['cfop_id'] = obj_foperation.cfop_id.id - result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - - for inv in self.browse(cr,uid,ids): - for line in inv.invoice_line: - line.cfop_id = obj_foperation.cfop_id.id + fiscal_data = self._fiscal_position_map(cr, uid, ids, address_invoice_id, partner_id, company_id, fiscal_operation_category_id) - return result + result['value'].update(fiscal_data) - def onchange_address_invoice_id(self, cr, uid, ids, cpy_id, ptn_id, ptn_invoice_id, fiscal_operation_category_id=False): - - result = super(account_invoice, self).onchange_address_invoice_id(cr,uid,ids,cpy_id,ptn_id,ptn_invoice_id) - result['value']['fiscal_operation_id'] = False - result['value']['cfop_id'] = False - result['value']['fiscal_document_id'] = False - - if not ptn_id or not cpy_id or not ptn_invoice_id: - return result - - obj_company = self.pool.get('res.company').browse(cr, uid, [cpy_id])[0] - - company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] - - from_country = company_addr_default.country_id.id - from_state = company_addr_default.state_id.id + return result - obj_partner = self.pool.get('res.partner').browse(cr, uid, [ptn_id])[0] - partner_fiscal_type = obj_partner.partner_fiscal_type_id.id + def onchange_address_invoice_id(self, cr, uid, ids, company_id, partner_id, address_invoice_id, fiscal_operation_category_id=False): - if obj_partner.property_account_position.id: - obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] - result['value']['fiscal_position'] = obj_fpo.id - result['value']['fiscal_operation_id'] = obj_foperation.id - result['value']['cfop_id'] = obj_foperation.cfop_id.id - result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - return result + result = super(account_invoice, self).onchange_address_invoice_id(cr,uid,ids,company_id,partner_id,address_invoice_id) - partner_addr_invoice = self.pool.get('res.partner.address').browse(cr, uid, [ptn_invoice_id])[0] + fiscal_data = self._fiscal_position_map(cr, uid, ids, address_invoice_id, partner_id, company_id, fiscal_operation_category_id) + + result['value'].update(fiscal_data) - to_country = partner_addr_invoice.country_id.id - to_state = partner_addr_invoice.state_id.id + return result + def onchange_fiscal_operation_category_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=', cpy_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('partner_fiscal_type_id','=',partner_fiscal_type),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - if not fsc_pos_id: - fsc_pos_id = self.pool.get('account.fiscal.position.rule').search(cr, uid, [('company_id','=', cpy_id), ('from_country','=',from_country),('from_state','=',from_state),('to_country','=',to_country),('to_state','=',to_state),('use_invoice','=',True),('fiscal_operation_category_id','=',fiscal_operation_category_id)]) - - if fsc_pos_id: - obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] - obj_fpo = self.pool.get('account.fiscal.position').browse(cr, uid, [obj_fpo_rule.fiscal_position_id.id])[0] - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, [obj_fpo.fiscal_operation_id.id])[0] - result['value']['fiscal_position'] = obj_fpo.id - result['value']['fiscal_operation_id'] = obj_foperation.id - result['value']['cfop_id'] = obj_foperation.cfop_id.id - result['value']['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - - for inv in self.browse(cr,uid,ids): - for line in inv.invoice_line: - line.cfop_id = obj_foperation.cfop_id.id + result = {'value': {} } + + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_address_id, partner_id, company_id, fiscal_operation_category_id) + + result['value'].update(fiscal_data) return result From 3a9750339c7844e0ce998a7a5a8b8de9ba50c4cf Mon Sep 17 00:00:00 2001 From: Fabio Negrini Date: Tue, 4 Oct 2011 10:06:19 -0300 Subject: [PATCH 0108/1549] =?UTF-8?q?Corrigido=20Bug=20na=20determina?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20dados=20fiscais=20espec=C3=ADficos=20de=20?= =?UTF-8?q?parceiro=20na=20Ordem=20de=20venda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_fiscal_position_rule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index ba11f4475a98..d97fd9a5f8c1 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -70,7 +70,7 @@ def _fiscal_position_map(self, cr, uid, partner_address_id=False, partner_invoic #Case 1: Parnter Specific Fiscal Posigion if not Partner.property_account_position.id == False and use_partner_default == True: result['fiscal_position'] = Partner.property_account_position.id - result['fiscal_operation_id'] = Partner.property_account_position.id.fiscal_operation_id.id + result['fiscal_operation_id'] = Partner.property_account_position.fiscal_operation_id.id return result #Case 2: Rule based determination From 22a332060e86cbfad09e5006693ee7958e9a18c9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 8 Nov 2011 01:12:11 -0200 Subject: [PATCH 0109/1549] =?UTF-8?q?Mudan=C3=A7as=20para=20adapta=C3=A7?= =?UTF-8?q?=C3=A3o=20da=20localiza=C3=A7=C3=A3o=20brasileira:=20l10n=5Fbr?= =?UTF-8?q?=5Fproduct:product.py:Alterado=20a=20implementa=C3=A7=C3=A3o=20?= =?UTF-8?q?da=20classe=20product=5Fproduct=20para=20product=5Ftemplate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/product.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 81734a7124cd..064e6e97fbce 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -22,9 +22,9 @@ ############################################################################## # Produto Customizado ############################################################################## -class product_product(osv.osv): +class product_template(osv.osv): - _inherit = 'product.product' + _inherit = 'product.template' _columns = { 'fiscal_category_operation_default_ids': fields.one2many('l10n_br_account.product.operation.category', 'product_id', 'Categoria de Operação Fiscal Padrões'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), @@ -35,7 +35,7 @@ class product_product(osv.osv): 'is_on_service_invoice': False, } -product_product() +product_template() ############################################################################## # Categorias fiscais de operações padrões por produto From a2431dde1dae9771351105a262a4e166e9a5fad3 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 11 Nov 2011 01:55:34 -0200 Subject: [PATCH 0110/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20e=20l10n=5Fbr?= =?UTF-8?q?=5Fsale:=20migra=C3=A7=C3=A3o=20dos=20modulos=20para=20a=20vers?= =?UTF-8?q?=C3=A3o=20trunk=20do=20OpenERP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__init__.py | 2 +- .../account_fiscal_position_rule.py | 108 +++-------- .../{invoice.py => account_invoice.py} | 134 ++++++++------ l10n_br_account/account_invoice_view.xml | 168 ++++++++++-------- 4 files changed, 200 insertions(+), 212 deletions(-) rename l10n_br_account/{invoice.py => account_invoice.py} (95%) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 91743a6ccf83..77c0624e7af2 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -21,7 +21,7 @@ import res_company import partner import account -import invoice +import account_invoice import product import account_fiscal_position_rule import wizard diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index d97fd9a5f8c1..e9993452267d 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -36,71 +36,48 @@ class account_fiscal_position_rule_template(osv.osv): class account_fiscal_position_rule(osv.osv): _inherit = 'account.fiscal.position.rule' - def _fiscal_position_map(self, cr, uid, partner_address_id=False, partner_invoice_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False, use_partner_default=False, context=None): - - # initiate result - result = {} - result['fiscal_position'] = False - result['fiscal_operation_id'] = False - - # Check for all needed objects ---------------------------------- - my_partner_id = partner_invoice_id or partner_id - - if my_partner_id == False or company_id == False or fiscal_operation_category_id == False: - return result - - # Recover involved objects -------------------------------------- + def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=False, company_id=False, fiscal_operation_category_id=False, context=None): - # Partner: Invoice partner priority - - Partner = self.pool.get("res.partner").browse(cr, uid, my_partner_id) or False - - # Company - Company = self.pool.get("res.company").browse(cr, uid, company_id) or False + # initiate result + result = {'fiscal_position': False, 'fiscal_operation_id': False} - # Fiscal Category - FiscalCategory = self.pool.get("l10n_br_account.fiscal.operation.category").browse(cr, uid, fiscal_operation_category_id) or False - - # Fiscal data determination ------------------------------------- + if partner_id == False or not partner_invoice_id or company_id == False or fiscal_operation_category_id == False: + return result - #Case 0: Any object missing - if Partner == False or Company == False or FiscalCategory == False: - return result + obj_partner = self.pool.get("res.partner").browse(cr, uid, partner_id) + obj_company = self.pool.get("res.company").browse(cr, uid, company_id) #Case 1: Parnter Specific Fiscal Posigion - if not Partner.property_account_position.id == False and use_partner_default == True: - result['fiscal_position'] = Partner.property_account_position.id - result['fiscal_operation_id'] = Partner.property_account_position.fiscal_operation_id.id + if obj_partner.property_account_position.id: + result['fiscal_position'] = obj_partner.property_account_position.id + result['fiscal_operation_id'] = obj_partner.property_account_position.fiscal_operation_id.id return result #Case 2: Rule based determination - company_addr = self.pool.get('res.partner').address_get(cr, uid, [Company.partner_id.id], ['default']) + company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] from_country = company_addr_default.country_id.id from_state = company_addr_default.state_id.id - if partner_address_id == False: - partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, Partner.id) + if not partner_invoice_id: + partner_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_partner.id], ['invoice']) + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [partner_addr['invoice']])[0] else: - partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, partner_address_id) + partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, partner_invoice_id) to_country = partner_addr_default.country_id.id to_state = partner_addr_default.state_id.id + use_domain = context.get('use_domain', ('use_sale', '=', True)) - if context==None: - context = [] + domain = ['&',('company_id','=', company_id), ('fiscal_operation_category_id','=',fiscal_operation_category_id), use_domain, + '|',('from_country','=',from_country),('from_country','=',False), + '|',('to_country','=',to_country),('to_country','=',False), + '|',('from_state','=',from_state),('from_state','=',False), + '|',('to_state','=',to_state),('to_state','=',False),] - query = ['&',('company_id','=', Company.id), - ('fiscal_operation_category_id','=',FiscalCategory.id), - '|',('from_country','=',from_country),('from_country','=',False), - '|',('to_country','=',to_country),('to_country','=',False), - '|',('from_state','=',from_state),('from_state','=',False), - '|',('to_state','=',to_state),('to_state','=',False), - '|',('partner_fiscal_type_id','=',Partner.partner_fiscal_type_id.id),('partner_fiscal_type_id','=',False)] + context - - fsc_pos_id = self.search(cr, uid, query) + fsc_pos_id = self.search(cr, uid, domain) if fsc_pos_id: obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] @@ -108,40 +85,12 @@ def _fiscal_position_map(self, cr, uid, partner_address_id=False, partner_invoic result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id return result - - def fiscal_position_map_sale(self, cr, uid, partner_invoice_id=False, partner_id=False, shop_id=False, fiscal_operation_category_id=False, set_default=True): - - #initiate result - result = {} - - if shop_id == False: - return result - # Get Shop - Shop = self.pool.get("sale.shop").browse(cr, uid, shop_id) or False + #def fiscal_position_map_purchase(self, cr, uid, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - # Check default for fiscal_operation_category_id - Operation = False - - if not fiscal_operation_category_id == False: - Operation = fiscal_operation_category_id - - #Set default fiscal category - if Operation == False and set_default == True: - Operation = Shop.default_fo_category_id.id - result['fiscal_operation_category_id'] = Shop.default_fo_category_id.id - - result2 = self._fiscal_position_map(cr, uid, False, partner_invoice_id, partner_id, Shop.company_id.id, Operation, True, [('use_sale','=',True)]) - - result.update(result2) - - return result - - def fiscal_position_map_purchase(self, cr, uid, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - - result = self._fiscal_position_map(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_purchase','=',True)]) + # result = self._fiscal_position_map(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, {'use_domain': [('use_purchase','=',True)]}) - return result + # return result def fiscal_position_map_stock(self, cr, uid, partner_id=False, company_id=False, fiscal_operation_category_id=False): @@ -149,13 +98,6 @@ def fiscal_position_map_stock(self, cr, uid, partner_id=False, company_id=False, return result - def fiscal_position_map_invoice(self, cr, uid, partner_address_id=False, partner_invoice_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - - result = self._fiscal_position_map(cr, uid, partner_address_id, partner_invoice_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_invoice','=',True)]) - - return result - - _columns = { 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), diff --git a/l10n_br_account/invoice.py b/l10n_br_account/account_invoice.py similarity index 95% rename from l10n_br_account/invoice.py rename to l10n_br_account/account_invoice.py index 1f92ad7f135b..c9bf98e7c344 100644 --- a/l10n_br_account/invoice.py +++ b/l10n_br_account/account_invoice.py @@ -115,10 +115,9 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, for type in types: type.set('context', "{'type': '%s', 'fiscal_type': '%s'}" % (context['type'],context.get('fiscal_type','product'),)) - cfops = eview.xpath("//field[@name='cfop_id']") - for cfop_id in cfops: - cfop_id.set('domain', "[('type','=','%s')]" % (operation_type[context['type']],)) - cfop_id.set('required', '1') + cfops = eview.xpath("//field[@name='cfop_ids']") + for cfop_ids in cfops: + cfop_ids.set('domain', "[('type','=','%s')]" % (operation_type[context['type']],)) fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") for fiscal_operation_category_id in fiscal_operation_categories: @@ -137,10 +136,10 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, for delivery_info in delivery_infos: delivery_info.set('invisible', '1') - cfops = eview.xpath("//field[@name='cfop_id']") - for cfop_id in cfops: - cfop_id.set('name', 'service_type_id') - cfop_id.set('domain', '[]') + cfops = eview.xpath("//field[@name='cfop_ids']") + for cfop_ids in cfops: + cfop_ids.set('name', 'service_type_id') + cfop_ids.set('domain', '[]') document_series = eview.xpath("//field[@name='document_serie_id']") for document_serie_id in document_series: @@ -194,6 +193,19 @@ def _get_invoice_tax(self, cr, uid, ids, context=None): result[tax.invoice_id.id] = True return result.keys() + def _get_cfops(self, cr, uid, ids, name, arg, context=None): + result = {} + for invoice in self.browse(cr, uid, ids, context=context): + id = invoice.id + result[id] = [] + new_ids = [] + for line in invoice.invoice_line: + if line.cfop_id: + new_ids.append(line.cfop_id.id) + new_ids.sort() + result[id] = new_ids + return result + def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): res = {} for invoice in self.browse(cr, uid, ids, context=context): @@ -239,10 +251,10 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, size=64, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), 'move_line_receivable_id': fields.function(_get_receivable_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'), - 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Serie', domain="[('fiscal_document_id','=',fiscal_document_id),('company_id','=',company_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Série', domain="[('fiscal_document_id','=',fiscal_document_id),('company_id','=',company_id)]", readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', readonly=True, states={'draft':[('readonly',False)]}), + 'cfop_ids': fields.function(_get_cfops, method=True, type='many2many', relation='l10n_br_account.cfop', string='CFOP'), 'service_type_id': fields.many2one('l10n_br_account.service.type', 'Tipo de Serviço', readonly=True, states={'draft':[('readonly',False)]}), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', store={ @@ -472,12 +484,6 @@ def nfe_check(self, cr, uid, ids, context=None): if not inv.journal_id.internal_sequence: strErro = 'Nota Fiscal - Numero da nota fiscal, o diário deve ter uma sequencia interna\n' - - if not inv.cfop_id: - strErro = 'Nota Fiscal - CFOP\n' - else: - if not inv.cfop_id.small_name: - strErro = 'Nota Fiscal - Descricao reduzida do CFOP\n' #Emitente if not inv.company_id.partner_id.legal_name: @@ -680,7 +686,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrRegB = { 'cUF': company_addr_default.state_id.ibge_code, 'cNF': '', - 'NatOp': normalize('NFKD',unicode(inv.cfop_id.small_name or '')).encode('ASCII','ignore'), + 'NatOp': normalize('NFKD',unicode(inv.cfop_ids[0].small_name or '')).encode('ASCII','ignore'), 'intPag': '2', 'mod': inv.fiscal_document_id.code, 'serie': inv.document_serie_id.code, @@ -701,7 +707,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): 'xJust': '', } - if inv.cfop_id.type in ("input"): + if inv.cfop_ids[0].type in ("input"): StrRegB['tpNF'] = '0' else: StrRegB['tpNF'] = '1' @@ -1252,7 +1258,7 @@ def nfe_export_xml(self, cr, uid, ids, context=False): ide_cNF.text = unicode(inv.internal_number).strip().rjust(8, u'0') ide_natOp = SubElement(ide, 'natOp') - ide_natOp.text = inv.cfop_id.name + ide_natOp.text = inv.cfop_ids[0].name ide_indPag = SubElement(ide, 'indPag') ide_indPag.text = "2" @@ -1427,7 +1433,7 @@ def nfe_export_xml(self, cr, uid, ids, context=False): prod_NCM.text = inv_line.product_id.property_fiscal_classification.name prod_CFOP = SubElement(det_prod, 'CFOP') - prod_CFOP.text = inv_line.cfop_id.code + prod_CFOP.text = inv_line.cfop_ids[0].code prod_uCom = SubElement(det_prod, 'uCom') prod_uCom.text = inv_line.uos_id.name @@ -1639,40 +1645,41 @@ def nfe_export_xml(self, cr, uid, ids, context=False): xml_string = ElementTree.tostring(nfeProc, 'utf-8') return xml_string - def _fiscal_position_map(self, cr, uid, ids, partner_address_id, partner_id, company_id, fiscal_operation_category_id): + def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id): - result = {} - result['fiscal_operation_id'] = False - result['cfop_id'] = False - result['fiscal_document_id'] = False + result = {'fiscal_operation_id': False, 'fiscal_document_id': False, 'document_serie_id': False} - rule = self.pool.get('account.fiscal.position.rule') - rule_result = rule.fiscal_position_map_invoice(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id) + obj_rule = self.pool.get('account.fiscal.position.rule') + fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice','=',True)}) - result.update(rule_result) - - my_fiscal_operation_id = result['fiscal_operation_id'] or False + result.update(fiscal_result) - if not my_fiscal_operation_id == False: - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, my_fiscal_operation_id) - result['cfop_id'] = obj_foperation.cfop_id.id - result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - - for inv in self.browse(cr,uid,ids): + if result.get('fiscal_operation_id', False): + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['fiscal_operation_id']) + result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + + obj_company = self.pool.get('res.company').browse(cr, uid, company_id) + document_serie_id = [doc_serie for doc_serie in obj_company.document_serie_product_ids if doc_serie.fiscal_document_id.id == obj_foperation.fiscal_document_id.id and doc_serie.active] + + if not document_serie_id: + raise osv.except_osv(_('Nenhuma série de documento fiscal !'),_("Empresa não tem uma série de documento fiscal cadastrada: '%s', você deve informar uma série no cadastro de empresas") % (obj_company.name,)) + else: + result['document_serie_id'] = document_serie_id[0].id + + for inv in self.browse(cr,uid,ids): for line in inv.invoice_line: line.cfop_id = obj_foperation.cfop_id.id return result - def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, fiscal_operation_category_id=False): result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) - my_address_invoice_id = result['value']['address_invoice_id'] or False + partner_invoice_id = result['value'].get('address_invoice_id', False) - fiscal_data = self._fiscal_position_map(cr, uid, ids, my_address_invoice_id, partner_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) @@ -1681,9 +1688,7 @@ def onchange_partner_id(self, cr, uid, ids, type, partner_id,\ def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id, fiscal_operation_category_id=False): result = super(account_invoice, self).onchange_company_id(cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id) - - - fiscal_data = self._fiscal_position_map(cr, uid, ids, address_invoice_id, partner_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) @@ -1693,7 +1698,7 @@ def onchange_address_invoice_id(self, cr, uid, ids, company_id, partner_id, addr result = super(account_invoice, self).onchange_address_invoice_id(cr,uid,ids,company_id,partner_id,address_invoice_id) - fiscal_data = self._fiscal_position_map(cr, uid, ids, address_invoice_id, partner_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) @@ -1703,7 +1708,7 @@ def onchange_fiscal_operation_category_id(self, cr, uid, ids, partner_address_id result = {'value': {} } - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_address_id, partner_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_address_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) @@ -2082,18 +2087,45 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): 'cofins_cst': fields.function(_amount_line, method=True, string='Valor COFINS', type="char", size=2, store=True, multi='all'), } - - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, cfop_id=False): - result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context) + def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id): + + result = {'fiscal_operation_id': False, 'cfop_id': False} + + obj_rule = self.pool.get('account.fiscal.position.rule') + fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice','=',True)}) + + result.update(fiscal_result) + + if result.get('fiscal_operation_id', False): + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['fiscal_operation_id']) + result['cfop_id'] = obj_foperation.cfop_id.id + + return result + + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): + + result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context, company_id) - if not cfop_id: + if not fiscal_operation_category_id: return result - result['value']['cfop_id'] = cfop_id - result['value']['fiscal_operation_category_id'] = cfop_id - result['value']['fiscal_operation_id'] = cfop_id + default_product_category = self.pool.get('l10n_br_account.product.operation.category').search(cr, uid, [('product_id','=', product),('fiscal_operation_category_source_id','=',fiscal_operation_category_id)]) + if not default_product_category: + + result['value']['fiscal_operation_category_id'] = fiscal_operation_category_id + + if fiscal_operation_id: + result['value']['fiscal_operation_id'] = fiscal_operation_id + result['value']['cfop_id'] = self.pool.get('l10n_br_account.fiscal.operation').read(cr, uid, [fiscal_operation_id], ['cfop_id'])[0]['cfop_id'] + + return result + + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) + + result['value'].update(fiscal_data) + return result account_invoice_line() diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 2378eaa17ec0..6be03117d815 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -41,7 +41,7 @@ l10n_br_account.invoice.form2 account.invoice - 15 + 15 @@ -54,12 +54,12 @@ l10n_br_account.invoice.form3 account.invoice - - 15 + + 15 - + @@ -138,9 +138,10 @@ - - - + + + + @@ -231,9 +232,10 @@ + + - @@ -336,95 +338,106 @@ - - - l10n_br_account.invoice.supplier.form9 - account.invoice - - - - - - - - - l10n_br_account.invoice.line.form account.invoice.line - + - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
- + l10n_br_account.invoice.line.form1 account.invoice.line - + + 26 - - + + + + + - + l10n_br_account.invoice.line.form2 account.invoice.line + 26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -432,6 +445,7 @@ l10n_br_account.invoice.line.tree1 account.invoice.line + 26 From be563f2a0c9feb4847e2b4a3a9c54673049ea146 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 11 Nov 2011 03:45:33 -0200 Subject: [PATCH 0111/1549] =?UTF-8?q?l10n=5Fbr=5Fpurchase,=20l10n=5Fbr=5Fs?= =?UTF-8?q?tock:=20Concertada=20fun=C3=A7=C3=A3o=20de=20regras=20de=20posi?= =?UTF-8?q?=C3=A7=C3=B5es=20fiscais,=20l10n=5Fbr=5Faccount,=20Inicio=20de?= =?UTF-8?q?=20cria=C3=A7=C3=A3o=20de=20dados=20de=20demostra=C3=A7=C3=A3o?= =?UTF-8?q?=20e=20migra=C3=A7=C3=A3o=20da=20rotina=20de=20importa=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20NFe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_demo.xml | 4 ++-- l10n_br_account/wizard/l10n_br_account_nfe_export.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/l10n_br_account/l10n_br_account_demo.xml b/l10n_br_account/l10n_br_account_demo.xml index ecfb96fc1371..adeeb7b91abc 100644 --- a/l10n_br_account/l10n_br_account_demo.xml +++ b/l10n_br_account/l10n_br_account_demo.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index d015a15213ad..924baaed94ae 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -45,10 +45,10 @@ class l10n_br_account_nfe_export(osv.osv_memory): def nfe_export(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] - + print data inv_obj = self.pool.get('account.invoice') - inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id']),('own_invoice','=',True)]) - + inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id'][0]),('own_invoice','=',True)]) + if data['file_type'] == 'xml': file = inv_obj.nfe_export_xml(cr, uid, inv_ids) else: From bc0e24bba78e81f0d9c41070f37566d02a590909 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 14 Nov 2011 15:46:47 -0200 Subject: [PATCH 0112/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20alterada=20a?= =?UTF-8?q?=20vis=C3=A3o=20dos=20dados=20adicionais=20da=20nota=20fiscal?= =?UTF-8?q?=20de=20entrada=20e=20saida,=20resolvido=20m=C3=A9todos=20oncha?= =?UTF-8?q?nge=20da=20localiza=C3=A7=C3=A3o,=20l10n=5Fbr=5Fdelivery:=20cri?= =?UTF-8?q?ado=20menu=20para=20veiculos,=20otimizada=20a=20vis=C3=A3o=20de?= =?UTF-8?q?=20veiculos,=20l10n=5Fbrs:=20Adicionada=20a=20pasta=20test=20do?= =?UTF-8?q?s=20modulos=20da=20localiza=C3=A7=C3=A3o=20para=20implementa?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20testes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 77 ++++++++++++++----- l10n_br_account/account_invoice_view.xml | 68 +++++++++------- .../wizard/l10n_br_account_nfe_export.py | 2 +- 3 files changed, 100 insertions(+), 47 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index c9bf98e7c344..9026d98b2e49 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -1650,7 +1650,7 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com result = {'fiscal_operation_id': False, 'fiscal_document_id': False, 'document_serie_id': False} obj_rule = self.pool.get('account.fiscal.position.rule') - fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice','=',True)}) + fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice','=',True)}) result.update(fiscal_result) @@ -1665,10 +1665,10 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com raise osv.except_osv(_('Nenhuma série de documento fiscal !'),_("Empresa não tem uma série de documento fiscal cadastrada: '%s', você deve informar uma série no cadastro de empresas") % (obj_company.name,)) else: result['document_serie_id'] = document_serie_id[0].id - + for inv in self.browse(cr,uid,ids): for line in inv.invoice_line: - line.cfop_id = obj_foperation.cfop_id.id + line.cfop_id = obj_foperation.cfop_id.id return result @@ -1712,18 +1712,46 @@ def onchange_fiscal_operation_category_id(self, cr, uid, ids, partner_address_id result['value'].update(fiscal_data) - return result - - def onchange_cfop_id(self, cr, uid, ids, cfop_id): + return result - if not cfop_id: - return False - - for inv in self.browse(cr, uid, ids): - for inv_line in inv.invoice_line: - self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv.fiscal_operation_id.cfop_id.id}) - - return {'value': {'cfop_id': cfop_id}} + def onchange_fiscal_operation_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): + + result = {'value': {} } + + if not company_id or not fiscal_operation_category_id: + return result + + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_address_id, company_id, fiscal_operation_category_id) + result['value'].update(fiscal_data) + + if fiscal_operation_id: + obj_fiscal_position = self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_operation_id) + if not fiscal_operation_id == obj_fiscal_position.fiscal_operation_id.id: + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, fiscal_operation_id) + else: + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['value']['fiscal_operation_id']) + result['value']['fiscal_position'] = False + result['fiscal_document_id'] = False + result['document_serie_id'] = False + del result['value']['fiscal_operation_id'] + + for inv in self.browse(cr,uid,ids): + for line in inv.invoice_line: + line.cfop_id = obj_foperation.cfop_id.id + + return result + + #REMOVE + #def onchange_cfop_id(self, cr, uid, ids, cfop_id): + # + # if not cfop_id: + # return False + # + # for inv in self.browse(cr, uid, ids): + # for inv_line in inv.invoice_line: + # self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv.fiscal_operation_id.cfop_id.id}) + # + # return {'value': {'cfop_id': cfop_id}} account_invoice() @@ -2103,6 +2131,18 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com return result + #def onchange_fiscal_operation_id(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, company_id=False, fiscal_operation_id=False): + # + # result = {'value': {'cfop_id': False}} + # print context + # + # if not fiscal_operation_id: + # return result + # + # result['value']['cfop_id'] = self.pool.get('l10n_br_account.fiscal.operation').read(cr, uid, [fiscal_operation_id], ['cfop_id'])[0]['cfop_id'] + # + # return result + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context, company_id) @@ -2116,21 +2156,20 @@ def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='ou result['value']['fiscal_operation_category_id'] = fiscal_operation_category_id - if fiscal_operation_id: - result['value']['fiscal_operation_id'] = fiscal_operation_id - result['value']['cfop_id'] = self.pool.get('l10n_br_account.fiscal.operation').read(cr, uid, [fiscal_operation_id], ['cfop_id'])[0]['cfop_id'] + if fiscal_operation_id: + result['value']['fiscal_operation_id'] = fiscal_operation_id + result['value']['cfop_id'] = self.pool.get('l10n_br_account.fiscal.operation').read(cr, uid, [fiscal_operation_id], ['cfop_id'])[0]['cfop_id'] return result fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) - + return result account_invoice_line() - class account_invoice_tax(osv.osv): _inherit = "account.invoice.tax" _description = "Invoice Tax" diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 6be03117d815..0e16f04427dd 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -45,7 +45,7 @@ - + @@ -138,18 +138,24 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
@@ -230,18 +236,26 @@ account.invoice - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -263,7 +277,7 @@ - + @@ -420,7 +434,7 @@ 26 - + diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index 924baaed94ae..68e76fcfe5e4 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -45,7 +45,7 @@ class l10n_br_account_nfe_export(osv.osv_memory): def nfe_export(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] - print data + inv_obj = self.pool.get('account.invoice') inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id'][0]),('own_invoice','=',True)]) From 04f55ede071c33a33da961d8268202baddf32208 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 22 Nov 2011 19:48:01 -0200 Subject: [PATCH 0113/1549] =?UTF-8?q?l10n=5Fbr=5Fdata=5Faccount:=20incluid?= =?UTF-8?q?o=20dados=20de=20demostra=C3=A7=C3=A3o,=20l10n=5Fbr=5Faccount:?= =?UTF-8?q?=20migrado=20os=20wizards=20de=20modelos=20cont=C3=A1beis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 13 ++- l10n_br_account/account.py | 26 ++++++ .../account_fiscal_position_rule.py | 93 +++++++++++++------ .../account_fiscal_position_rule_view.xml | 13 ++- l10n_br_account/partner.py | 8 ++ 5 files changed, 118 insertions(+), 35 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 84a9af695a24..826e969a2830 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -26,14 +26,13 @@ 'website' : 'http://openerpbrasil.org', 'version' : '0.6', 'depends' : [ - 'l10n_br', - 'l10n_br_base', - 'account_fiscal_position_rule', - 'account_product_fiscal_classification' - ], + 'l10n_br', + 'l10n_br_base', + 'account_fiscal_position_rule', + 'account_product_fiscal_classification' + ], 'init_xml': [ -# 'data/l10n_br_account.cst.csv', - ], + ], 'update_xml' : [ 'account_view.xml', 'account_fiscal_position_rule_view.xml', diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index ae5c29e68483..ed899f1615db 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -114,4 +114,30 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, pro account_tax() +class wizard_multi_charts_accounts(osv.osv_memory): + + _inherit = 'wizard.multi.charts.accounts' + + def execute(self, cr, uid, ids, context=None): + + super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context) + + obj_multi = self.browse(cr, uid, ids[0]) + obj_fiscal_position_template = self.pool.get('account.fiscal.position.template') + obj_fiscal_position = self.pool.get('account.fiscal.position') + + # Creating Account + chart_template_id = obj_multi.chart_template_id.id + company_id = obj_multi.company_id.id + + fp_template_ids = obj_fiscal_position_template.search(cr, uid, [('chart_template_id', '=', chart_template_id)]) + + for fp_template in obj_fiscal_position_template.browse(cr, uid, fp_template_ids, context=context): + if fp_template.fiscal_operation_id: + fp_id = obj_fiscal_position.search(cr, uid, [('name','=',fp_template.name),('company_id','=',company_id)]) + if fp_id: + obj_fiscal_position.write(cr, uid, fp_id, {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) + +wizard_multi_charts_accounts() + diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index e9993452267d..f1d8b800d40a 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -11,34 +11,37 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# from osv import osv, fields -############################################################################## -# Modelo de Regras de Posições Fiscais Personalizadas -############################################################################## class account_fiscal_position_rule_template(osv.osv): + _inherit = 'account.fiscal.position.rule.template' _columns = { 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), - 'use_picking' : fields.boolean('Use in Picking'), } account_fiscal_position_rule_template() class account_fiscal_position_rule(osv.osv): + _inherit = 'account.fiscal.position.rule' + + _columns = { + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + } def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=False, company_id=False, fiscal_operation_category_id=False, context=None): - # initiate result + #Initiate variable result result = {'fiscal_position': False, 'fiscal_operation_id': False} if partner_id == False or not partner_invoice_id or company_id == False or fiscal_operation_category_id == False: @@ -47,13 +50,13 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals obj_partner = self.pool.get("res.partner").browse(cr, uid, partner_id) obj_company = self.pool.get("res.company").browse(cr, uid, company_id) - #Case 1: Parnter Specific Fiscal Posigion + #Case 1: If Partner has Specific Fiscal Posigion if obj_partner.property_account_position.id: result['fiscal_position'] = obj_partner.property_account_position.id result['fiscal_operation_id'] = obj_partner.property_account_position.fiscal_operation_id.id return result - #Case 2: Rule based determination + #Case 2: Search fiscal position using Account Fiscal Position Rule company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] @@ -85,26 +88,62 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id return result + +account_fiscal_position_rule() - #def fiscal_position_map_purchase(self, cr, uid, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - - # result = self._fiscal_position_map(cr, uid, partner_address_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, {'use_domain': [('use_purchase','=',True)]}) - - # return result - - def fiscal_position_map_stock(self, cr, uid, partner_id=False, company_id=False, fiscal_operation_category_id=False): - - result = self._fiscal_position_map(cr, uid, partner_id, partner_id, partner_id, company_id, fiscal_operation_category_id, False, [('use_picking', '=', True)]) - - return result - - _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), - 'use_picking' : fields.boolean('Use in Picking'), - } +class wizard_account_fiscal_position_rule(osv.osv_memory): + _inherit = 'wizard.account.fiscal.position.rule' -account_fiscal_position_rule() + def action_create(self, cr, uid, ids, context=None): + + super(wizard_account_fiscal_position_rule, self).action_create(cr, uid, ids, context) + + obj_wizard = self.browse(cr,uid,ids[0]) + + obj_fiscal_position = self.pool.get('account.fiscal.position.rule') + obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule') + obj_fiscal_position_rule_template = self.pool.get('account.fiscal.position.rule.template') + + company_id = obj_wizard.company_id.id + + pfr_ids = obj_fiscal_position_rule_template.search(cr, uid, []) + + for fpr_template in obj_fiscal_position_rule_template.browse(cr, uid, pfr_ids): + + from_country = fpr_template.from_country.id or False + from_state = fpr_template.from_state.id or False + to_country = fpr_template.to_country.id or False + to_state = fpr_template.to_state.id or False + partner_fiscal_type_id = fpr_template.partner_fiscal_type_id.id or False + fiscal_operation_category_id = fpr_template.fiscal_operation_category_id.id or False + + + fiscal_position_id = False + fp_id = obj_fiscal_position.search(cr, uid, [('name','=',fpr_template.fiscal_position_id.name),('company_id','=',company_id)]) + + if fp_id: + fiscal_position_id = fp_id[0] + + fpr_id = obj_fiscal_position_rule.search(cr, uid, [('name','=',fpr_template.name), + ('company_id','=',company_id), + ('description','=',fpr_template.description), + ('from_country','=',from_country), + ('from_state','=',from_state), + ('to_country','=',to_country), + ('to_state','=',to_state), + ('use_sale','=',fpr_template.use_sale), + ('use_invoice','=',fpr_template.use_invoice), + ('use_purchase','=',fpr_template.use_purchase), + ('use_picking','=',fpr_template.use_picking), + ('fiscal_position_id','=',fiscal_position_id), + ]) + + if fpr_id: + obj_fiscal_position_rule.write(cr, uid, fpr_id, {'partner_fiscal_type_id': fp_template.partner_fiscal_type_id.id, 'fiscal_operation_category_id': fp_template.fiscal_operation_category_id.id}) + + return {} + +wizard_account_fiscal_position_rule() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index 551f034ab3b1..1a91d4bf6f58 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -8,7 +8,6 @@ - @@ -22,6 +21,18 @@ + + + + + + + + l10n_br_account.fiscal.position.rule.template.form + account.fiscal.position.rule.template + + + diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 48ceef32fe2f..04b44eca43e8 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -32,6 +32,14 @@ class res_partner(osv.osv): ############################################################################## # Posição Fiscal Personalizada ############################################################################## +class account_fiscal_position_template(osv.osv): + _inherit = 'account.fiscal.position.template' + _columns = { + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), + } + +account_fiscal_position_template() + class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = { From 1f6c5d781c6973d6d94139a064d25f2b0c175063 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 22 Nov 2011 20:53:38 -0200 Subject: [PATCH 0114/1549] =?UTF-8?q?l10n=5Fbr=5Faccounts=20e=20l10n=5Fbr?= =?UTF-8?q?=5Fbase:=20atualiza=C3=A7=C3=A3o=20do=20estilo=20do=20c=C3=B3di?= =?UTF-8?q?go=20e=20coment=C3=A1rio=20de=20licenciamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__init__.py | 4 +- l10n_br_account/__openerp__.py | 4 +- l10n_br_account/account.py | 9 +- l10n_br_account/account_invoice.py | 9 +- l10n_br_account/l10n_br_account.py | 131 +++++++++--------- l10n_br_account/partner.py | 21 +-- l10n_br_account/product.py | 19 +-- l10n_br_account/res_company.py | 45 +++--- l10n_br_account/wizard/__init__.py | 6 +- .../wizard/l10n_br_account_nfe_export.py | 8 +- .../wizard/l10n_br_account_nfe_reexport.py | 8 +- 11 files changed, 137 insertions(+), 127 deletions(-) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 77c0624e7af2..aee3fcb6f918 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -11,9 +11,9 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 826e969a2830..77b12e82e96a 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -11,9 +11,9 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index ed899f1615db..255f488fbd8b 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -11,9 +11,9 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# @@ -37,7 +37,7 @@ class account_journal(osv.osv): _columns = { 'revenue_expense' : fields.boolean('Gera Financeiro'), } - + account_journal() class account_tax(osv.osv): @@ -126,7 +126,6 @@ def execute(self, cr, uid, ids, context=None): obj_fiscal_position_template = self.pool.get('account.fiscal.position.template') obj_fiscal_position = self.pool.get('account.fiscal.position') - # Creating Account chart_template_id = obj_multi.chart_template_id.id company_id = obj_multi.company_id.id @@ -140,4 +139,4 @@ def execute(self, cr, uid, ids, context=None): wizard_multi_charts_accounts() - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 9026d98b2e49..90f04b4e8dc4 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -11,9 +11,9 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# @@ -32,11 +32,8 @@ from lxml.etree import Element, SubElement, Comment, tostring from datetime import datetime - -############################################################################## -# Fatura (Nota Fiscal) Personalizado -############################################################################## class account_invoice(osv.osv): + _inherit = 'account.invoice' def _amount_all(self, cr, uid, ids, name, args, context=None): diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 97c96dd94e15..6c8c89b83641 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -11,20 +11,33 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# from osv import osv, fields -################################################################################# -# CFOP - Código Fiscal de Operações e Prestações -################################################################################# class l10n_br_account_cfop(osv.osv): - _description = 'CFOP - Código Fiscal de Operações e Prestações' + _name = 'l10n_br_account.cfop' + _description = 'CFOP - Código Fiscal de Operações e Prestações' + + _columns = { + 'code': fields.char('Código', size=4, requeried=True), + 'name': fields.char('Nome', size=256, requeried=True), + 'small_name': fields.char('Nome Reduzido', size=32, requeried=True), + 'description': fields.text('Descrição'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), + 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), + 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP Filhos'), + 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), + } + + _defaults = { + 'internal_type': 'normal', + } def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): if not args: @@ -42,29 +55,14 @@ def name_get(self, cr, uid, ids, context=None): reads = self.read(cr, uid, ids, ['name','code'], context, load='_classic_write') return [(x['id'], (x['code'] and x['code'] or '') + (x['name'] and ' - ' + x['name'] or '')) \ for x in reads] - - _columns = { - 'code': fields.char('Código', size=4, requeried=True), - 'name': fields.char('Nome', size=256, requeried=True), - 'small_name': fields.char('Nome Reduzido', size=32, requeried=True), - 'description': fields.text('Descrição'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), - 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), - 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP Filhos'), - 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal', - } l10n_br_account_cfop() -################################################################################ -# Cadastro de Tabelas de Serviços -################################################################################# class l10n_br_account_service_type(osv.osv): + _name = 'l10n_br_account.service.type' _description = 'Cadastro de Operações Fiscais de Serviço' + _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=256, required=True), @@ -75,6 +73,7 @@ class l10n_br_account_service_type(osv.osv): 'l10n_br_city_id': fields.many2one('l10n_br_base.city', 'Município'), 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), } + _defaults = { 'internal_type': 'normal', } @@ -93,96 +92,104 @@ def name_get(self, cr, uid, ids, context=None): l10n_br_account_service_type() -################################################################################# -# Tipo de Documento Fiscal -################################################################################# class l10n_br_account_fiscal_document(osv.osv): + _name = 'l10n_br_account.fiscal.document' _description = 'Tipo de Documento Fiscal' + _columns = { - 'code': fields.char('Codigo', size=8,required=True), - 'name': fields.char('Descrição', size=64), - 'nfe': fields.boolean('NFe'), - } + 'code': fields.char('Codigo', size=8,required=True), + 'name': fields.char('Descrição', size=64), + 'nfe': fields.boolean('NFe'), + } + l10n_br_account_fiscal_document() -################################################################################# -# Categorias Operações Fiscais -################################################################################# class l10n_br_account_fiscal_operation_category(osv.osv): + _name = 'l10n_br_account.fiscal.operation.category' _description = 'Categoria de Operações Fiscais' + _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), - 'journal_ids': fields.many2many('account.journal', 'l10n_br_account_fiscal_operation_category_rel', 'fiscal_operation_category_id', 'journal_id', 'Consolidated Children', domain="[('company_id','=',user.company_id)]" ), + 'journal_ids': fields.many2many('account.journal', 'l10n_br_account_fiscal_operation_category_rel', + 'fiscal_operation_category_id', 'journal_id', 'Consolidated Children', + domain="[('company_id','=',user.company_id)]" ), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), } + _defaults = { - 'type': 'output', - 'fiscal_type': 'product', - } + 'type': 'output', + 'fiscal_type': 'product', + } + l10n_br_account_fiscal_operation_category() -################################################################################# -# Operações Fiscais -################################################################################# class l10n_br_account_fiscal_operation(osv.osv): + _name = 'l10n_br_account.fiscal.operation' _description = 'Operações fiscais' + _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', domain="[('type','=',type)]", requeried=True), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', + domain="[('type','=',type)]", requeried=True), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP', requeried=True), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), - 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', 'Fiscal Operation Lines'), + 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', + 'Fiscal Operation Lines'), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), 'service_type_id': fields.many2one('l10n_br_account.service.type', 'Tipo de Serviço'), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), - 'refund_fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Op. Fiscal Devolução', domain="[('type','!=',type)]" ), + 'refund_fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Op. Fiscal Devolução', + domain="[('type','!=',type)]" ), 'note': fields.text('Observação'), 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), - 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', domain="[('fiscal_type','=',fiscal_type)]", requeried=True), + 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', + domain="[('fiscal_type','=',fiscal_type)]", requeried=True), } + _defaults = { - 'type': 'output', - 'fiscal_type': 'product', - } + 'type': 'output', + 'fiscal_type': 'product', + } l10n_br_account_fiscal_operation() -################################################################################# -# Linhas das Operações fiscais -################################################################################# class l10n_br_account_fiscal_operation_line(osv.osv): + _name = 'l10n_br_account.fiscal.operation.line' _description = 'Linhas das operações ficais' + _columns = { 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), - 'fiscal_classification_id': fields.many2one('account.product.fiscal.classification', 'NCM', domain="['|',('company_id','=',False),('company_id','=',company_id)]" ), - 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, domain="['|',('company_id','=',False),('company_id','=',company_id)]"), + 'fiscal_classification_id': fields.many2one('account.product.fiscal.classification', 'NCM', + domain="['|',('company_id','=',False),('company_id','=',company_id)]" ), + 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, + domain="['|',('company_id','=',False),('company_id','=',company_id)]"), 'cst_id': fields.many2one('l10n_br_account.cst', 'Código de Situação Tributária', requeried=True), - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', + ondelete='cascade', select=True), } l10n_br_account_fiscal_operation_line() -################################################################################# -# Serie de Documentos Fiscais -################################################################################# class l10n_br_account_document_serie(osv.osv): + _name = 'l10n_br_account.document.serie' _description = 'Serie de documentos fiscais' + _columns = { 'code': fields.char('Código', size=3, required=True), 'name': fields.char('Descrição', size=64), @@ -191,18 +198,18 @@ class l10n_br_account_document_serie(osv.osv): 'active':fields.boolean('Ativo'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), } + _defaults = { 'active': True, } l10n_br_account_document_serie() -################################################################################ -# Tipo Fiscal de Parceiros -################################################################################# class l10n_br_account_partner_fiscal_type(osv.osv): + _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' + _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64), @@ -213,12 +220,11 @@ class l10n_br_account_partner_fiscal_type(osv.osv): l10n_br_account_partner_fiscal_type() -################################################################################ -# Cadastro de CNAE -################################################################################# class l10n_br_account_cnae(osv.osv): + _name = 'l10n_br_account.cnae' _description = 'Cadastro de CNAE' + _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64, required=True), @@ -231,7 +237,6 @@ class l10n_br_account_cnae(osv.osv): 'internal_type': 'normal', } - def name_get(self, cr, uid, ids, context=None): if not ids: return [] diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 04b44eca43e8..525a325b4b87 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -11,29 +11,30 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# from osv import osv, fields -############################################################################## -# Parceiro Personalizado -############################################################################## + class res_partner(osv.osv): + _inherit = 'res.partner' + _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', domain="[('tipo_pessoa','=',tipo_pessoa)]"), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', + 'Tipo Fiscal do Parceiro', domain="[('tipo_pessoa','=',tipo_pessoa)]"), } + res_partner() -############################################################################## -# Posição Fiscal Personalizada -############################################################################## class account_fiscal_position_template(osv.osv): + _inherit = 'account.fiscal.position.template' + _columns = { 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), } @@ -41,7 +42,9 @@ class account_fiscal_position_template(osv.osv): account_fiscal_position_template() class account_fiscal_position(osv.osv): + _inherit = 'account.fiscal.position' + _columns = { 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), } diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 064e6e97fbce..451edb878c8f 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -11,25 +11,25 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# from osv import osv, fields -############################################################################## -# Produto Customizado -############################################################################## class product_template(osv.osv): _inherit = 'product.template' + _columns = { - 'fiscal_category_operation_default_ids': fields.one2many('l10n_br_account.product.operation.category', 'product_id', 'Categoria de Operação Fiscal Padrões'), + 'fiscal_category_operation_default_ids': fields.one2many('l10n_br_account.product.operation.category', + 'product_id', 'Categoria de Operação Fiscal Padrões'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), 'is_on_service_invoice': fields.boolean('On Service Invoice?', help='True if invoiced along with service'), } + _defaults = { 'fiscal_type': 'product', 'is_on_service_invoice': False, @@ -37,11 +37,10 @@ class product_template(osv.osv): product_template() -############################################################################## -# Categorias fiscais de operações padrões por produto -############################################################################## class l10n_br_account_product_fiscal_operation_category(osv.osv): + _name = 'l10n_br_account.product.operation.category' + _columns = { 'fiscal_operation_category_source_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria de Origem'), 'fiscal_operation_category_destination_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria de Destino'), @@ -49,3 +48,5 @@ class l10n_br_account_product_fiscal_operation_category(osv.osv): } l10n_br_account_product_fiscal_operation_category() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index f751e99f7b50..aec030f64ef0 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -11,37 +11,42 @@ #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# from osv import osv, fields -############################################################################## -# Empresa Personalizada -############################################################################## class res_company(osv.osv): + _inherit = "res.company" + _columns = { - 'fiscal_type': fields.selection([('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), ('3', 'Regime Normal')], 'Regime Tributário', required=True), - 'document_serie_product_ids': fields.many2many('l10n_br_account.document.serie', 'res_company_l10n_br_account_document_serie', 'company_id', 'document_serie_product_id', 'Série de Documentos Fiscais', domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','product')]"), - 'document_serie_service_id': fields.many2one('l10n_br_account.document.serie', 'Série Fiscais para Serviço', domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','service')]" ), - 'cnae_main_id': fields.many2one('l10n_br_account.cnae', 'CNAE Primário' ), - 'cnae_secondary_ids': fields.many2many('l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', 'company_id', 'cnae_id', 'CNAE Segundários'), - 'nfe_version': fields.selection([('1.00', '1.00'), ('2.00', '2.00')], 'Versão NFe', required=True), - 'nfe_source_folder': fields.char('Pasta de Origem', size=254), - 'nfe_destination_folder': fields.char('Pasta de Destino', size=254), - 'nfse_version': fields.selection([('1.00', '1.00')], 'Versão NFse', required=True), - 'nfse_source_folder': fields.char('Pasta de Origem', size=254), - 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), + 'fiscal_type': fields.selection([('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), ('3', 'Regime Normal')], 'Regime Tributário', required=True), + 'document_serie_product_ids': fields.many2many('l10n_br_account.document.serie', + 'res_company_l10n_br_account_document_serie', 'company_id', + 'document_serie_product_id', 'Série de Documentos Fiscais', + domain="[('company_id', '=', active_id),('active','=',True), ('fiscal_type','=','product')]"), + 'document_serie_service_id': fields.many2one('l10n_br_account.document.serie', 'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','service')]" ), + 'cnae_main_id': fields.many2one('l10n_br_account.cnae', 'CNAE Primário' ), + 'cnae_secondary_ids': fields.many2many('l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', + 'company_id', 'cnae_id', 'CNAE Segundários'), + 'nfe_version': fields.selection([('1.00', '1.00'), ('2.00', '2.00')], 'Versão NFe', required=True), + 'nfe_source_folder': fields.char('Pasta de Origem', size=254), + 'nfe_destination_folder': fields.char('Pasta de Destino', size=254), + 'nfse_version': fields.selection([('1.00', '1.00')], 'Versão NFse', required=True), + 'nfse_source_folder': fields.char('Pasta de Origem', size=254), + 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), } + _defaults = { - 'fiscal_type': '3', - 'nfe_version': '2.00', - 'nfse_version': '1.00', - } + 'fiscal_type': '3', + 'nfe_version': '2.00', + 'nfse_version': '1.00', + } res_company() diff --git a/l10n_br_account/wizard/__init__.py b/l10n_br_account/wizard/__init__.py index 360e9776123a..929f68acf31c 100644 --- a/l10n_br_account/wizard/__init__.py +++ b/l10n_br_account/wizard/__init__.py @@ -4,16 +4,16 @@ # Copyright (C) 2009 Renato Lima - Akretion # # # #This program is free software: you can redistribute it and/or modify # -#it under the terms of the Affero GNU General Public License as published by # +#it under the terms of the GNU Affero General Public License as published by # #the Free Software Foundation, either version 3 of the License, or # #(at your option) any later version. # # # #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index 68e76fcfe5e4..d1af0259246d 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -4,16 +4,16 @@ # Copyright (C) 2009 Renato Lima - Akretion # # # #This program is free software: you can redistribute it and/or modify # -#it under the terms of the Affero GNU General Public License as published by # +#it under the terms of the GNU Affero General Public License as published by # #the Free Software Foundation, either version 3 of the License, or # #(at your option) any later version. # # # #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# @@ -61,4 +61,4 @@ def nfe_export(self, cr, uid, ids, context=None): l10n_br_account_nfe_export() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py b/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py index 803c3f27155a..55c721d9002f 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_reexport.py @@ -4,16 +4,16 @@ # Copyright (C) 2011 Renato Lima - Akretion # # # #This program is free software: you can redistribute it and/or modify # -#it under the terms of the Affero GNU General Public License as published by # +#it under the terms of the GNU Affero General Public License as published by # #the Free Software Foundation, either version 3 of the License, or # #(at your option) any later version. # # # #This program is distributed in the hope that it will be useful, # #but WITHOUT ANY WARRANTY; without even the implied warranty of # #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU General Public License for more details. # +#GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU General Public License # +#You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# @@ -58,4 +58,4 @@ def nfe_reexport(self, cr, uid, ids, context=None): return {'type': 'ir.actions.act_window_close'} -l10n_br_account_nfe_reexport() \ No newline at end of file +l10n_br_account_nfe_reexport() From 6b7ae070d1bfe9beeadb7b201c3ba81b48a9b051 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 26 Nov 2011 02:17:49 -0200 Subject: [PATCH 0115/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20subistituida?= =?UTF-8?q?=20a=20sequencia=20interna=20do=20di=C3=A1rio=20cont=C3=A1bil?= =?UTF-8?q?=20e=20implementada=20agora=20na=20serie=20do=20documento=20fis?= =?UTF-8?q?cal,=20resolvido=20bug=20nas=20notas=20fiscais=20de=20entrada?= =?UTF-8?q?=20metodo=20onchange=20do=20campo=20opera=C3=A7=C3=A3o=20fiscal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 3 +- l10n_br_account/account_invoice.py | 36 ++++++++-------------- l10n_br_account/account_invoice_view.xml | 2 +- l10n_br_account/l10n_br_account.py | 38 ++++++++++++++++++++---- l10n_br_account/l10n_br_account_view.xml | 1 + 5 files changed, 49 insertions(+), 31 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 255f488fbd8b..6f7206c196ec 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -41,6 +41,7 @@ class account_journal(osv.osv): account_journal() class account_tax(osv.osv): + _inherit = 'account.tax' def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None): @@ -50,7 +51,7 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, pro 'total_included': 0.0, # Total with taxes 'total_tax_discount': 0.0, # Total Tax Discounts 'taxes': [] # List of taxes, see compute for the format - 'total_base': 0.0, # Total Base by tax + 'total_base': 0.0, # Total Base by tax } """ diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 90f04b4e8dc4..b9066a922295 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -380,7 +380,7 @@ def action_internal_number(self, cr, uid, ids, context=None): for obj_inv in self.browse(cr, uid, ids): if obj_inv.own_invoice: obj_sequence = self.pool.get('ir.sequence') - seq_no = obj_sequence.get_id(cr, uid, obj_inv.journal_id.internal_sequence.id, context=context) + seq_no = obj_sequence.get_id(cr, uid, obj_inv.document_serie_id.internal_sequence_id.id, context=context) self.write(cr, uid, obj_inv.id, {'internal_number': seq_no}) return True @@ -479,8 +479,8 @@ def nfe_check(self, cr, uid, ids, context=None): #if not inv.date_invoice: # strErro = 'Nota Fiscal - Data da nota fiscal\n' - if not inv.journal_id.internal_sequence: - strErro = 'Nota Fiscal - Numero da nota fiscal, o diário deve ter uma sequencia interna\n' + if not inv.document_serie_id.internal_sequence_id: + strErro = 'Nota Fiscal - Numero da nota fiscal, a série deve ter uma sequencia interna\n' #Emitente if not inv.company_id.partner_id.legal_name: @@ -1710,7 +1710,7 @@ def onchange_fiscal_operation_category_id(self, cr, uid, ids, partner_address_id result['value'].update(fiscal_data) return result - + def onchange_fiscal_operation_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): result = {'value': {} } @@ -1722,15 +1722,15 @@ def onchange_fiscal_operation_id(self, cr, uid, ids, partner_address_id=False, p result['value'].update(fiscal_data) if fiscal_operation_id: - obj_fiscal_position = self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_operation_id) - if not fiscal_operation_id == obj_fiscal_position.fiscal_operation_id.id: - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, fiscal_operation_id) - else: - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['value']['fiscal_operation_id']) + # obj_fiscal_position = self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_operation_id) + # if not fiscal_operation_id == obj_fiscal_position.fiscal_operation_id.id: + # obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, fiscal_operation_id) + #else: + obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, fiscal_operation_id) result['value']['fiscal_position'] = False - result['fiscal_document_id'] = False - result['document_serie_id'] = False - del result['value']['fiscal_operation_id'] + result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + #result['document_serie_id'] = obj_foperation.document_serie_id.id + del result['value']['fiscal_operation_id'] for inv in self.browse(cr,uid,ids): for line in inv.invoice_line: @@ -1738,18 +1738,6 @@ def onchange_fiscal_operation_id(self, cr, uid, ids, partner_address_id=False, p return result - #REMOVE - #def onchange_cfop_id(self, cr, uid, ids, cfop_id): - # - # if not cfop_id: - # return False - # - # for inv in self.browse(cr, uid, ids): - # for inv_line in inv.invoice_line: - # self.pool.get('account.invoice.line').write(cr, uid, inv_line.id, {'cfop_id': inv.fiscal_operation_id.cfop_id.id}) - # - # return {'value': {'cfop_id': cfop_id}} - account_invoice() class account_invoice_line(osv.osv): diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 0e16f04427dd..158cf040fe57 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -277,7 +277,7 @@ - + diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 6c8c89b83641..b6bb4de12ab5 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -194,14 +194,42 @@ class l10n_br_account_document_serie(osv.osv): 'code': fields.char('Código', size=3, required=True), 'name': fields.char('Descrição', size=64), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), - 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), - 'active':fields.boolean('Ativo'), - 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), + 'company_id': fields.many2one('res.company', 'Company', requeried=True), + 'active':fields.boolean('Active'), + 'fiscal_type': fields.selection([('product', 'Product'), ('service', 'Service')], 'Tipo Fiscal', requeried=True), + 'internal_sequence_id': fields.many2one('ir.sequence', 'Sequência Interna'), } _defaults = { - 'active': True, - } + 'active': True, + } + + def create_sequence(self, cr, uid, vals, context=None): + """ Create new no_gap entry sequence for every new Joural + """ + + prefix = vals['code'].upper() + + seq = { + 'name': vals['name'], + 'implementation':'no_gap', + 'padding': 1, + 'number_increment': 1 + } + + if 'company_id' in vals: + seq['company_id'] = vals['company_id'] + + return self.pool.get('ir.sequence').create(cr, uid, seq) + + def create(self, cr, uid, vals, context=None): + """ Overwrite method to before create one new ir.sequence if this field is null + """ + + if not 'internal_sequence_id' in vals or not vals['internal_sequence_id']: + vals.update({'internal_sequence_id': self.create_sequence(cr, uid, vals, context)}) + + return super(l10n_br_account_document_serie, self).create(cr, uid, vals, context) l10n_br_account_document_serie() diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index ff1f4a7c1e7a..83b4218a4f97 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -227,6 +227,7 @@ + From 676bd5b9bde012fcfbc7889d6393d729435426e0 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 28 Nov 2011 20:07:59 -0200 Subject: [PATCH 0116/1549] l10n_br_base e l10n_br_data_cep subistituido objeto l10n_br_base.cep para l10n_br_base.zip e mudado o nome do modulo l10n_br_data_cep para l10n_br_data_zip --- l10n_br_account/l10n_br_account.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index b6bb4de12ab5..18f7bfda4ade 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -197,7 +197,7 @@ class l10n_br_account_document_serie(osv.osv): 'company_id': fields.many2one('res.company', 'Company', requeried=True), 'active':fields.boolean('Active'), 'fiscal_type': fields.selection([('product', 'Product'), ('service', 'Service')], 'Tipo Fiscal', requeried=True), - 'internal_sequence_id': fields.many2one('ir.sequence', 'Sequência Interna'), + 'internal_sequence_id': fields.many2one('ir.sequence', 'Sequência Interna', requeried=True), } _defaults = { @@ -205,7 +205,7 @@ class l10n_br_account_document_serie(osv.osv): } def create_sequence(self, cr, uid, vals, context=None): - """ Create new no_gap entry sequence for every new Joural + """ Create new no_gap entry sequence for every new document serie """ prefix = vals['code'].upper() From 9716f69a876e966bdc6b65e57ada555730abfa5a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 6 Dec 2011 13:38:51 -0200 Subject: [PATCH 0117/1549] =?UTF-8?q?l10n=5Fbr=5Fdata=5Fzip:=20incluido=20?= =?UTF-8?q?o=20campo=20pa=C3=ADs=20nos=20arquivos=20csv=20de=20CEP,=20alte?= =?UTF-8?q?rado=20o=20objeto=20l10n=5Fbr=5Fbase.cep=20para=20l10n=5Fbr=5Fb?= =?UTF-8?q?ase.zip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index b9066a922295..20263d6a3978 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -18,19 +18,20 @@ ################################################################################# from lxml import etree +from lxml.etree import ElementTree +from lxml.etree import Element, SubElement, Comment, tostring import time +from datetime import datetime import netsvc +import re +import string +from unicodedata import normalize + from osv import fields, osv -import decimal_precision as dp -import pooler from tools import config from tools.translate import _ - -import re, string -from unicodedata import normalize -from lxml.etree import ElementTree -from lxml.etree import Element, SubElement, Comment, tostring -from datetime import datetime +import decimal_precision as dp +import pooler class account_invoice(osv.osv): @@ -2128,9 +2129,15 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com # # return result - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', + type='out_invoice', partner_id=False, fposition_id=False, + price_unit=False, address_invoice_id=False, currency_id=False, + context=None, company_id=False, fiscal_operation_category_id=False, + fiscal_operation_id=False): - result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context, company_id) + result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, + type, partner_id, fposition_id, price_unit, + address_invoice_id, currency_id, context, company_id) if not fiscal_operation_category_id: return result From 721a1aadd29d58a1c86ab256e657ae6eec0e2247 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 22 Dec 2011 01:23:57 -0200 Subject: [PATCH 0118/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20e=20l10n=5Fbr?= =?UTF-8?q?=5Fdata=5Faccount:=20modifica=C3=A7=C3=B5es=20para=20atender=20?= =?UTF-8?q?as=20necessidades=20de=20empresas=20com=20regime=20tribut=C3=A1?= =?UTF-8?q?rio=20simples=20nacional?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 4 +- l10n_br_account/account.account.template.csv | 4 + l10n_br_account/account.tax.code.template.csv | 2 + .../account_fiscal_position_rule.py | 51 +- .../account_fiscal_position_rule_view.xml | 17 +- l10n_br_account/l10n_br_account_data.xml | 1324 ++++++++++++++++- l10n_br_account/res_company.py | 10 +- l10n_br_account/res_company_view.xml | 6 + 8 files changed, 1410 insertions(+), 8 deletions(-) create mode 100644 l10n_br_account/account.account.template.csv create mode 100644 l10n_br_account/account.tax.code.template.csv diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 77b12e82e96a..dd1158b68fb9 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -35,10 +35,12 @@ ], 'update_xml' : [ 'account_view.xml', + 'account.account.template.csv', + 'account.tax.code.template.csv', + 'l10n_br_account_data.xml', 'account_fiscal_position_rule_view.xml', 'account_invoice_view.xml', 'account_invoice_workflow.xml', - 'l10n_br_account_data.xml', 'l10n_br_account_view.xml', 'partner_view.xml', 'product_view.xml', diff --git a/l10n_br_account/account.account.template.csv b/l10n_br_account/account.account.template.csv new file mode 100644 index 000000000000..0dba3839bbf4 --- /dev/null +++ b/l10n_br_account/account.account.template.csv @@ -0,0 +1,4 @@ +"id","code","name","parent_id:id","type","user_type:id","reconcile" +"account_template_642","2.1.04.03.0006","CSLL a Recolher","l10n_br.account_template_240","other","l10n_br.passivo","True" +"account_template_643","2.1.04.03.0007","CPP a Recolher","l10n_br.account_template_240","other","l10n_br.passivo","True" +"account_template_644","1.1.02.09.0023","CPP a Recuperar","l10n_br.account_template_36","other","l10n_br.ativo","True" diff --git a/l10n_br_account/account.tax.code.template.csv b/l10n_br_account/account.tax.code.template.csv new file mode 100644 index 000000000000..9c4bd7750357 --- /dev/null +++ b/l10n_br_account/account.tax.code.template.csv @@ -0,0 +1,2 @@ +"id","code","name","parent_id:id","sign","domain","tax_discount" +"tax_code_10","cpp","CPP","l10n_br.tax_code_chart_root","1","cpp",1 diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index f1d8b800d40a..9043b08c6689 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -17,7 +17,10 @@ #along with this program. If not, see . # ################################################################################# +import time + from osv import osv, fields +import decimal_precision as dp class account_fiscal_position_rule_template(osv.osv): @@ -26,6 +29,20 @@ class account_fiscal_position_rule_template(osv.osv): _columns = { 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'fiscal_type': fields.selection([('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal')], + 'Regime Tributário', required=True), + 'revenue_start': fields.float('Faturamento Inicial', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + 'revenue_end': fields.float('Faturamento Final', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + } + + _defaults = { + 'fiscal_type': '3', } account_fiscal_position_rule_template() @@ -35,9 +52,23 @@ class account_fiscal_position_rule(osv.osv): _inherit = 'account.fiscal.position.rule' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', requeried=True), + 'fiscal_type': fields.selection([('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal')], + 'Regime Tributário', required=True), + 'revenue_start': fields.float('Faturamento Inicial', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + 'revenue_end': fields.float('Faturamento Final', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), } + + _defaults = { + 'fiscal_type': '3', + } def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=False, company_id=False, fiscal_operation_category_id=False, context=None): @@ -72,13 +103,22 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals to_country = partner_addr_default.country_id.id to_state = partner_addr_default.state_id.id + document_date = context.get('date', time.strftime('%Y-%m-%d')) + use_domain = context.get('use_domain', ('use_sale', '=', True)) - domain = ['&',('company_id','=', company_id), ('fiscal_operation_category_id','=',fiscal_operation_category_id), use_domain, + domain = ['&',('company_id','=', company_id), + ('fiscal_operation_category_id','=',fiscal_operation_category_id), + use_domain, + ('fiscal_type', '=', obj_company.fiscal_type), '|',('from_country','=',from_country),('from_country','=',False), '|',('to_country','=',to_country),('to_country','=',False), '|',('from_state','=',from_state),('from_state','=',False), - '|',('to_state','=',to_state),('to_state','=',False),] + '|',('to_state','=',to_state),('to_state','=',False), + '|',('date_start', '=', False),('date_start', '<=', document_date), + '|',('date_end', '=', False),('date_end', '>=', document_date), + '|',('revenue_start', '=', False),('revenue_start', '<=', obj_company.annual_revenue), + '|',('revenue_end', '=', False),('revenue_end', '>=', obj_company.annual_revenue),] fsc_pos_id = self.search(cr, uid, domain) @@ -137,6 +177,9 @@ def action_create(self, cr, uid, ids, context=None): ('use_purchase','=',fpr_template.use_purchase), ('use_picking','=',fpr_template.use_picking), ('fiscal_position_id','=',fiscal_position_id), + ('fiscal_type','=',fpr_template.fiscal_type), + ('revenue_start','=',fpr_template.revenue_start), + ('revenue_end','=',fpr_template.revenue_end), ]) if fpr_id: diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index 1a91d4bf6f58..ed6d3b05cade 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -13,7 +13,6 @@ - l10n_br_account.fiscal.position.rule.tree @@ -35,7 +34,14 @@ + + + + + + + @@ -48,7 +54,14 @@ + + + + + + + @@ -63,10 +76,12 @@ + + diff --git a/l10n_br_account/l10n_br_account_data.xml b/l10n_br_account/l10n_br_account_data.xml index 95d58bd5a450..6baa8a6a6ceb 100644 --- a/l10n_br_account/l10n_br_account_data.xml +++ b/l10n_br_account/l10n_br_account_data.xml @@ -12,12 +12,1334 @@ + Não Contribuinte + Não Contribuinte + J + False + False + + + + Simples Nacional + Simples Nacional + J + False + False + + + Não Contribuinte Não Contribuinte F False False - + + + + IPI Simples Nacional 0,50% + IPI Simples Nacional 0,50% + 0.005 + + + + + + + + + + + + + ICMS Simples Nacional 1,25% + ICMS Simples Nacional 1,25% + 0.0125 + + + + + + + + + + + + + ICMS Simples Nacional 1,86% + ICMS Simples Nacional 1,86% + 0.0186 + + + + + + + + + + + + + ICMS Simples Nacional 2,33% + ICMS Simples Nacional 2,33% + 0.0233 + + + + + + + + + + + + + ICMS Simples Nacional 2,56% + ICMS Simples Nacional 2,56% + 0.0256 + + + + + + + + + + + + + ICMS Simples Nacional 2,58% + ICMS Simples Nacional 2,58% + 0.0258 + + + + + + + + + + + + + ICMS Simples Nacional 2,82% + ICMS Simples Nacional 2,82% + 0.0282 + + + + + + + + + + + + + ICMS Simples Nacional 2,84% + ICMS Simples Nacional 2,84% + 0.0284 + + + + + + + + + + + + + ICMS Simples Nacional 2,87% + ICMS Simples Nacional 2,87% + 0.0287 + + + + + + + + + + + + + ICMS Simples Nacional 3,07% + ICMS Simples Nacional 3,07% + 0.0307 + + + + + + + + + + + + + ICMS Simples Nacional 3,10% + ICMS Simples Nacional 3,10% + 0.0310 + + + + + + + + + + + + + ICMS Simples Nacional 3,38% + ICMS Simples Nacional 3,38% + 0.0338 + + + + + + + + + + + + + ICMS Simples Nacional 3,41% + ICMS Simples Nacional 3,41% + 0.0341 + + + + + + + + + + + + + ICMS Simples Nacional 3,45% + ICMS Simples Nacional 3,45% + 0.0345 + + + + + + + + + + + + + ICMS Simples Nacional 3,48% + ICMS Simples Nacional 3,48% + 0.0348 + + + + + + + + + + + + + ICMS Simples Nacional 3,51% + ICMS Simples Nacional 3,51% + 0.0351 + + + + + + + + + + + + + ICMS Simples Nacional 3,82% + ICMS Simples Nacional 3,82% + 0.0382 + + + + + + + + + + + + + ICMS Simples Nacional 3,85% + ICMS Simples Nacional 3,85% + 0.0385 + + + + + + + + + + + + + ICMS Simples Nacional 3,88% + ICMS Simples Nacional 3,88% + 0.0388 + + + + + + + + + + + + + ICMS Simples Nacional 3,91% + ICMS Simples Nacional 3,91% + 0.0391 + + + + + + + + + + + + + ICMS Simples Nacional 3,95% + ICMS Simples Nacional 3,95% + 0.0395 + + + + + + + + + + + + + PIS Simples Nacional 0,23% + PIS Simples Nacional 0,23% + 0.0023 + + + + + + + + + + + + + PIS Simples Nacional 0,25% + PIS Simples Nacional 0,25% + 0.0025 + + + + + + + + + + + + + PIS Simples Nacional 0,27% + PIS Simples Nacional 0,27% + 0.0027 + + + + + + + + + + + + + PIS Simples Nacional 0,28% + PIS Simples Nacional 0,28% + 0.0028 + + + + + + + + + + + + + PIS Simples Nacional 0,30% + PIS Simples Nacional 0,30% + 0.0028 + + + + + + + + + + + + + PIS Simples Nacional 0,33% + PIS Simples Nacional 0,33% + 0.0033 + + + + + + + + + + + + + PIS Simples Nacional 0,34% + PIS Simples Nacional 0,34% + 0.0034 + + + + + + + + + + + + + PIS Simples Nacional 0,37% + PIS Simples Nacional 0,37% + 0.0037 + + + + + + + + + + + + + PIS Simples Nacional 0,38% + PIS Simples Nacional 0,38% + 0.0038 + + + + + + + + + + + + + CSLL Simples Nacional 0,31% + CSLL Simples Nacional 0,31% + 0.0031 + + + + + + + + + + + + + CSLL Simples Nacional 0,35% + CSLL Simples Nacional 0,35% + 0.0035 + + + + + + + + + + + + + CSLL Simples Nacional 0,38% + CSLL Simples Nacional 0,38% + 0.0038 + + + + + + + + + + + + + CSLL Simples Nacional 0,39% + CSLL Simples Nacional 0,39% + 0.0039 + + + + + + + + + + + + + CSLL Simples Nacional 0,42% + CSLL Simples Nacional 0,42% + 0.0042 + + + + + + + + + + + + + CSLL Simples Nacional 0,46% + CSLL Simples Nacional 0,46% + 0.0046 + + + + + + + + + + + + + CSLL Simples Nacional 0,47% + CSLL Simples Nacional 0,47% + 0.0047 + + + + + + + + + + + + + CSLL Simples Nacional 0,48% + CSLL Simples Nacional 0,48% + 0.0048 + + + + + + + + + + + + + CSLL Simples Nacional 0,52% + CSLL Simples Nacional 0,52% + 0.0052 + + + + + + + + + + + + + CSLL Simples Nacional 0,53% + CSLL Simples Nacional 0,53% + 0.0053 + + + + + + + + + + + + + CSLL Simples Nacional 0,54% + CSLL Simples Nacional 0,54% + 0.0054 + + + + + + + + + + + + + COFINS Simples Nacional 0,86% + COFINS Simples Nacional 0,86% + 0.0086 + + + + + + + + + + + + + COFINS Simples Nacional 0,95% + COFINS Simples Nacional 0,95% + 0.0095 + + + + + + + + + + + + + COFINS Simples Nacional 1,04% + COFINS Simples Nacional 1,04% + 0.0104 + + + + + + + + + + + + + COFINS Simples Nacional 1,05% + COFINS Simples Nacional 1,05% + 0.0104 + + + + + + + + + + + + + COFINS Simples Nacional 1,15% + COFINS Simples Nacional 1,15% + 0.0115 + + + + + + + + + + + + + COFINS Simples Nacional 1,16% + COFINS Simples Nacional 1,16% + 0.0116 + + + + + + + + + + + + + COFINS Simples Nacional 1,17% + COFINS Simples Nacional 1,17% + 0.0117 + + + + + + + + + + + + + COFINS Simples Nacional 1,26% + COFINS Simples Nacional 1,26% + 0.0126 + + + + + + + + + + + + + COFINS Simples Nacional 1,38% + COFINS Simples Nacional 1,38% + 0.0138 + + + + + + + + + + + + + COFINS Simples Nacional 1,39% + COFINS Simples Nacional 1,39% + 0.0139 + + + + + + + + + + + + + COFINS Simples Nacional 1,40% + COFINS Simples Nacional 1,40% + 0.0140 + + + + + + + + + + + + + COFINS Simples Nacional 1,42% + COFINS Simples Nacional 1,42% + 0.0142 + + + + + + + + + + + + + COFINS Simples Nacional 1,43% + COFINS Simples Nacional 1,43% + 0.0143 + + + + + + + + + + + + + COFINS Simples Nacional 1,56% + COFINS Simples Nacional 1,56% + 0.0156 + + + + + + + + + + + + + COFINS Simples Nacional 1,57% + COFINS Simples Nacional 1,57% + 0.0157 + + + + + + + + + + + + + COFINS Simples Nacional 1,58% + COFINS Simples Nacional 1,58% + 0.0158 + + + + + + + + + + + + + COFINS Simples Nacional 1,60% + COFINS Simples Nacional 1,60% + 0.0160 + + + + + + + + + + + + + CPP Simples Nacional 2,75% + CPP Simples Nacional 2,75% + 0.0275 + + + + + + + + + + + + + CPP Simples Nacional 2,99% + CPP Simples Nacional 2,99% + 0.0299 + + + + + + + + + + + + + CPP Simples Nacional 3,02% + CPP Simples Nacional 3,02% + 0.0302 + + + + + + + + + + + + + CPP Simples Nacional 3,28% + CPP Simples Nacional 3,28% + 0.0328 + + + + + + + + + + + + + CPP Simples Nacional 3,30% + CPP Simples Nacional 3,30% + 0.0330 + + + + + + + + + + + + + CPP Simples Nacional 3,35% + CPP Simples Nacional 3,35% + 0.0335 + + + + + + + + + + + + + CPP Simples Nacional 3,57% + CPP Simples Nacional 3,57% + 0.0357 + + + + + + + + + + + + + CPP Simples Nacional 3,62% + CPP Simples Nacional 3,62% + 0.0362 + + + + + + + + + + + + + CPP Simples Nacional 3,94% + CPP Simples Nacional 3,94% + 0.0394 + + + + + + + + + + + + + CPP Simples Nacional 3,99% + CPP Simples Nacional 3,99% + 0.0399 + + + + + + + + + + + + + CPP Simples Nacional 4,01% + CPP Simples Nacional 4,01% + 0.0401 + + + + + + + + + + + + + CPP Simples Nacional 4,05% + CPP Simples Nacional 4,05% + 0.0405 + + + + + + + + + + + + + CPP Simples Nacional 4,08% + CPP Simples Nacional 4,08% + 0.0408 + + + + + + + + + + + + + CPP Simples Nacional 4,44% + CPP Simples Nacional 4,44% + 0.0444 + + + + + + + + + + + + + CPP Simples Nacional 4,49% + CPP Simples Nacional 4,49% + 0.0449 + + + + + + + + + + + + + CPP Simples Nacional 4,52% + CPP Simples Nacional 4,52% + 0.0452 + + + + + + + + + + + + + CPP Simples Nacional 4,56% + CPP Simples Nacional 4,56% + 0.0456 + + + + + + + + + + + + + CPP Simples Nacional 4,60% + CPP Simples Nacional 4,60% + 0.0460 + + + + + + + + + + + + + IRPJ Simples Nacional 0,27% + IRPJ Simples Nacional 0,27% + 0.0027 + + + + + + + + + + + + + IRPJ Simples Nacional 0,35% + IRPJ Simples Nacional 0,35% + 0.0035 + + + + + + + + + + + + + IRPJ Simples Nacional 0,38% + IRPJ Simples Nacional 0,38% + 0.0038 + + + + + + + + + + + + + IRPJ Simples Nacional 0,39% + IRPJ Simples Nacional 0,39% + 0.0039 + + + + + + + + + + + + + IRPJ Simples Nacional 0,42% + IRPJ Simples Nacional 0,42% + 0.0042 + + + + + + + + + + + + + IRPJ Simples Nacional 0,46% + IRPJ Simples Nacional 0,46% + 0.0046 + + + + + + + + + + + + + IRPJ Simples Nacional 0,47% + IRPJ Simples Nacional 0,47% + 0.0047 + + + + + + + + + + + + + IRPJ Simples Nacional 0,48% + IRPJ Simples Nacional 0,48% + 0.0048 + + + + + + + + + + + + + IRPJ Simples Nacional 0,52% + IRPJ Simples Nacional 0,52% + 0.0052 + + + + + + + + + + + + + IRPJ Simples Nacional 0,53% + IRPJ Simples Nacional 0,53% + 0.0053 + + + + + + + + + + + + + IRPJ Simples Nacional 0,54% + IRPJ Simples Nacional 0,54% + 0.0054 + + + + + + + + + + + diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index aec030f64ef0..54b40caa3888 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -18,13 +18,20 @@ ################################################################################# from osv import osv, fields +import decimal_precision as dp class res_company(osv.osv): _inherit = "res.company" _columns = { - 'fiscal_type': fields.selection([('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), ('3', 'Regime Normal')], 'Regime Tributário', required=True), + 'fiscal_type': fields.selection([('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal')], + 'Regime Tributário', required=True), + 'annual_revenue': fields.float('Faturamento Anual', required=True, + digits_compute=dp.get_precision('Account'), + help="Faturamento Bruto dos últimos 12 meses"), 'document_serie_product_ids': fields.many2many('l10n_br_account.document.serie', 'res_company_l10n_br_account_document_serie', 'company_id', 'document_serie_product_id', 'Série de Documentos Fiscais', @@ -46,6 +53,7 @@ class res_company(osv.osv): 'fiscal_type': '3', 'nfe_version': '2.00', 'nfse_version': '1.00', + 'annual_revenue': 0.0, } res_company() diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml index cf08a31e642a..c4b4a8385a27 100644 --- a/l10n_br_account/res_company_view.xml +++ b/l10n_br_account/res_company_view.xml @@ -17,6 +17,12 @@ + + + + + + From 9cdaa76cb177a295cdea4bed04d2a7d4d84dfbac Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 22 Dec 2011 03:04:34 -0200 Subject: [PATCH 0119/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20altera=C3=A7?= =?UTF-8?q?=C3=A3o=20na=20rotina=20de=20exporta=C3=A7=C3=A3o=20de=20NFe=20?= =?UTF-8?q?em=20TXT=20para=20suportar=20CST=20e=20CSON=20para=20empresas?= =?UTF-8?q?=20com=20regime=20tribut=C3=A1rio=20do=20Simples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 2 +- l10n_br_account/account_invoice.py | 131 +++++++++++++++++++++++---- l10n_br_account/res_company_view.xml | 4 +- 3 files changed, 117 insertions(+), 20 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index dd1158b68fb9..2d6eb72cd0ee 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -27,7 +27,7 @@ 'version' : '0.6', 'depends' : [ 'l10n_br', - 'l10n_br_base', + 'l10n_br_base', 'account_fiscal_position_rule', 'account_product_fiscal_classification' ], diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 20263d6a3978..2b94326ff4b5 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -990,6 +990,44 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrN09 = 'N09|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN09['Orig'], StrRegN09['CST'], StrRegN09['ModBC'], StrRegN09['PRedBC'], StrRegN09['VBC'], StrRegN09['PICMS'], StrRegN09['VICMS'], StrRegN09['ModBCST'], StrRegN09['PMVAST'], StrRegN09['PRedBCST'], StrRegN09['VBCST'], StrRegN09['PICMSST'], StrRegN09['VICMSST']) StrFile += StrN09 + + if inv_line.icms_cst in ('90', '900'): + StrRegN10h = { + 'Orig': inv_line.product_id.origin or '0', + 'CSOSN': inv_line.icms_cst, + 'modBC': '0', + 'vBC': str("%.2f" % 0.00), + 'pRedBC': '', + 'pICMS': str("%.2f" % 0.00), + 'vICMS': str("%.2f" % 0.00), + 'modBCST': '', + 'pMVAST': '', + 'pRedBCST': '', + 'vBCST': '', + 'pICMSST': '', + 'vICMSST': '', + 'pCredSN': str("%.2f" % 0.00), + 'vCredICMSSN': str("%.2f" % 0.00), + } + + StrN10h = 'N10h|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN10h['Orig'], + StrRegN10h['CSOSN'], + StrRegN10h['modBC'], + StrRegN10h['vBC'], + StrRegN10h['pRedBC'], + StrRegN10h['pICMS'], + StrRegN10h['vICMS'], + StrRegN10h['modBCST'], + StrRegN10h['pMVAST'], + StrRegN10h['pRedBCST'], + StrRegN10h['vBCST'], + StrRegN10h['pICMSST'], + StrRegN10h['vICMSST'], + StrRegN10h['pCredSN'], + StrRegN10h['vCredICMSSN']) + + StrFile += StrN10h + StrRegO = { 'ClEnq': '', @@ -1003,7 +1041,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrFile += StrO - if inv_line.ipi_percent > 0: + if inv_line.ipi_cst in ('50','51','52') and inv_line.ipi_percent > 0: StrRegO07 = { 'CST': inv_line.ipi_cst, 'VIPI': str("%.2f" % inv_line.ipi_value), @@ -1013,7 +1051,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrFile += StrO07 - if inv_line.ipi_type == 'percent': + if inv_line.ipi_type == 'percent' or '': StrRegO10 = { 'VBC': str("%.2f" % inv_line.ipi_base), 'PIPI': str("%.2f" % inv_line.ipi_percent), @@ -1031,8 +1069,25 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrO1 = 'O11|%s|%s|\n' % (StrRegO11['QUnid'], StrRegO11['VUnid']) StrFile += StrO1 + + if inv_line.ipi_cst in ('99'): + StrRegO07 = { + 'CST': inv_line.ipi_cst, + 'VIPI': str("%.2f" % inv_line.ipi_value), + } - else: + StrO07 = ('O07|%s|%s|\n') % (StrRegO07['CST'], StrRegO07['VIPI']) + StrFile += StrO07 + + StrRegO10 = { + 'VBC': str("%.2f" % inv_line.ipi_base), + 'PIPI': str("%.2f" % inv_line.ipi_percent), + } + + StrO10 = ('O10|%s|%s|\n') % (StrRegO10['VBC'], StrRegO10['PIPI']) + StrFile += StrO10 + + if inv_line.ipi_percent == 0 and not inv_line.ipi_cst in ('99'): StrO1 = 'O08|%s|\n' % inv_line.ipi_cst StrFile += StrO1 @@ -1040,26 +1095,50 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrFile += StrQ - if inv_line.pis_percent > 0: + + + if inv_line.pis_cst in ('01') and inv_line.pis_percent > 0: StrRegQ02 = { - 'CST': inv_line.pis_cst, - 'VBC': str("%.2f" % inv_line.pis_base), - 'PPIS': str("%.2f" % inv_line.pis_percent), - 'VPIS': str("%.2f" % inv_line.pis_value), - } + 'CST': inv_line.pis_cst, + 'VBC': str("%.2f" % inv_line.pis_base), + 'PPIS': str("%.2f" % inv_line.pis_percent), + 'VPIS': str("%.2f" % inv_line.pis_value), + } - StrQ02 = ('Q02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], StrRegQ02['VBC'], StrRegQ02['PPIS'], StrRegQ02['VPIS']) + StrQ02 = ('Q02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], + StrRegQ02['VBC'], + StrRegQ02['PPIS'], + StrRegQ02['VPIS']) - else: - StrQ02 = 'Q04|%s|\n' % inv_line.pis_cst + StrFile += StrQ02 - StrFile += StrQ02 + if inv_line.pis_cst in ('99'): + StrRegQ05 = { + 'CST': inv_line.pis_cst, + 'VPIS': str("%.2f" % inv_line.pis_value), + } + + StrQ05 = ('Q05|%s|%s|\n') % (StrRegQ05['CST'], StrRegQ05['VPIS']) + StrFile += StrQ05 + + StrRegQ07 = { + 'VBC': str("%.2f" % inv_line.pis_base), + 'PPIS': str("%.2f" % inv_line.pis_percent), + } + + StrQ07 = ('Q07|%s|%s|\n') % (StrRegQ07['VBC'], StrRegQ07['PPIS']) + StrFile += StrQ07 + + if inv_line.pis_percent == 0 and not inv_line.pis_cst in ('99'): + StrQ02 = 'Q04|%s|\n' % inv_line.pis_cst + StrFile += StrQ02 + StrQ = 'S|\n' StrFile += StrQ - if inv_line.cofins_percent > 0: + if inv_line.cofins_cst in ('01') and inv_line.cofins_percent > 0: StrRegS02 = { 'CST': inv_line.cofins_cst, 'VBC': str("%.2f" % inv_line.cofins_base), @@ -1068,12 +1147,30 @@ def nfe_export_txt(self, cr, uid, ids, context=False): } StrS02 = ('S02|%s|%s|%s|%s|\n') % (StrRegS02['CST'], StrRegS02['VBC'], StrRegS02['PCOFINS'], StrRegS02['VCOFINS']) + StrFile += StrS02 - else: - StrS02 = 'S04|%s|\n' % inv_line.cofins_cst - + if inv_line.cofins_cst in ('99'): + StrRegS05 = { + 'CST': inv_line.cofins_cst, + 'VCOFINS': str("%.2f" % inv_line.cofins_value), + } + + StrS05 = ('S05|%s|%s|\n') % (StrRegS05['CST'], StrRegS05['VCOFINS']) + StrFile += StrS05 + + StrRegS07 = { + 'VBC': str("%.2f" % inv_line.cofins_base), + 'PCOFINS': str("%.2f" % inv_line.cofins_percent), + } + + StrS07 = ('S07|%s|%s|\n') % (StrRegS07['VBC'], StrRegS07['PCOFINS']) + StrFile += StrS07 + + if inv_line.cofins_percent == 0 and not inv_line.cofins_cst in ('99'): + StrS02 = 'S04|%s|\n' % inv_line.cofins_cst StrFile += StrS02 + StrW = 'W|\n' StrFile += StrW diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml index c4b4a8385a27..8144122fd333 100644 --- a/l10n_br_account/res_company_view.xml +++ b/l10n_br_account/res_company_view.xml @@ -17,9 +17,9 @@ - + - + From f52b30b2674c9340f7b59b567456c17a597226c9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 26 Dec 2011 11:22:42 -0200 Subject: [PATCH 0120/1549] l10n_br_account: Corrigido tamanho do campo icms_cst de char(2) para char(3) na linha da nota fiscal --- l10n_br_account/account_invoice.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 2b94326ff4b5..50e72c59d42c 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -627,25 +627,25 @@ def nfe_check(self, cr, uid, ids, context=None): strErro = 'Produtos e Servicos: %s, Qtde: %s - Codigo do CFOP\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.uos_id: - strErro = 'Produtos e Servicos: %s, Qtde: %s - Unidade de medida\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - Unidade de medida\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.quantity: - strErro = 'Produtos e Servicos: %s, Qtde: %s - Quantidade\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - Quantidade\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.price_unit: - strErro = 'Produtos e Servicos: %s, Qtde: %s - Preco unitario\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - Preco unitario\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.icms_cst: - strErro = 'Produtos e Servicos: %s, Qtde: %s - CST do ICMS\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - CST do ICMS\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.ipi_cst: - strErro = 'Produtos e Servicos: %s, Qtde: %s - CST do IPI\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - CST do IPI\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.pis_cst: - strErro = 'Produtos e Servicos: %s, Qtde: %s - CST do PIS\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - CST do PIS\n' % (inv_line.product_id.name,inv_line.quantity) if not inv_line.cofins_cst: - strErro = 'Produtos e Servicos: %s, Qtde: %s - CST do COFINS\n' % (inv_line.product_id.name,inv_line.quantity) + strErro = u'Produtos e Servicos: %s, Qtde: %s - CST do COFINS\n' % (inv_line.product_id.name,inv_line.quantity) if strErro: raise osv.except_osv(_('Error !'),_("Error Validating NFE:\n '%s'") % (strErro.encode('utf-8'))) @@ -2163,7 +2163,7 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): digits_compute= dp.get_precision('Account'), store=True, multi='all'), 'icms_st_base_other': fields.function(_amount_line, method=True, string='Base ICMS ST Outras', type="float", digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_cst': fields.function(_amount_line, method=True, string='CST ICMS', type="char", size=2, + 'icms_cst': fields.function(_amount_line, method=True, string='CST ICMS', type="char", size=3, store=True, multi='all'), 'ipi_type': fields.function(_amount_line, method=True, string='Tipo do IPI', type="char", size=64, store=True, multi='all'), From 3bd6b2dd6913a89f2dda8d6e2683fabf77b532bd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 28 Dec 2011 16:44:20 -0200 Subject: [PATCH 0121/1549] =?UTF-8?q?l10n=5Fbr=5Fstock:=20inclido=20o=20mo?= =?UTF-8?q?dulo=20l10n=5Fbr=5Faccount=20na=20dependencia=20do=20modulo,=20?= =?UTF-8?q?l10n=5Fbr=5Faccount:=20incluido=20no=20wizard=20de=20exporta?= =?UTF-8?q?=C3=A7=C3=A3o=20o=20ambiente=20de=20produ=C3=A7=C3=A3o/homologa?= =?UTF-8?q?=C3=A7=C3=A3o=20da=20nfe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 14 ++++++++++---- .../wizard/l10n_br_account_nfe_export.py | 10 ++++++---- .../wizard/l10n_br_account_nfe_export_view.xml | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 50e72c59d42c..d9238be4b235 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -653,7 +653,7 @@ def nfe_check(self, cr, uid, ids, context=None): return True - def nfe_export_txt(self, cr, uid, ids, context=False): + def nfe_export_txt(self, cr, uid, ids, nfe_environment='1', context=False): StrFile = '' @@ -697,7 +697,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): 'TpImp': '1', 'TpEmis': '1', 'cDV': '', - 'tpAmb': '2', + 'tpAmb': nfe_environment, 'finNFe': '1', 'procEmi': '0', 'VerProc': '2.0.9', @@ -766,9 +766,15 @@ def nfe_export_txt(self, cr, uid, ids, context=False): StrRegC05['cPais'], StrRegC05['xPais'], StrRegC05['fone']) StrFile += StrC05 + + #Se o ambiente for de teste deve ser escrito na razão do destinatário + if nfe_environment == '2': + xNome = 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL' + else: + xNome = normalize('NFKD',unicode(inv.partner_id.legal_name or '')).encode('ASCII','ignore') StrRegE = { - 'xNome': normalize('NFKD',unicode(inv.partner_id.legal_name or '')).encode('ASCII','ignore'), + 'xNome': xNome, 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.inscr_est or ''), 'ISUF': '', 'email': inv.partner_id.email or '', @@ -1318,7 +1324,7 @@ def nfe_export_txt(self, cr, uid, ids, context=False): return unicode(StrFile.encode('utf-8'), errors='replace') - def nfe_export_xml(self, cr, uid, ids, context=False): + def nfe_export_xml(self, cr, uid, ids, nfe_environment='1', context=False): nfeProc = Element('nfeProc', {'versao': '2.00', 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index d1af0259246d..c4797ae29dfa 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -32,7 +32,8 @@ class l10n_br_account_nfe_export(osv.osv_memory): 'company_id': fields.many2one('res.company', 'Company'), 'file_type': fields.selection([('xml','XML'),('txt','TXT')], 'Tipo do Arquivo'), 'import_status_draft': fields.boolean('Importar NFs com status em rascunho'), - 'state':fields.selection([('init','init'),('done','done')], 'state', readonly=True), + 'state': fields.selection([('init','init'),('done','done')], 'state', readonly=True), + 'nfe_environment': fields.selection([('1','Produção'),('2','Homologação')], 'Ambiente'), } _defaults = { @@ -40,19 +41,20 @@ class l10n_br_account_nfe_export(osv.osv_memory): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.invoice', context=c), 'file_type': 'txt', 'import_status_draft': False, + 'nfe_environment': '1', } def nfe_export(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] - + print data['nfe_environment'] inv_obj = self.pool.get('account.invoice') inv_ids = inv_obj.search(cr, uid, [('state','=','sefaz_export'),('nfe_export_date','=',False),('company_id','=',data['company_id'][0]),('own_invoice','=',True)]) if data['file_type'] == 'xml': - file = inv_obj.nfe_export_xml(cr, uid, inv_ids) + file = inv_obj.nfe_export_xml(cr, uid, inv_ids, data['nfe_environment']) else: - file = inv_obj.nfe_export_txt(cr, uid, inv_ids) + file = inv_obj.nfe_export_txt(cr, uid, inv_ids, data['nfe_environment']) file_total = file self.write(cr, uid, ids, {'file': base64.b64encode(file_total), 'state': 'done'}, context=context) diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml index 746373d6fdc8..2620f092ec4b 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml @@ -24,6 +24,7 @@ - + l10n_br_account.invoice.tree account.invoice @@ -130,7 +130,7 @@ - + l10n_br_account.invoice.form10 account.invoice @@ -147,7 +147,6 @@ - @@ -159,6 +158,23 @@ + + + l10n_br_account.invoice.form11 + account.invoice + + + + + + + + + - + + + - - - + - + l10n_br_account.invoice.form6 account.invoice + - + l10n_br_account.invoice.form7 account.invoice - + - + - + l10n_br_account.invoice.form8 account.invoice - + - + - + l10n_br_account.invoice.form9 account.invoice - + - + @@ -134,35 +149,35 @@ l10n_br_account.invoice.form10 account.invoice - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + l10n_br_account.invoice.form11 account.invoice - + @@ -170,145 +185,153 @@ - - + - + l10n_br_account.invoice.supplier.form5 account.invoice + - + l10n_br_account.invoice.supplier.form6 account.invoice @@ -341,54 +364,51 @@ - + - + l10n_br_account.invoice.supplier.form7 account.invoice - + - + - + l10n_br_account.invoice.supplier.form8 account.invoice - + - - - - + + + + - + l10n_br_account.invoice.supplier.form9 account.invoice - + - - - - - - - - - + + + + @@ -286,7 +260,7 @@ - + @@ -304,8 +278,23 @@ account.invoice + + + + + + + + + + + + + @@ -368,17 +357,6 @@ - - l10n_br_account.invoice.supplier.form7 - account.invoice - - - - - - - - l10n_br_account.invoice.supplier.form8 account.invoice @@ -399,7 +377,7 @@ - + From 03084784ed93e9e3a3b7bbaf7af9837f40923a2e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 8 Oct 2012 00:59:36 -0300 Subject: [PATCH 0182/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20Adapta=C3=A7?= =?UTF-8?q?=C3=A3o=20para=20utiliza=C3=A7=C3=A3o=20do=20plano=20de=20conta?= =?UTF-8?q?s=20referencial=20do=20SPED,=20removido=20CST,=20l10n=5Fbr=5Fda?= =?UTF-8?q?ta=5Fzip=20removidos=20arquivos=20csv=20e=20colocado=20os=20dad?= =?UTF-8?q?os=20em=20arquivo=20.sql.=20Adicionado=20imagens=20dos=20modulo?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 59 +- l10n_br_account/account.account.template.csv | 4 - l10n_br_account/account.py | 10 + l10n_br_account/account.tax.code.template.csv | 2 - l10n_br_account/demo/account.account.csv | 1525 ++++++++++------- l10n_br_account/demo/account.tax.code.csv | 13 - .../demo/account_financial_demo.xml | 2 +- l10n_br_account/demo/account_fiscal_demo.xml | 138 +- l10n_br_account/demo/account_tax.xml | 349 ++++ l10n_br_account/demo/account_tax_code.xml | 1109 ++++++++++++ l10n_br_account/demo/base_demo.xml | 14 + l10n_br_account/demo/product_demo.xml | 87 +- l10n_br_account/l10n_br_account.py | 2 +- l10n_br_account/l10n_br_account_data.xml | 1245 ++------------ l10n_br_account/l10n_br_account_demo.xml | 302 +--- l10n_br_account/l10n_br_account_view.xml | 2 +- l10n_br_account/partner.py | 16 +- l10n_br_account/product.py | 31 +- l10n_br_account/product_view.xml | 7 +- l10n_br_account/res_company.py | 4 +- l10n_br_account/static/src/img/icon.png | Bin 0 -> 11654 bytes 21 files changed, 2748 insertions(+), 2173 deletions(-) delete mode 100644 l10n_br_account/account.account.template.csv delete mode 100644 l10n_br_account/account.tax.code.template.csv delete mode 100644 l10n_br_account/demo/account.tax.code.csv create mode 100644 l10n_br_account/demo/account_tax.xml create mode 100644 l10n_br_account/demo/account_tax_code.xml create mode 100644 l10n_br_account/static/src/img/icon.png diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 7ca57967481b..c5e7c11d3293 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -27,41 +27,42 @@ 'website' : 'http://openerpbrasil.org', 'version' : '0.6', 'depends': [ - 'l10n_br', - 'l10n_br_base', - 'product', - 'account_fiscal_position_rule', - 'account_product_fiscal_classification' - ], + 'l10n_br', + 'l10n_br_base', + 'l10n_br_product', + 'account_fiscal_position_rule', + 'account_product_fiscal_classification' + ], 'init_xml': [ ], 'update_xml' : [ - 'account_view.xml', - 'account.account.template.csv', - 'account.tax.code.template.csv', - 'l10n_br_account_data.xml', - 'l10n_br_account_sequence.xml', - 'account_fiscal_position_rule_view.xml', - 'account_invoice_view.xml', - 'account_invoice_workflow.xml', - 'l10n_br_account_view.xml', - 'partner_view.xml', - 'product_view.xml', - 'res_company_view.xml', - 'security/ir.model.access.csv', - 'security/l10n_br_account_security.xml', - 'wizard/l10n_br_account_nfe_export_view.xml', - 'wizard/nfe_export_from_invoice_view.xml', + 'account_view.xml', + 'l10n_br_account_data.xml', + 'l10n_br_account_sequence.xml', + 'account_fiscal_position_rule_view.xml', + 'account_invoice_view.xml', + 'account_invoice_workflow.xml', + 'l10n_br_account_view.xml', + 'partner_view.xml', + 'product_view.xml', + 'res_company_view.xml', + 'security/ir.model.access.csv', + 'security/l10n_br_account_security.xml', + 'wizard/l10n_br_account_nfe_export_view.xml', + 'wizard/nfe_export_from_invoice_view.xml', ], 'demo_xml': [ - 'demo/base_demo.xml', - 'demo/account.account.csv', - 'demo/account.tax.code.csv', - 'l10n_br_account_demo.xml', - 'demo/product_demo.xml', - 'demo/account_financial_demo.xml', - 'demo/account_fiscal_demo.xml', + 'l10n_br_account_demo.xml', + 'demo/account.account.csv', + 'demo/account_tax_code.xml', + 'demo/account_tax.xml', + 'demo/account_financial_demo.xml', + 'demo/account_fiscal_demo.xml', + 'demo/base_demo.xml', + 'demo/product_demo.xml', ], + 'test': [ + ], 'installable': True, 'auto_install': True, } diff --git a/l10n_br_account/account.account.template.csv b/l10n_br_account/account.account.template.csv deleted file mode 100644 index 0dba3839bbf4..000000000000 --- a/l10n_br_account/account.account.template.csv +++ /dev/null @@ -1,4 +0,0 @@ -"id","code","name","parent_id:id","type","user_type:id","reconcile" -"account_template_642","2.1.04.03.0006","CSLL a Recolher","l10n_br.account_template_240","other","l10n_br.passivo","True" -"account_template_643","2.1.04.03.0007","CPP a Recolher","l10n_br.account_template_240","other","l10n_br.passivo","True" -"account_template_644","1.1.02.09.0023","CPP a Recuperar","l10n_br.account_template_36","other","l10n_br.ativo","True" diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 539a8c1203f4..2324d45144cd 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -29,6 +29,16 @@ class account_journal(osv.osv): account_journal() +class account_tax_computation(osv.osv): + """ Implement computation method in taxes """ + _name = 'account.tax.computation' + _columns = { + 'name': fields.char('Name', size=64), + } + +account_tax_computation() + + class account_tax(osv.osv): _inherit = 'account.tax' diff --git a/l10n_br_account/account.tax.code.template.csv b/l10n_br_account/account.tax.code.template.csv deleted file mode 100644 index e92d2e8eaed6..000000000000 --- a/l10n_br_account/account.tax.code.template.csv +++ /dev/null @@ -1,2 +0,0 @@ -"id","code","name","parent_id:id","sign","domain","tax_discount" -"tax_code_10","CPP","CPP","l10n_br.tax_code_chart_root","1","cpp",1 diff --git a/l10n_br_account/demo/account.account.csv b/l10n_br_account/demo/account.account.csv index d415d236bada..090c662ca986 100644 --- a/l10n_br_account/demo/account.account.csv +++ b/l10n_br_account/demo/account.account.csv @@ -1,639 +1,886 @@ -"id","code","name","parent_id:id","type","user_type:id","reconcile","company_id:id" -"account.chart0","0","Plano de Contas Localização Brasileira",,"view","l10n_br.ativo","True","base.main_company" -"account.assets_view","1","ATIVO","account.chart0","view","l10n_br.ativo","True","base.main_company" -"account_demo_3","1.1","CIRCULANTE","account.assets_view","view","l10n_br.ativo","True","base.main_company" -"account_demo_4","1.1.01","DISPONIBILIDADES","account_demo_3","view","l10n_br.ativo","True","base.main_company" -"account_demo_5","1.1.01.01","CAIXA","account_demo_4","view","l10n_br.ativo","True","base.main_company" -"account.cash","1.1.01.01.0001","Caixa Geral","account_demo_5","other","l10n_br.ativo","True","base.main_company" -"account_demo_7","1.1.01.01.0002","Fundo Fixo","account_demo_5","other","l10n_br.ativo","True","base.main_company" -"account_demo_8","1.1.01.02","BANCOS ","account_demo_4","view","l10n_br.ativo","True","base.main_company" -"account.bnk","1.1.01.02.0001","Banco C/ Movimento","account_demo_8","other","l10n_br.ativo","True","base.main_company" -"account_demo_10","1.1.01.03","VALORES MOBILIÁRIOS-MERC.CAP.INTERNOS","account_demo_4","view","l10n_br.ativo","True","base.main_company" -"account_demo_11","1.1.01.03.0001","Aplicações Nacionais","account_demo_10","other","l10n_br.ativo","True","base.main_company" -"account_demo_12","1.1.01.04","TITULOS DE CAPITALIZAÇÃO","account_demo_4","view","l10n_br.ativo","True","base.main_company" -"account_demo_13","1.1.01.04.0001","Banco Título de Capitalização","account_demo_12","other","l10n_br.ativo","True","base.main_company" -"account_demo_14","1.1.02","CRÉDITOS","account_demo_3","view","l10n_br.ativo","True","base.main_company" -"account_demo_15","1.1.02.01","CLIENTES NACIONAIS","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account.a_recv","1.1.02.01.0001","Clientes Nacionais","account_demo_15","receivable","l10n_br.ativo","True","base.main_company" -"account_demo_17","1.1.02.02","CLIENTES NO EXTERIOR","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_18","1.1.02.02.0001","Clientes Internacionais","account_demo_17","receivable","l10n_br.ativo","True","base.main_company" -"account_demo_19","1.1.02.03","OUTROS VALORES A RECEBER","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_20","1.1.02.03.0001","Outras Contas a Receber","account_demo_19","receivable","l10n_br.ativo","True","base.main_company" -"account_demo_21","1.1.02.04","DUPLICATAS CONTA VINCULADA","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_22","1.1.02.04.0001","Banco Conta Garantida","account_demo_21","other","l10n_br.ativo","True","base.main_company" -"account_demo_23","1.1.02.05","DUPLICATAS CAUCIONADAS","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_24","1.1.02.05.0001","Banco Conta Caucionada","account_demo_23","other","l10n_br.ativo","True","base.main_company" -"account_demo_25","1.1.02.06","CHEQUES DEVOLVIDOS","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_26","1.1.02.06.0001","Cheques Devolvidos","account_demo_25","other","l10n_br.ativo","True","base.main_company" -"account_demo_27","1.1.02.07","ADIANTAMENTOS","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_28","1.1.02.07.0002","Adiantamento de Salários","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_29","1.1.02.07.0003","Adiantamento Despesa de Viagem","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_30","1.1.02.07.0004","Adiantamento de Férias","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_31","1.1.02.07.0005","Adiantamento 13º Salário","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_32","1.1.02.07.0006","Adiantamento de Pro-Labore a Diretores","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_33","1.1.02.07.0001","Adiantamento de PIS a Empregados","account_demo_27","other","l10n_br.ativo","True","base.main_company" -"account_demo_34","1.1.02.08","ADIANTAMENTO A FORNECEDORES","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_35","1.1.02.08.0001","Adiantamento a Fornecedor","account_demo_34","other","l10n_br.ativo","True","base.main_company" -"account_demo_36","1.1.02.09","IMPOSTOS E CONTRIBUIÇÕES A RECUPERAR","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_37","1.1.02.09.0001","CSLL a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_38","1.1.02.09.0002","CSLL a Compensar Lei 10.833/03","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_39","1.1.02.09.0003","COFINS a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_40","1.1.02.09.0004","COFINS a Compensar Lei 10.833/03","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_41","1.1.02.09.0008","Crédito COFINS Não-Cumulativo","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_42","1.1.02.09.0009","ICMS a Recuperar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_43","1.1.02.09.0010","ICMS a Recup. s/Ativo Imobilizado","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_44","1.1.02.09.0012","IPI a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_45","1.1.02.09.0013","IPI a Compensar Pedido Restituição","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_46","1.1.02.09.0015","IRF s/Aplicações Financeiras","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_47","1.1.02.09.0016","IRRF a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_48","1.1.02.09.0017","IRPJ a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_49","1.1.02.09.0019","PIS a Recuperar/Compensar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_50","1.1.02.09.0020","PIS a Compensar Lei 10.833/03","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_51","1.1.02.09.0022","PIS/COFINS/CSLL a Recuperar","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_52","1.1.02.09.0007","Crédito de PIS Não-Cumulativo","account_demo_36","other","l10n_br.ativo","True","base.main_company" -"account_demo_53","1.1.02.10","CRÉDITOS FISCAIS CSLL BASE CALC.NEGATIVA","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_54","1.1.02.10.0001","Base Negativa CSLL - Exerc. Anteriores","account_demo_53","other","l10n_br.ativo","True","base.main_company" -"account_demo_55","1.1.02.11","CRÉDITOS FISCAIS IRPJ-BASE CALC.NEGATIVA","account_demo_14","view","l10n_br.ativo","True","base.main_company" -"account_demo_56","1.1.02.11.0001","Base Negativa IRPJ - Exerc. Anteriores","account_demo_55","other","l10n_br.ativo","True","base.main_company" -"account_demo_57","1.1.03","ESTOQUES","account_demo_3","view","l10n_br.ativo","True","base.main_company" -"account_demo_58","1.1.03.01","ESTOQUE DE MERCADORIAS","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_59","1.1.03.01.0001","Insumos (Materiais Diretos)","account_demo_58","other","l10n_br.ativo","True","base.main_company" -"account_demo_60","1.1.03.01.0002","Material de Consumo-Almoxarifado","account_demo_58","other","l10n_br.ativo","True","base.main_company" -"account_demo_61","1.1.03.01.0003","Mercadorias para Revenda","account_demo_58","other","l10n_br.ativo","True","base.main_company" -"account_demo_62","1.1.03.01.0004","Produtos Acabados","account_demo_58","other","l10n_br.ativo","True","base.main_company" -"account_demo_63","1.1.03.01.0005","Produtos em Elaboração","account_demo_58","other","l10n_br.ativo","True","base.main_company" -"account_demo_64","1.1.03.02","(-) DEVOLUÇÕES DE COMPRAS","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_65","1.1.03.02.0001","Devoluções de Compras","account_demo_64","other","l10n_br.ativo","True","base.main_company" -"account_demo_66","1.1.03.03","TRANSFERÊNCIA DE MERCADORIAS","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_67","1.1.03.03.0001","Transferência de Mercadorias","account_demo_66","other","l10n_br.ativo","True","base.main_company" -"account_demo_68","1.1.03.04","ESTOQUE DE TERCEIROS EM NOSSO PODER","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_69","1.1.03.04.0001","Estoque de Terceiros em N/Poder","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_70","1.1.03.04.0002","Entrada P/Industrialização","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_71","1.1.03.04.0003","Entrada P/Conserto","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_72","1.1.03.04.0004","Entrada P/Demonstração","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_73","1.1.03.04.0005","Entrada P/Empréstimo","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_74","1.1.03.04.0006","Entrada em Consignação","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_75","1.1.03.04.0007","Entrada p/ Garantia","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_76","1.1.03.04.0008","Entrada p/ Locação","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_77","1.1.03.04.0009","Entrada em Comodato","account_demo_68","other","l10n_br.ativo","True","base.main_company" -"account_demo_78","1.1.03.05","NOSSO ESTOQUE EM PODER DE TERCEIROS","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_79","1.1.03.05.0001","N/Estoque em Poder de Terceiros","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_80","1.1.03.05.0002","Remessa P/Industrialização","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_81","1.1.03.05.0003","Remessa P/Conserto","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_82","1.1.03.05.0004","Remessa P/Demonstração","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_83","1.1.03.05.0005","Remessa P/Exposição","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_84","1.1.03.05.0006","Remessa P/Empréstimo","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_85","1.1.03.05.0007","Remessa em Consignação","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_86","1.1.03.05.0008","Remessa P/Locação","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_87","1.1.03.05.0009","Remessa em Garantia","account_demo_78","other","l10n_br.ativo","True","base.main_company" -"account_demo_88","1.1.03.06","(-) IMPOSTOS S/ESTOQUE DE TERCEIROS","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_89","1.1.03.06.0001","(-) ICMS s/Estoque de Terceiros","account_demo_88","other","l10n_br.ativo","True","base.main_company" -"account_demo_90","1.1.03.06.0002","(-) IPI s/Estoque de Terceiros","account_demo_88","other","l10n_br.ativo","True","base.main_company" -"account_demo_91","1.1.03.07","IMPORTAÇÕES EM ANDAMENTO","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_92","1.1.03.07.0001","D.I. nº 0000000-0 Importação","account_demo_91","other","l10n_br.ativo","True","base.main_company" -"account_demo_93","1.1.03.08","COMPRAS PARA ENTREGA FUTURA","account_demo_57","view","l10n_br.ativo","True","base.main_company" -"account_demo_94","1.1.03.08.0001","Compras p/Entrega Futura","account_demo_93","other","l10n_br.ativo","True","base.main_company" -"account_demo_95","1.1.04","DESPESAS DO EXERCÍCIO SEGUINTE","account_demo_3","view","l10n_br.ativo","True","base.main_company" -"account_demo_96","1.1.04.01","SEGUROS A APROPRIAR","account_demo_95","view","l10n_br.ativo","True","base.main_company" -"account_demo_97","1.1.04.01.0001","Seguros de Veículos","account_demo_96","other","l10n_br.ativo","True","base.main_company" -"account_demo_98","1.1.04.01.0002","Seguros Prédios/Bens/Estoques","account_demo_96","other","l10n_br.ativo","True","base.main_company" -"account_demo_99","1.1.04.01.0003","Seguros s/Lucros Cessantes","account_demo_96","other","l10n_br.ativo","True","base.main_company" -"account_demo_100","1.1.04.02","ASSINATURAS A APROPRIAR","account_demo_95","view","l10n_br.ativo","True","base.main_company" -"account_demo_101","1.1.04.02.0001","Assinaturas de Jornais/Boletins/Revistas","account_demo_100","other","l10n_br.ativo","True","base.main_company" -"account_demo_102","1.1.04.03","DESPESAS FINANCEIRAS A APROPRIAR","account_demo_95","view","l10n_br.ativo","True","base.main_company" -"account_demo_103","1.1.04.03.0001","Juros s/ Financiamentos a Apropriar","account_demo_102","other","l10n_br.ativo","True","base.main_company" -"account_demo_104","1.1.05","CONTAS RETIFICADORAS","account_demo_3","view","l10n_br.ativo","True","base.main_company" -"account_demo_105","1.1.05.01","(-) DUPLICATAS DESCONTADAS","account_demo_104","view","l10n_br.ativo","True","base.main_company" -"account_demo_106","1.1.05.01.0001","(-) Banco Conta - Duplicata Descontada","account_demo_105","other","l10n_br.ativo","True","base.main_company" -"account_demo_107","1.2","ATIVO NÃO CIRCULANTE","account.assets_view","view","l10n_br.ativo","True","base.main_company" -"account_demo_108","1.2.01","REALIZÁVEL A LONGO PRAZO","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_109","1.2.01.01","VALORES MOBILIÁRIOS-MERC.CAP.INTERNO","account_demo_108","view","l10n_br.ativo","True","base.main_company" -"account_demo_110","1.2.01.01.0001","Aplicações Nacionais","account_demo_109","other","l10n_br.ativo","True","base.main_company" -"account_demo_111","1.2.01.02","DÉBITOS DE SÓCIOS","account_demo_108","view","l10n_br.ativo","True","base.main_company" -"account_demo_112","1.2.01.02.0001","Sócio","account_demo_111","other","l10n_br.ativo","True","base.main_company" -"account_demo_113","1.2.01.03","EMPRÉSTIMOS A EMPRESAS LIGADAS","account_demo_108","view","l10n_br.ativo","True","base.main_company" -"account_demo_114","1.2.01.03.0001","Empresa Ligada","account_demo_113","other","l10n_br.ativo","True","base.main_company" -"account_demo_115","1.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_demo_108","view","l10n_br.ativo","True","base.main_company" -"account_demo_116","1.2.01.04.0001","Empréstimo de Terceiros","account_demo_115","other","l10n_br.ativo","True","base.main_company" -"account_demo_117","1.2.01.05","DEPÓSITOS JUDICIAIS","account_demo_108","view","l10n_br.ativo","True","base.main_company" -"account_demo_118","1.2.01.05.0001","Depósitos Judiciais","account_demo_117","other","l10n_br.ativo","True","base.main_company" -"account_demo_119","1.2.02","INVESTIMENTOS","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_120","1.2.02.01","PARTICIPAÇÕES SOCIETÁRIAS","account_demo_119","view","l10n_br.ativo","True","base.main_company" -"account_demo_121","1.2.02.01.0001","Participação Societárias","account_demo_120","other","l10n_br.ativo","True","base.main_company" -"account_demo_122","1.2.03","IMOBILIZADO - MATRIZ","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_123","1.2.03.01","IMOBILIZADO","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_124","1.2.03.01.0001","Máquinas e Equipamentos ","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_125","1.2.03.01.0002","Terrenos","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_126","1.2.03.01.0003","Ferramentas","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_127","1.2.03.01.0004","Modelos, Moldes e Matrizes","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_128","1.2.03.01.0005","Móveis e Utensílios","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_129","1.2.03.01.0006","Veículos","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_130","1.2.03.01.0007","Equipamentos de Informática","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_131","1.2.03.01.0008","Instalações","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_132","1.2.03.01.0009","Benfeitoria em Imóveis de Terceiros","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_133","1.2.03.01.0010","Direito de Uso Linhas Telefônicas","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_134","1.2.03.01.0011","Edifícios e Construções","account_demo_123","other","l10n_br.ativo","True","base.main_company" -"account_demo_135","1.2.03.02","CONSTRUÇÕES EM ANDAMENTO","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_136","1.2.03.02.0001","Imóvel","account_demo_135","other","l10n_br.ativo","True","base.main_company" -"account_demo_137","1.2.03.04","PARTICIPAÇÃO EM CONSÓRCIOS","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_138","1.2.03.04.0001","Consórcio","account_demo_137","other","l10n_br.ativo","True","base.main_company" -"account_demo_139","1.2.03.05","(-) DEPRECIAÇÃO ACUMULADA","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_140","1.2.03.05.0001","Deprec.de Máquinas e Equipamentos","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_141","1.2.03.05.0002","Deprec.de Modelos, Moldes e Matrizes","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_142","1.2.03.05.0003","Deprec.de Móveis e Utensílios","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_143","1.2.03.05.0004","Deprec.de Veículos","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_144","1.2.03.05.0005","Deprec.de Equip.de Informática","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_145","1.2.03.05.0006","Deprec.de Instalações","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_146","1.2.03.05.0007","Deprec.de Ferramentas","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_147","1.2.03.05.0008","Deprec.de Edificações","account_demo_139","other","l10n_br.ativo","True","base.main_company" -"account_demo_148","1.2.03.06","(-) AMORTIZAÇÃO ACUMULADA","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_149","1.2.03.06.0001","Amortiz.Benfeit.em Imóveis de Terceiros","account_demo_148","other","l10n_br.ativo","True","base.main_company" -"account_demo_150","1.2.03.06.0002","Amortiz.Direito Uso Linhas Telefônica","account_demo_148","other","l10n_br.ativo","True","base.main_company" -"account_demo_151","1.2.03.07","ICMS S/IMOBILIZADO-PARCELA NÃO CREDITADA","account_demo_122","view","l10n_br.ativo","True","base.main_company" -"account_demo_152","1.2.03.07.0001","ICMS s/ Imobilizado parc. não creditável","account_demo_151","other","l10n_br.ativo","True","base.main_company" -"account_demo_153","1.2.03.07.0002","(-) Amortização ICMS não creditado","account_demo_151","other","l10n_br.ativo","True","base.main_company" -"account_demo_154","1.2.04","IMOBILIZADO - FILIAL","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_155","1.2.04.01","IMOBILIZADO","account_demo_154","view","l10n_br.ativo","True","base.main_company" -"account_demo_156","1.2.04.01.0001","Máquinas e Equipamentos","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_157","1.2.04.01.0002","Terrenos","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_158","1.2.04.01.0003","Ferramentas","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_159","1.2.04.01.0004","Edifícios","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_160","1.2.04.01.0005","Móveis e Utensílios","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_161","1.2.04.01.0006","Veículos","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_162","1.2.04.01.0007","Equipamentos de Informática","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_163","1.2.04.01.0008","Instalações","account_demo_155","other","l10n_br.ativo","True","base.main_company" -"account_demo_164","1.2.04.02","(-) DEPRECIAÇÃO ACUMULADA - FILIAL","account_demo_154","view","l10n_br.ativo","True","base.main_company" -"account_demo_165","1.2.04.02.0001","Deprec.de Máquinas e Equipamentos","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_166","1.2.04.02.0003","Deprec.de Móveis e Utensílios","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_167","1.2.04.02.0004","Deprec.de Veículos","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_168","1.2.04.02.0005","Deprec.de Equip.de Informática","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_169","1.2.04.02.0006","Deprec.de Instalações","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_170","1.2.04.02.0007","Deprec.de Ferramentas","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_171","1.2.04.02.0008","Deprec.de Edifícios","account_demo_164","other","l10n_br.ativo","True","base.main_company" -"account_demo_172","1.2.04.03","(-) AMORTIZAÇÃO ACUMULADA - FILIAL","account_demo_154","view","l10n_br.ativo","True","base.main_company" -"account_demo_173","1.2.04.03.0001","Amortização Acumulada","account_demo_172","other","l10n_br.ativo","True","base.main_company" -"account_demo_174","1.2.05","BENS INTAGÍVEIS - MATRIZ","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_175","1.2.05.01","INTANGÍVEL","account_demo_174","view","l10n_br.ativo","True","base.main_company" -"account_demo_176","1.2.05.01.0001","Marcas e Patentes","account_demo_175","other","l10n_br.ativo","True","base.main_company" -"account_demo_177","1.2.05.01.0002","Softwares","account_demo_175","other","l10n_br.ativo","True","base.main_company" -"account_demo_178","1.2.05.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_demo_174","view","l10n_br.ativo","True","base.main_company" -"account_demo_179","1.2.05.02.0001","Amortiz.de Marcas e Patentes","account_demo_178","other","l10n_br.ativo","True","base.main_company" -"account_demo_180","1.2.05.02.0002","Amortização de Softwares","account_demo_178","other","l10n_br.ativo","True","base.main_company" -"account_demo_181","1.2.06","BENS INTANGÍVEIS - FILIAL","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_182","1.2.06.01","INTANGÍVEL","account_demo_181","view","l10n_br.ativo","True","base.main_company" -"account_demo_183","1.2.06.01.0001","Softwares","account_demo_182","other","l10n_br.ativo","True","base.main_company" -"account_demo_184","1.2.06.02","(-) AMORTIZAÇÃO DO INTANGÍVEL","account_demo_181","view","l10n_br.ativo","True","base.main_company" -"account_demo_185","1.2.06.02.0001","Amortização de Softwares","account_demo_184","other","l10n_br.ativo","True","base.main_company" -"account_demo_186","1.2.07","TRANSFERÊNCIAS DE ATIVO IMOBILIZADO","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_187","1.2.07.01","TRANSFERÊNCIA DE ATIVO IMOBILIZADO","account_demo_186","view","l10n_br.ativo","True","base.main_company" -"account_demo_188","1.2.07.01.0001","Transferência de Ativo Imobilizado","account_demo_187","other","l10n_br.ativo","True","base.main_company" -"account_demo_189","1.2.08","DIFERIDO","account_demo_107","view","l10n_br.ativo","True","base.main_company" -"account_demo_190","1.2.08.01","DESPESAS PRÉ-INDUSTRIAIS","account_demo_189","view","l10n_br.ativo","True","base.main_company" -"account_demo_191","1.2.08.01.0001","Gastos Gerais de Implantação","account_demo_190","other","l10n_br.ativo","True","base.main_company" -"account_demo_192","1.2.08.01.0002","(-) Amortização Acumulada","account_demo_190","other","l10n_br.ativo","True","base.main_company" -"account_demo_193","2","PASSIVO","account.chart0","view","l10n_br.passivo","True","base.main_company" -"account_demo_194","2.1","CIRCULANTE","account_demo_193","view","l10n_br.passivo","True","base.main_company" -"account_demo_195","2.1.01","OBRIGAÇÕES A CURTO PRAZO","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_196","2.1.01.01","FINANCIAMENTOS A CURTO PRAZO - SFN","account_demo_195","view","l10n_br.passivo","True","base.main_company" -"account_demo_197","2.1.01.01.0001","Banco Conta Empréstimo","account_demo_196","other","l10n_br.passivo","True","base.main_company" -"account_demo_198","2.1.01.02","CHEQUES A COMPENSAR","account_demo_195","view","l10n_br.passivo","True","base.main_company" -"account_demo_199","2.1.01.02.0001","Banco Conta a Compensar","account_demo_198","other","l10n_br.passivo","True","base.main_company" -"account_demo_200","2.1.01.03","LIMITE DE CRÉDITO CHEQUE ESPECIAL","account_demo_195","view","l10n_br.passivo","True","base.main_company" -"account_demo_201","2.1.01.03.0001","Banco Conta Limite","account_demo_200","other","l10n_br.passivo","True","base.main_company" -"account_demo_202","2.1.02","FORNECEDORES ","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_203","2.1.02.01","FORNECEDORES NACIONAIS","account_demo_202","view","l10n_br.passivo","True","base.main_company" -"account.a_pay","2.1.02.01.0001","Fornecedores Nacionais","account_demo_203","payable","l10n_br.passivo","True","base.main_company" -"account_demo_205","2.1.02.02","FORNECEDORES ESTRANGEIROS","account_demo_202","view","l10n_br.passivo","True","base.main_company" -"account_demo_206","2.1.02.02.0001","Fornecedores Internacionais","account_demo_205","payable","l10n_br.passivo","True","base.main_company" -"account_demo_207","2.1.03","OBRIGAÇÕES TRABALHISTAS","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_208","2.1.03.01","FOLHA DE PAGAMENTO - EMPREGADOS","account_demo_207","view","l10n_br.passivo","True","base.main_company" -"account_demo_209","2.1.03.01.0001","Salários a Pagar","account_demo_208","other","l10n_br.passivo","True","base.main_company" -"account_demo_210","2.1.03.01.0002","Férias a Pagar","account_demo_208","other","l10n_br.passivo","True","base.main_company" -"account_demo_211","2.1.03.01.0003","Rescisões a Pagar","account_demo_208","other","l10n_br.passivo","True","base.main_company" -"account_demo_212","2.1.03.01.0004","13º Salário a Pagar","account_demo_208","other","l10n_br.passivo","True","base.main_company" -"account_demo_213","2.1.03.01.0005","Comissões a Pagar","account_demo_208","other","l10n_br.passivo","True","base.main_company" -"account_demo_214","2.1.03.02","PROVISÕES DE FÉRIAS E 13º SALÁRIO","account_demo_207","view","l10n_br.passivo","True","base.main_company" -"account_demo_215","2.1.03.02.0001","Provisão de Férias","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_216","2.1.03.02.0002","Provisão de INSS s/Férias","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_217","2.1.03.02.0003","Provisão de FGTS s/Férias","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_218","2.1.03.02.0004","Provisão de 13º Salário","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_219","2.1.03.02.0005","Provisão de INSS s/13º Salário","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_220","2.1.03.02.0006","Provisão FGTS s/13º Salário","account_demo_214","other","l10n_br.passivo","True","base.main_company" -"account_demo_221","2.1.03.03","FOLHA DE PAGAMENTO - AUTÔNOMOS","account_demo_207","view","l10n_br.passivo","True","base.main_company" -"account_demo_222","2.1.03.03.0001","Rendimentos a Pagar","account_demo_221","other","l10n_br.passivo","True","base.main_company" -"account_demo_223","2.1.03.04","FOLHA DE PAGAMENTO - DIRIGENTES","account_demo_207","view","l10n_br.passivo","True","base.main_company" -"account_demo_224","2.1.03.04.0001","Pro-Labore a Pagar","account_demo_223","other","l10n_br.passivo","True","base.main_company" -"account_demo_225","2.1.03.05","ENCARGOS SOCIAIS A PAGAR","account_demo_207","view","l10n_br.passivo","True","base.main_company" -"account_demo_226","2.1.03.05.0001","INSS a Recolher","account_demo_225","other","l10n_br.passivo","True","base.main_company" -"account_demo_227","2.1.03.05.0002","FGTS a Recolher","account_demo_225","other","l10n_br.passivo","True","base.main_company" -"account_demo_228","2.1.03.05.0003","Contribuição Sindical a Pagar","account_demo_225","other","l10n_br.passivo","True","base.main_company" -"account_demo_229","2.1.03.05.0004","Previdência Privada a Recolher","account_demo_225","other","l10n_br.passivo","True","base.main_company" -"account_demo_230","2.1.04","OBRIGAÇÕES TRIBUTÁRIAS","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_231","2.1.04.01","IMPOSTOS RETIDOS A RECOLHER","account_demo_230","view","l10n_br.passivo","True","base.main_company" -"account_demo_232","2.1.04.01.0001","IRRF a Recolher - Pessoa Física","account_demo_231","other","l10n_br.passivo","True","base.main_company" -"account_demo_233","2.1.04.01.0002","IRRF a Recolher - Pessoa Jurídica","account_demo_231","other","l10n_br.passivo","True","base.main_company" -"account_demo_234","2.1.04.01.0003","ISS Retido a Recolher","account_demo_231","other","l10n_br.passivo","True","base.main_company" -"account_demo_235","2.1.04.01.0004","PIS/COFINS/CSLL Retido a Recolher","account_demo_231","other","l10n_br.passivo","True","base.main_company" -"account_demo_236","2.1.04.01.0005","INSS Retido a Recolher","account_demo_231","other","l10n_br.passivo","True","base.main_company" -"account_demo_237","2.1.04.02","IMPOSTOS E CONTRIBUIÇÃO S/ O LUCRO","account_demo_230","view","l10n_br.passivo","True","base.main_company" -"account_demo_238","2.1.04.02.0001","Provisão para o Imposto de Renda","account_demo_237","other","l10n_br.passivo","True","base.main_company" -"account_demo_239","2.1.04.02.0002","Provisão Contrib.Social s/Lucro Líquido","account_demo_237","other","l10n_br.passivo","True","base.main_company" -"account_demo_240","2.1.04.03","IMPOSTOS E CONTRIBUIÇÃO S/ RECEITAS","account_demo_230","view","l10n_br.passivo","True","base.main_company" -"account_demo_241","2.1.04.03.0001","ICMS a Recolher","account_demo_240","other","l10n_br.passivo","True","base.main_company" -"account_demo_242","2.1.04.03.0002","COFINS a Recolher","account_demo_240","other","l10n_br.passivo","True","base.main_company" -"account_demo_243","2.1.04.03.0003","PIS a Recolher","account_demo_240","other","l10n_br.passivo","True","base.main_company" -"account_demo_244","2.1.04.03.0004","IPI a Recolher","account_demo_240","other","l10n_br.passivo","True","base.main_company" -"account_demo_245","2.1.04.03.0005","ISS a Recolher","account_demo_240","other","l10n_br.passivo","True","base.main_company" -"account_demo_246","2.1.05","PARCELAMENTOS CURTO PRAZO","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_247","2.1.05.01","PARCELAMENTOS TRIBUTÁRIOS","account_demo_246","view","l10n_br.passivo","True","base.main_company" -"account_demo_248","2.1.05.01.0001","COFINS Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_249","2.1.05.01.0002","PIS Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_250","2.1.05.01.0003","IPI Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_251","2.1.05.01.0004","ICMS Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_252","2.1.05.01.0005","IRPJ Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_253","2.1.05.01.0006","CSLL Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_254","2.1.05.01.0007","INSS Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_255","2.1.05.01.0008","FGTS Parcelamento","account_demo_247","other","l10n_br.passivo","True","base.main_company" -"account_demo_256","2.1.06","OUTRAS OBRIGAÇÕES","account_demo_194","view","l10n_br.passivo","True","base.main_company" -"account_demo_257","2.1.06.01","CONTAS DE CONSUMO","account_demo_256","view","l10n_br.passivo","True","base.main_company" -"account_demo_258","2.1.06.01.0001","Consumo de Água/Esgoto","account_demo_257","other","l10n_br.passivo","True","base.main_company" -"account_demo_259","2.1.06.01.0003","Consumo de Energia Elétrica","account_demo_257","other","l10n_br.passivo","True","base.main_company" -"account_demo_260","2.1.06.01.0004","Consumo de Telefone","account_demo_257","other","l10n_br.passivo","True","base.main_company" -"account_demo_261","2.1.06.01.0005","Consumo de Internet","account_demo_257","other","l10n_br.passivo","True","base.main_company" -"account_demo_262","2.1.06.02","OUTRAS CONTAS A PAGAR","account_demo_256","view","l10n_br.passivo","True","base.main_company" -"account_demo_263","2.1.06.02.0001","Cheques a Compensar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_264","2.1.06.02.0002","Seguros a Pagar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_265","2.1.06.02.0003","Assinaturas de Periódicos a Pagar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_266","2.1.06.02.0004","Aluguel a Pagar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_267","2.1.06.02.0005","Doações a Pagar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_268","2.1.06.02.0006","Pensão Alimenticia a Pagar","account_demo_262","other","l10n_br.passivo","True","base.main_company" -"account_demo_269","2.1.06.03","ADIANTAMENTO DE CLIENTES","account_demo_256","view","l10n_br.passivo","True","base.main_company" -"account_demo_270","2.1.06.03.0001","Adiantamento Clientes","account_demo_269","other","l10n_br.passivo","True","base.main_company" -"account_demo_271","2.2","PASSIVO NÃO CIRCULANTE","account_demo_193","view","l10n_br.passivo","True","base.main_company" -"account_demo_272","2.2.01","EXIGÍVEL A LONGO PRAZO","account_demo_271","view","l10n_br.passivo","True","base.main_company" -"account_demo_273","2.2.01.01","FINANCIAMENTOS A LONGO PRAZO - SFN","account_demo_272","view","l10n_br.passivo","True","base.main_company" -"account_demo_274","2.2.01.01.0001","Banco Conta Empréstimo","account_demo_273","other","l10n_br.passivo","True","base.main_company" -"account_demo_275","2.2.01.02","EMPRÉSTIMO DE SÓCIOS","account_demo_272","view","l10n_br.passivo","True","base.main_company" -"account_demo_276","2.2.01.02.0001","Sócio","account_demo_275","other","l10n_br.passivo","True","base.main_company" -"account_demo_277","2.2.01.03","EMPRÉSTIMO DE EMPRESAS LIGADAS","account_demo_272","view","l10n_br.passivo","True","base.main_company" -"account_demo_278","2.2.01.03.0001","Empresas Ligadas","account_demo_277","other","l10n_br.passivo","True","base.main_company" -"account_demo_279","2.2.01.04","EMPRÉSTIMOS A TERCEIROS","account_demo_272","view","l10n_br.passivo","True","base.main_company" -"account_demo_280","2.2.01.04.0001","Terceiro","account_demo_279","other","l10n_br.passivo","True","base.main_company" -"account_demo_281","2.2.01.05","PARCELAMENTOS TRIBUTÁRIOS","account_demo_272","view","l10n_br.passivo","True","base.main_company" -"account_demo_282","2.2.01.05.0001","COFINS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_283","2.2.01.05.0002","PIS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_284","2.2.01.05.0003","IPI Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_285","2.2.01.05.0004","ICMS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_286","2.2.01.05.0005","ISS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_287","2.2.01.05.0006","IRPJ Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_288","2.2.01.05.0007","CSLL Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_289","2.2.01.05.0008","INSS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_290","2.2.01.05.0009","FGTS Parcelamento","account_demo_281","other","l10n_br.passivo","True","base.main_company" -"account_demo_291","2.2.03","RECEITA DIFERIDA","account_demo_271","view","l10n_br.passivo","True","base.main_company" -"account_demo_292","2.2.03.01","RECEITAS DIFERIDAS","account_demo_291","view","l10n_br.passivo","True","base.main_company" -"account_demo_293","2.2.03.01.0001","Receitas a Realizar","account_demo_292","other","l10n_br.passivo","True","base.main_company" -"account_demo_294","2.2.03.02","CUSTOS DIFERIDOS","account_demo_291","view","l10n_br.passivo","True","base.main_company" -"account_demo_295","2.2.03.02.0001","Custos Diferidos","account_demo_294","other","l10n_br.passivo","True","base.main_company" -"account_demo_296","2.2.03.03","DESPESAS DIFERIDAS","account_demo_291","view","l10n_br.passivo","True","base.main_company" -"account_demo_297","2.2.03.03.0001","Despesas Diferidas","account_demo_296","other","l10n_br.passivo","True","base.main_company" -"account_demo_298","2.4","PATRIMÔNIO LÍQUIDO","account_demo_193","view","l10n_br.passivo","True","base.main_company" -"account_demo_299","2.4.01","CAPITAL SOCIAL","account_demo_298","view","l10n_br.passivo","True","base.main_company" -"account_demo_300","2.4.01.01","CAPITAL SOCIAL REALIZADO","account_demo_299","view","l10n_br.passivo","True","base.main_company" -"account_demo_301","2.4.01.01.0001","Capital Social Realizado","account_demo_300","other","l10n_br.passivo","True","base.main_company" -"account_demo_302","2.4.01.02","(-) CAPITAL A REALIZAR","account_demo_299","view","l10n_br.passivo","True","base.main_company" -"account_demo_303","2.4.01.02.0001","Capital Social a Realizar ","account_demo_302","other","l10n_br.passivo","True","base.main_company" -"account_demo_304","2.4.02","RESERVAS","account_demo_298","view","l10n_br.passivo","True","base.main_company" -"account_demo_305","2.4.02.01","RESERVAS DE CAPITAL","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_306","2.4.02.01.0001","Reserva de Correção do Capital Realizado","account_demo_305","other","l10n_br.passivo","True","base.main_company" -"account_demo_307","2.4.02.02","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_308","2.4.02.02.0001","Ajustes de Avaliação Patrimonial","account_demo_307","other","l10n_br.passivo","True","base.main_company" -"account_demo_309","2.4.02.03","RESERVAS DE LUCROS","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_310","2.4.02.03.0001","Reserva de Lucros","account_demo_309","other","l10n_br.passivo","True","base.main_company" -"account_demo_311","2.4.02.03.0002","Reserva para Aumento de Capital","account_demo_309","other","l10n_br.passivo","True","base.main_company" -"account_demo_312","2.4.02.04","PREJUÍZOS ACUMULADOS","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_313","2.4.02.04.0002","(-) Prejuízos Acumulados","account_demo_312","other","l10n_br.passivo","True","base.main_company" -"account_demo_314","2.4.02.04.0003","Ajustes Credores Exercícios Anteriores","account_demo_312","other","l10n_br.passivo","True","base.main_company" -"account_demo_315","2.4.02.04.0001","Ajustes Devedores Exercícios Anteriores","account_demo_312","other","l10n_br.passivo","True","base.main_company" -"account_demo_316","2.4.02.05","RESULTADO DO EXERCÍCIO","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_317","2.4.02.05.0001","Lucro do Exercício","account_demo_316","other","l10n_br.passivo","True","base.main_company" -"account_demo_318","2.4.02.05.0002","Prejuízo do Exercício","account_demo_316","other","l10n_br.passivo","True","base.main_company" -"account_demo_319","2.4.02.06","(-) LUCROS DISTRIBUÍDOS","account_demo_304","view","l10n_br.passivo","True","base.main_company" -"account_demo_320","2.4.02.06.0001","Lucros Distribuídos","account_demo_319","other","l10n_br.passivo","True","base.main_company" -"account_demo_321","3","CONTAS DE RESULTADO - CUSTOS E DESPESAS","account.chart0","view","l10n_br.despesa","True","base.main_company" -"account_demo_322","3.1","CUSTOS","account_demo_321","view","l10n_br.despesa","True","base.main_company" -"account_demo_323","3.1.01","CUSTOS DAS MERCADORIAS E PRODUTOS","account_demo_322","view","l10n_br.despesa","True","base.main_company" -"account_demo_324","3.1.01.01","CUSTOS DAS MERCADORIAS VENDIDAS","account_demo_323","view","l10n_br.despesa","True","base.main_company" -"account_demo_325","3.1.01.01.0001","Custo das Mercadorias Vendidas","account_demo_324","other","l10n_br.despesa","True","base.main_company" -"account_demo_326","3.1.02","CUSTO DOS PRODUTOS VENDIDOS","account_demo_322","view","l10n_br.despesa","True","base.main_company" -"account_demo_327","3.1.02.01","CUSTO DAS MATÉRIAS PRIMAS","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_328","3.1.02.01.0001","Custo das Matérias Primas","account_demo_327","other","l10n_br.despesa","True","base.main_company" -"account_demo_329","3.1.02.02","CUSTO DOS PRODUTOS ACABADOS","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_330","3.1.02.02.0001","Custo dos Produtos Acabados","account_demo_329","other","l10n_br.despesa","True","base.main_company" -"account_demo_331","3.1.02.03","CUSTO DE MÃO-DE-OBRA DIRETA","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_332","3.1.02.03.0001","Salários","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_333","3.1.02.03.0002","Horas Extras","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_334","3.1.02.03.0003","Adicional Noturno","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_335","3.1.02.03.0004","Férias","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_336","3.1.02.03.0005","13º Salário","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_337","3.1.02.03.0006","Aviso Prévio/Indeniz.Trabalhistas","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_338","3.1.02.03.0007","Gratificações","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_339","3.1.02.03.0008","INSS Empresa","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_340","3.1.02.03.0009","FGTS ","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_341","3.1.02.03.0010","Adicional Insalubridade","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_342","3.1.02.03.0011","Vale Transporte","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_343","3.1.02.03.0012","PAT - Programa Alim. Trabalhador","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_344","3.1.02.03.0013","Assistência Médica","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_345","3.1.02.03.0014","DSR - Descanso Semanal Remunerado","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_346","3.1.02.03.0015","Salário Estagiários","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_347","3.1.02.03.0016","Previdência Privada","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_348","3.1.02.03.0017","Vestuário","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_349","3.1.02.03.0018","Assiduidade","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_350","3.1.02.03.0019","Abono Salarial","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_351","3.1.02.03.0020","Vale Refeição","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_352","3.1.02.03.0021","Farmácia","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_353","3.1.02.03.0022","Pró-Labore","account_demo_331","other","l10n_br.despesa","True","base.main_company" -"account_demo_354","3.1.02.04","GASTOS GERAIS DE FABRICAÇÃO","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_355","3.1.02.04.0001","Aluguel","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_356","3.1.02.04.0002","Água e Esgoto","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_357","3.1.02.04.0003","Energia Elétrica","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_358","3.1.02.04.0004","Fretes e Carretos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_359","3.1.02.04.0005","Material de Consumo","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_360","3.1.02.04.0006","Condução","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_361","3.1.02.04.0007","Contribuição Sindical/Assoc.de Classe","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_362","3.1.02.04.0008","Material de Limpeza","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_363","3.1.02.04.0009","Seguros","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_364","3.1.02.04.0010","Viagens e Estadias","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_365","3.1.02.04.0011","Manutenção de Equipamentos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_366","3.1.02.04.0012","Depreciações e Amortizações","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_367","3.1.02.04.0013","Combustíveis e Lubrificantes","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_368","3.1.02.04.0014","Bens de Pequeno Valor","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_369","3.1.02.04.0015","Leasing","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_370","3.1.02.04.0016","Formação de Pessoal","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_371","3.1.02.04.0017","Serviços de Terceiros - Pessoa Jurídica","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_372","3.1.02.04.0018","Locação de Equipamentos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_373","3.1.02.04.0019","Feiras/Congressos/Simpósios/Cursos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_374","3.1.02.04.0020","Telefone","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_375","3.1.02.04.0021","Comissões sobre Serviços","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_376","3.1.02.04.0022","Jornais, Revistas e Periódicos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_377","3.1.02.04.0023","Confraternizações","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_378","3.1.02.04.0024","Manutenção de Prédios","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_379","3.1.02.04.0025","Brindes e Amostras","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_380","3.1.02.04.0026","Aluguel de Equipamentos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_381","3.1.02.04.0027","Serv.de Terceiros P.Física - Autônomos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_382","3.1.02.04.0028","Manutenção de Veículos","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_383","3.1.02.04.0029","Despesas de Importação","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_384","3.1.02.04.0030","(-) Crédito PIS Não-Cumulativo","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_385","3.1.02.04.0031","(-) Crédito Cofins Não-Cumulativo","account_demo_354","other","l10n_br.despesa","True","base.main_company" -"account_demo_386","3.1.02.05","ESTOQUE INICIAL DE PROD.EM ELABORAÇÃO","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_387","3.1.02.05.0001","Estoque Inicial de Prod. em Elaboração","account_demo_386","other","l10n_br.despesa","True","base.main_company" -"account_demo_388","3.1.02.06","ESTOQUE INICIAL DE PROD.ACABADOS","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_389","3.1.02.06.0001","Estoque Inicial de Prod.Acabados","account_demo_388","other","l10n_br.despesa","True","base.main_company" -"account_demo_390","3.1.02.07","ESTOQUE FINAL DE PROD.EM ELABORAÇÃO","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_391","3.1.02.07.0001","Estoque Final de Prod.em Elaboração","account_demo_390","other","l10n_br.despesa","True","base.main_company" -"account_demo_392","3.1.02.08","ESTOQUE FINAL DE PROD.ACABADOS","account_demo_326","view","l10n_br.despesa","True","base.main_company" -"account_demo_393","3.1.02.08.0001","Estoque Final de Prod.Acabados","account_demo_392","other","l10n_br.despesa","True","base.main_company" -"account_demo_394","3.2","despesa","account_demo_321","view","l10n_br.despesa","True","base.main_company" -"account_demo_395","3.2.01","DESPESAS OPERACIONAIS COMERCIAIS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_396","3.2.01.01","DESPESAS TRABALHISTAS","account_demo_395","view","l10n_br.despesa","True","base.main_company" -"account_demo_397","3.2.01.01.0001","Salários","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_398","3.2.01.01.0002","Horas Extras","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_399","3.2.01.01.0003","Vale Transporte","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_400","3.2.01.01.0004","Férias","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_401","3.2.01.01.0005","13º Salário","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_402","3.2.01.01.0006","Aviso Prévio/Indeniz.Trabalhisas","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_403","3.2.01.01.0007","Gratificações","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_404","3.2.01.01.0008","Assiduidade","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_405","3.2.01.01.0009","Abono Salarial","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_406","3.2.01.01.0010","Adicional de Insalubridade","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_407","3.2.01.01.0011","Vale Refeição","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_408","3.2.01.01.0012","Adicional Noturno","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_409","3.2.01.01.0013","Farmácia","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_410","3.2.01.01.0014","PAT - Programa Alim. Trabalhador","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_411","3.2.01.01.0015","Pró-Labore","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_412","3.2.01.01.0016","Assistência Médica","account_demo_396","other","l10n_br.despesa","True","base.main_company" -"account_demo_413","3.2.01.02","ENCARGOS SOCIAIS","account_demo_395","view","l10n_br.despesa","True","base.main_company" -"account_demo_414","3.2.01.02.0001","Inss","account_demo_413","other","l10n_br.despesa","True","base.main_company" -"account_demo_415","3.2.01.02.0002","Fgts","account_demo_413","other","l10n_br.despesa","True","base.main_company" -"account_demo_416","3.2.01.03","DESPESAS GERAIS COMERCIAIS","account_demo_395","view","l10n_br.despesa","True","base.main_company" -"account_demo_417","3.2.01.03.0001","Comissões sobre Vendas","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_418","3.2.01.03.0002","Aluguel","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_419","3.2.01.03.0003","Agua e Esgoto","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_420","3.2.01.03.0004","Energia Elétrica","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_421","3.2.01.03.0006","Material de Expediente","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_422","3.2.01.03.0007","Condução","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_423","3.2.01.03.0008","Correios e Malotes","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_424","3.2.01.03.0009","Material de Limpeza","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_425","3.2.01.03.0010","Seguros","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_426","3.2.01.03.0011","Viagens e Estadias","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_427","3.2.01.03.0012","Manutenção e Conservação","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_428","3.2.01.03.0013","Depreciação e Amortização","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_429","3.2.01.03.0014","Propaganda e Publicidade","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_430","3.2.01.03.0015","Fretes e Carretos","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_431","3.2.01.03.0016","Combustíveis e Lubrificantes","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_432","3.2.01.03.0017","Leasing","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_433","3.2.01.03.0018","Serv.Terceiros P.Física - Autônomos","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_434","3.2.01.03.0019","Serv.Terceiros Pessoa Jurídica","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_435","3.2.01.03.0020","Feiras/Congressos/Simpósios/Cursos","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_436","3.2.01.03.0021","Telefone","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_437","3.2.01.03.0022","Despesas com Exportação","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_438","3.2.01.03.0024","Jornais, Revistas e Periódicos","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_439","3.2.01.03.0025","Refeições e Lanches","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_440","3.2.01.03.0026","Confraternizações","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_441","3.2.01.03.0027","Brindes","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_442","3.2.01.03.0028","Internet","account_demo_416","other","l10n_br.despesa","True","base.main_company" -"account_demo_443","3.2.02","DESPESAS ADMINISTRATIVAS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_444","3.2.02.01","DESPESAS TRABALHISTAS","account_demo_443","view","l10n_br.despesa","True","base.main_company" -"account_demo_445","3.2.02.01.0001","Pro-Labore","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_446","3.2.02.01.0002","Salários","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_447","3.2.02.01.0003","Horas Extras","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_448","3.2.02.01.0004","Férias","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_449","3.2.02.01.0005","13º Salário","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_450","3.2.02.01.0006","Aviso Prévio/Indeniz.Trabalhistas","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_451","3.2.02.01.0007","Gratificações","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_452","3.2.02.01.0008","Adicional Insalubridade","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_453","3.2.02.01.0009","Adicional Noturno","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_454","3.2.02.01.0010","Vale Transporte","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_455","3.2.02.01.0011","Farmácia","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_456","3.2.02.01.0012","Vale Refeição","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_457","3.2.02.01.0013","PAT - Programa Alim. Trabalhador","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_458","3.2.02.01.0014","Salário Estagiários","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_459","3.2.02.01.0015","Assiduidade","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_460","3.2.02.01.0016","Abono Salarial","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_461","3.2.02.01.0017","Previdência Privada","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_462","3.2.02.01.0018","Assistência Médica","account_demo_444","other","l10n_br.despesa","True","base.main_company" -"account_demo_463","3.2.02.02","ENCARGOS SOCIAIS","account_demo_443","view","l10n_br.despesa","True","base.main_company" -"account_demo_464","3.2.02.02.0001","Inss","account_demo_463","other","l10n_br.despesa","True","base.main_company" -"account_demo_465","3.2.02.02.0002","Fgts","account_demo_463","other","l10n_br.despesa","True","base.main_company" -"account_demo_466","3.2.02.03","DESPESAS GERAIS ADMINISTRATIVAS","account_demo_443","view","l10n_br.despesa","True","base.main_company" -"account_demo_467","3.2.02.03.0001","Aluguel","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_468","3.2.02.03.0002","Água e Esgoto","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_469","3.2.02.03.0003","Energia Elétrica","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_470","3.2.02.03.0004","Copa, Cozinha e Refeitório","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_471","3.2.02.03.0005","Material de Escritório","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_472","3.2.02.03.0006","Fretes e Carretos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_473","3.2.02.03.0007","Correios e Malotes","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_474","3.2.02.03.0008","Material de Limpeza","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_475","3.2.02.03.0009","Seguros","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_476","3.2.02.03.0010","Viagens e Estadias","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_477","3.2.02.03.0011","Manutenção e Conservação","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_478","3.2.02.03.0012","Depreciação e Amortização","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_479","3.2.02.03.0013","Sindicato Patronal/Assoc.de Classe","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_480","3.2.02.03.0014","Feiras/Congressos/Simpósios/Cursos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_481","3.2.02.03.0015","Internet","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_482","3.2.02.03.0016","Combustíveis e Lubrificantes","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_483","3.2.02.03.0017","Leasing","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_484","3.2.02.03.0018","Serviço de Terceiros - Pessoa Jurídica","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_485","3.2.02.03.0019","Telefone","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_486","3.2.02.03.0020","Legais e Judiciais","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_487","3.2.02.03.0021","Bens de Pequeno Valor","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_488","3.2.02.03.0022","Jornais Revistas e Periódicos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_489","3.2.02.03.0023","Cópias e Reproduções","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_490","3.2.02.03.0024","Confraternizações","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_491","3.2.02.03.0025","Formação de Pessoal","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_492","3.2.02.03.0026","Segurança e Vigilância","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_493","3.2.02.03.0027","Despesas com Veículos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_494","3.2.02.03.0028","Impressos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_495","3.2.02.03.0029","Refeições e Lanches","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_496","3.2.02.03.0030","Comissões","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_497","3.2.02.03.0031","Condução ","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_498","3.2.02.03.0032","Telefone Linha Fixa","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_499","3.2.02.03.0033","Telefone Móvel Celular","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_500","3.2.02.03.0034","Telefone Nextel","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_501","3.2.02.03.0035","Crea-PR","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_502","3.2.02.03.0036","Despesas de Cartório","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_503","3.2.02.03.0037","Material de Consumo","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_504","3.2.02.03.0038","Donativos e Contribuições","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_505","3.2.02.03.0039","Locação de Equipamentos","account_demo_466","other","l10n_br.despesa","True","base.main_company" -"account_demo_506","3.2.02.04","DESPESAS INDEDUTÍVEIS","account_demo_443","view","l10n_br.despesa","True","base.main_company" -"account_demo_507","3.2.02.04.0001","Autos de Infração","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_508","3.2.02.04.0002","Multas Punitívas","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_509","3.2.02.04.0003","Contribuições e Doações","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_510","3.2.02.04.0004","Impostos Federais - Exerc. Anteriores","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_511","3.2.02.04.0005","Impostos Estaduais - Exerc. Anteriores","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_512","3.2.02.04.0006","Impostos Municipais - Exerc.Anteriores","account_demo_506","other","l10n_br.despesa","True","base.main_company" -"account_demo_513","3.2.03","DESPESAS FINANCEIRAS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_514","3.2.03.01","DESPESAS COM ATUALIZAÇÕES","account_demo_513","view","l10n_br.despesa","True","base.main_company" -"account_demo_515","3.2.03.01.0001","Variação Monetária Passiva","account_demo_514","other","l10n_br.despesa","True","base.main_company" -"account_demo_516","3.2.03.01.0002","Variação Cambial Passiva","account_demo_514","other","l10n_br.despesa","True","base.main_company" -"account_demo_517","3.2.03.01.0003","Despesas de Cobrança","account_demo_514","other","l10n_br.despesa","True","base.main_company" -"account_demo_518","3.2.03.01.0004","Despesas Bancárias","account_demo_514","other","l10n_br.despesa","True","base.main_company" -"account_demo_519","3.2.03.02","JUROS E DESCONTOS","account_demo_513","view","l10n_br.despesa","True","base.main_company" -"account_demo_520","3.2.03.02.0001","Juros de Mora","account_demo_519","other","l10n_br.despesa","True","base.main_company" -"account_demo_521","3.2.03.02.0002","Descontos Concedidos","account_demo_519","other","l10n_br.despesa","True","base.main_company" -"account_demo_522","3.2.03.02.0003","Juros s/ Empréstimos e Financiamentos","account_demo_519","other","l10n_br.despesa","True","base.main_company" -"account_demo_523","3.2.03.02.0004","Juros s/ Descontos de Duplicatas","account_demo_519","other","l10n_br.despesa","True","base.main_company" -"account_demo_524","3.2.04","DESPESAS TRIBUTÁRIAS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_525","3.2.04.01","IMPOSTOS, TAXAS E CONTRIBUIÇÕES","account_demo_524","view","l10n_br.despesa","True","base.main_company" -"account_demo_526","3.2.04.01.0001","IOF","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_527","3.2.04.01.0002","CPMF","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_528","3.2.04.01.0003","IPTU","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_529","3.2.04.01.0004","IPVA","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_530","3.2.04.01.0005","IRF (Exclusivo na Fonte)","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_531","3.2.04.01.0006","Impostos e Taxas Federais","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_532","3.2.04.01.0007","Impostos e Taxas Estaduais","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_533","3.2.04.01.0008","Impostos e Taxas Municipais","account_demo_525","other","l10n_br.despesa","True","base.main_company" -"account_demo_534","3.2.04.02","MULTAS","account_demo_524","view","l10n_br.despesa","True","base.main_company" -"account_demo_535","3.2.04.02.0001","Multas Fiscais Compensatórias","account_demo_534","other","l10n_br.despesa","True","base.main_company" -"account_demo_536","3.2.04.02.0002","Multas de Mora","account_demo_534","other","l10n_br.despesa","True","base.main_company" -"account_demo_537","3.2.04.02.0003","Multas Contratuais","account_demo_534","other","l10n_br.despesa","True","base.main_company" -"account_demo_538","3.2.05","OUTRAS DESPESAS OPERACIONAIS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_539","3.2.05.01","PERDAS","account_demo_538","view","l10n_br.despesa","True","base.main_company" -"account_demo_540","3.2.05.01.0001","Perdas com Duplicatas Incobráveis","account_demo_539","other","l10n_br.despesa","True","base.main_company" -"account_demo_541","3.2.06","DESPESAS NÃO OPERACIONAIS","account_demo_394","view","l10n_br.despesa","True","base.main_company" -"account_demo_542","3.2.06.01","PERDAS","account_demo_541","view","l10n_br.despesa","True","base.main_company" -"account_demo_543","3.2.06.01.0002","Perda crédito de ICMS s/ Imobilizado","account_demo_542","other","l10n_br.despesa","True","base.main_company" -"account_demo_544","3.2.06.01.0003","Perdas com Sinistros","account_demo_542","other","l10n_br.despesa","True","base.main_company" -"account_demo_545","3.2.06.01.0004","Perdas na Alienação de Imobilizado","account_demo_542","other","l10n_br.despesa","True","base.main_company" -"account_demo_546","3.2.06.01.0001","Perdas na Alienação de Investimentos","account_demo_542","other","l10n_br.despesa","True","base.main_company" -"account_demo_547","3.2.06.01.0005","Perdas, Deterioração de Mercadorias","account_demo_542","other","l10n_br.despesa","True","base.main_company" -"account_demo_548","4","CONTAS DE RESULTADO - RECEITAS","account.chart0","view","l10n_br.receita","True","base.main_company" -"account_demo_549","4.1","RECEITAS","account_demo_548","view","l10n_br.receita","True","base.main_company" -"account_demo_550","4.1.01","RECEITAS OPERACIONAIS VENDAS E SERVIÇOS","account_demo_549","view","l10n_br.receita","True","base.main_company" -"account_demo_551","4.1.01.01","RECEITA BRUTA VENDAS NO PAÍS ","account_demo_550","view","l10n_br.receita","True","base.main_company" -"account_demo_552","4.1.01.01.0001","Venda Produtos Fabricação Própria","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_553","4.1.01.01.0002","Industrialização de Mercadorias","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_554","4.1.01.01.0003","Revenda de Mercadorias","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_555","4.1.01.01.0004","Venda Fabricação Própria","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_556","4.1.01.01.0005","Industriazalição de Mercadorias","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_557","4.1.01.01.0006","Revenda de Mercadorias","account_demo_551","other","l10n_br.receita","True","base.main_company" -"account_demo_558","4.1.01.02","RECEITA DE SERVIÇOS NO PAIS ","account_demo_550","view","l10n_br.receita","True","base.main_company" -"account_demo_559","4.1.01.02.0001","Receita de Serviços","account_demo_558","other","l10n_br.receita","True","base.main_company" -"account_demo_560","4.1.01.02.0002","Receita de Serviços","account_demo_558","other","l10n_br.receita","True","base.main_company" -"account_demo_561","4.1.01.03","RECEITA BRUTA DE VENDAS P/EXTERIOR","account_demo_550","view","l10n_br.receita","True","base.main_company" -"account_demo_562","4.1.01.03.0001","Venda de Produtos Fabricação Própria(EX)","account_demo_561","other","l10n_br.receita","True","base.main_company" -"account_demo_563","4.1.01.03.0002","Revenda de Mercadorias (EX)","account_demo_561","other","l10n_br.receita","True","base.main_company" -"account_demo_564","4.1.02","(-) DEDUÇÕES DA RECEITA BRUTA","account_demo_549","view","l10n_br.receita","True","base.main_company" -"account_demo_565","4.1.02.01","DEVOLUÇÕES E ABATIMENTOS","account_demo_564","view","l10n_br.receita","True","base.main_company" -"account_demo_566","4.1.02.01.0001","Devolução de Vendas","account_demo_565","other","l10n_br.receita","True","base.main_company" -"account_demo_567","4.1.02.01.0002","Abatimentos Concedidos","account_demo_565","other","l10n_br.receita","True","base.main_company" -"account_demo_568","4.1.02.01.0003","Devolução de Vendas","account_demo_565","other","l10n_br.receita","True","base.main_company" -"account_demo_569","4.1.02.01.0004","Abatimentos Concedidos","account_demo_565","other","l10n_br.receita","True","base.main_company" -"account_demo_570","4.1.02.02","IMPOSTOS SOBRE VENDAS E SERVIÇOS","account_demo_564","view","l10n_br.receita","True","base.main_company" -"account_demo_571","4.1.02.02.0001","ICMS sobre Vendas","account_demo_570","other","l10n_br.receita","True","base.main_company" -"account_demo_572","4.1.02.02.0002","IPI sobre Vendas","account_demo_570","other","l10n_br.receita","True","base.main_company" -"account_demo_573","4.1.02.02.0003","PIS sobre Vendas ","account_demo_570","other","l10n_br.receita","True","base.main_company" -"account_demo_574","4.1.02.02.0004","COFINS sobre Vendas","account_demo_570","other","l10n_br.receita","True","base.main_company" -"account_demo_575","4.1.02.02.0005","ISS sobre Serviços","account_demo_570","other","l10n_br.receita","True","base.main_company" -"account_demo_576","4.1.02.03","(-) IMPOSTOS S/ DEVOLUÇÃO DE VENDAS","account_demo_564","view","l10n_br.receita","True","base.main_company" -"account_demo_577","4.1.02.03.0001","(-) Cofins Não-Cumulativo s/ Dev. Vendas","account_demo_576","other","l10n_br.receita","True","base.main_company" -"account_demo_578","4.1.02.03.0002","(-) ICMS sobre Devolução de Vendas","account_demo_576","other","l10n_br.receita","True","base.main_company" -"account_demo_579","4.1.02.03.0003","(-) IPI s/Devolução de Vendas","account_demo_576","other","l10n_br.receita","True","base.main_company" -"account_demo_580","4.1.02.03.0004","(-) Pis Não-Cumulativo s/ Dev. Vendas","account_demo_576","other","l10n_br.receita","True","base.main_company" -"account_demo_581","4.1.03","RECEITAS FINANCEIRAS","account_demo_549","view","l10n_br.receita","True","base.main_company" -"account_demo_582","4.1.03.01","RECEITAS COM ATUALIZAÇÕES","account_demo_581","view","l10n_br.receita","True","base.main_company" -"account_demo_583","4.1.03.01.0001","Variação Monetária Ativa","account_demo_582","other","l10n_br.receita","True","base.main_company" -"account_demo_584","4.1.03.01.0002","Variação Cambial Ativa","account_demo_582","other","l10n_br.receita","True","base.main_company" -"account_demo_585","4.1.03.02","GANHOS COM APLICAÇÕES FINANCEIRAS","account_demo_581","view","l10n_br.receita","True","base.main_company" -"account_demo_586","4.1.03.02.0001","Rend. Aplic.Automática C/Corrente","account_demo_585","other","l10n_br.receita","True","base.main_company" -"account_demo_587","4.1.03.02.0002","Ganho Real Aplicações Renda Fixa","account_demo_585","other","l10n_br.receita","True","base.main_company" -"account_demo_588","4.1.03.02.0003","Ganho Real Aplic.Renda Variável","account_demo_585","other","l10n_br.receita","True","base.main_company" -"account_demo_589","4.1.03.02.0004","Rendimento Caderneta de Poupança","account_demo_585","other","l10n_br.receita","True","base.main_company" -"account_demo_590","4.1.03.03","JUROS E DESCONTOS OBTIDOS","account_demo_581","view","l10n_br.receita","True","base.main_company" -"account_demo_591","4.1.03.03.0001","Juros Recebidos","account_demo_590","other","l10n_br.receita","True","base.main_company" -"account_demo_592","4.1.03.03.0002","Descontos Obtidos","account_demo_590","other","l10n_br.receita","True","base.main_company" -"account_demo_593","4.1.03.04","(-) TRIBUTOS S/RECEITAS FINANCEIRAS","account_demo_581","view","l10n_br.receita","True","base.main_company" -"account_demo_594","4.1.03.04.0001","PIS sobre Receitas Financeiras","account_demo_593","other","l10n_br.receita","True","base.main_company" -"account_demo_595","4.1.03.04.0002","COFINS sobre Receitas Financeiras","account_demo_593","other","l10n_br.receita","True","base.main_company" -"account_demo_596","4.1.04","OUTRAS RECEITAS OPERACIONAIS","account_demo_549","view","l10n_br.receita","True","base.main_company" -"account_demo_597","4.1.04.01","LUCROS PARTIC.EM OUTRAS SOCIEDADES","account_demo_596","view","l10n_br.receita","True","base.main_company" -"account_demo_598","4.1.04.01.0001","Resultado de Coligadas e Controladas","account_demo_597","other","l10n_br.receita","True","base.main_company" -"account_demo_599","4.1.04.02","VENDAS DIVERSAS","account_demo_596","view","l10n_br.receita","True","base.main_company" -"account_demo_600","4.1.04.02.0001","Venda de Sucatas","account_demo_599","other","l10n_br.receita","True","base.main_company" -"account_demo_601","4.1.04.03","BRINDES E AMOSTRAS","account_demo_596","view","l10n_br.receita","True","base.main_company" -"account_demo_602","4.1.04.03.0001","Brindes e Bonificações","account_demo_601","other","l10n_br.receita","True","base.main_company" -"account_demo_603","4.1.04.03.0002","Amostras","account_demo_601","other","l10n_br.receita","True","base.main_company" -"account_demo_604","4.2","RESULTADOS NÃO OPERACIONAIS","account_demo_548","view","l10n_br.receita","True","base.main_company" -"account_demo_605","4.2.01","ALIENAÇÃO DE BENS PERMANENTES","account_demo_604","view","l10n_br.receita","True","base.main_company" -"account_demo_606","4.2.01.01","ALIENAÇÃO DE INVESTIMENTOS","account_demo_605","view","l10n_br.receita","True","base.main_company" -"account_demo_607","4.2.01.01.0001","Dividendos Recebidos","account_demo_606","other","l10n_br.receita","True","base.main_company" -"account_demo_608","4.2.01.01.0002","Alienação Partic.Societárias","account_demo_606","other","l10n_br.receita","True","base.main_company" -"account_demo_609","4.2.01.02","ALIENAÇÃO DE IMOBILIZADO","account_demo_605","view","l10n_br.receita","True","base.main_company" -"account_demo_610","4.2.01.02.0001","Alienação de Máquinas e Equipamentos","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_611","4.2.01.02.0002","Alienação de Móveis e Utensílios","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_612","4.2.01.02.0003","Alienação de Ferramentas","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_613","4.2.01.02.0004","Alienação de Imóveis","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_614","4.2.01.02.0005","Alienação de Veículos","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_615","4.2.01.02.0006","Alienação de Equip.de Informática","account_demo_609","other","l10n_br.receita","True","base.main_company" -"account_demo_616","4.2.02","DEDUÇÕES DAS ALIENAÇÕES DE BENS","account_demo_604","view","l10n_br.receita","True","base.main_company" -"account_demo_617","4.2.02.01","CUSTO DA ALIENAÇÃO DE INVESTIMENTOS","account_demo_616","view","l10n_br.receita","True","base.main_company" -"account_demo_618","4.2.02.01.0001","Custo Alienação Partic.Societárias","account_demo_617","other","l10n_br.receita","True","base.main_company" -"account_demo_619","4.2.02.02","CUSTO DA ALIENAÇÃO DE IMOBILIZADO","account_demo_616","view","l10n_br.receita","True","base.main_company" -"account_demo_620","4.2.02.02.0001","Custo Alienação Máqs.e Equipamentos","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_621","4.2.02.02.0002","Custo Alienação Movs.e Utensílios","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_622","4.2.02.02.0003","Custo Alienação Ferramentas","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_623","4.2.02.02.0004","Custo Alienação de Imóveis","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_624","4.2.02.02.0005","Custo Alienação de Veículos","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_625","4.2.02.02.0006","Custo Alienação Equip.Informática","account_demo_619","other","l10n_br.receita","True","base.main_company" -"account_demo_626","4.2.03","OUTRAS RECEITAS NÃO OPERACIONAIS","account_demo_604","view","l10n_br.receita","True","base.main_company" -"account_demo_627","4.2.03.01","INDENIZAÇÃO DE SEGUROS","account_demo_626","view","l10n_br.receita","True","base.main_company" -"account_demo_628","4.2.03.01.0001","Indenização de Seguros","account_demo_627","other","l10n_br.receita","True","base.main_company" -"account_demo_629","4.2.03.02","OUTRAS RECEITAS","account_demo_626","view","l10n_br.receita","True","base.main_company" -"account_demo_630","4.2.03.02.0001","Recuperação de Despesas","account_demo_629","other","l10n_br.receita","True","base.main_company" -"account_demo_631","5","CONTAS DE FECHAMENTO DE BALANÇO","account.chart0","view","l10n_br.resultado","True","base.main_company" -"account_demo_632","5.1","RESULTADO DO EXERCÍCIO","account_demo_631","view","l10n_br.resultado","True","base.main_company" -"account_demo_633","5.1.01","RESULTADO OPERACIONAL","account_demo_632","view","l10n_br.resultado","True","base.main_company" -"account_demo_634","5.1.01.01","PROVISÃO IMPOSTOS E CONTRIB. S/ O LUCRO","account_demo_633","view","l10n_br.resultado","True","base.main_company" -"account_demo_635","5.1.01.01.0001","Provisão para IRPJ","account_demo_634","closed","l10n_br.resultado","True","base.main_company" -"account_demo_636","5.1.01.01.0002","Provisão para Contribuição Social","account_demo_634","closed","l10n_br.resultado","True","base.main_company" -"account_demo_637","5.1.01.02","RESULTADO FINAL DO EXERCÍCIO","account_demo_633","view","l10n_br.resultado","True","base.main_company" -"account_demo_638","5.1.01.02.0001","Resultado Líquido do Exercício","account_demo_637","closed","l10n_br.resultado","True","base.main_company" +"id","code","name","parent_id:id","note","type","user_type:id","company_id:id" +"account.chart0",0,"Plano de Contas",,,"view","account.data_account_type_view","base.main_company" +"account.assets_view",1,"ATIVO","account.chart0"," ","view","account.data_account_type_asset","base.main_company" +"account.nca","1.01","CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" +"account.cas","1.01.01","DISPONIBILIDADES","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","other","account.data_account_type_bank","base.main_company" +"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","other","account.data_account_type_cash","base.main_company" +"account_demo_101010300","1.01.01.03.00","Recursos no Exterior Decorrentes de Exportação","account.cas","Contas que registram movimentação de recursos em instituições financeiras no exterior, nos termos do art. 1o. da Lei no 11.371/2006.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010400","1.01.01.04.00","Contas Bancárias – Subvenções","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das subvenções, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010500","1.01.01.05.00","Contas Bancárias – Doações","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das doações, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010600","1.01.01.06.00","Contas Bancárias – Outros Recursos Sujeitos a Restrições","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de outros recursos sujeitos a restrições, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010701","1.01.01.07.01","Valores Mobiliários - Mercado de Capitais Interno","account.cas","Contas que registram as aplicações no mercado de capitais do Brasil, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010702","1.01.01.07.02","Valores Mobiliários - Mercado de Capitais Externo","account.cas","Contas que registram as aplicações no mercado de capitais do exterior, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010800","1.01.01.08.00","Valores Mobiliários – Aplicações de Subvenções ","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de subvenções.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010900","1.01.01.09.00","Valores Mobiliários – Aplicações de Doações","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de doações.","other","account.data_account_type_asset","base.main_company" +"account_demo_101011000","1.01.01.10.00","Valores Mobiliários – Aplicações de Outros Recursos Sujeitos a Restrições","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de outros recursos sujeitos a restrições.","other","account.data_account_type_asset","base.main_company" +"account_demo_101011100","1.01.01.11.00","Outras","account.cas"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10103","1.01.03","ESTOQUES","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101030101","1.01.03.01.01","Mercadorias para Revenda","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de mercadorias para revenda, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account.stk","1.01.03.01.02","Insumos (materiais diretos)","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de matérias primas e materiais diretos, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030103","1.01.03.01.03","Produtos em Elaboração","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos em elaboração, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030104","1.01.03.01.04","Produtos Acabados","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos acabados, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030105","1.01.03.01.05","Serviços em andamento","account_demo_10103","Contas que registram o valor do saldo das contas de serviços em andamento, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030106","1.01.03.01.06","Insumos Agropecuários","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de insumos agropecuários, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030107","1.01.03.01.07","Produtos Agropecuários em Formação","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de produtos agropecuários em formação, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030108","1.01.03.01.08","Produtos Agropecuários Acabados","account_demo_10103","Contas que registra, nas empresas com atividade rural, o valor do saldo das contas de estoques de produtos agropecuários acabados, na data de apuração do resultado.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030200","1.01.03.02.00","Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar o estoque de imóveis destinados à venda existente na data da apuração dos resultados. Atenção: as construções em andamento de imóveis destinados à venda devem ser incluídas na conta Construções em Andamento de Imóveis Destinados à Venda","other","account.data_account_type_asset","base.main_company" +"account_demo_101030201","1.01.03.02.01","Construções em Andamento de Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar os imóveis em construção para futura comercialização","other","account.data_account_type_asset","base.main_company" +"account_demo_101030300","1.01.03.03.00","Estoques Destinados à Doação","account_demo_10103","Contas que registram, nas instituições imunes ou isentas, estoques destinados à doação.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030400","1.01.03.04.00","Outras","account_demo_10103"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10105","1.01.05","CRÉDITOS","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101050100","1.01.05.01.00","Adiantamentos a Fornecedores ","account_demo_10105","Contas que registram aos adiantamentos feitos a fornecedores de matérias-primas ou mercadorias para revenda.","other","account.data_account_type_asset","base.main_company" +"account.a_recv","1.01.05.02.00","Clientes","account_demo_10105","Contas que registram as contas a receber com vencimento até o final do ano-calendário subseqüente.","receivable","account.data_account_type_receivable","base.main_company" +"account_demo_101050300","1.01.05.03.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050400","1.01.05.04.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM nº 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050501","1.01.05.05.01","Imposto de Renda a Recuperar","account_demo_10105","Contas correspondentes ao Imposto de REnda a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account.ova","1.01.05.05.02","IPI a Recuperar","account_demo_10105","Contas correspondentes ao IPI a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050503","1.01.05.05.03","PIS e COFINS a Recuperar","account_demo_10105","Contas correspondentes ao PIS e à Cofins a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050504","1.01.05.05.04","CSLL a Recuperar","account_demo_10105","Contas correspondentes à CSLL a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050505","1.01.05.05.05","ICMS e Contribuições a Recuperar","account_demo_10105","Contas correspondentes ao ICMS a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050506","1.01.05.05.06","Tributos Municipais a Recuperar","account_demo_10105","Contas correspondentes a tributos municipais a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050590","1.01.05.05.90","Outros Impostos e Contribuições a Recuperar","account_demo_10105","Contas correspondentes a outros impostos a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050600","1.01.05.06.00","Créditos por Contribuições e Doações","account_demo_10105","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050700","1.01.05.07.00","Outras","account_demo_10105"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10107","1.01.07","DESPESAS DO EXERCÍCIO SEGUINTE","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101070100","1.01.07.01.00","Despesas do Exercício Seguinte","account_demo_10107","Contas correspondentes a pagamentos antecipados, cujos benefícios ou prestação de serviços à pessoa jurídica ocorrerão durante o exercício seguinte. São valores relativos a despesas que efetivamente pertencem ao exercício seguinte.","other","account.data_account_type_asset","base.main_company" +"account_demo_101070200","1.01.07.02.00","Outras Contas","account_demo_10107","Incluir, dentre outras, a soma das contas/subcontas do Circulante que registram, dentre outras, a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_10109","1.01.09","CONTAS RETIFICADORAS","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101090101","1.01.09.01.01","(-) Duplicatas Descontadas","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" +"account_demo_101090103","1.01.09.01.03","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090105","1.01.09.01.05","(-) Provisão para Ajuste do Estoque ao Valor de Mercado","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor de mercado que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090107","1.01.09.01.07","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090190","1.01.09.01.90","(-) Outras Contas Retificadoras","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account.fas","1.07","NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" +"account_demo_10700","1.07.00","REALIZÁVEL A LONGO PRAZO ","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107000100","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" +"account_demo_107000200","1.07.00.02.00","Créditos com Pessoas Ligadas (Físicas/Jurídicas)","account_demo_10700","Contas correspondentes a vendas, adiantamentos ou empréstimos a sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000300","1.07.00.03.00","Valores Mobiliários","account_demo_10700","Contas correspondentes às aplicações em títulos com vencimento posterior ao exercício seguinte, e investimentos em outras sociedades que não tenham caráter permanente, inclusive os feitos com incentivos fiscais.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000400","1.07.00.04.00","Depósitos Judiciais","account_demo_10700","Contas que registram aos depósitos judiciais efetuados, a qualquer título, pendentes de decisão.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000500","1.07.00.05.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000600","1.07.00.06.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000700","1.07.00.07.00","Créditos por Contribuições e Doações","account_demo_10700","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações com vencimento após final do exercício subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000800","1.07.00.08.00","Outras Contas","account_demo_10700","Contas que registram, entre outras, a soma das contas/subcontas do Realizável a Longo Prazo que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009000","1.07.00.90.00","(-) Duplicatas Descontadas","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" +"account_demo_107009300","1.07.00.93.00","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009500","1.07.00.95.00","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009700","1.07.00.97.00","(-) Outras Contas Retificadoras","account_demo_10700","Contas que registram parcelas a serem subtraídas do Realizável a Longo Prazo que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_10701","1.07.01","INVESTIMENTOS","account.fas",,"view","account.data_account_type_asset","base.main_company" +"account_demo_107010100","1.07.01.01.00","Participações Permanentes em Coligadas ou Controladas","account_demo_10701","Contas que registram investimentos permanentes, na forma de participação em outras sociedades coligadas e/ou controladas, ainda que se trate de investimento não relevante.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010200","1.07.01.02.00","Investimentos Decorrentes de Incentivos Fiscais","account_demo_10701","Contas que registram os investimentos decorrentes de incentivos fiscais representados por ações novas da Embraer ou de empresas nacionais de informática ou por participação direta decorrente da troca do CI – Certificado de Investimento por ações pertencentes às carteiras de Fundos (Finor, Finam e Fiset). Inclui-se a aquisição de quotas representativas de direitos de comercialização sobre produção de obras audiovisuais cinematográficas brasileiras de produção independente, com projetos previamente aprovados pelo Ministério da Cultura, realizada no mercado de capitais, em ativos previstos em lei e autorizados pela Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_asset","base.main_company" +"account_demo_107010300","1.07.01.03.00","Outros Investimentos","account_demo_10701","Contas correspondentes aos direitos de qualquer natureza que não se destinem à manutenção da atividade da companhia ou da empresa e que não se classifiquem no ativo circulante ou realizável a longo prazo, tais como: o imóvel não utilizado na exploração ou na manutenção das atividades da empresa e que não se destine à revenda, e os recursos florestais destinados à proteção do solo ou à preservação da natureza, entre outros.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010400","1.07.01.04.00","Ágios em Investimentos","account_demo_10701","Contas correspondentes ao ágio por diferença de valor de mercado dos bens, por valor de rentabilidade futura, por fundo de comércio, intangíveis, ou outras razões econômicas.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010500","1.07.01.05.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010600","1.07.01.06.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010700","1.07.01.07.00","(-) Deságios e Provisão para Perdas Prováveis em Investimentos","account_demo_10701","Contas que registram: +a) o deságio por diferença de valor de mercado dos bens, por valor de rentabilidade futura e por fundo de comércio, intangíveis, ou outras razões econômicas; +b) o valor correspondente à provisão para perdas em investimentos registrados pelo método de custo e à provisão para perdas em investimentos avaliados pelo método da equivalência patrimonial, sendo que, neste último caso, deve ser informado somente o valor das perdas efetivas ou potenciais já previstas, mas não reconhecidas contabilmente pela coligada ou controlada.","other","account.data_account_type_asset","base.main_company" +"account_demo_107019000","1.07.01.90.00","Outras Contas","account_demo_10701","Contas que registram bens e direitos classificáveis em Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_107019700","1.07.01.97.00","(-) Outras Contas Retificadoras","account_demo_10701","Contas que registram parcelas a serem subtraídas de Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_10704","1.07.04","IMOBILIZADO","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107040100","1.07.04.01.00","Terrenos","account_demo_10704","Contas que registram os terrenos de propriedade da pessoa jurídica utilizados nas operações, ou seja, onde se localizam a fábrica, os depósitos, os escritórios, as filiais, as lojas, etc., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: o valor do terreno onde está em construção uma nova unidade que ainda não esteja em operação também deve ser informado nesta conta.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040200","1.07.04.02.00","Edifícios e Construções","account_demo_10704","Contas que registram os edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: As construções em andamento devem ser informadas na conta Construções em Andamento.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040201","1.07.04.02.01"," Construções em Andamento","account_demo_10704","Contas que registram as construções em andamento de edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040300","1.07.04.03.00","Equipamentos, Máquinas e Instalações Industriais","account_demo_10704","Contas que registram os equipamentos, máquinas e instalações industriais utilizados no processo de produção da pessoa jurídica, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040400","1.07.04.04.00","Veículos","account_demo_10704","Contas que registram os veículos de propriedade da pessoa jurídica. inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: Os veículos de uso direto na produção, como empilhadeiras e similares, devem ser informados na conta Equipamentos, Máquinas e Instalações Industriais.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040401","1.07.04.04.01","Embarcações","account_demo_10704","Contas que registram as embarcações de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040402","1.07.04.04.02","Aeronaves","account_demo_10704","Contas que registram as aeronaves de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040500","1.07.04.05.00","Móveis, Utensílios e Instalações Comerciais","account_demo_10704","Contas que registram os móveis, utensílios e instalações comerciais., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040600","1.07.04.06.00","Recursos Minerais","account_demo_10704","Contas que registram os direitos de exploração de jazidas de minério, de pedras preciosas, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040700","1.07.04.07.00","Florestamento e Reflorestamento","account_demo_10704","Contas que registram os recursos florestais destinados à exploração dos respectivos frutos e ao corte para comercialização, consumo ou industrialização, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040800","1.07.04.08.00","Direitos Contratuais de Exploração de Florestas","account_demo_10704","Contas que registram os direitos contratuais de exploração de florestas com prazo de exploração superior a dois anos., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account.xfa","1.07.04.09.00","Outras Imobilizações","account_demo_10704","Contas que registram outras imobilizações, tais como: benfeitorias em propriedades arrendadas que se incorporam ao imóvel arrendado e revertem ao proprietário do imóvel ao final da locação, adiantamentos para inversões fixas, reprodutores, matrizes e as culturas permanentes da atividade rural, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107041000","1.07.04.10.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107041100","1.07.04.11.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária especial na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107041200","1.07.04.12.00","(-) Depreciações, Amortizações e Quotas de Exaustão","account_demo_10704","Contas que registram as depreciações, amortizações e quotas de exaustão das contas do imobilizado.","other","account.data_account_type_asset","base.main_company" +"account_demo_107049000","1.07.04.90.00","(-) Outras Contas Redutoras do Imobilizado","account_demo_10704","Outras contas redutoras do Imobilizado, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" +"account_demo_10705","1.07.05","INTANGÍVEL","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107050100","1.07.05.01.00","Concessões","account_demo_10705","Contas que registram os custos com aquisição de concessões","other","account.data_account_type_asset","base.main_company" +"account_demo_107050300","1.07.05.03.00","Marcas e Patentes","account_demo_10705","Contas que registram os custos com aquisição de marcas e patentes","other","account.data_account_type_asset","base.main_company" +"account_demo_107050500","1.07.05.05.00","Direitos Autorais","account_demo_10705","Contas que registram os custos com aquisição de direitos autorais","other","account.data_account_type_asset","base.main_company" +"account_demo_107050700","1.07.05.07.00","Fundo de Comércio","account_demo_10705","Contas que registram os custos com aquisição de fundos de comércio","other","account.data_account_type_asset","base.main_company" +"account_demo_107050900","1.07.05.09.00","Software ou Programas de Computador","account_demo_10705","Contas que registram os custos com aquisição/desenvolvimento de programas de computador","other","account.data_account_type_asset","base.main_company" +"account_demo_107051100","1.07.05.11.00","Franquias","account_demo_10705","Contas que registram os custos com aquisição de franquias","other","account.data_account_type_asset","base.main_company" +"account_demo_107051300","1.07.05.13.00","Desenvolvimento de Produtos","account_demo_10705","Contas que registram os custos com o desenvolvimento de novos produtos","other","account.data_account_type_asset","base.main_company" +"account_demo_107051500","1.07.05.15.00","Outras","account_demo_10705","Contas que registram os custos com aquisição de outros itens classificáveis no intangível","other","account.data_account_type_asset","base.main_company" +"account_demo_107059000","1.07.05.90.00","(-) Amortização do Intangível","account_demo_10705","Contas correspondentes à amortização das contas do ativo intangível","other","account.data_account_type_asset","base.main_company" +"account_demo_107059700","1.07.05.97.00","(-) Outras Contas Redutoras do Intangível","account_demo_10705","Outras contas redutoras o intangível, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" +"account_demo_10707","1.07.07","DIFERIDO","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107070100","1.07.07.01.00","Despesas Pré-Operacionais ou Pré-Industriais","account_demo_10707","Contas que registram os gastos de organização e administração, encargos financeiros líquidos, estudos, projetos e detalhamentos, juros a acionista na fase de implantação e gastos preliminares de operação. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070200","1.07.07.02.00","Despesas com Pesquisas Científicas ou Tecnológicas","account_demo_10707","Contas que registram os gastos com pesquisa científica ou tecnológica. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070300","1.07.07.03.00","Demais Aplicações em Despesas Amortizáveis","account_demo_10707","Contas que registram os gastos com pesquisas e desenvolvimento de produtos, com a implantação de sistemas e métodos e com reorganização. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070400","1.07.07.04.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107070500","1.07.07.05.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107070600","1.07.07.06.00","(-) Amortização do Diferido","account_demo_10707","Contas correspondentes à amortização das contas do ativo diferido.","other","account.data_account_type_asset","base.main_company" +"account.bal",2,"PASSIVO","account.chart0"," ","view","l10n_br.passivo","base.main_company" +"account.cli","2.01","CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account.liabilities_view","2.01.01","OBRIGAÇÕES DE CURTO PRAZO","account.cli"," ","view","l10n_br.passivo","base.main_company" +"account.a_pay","2.01.01.01.00","Fornecedores","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" +"account_demo_201010101","2.01.01.01.01","Adiantamentos de Clientes","account.liabilities_view","Contas que registram o valor correspondente a adiantamentos de clientes.","other","l10n_br.passivo","base.main_company" +"account_demo_201010201","2.01.01.02.01","Financiamentos a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Curto Prazo – Outros. ","other","l10n_br.passivo","base.main_company" +"account_demo_201010202","2.01.01.02.02","Arrendamento Mercantil (Financeiro) a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram as obrigações de curto prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" +"account_demo_201010203","2.01.01.02.03","Financiamentos a Curto Prazo - Outros","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta .","other","l10n_br.passivo","base.main_company" +"account_demo_201010204","2.01.01.02.04","Financiamentos a Curto Prazo - Exterior","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Curto Prazo – Exterior","other","l10n_br.passivo","base.main_company" +"account_demo_201010205","2.01.01.02.05","Arrendamento Mercantil (Financeiro) a Curto Prazo - Exterior","account.liabilities_view","Contas que registram as obrigações das pessoas jurídicas relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" +"account.iva","2.01.01.03.01","IPI a Recolher","account.liabilities_view","Contas correspondentes ao IPI a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010302","2.01.01.03.02","ICMS e Contribuições a Recolher","account.liabilities_view","Contas correspondentes ao ICMS a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010303","2.01.01.03.03","Tributos Municipais a Recolher","account.liabilities_view","Contas correspondentes a tributos municipais a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010400","2.01.01.04.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor do FGTS a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010500","2.01.01.05.00","PIS e COFINS a Recolher","account.liabilities_view","Contas que registram o valor do PIS e da COFINS a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010600","2.01.01.06.00","Contribuições Previdenciárias a Recolher","account.liabilities_view","Contas que registram o valor das Contribuições Previdenciárias a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010690","2.01.01.06.90","Outros tributos a recolher","account.liabilities_view","Contas correspondentes a tributos a recolher não classificáveis em contas específicas.","other","l10n_br.passivo","base.main_company" +"account_demo_201010700","2.01.01.07.00","Salários a Pagar","account.liabilities_view","Contas que registram o valor correspondente aos salários, ordenados, horas extras, adicionais e prêmios a serem pagos no exercício subseqüente.","other","l10n_br.passivo","base.main_company" +"account_demo_201010800","2.01.01.08.00","Dividendos Propostos ou Lucros Creditados","account.liabilities_view","Contas correspondentes aos dividendos aprovados pela Assembléia, creditados aos acionistas ou propostos pela administração da pessoa jurídica na data do balanço, como parte da destinação proposta para os lucros.","other","l10n_br.passivo","base.main_company" +"account_demo_201010900","2.01.01.09.00","Provisão para a Contribuição Social sobre o Lucro Líquido","account.liabilities_view","Conta correspondente à provisão para a contribuição social sobre o lucro líquido a pagar.","other","l10n_br.passivo","base.main_company" +"account_demo_201011000","2.01.01.10.00","Provisão para o Imposto de Renda","account.liabilities_view","Conta correspondente ao saldo a pagar da provisão para o imposto de renda.","other","l10n_br.passivo","base.main_company" +"account_demo_201011100","2.01.01.11.00","Débitos Fiscais CSLL – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_201011200","2.01.01.12.00","Débitos Fiscais IRPJ – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_201011210","2.01.01.12.10","Provisões de Natureza Fiscal","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza fiscal.","other","l10n_br.passivo","base.main_company" +"account_demo_201011220","2.01.01.12.20","Provisões de Natureza Trabalhista","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza trabalhista.","other","l10n_br.passivo","base.main_company" +"account_demo_201011230","2.01.01.12.30","Provisões de Natureza Cível","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza cível.","other","l10n_br.passivo","base.main_company" +"account_demo_201011240","2.01.01.12.40","Doações e Subvenções para Investimentos","account.liabilities_view","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_201011300","2.01.01.13.00","Outras Contas","account.liabilities_view","Contas que registram comissões a pagar ou provisionadas de retenções contratuais, de obrigações decorrentes do fornecimento ou utilização de serviços (energia elétrica, água, telefone, propaganda, honorários profissionais de terceiros, aluguéis) e outras contas não citadas nas contas anteriores. Atenção: também são incluídas, nesta conta, as provisões para registro de obrigações, tais como as provisões para: férias, gratificações a empregados (inclusive encargos sociais a pagar e FGTS a recolher sobre tais provisões), e outras de natureza semelhante, ainda que não dedutíveis.","other","l10n_br.passivo","base.main_company" +"account_demo_201019000","2.01.01.90.00","(-) Contas Retificadoras","account.liabilities_view","Contas correspondentes às contas retificadoras do passivo circulante.","other","l10n_br.passivo","base.main_company" +"account_demo_203","2.03","NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" +"account_demo_20301","2.03.01","OBRIGAÇÕES A LONGO PRAZO","account_demo_203"," ","view","l10n_br.passivo","base.main_company" +"account_demo_203010100","2.03.01.01.00","Fornecedores","account_demo_20301","Contas que registram valores a pagar relativos à compra de matérias-primas, bens, insumos e mercadorias e o valor correspondente a adiantamentos de clientes, com prazo de pagamento posterior ao exercício seguinte à data do balanço.","payable","account.data_account_type_payable","base.main_company" +"account_demo_203010201","2.03.01.02.01","Financiamentos a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Longo Prazo – Brasil – Outros ","other","l10n_br.passivo","base.main_company" +"account_demo_203010202","2.03.01.02.02","Arrendamento Mercantil (Financeiro) a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" +"account_demo_203010203","2.03.01.02.03","Financiamentos a Longo Prazo – Brasil - Outros","account_demo_20301","Contas que registram os credores por financiamentos de longo prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta.","other","l10n_br.passivo","base.main_company" +"account_demo_203010204","2.03.01.02.04","Financiamentos a Longo Prazo – Exterior","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior ","other","l10n_br.passivo","base.main_company" +"account_demo_203010205","2.03.01.02.05","Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" +"account_demo_203010300","2.03.01.03.00","Empréstimos de Sócios/Acionistas Não Administradores","account_demo_20301","Contas relativas a empréstimos concedidos à pessoa jurídica por sócios e acionistas não administradores.","other","l10n_br.passivo","base.main_company" +"account_demo_203010400","2.03.01.04.00","Créditos de Pessoas Ligadas (Físicas/Jurídicas)","account_demo_20301","Contas que registram compras, adiantamentos ou empréstimos de sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","l10n_br.passivo","base.main_company" +"account_demo_203010500","2.03.01.05.00","Provisão para o Imposto de Renda sobre Lucros Diferidos","account_demo_20301","Conta que registra o imposto de renda sobre lucros diferidos, tais como: lucro inflacionário não realizado, contratos a longo prazo relativos a fornecimento de bens e de construção por empreitada para o poder público e suas empresas, ganho de capital oriundo de desapropriação, ganho de capital por venda de bens do ativo permanente com recebimento parcelado a longo prazo e depreciação acelerada.","other","l10n_br.passivo","base.main_company" +"account_demo_203010600","2.03.01.06.00","Débitos Fiscais CSLL - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM nº 273, de 1998","other","l10n_br.passivo","base.main_company" +"account_demo_203010700","2.03.01.07.00","Débitos Fiscais IRPJ - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_203010710","2.03.01.07.10","Outras Provisões de Natureza Fiscal","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza fiscal, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010720","2.03.01.07.20","Outras Provisões de Natureza Trabalhista","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza trabalhista, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010730","2.03.01.07.30","Outras Provisões de Natureza Cível","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza cível, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010740","2.03.01.07.40","Doações e Subvenções para Investimentos","account_demo_20301","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010800","2.03.01.08.00","Outras Contas","account_demo_20301","Contas que registram obrigações, não especificadas nos itens precedentes, cujo vencimento ocorrerá em período posterior ao exercício seguinte. Atenção: não incluir, nesta conta, o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária, e os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras. Esses valores devem ser informados em Resultados de Exercícios Futuros.","other","l10n_br.passivo","base.main_company" +"account_demo_203019000","2.03.01.90.00","(-) Contas Retificadoras","account_demo_20301","Contas retificadoras do Exigível de Longo Prazo","other","l10n_br.passivo","base.main_company" +"account_demo_20303","2.03.03","RECEITAS DIFERIDAS","account_demo_203",,"view","l10n_br.passivo","base.main_company" +"account_demo_203030100","2.03.03.01.00","Receitas Diferidas","account_demo_20303","Saldo remanescente da conta Resultado de Exercícios Futuros onde a pessoa jurídica que explore as atividades de compra e venda, loteamento, incorporação e construção de imóveis indicava o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária. Também se consideravam como receitas de exercícios futuros os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras.","other","l10n_br.passivo","base.main_company" +"account_demo_203030300","2.03.03.03.00","(-) Custos Correspondentes às Receitas Diferidas","account_demo_20303","Contas correspondentes aos custos e despesas de exercícios futuros correspondentes às receitas indicadas na conta precedente.","other","l10n_br.passivo","base.main_company" +"account_demo_207","2.07","PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_20701","2.07.01","CAPITAL REALIZADO","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207010100","2.07.01.01.00","Capital Subscrito de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no País.","other","l10n_br.passivo","base.main_company" +"account_demo_207010200","2.07.01.02.00","(-) Capital a Integralizar de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no País que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" +"account_demo_207010300","2.07.01.03.00","Capital Subscrito de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no exterior.","other","l10n_br.passivo","base.main_company" +"account_demo_207010400","2.07.01.04.00","(-) Capital a Integralizar de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no exterior que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" +"account_demo_20704","2.07.04","RESERVAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207040100","2.07.04.01.00","Reservas de Capital","account_demo_20704","Contas correspondentes às reservas constituídas pela correção monetária do capital, por incentivos fiscais, por ágio na emissão de ações, por alienação de partes beneficiárias.","other","l10n_br.passivo","base.main_company" +"account_demo_207040200","2.07.04.02.00","Reservas de Reavaliação","account_demo_20704","Contas correspondentes aos saldos dos reservas de reavaliação ainda não realizadas, decorrentes de reavaliação de ativos próprios e de ativos de coligadas e controladas, estes avaliados pelo método da equivalência patrimonial.","other","l10n_br.passivo","base.main_company" +"account_demo_207040300","2.07.04.03.00","Reservas de Lucros","account_demo_20704","Contas correspondentes às reservas constituídas pela destinação de lucros da empresa, tais como: reserva legal, reservas estatutárias, reserva para contingências, reserva de lucros a realizar, reserva de lucros para expansão, reserva especial para dividendo obrigatório não distribuído e reserva de exaustão incentivada de recursos minerais.","other","l10n_br.passivo","base.main_company" +"account_demo_207040301","2.07.04.03.01","Reservas de Lucros - Doações e Subvenções para Investimentos","account_demo_20704","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento","other","l10n_br.passivo","base.main_company" +"account_demo_207040302","2.07.04.03.02","Reservas de Lucros - Prêmio na Emissão de Debêntures","account_demo_20704","Contas que registram, a partir de 01.01.2008, os prêmios na emissão de debêntures","other","l10n_br.passivo","base.main_company" +"account_demo_207040400","2.07.04.04.00","Reserva para Aumento de Capital (Lei no 9.249/1995, art. 9o, § 9o)","account_demo_20704","Conta correspondente à reserva constituída em 1996 com o montante dos juros sobre o capital próprio deduzidos como despesa financeira, mas mantidos no patrimônio da empresa, caso esta tenha optado pela faculdade prevista no § 9o do art. 9o da Lei no 9.249, de 1995.","other","l10n_br.passivo","base.main_company" +"account_demo_207040500","2.07.04.05.00","Outras Reservas","account_demo_20704","Contas correspondentes às demais reservas não consignadas nos itens anteriores, tais como o saldo devedor ou credor da conta de correção monetária correspondente à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal e o saldo da correção especial das contas do ativo permanente efetuada com base nos arts. 33 e 44 do Decreto no 332, de 1991.","other","l10n_br.passivo","base.main_company" +"account_demo_20705","2.07.05","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_demo_207",,"view","l10n_br.passivo","base.main_company" +"account_demo_207050100","2.07.05.01.00","Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) +","other","l10n_br.passivo","base.main_company" +"account_demo_207050101","2.07.05.01.01","(-) Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) +","other","l10n_br.passivo","base.main_company" +"account_demo_20707","2.07.07","OUTRAS CONTAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207070100","2.07.07.01.00","Lucros Acumulados e/ou Saldo à Disposição da Assembléia","account_demo_20707","Contas correspondentes aos lucros acumulados ou do saldo à disposição da assembléia.","other","l10n_br.passivo","base.main_company" +"account.rsa","2.07.07.02.00","(-) Prejuízos Acumulados","account_demo_20707","Contas correspondentes aos prejuízos acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_207070300","2.07.07.03.00","(-) Ações em Tesouraria","account_demo_20707","Contas que registrem as aquisições de ações da própria empresa.","other","l10n_br.passivo","base.main_company" +"account_demo_207070400","2.07.07.04.00","Outras","account_demo_20707","Outras contas classificáveis no patrimônio líquido que não tenham correspondência nas contas Lucros Acumulados e/ou Saldo à Disposição da Assembléia, Prejuízos Acumulados, Ações em Tesouraria.","other","l10n_br.passivo","base.main_company" +"account_demo_208","2.08","PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_20801","2.08.01","FUNDO PATRIMONIAL","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208010100","2.08.01.01.00","Fundo Patrimonial","account_demo_20801","Contas que registrem, nas instituições imunes ou isentas, o Fundo Patrimonial.","other","l10n_br.passivo","base.main_company" +"account_demo_20804","2.08.04","RESERVAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208040100","2.08.04.01.00","Reservas Patrimoniais","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas patrimoniais.","other","l10n_br.passivo","base.main_company" +"account_demo_208040200","2.08.04.02.00","Reservas Estatutárias","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas estatutárias.","other","l10n_br.passivo","base.main_company" +"account_demo_20807","2.08.07","OUTRAS CONTAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208070100","2.08.07.01.00","Superávits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos superávits acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_208070200","2.08.07.02.00","Déficits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos déficits acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_3",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301","3.01","RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101","3.01.01.01","RECEITA LIQUIDA","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010101","3.01.01.01.01","RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101010101","3.01.01.01.01.01.01","Receita de Exportação Direta de Mercadorias e Produtos","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de mercadorias e produtos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010102","3.01.01.01.01.01.02","Receita de Vendas de Mercadorias e Produtos a Comercial Exportadora com Fim Específico de Exportação","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da venda de mercadorias e produtos a empresa comercial exportadora, com fim específico de exportação.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010103","3.01.01.01.01.01.03","Receita de Exportação de Serviços","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de serviços","other","account.data_account_type_view","base.main_company" +"account.a_sale","3.01.01.01.01.02.00","Receita da Venda no Mercado Interno de Produtos de Fabricação Própria","account_demo_301010101","Contas que registram a receita auferida no mercado interno correspondente à venda de produtos de fabricação própria e as receitas auferidas na industrialização por encomenda ou por conta e ordem de terceiros. (Não se incluem o valor correspondente ao Imposto sobre Produtos Industrializados (IPI) cobrado destacadamente do comprador ou contratante, uma vez que o vendedor é mero depositário e este imposto não integra o preço de venda da mercadoria, e, também, o valor correspondente ao ICMS cobrado na condição de substituto.)","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010300","3.01.01.01.01.03.00","Receita da Revenda de Mercadorias no Mercado Interno","account_demo_301010101","Contas que registram receita auferida no mercado interno, correspondente à revenda de mercadorias e o resultado auferido nas operações de conta alheia.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010400","3.01.01.01.01.04.00","Receita da Prestação de Serviços – Mercado Interno","account_demo_301010101","Contas que registram a receita decorrente dos serviços prestados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010500","3.01.01.01.01.05.00","Receita das Unidades Imobiliárias Vendidas","account_demo_301010101","As pessoas jurídicas que exploram atividades imobiliárias devem indicar, nestas contas, o montante das receitas das unidades imobiliárias vendidas, apropriadas ao resultado, inclusive as receitas transferidas de Resultados de Exercícios Futuros e os custos recuperados de períodos de apuração anteriores.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010600","3.01.01.01.01.06.00","Receita de Locação de Bens Móveis e Imóveis","account_demo_301010101","Contas que registram a receita decorrente da locação de bens móveis e imóveis","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010700","3.01.01.01.01.07.00","Outras","account_demo_301010101","Outras contas que registrem valores componentes da receita bruta não especificadas nos itens anteriores.","other","account.data_account_type_view","base.main_company" +"account_demo_301010103","3.01.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101030100","3.01.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_301010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes das contas integrantes do grupo RECEITA BRUTA","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030200","3.01.01.01.03.02.00","(-) ICMS","account_demo_301010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes das contas integrantes do grupo RECEITA BRUTA. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030300","3.01.01.01.03.03.00","(-) Cofins","account_demo_301010103","vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030400","3.01.01.01.03.04.00","(-) PIS/Pasep","account_demo_301010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030500","3.01.01.01.03.05.00","(-) ISS","account_demo_301010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços,conforme legislação específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030600","3.01.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_301010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que tratam as contas integrantes do grupo RECEITA BRUTA, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010103","3.01.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010301","3.01.01.03.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA VENDIDOS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103010000","3.01.01.03.01.00.00","Custo dos Produtos de Fabricação Própria Vendidos","account_demo_301010301"," ","other","account.data_account_type_view","base.main_company" +"account_demo_301010303","3.01.01.03.03","CUSTO DAS MERCADORIAS REVENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103030000","3.01.01.03.03.00.00","Custo das Mercadorias Revendidas","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" +"account_demo_3010103050000","3.01.01.03.05.00.00","Custo dos Serviços Vendidos","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" +"account_demo_301010307","3.01.01.03.07","CUSTO DAS UNIDADES IMOBILIÁRIAS VENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103070100","3.01.01.03.07.01.00","Custo das Unidades Imobiliárias Vendidas","account_demo_301010307","Contas que registram, na empresa que tiver por objeto a compra de imóveis para venda ou que promover empreendimento de desmembramento ou loteamento de terrenos, incorporação imobiliária ou construção de prédio destinado à venda, os valores dos custos correspondentes às unidades imobiliárias vendidas apropriados ao resultado do período de apuração. A recuperação de custos do próprio período é computada no montante a ser indicado nesta conta. Os custos recuperados correspondentes a períodos de apuração anteriores devem ser indicados na conta Receita das Unidades Imobiliárias Vendidas.","other","account.data_account_type_view","base.main_company" +"account_demo_301010309","3.01.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010105","3.01.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010501","3.01.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3010105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010105010100","3.01.01.05.01.01.00","Variações Cambiais Ativas","account_demo_301010501","Contas que registram os ganhos apurados em razão de variações ativas Decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. +Atenção: +1) As variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei nº 9.718, art. 9º c/c art. 17); +2) Nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF nº 84/79, de 20 de dezembro de 1979, da IN SRF nº 23/83, de 25 de março de 1983, e da IN SRF nº 67/88, de 21 de abril de 1988 (IN SRF nº 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010200","3.01.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010501","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei nº 9.532, de 1997, art. 28, alterado pela MP nº 1.636, de 1998, art. 2º, e reedições).Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) Os ganhos auferidos em operações day-trade devem ser informados em conta específica. +2) O valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. +3) São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010300","3.01.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_301010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010400","3.01.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_301010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010500","3.01.01.05.01.05.00","Outras Receitas Financeiras","account_demo_301010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas nas contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência.Atenção: 1) As variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; 2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010600","3.01.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010700","3.01.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_301010501","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas. Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. + +c) as bonificações recebidas. Atenção: 1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei nº 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3º da Lei nº 8.849, de 1994, e art. 3º da Lei nº 9.064, de 1995). 2) o caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei nº 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +d) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +e) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências. Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto nº 3.000, de 1999, e no art. 74 da Medida Provisória nº 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010710","3.01.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010800","3.01.01.05.01.08.00","Resultados Positivos em SCP","account_demo_301010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para o registro: +a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; +b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. +Atenção: os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto nº 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010900","3.01.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_301010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4º trimestre. Atenção: Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais..","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011000","3.01.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_301010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011010","3.01.01.05.01.10.10","Prêmios Recebidos na Emissão de Debêntures","account_demo_301010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011020","3.01.01.05.01.10.20","Doações e Subvenções para Investimentos","account_demo_301010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011030","3.01.01.05.01.10.30","Contrapartida dos Ajustes ao Valor Presente","account_demo_301010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011040","3.01.01.05.01.10.40","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011100","3.01.01.05.01.11.00","Outras Receitas Operacionais","account_demo_301010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei nº 9.430, de 1996, art. 70, § 3º, II); +e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3º da Lei nº 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107","3.01.01.07","DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010701","3.01.01.07.01","DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","account_demo_3010107"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010107010100","3.01.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_301010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a +administradores, diretores, gerentes e seus assessores (PN Cosit nº 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010201","3.01.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_301010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. +2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010203","3.01.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010205","3.01.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010207","3.01.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010209","3.01.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_301010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; +2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010300","3.01.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010400","3.01.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010401","3.01.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_301010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010402","3.01.01.07.01.04.02","Locação de Mão-de-obra","account_demo_301010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010500","3.01.01.07.01.05.00","Encargos Sociais – Previdência Social","account_demo_301010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes – PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010600","3.01.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_301010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010700","3.01.01.07.01.07.00","Encargos Sociais – Outros","account_demo_301010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010800","3.01.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_301010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010900","3.01.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei nº 9.249/1995, art.13, § 2º)","account_demo_301010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011000","3.01.01.07.01.10.00","Doações a Entidades Civis","account_demo_301010701","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011100","3.01.01.07.01.11.00","Outras Contribuições e Doações","account_demo_301010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011200","3.01.01.07.01.12.00","Alimentação do Trabalhador","account_demo_301010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011300","3.01.01.07.01.13.00","PIS/Pasep","account_demo_301010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011400","3.01.01.07.01.14.00","Cofins","account_demo_301010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011500","3.01.01.07.01.15.00","CPMF","account_demo_301010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011600","3.01.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_301010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta; +e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; +f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011700","3.01.01.07.01.17.00","Arrendamento Mercantil","account_demo_301010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011800","3.01.01.07.01.18.00","Aluguéis","account_demo_301010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011900","3.01.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_301010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012001","3.01.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_301010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012002","3.01.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_301010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012100","3.01.01.07.01.21.00","Multas","account_demo_301010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012200","3.01.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_301010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012300","3.01.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_301010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012400","3.01.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_301010701","Contas que registram as despesas com a constituição de provisões para: +a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); +b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012500","3.01.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_301010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012600","3.01.01.07.01.26.00","Demais Provisões","account_demo_301010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012700","3.01.01.07.01.27.00","Gratificações a Administradores","account_demo_301010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012800","3.01.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012900","3.01.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013000","3.01.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_301010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013100","3.01.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_301010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013200","3.01.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_301010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013301","3.01.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_301010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013390","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: +a) contribuição sindical; +b) prêmios de seguro; +c) fretes e carretos que não componham os custos; +d) transporte de empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109","3.01.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010901","3.01.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3010109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010109010100","3.01.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_301010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. +Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010200","3.01.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010901","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). +Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010300","3.01.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_301010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010400","3.01.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_301010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio liquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP) observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010500","3.01.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_301010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira; +2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010600","3.01.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010700","3.01.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_301010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção:considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010710","3.01.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. +Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010800","3.01.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_301010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010900","3.01.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_301010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011000","3.01.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_301010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011100","3.01.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011200","3.01.01.09.01.12.00","(-) Contrapartida dos Ajustes de Valor do Imobilizado e Intangível","account_demo_301010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010301","3.01.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_30103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301030101","3.01.03.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_3010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010301010100","3.01.03.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente","account_demo_301030101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação, de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301010110","3.01.03.01.01.01.10","Ganhos de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030101","Contas que registram o ganho de capital resultante de acréscimo, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial. +Atenção: Esse valor deve ser excluído do lucro líquido para determinação do lucro real no período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301010200","3.01.03.01.01.02.00","Outras Receitas Não Operacionais","account_demo_301030101","Contas que registram: +a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; +b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); +c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" +"account_demo_301030103","3.01.03.01.03","DESPESAS NÃO OPERACIONAIS","account_demo_3010301",,"view","account.data_account_type_view","base.main_company" +"account_demo_3010301030100","3.01.03.01.03.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_301030103","Contas que registram o contábil dos bens do ativo permanente baixados no curso do período de apuração cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente. O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301030110","3.01.03.01.03.01.10","(-) Perdas de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030103","Contas que registram a perda de capital resultante de redução, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301030200","3.01.03.01.03.02.00","(-) Outras Despesas Não Operacionais","account_demo_301030103","Contas que registram: +a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos. +Atenção: Sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426 do Decreto no 3.000, de 1999. +b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" +"account_demo_30105","3.01.05","PARTICIPAÇÕES","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501","3.01.05.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301050101","3.01.05.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501010100","3.01.05.01.01.01.00","(-) Participações de Empregados","account_demo_301050101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501010200","3.01.05.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_301050101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501010300","3.01.05.01.01.03.00","(-) Outras Participações de Empregados","account_demo_301050101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" +"account_demo_301050103","3.01.05.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501030100","3.01.05.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_301050103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501030200","3.01.05.01.03.02.00","(-) Participações de Debêntures ","account_demo_301050103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" +"account_demo_3010501030300","3.01.05.01.03.03.00","(-) Outras ","account_demo_301050103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" +"account_demo_302","3.02","PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30201","3.02.01","PROVISÃO PARA CSLL E IRPJ","account_demo_302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3020101","3.02.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_30201"," ","view","account.data_account_type_view","base.main_company" +"account_demo_302010101","3.02.01.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_3020101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3020101010100","3.02.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_302010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão da CSLL sobre os resultados das operações realizadas com os não-associados. +Atenção: para as empresas com atividades mistas, os valores da CSLL relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" +"account_demo_3020101010200","3.02.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_302010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão para o IRPJ sobre os resultados das operações realizadas com os não-associados. +Atenção: para as empresas com atividades mistas, os valores do IRPJ relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" +"account_demo_305","3.05","RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30501","3.05.01","RESULTADO OPERACIONAL DA ATIVIDADE RURAL ","account_demo_305"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101","3.05.01.01","RECEITA OPERACIONAL LÍQUIDA DA ATIVIDADE RURAL","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010101","3.05.01.01.01","RECEITA BRUTA DA ATIVIDADE RURAL","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101010100","3.05.01.01.01.01.00","Receita da Atividade Rural","account_demo_305010101","Contas que registram a receita da atividade rural. ","other","account.data_account_type_view","base.main_company" +"account_demo_305010103","3.05.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101030100","3.05.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_305010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes da conta Receita da Atividade Rural.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030200","3.05.01.01.03.02.00","(-) ICMS","account_demo_305010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes da conta Receita da Atividade Rural. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030300","3.05.01.01.03.03.00","(-) Cofins","account_demo_305010103","Contas que registram a Cofins apurada sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). + Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030400","3.05.01.01.03.04.00","(-) PIS/Pasep","account_demo_305010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030500","3.05.01.01.03.05.00","(-) ISS","account_demo_305010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços, conforme legislação específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030600","3.05.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_305010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que trata a conta Receita da Atividade Rural, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050103","3.05.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010301","3.05.01.03.01","CUSTO DOS PRODUTOS DA ATIVIDADE RURAL VENDIDOS","account_demo_3050103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050103010000","3.05.01.03.01.00.00","Custo dos Produtos Vendidos da Atividade Rural","account_demo_305010301",,"other","account.data_account_type_view","base.main_company" +"account_demo_305010309","3.05.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_305010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050105","3.05.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010501","3.05.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3050105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050105010100","3.05.01.05.01.01.00","Variações Cambiais Ativas","account_demo_305010501","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. +Atenção: +1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei no 9.718, art. 9o c/c art. 17); +2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de 20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010200","3.05.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010501","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; +2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. +3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010300","3.05.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_305010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. +Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010400","3.05.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_305010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010500","3.05.01.05.01.05.00","Outras Receitas Financeiras","account_demo_305010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. +Atenção: +1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; +2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010600","3.05.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010700","3.05.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_305010501","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +c) as bonificações recebidas; +Atenção: +1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995).; +2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; +Atenção:os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010710","3.05.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010800","3.05.01.05.01.08.00","Resultados Positivos em SCP","account_demo_305010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para a registro: +a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; +b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. +Atenção:os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto no 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010900","3.05.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_305010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4o trimestre. +Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011000","3.05.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_305010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011100","3.05.01.05.01.11.00","Outras Receitas Operacionais","account_demo_305010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II);e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011200","3.05.01.05.01.12.00","Prêmios Recebidos na Emissão de Debêntures","account_demo_305010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011300","3.05.01.05.01.13.00","Doações e Subvenções para Investimentos","account_demo_305010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011400","3.05.01.05.01.14.00","Contrapartida dos Ajustes ao Valor Presente","account_demo_305010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011500","3.05.01.05.01.15.00","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3050107","3.05.01.07","DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010701","3.05.01.07.01","DESPESAS OPERACIONAIS DA ATIVIDADE RURAL","account_demo_3050107"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050107010100","3.05.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_305010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal ou consultivo. +Atenção: os valores das gratificações aos dirigentes que estejam ligados à área de produção rural devem ser informados na conta Remuneração a Dirigentes da Produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010201","3.05.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_305010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. +2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010203","3.05.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010205","3.05.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010207","3.05.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010209","3.05.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_305010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; +2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010300","3.05.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010400","3.05.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010401","3.05.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_305010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010402","3.05.01.07.01.04.02","Locação de Mão-de-obra","account_demo_305010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010500","3.05.01.07.01.05.00","Encargos Sociais - Previdência Social","account_demo_305010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010600","3.05.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_305010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010700","3.05.01.07.01.07.00","Encargos Sociais – Outros","account_demo_305010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010800","3.05.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_305010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010900","3.05.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account_demo_305010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011000","3.05.01.07.01.10.00","Doações a Entidades Civis","account_demo_305010701","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011100","3.05.01.07.01.11.00","Outras Contribuições e Doações","account_demo_305010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011200","3.05.01.07.01.12.00","Alimentação do Trabalhador","account_demo_305010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011300","3.05.01.07.01.13.00","PIS/Pasep","account_demo_305010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011400","3.05.01.07.01.14.00","Cofins","account_demo_305010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011500","3.05.01.07.01.15.00","CPMF","account_demo_305010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011600","3.05.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_305010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta ; +e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; +f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011700","3.05.01.07.01.17.00","Arrendamento Mercantil","account_demo_305010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011800","3.05.01.07.01.18.00","Aluguéis","account_demo_305010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011900","3.05.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_305010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012001","3.05.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_305010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012002","3.05.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_305010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012100","3.05.01.07.01.21.00","Multas","account_demo_305010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012200","3.05.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_305010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012300","3.05.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_305010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012400","3.05.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_305010701","Contas que registram as despesas com a constituição de provisões para: +a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); +b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012500","3.05.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_305010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012600","3.05.01.07.01.26.00","Demais Provisões","account_demo_305010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012700","3.05.01.07.01.27.00","Gratificações a Administradores","account_demo_305010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012800","3.05.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012900","3.05.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013000","3.05.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_305010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013100","3.05.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_305010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013200","3.05.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_305010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013301","3.05.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_305010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013390","3.05.01.07.01.33.90","Outras Despesas Operacionais","account_demo_305010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: +a) contribuição sindical; +b) prêmios de seguro; +c) fretes e carretos que não componham os custos; +d) transporte de empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109","3.05.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010901","3.05.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3050109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050109010100","3.05.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_305010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art. 52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização,dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. +Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo +diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010200","3.05.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010901","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). +Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010300","3.05.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_305010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010400","3.05.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_305010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio líquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP), observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010500","3.05.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_305010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira. +2) As variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010600","3.05.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010700","3.05.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_305010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010710","3.05.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. +Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010800","3.05.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_305010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010900","3.05.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_305010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011000","3.05.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_305010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011100","3.05.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011200","3.05.01.09.01.12.00","(-) Contrapartida dos ajustes de valor do imobilizado e intangível","account_demo_305010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_30503","3.05.03","PARTICIPAÇÕES","account_demo_305"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050301","3.05.03.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30503"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305030101","3.05.03.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3050301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050301010100","3.05.03.01.01.01.00","(-) Participações de Empregados","account_demo_305030101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301010200","3.05.03.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_305030101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301010300","3.05.03.01.01.03.00","(-) Outras Participações de Empregados","account_demo_305030101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" +"account_demo_305030103","3.05.03.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3050301",,"view","account.data_account_type_view","base.main_company" +"account_demo_3050301030100","3.05.03.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_305030103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301030200","3.05.03.01.03.02.00","(-) Participações de Debêntures","account_demo_305030103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" +"account_demo_3050301030500","3.05.03.01.03.05.00","(-) Outras ","account_demo_305030103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" +"account_demo_306","3.06","PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account_demo_3",,"view","account.data_account_type_view","base.main_company" +"account_demo_30601","3.06.01","PROVISÃO PARA CSLL E IRPJ","account_demo_306",,"view","account.data_account_type_view","base.main_company" +"account_demo_3060101","3.06.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_30601",,"view","account.data_account_type_view","base.main_company" +"account_demo_306010101","3.06.01.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_3060101",,"view","account.data_account_type_view","base.main_company" +"account_demo_3060101010100","3.06.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_306010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" +"account_demo_3060101010200","3.06.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_306010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" +"account.gpf",4,"SUPERÁVIT/DÉFICIT LÍQUIDO DO PERÍODO","account.chart0","GRUPO DESTINADO EXCLUSIVAMENTE ÀS SOCIEDADES SIMPLES, SEM FINS LUCRATIVOS","view","account.data_account_type_view","base.main_company" +"account_demo_401","4.01","RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40101","4.01.01","RECEITA OPERACIONAL LÍQUIDA","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account.income_view","4.01.01.01","RECEITA BRUTA","account_demo_40101"," ","view","account.data_account_type_view","base.main_company" +"account.rev","4.01.01.01.01","RECEITA DE VENDA DE PRODUTOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101010100","4.01.01.01.01.01.00","Da atividade de Educação","account.rev","Contas que registram a receita de venda dos produtos da atividade de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010200","4.01.01.01.01.02.00","Da atividade de Saúde","account.rev","Contas que registram a receita de venda dos produtos da atividade de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010300","4.01.01.01.01.03.00","Da atividade de Assistência Social","account.rev","Contas que registram a receita de venda dos produtos da atividade de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010400","4.01.01.01.01.04.00","Outras","account.rev","Contas que registram as demais receitas de vendas de produtos.","other","account.data_account_type_view","base.main_company" +"account_demo_401010102","4.01.01.01.02","RECEITA DE PRESTAÇÃO DOS SERVIÇOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101020100","4.01.01.01.02.01.00","Serviços Educacionais","account_demo_401010102","Contas que registram as receitas de prestação de serviços na atividade educacional.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020200","4.01.01.01.02.02.00","Doações/Subvenções Vinculadas ","account_demo_401010102","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à prestação de serviços, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020300","4.01.01.01.02.03.00","Doações","account_demo_401010102","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020400","4.01.01.01.02.04.00","Contribuições","account_demo_401010102","Contas que registram as receitas recebidas como contribuições com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020500","4.01.01.01.02.05.00","Outras","account_demo_401010102","Contas que registram as demais receitas de prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_401010103","4.01.01.01.03","RECEITA DE SERVIÇOS DE SAÚDE","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101030100","4.01.01.01.03.01.00","Pacientes Particulares","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030200","4.01.01.01.03.02.00","Convênios – SUS","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes conveniados do SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030300","4.01.01.01.03.03.00","Convênios – Outros","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a outros pacientes conveniados.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030400","4.01.01.01.03.04.00","Doações/Subvenções Vinculadas","account_demo_401010103","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030500","4.01.01.01.03.05.00","Doações","account_demo_401010103","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área da saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030600","4.01.01.01.03.06.00","Contribuições","account_demo_401010103","Contas que registram as receitas recebidas como contribuições com destinação à área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030700","4.01.01.01.03.07.00","Outras","account_demo_401010103","Contas que registram as demais receitas de serviços de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_401010104","4.01.01.01.04","RECEITAS DE SERVIÇOS DE ASSISTÊNCIA SOCIAL","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101040100","4.01.01.01.04.01.00","Pacientes Particulares","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040200","4.01.01.01.04.02.00","Convênios - Outros","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares através de convênios/contratos/termos de parcerias.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040300","4.01.01.01.04.03.00","Doações/Subvenções Vinculadas","account_demo_401010104","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040400","4.01.01.01.04.04.00","Doações","account_demo_401010104","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040500","4.01.01.01.04.05.00","Contribuições","account_demo_401010104","Contas que registram as receitas recebidas como contribuições com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040600","4.01.01.01.04.06.00","Outras","account_demo_401010104","Contas que registram as demais receitas de serviços na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_401010105","4.01.01.01.05","RECEITAS DE OUTRAS ATIVIDADES","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101050100","4.01.01.01.05.01.00","Contribuições Sindicais","account_demo_401010105","Contas que registram receitas com a natureza de contribuições sindicais.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050200","4.01.01.01.05.02.00","Contribuições Confederativas/Associativas","account_demo_401010105","Contas que registram receitas com a natureza de contribuições confederativas e/ou associativas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050300","4.01.01.01.05.03.00","Mensalidades","account_demo_401010105","Contas que registram receitas com a natureza de mensalidades revertidas por seus associados.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050400","4.01.01.01.05.04.00","Doações/Subvenções","account_demo_401010105","Contas que registram receitas com a natureza de doações e/ou subvenções recebidas de entidades públicas e/ou privadas, e de pessoas físicas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050500","4.01.01.01.05.05.00","Outras Contribuições","account_demo_401010105","Demais contas que registram contribuições não especificadas anteriormente.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050600","4.01.01.01.05.06.00","Outras","account_demo_401010105"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401010109","4.01.01.01.09","DEDUÇÕES DA RECEITA BRUTA","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101090100","4.01.01.01.09.01.00","(-) Vendas Canceladas","account_demo_401010109","Contas que registram vendas das prestações de serviços canceladas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101090200","4.01.01.01.09.02.00","(-) Devoluções e Descontos Incondicionais","account_demo_401010109","Contas que registram as devoluções e descontos incondicionais nas atividades da entidade.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101090300","4.01.01.01.09.03.00","Outras","account_demo_401010109","Contas que registram as demais deduções da receita bruta.","other","account.data_account_type_view","base.main_company" +"account_demo_40103","4.01.03","CUSTO DOS PRODUTOS E SERVIÇOS VENDIDOS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301","4.01.03.01","CUSTO DOS PRODUTOS VENDIDOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401030101","4.01.03.01.01","CUSTO DOS PRODUTOS VENDIDOS PARA EDUCAÇÃO","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301010100","4.01.03.01.01.01.00","Custos dos Produtos para Educação - Vendidos","account_demo_401030101","Contas que registram o custo do produto vendido na área de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301010200","4.01.03.01.01.02.00","Custos dos Produtos para Educação - Gratuidades","account_demo_401030101","Contas que registram o custo do produto dado em gratuidade na área de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301010300","4.01.03.01.01.03.00","Outros Custos","account_demo_401030101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030102","4.01.03.01.02","CUSTO DOS PRODUTOS VENDIDOS PARA SAÚDE","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301020100","4.01.03.01.02.01.00","Custos dos Produtos para Saúde – Vendidos","account_demo_401030102","Contas que registram o custo do produto vendido na área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301020200","4.01.03.01.02.02.00","Custos dos Produtos para Saúde - Gratuidades","account_demo_401030102","Contas que registram o custo do produto dado em gratuidade na área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301020300","4.01.03.01.02.03.00","Outros Custos","account_demo_401030102"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030103","4.01.03.01.03","CUSTO DOS PRODUTOS VENDIDOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301030100","4.01.03.01.03.01.00","Custos dos Produtos para Assistência Social - Vendidos","account_demo_401030103","Contas que registram o custo do produto vendido na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301030200","4.01.03.01.03.02.00","Custos dos Produtos para Assistência Social - Gratuidades","account_demo_401030103","Contas que registram o custo do produto dado em gratuidade na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301030300","4.01.03.01.03.03.00","Outras","account_demo_401030103"," ","other","account.data_account_type_view","base.main_company" +"account.cos","4.01.03.01.04","CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account.cog","4.01.03.01.04.01.00","Custos dos Produtos Vendidos em Geral","account.cos","Contas que registram o custo do produto vendido nas atividades não abrangidas anteriormente.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301040200","4.01.03.01.04.02.00","Outros Custos","account.cos"," ","other","account.data_account_type_view","base.main_company" +"account_demo_4010302","4.01.03.02","CUSTO DOS SERVIÇOS PRESTADOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401030201","4.01.03.02.01","CUSTO DOS SERVIÇOS PRESTADOS PARA EDUCAÇÃO","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302010100","4.01.03.02.01.01.00","Custo dos Serviços Prestados a Alunos Não Bolsistas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos não bolsistas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010200","4.01.03.02.01.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias (Exceto PROUNI)","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no PROUNI.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010300","4.01.03.02.01.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de educação, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010400","4.01.03.02.01.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados às demais doações, com destinação à área de educação, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010500","4.01.03.02.01.05.00","Custo dos Serviços Prestados ao PROUNI","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados ao PROUNI.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010600","4.01.03.02.01.06.00","Custo dos Serviços Prestados a Gratuidade ","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos com gratuidades de bolsas parciais e/ou integrais, exceto às vinculadas ao PROUNI, sendo que para as bolsas parciais, o custo deverá ser lançado com o valor parcial, o restante do custo deste aluno, será lançado na conta dos alunos não bolsistas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010700","4.01.03.02.01.07.00","Outros Custos","account_demo_401030201"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030202","4.01.03.02.02","CUSTO DOS SERVIÇOS PRESTADOS PARA SAÚDE","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302020100","4.01.03.02.02.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020200","4.01.03.02.02.02.00","Custo dos Serviços Prestados a Convênios SUS","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes atendidos através do convênio do SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020300","4.01.03.02.02.03.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020400","4.01.03.02.02.04.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020500","4.01.03.02.02.05.00","Custo dos Serviços Prestados a Doações","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020600","4.01.03.02.02.06.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes com gratuidades do pagamento, exceto às vinculadas ao SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020700","4.01.03.02.02.07.00","Outros Custos","account_demo_401030202"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030203","4.01.03.02.03","CUSTO DOS SERVIÇOS PRESTADOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302030100","4.01.03.02.03.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030200","4.01.03.02.03.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados aos convênios/contratos/parcerias, exceto àqueles que estão vinculados por doações e por subvenções.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030300","4.01.03.02.03.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados a doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030400","4.01.03.02.03.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030203","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030500","4.01.03.02.03.05.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários com gratuidades do pagamento, exceto às atividades vinculadas por doações e por subvenções. Em especial, ao publico alvo da política nacional de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030600","4.01.03.02.03.06.00","Outros Custos","account_demo_401030203"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030204","4.01.03.02.04","CUSTO DOS SERVIÇOS PRESTADOS PARA AS DEMAIS ATIVIDADES","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302040100","4.01.03.02.04.01.00","Custo dos Serviços Prestados em Geral","account_demo_401030204","Contas que registram o custo da prestação do serviço para as demais atividades, não informadas anteriormente. ","other","account.data_account_type_view","base.main_company" +"account_demo_4010302040200","4.01.03.02.04.02.00","Outros Custos","account_demo_401030204"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40105","4.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010501","4.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_40105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401050101","4.01.05.01.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_4010501"," ","view","account.data_account_type_view","base.main_company" +"account.income_fx_income","4.01.05.01.01.01.00","Variações Cambiais Ativas","account_demo_401050101","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações das taxas de câmbio. +Atenção: +1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da +exploração (Lei no 9.718, art. 9o c/c art. 17); +2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de +20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010200","4.01.05.01.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_401050101","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e +controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; +2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica; +3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010300","4.01.05.01.01.03.00","Ganhos em Operações Day-Trade","account_demo_401050101","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. +Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010400","4.01.05.01.01.04.00","Outras Receitas de Aplicações Financeiras","account_demo_401050101","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em outras contas. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. +Atenção: +1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; +2) as variações cambiais ativas devem ser informadas na conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010500","4.01.05.01.01.05.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401050101","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos em outra conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010600","4.01.05.01.01.06.00","Resultados Positivos em Participações Societárias","account_demo_401050101","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +c) as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido. +d) as bonificações recebidas; +Atenção: +1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são +consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995); +2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; +Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010700","4.01.05.01.01.07.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_401050101","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. +Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais ","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010800","4.01.05.01.01.08.00","Reversão dos Saldos das Provisões Operacionais","account_demo_401050101","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010900","4.01.05.01.01.09.00","Outras Receitas Operacionais","account_demo_401050101","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II); +e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na +forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501011000","4.01.05.01.01.10.00","Outras","account_demo_401050101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40107","4.01.07","DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010701","4.01.07.01","DESPESAS OPERACIONAIS","account_demo_40107"," ","view","account.data_account_type_view","base.main_company" +"account.expense_view","4.01.07.01.01","DESPESAS OPERACIONAIS","account_demo_4010701"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40107010100","4.01.07.01.01.00","Remunerações a Empregados","account.expense_view","Contas que registram os valores lançados como salários, gratificações, horas extras, adicionais e similares pag0s a empregados da entidade.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010200","4.01.07.01.02.00","Indenizações Trabalhistas","account.expense_view","Contas que registram os valores lançados como abonos pecuniários, indenização de 40% do FGTS, indenizações determinadas pelo Juiz e similares pagas aos empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010300","4.01.07.01.03.00","Remuneração a Dirigentes e a Conselho de Administração/Fiscal","account.expense_view","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010400","4.01.07.01.04.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account.expense_view","Contas que registram as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica declarante, tais como: comissões, corretagens, gratificações, honorários e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010500","4.01.07.01.05.00","Prestação de Serviço por Pessoa Jurídica","account.expense_view","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010600","4.01.07.01.06.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account.expense_view","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010700","4.01.07.01.07.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account.expense_view","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010800","4.01.07.01.08.00","Doações a Entidades Civis","account.expense_view","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010900","4.01.07.01.09.00","Outras Contribuições e Doações","account.expense_view","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011000","4.01.07.01.10.00","FGTS (sem indenização 40%)","account.expense_view","Contas que registram o FGTS, inclusive os valores do FGTS do 13º. salário. Não informar os valores de indenização da multa de 40% do FGTS nesse item, e sim, na conta Indenizações Trabalhistas .","other","account.data_account_type_view","base.main_company" +"account_demo_40107011100","4.01.07.01.11.00","Assistência Médica, Odontológica, Medicamentos, Aparelhos Ortopédicos e Similares","account.expense_view","Contas que registram as despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011200","4.01.07.01.12.00","Provisões para Férias e 13o Salário de Empregados","account.expense_view","Contas que registram as despesas com a constituição de provisões para: a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); b) o 13o salário, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_40107011300","4.01.07.01.13.00","Demais Provisões","account.expense_view","Contas que registram as despesas com provisões não relacionadas nas contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011400","4.01.07.01.14.00","Arrendamento Mercantil","account.expense_view","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_40107011500","4.01.07.01.15.00","Aluguéis","account.expense_view","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011600","4.01.07.01.16.00","Despesas com Veículos e de Conservação de Bens e Instalações","account.expense_view","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011700","4.01.07.01.17.00","Propaganda e Publicidade","account.expense_view","Contas que registram as despesas com propaganda e publicidade. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011800","4.01.07.01.18.00","Multas","account.expense_view","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011900","4.01.07.01.19.00","Encargos de Depreciação e Amortização","account.expense_view","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012000","4.01.07.01.20.00","Repasses para Outras Entidades (Sindicatos/Federações/Confederações)","account.expense_view","Contas que foram repassadas parte das contribuições/doações/mensalidades e similares para Sindicatos/Federações/Confederações.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012100","4.01.07.01.21.00","Contribuições Previdenciárias Patronais","account.expense_view","Contas que registram as contribuições previdenciárias devidas. No caso de imunes/isentas, informar o valor da contribuição previdenciária patronal devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012200","4.01.07.01.22.00","COFINS","account.expense_view","Contas que registram a Cofins devida. No caso de imunes/isentas, informar o valor da Cofins devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012300","4.01.07.01.23.00","CSLL","account.expense_view","Contas que registram a CSLL devida. No caso de imunes/isentas, informar o valor da CSLL devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012400","4.01.07.01.24.00","PIS/PASEP","account.expense_view","Contas que registram o valor da contribuição para o PIS/PASEP devida.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012500","4.01.07.01.25.00","CPMF","account.expense_view","Contas que registram o valor da CPMF devida.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012600","4.01.07.01.26.00","Demais Impostos, Taxas e Contribuições, exceto as citadas acima.","account.expense_view","Contas que registram os demais impostos, taxas e contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012700","4.01.07.01.27.00","Outras Despesas Operacionais","account.expense_view"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40109","4.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010901","4.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_40109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401090101","4.01.09.01.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_4010901"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010901010100","4.01.09.01.01.01.00","(-) Variações Cambiais Passivas","account_demo_401090101","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o), inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010200","4.01.09.01.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_401090101","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias, que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado a vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições).São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). Atenção: As perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010300","4.01.09.01.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_401090101","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010400","4.01.09.01.01.04.00","(-) Outras Despesas de Aplicações","account_demo_401090101","Contas que registram as despesas relativas a juros, não incluídas em outras contas, a descontos de títulos de crédito e outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das +obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesas financeiras; +2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas .","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010500","4.01.09.01.01.05.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401090101","Contas que registram os prejuízos havidos em virtude de alienação, títulos não integrantes do ativo permanente, desde que não incluídos nas contas acima.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010600","4.01.09.01.01.06.00","(-) Resultados Negativos em Participações Societárias","account_demo_401090101","Contas que registram as perdas por ajustes no valor de investimentos relevantes, avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010700","4.01.09.01.01.07.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_401090101","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010800","4.01.09.01.01.08.00","Outras Despesas Operacionais","account_demo_401090101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_403","4.03","OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40301","4.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_403"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030101","4.03.01.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_40301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_403010101","4.03.01.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030101010100","4.03.01.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente.","account_demo_403010101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais . Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_4030101010200","4.03.01.01.01.02.00","Outras Receitas Não Operacionais","account_demo_403010101","Contas que registram: +a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; +b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela +equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); +c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. +Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" +"account_demo_403020101","4.03.02.01.01","DESPESAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030201010100","4.03.02.01.01.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_403020101","Contas que registram o valor contábil dos bens do ativo permanente baixados no curso do período de apuração, cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente . O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_4030201010200","4.03.02.01.01.02.00","(-) Outras Despesas Não Operacionais","account_demo_403020101","Contas que registram: +a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos; +Atenção: sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426, ambos do Decreto no 3.000, de 1999. +b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" +"account_demo_5",5,"CUSTOS DE PRODUÇÃO","account.chart0",,"view","account.data_account_type_expense","base.main_company" +"account_demo_501","5.01","CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_50101","5.01.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_501010100","5.01.01.01.00","Consumo de Insumos","account_demo_50101","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material direto e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010400","5.01.01.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50101","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010500","5.01.01.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50101","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010503","5.01.01.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501010505","5.01.01.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501010507","5.01.01.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010509","5.01.01.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50101","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010600","5.01.01.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010700","5.01.01.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501010800","5.01.01.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50101","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501010900","5.01.01.09.00","Locação de Mão-de-obra","account_demo_50101","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501011000","5.01.01.10.00","Encargos Sociais – Previdência Social","account_demo_50101","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011100","5.01.01.11.00","Encargos Sociais – FGTS","account_demo_50101","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011200","5.01.01.12.00","Encargos Sociais – Outros","account_demo_50101","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011300","5.01.01.13.00","Alimentação do Trabalhador","account_demo_50101","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011400","5.01.01.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50101","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011500","5.01.01.15.00","Arrendamento Mercantil","account_demo_50101","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","other","account.data_account_type_expense","base.main_company" +"account_demo_501011600","5.01.01.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50101","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011700","5.01.01.17.00","Constituição de Provisões","account_demo_50101","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011800","5.01.01.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501011900","5.01.01.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501012000","5.01.01.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501012100","5.01.01.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501019000","5.01.01.90.00","Outros Custos","account_demo_50101","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" +"account_demo_50103","5.01.03","CUSTO DOS SERVIÇOS PRODUZIDOS","account_demo_501",,"view","account.data_account_type_expense","base.main_company" +"account_demo_501030200","5.01.03.02.00","Material Aplicado na Produção de Serviços","account_demo_50103","Contas correspondentes aos materiais aplicados diretamente na produção de serviços dos serviços durante o período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030400","5.01.03.04.00","Remuneração a Dirigentes ligados à Produção de Serviços","account_demo_50103","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção de serviços, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção de serviços (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção de serviços, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030500","5.01.03.05.00","Custo do Pessoal Aplicado na Produção de Serviços","account_demo_50103","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção de serviços da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030503","5.01.03.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" +"account_demo_501030505","5.01.03.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" +"account_demo_501030507","5.01.03.05.07","Plano de Previdência Privada de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030509","5.01.03.05.09","Outros Gastos com Pessoal Ligado à Produção de Serviços","account_demo_50103","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030600","5.01.03.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030700","5.01.03.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501030800","5.01.03.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50103","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501030900","5.01.03.09.00","Locação de Mão-de-obra","account_demo_50103","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501031000","5.01.03.10.00","Encargos Sociais – Previdência Social","account_demo_50103","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031100","5.01.03.11.00","Encargos Sociais – FGTS","account_demo_50103","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria – PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031200","5.01.03.12.00","Encargos Sociais – Outros","account_demo_50103","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção de serviços, não classificados nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031300","5.01.03.13.00","Alimentação do Trabalhador","account_demo_50103","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção de serviços, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031400","5.01.03.14.00","Manutenção e Reparo de Bens Aplicados na Produção de Serviços","account_demo_50103","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031500","5.01.03.15.00","Arrendamento Mercantil","account_demo_50103","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção de serviços, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção de serviços, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção de serviços devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031600","5.01.03.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50103","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção de serviços. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção de serviços devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031700","5.01.03.17.00","Constituição de Provisões","account_demo_50103","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção de serviços da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031800","5.01.03.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501031900","5.01.03.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501032000","5.01.03.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501032100","5.01.03.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501039000","5.01.03.90.00","Outros Custos","account_demo_50103","Contas que representam os demais custos da empresa no processo de produção de serviços, para os quais não haja conta mais específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" +"account_demo_50105","5.01.05","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS DA ATIVIDADE RURAL","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_501050100","5.01.05.01.00","Consumo de Insumos","account_demo_50105","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material secundário e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050400","5.01.05.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50105","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050500","5.01.05.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50105","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050503","5.01.05.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501050505","5.01.05.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501050507","5.01.05.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050509","5.01.05.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50105","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050600","5.01.05.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050700","5.01.05.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501050800","5.01.05.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50105","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501050900","5.01.05.09.00","Locação de Mão-de-obra","account_demo_50105","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501051000","5.01.05.10.00","Encargos Sociais – Previdência Social","account_demo_50105","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051100","5.01.05.11.00","Encargos Sociais – FGTS","account_demo_50105","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051200","5.01.05.12.00","Encargos Sociais – Outros","account_demo_50105","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051300","5.01.05.13.00","Alimentação do Trabalhador","account_demo_50105","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051400","5.01.05.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50105","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051500","5.01.05.15.00","Arrendamento Mercantil","account_demo_50105","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051600","5.01.05.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50105","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051700","5.01.05.17.00","Constituição de Provisões","account_demo_50105","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051800","5.01.05.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501051900","5.01.05.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501052000","5.01.05.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501052100","5.01.05.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501059000","5.01.05.90.00","Outros Custos","account_demo_50105","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" diff --git a/l10n_br_account/demo/account.tax.code.csv b/l10n_br_account/demo/account.tax.code.csv deleted file mode 100644 index b192546ced11..000000000000 --- a/l10n_br_account/demo/account.tax.code.csv +++ /dev/null @@ -1,13 +0,0 @@ -"id","code","name","parent_id:id","sign","domain","tax_discount" -"demo_tax_code_chart_root","","Códigos de Impostos Brasileiros","","1","",0 -"demo_tax_code_1","ICMS","ICMS","demo_tax_code_chart_root","1","icms",1 -"demo_tax_code_2","ICMS Subist","ICMS Subist","demo_tax_code_chart_root","1","icmsst",0 -"demo_tax_code_3","IPI","IPI","demo_tax_code_chart_root","1","ipi",0 -"demo_tax_code_4","PIS","PIS","demo_tax_code_chart_root","1","pis",1 -"demo_tax_code_5","COFINS","COFINS","demo_tax_code_chart_root","1","cofins",1 -"demo_tax_code_6","IRPJ","IRPJ","demo_tax_code_chart_root","1","irpj",1 -"demo_tax_code_7","IR","IR","demo_tax_code_chart_root","1","ir",1 -"demo_tax_code_8","ISS","ISS","demo_tax_code_chart_root","1","iss",1 -"demo_tax_code_9","CSLL","CSLL","demo_tax_code_chart_root","1","csll",1 -"demo_tax_code_10","CPP","CPP","demo_tax_code_chart_root","1","cpp",1 - diff --git a/l10n_br_account/demo/account_financial_demo.xml b/l10n_br_account/demo/account_financial_demo.xml index 598a6d4ecce0..9279ad50e0ed 100644 --- a/l10n_br_account/demo/account_financial_demo.xml +++ b/l10n_br_account/demo/account_financial_demo.xml @@ -4,7 +4,7 @@ - True + True A Vista diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml index 0c209040c171..907e7ad5dc1a 100644 --- a/l10n_br_account/demo/account_fiscal_demo.xml +++ b/l10n_br_account/demo/account_fiscal_demo.xml @@ -35,7 +35,143 @@ - 1 + 3 + + + + + 8473.30.41 + Placas-mãe ("mother boards") + + + + + + + 8471.70.12 + Para discos rígidos, com um só conjunto + cabeça-disco (HDA-"Head Disk Assembly") + + + + + + + 8473.30.42 + Placas (módulos) de memória com uma superfície + inferior ou igual a 50cm2 + + + + + + + 8542.32.10 + Não montadas + + + + + + + 8471.30.12 + De peso inferior a 3,5kg com teclado alfanumérico + de no mínimo 70 teclas e com uma tela de área superior a 140cm2 e + inferior a 560cm2 + + + + + + + 8414.59.10 + Microventiladores com área de carcaça inferior a + 90cm² + + + + + + + 8471.60.52 + Teclados + + + + + + + 8471.60.53 + Indicadores ou apontadores (mouse e track-ball, por + exemplo) + + + + + + + 8504.40.30 + Conversores de corrente contínua + + + + + + + 8473.30.19 + Outros + + + + + + + 7326.90.90 + Outras + + + + + + + 4403.10.00 + Tratada com tinta, creosoto ou com outros agentes + de conservação + + + + + + + 8305.20.00 + Grampos apresentados em barretas + + + diff --git a/l10n_br_account/demo/account_tax.xml b/l10n_br_account/demo/account_tax.xml new file mode 100644 index 000000000000..c1fae55eb1c7 --- /dev/null +++ b/l10n_br_account/demo/account_tax.xml @@ -0,0 +1,349 @@ + + + + + + + IPI Saída + IPI Saída + sale + 0.00 + + + + + + ipi + + + + + + + + IPI Saída 2% + IPI Saída 2% + sale + 0.02 + + + + + + ipi + + + + + + + + IPI Saída 5% + IPI Saída 5% + sale + 0.05 + + + + + + ipi + + + + + + + + + IPI Saída 10% + IPI Saída 10% + sale + 0.10 + + + + + + ipi + + + + + + + + IPI Saída 15% + IPI Saída 15% + sale + 0.15 + + + + + + ipi + + + + + + + + ICMS Interno Saída + ICMS Interno Saída + sale + 0.00 + + + + + + icms + + + + + + + + ICMS Externo Saída + ICMS Externo Saída + sale + 0.00 + + + + + + icms + + + + + + + + ICMS Subist Saída + ICMS Subist Saída + sale + 0.00 + + + + + + icms + + + + + + + + PIS Saída + PIS Saída + sale + 0.00 + + + + + + pis + + + + + + + + COFINS Saída + COFINS Saída + sale + 0.00 + + + + + + cofins + + + + + + + + IPI Entrada + IPI Entrada + purchase + 0.00 + + + + + + ipi + + + + + + + + IPI Entrada 2% + IPI Entrada 2% + purchase + 0.02 + + + + + + ipi + + + + + + + + IPI Entrada 5% + IPI Entrada 5% + purchase + 0.05 + + + + + + ipi + + + + + + + + + IPI Entrada 10% + IPI Entrada 10% + purchase + 0.10 + + + + + + ipi + + + + + + + + IPI Entrada 15% + IPI Entrada 15% + purchase + 0.15 + + + + + + ipi + + + + + + + + ICMS Interno Entrada + ICMS Interno Entrada + purchase + 0.00 + + + + + + icms + + + + + + + + ICMS Externo Entrada + ICMS Externo Entrada + purchase + 0.00 + + + + + + icms + + + + + + + + ICMS Subist + ICMS Subist + purchase + 0.00 + + + + + + icms + + + + + + + + PIS Entrada + PIS Entrada + purchase + 0.00 + + + + + + pis + + + + + + + + COFINS Entrada + COFINS Entrada + purchase + 0.00 + + + + + + cofins + + + + + + + + \ No newline at end of file diff --git a/l10n_br_account/demo/account_tax_code.xml b/l10n_br_account/demo/account_tax_code.xml new file mode 100644 index 000000000000..4d83fcccd6bc --- /dev/null +++ b/l10n_br_account/demo/account_tax_code.xml @@ -0,0 +1,1109 @@ + + + + + + + Códigos de Impostos Brasileiros + 1 + + + + + ICMSST + ICMSST + icmsst + 1 + + + + + + IRPJ + IRPJ + irpj + 1 + + + + + + IR + IR + ir + 1 + + + + + + ISSQN + ISSQN + issqn + 1 + + + + + + CSLL + CSLL + csll + 1 + + + + + + COFINS + COFINS + cofins + 1 + + + + + + PIS + PIS + pis + 1 + + + + + + IPI + IPI + ipi + 1 + + + + + + ICMS + ICMS + icms + 1 + + + + + + + 01 + Operação Tributável com Alíquota Básica + Operação Tributável com Alíquota Básica + cofins + 1 + + + + + + 02 + Operação Tributável com Alíquota Diferenciada + Operação Tributável com Alíquota Diferenciada + cofins + 1 + + + + + + 03 + Operação Tributável com Alíquota por Unidade de Medida de Produto + Operação Tributável com Alíquota por Unidade de Medida de Produto + cofins + 1 + + + + + + 04 + Operação Tributável Monofásica - Revenda a Alíquota Zero + Operação Tributável Monofásica - Revenda a Alíquota Zero + cofins + 1 + + + + + + 05 + Operação Tributável por Substituição Tributária + Operação Tributável por Substituição Tributária + cofins + 1 + + + + + + 06 + Operação Tributável a Alíquota zero + Operação Tributável a Alíquota zero + cofins + 1 + + + + + + 07 + Operação Isenta da Contribuição + Operação Isenta da Contribuição + cofins + 1 + + + + + + 08 + Operação sem Incidência da Contribuição + Operação sem Incidência da Contribuição + cofins + 1 + + + + + + 09 + Operação com Suspensão da Contribuição + Operação com Suspensão da Contribuição + cofins + 1 + + + + + + 49 + Outras Operações de Saída + Outras Operações de Saída + cofins + 1 + + + + + + 50 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno + cofins + 1 + + + + + + 51 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + cofins + 1 + + + + + + 52 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação + cofins + 1 + + + + + + 53 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + cofins + 1 + + + + + + 54 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 55 + Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 56 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 60 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno + cofins + 1 + + + + + + 61 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + cofins + 1 + + + + + + 62 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação + cofins + 1 + + + + + + 63 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + cofins + 1 + + + + + + 64 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 65 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 66 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação + cofins + 1 + + + + + + 67 + Crédito Presumido - Outras Operações + Crédito Presumido - Outras Operações + cofins + 1 + + + + + + 70 + Operação de Aquisição sem Direito a Crédito + Operação de Aquisição sem Direito a Crédito + cofins + 1 + + + + + + 71 + Operação de Aquisição com Isenção + Operação de Aquisição com Isenção + cofins + 1 + + + + + + 72 + Operação de Aquisição com Suspensão + Operação de Aquisição com Suspensão + cofins + 1 + + + + + + 73 + Operação de Aquisição a Alíquota Zero + Operação de Aquisição a Alíquota Zero + cofins + 1 + + + + + + 74 + Operação de Aquisição sem Incidência da Contribuição + Operação de Aquisição sem Incidência da Contribuição + cofins + 1 + + + + + + 75 + Operação de Aquisição por Substituição Tributária + Operação de Aquisição por Substituição Tributária + cofins + 1 + + + + + + 98 + Outras Operações de Entrada + Outras Operações de Entrada + cofins + 1 + + + + + + 99 + Outras Operações + Outras Operações + cofins + 1 + + + + + + + 01 + Operação Tributável com Alíquota Básica + Operação Tributável com Alíquota Básica + pis + 1 + + + + + + 02 + Operação Tributável com Alíquota Diferenciada + Operação Tributável com Alíquota Diferenciada + pis + 1 + + + + + + 03 + Operação Tributável com Alíquota por Unidade de Medida de Produto + Operação Tributável com Alíquota por Unidade de Medida de Produto + pis + 1 + + + + + + 04 + Operação Tributável Monofásica - Revenda a Alíquota Zero + Operação Tributável Monofásica - Revenda a Alíquota Zero + pis + 1 + + + + + + 05 + Operação Tributável por Substituição Tributária + Operação Tributável por Substituição Tributária + pis + 1 + + + + + + 06 + Operação Tributável a Alíquota Zero + Operação Tributável a Alíquota Zero + pis + 1 + + + + + + 07 + Operação Isenta da Contribuição + Operação Isenta da Contribuição + pis + 1 + + + + + + 08 + Operação sem Incidência da Contribuição + Operação sem Incidência da Contribuição + pis + 1 + + + + + + 09 + Operação com Suspensão da Contribuição + Operação com Suspensão da Contribuição + pis + 1 + + + + + + 49 + Outras Operações de Saída + Outras Operações de Saída + pis + 1 + + + + + + 50 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno + pis + 1 + + + + + + 51 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno + pis + 1 + + + + + + 52 + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação + Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação + pis + 1 + + + + + + 53 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + pis + 1 + + + + + + 54 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + pis + 1 + + + + + + 55 + Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + pis + 1 + + + + + + 56 + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação + Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação + pis + 1 + + + + + + 60 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno + pis + 1 + + + + + + 61 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno + pis + 1 + + + + + + 62 + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação + Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação + pis + 1 + + + + + + 63 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno + pis + 1 + + + + + + 64 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação + pis + 1 + + + + + + 65 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação + pis + 1 + + + + + + 66 + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação + Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação + pis + 1 + + + + + + 67 + Crédito Presumido - Outras Operações + Crédito Presumido - Outras Operações + pis + 1 + + + + + + 70 + Operação de Aquisição sem Direito a Crédito + Operação de Aquisição sem Direito a Crédito + pis + 1 + + + + + + 71 + Operação de Aquisição com Isenção + Operação de Aquisição com Isenção + pis + 1 + + + + + + 72 + Operação de Aquisição com Suspensão + Operação de Aquisição com Suspensão + pis + 1 + + + + + + 73 + Operação de Aquisição a Alíquota Zero + Operação de Aquisição a Alíquota Zero + pis + 1 + + + + + + 74 + Operação de Aquisição sem Incidência da Contribuição + Operação de Aquisição sem Incidência da Contribuição + pis + 1 + + + + + + 75 + Operação de Aquisição por Substituição Tributária + Operação de Aquisição por Substituição Tributária + pis + 1 + + + + + + 98 + Outras Operações de Entrada + Outras Operações de Entrada + pis + 1 + + + + + + 99 + Outras Operações + Outras Operações + pis + 1 + + + + + + + 00 + Entrada com recuperação de crédito + Entrada com recuperação de crédito + ipi + 1 + + + + + + 01 + Entrada tributada com alíquota zero + Entrada tributada com alíquota zero + ipi + 1 + + + + + + 02 + Entrada isenta + Entrada isenta + ipi + 1 + + + + + + 03 + Entrada não-tributada + Entrada não-tributada + ipi + 1 + + + + + + 04 + Entrada imune + Entrada imune + ipi + 1 + + + + + + 05 + Entrada com suspensão + Entrada com suspensão + ipi + 1 + + + + + + 49 + Outras entradas + Outras entradas + ipi + 1 + + + + + + 50 + Saída tributada + Saída tributada + ipi + 1 + + + + + + 51 + Saída tributada com alíquota zero + Saída tributada com alíquota zero + ipi + 1 + + + + + + 52 + Saída isenta + Saída isenta + ipi + 1 + + + + + + 53 + Saída não-tributada + Saída não-tributada + ipi + 1 + + + + + + 54 + Saída imune + Saída imune + ipi + 1 + + + + + + 55 + Saída com suspensão + Saída com suspensão + ipi + 1 + + + + + + 99 + Outras saídas + Outras saídas + ipi + 1 + + + + + + + 00 + Tributada integralmente + Tributada integralmente + icms + 1 + + + + + + 10 + Tributada e com cobrança do ICMS por substituição tributária + Tributada e com cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 20 + Com redução de base de cálculo + Com redução de base de cálculo + icms + 1 + + + + + + 30 + Isenta ou não tributada e com cobrança do ICMS por substituição tributária + Isenta ou não tributada e com cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 40 + Isenta + Isenta + icms + 1 + + + + + + 41 + Não tributada + Não tributada + icms + 1 + + + + + + 50 + Suspensão + Suspensão + icms + 1 + + + + + + 51 + Diferimento + Diferimento + icms + 1 + + + + + + 60 + ICMS cobrado anteriormente por substituição tributária + ICMS cobrado anteriormente por substituição tributária + icms + 1 + + + + + + 70 + Com redução de base de cálculo e cobrança do ICMS por substituição tributária + Com redução de base de cálculo e cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 90 + Outras + Outras + icms + 1 + + + + + + 101 + Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito + Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito + icms + 1 + + + + + + 102 + Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito + Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito + icms + 1 + + + + + + 103 + Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta + Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta + icms + 1 + + + + + + 201 + Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária + Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 202 + Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária + Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 203 + Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária + Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária + icms + 1 + + + + + + 300 + Simples Nacional - Imune + Simples Nacional - Imune + icms + 1 + + + + + + 400 + Simples Nacional - Não tributada pelo Simples Nacional + Simples Nacional - Não tributada pelo Simples Nacional + icms + 1 + + + + + + 500 + Simples Nacional - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação + Simples Nacional - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação + icms + 1 + + + + + + 900 + Simples Nacional - Outros + Simples Nacional - Outros + icms + 1 + + + + + + + diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 2eb87febef79..5d7aed1685eb 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -2,6 +2,20 @@ + + + + + + + + + + + + + + diff --git a/l10n_br_account/demo/product_demo.xml b/l10n_br_account/demo/product_demo.xml index 3363419af899..5ea0253a9156 100644 --- a/l10n_br_account/demo/product_demo.xml +++ b/l10n_br_account/demo/product_demo.xml @@ -7,138 +7,156 @@ product - - + + + 0 product - - + + + 0 service + 0 service + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 product - - + + + 0 @@ -156,8 +174,9 @@ product - - + + + 0 diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 7325239eedad..cea47fb007d2 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -179,7 +179,7 @@ class l10n_br_account_fiscal_operation_line(osv.osv): domain="['|',('company_id','=',False),('company_id','=',company_id)]" ), 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, domain="['|',('company_id','=',False),('company_id','=',company_id)]"), - 'cst_id': fields.many2one('l10n_br_account.cst', 'Código de Situação Tributária', requeried=True), + 'cst_id': fields.many2one('account.tax.code', 'Código de Situação Tributária', requeried=True), 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', ondelete='cascade', select=True), } diff --git a/l10n_br_account/l10n_br_account_data.xml b/l10n_br_account/l10n_br_account_data.xml index 6055da6c3dd7..536d8bf51b7b 100644 --- a/l10n_br_account/l10n_br_account_data.xml +++ b/l10n_br_account/l10n_br_account_data.xml @@ -133,1310 +133,305 @@ - - IPI Simples Nacional 0,50% - IPI Simples Nacional 0,50% - 0.005 - - - - - - - - - - - ICMS Simples Nacional 1,25% ICMS Simples Nacional 1,25% 0.0125 - - + + - - - - + + + + ICMS Simples Nacional 1,86% ICMS Simples Nacional 1,86% 0.0186 - - + + - - - - + + + + ICMS Simples Nacional 2,33% ICMS Simples Nacional 2,33% 0.0233 - - + + - - - - + + + + ICMS Simples Nacional 2,56% ICMS Simples Nacional 2,56% 0.0256 - - + + - - - - + + + + ICMS Simples Nacional 2,58% ICMS Simples Nacional 2,58% 0.0258 - - + + - - - - + + + + ICMS Simples Nacional 2,82% ICMS Simples Nacional 2,82% 0.0282 - - + + - - - - + + + + ICMS Simples Nacional 2,84% ICMS Simples Nacional 2,84% 0.0284 - - + + - - - - + + + + ICMS Simples Nacional 2,87% ICMS Simples Nacional 2,87% 0.0287 - - + + - - - - + + + + ICMS Simples Nacional 3,07% ICMS Simples Nacional 3,07% 0.0307 - - + + - - - - + + + + ICMS Simples Nacional 3,10% ICMS Simples Nacional 3,10% 0.0310 - - + + - - - - + + + + ICMS Simples Nacional 3,38% ICMS Simples Nacional 3,38% 0.0338 - - + + - - - - + + + + ICMS Simples Nacional 3,41% ICMS Simples Nacional 3,41% 0.0341 - - + + - - - - + + + + ICMS Simples Nacional 3,45% ICMS Simples Nacional 3,45% 0.0345 - - + + - - - - + + + + ICMS Simples Nacional 3,48% ICMS Simples Nacional 3,48% 0.0348 - - + + - - - - + + + + ICMS Simples Nacional 3,51% ICMS Simples Nacional 3,51% 0.0351 - - + + - - - - + + + + ICMS Simples Nacional 3,82% ICMS Simples Nacional 3,82% 0.0382 - - + + - - - - + + + + ICMS Simples Nacional 3,85% ICMS Simples Nacional 3,85% 0.0385 - - + + - - - - + + + + ICMS Simples Nacional 3,88% ICMS Simples Nacional 3,88% 0.0388 - - + + - - - - + + + + ICMS Simples Nacional 3,91% ICMS Simples Nacional 3,91% 0.0391 - - + + - - - - + + + + ICMS Simples Nacional 3,95% ICMS Simples Nacional 3,95% 0.0395 - - - - - - - - - - - - - PIS Simples Nacional 0,23% - PIS Simples Nacional 0,23% - 0.0023 - - - - - - - - - - - - - PIS Simples Nacional 0,25% - PIS Simples Nacional 0,25% - 0.0025 - - - - - - - - - - - - - PIS Simples Nacional 0,27% - PIS Simples Nacional 0,27% - 0.0027 - - + + - - - - + + + + - - - PIS Simples Nacional 0,28% - PIS Simples Nacional 0,28% - 0.0028 - - - - - - - - - - - - - PIS Simples Nacional 0,30% - PIS Simples Nacional 0,30% - 0.0028 - - - - - - - - - - - - - PIS Simples Nacional 0,33% - PIS Simples Nacional 0,33% - 0.0033 - - - - - - - - - - - - - PIS Simples Nacional 0,34% - PIS Simples Nacional 0,34% - 0.0034 - - - - - - - - - - - - - PIS Simples Nacional 0,37% - PIS Simples Nacional 0,37% - 0.0037 - - - - - - - - - - - - - PIS Simples Nacional 0,38% - PIS Simples Nacional 0,38% - 0.0038 - - - - - - - - - - - - - CSLL Simples Nacional 0,31% - CSLL Simples Nacional 0,31% - 0.0031 - - - - - - - - - - - - - CSLL Simples Nacional 0,35% - CSLL Simples Nacional 0,35% - 0.0035 - - - - - - - - - - - - - CSLL Simples Nacional 0,38% - CSLL Simples Nacional 0,38% - 0.0038 - - - - - - - - - - - - - CSLL Simples Nacional 0,39% - CSLL Simples Nacional 0,39% - 0.0039 - - - - - - - - - - - - - CSLL Simples Nacional 0,42% - CSLL Simples Nacional 0,42% - 0.0042 - - - - - - - - - - - - - CSLL Simples Nacional 0,46% - CSLL Simples Nacional 0,46% - 0.0046 - - - - - - - - - - - - - CSLL Simples Nacional 0,47% - CSLL Simples Nacional 0,47% - 0.0047 - - - - - - - - - - - - - CSLL Simples Nacional 0,48% - CSLL Simples Nacional 0,48% - 0.0048 - - - - - - - - - - - - - CSLL Simples Nacional 0,52% - CSLL Simples Nacional 0,52% - 0.0052 - - - - - - - - - - - - - CSLL Simples Nacional 0,53% - CSLL Simples Nacional 0,53% - 0.0053 - - - - - - - - - - - - - CSLL Simples Nacional 0,54% - CSLL Simples Nacional 0,54% - 0.0054 - - - - - - - - - - - - - COFINS Simples Nacional 0,86% - COFINS Simples Nacional 0,86% - 0.0086 - - - - - - - - - - - - - COFINS Simples Nacional 0,95% - COFINS Simples Nacional 0,95% - 0.0095 - - - - - - - - - - - - - COFINS Simples Nacional 1,04% - COFINS Simples Nacional 1,04% - 0.0104 - - - - - - - - - - - - - COFINS Simples Nacional 1,05% - COFINS Simples Nacional 1,05% - 0.0104 - - - - - - - - - - - - - COFINS Simples Nacional 1,15% - COFINS Simples Nacional 1,15% - 0.0115 - - - - - - - - - - - - - COFINS Simples Nacional 1,16% - COFINS Simples Nacional 1,16% - 0.0116 - - - - - - - - - - - - - COFINS Simples Nacional 1,17% - COFINS Simples Nacional 1,17% - 0.0117 - - - - - - - - - - - - - COFINS Simples Nacional 1,26% - COFINS Simples Nacional 1,26% - 0.0126 - - - - - - - - - - - - - COFINS Simples Nacional 1,38% - COFINS Simples Nacional 1,38% - 0.0138 - - - - - - - - - - - - - COFINS Simples Nacional 1,39% - COFINS Simples Nacional 1,39% - 0.0139 - - - - - - - - - - - - - COFINS Simples Nacional 1,40% - COFINS Simples Nacional 1,40% - 0.0140 - - - - - - - - - - - - - COFINS Simples Nacional 1,42% - COFINS Simples Nacional 1,42% - 0.0142 - - - - - - - - - - - - - COFINS Simples Nacional 1,43% - COFINS Simples Nacional 1,43% - 0.0143 - - - - - - - - - - - - - COFINS Simples Nacional 1,56% - COFINS Simples Nacional 1,56% - 0.0156 - - - - - - - - - - - - - COFINS Simples Nacional 1,57% - COFINS Simples Nacional 1,57% - 0.0157 - - - - - - - - - - - - - COFINS Simples Nacional 1,58% - COFINS Simples Nacional 1,58% - 0.0158 - - - - - - - - - - - - - COFINS Simples Nacional 1,60% - COFINS Simples Nacional 1,60% - 0.0160 - - - - - - - - - - - - - CPP Simples Nacional 2,75% - CPP Simples Nacional 2,75% - 0.0275 - - - - - - - - - - - - - CPP Simples Nacional 2,99% - CPP Simples Nacional 2,99% - 0.0299 - - - - - - - - - - - - - CPP Simples Nacional 3,02% - CPP Simples Nacional 3,02% - 0.0302 - - - - - - - - - - - - - CPP Simples Nacional 3,28% - CPP Simples Nacional 3,28% - 0.0328 - - - - - - - - - - - - - CPP Simples Nacional 3,30% - CPP Simples Nacional 3,30% - 0.0330 - - - - - - - - - - - - - CPP Simples Nacional 3,35% - CPP Simples Nacional 3,35% - 0.0335 - - - - - - - - - - - - - CPP Simples Nacional 3,57% - CPP Simples Nacional 3,57% - 0.0357 - - - - - - - - - - - - - CPP Simples Nacional 3,62% - CPP Simples Nacional 3,62% - 0.0362 - - - - - - - - - - - - - CPP Simples Nacional 3,94% - CPP Simples Nacional 3,94% - 0.0394 - - - - - - - - - - - - - CPP Simples Nacional 3,99% - CPP Simples Nacional 3,99% - 0.0399 - - - - - - - - - - - - - CPP Simples Nacional 4,01% - CPP Simples Nacional 4,01% - 0.0401 - - - - - - - - - - - - - CPP Simples Nacional 4,05% - CPP Simples Nacional 4,05% - 0.0405 - - - - - - - - - - - - - CPP Simples Nacional 4,08% - CPP Simples Nacional 4,08% - 0.0408 - - - - - - - - - - - - - CPP Simples Nacional 4,44% - CPP Simples Nacional 4,44% - 0.0444 - - - - - - - - - - - - - CPP Simples Nacional 4,49% - CPP Simples Nacional 4,49% - 0.0449 - - - - - - - - - - - - - CPP Simples Nacional 4,52% - CPP Simples Nacional 4,52% - 0.0452 - - - - - - - - - - - - - CPP Simples Nacional 4,56% - CPP Simples Nacional 4,56% - 0.0456 - - - - - - - - - - - - - CPP Simples Nacional 4,60% - CPP Simples Nacional 4,60% - 0.0460 - - - - - - - - - - - - - IRPJ Simples Nacional 0,27% - IRPJ Simples Nacional 0,27% - 0.0027 - - - - - - - - - - - - - IRPJ Simples Nacional 0,35% - IRPJ Simples Nacional 0,35% - 0.0035 - - - - - - - - - - - - - IRPJ Simples Nacional 0,38% - IRPJ Simples Nacional 0,38% - 0.0038 - - - - - - - - - - - - - IRPJ Simples Nacional 0,39% - IRPJ Simples Nacional 0,39% - 0.0039 - - - - - - - - - - - - - IRPJ Simples Nacional 0,42% - IRPJ Simples Nacional 0,42% - 0.0042 - - - - - - - - - - - - - IRPJ Simples Nacional 0,46% - IRPJ Simples Nacional 0,46% - 0.0046 - - - - - - - - - - - - - IRPJ Simples Nacional 0,47% - IRPJ Simples Nacional 0,47% - 0.0047 - - - - - - - - - - - - - IRPJ Simples Nacional 0,48% - IRPJ Simples Nacional 0,48% - 0.0048 - - - - - - - - - - - - - IRPJ Simples Nacional 0,52% - IRPJ Simples Nacional 0,52% - 0.0052 - - - - - - - - - - - - - IRPJ Simples Nacional 0,53% - IRPJ Simples Nacional 0,53% - 0.0053 - - - - - - - - - - - - - IRPJ Simples Nacional 0,54% - IRPJ Simples Nacional 0,54% - 0.0054 - - - - - - - - - - diff --git a/l10n_br_account/l10n_br_account_demo.xml b/l10n_br_account/l10n_br_account_demo.xml index e4b4e83fa7a8..19bedf17a2f8 100644 --- a/l10n_br_account/l10n_br_account_demo.xml +++ b/l10n_br_account/l10n_br_account_demo.xml @@ -12,307 +12,11 @@ - - + - - - - IPI - IPI - 0.00 - - - - - - ipi - - - - - - - - IPI 2% - IPI 2% - 0.02 - - - - - - ipi - - - - - - - - IPI 5% - IPI 5% - 0.05 - - - - - - ipi - - - - - - - - - IPI 10% - IPI 10% - 0.10 - - - - - - ipi - - - - - - - - IPI 15% - IPI 15% - 0.15 - - - - - - ipi - - - - - - - - ICMS Interno - ICMS Interno - 0.00 - - - - - - icms - - - - - - - - ICMS Externo - ICMS Externo - 0.00 - - - - - - icms - - - - - - - - ICMS Subist - ICMS Subist - 0.00 - - - - icms - - - - - - - - PIS - PIS - 0.00 - - - - - - pis - - - - - - - - COFINS - COFINS - 0.00 - - - - - - cofins - - - - - - - - - 8473.30.41 - Placas-mãe ("mother boards") - - - - - - - 8471.70.12 - Para discos rígidos, com um só conjunto - cabeça-disco (HDA-"Head Disk Assembly") - - - - - - - 8473.30.42 - Placas (módulos) de memória com uma superfície - inferior ou igual a 50cm2 - - - - - - - 8542.32.10 - Não montadas - - - - - - - 8471.30.12 - De peso inferior a 3,5kg com teclado alfanumérico - de no mínimo 70 teclas e com uma tela de área superior a 140cm2 e - inferior a 560cm2 - - - - - - - 8414.59.10 - Microventiladores com área de carcaça inferior a - 90cm² - - - - - - - 8471.60.52 - Teclados - - - - - - - 8471.60.53 - Indicadores ou apontadores (mouse e track-ball, por - exemplo) - - - - - - - 8504.40.30 - Conversores de corrente contínua - - - - - - - 8473.30.19 - Outros - - - - - - - 7326.90.90 - Outras - - - - - - - 4403.10.00 - Tratada com tinta, creosoto ou com outros agentes - de conservação - - - - - - - 8305.20.00 - Grampos apresentados em barretas - - - - - + diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 6a9a3c5e7555..1a58bf5f71a8 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -185,7 +185,7 @@ - + diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 61d31e859b20..1e0970e2bed2 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -22,10 +22,10 @@ class res_partner(osv.osv): _inherit = 'res.partner' - _columns = { 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', - 'Tipo Fiscal do Parceiro', domain="[('tipo_pessoa','=',tipo_pessoa)]"), + 'Tipo Fiscal do Parceiro', + domain="[('tipo_pessoa','=',tipo_pessoa)]"), } res_partner() @@ -33,9 +33,9 @@ class res_partner(osv.osv): class account_fiscal_position_template(osv.osv): _inherit = 'account.fiscal.position.template' - _columns = { - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', + 'Operação Fiscal'), } account_fiscal_position_template() @@ -43,11 +43,9 @@ class account_fiscal_position_template(osv.osv): class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' - _columns = { - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal'), + 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', + 'Operação Fiscal'), } -account_fiscal_position() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +account_fiscal_position() \ No newline at end of file diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 50fbb1146350..23a141c55846 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -19,19 +19,27 @@ from osv import osv, fields + class product_template(osv.osv): _inherit = 'product.template' - _columns = { 'fiscal_category_operation_default_ids': fields.one2many('l10n_br_account.product.operation.category', - 'product_tmpl_id', 'Categoria de Operação Fiscal Padrões'), - 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), - 'is_on_service_invoice': fields.boolean('On Service Invoice?', help='True if invoiced along with service'), + 'product_tmpl_id', + 'Categoria de Operação Fiscal Padrões'), + 'fiscal_type': fields.selection([('product', 'Produto'), + ('service', 'Serviço')], + 'Tipo Fiscal', requeried=True), + 'is_on_service_invoice': fields.boolean('On Service Invoice?', + help='True if invoiced along with service'), + 'origin': fields.selection([('0', 'Nacional'), + ('1', 'Internacional'), + ('2', 'Inter. Adiquirido Internamente')], 'Origem'), } _defaults = { 'fiscal_type': 'product', 'is_on_service_invoice': False, + 'origin': '0', } product_template() @@ -39,13 +47,14 @@ class product_template(osv.osv): class l10n_br_account_product_fiscal_operation_category(osv.osv): _name = 'l10n_br_account.product.operation.category' - _columns = { - 'fiscal_operation_category_source_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria de Origem'), - 'fiscal_operation_category_destination_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria de Destino'), - 'product_tmpl_id': fields.many2one('product.template', 'Produto', ondelete='cascade'), + 'fiscal_operation_category_source_id': fields.many2one('l10n_br_account.fiscal.operation.category', + 'Categoria de Origem'), + 'fiscal_operation_category_destination_id': fields.many2one('l10n_br_account.fiscal.operation.category', + 'Categoria de Destino'), + 'product_tmpl_id': fields.many2one('product.template', + 'Produto', + ondelete='cascade'), } -l10n_br_account_product_fiscal_operation_category() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +l10n_br_account_product_fiscal_operation_category() \ No newline at end of file diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 196a45a2701e..6dc86e115b9e 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -8,6 +8,7 @@ form + @@ -21,7 +22,7 @@ - + @@ -78,6 +79,10 @@ form + + + + diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index fd356bab69e9..cbdc46293467 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -20,9 +20,9 @@ from osv import osv, fields import decimal_precision as dp + class res_company(osv.osv): _inherit = "res.company" - _columns = { 'fiscal_type': fields.selection([('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), @@ -75,5 +75,3 @@ class res_company(osv.osv): } res_company() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/static/src/img/icon.png b/l10n_br_account/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d43df0f9de6e41bd26e9a8fc2e76c5195fe5b073 GIT binary patch literal 11654 zcmai4^-~Dn zQIwU|_FFy6_Ybqy35G~Q@&Yf`9O`P%k10CrJ7BF-5#2RralVje%zk8Wz#V22Q6nFo zD9WB~GvjlajU`F^5B%7M$UkDCErm;HpJNkqZgW(2R9jX1y72Y98}f4aJ#b6+wyL@V z7XB*avSN2}WApKK%JuOr1mautiQ-rzMr6Ji)4SsT8r~>>uG;8Vo*EKVy7lYXI(U?p zc07Yuii4q6Xw!Rj9f1pxI5#xd6^EF9R4?Jqdk=9)-BaHWfx$hJIYuY0~a-TBjc zIFKu>(`}1dFJ$JMrp*%k{_Wf!2*&Lh-sA9a{Kr=Bt)sS zBX9GJ`aLkQBO*BddMOwt4b~^%@C?=%t(1W<0<^|5t_!PFRk~9LS*Ht(M=8l%fA` zG#0hG6QUSdrQ&s*rriu8KsL<1A-7bd{$s#!XYDG3i)>yi3X z*2S@ja976~3e?Em=N@TVxMrN5^5G_5J97r6DtRbYc0w)ja`_XMMjj?K2;L%YkjJ6~ z;S-~}9_Bj_Y5Ho7Ch3iN`dks8w1Bd&siZOdH>cn!`x?X0brez8$EEu!=wP|O#7~&O z?`$wt%=*K)y5lNI6gDq2UgGIm;Ez~NB!a@Uw7-t;b%CMP!8iso7ON(#lY+umpbA23 zdeDjNszZhDsVcxmWwq;GbKp;Gx`R5Q!8!VuYy27+2TOh|8v-2q-OC`;!?H5sMqP|r z17(Sy_ra3-*`qeo<5nwgP@-YFFZ>11+w5qjeU3p*h(RUYVMQ}?8g9SM5!?lEy7(6L zstE4>V3>dc*p%oczBy1}@2wo zVxZrmd0FOYg?7mWP#fG6n*<05XTaOmJa%V0$y_w~NpUO$HA#5vDLmR_--xVcz$pti;hRmO57*VH|)bnf+)EkaZ7AoV&qam?L*5 zrlqw)^ACtwN;x?i@(U5kqMn4Sz(2^g2j5F7`TKNmc&%QKc;C-;I%KI7qq*~k*V4D~ zx#MfHPiYq97mM-AX{!ctN~V>}EUCA2=2GiP1)7Y5;!^CY0JMMTVk+=$aUj(Bd@Hps zPfIl=Gm>FMR&D}iV!WU19U@ksU&e-nf9ab8t$jRj4<0LwGNr1~>*etsKM=5ql0@SD z25&oAyo2Pu;2!OOT=I-m)7t>5Ex}5dk8l7G115UN_6`yv@I!gp%F#38*8OF0UG3sm zh95di2bX_NoVNjR+kpG)OL!{DJ$`Q5g+4>Nsk%al1(uuz$4jDm3KW?~0(?JfSnj7p zHwj1|h?2;z`JV7%n3n_<;}I@Y5ui@H{fa=nfDJ}oh9P=xn^CBig@0Jt56O0tO1ajW zWV}7mQ3Z8`IZYv*FqSdsJZIlLQD1WPz?xcmVHLne4f#ab+6_%)0nBC=00 zm7-}A#R~s|sUUp&x?8WL&0L}y|G+GrEenH9!!}JL@JmEgZadH~yx%T~uNY?0aJL># zX{JCv5GDS|>G$t&g)B<(navedq~RePT0%*(QbRe*5*9!uN|k35lO>_Zw@HRRFtK`x zDgy!b@cO>_Sd*6bdlB$un43wNq0rfbfxungCg29fFt_E74(iM{1-3KA%W?|#QCJYJ z0csX-qXi}89CzxnIM|OitL9@?DH@nlz&%#MaUghYgpDkW0eb=3{Q`pg9Xnq>f+?Ly93Xt5@VSZ z83qFmS_Y=JJ_jxR(r)SGee%D^P{M68b2%(m@17yV(%QPik0n7s?A#Slrg^-ioBTI* z>9iXfv6wY1ynAd^1)8S~SKv`I;c~UhAC%W|a&S9DK)EIRxV7YZ5Qpca-7nAWPK*o7i2sb%xOlzT12~YOkI^~EcGr8hg2T+aOTP&op!wE4MtsUE={u{?@*;;T8FQeof0KT z8g9*8xbkCKv|H6%T8BcdChUxS`Jr_AH(pnU>4b7enja1pIfiVMuB7G*aDsxv;||#{ z-(ALYhbY%{c_2HuN}y^#d-%*sfBnZVJ6iVo4!A%i`ch4{okJTYb%=%`J&y93H7S?E znXW{VMUKEqUleKcQG&3ngL|`59v;0Ay2qMB z-RyHqXN-mPsOHywhlaokfO~oQ2cWk1P;s+N^*jyxetoL7%Q4p!!y9hG4xV>+4;u!x z_q4vO#t-nKce(5WMbvMD>TpLCeeU;m)C{v_1tpKloVF_ZVZ)qAuOrQYD1!=Xs3QAy zk((99-A7ayTDy{yvUM~uC#URO=3R?~i$FG)b$uSPWwX#=`A)Bv>Uk&nUS;FFQVwkX zbmgPPtd1!zgPh{}%T+p=UG-1o@1r5~iWq>>RXXBymjbuq$568ROR&oD3#rP@PK+uS&|nc zN`#4wgk>Rc}6Y<37!G-`Be-~Nc5jK39}Mu5_Z3|X6P zu_J|&xeNOJ5P{xs3AXS7dYE)m+~Qy9(Fd)^J6n-)wS38BBcHUF6zz_3Y`Qfu6^(|} z7A~|tYOCSa8Og?eO7O&#ylR*#P9K=I8o9sSs~Pe``cs-J1`C_jY9r0Ouqds^PO0Hh z@VR{VqSB4+w@8hry@zszu1t+GxvM3*G{^TQOu!^g(AxoW7#p4XmWf)9#S5nRQ9QM( z9HT}DU5&gDBg&r)@HKp1OXat=7sbDzgc#AZ2m2~?ZT1cJ-{yICVTK)FDaeR-*fsbk zbvP*kavb36`O{`1yDKdF=)9UR>)2mU?ZV2Nl#2{iWekf;leu3mSEDGV=i44v2r1?r zQ9t8(GuyfG;k5zrmZAHF(zDWItj=A0XQtyL62)BgyzhmI_zF0Hqsmg3K6%AMA7Ou7 z!$pMo(@;iqKY9NTN_d%v#DP{=wAdNrinCRQlx!EER(1uPci+ETOXy7XUq;sVKfnki zlUY9u)50{SV`xy&_ys&g4m6a)f3JbfAq=Rn>9>31qtc@|fu^haEQq`$DORmIoF6nw zxB9`T4pDe~sH>Ml%%NO2f722g%q3Yryf^&Jbe84yA*#EGt?Q9t&gM?Jb4Bu^E18B zD-VQ4r(pC*&dIsj7q(RV9D( zXlQ>gngh*@uL4iWi$UpCILMKUxS|UDjj|t=4}$<`j-JMhXU`jx-+`tLHfq6F&mLCP z6+^`p+@Yx=FNEJ_i|O+@5Q@E3rZOvJ-5Wc6+quaw0!{Id8L`z>zw|gG!2m2$mr)ix z_(ySsXzIFk#6vE@`DrDr=UL>hG;U@%uqn~DOQ*1G3b4(xuoUK5NJ}4;d-F7sEM*uU z9^sTe80FP&8R|A=O5Sm$ClK8; zmqrxyywk={VRX*`@lQ<{k@EaFmtBxA8qD;S7>@>zZV5JKjW9|89`;NRgMJ)7 zrzCulsYr_=M=0QEj+F7=o*5?GVXOp2%Silt-G)~w;8!!e^t?{|q>n6V5t$&q^d#|! zLI+nw49fZb}3>dt}%`ltQy19+?~D$+4=qmx%gahsZ~d5UKaYks2k=zkK5elj*1kMeiZ{;Hp`0^Yv%#@^Z;U7YGOWTc&y(D zbS}bxuq7X;VmNUEQnQ(lA_`Qdc5TJdDApSHAJ@g=;p>#+uMJp2TE9o%W7Za^s8~0^~*M>AzLa4 zH`;H}6>G-Vv&hr@9@7voC{qdN)-eI)LT)^Hh@E9{|r|-M3JI~&$V?Dvn;{@kzp}UoWnFd z3b^-Tml^#aMv2ZNUvTspIRb8Q*!5SS8FJW495<%8zPVMc>@1npXUH;k5-v6figdVu zI?%|{xhfitHuxOH)X)qkpL8vvW~E9ntjnZh$zrY|P=eeg|0hx3UWvs_^MKg~X#|7t zuW5HOD7SS^v>7+-r~%dqpSOUSOOIt&hyPPZqGVu-)VFNC2OV|PcB?bpakyf+dIr}X zn!1>9g)v%YJ14^W8UMdR;hOgoj`hy$e7dy1m3Yf}RZht1%SUc+njV`W4FP{pZff-v z%QRq$eBEL<2|ker*I&u`pmoi@k%^R@(NC5%Nuc+)0d{dQGt(jR&&H zMr0QBt2Xrly48_TY6d&haH*){DH<{Y=y(u>0F}pKxDo*U8S~#p^cD^Qne9rEcepKL zwr=!G#zD0DC6r5Xfx57F-L*j0PL6Ek4+~5;OjKxycPBMn=5iS=;5x)@e zFb68~&%;Ri^RLyTy?Fl)ncgR|p@h04wO=b?`10B)nlzdOl`;eG-kISZEE7`i$4 zf{&Dk+6BuR4(qA8*8>1tG5K5|&* zODqhQU#{?WeqVU1f&8~Gluu8&$gi<>74hOY=RtdqLC15_;Ib+^$s$7_4;=yKmOJ@y z;WhSqK++z0g`J{FCvY~MN7B+8wU>zNP z3sy(FdFrBWRn4r}gP-6{A}biiy8G_tb}bDS5R>u?0D)X;(Z9bD>HqO&g@-57xQ%AI z!CK_M>=*xDl(#F{b()md0W36@e1?;~?AY76%{4n7x?GbCrxN?|kpfeVVt=>66?!-S zY>HXB)d4G&hPS+`Wx9$0n-GnBJHOv_+GLhTxzXPd4u?c3E+wR0Dd<{*u}eVIAMH|q z=+{-nP)Af5@*<&p=a+mU4XM#5zSM0mj1dNkg5Z;BSUiQelS zQC~(D;x~K-l&ieQLC27b41H->Qu=R>02 zk0?%G9~ljLT?pfLF44*L!s_y|_H-VmT--VVm6}54SwAvsTV2?-#=jXq8mwB#u&v~3}-`n)0iSH4wQOc&mq^}PU>uKG^EPbC*^{x(}?-PBjxB% zHByDFc18Tkdj3sjqJ0FlZo3fum@6Q7j=$v8MA4gJcvl7?ujlHB>4`l5yS0{ zhsG3Un|rV>YLEohxHvd`eL#_6PIklgMtI9|ouES<%gxdeqOyBu8pCRY;+dD&aYgHSq;?HY_BQMnjPr!z$VYK}_$QkAu^ zSsQV2F<-F~MJknCtDqf2xb(wN8vN&m2#(`se9QOVyjYjN08T5j<$Eo3DL{z&UdDy)|!Y${6VZQa9zXfiVpI8E86Y z+H?4cUB29S&D7N1qes2ywt4nggwaDhzEUo=&l;_dmU5?Q2?hV{_>!Ui(lmw&Y^QoR zZ$8wYjhE_VTLY!>6BAdwr@wO!TuYW;=! z%_b~ecHAq})YpB&?2Y)d^&k=Qw4jb{*+#P--AH3w=uP?Q`7Lg4qRj)2#98){L0kR; zhrLtx_Tk>uWJM?H6)m-I(d2Cy23{iJ=&2uVMN(iic<|ZZc5}}YFd1|^{66qV~^1i1+ z=BUR!5qI~mW!|e~Z~r}mAh%ZddXdEvxOZ3FRwDYn=bnq-nIs$C_C9&)tm|Utbh1++ z0ju}s1WQjK=#Ila9&TO+gBnfzet50N}=kd zU}5fVJ0rf-V;tSjH?jM?FXzktSt}Nii`)LBw*B{bEj304+w>4;smlE<2y=uKbnM-W zJoM$wwb+x=Hm^0JI^;&OA``9a0io%p#~({F4&#w}8p-9AIK$UOmfowWq-lYoQ$e|P zv%XVkl@M98s-2}R93hr1>5a{oYQ)qhC!eFy_S(dQB_&A?XOoa-*4RUs<{EjCbHPX(a~3a1s20+F(Wp?L6Wl{3T%l*Axa$8wjLzGUn?h)zx@Gz9S^*w2zwk)SzGlZ zEy`?O5xrYsLtarexEkA|gP?M5ef*rY%j|s$6tF|Axy*HKiz(cA^1!4Zw>%gV1KTk$ zvTCz%XT)2twMgHc=gY_vla4h6c!$q6uyBe!tI5Kp<8lrByhGgzB1Sc_bS{s@Zcm}= zb{Mng7ke9h&7 zCFcC{s>us0ZGkw3AmIj`j%7ir*KKgn33pyYM1fOf*!xncFR!5F<@@{~QDeNOivRV{ z2JAoRNTqac9kl7^+^0u{{&)K60nEq++oKk8_#$Qr;FcgXh8|l3zUAs6wR%DT_K#-Q z3|c%?N)n6eXN9)ZsD8JtZ&X^LlCT9kgRTBfuSkPPE;>Q3kht~6);#10KWaoAtV`tP z;lj`xhb!Ub-rf;o-=wPuqMFL@-cA&NAJ)%z{9>1VAOC1s_dFh4%q&>qh)G;|ekW5v z7oHx}qU^bYHZNU4LDPMgP@>?s!|6hy!a~Gt>)~g|bj>=?{dSwiQu})1q18;f?|edL0Y&XWmH#7ZV)&-?zW$Jg{{LE+A)R_0pq?Y}6c0DG%5 zDtgqPhu99J-jM$MI#1r-Y+NV)nGGK__F(sOh>a zC|=Gz#jwp!GVNOmgfhBxg$so?B!V7nb_(yMTRDL$wXX5m+Hl--XF-fvkS-k$F`>ks-xW`+jEsbGK*I3_FBlC6m4-;mx7&9b?aEY zARWI!hGN0$nMH2B7B62Cj?g}634F>e>4eWzgyxM^z+cpkio{d8WJ@(tF$C7+1hoJP zJ+X&xW9hC6Z-3V%NuN$Ok_uIc!3%Lw2 zP(D8zYb$yF<{2=;_w>DGSsa3HIPUZoJe>Tz$a*(9>x^1zXJYH_E@N9ZZffGGNJ1ng z{{XxUmRxa=SW)dfuU`;2Angs!%jIZ~8#snLG3mf`-J`yL8Q(Y!VA_AtD^%L|YTQ*o zA#&+S!Jv87=l^bvHLi-6GE3mmk1CrtL!3#Kdd;3Q_yp*TBT?;e1 zUn3`~B{p>U@*6WKUl{xHy4}g?pS10O$^0(IHpDI>dD|Yyh8O}69XY7RvwqM2Q{ph3{hDiD`4-O8-B3}eg2a-@x zF+N|j4ZrU|+p4Ou8gb<|$FJMJN(>9HsoR_-Ka&zqG@OxF83w?`&+E3#yR0qatuNf+ z%!fG|A6==ieE1QH#m~<>P!-N!A?mnp1-r*VHsmO$oB@v7XC zr1PtSTo{xA1B3qbUoC(RsR&>WLzdtiWf$fu;UMHWWJJATXyvN2(CoODY&m#{DAmHrzmc#?KYv}WuLAwWiyHRpO1NYbg&yWQU ze%GZXXQ}Te*W8eN)FhkzJE|RPI4AspFBcT+&4vJf;V(cGbLHr|QIwhmoQmdyqc8XE z&%O~MWJRNRC3_~1gaaNZK>m_e6ICI>?(ICCHPfj+MO)A3!q>N7(+RE*Uqc{t&&!S0 zXx-i2>!I(jF!%{_(S^Jdi(6~*)5qrl5G=;zWpLh1C|q|S)nNwGr}Z(K-7E485@oj8 zFAgw@nQSHatJhq1>B(edqktwr6qN5JIa*`nj|7Z{dPED!W{89uiM-Edirr_xU*Q8I zwdb>Y_cPHcXW>>p{{Fqt=UF-lj-?HCiO{U#Vw$_tm9&Yc^tT5;xr1n=FZPj#pMB7h zN@8yv!7CjhS+&K|HkjXWekubaYBQN(K*5k^fe-EE;XGOGT;Wt&9Gy=rc#7hG<;Na~ z1%W{UeeVj2C#FF-*$cTV*GbbYPrlFhR}V?=6T(!F48B2kSQRQsJJ#1K=bKSYa{`(Y zMhLd-E!fnwr)#a8E03ap3zN5d@~2(V(IvwHrMcTdgBTEDonw6MCU76kpbV4pBU^_1 z;+zxGmyZXQZ1|Y?n?<7}%(zxGIrGHY9Ij;ZnRQ=>bbH#6?c|57O z!M~a`1}YZ}-tZkmdUos;`dzuwbH^&2cI7NT%>HqysdM}b0l|Mr9~PsP5|(-vHrs7C z7{sP6Pw!4nE;{vBUm9|2cm9d_<-BKhh@0&ynusto-b{39%U^t$DpZWIZqgl+?|XH? z8Jc~2vQ(13`={`YZ_`&I^64k1SsI~hX?_`Zk9tc=x$6-1;K`E4-=i|aO3i}oG9$KK zO?<9?RKuQF6BXhvM8wixR-sSG)#3p0@6@@frBl~Xpc!y*g&0TgUqbL-#y-t62?COf zkR=yrSr%eQ{`C~nYUn7oHS9;Znq>t!IXrRf_5spY={C5pH+qcvMN{Vv68|yrne%ie z$BQzrqQon60CNAMyVGh{C)Lc2n}lPM=$xF6jJpfI37RTyGfon{Qh(kQzRmY=R4)zM z?#~?V9KN7GLD99xoHBTG@d_J_TNBz#XSbk8*;9ug5up9c9vP>qAKndc@>6gD(zJ|)JmScWq#a_Dac_0y39%f z@!8pVeKw6uVi76~1QAwu@(V1075iNW0>B>;nCThbndzJ)GUl5bKA$F+0jxcyUq)=2 zc?C8BL3v8d?z%kfIZVknp`jyYC-Q&%iLgR(>rb5{ z&ms1CsVU)Iu3vn-gTF^;SUf$M0GC09DiZ2Fe(ZQ{bD#|+;WDwEqPJ$GpKOxmXD zk+$-_hl;v-Q{eqMLZW_?4TkxFIjRBt3V{_1{cayNBBFJg8T%z4se%zugE?Az+`4MW zV3$el4spg1AC*x}2T0dkOFK}a6Ox(in{FTMRP%xF2p_4JL)hphBC)|1dqC`Fs1Woj}c%>Trq)p6WBDJv%-YXPbh1WC=S|j7nDX$_q81Y2v@z2J}`bgP9)E+j=h{4(`*Ys|hpA50ax4L>o( zkr&zNbGAFD%z1G8wvmoSUmZOC*xTwp-Z@o^w)g^daF}62c{3&Qv!*vdmCyldHrx>c zA4aNVF85lExDAYPQO~EJO3WvM8$8Ka7i&F9HwsZk0!-*`w623rt?5{+P^2{3CydoR zN9Bnt3`wleopbZqv84>3+nA5HmplrptE{7=mo8Z)nP->Q5-y&FAj_?;rW@Ig3Z}2Q zy|89xW?_20PYbg5FXM{9inYyPO!-`J^(0l@;&DO;jCPH6 zqhYZFyL|Pi%bw&Z*&QeN#RhgJY|VQ_SJyW?@C&+ds(yM+f?Ifu7Vs7hjfCMnr1H)b zIfD_)W6AeDA}$U^x7H{Ql-YUFlPkm@cQyl7=Il-o4 zs7SsThrDV%w>=MU9n_B3N@N-ZjC--IWwkS5jxQ$rjjaJS?#Wp?+DX6jB9;)i3%jhm zL=~^%AERntth%@kwh$cdPr@J8^yf)*v(7LE8Xf@}ZJqf;bFac}JsO4;IYW8tp0-RG z;(rmw@a9hb7_}n)dts~db0@9vRm}J8G1sv6wZDY&;(5Tg?Ieu|L~i&TvlD=j)|6eQm;hq7wtb&4EjD?Q+K7leN_<&&QYb|~i{zVvg`9tK#Qzou+0|}u|mUE3j8iFVR zY9qF1b;(E-fL%|OWZ^`19^|}2ENmaO)zPjP?3Tw?^JwSGmVv7%FsfgQA(KPnJJ<0-BdnV? z0cJmeEZzVjT6<4IL%c5F?}HDks%vxXL=urL!tn)9LsnM zayX(BTvgio3~kU&7Iyi$JB7!a%yQ!i{GFpa6OX1@&K%PnE5hW;wf?|qDVjUl8@RM! zPpYN@!Dzzv!g@Iug*?q0kE&Y63uvZ!VaBBrMGP7(%ufyh(ev1?hY+D9zur~%&gOuh vjApxs*Pp|LEbDcYRsR3#;)48}ci2+Xob2oTbAx|H(lCm0YO=L5W)c4bsbR>U literal 0 HcmV?d00001 From 9f051f0c64285321a6a84bcac7546480dd8b16dd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 8 Oct 2012 19:58:42 -0300 Subject: [PATCH 0183/1549] =?UTF-8?q?l10n=5Fbr=5Faccount=20trocado=20o=20c?= =?UTF-8?q?ampo=20journal=5Fids=20many2many=20para=20um=20campo=20property?= =?UTF-8?q?=20e=20substituido=20nos=20modulos=20l10n=5Fbr=5Fpurchase,=20l1?= =?UTF-8?q?0n=5Fbr=5Fstock=20e=20l10n=5Fbr=5Fsale=20a=20utiliza=C3=A7?= =?UTF-8?q?=C3=A3o=20dos=20campo=20journal=5Fids=20para=20o=20property=5Fj?= =?UTF-8?q?ournal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 6 +++--- l10n_br_account/l10n_br_account.py | 18 ++++++++++++++---- l10n_br_account/l10n_br_account_view.xml | 4 ++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 8d01be5e8da3..ccc9a43564c2 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -1828,11 +1828,11 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com if fiscal_operation_category_id: fo_category = obj_fo_category.browse(cr, uid, fiscal_operation_category_id) - journal_ids = [journal for journal in fo_category.journal_ids if journal.company_id.id == company_id] - if not journal_ids: + journal_id = fo_category and fo_category.property_journal or False + if not journal_id: raise osv.except_osv(_('Nenhuma Diário !'),_("Categoria de operação fisca: '%s', não tem um diário contábil para a empresa %s") % (fo_category.name, obj_company.name)) else: - result['journal_id'] = journal_ids[0].id + result['journal_id'] = journal_id.id return result diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index cea47fb007d2..db90b6cc90b8 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -113,14 +113,24 @@ class l10n_br_account_fiscal_operation_category(osv.osv): _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo'), - 'journal_ids': fields.many2many('account.journal', 'l10n_br_account_fiscal_operation_category_rel', - 'fiscal_operation_category_id', 'journal_id', 'Consolidated Children'), + 'type': fields.selection([('input', 'Entrada'), + ('output', 'Saida')], 'Tipo'), + 'property_journal': fields.property( + 'account.journal', + type='many2one', + relation='account.journal', + string="Diário Contábil", + method=True, + view_load=True, + help="Diário utilizado para esta categoria de operação fiscal"), 'use_sale' : fields.boolean('Usado em Vendas'), 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), 'use_purchase' : fields.boolean('Usado nas Compras'), 'use_picking' : fields.boolean('Usado nas Listas de Separações'), - 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), + 'fiscal_type': fields.selection([('product', 'Produto'), + ('service', 'Serviço')], + 'Tipo Fiscal', + requeried=True), } _defaults = { diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 1a58bf5f71a8..fc43c8d05f05 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -101,8 +101,8 @@ - - + + From 5cad05fea2ab7a7b5f41a8131c5e07f2b16fd488 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 11 Oct 2012 00:26:18 -0300 Subject: [PATCH 0184/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20removido=20do?= =?UTF-8?q?=20objeto=20account.invoice=20rotinas=20de=20serializa=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__init__.py | 1 + l10n_br_account/account_invoice.py | 1422 +---------------- l10n_br_account/sped/__init__.py | 22 + l10n_br_account/sped/edf/__init__.py | 18 + l10n_br_account/sped/nfe/__init__.py | 22 + .../sped/nfe/processing/__init__.py | 0 .../sped/nfe/serializer/__init__.py | 21 + l10n_br_account/sped/nfe/serializer/txt.py | 713 +++++++++ l10n_br_account/sped/nfe/serializer/xml.py | 463 ++++++ .../sped/nfe/validator/__init__.py | 2 + l10n_br_account/sped/nfe/validator/txt.py | 221 +++ l10n_br_account/sped/nfse/__init__.py | 19 + l10n_br_account/wizard/__init__.py | 1 + .../wizard/l10n_br_account_nfe_export.py | 21 +- .../wizard/nfe_export_from_invoice.py | 17 +- 15 files changed, 1576 insertions(+), 1387 deletions(-) create mode 100644 l10n_br_account/sped/__init__.py create mode 100644 l10n_br_account/sped/edf/__init__.py create mode 100644 l10n_br_account/sped/nfe/__init__.py create mode 100644 l10n_br_account/sped/nfe/processing/__init__.py create mode 100644 l10n_br_account/sped/nfe/serializer/__init__.py create mode 100644 l10n_br_account/sped/nfe/serializer/txt.py create mode 100644 l10n_br_account/sped/nfe/serializer/xml.py create mode 100644 l10n_br_account/sped/nfe/validator/__init__.py create mode 100644 l10n_br_account/sped/nfe/validator/txt.py create mode 100644 l10n_br_account/sped/nfse/__init__.py diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index aee3fcb6f918..69c2d8204a45 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -18,6 +18,7 @@ ################################################################################# import l10n_br_account +import sped import res_company import partner import account diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index ccc9a43564c2..50ac7b4847a9 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -18,18 +18,14 @@ ################################################################################# from lxml import etree -from lxml.etree import ElementTree -from lxml.etree import Element, SubElement import time from datetime import datetime import netsvc -import re -import string -from unicodedata import normalize from osv import fields, osv from tools.translate import _ import decimal_precision as dp +from sped.nfe.validator import txt class account_invoice(osv.osv): _inherit = 'account.invoice' @@ -483,1320 +479,10 @@ def action_move_create(self, cr, uid, ids, *args): i -= 1 return result - def nfe_dv(self, key): - #Testing - return '2' - def nfe_check(self, cr, uid, ids, context=None): - strErro = u'' - - if context is None: - context = {} - - for inv in self.browse(cr, uid, ids): - - #Nota fiscal - if not inv.own_invoice or inv.fiscal_type == 'service' or not inv.fiscal_document_nfe: - continue - - company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] - - if not inv.document_serie_id: - strErro = u'Nota Fiscal - Série da nota fiscal\n' - - if not inv.fiscal_document_id: - strErro += u'Nota Fiscal - Tipo de documento fiscal\n' - - #if not inv.date_invoice: - # strErro = 'Nota Fiscal - Data da nota fiscal\n' - - if not inv.document_serie_id.internal_sequence_id: - strErro += u'Nota Fiscal - Número da nota fiscal, a série deve ter uma sequencia interna\n' - - #Emitente - if not inv.company_id.partner_id.legal_name: - strErro += u'Emitente - Razão Social\n' - - if not inv.company_id.partner_id.name: - strErro += u'Emitente - Fantasia\n' - - if not inv.company_id.partner_id.cnpj_cpf: - strErro += u'Emitente - CNPJ/CPF\n' - - if not company_addr_default.street: - strErro += u'Emitente / Endereço - Logradouro\n' - - if not company_addr_default.number: - strErro += u'Emitente / Endereço - Número\n' - - if not company_addr_default.zip: - strErro += u'Emitente / Endereço - CEP\n' - - if not inv.company_id.cnae_main_id: - strErro += u'Emitente / CNAE Principal\n' - - if not inv.company_id.partner_id.inscr_est: - strErro += u'Emitente / Inscrição Estadual\n' - - if not company_addr_default.state_id: - strErro += u'Emitente / Endereço - Estado\n' - else: - if not company_addr_default.state_id.ibge_code: - strErro += u'Emitente / Endereço - Código do IBGE do estado\n' - if not company_addr_default.state_id.name: - strErro += u'Emitente / Endereço - Nome do estado\n' - - if not company_addr_default.l10n_br_city_id: - strErro += u'Emitente / Endereço - município\n' - else: - if not company_addr_default.l10n_br_city_id.name: - strErro += u'Emitente / Endereço - Nome do município\n' - if not company_addr_default.l10n_br_city_id.ibge_code: - strErro += u'Emitente / Endereço - Código do IBGE do município\n' - - if not company_addr_default.country_id: - strErro += u'Emitente / Endereço - país\n' - else: - if not company_addr_default.country_id.name: - strErro += u'Emitente / Endereço - Nome do país\n' - if not company_addr_default.country_id.bc_code: - strErro += u'Emitente / Endereço - Código do BC do país\n' - - #Destinatário - if inv.partner_id.tipo_pessoa == 'J' and not inv.partner_id.legal_name: - strErro += u'Destinatário - Razão Social\n' - - if not inv.partner_id.cnpj_cpf: - strErro += u'Destinatário - CNPJ/CPF\n' - - if not inv.address_invoice_id.street: - strErro += u'Destinatário / Endereço - Logradouro\n' - - if not inv.address_invoice_id.number: - strErro += u'Destinatário / Endereço - Número\n' - - if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: - if not inv.address_invoice_id.zip: - strErro += u'Destinatário / Endereço - CEP\n' - - if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: - if not inv.address_invoice_id.state_id: - strErro += u'Destinatário / Endereço - Estado\n' - else: - if not inv.address_invoice_id.state_id.ibge_code: - strErro += u'Destinatário / Endereço - Código do IBGE do estado\n' - if not inv.address_invoice_id.state_id.name: - strErro += u'Destinatário / Endereço - Nome do estado\n' - - if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: - if not inv.address_invoice_id.l10n_br_city_id: - strErro += u'Destinatário / Endereço - Município\n' - else: - if not inv.address_invoice_id.l10n_br_city_id.name: - strErro += u'Destinatário / Endereço - Nome do município\n' - if not inv.address_invoice_id.l10n_br_city_id.ibge_code: - strErro += u'Destinatário / Endereço - Código do IBGE do município\n' - - if not inv.address_invoice_id.country_id: - strErro += u'Destinatário / Endereço - País\n' - else: - if not inv.address_invoice_id.country_id.name: - strErro += u'Destinatário / Endereço - Nome do país\n' - if not inv.address_invoice_id.country_id.bc_code: - strErro += u'Destinatário / Endereço - Código do BC do país\n' - - #endereco de entrega - if inv.partner_shipping_id: - - if inv.address_invoice_id != inv.partner_shipping_id: - - if not inv.partner_shipping_id.street: - strErro += u'Destinatário / Endereço de Entrega - Logradouro\n' - - if not inv.partner_shipping_id.number: - strErro += u'Destinatário / Endereço de Entrega - Número\n' - - if not inv.address_invoice_id.zip: - strErro += u'Destinatário / Endereço de Entrega - CEP\n' - - if not inv.partner_shipping_id.state_id: - strErro += u'Destinatário / Endereço de Entrega - Estado\n' - else: - if not inv.partner_shipping_id.state_id.ibge_code: - strErro += u'Destinatário / Endereço de Entrega - Código do IBGE do estado\n' - if not inv.partner_shipping_id.state_id.name: - strErro += u'Destinatário / Endereço de Entrega - Nome do estado\n' - - if not inv.partner_shipping_id.l10n_br_city_id: - strErro += u'Destinatário / Endereço - Município\n' - else: - if not inv.partner_shipping_id.l10n_br_city_id.name: - strErro += u'Destinatário / Endereço de Entrega - Nome do município\n' - if not inv.partner_shipping_id.l10n_br_city_id.ibge_code: - strErro += u'Destinatário / Endereço de Entrega - Código do IBGE do município\n' - - if not inv.partner_shipping_id.country_id: - strErro += u'Destinatário / Endereço de Entrega - País\n' - else: - if not inv.partner_shipping_id.country_id.name: - strErro += u'Destinatário / Endereço de Entrega - Nome do país\n' - if not inv.partner_shipping_id.country_id.bc_code: - strErro += u'Destinatário / Endereço de Entrega - Código do BC do país\n' - - #produtos - for inv_line in inv.invoice_line: - if inv_line.product_id: - if not inv_line.product_id.default_code: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Referência/Código do produto\n' % (inv_line.product_id.name, inv_line.quantity) - if not inv_line.product_id.name: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Nome do produto\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.cfop_id: - strErro += u'Produtos e Serviços: %s, Qtde: %s - CFOP\n' % (inv_line.product_id.name, inv_line.quantity) - else: - if not inv_line.cfop_id.code: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Código do CFOP\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.uos_id: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Unidade de medida\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.quantity: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Quantidade\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.price_unit: - strErro += u'Produtos e Serviços: %s, Qtde: %s - Preco unitario\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.icms_cst: - strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do ICMS\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.ipi_cst: - strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do IPI\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.pis_cst: - strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do PIS\n' % (inv_line.product_id.name, inv_line.quantity) - - if not inv_line.cofins_cst: - strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do COFINS\n' % (inv_line.product_id.name, inv_line.quantity) - - if strErro: - raise osv.except_osv(_('Error !'), _("Error Validating NFE:\n '%s'") % (strErro, )) - - return True - - - def nfe_export_txt(self, cr, uid, ids, nfe_environment='1', context=False): - StrFile = '' - StrNF = 'NOTA FISCAL|%s|\n' % len(ids) - StrFile = StrNF - - for inv in self.browse(cr, uid, ids, context={'lang': 'pt_BR'}): - #Endereço do company - company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] - #nfe_key = unicode(company_addr_default.state_id.ibge_code).strip().rjust(2, u'0') - #nfe_key += unicode(datetime.strptime(inv.date_invoice, '%Y-%m-%d').strftime(u'%y%m')).strip().rjust(4, u'0') - #nfe_key += re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '') - #nfe_key += inv.fiscal_document_id.code - #nfe_key += unicode(inv.document_serie_id.code).strip().rjust(3, u'0') - #nfe_key += unicode(inv.internal_number).strip().rjust(9, u'0') - #fe_key += unicode('1').strip().rjust(1, u'0') # Homologação - #nfe_key += unicode(inv.internal_number).strip().rjust(8, u'0') - #nfe_key += unicode(self.nfe_dv(nfe_key)).strip().rjust(1, u'0') - - StrA = 'A|%s|%s|\n' % ('2.00', '') - - StrFile += StrA - - StrRegB = { - 'cUF': company_addr_default.state_id.ibge_code, - 'cNF': '', - 'NatOp': normalize('NFKD',unicode(inv.cfop_ids[0].small_name or '')).encode('ASCII','ignore'), - 'intPag': '2', - 'mod': inv.fiscal_document_id.code, - 'serie': inv.document_serie_id.code, - 'nNF': inv.internal_number or '', - 'dEmi': inv.date_invoice or '', - 'dSaiEnt': inv.date_invoice or '', - 'hSaiEnt': '', - 'tpNF': '', - 'cMunFG': ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code), - 'TpImp': '1', - 'TpEmis': '1', - 'cDV': '', - 'tpAmb': nfe_environment, - 'finNFe': '1', - 'procEmi': '0', - 'VerProc': '2.2.1', - 'dhCont': '', - 'xJust': '', - } - - if inv.cfop_ids[0].type in ("input"): - StrRegB['tpNF'] = '0' - else: - StrRegB['tpNF'] = '1' - - StrB = 'B|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegB['cUF'], StrRegB['cNF'], StrRegB['NatOp'], StrRegB['intPag'], - StrRegB['mod'], StrRegB['serie'], StrRegB['nNF'], StrRegB['dEmi'], StrRegB['dSaiEnt'], - StrRegB['hSaiEnt'], StrRegB['tpNF'], StrRegB['cMunFG'], StrRegB['TpImp'], StrRegB['TpEmis'], - StrRegB['cDV'], StrRegB['tpAmb'], StrRegB['finNFe'], StrRegB['procEmi'], StrRegB['VerProc'], - StrRegB['dhCont'], StrRegB['xJust']) - StrFile += StrB - - StrRegC = { - 'XNome': normalize('NFKD',unicode(inv.company_id.partner_id.legal_name or '')).encode('ASCII','ignore'), - 'XFant': normalize('NFKD',unicode(inv.company_id.partner_id.name or '')).encode('ASCII','ignore'), - 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), - 'IEST': '', - 'IM': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or ''), - 'CNAE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main_id.code or ''), - 'CRT': inv.company_id.fiscal_type or '', - } - - #TODO - Verificar, pois quando e informado do CNAE ele exige que a inscricao municipal, parece um bug do emissor da NFE - if not inv.company_id.partner_id.inscr_mun: - StrRegC['CNAE'] = '' - - StrC = 'C|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC['XNome'], StrRegC['XFant'], StrRegC['IE'], StrRegC['IEST'], - StrRegC['IM'],StrRegC['CNAE'],StrRegC['CRT']) - - StrFile += StrC - - if inv.company_id.partner_id.tipo_pessoa == 'J': - StrC02 = 'C02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) - else: - StrC02 = 'C02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) - - StrFile += StrC02 - - address_company_bc_code = '' - if company_addr_default.country_id.bc_code: - address_company_bc_code = company_addr_default.country_id.bc_code[1:] - - StrRegC05 = { - 'XLgr': normalize('NFKD',unicode(company_addr_default.street or '')).encode('ASCII','ignore'), - 'Nro': company_addr_default.number or '', - 'Cpl': normalize('NFKD',unicode(company_addr_default.street2 or '')).encode('ASCII','ignore'), - 'Bairro': normalize('NFKD',unicode(company_addr_default.district or 'Sem Bairro')).encode('ASCII','ignore'), - 'CMun': '%s%s' % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code), - 'XMun': normalize('NFKD',unicode(company_addr_default.l10n_br_city_id.name or '')).encode('ASCII','ignore'), - 'UF': company_addr_default.state_id.code or '', - 'CEP': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.zip or '').replace(' ','')), - 'cPais': address_company_bc_code or '', - 'xPais': normalize('NFKD',unicode(company_addr_default.country_id.name or '')).encode('ASCII','ignore'), - 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.phone or '').replace(' ','')), - } - - StrC05 = 'C05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC05['XLgr'], StrRegC05['Nro'], StrRegC05['Cpl'], StrRegC05['Bairro'], - StrRegC05['CMun'], StrRegC05['XMun'], StrRegC05['UF'], StrRegC05['CEP'], - StrRegC05['cPais'], StrRegC05['xPais'], StrRegC05['fone']) - - StrFile += StrC05 - - address_invoice_bc_code = '' - address_invoice_state_code = '' - address_invoice_city = '' - UFEmbarq = '' - XLocEmbarq = '' - address_invoice_cep = '' - if inv.address_invoice_id.country_id.bc_code: - address_invoice_bc_code = inv.address_invoice_id.country_id.bc_code[1:] - - if inv.address_invoice_id.country_id.id != company_addr_default.country_id.id: - address_invoice_state_code = 'EX' - address_invoice_city = 'Exterior' - UFEmbarq = company_addr_default.state_id.code - XLocEmbarq = company_addr_default.city - address_invoice_cep = '' - else: - address_invoice_state_code = inv.address_invoice_id.state_id.code - address_invoice_city = normalize('NFKD',unicode(inv.address_invoice_id.l10n_br_city_id.name or '')).encode('ASCII','ignore') - address_invoice_cep = re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.address_invoice_id.zip or '').replace(' ','')) - - # Se o ambiente for de teste deve ser escrito na razão do destinatário - if nfe_environment == '2': - xNome = 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL' - else: - xNome = normalize('NFKD', unicode(inv.partner_id.legal_name or '')).encode('ASCII', 'ignore') - - StrRegE = { - 'xNome': xNome, - 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.inscr_est or ''), - 'ISUF': '', - 'email': inv.partner_id.email or '', - } - - StrE = 'E|%s|%s|%s|%s|\n' % (StrRegE['xNome'], StrRegE['IE'], StrRegE['ISUF'], StrRegE['email']) - - StrFile += StrE - - if inv.partner_id.tipo_pessoa == 'J': - StrE0 = 'E02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) - else: - StrE0 = 'E03|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) - - StrFile += StrE0 - - StrRegE05 = { - 'xLgr': normalize('NFKD',unicode(inv.address_invoice_id.street or '')).encode('ASCII','ignore'), - 'nro': normalize('NFKD',unicode(inv.address_invoice_id.number or '')).encode('ASCII','ignore'), - 'xCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.address_invoice_id.street2 or '' )).encode('ASCII','ignore')), - 'xBairro': normalize('NFKD',unicode(inv.address_invoice_id.district or 'Sem Bairro')).encode('ASCII','ignore'), - 'cMun': ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.l10n_br_city_id.ibge_code), - 'xMun': address_invoice_city, - 'UF': address_invoice_state_code, - 'CEP': address_invoice_cep, - 'cPais': address_invoice_bc_code, - 'xPais': normalize('NFKD',unicode(inv.address_invoice_id.country_id.name or '')).encode('ASCII','ignore'), - 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.address_invoice_id.phone or '').replace(' ','')), - } - - StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'], - StrRegE05['cMun'], StrRegE05['xMun'], StrRegE05['UF'], StrRegE05['CEP'], - StrRegE05['cPais'],StrRegE05['xPais'], StrRegE05['fone'],) - - StrFile += StrE05 - - if inv.partner_shipping_id: - - if inv.address_invoice_id != inv.partner_shipping_id: - - StrRegG = { - 'XLgr': normalize('NFKD',unicode(inv.partner_shipping_id.street or '',)).encode('ASCII','ignore'), - 'Nro': normalize('NFKD',unicode(inv.partner_shipping_id.number or '')).encode('ASCII','ignore'), - 'XCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.street2 or '' )).encode('ASCII','ignore')), - 'XBairro': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.district or 'Sem Bairro' )).encode('ASCII','ignore')), - 'CMun': ('%s%s') % (inv.partner_shipping_id.state_id.ibge_code, inv.partner_shipping_id.l10n_br_city_id.ibge_code), - 'XMun': normalize('NFKD',unicode(inv.partner_shipping_id.l10n_br_city_id.name or '')).encode('ASCII','ignore'), - 'UF': inv.address_invoice_id.state_id.code, - } - - StrG = 'G|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegG['XLgr'],StrRegG['Nro'],StrRegG['XCpl'],StrRegG['XBairro'],StrRegG['CMun'],StrRegG['XMun'],StrRegG['UF']) - StrFile += StrG - - if inv.partner_id.tipo_pessoa == 'J': - StrG0 = 'G02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) - else: - StrG0 = 'G02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) - - StrFile += StrG0 - - i = 0 - for inv_line in inv.invoice_line: - i += 1 - - StrH = 'H|%s||\n' % (i) - - StrFile += StrH - - StrRegI = { - 'CProd': normalize('NFKD',unicode(inv_line.product_id.code or '',)).encode('ASCII','ignore'), - 'CEAN': inv_line.product_id.ean13 or '', - 'XProd': normalize('NFKD',unicode(inv_line.product_id.name or '')).encode('ASCII','ignore'), - 'NCM': re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.product_id.property_fiscal_classification.name or ''), - 'EXTIPI': '', - 'CFOP': inv_line.cfop_id.code, - 'UCom': normalize('NFKD',unicode(inv_line.uos_id.name or '',)).encode('ASCII','ignore'), - 'QCom': str("%.4f" % inv_line.quantity), - 'VUnCom': str("%.2f" % (inv_line.price_unit * (1-(inv_line.discount or 0.0)/100.0))), - 'VProd': str("%.2f" % inv_line.price_total), - 'CEANTrib': inv_line.product_id.ean13 or '', - 'UTrib': inv_line.uos_id.name, - 'QTrib': str("%.4f" % inv_line.quantity), - 'VUnTrib': str("%.2f" % inv_line.price_unit), - 'VFrete': '', - 'VSeg': '', - 'VDesc': '', - 'vOutro': '', - 'indTot': '1', - 'xPed': '', - 'nItemPed': '', - } - - if inv_line.product_id.code: - StrRegI['CProd'] = inv_line.product_id.code - else: - StrRegI['CProd'] = unicode(i).strip().rjust(4, u'0') - - #No OpenERP já traz o valor unitário como desconto - #if inv_line.discount > 0: - # StrRegI['VDesc'] = str("%.2f" % (inv_line.quantity * (inv_line.price_unit * (1-(inv_line.discount or 0.0)/100.0)))) - - StrI = 'I|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegI['CProd'], StrRegI['CEAN'], StrRegI['XProd'], StrRegI['NCM'], - StrRegI['EXTIPI'], StrRegI['CFOP'], StrRegI['UCom'], StrRegI['QCom'], - StrRegI['VUnCom'], StrRegI['VProd'], StrRegI['CEANTrib'], StrRegI['UTrib'], - StrRegI['QTrib'], StrRegI['VUnTrib'], StrRegI['VFrete'], StrRegI['VSeg'], - StrRegI['VDesc'], StrRegI['vOutro'], StrRegI['indTot'], StrRegI['xPed'], - StrRegI['nItemPed']) - - StrFile += StrI - - StrM = 'M|\n' - - StrFile += StrM - - StrN = 'N|\n' - - StrFile += StrN - - #TODO - Fazer alteração para cada tipo de cst - if inv_line.icms_cst in ('00'): - - StrRegN02 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'ModBC': '0', - 'VBC': str("%.2f" % inv_line.icms_base), - 'PICMS': str("%.2f" % inv_line.icms_percent), - 'VICMS': str("%.2f" % inv_line.icms_value), - } - - StrN02 = 'N02|%s|%s|%s|%s|%s|%s|\n' % (StrRegN02['Orig'], StrRegN02['CST'], StrRegN02['ModBC'], StrRegN02['VBC'], StrRegN02['PICMS'], - StrRegN02['VICMS']) - - StrFile += StrN02 - - if inv_line.icms_cst in ('20'): - - StrRegN04 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'ModBC': '0', - 'PRedBC': str("%.2f" % inv_line.icms_percent_reduction), - 'VBC': str("%.2f" % inv_line.icms_base), - 'PICMS': str("%.2f" % inv_line.icms_percent), - 'VICMS': str("%.2f" % inv_line.icms_value), - } - - StrN04 = 'N04|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN04['Orig'], StrRegN04['CST'], StrRegN04['ModBC'], StrRegN04['PRedBC'], StrRegN04['VBC'], StrRegN04['PICMS'], - StrRegN04['VICMS']) - StrFile += StrN04 - - if inv_line.icms_cst in ('10'): - StrRegN03 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'ModBC': '0', - 'VBC': str("%.2f" % inv_line.icms_base), - 'PICMS': str("%.2f" % inv_line.icms_percent), - 'VICMS': str("%.2f" % inv_line.icms_value), - 'ModBCST': '4', #TODO - 'PMVAST': str("%.2f" % inv_line.icms_st_mva) or '', - 'PRedBCST': '', - 'VBCST': str("%.2f" % inv_line.icms_st_base), - 'PICMSST': str("%.2f" % inv_line.icms_st_percent), - 'VICMSST': str("%.2f" % inv_line.icms_st_value), - } - - StrN03 = 'N03|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN03['Orig'], StrRegN03['CST'], StrRegN03['ModBC'], StrRegN03['VBC'], StrRegN03['PICMS'], - StrRegN03['VICMS'], StrRegN03['ModBCST'], StrRegN03['PMVAST'], StrRegN03['PRedBCST'], StrRegN03['VBCST'], - StrRegN03['PICMSST'], StrRegN03['VICMSST']) - StrFile += StrN03 - - if inv_line.icms_cst in ('40', '41', '50', '51'): - StrRegN06 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'vICMS': str("%.2f" % inv_line.icms_value), - 'motDesICMS': '9', #FIXME - } - - StrN06 = 'N06|%s|%s|%s|%s|\n' % (StrRegN06['Orig'], StrRegN06['CST'], StrRegN06['vICMS'], StrRegN06['motDesICMS']) - - StrFile += StrN06 - - if inv_line.icms_cst in ('60'): - StrRegN08 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'VBCST': str("%.2f" % 0.00), - 'VICMSST': str("%.2f" % 0.00), - } - - StrN08 = 'N08|%s|%s|%s|%s|\n' % (StrRegN08['Orig'], StrRegN08['CST'], StrRegN08['VBCST'], StrRegN08['VICMSST']) - - StrFile += StrN08 - - if inv_line.icms_cst in ('70'): - StrRegN09 = { - 'Orig': inv_line.product_id.origin or '0', - 'CST': inv_line.icms_cst, - 'ModBC': '0', - 'PRedBC': str("%.2f" % inv_line.icms_percent_reduction), - 'VBC': str("%.2f" % inv_line.icms_base), - 'PICMS': str("%.2f" % inv_line.icms_percent), - 'VICMS': str("%.2f" % inv_line.icms_value), - 'ModBCST': '4', #TODO - 'PMVAST': str("%.2f" % inv_line.icms_st_mva) or '', - 'PRedBCST': '', - 'VBCST': str("%.2f" % inv_line.icms_st_base), - 'PICMSST': str("%.2f" % inv_line.icms_st_percent), - 'VICMSST': str("%.2f" % inv_line.icms_st_value), - } - - StrN09 = 'N09|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN09['Orig'], StrRegN09['CST'], StrRegN09['ModBC'], StrRegN09['PRedBC'], StrRegN09['VBC'], StrRegN09['PICMS'], StrRegN09['VICMS'], StrRegN09['ModBCST'], StrRegN09['PMVAST'], StrRegN09['PRedBCST'], StrRegN09['VBCST'], StrRegN09['PICMSST'], StrRegN09['VICMSST']) - - StrFile += StrN09 - - if inv_line.icms_cst in ('90', '900'): - StrRegN10h = { - 'Orig': inv_line.product_id.origin or '0', - 'CSOSN': inv_line.icms_cst, - 'modBC': '0', - 'vBC': str("%.2f" % 0.00), - 'pRedBC': '', - 'pICMS': str("%.2f" % 0.00), - 'vICMS': str("%.2f" % 0.00), - 'modBCST': '', - 'pMVAST': '', - 'pRedBCST': '', - 'vBCST': '', - 'pICMSST': '', - 'vICMSST': '', - 'pCredSN': str("%.2f" % 0.00), - 'vCredICMSSN': str("%.2f" % 0.00), - } - - StrN10h = 'N10h|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN10h['Orig'], - StrRegN10h['CSOSN'], - StrRegN10h['modBC'], - StrRegN10h['vBC'], - StrRegN10h['pRedBC'], - StrRegN10h['pICMS'], - StrRegN10h['vICMS'], - StrRegN10h['modBCST'], - StrRegN10h['pMVAST'], - StrRegN10h['pRedBCST'], - StrRegN10h['vBCST'], - StrRegN10h['pICMSST'], - StrRegN10h['vICMSST'], - StrRegN10h['pCredSN'], - StrRegN10h['vCredICMSSN']) - - StrFile += StrN10h - - StrRegO = { - 'ClEnq': '', - 'CNPJProd': '', - 'CSelo': '', - 'QSelo': '', - 'CEnq': '999', - } - - StrO = 'O|%s|%s|%s|%s|%s|\n' % (StrRegO['ClEnq'], StrRegO['CNPJProd'], StrRegO['CSelo'], StrRegO['QSelo'], StrRegO['CEnq']) - - StrFile += StrO - - if inv_line.ipi_cst in ('50', '51', '52') and inv_line.ipi_percent > 0: - StrRegO07 = { - 'CST': inv_line.ipi_cst, - 'VIPI': str("%.2f" % inv_line.ipi_value), - } - - StrO07 = 'O07|%s|%s|\n' % (StrRegO07['CST'], StrRegO07['VIPI']) - - StrFile += StrO07 - - if inv_line.ipi_type == 'percent' or '': - StrRegO10 = { - 'VBC': str("%.2f" % inv_line.ipi_base), - 'PIPI': str("%.2f" % inv_line.ipi_percent), - } - StrO1 = 'O10|%s|%s|\n' % (StrRegO10['VBC'], StrRegO10['PIPI']) - - if inv_line.ipi_type == 'quantity': - pesol = 0 - if inv_line.product_id: - pesol = inv_line.product_id.weight_net - StrRegO11 = { - 'QUnid': str("%.4f" % (inv_line.quantity * pesol)), - 'VUnid': str("%.4f" % inv_line.ipi_percent), - } - StrO1 = 'O11|%s|%s|\n' % (StrRegO11['QUnid'], StrRegO11['VUnid']) - - StrFile += StrO1 - - if inv_line.ipi_cst in ('99'): - StrRegO07 = { - 'CST': inv_line.ipi_cst, - 'VIPI': str("%.2f" % inv_line.ipi_value), - } - - StrO07 = ('O07|%s|%s|\n') % (StrRegO07['CST'], StrRegO07['VIPI']) - StrFile += StrO07 - - StrRegO10 = { - 'VBC': str("%.2f" % inv_line.ipi_base), - 'PIPI': str("%.2f" % inv_line.ipi_percent), - } - - StrO10 = ('O10|%s|%s|\n') % (StrRegO10['VBC'], StrRegO10['PIPI']) - StrFile += StrO10 - - if inv_line.ipi_percent == 0 and not inv_line.ipi_cst in ('99'): - StrO1 = 'O08|%s|\n' % inv_line.ipi_cst - StrFile += StrO1 - - StrRegP = { - 'VBC': str("%.2f" % inv_line.ii_base), - 'VDespAdu': str("%.2f" % inv_line.ii_customhouse_charges), - 'VII': str("%.2f" % inv_line.ii_value), - 'VIOF': str("%.2f" % inv_line.ii_iof), - } - - StrP = ('P|%s|%s|%s|%s|\n') % (StrRegP['VBC'], StrRegP['VDespAdu'], StrRegP['VII'], StrRegP['VIOF']) - StrFile += StrP - - StrQ = 'Q|\n' - StrFile += StrQ - - if inv_line.pis_cst in ('01') and inv_line.pis_percent > 0: - StrRegQ02 = { - 'CST': inv_line.pis_cst, - 'VBC': str("%.2f" % inv_line.pis_base), - 'PPIS': str("%.2f" % inv_line.pis_percent), - 'VPIS': str("%.2f" % inv_line.pis_value), - } - - StrQ02 = ('Q02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], - StrRegQ02['VBC'], - StrRegQ02['PPIS'], - StrRegQ02['VPIS']) - - StrFile += StrQ02 - - if inv_line.pis_cst in ('99'): - StrRegQ05 = { - 'CST': inv_line.pis_cst, - 'VPIS': str("%.2f" % inv_line.pis_value), - } - - StrQ05 = ('Q05|%s|%s|\n') % (StrRegQ05['CST'], StrRegQ05['VPIS']) - StrFile += StrQ05 - - StrRegQ07 = { - 'VBC': str("%.2f" % inv_line.pis_base), - 'PPIS': str("%.2f" % inv_line.pis_percent), - } - - StrQ07 = ('Q07|%s|%s|\n') % (StrRegQ07['VBC'], StrRegQ07['PPIS']) - StrFile += StrQ07 - - if inv_line.pis_percent == 0 and not inv_line.pis_cst in ('99'): - StrQ02 = 'Q04|%s|\n' % inv_line.pis_cst - StrFile += StrQ02 - - StrQ = 'S|\n' - - StrFile += StrQ - - if inv_line.cofins_cst in ('01') and inv_line.cofins_percent > 0: - StrRegS02 = { - 'CST': inv_line.cofins_cst, - 'VBC': str("%.2f" % inv_line.cofins_base), - 'PCOFINS': str("%.2f" % inv_line.cofins_percent), - 'VCOFINS': str("%.2f" % inv_line.cofins_value), - } - - StrS02 = ('S02|%s|%s|%s|%s|\n') % (StrRegS02['CST'], StrRegS02['VBC'], StrRegS02['PCOFINS'], StrRegS02['VCOFINS']) - StrFile += StrS02 - - if inv_line.cofins_cst in ('99'): - StrRegS05 = { - 'CST': inv_line.cofins_cst, - 'VCOFINS': str("%.2f" % inv_line.cofins_value), - } - - StrS05 = ('S05|%s|%s|\n') % (StrRegS05['CST'], StrRegS05['VCOFINS']) - StrFile += StrS05 - - StrRegS07 = { - 'VBC': str("%.2f" % inv_line.cofins_base), - 'PCOFINS': str("%.2f" % inv_line.cofins_percent), - } - - StrS07 = ('S07|%s|%s|\n') % (StrRegS07['VBC'], StrRegS07['PCOFINS']) - StrFile += StrS07 - - if inv_line.cofins_percent == 0 and not inv_line.cofins_cst in ('99'): - StrS02 = 'S04|%s|\n' % inv_line.cofins_cst - StrFile += StrS02 - - StrW = 'W|\n' - - StrFile += StrW - - StrRegW02 = { - 'vBC': str("%.2f" % inv.icms_base), - 'vICMS': str("%.2f" % inv.icms_value), - 'vBCST': str("%.2f" % inv.icms_st_base), - 'vST': str("%.2f" % inv.icms_st_value), - 'vProd': str("%.2f" % inv.amount_untaxed), - 'vFrete': str("%.2f" % inv.amount_freight), - 'vSeg': str("%.2f" % inv.amount_insurance), - 'vDesc': '0.00', - 'vII': str("%.2f" % inv.ii_value), - 'vIPI': str("%.2f" % inv.ipi_value), - 'vPIS': str("%.2f" % inv.pis_value), - 'vCOFINS': str("%.2f" % inv.cofins_value), - 'vOutro': str("%.2f" % inv.amount_costs), - 'vNF': str("%.2f" % inv.amount_total), - } - - StrW02 = 'W02|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegW02['vBC'], StrRegW02['vICMS'], StrRegW02['vBCST'], StrRegW02['vST'], StrRegW02['vProd'], - StrRegW02['vFrete'], StrRegW02['vSeg'], StrRegW02['vDesc'], StrRegW02['vII'], StrRegW02['vIPI'], - StrRegW02['vPIS'], StrRegW02['vCOFINS'], StrRegW02['vOutro'], StrRegW02['vNF']) - - StrFile += StrW02 - - # Modo do Frete: 0- Por conta do emitente; 1- Por conta do destinatário/remetente; 2- Por conta de terceiros; 9- Sem frete (v2.0) - if not inv.incoterm: - StrRegX0 = '9' - else: - StrRegX0 = inv.incoterm.freight_responsibility - - StrX = 'X|%s|\n' % (StrRegX0) - - StrFile += StrX - - StrRegX03 = { - 'XNome': '', - 'IE': '', - 'XEnder': '', - 'UF': '', - 'XMun': '', - } - - StrX0 = '' - - if inv.carrier_id: - - #Endereço da transportadora - carrier_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) - carrier_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] - - if inv.carrier_id.partner_id.legal_name: - StrRegX03['XNome'] = normalize('NFKD', unicode(inv.carrier_id.partner_id.legal_name or '')).encode('ASCII', 'ignore') - else: - StrRegX03['XNome'] = normalize('NFKD', unicode(inv.carrier_id.partner_id.name or '')).encode('ASCII', 'ignore') - - StrRegX03['IE'] = inv.carrier_id.partner_id.inscr_est or '' - StrRegX03['XEnder'] = normalize('NFKD', unicode(carrier_addr_default.street or '')).encode('ASCII', 'ignore') - StrRegX03['UF'] = carrier_addr_default.state_id.code or '' - - if carrier_addr_default.l10n_br_city_id: - StrRegX03['XMun'] = normalize('NFKD', unicode(carrier_addr_default.l10n_br_city_id.name or '')).encode('ASCII', 'ignore') - - if inv.carrier_id.partner_id.tipo_pessoa == 'J': - StrX0 = 'X04|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) - else: - StrX0 = 'X05|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) - - StrX03 = 'X03|%s|%s|%s|%s|%s|\n' % (StrRegX03['XNome'], StrRegX03['IE'], StrRegX03['XEnder'], StrRegX03['UF'], StrRegX03['XMun']) - - StrFile += StrX03 - StrFile += StrX0 - - StrRegX18 = { - 'Placa': '', - 'UF': '', - 'RNTC': '', - } - - if inv.vehicle_id: - StrRegX18['Placa'] = inv.vehicle_id.plate or '' - StrRegX18['UF'] = inv.vehicle_id.plate.state_id.code or '' - StrRegX18['RNTC'] = inv.vehicle_id.rntc_code or '' - - - StrX18 = 'X18|%s|%s|%s|\n' % (StrRegX18['Placa'], StrRegX18['UF'], StrRegX18['RNTC']) - - StrFile += StrX18 - - StrRegX26 = { - 'QVol': '', - 'Esp': '', - 'Marca': '', - 'NVol': '', - 'PesoL': '', - 'PesoB': '', - } - - if inv.number_of_packages: - StrRegX26['QVol'] = inv.number_of_packages - StrRegX26['Esp'] = 'Volume' #TODO - StrRegX26['Marca'] - StrRegX26['NVol'] - StrRegX26['PesoL'] = str("%.3f" % inv.weight_net) - StrRegX26['PesoB'] = str("%.3f" % inv.weight) - - StrX26 = 'X26|%s|%s|%s|%s|%s|%s|\n' % (StrRegX26['QVol'], StrRegX26['Esp'], StrRegX26['Marca'], StrRegX26['NVol'], StrRegX26['PesoL'], StrRegX26['PesoB']) - - StrFile += StrX26 - - if inv.journal_id.revenue_expense: - - StrY = 'Y|\n' - - StrFile += StrY - - for line in inv.move_line_receivable_id: - StrRegY07 = { - 'NDup': line.name, - 'DVenc': line.date_maturity or inv.date_due or inv.date_invoice, - 'VDup': str("%.2f" % line.debit), - } - - StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) - - StrFile += StrY07 - - StrRegZ = { - 'InfAdFisco': '', - 'InfCpl': normalize('NFKD',unicode(inv.comment or '')).encode('ASCII','ignore'), - } - - StrZ = 'Z|%s|%s|\n' % (StrRegZ['InfAdFisco'], StrRegZ['InfCpl']) - - StrFile += StrZ - - StrRegZA = { - 'UFEmbarq': UFEmbarq, - 'XLocEmbarq': XLocEmbarq, - } - - StrZA = 'ZA|%s|%s|\n' % (StrRegZA['UFEmbarq'], StrRegZA['XLocEmbarq']) - StrFile += StrZA - - self.write(cr, uid, [inv.id], {'nfe_export_date': datetime.now()}) - - return unicode(StrFile.encode('utf-8'), errors='replace') - - def nfe_export_xml(self, cr, uid, ids, nfe_environment='1', context=False): - - nfeProc = Element('nfeProc', {'versao': '2.00', 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) - for inv in self.browse(cr, uid, ids, context={'lang': 'pt_BR'}): - - #Endereço do company - company_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] - - #MontaChave da Nota Fiscal Eletronica - nfe_key = unicode(company_addr_default.state_id.ibge_code).strip().rjust(2, u'0') - nfe_key += unicode(datetime.strptime(inv.date_invoice, '%Y-%m-%d').strftime(u'%y%m')).strip().rjust(4, u'0') - nfe_key += '08478495000170' # unicode(inv.company_id.partner_id.cnpj_cpf).strip().rjust(14, u'0') - nfe_key += inv.fiscal_document_id.code - nfe_key += unicode(inv.document_serie_id.code).strip().rjust(3, u'0') - nfe_key += unicode(inv.internal_number).strip().rjust(9, u'0') - nfe_key += unicode('1').strip().rjust(1, u'0') # Homologação - nfe_key += unicode(inv.internal_number).strip().rjust(8, u'0') - nfe_key += unicode(self.nfe_dv(nfe_key)).strip().rjust(1, u'0') - - NFe = SubElement(nfeProc, 'NFe', { 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) - - infNFe = SubElement(NFe, 'infNFe', {'versao': '2.00', 'Id': nfe_key }) - - # Dados da identificação da nota fiscal - ide = SubElement(infNFe, 'ide') - - ide_cUF = SubElement(ide, 'cUF') - ide_cUF.text = company_addr_default.state_id.ibge_code - - ide_cNF = SubElement(ide, 'cNF') - ide_cNF.text = unicode(inv.internal_number).strip().rjust(8, u'0') - - ide_natOp = SubElement(ide, 'natOp') - ide_natOp.text = inv.cfop_ids[0].name - - ide_indPag = SubElement(ide, 'indPag') - ide_indPag.text = "2" - - ide_mod = SubElement(ide, 'mod') - ide_mod.text = inv.fiscal_document_id.code - - ide_serie = SubElement(ide, 'serie') - ide_serie.text = inv.document_serie_id.code - - ide_nNF = SubElement(ide, 'nNF') - ide_nNF.text = inv.internal_number - - ide_dEmi = SubElement(ide, 'dEmi') - ide_dEmi.text = inv.date_invoice - - ide_dSaiEnt = SubElement(ide, 'dSaiEnt') - ide_dSaiEnt.text = inv.date_invoice - - ide_tpNF = SubElement(ide, 'tpNF') - if inv.type in ("out_invoice", "in_refuld"): - ide_tpNF.text = '0' - else: - ide_tpNF.text = '1' - - ide_cMunFG = SubElement(ide, 'cMunFG') - ide_cMunFG.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code) - - ide_tpImp = SubElement(ide, 'tpImp') - ide_tpImp.text = "1" - - ide_tpEmis = SubElement(ide, 'tpEmis') - ide_tpEmis.text = "1" - - ide_cDV = SubElement(ide, 'cDV') - ide_cDV.text = self.nfe_dv(nfe_key) - - #Tipo de ambiente: 1 - Produção; 2 - Homologação - ide_tpAmb = SubElement(ide, 'tpAmb') - ide_tpAmb.text = "2" - - #Finalidade da emissão da NF-e: 1 - NFe normal 2 - NFe complementar 3 - NFe de ajuste - ide_finNFe = SubElement(ide, 'finNFe') - ide_finNFe.text = "1" - - ide_procEmi = SubElement(ide, 'procEmi') - ide_procEmi.text = "0" - - ide_verProc = SubElement(ide, 'verProc') - ide_verProc.text = "2.0.4" - - emit = SubElement(infNFe, 'emit') - - emit_CNPJ = SubElement(emit, 'CNPJ') - emit_CNPJ.text = inv.company_id.partner_id.cnpj_cpf - - emit_xNome = SubElement(emit, 'xNome') - emit_xNome.text = inv.company_id.partner_id.legal_name - - emit_xFant = SubElement(emit, 'xFant') - emit_xFant.text = inv.company_id.partner_id.name - - enderEmit = SubElement(emit, 'enderEmit') - - enderEmit_xLgr = SubElement(enderEmit, 'xLgr') - enderEmit_xLgr.text = company_addr_default.street - - enderEmit_nro = SubElement(enderEmit, 'nro') - enderEmit_nro.text = company_addr_default.number - - enderEmit_xBairro = SubElement(enderEmit, 'xBairro') - enderEmit_xBairro.text = company_addr_default.district - - enderEmit_cMun = SubElement(enderEmit, 'cMun') - enderEmit_cMun.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code) - - enderEmit_xMun = SubElement(enderEmit, 'xMun') - enderEmit_xMun.text = company_addr_default.l10n_br_city_id.name - - enderEmit_UF = SubElement(enderEmit, 'UF') - enderEmit_UF.text = company_addr_default.state_id.code - - enderEmit_CEP = SubElement(enderEmit, 'CEP') - enderEmit_CEP.text = company_addr_default.zip - - enderEmit_cPais = SubElement(enderEmit, 'cPais') - enderEmit_cPais.text = company_addr_default.country_id.bc_code - - enderEmit_xPais = SubElement(enderEmit, 'xPais') - enderEmit_xPais.text = company_addr_default.country_id.name - - enderEmit_fone = SubElement(enderEmit, 'fone') - enderEmit_fone.text = company_addr_default.phone - - emit_IE = SubElement(emit, 'IE') - emit_IE.text = inv.company_id.partner_id.inscr_est - - emit_IEST = SubElement(emit, 'IEST') - emit_IEST.text = '0000000000' #FIXME - - emit_IM = SubElement(emit, 'IM') - emit_IM.text = '0000000000' #FIXME - - emit_CNAE = SubElement(emit, 'CNAE') - emit_CNAE.text = '0111301' #FIXME - - emit_CRT = SubElement(emit, 'CRT') - emit_CRT.text = '3' #FIXME - - dest = SubElement(infNFe, 'dest') - - dest_CNPJ = SubElement(dest, 'CNPJ') - dest_CNPJ.text = inv.partner_id.cnpj_cpf - - dest_xNome = SubElement(dest, 'xNome') - dest_xNome.text = inv.partner_id.legal_name - - enderDest = SubElement(dest, 'enderDest') - - enderDest_xLgr = SubElement(enderDest, 'xLgr') - enderDest_xLgr.text = inv.address_invoice_id.street - - enderDest_nro = SubElement(enderDest, 'nro') - enderDest_nro.text = inv.address_invoice_id.number - - enderDest_xBairro = SubElement(enderDest, 'xBairro') - enderDest_xBairro.text = inv.address_invoice_id.district - - enderDest_cMun = SubElement(enderDest, 'cMun') - enderDest_cMun.text = ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.l10n_br_city_id.ibge_code) - - enderDest_xMun = SubElement(enderDest, 'xMun') - enderDest_xMun.text = inv.address_invoice_id.l10n_br_city_id.name - - enderDest_UF = SubElement(enderDest, 'UF') - enderDest_UF.text = inv.address_invoice_id.state_id.code - - enderDest_CEP = SubElement(enderDest, 'CEP') - enderDest_CEP.text = inv.address_invoice_id.zip - - enderDest_cPais = SubElement(enderDest, 'cPais') - enderDest_cPais.text = inv.address_invoice_id.country_id.bc_code - - enderDest_xPais = SubElement(enderDest, 'xPais') - enderDest_xPais.text = inv.address_invoice_id.country_id.name - - enderDest_fone = SubElement(enderDest, 'fone') - enderDest_fone.text = inv.address_invoice_id.phone - - dest_IE = SubElement(dest, 'IE') - dest_IE.text = inv.partner_id.inscr_est - - i = 0 - for inv_line in inv.invoice_line: - i += 1 - det = SubElement(infNFe, 'det', {'nItem': str(i)}) - - det_prod = SubElement(det, 'prod') - - prod_cProd = SubElement(det_prod, 'cProd') - if inv_line.product_id.code: - prod_cProd.text = inv_line.product_id.code - else: - prod_cProd.text = unicode(i).strip().rjust(4, u'0') - - prod_cEAN = SubElement(det_prod, 'cEAN') - prod_cEAN.text = inv_line.product_id.ean13 - - prod_xProd = SubElement(det_prod, 'xProd') - prod_xProd.text = inv_line.product_id.name - - prod_NCM = SubElement(det_prod, 'NCM') - prod_NCM.text = inv_line.product_id.property_fiscal_classification.name - - prod_CFOP = SubElement(det_prod, 'CFOP') - prod_CFOP.text = inv_line.cfop_ids[0].code - - prod_uCom = SubElement(det_prod, 'uCom') - prod_uCom.text = inv_line.uos_id.name - - prod_qCom = SubElement(det_prod, 'qCom') - prod_qCom.text = str("%.4f" % inv_line.quantity) - - prod_vUnCom = SubElement(det_prod, 'vUnCom') - prod_vUnCom.text = str("%.4f" % inv_line.price_unit) - - prod_vProd = SubElement(det_prod, 'vProd') - prod_vProd.text = str("%.2f" % inv_line.price_subtotal) - - prod_cEANTrib = SubElement(det_prod, 'cEANTrib') - #prod_vProd.text(inv_line.total) - - prod_uTrib = SubElement(det_prod, 'uTrib') - prod_uTrib.text = inv_line.uos_id.name - - prod_qTrib = SubElement(det_prod, 'qTrib') - prod_qTrib.text = '0.0000' #TODO - - prod_vUnTrib = SubElement(det_prod, 'vUnTrib') - prod_vUnTrib.text = '0.00' #TODO - - prod_vFrete = SubElement(det_prod, 'vFrete') - prod_vFrete.text = '0.00' #TODO - Valor do Frete - - prod_vSeg = SubElement(det_prod, 'vSeg') - prod_vSeg.text = '0.00' #TODO - Valor do seguro - - prod_vDesc = SubElement(det_prod, 'vDesc') - prod_vDesc.text = str("%.2f" % inv_line.discount) #TODO - - prod_vOutro = SubElement(det_prod, 'vOutro') - prod_vOutro.text = '0.0000' #TODO - - prod_indTot = SubElement(det_prod, 'indTot') - prod_indTot.text = '1' #TODO - - prod_imposto = SubElement(det, 'imposto') - - imposto_icms = SubElement(prod_imposto, 'ICMS' ) # + inv_line.icms_cst) - - imposto_icms_cst = SubElement(imposto_icms, 'ICMS%s' % (inv_line.icms_cst)) - - icms_orig = SubElement(imposto_icms_cst, 'orig') - icms_orig.text = inv_line.product_id.origin - - icms_CST = SubElement(imposto_icms_cst, 'CST') - icms_CST.text = inv_line.icms_cst - - icms_modBC = SubElement(imposto_icms_cst, 'modBC') - icms_modBC.text = '0' # TODO - - icms_vBC = SubElement(imposto_icms_cst, 'vBC') - icms_vBC.text = str("%.2f" % inv_line.icms_base) - - icms_pICMS = SubElement(imposto_icms_cst, 'pICMS') - icms_pICMS.text = str("%.2f" % inv_line.icms_percent) - - icms_vICMS = SubElement(imposto_icms_cst, 'vICMS') - icms_vICMS.text = str("%.2f" % inv_line.icms_value) - - imposto_ipi = SubElement(prod_imposto, 'IPI') - - icms_cEnq = SubElement(imposto_ipi, 'cEnq') - icms_cEnq.text = '999' - - #Imposto Não Tributado - ipi_IPINT = SubElement(imposto_ipi, 'IPINT') - - ipi_CST = SubElement(ipi_IPINT, 'CST') - ipi_CST.text = inv_line.ipi_cst - - imposto_pis = SubElement(prod_imposto, 'PIS') - - pis_PISAliq = SubElement(imposto_pis, 'PISAliq') - - pis_CST = SubElement(pis_PISAliq, 'CST') - pis_CST.text = inv_line.pis_cst - - pis_vBC = SubElement(pis_PISAliq, 'vBC') - pis_vBC.text = str("%.2f" % inv_line.pis_base) - - pis_pPIS = SubElement(pis_PISAliq, 'pPIS') - pis_pPIS.text = str("%.2f" % inv_line.pis_percent) - - pis_vPIS = SubElement(pis_PISAliq, 'vPIS') - pis_vPIS.text = str("%.2f" % inv_line.pis_value) - - imposto_cofins = SubElement(prod_imposto, 'COFINS') - - cofins_COFINSAliq = SubElement(imposto_cofins, 'COFINSAliq') - - cofins_CST = SubElement(cofins_COFINSAliq, 'CST') - cofins_CST.text = inv_line.pis_cst - - cofins_vBC = SubElement(cofins_COFINSAliq, 'vBC') - cofins_vBC.text = str("%.2f" % inv_line.cofins_base) - - cofins_pCOFINS = SubElement(cofins_COFINSAliq, 'pCOFINS') - cofins_pCOFINS.text = str("%.2f" % inv_line.cofins_percent) - - cofins_vCOFINS = SubElement(cofins_COFINSAliq, 'vCOFINS') - cofins_vCOFINS.text = str("%.2f" % inv_line.cofins_value) - - total = SubElement(infNFe, 'total') - total_ICMSTot = SubElement(total, 'ICMSTot') - - ICMSTot_vBC = SubElement(total_ICMSTot, 'vBC') - ICMSTot_vBC.text = str("%.2f" % inv.icms_base) - - ICMSTot_vICMS = SubElement(total_ICMSTot, 'vICMS') - ICMSTot_vICMS.text = str("%.2f" % inv.icms_value) - - ICMSTot_vBCST = SubElement(total_ICMSTot, 'vBCST') - ICMSTot_vBCST.text = '0.00' # TODO - - ICMSTot_vST = SubElement(total_ICMSTot, 'vST') - ICMSTot_vST.text = '0.00' # TODO - - ICMSTot_vProd = SubElement(total_ICMSTot, 'vProd') - ICMSTot_vProd.text = str("%.2f" % inv.amount_untaxed) - - ICMSTot_vFrete = SubElement(total_ICMSTot, 'vFrete') - ICMSTot_vFrete.text = '0.00' # TODO - - ICMSTot_vSeg = SubElement(total_ICMSTot, 'vSeg') - ICMSTot_vSeg.text = str("%.2f" % inv.amount_insurance) - - ICMSTot_vDesc = SubElement(total_ICMSTot, 'vDesc') - ICMSTot_vDesc.text = '0.00' # TODO - - ICMSTot_II = SubElement(total_ICMSTot, 'vII') - ICMSTot_II.text = '0.00' # TODO - - ICMSTot_vIPI = SubElement(total_ICMSTot, 'vIPI') - ICMSTot_vIPI.text = str("%.2f" % inv.ipi_value) - - ICMSTot_vPIS = SubElement(total_ICMSTot, 'vPIS') - ICMSTot_vPIS.text = str("%.2f" % inv.pis_value) - - ICMSTot_vCOFINS = SubElement(total_ICMSTot, 'vCOFINS') - ICMSTot_vCOFINS.text = str("%.2f" % inv.cofins_value) - - ICMSTot_vOutro = SubElement(total_ICMSTot, 'vOutro') - ICMSTot_vOutro.text = str("%.2f" % inv.amount_costs) - - ICMSTot_vNF = SubElement(total_ICMSTot, 'vNF') - ICMSTot_vNF.text = str("%.2f" % inv.amount_total) - - - transp = SubElement(infNFe, 'transp') - - # Modo do Frete: 0- Por conta do emitente; 1- Por conta do destinatário/remetente; 2- Por conta de terceiros; 9- Sem frete (v2.0) - transp_modFrete = SubElement(transp, 'modFrete') - transp_modFrete.text = '0' #TODO - - if inv.carrier_id: - - #Endereço do company - carrier_addr = self.pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) - carrier_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] - - transp_transporta = SubElement(transp, 'transporta') - - if inv.carrier_id.partner_id.tipo_pessoa == 'J': - transporta_CNPJ = SubElement(transp_transporta, 'CNPJ') - transporta_CNPJ.text = inv.carrier_id.partner_id.cnpj_cpf - else: - transporta_CPF = SubElement(transp_transporta, 'CPF') - transporta_CPF.text = inv.carrier_id.partner_id.cnpj_cpf - - transporta_xNome = SubElement(transp_transporta, 'xNome') - if inv.carrier_id.partner_id.legal_name: - transporta_xNome.text = inv.carrier_id.partner_id.legal_name - else: - transporta_xNome.text = inv.carrier_id.partner_id.name - - transporta_IE = SubElement(transp_transporta, 'IE') - transporta_IE.text = inv.carrier_id.partner_id.inscr_est - - transporta_xEnder = SubElement(transp_transporta, 'xEnder') - transporta_xEnder.text = carrier_addr_default.street - - transporta_xMun = SubElement(transp_transporta, 'xMun') - transporta_xMun.text = ('%s%s') % (carrier_addr_default.state_id.ibge_code, carrier_addr_default.l10n_br_city_id.ibge_code) - - transporta_UF = SubElement(transp_transporta, 'UF') - transporta_UF.text = carrier_addr_default.state_id.code - - - if inv.number_of_packages: - transp_vol = SubElement(transp, 'vol') - - vol_qVol = SubElement(transp_vol, 'qVol') - vol_qVol.text = inv.number_of_packages - - vol_esp = SubElement(transp_vol, 'esp') - vol_esp.text = 'volume' #TODO - - vol_pesoL = SubElement(transp_vol, 'pesoL') - vol_pesoL.text = inv.weight_net - - vol_pesoB = SubElement(transp_vol, 'pesoB') - vol_pesoB.text = inv.weight - - xml_string = ElementTree.tostring(nfeProc, 'utf-8') - return xml_string - - + result = txt.validate(cr, uid, ids, context) + return result def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id): result = {'fiscal_operation_id': False, @@ -2407,54 +1093,54 @@ def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', account_invoice_line() -class account_invoice_tax(osv.osv): - _inherit = "account.invoice.tax" - _description = "Invoice Tax" - - def compute(self, cr, uid, invoice_id, context={}): - tax_grouped = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context) - cur = inv.currency_id - company_currency = inv.company_id.currency_id.id - - for line in inv.invoice_line: - taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, (line.price_unit* (1-(line.discount or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id, fiscal_operation=line.fiscal_operation_id) - for tax in taxes['taxes']: - val = {} - val['invoice_id'] = inv.id - val['name'] = tax['name'] - val['amount'] = tax['amount'] - val['manual'] = False - val['sequence'] = tax['sequence'] - val['base'] = tax['total_base'] - if inv.type in ('out_invoice','in_invoice'): - val['base_code_id'] = tax['base_code_id'] - val['tax_code_id'] = tax['tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['account_id'] = tax['account_collected_id'] or line.account_id.id - else: - val['base_code_id'] = tax['ref_base_code_id'] - val['tax_code_id'] = tax['ref_tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['account_id'] = tax['account_paid_id'] or line.account_id.id - - key = (val['tax_code_id'], val['base_code_id'], val['account_id']) - if not key in tax_grouped: - tax_grouped[key] = val - else: - tax_grouped[key]['amount'] += val['amount'] - tax_grouped[key]['base'] += val['base'] - tax_grouped[key]['base_amount'] += val['base_amount'] - tax_grouped[key]['tax_amount'] += val['tax_amount'] - for t in tax_grouped.values(): - t['base'] = cur_obj.round(cr, uid, cur, t['base']) - t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) - t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) - t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) - return tax_grouped - -account_invoice_tax() \ No newline at end of file +#class account_invoice_tax(osv.osv): +# _inherit = "account.invoice.tax" +# _description = "Invoice Tax" +# +# def compute(self, cr, uid, invoice_id, context={}): +# tax_grouped = {} +# tax_obj = self.pool.get('account.tax') +# cur_obj = self.pool.get('res.currency') +# inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context) +# cur = inv.currency_id +# company_currency = inv.company_id.currency_id.id +# +# for line in inv.invoice_line: +# taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, (line.price_unit* (1-(line.discount or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id, fiscal_operation=line.fiscal_operation_id) +# for tax in taxes['taxes']: +# val = {} +# val['invoice_id'] = inv.id +# val['name'] = tax['name'] +# val['amount'] = tax['amount'] +# val['manual'] = False +# val['sequence'] = tax['sequence'] +# val['base'] = tax['total_base'] +# if inv.type in ('out_invoice','in_invoice'): +# val['base_code_id'] = tax['base_code_id'] +# val['tax_code_id'] = tax['tax_code_id'] +# val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) +# val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) +# val['account_id'] = tax['account_collected_id'] or line.account_id.id +# else: +# val['base_code_id'] = tax['ref_base_code_id'] +# val['tax_code_id'] = tax['ref_tax_code_id'] +# val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) +# val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) +# val['account_id'] = tax['account_paid_id'] or line.account_id.id +# +# key = (val['tax_code_id'], val['base_code_id'], val['account_id']) +# if not key in tax_grouped: +# tax_grouped[key] = val +# else: +# tax_grouped[key]['amount'] += val['amount'] +# tax_grouped[key]['base'] += val['base'] +# tax_grouped[key]['base_amount'] += val['base_amount'] +# tax_grouped[key]['tax_amount'] += val['tax_amount'] +# for t in tax_grouped.values(): +# t['base'] = cur_obj.round(cr, uid, cur, t['base']) +# t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) +# t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) +# t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) +# return tax_grouped +# +#account_invoice_tax() \ No newline at end of file diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py new file mode 100644 index 000000000000..dc1884dde04b --- /dev/null +++ b/l10n_br_account/sped/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +import efd +import nfe +import nfse diff --git a/l10n_br_account/sped/edf/__init__.py b/l10n_br_account/sped/edf/__init__.py new file mode 100644 index 000000000000..e377df23c928 --- /dev/null +++ b/l10n_br_account/sped/edf/__init__.py @@ -0,0 +1,18 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# diff --git a/l10n_br_account/sped/nfe/__init__.py b/l10n_br_account/sped/nfe/__init__.py new file mode 100644 index 000000000000..10eb98ccc46d --- /dev/null +++ b/l10n_br_account/sped/nfe/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +import serializer +import processing +import validator diff --git a/l10n_br_account/sped/nfe/processing/__init__.py b/l10n_br_account/sped/nfe/processing/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/l10n_br_account/sped/nfe/serializer/__init__.py b/l10n_br_account/sped/nfe/serializer/__init__.py new file mode 100644 index 000000000000..e85bd7453649 --- /dev/null +++ b/l10n_br_account/sped/nfe/serializer/__init__.py @@ -0,0 +1,21 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +import txt +import xml diff --git a/l10n_br_account/sped/nfe/serializer/txt.py b/l10n_br_account/sped/nfe/serializer/txt.py new file mode 100644 index 000000000000..38d56635efb5 --- /dev/null +++ b/l10n_br_account/sped/nfe/serializer/txt.py @@ -0,0 +1,713 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +print 'Aqui' +import time +from datetime import datetime +import netsvc +import re +import string +from unicodedata import normalize + +from osv import fields, osv +from tools.translate import _ +import pooler + +def nfe_export(cr, uid, ids, nfe_environment='1', context=False): + StrFile = '' + StrNF = 'NOTA FISCAL|%s|\n' % len(ids) + StrFile = StrNF + pool = pooler.get_pool(cr.dbname) + + for inv in pool.get('account.invoice').browse(cr, uid, ids, context={'lang': 'pt_BR'}): + #Endereço do company + company_addr = pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) + company_addr_default = pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] + + StrA = 'A|%s|%s|\n' % ('2.00', '') + + StrFile += StrA + + StrRegB = { + 'cUF': company_addr_default.state_id.ibge_code, + 'cNF': '', + 'NatOp': normalize('NFKD',unicode(inv.cfop_ids[0].small_name or '')).encode('ASCII','ignore'), + 'intPag': '2', + 'mod': inv.fiscal_document_id.code, + 'serie': inv.document_serie_id.code, + 'nNF': inv.internal_number or '', + 'dEmi': inv.date_invoice or '', + 'dSaiEnt': inv.date_invoice or '', + 'hSaiEnt': '', + 'tpNF': '', + 'cMunFG': ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code), + 'TpImp': '1', + 'TpEmis': '1', + 'cDV': '', + 'tpAmb': nfe_environment, + 'finNFe': '1', + 'procEmi': '0', + 'VerProc': '2.2.1', + 'dhCont': '', + 'xJust': '', + } + + if inv.cfop_ids[0].type in ("input"): + StrRegB['tpNF'] = '0' + else: + StrRegB['tpNF'] = '1' + + StrB = 'B|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegB['cUF'], StrRegB['cNF'], StrRegB['NatOp'], StrRegB['intPag'], + StrRegB['mod'], StrRegB['serie'], StrRegB['nNF'], StrRegB['dEmi'], StrRegB['dSaiEnt'], + StrRegB['hSaiEnt'], StrRegB['tpNF'], StrRegB['cMunFG'], StrRegB['TpImp'], StrRegB['TpEmis'], + StrRegB['cDV'], StrRegB['tpAmb'], StrRegB['finNFe'], StrRegB['procEmi'], StrRegB['VerProc'], + StrRegB['dhCont'], StrRegB['xJust']) + StrFile += StrB + + StrRegC = { + 'XNome': normalize('NFKD',unicode(inv.company_id.partner_id.legal_name or '')).encode('ASCII','ignore'), + 'XFant': normalize('NFKD',unicode(inv.company_id.partner_id.name or '')).encode('ASCII','ignore'), + 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), + 'IEST': '', + 'IM': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or ''), + 'CNAE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main_id.code or ''), + 'CRT': inv.company_id.fiscal_type or '', + } + + #TODO - Verificar, pois quando e informado do CNAE ele exige que a inscricao municipal, parece um bug do emissor da NFE + if not inv.company_id.partner_id.inscr_mun: + StrRegC['CNAE'] = '' + + StrC = 'C|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC['XNome'], StrRegC['XFant'], StrRegC['IE'], StrRegC['IEST'], + StrRegC['IM'],StrRegC['CNAE'],StrRegC['CRT']) + + StrFile += StrC + + if inv.company_id.partner_id.tipo_pessoa == 'J': + StrC02 = 'C02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + else: + StrC02 = 'C02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + + StrFile += StrC02 + + address_company_bc_code = '' + if company_addr_default.country_id.bc_code: + address_company_bc_code = company_addr_default.country_id.bc_code[1:] + + StrRegC05 = { + 'XLgr': normalize('NFKD',unicode(company_addr_default.street or '')).encode('ASCII','ignore'), + 'Nro': company_addr_default.number or '', + 'Cpl': normalize('NFKD',unicode(company_addr_default.street2 or '')).encode('ASCII','ignore'), + 'Bairro': normalize('NFKD',unicode(company_addr_default.district or 'Sem Bairro')).encode('ASCII','ignore'), + 'CMun': '%s%s' % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code), + 'XMun': normalize('NFKD',unicode(company_addr_default.l10n_br_city_id.name or '')).encode('ASCII','ignore'), + 'UF': company_addr_default.state_id.code or '', + 'CEP': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.zip or '').replace(' ','')), + 'cPais': address_company_bc_code or '', + 'xPais': normalize('NFKD',unicode(company_addr_default.country_id.name or '')).encode('ASCII','ignore'), + 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.phone or '').replace(' ','')), + } + + StrC05 = 'C05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC05['XLgr'], StrRegC05['Nro'], StrRegC05['Cpl'], StrRegC05['Bairro'], + StrRegC05['CMun'], StrRegC05['XMun'], StrRegC05['UF'], StrRegC05['CEP'], + StrRegC05['cPais'], StrRegC05['xPais'], StrRegC05['fone']) + + StrFile += StrC05 + + address_invoice_bc_code = '' + address_invoice_state_code = '' + address_invoice_city = '' + UFEmbarq = '' + XLocEmbarq = '' + address_invoice_cep = '' + if inv.address_invoice_id.country_id.bc_code: + address_invoice_bc_code = inv.address_invoice_id.country_id.bc_code[1:] + + if inv.address_invoice_id.country_id.id != company_addr_default.country_id.id: + address_invoice_state_code = 'EX' + address_invoice_city = 'Exterior' + UFEmbarq = company_addr_default.state_id.code + XLocEmbarq = company_addr_default.city + address_invoice_cep = '' + else: + address_invoice_state_code = inv.address_invoice_id.state_id.code + address_invoice_city = normalize('NFKD',unicode(inv.address_invoice_id.l10n_br_city_id.name or '')).encode('ASCII','ignore') + address_invoice_cep = re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.address_invoice_id.zip or '').replace(' ','')) + + # Se o ambiente for de teste deve ser escrito na razão do destinatário + if nfe_environment == '2': + xNome = 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL' + else: + xNome = normalize('NFKD', unicode(inv.partner_id.legal_name or '')).encode('ASCII', 'ignore') + + StrRegE = { + 'xNome': xNome, + 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.inscr_est or ''), + 'ISUF': '', + 'email': inv.partner_id.email or '', + } + + StrE = 'E|%s|%s|%s|%s|\n' % (StrRegE['xNome'], StrRegE['IE'], StrRegE['ISUF'], StrRegE['email']) + + StrFile += StrE + + if inv.partner_id.tipo_pessoa == 'J': + StrE0 = 'E02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + else: + StrE0 = 'E03|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + + StrFile += StrE0 + + StrRegE05 = { + 'xLgr': normalize('NFKD',unicode(inv.address_invoice_id.street or '')).encode('ASCII','ignore'), + 'nro': normalize('NFKD',unicode(inv.address_invoice_id.number or '')).encode('ASCII','ignore'), + 'xCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.address_invoice_id.street2 or '' )).encode('ASCII','ignore')), + 'xBairro': normalize('NFKD',unicode(inv.address_invoice_id.district or 'Sem Bairro')).encode('ASCII','ignore'), + 'cMun': ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.l10n_br_city_id.ibge_code), + 'xMun': address_invoice_city, + 'UF': address_invoice_state_code, + 'CEP': address_invoice_cep, + 'cPais': address_invoice_bc_code, + 'xPais': normalize('NFKD',unicode(inv.address_invoice_id.country_id.name or '')).encode('ASCII','ignore'), + 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.address_invoice_id.phone or '').replace(' ','')), + } + + StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'], + StrRegE05['cMun'], StrRegE05['xMun'], StrRegE05['UF'], StrRegE05['CEP'], + StrRegE05['cPais'],StrRegE05['xPais'], StrRegE05['fone'],) + + StrFile += StrE05 + + if inv.partner_shipping_id: + + if inv.address_invoice_id != inv.partner_shipping_id: + + StrRegG = { + 'XLgr': normalize('NFKD',unicode(inv.partner_shipping_id.street or '',)).encode('ASCII','ignore'), + 'Nro': normalize('NFKD',unicode(inv.partner_shipping_id.number or '')).encode('ASCII','ignore'), + 'XCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.street2 or '' )).encode('ASCII','ignore')), + 'XBairro': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.district or 'Sem Bairro' )).encode('ASCII','ignore')), + 'CMun': ('%s%s') % (inv.partner_shipping_id.state_id.ibge_code, inv.partner_shipping_id.l10n_br_city_id.ibge_code), + 'XMun': normalize('NFKD',unicode(inv.partner_shipping_id.l10n_br_city_id.name or '')).encode('ASCII','ignore'), + 'UF': inv.address_invoice_id.state_id.code, + } + + StrG = 'G|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegG['XLgr'],StrRegG['Nro'],StrRegG['XCpl'],StrRegG['XBairro'],StrRegG['CMun'],StrRegG['XMun'],StrRegG['UF']) + StrFile += StrG + + if inv.partner_id.tipo_pessoa == 'J': + StrG0 = 'G02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + else: + StrG0 = 'G02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + + StrFile += StrG0 + + i = 0 + for inv_line in inv.invoice_line: + i += 1 + + StrH = 'H|%s||\n' % (i) + + StrFile += StrH + + StrRegI = { + 'CProd': normalize('NFKD',unicode(inv_line.product_id.code or '',)).encode('ASCII','ignore'), + 'CEAN': inv_line.product_id.ean13 or '', + 'XProd': normalize('NFKD',unicode(inv_line.product_id.name or '')).encode('ASCII','ignore'), + 'NCM': re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.product_id.property_fiscal_classification.name or ''), + 'EXTIPI': '', + 'CFOP': inv_line.cfop_id.code, + 'UCom': normalize('NFKD',unicode(inv_line.uos_id.name or '',)).encode('ASCII','ignore'), + 'QCom': str("%.4f" % inv_line.quantity), + 'VUnCom': str("%.2f" % (inv_line.price_unit * (1-(inv_line.discount or 0.0)/100.0))), + 'VProd': str("%.2f" % inv_line.price_total), + 'CEANTrib': inv_line.product_id.ean13 or '', + 'UTrib': inv_line.uos_id.name, + 'QTrib': str("%.4f" % inv_line.quantity), + 'VUnTrib': str("%.2f" % inv_line.price_unit), + 'VFrete': '', + 'VSeg': '', + 'VDesc': '', + 'vOutro': '', + 'indTot': '1', + 'xPed': '', + 'nItemPed': '', + } + + if inv_line.product_id.code: + StrRegI['CProd'] = inv_line.product_id.code + else: + StrRegI['CProd'] = unicode(i).strip().rjust(4, u'0') + + #No OpenERP já traz o valor unitário como desconto + #if inv_line.discount > 0: + # StrRegI['VDesc'] = str("%.2f" % (inv_line.quantity * (inv_line.price_unit * (1-(inv_line.discount or 0.0)/100.0)))) + + StrI = 'I|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegI['CProd'], StrRegI['CEAN'], StrRegI['XProd'], StrRegI['NCM'], + StrRegI['EXTIPI'], StrRegI['CFOP'], StrRegI['UCom'], StrRegI['QCom'], + StrRegI['VUnCom'], StrRegI['VProd'], StrRegI['CEANTrib'], StrRegI['UTrib'], + StrRegI['QTrib'], StrRegI['VUnTrib'], StrRegI['VFrete'], StrRegI['VSeg'], + StrRegI['VDesc'], StrRegI['vOutro'], StrRegI['indTot'], StrRegI['xPed'], + StrRegI['nItemPed']) + + StrFile += StrI + + StrM = 'M|\n' + + StrFile += StrM + + StrN = 'N|\n' + + StrFile += StrN + + #TODO - Fazer alteração para cada tipo de cst + if inv_line.icms_cst in ('00'): + + StrRegN02 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'ModBC': '0', + 'VBC': str("%.2f" % inv_line.icms_base), + 'PICMS': str("%.2f" % inv_line.icms_percent), + 'VICMS': str("%.2f" % inv_line.icms_value), + } + + StrN02 = 'N02|%s|%s|%s|%s|%s|%s|\n' % (StrRegN02['Orig'], StrRegN02['CST'], StrRegN02['ModBC'], StrRegN02['VBC'], StrRegN02['PICMS'], + StrRegN02['VICMS']) + + StrFile += StrN02 + + if inv_line.icms_cst in ('20'): + + StrRegN04 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'ModBC': '0', + 'PRedBC': str("%.2f" % inv_line.icms_percent_reduction), + 'VBC': str("%.2f" % inv_line.icms_base), + 'PICMS': str("%.2f" % inv_line.icms_percent), + 'VICMS': str("%.2f" % inv_line.icms_value), + } + + StrN04 = 'N04|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN04['Orig'], StrRegN04['CST'], StrRegN04['ModBC'], StrRegN04['PRedBC'], StrRegN04['VBC'], StrRegN04['PICMS'], + StrRegN04['VICMS']) + StrFile += StrN04 + + if inv_line.icms_cst in ('10'): + StrRegN03 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'ModBC': '0', + 'VBC': str("%.2f" % inv_line.icms_base), + 'PICMS': str("%.2f" % inv_line.icms_percent), + 'VICMS': str("%.2f" % inv_line.icms_value), + 'ModBCST': '4', #TODO + 'PMVAST': str("%.2f" % inv_line.icms_st_mva) or '', + 'PRedBCST': '', + 'VBCST': str("%.2f" % inv_line.icms_st_base), + 'PICMSST': str("%.2f" % inv_line.icms_st_percent), + 'VICMSST': str("%.2f" % inv_line.icms_st_value), + } + + StrN03 = 'N03|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN03['Orig'], StrRegN03['CST'], StrRegN03['ModBC'], StrRegN03['VBC'], StrRegN03['PICMS'], + StrRegN03['VICMS'], StrRegN03['ModBCST'], StrRegN03['PMVAST'], StrRegN03['PRedBCST'], StrRegN03['VBCST'], + StrRegN03['PICMSST'], StrRegN03['VICMSST']) + StrFile += StrN03 + + if inv_line.icms_cst in ('40', '41', '50', '51'): + StrRegN06 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'vICMS': str("%.2f" % inv_line.icms_value), + 'motDesICMS': '9', #FIXME + } + + StrN06 = 'N06|%s|%s|%s|%s|\n' % (StrRegN06['Orig'], StrRegN06['CST'], StrRegN06['vICMS'], StrRegN06['motDesICMS']) + + StrFile += StrN06 + + if inv_line.icms_cst in ('60'): + StrRegN08 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'VBCST': str("%.2f" % 0.00), + 'VICMSST': str("%.2f" % 0.00), + } + + StrN08 = 'N08|%s|%s|%s|%s|\n' % (StrRegN08['Orig'], StrRegN08['CST'], StrRegN08['VBCST'], StrRegN08['VICMSST']) + + StrFile += StrN08 + + if inv_line.icms_cst in ('70'): + StrRegN09 = { + 'Orig': inv_line.product_id.origin or '0', + 'CST': inv_line.icms_cst, + 'ModBC': '0', + 'PRedBC': str("%.2f" % inv_line.icms_percent_reduction), + 'VBC': str("%.2f" % inv_line.icms_base), + 'PICMS': str("%.2f" % inv_line.icms_percent), + 'VICMS': str("%.2f" % inv_line.icms_value), + 'ModBCST': '4', #TODO + 'PMVAST': str("%.2f" % inv_line.icms_st_mva) or '', + 'PRedBCST': '', + 'VBCST': str("%.2f" % inv_line.icms_st_base), + 'PICMSST': str("%.2f" % inv_line.icms_st_percent), + 'VICMSST': str("%.2f" % inv_line.icms_st_value), + } + + StrN09 = 'N09|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN09['Orig'], StrRegN09['CST'], StrRegN09['ModBC'], StrRegN09['PRedBC'], StrRegN09['VBC'], StrRegN09['PICMS'], StrRegN09['VICMS'], StrRegN09['ModBCST'], StrRegN09['PMVAST'], StrRegN09['PRedBCST'], StrRegN09['VBCST'], StrRegN09['PICMSST'], StrRegN09['VICMSST']) + + StrFile += StrN09 + + if inv_line.icms_cst in ('90', '900'): + StrRegN10h = { + 'Orig': inv_line.product_id.origin or '0', + 'CSOSN': inv_line.icms_cst, + 'modBC': '0', + 'vBC': str("%.2f" % 0.00), + 'pRedBC': '', + 'pICMS': str("%.2f" % 0.00), + 'vICMS': str("%.2f" % 0.00), + 'modBCST': '', + 'pMVAST': '', + 'pRedBCST': '', + 'vBCST': '', + 'pICMSST': '', + 'vICMSST': '', + 'pCredSN': str("%.2f" % 0.00), + 'vCredICMSSN': str("%.2f" % 0.00), + } + + StrN10h = 'N10h|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegN10h['Orig'], + StrRegN10h['CSOSN'], + StrRegN10h['modBC'], + StrRegN10h['vBC'], + StrRegN10h['pRedBC'], + StrRegN10h['pICMS'], + StrRegN10h['vICMS'], + StrRegN10h['modBCST'], + StrRegN10h['pMVAST'], + StrRegN10h['pRedBCST'], + StrRegN10h['vBCST'], + StrRegN10h['pICMSST'], + StrRegN10h['vICMSST'], + StrRegN10h['pCredSN'], + StrRegN10h['vCredICMSSN']) + + StrFile += StrN10h + + StrRegO = { + 'ClEnq': '', + 'CNPJProd': '', + 'CSelo': '', + 'QSelo': '', + 'CEnq': '999', + } + + StrO = 'O|%s|%s|%s|%s|%s|\n' % (StrRegO['ClEnq'], StrRegO['CNPJProd'], StrRegO['CSelo'], StrRegO['QSelo'], StrRegO['CEnq']) + + StrFile += StrO + + if inv_line.ipi_cst in ('50', '51', '52') and inv_line.ipi_percent > 0: + StrRegO07 = { + 'CST': inv_line.ipi_cst, + 'VIPI': str("%.2f" % inv_line.ipi_value), + } + + StrO07 = 'O07|%s|%s|\n' % (StrRegO07['CST'], StrRegO07['VIPI']) + + StrFile += StrO07 + + if inv_line.ipi_type == 'percent' or '': + StrRegO10 = { + 'VBC': str("%.2f" % inv_line.ipi_base), + 'PIPI': str("%.2f" % inv_line.ipi_percent), + } + StrO1 = 'O10|%s|%s|\n' % (StrRegO10['VBC'], StrRegO10['PIPI']) + + if inv_line.ipi_type == 'quantity': + pesol = 0 + if inv_line.product_id: + pesol = inv_line.product_id.weight_net + StrRegO11 = { + 'QUnid': str("%.4f" % (inv_line.quantity * pesol)), + 'VUnid': str("%.4f" % inv_line.ipi_percent), + } + StrO1 = 'O11|%s|%s|\n' % (StrRegO11['QUnid'], StrRegO11['VUnid']) + + StrFile += StrO1 + + if inv_line.ipi_cst in ('99'): + StrRegO07 = { + 'CST': inv_line.ipi_cst, + 'VIPI': str("%.2f" % inv_line.ipi_value), + } + + StrO07 = ('O07|%s|%s|\n') % (StrRegO07['CST'], StrRegO07['VIPI']) + StrFile += StrO07 + + StrRegO10 = { + 'VBC': str("%.2f" % inv_line.ipi_base), + 'PIPI': str("%.2f" % inv_line.ipi_percent), + } + + StrO10 = ('O10|%s|%s|\n') % (StrRegO10['VBC'], StrRegO10['PIPI']) + StrFile += StrO10 + + if inv_line.ipi_percent == 0 and not inv_line.ipi_cst in ('99'): + StrO1 = 'O08|%s|\n' % inv_line.ipi_cst + StrFile += StrO1 + + StrRegP = { + 'VBC': str("%.2f" % inv_line.ii_base), + 'VDespAdu': str("%.2f" % inv_line.ii_customhouse_charges), + 'VII': str("%.2f" % inv_line.ii_value), + 'VIOF': str("%.2f" % inv_line.ii_iof), + } + + StrP = ('P|%s|%s|%s|%s|\n') % (StrRegP['VBC'], StrRegP['VDespAdu'], StrRegP['VII'], StrRegP['VIOF']) + StrFile += StrP + + StrQ = 'Q|\n' + StrFile += StrQ + + if inv_line.pis_cst in ('01') and inv_line.pis_percent > 0: + StrRegQ02 = { + 'CST': inv_line.pis_cst, + 'VBC': str("%.2f" % inv_line.pis_base), + 'PPIS': str("%.2f" % inv_line.pis_percent), + 'VPIS': str("%.2f" % inv_line.pis_value), + } + + StrQ02 = ('Q02|%s|%s|%s|%s|\n') % (StrRegQ02['CST'], + StrRegQ02['VBC'], + StrRegQ02['PPIS'], + StrRegQ02['VPIS']) + + StrFile += StrQ02 + + if inv_line.pis_cst in ('99'): + StrRegQ05 = { + 'CST': inv_line.pis_cst, + 'VPIS': str("%.2f" % inv_line.pis_value), + } + + StrQ05 = ('Q05|%s|%s|\n') % (StrRegQ05['CST'], StrRegQ05['VPIS']) + StrFile += StrQ05 + + StrRegQ07 = { + 'VBC': str("%.2f" % inv_line.pis_base), + 'PPIS': str("%.2f" % inv_line.pis_percent), + } + + StrQ07 = ('Q07|%s|%s|\n') % (StrRegQ07['VBC'], StrRegQ07['PPIS']) + StrFile += StrQ07 + + if inv_line.pis_percent == 0 and not inv_line.pis_cst in ('99'): + StrQ02 = 'Q04|%s|\n' % inv_line.pis_cst + StrFile += StrQ02 + + StrQ = 'S|\n' + + StrFile += StrQ + + if inv_line.cofins_cst in ('01') and inv_line.cofins_percent > 0: + StrRegS02 = { + 'CST': inv_line.cofins_cst, + 'VBC': str("%.2f" % inv_line.cofins_base), + 'PCOFINS': str("%.2f" % inv_line.cofins_percent), + 'VCOFINS': str("%.2f" % inv_line.cofins_value), + } + + StrS02 = ('S02|%s|%s|%s|%s|\n') % (StrRegS02['CST'], StrRegS02['VBC'], StrRegS02['PCOFINS'], StrRegS02['VCOFINS']) + StrFile += StrS02 + + if inv_line.cofins_cst in ('99'): + StrRegS05 = { + 'CST': inv_line.cofins_cst, + 'VCOFINS': str("%.2f" % inv_line.cofins_value), + } + + StrS05 = ('S05|%s|%s|\n') % (StrRegS05['CST'], StrRegS05['VCOFINS']) + StrFile += StrS05 + + StrRegS07 = { + 'VBC': str("%.2f" % inv_line.cofins_base), + 'PCOFINS': str("%.2f" % inv_line.cofins_percent), + } + + StrS07 = ('S07|%s|%s|\n') % (StrRegS07['VBC'], StrRegS07['PCOFINS']) + StrFile += StrS07 + + if inv_line.cofins_percent == 0 and not inv_line.cofins_cst in ('99'): + StrS02 = 'S04|%s|\n' % inv_line.cofins_cst + StrFile += StrS02 + + StrW = 'W|\n' + + StrFile += StrW + + StrRegW02 = { + 'vBC': str("%.2f" % inv.icms_base), + 'vICMS': str("%.2f" % inv.icms_value), + 'vBCST': str("%.2f" % inv.icms_st_base), + 'vST': str("%.2f" % inv.icms_st_value), + 'vProd': str("%.2f" % inv.amount_untaxed), + 'vFrete': str("%.2f" % inv.amount_freight), + 'vSeg': str("%.2f" % inv.amount_insurance), + 'vDesc': '0.00', + 'vII': str("%.2f" % inv.ii_value), + 'vIPI': str("%.2f" % inv.ipi_value), + 'vPIS': str("%.2f" % inv.pis_value), + 'vCOFINS': str("%.2f" % inv.cofins_value), + 'vOutro': str("%.2f" % inv.amount_costs), + 'vNF': str("%.2f" % inv.amount_total), + } + + StrW02 = 'W02|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegW02['vBC'], StrRegW02['vICMS'], StrRegW02['vBCST'], StrRegW02['vST'], StrRegW02['vProd'], + StrRegW02['vFrete'], StrRegW02['vSeg'], StrRegW02['vDesc'], StrRegW02['vII'], StrRegW02['vIPI'], + StrRegW02['vPIS'], StrRegW02['vCOFINS'], StrRegW02['vOutro'], StrRegW02['vNF']) + + StrFile += StrW02 + + # Modo do Frete: 0- Por conta do emitente; 1- Por conta do destinatário/remetente; 2- Por conta de terceiros; 9- Sem frete (v2.0) + if not inv.incoterm: + StrRegX0 = '9' + else: + StrRegX0 = inv.incoterm.freight_responsibility + + StrX = 'X|%s|\n' % (StrRegX0) + + StrFile += StrX + + StrRegX03 = { + 'XNome': '', + 'IE': '', + 'XEnder': '', + 'UF': '', + 'XMun': '', + } + + StrX0 = '' + + if inv.carrier_id: + + #Endereço da transportadora + carrier_addr = pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) + carrier_addr_default = pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] + + if inv.carrier_id.partner_id.legal_name: + StrRegX03['XNome'] = normalize('NFKD', unicode(inv.carrier_id.partner_id.legal_name or '')).encode('ASCII', 'ignore') + else: + StrRegX03['XNome'] = normalize('NFKD', unicode(inv.carrier_id.partner_id.name or '')).encode('ASCII', 'ignore') + + StrRegX03['IE'] = inv.carrier_id.partner_id.inscr_est or '' + StrRegX03['XEnder'] = normalize('NFKD', unicode(carrier_addr_default.street or '')).encode('ASCII', 'ignore') + StrRegX03['UF'] = carrier_addr_default.state_id.code or '' + + if carrier_addr_default.l10n_br_city_id: + StrRegX03['XMun'] = normalize('NFKD', unicode(carrier_addr_default.l10n_br_city_id.name or '')).encode('ASCII', 'ignore') + + if inv.carrier_id.partner_id.tipo_pessoa == 'J': + StrX0 = 'X04|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) + else: + StrX0 = 'X05|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) + + StrX03 = 'X03|%s|%s|%s|%s|%s|\n' % (StrRegX03['XNome'], StrRegX03['IE'], StrRegX03['XEnder'], StrRegX03['UF'], StrRegX03['XMun']) + + StrFile += StrX03 + StrFile += StrX0 + + StrRegX18 = { + 'Placa': '', + 'UF': '', + 'RNTC': '', + } + + if inv.vehicle_id: + StrRegX18['Placa'] = inv.vehicle_id.plate or '' + StrRegX18['UF'] = inv.vehicle_id.plate.state_id.code or '' + StrRegX18['RNTC'] = inv.vehicle_id.rntc_code or '' + + + StrX18 = 'X18|%s|%s|%s|\n' % (StrRegX18['Placa'], StrRegX18['UF'], StrRegX18['RNTC']) + + StrFile += StrX18 + + StrRegX26 = { + 'QVol': '', + 'Esp': '', + 'Marca': '', + 'NVol': '', + 'PesoL': '', + 'PesoB': '', + } + + if inv.number_of_packages: + StrRegX26['QVol'] = inv.number_of_packages + StrRegX26['Esp'] = 'Volume' #TODO + StrRegX26['Marca'] + StrRegX26['NVol'] + StrRegX26['PesoL'] = str("%.3f" % inv.weight_net) + StrRegX26['PesoB'] = str("%.3f" % inv.weight) + + StrX26 = 'X26|%s|%s|%s|%s|%s|%s|\n' % (StrRegX26['QVol'], StrRegX26['Esp'], StrRegX26['Marca'], StrRegX26['NVol'], StrRegX26['PesoL'], StrRegX26['PesoB']) + + StrFile += StrX26 + + if inv.journal_id.revenue_expense: + + StrY = 'Y|\n' + + StrFile += StrY + + for line in inv.move_line_receivable_id: + StrRegY07 = { + 'NDup': line.name, + 'DVenc': line.date_maturity or inv.date_due or inv.date_invoice, + 'VDup': str("%.2f" % line.debit), + } + + StrY07 = 'Y07|%s|%s|%s|\n' % (StrRegY07['NDup'], StrRegY07['DVenc'], StrRegY07['VDup']) + + StrFile += StrY07 + + StrRegZ = { + 'InfAdFisco': '', + 'InfCpl': normalize('NFKD',unicode(inv.comment or '')).encode('ASCII','ignore'), + } + + StrZ = 'Z|%s|%s|\n' % (StrRegZ['InfAdFisco'], StrRegZ['InfCpl']) + + StrFile += StrZ + + StrRegZA = { + 'UFEmbarq': UFEmbarq, + 'XLocEmbarq': XLocEmbarq, + } + + StrZA = 'ZA|%s|%s|\n' % (StrRegZA['UFEmbarq'], StrRegZA['XLocEmbarq']) + StrFile += StrZA + + pool.get('account.invoice').write(cr, uid, [inv.id], {'nfe_export_date': datetime.now()}) + + return unicode(StrFile.encode('utf-8'), errors='replace') + +def nfe_import(cr, ids, nfe_environment='1', context=False): + return 'TESTE Import' diff --git a/l10n_br_account/sped/nfe/serializer/xml.py b/l10n_br_account/sped/nfe/serializer/xml.py new file mode 100644 index 000000000000..8c2f43b8b43b --- /dev/null +++ b/l10n_br_account/sped/nfe/serializer/xml.py @@ -0,0 +1,463 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +from lxml import etree +from lxml.etree import ElementTree +from lxml.etree import Element, SubElement, Comment, tostring +import time +from datetime import datetime +import netsvc +import string +from unicodedata import normalize + +from osv import fields, osv +from tools.translate import _ +import pooler + + +def nfe_dv(key): + #Testing + return '0' + +def nfe_export(cr, uid, ids, nfe_environment='1', context=False): + pool = pooler.get_pool(cr.dbname) + nfeProc = Element('nfeProc', {'versao': '2.00', 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) + + for inv in pool.get('account.invoice').browse(cr, uid, ids, context={'lang': 'pt_BR'}): + + #Endereço do company + company_addr = pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) + company_addr_default = pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] + + #MontaChave da Nota Fiscal Eletronica + nfe_key = unicode(company_addr_default.state_id.ibge_code).strip().rjust(2, u'0') + nfe_key += unicode(datetime.strptime(inv.date_invoice, '%Y-%m-%d').strftime(u'%y%m')).strip().rjust(4, u'0') + nfe_key += '08478495000170' # unicode(inv.company_id.partner_id.cnpj_cpf).strip().rjust(14, u'0') + nfe_key += inv.fiscal_document_id.code + nfe_key += unicode(inv.document_serie_id.code).strip().rjust(3, u'0') + nfe_key += unicode(inv.internal_number).strip().rjust(9, u'0') + nfe_key += unicode('1').strip().rjust(1, u'0') # Homologação + nfe_key += unicode(inv.internal_number).strip().rjust(8, u'0') + nfe_key += unicode(nfe_dv(nfe_key)).strip().rjust(1, u'0') + + NFe = SubElement(nfeProc, 'NFe', { 'xmlns': 'http://www.portalfiscal.inf.br/nfe' }) + + infNFe = SubElement(NFe, 'infNFe', {'versao': '2.00', 'Id': nfe_key }) + + # Dados da identificação da nota fiscal + ide = SubElement(infNFe, 'ide') + + ide_cUF = SubElement(ide, 'cUF') + ide_cUF.text = company_addr_default.state_id.ibge_code + + ide_cNF = SubElement(ide, 'cNF') + ide_cNF.text = unicode(inv.internal_number).strip().rjust(8, u'0') + + ide_natOp = SubElement(ide, 'natOp') + ide_natOp.text = inv.cfop_ids[0].name + + ide_indPag = SubElement(ide, 'indPag') + ide_indPag.text = "2" + + ide_mod = SubElement(ide, 'mod') + ide_mod.text = inv.fiscal_document_id.code + + ide_serie = SubElement(ide, 'serie') + ide_serie.text = inv.document_serie_id.code + + ide_nNF = SubElement(ide, 'nNF') + ide_nNF.text = inv.internal_number + + ide_dEmi = SubElement(ide, 'dEmi') + ide_dEmi.text = inv.date_invoice + + ide_dSaiEnt = SubElement(ide, 'dSaiEnt') + ide_dSaiEnt.text = inv.date_invoice + + ide_tpNF = SubElement(ide, 'tpNF') + if inv.type in ("out_invoice", "in_refuld"): + ide_tpNF.text = '0' + else: + ide_tpNF.text = '1' + + ide_cMunFG = SubElement(ide, 'cMunFG') + ide_cMunFG.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code) + + ide_tpImp = SubElement(ide, 'tpImp') + ide_tpImp.text = "1" + + ide_tpEmis = SubElement(ide, 'tpEmis') + ide_tpEmis.text = "1" + + ide_cDV = SubElement(ide, 'cDV') + ide_cDV.text = nfe_dv(nfe_key) + + #Tipo de ambiente: 1 - Produção; 2 - Homologação + ide_tpAmb = SubElement(ide, 'tpAmb') + ide_tpAmb.text = "2" + + #Finalidade da emissão da NF-e: 1 - NFe normal 2 - NFe complementar 3 - NFe de ajuste + ide_finNFe = SubElement(ide, 'finNFe') + ide_finNFe.text = "1" + + ide_procEmi = SubElement(ide, 'procEmi') + ide_procEmi.text = "0" + + ide_verProc = SubElement(ide, 'verProc') + ide_verProc.text = "2.0.4" + + emit = SubElement(infNFe, 'emit') + + emit_CNPJ = SubElement(emit, 'CNPJ') + emit_CNPJ.text = inv.company_id.partner_id.cnpj_cpf + + emit_xNome = SubElement(emit, 'xNome') + emit_xNome.text = inv.company_id.partner_id.legal_name + + emit_xFant = SubElement(emit, 'xFant') + emit_xFant.text = inv.company_id.partner_id.name + + enderEmit = SubElement(emit, 'enderEmit') + + enderEmit_xLgr = SubElement(enderEmit, 'xLgr') + enderEmit_xLgr.text = company_addr_default.street + + enderEmit_nro = SubElement(enderEmit, 'nro') + enderEmit_nro.text = company_addr_default.number + + enderEmit_xBairro = SubElement(enderEmit, 'xBairro') + enderEmit_xBairro.text = company_addr_default.district + + enderEmit_cMun = SubElement(enderEmit, 'cMun') + enderEmit_cMun.text = ('%s%s') % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code) + + enderEmit_xMun = SubElement(enderEmit, 'xMun') + enderEmit_xMun.text = company_addr_default.l10n_br_city_id.name + + enderEmit_UF = SubElement(enderEmit, 'UF') + enderEmit_UF.text = company_addr_default.state_id.code + + enderEmit_CEP = SubElement(enderEmit, 'CEP') + enderEmit_CEP.text = company_addr_default.zip + + enderEmit_cPais = SubElement(enderEmit, 'cPais') + enderEmit_cPais.text = company_addr_default.country_id.bc_code + + enderEmit_xPais = SubElement(enderEmit, 'xPais') + enderEmit_xPais.text = company_addr_default.country_id.name + + enderEmit_fone = SubElement(enderEmit, 'fone') + enderEmit_fone.text = company_addr_default.phone or '' + + emit_IE = SubElement(emit, 'IE') + emit_IE.text = inv.company_id.partner_id.inscr_est + + emit_IEST = SubElement(emit, 'IEST') + emit_IEST.text = '0000000000' #FIXME + + emit_IM = SubElement(emit, 'IM') + emit_IM.text = '0000000000' #FIXME + + emit_CNAE = SubElement(emit, 'CNAE') + emit_CNAE.text = '0111301' #FIXME + + emit_CRT = SubElement(emit, 'CRT') + emit_CRT.text = '3' #FIXME + + dest = SubElement(infNFe, 'dest') + + dest_CNPJ = SubElement(dest, 'CNPJ') + dest_CNPJ.text = inv.partner_id.cnpj_cpf + + dest_xNome = SubElement(dest, 'xNome') + dest_xNome.text = inv.partner_id.legal_name + + enderDest = SubElement(dest, 'enderDest') + + enderDest_xLgr = SubElement(enderDest, 'xLgr') + enderDest_xLgr.text = inv.address_invoice_id.street + + enderDest_nro = SubElement(enderDest, 'nro') + enderDest_nro.text = inv.address_invoice_id.number + + enderDest_xBairro = SubElement(enderDest, 'xBairro') + enderDest_xBairro.text = inv.address_invoice_id.district + + enderDest_cMun = SubElement(enderDest, 'cMun') + enderDest_cMun.text = ('%s%s') % (inv.address_invoice_id.state_id.ibge_code, inv.address_invoice_id.l10n_br_city_id.ibge_code) + + enderDest_xMun = SubElement(enderDest, 'xMun') + enderDest_xMun.text = inv.address_invoice_id.l10n_br_city_id.name + + enderDest_UF = SubElement(enderDest, 'UF') + enderDest_UF.text = inv.address_invoice_id.state_id.code + + enderDest_CEP = SubElement(enderDest, 'CEP') + enderDest_CEP.text = inv.address_invoice_id.zip + + enderDest_cPais = SubElement(enderDest, 'cPais') + enderDest_cPais.text = inv.address_invoice_id.country_id.bc_code + + enderDest_xPais = SubElement(enderDest, 'xPais') + enderDest_xPais.text = inv.address_invoice_id.country_id.name + + enderDest_fone = SubElement(enderDest, 'fone') + enderDest_fone.text = inv.address_invoice_id.phone + + dest_IE = SubElement(dest, 'IE') + dest_IE.text = inv.partner_id.inscr_est + + i = 0 + for inv_line in inv.invoice_line: + i += 1 + det = SubElement(infNFe, 'det', {'nItem': str(i)}) + + det_prod = SubElement(det, 'prod') + + prod_cProd = SubElement(det_prod, 'cProd') + if inv_line.product_id.code: + prod_cProd.text = inv_line.product_id.code + else: + prod_cProd.text = unicode(i).strip().rjust(4, u'0') + + prod_cEAN = SubElement(det_prod, 'cEAN') + prod_cEAN.text = inv_line.product_id.ean13 or '' + + prod_xProd = SubElement(det_prod, 'xProd') + prod_xProd.text = inv_line.product_id.name + + prod_NCM = SubElement(det_prod, 'NCM') + prod_NCM.text = inv_line.product_id.property_fiscal_classification.name + + prod_CFOP = SubElement(det_prod, 'CFOP') + prod_CFOP.text = inv_line.cfop_id.code + + prod_uCom = SubElement(det_prod, 'uCom') + prod_uCom.text = inv_line.uos_id.name + + prod_qCom = SubElement(det_prod, 'qCom') + prod_qCom.text = str("%.4f" % inv_line.quantity) + + prod_vUnCom = SubElement(det_prod, 'vUnCom') + prod_vUnCom.text = str("%.4f" % inv_line.price_unit) + + prod_vProd = SubElement(det_prod, 'vProd') + prod_vProd.text = str("%.2f" % inv_line.price_subtotal) + + prod_cEANTrib = SubElement(det_prod, 'cEANTrib') + #prod_vProd.text(inv_line.total) + + prod_uTrib = SubElement(det_prod, 'uTrib') + prod_uTrib.text = inv_line.uos_id.name + + prod_qTrib = SubElement(det_prod, 'qTrib') + prod_qTrib.text = '0.0000' #TODO + + prod_vUnTrib = SubElement(det_prod, 'vUnTrib') + prod_vUnTrib.text = '0.00' #TODO + + prod_vFrete = SubElement(det_prod, 'vFrete') + prod_vFrete.text = '0.00' #TODO - Valor do Frete + + prod_vSeg = SubElement(det_prod, 'vSeg') + prod_vSeg.text = '0.00' #TODO - Valor do seguro + + prod_vDesc = SubElement(det_prod, 'vDesc') + prod_vDesc.text = str("%.2f" % inv_line.discount) #TODO + + prod_vOutro = SubElement(det_prod, 'vOutro') + prod_vOutro.text = '0.0000' #TODO + + prod_indTot = SubElement(det_prod, 'indTot') + prod_indTot.text = '1' #TODO + + prod_imposto = SubElement(det, 'imposto') + + imposto_icms = SubElement(prod_imposto, 'ICMS' ) # + inv_line.icms_cst) + + imposto_icms_cst = SubElement(imposto_icms, 'ICMS%s' % (inv_line.icms_cst)) + + icms_orig = SubElement(imposto_icms_cst, 'orig') + icms_orig.text = inv_line.product_id.origin + + icms_CST = SubElement(imposto_icms_cst, 'CST') + icms_CST.text = inv_line.icms_cst + + icms_modBC = SubElement(imposto_icms_cst, 'modBC') + icms_modBC.text = '0' # TODO + + icms_vBC = SubElement(imposto_icms_cst, 'vBC') + icms_vBC.text = str("%.2f" % inv_line.icms_base) + + icms_pICMS = SubElement(imposto_icms_cst, 'pICMS') + icms_pICMS.text = str("%.2f" % inv_line.icms_percent) + + icms_vICMS = SubElement(imposto_icms_cst, 'vICMS') + icms_vICMS.text = str("%.2f" % inv_line.icms_value) + + imposto_ipi = SubElement(prod_imposto, 'IPI') + + icms_cEnq = SubElement(imposto_ipi, 'cEnq') + icms_cEnq.text = '999' + + #Imposto Não Tributado + ipi_IPINT = SubElement(imposto_ipi, 'IPINT') + + ipi_CST = SubElement(ipi_IPINT, 'CST') + ipi_CST.text = inv_line.ipi_cst + + imposto_pis = SubElement(prod_imposto, 'PIS') + + pis_PISAliq = SubElement(imposto_pis, 'PISAliq') + + pis_CST = SubElement(pis_PISAliq, 'CST') + pis_CST.text = inv_line.pis_cst + + pis_vBC = SubElement(pis_PISAliq, 'vBC') + pis_vBC.text = str("%.2f" % inv_line.pis_base) + + pis_pPIS = SubElement(pis_PISAliq, 'pPIS') + pis_pPIS.text = str("%.2f" % inv_line.pis_percent) + + pis_vPIS = SubElement(pis_PISAliq, 'vPIS') + pis_vPIS.text = str("%.2f" % inv_line.pis_value) + + imposto_cofins = SubElement(prod_imposto, 'COFINS') + + cofins_COFINSAliq = SubElement(imposto_cofins, 'COFINSAliq') + + cofins_CST = SubElement(cofins_COFINSAliq, 'CST') + cofins_CST.text = inv_line.pis_cst + + cofins_vBC = SubElement(cofins_COFINSAliq, 'vBC') + cofins_vBC.text = str("%.2f" % inv_line.cofins_base) + + cofins_pCOFINS = SubElement(cofins_COFINSAliq, 'pCOFINS') + cofins_pCOFINS.text = str("%.2f" % inv_line.cofins_percent) + + cofins_vCOFINS = SubElement(cofins_COFINSAliq, 'vCOFINS') + cofins_vCOFINS.text = str("%.2f" % inv_line.cofins_value) + + total = SubElement(infNFe, 'total') + total_ICMSTot = SubElement(total, 'ICMSTot') + + ICMSTot_vBC = SubElement(total_ICMSTot, 'vBC') + ICMSTot_vBC.text = str("%.2f" % inv.icms_base) + + ICMSTot_vICMS = SubElement(total_ICMSTot, 'vICMS') + ICMSTot_vICMS.text = str("%.2f" % inv.icms_value) + + ICMSTot_vBCST = SubElement(total_ICMSTot, 'vBCST') + ICMSTot_vBCST.text = '0.00' # TODO + + ICMSTot_vST = SubElement(total_ICMSTot, 'vST') + ICMSTot_vST.text = '0.00' # TODO + + ICMSTot_vProd = SubElement(total_ICMSTot, 'vProd') + ICMSTot_vProd.text = str("%.2f" % inv.amount_untaxed) + + ICMSTot_vFrete = SubElement(total_ICMSTot, 'vFrete') + ICMSTot_vFrete.text = '0.00' # TODO + + ICMSTot_vSeg = SubElement(total_ICMSTot, 'vSeg') + ICMSTot_vSeg.text = str("%.2f" % inv.amount_insurance) + + ICMSTot_vDesc = SubElement(total_ICMSTot, 'vDesc') + ICMSTot_vDesc.text = '0.00' # TODO + + ICMSTot_II = SubElement(total_ICMSTot, 'vII') + ICMSTot_II.text = '0.00' # TODO + + ICMSTot_vIPI = SubElement(total_ICMSTot, 'vIPI') + ICMSTot_vIPI.text = str("%.2f" % inv.ipi_value) + + ICMSTot_vPIS = SubElement(total_ICMSTot, 'vPIS') + ICMSTot_vPIS.text = str("%.2f" % inv.pis_value) + + ICMSTot_vCOFINS = SubElement(total_ICMSTot, 'vCOFINS') + ICMSTot_vCOFINS.text = str("%.2f" % inv.cofins_value) + + ICMSTot_vOutro = SubElement(total_ICMSTot, 'vOutro') + ICMSTot_vOutro.text = str("%.2f" % inv.amount_costs) + + ICMSTot_vNF = SubElement(total_ICMSTot, 'vNF') + ICMSTot_vNF.text = str("%.2f" % inv.amount_total) + + + transp = SubElement(infNFe, 'transp') + + # Modo do Frete: 0- Por conta do emitente; 1- Por conta do destinatário/remetente; 2- Por conta de terceiros; 9- Sem frete (v2.0) + transp_modFrete = SubElement(transp, 'modFrete') + transp_modFrete.text = '0' #TODO + + if inv.carrier_id: + + #Endereço do company + carrier_addr = pool.get('res.partner').address_get(cr, uid, [inv.carrier_id.partner_id.id], ['default']) + carrier_addr_default = pool.get('res.partner.address').browse(cr, uid, [carrier_addr['default']])[0] + + transp_transporta = SubElement(transp, 'transporta') + + if inv.carrier_id.partner_id.tipo_pessoa == 'J': + transporta_CNPJ = SubElement(transp_transporta, 'CNPJ') + transporta_CNPJ.text = inv.carrier_id.partner_id.cnpj_cpf + else: + transporta_CPF = SubElement(transp_transporta, 'CPF') + transporta_CPF.text = inv.carrier_id.partner_id.cnpj_cpf + + transporta_xNome = SubElement(transp_transporta, 'xNome') + if inv.carrier_id.partner_id.legal_name: + transporta_xNome.text = inv.carrier_id.partner_id.legal_name + else: + transporta_xNome.text = inv.carrier_id.partner_id.name + + transporta_IE = SubElement(transp_transporta, 'IE') + transporta_IE.text = inv.carrier_id.partner_id.inscr_est + + transporta_xEnder = SubElement(transp_transporta, 'xEnder') + transporta_xEnder.text = carrier_addr_default.street + + transporta_xMun = SubElement(transp_transporta, 'xMun') + transporta_xMun.text = ('%s%s') % (carrier_addr_default.state_id.ibge_code, carrier_addr_default.l10n_br_city_id.ibge_code) + + transporta_UF = SubElement(transp_transporta, 'UF') + transporta_UF.text = carrier_addr_default.state_id.code + + + if inv.number_of_packages: + transp_vol = SubElement(transp, 'vol') + + vol_qVol = SubElement(transp_vol, 'qVol') + vol_qVol.text = inv.number_of_packages + + vol_esp = SubElement(transp_vol, 'esp') + vol_esp.text = 'volume' #TODO + + vol_pesoL = SubElement(transp_vol, 'pesoL') + vol_pesoL.text = inv.weight_net + + vol_pesoB = SubElement(transp_vol, 'pesoB') + vol_pesoB.text = inv.weight + + xml_string = ElementTree.tostring(nfeProc, 'utf-8') + return xml_string + + +def nfe_import(ids, nfe_environment='1', context=False): + return 'TESTE Import' \ No newline at end of file diff --git a/l10n_br_account/sped/nfe/validator/__init__.py b/l10n_br_account/sped/nfe/validator/__init__.py new file mode 100644 index 000000000000..04ee4b41eec3 --- /dev/null +++ b/l10n_br_account/sped/nfe/validator/__init__.py @@ -0,0 +1,2 @@ + +import check \ No newline at end of file diff --git a/l10n_br_account/sped/nfe/validator/txt.py b/l10n_br_account/sped/nfe/validator/txt.py new file mode 100644 index 000000000000..4c57ac6bd521 --- /dev/null +++ b/l10n_br_account/sped/nfe/validator/txt.py @@ -0,0 +1,221 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + +from osv import fields, osv +from tools.translate import _ +import pooler + + +def validate(cr, uid, ids, context=None): + strErro = u'' + pool = pooler.get_pool(cr.dbname) + + if context is None: + context = {} + + for inv in pool.get('account.invoice').browse(cr, uid, ids): + + #Nota fiscal + if not inv.own_invoice or inv.fiscal_type == 'service' or not inv.fiscal_document_nfe: + continue + + company_addr = pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) + company_addr_default = pool.get('res.partner.address').browse(cr, uid, [company_addr['default']], context={'lang': 'pt_BR'})[0] + + if not inv.document_serie_id: + strErro = u'Nota Fiscal - Série da nota fiscal\n' + + if not inv.fiscal_document_id: + strErro += u'Nota Fiscal - Tipo de documento fiscal\n' + + #if not inv.date_invoice: + # strErro = 'Nota Fiscal - Data da nota fiscal\n' + + if not inv.document_serie_id.internal_sequence_id: + strErro += u'Nota Fiscal - Número da nota fiscal, a série deve ter uma sequencia interna\n' + + #Emitente + if not inv.company_id.partner_id.legal_name: + strErro += u'Emitente - Razão Social\n' + + if not inv.company_id.partner_id.name: + strErro += u'Emitente - Fantasia\n' + + if not inv.company_id.partner_id.cnpj_cpf: + strErro += u'Emitente - CNPJ/CPF\n' + + if not company_addr_default.street: + strErro += u'Emitente / Endereço - Logradouro\n' + + if not company_addr_default.number: + strErro += u'Emitente / Endereço - Número\n' + + if not company_addr_default.zip: + strErro += u'Emitente / Endereço - CEP\n' + + if not inv.company_id.cnae_main_id: + strErro += u'Emitente / CNAE Principal\n' + + if not inv.company_id.partner_id.inscr_est: + strErro += u'Emitente / Inscrição Estadual\n' + + if not company_addr_default.state_id: + strErro += u'Emitente / Endereço - Estado\n' + else: + if not company_addr_default.state_id.ibge_code: + strErro += u'Emitente / Endereço - Código do IBGE do estado\n' + if not company_addr_default.state_id.name: + strErro += u'Emitente / Endereço - Nome do estado\n' + + if not company_addr_default.l10n_br_city_id: + strErro += u'Emitente / Endereço - município\n' + else: + if not company_addr_default.l10n_br_city_id.name: + strErro += u'Emitente / Endereço - Nome do município\n' + if not company_addr_default.l10n_br_city_id.ibge_code: + strErro += u'Emitente / Endereço - Código do IBGE do município\n' + + if not company_addr_default.country_id: + strErro += u'Emitente / Endereço - país\n' + else: + if not company_addr_default.country_id.name: + strErro += u'Emitente / Endereço - Nome do país\n' + if not company_addr_default.country_id.bc_code: + strErro += u'Emitente / Endereço - Código do BC do país\n' + + #Destinatário + if inv.partner_id.tipo_pessoa == 'J' and not inv.partner_id.legal_name: + strErro += u'Destinatário - Razão Social\n' + + if not inv.partner_id.cnpj_cpf: + strErro += u'Destinatário - CNPJ/CPF\n' + + if not inv.address_invoice_id.street: + strErro += u'Destinatário / Endereço - Logradouro\n' + + if not inv.address_invoice_id.number: + strErro += u'Destinatário / Endereço - Número\n' + + if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: + if not inv.address_invoice_id.zip: + strErro += u'Destinatário / Endereço - CEP\n' + + if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: + if not inv.address_invoice_id.state_id: + strErro += u'Destinatário / Endereço - Estado\n' + else: + if not inv.address_invoice_id.state_id.ibge_code: + strErro += u'Destinatário / Endereço - Código do IBGE do estado\n' + if not inv.address_invoice_id.state_id.name: + strErro += u'Destinatário / Endereço - Nome do estado\n' + + if inv.address_invoice_id.country_id.id == company_addr_default.country_id.id: + if not inv.address_invoice_id.l10n_br_city_id: + strErro += u'Destinatário / Endereço - Município\n' + else: + if not inv.address_invoice_id.l10n_br_city_id.name: + strErro += u'Destinatário / Endereço - Nome do município\n' + if not inv.address_invoice_id.l10n_br_city_id.ibge_code: + strErro += u'Destinatário / Endereço - Código do IBGE do município\n' + + if not inv.address_invoice_id.country_id: + strErro += u'Destinatário / Endereço - País\n' + else: + if not inv.address_invoice_id.country_id.name: + strErro += u'Destinatário / Endereço - Nome do país\n' + if not inv.address_invoice_id.country_id.bc_code: + strErro += u'Destinatário / Endereço - Código do BC do país\n' + + #endereco de entrega + if inv.partner_shipping_id: + + if inv.address_invoice_id != inv.partner_shipping_id: + + if not inv.partner_shipping_id.street: + strErro += u'Destinatário / Endereço de Entrega - Logradouro\n' + + if not inv.partner_shipping_id.number: + strErro += u'Destinatário / Endereço de Entrega - Número\n' + + if not inv.address_invoice_id.zip: + strErro += u'Destinatário / Endereço de Entrega - CEP\n' + + if not inv.partner_shipping_id.state_id: + strErro += u'Destinatário / Endereço de Entrega - Estado\n' + else: + if not inv.partner_shipping_id.state_id.ibge_code: + strErro += u'Destinatário / Endereço de Entrega - Código do IBGE do estado\n' + if not inv.partner_shipping_id.state_id.name: + strErro += u'Destinatário / Endereço de Entrega - Nome do estado\n' + + if not inv.partner_shipping_id.l10n_br_city_id: + strErro += u'Destinatário / Endereço - Município\n' + else: + if not inv.partner_shipping_id.l10n_br_city_id.name: + strErro += u'Destinatário / Endereço de Entrega - Nome do município\n' + if not inv.partner_shipping_id.l10n_br_city_id.ibge_code: + strErro += u'Destinatário / Endereço de Entrega - Código do IBGE do município\n' + + if not inv.partner_shipping_id.country_id: + strErro += u'Destinatário / Endereço de Entrega - País\n' + else: + if not inv.partner_shipping_id.country_id.name: + strErro += u'Destinatário / Endereço de Entrega - Nome do país\n' + if not inv.partner_shipping_id.country_id.bc_code: + strErro += u'Destinatário / Endereço de Entrega - Código do BC do país\n' + + #produtos + for inv_line in inv.invoice_line: + if inv_line.product_id: + if not inv_line.product_id.default_code: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Referência/Código do produto\n' % (inv_line.product_id.name, inv_line.quantity) + if not inv_line.product_id.name: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Nome do produto\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.cfop_id: + strErro += u'Produtos e Serviços: %s, Qtde: %s - CFOP\n' % (inv_line.product_id.name, inv_line.quantity) + else: + if not inv_line.cfop_id.code: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Código do CFOP\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.uos_id: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Unidade de medida\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.quantity: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Quantidade\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.price_unit: + strErro += u'Produtos e Serviços: %s, Qtde: %s - Preco unitario\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.icms_cst: + strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do ICMS\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.ipi_cst: + strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do IPI\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.pis_cst: + strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do PIS\n' % (inv_line.product_id.name, inv_line.quantity) + + if not inv_line.cofins_cst: + strErro += u'Produtos e Serviços: %s, Qtde: %s - CST do COFINS\n' % (inv_line.product_id.name, inv_line.quantity) + + if strErro: + raise osv.except_osv(_('Error !'), _("Error Validating NFE:\n '%s'") % (strErro, )) + + return True \ No newline at end of file diff --git a/l10n_br_account/sped/nfse/__init__.py b/l10n_br_account/sped/nfse/__init__.py new file mode 100644 index 000000000000..198ef169f2f3 --- /dev/null +++ b/l10n_br_account/sped/nfse/__init__.py @@ -0,0 +1,19 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# + diff --git a/l10n_br_account/wizard/__init__.py b/l10n_br_account/wizard/__init__.py index 86f53ae499df..0c7761d895bc 100644 --- a/l10n_br_account/wizard/__init__.py +++ b/l10n_br_account/wizard/__init__.py @@ -17,6 +17,7 @@ #You should have received a copy of the GNU Affero General Public License # #along with this program. If not, see . # ################################################################################# + import l10n_br_account_nfe_export import nfe_export_from_invoice diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index ffe4710f55f3..8fdf77f1af9e 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -22,6 +22,8 @@ from osv import osv, fields from tools.translate import _ +from l10n_br_account.sped.nfe.serializer import txt, xml + class l10n_br_account_nfe_export(osv.osv_memory): """ Exportar Nota Fiscal Eletrônica """ @@ -54,18 +56,17 @@ def nfe_export(self, cr, uid, ids, context=None): inv_obj = self.pool.get('account.invoice') inv_ids = inv_obj.search(cr, uid, [('state', '=', 'sefaz_export'), ('nfe_export_date', '=', False), ('company_id', '=', data['company_id'][0]), ('own_invoice', '=', True)]) if not inv_ids: - raise osv.except_osv(_('Error !'), _("'%s'") % ('Nenhum documento fiscal para exportação!')) + raise osv.except_osv(_('Error !'), _("'%s'") % _('Nenhum documento fiscal para exportação!')) - if data['file_type'] == 'xml': - file = inv_obj.nfe_export_xml(cr, uid, inv_ids, data['nfe_environment']) - else: - file = inv_obj.nfe_export_txt(cr, uid, inv_ids, data['nfe_environment']) - file_total = file + mod = __import__('l10n_br_account.sped.nfe.serializer.' + data['file_type'], + globals(), locals(), data['file_type']) + + func = getattr(mod, 'nfe_export') + file = func(cr, uid, inv_ids, data['nfe_environment']) + name = 'nfes%s-%s.%s' % (time.strftime('%d-%m-%Y'), self.pool.get('ir.sequence').get(cr, uid, 'nfe.export'), data['file_type']) - self.write(cr, uid, ids, {'file': base64.b64encode(file_total), 'state': 'done', 'name': name}, context=context) + self.write(cr, uid, ids, {'file': base64.b64encode(file), 'state': 'done', 'name': name}, context=context) return False -l10n_br_account_nfe_export() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +l10n_br_account_nfe_export() \ No newline at end of file diff --git a/l10n_br_account/wizard/nfe_export_from_invoice.py b/l10n_br_account/wizard/nfe_export_from_invoice.py index e68e4f5e2553..0d4181b39e60 100644 --- a/l10n_br_account/wizard/nfe_export_from_invoice.py +++ b/l10n_br_account/wizard/nfe_export_from_invoice.py @@ -26,7 +26,7 @@ class nfe_export_from_invoice(osv.osv_memory): """ Export fiscal eletronic file from invoice""" - + _name = "l10n_br_account.nfe_export_from_invoice" _description = "Export eletronic invoice for Emissor de NFe SEFAZ SP" _inherit = "ir.wizard.screen" @@ -76,11 +76,12 @@ def nfe_export_from_invoice(self, cr, uid, ids, context=None): name = 'nfes%s-%s.%s' % (time.strftime('%d-%m-%Y'), self.pool.get('ir.sequence').get(cr, uid, 'nfe.export'), data['file_type']) else: name = 'nfe%s.%s' % (export_inv_numbers[0], data['file_type']) - - if data['file_type'] == 'xml': - nfe_file = inv_obj.nfe_export_xml(cr, uid, export_inv_ids, data['nfe_environment']) - else: - nfe_file = inv_obj.nfe_export_txt(cr, uid, export_inv_ids, data['nfe_environment']) + + mod = __import__('l10n_br_account.sped.nfe.serializer.' + data['file_type'], + globals(), locals(), data['file_type']) + + func = getattr(mod, 'nfe_export') + nfe_file = func(cr, uid, export_inv_ids, data['nfe_environment']) self.write(cr, uid, ids, {'file': base64.b64encode(nfe_file), 'state': 'done', 'name': name}, context=context) if err_msg: @@ -88,6 +89,4 @@ def nfe_export_from_invoice(self, cr, uid, ids, context=None): return False -nfe_export_from_invoice() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +nfe_export_from_invoice() \ No newline at end of file From d5824c5c1d77f46878a37a6a3b664f616caf9eff Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 11 Oct 2012 11:16:13 -0300 Subject: [PATCH 0185/1549] [FIX] --- l10n_br_account/sped/{edf => efd}/__init__.py | 0 l10n_br_account/sped/nfe/serializer/txt.py | 1 - .../sped/nfe/validator/__init__.py | 20 ++++++++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) rename l10n_br_account/sped/{edf => efd}/__init__.py (100%) diff --git a/l10n_br_account/sped/edf/__init__.py b/l10n_br_account/sped/efd/__init__.py similarity index 100% rename from l10n_br_account/sped/edf/__init__.py rename to l10n_br_account/sped/efd/__init__.py diff --git a/l10n_br_account/sped/nfe/serializer/txt.py b/l10n_br_account/sped/nfe/serializer/txt.py index 38d56635efb5..203c572fe007 100644 --- a/l10n_br_account/sped/nfe/serializer/txt.py +++ b/l10n_br_account/sped/nfe/serializer/txt.py @@ -17,7 +17,6 @@ #along with this program. If not, see . # ################################################################################# -print 'Aqui' import time from datetime import datetime import netsvc diff --git a/l10n_br_account/sped/nfe/validator/__init__.py b/l10n_br_account/sped/nfe/validator/__init__.py index 04ee4b41eec3..18a73ccf8990 100644 --- a/l10n_br_account/sped/nfe/validator/__init__.py +++ b/l10n_br_account/sped/nfe/validator/__init__.py @@ -1,2 +1,20 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +################################################################################# -import check \ No newline at end of file +import txt From 45496a1bc1ab614e25421425bd326a69f5a473b7 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 11 Oct 2012 13:13:17 -0300 Subject: [PATCH 0186/1549] =?UTF-8?q?Alterado=20no=20documento=20fiscal=20?= =?UTF-8?q?o=20campo=20nfe=20para=20electronic=20porque=20existe=20mais=20?= =?UTF-8?q?documentos=20fiscais=20do=20que=20a=20nfe=20e=20futuramente=20s?= =?UTF-8?q?er=C3=A1=20necess=C3=A1rio=20identifica-lo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 2 +- l10n_br_account/account_invoice_view.xml | 4 ++-- l10n_br_account/account_invoice_workflow.xml | 4 ++-- l10n_br_account/l10n_br_account.py | 6 +++--- l10n_br_account/l10n_br_account_view.xml | 4 ++-- l10n_br_account/sped/nfe/validator/txt.py | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 50ac7b4847a9..97f25a090906 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -228,7 +228,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'nfe_date': fields.datetime('Data do Status NFE', readonly=True), 'nfe_export_date': fields.datetime('Exportação NFE', readonly=True), 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_document_nfe': fields.related('fiscal_document_id', 'nfe', type='boolean', readonly=True, relation='l10n_br_account.fiscal.document', store=True, string='NFE'), + 'fiscal_document_electronic': fields.related('fiscal_document_id', 'electronic', type='boolean', readonly=True, relation='l10n_br_account.fiscal.document', store=True, string='Electronic'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), 'move_line_receivable_id': fields.function(_get_receivable_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'), 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Série', domain="[('fiscal_document_id','=',fiscal_document_id),('company_id','=',company_id)]", readonly=True, states={'draft':[('readonly',False)]}), diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 41c7c64eed1f..fbf3e686f688 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -91,7 +91,7 @@ string="Validate" icon="gtk-go-forward" /> @@ -330,7 +330,7 @@ diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index 6c2f41d12fd4..5c3af20b4f9d 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -55,7 +55,7 @@ write({'state':'cancel'}) - fiscal_document_nfe == True and own_invoice == True + fiscal_document_electronic == True and own_invoice == True @@ -89,7 +89,7 @@ write({'state':'cancel'}) - fiscal_document_nfe == False or own_invoice == False + fiscal_document_electronic == False or own_invoice == False diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index db90b6cc90b8..accbabe209fc 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -98,9 +98,9 @@ class l10n_br_account_fiscal_document(osv.osv): _description = 'Tipo de Documento Fiscal' _columns = { - 'code': fields.char('Codigo', size=8,required=True), - 'name': fields.char('Descrição', size=64), - 'nfe': fields.boolean('NFe'), + 'code': fields.char(u'Codigo', size=8,required=True), + 'name': fields.char(u'Descrição', size=64), + 'electronic': fields.boolean(u'Eletrônico'), } l10n_br_account_fiscal_document() diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index fc43c8d05f05..d615628c6d11 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -66,7 +66,7 @@
- + @@ -79,7 +79,7 @@ - + diff --git a/l10n_br_account/sped/nfe/validator/txt.py b/l10n_br_account/sped/nfe/validator/txt.py index 4c57ac6bd521..08ffcfe58ea0 100644 --- a/l10n_br_account/sped/nfe/validator/txt.py +++ b/l10n_br_account/sped/nfe/validator/txt.py @@ -32,7 +32,7 @@ def validate(cr, uid, ids, context=None): for inv in pool.get('account.invoice').browse(cr, uid, ids): #Nota fiscal - if not inv.own_invoice or inv.fiscal_type == 'service' or not inv.fiscal_document_nfe: + if not inv.own_invoice or inv.fiscal_type == 'service' or not inv.fiscal_document_electronic: continue company_addr = pool.get('res.partner').address_get(cr, uid, [inv.company_id.partner_id.id], ['default']) From e7a795da10c1dcca9288f59043c96902736cd89c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 23 Oct 2012 13:35:41 -0200 Subject: [PATCH 0187/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20limpeza=20e=20?= =?UTF-8?q?formata=C3=A7=C3=A3o=20do=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 63 ++-- .../account_fiscal_position_rule.py | 113 +++--- .../account_fiscal_position_rule_view.xml | 95 ++--- l10n_br_account/account_invoice.py | 13 +- l10n_br_account/account_invoice_view.xml | 60 ++-- l10n_br_account/l10n_br_account.py | 334 ++++++++++-------- l10n_br_account/partner.py | 58 ++- l10n_br_account/product.py | 88 ++--- l10n_br_account/res_company.py | 148 ++++---- 9 files changed, 508 insertions(+), 464 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 2324d45144cd..9b7881b30120 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### from osv import fields, osv @@ -23,8 +23,7 @@ class account_journal(osv.osv): _inherit = 'account.journal' _columns = { - 'revenue_expense': fields.boolean('Gera Financeiro'), - } + 'revenue_expense': fields.boolean('Gera Financeiro')} account_journal() @@ -33,16 +32,16 @@ class account_tax_computation(osv.osv): """ Implement computation method in taxes """ _name = 'account.tax.computation' _columns = { - 'name': fields.char('Name', size=64), - } + 'name': fields.char('Name', size=64)} account_tax_computation() class account_tax(osv.osv): _inherit = 'account.tax' - - def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, precision): + + def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, + precision): result = {'tax_discount': 0.0, 'taxes': []} for tax in taxes: @@ -67,7 +66,9 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, precisi result['taxes'] = taxes return result - def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None, force_excluded=False, fiscal_operation=False): + def compute_all(self, cr, uid, taxes, price_unit, quantity, + address_id=None, product=None, partner=None, + force_excluded=False, fiscal_operation=False): """ RETURN: { 'total': 0.0, # Total without taxes @@ -143,8 +144,7 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, pro 'total': result['total'], 'total_included': result['total_included'], 'total_tax_discount': totaldc, - 'taxes': calculed_taxes, - } + 'taxes': calculed_taxes} account_tax() @@ -156,20 +156,19 @@ def execute(self, cr, uid, ids, context=None): res = super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context) obj_multi = self.browse(cr, uid, ids[0]) - obj_fiscal_position_template = self.pool.get('account.fiscal.position.template') - obj_fiscal_position = self.pool.get('account.fiscal.position') + obj_fp_template = self.pool.get('account.fiscal.position.template') + obj_fp = self.pool.get('account.fiscal.position') chart_template_id = obj_multi.chart_template_id.id company_id = obj_multi.company_id.id - fp_template_ids = obj_fiscal_position_template.search(cr, uid, [('chart_template_id', '=', chart_template_id)]) + fp_template_ids = obj_fp_template.search(cr, uid, [('chart_template_id', '=', chart_template_id)]) - for fp_template in obj_fiscal_position_template.browse(cr, uid, fp_template_ids, context=context): + for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, context=context): if fp_template.fiscal_operation_id: fp_id = obj_fiscal_position.search(cr, uid, [('name', '=', fp_template.name), ('company_id', '=', company_id)]) if fp_id: - obj_fiscal_position.write(cr, uid, fp_id, {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) + obj_fp.write(cr, uid, fp_id, {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) return res wizard_multi_charts_accounts() - diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index eaf0435bd064..60017488cb5d 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### import time @@ -23,25 +23,26 @@ import decimal_precision as dp FISCAL_RULE_COLUMNS = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', - 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria', requeried=True), - 'fiscal_type': fields.selection([('1', 'Simples Nacional'), - ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), - ('3', 'Regime Normal')], - 'Regime Tributário', required=True), - 'revenue_start': fields.float('Faturamento Inicial', - digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto"), - 'revenue_end': fields.float('Faturamento Final', - digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto"),} + 'partner_fiscal_type_id': fields.many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_operation_category_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', 'Categoria', + requeried=True), + 'fiscal_type': fields.selection( + [('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal')], 'Regime Tributário', required=True), + 'revenue_start': fields.float('Faturamento Inicial', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + 'revenue_end': fields.float('Faturamento Final', + digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto")} FISCAL_RULE_DEFAULTS = { - 'fiscal_type': '3', - 'revenue_start': 0.00, - 'revenue_end': 0.00,} + 'fiscal_type': '3', + 'revenue_start': 0.00, + 'revenue_end': 0.00} class account_fiscal_position_rule_template(osv.osv): _inherit = 'account.fiscal.position.rule.template' @@ -56,7 +57,9 @@ class account_fiscal_position_rule(osv.osv): _columns = FISCAL_RULE_COLUMNS _defaults = FISCAL_RULE_DEFAULTS - def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=False, company_id=False, fiscal_operation_category_id=False, context=None): + def fiscal_position_map(self, cr, uid, partner_id=False, + partner_invoice_id=False, company_id=False, + fiscal_operation_category_id=False, context=None): #Initiate variable result result = {'fiscal_position': False, 'fiscal_operation_id': False} @@ -74,8 +77,10 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals return result #Case 2: Search fiscal position using Account Fiscal Position Rule - company_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_company.partner_id.id], ['default']) - company_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [company_addr['default']])[0] + company_addr = self.pool.get('res.partner').address_get( + cr, uid, [obj_company.partner_id.id], ['default']) + company_addr_default = self.pool.get('res.partner.address').browse( + cr, uid, [company_addr['default']])[0] from_country = company_addr_default.country_id.id from_state = company_addr_default.state_id.id @@ -93,18 +98,23 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals use_domain = context.get('use_domain', ('use_sale', '=', True)) - domain = ['&', ('company_id', '=', company_id), - ('fiscal_operation_category_id', '=', fiscal_operation_category_id), - use_domain, - ('fiscal_type', '=', obj_company.fiscal_type), - '|', ('from_country','=',from_country), ('from_country', '=', False), - '|', ('to_country', '=', to_country), ('to_country', '=', False), - '|', ('from_state', '=', from_state), ('from_state', '=', False), - '|', ('to_state','=', to_state), ('to_state', '=', False), - '|', ('date_start', '=', False), ('date_start', '<=', document_date), - '|', ('date_end', '=', False), ('date_end', '>=', document_date), - '|', ('revenue_start', '=', False), ('revenue_start', '<=', obj_company.annual_revenue), - '|', ('revenue_end', '=', False), ('revenue_end', '>=', obj_company.annual_revenue),] + domain = [ + '&', ('company_id', '=', company_id), + ('fiscal_operation_category_id', '=', fiscal_operation_category_id), + use_domain, + ('fiscal_type', '=', obj_company.fiscal_type), + '|', ('from_country','=',from_country), + ('from_country', '=', False), + '|', ('to_country', '=', to_country), ('to_country', '=', False), + '|', ('from_state', '=', from_state), ('from_state', '=', False), + '|', ('to_state','=', to_state), ('to_state', '=', False), + '|', ('date_start', '=', False), + ('date_start', '<=', document_date), + '|', ('date_end', '=', False), ('date_end', '>=', document_date), + '|', ('revenue_start', '=', False), + ('revenue_start', '<=', obj_company.annual_revenue), + '|', ('revenue_end', '=', False), + ('revenue_end', '>=', obj_company.annual_revenue)] fsc_pos_id = self.search(cr, uid, domain) @@ -115,7 +125,8 @@ def fiscal_position_map(self, cr, uid, partner_id=False, partner_invoice_id=Fals return result - def product_fiscal_category_map(self, cr, uid, product_id=False, fiscal_operation_category_id=False): + def product_fiscal_category_map(self, cr, uid, product_id=False, + fiscal_operation_category_id=False): result = False @@ -261,5 +272,3 @@ def action_create(self, cr, uid, ids, context=None): return {} wizard_account_fiscal_position_rule() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index ed6d3b05cade..4f63cd5189f3 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -1,15 +1,16 @@ - + - l10n_br_account.fiscal.position.rule.template.tree + l10n_br_account.fiscal.position.rule.template.tree + account.fiscal.position.rule.template - + - - + + @@ -17,11 +18,11 @@ l10n_br_account.fiscal.position.rule.tree account.fiscal.position.rule - + - - + + @@ -29,18 +30,18 @@ l10n_br_account.fiscal.position.rule.template.form account.fiscal.position.rule.template - + - - - - - + + + + + - - - + + + @@ -49,18 +50,18 @@ l10n_br_account.fiscal.position.rule.form account.fiscal.position.rule - + - - - - - + + + + + - - - + + + @@ -69,46 +70,46 @@ l10n_br_sale.fiscal.position.rule.template.search account.fiscal.position.rule.template - + - + - - - + + + - + - - - - + + + + - + l10n_br_sale.fiscal.position.rule.search account.fiscal.position.rule - + - + - - + + - + - - - + + + - + - + diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 97f25a090906..c4566e079a3a 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -48,8 +48,7 @@ def _amount_all(self, cr, uid, ids, name, args, context=None): 'pis_value': 0.0, 'cofins_base': 0.0, 'cofins_value': 0.0, - 'ii_value': 0.0, - } + 'ii_value': 0.0} for line in invoice.invoice_line: res[invoice.id]['amount_untaxed'] += line.price_total res[invoice.id]['icms_base'] += line.icms_base @@ -76,14 +75,18 @@ def _get_fiscal_type(self, cr, uid, context=None): context = {} return context.get('fiscal_type', 'product') - def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): - result = super(account_invoice,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu) + def fields_view_get(self, cr, uid, view_id=None, view_type=False, + context=None, toolbar=False, submenu=False): + result = super(account_invoice,self).fields_view_get(cr, uid, + view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) if context is None: context = {} field_names = ['service_type_id'] - result['fields'].update(self.fields_get(cr, uid, field_names, context)) + result['fields'].update(self.fields_get(cr, uid, field_names, + context)) if not view_type: view_id = self.pool.get('ir.ui.view').search(cr, uid, [('name', '=', 'account.invoice.tree')]) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index fbf3e686f688..c5a7bf995ff8 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -23,7 +23,7 @@ - + @@ -41,13 +41,15 @@ - + - + - + @@ -67,16 +70,9 @@ 15 - - - + + + @@ -87,10 +83,8 @@ @@ -102,9 +96,7 @@ @@ -131,7 +123,8 @@ - + @@ -182,8 +175,7 @@ With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You - should only confirm them before sending them to your customers. - + should only confirm them before sending them to your customers. @@ -199,8 +191,7 @@ With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You - should only confirm them before sending them to your customers. - + should only confirm them before sending them to your customers. @@ -226,7 +217,8 @@ 32 - + @@ -260,7 +252,9 @@ - + @@ -287,12 +281,11 @@ - + - + @@ -477,7 +470,8 @@
- + diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index accbabe209fc..fca3e509c247 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -1,60 +1,68 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### from osv import osv, fields class l10n_br_account_cfop(osv.osv): + """ CFOP - Código Fiscal de Operações e Prestações """ _name = 'l10n_br_account.cfop' - _description = 'CFOP - Código Fiscal de Operações e Prestações' - - def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): + _description = 'CFOP' + _columns = { + 'code': fields.char('Código', size=4, requeried=True), + 'name': fields.char('Nome', size=256, requeried=True), + 'small_name': fields.char('Nome Reduzido', size=32, requeried=True), + 'description': fields.text('Descrição'), + 'type': fields.selection([('input', 'Entrada'), + ('output', 'Saida')], + 'Tipo', requeried=True), + 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), + 'child_ids': fields.one2many('l10n_br_account.cfop', + 'parent_id', + 'CFOP Filhos'), + 'internal_type': fields.selection([('view', 'Visualização'), + ('normal', 'Normal')], + 'Tipo Interno', + required=True)} + _defaults = { + 'internal_type': 'normal'} + + def name_search(self, cr, user, name, args=None, operator='ilike', + context=None, limit=80): if not args: args = [] if context is None: context = {} - ids = self.search(cr, user, ['|', ('name', operator, name), ('code', operator, name)] + args, limit=limit, context=context) + ids = self.search(cr, user, ['|', ('name', operator, name), + ('code', operator, name)] + args, + limit=limit, context=context) return self.name_get(cr, user, ids, context) - + def name_get(self, cr, uid, ids, context=None): if not len(ids): return [] if isinstance(ids, (int, long)): ids = [ids] - reads = self.read(cr, uid, ids, ['name','code'], context, load='_classic_write') - return [(x['id'], (x['code'] and x['code'] or '') + (x['name'] and ' - ' + x['name'] or '')) \ - for x in reads] - - _columns = { - 'code': fields.char('Código', size=4, requeried=True), - 'name': fields.char('Nome', size=256, requeried=True), - 'small_name': fields.char('Nome Reduzido', size=32, requeried=True), - 'description': fields.text('Descrição'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), - 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), - 'child_ids': fields.one2many('l10n_br_account.cfop', 'parent_id', 'CFOP Filhos'), - 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), - } - - _defaults = { - 'internal_type': 'normal', - } + reads = self.read(cr, uid, ids, ['name', 'code'], context, + load='_classic_write') + return [(x['id'], (x['code'] and x['code'] or '') + + (x['name'] and ' - ' + x['name'] or '')) for x in reads] l10n_br_account_cfop() @@ -62,22 +70,24 @@ def name_get(self, cr, uid, ids, context=None): class l10n_br_account_service_type(osv.osv): _name = 'l10n_br_account.service.type' _description = 'Cadastro de Operações Fiscais de Serviço' - _columns = { - 'code': fields.char('Código', size=16, required=True), - 'name': fields.char('Descrição', size=256, required=True), - 'parent_id': fields.many2one('l10n_br_account.service.type', 'Tipo de Serviço Pai'), - 'child_ids': fields.one2many('l10n_br_account.service.type', 'parent_id', 'Tipo de Serviço Filhos'), - 'country_id': fields.many2one('res.country', 'País'), - 'state_id': fields.many2one('res.country.state', 'Estado'), - 'l10n_br_city_id': fields.many2one('l10n_br_base.city', 'Município'), - 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), - } - + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=256, required=True), + 'parent_id': fields.many2one('l10n_br_account.service.type', + 'Tipo de Serviço Pai'), + 'child_ids': fields.one2many('l10n_br_account.service.type', + 'parent_id', + 'Tipo de Serviço Filhos'), + 'country_id': fields.many2one('res.country', 'País'), + 'state_id': fields.many2one('res.country.state', 'Estado'), + 'l10n_br_city_id': fields.many2one('l10n_br_base.city', 'Município'), + 'internal_type': fields.selection([('view', 'Visualização'), + ('normal', 'Normal')], + 'Tipo Interno', + required=True)} _defaults = { - 'internal_type': 'normal', - } - + 'internal_type': 'normal'} + def name_get(self, cr, uid, ids, context=None): if not ids: return [] @@ -86,7 +96,7 @@ def name_get(self, cr, uid, ids, context=None): for record in reads: name = record['name'] if record['code']: - name = record['code'] + ' - '+name + name = record['code'] + ' - ' + name res.append((record['id'], name)) return res @@ -96,12 +106,10 @@ def name_get(self, cr, uid, ids, context=None): class l10n_br_account_fiscal_document(osv.osv): _name = 'l10n_br_account.fiscal.document' _description = 'Tipo de Documento Fiscal' - _columns = { - 'code': fields.char(u'Codigo', size=8,required=True), + 'code': fields.char(u'Codigo', size=8, required=True), 'name': fields.char(u'Descrição', size=64), - 'electronic': fields.boolean(u'Eletrônico'), - } + 'electronic': fields.boolean(u'Eletrônico')} l10n_br_account_fiscal_document() @@ -109,72 +117,79 @@ class l10n_br_account_fiscal_document(osv.osv): class l10n_br_account_fiscal_operation_category(osv.osv): _name = 'l10n_br_account.fiscal.operation.category' _description = 'Categoria de Operações Fiscais' - _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), - 'type': fields.selection([('input', 'Entrada'), - ('output', 'Saida')], 'Tipo'), - 'property_journal': fields.property( - 'account.journal', + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo'), + 'property_journal': fields.property('account.journal', type='many2one', relation='account.journal', string="Diário Contábil", method=True, view_load=True, - help="Diário utilizado para esta categoria de operação fiscal"), - 'use_sale' : fields.boolean('Usado em Vendas'), - 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), - 'use_purchase' : fields.boolean('Usado nas Compras'), - 'use_picking' : fields.boolean('Usado nas Listas de Separações'), - 'fiscal_type': fields.selection([('product', 'Produto'), - ('service', 'Serviço')], - 'Tipo Fiscal', - requeried=True), - } - + help="Diário utilizado para esta" + "categoria de operação fiscal"), + 'fiscal_type': fields.selection([('product', 'Produto'), + ('service', 'Serviço')], + 'Tipo Fiscal', requeried=True), + 'use_sale': fields.boolean('Usado em Vendas'), + 'use_invoice': fields.boolean('Usado nas Notas Fiscais'), + 'use_purchase': fields.boolean('Usado nas Compras'), + 'use_picking': fields.boolean('Usado nas Listas de Separações')} _defaults = { 'type': 'output', - 'fiscal_type': 'product', - } + 'fiscal_type': 'product'} l10n_br_account_fiscal_operation_category() class l10n_br_account_fiscal_operation(osv.osv): _name = 'l10n_br_account.fiscal.operation' - _description = 'Operações fiscais' - + _description = 'Operação Fiscais' _columns = { 'code': fields.char('Código', size=16, required=True), 'name': fields.char('Descrição', size=64), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], 'Tipo', requeried=True), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', - domain="[('type','=',type)]", requeried=True), - 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', requeried=True), - 'fiscal_operation_line': fields.one2many('l10n_br_account.fiscal.operation.line', 'fiscal_operation_id', - 'Fiscal Operation Lines'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo', requeried=True), + 'fiscal_operation_category_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria', domain="[('type','=',type)]", + requeried=True), + 'fiscal_document_id': fields.many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal', + requeried=True), + 'fiscal_operation_line': fields.one2many( + 'l10n_br_account.fiscal.operation.line', + 'fiscal_operation_id', + 'Fiscal Operation Lines'), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), - 'service_type_id': fields.many2one('l10n_br_account.service.type', 'Tipo de Serviço'), - 'use_sale' : fields.boolean('Usado em Vendas'), - 'use_invoice' : fields.boolean('Usado nas Notas Fiscais'), - 'use_purchase' : fields.boolean('Usado nas Compras'), - 'use_picking' : fields.boolean('Usado nas Listas de Separações'), - 'refund_fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Op. Fiscal Devolução', - domain="[('type','!=',type)]" ), + 'service_type_id': fields.many2one('l10n_br_account.service.type', + 'Tipo de Serviço'), + 'use_sale': fields.boolean('Usado em Vendas'), + 'use_invoice': fields.boolean('Usado nas Notas Fiscais'), + 'use_purchase': fields.boolean('Usado nas Compras'), + 'use_picking': fields.boolean('Usado nas Listas de Separações'), + 'refund_fiscal_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation', + 'Op. Fiscal Devolução', + domain="[('type','!=',type)]"), 'note': fields.text('Observação'), 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), - 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', - domain="[('fiscal_type','=',fiscal_type)]", requeried=True), - 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', - help="Caso seja marcada essa opção, será incluido o IPI na base de calculo do ICMS.") - } - + 'fiscal_type': fields.selection([('product', 'Produto'), + ('service', 'Serviço')], + 'Tipo Fiscal', + domain="[('fiscal_type','=',fiscal_type)]", + requeried=True), + 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', + help="Caso seja marcada essa opção," + " será incluido o IPI na base de " + "calculo do ICMS.")} _defaults = { 'type': 'output', 'fiscal_type': 'product', - 'fiscal_type': False, - } + 'fiscal_type': False} l10n_br_account_fiscal_operation() @@ -182,17 +197,24 @@ class l10n_br_account_fiscal_operation(osv.osv): class l10n_br_account_fiscal_operation_line(osv.osv): _name = 'l10n_br_account.fiscal.operation.line' _description = 'Linhas das operações ficais' - _columns = { - 'company_id': fields.many2one('res.company', 'Empresa', requeried=True), - 'fiscal_classification_id': fields.many2one('account.product.fiscal.classification', 'NCM', - domain="['|',('company_id','=',False),('company_id','=',company_id)]" ), - 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, - domain="['|',('company_id','=',False),('company_id','=',company_id)]"), - 'cst_id': fields.many2one('account.tax.code', 'Código de Situação Tributária', requeried=True), - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Fiscal Operation Ref', - ondelete='cascade', select=True), - } + 'company_id': fields.many2one('res.company', 'Empresa', + requeried=True), + 'fiscal_classification_id': fields.many2one( + 'account.product.fiscal.classification', 'NCM', + domain="['|',('company_id','=',False)," + "('company_id','=',company_id)]"), + 'tax_code_id': fields.many2one('account.tax.code', + 'Código do Imposto', + requeried=True, + domain="['|',('company_id','=',False)," + "('company_id','=',company_id)]"), + 'cst_id': fields.many2one('account.tax.code', + 'Código de Situação Tributária', + requeried=True), + 'fiscal_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation', + 'Fiscal Operation Ref', ondelete='cascade', select=True)} l10n_br_account_fiscal_operation_line() @@ -200,38 +222,39 @@ class l10n_br_account_fiscal_operation_line(osv.osv): class l10n_br_account_document_serie(osv.osv): _name = 'l10n_br_account.document.serie' _description = 'Serie de documentos fiscais' - _columns = { - 'code': fields.char('Código', size=3, required=True), - 'name': fields.char('Descrição', size=64, required=True), - 'fiscal_document_id': fields.many2one('l10n_br_account.fiscal.document', 'Documento Fiscal', required=True), - 'company_id': fields.many2one('res.company', 'Company', required=True), - 'active':fields.boolean('Active'), - 'fiscal_type': fields.selection([('product', 'Product'), ('service', 'Service')], 'Tipo Fiscal', required=True), - 'internal_sequence_id': fields.many2one('ir.sequence', 'Sequência Interna'), - } - + 'code': fields.char('Código', size=3, required=True), + 'name': fields.char('Descrição', size=64, required=True), + 'fiscal_document_id': fields.many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal', required=True), + 'company_id': fields.many2one('res.company', 'Company', + required=True), + 'active': fields.boolean('Active'), + 'fiscal_type': fields.selection([('product', 'Product'), + ('service', 'Service')], + 'Tipo Fiscal', required=True), + 'internal_sequence_id': fields.many2one('ir.sequence', + 'Sequência Interna')} _defaults = { - 'active': True, - 'fiscal_type': 'product', - } - + 'active': True, + 'fiscal_type': 'product'} + def create_sequence(self, cr, uid, vals, context=None): - """ Create new no_gap entry sequence for every new document serie - """ + """ Create new no_gap entry sequence for every + new document serie """ seq = { - 'name': vals['name'], - 'implementation':'no_gap', - 'padding': 1, - 'number_increment': 1 - } + 'name': vals['name'], + 'implementation': 'no_gap', + 'padding': 1, + 'number_increment': 1} if 'company_id' in vals: seq['company_id'] = vals['company_id'] return self.pool.get('ir.sequence').create(cr, uid, seq) def create(self, cr, uid, vals, context=None): - """ Overwrite method to create a new ir.sequence if this field is null - """ + """ Overwrite method to create a new ir.sequence if + this field is null """ if not 'internal_sequence_id' in vals or not vals['internal_sequence_id']: vals.update({'internal_sequence_id': self.create_sequence(cr, uid, vals, context)}) return super(l10n_br_account_document_serie, self).create(cr, uid, vals, context) @@ -242,14 +265,13 @@ def create(self, cr, uid, vals, context=None): class l10n_br_account_partner_fiscal_type(osv.osv): _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' - _columns = { - 'code': fields.char('Código', size=16, required=True), - 'name': fields.char('Descrição', size=64), - 'tipo_pessoa': fields.selection([('F', 'Física'), ('J', 'Jurídica')], 'Tipo de pessoa', required=True), - 'icms': fields.boolean('Recupera ICMS'), - 'ipi':fields.boolean('Recupera IPI'), - } + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=64), + 'tipo_pessoa': fields.selection([('F', 'Física'), ('J', 'Jurídica')], + 'Tipo de pessoa', required=True), + 'icms': fields.boolean('Recupera ICMS'), + 'ipi': fields.boolean('Recupera IPI')} l10n_br_account_partner_fiscal_type() @@ -257,7 +279,20 @@ class l10n_br_account_partner_fiscal_type(osv.osv): class l10n_br_account_cnae(osv.osv): _name = 'l10n_br_account.cnae' _description = 'Cadastro de CNAE' - + _columns = { + 'code': fields.char('Código', size=16, required=True), + 'name': fields.char('Descrição', size=64, required=True), + 'version': fields.char('Versão', size=16, required=True), + 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), + 'child_ids': fields.one2many('l10n_br_account.cnae', + 'parent_id', 'CNAEs Filhos'), + 'internal_type': fields.selection([('view', 'Visualização'), + ('normal', 'Normal')], + 'Tipo Interno', + required=True)} + _defaults = { + 'internal_type': 'normal'} + def name_get(self, cr, uid, ids, context=None): if not ids: return [] @@ -266,23 +301,8 @@ def name_get(self, cr, uid, ids, context=None): for record in reads: name = record['name'] if record['code']: - name = record['code'] + ' - '+name + name = record['code'] + ' - ' + name res.append((record['id'], name)) return res - _columns = { - 'code': fields.char('Código', size=16, required=True), - 'name': fields.char('Descrição', size=64, required=True), - 'version': fields.char('Versão', size=16, required=True), - 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), - 'child_ids': fields.one2many('l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos'), - 'internal_type': fields.selection([('view', 'Visualização'), ('normal', 'Normal')], 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal', - } - l10n_br_account_cnae() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 1e0970e2bed2..83e8e304ca65 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### from osv import osv, fields @@ -23,10 +23,10 @@ class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'partner_fiscal_type_id': fields.many2one('l10n_br_account.partner.fiscal.type', - 'Tipo Fiscal do Parceiro', - domain="[('tipo_pessoa','=',tipo_pessoa)]"), - } + 'partner_fiscal_type_id': fields.many2one( + 'l10n_br_account.partner.fiscal.type', + 'Tipo Fiscal do Parceiro', + domain="[('tipo_pessoa','=',tipo_pessoa)]")} res_partner() @@ -34,18 +34,16 @@ class res_partner(osv.osv): class account_fiscal_position_template(osv.osv): _inherit = 'account.fiscal.position.template' _columns = { - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', - 'Operação Fiscal'), - } - + 'fiscal_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation', 'Operação Fiscal')} + account_fiscal_position_template() class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = { - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', - 'Operação Fiscal'), - } - -account_fiscal_position() \ No newline at end of file + 'fiscal_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation', 'Operação Fiscal')} + +account_fiscal_position() diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 23a141c55846..3f265fd2306e 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### from osv import osv, fields @@ -23,24 +23,24 @@ class product_template(osv.osv): _inherit = 'product.template' _columns = { - 'fiscal_category_operation_default_ids': fields.one2many('l10n_br_account.product.operation.category', - 'product_tmpl_id', - 'Categoria de Operação Fiscal Padrões'), - 'fiscal_type': fields.selection([('product', 'Produto'), - ('service', 'Serviço')], - 'Tipo Fiscal', requeried=True), - 'is_on_service_invoice': fields.boolean('On Service Invoice?', - help='True if invoiced along with service'), - 'origin': fields.selection([('0', 'Nacional'), - ('1', 'Internacional'), - ('2', 'Inter. Adiquirido Internamente')], 'Origem'), - } - + 'fiscal_category_operation_default_ids': fields.one2many( + 'l10n_br_account.product.operation.category', 'product_tmpl_id', + 'Categoria de Operação Fiscal Padrões'), + 'fiscal_type': fields.selection([('product', 'Produto'), + ('service', 'Serviço')], + 'Tipo Fiscal', requeried=True), + 'is_on_service_invoice': fields.boolean('On Service Invoice?', + help="True if invoiced along " + "with service"), + 'origin': fields.selection([('0', 'Nacional'), + ('1', 'Internacional'), + ('2', 'Inter. Adiquirido Internamente')], + 'Origem')} + _defaults = { - 'fiscal_type': 'product', - 'is_on_service_invoice': False, - 'origin': '0', - } + 'fiscal_type': 'product', + 'is_on_service_invoice': False, + 'origin': '0'} product_template() @@ -48,13 +48,13 @@ class product_template(osv.osv): class l10n_br_account_product_fiscal_operation_category(osv.osv): _name = 'l10n_br_account.product.operation.category' _columns = { - 'fiscal_operation_category_source_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria de Origem'), - 'fiscal_operation_category_destination_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria de Destino'), - 'product_tmpl_id': fields.many2one('product.template', - 'Produto', - ondelete='cascade'), - } - -l10n_br_account_product_fiscal_operation_category() \ No newline at end of file + 'fiscal_operation_category_source_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria de Origem'), + 'fiscal_operation_category_destination_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria de Destino'), + 'product_tmpl_id': fields.many2one('product.template', 'Produto', + ondelete='cascade')} + +l10n_br_account_product_fiscal_operation_category() diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index cbdc46293467..4152fc35bfd3 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### from osv import osv, fields import decimal_precision as dp @@ -24,54 +24,74 @@ class res_company(osv.osv): _inherit = "res.company" _columns = { - 'fiscal_type': fields.selection([('1', 'Simples Nacional'), - ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), - ('3', 'Regime Normal')], - 'Regime Tributário', required=True), - 'annual_revenue': fields.float('Faturamento Anual', required=True, - digits_compute=dp.get_precision('Account'), - help="Faturamento Bruto dos últimos 12 meses"), - 'document_serie_product_ids': fields.many2many('l10n_br_account.document.serie', - 'res_company_l10n_br_account_document_serie', 'company_id', - 'document_serie_product_id', 'Série de Documentos Fiscais', - domain="[('company_id', '=', active_id),('active','=',True), ('fiscal_type','=','product')]"), - 'document_serie_service_id': fields.many2one('l10n_br_account.document.serie', 'Série Fiscais para Serviço', - domain="[('company_id', '=', active_id),('active','=',True),('fiscal_type','=','service')]" ), - 'cnae_main_id': fields.many2one('l10n_br_account.cnae', 'CNAE Primário' ), - 'cnae_secondary_ids': fields.many2many('l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', 'CNAE Segundários'), - 'nfe_version': fields.selection([('1.00', '1.00'), ('2.00', '2.00')], 'Versão NFe', required=True), - 'nfe_source_folder': fields.char('Pasta de Origem', size=254), - 'nfe_destination_folder': fields.char('Pasta de Destino', size=254), - 'nfse_version': fields.selection([('1.00', '1.00')], 'Versão NFse', required=True), - 'nfse_source_folder': fields.char('Pasta de Origem', size=254), - 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), - 'in_invoice_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria Fiscal de Produto Padrão de Entrada', - domain="[('use_invoice','=',True), ('fiscal_type','=','product'), ('type','=','input')]"), - 'out_invoice_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria Fiscal de Produto Padrão de Saida', - domain="[('use_invoice','=',True), ('fiscal_type','=','product'), ('type','=','output')]"), - 'in_refund_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Devolução Entrada', - domain="[('use_invoice','=',True), ('fiscal_type','=','product'), ('type','=','output')]"), - 'out_refund_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Devolução Saida', - domain="[('use_invoice','=',True), ('fiscal_type','=','product'), ('type','=','input')]"), - 'in_invoice_service_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria Fiscal Padrão de Aquisição de Serviço', - domain="[('use_invoice','=',True), ('fiscal_type','=','service'), ('type','=','input')]"), - 'out_invoice_service_fiscal_category_operation_id': fields.many2one('l10n_br_account.fiscal.operation.category', - 'Categoria Fiscal Padrão de Prestação de Serviço', - domain="[('use_invoice','=',True), ('fiscal_type','=','service'), ('type','=','output')]"), - - } + 'fiscal_type': fields.selection([ + ('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal')], + 'Regime Tributário', required=True), + 'annual_revenue': fields.float( + 'Faturamento Anual', required=True, + digits_compute=dp.get_precision('Account'), + help="Faturamento Bruto dos últimos 12 meses"), + 'document_serie_product_ids': fields.many2many( + 'l10n_br_account.document.serie', + 'res_company_l10n_br_account_document_serie', 'company_id', + 'document_serie_product_id', 'Série de Documentos Fiscais', + domain="[('company_id', '=', active_id),('active','=',True)," + "('fiscal_type','=','product')]"), + 'document_serie_service_id': fields.many2one( + 'l10n_br_account.document.serie', 'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id),('active','=',True)," + "('fiscal_type','=','service')]"), + 'cnae_main_id': fields.many2one('l10n_br_account.cnae', + 'CNAE Primário'), + 'cnae_secondary_ids': fields.many2many( + 'l10n_br_account.cnae', + 'res_company_l10n_br_account_cnae', + 'company_id', 'cnae_id', + 'CNAE Segundários'), + 'nfe_version': fields.selection([('1.00', '1.00'), + ('2.00', '2.00')], 'Versão NFe', + required=True), + 'nfe_source_folder': fields.char('Pasta de Origem', size=254), + 'nfe_destination_folder': fields.char('Pasta de Destino', size=254), + 'nfse_version': fields.selection([('1.00', '1.00')], 'Versão NFse', + required=True), + 'nfse_source_folder': fields.char('Pasta de Origem', size=254), + 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), + 'in_invoice_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria Fiscal de Produto Padrão de Entrada', + domain="[('use_invoice','=',True), ('fiscal_type','=','product')," + " ('type','=','input')]"), + 'out_invoice_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria Fiscal de Produto Padrão de Saida', + domain="[('use_invoice','=',True), ('fiscal_type','=','product')," + " ('type','=','output')]"), + 'in_refund_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', 'Devolução Entrada', + domain="[('use_invoice','=',True), ('fiscal_type','=','product')," + " ('type','=','output')]"), + 'out_refund_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', 'Devolução Saida', + domain="[('use_invoice','=',True), ('fiscal_type','=','product')," + " ('type','=','input')]"), + 'in_invoice_service_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria Fiscal Padrão de Aquisição de Serviço', + domain="[('use_invoice','=',True), ('fiscal_type','=','service')," + " ('type','=','input')]"), + 'out_invoice_service_fiscal_category_operation_id': fields.many2one( + 'l10n_br_account.fiscal.operation.category', + 'Categoria Fiscal Padrão de Prestação de Serviço', + domain="[('use_invoice','=',True), ('fiscal_type','=','service')," + " ('type','=','output')]")} _defaults = { - 'fiscal_type': '3', - 'nfe_version': '2.00', - 'nfse_version': '1.00', - 'annual_revenue': 0.0, - } + 'fiscal_type': '3', + 'nfe_version': '2.00', + 'nfse_version': '1.00', + 'annual_revenue': 0.0} res_company() From 51a2e702b4587a0b7c24a10ef755cc74132d038d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 24 Oct 2012 00:25:06 -0200 Subject: [PATCH 0188/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20limpeza,=20for?= =?UTF-8?q?mata=C3=A7=C3=A3o=20e=20documenta=C3=A7=C3=A3o=20do=20c=C3=B3di?= =?UTF-8?q?go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 73 ++++++++++--- .../wizard/l10n_br_account_nfe_export.py | 99 ++++++++++------- .../wizard/nfe_export_from_invoice.py | 103 ++++++++++-------- 3 files changed, 175 insertions(+), 100 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 9b7881b30120..d1f291f080c6 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -69,14 +69,31 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None, force_excluded=False, fiscal_operation=False): - """ - RETURN: { - 'total': 0.0, # Total without taxes - 'total_included': 0.0, # Total with taxes - 'total_tax_discount': 0.0, # Total Tax Discounts - 'taxes': [] # List of taxes, see compute for the format - 'total_base': 0.0, # Total Base by tax - } + """Compute taxes + + Returns a dict of the form:: + + { + 'total': Total without taxes, + 'total_included': Total with taxes, + 'total_tax_discount': Total Tax Discounts, + 'taxes': , + 'total_base': Total Base by tax, + } + + :Parameters: + - 'cr': Database cursor. + - 'uid': Current user. + - 'taxes': List with all taxes id. + - 'price_unit': Product price unit. + - 'quantity': Product quantity. + - 'address_id': Partner address. + - 'force_excluded': Used to say that we don't want to consider + the value of field price_include of tax. + It's used in encoding by line where you don't + matter if you encoded a tax with that boolean to + True or False. + - 'fiscal_operation': Fiscal operation used to compute taxes in some """ obj_precision = self.pool.get('decimal.precision') precision = obj_precision.precision_get(cr, uid, 'Account') @@ -85,7 +102,7 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, totaldc = icms_base = icms_value = icms_percent = ipi_value = 0.0 calculed_taxes = [] - + for tax in result['taxes']: tax_list = [tx for tx in taxes if tx.id == tax['id']] if tax_list: tax_brw = tax_list[0] @@ -151,10 +168,26 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, class wizard_multi_charts_accounts(osv.osv_memory): _inherit = 'wizard.multi.charts.accounts' - + def execute(self, cr, uid, ids, context=None): - res = super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context) + """This function is called at the confirmation of the wizard to + generate the COA from the templates. It will read all the provided + information to create the accounts, the banks, the journals, the + taxes, the tax codes, the accounting properties... accordingly for + the chosen company. + This is override in Brazilian Localization to copy fiscal operation + from fiscal positions template to fiscal positions. + + :Parameters: + - 'cr': Database cursor. + - 'uid': Current user. + - 'ids': Osv_memory id used to read all data. + - 'context': Context. + """ + result = super(wizard_multi_charts_accounts, self).execute( + cr, uid, ids, context) + obj_multi = self.browse(cr, uid, ids[0]) obj_fp_template = self.pool.get('account.fiscal.position.template') obj_fp = self.pool.get('account.fiscal.position') @@ -162,13 +195,19 @@ def execute(self, cr, uid, ids, context=None): chart_template_id = obj_multi.chart_template_id.id company_id = obj_multi.company_id.id - fp_template_ids = obj_fp_template.search(cr, uid, [('chart_template_id', '=', chart_template_id)]) - - for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, context=context): + fp_template_ids = obj_fp_template.search(cr, uid, + [('chart_template_id', '=', chart_template_id)]) + + for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, + context=context): if fp_template.fiscal_operation_id: - fp_id = obj_fiscal_position.search(cr, uid, [('name', '=', fp_template.name), ('company_id', '=', company_id)]) + fp_id = obj_fiscal_position.search(cr, uid, + [('name', '=', fp_template.name), + ('company_id', '=', company_id)]) + if fp_id: - obj_fp.write(cr, uid, fp_id, {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) - return res + obj_fp.write(cr, uid, fp_id, + {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) + return result wizard_multi_charts_accounts() diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export.py b/l10n_br_account/wizard/l10n_br_account_nfe_export.py index 8fdf77f1af9e..bc268ce7d008 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export.py +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export.py @@ -1,21 +1,21 @@ # -*- coding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### import time import base64 @@ -27,46 +27,65 @@ class l10n_br_account_nfe_export(osv.osv_memory): """ Exportar Nota Fiscal Eletrônica """ - _name = "l10n_br_account.nfe_export" _description = "Exportação de Nota Fiscal Eletrônica" _inherit = "ir.wizard.screen" - _columns = { - 'name': fields.char('Name', size=255), - 'file': fields.binary('Arquivo', readonly=True), - 'company_id': fields.many2one('res.company', 'Company'), - 'file_type': fields.selection([('xml', 'XML'), ('txt', 'TXT')], 'Tipo do Arquivo'), - 'import_status_draft': fields.boolean('Importar NFs com status em rascunho'), - 'state': fields.selection([('init', 'init'), ('done', 'done')], 'state', readonly=True), - 'nfe_environment': fields.selection([('1', 'Produção'), ('2', 'Homologação')], 'Ambiente'), - } + 'name': fields.char('Name', size=255), + 'file': fields.binary('Arquivo', readonly=True), + 'company_id': fields.many2one('res.company', 'Company'), + 'file_type': fields.selection([('xml', 'XML'), ('txt', 'TXT')], + 'Tipo do Arquivo'), + 'import_status_draft': fields.boolean("Importar NFs com status " + "em rascunho"), + 'state': fields.selection([('init', 'init'), ('done', 'done')], + 'state', readonly=True), + 'nfe_environment': fields.selection([('1', 'Produção'), + ('2', 'Homologação')], + 'Ambiente')} _defaults = { 'state': 'init', - 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.invoice', context=c), + 'company_id': lambda self, cr, uid, c: + self.pool.get('res.company')._company_default_get( + cr, uid, 'account.invoice', context=c), 'file_type': 'txt', 'import_status_draft': False, - 'nfe_environment': '1', - } + 'nfe_environment': '1'} def nfe_export(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] inv_obj = self.pool.get('account.invoice') - inv_ids = inv_obj.search(cr, uid, [('state', '=', 'sefaz_export'), ('nfe_export_date', '=', False), ('company_id', '=', data['company_id'][0]), ('own_invoice', '=', True)]) + + inv_ids = inv_obj.search(cr, uid, + [('state', '=', 'sefaz_export'), + ('nfe_export_date', '=', False), + ('company_id', '=', data['company_id'][0]), + ('own_invoice', '=', True)]) + if not inv_ids: - raise osv.except_osv(_('Error !'), _("'%s'") % _('Nenhum documento fiscal para exportação!')) - - mod = __import__('l10n_br_account.sped.nfe.serializer.' + data['file_type'], - globals(), locals(), data['file_type']) + raise osv.except_osv(_('Error !'), _("'%s'") % + _('Nenhum documento fiscal para exportação!')) + + mod = __import__( + 'l10n_br_account.sped.nfe.serializer.' + data['file_type'], + globals(), locals(), data['file_type']) - func = getattr(mod, 'nfe_export') + func = getattr(mod, 'nfe_export') file = func(cr, uid, inv_ids, data['nfe_environment']) - - name = 'nfes%s-%s.%s' % (time.strftime('%d-%m-%Y'), self.pool.get('ir.sequence').get(cr, uid, 'nfe.export'), data['file_type']) - self.write(cr, uid, ids, {'file': base64.b64encode(file), 'state': 'done', 'name': name}, context=context) + + name = 'nfes%s-%s.%s' % (time.strftime('%d-%m-%Y'), + self.pool.get('ir.sequence').get( + cr, uid, 'nfe.export'), + data['file_type']) + + self.write(cr, uid, ids, + {'file': base64.b64encode(file), + 'state': 'done', + 'name': name}, + context=context) return False -l10n_br_account_nfe_export() \ No newline at end of file +l10n_br_account_nfe_export() diff --git a/l10n_br_account/wizard/nfe_export_from_invoice.py b/l10n_br_account/wizard/nfe_export_from_invoice.py index 0d4181b39e60..9383f1da1a31 100644 --- a/l10n_br_account/wizard/nfe_export_from_invoice.py +++ b/l10n_br_account/wizard/nfe_export_from_invoice.py @@ -1,22 +1,22 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# Copyright (C) 2011 Vinicius Dittgen - PROGE, Leonardo Santagada - PROGE # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2011 Vinicius Dittgen - PROGE, Leonardo Santagada - PROGE # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### import time import base64 @@ -26,25 +26,25 @@ class nfe_export_from_invoice(osv.osv_memory): """ Export fiscal eletronic file from invoice""" - _name = "l10n_br_account.nfe_export_from_invoice" _description = "Export eletronic invoice for Emissor de NFe SEFAZ SP" _inherit = "ir.wizard.screen" _columns = { - 'name': fields.char('Nome', size=255), - 'file': fields.binary('Arquivo', readonly=True), - 'file_type': fields.selection([('xml', 'XML'), - ('txt', ' TXT')], 'Tipo do Arquivo'), - 'state': fields.selection([('init', 'init'), - ('done', 'done')], 'state', readonly=True), - 'nfe_environment': fields.selection([('1', 'Produção'), - ('2', 'Homologação')], 'Ambiente'), - } + 'name': fields.char('Nome', size=255), + 'file': fields.binary('Arquivo', readonly=True), + 'file_type': fields.selection([('xml', 'XML'), + ('txt', ' TXT')], 'Tipo do Arquivo'), + 'state': fields.selection([('init', 'init'), + ('done', 'done')], + 'state', readonly=True), + 'nfe_environment': fields.selection([('1', 'Produção'), + ('2', 'Homologação')], + 'Ambiente')} + _defaults = { - 'state': 'init', - 'file_type': 'txt', - 'nfe_environment': '1', - } + 'state': 'init', + 'file_type': 'txt', + 'nfe_environment': '1'} def nfe_export_from_invoice(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] @@ -57,36 +57,53 @@ def nfe_export_from_invoice(self, cr, uid, ids, context=None): for inv in inv_obj.browse(cr, uid, active_ids, context=context): if inv.state not in ('sefaz_export'): - err_msg += u'O Documento Fiscal %s não esta definida para ser exportação para a SEFAZ.\n' % inv.internal_number + err_msg += u"O Documento Fiscal %s não esta definida para ser \ + exportação para a SEFAZ.\n" % inv.internal_number elif not inv.own_invoice: - err_msg += u'O Documento Fiscal %s é do tipo externa e não pode ser exportada para a receita.\n' % inv.internal_number + err_msg += u"O Documento Fiscal %s é do tipo externa e não \ + pode ser exportada para a receita.\n" % inv.internal_number else: - inv_obj.write(cr, uid, [inv.id], {'nfe_export_date': False, 'nfe_access_key': False, 'nfe_status': False, 'nfe_date': False}) - message = 'O Documento Fiscal %s foi exportada.' % inv.internal_number + inv_obj.write(cr, uid, [inv.id], {'nfe_export_date': False, + 'nfe_access_key': False, + 'nfe_status': False, + 'nfe_date': False}) + + message = "O Documento Fiscal %s foi \ + exportada." % inv.internal_number inv_obj.log(cr, uid, inv.id, message) export_inv_ids.append(inv.id) company_ids.append(inv.company_id.id) + export_inv_numbers.append(inv.internal_number) if len(set(company_ids)) > 1: - err_msg += u'Não é permitido exportar Documentos Fiscais de mais de uma empresa, por favor selecione Documentos Fiscais da mesma empresa.\n' + err_msg += u'Não é permitido exportar Documentos \ + Fiscais de mais de uma empresa, por favor selecione Documentos \ + Fiscais da mesma empresa.' if export_inv_ids: if len(export_inv_numbers) > 1: - name = 'nfes%s-%s.%s' % (time.strftime('%d-%m-%Y'), self.pool.get('ir.sequence').get(cr, uid, 'nfe.export'), data['file_type']) + name = 'nfes%s-%s.%s' % ( + time.strftime('%d-%m-%Y'), + self.pool.get('ir.sequence').get(cr, uid, 'nfe.export'), + data['file_type']) else: name = 'nfe%s.%s' % (export_inv_numbers[0], data['file_type']) - mod = __import__('l10n_br_account.sped.nfe.serializer.' + data['file_type'], - globals(), locals(), data['file_type']) + mod = __import__( + 'l10n_br_account.sped.nfe.serializer.' + data['file_type'], + globals(), locals(), data['file_type']) func = getattr(mod, 'nfe_export') nfe_file = func(cr, uid, export_inv_ids, data['nfe_environment']) - self.write(cr, uid, ids, {'file': base64.b64encode(nfe_file), 'state': 'done', 'name': name}, context=context) + + self.write(cr, uid, ids, {'file': base64.b64encode(nfe_file), + 'state': 'done', + 'name': name}, context=context) if err_msg: - raise osv.except_osv(_('Error !'), _("'%s'") % (err_msg, )) + raise osv.except_osv(_('Error !'), _("'%s'") % _(err_msg, )) return False -nfe_export_from_invoice() \ No newline at end of file +nfe_export_from_invoice() From 7dd0f1d9656b8a6439a6b8a338a318aceac31bcd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Oct 2012 22:36:29 -0200 Subject: [PATCH 0189/1549] =?UTF-8?q?[FIX]=20l10n=5Fbr=5Faccount:=20inclui?= =?UTF-8?q?do=20o=20campo=20origem=20no=20produto,=20corrigido=20concatena?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 2 +- l10n_br_account/l10n_br_account.py | 4 ++-- l10n_br_account/l10n_br_account_view.xml | 5 ++--- l10n_br_account/product_view.xml | 3 +++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index d1f291f080c6..9533c1e5fdda 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -201,7 +201,7 @@ def execute(self, cr, uid, ids, context=None): for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, context=context): if fp_template.fiscal_operation_id: - fp_id = obj_fiscal_position.search(cr, uid, + fp_id = obj_fp.search(cr, uid, [('name', '=', fp_template.name), ('company_id', '=', company_id)]) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index fca3e509c247..13ae9e546a78 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -207,8 +207,8 @@ class l10n_br_account_fiscal_operation_line(osv.osv): 'tax_code_id': fields.many2one('account.tax.code', 'Código do Imposto', requeried=True, - domain="['|',('company_id','=',False)," - "('company_id','=',company_id)]"), + domain="['|',('company_id','=',False), \ + ('company_id','=',company_id)]"), 'cst_id': fields.many2one('account.tax.code', 'Código de Situação Tributária', requeried=True), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index d615628c6d11..218ebb289255 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -381,7 +381,7 @@ - + @@ -493,5 +493,4 @@ - - + \ No newline at end of file diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 6dc86e115b9e..29b2b91b49b9 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -9,6 +9,9 @@ + + + From f09df85bdf08b94ab876e87ee9281636aa74b0a2 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 1 Nov 2012 17:49:59 -0200 Subject: [PATCH 0190/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20removido=20ope?= =?UTF-8?q?ra=C3=A7=C3=A3o=20fiscal,=20para=20utiliza=C3=A7=C3=A3o=20da=20?= =?UTF-8?q?posi=C3=A7=C3=A3o=20fiscal=20e=20renomeado=20objeto=20l10n=5Fbr?= =?UTF-8?q?=5Faccount.fiscal.operation.category=20para=20l10n=5Fbr=5Faccou?= =?UTF-8?q?nt.fiscal.category?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 13 +- .../account_fiscal_position_rule.py | 71 ++-- .../account_fiscal_position_rule_view.xml | 16 +- l10n_br_account/account_invoice.py | 340 +++++++----------- l10n_br_account/l10n_br_account.py | 85 +---- l10n_br_account/partner.py | 3 +- l10n_br_account/product.py | 18 +- l10n_br_account/product_view.xml | 30 +- l10n_br_account/res_company.py | 24 +- 9 files changed, 215 insertions(+), 385 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 9533c1e5fdda..f7f28a8aff56 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -68,7 +68,7 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None, - force_excluded=False, fiscal_operation=False): + force_excluded=False, fiscal_position=False): """Compute taxes Returns a dict of the form:: @@ -93,7 +93,6 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, It's used in encoding by line where you don't matter if you encoded a tax with that boolean to True or False. - - 'fiscal_operation': Fiscal operation used to compute taxes in some """ obj_precision = self.pool.get('decimal.precision') precision = obj_precision.precision_get(cr, uid, 'Account') @@ -128,7 +127,7 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, # Calcula ICMS specific_icms = [tx for tx in result['taxes'] if tx['domain'] == 'icms'] - if fiscal_operation and fiscal_operation.asset_operation or False: + if fiscal_position and fiscal_position.asset_operation or False: total_base = result['total'] + ipi_value else: total_base = result['total'] @@ -176,7 +175,7 @@ def execute(self, cr, uid, ids, context=None): taxes, the tax codes, the accounting properties... accordingly for the chosen company. - This is override in Brazilian Localization to copy fiscal operation + This is override in Brazilian Localization to copy CFOP from fiscal positions template to fiscal positions. :Parameters: @@ -194,20 +193,20 @@ def execute(self, cr, uid, ids, context=None): chart_template_id = obj_multi.chart_template_id.id company_id = obj_multi.company_id.id - + fp_template_ids = obj_fp_template.search(cr, uid, [('chart_template_id', '=', chart_template_id)]) for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, context=context): - if fp_template.fiscal_operation_id: + if fp_template.cfop_id: fp_id = obj_fp.search(cr, uid, [('name', '=', fp_template.name), ('company_id', '=', company_id)]) if fp_id: obj_fp.write(cr, uid, fp_id, - {'fiscal_operation_id': fp_template.fiscal_operation_id.id}) + {'cfop_id': fp_template.cfop_id.id}) return result wizard_multi_charts_accounts() diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 60017488cb5d..d99c13527ec7 100644 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -25,9 +25,8 @@ FISCAL_RULE_COLUMNS = { 'partner_fiscal_type_id': fields.many2one( 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_operation_category_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', 'Categoria', - requeried=True), + 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', + 'Categoria', requeried=True), 'fiscal_type': fields.selection( [('1', 'Simples Nacional'), ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), @@ -58,25 +57,24 @@ class account_fiscal_position_rule(osv.osv): _defaults = FISCAL_RULE_DEFAULTS def fiscal_position_map(self, cr, uid, partner_id=False, - partner_invoice_id=False, company_id=False, - fiscal_operation_category_id=False, context=None): + partner_invoice_id=False, company_id=False, fiscal_category_id=False, + context=None): - #Initiate variable result - result = {'fiscal_position': False, 'fiscal_operation_id': False} + # Initiate variable result + result = {'fiscal_position': False} - if partner_id == False or not partner_invoice_id or company_id == False or fiscal_operation_category_id == False: + if not partner_id or not company_id or not fiscal_category_id: return result obj_partner = self.pool.get("res.partner").browse(cr, uid, partner_id) obj_company = self.pool.get("res.company").browse(cr, uid, company_id) - - #Case 1: If Partner has Specific Fiscal Posigion + + # Case 1: If Partner has Specific Fiscal Posigion if obj_partner.property_account_position.id: result['fiscal_position'] = obj_partner.property_account_position.id - result['fiscal_operation_id'] = obj_partner.property_account_position.fiscal_operation_id.id return result - - #Case 2: Search fiscal position using Account Fiscal Position Rule + + # Case 2: Search fiscal position using Account Fiscal Position Rule company_addr = self.pool.get('res.partner').address_get( cr, uid, [obj_company.partner_id.id], ['default']) company_addr_default = self.pool.get('res.partner.address').browse( @@ -85,22 +83,25 @@ def fiscal_position_map(self, cr, uid, partner_id=False, from_country = company_addr_default.country_id.id from_state = company_addr_default.state_id.id + # FIXME - Este comando if repete o browse que poderia ser melhorado if not partner_invoice_id: - partner_addr = self.pool.get('res.partner').address_get(cr, uid, [obj_partner.id], ['invoice']) - partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, [partner_addr['invoice']])[0] + partner_addr = self.pool.get('res.partner').address_get( + cr, uid, [obj_partner.id], ['invoice']) + partner_addr_default = self.pool.get('res.partner.address').browse( + cr, uid, [partner_addr['invoice']])[0] else: partner_addr_default = self.pool.get('res.partner.address').browse(cr, uid, partner_invoice_id) to_country = partner_addr_default.country_id.id to_state = partner_addr_default.state_id.id - + document_date = context.get('date', time.strftime('%Y-%m-%d')) - + use_domain = context.get('use_domain', ('use_sale', '=', True)) - + domain = [ '&', ('company_id', '=', company_id), - ('fiscal_operation_category_id', '=', fiscal_operation_category_id), + ('fiscal_category_id', '=', fiscal_category_id), use_domain, ('fiscal_type', '=', obj_company.fiscal_type), '|', ('from_country','=',from_country), @@ -121,26 +122,24 @@ def fiscal_position_map(self, cr, uid, partner_id=False, if fsc_pos_id: obj_fpo_rule = self.pool.get('account.fiscal.position.rule').browse(cr, uid, fsc_pos_id)[0] result['fiscal_position'] = obj_fpo_rule.fiscal_position_id.id - result['fiscal_operation_id'] = obj_fpo_rule.fiscal_position_id.fiscal_operation_id.id return result - def product_fiscal_category_map(self, cr, uid, product_id=False, - fiscal_operation_category_id=False): - + def product_fiscal_category_map(self, cr, uid, product_id=False, + fiscal_category_id=False): result = False - - if not product_id or not fiscal_operation_category_id: + + if not product_id or not fiscal_category_id: return result - + product_tmpl_id = self.pool.get('product.product').read(cr, uid, product_id, ['product_tmpl_id'])['product_tmpl_id'][0] - default_product_fiscal_category = self.pool.get('l10n_br_account.product.operation.category').search(cr, uid, [('product_tmpl_id', '=', product_tmpl_id), - ('fiscal_operation_category_source_id', '=', fiscal_operation_category_id)]) + default_product_fiscal_category = self.pool.get('l10n_br_account.product.category').search(cr, uid, [('product_tmpl_id', '=', product_tmpl_id), + ('fiscal_category_source_id', '=', fiscal_category_id)]) if default_product_fiscal_category: - fiscal_operation_category_destination_id = self.pool.get('l10n_br_account.product.operation.category').read(cr, uid, - default_product_fiscal_category, - ['fiscal_operation_category_destination_id'])[0]['fiscal_operation_category_destination_id'][0] - result = fiscal_operation_category_destination_id + fiscal_category_destination_id = self.pool.get('l10n_br_account.product.category').read(cr, uid, + default_product_fiscal_category, + ['fiscal_category_destination_id'])[0]['fiscal_category_destination_id'][0] + result = fiscal_category_destination_id return result account_fiscal_position_rule() @@ -173,7 +172,7 @@ def action_create(self, cr, uid, ids, context=None): to_country = fpr_template.to_country.id or False to_state = fpr_template.to_state.id or False partner_fiscal_type_id = fpr_template.partner_fiscal_type_id.id or False - fiscal_operation_category_id = fpr_template.fiscal_operation_category_id.id or False + fiscal_category_id = fpr_template.fiscal_category_id.id or False fiscal_position_id = False fp_id = obj_fiscal_position.search(cr, uid, [ @@ -200,7 +199,7 @@ def action_create(self, cr, uid, ids, context=None): if fprt_id: obj_fiscal_position_rule.write(cr, uid, fprt_id, { 'partner_fiscal_type_id': partner_fiscal_type_id, - 'fiscal_operation_category_id': fiscal_operation_category_id, + 'fiscal_category_id': fiscal_category_id, 'fiscal_type': fpr_template.fiscal_type, 'revenue_start': fpr_template.revenue_start, 'revenue_end': fpr_template.revenue_end,}) @@ -235,7 +234,7 @@ def action_create(self, cr, uid, ids, context=None): ('use_purchase','=',fpr.use_purchase), ('use_picking','=',fpr.use_picking), ('partner_fiscal_type_id','=',fpr.partner_fiscal_type_id.id), - ('fiscal_operation_category_id','=',fpr.fiscal_operation_category_id.id), + ('fiscal_category_id','=',fpr.fiscal_category_id.id), ('fiscal_type','=',fpr.fiscal_type), ('revenue_start','=',fpr.revenue_start), ('revenue_end','=',fpr.revenue_end), @@ -257,7 +256,7 @@ def action_create(self, cr, uid, ids, context=None): ('use_purchase','=',fpr.use_purchase), ('use_picking','=',fpr.use_picking), ('partner_fiscal_type_id','=',fpr.partner_fiscal_type_id.id), - ('fiscal_operation_category_id','=',fpr.fiscal_operation_category_id.id), + ('fiscal_category_id','=',fpr.fiscal_category_id.id), ('fiscal_type','=',fpr.fiscal_type), ('revenue_start','=',fpr.revenue_start), ('revenue_end','=',fpr.revenue_end), diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index 4f63cd5189f3..5d444f2c9bdf 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -10,7 +10,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -75,13 +75,13 @@ - + - + @@ -98,12 +98,12 @@ - + - + diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index c4566e079a3a..97579c6a5d9c 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -104,53 +104,38 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, for fiscal_type in fiscal_types: fiscal_type.set('context', "{'type': '%s', 'fiscal_type': '%s'}" % (context['type'], context.get('fiscal_type', 'product'),)) - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]" % (operation_type[context['type']],)) - fiscal_operation_id.set('required', '1') - + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) + fiscal_category_id.set('required', '1') + if context.get('fiscal_type', False) == 'service': - + delivery_infos = eview.xpath("//group[@name='delivery_info']") for delivery_info in delivery_infos: delivery_info.set('invisible', '1') - + cfops = eview.xpath("//field[@name='cfop_ids']") for cfop_ids in cfops: cfop_ids.set('name', 'service_type_id') cfop_ids.set('domain', '[]') - + document_series = eview.xpath("//field[@name='document_serie_id']") for document_serie_id in document_series: document_serie_id.set('domain', "[('fiscal_type','=','service')]") if context['type'] in ('in_invoice', 'out_refund'): - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]") - fiscal_operation_id.set('required', '1') + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") + fiscal_category_id.set('required', '1') if context['type'] in ('out_invoice', 'in_refund'): - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]") - fiscal_operation_id.set('required', '1') - + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") + fiscal_category_id.set('required', '1') + result['arch'] = etree.tostring(eview) if view_type == 'tree': @@ -235,8 +220,8 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), 'move_line_receivable_id': fields.function(_get_receivable_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'), 'document_serie_id': fields.many2one('l10n_br_account.document.serie', 'Série', domain="[('fiscal_document_id','=',fiscal_document_id),('company_id','=',company_id)]", readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]", readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', 'Categoria', readonly=True, states={'draft':[('readonly',False)]}), + 'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position', readonly=True, states={'draft':[('readonly',False)]}, domain="[('fiscal_category_id','=',fiscal_category_id)]"), 'cfop_ids': fields.function(_get_cfops, method=True, type='many2many', relation='l10n_br_account.cfop', string='CFOP'), 'service_type_id': fields.many2one('l10n_br_account.service.type', 'Tipo de Serviço', readonly=True, states={'draft':[('readonly',False)]}), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed', @@ -340,14 +325,14 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): multi='all'), } - def _default_fiscal_operation_category(self, cr, uid, context=None): + def _default_fiscal_category(self, cr, uid, context=None): user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - default_fo_category_product = {'in_invoice': 'in_invoice_fiscal_category_operation_id', - 'out_invoice': 'out_invoice_fiscal_category_operation_id', - 'in_refund': 'in_refund_fiscal_category_operation_id', - 'out_refund': 'out_refund_fiscal_category_operation_id'} - default_fo_category_service = {'in_invoice': 'in_invoice_service_fiscal_category_operation_id', - 'out_invoice': 'out_invoice_service_fiscal_category_operation_id'} + default_fo_category_product = {'in_invoice': 'in_invoice_fiscal_category_id', + 'out_invoice': 'out_invoice_fiscal_category_id', + 'in_refund': 'in_refund_fiscal_category_id', + 'out_refund': 'out_refund_fiscal_category_id'} + default_fo_category_service = {'in_invoice': 'in_invoice_service_fiscal_category_id', + 'out_invoice': 'out_invoice_service_fiscal_category_id'} default_fo_category = { 'product': default_fo_category_product, 'service': default_fo_category_service, @@ -360,7 +345,7 @@ def _default_fiscal_operation_category(self, cr, uid, context=None): _defaults = { 'own_invoice': True, 'fiscal_type': _get_fiscal_type, - 'fiscal_operation_category_id': _default_fiscal_operation_category, + 'fiscal_category_id': _default_fiscal_category, } def _check_invoice_number(self, cr, uid, ids, context=None): @@ -487,24 +472,24 @@ def nfe_check(self, cr, uid, ids, context=None): result = txt.validate(cr, uid, ids, context) return result - def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id): - result = {'fiscal_operation_id': False, - 'fiscal_document_id': False, + def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_category_id): + result = {'fiscal_document_id': False, 'document_serie_id': False, 'journal_id': False,} - obj_rule = self.pool.get('account.fiscal.position.rule') - obj_fo_category = self.pool.get('l10n_br_account.fiscal.operation.category') - if not fiscal_operation_category_id: + if not fiscal_category_id: return result - fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice', '=', True)}) + obj_rule = self.pool.get('account.fiscal.position.rule') + + fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_category_id, context={'use_domain': ('use_invoice', '=', True)}) result.update(fiscal_result) + # FIXME - DOCUMENTO FISCAL DEVE VIR DA EMPRESA E DEVE TER NA EMPRESA UMA FUNÇÃO PARA PEGAR AUTOMATICAMENTE O DOCUMENTO if result.get('fiscal_operation_id', False): - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['fiscal_operation_id']) - result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - + #obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['fiscal_operation_id']) + #result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id + obj_company = self.pool.get('res.company').browse(cr, uid, company_id) document_serie_id = [doc_serie for doc_serie in obj_company.document_serie_product_ids if doc_serie.fiscal_document_id.id == obj_foperation.fiscal_document_id.id and doc_serie.active] if not document_serie_id: @@ -515,61 +500,53 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com for line in inv.invoice_line: line.cfop_id = obj_foperation.cfop_id.id - if fiscal_operation_category_id: - fo_category = obj_fo_category.browse(cr, uid, fiscal_operation_category_id) - journal_id = fo_category and fo_category.property_journal or False - if not journal_id: - raise osv.except_osv(_('Nenhuma Diário !'),_("Categoria de operação fisca: '%s', não tem um diário contábil para a empresa %s") % (fo_category.name, obj_company.name)) - else: - result['journal_id'] = journal_id.id + fo_category = obj_fo_category.browse(cr, uid, fiscal_category_id) + journal_id = fo_category and fo_category.property_journal or False + if not journal_id: + raise osv.except_osv(_('Nenhuma Diário !'),_("Categoria de operação fisca: '%s', não tem um diário contábil para a empresa %s") % (fo_category.name, obj_company.name)) + + result['journal_id'] = journal_id.id return result - def onchange_partner_id(self, cr, uid, ids, type, partner_id, date_invoice=False, - payment_term=False, partner_bank_id=False, company_id=False, - fiscal_operation_category_id=False): + def onchange_partner_id(self, cr, uid, ids, type, partner_id, + date_invoice=False, payment_term=False, + partner_bank_id=False, company_id=False, + fiscal_category_id=False): result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) partner_invoice_id = result['value'].get('address_invoice_id', False) - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_category_id) result['value'].update(fiscal_data) return result - def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id, fiscal_operation_category_id=False): + def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, + invoice_line, currency_id, address_invoice_id, + fiscal_category_id=False): + + result = super(account_invoice, self).onchange_company_id( + cr, uid, ids, company_id, partner_id, type, invoice_line, + currency_id, address_invoice_id) + + fiscal_data = self._fiscal_position_map( + cr, uid, ids, partner_id, address_invoice_id, company_id, + fiscal_category_id) - result = super(account_invoice, self).onchange_company_id(cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, address_invoice_id) - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) result['value'].update(fiscal_data) return result - def onchange_address_invoice_id(self, cr, uid, ids, company_id, partner_id, address_invoice_id, fiscal_operation_category_id=False): + def onchange_address_invoice_id(self, cr, uid, ids, company_id, + partner_id, address_invoice_id, + fiscal_category_id=False): + result = super(account_invoice, self).onchange_address_invoice_id(cr,uid,ids,company_id,partner_id,address_invoice_id) - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, fiscal_category_id) result['value'].update(fiscal_data) return result - def onchange_fiscal_operation_category_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False): - result = {'value': {} } - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_address_id, company_id, fiscal_operation_category_id) - result['value'].update(fiscal_data) - return result - - def onchange_fiscal_operation_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_operation_category_id=False, fiscal_operation_id=False): + def onchange_fiscal_category_id(self, cr, uid, ids, partner_address_id=False, partner_id=False, company_id=False, fiscal_category_id=False): result = {'value': {} } - if not company_id or not fiscal_operation_category_id: - return result - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_address_id, company_id, fiscal_operation_category_id) + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, partner_address_id, company_id, fiscal_category_id) result['value'].update(fiscal_data) - - if fiscal_operation_id: - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, fiscal_operation_id) - result['value']['fiscal_position'] = False - result['fiscal_document_id'] = obj_foperation.fiscal_document_id.id - del result['value']['fiscal_operation_id'] - - for inv in self.browse(cr, uid, ids): - for line in inv.invoice_line: - line.cfop_id = obj_foperation.cfop_id.id - return result account_invoice() @@ -602,16 +579,10 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, cfop_id.set('domain', "[('type','=','%s')]" % (operation_type[context['type']],)) cfop_id.set('required', '1') - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]" % (operation_type[context['type']],)) - fiscal_operation_id.set('required', '1') - + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) + fiscal_category_id.set('required', '1') if context.get('fiscal_type', False) == 'service': @@ -621,26 +592,16 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, cfop_id.set('required', '0') if context['type'] in ('in_invoice', 'out_refund'): - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]") - fiscal_operation_id.set('required', '1') + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") + fiscal_category_id.set('required', '1') if context['type'] in ('out_invoice', 'in_refund'): - fiscal_operation_categories = eview.xpath("//field[@name='fiscal_operation_category_id']") - for fiscal_operation_category_id in fiscal_operation_categories: - fiscal_operation_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") - fiscal_operation_category_id.set('required', '1') - - fiscal_operations = eview.xpath("//field[@name='fiscal_operation_id']") - for fiscal_operation_id in fiscal_operations: - fiscal_operation_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('fiscal_operation_category_id','=',fiscal_operation_category_id),('use_invoice','=',True)]") - fiscal_operation_id.set('required', '1') + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") + fiscal_category_id.set('required', '1') result['arch'] = etree.tostring(eview) @@ -785,40 +746,42 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): 'ii_base': 0.0, 'ii_value': 0.0, } + price = line.price_unit * (1-(line.discount or 0.0)/100.0) - taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, price, line.quantity, product=line.product_id, address_id=line.invoice_id.address_invoice_id, partner=line.invoice_id.partner_id, fiscal_operation=line.fiscal_operation_id) - + taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, price, line.quantity, product=line.product_id, address_id=line.invoice_id.address_invoice_id, partner=line.invoice_id.partner_id, fiscal_position=line.fiscal_position_id) + icms_cst = '99' ipi_cst = '99' pis_cst = '99' cofins_cst = '99' company_id = line.company_id.id and line.invoice_id.company_id.id or False - - if line.fiscal_operation_id: - - fiscal_operation_ids = self.pool.get('l10n_br_account.fiscal.operation.line').search(cr, uid, [('company_id','=',company_id),('fiscal_operation_id','=',line.fiscal_operation_id.id),('fiscal_classification_id','=',False)], order="fiscal_classification_id") - for fo_line in self.pool.get('l10n_br_account.fiscal.operation.line').browse(cr, uid, fiscal_operation_ids): - if fo_line.tax_code_id.domain == 'icms': - icms_cst = fo_line.cst_id.code - elif fo_line.tax_code_id.domain == 'ipi': - ipi_cst = fo_line.cst_id.code - elif fo_line.tax_code_id.domain == 'pis': - pis_cst = fo_line.cst_id.code - elif fo_line.tax_code_id.domain == 'cofins': - cofins_cst = fo_line.cst_id.code - - if line.product_id: - fo_ids_ncm = self.pool.get('l10n_br_account.fiscal.operation.line').search(cr, uid, [('company_id','=',company_id),('fiscal_operation_id','=',line.fiscal_operation_id.id),('fiscal_classification_id','=',line.product_id.property_fiscal_classification.id)]) + + # FIXME - AGORA DEVE UTILIZAR AS TAX.CODE DAS LINHAS DA POSIÇÃO FISCAL + #if line.fiscal_operation_id: + + # fiscal_operation_ids = self.pool.get('l10n_br_account.fiscal.operation.line').search(cr, uid, [('company_id','=',company_id),('fiscal_operation_id','=',line.fiscal_operation_id.id),('fiscal_classification_id','=',False)], order="fiscal_classification_id") + # for fo_line in self.pool.get('l10n_br_account.fiscal.operation.line').browse(cr, uid, fiscal_operation_ids): + # if fo_line.tax_code_id.domain == 'icms': + # icms_cst = fo_line.cst_id.code + # elif fo_line.tax_code_id.domain == 'ipi': + # ipi_cst = fo_line.cst_id.code + # elif fo_line.tax_code_id.domain == 'pis': + # pis_cst = fo_line.cst_id.code + # elif fo_line.tax_code_id.domain == 'cofins': + # cofins_cst = fo_line.cst_id.code + + # if line.product_id: + # fo_ids_ncm = self.pool.get('l10n_br_account.fiscal.operation.line').search(cr, uid, [('company_id','=',company_id),('fiscal_operation_id','=',line.fiscal_operation_id.id),('fiscal_classification_id','=',line.product_id.property_fiscal_classification.id)]) - for fo_line_ncm in self.pool.get('l10n_br_account.fiscal.operation.line').browse(cr, uid, fo_ids_ncm): - if fo_line_ncm.tax_code_id.domain == 'icms': - icms_cst = fo_line_ncm.cst_id.code - elif fo_line_ncm.tax_code_id.domain == 'ipi': - ipi_cst = fo_line_ncm.cst_id.code - elif fo_line_ncm.tax_code_id.domain == 'pis': - pis_cst = fo_line_ncm.cst_id.code - elif fo_line_ncm.tax_code_id.domain == 'cofins': - cofins_cst = fo_line_ncm.cst_id.code + # for fo_line_ncm in self.pool.get('l10n_br_account.fiscal.operation.line').browse(cr, uid, fo_ids_ncm): + # if fo_line_ncm.tax_code_id.domain == 'icms': + # icms_cst = fo_line_ncm.cst_id.code + # elif fo_line_ncm.tax_code_id.domain == 'ipi': + # ipi_cst = fo_line_ncm.cst_id.code + # elif fo_line_ncm.tax_code_id.domain == 'pis': + # pis_cst = fo_line_ncm.cst_id.code + # elif fo_line_ncm.tax_code_id.domain == 'cofins': + # cofins_cst = fo_line_ncm.cst_id.code for tax in taxes['taxes']: try: @@ -843,9 +806,8 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): return res _columns = { - 'fiscal_operation_category_id': fields.many2one('l10n_br_account.fiscal.operation.category', 'Categoria'), - 'fiscal_operation_id': fields.many2one('l10n_br_account.fiscal.operation', 'Operação Fiscal', domain="[('fiscal_operation_category_id','=',fiscal_operation_category_id)]"), - 'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position', domain="[('fiscal_operation_id','=',fiscal_operation_id)]"), + 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', 'Categoria'), + 'fiscal_position_id': fields.many2one('account.fiscal.position', 'Fiscal Position', domain="[('fiscal_category_id','=',fiscal_category_id)]"), 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float", digits_compute= dp.get_precision('Account'), store=True, multi='all'), @@ -1054,96 +1016,40 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): 'ii_customhouse_charges': 0.0, } - def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id): - result = {'fiscal_operation_id': False, 'cfop_id': False} + def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_category_id): + result = {'cfop_id': False} obj_rule = self.pool.get('account.fiscal.position.rule') - fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_operation_category_id, context={'use_domain': ('use_invoice','=',True)}) + fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_category_id, context={'use_domain': ('use_invoice','=',True)}) result.update(fiscal_result) - if result.get('fiscal_operation_id', False): - obj_foperation = self.pool.get('l10n_br_account.fiscal.operation').browse(cr, uid, result['fiscal_operation_id']) - result['cfop_id'] = obj_foperation.cfop_id.id + if result.get('fiscal_position', False): + obj_fp = self.pool.get('account.fiscal.position').browse(cr, uid, result['fiscal_position']) + result['cfop_id'] = obj_fp.cfop_id.id return result def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, - context=None, company_id=False, fiscal_operation_category_id=False, - fiscal_operation_id=False): + context=None, company_id=False, fiscal_category_id=False): result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context, company_id) - if not fiscal_operation_category_id or not product: + if not fiscal_category_id or not product: return result obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule') - product_fiscal_category_id = obj_fiscal_position_rule.product_fiscal_category_map(cr, uid, product, fiscal_operation_category_id) + product_fiscal_category_id = obj_fiscal_position_rule.product_fiscal_category_map(cr, uid, product, fiscal_category_id) if not product_fiscal_category_id: - result['value']['fiscal_operation_category_id'] = fiscal_operation_category_id - result['value']['fiscal_operation_id'] = fiscal_operation_id - if fiscal_operation_id: - result['value']['fiscal_operation_id'] = fiscal_operation_id - result['value']['cfop_id'] = self.pool.get('l10n_br_account.fiscal.operation').read(cr, uid, [fiscal_operation_id], ['cfop_id'])[0]['cfop_id'] + result['value']['fiscal_category_id'] = fiscal_category_id + if fposition_id: + result['value']['fiscal_position_id'] = fposition_id + result['value']['cfop_id'] = self.pool.get('account.fiscal.position').read(cr, uid, [fposition_id], ['cfop_id'])[0]['cfop_id'] return result - result['value']['fiscal_operation_category_id'] = product_fiscal_category_id - result['value']['fiscal_operation_id'] = False + result['value']['fiscal_category_id'] = product_fiscal_category_id fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, product_fiscal_category_id) result['value'].update(fiscal_data) return result account_invoice_line() - - -#class account_invoice_tax(osv.osv): -# _inherit = "account.invoice.tax" -# _description = "Invoice Tax" -# -# def compute(self, cr, uid, invoice_id, context={}): -# tax_grouped = {} -# tax_obj = self.pool.get('account.tax') -# cur_obj = self.pool.get('res.currency') -# inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context) -# cur = inv.currency_id -# company_currency = inv.company_id.currency_id.id -# -# for line in inv.invoice_line: -# taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, (line.price_unit* (1-(line.discount or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id, fiscal_operation=line.fiscal_operation_id) -# for tax in taxes['taxes']: -# val = {} -# val['invoice_id'] = inv.id -# val['name'] = tax['name'] -# val['amount'] = tax['amount'] -# val['manual'] = False -# val['sequence'] = tax['sequence'] -# val['base'] = tax['total_base'] -# if inv.type in ('out_invoice','in_invoice'): -# val['base_code_id'] = tax['base_code_id'] -# val['tax_code_id'] = tax['tax_code_id'] -# val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) -# val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) -# val['account_id'] = tax['account_collected_id'] or line.account_id.id -# else: -# val['base_code_id'] = tax['ref_base_code_id'] -# val['tax_code_id'] = tax['ref_tax_code_id'] -# val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) -# val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) -# val['account_id'] = tax['account_paid_id'] or line.account_id.id -# -# key = (val['tax_code_id'], val['base_code_id'], val['account_id']) -# if not key in tax_grouped: -# tax_grouped[key] = val -# else: -# tax_grouped[key]['amount'] += val['amount'] -# tax_grouped[key]['base'] += val['base'] -# tax_grouped[key]['base_amount'] += val['base_amount'] -# tax_grouped[key]['tax_amount'] += val['tax_amount'] -# for t in tax_grouped.values(): -# t['base'] = cur_obj.round(cr, uid, cur, t['base']) -# t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) -# t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) -# t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) -# return tax_grouped -# -#account_invoice_tax() \ No newline at end of file diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 13ae9e546a78..482ada6710db 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -114,9 +114,9 @@ class l10n_br_account_fiscal_document(osv.osv): l10n_br_account_fiscal_document() -class l10n_br_account_fiscal_operation_category(osv.osv): - _name = 'l10n_br_account.fiscal.operation.category' - _description = 'Categoria de Operações Fiscais' +class l10n_br_account_fiscal_category(osv.osv): + _name = 'l10n_br_account.fiscal.category' + _description = 'Categorias Fiscais' _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), @@ -141,82 +141,7 @@ class l10n_br_account_fiscal_operation_category(osv.osv): 'type': 'output', 'fiscal_type': 'product'} -l10n_br_account_fiscal_operation_category() - - -class l10n_br_account_fiscal_operation(osv.osv): - _name = 'l10n_br_account.fiscal.operation' - _description = 'Operação Fiscais' - _columns = { - 'code': fields.char('Código', size=16, required=True), - 'name': fields.char('Descrição', size=64), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo', requeried=True), - 'fiscal_operation_category_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', - 'Categoria', domain="[('type','=',type)]", - requeried=True), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal', - requeried=True), - 'fiscal_operation_line': fields.one2many( - 'l10n_br_account.fiscal.operation.line', - 'fiscal_operation_id', - 'Fiscal Operation Lines'), - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), - 'service_type_id': fields.many2one('l10n_br_account.service.type', - 'Tipo de Serviço'), - 'use_sale': fields.boolean('Usado em Vendas'), - 'use_invoice': fields.boolean('Usado nas Notas Fiscais'), - 'use_purchase': fields.boolean('Usado nas Compras'), - 'use_picking': fields.boolean('Usado nas Listas de Separações'), - 'refund_fiscal_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation', - 'Op. Fiscal Devolução', - domain="[('type','!=',type)]"), - 'note': fields.text('Observação'), - 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), - 'fiscal_type': fields.selection([('product', 'Produto'), - ('service', 'Serviço')], - 'Tipo Fiscal', - domain="[('fiscal_type','=',fiscal_type)]", - requeried=True), - 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', - help="Caso seja marcada essa opção," - " será incluido o IPI na base de " - "calculo do ICMS.")} - _defaults = { - 'type': 'output', - 'fiscal_type': 'product', - 'fiscal_type': False} - -l10n_br_account_fiscal_operation() - - -class l10n_br_account_fiscal_operation_line(osv.osv): - _name = 'l10n_br_account.fiscal.operation.line' - _description = 'Linhas das operações ficais' - _columns = { - 'company_id': fields.many2one('res.company', 'Empresa', - requeried=True), - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification', 'NCM', - domain="['|',('company_id','=',False)," - "('company_id','=',company_id)]"), - 'tax_code_id': fields.many2one('account.tax.code', - 'Código do Imposto', - requeried=True, - domain="['|',('company_id','=',False), \ - ('company_id','=',company_id)]"), - 'cst_id': fields.many2one('account.tax.code', - 'Código de Situação Tributária', - requeried=True), - 'fiscal_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation', - 'Fiscal Operation Ref', ondelete='cascade', select=True)} - -l10n_br_account_fiscal_operation_line() +l10n_br_account_fiscal_category() class l10n_br_account_document_serie(osv.osv): @@ -253,7 +178,7 @@ def create_sequence(self, cr, uid, vals, context=None): return self.pool.get('ir.sequence').create(cr, uid, seq) def create(self, cr, uid, vals, context=None): - """ Overwrite method to create a new ir.sequence if + """ Overwrite method to create a new ir.sequence if this field is null """ if not 'internal_sequence_id' in vals or not vals['internal_sequence_id']: vals.update({'internal_sequence_id': self.create_sequence(cr, uid, vals, context)}) diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index 83e8e304ca65..5858bc87c0ea 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -44,6 +44,7 @@ class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = { 'fiscal_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation', 'Operação Fiscal')} + 'l10n_br_account.fiscal.category', 'Categoria Fiscal'), + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP')} account_fiscal_position() diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 3f265fd2306e..954431546fb9 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -23,8 +23,8 @@ class product_template(osv.osv): _inherit = 'product.template' _columns = { - 'fiscal_category_operation_default_ids': fields.one2many( - 'l10n_br_account.product.operation.category', 'product_tmpl_id', + 'fiscal_category_default_ids': fields.one2many( + 'l10n_br_account.product.category', 'product_tmpl_id', 'Categoria de Operação Fiscal Padrões'), 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], @@ -45,16 +45,16 @@ class product_template(osv.osv): product_template() -class l10n_br_account_product_fiscal_operation_category(osv.osv): - _name = 'l10n_br_account.product.operation.category' +class l10n_br_account_product_fiscal_category(osv.osv): + _name = 'l10n_br_account.product.category' _columns = { - 'fiscal_operation_category_source_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'fiscal_category_source_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Origem'), - 'fiscal_operation_category_destination_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'fiscal_category_destination_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Destino'), 'product_tmpl_id': fields.many2one('product.template', 'Produto', ondelete='cascade')} -l10n_br_account_product_fiscal_operation_category() +l10n_br_account_product_fiscal_category() diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 29b2b91b49b9..9418c8257e92 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -14,14 +14,14 @@ - +
- - + + - - + +
@@ -54,13 +54,13 @@
- - l10n_br_account.product.operation.category.form - l10n_br_account.product.operation.category + + l10n_br_account.product.category.form + l10n_br_account.product.category form - - + + @@ -88,14 +88,14 @@
- +
- - + + - - + +
diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index 4152fc35bfd3..8dfa072930ed 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -59,31 +59,31 @@ class res_company(osv.osv): required=True), 'nfse_source_folder': fields.char('Pasta de Origem', size=254), 'nfse_destination_folder': fields.char('Pasta de Destino', size=254), - 'in_invoice_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'in_invoice_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal de Produto Padrão de Entrada', domain="[('use_invoice','=',True), ('fiscal_type','=','product')," " ('type','=','input')]"), - 'out_invoice_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'out_invoice_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal de Produto Padrão de Saida', domain="[('use_invoice','=',True), ('fiscal_type','=','product')," " ('type','=','output')]"), - 'in_refund_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', 'Devolução Entrada', + 'in_refund_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Devolução Entrada', domain="[('use_invoice','=',True), ('fiscal_type','=','product')," " ('type','=','output')]"), - 'out_refund_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', 'Devolução Saida', + 'out_refund_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Devolução Saida', domain="[('use_invoice','=',True), ('fiscal_type','=','product')," " ('type','=','input')]"), - 'in_invoice_service_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'in_invoice_service_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal Padrão de Aquisição de Serviço', domain="[('use_invoice','=',True), ('fiscal_type','=','service')," " ('type','=','input')]"), - 'out_invoice_service_fiscal_category_operation_id': fields.many2one( - 'l10n_br_account.fiscal.operation.category', + 'out_invoice_service_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal Padrão de Prestação de Serviço', domain="[('use_invoice','=',True), ('fiscal_type','=','service')," " ('type','=','output')]")} From 93ae88627d14a69cb785a5022f719e13e2306374 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 1 Nov 2012 17:55:43 -0200 Subject: [PATCH 0191/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20atualizada=20v?= =?UTF-8?q?is=C3=B5es=20do=20objeto=20account.invoice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index c5a7bf995ff8..0a2049db166c 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -46,14 +46,14 @@
@@ -70,9 +70,8 @@ 15 - - - + + @@ -285,7 +284,7 @@ on_change="onchange_journal_id(journal_id, context)" widget="selection" /> - + @@ -297,9 +296,8 @@ - - - + + @@ -393,7 +391,7 @@
- + - - + + - - + + - - + +
From e91d8d7ba1008dec0adccdd740d21ef6f0527d93 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 2 Nov 2012 01:58:09 -0200 Subject: [PATCH 0199/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20inserido=20nov?= =?UTF-8?q?os=20campos=20no=20objeto=20posi=C3=A7=C3=A3o=20fiscal=20e=20vi?= =?UTF-8?q?s=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 2 +- l10n_br_account/partner.py | 37 ++++++++++++++++- l10n_br_account/partner_view.xml | 67 ++++++++++++++++++++++++++---- 3 files changed, 95 insertions(+), 11 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 482ada6710db..6587c3c34a56 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -116,7 +116,7 @@ class l10n_br_account_fiscal_document(osv.osv): class l10n_br_account_fiscal_category(osv.osv): _name = 'l10n_br_account.fiscal.category' - _description = 'Categorias Fiscais' + _description = 'Categoria Fiscail' _columns = { 'code': fields.char('Código', size=24, required=True), 'name': fields.char('Descrição', size=64), diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index d0724340b28f..f2f278624ca9 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -20,7 +20,23 @@ from osv import osv, fields FISCAL_POSITION_COLUMNS = { - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP')} + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), + 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', + 'Categoria Fiscal'), + 'fiscal_category_type': fields.related( + 'fiscal_category_id', 'type', type='char', readonly=True, + relation='l10n_br_account.fiscal.category', store=True, string='Type'), + 'fiscal_category_fiscal_type': fields.related( + 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, + relation='l10n_br_account.fiscal.category', store=True, + string='Fiscal Type'), + 'refund_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal de Devolução'), + 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), + 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', + help="Caso seja marcada essa opção," + " será incluido o IPI na base de " + "calculo do ICMS.")} class account_fiscal_position_template(osv.osv): @@ -30,6 +46,16 @@ class account_fiscal_position_template(osv.osv): account_fiscal_position_template() +class account_fiscal_position_tax_template(osv.osv): + _inherit = 'account.fiscal.position.tax.template' + + _columns = { + 'tax_code_dest_id': fields.many2one('account.tax.code.template', + 'Replacement Tax')} + +account_fiscal_position_tax_template() + + class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = FISCAL_POSITION_COLUMNS @@ -37,6 +63,15 @@ class account_fiscal_position(osv.osv): account_fiscal_position() +class account_fiscal_position_tax(osv.osv): + _inherit = 'account.fiscal.position.tax' + _columns = { + 'tax_code_dest_id': fields.many2one('account.tax.code', + 'Replacement Tax')} + +account_fiscal_position_tax() + + class res_partner(osv.osv): _inherit = 'res.partner' _columns = { diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index b0e72edbe17d..a11f316b33ba 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -1,19 +1,68 @@ - + l10n_br_account.fiscal.position.form account.fiscal.position form - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
- + l10n_br_account.partner.form res.partner @@ -24,7 +73,7 @@
- + l10n_br_account.partner.form2 res.partner @@ -40,7 +89,7 @@
- + l10n_br_account.partner.form3 res.partner @@ -52,7 +101,7 @@
- + l10n_br_account.partner.form4 res.partner @@ -66,6 +115,6 @@
- + From 3e3f0732d8110d5f2eb9fcec6f85e795659e8fab Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 5 Nov 2012 12:45:12 -0200 Subject: [PATCH 0200/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20Incluido=20cam?= =?UTF-8?q?pos=20de=20c=C3=B3digos=20fiscais=20na=20posi=C3=A7=C3=A3o=20fi?= =?UTF-8?q?scal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/partner.py | 57 ++++++++++++++++++++++++++++---- l10n_br_account/partner_view.xml | 26 ++++++++------- 2 files changed, 65 insertions(+), 18 deletions(-) diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index f2f278624ca9..e6b010aeefc1 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -23,9 +23,11 @@ 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', 'Categoria Fiscal'), - 'fiscal_category_type': fields.related( - 'fiscal_category_id', 'type', type='char', readonly=True, - relation='l10n_br_account.fiscal.category', store=True, string='Type'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo', required=True), + 'type_tax_use': fields.selection([('sale','Sale'), + ('purchase','Purchase'), + ('all','All')], 'Tax Application'), 'fiscal_category_fiscal_type': fields.related( 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, relation='l10n_br_account.fiscal.category', store=True, @@ -42,16 +44,37 @@ class account_fiscal_position_template(osv.osv): _inherit = 'account.fiscal.position.template' _columns = FISCAL_POSITION_COLUMNS + + def onchange_type(self, cr, uid, ids, type=False, context=None): + type_tax = {'input': 'purhcase', 'output': 'sale'} + return {'value': {'type_tax_use': type_tax.get(type, 'all'), 'tax_ids': False}} + + def onchange_fiscal_category_id(self, cr, uid, ids, fiscal_category_id=False, context=None): + fiscal_category_fiscal_type = False + if fiscal_category_id: + fiscal_category_fiscal_type = self.pool.get( + 'l10n_br_account.fiscal.category').read( + cr, uid, fiscal_category_id, ['fiscal_type'], + context=context)['fiscal_type'] + return {'value': {'fiscal_category_fiscal_type': fiscal_category_fiscal_type}} account_fiscal_position_template() class account_fiscal_position_tax_template(osv.osv): _inherit = 'account.fiscal.position.tax.template' - _columns = { + 'tax_src_domain': fields.related('tax_src_id', 'domain', + type='char'), 'tax_code_dest_id': fields.many2one('account.tax.code.template', - 'Replacement Tax')} + 'Replacement Tax Code')} + + def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, context=None): + tax_domain = False + if tax_src_id: + tax_domain = self.pool.get('account.tax.template').read( + cr, uid, tax_src_id, ['domain'], context=context)['domain'] + return {'value': {'tax_src_domain': tax_domain}} account_fiscal_position_tax_template() @@ -59,6 +82,19 @@ class account_fiscal_position_tax_template(osv.osv): class account_fiscal_position(osv.osv): _inherit = 'account.fiscal.position' _columns = FISCAL_POSITION_COLUMNS + + def onchange_type(self, cr, uid, ids, type=False, context=None): + type_tax = {'input': 'purchase', 'output': 'sale'} + return {'value': {'type_tax_use': type_tax.get(type, 'all'), 'tax_ids': False}} + + def onchange_fiscal_category_id(self, cr, uid, ids, fiscal_category_id=False, context=None): + fiscal_category_fiscal_type = False + if fiscal_category_id: + fiscal_category_fiscal_type = self.pool.get( + 'l10n_br_account.fiscal.category').read( + cr, uid, fiscal_category_id, ['fiscal_type'], + context=context)['fiscal_type'] + return {'value': {'fiscal_category_fiscal_type': fiscal_category_fiscal_type}} account_fiscal_position() @@ -66,8 +102,17 @@ class account_fiscal_position(osv.osv): class account_fiscal_position_tax(osv.osv): _inherit = 'account.fiscal.position.tax' _columns = { + 'tax_src_domain': fields.related('tax_src_id', 'domain', + type='char'), 'tax_code_dest_id': fields.many2one('account.tax.code', - 'Replacement Tax')} + 'Replacement Tax Code')} + + def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, context=None): + tax_domain = False + if tax_src_id: + tax_domain = self.pool.get('account.tax').read( + cr, uid, tax_src_id, ['domain'], context=context)['domain'] + return {'value': {'tax_src_domain': tax_domain}} account_fiscal_position_tax() diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index a11f316b33ba..afd983430e7d 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -12,6 +12,8 @@
+ + @@ -21,29 +23,29 @@ - - - + + + + - - - + + + +
- - - - - + + + + - From d7f93637bb1d40e7fe5f9a6defd890c823495bec Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 5 Nov 2012 19:01:28 -0200 Subject: [PATCH 0201/1549] l10n_br_account: Removido os campos de use_* nas categorias fiscais e incluido o campo journal_type --- l10n_br_account/account_invoice.py | 52 ++++++++++++------------ l10n_br_account/account_invoice_view.xml | 4 +- l10n_br_account/l10n_br_account.py | 13 +++--- l10n_br_account/l10n_br_account_view.xml | 9 +--- l10n_br_account/partner.py | 42 +++++++++++-------- l10n_br_account/partner_view.xml | 17 ++++---- 6 files changed, 74 insertions(+), 63 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 97579c6a5d9c..c72925e9590a 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -77,16 +77,15 @@ def _get_fiscal_type(self, cr, uid, context=None): def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): - result = super(account_invoice,self).fields_view_get(cr, uid, - view_id=view_id, view_type=view_type, context=context, + result = super(account_invoice,self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu) if context is None: context = {} field_names = ['service_type_id'] - result['fields'].update(self.fields_get(cr, uid, field_names, - context)) + result['fields'].update(self.fields_get(cr, uid, field_names, context)) if not view_type: view_id = self.pool.get('ir.ui.view').search(cr, uid, [('name', '=', 'account.invoice.tree')]) @@ -98,19 +97,38 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, if 'type' in context.keys(): - operation_type = {'out_invoice': 'output', 'in_invoice': 'input', 'out_refund': 'input', 'in_refund': 'output'} + OPERATION_TYPE = {'out_invoice': 'output', + 'in_invoice': 'input', + 'out_refund': 'input', + 'in_refund': 'output'} + + JOURNAL_TYPE = {'out_invoice': 'sale', + 'in_invoice': 'purchase', + 'out_refund': 'sale_refund', + 'in_refund': 'purchase_refund'} fiscal_types = eview.xpath("//field[@name='invoice_line']") for fiscal_type in fiscal_types: - fiscal_type.set('context', "{'type': '%s', 'fiscal_type': '%s'}" % (context['type'], context.get('fiscal_type', 'product'),)) + fiscal_type.set( + 'context', "{'type': '%s', 'fiscal_type': '%s'}" % (context['type'], + context.get('fiscal_type', 'product'))) fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) + fiscal_category_id.set('domain', + "[('fiscal_type', '=', '%s'), \ + ('type', '=', '%s'), \ + ('journal_type', '=', '%s')]" \ + % (context.get('fiscal_type', 'product'), + OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) fiscal_category_id.set('required', '1') + + document_series = eview.xpath("//field[@name='document_serie_id']") + for document_serie_id in document_series: + document_serie_id.set('domain', "[('fiscal_type', '=', '%s')]" % (context.get('fiscal_type', 'product'))) - if context.get('fiscal_type', False) == 'service': - + if context.get('fiscal_type', False): delivery_infos = eview.xpath("//group[@name='delivery_info']") for delivery_info in delivery_infos: delivery_info.set('invisible', '1') @@ -120,22 +138,6 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, cfop_ids.set('name', 'service_type_id') cfop_ids.set('domain', '[]') - document_series = eview.xpath("//field[@name='document_serie_id']") - for document_serie_id in document_series: - document_serie_id.set('domain', "[('fiscal_type','=','service')]") - - if context['type'] in ('in_invoice', 'out_refund'): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") - fiscal_category_id.set('required', '1') - - if context['type'] in ('out_invoice', 'in_refund'): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") - fiscal_category_id.set('required', '1') - result['arch'] = etree.tostring(eview) if view_type == 'tree': diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 3c003f35e044..f3693707e76a 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -296,7 +296,7 @@ - + @@ -403,7 +403,7 @@ - + diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 6587c3c34a56..b945a104b3eb 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -133,13 +133,16 @@ class l10n_br_account_fiscal_category(osv.osv): 'fiscal_type': fields.selection([('product', 'Produto'), ('service', 'Serviço')], 'Tipo Fiscal', requeried=True), - 'use_sale': fields.boolean('Usado em Vendas'), - 'use_invoice': fields.boolean('Usado nas Notas Fiscais'), - 'use_purchase': fields.boolean('Usado nas Compras'), - 'use_picking': fields.boolean('Usado nas Listas de Separações')} + 'journal_type': fields.selection( + [('sale', 'Venda'), + ('sale_refund','Devolução de Venda'), + ('purchase', 'Compras'), + ('purchase_refund','Devolução de Compras')], 'Tipo do Diário', + size=32, required=True)} _defaults = { 'type': 'output', - 'fiscal_type': 'product'} + 'fiscal_type': 'product', + 'journal_type': 'sale'} l10n_br_account_fiscal_category() diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 5dae8d1b76b5..c0842653d5b5 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -95,14 +95,9 @@ - - - - - - - + + diff --git a/l10n_br_account/partner.py b/l10n_br_account/partner.py index e6b010aeefc1..02c776db079e 100644 --- a/l10n_br_account/partner.py +++ b/l10n_br_account/partner.py @@ -24,10 +24,14 @@ 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', 'Categoria Fiscal'), 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo', required=True), + 'Tipo'), 'type_tax_use': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('all','All')], 'Tax Application'), + 'fiscal_category_journal_type': fields.related( + 'fiscal_category_id', 'journal_type', type='char', readonly=True, + relation='l10n_br_account.fiscal.category', store=True, + string='Journal Type'), 'fiscal_category_fiscal_type': fields.related( 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, relation='l10n_br_account.fiscal.category', store=True, @@ -36,9 +40,9 @@ 'l10n_br_account.fiscal.category', 'Categoria Fiscal de Devolução'), 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', - help="Caso seja marcada essa opção," - " será incluido o IPI na base de " - "calculo do ICMS.")} + help="Caso seja marcada essa opção, \ + será incluido o IPI na base de \ + calculo do ICMS.")} class account_fiscal_position_template(osv.osv): @@ -49,14 +53,17 @@ def onchange_type(self, cr, uid, ids, type=False, context=None): type_tax = {'input': 'purhcase', 'output': 'sale'} return {'value': {'type_tax_use': type_tax.get(type, 'all'), 'tax_ids': False}} - def onchange_fiscal_category_id(self, cr, uid, ids, fiscal_category_id=False, context=None): - fiscal_category_fiscal_type = False + def onchange_fiscal_category_id(self, cr, uid, ids, + fiscal_category_id=False, context=None): + print fiscal_category_id if fiscal_category_id: - fiscal_category_fiscal_type = self.pool.get( + fiscal_category_fields = self.pool.get( 'l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, ['fiscal_type'], - context=context)['fiscal_type'] - return {'value': {'fiscal_category_fiscal_type': fiscal_category_fiscal_type}} + cr, uid, fiscal_category_id, ['fiscal_type', + 'journal_type'], context=context) + return {'value': + {'fiscal_category_fiscal_type': fiscal_category_fields['fiscal_type'], + 'fiscal_category_journal_type': fiscal_category_fields['journal_type']}} account_fiscal_position_template() @@ -87,14 +94,17 @@ def onchange_type(self, cr, uid, ids, type=False, context=None): type_tax = {'input': 'purchase', 'output': 'sale'} return {'value': {'type_tax_use': type_tax.get(type, 'all'), 'tax_ids': False}} - def onchange_fiscal_category_id(self, cr, uid, ids, fiscal_category_id=False, context=None): - fiscal_category_fiscal_type = False + def onchange_fiscal_category_id(self, cr, uid, ids, + fiscal_category_id=False, context=None): + fiscal_category_fields = False if fiscal_category_id: - fiscal_category_fiscal_type = self.pool.get( + fiscal_category_fields = self.pool.get( 'l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, ['fiscal_type'], - context=context)['fiscal_type'] - return {'value': {'fiscal_category_fiscal_type': fiscal_category_fiscal_type}} + cr, uid, fiscal_category_id, ['fiscal_type', + 'journal_type'], context=context) + return {'value': + {'fiscal_category_fiscal_type': fiscal_category_fields['fiscal_type'], + 'fiscal_category_journal_type': fiscal_category_fields['journal_type']}} account_fiscal_position() diff --git a/l10n_br_account/partner_view.xml b/l10n_br_account/partner_view.xml index afd983430e7d..5b32b7aae9be 100644 --- a/l10n_br_account/partner_view.xml +++ b/l10n_br_account/partner_view.xml @@ -12,7 +12,7 @@
- + @@ -23,24 +23,25 @@ - - + + - - + + - +
- + + - + From 601802fc02266d729a17286e3b263044bfcc7e0c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 5 Nov 2012 20:09:19 -0200 Subject: [PATCH 0202/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20refatorada=20m?= =?UTF-8?q?=C3=A9todos=20do=20fields=5Fview=5Fget=20dos=20objetos=20accoun?= =?UTF-8?q?t.invoice=20e=20account.invoice.line=20para=20funcionar=20corre?= =?UTF-8?q?tamente=20nas=20devolu=C3=A7=C3=B5es=20e=20nas=20notas=20fiscai?= =?UTF-8?q?s=20de=20servi=C3=A7o,=20formado=20c=C3=B3digo,=20e=20incluido?= =?UTF-8?q?=20a=20posi=C3=A7=C3=A3o=20fiscal=20na=20linha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 469 +++++++++++------------ l10n_br_account/account_invoice_view.xml | 7 +- 2 files changed, 226 insertions(+), 250 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index c72925e9590a..8ef6dc321275 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -560,7 +560,9 @@ class account_invoice_line(osv.osv): def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): - result = super(account_invoice_line, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu) + result = super(account_invoice_line, self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) if context is None: context = {} @@ -571,20 +573,29 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, if 'type' in context.keys(): - operation_type = {'out_invoice': 'output', - 'in_invoice': 'input', - 'out_refund': 'input', + OPERATION_TYPE = {'out_invoice': 'output', + 'in_invoice': 'input', + 'out_refund': 'input', 'in_refund': 'output'} + + JOURNAL_TYPE = {'out_invoice': 'sale', + 'in_invoice': 'purchase', + 'out_refund': 'sale_refund', + 'in_refund': 'purchase_refund'} + + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set('domain', + "[('type', '=', '%s'), \ + ('journal_type', '=', '%s')]" \ + % (OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) + fiscal_category_id.set('required', '1') cfops = eview.xpath("//field[@name='cfop_id']") for cfop_id in cfops: - cfop_id.set('domain', "[('type','=','%s')]" % (operation_type[context['type']],)) + cfop_id.set('domain', "[('type','=','%s')]" % (OPERATION_TYPE[context['type']],)) cfop_id.set('required', '1') - - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','product'),('type','=','%s'),('use_invoice','=',True)]" % (operation_type[context['type']],)) - fiscal_category_id.set('required', '1') if context.get('fiscal_type', False) == 'service': @@ -593,18 +604,6 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, cfop_id.set('invisible', '1') cfop_id.set('required', '0') - if context['type'] in ('in_invoice', 'out_refund'): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','input'),('use_invoice','=',True)]") - fiscal_category_id.set('required', '1') - - if context['type'] in ('out_invoice', 'in_refund'): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', "[('fiscal_type','=','service'),('type','=','output'),('use_invoice','=',True)]") - fiscal_category_id.set('required', '1') - result['arch'] = etree.tostring(eview) if view_type == 'tree': @@ -808,215 +807,187 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): return res _columns = { - 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', 'Categoria'), - 'fiscal_position_id': fields.many2one('account.fiscal.position', 'Fiscal Position', domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), - 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'price_total': fields.function(_amount_line, method=True, string='Total', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_base_type': fields.function(_amount_line, method=True, string='Tipo Base ICMS', type="char", size=64, - store=True, multi='all'), - 'icms_base': fields.function(_amount_line, method=True, string='Base ICMS', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_base_other': fields.function(_amount_line, method=True, string='Base ICMS Outras', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_value': fields.function(_amount_line, method=True, string='Valor ICMS', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_percent': fields.function(_amount_line, method=True, string='Perc ICMS', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_percent_reduction': fields.function(_amount_line, method=True, string='Perc Redução de Base ICMS', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_base_type': fields.function(_amount_line, method=True, string='Tipo Base ICMS ST', type="char", size=64, - store=True, multi='all'), - 'icms_st_value': fields.function(_amount_line, method=True, string='Valor ICMS ST', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_base': fields.function(_amount_line, method=True, string='Base ICMS ST', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_percent': fields.function(_amount_line, method=True, string='Percentual ICMS ST', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_percent_reduction': fields.function(_amount_line, method=True, string='Perc Redução de Base ICMS ST', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_mva': fields.function(_amount_line, method=True, string='MVA ICMS ST', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_st_base_other': fields.function(_amount_line, method=True, string='Base ICMS ST Outras', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'icms_cst': fields.function(_amount_line, method=True, string='CST ICMS', type="char", size=3, - store=True, multi='all'), - 'ipi_type': fields.function(_amount_line, method=True, string='Tipo do IPI', type="char", size=64, - store=True, multi='all'), - 'ipi_base': fields.function(_amount_line, method=True, string='Base IPI', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'ipi_base_other': fields.function(_amount_line, method=True, string='Base IPI Outras', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'ipi_value': fields.function(_amount_line, method=True, string='Valor IPI', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'ipi_percent': fields.function(_amount_line, method=True, string='Perc IPI', type="float", - digits_compute= dp.get_precision('Account'), store=True, multi='all'), - 'ipi_cst': fields.function(_amount_line, method=True, string='CST IPI', type="char", size=2, - store=True, multi='all'), - 'pis_type': fields.function(_amount_line, - method=True, - string='Tipo do PIS', - type="char", - size=64, - store=True, - multi='all'), - 'pis_base': fields.function(_amount_line, - method=True, - string='Base PIS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_base_other': fields.function(_amount_line, - method=True, - string='Base PIS Outras', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_value': fields.function(_amount_line, - method=True, - string='Valor PIS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_percent': fields.function(_amount_line, - method=True, - string='Perc PIS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_cst': fields.function(_amount_line, - method=True, - string='CST PIS', - type="char", - size=2, - store=True, - multi='all'), - 'pis_st_type': fields.function(_amount_line, - method=True, - string='Calculo PIS ST', - type="char", - size=64, - store=True, - multi='all'), - 'pis_st_base': fields.function(_amount_line, - method=True, - string='Base PIS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_st_percent': fields.function(_amount_line, - method=True, - string='Perc PIS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'pis_st_value': fields.function(_amount_line, - method=True, - string='Valor PIS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'cofins_type': fields.function(_amount_line, - method=True, - string='Tipo do COFINS', - type="char", - size=64, - store=True, - multi='all'), - 'cofins_base': fields.function(_amount_line, - method=True, - string='Base COFINS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, multi='all'), - 'cofins_base_other': fields.function(_amount_line, - method=True, - string='Base COFINS Outras', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'cofins_value': fields.function(_amount_line, - method=True, - string='Valor COFINS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'cofins_percent': fields.function(_amount_line, - method=True, - string='Perc COFINS', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, multi='all'), - 'cofins_cst': fields.function(_amount_line, - method=True, - string='Valor COFINS', - type="char", - size=2, - store=True, - multi='all'), - 'cofins_st_type': fields.function(_amount_line, - method=True, - string='Calculo COFINS ST', - type="char", - size=64, - store=True, - multi='all'), - 'cofins_st_base': fields.function(_amount_line, - method=True, - string='Base COFINS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'cofins_st_percent': fields.function(_amount_line, - method=True, - string='Perc COFINS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'cofins_st_value': fields.function(_amount_line, - method=True, - string='Valor COFINS ST', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'ii_base': fields.function(_amount_line, - method=True, - string='Base II', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'ii_value': fields.function(_amount_line, - method=True, - string='Valor II', - type="float", - digits_compute=dp.get_precision('Account'), - store=True, - multi='all'), - 'ii_iof': fields.float('Valor IOF', required=True, - digits_compute= dp.get_precision('Account')), - 'ii_customhouse_charges': fields.float('Depesas Atuaneiras', - required=True, - digits_compute=dp.get_precision('Account')), - } + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria'), + 'fiscal_position_id': fields.many2one( + 'account.fiscal.position', u'Posição Fiscal', + domain="[('fiscal_category_id','=',fiscal_category_id)]"), + 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), + 'price_subtotal': fields.function( + _amount_line, method=True, string='Subtotal', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'price_total': fields.function( + _amount_line, method=True, string='Total', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_base_type': fields.function( + _amount_line, method=True, string='Tipo Base ICMS', type="char", + size=64, store=True, multi='all'), + 'icms_base': fields.function( + _amount_line, method=True, string='Base ICMS', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_base_other': fields.function( + _amount_line, method=True, string='Base ICMS Outras', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_value': fields.function( + _amount_line, method=True, string='Valor ICMS', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_percent': fields.function( + _amount_line, method=True, string='Perc ICMS', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_percent_reduction': fields.function( + _amount_line, method=True, string='Perc Redução de Base ICMS', + type="float", digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_base_type': fields.function( + _amount_line, method=True, string='Tipo Base ICMS ST', type="char", + size=64, store=True, multi='all'), + 'icms_st_value': fields.function( + _amount_line, method=True, string='Valor ICMS ST', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_base': fields.function( + _amount_line, method=True, string='Base ICMS ST', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_percent': fields.function( + _amount_line, method=True, string='Percentual ICMS ST', + type="float", digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_percent_reduction': fields.function( + _amount_line, method=True, string='Perc Redução de Base ICMS ST', + type="float", digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_mva': fields.function( + _amount_line, method=True, string='MVA ICMS ST', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_st_base_other': fields.function( + _amount_line, method=True, string='Base ICMS ST Outras', + type="float", digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'icms_cst': fields.function( + _amount_line, method=True, string='CST ICMS', type="char", size=3, + store=True, multi='all'), + 'ipi_type': fields.function( + _amount_line, method=True, string='Tipo do IPI', type="char", + size=64, store=True, multi='all'), + 'ipi_base': fields.function( + _amount_line, method=True, string='Base IPI', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'ipi_base_other': fields.function( + _amount_line, method=True, string='Base IPI Outras', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'ipi_value': fields.function( + _amount_line, method=True, string='Valor IPI', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'ipi_percent': fields.function( + _amount_line, method=True, string='Perc IPI', type="float", + digits_compute= dp.get_precision('Account'), + store=True, multi='all'), + 'ipi_cst': fields.function( + _amount_line, method=True, string='CST IPI', type="char", size=2, + store=True, multi='all'), + 'pis_type': fields.function( + _amount_line, method=True, string='Tipo do PIS', + type="char", size=64, store=True, multi='all'), + 'pis_base': fields.function( + _amount_line, method=True, string='Base PIS', type="float", + digits_compute=dp.get_precision('Account'), store=True, + multi='all'), + 'pis_base_other': fields.function( + _amount_line, method=True, string='Base PIS Outras', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'pis_value': fields.function( + _amount_line, method=True, string='Valor PIS', type="float", + digits_compute=dp.get_precision('Account'), store=True, + multi='all'), + 'pis_percent': fields.function( + _amount_line, method=True, string='Perc PIS', type="float", + digits_compute=dp.get_precision('Account'), store=True, + multi='all'), + 'pis_cst': fields.function( + _amount_line, method=True, string='CST PIS', type="char", + size=2, store=True, multi='all'), + 'pis_st_type': fields.function( + _amount_line, method=True, string='Calculo PIS ST', + type="char", size=64, store=True, multi='all'), + 'pis_st_base': fields.function( + _amount_line, method=True, string='Base PIS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'pis_st_percent': fields.function( + _amount_line, method=True, string='Perc PIS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'pis_st_value': fields.function( + _amount_line, method=True, string='Valor PIS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_type': fields.function( + _amount_line, method=True, string='Tipo do COFINS', + type="char", size=64, store=True, multi='all'), + 'cofins_base': fields.function( + _amount_line, method=True, string='Base COFINS', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_base_other': fields.function( + _amount_line, method=True, string='Base COFINS Outras', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_value': fields.function( + _amount_line, method=True, string='Valor COFINS', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_percent': fields.function( + _amount_line, method=True, string='Perc COFINS', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_cst': fields.function( + _amount_line, method=True, string='Valor COFINS', + type="char", size=2, store=True, multi='all'), + 'cofins_st_type': fields.function( + _amount_line, method=True, string='Calculo COFINS ST', + type="char", size=64, store=True, multi='all'), + 'cofins_st_base': fields.function( + _amount_line, method=True, string='Base COFINS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_st_percent': fields.function( + _amount_line, method=True, string='Perc COFINS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'cofins_st_value': fields.function( + _amount_line, method=True, string='Valor COFINS ST', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'ii_base': fields.function( + _amount_line, method=True, string='Base II', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'ii_value': fields.function( + _amount_line, method=True, string='Valor II', + type="float", digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + 'ii_iof': fields.float( + 'Valor IOF', required=True, + digits_compute= dp.get_precision('Account')), + 'ii_customhouse_charges': fields.float( + 'Depesas Atuaneiras', required=True, + digits_compute=dp.get_precision('Account'))} + _defaults = { - 'ii_iof': 0.0, - 'ii_customhouse_charges': 0.0, - } + 'ii_iof': 0.0, + 'ii_customhouse_charges': 0.0} def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_category_id): result = {'cfop_id': False} @@ -1028,30 +999,34 @@ def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, com result['cfop_id'] = obj_fp.cfop_id.id return result - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', - type='out_invoice', partner_id=False, fposition_id=False, + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', + type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, - context=None, company_id=False, fiscal_category_id=False): - result = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, - type, partner_id, fposition_id, price_unit, - address_invoice_id, currency_id, context, company_id) - if not fiscal_category_id or not product: + context=None, company_id=False, fiscal_category_id=False, parent_fposition_id=False): + result = super(account_invoice_line, self).product_id_change( + cr, uid, ids, product, uom, qty, name, type, partner_id, + fposition_id, price_unit, address_invoice_id, currency_id, + context, company_id) + + if not fiscal_category_id or not product or not parent_fposition_id: return result - obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule') - product_fiscal_category_id = obj_fiscal_position_rule.product_fiscal_category_map(cr, uid, product, fiscal_category_id) + obj_fp_rule = self.pool.get('account.fiscal.position.rule') + product_fiscal_category_id = obj_fp_rule.product_fiscal_category_map( + cr, uid, product, fiscal_category_id) + + fiscal_position = fposition_id or parent_fposition_id or False if not product_fiscal_category_id: result['value']['fiscal_category_id'] = fiscal_category_id - if fposition_id: - result['value']['fiscal_position_id'] = fposition_id - result['value']['cfop_id'] = self.pool.get('account.fiscal.position').read(cr, uid, [fposition_id], ['cfop_id'])[0]['cfop_id'] - return result + result['value']['fiscal_position_id'] = fiscal_position + if fiscal_position: + result['value']['cfop_id'] = self.pool.get('account.fiscal.position').read(cr, uid, [fiscal_position], ['cfop_id'])[0]['cfop_id'] + else: + result['value']['fiscal_category_id'] = product_fiscal_category_id + fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, product_fiscal_category_id) + result['value'].update(fiscal_data) - result['value']['fiscal_category_id'] = product_fiscal_category_id - - fiscal_data = self._fiscal_position_map(cr, uid, ids, partner_id, address_invoice_id, company_id, product_fiscal_category_id) - result['value'].update(fiscal_data) return result account_invoice_line() diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index f3693707e76a..49dcfe119f9c 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -391,7 +391,7 @@
- + + + + + + + + + + + + + + + + @@ -41,18 +56,6 @@ - - - - - - - - - - - - From 213128e9318dc55afbff98d9693bbf65254f66ce Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 6 Nov 2012 18:59:24 -0200 Subject: [PATCH 0204/1549] =?UTF-8?q?l10n=5Fbr=5Faccount:=20incluido=20cam?= =?UTF-8?q?pos=20obrigat=C3=B3rios=20nos=20documentos=20fiscais=20(account?= =?UTF-8?q?.invoice)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 6 ++++-- l10n_br_account/account_invoice_view.xml | 16 +++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 95b39708b303..0483a15fc2b3 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -663,7 +663,8 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, cfops = eview.xpath("//field[@name='cfop_id']") for cfop_id in cfops: - cfop_id.set('domain', "[('type','=','%s')]" % (OPERATION_TYPE[context['type']],)) + cfop_id.set('domain', "[('type','=','%s')]" % ( + OPERATION_TYPE[context['type']],)) cfop_id.set('required', '1') if context.get('fiscal_type', False) == 'service': @@ -1058,7 +1059,8 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): 'ii_iof': 0.0, 'ii_customhouse_charges': 0.0} - def _fiscal_position_map(self, cr, uid, ids, partner_id, partner_invoice_id, company_id, fiscal_category_id): + def _fiscal_position_map(self, cr, uid, ids, partner_id, + partner_invoice_id, company_id, fiscal_category_id): result = {'cfop_id': False} obj_rule = self.pool.get('account.fiscal.position.rule') fiscal_result = obj_rule.fiscal_position_map(cr, uid, partner_id, partner_invoice_id, company_id, fiscal_category_id, context={'use_domain': ('use_invoice','=',True)}) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 8c6d09999314..72140f0c5fdd 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -71,7 +71,7 @@ - + @@ -139,7 +139,7 @@ - + @@ -158,6 +158,7 @@ + - + l10n_br_account.invoice.supplier.form8 @@ -408,100 +408,133 @@
- - + + - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - +
From f540db84ff41a35d2b8452d62630da9d4b5023b2 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sun, 20 Jan 2013 21:42:40 -0200 Subject: [PATCH 0273/1549] =?UTF-8?q?[MIGR]=20l10n=5Fbr=5Faccount:=20assis?= =?UTF-8?q?tentes=20de=20exporta=C3=A7=C3=A3o=20de=20NFe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/__openerp__.py | 4 +- l10n_br_account/account_invoice_view.xml | 8 -- l10n_br_account/l10n_br_account.py | 38 +++--- .../wizard/l10n_br_account_nfe_export.py | 32 +++-- .../l10n_br_account_nfe_export_view.xml | 109 ++++++++---------- .../wizard/nfe_export_from_invoice.py | 26 ++--- .../wizard/nfe_export_from_invoice_view.xml | 54 +++------ 7 files changed, 115 insertions(+), 156 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 9fca3c283f63..3a10b1d1765f 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -50,8 +50,8 @@ 'account_product_fiscal_classification_view.xml', 'security/ir.model.access.csv', 'security/l10n_br_account_security.xml', -# 'wizard/l10n_br_account_nfe_export_view.xml', - #'wizard/nfe_export_from_invoice_view.xml', + 'wizard/l10n_br_account_nfe_export_view.xml', + 'wizard/nfe_export_from_invoice_view.xml', ], 'demo_xml': [ 'demo/account.account.csv', diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 5c12b904df76..032c46fe71b5 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -390,14 +390,6 @@ - - - - - - - - - l10n_br_account.invoice.form6 - account.invoice - - - - - - - - l10n_br_account.invoice.form7 - account.invoice - - - - - @@ -127,20 +106,29 @@ - - l10n_br_account.invoice.form11 - account.invoice - - - - - - - + + + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] - [('type','=','out_invoice'),('fiscal_type','=','product')] + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] + + + + [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'product')] + + + + [('type', '=', 'out_refund'), ('fiscal_type', '=', 'product')] + + + + [('type', '=', 'in_refund'), ('fiscal_type', '=', 'product')] + + + + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] diff --git a/l10n_br_account/account_product_fiscal_classification.py b/l10n_br_account/account_product_fiscal_classification.py index 2ea588ee28c9..7ec7f1aa946f 100644 --- a/l10n_br_account/account_product_fiscal_classification.py +++ b/l10n_br_account/account_product_fiscal_classification.py @@ -18,12 +18,11 @@ ############################################################################### from osv import fields, osv -from tools.translate import _ -class account_product_fiscal_classification_template(osv.osv): +class account_product_fiscal_classification_template(osv.Model): _inherit = 'account.product.fiscal.classification.template' - + def _get_taxes(self, cr, uid, ids, name, arg, context=None): result = {} for fiscal_classification in self.browse(cr, uid, ids, @@ -42,7 +41,7 @@ def _get_taxes(self, cr, uid, ids, name, arg, context=None): result[fc_id]['sale_base_tax_ids'] = sale_tax_ids result[fc_id]['purchase_base_tax_ids'] = purchase_tax_ids return result - + _columns = { 'type': fields.selection([('view', u'Visão'), ('normal', 'Normal'), @@ -81,7 +80,7 @@ class l10n_br_tax_definition_sale_template(osv.osv): 'Fiscal Classification', select=True)} _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq','unique (tax_id,\ + ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ fiscal_classification_id)', u'Imposto já existente nesta classificação fiscal!')] @@ -95,18 +94,16 @@ class l10n_br_tax_definition_purchase_template(osv.osv): 'fiscal_classification_id': fields.many2one( 'account.product.fiscal.classification.template', 'Fiscal Classification', select=True)} - + _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq','unique (tax_id,\ + ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ fiscal_classification_id)', u'Imposto já existente nesta classificação fiscal!')] -l10n_br_tax_definition_purchase_template() - -class account_product_fiscal_classification(osv.osv): +class account_product_fiscal_classification(osv.Model): _inherit = 'account.product.fiscal.classification' - + def _get_taxes(self, cr, uid, ids, name, arg, context=None): result = {} for fiscal_classification in self.browse(cr, uid, ids, @@ -125,7 +122,7 @@ def _get_taxes(self, cr, uid, ids, name, arg, context=None): result[fc_id]['sale_base_tax_ids'] = sale_tax_ids result[fc_id]['purchase_base_tax_ids'] = purchase_tax_ids return result - + _columns = { 'type': fields.selection([('view', u'Visão'), ('normal', 'Normal'), @@ -152,78 +149,70 @@ def _get_taxes(self, cr, uid, ids, name, arg, context=None): _defaults = { 'type': 'normal'} -account_product_fiscal_classification() - -class l10n_br_tax_definition_sale(osv.osv): +class l10n_br_tax_definition_sale(osv.Model): _name = 'l10n_br_tax.definition.sale' _inherit = 'l10n_br_tax.definition' _columns = { 'fiscal_classification_id': fields.many2one( 'account.product.fiscal.classification', 'Parent Fiscal Classification', select=True)} - + _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq','unique (tax_id,\ + ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ fiscal_classification_id)', u'Imposto já existente nesta classificação fiscal!')] -l10n_br_tax_definition_sale() - -class l10n_br_tax_definition_purchase(osv.osv): +class l10n_br_tax_definition_purchase(osv.Model): _name = 'l10n_br_tax.definition.purchase' _inherit = 'l10n_br_tax.definition' _columns = { 'fiscal_classification_id': fields.many2one( 'account.product.fiscal.classification', - 'Fiscal Classification', select=True)} - + 'Fiscal Classification', select=True) + } _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq','unique (tax_id,\ + ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ fiscal_classification_id)', u'Imposto já existente nesta classificação fiscal!')] -l10n_br_tax_definition_purchase() - class wizard_account_product_fiscal_classification(osv.osv_memory): _inherit = 'wizard.account.product.fiscal.classification' _columns = { - 'company_id':fields.many2one('res.company','Company')} + 'company_id': fields.many2one('res.company', 'Company') + } def action_create(self, cr, uid, ids, context=None): - obj_wizard = self.browse(cr,uid,ids[0]) + obj_wizard = self.browse(cr, uid, ids[0]) obj_tax = self.pool.get('account.tax') obj_company = self.pool.get('res.company') obj_tax_template = self.pool.get('account.tax.template') obj_tax_code = self.pool.get('account.tax.code') obj_tax_code_template = self.pool.get('account.tax.code.template') obj_fclass = self.pool.get('account.product.fiscal.classification') - obj_fclass_template = self.pool.get( - 'account.product.fiscal.classification.template') + obj_fclass_template = self.pool.get('account.product.fiscal.classification.template') obj_tax_purchase = self.pool.get('l10n_br_tax.definition.purchase') - obj_tax_purchase_template = self.pool.get('l10n_br_tax.definition.purchase.template') obj_tax_sale = self.pool.get('l10n_br_tax.definition.sale') - obj_tax_sale_template = self.pool.get('l10n_br_tax.definition.sale.template') - + if obj_wizard.company_id: company_ids = [obj_wizard.company_id.id] else: - company_ids = obj_company.search(cr,uid,[]) - + company_ids = obj_company.search(cr, uid, []) + tax_template_ref = {} tax_code_template_ref = {} for company_id in company_ids: - + tax_template_ref[company_id] = {} - tax_ids = obj_tax.search(cr,uid,[('company_id','=',company_id)]) + tax_ids = obj_tax.search(cr, uid, [('company_id', '=', company_id)]) for tax in obj_tax.browse(cr, uid, tax_ids): tax_template = obj_tax_template.search(cr,uid,[('name', '=', tax.name)]) if tax_template: tax_template_ref[company_id][tax_template[0]] = tax.id - + tax_code_template_ref[company_id] = {} tax_code_ids = obj_tax_code.search(cr,uid,[('company_id', '=', company_id)]) for tax_code in obj_tax_code.browse(cr, uid, tax_code_ids): @@ -231,7 +220,6 @@ def action_create(self, cr, uid, ids, context=None): if tax_code_template: tax_code_template_ref[company_id][tax_code_template[0]] = tax_code.id - fclass_ref = {} fclass_ids_template = obj_fclass_template.search(cr, uid, []) for fclass_template in obj_fclass_template.browse(cr, uid, fclass_ids_template): parent_ids = False @@ -265,7 +253,7 @@ def action_create(self, cr, uid, ids, context=None): 'tax_id': tax_template_ref[company_id].get(sale_tax.tax_id.id, False), 'tax_code_id': tax_code_template_ref[company_id].get(sale_tax.tax_code_id.id, False), 'fiscal_classification_id': new_fclass_id}) - + for purchase_tax in fclass_template.purchase_tax_definition_line: if not obj_tax_purchase.search(cr, uid, [('tax_id', '=',tax_template_ref[company_id].get(purchase_tax.tax_id.id, False)), ('fiscal_classification_id', '=', new_fclass_id)]): obj_tax_purchase.create(cr, uid, { @@ -273,5 +261,3 @@ def action_create(self, cr, uid, ids, context=None): 'tax_code_id': tax_code_template_ref[company_id].get(purchase_tax.tax_code_id.id, False), 'fiscal_classification_id': new_fclass_id}) return {} - -wizard_account_product_fiscal_classification() diff --git a/l10n_br_account/sped/nfe/validator/txt.py b/l10n_br_account/sped/nfe/validator/txt.py index d434ae77ae07..b2f8833bba3a 100644 --- a/l10n_br_account/sped/nfe/validator/txt.py +++ b/l10n_br_account/sped/nfe/validator/txt.py @@ -17,7 +17,7 @@ #along with this program. If not, see . # ############################################################################### -from osv import fields, osv +from osv import osv from tools.translate import _ import pooler @@ -32,7 +32,8 @@ def validate(cr, uid, ids, context=None): for inv in pool.get('account.invoice').browse(cr, uid, ids): #Nota fiscal - if not inv.own_invoice or inv.fiscal_type == 'service' or not inv.fiscal_document_electronic: + if not inv.own_invoice or inv.fiscal_type == 'service' or \ + not inv.fiscal_document_electronic: continue if not inv.document_serie_id: @@ -41,9 +42,6 @@ def validate(cr, uid, ids, context=None): if not inv.fiscal_document_id: strErro += u'Nota Fiscal - Tipo de documento fiscal\n' - #if not inv.date_invoice: - # strErro = 'Nota Fiscal - Data da nota fiscal\n' - if not inv.document_serie_id.internal_sequence_id: strErro += u'Nota Fiscal - Número da nota fiscal, a série deve ter uma sequencia interna\n' From 3ed00e83bd5412ba3b5e7fda490f4531a72aefd4 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 22 Jan 2013 11:53:43 -0200 Subject: [PATCH 0278/1549] =?UTF-8?q?[MIGR]=20l10n=5Fbr=5Faccount:=20rotin?= =?UTF-8?q?a=20de=20valida=C3=A7=C3=A3o,exporta=C3=A7=C3=A3o=20de=20NFe=20?= =?UTF-8?q?e=20wizard=20de=20exporta=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/sped/nfe/serializer/txt.py | 26 +++++++++---------- l10n_br_account/sped/nfe/validator/txt.py | 2 +- .../wizard/nfe_export_from_invoice.py | 10 ++++++- .../wizard/nfe_export_from_invoice_view.xml | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/l10n_br_account/sped/nfe/serializer/txt.py b/l10n_br_account/sped/nfe/serializer/txt.py index d650c6c2f06e..3726086bfb6c 100644 --- a/l10n_br_account/sped/nfe/serializer/txt.py +++ b/l10n_br_account/sped/nfe/serializer/txt.py @@ -99,7 +99,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): StrFile += StrC - if inv.company_id.partner_id.tipo_pessoa == 'J': + if inv.company_id.partner_id.is_company: StrC02 = 'C02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) else: StrC02 = 'C02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) @@ -136,10 +136,10 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): UFEmbarq = '' XLocEmbarq = '' partner_cep = '' - if inv.parnter_id.country_id.bc_code: + if inv.partner_id.country_id.bc_code: partner_bc_code = inv.partner_id.country_id.bc_code[1:] - if inv.parnter_id.country_id.id != company_addr_default.country_id.id: + if inv.partner_id.country_id.id != company_addr_default.country_id.id: address_invoice_state_code = 'EX' address_invoice_city = 'Exterior' UFEmbarq = company_addr_default.state_id.code @@ -167,7 +167,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): StrFile += StrE - if inv.partner_id.tipo_pessoa == 'J': + if inv.partner_id.is_company: StrE0 = 'E02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) else: StrE0 = 'E03|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) @@ -175,17 +175,17 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): StrFile += StrE0 StrRegE05 = { - 'xLgr': normalize('NFKD',unicode(inv.parnter_id.street or '')).encode('ASCII','ignore'), - 'nro': normalize('NFKD',unicode(inv.parnter_id.number or '')).encode('ASCII','ignore'), - 'xCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.parnter_id.street2 or '' )).encode('ASCII','ignore')), - 'xBairro': normalize('NFKD',unicode(inv.parnter_id.district or 'Sem Bairro')).encode('ASCII','ignore'), - 'cMun': ('%s%s') % (inv.parnter_id.state_id.ibge_code, inv.parnter_id.l10n_br_city_id.ibge_code), + 'xLgr': normalize('NFKD',unicode(inv.partner_id.street or '')).encode('ASCII','ignore'), + 'nro': normalize('NFKD',unicode(inv.partner_id.number or '')).encode('ASCII','ignore'), + 'xCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_id.street2 or '' )).encode('ASCII','ignore')), + 'xBairro': normalize('NFKD',unicode(inv.partner_id.district or 'Sem Bairro')).encode('ASCII','ignore'), + 'cMun': ('%s%s') % (inv.partner_id.state_id.ibge_code, inv.partner_id.l10n_br_city_id.ibge_code), 'xMun': address_invoice_city, 'UF': address_invoice_state_code, 'CEP': partner_cep, 'cPais': partner_bc_code, - 'xPais': normalize('NFKD',unicode(inv.parnter_id.country_id.name or '')).encode('ASCII','ignore'), - 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.parnter_id.phone or '').replace(' ','')), + 'xPais': normalize('NFKD',unicode(inv.partner_id.country_id.name or '')).encode('ASCII','ignore'), + 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.partner_id.phone or '').replace(' ','')), } StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'], @@ -196,7 +196,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): if inv.partner_shipping_id: - if inv.parnter_id.id != inv.partner_shipping_id.id: + if inv.partner_id.id != inv.partner_shipping_id.id: StrRegG = { 'XLgr': normalize('NFKD',unicode(inv.partner_shipping_id.street or '',)).encode('ASCII','ignore'), @@ -654,7 +654,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', context=False): if carrier_addr_default.l10n_br_city_id: StrRegX03['XMun'] = normalize('NFKD', unicode(carrier_addr_default.l10n_br_city_id.name or '')).encode('ASCII', 'ignore') - if inv.carrier_id.partner_id.tipo_pessoa == 'J': + if inv.carrier_id.partner_id.is_company: StrX0 = 'X04|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) else: StrX0 = 'X05|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) diff --git a/l10n_br_account/sped/nfe/validator/txt.py b/l10n_br_account/sped/nfe/validator/txt.py index b2f8833bba3a..d19c217c80e7 100644 --- a/l10n_br_account/sped/nfe/validator/txt.py +++ b/l10n_br_account/sped/nfe/validator/txt.py @@ -107,7 +107,7 @@ def validate(cr, uid, ids, context=None): if not inv.partner_id.number: strErro += u'Destinatário / Endereço - Número\n' - if inv.parnter_id.country_id.id == inv.company_id.partner_id.country_id.id: + if inv.partner_id.country_id.id == inv.company_id.partner_id.country_id.id: if not inv.partner_id.zip: strErro += u'Destinatário / Endereço - CEP\n' diff --git a/l10n_br_account/wizard/nfe_export_from_invoice.py b/l10n_br_account/wizard/nfe_export_from_invoice.py index 09c211c3673b..e2e302b05ca4 100644 --- a/l10n_br_account/wizard/nfe_export_from_invoice.py +++ b/l10n_br_account/wizard/nfe_export_from_invoice.py @@ -104,4 +104,12 @@ def nfe_export_from_invoice(self, cr, uid, ids, context=None): if err_msg: raise osv.except_osv(_('Error !'), _("'%s'") % _(err_msg, )) - return False + return { + 'type': 'ir.actions.act_window', + 'res_model': 'l10n_br_account.nfe_export_from_invoice', + 'view_mode': 'form', + 'view_type': 'form', + 'res_id': data['id'], + 'views': [(False, 'form')], + 'target': 'new', + } diff --git a/l10n_br_account/wizard/nfe_export_from_invoice_view.xml b/l10n_br_account/wizard/nfe_export_from_invoice_view.xml index d243238f7a78..8e3ac5d817d3 100644 --- a/l10n_br_account/wizard/nfe_export_from_invoice_view.xml +++ b/l10n_br_account/wizard/nfe_export_from_invoice_view.xml @@ -18,6 +18,7 @@ +
-
From 31d4b2b8a8e0379212da39a718b4f32f668fc08b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 22 Jan 2013 12:23:00 -0200 Subject: [PATCH 0279/1549] =?UTF-8?q?[MIGR]=20l10n=5Fbr=5Faccount:=20=20wi?= =?UTF-8?q?zard=20de=20exporta=C3=A7=C3=A3o=20de=20NFe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../l10n_br_account_nfe_export_view.xml | 30 +++++++------------ .../wizard/nfe_export_from_invoice_view.xml | 7 ++--- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml index bdbd5ddeb3b1..8644fe78f9f9 100644 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml +++ b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml @@ -7,33 +7,25 @@ l10n_br_account.nfe_export
- + -

-

- - - - - + + +
-
-
-
-
+
+
+
+
diff --git a/l10n_br_account/wizard/nfe_export_from_invoice_view.xml b/l10n_br_account/wizard/nfe_export_from_invoice_view.xml index 8e3ac5d817d3..5191b5ad9f73 100644 --- a/l10n_br_account/wizard/nfe_export_from_invoice_view.xml +++ b/l10n_br_account/wizard/nfe_export_from_invoice_view.xml @@ -10,13 +10,12 @@ - - - - - - Exportar Nota Fiscal - l10n_br_account.nfe_export_invoice - form - form - new - - - - - - diff --git a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml b/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml deleted file mode 100644 index fbcc297d4bf8..000000000000 --- a/l10n_br_account/wizard/l10n_br_account_nfe_export_view.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - l10n_br_account.nfe_export.form - l10n_br_account.nfe_export - - - - - - - - - - Exportar Nota Fiscal - l10n_br_account.nfe_export - form - form - - new - - - - - - From 3fa7ad7632063089904fb768c1595739c64b1ab3 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:15:50 -0200 Subject: [PATCH 0348/1549] =?UTF-8?q?Movido=20arquivo=20account=5Fproduct?= =?UTF-8?q?=5Ffiscal=5Fclassification.py=20do=20m=C3=B3dulo=20l10n=5Fbr=5F?= =?UTF-8?q?account=20para=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Faccount?= =?UTF-8?q?=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_product_fiscal_classification.py | 275 ------------------ 1 file changed, 275 deletions(-) delete mode 100644 l10n_br_account/account_product_fiscal_classification.py diff --git a/l10n_br_account/account_product_fiscal_classification.py b/l10n_br_account/account_product_fiscal_classification.py deleted file mode 100644 index 0178677b99ad..000000000000 --- a/l10n_br_account/account_product_fiscal_classification.py +++ /dev/null @@ -1,275 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2012 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields - - -class account_product_fiscal_classification_template(orm.Model): - _inherit = 'account.product.fiscal.classification.template' - - def _get_taxes(self, cr, uid, ids, name, arg, context=None): - result = {} - for fiscal_classification in self.browse(cr, uid, ids, - context=context): - fc_id = fiscal_classification.id - result[fc_id] = {'sale_base_tax_ids': [], - 'purchase_base_tax_ids': []} - sale_tax_ids = [] - purchase_tax_ids = [] - for line in fiscal_classification.sale_tax_definition_line: - sale_tax_ids.append(line.tax_id.id) - for line in fiscal_classification.purchase_tax_definition_line: - purchase_tax_ids.append(line.tax_id.id) - sale_tax_ids.sort() - purchase_tax_ids.sort() - result[fc_id]['sale_base_tax_ids'] = sale_tax_ids - result[fc_id]['purchase_base_tax_ids'] = purchase_tax_ids - return result - - _columns = { - 'type': fields.selection([('view', u'Visão'), - ('normal', 'Normal'), - ('extension', 'Extensão')], 'Tipo'), - 'parent_id': fields.many2one( - 'account.product.fiscal.classification.template', - 'Parent Fiscal Classification', - domain="[('type', 'in', ('view', 'normal'))]", select=True), - 'child_ids': fields.one2many( - 'account.product.fiscal.classification.template', - 'parent_id', 'Child Fiscal Classifications'), - 'sale_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.sale.template', - 'fiscal_classification_id', 'Taxes Definitions'), - 'note': fields.text(u'Observações'), - 'inv_copy_note': fields.boolean( - u'Copiar Observação', - help=u"Copia a observação no documento fiscal"), - 'sale_base_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Sale Taxes', multi='all'), - 'purchase_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.purchase.template', - 'fiscal_classification_id', 'Taxes Definitions'), - 'purchase_base_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Purchase Taxes', multi='all') - } - _defaults = { - 'type': 'normal'} - - -class l10n_br_tax_definition_sale_template(orm.Model): - _name = 'l10n_br_tax.definition.sale.template' - _inherit = 'l10n_br_tax.definition.template' - _columns = { - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification.template', - 'Fiscal Classification', select=True) - } - _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ - fiscal_classification_id)', - u'Imposto já existente nesta classificação fiscal!') - ] - - -class l10n_br_tax_definition_purchase_template(orm.Model): - _name = 'l10n_br_tax.definition.purchase.template' - _inherit = 'l10n_br_tax.definition.template' - _columns = { - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification.template', - 'Fiscal Classification', select=True) - } - _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ - fiscal_classification_id)', - u'Imposto já existente nesta classificação fiscal!') - ] - - -class account_product_fiscal_classification(orm.Model): - _inherit = 'account.product.fiscal.classification' - - def _get_taxes(self, cr, uid, ids, name, arg, context=None): - result = {} - for fiscal_classification in self.browse(cr, uid, ids, - context=context): - fc_id = fiscal_classification.id - result[fc_id] = {'sale_base_tax_ids': [], - 'purchase_base_tax_ids': []} - sale_tax_ids = [] - purchase_tax_ids = [] - for line in fiscal_classification.sale_tax_definition_line: - sale_tax_ids.append(line.tax_id.id) - for line in fiscal_classification.purchase_tax_definition_line: - purchase_tax_ids.append(line.tax_id.id) - sale_tax_ids.sort() - purchase_tax_ids.sort() - result[fc_id]['sale_base_tax_ids'] = sale_tax_ids - result[fc_id]['purchase_base_tax_ids'] = purchase_tax_ids - return result - - _columns = { - 'type': fields.selection([('view', u'Visão'), - ('normal', 'Normal'), - ('extension', 'Extensão')], 'Tipo'), - 'parent_id': fields.many2one( - 'account.product.fiscal.classification', - 'Parent Fiscal Classification', - domain="[('type', 'in', ('view', 'normal'))]", select=True), - 'child_ids': fields.one2many('account.product.fiscal.classification', - 'parent_id', - 'Child Fiscal Classifications'), - 'sale_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.sale', - 'fiscal_classification_id', 'Taxes Definitions'), - 'note': fields.text(u'Observações'), - 'inv_copy_note': fields.boolean( - u'Copiar Observação no Documento Fiscal'), - 'sale_base_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Sale Taxes', multi='all'), - 'purchase_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.purchase', - 'fiscal_classification_id', 'Taxes Definitions'), - 'purchase_base_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Purchase Taxes', multi='all') - } - _defaults = { - 'type': 'normal'} - - -class l10n_br_tax_definition_sale(orm.Model): - _name = 'l10n_br_tax.definition.sale' - _inherit = 'l10n_br_tax.definition' - _columns = { - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification', - 'Parent Fiscal Classification', select=True) - } - _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ - fiscal_classification_id)', - u'Imposto já existente nesta classificação fiscal!') - ] - - -class l10n_br_tax_definition_purchase(orm.Model): - _name = 'l10n_br_tax.definition.purchase' - _inherit = 'l10n_br_tax.definition' - _columns = { - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification', - 'Fiscal Classification', select=True) - } - _sql_constraints = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id,\ - fiscal_classification_id)', - u'Imposto já existente nesta classificação fiscal!')] - - -class wizard_account_product_fiscal_classification(orm.TransientModel): - _inherit = 'wizard.account.product.fiscal.classification' - _columns = { - 'company_id': fields.many2one('res.company', 'Company') - } - - def action_create(self, cr, uid, ids, context=None): - - obj_wizard = self.browse(cr, uid, ids[0]) - obj_tax = self.pool.get('account.tax') - obj_company = self.pool.get('res.company') - obj_tax_template = self.pool.get('account.tax.template') - obj_tax_code = self.pool.get('account.tax.code') - obj_tax_code_template = self.pool.get('account.tax.code.template') - obj_fclass = self.pool.get('account.product.fiscal.classification') - obj_fclass_template = self.pool.get( - 'account.product.fiscal.classification.template') - obj_tax_purchase = self.pool.get('l10n_br_tax.definition.purchase') - obj_tax_sale = self.pool.get('l10n_br_tax.definition.sale') - - if obj_wizard.company_id: - company_ids = [obj_wizard.company_id.id] - else: - company_ids = obj_company.search(cr, uid, []) - - tax_template_ref = {} - tax_code_template_ref = {} - for company_id in company_ids: - - tax_template_ref[company_id] = {} - tax_ids = obj_tax.search(cr, uid, [('company_id', '=', company_id)]) - for tax in obj_tax.browse(cr, uid, tax_ids): - tax_template = obj_tax_template.search( - cr, uid, [('name', '=', tax.name)]) - if tax_template: - tax_template_ref[company_id][tax_template[0]] = tax.id - - tax_code_template_ref[company_id] = {} - tax_code_ids = obj_tax_code.search( - cr, uid, [('company_id', '=', company_id)]) - for tax_code in obj_tax_code.browse(cr, uid, tax_code_ids): - tax_code_template = obj_tax_code_template.search( - cr, uid, [('name', '=', tax_code.name)]) - if tax_code_template: - tax_code_template_ref[company_id][tax_code_template[0]] = tax_code.id - - fclass_ids_template = obj_fclass_template.search(cr, uid, []) - for fclass_template in obj_fclass_template.browse(cr, uid, fclass_ids_template): - parent_ids = False - parent_id = False - for company_id in company_ids: - vals = { - 'name': fclass_template.name, - 'description': fclass_template.description, - 'type': fclass_template.type, - 'parent_id': parent_id} - if obj_wizard.company_id: - parent_ids = obj_fclass.search(cr, uid, [('name', '=', fclass_template.parent_id.name), ('company_id', '=', company_id)]) - fclass = obj_fclass.search(cr, uid, [('name', '=', fclass_template.name), ('company_id', '=', company_id)]) - vals['company_id'] = company_id - else: - parent_ids = obj_fclass.search(cr, uid, [('name', '=', fclass_template.parent_id.name), ('company_id', '=', False)]) - fclass = obj_fclass.search(cr, uid, [('name', '=', fclass_template.name), ('company_id', '=', False)]) - vals['company_id'] = False - - if parent_ids: - parent_id = parent_ids[0] - - if not fclass: - new_fclass_id = obj_fclass.create(cr, uid, vals) - else: - new_fclass_id = fclass[0] - - for sale_tax in fclass_template.sale_tax_definition_line: - if not obj_tax_sale.search(cr, uid, [('tax_id', '=', tax_template_ref[company_id].get(sale_tax.tax_id.id, False)), ('fiscal_classification_id', '=', new_fclass_id)]): - obj_tax_sale.create(cr, uid, { - 'tax_id': tax_template_ref[company_id].get(sale_tax.tax_id.id, False), - 'tax_code_id': tax_code_template_ref[company_id].get(sale_tax.tax_code_id.id, False), - 'fiscal_classification_id': new_fclass_id}) - - for purchase_tax in fclass_template.purchase_tax_definition_line: - if not obj_tax_purchase.search(cr, uid, [('tax_id', '=',tax_template_ref[company_id].get(purchase_tax.tax_id.id, False)), ('fiscal_classification_id', '=', new_fclass_id)]): - obj_tax_purchase.create(cr, uid, { - 'tax_id': tax_template_ref[company_id].get(purchase_tax.tax_id.id, False), - 'tax_code_id': tax_code_template_ref[company_id].get(purchase_tax.tax_code_id.id, False), - 'fiscal_classification_id': new_fclass_id}) - return {} From 2132ce653486418cfd5442cccef34d72cb234303 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:16:41 -0200 Subject: [PATCH 0349/1549] =?UTF-8?q?Movido=20arquivo=20account=5Fproduct?= =?UTF-8?q?=5Ffiscal=5Fclassification=5Fview.xml=20do=20m=C3=B3dulo=20l10n?= =?UTF-8?q?=5Fbr=5Faccount=20para=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Fa?= =?UTF-8?q?ccount=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...unt_product_fiscal_classification_view.xml | 151 ------------------ 1 file changed, 151 deletions(-) delete mode 100644 l10n_br_account/account_product_fiscal_classification_view.xml diff --git a/l10n_br_account/account_product_fiscal_classification_view.xml b/l10n_br_account/account_product_fiscal_classification_view.xml deleted file mode 100644 index 6752df98bcb5..000000000000 --- a/l10n_br_account/account_product_fiscal_classification_view.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - l10n_br_account.fiscal.classification.template.form - account.product.fiscal.classification.template - - - - - - - - - - - - - - - - - - - l10n_br_tax.definition.sale.template.form - l10n_br_tax.definition.sale.template - -
- - - - - -
- - - l10n_br_tax.definition.sale.template.tree - l10n_br_tax.definition.sale.template - - - - - - - - - - - l10n_br_tax.definition.purchase.template.form - l10n_br_tax.definition.purchase.template - -
- - - - - -
- - - l10n_br_tax.definition.purchase.template.tree - l10n_br_tax.definition.purchase.template - - - - - - - - - - - l10n_br_account.fiscal_classification_form - account.product.fiscal.classification - - - - - - - - - - - - - - - - - - - - - - l10n_br_tax.definition.sale.form - l10n_br_tax.definition.sale - -
- - - - - -
- - - l10n_br_tax.definition.sale.tree - l10n_br_tax.definition.sale - - - - - - - - - - - l10n_br_tax.definition.purchase.form - l10n_br_tax.definition.purchase - -
- - - - - -
- - - l10n_br_tax.definition.purchase.tree - l10n_br_tax.definition.purchase - - - - - - - - - -
- -
\ No newline at end of file From 12675d31cc3041525a4f5f5a0cca43c96db13845 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:19:15 -0200 Subject: [PATCH 0350/1549] =?UTF-8?q?Movido=20arquivo=20l10n=5Fbr=5Faccoun?= =?UTF-8?q?t=5Fsequence.xml=20do=20m=C3=B3dulo=20l10n=5Fbr=5Faccount=20par?= =?UTF-8?q?a=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Faccount=5Fproduct=20co?= =?UTF-8?q?mo=20l10n=5Fbr=5Faccount=5Fproduct=5Fsequence.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_sequence.xml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 l10n_br_account/l10n_br_account_sequence.xml diff --git a/l10n_br_account/l10n_br_account_sequence.xml b/l10n_br_account/l10n_br_account_sequence.xml deleted file mode 100644 index 323c9efd4088..000000000000 --- a/l10n_br_account/l10n_br_account_sequence.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - NFE Export - nfe.export - - - - NFE Export - nfe.export - - - - - \ No newline at end of file From 4a8615ba6406d84e1317327a782fe49a735ad1fa Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:22:20 -0200 Subject: [PATCH 0351/1549] Atualizado arquivo l10n_br_account/__init__.py --- l10n_br_account/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 6a3594885386..5d55b2118370 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -25,5 +25,3 @@ import account_invoice import product import account_fiscal_position_rule -import account_product_fiscal_classification -import wizard From cce49d82c454b89aa286603dc77e26082fc2efc4 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:24:01 -0200 Subject: [PATCH 0352/1549] =?UTF-8?q?Removidos=20dados=20do=20arquivo=20l1?= =?UTF-8?q?0n=5Fbr=5Faccount/data/l10n=5Fbr=5Faccount=5Fdata.xml=20n=C3=A3?= =?UTF-8?q?o=20utilizados=20no=20m=C3=B3dulo=20l10n=5Fbr=5Faccount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/data/l10n_br_account_data.xml | 278 +++++------------- 1 file changed, 70 insertions(+), 208 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 6749c5e4c1c5..9aa3f227a649 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -3,36 +3,21 @@ - - 1 - Série 1 - - - True - product - - - 1 - Série 1 - - - True - service + 1 + Série 1 + + + True + service - - - - Bonificação - IBON - sale - - - - - - + + + + + + + 3 @@ -68,137 +53,14 @@ - - - Venda - Venda - output - product - sale - - - - Bonificação - Bonificação - output - product - sale - - - - - VendaST - Venda de Mercadoria Sujeita a Substituição Tributária - output - product - sale - - - - Revenda - Revenda - output - product - sale - - - - Compras para Ind - Compras para Industrialização - input - product - purchase - - - - SimplesRemessa - Simples Remessa - output - product - sale - - - - Venda de Serviço - Venda de Serviço - output - - service - sale - - - - DevoluçãoVenda - Devolução de Venda - input - product - sale_refund - - - - DevoluçãoCompra - Devolução de Compra - output - product - purchase_refund - - - - - - Venda para Dentro do Estado - - - - output - sale - - - - Venda Fora do Estado ICMS 7% - - - - output - sale - - - - Venda Fora do Estado ICMS 12% - - - - output - sale - - - - Venda Fora do Estado Ex - - - - output - sale - - - - - - - - 3 - - - - - + ICMS Simples Nacional 1,25% ICMS Simples Nacional 1,25% 0.0125 @@ -211,9 +73,9 @@ - - - + + + ICMS Simples Nacional 1,86% ICMS Simples Nacional 1,86% 0.0186 @@ -226,9 +88,9 @@ - - - + + + ICMS Simples Nacional 2,33% ICMS Simples Nacional 2,33% 0.0233 @@ -241,9 +103,9 @@ - - - + + + ICMS Simples Nacional 2,56% ICMS Simples Nacional 2,56% 0.0256 @@ -256,9 +118,9 @@ - - - + + + ICMS Simples Nacional 2,58% ICMS Simples Nacional 2,58% 0.0258 @@ -271,9 +133,9 @@ - - - + + + ICMS Simples Nacional 2,82% ICMS Simples Nacional 2,82% 0.0282 @@ -286,9 +148,9 @@ - - - + + + ICMS Simples Nacional 2,84% ICMS Simples Nacional 2,84% 0.0284 @@ -301,9 +163,9 @@ - - - + + + ICMS Simples Nacional 2,87% ICMS Simples Nacional 2,87% 0.0287 @@ -316,9 +178,9 @@ - - - + + + ICMS Simples Nacional 3,07% ICMS Simples Nacional 3,07% 0.0307 @@ -331,9 +193,9 @@ - - - + + + ICMS Simples Nacional 3,10% ICMS Simples Nacional 3,10% 0.0310 @@ -346,9 +208,9 @@ - - - + + + ICMS Simples Nacional 3,38% ICMS Simples Nacional 3,38% 0.0338 @@ -361,9 +223,9 @@ - - - + + + ICMS Simples Nacional 3,41% ICMS Simples Nacional 3,41% 0.0341 @@ -376,9 +238,9 @@ - - - + + + ICMS Simples Nacional 3,45% ICMS Simples Nacional 3,45% 0.0345 @@ -391,9 +253,9 @@ - - - + + + ICMS Simples Nacional 3,48% ICMS Simples Nacional 3,48% 0.0348 @@ -406,9 +268,9 @@ - - - + + + ICMS Simples Nacional 3,51% ICMS Simples Nacional 3,51% 0.0351 @@ -421,9 +283,9 @@ - - - + + + ICMS Simples Nacional 3,82% ICMS Simples Nacional 3,82% 0.0382 @@ -436,9 +298,9 @@ - - - + + + ICMS Simples Nacional 3,85% ICMS Simples Nacional 3,85% 0.0385 @@ -466,9 +328,9 @@ - - - + + + ICMS Simples Nacional 3,91% ICMS Simples Nacional 3,91% 0.0391 @@ -481,9 +343,9 @@ - - - + + + ICMS Simples Nacional 3,95% ICMS Simples Nacional 3,95% 0.0395 @@ -496,7 +358,7 @@ - + - + \ No newline at end of file From 2254f797a1e14291875aaf5ec85d0bfcf3bfeeee Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:25:30 -0200 Subject: [PATCH 0353/1549] =?UTF-8?q?Atualizado=20dados=20de=20demostra?= =?UTF-8?q?=C3=A7=C3=A3o=20do=20arquivo=20l10n=5Fbr=5Faccount/demo/account?= =?UTF-8?q?=5Ffinancial=5Fdemo.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/account_financial_demo.xml | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/l10n_br_account/demo/account_financial_demo.xml b/l10n_br_account/demo/account_financial_demo.xml index 9279ad50e0ed..4928ff24b09c 100644 --- a/l10n_br_account/demo/account_financial_demo.xml +++ b/l10n_br_account/demo/account_financial_demo.xml @@ -1,13 +1,14 @@ + - + - True + True A Vista - + @@ -17,8 +18,6 @@ - 07 Dias - procent @@ -26,8 +25,6 @@ - 14 Dias - balance @@ -35,14 +32,12 @@ - 07 e 28 dias liquidos 07 / 28 DDL + - 7 Dias - procent @@ -50,23 +45,19 @@ - 28 Dias - balance + 35 DDL 35 dias - 35 DDL - 35 Dias - balance @@ -80,8 +71,6 @@ - 45 Dias - balance From f595b9d8c43ff1bacb0eb18083715829824bdc24 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Dec 2013 21:26:24 -0200 Subject: [PATCH 0354/1549] =?UTF-8?q?Editado=20objetos=20do=20m=C3=B3dulo?= =?UTF-8?q?=20l10n=5Fbr=5Faccount/l10n=5Fbr=5Faccount.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/demo/account_fiscal_demo.xml | 165 +-- l10n_br_account/demo/account_tax_code.xml | 1067 +----------------- l10n_br_account/demo/base_demo.xml | 6 +- l10n_br_account/l10n_br_account.py | 326 ++---- 4 files changed, 78 insertions(+), 1486 deletions(-) diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml index a40bed6ba1fb..803990c56c7d 100644 --- a/l10n_br_account/demo/account_fiscal_demo.xml +++ b/l10n_br_account/demo/account_fiscal_demo.xml @@ -1,166 +1,7 @@ - - - + + - - - Diário de Vendas - TSAJ - sale - - - - - - - - - - - - - - - - - 3 - - - - - 8473.30.41 - Placas-mãe ("mother boards") - - - - - - - 8471.70.12 - Para discos rígidos, com um só conjunto - cabeça-disco (HDA-"Head Disk Assembly") - - - - - - - 8473.30.42 - Placas (módulos) de memória com uma superfície - inferior ou igual a 50cm2 - - - - - - - 8542.32.10 - Não montadas - - - - - - - 8471.30.12 - De peso inferior a 3,5kg com teclado alfanumérico - de no mínimo 70 teclas e com uma tela de área superior a 140cm2 e - inferior a 560cm2 - - - - - - - 8414.59.10 - Microventiladores com área de carcaça inferior a - 90cm² - - - - - - - 8471.60.52 - Teclados - - - - - - - 8471.60.53 - Indicadores ou apontadores (mouse e track-ball, por - exemplo) - - - - - - - 8504.40.30 - Conversores de corrente contínua - - - - - - - 8473.30.19 - Outros - - - - - - - 7326.90.90 - Outras - - - - - - - 4403.10.00 - Tratada com tinta, creosoto ou com outros agentes - de conservação - - - - - - - 8305.20.00 - Grampos apresentados em barretas - - - - + diff --git a/l10n_br_account/demo/account_tax_code.xml b/l10n_br_account/demo/account_tax_code.xml index 4d83fcccd6bc..50776352e4eb 100644 --- a/l10n_br_account/demo/account_tax_code.xml +++ b/l10n_br_account/demo/account_tax_code.xml @@ -8,16 +8,7 @@ 1 - - - ICMSST - ICMSST - icmsst - 1 - - - - + IRPJ IRPJ @@ -26,7 +17,7 @@ - + IR IR @@ -35,7 +26,7 @@ - + ISSQN ISSQN @@ -44,7 +35,7 @@ - + CSLL CSLL @@ -53,1057 +44,7 @@ - - - COFINS - COFINS - cofins - 1 - - - - - - PIS - PIS - pis - 1 - - - - - - IPI - IPI - ipi - 1 - - - - - - ICMS - ICMS - icms - 1 - - - - - - - 01 - Operação Tributável com Alíquota Básica - Operação Tributável com Alíquota Básica - cofins - 1 - - - - - - 02 - Operação Tributável com Alíquota Diferenciada - Operação Tributável com Alíquota Diferenciada - cofins - 1 - - - - - - 03 - Operação Tributável com Alíquota por Unidade de Medida de Produto - Operação Tributável com Alíquota por Unidade de Medida de Produto - cofins - 1 - - - - - - 04 - Operação Tributável Monofásica - Revenda a Alíquota Zero - Operação Tributável Monofásica - Revenda a Alíquota Zero - cofins - 1 - - - - - - 05 - Operação Tributável por Substituição Tributária - Operação Tributável por Substituição Tributária - cofins - 1 - - - - - - 06 - Operação Tributável a Alíquota zero - Operação Tributável a Alíquota zero - cofins - 1 - - - - - - 07 - Operação Isenta da Contribuição - Operação Isenta da Contribuição - cofins - 1 - - - - - - 08 - Operação sem Incidência da Contribuição - Operação sem Incidência da Contribuição - cofins - 1 - - - - - - 09 - Operação com Suspensão da Contribuição - Operação com Suspensão da Contribuição - cofins - 1 - - - - - - 49 - Outras Operações de Saída - Outras Operações de Saída - cofins - 1 - - - - - - 50 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno - cofins - 1 - - - - - - 51 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - cofins - 1 - - - - - - 52 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação - cofins - 1 - - - - - - 53 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - cofins - 1 - - - - - - 54 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 55 - Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 56 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 60 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno - cofins - 1 - - - - - - 61 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - cofins - 1 - - - - - - 62 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação - cofins - 1 - - - - - - 63 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - cofins - 1 - - - - - - 64 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 65 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 66 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação - cofins - 1 - - - - - - 67 - Crédito Presumido - Outras Operações - Crédito Presumido - Outras Operações - cofins - 1 - - - - - - 70 - Operação de Aquisição sem Direito a Crédito - Operação de Aquisição sem Direito a Crédito - cofins - 1 - - - - - - 71 - Operação de Aquisição com Isenção - Operação de Aquisição com Isenção - cofins - 1 - - - - - - 72 - Operação de Aquisição com Suspensão - Operação de Aquisição com Suspensão - cofins - 1 - - - - - - 73 - Operação de Aquisição a Alíquota Zero - Operação de Aquisição a Alíquota Zero - cofins - 1 - - - - - - 74 - Operação de Aquisição sem Incidência da Contribuição - Operação de Aquisição sem Incidência da Contribuição - cofins - 1 - - - - - - 75 - Operação de Aquisição por Substituição Tributária - Operação de Aquisição por Substituição Tributária - cofins - 1 - - - - - - 98 - Outras Operações de Entrada - Outras Operações de Entrada - cofins - 1 - - - - - - 99 - Outras Operações - Outras Operações - cofins - 1 - - - - - - - 01 - Operação Tributável com Alíquota Básica - Operação Tributável com Alíquota Básica - pis - 1 - - - - - - 02 - Operação Tributável com Alíquota Diferenciada - Operação Tributável com Alíquota Diferenciada - pis - 1 - - - - - - 03 - Operação Tributável com Alíquota por Unidade de Medida de Produto - Operação Tributável com Alíquota por Unidade de Medida de Produto - pis - 1 - - - - - - 04 - Operação Tributável Monofásica - Revenda a Alíquota Zero - Operação Tributável Monofásica - Revenda a Alíquota Zero - pis - 1 - - - - - - 05 - Operação Tributável por Substituição Tributária - Operação Tributável por Substituição Tributária - pis - 1 - - - - - - 06 - Operação Tributável a Alíquota Zero - Operação Tributável a Alíquota Zero - pis - 1 - - - - - - 07 - Operação Isenta da Contribuição - Operação Isenta da Contribuição - pis - 1 - - - - - - 08 - Operação sem Incidência da Contribuição - Operação sem Incidência da Contribuição - pis - 1 - - - - - - 09 - Operação com Suspensão da Contribuição - Operação com Suspensão da Contribuição - pis - 1 - - - - - - 49 - Outras Operações de Saída - Outras Operações de Saída - pis - 1 - - - - - - 50 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno - pis - 1 - - - - - - 51 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno - pis - 1 - - - - - - 52 - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação - Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação - pis - 1 - - - - - - 53 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - pis - 1 - - - - - - 54 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - pis - 1 - - - - - - 55 - Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - pis - 1 - - - - - - 56 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação - pis - 1 - - - - - - 60 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno - pis - 1 - - - - - - 61 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno - pis - 1 - - - - - - 62 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação - pis - 1 - - - - - - 63 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno - pis - 1 - - - - - - 64 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação - pis - 1 - - - - - - 65 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação - pis - 1 - - - - - - 66 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação - Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação - pis - 1 - - - - - - 67 - Crédito Presumido - Outras Operações - Crédito Presumido - Outras Operações - pis - 1 - - - - - - 70 - Operação de Aquisição sem Direito a Crédito - Operação de Aquisição sem Direito a Crédito - pis - 1 - - - - - - 71 - Operação de Aquisição com Isenção - Operação de Aquisição com Isenção - pis - 1 - - - - - - 72 - Operação de Aquisição com Suspensão - Operação de Aquisição com Suspensão - pis - 1 - - - - - - 73 - Operação de Aquisição a Alíquota Zero - Operação de Aquisição a Alíquota Zero - pis - 1 - - - - - - 74 - Operação de Aquisição sem Incidência da Contribuição - Operação de Aquisição sem Incidência da Contribuição - pis - 1 - - - - - - 75 - Operação de Aquisição por Substituição Tributária - Operação de Aquisição por Substituição Tributária - pis - 1 - - - - - - 98 - Outras Operações de Entrada - Outras Operações de Entrada - pis - 1 - - - - - - 99 - Outras Operações - Outras Operações - pis - 1 - - - - - - - 00 - Entrada com recuperação de crédito - Entrada com recuperação de crédito - ipi - 1 - - - - - - 01 - Entrada tributada com alíquota zero - Entrada tributada com alíquota zero - ipi - 1 - - - - - - 02 - Entrada isenta - Entrada isenta - ipi - 1 - - - - - - 03 - Entrada não-tributada - Entrada não-tributada - ipi - 1 - - - - - - 04 - Entrada imune - Entrada imune - ipi - 1 - - - - - - 05 - Entrada com suspensão - Entrada com suspensão - ipi - 1 - - - - - - 49 - Outras entradas - Outras entradas - ipi - 1 - - - - - - 50 - Saída tributada - Saída tributada - ipi - 1 - - - - - - 51 - Saída tributada com alíquota zero - Saída tributada com alíquota zero - ipi - 1 - - - - - - 52 - Saída isenta - Saída isenta - ipi - 1 - - - - - - 53 - Saída não-tributada - Saída não-tributada - ipi - 1 - - - - - - 54 - Saída imune - Saída imune - ipi - 1 - - - - - - 55 - Saída com suspensão - Saída com suspensão - ipi - 1 - - - - - - 99 - Outras saídas - Outras saídas - ipi - 1 - - - - - - - 00 - Tributada integralmente - Tributada integralmente - icms - 1 - - - - - - 10 - Tributada e com cobrança do ICMS por substituição tributária - Tributada e com cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 20 - Com redução de base de cálculo - Com redução de base de cálculo - icms - 1 - - - - - - 30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária - Isenta ou não tributada e com cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 40 - Isenta - Isenta - icms - 1 - - - - - - 41 - Não tributada - Não tributada - icms - 1 - - - - - - 50 - Suspensão - Suspensão - icms - 1 - - - - - - 51 - Diferimento - Diferimento - icms - 1 - - - - - - 60 - ICMS cobrado anteriormente por substituição tributária - ICMS cobrado anteriormente por substituição tributária - icms - 1 - - - - - 70 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária - Com redução de base de cálculo e cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 90 - Outras - Outras - icms - 1 - - - - - - 101 - Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito - Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito - icms - 1 - - - - - - 102 - Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito - Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito - icms - 1 - - - - - - 103 - Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta - Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta - icms - 1 - - - - - - 201 - Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária - Simples Nacional - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 202 - Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária - Simples Nacional - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 203 - Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária - Simples Nacional - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária - icms - 1 - - - - - - 300 - Simples Nacional - Imune - Simples Nacional - Imune - icms - 1 - - - - - - 400 - Simples Nacional - Não tributada pelo Simples Nacional - Simples Nacional - Não tributada pelo Simples Nacional - icms - 1 - - - - - - 500 - Simples Nacional - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação - Simples Nacional - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação - icms - 1 - - - - - - 900 - Simples Nacional - Outros - Simples Nacional - Outros - icms - 1 - - - - diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 5d7aed1685eb..4da29315dd09 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -6,12 +6,12 @@ - + - + @@ -46,7 +46,7 @@ - + diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index bc031cfd2896..08406e9892d8 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -17,62 +17,78 @@ #along with this program. If not, see . # ############################################################################### -import re - -from l10n_br_base.tools import fiscal from openerp.osv import orm, fields +from openerp import netsvc + +TYPE = [ + ('input', 'Entrada'), + ('output', u'Saída'), +] + +PRODUCT_FISCAL_TYPE = [ + ('service', u'Serviço'), +] +PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] -class l10n_br_account_cfop(orm.Model): - """ CFOP - Código Fiscal de Operações e Prestações """ - _name = 'l10n_br_account.cfop' - _description = 'CFOP' + +class L10n_brAccountFiscalCategory(orm.Model): + _name = 'l10n_br_account.fiscal.category' + _description = 'Categoria Fiscail' _columns = { - 'code': fields.char(u'Código', size=4, required=True), - 'name': fields.char('Nome', size=256, required=True), - 'small_name': fields.char('Nome Reduzido', size=32, required=True), - 'description': fields.text(u'Descrição'), - 'type': fields.selection( - [('input', 'Entrada'), ('output', u'Saída')], 'Tipo', - required=True), - 'parent_id': fields.many2one('l10n_br_account.cfop', 'CFOP Pai'), - 'child_ids': fields.one2many( - 'l10n_br_account.cfop', 'parent_id', 'CFOP Filhos'), - 'internal_type': fields.selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True), + 'code': fields.char(u'Código', size=254, required=True), + 'name': fields.char(u'Descrição', size=254), + 'type': fields.selection(TYPE, 'Tipo'), + 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), + 'property_journal': fields.property( + 'account.journal', type='many2one', relation='account.journal', + string=u"Diário Contábil", method=True, view_load=True, + help=u"Diário utilizado para esta categoria de operação fiscal"), + 'journal_type': fields.selection( + [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), + ('purchase', 'Compras'), + ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', + size=32, required=True), + 'refund_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('journal_type', 'like', journal_type), + ('state', '=', 'approved')]"""), + 'reverse_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('state', '=', 'approved')]"""), + 'fiscal_position_ids': fields.one2many('account.fiscal.position', + 'fiscal_category_id', u'Posições Fiscais'), + 'note': fields.text(u'Observações'), + 'state': fields.selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True), } _defaults = { - 'internal_type': 'normal', + 'state': 'draft', + 'type': 'output', + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, + 'journal_type': 'sale', } _sql_constraints = [ - ('l10n_br_account_cfop_code_uniq', 'unique (code)', - u'Já existe um CFOP com esse código !') + ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', + u'Já existe uma categoria fiscal com esse código !') ] - def name_search(self, cr, user, name, args=None, operator='ilike', - context=None, limit=80): - if not args: - args = [] - if context is None: - context = {} - ids = self.search(cr, user, ['|', ('name', operator, name), - ('code', operator, name)] + args, - limit=limit, context=context) - return self.name_get(cr, user, ids, context) - - def name_get(self, cr, uid, ids, context=None): - if not len(ids): - return [] - if isinstance(ids, (int, long)): - ids = [ids] - reads = self.read(cr, uid, ids, ['name', 'code'], context, - load='_classic_write') - return [(x['id'], (x['code'] and x['code'] or '') + - (x['name'] and ' - ' + x['name'] or '')) for x in reads] + def action_unapproved_draft(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'draft'}) + wf_service = netsvc.LocalService("workflow") + for fc_id in ids: + wf_service.trg_delete( + uid, 'l10n_br_account.fiscal.category', fc_id, cr) + wf_service.trg_create( + uid, 'l10n_br_account.fiscal.category', fc_id, cr) + return True -class l10n_br_account_service_type(orm.Model): +class L10n_brAccountServiceType(orm.Model): _name = 'l10n_br_account.service.type' _description = u'Cadastro de Operações Fiscais de Serviço' _columns = { @@ -104,7 +120,7 @@ def name_get(self, cr, uid, ids, context=None): return res -class l10n_br_account_fiscal_document(orm.Model): +class L10n_brAccountFiscalDocument(orm.Model): _name = 'l10n_br_account.fiscal.document' _description = 'Tipo de Documento Fiscal' _columns = { @@ -114,64 +130,25 @@ class l10n_br_account_fiscal_document(orm.Model): } -class l10n_br_account_fiscal_category(orm.Model): - _name = 'l10n_br_account.fiscal.category' - _description = 'Categoria Fiscail' - _columns = { - 'code': fields.char(u'Código', size=254, required=True), - 'name': fields.char(u'Descrição', size=254), - 'type': fields.selection( - [('input', 'Entrada'), ('output', u'Saída')], 'Tipo'), - 'property_journal': fields.property( - 'account.journal', type='many2one', relation='account.journal', - string=u"Diário Contábil", method=True, view_load=True, - help=u"Diário utilizado para esta categoria de operação fiscal"), - 'fiscal_type': fields.selection( - [('product', 'Produto'), ('service', u'Serviço')], - 'Tipo Fiscal', required=True), - 'journal_type': fields.selection( - [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), - ('purchase', 'Compras'), - ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', - size=32, required=True), - 'refund_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', - u'Categoria Fiscal de Devolução', - domain="[('type', '!=', type), ('fiscal_type', '=', fiscal_type), " - "('journal_type', 'like', journal_type)]"), - 'fiscal_position_ids': fields.one2many('account.fiscal.position', - 'fiscal_category_id', - u'Posições Fiscais'), - 'note': fields.text(u'Observações') - } - _defaults = { - 'type': 'output', - 'fiscal_type': 'product', - 'journal_type': 'sale' - } - - -class l10n_br_account_document_serie(orm.Model): +class L10n_brAccountDocumentSerie(orm.Model): _name = 'l10n_br_account.document.serie' _description = 'Serie de documentos fiscais' _columns = { 'code': fields.char(u'Código', size=3, required=True), 'name': fields.char(u'Descrição', size=64, required=True), + 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), 'fiscal_document_id': fields.many2one( 'l10n_br_account.fiscal.document', 'Documento Fiscal', required=True), 'company_id': fields.many2one( 'res.company', 'Empresa', required=True), 'active': fields.boolean('Ativo'), - 'fiscal_type': fields.selection( - [('product', 'Produto'), ('service', u'Serviço')], - 'Tipo Fiscal', required=True), 'internal_sequence_id': fields.many2one( 'ir.sequence', u'Sequência Interna') } _defaults = { 'active': True, - 'fiscal_type': 'product' + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, } def create_sequence(self, cr, uid, vals, context=None): @@ -193,7 +170,7 @@ def create(self, cr, uid, vals, context=None): not vals['internal_sequence_id']: vals.update({'internal_sequence_id': self.create_sequence( cr, uid, vals, context)}) - result = super(l10n_br_account_document_serie, self).create( + result = super(L10n_brAccountDocumentSerie, self).create( cr, uid, vals, context) if result: company = self.pool.get('res.company').browse( @@ -316,7 +293,7 @@ def unlink(self, cr, uid, ids, context=None): return True -class l10n_br_account_partner_fiscal_type(orm.Model): +class L10n_brAccountPartnerFiscalType(orm.Model): _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' _columns = { @@ -359,7 +336,7 @@ def name_get(self, cr, uid, ids, context=None): return res -class l10n_br_tax_definition_template(orm.Model): +class L10n_brTaxDefinitionTemplate(orm.Model): _name = 'l10n_br_tax.definition.template' _columns = { 'tax_id': fields.many2one( @@ -377,7 +354,7 @@ def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): return {'value': {'tax_domain': tax_domain}} -class l10n_br_tax_definition(orm.Model): +class L10n_brTaxDefinition(orm.Model): _name = 'l10n_br_tax.definition' _columns = { 'tax_id': fields.many2one('account.tax', 'Imposto', required=True), @@ -396,170 +373,3 @@ def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): tax_domain = self.pool.get('account.tax').read( cr, uid, tax_id, ['domain'], context=context)['domain'] return {'value': {'tax_domain': tax_domain}} - - -class l10n_br_account_document_related(orm.Model): - _name = 'l10n_br_account.document.related' - _columns = { - 'invoice_id': fields.many2one( - 'account.invoice', 'Documento Fiscal', - ondelete='cascade', select=True), - 'invoice_related_id': fields.many2one( - 'account.invoice', 'Documento Fiscal', - ondelete='cascade', select=True), - 'document_type': fields.selection( - [('nf', 'NF'), ('nfe', 'NF-e'), ('cte', 'CT-e'), - ('nfrural', 'NF Produtor'), ('cf', 'Cupom Fiscal')], - 'Tipo Documento', required=True), - 'access_key': fields.char('Chave de Acesso', size=44), - 'serie': fields.char(u'Série', size=12), - 'internal_number': fields.char(u'Número', size=32), - 'state_id': fields.many2one( - 'res.country.state', 'Estado', - domain="[('country_id.code', '=', 'BR')]"), - 'cnpj_cpf': fields.char('CNPJ/CPF', size=18), - 'cpfcnpj_type': fields.selection( - [('cpf', 'CPF'), ('cnpj', 'CNPJ')], 'Tipo Doc.'), - 'inscr_est': fields.char('Inscr. Estadual/RG', size=16), - 'date': fields.date('Data'), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', 'Documento'), - } - _defaults = { - 'cpfcnpj_type': 'cnpj', - } - - def _check_cnpj_cpf(self, cr, uid, ids): - - for inv_related in self.browse(cr, uid, ids): - if not inv_related.cnpj_cpf: - continue - - if inv_related.cpfcnpj_type == 'cnpj': - if not fiscal.validate_cnpj(inv_related.cnpj_cpf): - return False - elif not fiscal.validate_cpf(inv_related.cnpj_cpf): - return False - - return True - - def _check_ie(self, cr, uid, ids): - """Checks if company register number in field insc_est is valid, - this method call others methods because this validation is State wise - - :Return: True or False. - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user’s ID for security checks. - - 'ids': List of partner objects IDs. - """ - for inv_related in self.browse(cr, uid, ids): - if not inv_related.inscr_est \ - or inv_related.inscr_est == 'ISENTO': - continue - - uf = inv_related.state_id and \ - inv_related.state_id.code.lower() or '' - - try: - mod = __import__( - 'l10n_br_base.tools.fiscal', globals(), locals(), 'fiscal') - - validate = getattr(mod, 'validate_ie_%s' % uf) - if not validate(inv_related.inscr_est): - return False - except AttributeError: - if not fiscal.validate_ie_param(uf, inv_related.inscr_est): - return False - - return True - - _constraints = [ - (_check_cnpj_cpf, u'CNPJ/CPF do documento relacionado é invalido!', - ['cnpj_cpf']), - (_check_ie, u'Inscrição Estadual do documento fiscal inválida!', - ['inscr_est']), - ] - - def onchange_invoice_related_id(self, cr, uid, ids, - invoice_related_id=False, context=None): - result = {'value': {}} - - if not invoice_related_id: - return result - - inv_related = self.pool.get('account.invoice').browse( - cr, uid, invoice_related_id) - - if not inv_related.fiscal_document_id: - return result - - if inv_related.fiscal_document_id.code == '01': - result['value']['document_type'] = 'nf' - elif inv_related.fiscal_document_id.code == '04': - result['value']['document_type'] = 'nfrural' - elif inv_related.fiscal_document_id.code == '55': - result['value']['document_type'] = 'nfe' - elif inv_related.fiscal_document_id.code == '57': - result['value']['document_type'] = 'cte' - elif inv_related.fiscal_document_id.code in ('2B', '2C', '2D'): - result['value']['document_type'] = 'cf' - else: - result['value']['document_type'] = False - - if inv_related.fiscal_document_id.code in ('55', '57'): - result['value']['access_key'] = inv_related.nfe_access_key - result['value']['serie'] = False - result['value']['serie'] = False - result['value']['internal_number'] = False - result['value']['state_id'] = False - result['value']['cnpj_cpf'] = False - result['value']['cpfcnpj_type'] = False - result['value']['date'] = False - result['value']['fiscal_document_id'] = False - result['value']['inscr_est'] = False - - if inv_related.fiscal_document_id.code in ('01', '04'): - result['value']['access_key'] = False - if inv_related.issuer == '0': - result['value']['serie'] = inv_related.document_serie_id and \ - inv_related.document_serie_id.code or False - else: - result['value']['serie'] = inv_related.vendor_serie - - result['value']['internal_number'] = inv_related.internal_number - result['value']['state_id'] = inv_related.partner_id and \ - inv_related.partner_id.state_id and \ - inv_related.partner_id.state_id.id or False - result['value']['cnpj_cpf'] = inv_related.partner_id and \ - inv_related.partner_id.cnpj_cpf or False - - if inv_related.partner_id.is_company: - result['value']['cpfcnpj_type'] = 'cnpj' - else: - result['value']['cpfcnpj_type'] = 'cpf' - - result['value']['date'] = inv_related.date_invoice - result['value']['fiscal_document_id'] = inv_related.fiscal_document_id and \ - inv_related.fiscal_document_id.id or False - - if inv_related.fiscal_document_id.code == '04': - result['value']['inscr_est'] = inv_related.partner_id and \ - inv_related.partner_id.inscr_est or False - - return result - - def onchange_mask_cnpj_cpf(self, cr, uid, ids, cpfcnpj_type, cnpj_cpf, - context=None): - result = {'value': {}} - if cnpj_cpf: - val = re.sub('[^0-9]', '', cnpj_cpf) - if cpfcnpj_type == 'cnpj' and len(val) == 14: - cnpj_cpf = "%s.%s.%s/%s-%s"\ - % (val[0:2], val[2:5], val[5:8], val[8:12], val[12:14]) - elif cpfcnpj_type == 'cpf' and len(val) == 11: - cnpj_cpf = "%s.%s.%s-%s"\ - % (val[0:3], val[3:6], val[6:9], val[9:11]) - result['value'].update({'cnpj_cpf': cnpj_cpf}) - return result From 4100420df44870254fd0fce95a25dc79de25e243 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 10:45:18 -0200 Subject: [PATCH 0355/1549] =?UTF-8?q?Editado=20objetos=20e=20migrado=20vis?= =?UTF-8?q?=C3=B5es=20do=20m=C3=B3dulo=20l10n=5Fbr=5Faccount=20para=20o=20?= =?UTF-8?q?l10n=5Fbr=5Faccount=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 4 +- l10n_br_account/l10n_br_account_view.xml | 822 +++++++++++------------ 2 files changed, 396 insertions(+), 430 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 08406e9892d8..1aac055edaf5 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -189,7 +189,7 @@ def create(self, cr, uid, vals, context=None): return result -class l10n_br_account_invoice_invalid_number(orm.Model): +class L10n_brAccountInvoiceInvalidNumber(orm.Model): _name = 'l10n_br_account.invoice.invalid.number' _description = u'Inutilização de Faixa de Numeração' @@ -305,7 +305,7 @@ class L10n_brAccountPartnerFiscalType(orm.Model): } -class l10n_br_account_cnae(orm.Model): +class L10n_brAccountCNAE(orm.Model): _name = 'l10n_br_account.cnae' _description = 'Cadastro de CNAE' _columns = { diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 68c35af04195..baa0cd8ab7fe 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -2,453 +2,419 @@ - + - - l10n_br_account.cfop.name - l10n_br_account.cfop + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document -
- - - - - - - - - + + + +
- - l10n_br_account.cfop.search - l10n_br_account.cfop - - - - - - - - - - - - - - - - - - l10n_br_account.cfop - l10n_br_account.cfop - - - - - - - - - - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - -
- - - - - -
- - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - - - - - - - - - - - l10n_br_account.fiscal.category - l10n_br_account.fiscal.category - -
- - - - - - - - - - - - - -
- - - l10n_br_account.fiscal.category - l10n_br_account.fiscal.category - - - - - - - - - - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - -
- - - - - - - - -
- - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - - - - - - - - - - - l10n_br_account.document.serie - l10n_br_account.document.serie - -
- - - - - - - - - -
+ + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + + + + + + + + - - l10n_br_account.document.serie - l10n_br_account.document.serie - - - - - - - - - - - - - - l10n_br_account.invoice.invalid.number.form - l10n_br_account.invoice.invalid.number - -
-
-
+ + l10n_br_account.fiscal.category.form + l10n_br_account.fiscal.category + + +
+
+ + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + - -
-
+ + + + + +
+
+ + + l10n_br_account.fiscal.category.search + l10n_br_account.fiscal.category + + + + + + + + + + + + + + + + + + l10n_br_account.fiscal.category.tree + l10n_br_account.fiscal.category + + + + + + + + + + + + + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + +
+ + + + + + + + +
+ + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + + + + + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + +
+ + + + + + + + + +
- - l10n_br_account.invoice.invalid.number.tree - l10n_br_account.invoice.invalid.number - - - + + l10n_br_account.document.serie + l10n_br_account.document.serie + + + + + + + + + + + + + l10n_br_account.invoice.invalid.number.form + l10n_br_account.invoice.invalid.number + +
+
+
+ + - - - - - - - - l10n_br_account.cnae.form - l10n_br_account.cnae - - - - - - - - - - - - - l10n_br_account.cnae.tree - l10n_br_account.cnae - - - - - - - - - - - - l10n_br_account.cnae.structure - l10n_br_account.cnae - child_ids - - - - - - - - - - - - l10n_br_account.cfop.structure - l10n_br_account.cfop - child_ids - - - - - - - - - - - l10n_br_account.service.type.form - l10n_br_account.service.type - -
- - - - - - -
-
-
- - - l10n_br_account.service.type.tree - l10n_br_account.service.type - - - - - - - - - - - l10n_br_account.service.type.structure - l10n_br_account.service.type - child_ids - - - - - - - - - - - l10n_br_tax.definition.form - l10n_br_tax.definition - -
- - - - - -
- - - l10n_br_tax.definition.tree - l10n_br_tax.definition - - - - - - - - - - - CFOP - ir.actions.act_window - l10n_br_account.cfop - tree,form - form - - + +
+ +
+
- - Documento Fiscal - ir.actions.act_window - l10n_br_account.fiscal.document - tree,form - form - - - - - Categoria Fiscal - ir.actions.act_window - l10n_br_account.fiscal.category - tree,form - form - - - - - Document Serie - ir.actions.act_window - l10n_br_account.document.serie - tree,form - form - - - - - Inutilizar Faixa de Numeração - ir.actions.act_window - l10n_br_account.invoice.invalid.number - tree,form - form - - - - - Tipo Fiscal de Parceiro - ir.actions.act_window - l10n_br_account.partner.fiscal.type - tree,form - form - - - - - CNAE - ir.actions.act_window - l10n_br_account.cnae - tree,form - form - - - - - Estrutura do CNAE - ir.actions.act_window - l10n_br_account.cnae - tree - [('parent_id','=',False)] - - - - - Estrutura do CFOP - ir.actions.act_window - l10n_br_account.cfop - tree - [('parent_id','=',False)] - - - - - Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree,form - form - - - - - Estrutura de Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree - [('parent_id','=',False)] - - - - - - - - - - - - - - - - - - - - + + l10n_br_account.invoice.invalid.number.tree + l10n_br_account.invoice.invalid.number + + + + + + + + + + + + + + + l10n_br_account.cnae.form + l10n_br_account.cnae + +
+ + + + + + + +
+ + + l10n_br_account.cnae.tree + l10n_br_account.cnae + + + + + + + + + + + + l10n_br_account.cnae.structure + l10n_br_account.cnae + child_ids + + + + + + + + + + + + l10n_br_account.service.type.form + l10n_br_account.service.type + +
+ + + + + + +
+
+
- - - - - - - + + l10n_br_account.service.type.tree + l10n_br_account.service.type + + + + + + + + + + + l10n_br_account.service.type.structure + l10n_br_account.service.type + child_ids + + + + + + + + + + + l10n_br_tax.definition.form + l10n_br_tax.definition + +
+ + + + + +
+ + + l10n_br_tax.definition.tree + l10n_br_tax.definition + + + + + + + + + + + Documento Fiscal + ir.actions.act_window + l10n_br_account.fiscal.document + tree,form + form + + + + + Categoria Fiscal + ir.actions.act_window + l10n_br_account.fiscal.category + tree,form + form + + + + + + Document Serie + ir.actions.act_window + l10n_br_account.document.serie + tree,form + form + + + + + Inutilizar Faixa de Numeração + ir.actions.act_window + l10n_br_account.invoice.invalid.number + tree,form + form + + + + + Tipo Fiscal de Parceiro + ir.actions.act_window + l10n_br_account.partner.fiscal.type + tree,form + form + + + + + CNAE + ir.actions.act_window + l10n_br_account.cnae + tree,form + form + + + + + Estrutura do CNAE + ir.actions.act_window + l10n_br_account.cnae + tree + [('parent_id','=',False)] + + + + + Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree,form + form + + + + + Estrutura de Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree + [('parent_id','=',False)] + + + + + + + + + + + + + + + + + + + + + + +
From a141e5d6c955f90bb221ccaa1f08168350d5cfbd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 10:47:42 -0200 Subject: [PATCH 0356/1549] =?UTF-8?q?Dividido=20heran=C3=A7a=20do=20objeto?= =?UTF-8?q?=20de=20produto=20entre=20os=20m=C3=B3dulos=20l10n=5Fbr=5Faccou?= =?UTF-8?q?nt=20e=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Faccount=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/product.py | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 50db9d65586a..5fc9e10d06db 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -18,48 +18,32 @@ ############################################################################### from openerp.osv import orm, fields +from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT -class product_template(orm.Model): +class ProductTemplate(orm.Model): _inherit = 'product.template' _columns = { 'fiscal_category_default_ids': fields.one2many( 'l10n_br_account.product.category', 'product_tmpl_id', u'Categoria de Operação Fiscal Padrões'), - 'fiscal_type': fields.selection( - [('product', 'Produto'), ('service', 'Serviço')], - 'Tipo Fiscal', requeried=True), - 'is_on_service_invoice': fields.boolean( - 'On Service Invoice?', help="True if invoiced along with service"), - 'origin': fields.selection( - [('0', u'0 - Nacional, exceto as indicadas nos códigos 3 a 5'), - ('1', u'1 - Estrangeira - Importação direta, exceto a indicada no código 6'), - ('2', u'2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7'), - ('3', u'3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% (quarenta por cento)'), - ('4', u'4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam o Decreto-Lei nº 288/67, e as Leis nºs 8.248/91, 8.387/91, 10.176/01 e 11.484/07'), - ('5', u'5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40% (quarenta por cento)'), - ('6', u'6 - Estrangeira - Importação direta, sem similar nacional, constante em lista de Resolução CAMEX'), - ('7', u'7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista de Resolução CAMEX')], - 'Origem'), 'service_type_id': fields.many2one( 'l10n_br_account.service.type', u'Tipo de Serviço'), + 'fiscal_type': fields.selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', requeried=True), } _defaults = { - 'fiscal_type': 'product', - 'is_on_service_invoice': False, - 'origin': '0' + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT } -class l10n_br_account_product_fiscal_category(orm.Model): +class L10n_brAccountProductFiscalCategory(orm.Model): _name = 'l10n_br_account.product.category' _columns = { 'fiscal_category_source_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria de Origem'), + 'l10n_br_account.fiscal.category', 'Categoria de Origem'), 'fiscal_category_destination_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria de Destino'), - 'product_tmpl_id': fields.many2one('product.template', 'Produto', - ondelete='cascade') + 'l10n_br_account.fiscal.category', 'Categoria de Destino'), + 'product_tmpl_id': fields.many2one( + 'product.template', 'Produto', ondelete='cascade') } From 400993ba2c2de1161ccad86c73152a7db58973dc Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 10:49:31 -0200 Subject: [PATCH 0357/1549] =?UTF-8?q?Dividido=20vis=C3=B5es=20herdadas=20d?= =?UTF-8?q?o=20objeto=20de=20produto=20entre=20os=20m=C3=B3dulos=20l10n=5F?= =?UTF-8?q?br=5Faccount=20e=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Faccount?= =?UTF-8?q?=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/product_view.xml | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 18367c881403..48106c3ba419 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -7,22 +7,12 @@ product.product - - - - - - - - - - - + + - + @@ -39,9 +29,6 @@ product.template - - - @@ -56,4 +43,4 @@
- + From 3cb71c8ebcb5e94989a9b915e1c3ed3ea8fc7f8e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:02:53 -0200 Subject: [PATCH 0358/1549] =?UTF-8?q?Incluido=20novos=20arquivos=20do=20?= =?UTF-8?q?=C3=BAtimo=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/res_company.py | 152 ++++++--------------------------- 1 file changed, 26 insertions(+), 126 deletions(-) diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index 99dda029c18d..58b2970287fd 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -20,148 +20,48 @@ from openerp.osv import orm, fields from openerp.addons import decimal_precision as dp +COMPANY_FISCAL_TYPE = [ + ('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal') +] + +COMPANY_FISCAL_TYPE_DEFAULT = '3' + SQL_CONSTRAINTS = [ ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id, company_id)', u'Imposto já existente nesta empresa!') ] -class res_company(orm.Model): - _inherit = 'res.company' - - def _get_taxes(self, cr, uid, ids, name, arg, context=None): - result = {} - for company in self.browse(cr, uid, ids, context=context): - result[company.id] = {'product_tax_ids': [], - 'service_tax_ids': []} - product_tax_ids = [tax.tax_id.id for tax in - company.product_tax_definition_line] - service_tax_ids = [tax.tax_id.id for tax in - company.service_tax_definition_line] - product_tax_ids.sort() - service_tax_ids.sort() - result[company.id]['product_tax_ids'] = product_tax_ids - result[company.id]['service_tax_ids'] = service_tax_ids - return result - - def _get_l10n_br_data(self, cr, uid, ids, field_names, arg, context=None): - return super(res_company,self)._get_address_data(cr, uid, ids, field_names, arg, context=context) - - def _set_l10n_br_data(self, cr, uid, company_id, name, value, arg, context=None): - return super(res_company,self)._set_address_data(cr, uid, company_id, name, value, arg, context=context) +class ResCompany(orm.Model): + _inherit = 'res.company' _columns = { - 'partner_fiscal_type_id': fields.function(_get_l10n_br_data, fnct_inv=_set_l10n_br_data, type='many2one', relation='l10n_br_account.partner.fiscal.type', string="Tipo Fiscal da Empresa", multi='l10n_br'), - 'fiscal_type': fields.selection([ - ('1', 'Simples Nacional'), - ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), - ('3', 'Regime Normal')], - 'Regime Tributário', required=True), - 'annual_revenue': fields.float( - 'Faturamento Anual', required=True, - digits_compute=dp.get_precision('Account'), - help="Faturamento Bruto dos últimos 12 meses"), - 'product_invoice_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal'), 'service_invoice_id': fields.many2one( 'l10n_br_account.fiscal.document', 'Documento Fiscal'), - 'document_serie_product_ids': fields.many2many( - 'l10n_br_account.document.serie', - 'res_company_l10n_br_account_document_serie', 'company_id', - 'document_serie_product_id', 'Série de Documentos Fiscais', - domain="[('company_id', '=', active_id),('active','=',True)," - "('fiscal_type','=','product')]"), 'document_serie_service_id': fields.many2one( - 'l10n_br_account.document.serie', 'Série Fiscais para Serviço', + 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', domain="[('company_id', '=', active_id),('active','=',True)," "('fiscal_type','=','service')]"), - 'cnae_main_id': fields.many2one('l10n_br_account.cnae', - 'CNAE Primário'), + 'annual_revenue': fields.float( + 'Faturamento Anual', required=True, + digits_compute=dp.get_precision('Account'), + help="Faturamento Bruto dos últimos 12 meses"), + 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, + 'Regime Tributário', required=True), + 'cnae_main_id': fields.many2one( + 'l10n_br_account.cnae', 'CNAE Primário'), 'cnae_secondary_ids': fields.many2many( - 'l10n_br_account.cnae', - 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', - 'CNAE Segundários'), - 'nfe_version': fields.selection([('110', '1.10'), - ('200', '2.00')], 'Versão NFe', - required=True), - 'nfe_import_folder': fields.char('Pasta de Importação', size=254), - 'nfe_export_folder': fields.char('Pasta de Exportação', size=254), - 'nfe_backup_folder': fields.char('Pasta de Backup', size=254), - 'nfse_version': fields.selection([('100', '1.00')], 'Versão NFse', - required=True), - 'nfse_import_folder': fields.char('Pasta de Origem', size=254), - 'nfse_export_folder': fields.char('Pasta de Destino', size=254), - 'nfse_backup_folder': fields.char('Pasta de Backup', size=254), - 'product_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.company.product', - 'company_id', 'Taxes Definitions'), - 'product_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Product Taxes', multi='all'), - 'service_tax_definition_line': fields.one2many( - 'l10n_br_tax.definition.company.service', - 'company_id', 'Taxes Definitions'), - 'service_tax_ids': fields.function( - _get_taxes, method=True, type='many2many', - relation='account.tax', string='Product Taxes', multi='all'), - 'in_invoice_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria Fiscal de Produto Padrão de Entrada', - domain="[('journal_type','=','purchase')," - " ('fiscal_type','=','product'), ('type','=','input')]"), - 'out_invoice_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria Fiscal de Produto Padrão de Saida', - domain="[('journal_type','=','sale'), " - " ('fiscal_type','=','product'), ('type','=','output')]"), - 'in_refund_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Devolução Entrada', - domain="[('journal_type','=','purchase_refund')," - " ('fiscal_type','=','product'), ('type','=','output')]"), - 'out_refund_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Devolução Saida', - domain="[('journal_type','=','sale_refund')," - " ('fiscal_type','=','product'), ('type','=','input')]"), - 'in_invoice_service_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria Fiscal Padrão de Aquisição de Serviço', - domain="[('journal_type','=','purchase')," - " ('fiscal_type','=','service'), ('type','=','input')]"), - 'out_invoice_service_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', - 'Categoria Fiscal Padrão de Prestação de Serviço', - domain="[('journal_type','=','sale')," - " ('fiscal_type','=','service'), ('type','=','output')]"), + 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', + 'company_id', 'cnae_id', 'CNAE Segundários'), 'ecnpj_a1_file': fields.binary('Arquivo e-CNPJ A1'), 'ecnpj_a1_password': fields.char('Senha e-CNPJ A1', size=64), - 'nfe_a1_file': fields.binary('Arquivo NFe A1'), - 'nfe_a1_password': fields.char('Senha NFe A1', size=64) + 'fiscal_rule_parent_id': fields.many2one( + 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', + domain="[('parent_id', '=', False)]"), } _defaults = { - 'fiscal_type': '3', - 'nfe_version': '200', - 'nfse_version': '100', - 'annual_revenue': 0.0 - } - - -class l10n_br_tax_definition_company_product(orm.Model): - _name = 'l10n_br_tax.definition.company.product' - _inherit = 'l10n_br_tax.definition' - _columns = { - 'company_id': fields.many2one( - 'res.company', 'Company', select=True) - } - _sql_constraints = SQL_CONSTRAINTS - - -class l10n_br_tax_definition_company_service(orm.Model): - _name = 'l10n_br_tax.definition.company.service' - _inherit = 'l10n_br_tax.definition' - _columns = { - 'company_id': fields.many2one( - 'res.company', 'Company', select=True) + 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, + 'annual_revenue': 0.00, } - _sql_constraints = SQL_CONSTRAINTS From 047a6cc0c3226d507b5dc598f05cc6198b9533c9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:05:51 -0200 Subject: [PATCH 0359/1549] =?UTF-8?q?Dividido=20vis=C3=B5es=20herdadas=20d?= =?UTF-8?q?o=20objeto=20de=20empresa=20entre=20os=20m=C3=B3dulos=20l10n=5F?= =?UTF-8?q?br=5Faccount=20e=20o=20novo=20m=C3=B3dulo=20l10n=5Fbr=5Faccount?= =?UTF-8?q?=5Fproduct=20l10n=5Fbr=5Faccount=5Fservice=20e=20l10n=5Fbr=5Fac?= =?UTF-8?q?ccount=5Fproduct=5Fservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/res_company_view.xml | 118 ++------------------------- 1 file changed, 7 insertions(+), 111 deletions(-) diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml index 56d106e9b7c2..3843286ffedb 100644 --- a/l10n_br_account/res_company_view.xml +++ b/l10n_br_account/res_company_view.xml @@ -2,18 +2,18 @@ - + l10n_br_account.company res.company - + - + @@ -21,69 +21,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -92,56 +39,5 @@ - - l10n_br_tax.definition.company.product.form - l10n_br_tax.definition.company.product - -
- - - - - -
- - - l10n_br_tax.definition.company.product.tree - l10n_br_tax.definition.company.product - - - - - - - - - - - l10n_br_tax.definition.company.service.form - l10n_br_tax.definition.company.service - -
- - - - - -
- - - l10n_br_tax.definition.company.service.tree - l10n_br_tax.definition.company.service - - - - - - - - -
From 615e1ba31b1d239f5cac5d872af8a9b681425625 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:35:31 -0200 Subject: [PATCH 0360/1549] =?UTF-8?q?Dividida=20heran=C3=A7a=20do=20objeto?= =?UTF-8?q?=20de=20parceiro=20entre=20os=20m=C3=B3dulos=20l10n=5Fbr=5Facco?= =?UTF-8?q?unt=20e=20os=20novos=20m=C3=B3dulos=20l10n=5Fbr=5Faccount=5Fpro?= =?UTF-8?q?duct,=20l10n=5Fbr=5Faccount=5Fservice=20e=20l10n=5Fbr=5Facccoun?= =?UTF-8?q?t=5Fproduct=5Fservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/res_partner.py | 85 +++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 37 deletions(-) diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index 8e6839f68aa4..81b2b4e61f0c 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -17,31 +17,40 @@ #along with this program. If not, see . # ############################################################################### -from osv import osv, fields +from openerp.osv import orm, fields FISCAL_POSITION_COLUMNS = { - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), - 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', - 'Categoria Fiscal'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo'), - 'type_tax_use': fields.selection([('sale', 'Sale'), - ('purchase', 'Purchase'), - ('all', 'All')], 'Tax Application'), + 'name': fields.char('Fiscal Position', size=128, required=True), + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal'), 'fiscal_category_fiscal_type': fields.related( 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, relation='l10n_br_account.fiscal.category', store=True, string='Fiscal Type'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo'), + 'type_tax_use': fields.selection( + [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], + 'Tax Application'), 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', - help="Caso seja marcada essa opção, \ - será incluido o IPI na base de \ - calculo do ICMS.")} + help="""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS."""), + 'state': fields.selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True), +} + +FISCAL_POSITION_DEFAULTS = { + 'state': 'draft', +} -class account_fiscal_position_template(osv.Model): +class AccountFiscalPositionTemplate(orm.Model): _inherit = 'account.fiscal.position.template' _columns = FISCAL_POSITION_COLUMNS + _defaults = FISCAL_POSITION_DEFAULTS def onchange_type(self, cr, uid, ids, type=False, context=None): type_tax = {'input': 'purhcase', 'output': 'sale'} @@ -93,16 +102,17 @@ def generate_fiscal_position(self, cr, uid, chart_temp_id, fp_ids = self.search(cr, uid, [('chart_template_id', '=', chart_temp_id)]) for position in self.browse(cr, uid, fp_ids, context=context): - new_fp = obj_fiscal_position.create( - cr, uid, {'company_id': company_id, - 'name': position.name, - 'note': position.note, - 'type': position.type, - 'type_tax_use': position.type_tax_use, - 'cfop_id': position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) + new_fp = obj_fiscal_position.create(cr, uid, + {'company_id': company_id, + 'name': position.name, + 'note': position.note, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': position.cfop_id and position.cfop_id.id or False, + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) for tax in position.tax_ids: obj_tax_fp.create(cr, uid, { 'tax_src_id': tax.tax_src_id and tax_template_ref.get(tax.tax_src_id.id, False), @@ -121,7 +131,7 @@ def generate_fiscal_position(self, cr, uid, chart_temp_id, return True -class account_fiscal_position_tax_template(osv.Model): +class AccountFiscalPositionTaxTemplate(orm.Model): _inherit = 'account.fiscal.position.tax.template' _columns = { 'tax_src_id': fields.many2one('account.tax.template', 'Tax Source'), @@ -161,9 +171,10 @@ def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, context=context) -class account_fiscal_position(osv.Model): +class AccountFiscalPosition(orm.Model): _inherit = 'account.fiscal.position' _columns = FISCAL_POSITION_COLUMNS + _defaults = FISCAL_POSITION_DEFAULTS def onchange_type(self, cr, uid, ids, type=False, context=None): type_tax = {'input': 'purchase', 'output': 'sale'} @@ -179,6 +190,7 @@ def onchange_fiscal_category_id(self, cr, uid, ids, return {'value': {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} + #TODO - Refatorar para trocar os impostos def map_tax_code(self, cr, uid, product_id, fiscal_position, company_id=False, tax_ids=False, context=None): @@ -191,7 +203,7 @@ def map_tax_code(self, cr, uid, product_id, fiscal_position, product = self.pool.get('product.product').browse( cr, uid, product_id, context=context) - fclassificaion = product.property_fiscal_classification + fclassificaion = product.ncm_id if context.get('type_tax_use') == 'sale': @@ -283,16 +295,16 @@ def map_tax(self, cr, uid, fposition_id, taxes, context=None): return list(set(result)) -class account_fiscal_position_tax(osv.Model): +class AccountFiscalPositionTax(orm.Model): _inherit = 'account.fiscal.position.tax' _columns = { 'tax_src_id': fields.many2one('account.tax', 'Tax Source'), - 'tax_code_src_id': fields.many2one('account.tax.code', - u'Código Taxa Origem'), - 'tax_src_domain': fields.related('tax_src_id', 'domain', - type='char'), - 'tax_code_dest_id': fields.many2one('account.tax.code', - 'Replacement Tax Code') + 'tax_code_src_id': fields.many2one( + 'account.tax.code', u'Código Taxa Origem'), + 'tax_src_domain': fields.related( + 'tax_src_id', 'domain', type='char'), + 'tax_code_dest_id': fields.many2one( + 'account.tax.code', 'Replacement Tax Code') } def _tax_domain(self, cr, uid, ids, tax_src_id=False, @@ -323,11 +335,10 @@ def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, context=context) -class res_partner(osv.Model): +class ResPartner(orm.Model): _inherit = 'res.partner' _columns = { 'partner_fiscal_type_id': fields.many2one( - 'l10n_br_account.partner.fiscal.type', - 'Tipo Fiscal do Parceiro', - domain="[('is_company','=',is_company)]") + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', + domain="[('is_company', '=', is_company)]") } From 4dad6d66b8cbe3d5a4f32ba1c87e18e356d278b0 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:38:31 -0200 Subject: [PATCH 0361/1549] =?UTF-8?q?Refatorado=20vis=C3=B5es=20de=20parce?= =?UTF-8?q?iro=20no=20m=C3=B3dulo=20l10n=5Fbr=5Faccount=20e=20criado=20nov?= =?UTF-8?q?as=20vis=C3=B5es=20de=20parceiro=20no=20=20m=C3=B3dulo=20l10n?= =?UTF-8?q?=5Fbr=5Faccount=5Fproduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/res_partner_view.xml | 247 +++++++++++++-------------- 1 file changed, 119 insertions(+), 128 deletions(-) diff --git a/l10n_br_account/res_partner_view.xml b/l10n_br_account/res_partner_view.xml index b49ea21730ba..6861c5ea69bb 100644 --- a/l10n_br_account/res_partner_view.xml +++ b/l10n_br_account/res_partner_view.xml @@ -3,160 +3,151 @@ - l10n_br_account.fiscal.position.template.form - account.fiscal.position.template - - form - + l10n_br_account.fiscal.position.template.form + account.fiscal.position.template + +
- - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + +
+ + + + + +
- - - - - + + + + - - - - -
- - - - + + + + +
+ + + +
-
- +
+ -
-
+
+
+ + + l10n_br_account.fiscal.position.tree + account.fiscal.position + + + + + + + - l10n_br_account.fiscal.position.form - account.fiscal.position - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- + l10n_br_account.fiscal.position.form + account.fiscal.position + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ -
-
+
+ - + l10n_br_account.partner.form res.partner - + - - l10n_br_account.partner.form3 - res.partner - - 33 - - - - - - - - - - - - From 78ee0030cbceb1b96abe4dd5866da0252fcd1665 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:41:02 -0200 Subject: [PATCH 0362/1549] =?UTF-8?q?Dividido=20heran=C3=A7a=20dos=20objet?= =?UTF-8?q?os=20no=20arquivo=20l10n=5Fbr=5Faccount/account.py=20e=20criado?= =?UTF-8?q?=20novo=20arquivo=20l10n=5Fbr=5Faccount=5Fproduct/account.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 92 +++++++------------------------------- 1 file changed, 17 insertions(+), 75 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index b682040e1470..e36da4116c2b 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -20,34 +20,21 @@ from openerp.osv import orm, fields -class account_journal(orm.Model): +class AccountJournal(orm.Model): _inherit = 'account.journal' _columns = { 'revenue_expense': fields.boolean('Gera Financeiro') } -class account_tax_computation(orm.Model): - """ Implement computation method in taxes """ +class AccountTaxComputation(orm.Model): _name = 'account.tax.computation' _columns = { 'name': fields.char('Name', size=64) } -class account_payment_term(orm.Model): - _inherit = 'account.payment.term' - _columns = { - 'indPag': fields.selection( - [('0', u'Pagamento à Vista'), ('1', u'Pagamento à Prazo'), - ('2', 'Outros')], 'Indicador de Pagamento'), - } - _defaults = { - 'indPag': '1', - } - - -class account_tax(orm.Model): +class AccountTax(orm.Model): _inherit = 'account.tax' def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, @@ -56,13 +43,14 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, for tax in taxes: if tax.get('type') == 'weight' and product: - product_read = self.pool.get('product.product').read(cr, uid, product, ['weight_net']) + product_read = self.pool.get('product.product').read( + cr, uid, product, ['weight_net']) tax['amount'] = round((product_qty * product_read.get('weight_net', 0.0)) * tax['percent'], precision) if tax.get('type') == 'quantity': tax['amount'] = round(product_qty * tax['percent'], precision) - if tax.get('tax_discount', False): + if tax.get('tax_discount'): result['tax_discount'] += tax['amount'] tax['amount'] = round(total_line * tax['percent'], precision) @@ -107,9 +95,9 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, """ obj_precision = self.pool.get('decimal.precision') precision = obj_precision.precision_get(cr, uid, 'Account') - result = super(account_tax, self).compute_all(cr, uid, taxes, + result = super(AccountTax, self).compute_all(cr, uid, taxes, price_unit, quantity, product, partner, force_excluded) - totaldc = icms_base = icms_value = icms_percent = ipi_value = 0.0 + totaldc = 0.0 calculed_taxes = [] for tax in result['taxes']: @@ -129,52 +117,6 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, totaldc += result_tax['tax_discount'] calculed_taxes += result_tax['taxes'] - # Calcula o IPI - specific_ipi = [tx for tx in result['taxes'] if tx['domain'] == 'ipi'] - result_ipi = self._compute_tax(cr, uid, specific_ipi, result['total'], - product, quantity, precision) - totaldc += result_ipi['tax_discount'] - calculed_taxes += result_ipi['taxes'] - for ipi in result_ipi['taxes']: - ipi_value += ipi['amount'] - - # Calcula ICMS - specific_icms = [tx for tx in result['taxes'] if tx['domain'] == 'icms'] - if fiscal_position and fiscal_position.asset_operation: - total_base = result['total'] + insurance_value + \ - freight_value + other_costs_value + ipi_value - else: - total_base = result['total'] + insurance_value + \ - freight_value + other_costs_value - - result_icms = self._compute_tax(cr, uid, specific_icms, total_base, - product, quantity, precision) - totaldc += result_icms['tax_discount'] - calculed_taxes += result_icms['taxes'] - if result_icms['taxes']: - icms_base = result_icms['taxes'][0]['total_base'] - icms_value = result_icms['taxes'][0]['amount'] - icms_percent = result_icms['taxes'][0]['percent'] - icms_percent_reduction = result_icms['taxes'][0]['base_reduction'] - - # Calcula ICMS ST - specific_icmsst = [tx for tx in result['taxes'] if tx['domain'] == 'icmsst'] - result_icmsst = self._compute_tax(cr, uid, specific_icmsst, result['total'], product, quantity, precision) - totaldc += result_icmsst['tax_discount'] - if result_icmsst['taxes']: - icms_st_percent = result_icmsst['taxes'][0]['percent'] or icms_percent - icms_st_percent_reduction = result_icmsst['taxes'][0]['base_reduction'] or icms_percent_reduction - icms_st_base = round(((icms_base + ipi_value) * (1 + result_icmsst['taxes'][0]['amount_mva'])) * (1 - icms_st_percent_reduction), precision) - icms_st_base_other = round(((result['total'] + ipi_value) * (1 + result_icmsst['taxes'][0]['amount_mva'])), precision) - icms_st_base - result_icmsst['taxes'][0]['total_base'] = icms_st_base - result_icmsst['taxes'][0]['amount'] = round((icms_st_base * icms_st_percent) - icms_value, precision) - result_icmsst['taxes'][0]['icms_st_percent'] = icms_st_percent - result_icmsst['taxes'][0]['icms_st_percent_reduction'] = icms_st_percent_reduction - result_icmsst['taxes'][0]['icms_st_base_other'] = icms_st_base_other - - if result_icmsst['taxes'][0]['amount_mva']: - calculed_taxes += result_icmsst['taxes'] - return { 'total': result['total'], 'total_included': result['total_included'], @@ -182,10 +124,8 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, 'taxes': calculed_taxes } -account_tax() - -class wizard_multi_charts_accounts(orm.TransientModel): +class WizardMultiChartsAccounts(orm.TransientModel): _inherit = 'wizard.multi.charts.accounts' def execute(self, cr, uid, ids, context=None): @@ -204,7 +144,7 @@ def execute(self, cr, uid, ids, context=None): - 'ids': orm_memory id used to read all data. - 'context': Context. """ - result = super(wizard_multi_charts_accounts, self).execute( + result = super(WizardMultiChartsAccounts, self).execute( cr, uid, ids, context) obj_multi = self.browse(cr, uid, ids[0]) @@ -230,23 +170,25 @@ def execute(self, cr, uid, ids, context=None): return result -class account_account(orm.Model): +class AccountAccount(orm.Model): _inherit = 'account.account' def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): """Hack to allow re-shaping demo chart of account in demo mode""" - cr.execute("select demo from ir_module_module where name='l10n_br_account';") + cr.execute("""SELECT demo + FROM ir_module_module WHERE name = 'l10n_br_account';""") if cr.fetchone()[0]: return True else: - return super(account_account, self)._check_allow_type_change( + return super(AccountAccount, self)._check_allow_type_change( cr, uid, ids, context) def _check_allow_code_change(self, cr, uid, ids, context=None): """Hack to allow re-shaping demo chart of account in demo mode""" - cr.execute("select demo from ir_module_module where name='l10n_br_account';") + cr.execute("""SELECT demo + FROM ir_module_module WHERE name = 'l10n_br_account';""") if cr.fetchone()[0]: return True else: - return super(account_account, self)._check_allow_code_change( + return super(AccountAccount, self)._check_allow_code_change( cr, uid, ids, context) From 3d2be6a2112ce666562b0a06fb8f37f2eb13c5d8 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:43:03 -0200 Subject: [PATCH 0363/1549] =?UTF-8?q?Refatorado=20objetos=20de=20regras=20?= =?UTF-8?q?de=20posi=C3=A7=C3=B5es=20fiscais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_rule.py | 94 ++++++++++++------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index f5548cebbdbc..0d8324d9a9cd 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -21,40 +21,58 @@ from openerp.osv import orm, fields from openerp.addons import decimal_precision as dp +from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT FISCAL_RULE_COLUMNS = { 'partner_fiscal_type_id': fields.many2one( 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_category_id': fields.many2one('l10n_br_account.fiscal.category', - 'Categoria', requeried=True), - 'fiscal_type': fields.selection( - [('1', 'Simples Nacional'), - ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), - ('3', 'Regime Normal')], 'Regime Tributário', required=True), - 'revenue_start': fields.float('Faturamento Inicial', - digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto"), - 'revenue_end': fields.float('Faturamento Final', - digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto") + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria'), + 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, + u'Regime Tributário', required=True), + 'revenue_start': fields.float( + 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + 'revenue_end': fields.float( + 'Faturamento Final', digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto") +} + +OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE = { + 'parent_id': fields.many2one( + 'account.fiscal.position.rule.template', 'Regra Pai'), + 'child_ids': fields.one2many( + 'account.fiscal.position.rule.template', + 'parent_id', 'Regras Filhas'), +} + +OTHERS_FISCAL_RULE_COLUMNS = { + 'parent_id': fields.many2one( + 'account.fiscal.position.rule', 'Regra Pai'), + 'child_ids': fields.one2many( + 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas'), } FISCAL_RULE_DEFAULTS = { - 'fiscal_type': '3', + 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, 'revenue_start': 0.00, 'revenue_end': 0.00 } -class account_fiscal_position_rule_template(orm.Model): +class AccountFiscalPositionRuleTemplate(orm.Model): _inherit = 'account.fiscal.position.rule.template' - _columns = FISCAL_RULE_COLUMNS + _columns = dict( + FISCAL_RULE_COLUMNS.items() + + OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE.items()) _defaults = FISCAL_RULE_DEFAULTS -class account_fiscal_position_rule(orm.Model): +class AccountFiscalPositionRule(orm.Model): _inherit = 'account.fiscal.position.rule' - _columns = FISCAL_RULE_COLUMNS + _columns = dict( + FISCAL_RULE_COLUMNS.items() + + OTHERS_FISCAL_RULE_COLUMNS.items()) _defaults = FISCAL_RULE_DEFAULTS def _map_domain(self, cr, uid, partner, addrs, company, @@ -64,26 +82,30 @@ def _map_domain(self, cr, uid, partner, addrs, company, from_country = company.partner_id.country_id.id from_state = company.partner_id.state_id.id + fiscal_rule_parent_id = company.fiscal_rule_parent_id.id document_date = context.get('date', time.strftime('%Y-%m-%d')) use_domain = context.get('use_domain', ('use_sale', '=', True)) - domain = ['&', ('company_id', '=', company.id), use_domain, - ('fiscal_type', '=', company.fiscal_type), - ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), - '|', ('from_country', '=', from_country), - ('from_country', '=', False), - '|', ('from_state', '=', from_state), - ('from_state', '=', False), - '|', ('date_start', '=', False), - ('date_start', '<=', document_date), - '|', ('date_end', '=', False), - ('date_end', '>=', document_date), - '|', ('revenue_start', '=', False), - ('revenue_start', '<=', company.annual_revenue), - '|', ('revenue_end', '=', False), - ('revenue_end', '>=', company.annual_revenue) - ] + domain = [ + '&', ('company_id', '=', company.id), use_domain, + ('fiscal_type', '=', company.fiscal_type), + ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), + '|', ('from_country', '=', from_country), + ('from_country', '=', False), + '|', ('from_state', '=', from_state), + ('from_state', '=', False), + '|', ('parent_id', '=', fiscal_rule_parent_id), + ('parent_id', '=', False), + '|', ('date_start', '=', False), + ('date_start', '<=', document_date), + '|', ('date_end', '=', False), + ('date_end', '>=', document_date), + '|', ('revenue_start', '=', False), + ('revenue_start', '<=', company.annual_revenue), + '|', ('revenue_end', '=', False), + ('revenue_end', '>=', company.annual_revenue) + ] for address_type, address in addrs.items(): key_country = 'to_%s_country' % address_type @@ -98,7 +120,7 @@ def _map_domain(self, cr, uid, partner, addrs, company, return domain def product_fiscal_category_map(self, cr, uid, product_id=False, - fiscal_category_id=False): + fiscal_category_id=False): result = False if not product_id or not fiscal_category_id: @@ -119,11 +141,11 @@ def product_fiscal_category_map(self, cr, uid, product_id=False, return result -class wizard_account_fiscal_position_rule(orm.TransientModel): +class WizardAccountFiscalPositionRule(orm.TransientModel): _inherit = 'wizard.account.fiscal.position.rule' def action_create(self, cr, uid, ids, context=None): - super(wizard_account_fiscal_position_rule, self).action_create( + super(WizardAccountFiscalPositionRule, self).action_create( cr, uid, ids, context) obj_wizard = self.browse(cr, uid, ids[0]) From 988b4f1d7e15641c62e38a0238b96c8f52ac0de1 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:44:34 -0200 Subject: [PATCH 0364/1549] =?UTF-8?q?Refatorado=20vis=C3=B5es=20de=20regra?= =?UTF-8?q?s=20de=20posi=C3=A7=C3=B5es=20fiscais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_rule_view.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml index 311fde16737c..10b0c4b3b887 100644 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -10,7 +10,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -35,8 +35,9 @@ + - + @@ -58,8 +59,9 @@ + - + @@ -88,6 +90,7 @@ + @@ -110,6 +113,7 @@ + From 6cb0973d8b99016c7d1b5e28329bd0fa18437741 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:47:56 -0200 Subject: [PATCH 0365/1549] =?UTF-8?q?Dividido=20heran=C3=A7a=20de=20vis?= =?UTF-8?q?=C3=B5es=20entre=20os=20arquivos=20l10n=5Fbr=5Faccount/account?= =?UTF-8?q?=5Fview.xml=20e=20l10n=5Fbr=5Faccount=5Fproduct/account=5Fview.?= =?UTF-8?q?xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_view.xml | 49 +++++++++----------------------- 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml index ca5dbb1ebde6..adc2d1814bc3 100644 --- a/l10n_br_account/account_view.xml +++ b/l10n_br_account/account_view.xml @@ -1,44 +1,22 @@ - - - l10n_br_account.journal.form - account.journal - - - - - - - - - - - - - - l10n_br_account.payment.term.form - account.payment.term - - - - - - - - - l10n_br_account.fiscal.position.template.form - account.fiscal.position.template - + + l10n_br_account.journal.form + account.journal + - - - + + + + + + + - + l10n_br_account.move.line.form account.move.line @@ -49,7 +27,6 @@ - - + From f0ef07c7a8a69a6814eae2ad6311c086b70b199b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:51:31 -0200 Subject: [PATCH 0366/1549] =?UTF-8?q?Dividido=20heran=C3=A7a=20de=20objeto?= =?UTF-8?q?s=20entre=20os=20arquivos=20l10n=5Fbr=5Faccount/account=5Finvoi?= =?UTF-8?q?ce.py=20l10n=5Fbr=5Faccount=5Fproduct/account=5Finvoice.py,=20l?= =?UTF-8?q?10n=5Fbr=5Faccount=5Fservice/account=5Finvoice.py=20e=20l10n=5F?= =?UTF-8?q?br=5Faccount=5Fproduct=5Fservice/account=5Finvoice.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 1156 ++++------------------------ 1 file changed, 140 insertions(+), 1016 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 775e29e0ea93..3ce31ed7a49a 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -18,13 +18,13 @@ ############################################################################### from lxml import etree -import time from openerp import netsvc from openerp.osv import orm, fields -from openerp.tools.translate import _ from openerp.addons import decimal_precision as dp -from sped.nfe.validator import txt +from openerp.tools.translate import _ + +from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT OPERATION_TYPE = { 'out_invoice': 'output', @@ -41,146 +41,9 @@ } -class account_invoice(orm.Model): +class AccountInvoice(orm.Model): _inherit = 'account.invoice' - def _amount_all(self, cr, uid, ids, name, args, context=None): - res = {} - for invoice in self.browse(cr, uid, ids, context=context): - res[invoice.id] = { - 'amount_untaxed': 0.0, - 'amount_tax': 0.0, - 'amount_tax_discount': 0.0, - 'amount_total': 0.0, - 'icms_base': 0.0, - 'icms_value': 0.0, - 'icms_st_base': 0.0, - 'icms_st_value': 0.0, - 'ipi_base': 0.0, - 'ipi_value': 0.0, - 'pis_base': 0.0, - 'pis_value': 0.0, - 'cofins_base': 0.0, - 'cofins_value': 0.0, - 'ii_value': 0.0, - 'amount_insurance': 0.0, - 'amount_freight': 0.0, - 'amount_costs': 0.0, - } - for line in invoice.invoice_line: - res[invoice.id]['amount_untaxed'] += line.price_total - res[invoice.id]['icms_base'] += line.icms_base - res[invoice.id]['icms_value'] += line.icms_value - res[invoice.id]['icms_st_base'] += line.icms_st_base - res[invoice.id]['icms_st_value'] += line.icms_st_value - res[invoice.id]['ipi_base'] += line.ipi_base - res[invoice.id]['ipi_value'] += line.ipi_value - res[invoice.id]['pis_base'] += line.pis_base - res[invoice.id]['pis_value'] += line.pis_value - res[invoice.id]['cofins_base'] += line.cofins_base - res[invoice.id]['cofins_value'] += line.cofins_value - res[invoice.id]['ii_value'] += line.ii_value - res[invoice.id]['amount_insurance'] += line.insurance_value - res[invoice.id]['amount_freight'] += line.freight_value - res[invoice.id]['amount_costs'] += line.other_costs_value - - for invoice_tax in invoice.tax_line: - if not invoice_tax.tax_code_id.tax_discount: - res[invoice.id]['amount_tax'] += invoice_tax.amount - - res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed'] - return res - - def _get_fiscal_type(self, cr, uid, context=None): - if context is None: - context = {} - return context.get('fiscal_type', 'product') - - # TODO - Melhorar esse método! - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - result = super(account_invoice, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if not view_type: - view_id = self.pool.get('ir.ui.view').search( - cr, uid, [('name', '=', 'account.invoice.tree')]) - view_type = 'tree' - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - fiscal_types = eview.xpath("//field[@name='invoice_line']") - for fiscal_type in fiscal_types: - fiscal_type.set( - 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( - context['type'], - context.get('fiscal_type', 'product'))) - - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', - "[('fiscal_type', '=', '%s'), \ - ('type', '=', '%s'), \ - ('journal_type', '=', '%s')]" \ - % (context.get('fiscal_type', 'product'), - OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - document_series = eview.xpath("//field[@name='document_serie_id']") - for document_serie_id in document_series: - document_serie_id.set('domain', "[('fiscal_type', '=', '%s')]" % (context.get('fiscal_type', 'product'))) - - if context.get('fiscal_type', False): - delivery_infos = eview.xpath("//group[@name='delivery_info']") - for delivery_info in delivery_infos: - delivery_info.set('invisible', '1') - - result['arch'] = etree.tostring(eview) - - if view_type == 'tree': - doc = etree.XML(result['arch']) - nodes = doc.xpath("//field[@name='partner_id']") - partner_string = _('Customer') - if context.get('type', 'out_invoice') in ('in_invoice', 'in_refund'): - partner_string = _('Supplier') - for node in nodes: - node.set('string', partner_string) - result['arch'] = etree.tostring(doc) - return result - - def _get_invoice_line(self, cr, uid, ids, context=None): - result = {} - for line in self.pool.get('account.invoice.line').browse( - cr, uid, ids, context=context): - result[line.invoice_id.id] = True - return result.keys() - - def _get_invoice_tax(self, cr, uid, ids, context=None): - result = {} - for tax in self.pool.get('account.invoice.tax').browse( - cr, uid, ids, context=context): - result[tax.invoice_id.id] = True - return result.keys() - - def _get_cfops(self, cr, uid, ids, name, arg, context=None): - result = {} - for invoice in self.browse(cr, uid, ids, context=context): - result[invoice.id] = [] - new_ids = [] - for line in invoice.invoice_line: - if line.cfop_id and not line.cfop_id.id in new_ids: - new_ids.append(line.cfop_id.id) - new_ids.sort() - result[invoice.id] = new_ids - return result - def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): res = {} for invoice in self.browse(cr, uid, ids, context=context): @@ -196,54 +59,29 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): return res _columns = { - 'partner_shipping_id': fields.many2one( - 'res.partner', 'Delivery Address', - readonly=True, required=True, - states={'draft': [('readonly', False)]}, - help="Delivery address for current sales order."), - 'state': fields.selection([ - ('draft', 'Draft'), - ('proforma', 'Pro-forma'), - ('proforma2', 'Pro-forma'), - ('sefaz_export', 'Enviar para Receita'), - ('sefaz_exception', 'Erro de autorização da Receita'), - ('open', 'Open'), - ('paid', 'Paid'), - ('cancel', 'Cancelled') - ], 'State', select=True, readonly=True, - help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \ - \n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \ - \n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \ - \n* The \'Paid\' state is set automatically when invoice is paid.\ - \n* The \'sefaz_out\' Gerado aquivo de exportação para sistema daReceita.\ - \n* The \'sefaz_aut\' Recebido arquivo de autolização da Receita.\ - \n* The \'Cancelled\' state is used when user cancel invoice.'), - 'partner_shipping_id': fields.many2one('res.partner', 'Endereço de Entrega', readonly=True, states={'draft': [('readonly', False)]}, help="Shipping address for current sales order."), 'issuer': fields.selection( - [('0', 'Emissão própria'), + [('0', u'Emissão própria'), ('1', 'Terceiros')], 'Emitente', readonly=True, states={'draft': [('readonly', False)]}), - 'nfe_purpose': fields.selection( - [('1', 'Normal'), - ('2', 'Complementar'), - ('3', 'Ajuste')], 'Finalidade da Emissão', readonly=True, + 'internal_number': fields.char( + 'Invoice Number', size=32, readonly=True, + states={'draft': [('readonly', False)]}, + help="""Unique number of the invoice, computed + automatically when the invoice is created."""), + 'fiscal_type': fields.selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', requeried=True), + 'vendor_serie': fields.char( + 'Série NF Entrada', size=12, readonly=True, + states={'draft': [('readonly', False)]}, + help=u"Série do número da Nota Fiscal do Fornecedor"), + 'move_line_receivable_id': fields.function( + _get_receivable_lines, method=True, type='many2many', + relation='account.move.line', string='Entry Lines'), + 'document_serie_id': fields.many2one( + 'l10n_br_account.document.serie', u'Série', + domain="[('fiscal_document_id','=',fiscal_document_id),\ + ('company_id','=',company_id)]", readonly=True, states={'draft': [('readonly', False)]}), - 'internal_number': fields.char('Invoice Number', size=32, - readonly=True, - states={'draft': [('readonly', False)]}, - help="Unique number of the invoice, \ - computed automatically when the \ - invoice is created."), - 'vendor_serie': fields.char('Série NF Entrada', size=12, readonly=True, - states={'draft': [('readonly', False)]}, - help="Série do número da Nota Fiscal do \ - Fornecedor"), - 'nfe_access_key': fields.char( - 'Chave de Acesso NFE', size=44, - readonly=True, states={'draft': [('readonly', False)]}), - 'nfe_status': fields.char('Status na Sefaz', size=44, readonly=True), - 'nfe_date': fields.datetime('Data do Status NFE', readonly=True), - 'nfe_export_date': fields.datetime('Exportação NFE', readonly=True), 'fiscal_document_id': fields.many2one( 'l10n_br_account.fiscal.document', 'Documento', readonly=True, states={'draft': [('readonly', False)]}), @@ -251,314 +89,39 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'fiscal_document_id', 'electronic', type='boolean', readonly=True, relation='l10n_br_account.fiscal.document', store=True, string='Electronic'), - 'fiscal_type': fields.selection([('product', 'Produto'), - ('service', 'Serviço')], - 'Tipo Fiscal', requeried=True), - 'move_line_receivable_id': fields.function( - _get_receivable_lines, method=True, type='many2many', - relation='account.move.line', string='Entry Lines'), - 'document_serie_id': fields.many2one( - 'l10n_br_account.document.serie', 'Série', - domain="[('fiscal_document_id','=',fiscal_document_id),\ - ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}), 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria', readonly=True, - states={'draft': [('readonly', False)]}), + 'l10n_br_account.fiscal.category', 'Categoria Fiscal', + readonly=True, states={'draft': [('readonly', False)]}), 'fiscal_position': fields.many2one( 'account.fiscal.position', 'Fiscal Position', readonly=True, states={'draft': [('readonly', False)]}, domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'cfop_ids': fields.function( - _get_cfops, method=True, type='many2many', - relation='l10n_br_account.cfop', string='CFOP'), - 'fiscal_document_related_ids': fields.one2many( - 'l10n_br_account.document.related', 'invoice_id', - 'Fiscal Document Related', readonly=True, - states={'draft': [('readonly', False)]}), - 'carrier_name': fields.char('Nome Transportadora', size=32), - 'vehicle_plate': fields.char('Placa do Veiculo', size=7), - 'vehicle_state_id': fields.many2one( - 'res.country.state', 'UF da Placa'), - 'vehicle_l10n_br_city_id': fields.many2one('l10n_br_base.city', - 'Municipio', domain="[('state_id', '=', vehicle_state_id)]"), - 'amount_untaxed': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Untaxed', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': ( - _get_invoice_line, ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'amount_tax': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Tax', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'amount_total': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Total', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'icms_base': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Base ICMS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'icms_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor ICMS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'icms_st_base': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Base ICMS ST', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, - multi='all'), - 'icms_st_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor ICMS ST', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'ipi_base': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Base IPI', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'ipi_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor IPI', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'pis_base': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Base PIS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'pis_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor PIS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'cofins_base': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Base COFINS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'cofins_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor COFINS', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'ii_value': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Valor II', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.tax': (_get_invoice_tax, None, 20), - 'account.invoice.line': (_get_invoice_line, - ['price_unit', - 'invoice_line_tax_id', - 'quantity', 'discount'], 20), - }, multi='all'), - 'weight': fields.float('Gross weight', readonly=True, - states={'draft': [('readonly', False)]}, - help="The gross weight in Kg.",), - 'weight_net': fields.float('Net weight', help="The net weight in Kg.", - readonly=True, - states={'draft': [('readonly', False)]}), - 'number_of_packages': fields.integer( - 'Volume', readonly=True, states={'draft': [('readonly', False)]}), - 'amount_insurance': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), - string='Valor do Seguro', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.line': (_get_invoice_line, - ['insurance_value'], 20), - }, multi='all'), - 'amount_freight': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), - string='Valor do Seguro', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.line': (_get_invoice_line, - ['freight_value'], 20), - }, multi='all'), - 'amount_costs': fields.function( - _amount_all, method=True, - digits_compute=dp.get_precision('Account'), string='Outros Custos', - store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, - ['invoice_line'], 20), - 'account.invoice.line': (_get_invoice_line, - ['other_costs_value'], 20)}, multi='all') } - def _default_fiscal_category(self, cr, uid, context=None): - - DEFAULT_FCATEGORY_PRODUCT = { - 'in_invoice': 'in_invoice_fiscal_category_id', - 'out_invoice': 'out_invoice_fiscal_category_id', - 'in_refund': 'in_refund_fiscal_category_id', - 'out_refund': 'out_refund_fiscal_category_id' - } - - DEFAULT_FCATEGORY_SERVICE = { - 'in_invoice': 'in_invoice_service_fiscal_category_id', - 'out_invoice': 'out_invoice_service_fiscal_category_id' - } - - default_fo_category = { - 'product': DEFAULT_FCATEGORY_PRODUCT, - 'service': DEFAULT_FCATEGORY_SERVICE - } - - invoice_type = context.get('type', 'out_invoice') - invoice_fiscal_type = context.get('fiscal_type', 'product') - - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - fcategory = self.pool.get('res.company').read( - cr, uid, user.company_id.id, - [default_fo_category[invoice_fiscal_type][invoice_type]], - context=context)[default_fo_category[invoice_fiscal_type][ - invoice_type]] - - return fcategory and fcategory[0] or False - def _default_fiscal_document(self, cr, uid, context): - invoice_fiscal_type = context.get('fiscal_type', 'product') - fiscal_invoice_id = invoice_fiscal_type + '_invoice_id' - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) fiscal_document = self.pool.get('res.company').read( - cr, uid, user.company_id.id, [fiscal_invoice_id], - context=context)[fiscal_invoice_id] + cr, uid, user.company_id.id, ['service_invoice_id'], + context=context)['service_invoice_id'] return fiscal_document and fiscal_document[0] or False def _default_fiscal_document_serie(self, cr, uid, context): - invoice_fiscal_type = context.get('fiscal_type', 'product') fiscal_document_serie = False user = self.pool.get('res.users').browse(cr, uid, uid, context=context) company = self.pool.get('res.company').browse( cr, uid, user.company_id.id, context=context) - if invoice_fiscal_type == 'product': - fiscal_document_series = [doc_serie for doc_serie in - company.document_serie_product_ids if - doc_serie.fiscal_document_id.id == - company.product_invoice_id.id and - doc_serie.active] - if fiscal_document_series: - fiscal_document_serie = fiscal_document_series[0].id - else: - fiscal_document_serie = company.document_serie_service_id and \ + fiscal_document_serie = company.document_serie_service_id and \ company.document_serie_service_id.id or False return fiscal_document_serie _defaults = { 'issuer': '0', - 'nfe_purpose': '1', - 'fiscal_type': _get_fiscal_type, - 'fiscal_category_id': _default_fiscal_category, + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, 'fiscal_document_id': _default_fiscal_document, - 'document_serie_id': _default_fiscal_document_serie + 'document_serie_id': _default_fiscal_document_serie, } def _check_invoice_number(self, cr, uid, ids, context=None): @@ -600,6 +163,70 @@ def _check_invoice_number(self, cr, uid, ids, context=None): ['number']), ] + #TODO - Melhorar esse método! + def fields_view_get(self, cr, uid, view_id=None, view_type=False, + context=None, toolbar=False, submenu=False): + result = super(AccountInvoice, self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) + + if context is None: + context = {} + + if not view_type: + view_id = self.pool.get('ir.ui.view').search( + cr, uid, [('name', '=', 'account.invoice.tree')]) + view_type = 'tree' + + if view_type == 'form': + eview = etree.fromstring(result['arch']) + + if 'type' in context.keys(): + fiscal_types = eview.xpath("//field[@name='invoice_line']") + for fiscal_type in fiscal_types: + fiscal_type.set( + 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( + context['type'], + context.get('fiscal_type', 'product'))) + + fiscal_categories = eview.xpath( + "//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set( + 'domain', + """[('fiscal_type', '=', '%s'), ('type', '=', '%s'), + ('state', '=', 'approved'), + ('journal_type', '=', '%s')]""" + % (context.get('fiscal_type', 'product'), + OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) + fiscal_category_id.set('required', '1') + + document_series = eview.xpath( + "//field[@name='document_serie_id']") + for document_serie_id in document_series: + document_serie_id.set( + 'domain', "[('fiscal_type', '=', '%s')]" + % (context.get('fiscal_type', 'product'))) + + if context.get('fiscal_type', False): + delivery_infos = eview.xpath("//group[@name='delivery_info']") + for delivery_info in delivery_infos: + delivery_info.set('invisible', '1') + + result['arch'] = etree.tostring(eview) + + if view_type == 'tree': + doc = etree.XML(result['arch']) + nodes = doc.xpath("//field[@name='partner_id']") + partner_string = _('Customer') + if context.get('type', 'out_invoice') in ('in_invoice', 'in_refund'): + partner_string = _('Supplier') + for node in nodes: + node.set('string', partner_string) + result['arch'] = etree.tostring(doc) + return result + def init(self, cr): # Remove a constraint na coluna número do documento fiscal, # no caso dos documentos de entradas dos fornecedores pode existir @@ -630,7 +257,7 @@ def copy(self, cr, uid, id, default={}, context=None): 'nfe_date': False, 'nfe_export_date': False, }) - return super(account_invoice, self).copy(cr, uid, id, default, context) + return super(AccountInvoice, self).copy(cr, uid, id, default, context) def action_internal_number(self, cr, uid, ids, context=None): if context is None: @@ -642,10 +269,12 @@ def action_internal_number(self, cr, uid, ids, context=None): sequence_read = sequence.read( cr, uid, inv.document_serie_id.internal_sequence_id.id, ['number_next']) - invalid_number = self.pool.get('l10n_br_account.invoice.invalid.number').search( - cr, uid, [('number_start', '<=', sequence_read['number_next']), - ('number_end', '>=', sequence_read['number_next']), - ('state', '=', 'done')]) + invalid_number = self.pool.get( + 'l10n_br_account.invoice.invalid.number').search( + cr, uid, [ + ('number_start', '<=', sequence_read['number_next']), + ('number_end', '>=', sequence_read['number_next']), + ('state', '=', 'done')]) if invalid_number: raise orm.except_orm( @@ -690,25 +319,24 @@ def action_number(self, cr, uid, ids, context=None): return True def action_move_create(self, cr, uid, ids, *args): - result = super(account_invoice, self).action_move_create(cr, uid, ids, *args) + result = super(AccountInvoice, self).action_move_create( + cr, uid, ids, *args) for inv in self.browse(cr, uid, ids): if inv.move_id: - self.pool.get('account.move').write(cr, uid, [inv.move_id.id], {'ref': inv.internal_number}) + self.pool.get('account.move').write( + cr, uid, [inv.move_id.id], {'ref': inv.internal_number}) for move_line in inv.move_id.line_id: - self.pool.get('account.move.line').write(cr, uid, [move_line.id], {'ref': inv.internal_number}) + self.pool.get('account.move.line').write( + cr, uid, [move_line.id], {'ref': inv.internal_number}) move_lines = [x for x in inv.move_id.line_id if x.account_id.id == inv.account_id.id and x.account_id.type in ('receivable', 'payable')] i = len(move_lines) for move_line in move_lines: move_line_name = '%s/%s' % (inv.internal_number, i) - self.pool.get('account.move.line').write(cr, uid, [move_line.id], {'name': move_line_name}) + self.pool.get('account.move.line').write( + cr, uid, [move_line.id], {'name': move_line_name}) i -= 1 return result - def nfe_check(self, cr, uid, ids, context=None): - - result = txt.validate(cr, uid, ids, context) - return result - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): if not context: @@ -741,7 +369,7 @@ def onchange_partner_id(self, cr, uid, ids, type, partner_id, partner_bank_id=False, company_id=False, fiscal_category_id=False): - result = super(account_invoice, self).onchange_partner_id( + result = super(AccountInvoice, self).onchange_partner_id( cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id) @@ -754,7 +382,7 @@ def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id=False): - result = super(account_invoice, self).onchange_company_id( + result = super(AccountInvoice, self).onchange_company_id( cr, uid, ids, company_id, partner_id, type, invoice_line, currency_id) @@ -783,70 +411,16 @@ def onchange_fiscal_document_id(self, cr, uid, ids, fiscal_document_id, context=context) if issuer == '0': - serie = False - if fiscal_type == 'product': - series = [doc_serie.id for doc_serie in - company.document_serie_product_ids if - doc_serie.fiscal_document_id.id == fiscal_document_id and - doc_serie.active] - if series: - serie = series[0] - else: - serie = company.document_serie_service_id and \ - company.document_serie_service_id.id or False + serie = company.document_serie_service_id and \ + company.document_serie_service_id.id or False result['value']['document_serie_id'] = serie return result -class account_invoice_line(orm.Model): +class AccountInvoiceLine(orm.Model): _inherit = 'account.invoice.line' - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - - result = super(account_invoice_line, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set('domain', - "[('type', '=', '%s'), \ - ('journal_type', '=', '%s')]" \ - % (OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - cfops = eview.xpath("//field[@name='cfop_id']") - for cfop_id in cfops: - cfop_id.set('domain', "[('type','=','%s')]" % ( - OPERATION_TYPE[context['type']],)) - cfop_id.set('required', '1') - - if context.get('fiscal_type', False) == 'service': - - cfops = eview.xpath("//field[@name='cfop_id']") - for cfop_id in cfops: - cfop_id.set('invisible', '1') - cfop_id.set('required', '0') - - product_ids = eview.xpath("//field[@name='product_id']") - for product_id in product_ids: - product_id.set('domain', "[('fiscal_type', '=', '%s')]" % ( - context.get('fiscal_type', 'product'))) - - result['arch'] = etree.tostring(eview) - - return result - def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): res = {} tax_obj = self.pool.get('account.tax') @@ -861,10 +435,7 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): taxes = tax_obj.compute_all( cr, uid, line.invoice_line_tax_id, price, line.quantity, line.product_id, line.invoice_id.partner_id, - fiscal_position=line.fiscal_position, - insurance_value=line.insurance_value, - freight_value=line.freight_value, - other_costs_value=line.other_costs_value) + fiscal_position=line.fiscal_position) if line.invoice_id: currency = line.invoice_id.currency_id @@ -884,413 +455,44 @@ def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): 'fiscal_position': fields.many2one( 'account.fiscal.position', u'Posição Fiscal', domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'cfop_id': fields.many2one('l10n_br_account.cfop', 'CFOP'), - 'fiscal_classification_id': fields.many2one( - 'account.product.fiscal.classification', 'Classficação Fiscal'), - 'product_type': fields.selection( - [('product', 'Produto'), ('service', u'Serviço')], - 'Tipo do Produto', required=True), - 'price_subtotal': fields.function( - _amount_line, method=True, string='Subtotal', type="float", - digits_compute=dp.get_precision('Account'), - store=True, multi='all'), 'price_total': fields.function( _amount_line, method=True, string='Total', type="float", digits_compute=dp.get_precision('Account'), store=True, multi='all'), - 'icms_manual': fields.boolean('ICMS Manual?'), - 'icms_origin': fields.selection( - [('0', '0 - Nacional, exceto as indicadas nos códigos 3 a 5'), - ('1', '1 - Estrangeira - Importação direta, exceto a indicada no código 6'), - ('2', '2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7'), - ('3', '3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% (quarenta por cento)'), - ('4', '4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam o Decreto-Lei nº 288/67, e as Leis nºs 8.248/91, 8.387/91, 10.176/01 e 11.484/07'), - ('5', '5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40% (quarenta por cento)'), - ('6', '6 - Estrangeira - Importação direta, sem similar nacional, constante em lista de Resolução CAMEX'), - ('7', '7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista de Resolução CAMEX')], - 'Origem'), - 'icms_base_type': fields.selection( - [('0', 'Margem Valor Agregado (%)'), ('1', 'Pauta (valor)'), - ('2', 'Preço Tabelado Máximo (valor)'), - ('3', 'Valor da Operação')], - 'Tipo Base ICMS', required=True), - 'icms_base': fields.float('Base ICMS', required=True, - digits_compute=dp.get_precision('Account')), - 'icms_base_other': fields.float('Base ICMS Outras', required=True, - digits_compute=dp.get_precision('Account')), - 'icms_value': fields.float('Valor ICMS', required=True, - digits_compute=dp.get_precision('Account')), - 'icms_percent': fields.float('Perc ICMS', - digits_compute=dp.get_precision('Discount')), - 'icms_percent_reduction': fields.float('Perc Redução de Base ICMS', - digits_compute=dp.get_precision('Discount')), - 'icms_st_base_type': fields.selection( - [('0', 'Preço tabelado ou máximo sugerido'), - ('1', 'Lista Negativa (valor)'), - ('2', 'Lista Positiva (valor)'), ('3', 'Lista Neutra (valor)'), - ('4', 'Margem Valor Agregado (%)'), ('5', 'Pauta (valor)')], - 'Tipo Base ICMS ST', required=True), - 'icms_st_value': fields.float('Valor ICMS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'icms_st_base': fields.float('Base ICMS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'icms_st_percent': fields.float('Percentual ICMS ST', - digits_compute=dp.get_precision('Discount')), - 'icms_st_percent_reduction': fields.float( - 'Perc Redução de Base ICMS ST', - digits_compute=dp.get_precision('Discount')), - 'icms_st_mva': fields.float('MVA ICMS ST', - digits_compute=dp.get_precision('Discount')), - 'icms_st_base_other': fields.float('Base ICMS ST Outras', - required=True, digits_compute=dp.get_precision('Account')), - 'icms_cst_id': fields.many2one('account.tax.code', 'CST ICMS', - domain=[('domain', '=', 'icms')]), - 'issqn_manual': fields.boolean('ISSQN Manual?'), - 'issqn_type': fields.selection( - [('N', 'Normal'), ('R', 'Retida'), - ('S', 'Substituta'), ('I', 'Isenta')], 'Tipo do ISSQN', - required=True), - 'service_type_id': fields.many2one( - 'l10n_br_account.service.type', 'Tipo de Serviço'), - 'issqn_base': fields.float('Base ISSQN', required=True, - digits_compute=dp.get_precision('Account')), - 'issqn_percent': fields.float('Perc ISSQN', required=True, - digits_compute=dp.get_precision('Discount')), - 'issqn_value': fields.float('Valor ISSQN', required=True, - digits_compute=dp.get_precision('Account')), - 'ipi_manual': fields.boolean('IPI Manual?'), - 'ipi_type': fields.selection( - [('percent', 'Percentual'), ('quantity', 'Em Valor')], - 'Tipo do IPI', required=True), - 'ipi_base': fields.float('Base IPI', required=True, - digits_compute=dp.get_precision('Account')), - 'ipi_base_other': fields.float('Base IPI Outras', required=True, - digits_compute=dp.get_precision('Account')), - 'ipi_value': fields.float('Valor IPI', required=True, - digits_compute=dp.get_precision('Account')), - 'ipi_percent': fields.float('Perc IPI', required=True, - digits_compute=dp.get_precision('Discount')), - 'ipi_cst_id': fields.many2one('account.tax.code', 'CST IPI', - domain=[('domain', '=', 'ipi')]), - 'pis_manual': fields.boolean('PIS Manual?'), - 'pis_type': fields.selection( - [('percent', 'Percentual'), ('quantity', 'Em Valor')], - 'Tipo do PIS', required=True), - 'pis_base': fields.float('Base PIS', required=True, - digits_compute=dp.get_precision('Account')), - 'pis_base_other': fields.float('Base PIS Outras', required=True, - digits_compute=dp.get_precision('Account')), - 'pis_value': fields.float('Valor PIS', required=True, - digits_compute=dp.get_precision('Account')), - 'pis_percent': fields.float('Perc PIS', required=True, - digits_compute=dp.get_precision('Discount')), - 'pis_cst_id': fields.many2one('account.tax.code', 'CST PIS', - domain=[('domain', '=', 'pis')]), - 'pis_st_type': fields.selection( - [('percent', 'Percentual'), ('quantity', 'Em Valor')], - 'Tipo do PIS ST', required=True), - 'pis_st_base': fields.float('Base PIS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'pis_st_percent': fields.float('Perc PIS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'pis_st_value': fields.float('Valor PIS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'cofins_manual': fields.boolean('COFINS Manual?'), - 'cofins_type': fields.selection( - [('percent', 'Percentual'), ('quantity', 'Em Valor')], - 'Tipo do COFINS', required=True), - 'cofins_base': fields.float('Base COFINS', required=True, - digits_compute=dp.get_precision('Account')), - 'cofins_base_other': fields.float('Base COFINS Outras', required=True, - digits_compute=dp.get_precision('Account')), - 'cofins_value': fields.float('Valor COFINS', required=True, - digits_compute=dp.get_precision('Account')), - 'cofins_percent': fields.float('Perc COFINS', required=True, - digits_compute=dp.get_precision('Discount')), - 'cofins_cst_id': fields.many2one('account.tax.code', 'CST PIS', - domain=[('domain', '=', 'cofins')]), - 'cofins_st_type': fields.selection( - [('percent', 'Percentual'), ('quantity', 'Em Valor')], - 'Tipo do COFINS ST', required=True), - 'cofins_st_base': fields.float('Base COFINS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'cofins_st_percent': fields.float('Perc COFINS ST', required=True, - digits_compute=dp.get_precision('Discount')), - 'cofins_st_value': fields.float('Valor COFINS ST', required=True, - digits_compute=dp.get_precision('Account')), - 'ii_base': fields.float('Base II', required=True, - digits_compute=dp.get_precision('Account')), - 'ii_value': fields.float('Valor II', required=True, - digits_compute=dp.get_precision('Account')), - 'ii_iof': fields.float('Valor IOF', required=True, - digits_compute=dp.get_precision('Account')), - 'ii_customhouse_charges': fields.float('Depesas Atuaneiras', - required=True, digits_compute=dp.get_precision('Account')), - 'insurance_value': fields.float('Valor do Seguro', - digits_compute=dp.get_precision('Account')), - 'other_costs_value': fields.float('Outros Custos', - digits_compute=dp.get_precision('Account')), - 'freight_value': fields.float('Frete', - digits_compute=dp.get_precision('Account')) - } - _defaults = { - 'product_type': 'product', - 'icms_manual': False, - 'icms_origin': '0', - 'icms_base_type': '0', - 'icms_base': 0.0, - 'icms_base_other': 0.0, - 'icms_value': 0.0, - 'icms_percent': 0.0, - 'icms_percent_reduction': 0.0, - 'icms_st_base_type': 'percent', - 'icms_st_value': 0.0, - 'icms_st_base': 0.0, - 'icms_st_percent': 0.0, - 'icms_st_percent_reduction': 0.0, - 'icms_st_mva': 0.0, - 'icms_st_base_other': 0.0, - 'icms_st_base_type': '4', - 'issqn_manual': False, - 'issqn_type': 'N', - 'issqn_base': 0.0, - 'issqn_percent': 0.0, - 'issqn_value': 0.0, - 'ipi_manual': False, - 'ipi_type': 'percent', - 'ipi_base': 0.0, - 'ipi_base_other': 0.0, - 'ipi_value': 0.0, - 'ipi_percent': 0.0, - 'pis_manual': False, - 'pis_type': 'percent', - 'pis_base': 0.0, - 'pis_base_other': 0.0, - 'pis_value': 0.0, - 'pis_percent': 0.0, - 'pis_st_type': 'percent', - 'pis_st_base': 0.0, - 'pis_st_percent': 0.0, - 'pis_st_value': 0.0, - 'cofins_manual': False, - 'cofins_type': 'percent', - 'cofins_base': 0.0, - 'cofins_base_other': 0.0, - 'cofins_value': 0.0, - 'cofins_percent': 0.0, - 'cofins_st_type': 'percent', - 'cofins_st_base': 0.0, - 'cofins_st_percent': 0.0, - 'cofins_st_value': 0.0, - 'ii_base': 0.0, - 'ii_value': 0.0, - 'ii_iof': 0.0, - 'ii_customhouse_charges': 0.0 } - def _amount_tax_icms(self, cr, uid, tax=None): - result = { - 'icms_base_type': '0', - 'icms_base': tax.get('total_base', 0.0), - 'icms_base_other': tax.get('total_base_other', 0.0), - 'icms_value': tax.get('amount', 0.0), - 'icms_percent': tax.get('percent', 0.0) * 100, - 'icms_percent_reduction': tax.get('base_reduction') * 100, - } - return result - - def _amount_tax_icmsst(self, cr, uid, tax=None): - result = { - 'icms_st_value': tax.get('amount', 0.0), - 'icms_st_base': tax.get('total_base', 0.0), - 'icms_st_percent': tax.get('icms_st_percent', 0.0) * 100, - 'icms_st_percent_reduction': tax.get('icms_st_percent_reduction', 0.0) * 100, - 'icms_st_mva': tax.get('amount_mva', 0.0) * 100, - 'icms_st_base_other': tax.get('icms_st_base_other', 0.0), - } - return result - - def _amount_tax_ipi(self, cr, uid, tax=None): - result = { - 'ipi_type': tax.get('type'), - 'ipi_base': tax.get('total_base', 0.0), - 'ipi_value': tax.get('amount', 0.0), - 'ipi_percent': tax.get('percent', 0.0) * 100, - } - return result - - def _amount_tax_cofins(self, cr, uid, tax=None): - result = { - 'cofins_base': tax.get('total_base', 0.0), - 'cofins_base_other': tax.get('total_base_other', 0.0), - 'cofins_value': tax.get('amount', 0.0), - 'cofins_percent': tax.get('percent', 0.0) * 100, - } - return result - - def _amount_tax_cofinsst(self, cr, uid, tax=None): - result = { - 'cofins_st_type': 'percent', - 'cofins_st_base': 0.0, - 'cofins_st_percent': 0.0, - 'cofins_st_value': 0.0, - } - return result - - def _amount_tax_pis(self, cr, uid, tax=False): - result = { - 'pis_base': tax.get('total_base', 0.0), - 'pis_base_other': tax.get('total_base_other', 0.0), - 'pis_value': tax.get('amount', 0.0), - 'pis_percent': tax.get('percent', 0.0) * 100, - } - return result - - def _amount_tax_pisst(self, cr, uid, tax=False): - result = { - 'pis_st_type': 'percent', - 'pis_st_base': 0.0, - 'pis_st_percent': 0.0, - 'pis_st_value': 0.0, - } - return result - - def _amount_tax_ii(self, cr, uid, tax=False): - result = { - 'ii_base': 0.0, - 'ii_value': 0.0, - } - return result - - def _amount_tax_issqn(self, cr, uid, tax=False): - - # TODO deixar dinamico a definição do tipo do ISSQN - # assim como todos os impostos - issqn_type = 'N' - if not tax.get('amount'): - issqn_type = 'I' - - result = { - 'issqn_type': issqn_type, - 'issqn_base': tax.get('total_base', 0.0), - 'issqn_percent': tax.get('percent', 0.0) * 100, - 'issqn_value': tax.get('amount', 0.0), - } - return result - - def _get_tax_codes(self, cr, uid, product_id, fiscal_position, - taxes, company_id, context=None): - - if not context: - context = {} - - result = {} - - if fiscal_position.fiscal_category_id.journal_type in ('sale', 'sale_refund'): - context['type_tax_use'] = 'sale' - else: - context['type_tax_use'] = 'purchase' - - context['fiscal_type'] = fiscal_position.fiscal_category_fiscal_type - - tax_codes = self.pool.get('account.fiscal.position').map_tax_code( - cr, uid, product_id, fiscal_position, company_id, - taxes, context=context) + def fields_view_get(self, cr, uid, view_id=None, view_type=False, + context=None, toolbar=False, submenu=False): - result['icms_cst_id'] = tax_codes.get('icms', False) - result['ipi_cst_id'] = tax_codes.get('ipi', False) - result['pis_cst_id'] = tax_codes.get('pis', False) - result['cofins_cst_id'] = tax_codes.get('cofins', False) - return result + result = super(AccountInvoiceLine, self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) - def _validate_taxes(self, cr, uid, values, context=None): - """Verifica se o valor dos campos dos impostos estão sincronizados - com os impostos do OpenERP""" - if not context: + if context is None: context = {} - tax_obj = self.pool.get('account.tax') + if view_type == 'form': + eview = etree.fromstring(result['arch']) - if not values.get('product_id') or not values.get('quantity') \ - or not values.get('fiscal_position'): - return {} + if 'type' in context.keys(): + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set( + 'domain', """[('type', '=', '%s'), + ('journal_type', '=', '%s')]""" + % (OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) + fiscal_category_id.set('required', '1') - result = { - 'product_type': 'product', - 'service_type_id': False, - 'fiscal_classification_id': False - } + product_ids = eview.xpath("//field[@name='product_id']") + for product_id in product_ids: + product_id.set('domain', "[('fiscal_type', '=', '%s')]" % ( + context.get('fiscal_type', 'service'))) - if values.get('partner_id') and values.get('company_id'): - partner_id = values.get('partner_id') - company_id = values.get('company_id') - else: - if values.get('invoice_id'): - inv = self.pool.get('account.invoice').read( - cr, uid, values.get('invoice_id'), - ['partner_id', 'company_id']) - - partner_id = inv.get('partner_id', [False])[0] - company_id = inv.get('company_id', [False])[0] - - taxes = tax_obj.browse( - cr, uid, values.get('invoice_line_tax_id')[0][2]) - fiscal_position = self.pool.get('account.fiscal.position').browse( - cr, uid, values.get('fiscal_position')) - - price_unit = values.get('price_unit', 0.0) - price = price_unit * (1 - values.get('discount', 0.0) / 100.0) - - taxes_calculed = tax_obj.compute_all( - cr, uid, taxes, price, values.get('quantity', 0.0), - values.get('product_id'), partner_id, - fiscal_position=fiscal_position, - insurance_value=values.get('insurance_value', 0.0), - freight_value=values.get('freight_value', 0.0), - other_costs_value=values.get('other_costs_value', 0.0)) - - if values.get('product_id'): - obj_product = self.pool.get('product.product').browse( - cr, uid, values.get('product_id'), context=context) - if obj_product.type == 'service': - result['product_type'] = 'service' - result['service_type_id'] = obj_product.service_type_id.id - else: - result['product_type'] = 'product' - if obj_product.property_fiscal_classification: - result['fiscal_classification_id'] = obj_product.property_fiscal_classification.id - - result['icms_origin'] = obj_product.origin - - for tax in taxes_calculed['taxes']: - try: - amount_tax = getattr( - self, '_amount_tax_%s' % tax.get('domain', '')) - result.update(amount_tax(cr, uid, tax)) - except AttributeError: - # Caso não exista campos especificos dos impostos - # no documento fiscal, os mesmos são calculados. - continue + result['arch'] = etree.tostring(eview) - result.update(self._get_tax_codes( - cr, uid, values.get('product_id'), fiscal_position, - values.get('invoice_line_tax_id')[0][2], - company_id, context=context)) return result - def create(self, cr, uid, vals, context=None): - if not context: - context = {} - vals.update(self._validate_taxes(cr, uid, vals, context)) - return super(account_invoice_line, self).create(cr, uid, vals, context) - - def write(self, cr, uid, ids, vals, context=None): - if not context: - context = {} - vals.update(self._validate_taxes(cr, uid, vals, context)) - return super(account_invoice_line, self).write( - cr, uid, ids, vals, context=context) - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): if not context: @@ -1334,7 +536,7 @@ def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', parent_fiscal_category_id=False, parent_fposition_id=False): - result = super(account_invoice_line, self).product_id_change( + result = super(AccountInvoiceLine, self).product_id_change( cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, currency_id, context, company_id) @@ -1394,7 +596,7 @@ def onchange_account_id(self, cr, uid, ids, product_id, partner_id, context=None, fiscal_category_id=False, company_id=False): - result = super(account_invoice_line, self).onchange_account_id( + result = super(AccountInvoiceLine, self).onchange_account_id( cr, uid, ids, product_id, partner_id, inv_type, fposition_id, account_id) return self._fiscal_position_map( @@ -1408,7 +610,7 @@ def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', price_unit=False, currency_id=False, context=None, company_id=None, fiscal_category_id=False): - result = super(account_invoice_line, self).uos_id_change( + result = super(AccountInvoiceLine, self).uos_id_change( cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, currency_id, context, company_id) return self._fiscal_position_map( @@ -1416,81 +618,3 @@ def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', partner_invoice_id=partner_id, company_id=company_id, fiscal_category_id=fiscal_category_id, product_id=product, account_id=False) - - -class account_invoice_tax(orm.Model): - _inherit = "account.invoice.tax" - - def compute(self, cr, uid, invoice_id, context=None): - tax_grouped = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - inv = self.pool.get('account.invoice').browse( - cr, uid, invoice_id, context=context) - cur = inv.currency_id - currenty_date = time.strftime('%Y-%m-%d') - company_currency = inv.company_id.currency_id.id - - for line in inv.invoice_line: - for tax in tax_obj.compute_all( - cr, uid, line.invoice_line_tax_id, - (line.price_unit * (1 - (line.discount or 0.0) / 100.0)), - line.quantity, line.product_id, inv.partner_id, - fiscal_position=line.fiscal_position, - insurance_value=line.insurance_value, - freight_value=line.freight_value, - other_costs_value=line.other_costs_value)['taxes']: - val = {} - val['invoice_id'] = inv.id - val['name'] = tax['name'] - val['amount'] = tax['amount'] - val['manual'] = False - val['sequence'] = tax['sequence'] - val['base'] = tax.get('total_base', 0.0) - - if inv.type in ('out_invoice', 'in_invoice'): - val['base_code_id'] = tax['base_code_id'] - val['tax_code_id'] = tax['tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, - inv.currency_id.id, company_currency, - val['base'] * tax['base_sign'], - context={'date': inv.date_invoice or currenty_date}, - round=False) - val['tax_amount'] = cur_obj.compute( - cr, uid, inv.currency_id.id, company_currency, - val['amount'] * tax['tax_sign'], - context={'date': inv.date_invoice or currenty_date}, - round=False) - val['account_id'] = tax['account_collected_id'] or line.account_id.id - val['account_analytic_id'] = tax['account_analytic_collected_id'] - else: - val['base_code_id'] = tax['ref_base_code_id'] - val['tax_code_id'] = tax['ref_tax_code_id'] - val['base_amount'] = cur_obj.compute( - cr, uid, inv.currency_id.id, company_currency, - val['base'] * tax['ref_base_sign'], - context={'date': inv.date_invoice or currenty_date}, - round=False) - val['tax_amount'] = cur_obj.compute( - cr, uid, inv.currency_id.id, - company_currency, val['amount'] * tax['ref_tax_sign'], - context={'date': inv.date_invoice or currenty_date}, - round=False) - val['account_id'] = tax['account_paid_id'] or line.account_id.id - val['account_analytic_id'] = tax['account_analytic_paid_id'] - - key = (val['tax_code_id'], val['base_code_id'], val['account_id'], val['account_analytic_id']) - if not key in tax_grouped: - tax_grouped[key] = val - else: - tax_grouped[key]['amount'] += val['amount'] - tax_grouped[key]['base'] += val['base'] - tax_grouped[key]['base_amount'] += val['base_amount'] - tax_grouped[key]['tax_amount'] += val['tax_amount'] - - for t in tax_grouped.values(): - t['base'] = cur_obj.round(cr, uid, cur, t['base']) - t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) - t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) - t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) - return tax_grouped From 46746ce5895e08dd817b6c350ec6511a4d6c5496 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:53:33 -0200 Subject: [PATCH 0367/1549] =?UTF-8?q?Dividido=20heran=C3=A7a=20de=20vis?= =?UTF-8?q?=C3=B5es=20entre=20os=20arquivos=20l10n=5Fbr=5Faccount/account?= =?UTF-8?q?=5Finvoice=5Fview.xml=20l10n=5Fbr=5Faccount=5Fproduct/account?= =?UTF-8?q?=5Finvoice=5Fview.xml,=20l10n=5Fbr=5Faccount=5Fservice/account?= =?UTF-8?q?=5Finvoice=5Fview.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice_view.xml | 425 ++--------------------- 1 file changed, 36 insertions(+), 389 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 837ee3699b95..1fcc4f10661a 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -3,7 +3,7 @@ - + l10n_br_account.invoice.tree account.invoice @@ -14,44 +14,19 @@ - + l10n_br_account.invoice.form account.invoice - + + + + + + + - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-
-
@@ -60,179 +35,75 @@ onchange_journal_id(journal_id, context)
- + - - - - onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) - - onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) - + + - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+ + + l10n_br_account.invoice.line.tree + account.invoice.line + + 26 + + + + - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'product')] + [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'service')] - [('type', '=', 'out_refund'), ('fiscal_type', '=', 'product')] + [('type', '=', 'out_refund'), ('fiscal_type', '=', 'service')] - [('type', '=', 'in_refund'), ('fiscal_type', '=', 'product')] + [('type', '=', 'in_refund'), ('fiscal_type', '=', 'service')] - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'product')] - - - - Nota Fiscal de Serviço de Saida - account.invoice - form - tree,form,calendar,graph - - [('type','=','out_invoice'),('fiscal_type','=','service')] - {'type':'out_invoice', 'journal_type': 'sale','fiscal_type': 'service'} - - - With Customer Invoices you can create and manage - sales invoices issued to your customers. OpenERP can also generate - draft invoices automatically from sales orders or deliveries. You - should only confirm them before sending them to your customers. - - - - Nota Fiscal de Serviço de Entrada - account.invoice - form - tree,form,calendar,graph - - [('type','=','in_invoice'),('fiscal_type','=','service')] - {'type':'in_invoice', 'journal_type': 'purchase','fiscal_type': 'service'} - - - With Customer Invoices you can create and manage - sales invoices issued to your customers. OpenERP can also generate - draft invoices automatically from sales orders or deliveries. You - should only confirm them before sending them to your customers. - - - - - tree - - - - - - - - tree - + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - + l10n_br_account.invoice.select account.invoice 32 - - - - - - - - - l10n_br_account.invoice.select1 - account.invoice - - 32 @@ -241,7 +112,7 @@ - + l10n_br_account.invoice.supplier.form account.invoice @@ -265,67 +136,19 @@ - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -335,7 +158,6 @@ - l10n_br_account.invoice.supplier.form3 account.invoice @@ -347,181 +169,6 @@
- - - l10n_br_account.invoice.line.form - account.invoice.line - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - l10n_br_account.invoice.line.tree1 - account.invoice.line - - 26 - - - - - - - - - - From 412aed73beece1ccf53d64afdb16676c01bfbacd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:56:11 -0200 Subject: [PATCH 0368/1549] =?UTF-8?q?Adicionado=20workflows=20para=20categ?= =?UTF-8?q?orias=20fiscais=20e=20posi=C3=A7=C3=B5es=20fiscais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account_fiscal_position_workflow.xml | 79 +++++++++++++++++++ l10n_br_account/l10n_br_account_workflow.xml | 79 +++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 l10n_br_account/account_fiscal_position_workflow.xml create mode 100644 l10n_br_account/l10n_br_account_workflow.xml diff --git a/l10n_br_account/account_fiscal_position_workflow.xml b/l10n_br_account/account_fiscal_position_workflow.xml new file mode 100644 index 000000000000..f4255d95674b --- /dev/null +++ b/l10n_br_account/account_fiscal_position_workflow.xml @@ -0,0 +1,79 @@ + + + + + + + Fiscal Position Approval + l10n_br_account.fiscal.category + True + + + + + + True + draft + + + + + review + write({'state':'review'}) + function + + + + + approved + write({'state':'approved'}) + function + + + + + unapproved + True + write({'state':'unapproved'}) + function + + + + + + + fiscal_category_review + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_unapproved + + + + diff --git a/l10n_br_account/l10n_br_account_workflow.xml b/l10n_br_account/l10n_br_account_workflow.xml new file mode 100644 index 000000000000..a1b5b9984a57 --- /dev/null +++ b/l10n_br_account/l10n_br_account_workflow.xml @@ -0,0 +1,79 @@ + + + + + + + Fiscal Category Approval + l10n_br_account.fiscal.category + True + + + + + + True + draft + + + + + review + write({'state':'review'}) + function + + + + + approved + write({'state':'approved'}) + function + + + + + unapproved + True + write({'state':'unapproved'}) + function + + + + + + + fiscal_category_review + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_unapproved + + + + From 0334d3fdf26959b4192eec1bf1ac086b0c8f1662 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:57:01 -0200 Subject: [PATCH 0369/1549] Atualizado arquivo __openerp__.py --- l10n_br_account/__openerp__.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 780b062fe6e8..d7e48e9f173c 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -24,42 +24,34 @@ 'license': 'AGPL-3', 'author': 'Akretion, OpenERP Brasil', 'website': 'http://openerpbrasil.org', - 'version': '0.6', + 'version': '7.0', 'depends': [ 'l10n_br', 'l10n_br_base', 'l10n_br_product', 'account_fiscal_position_rule', - 'account_product_fiscal_classification', ], 'data': [ + 'l10n_br_account_workflow.xml', + 'account_fiscal_position_workflow.xml', 'data/l10n_br_account.fiscal.document.csv', - 'data/l10n_br_account.cfop.csv', 'data/l10n_br_account_data.xml', 'account_view.xml', - 'l10n_br_account_sequence.xml', 'account_fiscal_position_rule_view.xml', 'account_invoice_view.xml', - 'account_invoice_workflow.xml', 'l10n_br_account_view.xml', 'res_partner_view.xml', 'product_view.xml', 'res_company_view.xml', - 'account_product_fiscal_classification_view.xml', 'security/ir.model.access.csv', 'security/l10n_br_account_security.xml', - 'wizard/l10n_br_account_nfe_export_invoice_view.xml', - 'wizard/l10n_br_account_nfe_export_view.xml', - 'wizard/l10n_br_refund_view.xml' ], 'demo': [ 'demo/account.account.csv', 'demo/account_tax_code.xml', - 'demo/account_tax.xml', 'demo/account_financial_demo.xml', 'demo/account_fiscal_demo.xml', 'demo/base_demo.xml', - #'demo/product_demo.xml', ], 'test': [], 'installable': True, From 9bec413c84b2aa1e9d5cb5f8f78e6b19e62afcc9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 11:58:57 -0200 Subject: [PATCH 0370/1549] Atualizado arquivo l10n_br_account/sped/__init__.py --- l10n_br_account/sped/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py index 72faa9b96420..db59e1cdae91 100644 --- a/l10n_br_account/sped/__init__.py +++ b/l10n_br_account/sped/__init__.py @@ -19,5 +19,4 @@ import document import efd -import nfe -import nfse + From 5354744cbd038a8c1c3542ed7a76c212617c9cc3 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 12:11:29 -0200 Subject: [PATCH 0371/1549] Atualizado arquivo l10n_br_account/security/ir.model.access.csv --- l10n_br_account/security/ir.model.access.csv | 77 ++++++++------------ 1 file changed, 31 insertions(+), 46 deletions(-) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index a796d7b7b6e7..65b0bcf59070 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -1,46 +1,31 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -l10n_br_account_partner_fiscal_type_manager,l10n_br_account.partner.fiscal.type,model_l10n_br_account_partner_fiscal_type,base.group_partner_manager,1,1,1,1 -l10n_br_account_partner_fiscal_type,l10n_br_account.partner.fiscal.type,model_l10n_br_account_partner_fiscal_type,base.group_partner_manager,1,1,1,1 -l10n_br_account_cfop,l10n_br_account.cfop,model_l10n_br_account_cfop,account.group_account_invoice,1,1,1,1 -l10n_br_account_fiscal_document,l10n_br_account.fiscal.document,model_l10n_br_account_fiscal_document,account.group_account_manager,1,1,1,1 -l10n_br_account_fiscal_category,l10n_br_account.fiscal.category,model_l10n_br_account_fiscal_category,account.group_account_manager,1,1,1,1 -l10n_br_account_document_serie,l10n_br_account.document.serie,model_l10n_br_account_document_serie,account.group_account_manager,1,1,1,1 -l10n_br_account_product_category,l10n_br_account.product.category,model_l10n_br_account_product_category,account.group_account_manager,1,1,1,1 -l10n_br_account_cnae,l10n_br_account.cnae,model_l10n_br_account_cnae,account.group_account_manager,1,1,1,1 -l10n_br_account_service_type,l10n_br_account.service.type,model_l10n_br_account_service_type,account.group_account_manager,1,1,1,1 -l10n_br_account_partner_fiscal_type_user,l10n_br_account.partner.fiscal.type,model_l10n_br_account_partner_fiscal_type,account.group_account_user,1,0,0,0 -l10n_br_account_cfop_user,l10n_br_account.cfop,model_l10n_br_account_cfop,account.group_account_invoice,1,0,0,0 -l10n_br_account_fiscal_document_user,l10n_br_account.fiscal.document,model_l10n_br_account_fiscal_document,account.group_account_user,1,0,0,0 -l10n_br_account_fiscal_category_user,l10n_br_account.fiscal.category,model_l10n_br_account_fiscal_category,account.group_account_user,1,0,0,0 -l10n_br_account_document_serie_user,l10n_br_account.document.serie,model_l10n_br_account_document_serie,account.group_account_user,1,0,0,0 -l10n_br_account_product_category_user,l10n_br_account.product.category,model_l10n_br_account_product_category,account.group_account_user,1,0,0,0 -l10n_br_account_cnae_user,l10n_br_account.cnae,model_l10n_br_account_cnae,account.group_account_user,1,0,0,0 -l10n_br_account_service_type_user,l10n_br_account.service.type,model_l10n_br_account_service_type,account.group_account_user,1,0,0,0 -l10n_br_account_partner_fiscal_type_invoice,l10n_br_account.partner.fiscal.type,model_l10n_br_account_partner_fiscal_type,account.group_account_invoice,1,0,0,0 -l10n_br_account_cfop_invoice,l10n_br_account.cfop,model_l10n_br_account_cfop,account.group_account_invoice,1,0,0,0 -l10n_br_account_fiscal_document_invoice,l10n_br_account.fiscal.document,model_l10n_br_account_fiscal_document,account.group_account_invoice,1,0,0,0 -l10n_br_account_fiscal_category_invoice,l10n_br_account.fiscal.category,model_l10n_br_account_fiscal_category,account.group_account_invoice,1,0,0,0 -l10n_br_account_document_serie_invoice,l10n_br_account.document.serie,model_l10n_br_account_document_serie,account.group_account_invoice,1,0,0,0 -l10n_br_account_product_category_invoice,l10n_br_account.product.category,model_l10n_br_account_product_category,account.group_account_invoice,1,0,0,0 -l10n_br_account_cnae_invoice,l10n_br_account.cnae,model_l10n_br_account_cnae,account.group_account_invoice,1,0,0,0 -l10n_br_account_service_type_invoice,l10n_br_account.service.type,model_l10n_br_account_service_type,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_template_manager,l10n_br_tax.definition.template,model_l10n_br_tax_definition_template,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_manager,l10n_br_tax.definition,model_l10n_br_tax_definition,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_sale_template_manager,l10n_br_tax.definition.sale.template,model_l10n_br_tax_definition_sale_template,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_purchase_template_manager,l10n_br_tax.definition.purchase.template,model_l10n_br_tax_definition_purchase_template,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_sale_manager,l10n_br_tax.definition.sale,model_l10n_br_tax_definition_sale,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_purchase_manager,l10n_br_tax.definition.purchase,model_l10n_br_tax_definition_purchase,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_company_product_manager,l10n_br_tax.definition.company.product,model_l10n_br_tax_definition_company_product,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_company_service_manager,l10n_br_tax.definition.company.service,model_l10n_br_tax_definition_company_service,account.group_account_manager,1,1,1,1 -l10n_br_tax_definition_template_user,l10n_br_tax.definition.template,model_l10n_br_tax_definition_template,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_user,l10n_br_tax.definition,model_l10n_br_tax_definition,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_sale_template_user,l10n_br_tax.definition.sale.template,model_l10n_br_tax_definition_sale_template,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_purchase_template_user,l10n_br_tax.definition.purchase.template,model_l10n_br_tax_definition_purchase_template,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_sale_user,l10n_br_tax.definition.sale,model_l10n_br_tax_definition_sale,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_purchase_user,l10n_br_tax.definition.purchase,model_l10n_br_tax_definition_purchase,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_company_product_user,l10n_br_tax.definition.company.product,model_l10n_br_tax_definition_company_product,account.group_account_invoice,1,0,0,0 -l10n_br_tax_definition_company_service_user,l10n_br_tax.definition.company.service,model_l10n_br_tax_definition_company_service,account.group_account_invoice,1,0,0,0 -l10n_br_account_invoice_invalid_number_manager,l10n_br_account.invoice.invalid.number,model_l10n_br_account_invoice_invalid_number,account.group_account_manager,1,1,1,1 -l10n_br_account_invoice_invalid_number_user,l10n_br_account.invoice.invalid.number,model_l10n_br_account_invoice_invalid_number,account.group_account_invoice,1,0,0,0 -l10n_br_account_document_related_user,l10n_br_account.document.related,model_l10n_br_account_document_related,account.group_account_invoice,1,1,1,1 -l10n_br_account_document_related_manager,l10n_br_account.document.related,model_l10n_br_account_document_related,account.group_account_manager,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"l10n_br_account_partner_fiscal_type_manager","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 +"l10n_br_account_partner_fiscal_type","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 +"l10n_br_account_fiscal_document","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_manager",1,1,1,1 +"l10n_br_account_fiscal_category","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_manager",1,1,1,1 +"l10n_br_account_document_serie","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_manager",1,1,1,1 +"l10n_br_account_product_category","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_manager",1,1,1,1 +"l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_manager",1,1,1,1 +"l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 +"l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 +"l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 +"l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 +"l10n_br_account_document_serie_user","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_user",1,0,0,0 +"l10n_br_account_product_category_user","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_user",1,0,0,0 +"l10n_br_account_cnae_user","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_user",1,0,0,0 +"l10n_br_account_service_type_user","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_user",1,0,0,0 +"l10n_br_account_partner_fiscal_type_invoice","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_invoice",1,0,0,0 +"l10n_br_account_fiscal_document_invoice","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_invoice",1,0,0,0 +"l10n_br_account_fiscal_category_invoice","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_invoice",1,0,0,0 +"l10n_br_account_document_serie_invoice","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_invoice",1,0,0,0 +"l10n_br_account_product_category_invoice","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_invoice",1,0,0,0 +"l10n_br_account_cnae_invoice","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_invoice",1,0,0,0 +"l10n_br_account_service_type_invoice","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_invoice",1,0,0,0 +"l10n_br_tax_definition_manager","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_manager",1,1,1,1 +"l10n_br_tax_definition_user","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_invoice",1,0,0,0 +"l10n_br_tax_definition_template_manager","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_manager",1,1,1,1 +"l10n_br_tax_definition_template_user","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_invoice",1,0,0,0 +"l10n_br_account_invoice_invalid_number_manager","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_manager",1,1,1,1 +"l10n_br_account_invoice_invalid_number_user","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_invoice",1,0,0,0 +"account_tax_computation_user","account.tax.computation","model_account_tax_computation","account.group_account_invoice",1,0,0,0 +"account_tax_computation_manager","account.tax.computation","model_account_tax_computation","account.group_account_manager",1,1,1,1 From d14d5ca9809733f435c3b103ed9818d5785b4b69 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 12:43:45 -0200 Subject: [PATCH 0372/1549] Atualizado arquivo l10n_br_account/security/l10n_br_account_security.xml --- .../security/l10n_br_account_security.xml | 54 +++---------------- 1 file changed, 6 insertions(+), 48 deletions(-) diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml index af8fba969876..f058a1129518 100644 --- a/l10n_br_account/security/l10n_br_account_security.xml +++ b/l10n_br_account/security/l10n_br_account_security.xml @@ -3,17 +3,6 @@ - - - - - - Document Serie Company multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - Tax Definition Template multi-company @@ -28,44 +17,13 @@ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - Tax Definition Sale Template multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - Tax Definition Purchase Template multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - Tax Definition Sale multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - Tax Definition Purchase multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - Tax Definition Company Product multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + - - - Tax Definition Company Service multi-company - + + + Document Serie Company multi-company + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] From d1cb5c06a443c0610b7cccb5b79dd8330648ee16 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Dec 2013 14:02:17 -0200 Subject: [PATCH 0373/1549] =?UTF-8?q?Adicionado=20arquivos=20de=20tradu?= =?UTF-8?q?=C3=A7=C3=A3o=20vazios=20pt=5FBR.po=20para=20evitar=20mensagens?= =?UTF-8?q?=20de=20alertas=20no=20log=20e=20futura=20internacionaliza?= =?UTF-8?q?=C3=A7=C3=A3o=20dos=20termos=20da=20localiza=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/i18n/pt_BR.po | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 l10n_br_account/i18n/pt_BR.po diff --git a/l10n_br_account/i18n/pt_BR.po b/l10n_br_account/i18n/pt_BR.po new file mode 100644 index 000000000000..e69de29bb2d1 From 86b70f229dae20f57efa3abdf01cd81aab32c41e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 19 Dec 2013 11:20:23 -0200 Subject: [PATCH 0374/1549] =?UTF-8?q?[FIX]=20Calculo=20dos=20impostos=20e?= =?UTF-8?q?=20dados=20de=20demostra=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index e36da4116c2b..8b951fe5045a 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -111,7 +111,7 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, tax['amount_mva'] = tax_brw.amount_mva tax['tax_discount'] = tax_brw.base_code_id.tax_discount - common_taxes = [tx for tx in result['taxes'] if tx['domain'] not in ['icms', 'icmsst', 'ipi']] + common_taxes = [tx for tx in result['taxes'] if tx['domain']] result_tax = self._compute_tax(cr, uid, common_taxes, result['total'], product, quantity, precision) totaldc += result_tax['tax_discount'] From 29d7514cccf3a7e472889727af667d2d1e1c4a0b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 19 Dec 2013 13:25:28 -0200 Subject: [PATCH 0375/1549] =?UTF-8?q?No=20cadastro=20de=20categorias=20fis?= =?UTF-8?q?cais=20deixar=20o=20filtro=20aprovada=20por=20padr=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index baa0cd8ab7fe..25e36355fa57 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -328,6 +328,7 @@ l10n_br_account.fiscal.category tree,form form + {"search_default_approved":1} From c66760681f9f1056d84154658f8523b9b62e9ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 22 Dec 2013 20:11:01 -0200 Subject: [PATCH 0376/1549] setting main company in Sao Paulo for future fiscal rule testing --- l10n_br_account/demo/base_demo.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 4da29315dd09..4105570d01bf 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -2,6 +2,12 @@ + + + + + + From e3cf3efb3d8cbdd0377279de7fc50bc83c2689ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 22 Dec 2013 20:54:54 -0200 Subject: [PATCH 0377/1549] modified demo data for future tests --- l10n_br_account/demo/base_demo.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 4105570d01bf..d1301d5e6f7a 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -10,8 +10,11 @@ - + + + + From d1f852ebf70cdf3e9cc2907e89f6f21c5827be4c Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Mon, 23 Dec 2013 14:59:53 -0200 Subject: [PATCH 0378/1549] [IMP] Classe para registrar os eventos dos documentos eletronicos e seu respectivo local de salvamento do arquivo xml em disco --- l10n_br_account/l10n_br_account.py | 33 ++++++++++++++++ l10n_br_account/l10n_br_account_view.xml | 49 ++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 1aac055edaf5..19c2387ae20d 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -19,6 +19,7 @@ from openerp.osv import orm, fields from openerp import netsvc +import datetime TYPE = [ ('input', 'Entrada'), @@ -32,6 +33,38 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] +class L10n_brEletronicDocumentEvent(orm.Model): + + _name = 'l10n_br_account.eletronic_document_event' + + _columns = { + 'name': fields.char(u'Descrição', size=64, required=True), + 'company_id': fields.many2one( + 'res.company', 'Empresa', readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'file': fields.char('Caminho xml', readonly=True), + 'create_date': fields.datetime('Data Criação', readonly=True), + 'write_date': fields.datetime('Date Alteração', readonly=True), + 'end_date': fields.datetime('Fim'), + 'state': fields.selection([ + ('draft','Rascunho'), + ('send','Enviado'), + ('wait','Aguardando Retorno'), + ('done','Recebido Retorno'), + ],'Status', select=True, readonly=True), + } + + _defaults = { + 'state': 'draft', + } + + def set_done(self, cr, uid, ids, context=None): + if context is None: + context = {} + self.write(cr, uid, ids, {'state':'done', 'end_date': datetime.datetime.now()}, context=context) + return True + + class L10n_brAccountFiscalCategory(orm.Model): _name = 'l10n_br_account.fiscal.category' _description = 'Categoria Fiscail' diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 25e36355fa57..d1ba20c14868 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -170,6 +170,41 @@ + + + l10n_br_account.eletronic_document_event.form + l10n_br_account.eletronic_document_event + +
+
+ +
+ + + + + + + + +
+
+
+ + + l10n_br_account.eletronic_document_event.tree + l10n_br_account.eletronic_document_event + + + + + + + + + + + l10n_br_account.invoice.invalid.number.form @@ -341,6 +376,16 @@ form + + + Eventos Eletronicos + ir.actions.act_window + l10n_br_account.eletronic_document_event + tree,form + form + + + Inutilizar Faixa de Numeração @@ -350,6 +395,8 @@ form + + Tipo Fiscal de Parceiro @@ -415,6 +462,8 @@ + +
From 037fdda49d3f4e280831096dac309c253edbff11 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Mon, 23 Dec 2013 15:12:26 -0200 Subject: [PATCH 0379/1549] [IMP] Campo estado no form view --- l10n_br_account/l10n_br_account.py | 8 ++++---- l10n_br_account/l10n_br_account_view.xml | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 19c2387ae20d..8a459fdbed8b 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -38,14 +38,14 @@ class L10n_brEletronicDocumentEvent(orm.Model): _name = 'l10n_br_account.eletronic_document_event' _columns = { - 'name': fields.char(u'Descrição', size=64, required=True), + 'name': fields.char(u'Descrição', size=64, readonly=True), 'company_id': fields.many2one( 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'file': fields.char('Caminho xml', readonly=True), + states={'draft': [('readonly', False)]}), + 'file': fields.char('Caminho do arquivo', readonly=True), 'create_date': fields.datetime('Data Criação', readonly=True), 'write_date': fields.datetime('Date Alteração', readonly=True), - 'end_date': fields.datetime('Fim'), + 'end_date': fields.datetime('Data Finalização', readonly=True), 'state': fields.selection([ ('draft','Rascunho'), ('send','Enviado'), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index d1ba20c14868..74bfcec7a895 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -202,6 +202,7 @@ +
From 9feac8a6b227e9f072581d531828da70625883ad Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Mon, 23 Dec 2013 15:28:37 -0200 Subject: [PATCH 0380/1549] [REF] Corrigindo o nome da classe de Eletronic Document Event para Document Event --- l10n_br_account/l10n_br_account.py | 4 ++-- l10n_br_account/l10n_br_account_view.xml | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 8a459fdbed8b..aa1dc8df1569 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -33,9 +33,9 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] -class L10n_brEletronicDocumentEvent(orm.Model): +class L10n_brDocumentEvent(orm.Model): - _name = 'l10n_br_account.eletronic_document_event' + _name = 'l10n_br_account.document_event' _columns = { 'name': fields.char(u'Descrição', size=64, readonly=True), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 74bfcec7a895..6ec063d2bf18 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -171,9 +171,9 @@
- - l10n_br_account.eletronic_document_event.form - l10n_br_account.eletronic_document_event + + l10n_br_account.document_event.form + l10n_br_account.document_event
@@ -191,9 +191,9 @@ - - l10n_br_account.eletronic_document_event.tree - l10n_br_account.eletronic_document_event + + l10n_br_account.document_event.tree + l10n_br_account.document_event @@ -378,13 +378,13 @@ - + Eventos Eletronicos ir.actions.act_window - l10n_br_account.eletronic_document_event + l10n_br_account.document_event tree,form form - + @@ -464,7 +464,7 @@ - + From 21504f8b0e251824498b189aa40ef1d21c9b7e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Wed, 25 Dec 2013 17:05:24 -0200 Subject: [PATCH 0381/1549] converting l10n_br_sale and l10n_br_sale_stock to web_context_tunnel module, preserving all orginial on_change signatures --- l10n_br_account/__openerp__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index d7e48e9f173c..064ed16ab745 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -30,6 +30,7 @@ 'l10n_br_base', 'l10n_br_product', 'account_fiscal_position_rule', + 'web_context_tunnel', ], 'data': [ 'l10n_br_account_workflow.xml', From 7b7f3269e37b42b09aa0f195a083b31f6c76db79 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 25 Dec 2013 18:15:49 -0200 Subject: [PATCH 0382/1549] [IMP] Campo Eventos de documentos na aba Dados Adicionais/ Documento Fiscal das faturas de clientes --- l10n_br_account/account_invoice.py | 3 +++ l10n_br_account/l10n_br_account.py | 3 +++ l10n_br_account/l10n_br_account_view.xml | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 3ce31ed7a49a..69822cae5164 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -96,6 +96,9 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'account.fiscal.position', 'Fiscal Position', readonly=True, states={'draft': [('readonly', False)]}, domain="[('fiscal_category_id','=',fiscal_category_id)]"), + 'account_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos'), } def _default_fiscal_document(self, cr, uid, context): diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index aa1dc8df1569..2e9932251de6 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -42,6 +42,7 @@ class L10n_brDocumentEvent(orm.Model): 'company_id': fields.many2one( 'res.company', 'Empresa', readonly=True, states={'draft': [('readonly', False)]}), + 'origin': fields.char('Documento de Origem', size=64, help="Reference of the document that produced event.", readonly=True, states={'draft':[('readonly',False)]}), 'file': fields.char('Caminho do arquivo', readonly=True), 'create_date': fields.datetime('Data Criação', readonly=True), 'write_date': fields.datetime('Date Alteração', readonly=True), @@ -52,6 +53,8 @@ class L10n_brDocumentEvent(orm.Model): ('wait','Aguardando Retorno'), ('done','Recebido Retorno'), ],'Status', select=True, readonly=True), + 'document_event_ids': fields.many2one( + 'account.invoice', 'Documentos', ondelete='cascade') } _defaults = { diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 6ec063d2bf18..dd08dbf739a7 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -182,10 +182,12 @@ + + @@ -198,11 +200,13 @@ + + @@ -223,6 +227,7 @@ + @@ -398,7 +403,6 @@ - Tipo Fiscal de Parceiro ir.actions.act_window From 75d4d6a4077d9463940ed591e69ccc2c745b63ac Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 25 Dec 2013 18:30:06 -0200 Subject: [PATCH 0383/1549] =?UTF-8?q?[IMP]=20Eventos=20em=20inutiliza?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20numera=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 3 +++ l10n_br_account/l10n_br_account_view.xml | 1 + 2 files changed, 4 insertions(+) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 2e9932251de6..e7d750a453de 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -265,6 +265,9 @@ def _name_get(self, cr, uid, ids, field_name, arg, context=None): 'justificative': fields.char('Justificativa', size=255, readonly=True, states={'draft': [('readonly', False)]}, required=True), + 'invalid_number_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos'), } _defaults = { 'state': 'draft', diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index dd08dbf739a7..481dd6677e91 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -229,6 +229,7 @@ + From 6b830e7a59b78ee4874b2c4e8b58083ae7b84c6f Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 25 Dec 2013 19:14:32 -0200 Subject: [PATCH 0384/1549] [fix] Campo duplicado --- l10n_br_account/l10n_br_account_view.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 481dd6677e91..f2a49a2367fa 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -227,7 +227,6 @@ - From 2e0358b20564055b3fb1c5567024a512a64e9d63 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 25 Dec 2013 19:55:37 -0200 Subject: [PATCH 0385/1549] =?UTF-8?q?[IMP]=20Cria=C3=A7=C3=A3o=20da=20Clas?= =?UTF-8?q?se=20e=20View=20para=20registro=20e=20cancelamento=20de=20docum?= =?UTF-8?q?entos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 36 +++++++++++++++++++++ l10n_br_account/l10n_br_account_view.xml | 40 ++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index e7d750a453de..8ff33a1904a5 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -32,6 +32,42 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] +class L10n_brAccountInvoiceCancel(orm.Model): + _name = 'l10n_br_account.invoice.cancel' + _description = u'Cancelar Documento Eletrônico no Sefaz' + + _columns = { + 'invoice_id': fields.many2one('account.invoice', + 'Fatura'), + 'justificative': fields.char('Justificativa', size=255, + readonly=True, states={'draft': [('readonly', False)]}, + required=True), + 'cancel_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos'), + 'state': fields.selection( + [('draft', 'Rascunho'), ('cancel', 'Cancelado'), + ('done', u'Concluído')], 'Status', required=True), + } + + _defaults = { + 'state': 'draft', + } + + def _check_justificative(self, cr, uid, ids): + for invalid in self.browse(cr, uid, ids): + if len(invalid.justificative) < 15: + return False + return True + + _constraints = [ + (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) + ] + + def action_draft_done(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'done'}) + return True + class L10n_brDocumentEvent(orm.Model): diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index f2a49a2367fa..b12b70244c0d 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -7,6 +7,35 @@ + + l10n_br_account.invoice.cancel.form + l10n_br_account.invoice.cancel + +
+
+
+ + + + + + +
+
+ + + l10n_br_account.invoice.cancel.tree + l10n_br_account.invoice.cancel + + + + + + + + l10n_br_account.fiscal.document l10n_br_account.fiscal.document @@ -448,6 +477,15 @@ + + Cancelar Documento Eletrônico + ir.actions.act_window + l10n_br_account.invoice.cancel + tree,form + form + + + @@ -470,6 +508,8 @@ + + From 0cfbd0c761fc361757c303727c1e3a9270457517 Mon Sep 17 00:00:00 2001 From: mileo Date: Wed, 8 Jan 2014 00:28:16 -0200 Subject: [PATCH 0386/1549] =?UTF-8?q?[FIX][ADD]=20nome=20incorreto=20na=20?= =?UTF-8?q?view=20l10n=5Fbr=5Faccount=5Fview.=20Cria=C3=A7=C3=A3o=20do=20w?= =?UTF-8?q?izard=20para=20exibi=C3=A7=C3=A3o=20da=20consulta=20da=20chave?= =?UTF-8?q?=20da=20NFE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index b12b70244c0d..832df03bae15 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -503,11 +503,11 @@ - - + + From 1f00c3cfea20429a31728e67bdb80c3b017d9326 Mon Sep 17 00:00:00 2001 From: mileo Date: Wed, 15 Jan 2014 15:33:17 -0200 Subject: [PATCH 0387/1549] [FIX] Fix copy --- l10n_br_account/account_invoice.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 69822cae5164..aa6c1f9c8fe3 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -259,6 +259,7 @@ def copy(self, cr, uid, id, default={}, context=None): 'nfe_status': False, 'nfe_date': False, 'nfe_export_date': False, + 'account_document_event_ids': False, }) return super(AccountInvoice, self).copy(cr, uid, id, default, context) From 130e942b117b2d61ff07754d5bbc12796fcb404b Mon Sep 17 00:00:00 2001 From: mileo Date: Fri, 17 Jan 2014 11:45:33 -0200 Subject: [PATCH 0388/1549] [IMP] Melhoria no registro de eventos/processamentos --- l10n_br_account/l10n_br_account.py | 20 ++++++++++++++-- l10n_br_account/l10n_br_account_view.xml | 29 ++++++++++++++---------- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 8ff33a1904a5..ba0918c6c704 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -74,12 +74,28 @@ class L10n_brDocumentEvent(orm.Model): _name = 'l10n_br_account.document_event' _columns = { - 'name': fields.char(u'Descrição', size=64, readonly=True), + 'type': fields.selection( + [('0', u'Envio Lote'), + ('1', u'Consulta Recibo'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), + ('11', u'Consulta Destinadas'), ], 'Serviço'), + 'response': fields.char(u'Descrição', size=64, readonly=True), 'company_id': fields.many2one( 'res.company', 'Empresa', readonly=True, states={'draft': [('readonly', False)]}), 'origin': fields.char('Documento de Origem', size=64, help="Reference of the document that produced event.", readonly=True, states={'draft':[('readonly',False)]}), - 'file': fields.char('Caminho do arquivo', readonly=True), + 'file_sent': fields.char('Envio', readonly=True), + 'file_returned': fields.char('Retorno', readonly=True), + 'status': fields.char('Codigo', readonly=True), + 'message': fields.char('Mensagem', readonly=True), 'create_date': fields.datetime('Data Criação', readonly=True), 'write_date': fields.datetime('Date Alteração', readonly=True), 'end_date': fields.datetime('Data Finalização', readonly=True), diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 832df03bae15..450d2b4626fa 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -209,14 +209,18 @@
- + + - - - - - + + + + + + + +
@@ -227,14 +231,15 @@ l10n_br_account.document_event - + + - - - - - + + + + + From ca6539cd52c387ad02248d5f92dd702b9d98fbc0 Mon Sep 17 00:00:00 2001 From: mileo Date: Fri, 17 Jan 2014 19:54:01 -0200 Subject: [PATCH 0389/1549] [IMP] Send exception --- l10n_br_account/l10n_br_account.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index ba0918c6c704..45bc23797bf3 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -75,7 +75,8 @@ class L10n_brDocumentEvent(orm.Model): _columns = { 'type': fields.selection( - [('0', u'Envio Lote'), + [('-1', u'Exception'), + ('0', u'Envio Lote'), ('1', u'Consulta Recibo'), ('2', u'Cancelamento'), ('3', u'Inutilização'), From 8c491a274ba6e7639863ea69d940de00dc84ce13 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Jan 2014 15:10:10 -0200 Subject: [PATCH 0390/1549] =?UTF-8?q?Refactoring,=20tomar=20o=20c=C3=B3dig?= =?UTF-8?q?o=20mais=20leg=C3=ADvel=20e=20padronizado=20com=20o=20PEP8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 63 ++++++++++++++---------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 45bc23797bf3..8caf700ba748 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -32,24 +32,21 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] + class L10n_brAccountInvoiceCancel(orm.Model): _name = 'l10n_br_account.invoice.cancel' _description = u'Cancelar Documento Eletrônico no Sefaz' - _columns = { - 'invoice_id': fields.many2one('account.invoice', - 'Fatura'), - 'justificative': fields.char('Justificativa', size=255, - readonly=True, states={'draft': [('readonly', False)]}, - required=True), + 'invoice_id': fields.many2one( + 'account.invoice', 'Fatura'), + 'justificative': fields.char('Justificativa', size=255, readonly=True, + states={'draft': [('readonly', False)]}, required=True), 'cancel_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos'), + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), 'state': fields.selection( [('draft', 'Rascunho'), ('cancel', 'Cancelado'), ('done', u'Concluído')], 'Status', required=True), } - _defaults = { 'state': 'draft', } @@ -60,9 +57,10 @@ def _check_justificative(self, cr, uid, ids): return False return True - _constraints = [ - (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) - ] + _constraints = [( + _check_justificative, + 'Justificativa deve ter tamanho minimo de 15 caracteres.', + ['justificative'])] def action_draft_done(self, cr, uid, ids, *args): self.write(cr, uid, ids, {'state': 'done'}) @@ -70,29 +68,29 @@ def action_draft_done(self, cr, uid, ids, *args): class L10n_brDocumentEvent(orm.Model): - _name = 'l10n_br_account.document_event' - _columns = { 'type': fields.selection( [('-1', u'Exception'), - ('0', u'Envio Lote'), + ('0', u'Envio Lote'), ('1', u'Consulta Recibo'), - ('2', u'Cancelamento'), - ('3', u'Inutilização'), - ('4', u'Consulta NFE'), - ('5', u'Consulta Situação'), - ('6', u'Consulta Cadastro'), - ('7', u'DPEC Recepção'), - ('8', u'DPEC Consulta'), - ('9', u'Recepção Evento'), - ('10', u'Download'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), ('11', u'Consulta Destinadas'), ], 'Serviço'), 'response': fields.char(u'Descrição', size=64, readonly=True), 'company_id': fields.many2one( 'res.company', 'Empresa', readonly=True, states={'draft': [('readonly', False)]}), - 'origin': fields.char('Documento de Origem', size=64, help="Reference of the document that produced event.", readonly=True, states={'draft':[('readonly',False)]}), + 'origin': fields.char('Documento de Origem', size=64, + readonly=True, states={'draft': [('readonly', False)]}, + help="Reference of the document that produced event."), 'file_sent': fields.char('Envio', readonly=True), 'file_returned': fields.char('Retorno', readonly=True), 'status': fields.char('Codigo', readonly=True), @@ -100,16 +98,13 @@ class L10n_brDocumentEvent(orm.Model): 'create_date': fields.datetime('Data Criação', readonly=True), 'write_date': fields.datetime('Date Alteração', readonly=True), 'end_date': fields.datetime('Data Finalização', readonly=True), - 'state': fields.selection([ - ('draft','Rascunho'), - ('send','Enviado'), - ('wait','Aguardando Retorno'), - ('done','Recebido Retorno'), - ],'Status', select=True, readonly=True), + 'state': fields.selection( + [('draft', 'Rascunho'), ('send', 'Enviado'), + ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], + 'Status', select=True, readonly=True), 'document_event_ids': fields.many2one( 'account.invoice', 'Documentos', ondelete='cascade') } - _defaults = { 'state': 'draft', } @@ -117,7 +112,9 @@ class L10n_brDocumentEvent(orm.Model): def set_done(self, cr, uid, ids, context=None): if context is None: context = {} - self.write(cr, uid, ids, {'state':'done', 'end_date': datetime.datetime.now()}, context=context) + self.write(cr, uid, ids, + {'state': 'done', 'end_date': datetime.datetime.now()}, + context=context) return True From 2f0b9a3282d7ef78690fc79231cd56f6959de22d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Jan 2014 16:21:53 -0200 Subject: [PATCH 0391/1549] =?UTF-8?q?Adicionado=20permiss=C3=B5es=20de=20s?= =?UTF-8?q?eguran=C3=A7a=20para=20os=20novos=20objetos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/security/ir.model.access.csv | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index 65b0bcf59070..d01c35885077 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -29,3 +29,7 @@ "l10n_br_account_invoice_invalid_number_user","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_invoice",1,0,0,0 "account_tax_computation_user","account.tax.computation","model_account_tax_computation","account.group_account_invoice",1,0,0,0 "account_tax_computation_manager","account.tax.computation","model_account_tax_computation","account.group_account_manager",1,1,1,1 +"l10n_br_account_invoice_cancel_user","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_invoice",1,0,0,0 +"l10n_br_account_invoice_cancel_manager","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_manager",1,1,1,1 +"l10n_br_account_document_event_user","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_invoice",1,0,0,0 +"l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 From e4983ea4fc2cc1d9746e4e268e24736948ef90fe Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 28 Jan 2014 12:17:29 -0200 Subject: [PATCH 0392/1549] =?UTF-8?q?[FIX]=20Corrigido=20exporta=C3=A7?= =?UTF-8?q?=C3=A3o=20em=20txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/sped/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py index db59e1cdae91..390a02291068 100644 --- a/l10n_br_account/sped/__init__.py +++ b/l10n_br_account/sped/__init__.py @@ -19,4 +19,3 @@ import document import efd - From e5ca0a5424300aae0ebce7bc22e48c78512d4fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 9 Feb 2014 23:40:20 -0200 Subject: [PATCH 0393/1549] [FIX] fixed typo --- l10n_br_account/account_invoice.py | 2 +- l10n_br_account/product.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index aa6c1f9c8fe3..6d3d208aad60 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -69,7 +69,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): help="""Unique number of the invoice, computed automatically when the invoice is created."""), 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', requeried=True), + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), 'vendor_serie': fields.char( 'Série NF Entrada', size=12, readonly=True, states={'draft': [('readonly', False)]}, diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 5fc9e10d06db..fabe3a0abbe1 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -30,7 +30,7 @@ class ProductTemplate(orm.Model): 'service_type_id': fields.many2one( 'l10n_br_account.service.type', u'Tipo de Serviço'), 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', requeried=True), + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), } _defaults = { 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT From b244d8146c9b165ef286069d5f642818db3b3b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 10 Feb 2014 01:44:22 -0200 Subject: [PATCH 0394/1549] [REF] WARNING moved default 'Venda' fiscal category to l10n_br_account so it can be shared bewteen products and services. You need to change the ir_model_data id of this fiscal category by SQL to update your database --- l10n_br_account/data/l10n_br_account_data.xml | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 9aa3f227a649..88160a563dd2 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -12,14 +12,6 @@ service
- - - - - - 3 - - Contribuinte @@ -53,8 +45,21 @@ + + + Venda + Venda + output + sale + approved + + + + + + 3 3 @@ -361,4 +366,4 @@
- \ No newline at end of file + From 348c888031e12493f4b8171e83f0a92652c2af4f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 12 Feb 2014 10:42:18 -0200 Subject: [PATCH 0395/1549] Revert "[REF] WARNING moved default 'Venda' fiscal category to l10n_br_account so it can be shared bewteen products and services. You need to change the ir_model_data id of this fiscal category by SQL to update your database" This reverts commit f3bd4e8f9967900e1ffab32bd19c81848d663d94. --- l10n_br_account/data/l10n_br_account_data.xml | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 88160a563dd2..9aa3f227a649 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -12,6 +12,14 @@ service + + + + + + 3 + + Contribuinte @@ -45,21 +53,8 @@ - - - Venda - Venda - output - sale - approved - - - - - - 3 3 @@ -366,4 +361,4 @@ - + \ No newline at end of file From e32baeec6c4cfb157d9faf99f2d509a7932c257f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 17 Feb 2014 18:25:46 -0300 Subject: [PATCH 0396/1549] =?UTF-8?q?[FIX]=20Adicionado=20campo=20de=20tip?= =?UTF-8?q?o=20fiscal=20de=20parceiro=20na=20busca=20de=20regras=20de=20po?= =?UTF-8?q?si=C3=A7=C3=B5es=20fiscais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_fiscal_position_rule.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 0d8324d9a9cd..7b099c190871 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -91,6 +91,8 @@ def _map_domain(self, cr, uid, partner, addrs, company, '&', ('company_id', '=', company.id), use_domain, ('fiscal_type', '=', company.fiscal_type), ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), + '|', ('partner_fiscal_type_id', '=', kwargs.get('partner_fiscal_type_id')), + ('partner_fiscal_type_id', '=', False), '|', ('from_country', '=', from_country), ('from_country', '=', False), '|', ('from_state', '=', from_state), From 95a39464545886129346d4337bf1035a9ee65978 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 17 Feb 2014 18:35:31 -0300 Subject: [PATCH 0397/1549] =?UTF-8?q?[FIX]=20corrigido=20inclus=C3=A3o=20d?= =?UTF-8?q?e=20campo=20no=20metodo=20de=20busca=20das=20regras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_fiscal_position_rule.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 7b099c190871..70ff889d1370 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -83,6 +83,7 @@ def _map_domain(self, cr, uid, partner, addrs, company, from_country = company.partner_id.country_id.id from_state = company.partner_id.state_id.id fiscal_rule_parent_id = company.fiscal_rule_parent_id.id + partner_fiscal_type_id = partner.partner_fiscal_type_id.id document_date = context.get('date', time.strftime('%Y-%m-%d')) use_domain = context.get('use_domain', ('use_sale', '=', True)) @@ -91,7 +92,7 @@ def _map_domain(self, cr, uid, partner, addrs, company, '&', ('company_id', '=', company.id), use_domain, ('fiscal_type', '=', company.fiscal_type), ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), - '|', ('partner_fiscal_type_id', '=', kwargs.get('partner_fiscal_type_id')), + '|', ('partner_fiscal_type_id', '=', partner_fiscal_type_id), ('partner_fiscal_type_id', '=', False), '|', ('from_country', '=', from_country), ('from_country', '=', False), From ec1d3cbf0b282f7debef8434a5c9878dfb18f91d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 19 Feb 2014 15:11:02 -0300 Subject: [PATCH 0398/1549] =?UTF-8?q?[FIX]=20Removido=20label=20do=20campo?= =?UTF-8?q?=20m2m=20das=20posi=C3=A7=C3=B5es=20fiscais=20na=20vis=C3=A3o?= =?UTF-8?q?=20form=20da=20categoria=20fiscal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 450d2b4626fa..95b3336229d4 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -92,8 +92,8 @@
- - + + From e9a99195231eaa58f7f0b23f2d021d8ac0f28240 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 19 Feb 2014 15:15:28 -0300 Subject: [PATCH 0399/1549] =?UTF-8?q?[REF]=20Formata=C3=A7=C3=A3o=20do=20c?= =?UTF-8?q?=C3=B3digo,=20para=20remover=20linhas=20maiores=20de=2080?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/sped/efd/__init__.py | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/l10n_br_account/sped/efd/__init__.py b/l10n_br_account/sped/efd/__init__.py index e377df23c928..744c624b8ebe 100644 --- a/l10n_br_account/sped/efd/__init__.py +++ b/l10n_br_account/sped/efd/__init__.py @@ -1,18 +1,18 @@ # -*- encoding: utf-8 -*- -################################################################################# -# # -# Copyright (C) 2012 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -################################################################################# +############################################################################### +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### From 86c4401991ea00f21b291e495153077001bc7913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 9 Mar 2014 13:14:42 -0300 Subject: [PATCH 0400/1549] [FIX] typo --- l10n_br_account/l10n_br_account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 8caf700ba748..69e3cfde521a 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -120,7 +120,7 @@ def set_done(self, cr, uid, ids, context=None): class L10n_brAccountFiscalCategory(orm.Model): _name = 'l10n_br_account.fiscal.category' - _description = 'Categoria Fiscail' + _description = 'Categoria Fiscal' _columns = { 'code': fields.char(u'Código', size=254, required=True), 'name': fields.char(u'Descrição', size=254), From 9f4838cb6f6e5506e86f7efab7809e00288ca7aa Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Tue, 11 Mar 2014 22:38:57 -0300 Subject: [PATCH 0401/1549] =?UTF-8?q?Corrigido=20erros=20de=20digita=C3=A7?= =?UTF-8?q?=C3=A3o=20e=20adicionado=20tradu=C3=A7=C3=B5es=20aos=20m=C3=B3d?= =?UTF-8?q?ulos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/i18n/pt_BR.po | 9 +++++++++ l10n_br_account/l10n_br_account.py | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/i18n/pt_BR.po b/l10n_br_account/i18n/pt_BR.po index e69de29bb2d1..405b7c19b03c 100644 --- a/l10n_br_account/i18n/pt_BR.po +++ b/l10n_br_account/i18n/pt_BR.po @@ -0,0 +1,9 @@ +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_br_account +msgid "Brazilian Localization Account" +msgstr "Localização Brasileira - Módulo base contabilidade" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_br_sale_stock +msgid "Brazilian Localization Account" +msgstr "Localização Brasileira - Módulo principal que define as funcionalidades contabeis brasileira" diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 69e3cfde521a..4b1ea259b550 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -95,9 +95,9 @@ class L10n_brDocumentEvent(orm.Model): 'file_returned': fields.char('Retorno', readonly=True), 'status': fields.char('Codigo', readonly=True), 'message': fields.char('Mensagem', readonly=True), - 'create_date': fields.datetime('Data Criação', readonly=True), - 'write_date': fields.datetime('Date Alteração', readonly=True), - 'end_date': fields.datetime('Data Finalização', readonly=True), + 'create_date': fields.datetime(u'Data Criação', readonly=True), + 'write_date': fields.datetime(u'Data Alteração', readonly=True), + 'end_date': fields.datetime(u'Data Finalização', readonly=True), 'state': fields.selection( [('draft', 'Rascunho'), ('send', 'Enviado'), ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], From d47e8c2f8d8ed3fa3d468bb29fbceca5f3c4418b Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Thu, 13 Mar 2014 13:19:15 -0300 Subject: [PATCH 0402/1549] [FIX] Adiciona coluna state na tree invoice.cancel --- l10n_br_account/l10n_br_account_view.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 95b3336229d4..f14157ea0b36 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -29,9 +29,10 @@ l10n_br_account.invoice.cancel.tree l10n_br_account.invoice.cancel - + + From 288bc888e57fafb905a404f4e207a566466d45fd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 14 Mar 2014 15:48:02 -0300 Subject: [PATCH 0403/1549] =?UTF-8?q?Adicionado=20valor=20padr=C3=A3o=20pa?= =?UTF-8?q?ra=20tipo=20fiscal=20no=20cadastro=20de=20parceiros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/data/l10n_br_account_data.xml | 2 ++ l10n_br_account/l10n_br_account.py | 4 +++ l10n_br_account/l10n_br_account_view.xml | 1 + l10n_br_account/res_partner.py | 32 +++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 9aa3f227a649..36ce69065bf5 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -25,6 +25,7 @@ Contribuinte Contribuinte + @@ -33,6 +34,7 @@ Não Contribuinte Não Contribuinte + diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 4b1ea259b550..9fa1fb07db48 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -389,9 +389,13 @@ class L10n_brAccountPartnerFiscalType(orm.Model): 'code': fields.char(u'Código', size=16, required=True), 'name': fields.char(u'Descrição', size=64), 'is_company': fields.boolean('Pessoa Juridica?'), + 'default': fields.boolean(u'Tipo Fiscal Padrão'), 'icms': fields.boolean('Recupera ICMS'), 'ipi': fields.boolean('Recupera IPI') } + _defaults = { + 'default': True, + } class L10n_brAccountCNAE(orm.Model): diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index f14157ea0b36..33dd50c4ce4e 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -152,6 +152,7 @@ + diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index 81b2b4e61f0c..70dbe29525da 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -342,3 +342,35 @@ class ResPartner(orm.Model): 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', domain="[('is_company', '=', is_company)]") } + + def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, + context=None): + """Define o valor padão para o campo tipo fiscal, por padrão pega + o tipo fiscal para não contribuinte já que quando é criado um novo + parceiro o valor do campo is_company é false""" + ft_ids = self.pool.get('l10n_br_account.partner.fiscal.type').search( + cr, uid, [('default', '=', 'True'), + ('is_company', '=', is_company)], context=context) + + parnter_fiscal_type = self.pool.get('res.company').read( + cr, uid, ft_ids, ['id'], context=context) + print "ONCHANGE DEFAULT", parnter_fiscal_type + return parnter_fiscal_type[0]['id'] or False + + _defaults = { + 'partner_fiscal_type_id': _default_partner_fiscal_type_id, + } + + def onchange_mask_cnpj_cpf(self, cr, uid, ids, is_company, + cnpj_cpf, context=None): + result = super(ResPartner, self).onchange_mask_cnpj_cpf( + cr, uid, ids, is_company, cnpj_cpf, context) + print "passou aqui!" + ft_id = self._default_partner_fiscal_type_id( + cr, uid, is_company, context) + + print "ONCHANGE", ft_id + + if ft_id: + result['value']['partner_fiscal_type_id'] = ft_id + return result From 682e9f40c34a5f6f4273934b8a6c745241fcbe03 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 14 Mar 2014 15:55:35 -0300 Subject: [PATCH 0404/1549] =?UTF-8?q?[FIX]=20removido=20prints=20do=20c?= =?UTF-8?q?=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/res_partner.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index 70dbe29525da..c35d9ae165bd 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -354,7 +354,6 @@ def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, parnter_fiscal_type = self.pool.get('res.company').read( cr, uid, ft_ids, ['id'], context=context) - print "ONCHANGE DEFAULT", parnter_fiscal_type return parnter_fiscal_type[0]['id'] or False _defaults = { @@ -365,12 +364,9 @@ def onchange_mask_cnpj_cpf(self, cr, uid, ids, is_company, cnpj_cpf, context=None): result = super(ResPartner, self).onchange_mask_cnpj_cpf( cr, uid, ids, is_company, cnpj_cpf, context) - print "passou aqui!" ft_id = self._default_partner_fiscal_type_id( cr, uid, is_company, context) - print "ONCHANGE", ft_id - if ft_id: result['value']['partner_fiscal_type_id'] = ft_id return result From 80832be32520300e1d219c7f1ef4a214e5dd1a93 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 14 Mar 2014 16:02:32 -0300 Subject: [PATCH 0405/1549] [FIX] Verifica se existe um tipo fiscal --- l10n_br_account/res_partner.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index c35d9ae165bd..3438b3cdbdd6 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -348,13 +348,16 @@ def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, """Define o valor padão para o campo tipo fiscal, por padrão pega o tipo fiscal para não contribuinte já que quando é criado um novo parceiro o valor do campo is_company é false""" + result = False ft_ids = self.pool.get('l10n_br_account.partner.fiscal.type').search( cr, uid, [('default', '=', 'True'), ('is_company', '=', is_company)], context=context) parnter_fiscal_type = self.pool.get('res.company').read( cr, uid, ft_ids, ['id'], context=context) - return parnter_fiscal_type[0]['id'] or False + if parnter_fiscal_type: + result = parnter_fiscal_type[0]['id'] + return result _defaults = { 'partner_fiscal_type_id': _default_partner_fiscal_type_id, From 63e8d4087e646a9eeac9eca1d45e32ec5421f996 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 15 Mar 2014 01:14:12 -0300 Subject: [PATCH 0406/1549] =?UTF-8?q?[FIX]=20corrigido=20=C3=BAltimo=20com?= =?UTF-8?q?mit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 33dd50c4ce4e..fe1527555b98 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -32,7 +32,7 @@ - + From ea6a2893e26925d04559a2a87ab35842c6fac353 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 18 Mar 2014 16:00:23 -0300 Subject: [PATCH 0407/1549] =?UTF-8?q?Adicionado=20o=20campo=20de=20observa?= =?UTF-8?q?=C3=A7=C3=A3o=20fiscal=20na=20nota=20fiscal=20e=20criano=20uma?= =?UTF-8?q?=20op=C3=A7=C3=A3o=20em=20vendas=20onde=20pode=20escolher=20cop?= =?UTF-8?q?iar=20ou=20n=C3=A3o=20a=20observa=C3=A7=C3=A3o=20na=20nota=20fi?= =?UTF-8?q?scal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 6d3d208aad60..80b21c4ded68 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -99,6 +99,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'account_document_event_ids': fields.one2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), + 'fiscal_comment': fields.text('Observação Fiscal'), } def _default_fiscal_document(self, cr, uid, context): From 7ce514abb79e5980149b2af6833b2bb38f7244a6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sun, 30 Mar 2014 11:01:24 -0300 Subject: [PATCH 0408/1549] =?UTF-8?q?[FIX]=20Corrigido=20atributo=20domain?= =?UTF-8?q?=20no=20campo=20de=20endere=C3=A7o=20de=20entrega=20nos=20docum?= =?UTF-8?q?entos=20fiscais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 80b21c4ded68..aa042d70a9e7 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -79,7 +79,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): relation='account.move.line', string='Entry Lines'), 'document_serie_id': fields.many2one( 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id','=',fiscal_document_id),\ + domain="[('fiscal_document_id', '=', fiscal_document_id),\ ('company_id','=',company_id)]", readonly=True, states={'draft': [('readonly', False)]}), 'fiscal_document_id': fields.many2one( From 90a66c8d96316ea19bc526a6fe5592406cbdbd4b Mon Sep 17 00:00:00 2001 From: mileo Date: Wed, 2 Apr 2014 22:30:48 -0300 Subject: [PATCH 0409/1549] [FIX] Alterando local dos arquivos do Merge do florian-refound --- l10n_br_account/wizard/l10n_br_refund.py | 90 ------------------- .../wizard/l10n_br_refund_view.xml | 18 ---- 2 files changed, 108 deletions(-) delete mode 100644 l10n_br_account/wizard/l10n_br_refund.py delete mode 100644 l10n_br_account/wizard/l10n_br_refund_view.xml diff --git a/l10n_br_account/wizard/l10n_br_refund.py b/l10n_br_account/wizard/l10n_br_refund.py deleted file mode 100644 index d1fc6c93914b..000000000000 --- a/l10n_br_account/wizard/l10n_br_refund.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2013 Florian da Costa - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields -from lxml import etree - -OPERATION_TYPE = { - 'out_invoice': 'output', - 'in_invoice': 'input', - 'out_refund': 'input', - 'in_refund': 'output' -} - -JOURNAL_TYPE = { - 'out_invoice': 'sale', - 'in_invoice': 'purchase', - 'out_refund': 'sale_refund', - 'in_refund': 'purchase_refund' -} - -class account_invoice_refund(orm.TransientModel): - - _inherit = "account.invoice.refund" - _columns = { - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal', - domain="[('journal_type', '=', 'sale_refund'), ('fiscal_type', '=', 'product')]", required=True), - } - - - def compute_refund(self, cr, uid, ids, mode='refund', context=None): - inv_obj = self.pool.get('account.invoice') - if not context: - context = {} - res = super(account_invoice_refund, self).compute_refund(cr, uid, ids, mode, context) - domain = res['domain'] - ids_domain = [x for x in domain if x[0] == 'id'][0] - invoice_ids = ids_domain[2] - for wizard in self.browse(cr, uid, ids): - fiscal_category_id = wizard.fiscal_category_id.id - for invoice in inv_obj.browse(cr, uid, invoice_ids, context=context): - if invoice.payment_term: - payment_term = invoice.payment_term.id - else: - payment_term = False - if invoice.partner_bank_id: - bank = invoice.partner_bank_id.id - else: - bank = False - onchange = inv_obj.onchange_partner_id(cr, uid, [invoice.id], 'out_refund', invoice.partner_id.id, invoice.date_invoice, payment_term, bank, invoice.company_id.id, fiscal_category_id) - onchange['value']['fiscal_category_id'] = fiscal_category_id - inv_obj.write(cr, uid, [invoice.id], onchange['value'], context=context) - return res - - - - def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): - res = super(account_invoice_refund, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu) - if not context: - context = {} - type = context.get('type', 'out_invoice') - journal_type = JOURNAL_TYPE[type] - type = OPERATION_TYPE[type] - eview = etree.fromstring(res['arch']) - fiscal_categ = eview.xpath("//field[@name='fiscal_category_id']") - for field in fiscal_categ: - field.set('domain', "[('journal_type', '=', '%s'),('fiscal_type', '=', 'product'), ('type', '=', '%s')]" % (journal_type, type,)) - res['arch'] = etree.tostring(eview) - print res['arch'] - return res - - - - diff --git a/l10n_br_account/wizard/l10n_br_refund_view.xml b/l10n_br_account/wizard/l10n_br_refund_view.xml deleted file mode 100644 index 63b972e18dab..000000000000 --- a/l10n_br_account/wizard/l10n_br_refund_view.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - view_account_invoice_refund_br - account.invoice.refund - - - - - - - - - - From bc9ec2effc66562022b3df503c43536974f955cf Mon Sep 17 00:00:00 2001 From: Matheus Felix Date: Mon, 9 Jun 2014 21:52:24 -0300 Subject: [PATCH 0410/1549] =?UTF-8?q?[NEW]=20Cria=C3=A7=C3=A3o=20do=20mode?= =?UTF-8?q?lo=20e=20da=20vis=C3=A3o=20da=20Carta=20de=20Corre=C3=A7=C3=A3o?= =?UTF-8?q?=20(cherry=20picked=20from=20commit=2058f427fe9c1eae00a52ee1ad5?= =?UTF-8?q?befbd87df58aee5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 18 +++++++++++ l10n_br_account/l10n_br_account_view.xml | 40 +++++++++++++++++++++++- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 9fa1fb07db48..8cbf6b6604bb 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -33,6 +33,24 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] + +class L10n_brAccountcce(orm.Model): + _name = 'l10n_br_account_cce' + _description = u'Cartão de Correção no Sefaz' + _columns = { + 'invoice_id': fields.many2one( + 'account.invoice', 'Fatura'), + 'motivo': fields.text('Motivo', readonly=True + , required=True), + 'sequencia': fields.char('Sequencia', help="Indica a sequencia da carta de correcao"), + 'cce_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + } + + + + + class L10n_brAccountInvoiceCancel(orm.Model): _name = 'l10n_br_account.invoice.cancel' _description = u'Cancelar Documento Eletrônico no Sefaz' diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index fe1527555b98..a4379427bfc4 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -24,7 +24,22 @@ - + + + l10n_br_account_cce.form + l10n_br_account_cce + +
+ + + + + + + +
+
+ l10n_br_account.invoice.cancel.tree l10n_br_account.invoice.cancel @@ -37,6 +52,18 @@
+ + l10n_br_account_cce.tree + l10n_br_account_cce + + + + + + + + + l10n_br_account.fiscal.document l10n_br_account.fiscal.document @@ -492,6 +519,15 @@ form + + + Carta de Correção + ir.actions.act_window + l10n_br_account_cce + tree,form + form + + @@ -516,6 +552,8 @@ + + From cd4dfcf93c14398d720fea0b5c1ee9729aa833eb Mon Sep 17 00:00:00 2001 From: mileo Date: Mon, 16 Jun 2014 16:41:22 -0300 Subject: [PATCH 0411/1549] =?UTF-8?q?[REF]=20Corre=C3=A7=C3=A3o=20do=20nom?= =?UTF-8?q?e=20da=20classe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/l10n_br_account.py | 12 ++++-------- l10n_br_account/l10n_br_account_view.xml | 10 +++++----- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index 8cbf6b6604bb..ba4e2ab83699 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -2,6 +2,7 @@ ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2014 KMEE - www.kmee.com.br # # # #This program is free software: you can redistribute it and/or modify # #it under the terms of the GNU Affero General Public License as published by # @@ -33,24 +34,19 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] - -class L10n_brAccountcce(orm.Model): - _name = 'l10n_br_account_cce' +class L10n_brAccountCce(orm.Model): + _name = 'l10n_br_account.invoice.cce' _description = u'Cartão de Correção no Sefaz' _columns = { 'invoice_id': fields.many2one( 'account.invoice', 'Fatura'), 'motivo': fields.text('Motivo', readonly=True , required=True), - 'sequencia': fields.char('Sequencia', help="Indica a sequencia da carta de correcao"), + 'sequencia': fields.char('Sequencia', help="Indica a sequencia da carta de correcão"), 'cce_document_event_ids': fields.one2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') } - - - - class L10n_brAccountInvoiceCancel(orm.Model): _name = 'l10n_br_account.invoice.cancel' _description = u'Cancelar Documento Eletrônico no Sefaz' diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index a4379427bfc4..661d98648ca9 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -26,8 +26,8 @@ - l10n_br_account_cce.form - l10n_br_account_cce + l10n_br_account.invoice.cce.form + l10n_br_account.invoice.cce
@@ -53,8 +53,8 @@ - l10n_br_account_cce.tree - l10n_br_account_cce + l10n_br_account.invoice.cce.tree + l10n_br_account.invoice.cce @@ -523,7 +523,7 @@ Carta de Correção ir.actions.act_window - l10n_br_account_cce + l10n_br_account.invoice.cce tree,form form From 8a0168ce2cb44eadee1170b730da72acb00082b7 Mon Sep 17 00:00:00 2001 From: mileo Date: Thu, 12 Jun 2014 15:35:20 -0300 Subject: [PATCH 0412/1549] =?UTF-8?q?[NEW]=20Campo=20protocolo=20de=20tran?= =?UTF-8?q?smiss=C3=A3o,=20necessario=20para=20o=20cancelamento=20da=20fat?= =?UTF-8?q?ura?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index aa042d70a9e7..6f9327776bbb 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -258,6 +258,7 @@ def copy(self, cr, uid, id, default={}, context=None): 'internal_number': False, 'nfe_access_key': False, 'nfe_status': False, + 'nfe_protocol_number': False, 'nfe_date': False, 'nfe_export_date': False, 'account_document_event_ids': False, From eddebf4ef38aec9b334b8beaf9bbc21f00aeeb15 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Fri, 8 Aug 2014 01:00:20 -0300 Subject: [PATCH 0413/1549] [FIX] Issue #80 : Saldo diferente do total --- l10n_br_account/account.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index 8b951fe5045a..f027f3850531 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -50,11 +50,12 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, if tax.get('type') == 'quantity': tax['amount'] = round(product_qty * tax['percent'], precision) + tax['amount'] = round(total_line * tax['percent'], precision) + tax['amount'] = round(tax['amount'] * (1 - tax['base_reduction']), precision) + if tax.get('tax_discount'): result['tax_discount'] += tax['amount'] - tax['amount'] = round(total_line * tax['percent'], precision) - tax['amount'] = round(tax['amount'] * (1 - tax['base_reduction']), precision) if tax['percent']: tax['total_base'] = round(total_line * (1 - tax['base_reduction']), precision) tax['total_base_other'] = round(total_line - tax['total_base'], precision) From 740efb04ffc21ad350eedd510f7c3064cad60d48 Mon Sep 17 00:00:00 2001 From: MStuttgart Date: Wed, 17 Sep 2014 12:02:22 -0300 Subject: [PATCH 0414/1549] =?UTF-8?q?[FIX]=20Corre=C3=A7=C3=A3o=20de=20cam?= =?UTF-8?q?pos=20com=20caracteres=20especiais,=20sem=20a=20tag=20de=20unic?= =?UTF-8?q?ode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 10 +++++----- l10n_br_account/l10n_br_account.py | 4 ++-- l10n_br_account/res_company.py | 8 ++++---- l10n_br_account/res_partner.py | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 6f9327776bbb..cb33d41607d6 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -71,7 +71,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'fiscal_type': fields.selection( PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), 'vendor_serie': fields.char( - 'Série NF Entrada', size=12, readonly=True, + u'Série NF Entrada', size=12, readonly=True, states={'draft': [('readonly', False)]}, help=u"Série do número da Nota Fiscal do Fornecedor"), 'move_line_receivable_id': fields.function( @@ -99,7 +99,7 @@ def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): 'account_document_event_ids': fields.one2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), - 'fiscal_comment': fields.text('Observação Fiscal'), + 'fiscal_comment': fields.text(u'Observação Fiscal'), } def _default_fiscal_document(self, cr, uid, context): @@ -285,7 +285,7 @@ def action_internal_number(self, cr, uid, ids, context=None): if invalid_number: raise orm.except_orm( _(u'Número Inválido !'), - _("O número: %s da série: %s, esta inutilizado") % ( + _(u"O número: %s da série: %s, esta inutilizado") % ( sequence_read['number_next'], inv.document_serie_id.name)) @@ -363,8 +363,8 @@ def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): fcategory.property_journal.id or False if not result['value'].get('journal_id', False): raise orm.except_orm( - _('Nenhum Diário !'), - _("Categoria fiscal: '%s', não tem um diário contábil para a \ + _(u'Nenhum Diário !'), + _(u"Categoria fiscal: '%s', não tem um diário contábil para a \ empresa %s") % (fcategory.name, obj_company.name)) obj_fp_rule = self.pool.get('account.fiscal.position.rule') diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index ba4e2ab83699..bdfe3f9747b1 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -23,7 +23,7 @@ import datetime TYPE = [ - ('input', 'Entrada'), + ('input', u'Entrada'), ('output', u'Saída'), ] @@ -42,7 +42,7 @@ class L10n_brAccountCce(orm.Model): 'account.invoice', 'Fatura'), 'motivo': fields.text('Motivo', readonly=True , required=True), - 'sequencia': fields.char('Sequencia', help="Indica a sequencia da carta de correcão"), + 'sequencia': fields.char('Sequencia', help=u"Indica a sequencia da carta de correcão"), 'cce_document_event_ids': fields.one2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') } diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index 58b2970287fd..31e2d4b4ca08 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -47,14 +47,14 @@ class ResCompany(orm.Model): 'annual_revenue': fields.float( 'Faturamento Anual', required=True, digits_compute=dp.get_precision('Account'), - help="Faturamento Bruto dos últimos 12 meses"), + help=u"Faturamento Bruto dos últimos 12 meses"), 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, - 'Regime Tributário', required=True), + u'Regime Tributário', required=True), 'cnae_main_id': fields.many2one( - 'l10n_br_account.cnae', 'CNAE Primário'), + 'l10n_br_account.cnae', u'CNAE Primário'), 'cnae_secondary_ids': fields.many2many( 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', 'CNAE Segundários'), + 'company_id', 'cnae_id', u'CNAE Segundários'), 'ecnpj_a1_file': fields.binary('Arquivo e-CNPJ A1'), 'ecnpj_a1_password': fields.char('Senha e-CNPJ A1', size=64), 'fiscal_rule_parent_id': fields.many2one( diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index 3438b3cdbdd6..42d70d08560d 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -32,9 +32,9 @@ 'type_tax_use': fields.selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], 'Tax Application'), - 'inv_copy_note': fields.boolean('Copiar Observação na Nota Fiscal'), - 'asset_operation': fields.boolean('Operação de Aquisição de Ativo', - help="""Caso seja marcada essa opção, será incluido o IPI na base de + 'inv_copy_note': fields.boolean(u'Copiar Observação na Nota Fiscal'), + 'asset_operation': fields.boolean(u'Operação de Aquisição de Ativo', + help=u"""Caso seja marcada essa opção, será incluido o IPI na base de calculo do ICMS."""), 'state': fields.selection([('draft', u'Rascunho'), ('review', u'Revisão'), ('approved', u'Aprovada'), From 52ce9af0b849cc437e42e492e574c047dfe92351 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Sun, 5 Oct 2014 22:46:27 -0300 Subject: [PATCH 0415/1549] =?UTF-8?q?[FIX]=20Fixes=20#68=20:=20Remo=C3=A7?= =?UTF-8?q?=C3=A3o=20dos=20lan=C3=A7amentos=200.00=20e=20redu=C3=A7=C3=A3o?= =?UTF-8?q?=20da=20complexidade=20da=20cria=C3=A7=C3=A3o=20dos=20lan=C3=A7?= =?UTF-8?q?amentos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/account_invoice.py | 36 +++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index cb33d41607d6..49a8486e4170 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -290,7 +290,7 @@ def action_internal_number(self, cr, uid, ids, context=None): inv.document_serie_id.name)) seq_no = sequence.get_id(cr, uid, inv.document_serie_id.internal_sequence_id.id, context=context) - self.write(cr, uid, inv.id, {'internal_number': seq_no}) + self.write(cr, uid, inv.id, {'ref': seq_no, 'internal_number': seq_no}) return True def action_number(self, cr, uid, ids, context=None): @@ -324,23 +324,23 @@ def action_number(self, cr, uid, ids, context=None): self.log(cr, uid, inv_id, message, context=ctx) return True - def action_move_create(self, cr, uid, ids, *args): - result = super(AccountInvoice, self).action_move_create( - cr, uid, ids, *args) - for inv in self.browse(cr, uid, ids): - if inv.move_id: - self.pool.get('account.move').write( - cr, uid, [inv.move_id.id], {'ref': inv.internal_number}) - for move_line in inv.move_id.line_id: - self.pool.get('account.move.line').write( - cr, uid, [move_line.id], {'ref': inv.internal_number}) - move_lines = [x for x in inv.move_id.line_id if x.account_id.id == inv.account_id.id and x.account_id.type in ('receivable', 'payable')] - i = len(move_lines) - for move_line in move_lines: - move_line_name = '%s/%s' % (inv.internal_number, i) - self.pool.get('account.move.line').write( - cr, uid, [move_line.id], {'name': move_line_name}) - i -= 1 + def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): + """finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines + Hook method to be overridden in additional modules to verify and possibly alter the + move lines to be created by an invoice, for special cases. + :param invoice_browse: browsable record of the invoice that is generating the move lines + :param move_lines: list of dictionaries with the account.move.lines (as for create()) + :return: the (possibly updated) final move_lines to create for this invoice + """ + move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(cr, uid, invoice_browse, move_lines) + cont=1 + result = [] + for move_line in move_lines: + if (move_line[2]['debit'] or move_line[2]['credit']): + if (move_line[2]['account_id'] == invoice_browse.account_id.id): + move_line[2]['name'] = '%s/%s' % ( invoice_browse.internal_number, cont) + cont +=1 + result.append(move_line) return result def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): From 55d3feb6f770544b2f1611c88cfe8db4072b55dd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 22 Oct 2014 17:37:58 -0200 Subject: [PATCH 0416/1549] =?UTF-8?q?Adicionados=20arquivos=20README.md=20?= =?UTF-8?q?para=20descri=C3=A7=C3=A3o=20dos=20m=C3=B3dulos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 l10n_br_account/README.md diff --git a/l10n_br_account/README.md b/l10n_br_account/README.md new file mode 100644 index 000000000000..bfa09df78156 --- /dev/null +++ b/l10n_br_account/README.md @@ -0,0 +1,2 @@ +Módulo Base Contabilidade +========================= From 59bd331d0664333d23f95825a7aa17afce5dc577 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 22 Oct 2014 18:38:38 -0200 Subject: [PATCH 0417/1549] [MIGRATION] initial commit to new branch 8.0 before migration --- l10n_br_account/README.md | 2 - l10n_br_account/__init__.py | 27 - l10n_br_account/__openerp__.py | 60 -- l10n_br_account/account.py | 195 ---- .../account_fiscal_position_rule.py | 203 ---- .../account_fiscal_position_rule_view.xml | 125 --- .../account_fiscal_position_workflow.xml | 79 -- l10n_br_account/account_invoice.py | 626 ------------- l10n_br_account/account_invoice_view.xml | 174 ---- l10n_br_account/account_view.xml | 32 - .../data/l10n_br_account.fiscal.document.csv | 2 - l10n_br_account/data/l10n_br_account_data.xml | 366 -------- l10n_br_account/demo/account.account.csv | 886 ------------------ .../demo/account_financial_demo.xml | 81 -- l10n_br_account/demo/account_fiscal_demo.xml | 8 - l10n_br_account/demo/account_tax_code.xml | 50 - l10n_br_account/demo/base_demo.xml | 80 -- l10n_br_account/i18n/pt_BR.po | 9 - l10n_br_account/images/l10n_br-hover.png | Bin 5558 -> 0 bytes l10n_br_account/images/l10n_br.png | Bin 4953 -> 0 bytes l10n_br_account/l10n_br_account.py | 482 ---------- l10n_br_account/l10n_br_account_view.xml | 560 ----------- l10n_br_account/l10n_br_account_workflow.xml | 79 -- l10n_br_account/product.py | 49 - l10n_br_account/product_view.xml | 46 - l10n_br_account/res_company.py | 67 -- l10n_br_account/res_company_view.xml | 43 - l10n_br_account/res_partner.py | 375 -------- l10n_br_account/res_partner_view.xml | 153 --- l10n_br_account/security/ir.model.access.csv | 35 - .../security/l10n_br_account_security.xml | 33 - l10n_br_account/sped/__init__.py | 21 - l10n_br_account/sped/document.py | 42 - l10n_br_account/sped/efd/__init__.py | 18 - l10n_br_account/static/src/img/icon.png | Bin 11654 -> 0 bytes 35 files changed, 5008 deletions(-) delete mode 100644 l10n_br_account/README.md delete mode 100644 l10n_br_account/__init__.py delete mode 100644 l10n_br_account/__openerp__.py delete mode 100644 l10n_br_account/account.py delete mode 100755 l10n_br_account/account_fiscal_position_rule.py delete mode 100644 l10n_br_account/account_fiscal_position_rule_view.xml delete mode 100644 l10n_br_account/account_fiscal_position_workflow.xml delete mode 100644 l10n_br_account/account_invoice.py delete mode 100644 l10n_br_account/account_invoice_view.xml delete mode 100644 l10n_br_account/account_view.xml delete mode 100644 l10n_br_account/data/l10n_br_account.fiscal.document.csv delete mode 100644 l10n_br_account/data/l10n_br_account_data.xml delete mode 100644 l10n_br_account/demo/account.account.csv delete mode 100644 l10n_br_account/demo/account_financial_demo.xml delete mode 100644 l10n_br_account/demo/account_fiscal_demo.xml delete mode 100644 l10n_br_account/demo/account_tax_code.xml delete mode 100644 l10n_br_account/demo/base_demo.xml delete mode 100644 l10n_br_account/i18n/pt_BR.po delete mode 100644 l10n_br_account/images/l10n_br-hover.png delete mode 100644 l10n_br_account/images/l10n_br.png delete mode 100644 l10n_br_account/l10n_br_account.py delete mode 100644 l10n_br_account/l10n_br_account_view.xml delete mode 100644 l10n_br_account/l10n_br_account_workflow.xml delete mode 100644 l10n_br_account/product.py delete mode 100644 l10n_br_account/product_view.xml delete mode 100644 l10n_br_account/res_company.py delete mode 100644 l10n_br_account/res_company_view.xml delete mode 100644 l10n_br_account/res_partner.py delete mode 100644 l10n_br_account/res_partner_view.xml delete mode 100644 l10n_br_account/security/ir.model.access.csv delete mode 100644 l10n_br_account/security/l10n_br_account_security.xml delete mode 100644 l10n_br_account/sped/__init__.py delete mode 100644 l10n_br_account/sped/document.py delete mode 100644 l10n_br_account/sped/efd/__init__.py delete mode 100644 l10n_br_account/static/src/img/icon.png diff --git a/l10n_br_account/README.md b/l10n_br_account/README.md deleted file mode 100644 index bfa09df78156..000000000000 --- a/l10n_br_account/README.md +++ /dev/null @@ -1,2 +0,0 @@ -Módulo Base Contabilidade -========================= diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py deleted file mode 100644 index 5d55b2118370..000000000000 --- a/l10n_br_account/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -import l10n_br_account -import sped -import res_company -import res_partner -import account -import account_invoice -import product -import account_fiscal_position_rule diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py deleted file mode 100644 index 064ed16ab745..000000000000 --- a/l10n_br_account/__openerp__.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009-2013 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -{ - 'name': 'Brazilian Localization Account', - 'description': 'Brazilian Localization Account', - 'category': 'Localisation', - 'license': 'AGPL-3', - 'author': 'Akretion, OpenERP Brasil', - 'website': 'http://openerpbrasil.org', - 'version': '7.0', - 'depends': [ - 'l10n_br', - 'l10n_br_base', - 'l10n_br_product', - 'account_fiscal_position_rule', - 'web_context_tunnel', - ], - 'data': [ - 'l10n_br_account_workflow.xml', - 'account_fiscal_position_workflow.xml', - 'data/l10n_br_account.fiscal.document.csv', - 'data/l10n_br_account_data.xml', - 'account_view.xml', - 'account_fiscal_position_rule_view.xml', - 'account_invoice_view.xml', - 'l10n_br_account_view.xml', - 'res_partner_view.xml', - 'product_view.xml', - 'res_company_view.xml', - 'security/ir.model.access.csv', - 'security/l10n_br_account_security.xml', - ], - 'demo': [ - 'demo/account.account.csv', - 'demo/account_tax_code.xml', - 'demo/account_financial_demo.xml', - 'demo/account_fiscal_demo.xml', - 'demo/base_demo.xml', - ], - 'test': [], - 'installable': True, - 'auto_install': True, -} diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py deleted file mode 100644 index f027f3850531..000000000000 --- a/l10n_br_account/account.py +++ /dev/null @@ -1,195 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields - - -class AccountJournal(orm.Model): - _inherit = 'account.journal' - _columns = { - 'revenue_expense': fields.boolean('Gera Financeiro') - } - - -class AccountTaxComputation(orm.Model): - _name = 'account.tax.computation' - _columns = { - 'name': fields.char('Name', size=64) - } - - -class AccountTax(orm.Model): - _inherit = 'account.tax' - - def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, - precision): - result = {'tax_discount': 0.0, 'taxes': []} - - for tax in taxes: - if tax.get('type') == 'weight' and product: - product_read = self.pool.get('product.product').read( - cr, uid, product, ['weight_net']) - tax['amount'] = round((product_qty * product_read.get('weight_net', 0.0)) * tax['percent'], precision) - - if tax.get('type') == 'quantity': - tax['amount'] = round(product_qty * tax['percent'], precision) - - tax['amount'] = round(total_line * tax['percent'], precision) - tax['amount'] = round(tax['amount'] * (1 - tax['base_reduction']), precision) - - if tax.get('tax_discount'): - result['tax_discount'] += tax['amount'] - - if tax['percent']: - tax['total_base'] = round(total_line * (1 - tax['base_reduction']), precision) - tax['total_base_other'] = round(total_line - tax['total_base'], precision) - else: - tax['total_base'] = 0.00 - tax['total_base_other'] = 0.00 - - result['taxes'] = taxes - return result - - def compute_all(self, cr, uid, taxes, price_unit, quantity, - product=None, partner=None, force_excluded=False, - fiscal_position=False, insurance_value=0.0, - freight_value=0.0, other_costs_value=0.0): - """Compute taxes - - Returns a dict of the form:: - - { - 'total': Total without taxes, - 'total_included': Total with taxes, - 'total_tax_discount': Total Tax Discounts, - 'taxes': , - 'total_base': Total Base by tax, - } - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user. - - 'taxes': List with all taxes id. - - 'price_unit': Product price unit. - - 'quantity': Product quantity. - - 'force_excluded': Used to say that we don't want to consider - the value of field price_include of tax. - It's used in encoding by line where you don't - matter if you encoded a tax with that boolean - to True or False. - """ - obj_precision = self.pool.get('decimal.precision') - precision = obj_precision.precision_get(cr, uid, 'Account') - result = super(AccountTax, self).compute_all(cr, uid, taxes, - price_unit, quantity, product, partner, force_excluded) - totaldc = 0.0 - calculed_taxes = [] - - for tax in result['taxes']: - tax_list = [tx for tx in taxes if tx.id == tax['id']] - if tax_list: - tax_brw = tax_list[0] - tax['domain'] = tax_brw.domain - tax['type'] = tax_brw.type - tax['percent'] = tax_brw.amount - tax['base_reduction'] = tax_brw.base_reduction - tax['amount_mva'] = tax_brw.amount_mva - tax['tax_discount'] = tax_brw.base_code_id.tax_discount - - common_taxes = [tx for tx in result['taxes'] if tx['domain']] - result_tax = self._compute_tax(cr, uid, common_taxes, result['total'], - product, quantity, precision) - totaldc += result_tax['tax_discount'] - calculed_taxes += result_tax['taxes'] - - return { - 'total': result['total'], - 'total_included': result['total_included'], - 'total_tax_discount': totaldc, - 'taxes': calculed_taxes - } - - -class WizardMultiChartsAccounts(orm.TransientModel): - _inherit = 'wizard.multi.charts.accounts' - - def execute(self, cr, uid, ids, context=None): - """This function is called at the confirmation of the wizard to - generate the COA from the templates. It will read all the provided - information to create the accounts, the banks, the journals, the - taxes, the tax codes, the accounting properties... accordingly for - the chosen company. - - This is override in Brazilian Localization to copy CFOP - from fiscal positions template to fiscal positions. - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user. - - 'ids': orm_memory id used to read all data. - - 'context': Context. - """ - result = super(WizardMultiChartsAccounts, self).execute( - cr, uid, ids, context) - - obj_multi = self.browse(cr, uid, ids[0]) - obj_fp_template = self.pool.get('account.fiscal.position.template') - obj_fp = self.pool.get('account.fiscal.position') - - chart_template_id = obj_multi.chart_template_id.id - company_id = obj_multi.company_id.id - - fp_template_ids = obj_fp_template.search(cr, uid, - [('chart_template_id', '=', chart_template_id)]) - - for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, - context=context): - if fp_template.cfop_id: - fp_id = obj_fp.search(cr, uid, - [('name', '=', fp_template.name), - ('company_id', '=', company_id)]) - - if fp_id: - obj_fp.write(cr, uid, fp_id, - {'cfop_id': fp_template.cfop_id.id}) - return result - - -class AccountAccount(orm.Model): - _inherit = 'account.account' - - def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): - """Hack to allow re-shaping demo chart of account in demo mode""" - cr.execute("""SELECT demo - FROM ir_module_module WHERE name = 'l10n_br_account';""") - if cr.fetchone()[0]: - return True - else: - return super(AccountAccount, self)._check_allow_type_change( - cr, uid, ids, context) - - def _check_allow_code_change(self, cr, uid, ids, context=None): - """Hack to allow re-shaping demo chart of account in demo mode""" - cr.execute("""SELECT demo - FROM ir_module_module WHERE name = 'l10n_br_account';""") - if cr.fetchone()[0]: - return True - else: - return super(AccountAccount, self)._check_allow_code_change( - cr, uid, ids, context) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py deleted file mode 100755 index 70ff889d1370..000000000000 --- a/l10n_br_account/account_fiscal_position_rule.py +++ /dev/null @@ -1,203 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -import time - -from openerp.osv import orm, fields -from openerp.addons import decimal_precision as dp -from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT - -FISCAL_RULE_COLUMNS = { - 'partner_fiscal_type_id': fields.many2one( - 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria'), - 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, - u'Regime Tributário', required=True), - 'revenue_start': fields.float( - 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto"), - 'revenue_end': fields.float( - 'Faturamento Final', digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto") -} - -OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE = { - 'parent_id': fields.many2one( - 'account.fiscal.position.rule.template', 'Regra Pai'), - 'child_ids': fields.one2many( - 'account.fiscal.position.rule.template', - 'parent_id', 'Regras Filhas'), -} - -OTHERS_FISCAL_RULE_COLUMNS = { - 'parent_id': fields.many2one( - 'account.fiscal.position.rule', 'Regra Pai'), - 'child_ids': fields.one2many( - 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas'), -} - -FISCAL_RULE_DEFAULTS = { - 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, - 'revenue_start': 0.00, - 'revenue_end': 0.00 -} - - -class AccountFiscalPositionRuleTemplate(orm.Model): - _inherit = 'account.fiscal.position.rule.template' - _columns = dict( - FISCAL_RULE_COLUMNS.items() + - OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE.items()) - _defaults = FISCAL_RULE_DEFAULTS - - -class AccountFiscalPositionRule(orm.Model): - _inherit = 'account.fiscal.position.rule' - _columns = dict( - FISCAL_RULE_COLUMNS.items() + - OTHERS_FISCAL_RULE_COLUMNS.items()) - _defaults = FISCAL_RULE_DEFAULTS - - def _map_domain(self, cr, uid, partner, addrs, company, - context=None, **kwargs): - if context is None: - context = {} - - from_country = company.partner_id.country_id.id - from_state = company.partner_id.state_id.id - fiscal_rule_parent_id = company.fiscal_rule_parent_id.id - partner_fiscal_type_id = partner.partner_fiscal_type_id.id - - document_date = context.get('date', time.strftime('%Y-%m-%d')) - use_domain = context.get('use_domain', ('use_sale', '=', True)) - - domain = [ - '&', ('company_id', '=', company.id), use_domain, - ('fiscal_type', '=', company.fiscal_type), - ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), - '|', ('partner_fiscal_type_id', '=', partner_fiscal_type_id), - ('partner_fiscal_type_id', '=', False), - '|', ('from_country', '=', from_country), - ('from_country', '=', False), - '|', ('from_state', '=', from_state), - ('from_state', '=', False), - '|', ('parent_id', '=', fiscal_rule_parent_id), - ('parent_id', '=', False), - '|', ('date_start', '=', False), - ('date_start', '<=', document_date), - '|', ('date_end', '=', False), - ('date_end', '>=', document_date), - '|', ('revenue_start', '=', False), - ('revenue_start', '<=', company.annual_revenue), - '|', ('revenue_end', '=', False), - ('revenue_end', '>=', company.annual_revenue) - ] - - for address_type, address in addrs.items(): - key_country = 'to_%s_country' % address_type - key_state = 'to_%s_state' % address_type - to_country = address.country_id.id or False - domain += ['|', (key_country, '=', to_country), - (key_country, '=', False)] - to_state = address.state_id.id or False - domain += ['|', (key_state, '=', to_state), - (key_state, '=', False)] - - return domain - - def product_fiscal_category_map(self, cr, uid, product_id=False, - fiscal_category_id=False): - result = False - - if not product_id or not fiscal_category_id: - return result - - product_tmpl_id = self.pool.get('product.product').read( - cr, uid, product_id, ['product_tmpl_id'])['product_tmpl_id'][0] - default_product_fiscal_category = self.pool.get( - 'l10n_br_account.product.category').search( - cr, uid, [('product_tmpl_id', '=', product_tmpl_id), - ('fiscal_category_source_id', '=', fiscal_category_id)]) - if default_product_fiscal_category: - fc_des_id = self.pool.get('l10n_br_account.product.category').read( - cr, uid, default_product_fiscal_category, - ['fiscal_category_destination_id'] - )[0]['fiscal_category_destination_id'][0] - result = fc_des_id - return result - - -class WizardAccountFiscalPositionRule(orm.TransientModel): - _inherit = 'wizard.account.fiscal.position.rule' - - def action_create(self, cr, uid, ids, context=None): - super(WizardAccountFiscalPositionRule, self).action_create( - cr, uid, ids, context) - - obj_wizard = self.browse(cr, uid, ids[0]) - - obj_fp = self.pool.get('account.fiscal.position') - obj_fpr = self.pool.get('account.fiscal.position.rule') - obj_fpr_templ = self.pool.get('account.fiscal.position.rule.template') - - company_id = obj_wizard.company_id.id - pfr_ids = obj_fpr_templ.search(cr, uid, []) - - for fpr_template in obj_fpr_templ.browse(cr, uid, pfr_ids): - - from_country = fpr_template.from_country.id or False - from_state = fpr_template.from_state.id or False - to_invoice_country = fpr_template.to_invoice_country.id or False - to_invoice_state = fpr_template.to_invoice_state.id or False - partner_ft_id = fpr_template.partner_fiscal_type_id.id or False - fiscal_category_id = fpr_template.fiscal_category_id.id or False - - fiscal_position_id = False - fp_id = obj_fp.search( - cr, uid, [('name', '=', fpr_template.fiscal_position_id.name), - ('company_id', '=', company_id)],) - - if fp_id: - fiscal_position_id = fp_id[0] - - fprt_id = obj_fpr.search( - cr, uid, - [('name', '=', fpr_template.name), - ('company_id', '=', company_id), - ('description', '=', fpr_template.description), - ('from_country', '=', from_country), - ('from_state', '=', from_state), - ('to_invoice_country', '=', to_invoice_country), - ('to_invoice_state', '=', to_invoice_state), - ('use_sale', '=', fpr_template.use_sale), - ('use_invoice', '=', fpr_template.use_invoice), - ('use_purchase', '=', fpr_template.use_purchase), - ('use_picking', '=', fpr_template.use_picking), - ('fiscal_position_id', '=', fiscal_position_id)]) - - if fprt_id: - obj_fpr.write( - cr, uid, fprt_id, { - 'partner_fiscal_type_id': partner_ft_id, - 'fiscal_category_id': fiscal_category_id, - 'fiscal_type': fpr_template.fiscal_type, - 'revenue_start': fpr_template.revenue_start, - 'revenue_end': fpr_template.revenue_end}) - return {} diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml deleted file mode 100644 index 10b0c4b3b887..000000000000 --- a/l10n_br_account/account_fiscal_position_rule_view.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - l10n_br_account.fiscal.position.rule.template.tree - - account.fiscal.position.rule.template - - - - - - - - - - - l10n_br_account.fiscal.position.rule.tree - account.fiscal.position.rule - - - - - - - - - - - l10n_br_account.fiscal.position.rule.template.form - account.fiscal.position.rule.template - - - - - - - - - - - - - - - - - - - - - - - l10n_br_account.fiscal.position.rule.form - account.fiscal.position.rule - - - - - - - - - - - - - - - - - - - - - - - l10n_br_sale.fiscal.position.rule.template.search - account.fiscal.position.rule.template - - - - - - - - - - - - - - - - - - - - - - - l10n_br_sale.fiscal.position.rule.search - account.fiscal.position.rule - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_br_account/account_fiscal_position_workflow.xml b/l10n_br_account/account_fiscal_position_workflow.xml deleted file mode 100644 index f4255d95674b..000000000000 --- a/l10n_br_account/account_fiscal_position_workflow.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - Fiscal Position Approval - l10n_br_account.fiscal.category - True - - - - - - True - draft - - - - - review - write({'state':'review'}) - function - - - - - approved - write({'state':'approved'}) - function - - - - - unapproved - True - write({'state':'unapproved'}) - function - - - - - - - fiscal_category_review - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_unapproved - - - - diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py deleted file mode 100644 index 49a8486e4170..000000000000 --- a/l10n_br_account/account_invoice.py +++ /dev/null @@ -1,626 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from lxml import etree - -from openerp import netsvc -from openerp.osv import orm, fields -from openerp.addons import decimal_precision as dp -from openerp.tools.translate import _ - -from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT - -OPERATION_TYPE = { - 'out_invoice': 'output', - 'in_invoice': 'input', - 'out_refund': 'input', - 'in_refund': 'output' -} - -JOURNAL_TYPE = { - 'out_invoice': 'sale', - 'in_invoice': 'purchase', - 'out_refund': 'sale_refund', - 'in_refund': 'purchase_refund' -} - - -class AccountInvoice(orm.Model): - _inherit = 'account.invoice' - - def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): - res = {} - for invoice in self.browse(cr, uid, ids, context=context): - res[invoice.id] = [] - if not invoice.move_id: - continue - data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable') and invoice.journal_id.revenue_expense] - New_ids = [] - for line in data_lines: - New_ids.append(line.id) - New_ids.sort() - res[invoice.id] = New_ids - return res - - _columns = { - 'issuer': fields.selection( - [('0', u'Emissão própria'), - ('1', 'Terceiros')], 'Emitente', readonly=True, - states={'draft': [('readonly', False)]}), - 'internal_number': fields.char( - 'Invoice Number', size=32, readonly=True, - states={'draft': [('readonly', False)]}, - help="""Unique number of the invoice, computed - automatically when the invoice is created."""), - 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), - 'vendor_serie': fields.char( - u'Série NF Entrada', size=12, readonly=True, - states={'draft': [('readonly', False)]}, - help=u"Série do número da Nota Fiscal do Fornecedor"), - 'move_line_receivable_id': fields.function( - _get_receivable_lines, method=True, type='many2many', - relation='account.move.line', string='Entry Lines'), - 'document_serie_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id),\ - ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', 'Documento', readonly=True, - states={'draft': [('readonly', False)]}), - 'fiscal_document_electronic': fields.related( - 'fiscal_document_id', 'electronic', type='boolean', readonly=True, - relation='l10n_br_account.fiscal.document', store=True, - string='Electronic'), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal', - readonly=True, states={'draft': [('readonly', False)]}), - 'fiscal_position': fields.many2one( - 'account.fiscal.position', 'Fiscal Position', readonly=True, - states={'draft': [('readonly', False)]}, - domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'account_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos'), - 'fiscal_comment': fields.text(u'Observação Fiscal'), - } - - def _default_fiscal_document(self, cr, uid, context): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - fiscal_document = self.pool.get('res.company').read( - cr, uid, user.company_id.id, ['service_invoice_id'], - context=context)['service_invoice_id'] - - return fiscal_document and fiscal_document[0] or False - - def _default_fiscal_document_serie(self, cr, uid, context): - fiscal_document_serie = False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - company = self.pool.get('res.company').browse( - cr, uid, user.company_id.id, context=context) - - fiscal_document_serie = company.document_serie_service_id and \ - company.document_serie_service_id.id or False - - return fiscal_document_serie - - _defaults = { - 'issuer': '0', - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - 'fiscal_document_id': _default_fiscal_document, - 'document_serie_id': _default_fiscal_document_serie, - } - - def _check_invoice_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - invoices = self.browse(cr, uid, ids, context=context) - domain = [] - for invoice in invoices: - if not invoice.number: - continue - fiscal_document = invoice.fiscal_document_id and \ - invoice.fiscal_document_id.id or False - domain.extend([('internal_number', '=', invoice.number), - ('fiscal_type', '=', invoice.fiscal_type), - ('fiscal_document_id', '=', fiscal_document) - ]) - if invoice.issuer == '0': - domain.extend( - [('company_id', '=', invoice.company_id.id), - ('internal_number', '=', invoice.number), - ('fiscal_document_id', '=', invoice.fiscal_document_id.id), - ('issuer', '=', '0')]) - else: - domain.extend( - [('partner_id', '=', invoice.partner_id.id), - ('vendor_serie', '=', invoice.vendor_serie), - ('issuer', '=', '1')]) - - invoice_id = self.pool.get('account.invoice').search( - cr, uid, domain) - if len(invoice_id) > 1: - return False - return True - - _constraints = [ - (_check_invoice_number, - u"Error!\nNão é possível registrar \ - documentos fiscais com números repetidos.", - ['number']), - ] - - #TODO - Melhorar esse método! - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - result = super(AccountInvoice, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if not view_type: - view_id = self.pool.get('ir.ui.view').search( - cr, uid, [('name', '=', 'account.invoice.tree')]) - view_type = 'tree' - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - fiscal_types = eview.xpath("//field[@name='invoice_line']") - for fiscal_type in fiscal_types: - fiscal_type.set( - 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( - context['type'], - context.get('fiscal_type', 'product'))) - - fiscal_categories = eview.xpath( - "//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set( - 'domain', - """[('fiscal_type', '=', '%s'), ('type', '=', '%s'), - ('state', '=', 'approved'), - ('journal_type', '=', '%s')]""" - % (context.get('fiscal_type', 'product'), - OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - document_series = eview.xpath( - "//field[@name='document_serie_id']") - for document_serie_id in document_series: - document_serie_id.set( - 'domain', "[('fiscal_type', '=', '%s')]" - % (context.get('fiscal_type', 'product'))) - - if context.get('fiscal_type', False): - delivery_infos = eview.xpath("//group[@name='delivery_info']") - for delivery_info in delivery_infos: - delivery_info.set('invisible', '1') - - result['arch'] = etree.tostring(eview) - - if view_type == 'tree': - doc = etree.XML(result['arch']) - nodes = doc.xpath("//field[@name='partner_id']") - partner_string = _('Customer') - if context.get('type', 'out_invoice') in ('in_invoice', 'in_refund'): - partner_string = _('Supplier') - for node in nodes: - node.set('string', partner_string) - result['arch'] = etree.tostring(doc) - return result - - def init(self, cr): - # Remove a constraint na coluna número do documento fiscal, - # no caso dos documentos de entradas dos fornecedores pode existir - # documentos fiscais de fornecedores diferentes com a mesma numeração - cr.execute("ALTER TABLE %s DROP CONSTRAINT IF EXISTS %s" % ( - 'account_invoice', 'account_invoice_number_uniq')) - - # go from canceled state to draft state - def action_cancel_draft(self, cr, uid, ids, *args): - self.write(cr, uid, ids, { - 'state': 'draft', - 'internal_number': False, - 'nfe_access_key': False, - 'nfe_status': False, - 'nfe_date': False, - 'nfe_export_date': False}) - wf_service = netsvc.LocalService("workflow") - for inv_id in ids: - wf_service.trg_delete(uid, 'account.invoice', inv_id, cr) - wf_service.trg_create(uid, 'account.invoice', inv_id, cr) - return True - - def copy(self, cr, uid, id, default={}, context=None): - default.update({ - 'internal_number': False, - 'nfe_access_key': False, - 'nfe_status': False, - 'nfe_protocol_number': False, - 'nfe_date': False, - 'nfe_export_date': False, - 'account_document_event_ids': False, - }) - return super(AccountInvoice, self).copy(cr, uid, id, default, context) - - def action_internal_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - - for inv in self.browse(cr, uid, ids): - if inv.issuer == '0': - sequence = self.pool.get('ir.sequence') - sequence_read = sequence.read( - cr, uid, inv.document_serie_id.internal_sequence_id.id, - ['number_next']) - invalid_number = self.pool.get( - 'l10n_br_account.invoice.invalid.number').search( - cr, uid, [ - ('number_start', '<=', sequence_read['number_next']), - ('number_end', '>=', sequence_read['number_next']), - ('state', '=', 'done')]) - - if invalid_number: - raise orm.except_orm( - _(u'Número Inválido !'), - _(u"O número: %s da série: %s, esta inutilizado") % ( - sequence_read['number_next'], - inv.document_serie_id.name)) - - seq_no = sequence.get_id(cr, uid, inv.document_serie_id.internal_sequence_id.id, context=context) - self.write(cr, uid, inv.id, {'ref': seq_no, 'internal_number': seq_no}) - return True - - def action_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - #TODO: not correct fix but required a frech values before reading it. - self.write(cr, uid, ids, {}) - - for obj_inv in self.browse(cr, uid, ids, context=context): - inv_id = obj_inv.id - move_id = obj_inv.move_id and obj_inv.move_id.id or False - ref = obj_inv.internal_number or obj_inv.reference or '' - - cr.execute('UPDATE account_move SET ref=%s ' - 'WHERE id=%s AND (ref is null OR ref = \'\')', - (ref, move_id)) - cr.execute('UPDATE account_move_line SET ref=%s ' - 'WHERE move_id=%s AND (ref is null OR ref = \'\')', - (ref, move_id)) - cr.execute('UPDATE account_analytic_line SET ref=%s ' - 'FROM account_move_line ' - 'WHERE account_move_line.move_id = %s ' - 'AND account_analytic_line.move_id = account_move_line.id', - (ref, move_id)) - - for inv_id, name in self.name_get(cr, uid, [inv_id]): - ctx = context.copy() - if obj_inv.type in ('out_invoice', 'out_refund'): - ctx = self.get_log_context(cr, uid, context=ctx) - message = _('Invoice ') + " '" + name + "' " + _("is validated.") - self.log(cr, uid, inv_id, message, context=ctx) - return True - - def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): - """finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines - Hook method to be overridden in additional modules to verify and possibly alter the - move lines to be created by an invoice, for special cases. - :param invoice_browse: browsable record of the invoice that is generating the move lines - :param move_lines: list of dictionaries with the account.move.lines (as for create()) - :return: the (possibly updated) final move_lines to create for this invoice - """ - move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(cr, uid, invoice_browse, move_lines) - cont=1 - result = [] - for move_line in move_lines: - if (move_line[2]['debit'] or move_line[2]['credit']): - if (move_line[2]['account_id'] == invoice_browse.account_id.id): - move_line[2]['name'] = '%s/%s' % ( invoice_browse.internal_number, cont) - cont +=1 - result.append(move_line) - return result - - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): - - if not context: - context = {} - context.update({'use_domain': ('use_invoice', '=', True)}) - kwargs.update({'context': context}) - - if not kwargs.get('fiscal_category_id', False): - return result - - obj_company = self.pool.get('res.company').browse( - cr, uid, kwargs.get('company_id', False)) - obj_fcategory = self.pool.get('l10n_br_account.fiscal.category') - - fcategory = obj_fcategory.browse( - cr, uid, kwargs.get('fiscal_category_id')) - result['value']['journal_id'] = fcategory.property_journal and \ - fcategory.property_journal.id or False - if not result['value'].get('journal_id', False): - raise orm.except_orm( - _(u'Nenhum Diário !'), - _(u"Categoria fiscal: '%s', não tem um diário contábil para a \ - empresa %s") % (fcategory.name, obj_company.name)) - - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - return obj_fp_rule.apply_fiscal_mapping(cr, uid, result, **kwargs) - - def onchange_partner_id(self, cr, uid, ids, type, partner_id, - date_invoice=False, payment_term=False, - partner_bank_id=False, company_id=False, - fiscal_category_id=False): - - result = super(AccountInvoice, self).onchange_partner_id( - cr, uid, ids, type, partner_id, date_invoice, payment_term, - partner_bank_id, company_id) - - return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, - invoice_line, currency_id, - fiscal_category_id=False): - - result = super(AccountInvoice, self).onchange_company_id( - cr, uid, ids, company_id, partner_id, type, invoice_line, - currency_id) - - return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - def onchange_fiscal_category_id(self, cr, uid, ids, - partner_address_id=False, - partner_id=False, company_id=False, - fiscal_category_id=False): - result = {'value': {}} - return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - def onchange_fiscal_document_id(self, cr, uid, ids, fiscal_document_id, - company_id, issuer, fiscal_type, - context=None): - result = {'value': {'document_serie_id': False}} - if not context: - context = {} - company = self.pool.get('res.company').browse(cr, uid, company_id, - context=context) - - if issuer == '0': - serie = company.document_serie_service_id and \ - company.document_serie_service_id.id or False - result['value']['document_serie_id'] = serie - - return result - - -class AccountInvoiceLine(orm.Model): - _inherit = 'account.invoice.line' - - def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): - res = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - for line in self.browse(cr, uid, ids): - res[line.id] = { - 'price_subtotal': 0.0, - 'price_total': 0.0, - } - - price = line.price_unit * (1 - (line.discount or 0.0) / 100.0) - taxes = tax_obj.compute_all( - cr, uid, line.invoice_line_tax_id, price, line.quantity, - line.product_id, line.invoice_id.partner_id, - fiscal_position=line.fiscal_position) - - if line.invoice_id: - currency = line.invoice_id.currency_id - res[line.id].update({ - 'price_subtotal': cur_obj.round( - cr, uid, currency, - taxes['total'] - taxes['total_tax_discount']), - 'price_total': cur_obj.round( - cr, uid, currency, taxes['total']), - }) - - return res - - _columns = { - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria'), - 'fiscal_position': fields.many2one( - 'account.fiscal.position', u'Posição Fiscal', - domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'price_total': fields.function( - _amount_line, method=True, string='Total', type="float", - digits_compute=dp.get_precision('Account'), - store=True, multi='all'), - } - - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - - result = super(AccountInvoiceLine, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set( - 'domain', """[('type', '=', '%s'), - ('journal_type', '=', '%s')]""" - % (OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - product_ids = eview.xpath("//field[@name='product_id']") - for product_id in product_ids: - product_id.set('domain', "[('fiscal_type', '=', '%s')]" % ( - context.get('fiscal_type', 'service'))) - - result['arch'] = etree.tostring(eview) - - return result - - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): - - if not context: - context = {} - context.update({'use_domain': ('use_invoice', '=', True)}) - kwargs.update({'context': context}) - result['value']['cfop_id'] = False - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - result_rule = obj_fp_rule.apply_fiscal_mapping( - cr, uid, result, **kwargs) - if result['value'].get('fiscal_position', False): - obj_fp = self.pool.get('account.fiscal.position').browse( - cr, uid, result['value'].get('fiscal_position', False)) - result_rule['value']['cfop_id'] = obj_fp.cfop_id and obj_fp.cfop_id.id or False - if kwargs.get('product_id', False): - obj_product = self.pool.get('product.product').browse( - cr, uid, kwargs.get('product_id', False), context=context) - context['fiscal_type'] = obj_product.fiscal_type - if context.get('type') in ('out_invoice', 'out_refund'): - context['type_tax_use'] = 'sale' - taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) - else: - context['type_tax_use'] = 'purchase' - taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) - tax_ids = self.pool.get('account.fiscal.position').map_tax( - cr, uid, obj_fp, taxes, context) - - result_rule['value']['invoice_line_tax_id'] = tax_ids - - result['value'].update(self._get_tax_codes( - cr, uid, kwargs.get('product_id'), - obj_fp, tax_ids, kwargs.get('company_id'), - context=context)) - - return result_rule - - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', - type='out_invoice', partner_id=False, - fposition_id=False, price_unit=False, - currency_id=False, context=None, company_id=False, - parent_fiscal_category_id=False, - parent_fposition_id=False): - - result = super(AccountInvoiceLine, self).product_id_change( - cr, uid, ids, product, uom, qty, name, type, partner_id, - fposition_id, price_unit, currency_id, context, company_id) - - fiscal_position = fposition_id or parent_fposition_id or False - - if not parent_fiscal_category_id or not product or not fiscal_position: - return result - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - product_fiscal_category_id = obj_fp_rule.product_fiscal_category_map( - cr, uid, product, parent_fiscal_category_id) - - if product_fiscal_category_id: - parent_fiscal_category_id = product_fiscal_category_id - - result['value']['fiscal_category_id'] = parent_fiscal_category_id - - result = self._fiscal_position_map(cr, uid, result, context, - partner_id=partner_id, partner_invoice_id=partner_id, - company_id=company_id, product_id=product, - fiscal_category_id=parent_fiscal_category_id, - account_id=result['value'].get('account_id')) - - values = { - 'partner_id': partner_id, - 'company_id': company_id, - 'product_id': product, - 'quantity': qty, - 'price_unit': price_unit, - 'fiscal_position': result['value'].get('fiscal_position'), - 'invoice_line_tax_id': [[6, 0, result['value'].get('invoice_line_tax_id')]], - } - result['value'].update(self._validate_taxes(cr, uid, values, context)) - return result - - def onchange_fiscal_category_id(self, cr, uid, ids, partner_id, - company_id, product_id, fiscal_category_id, - account_id, context): - result = {'value': {}} - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def onchange_fiscal_position(self, cr, uid, ids, partner_id, company_id, - product_id, fiscal_category_id, - account_id, context): - result = {'value': {}} - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def onchange_account_id(self, cr, uid, ids, product_id, partner_id, - inv_type, fposition_id, account_id=False, - context=None, fiscal_category_id=False, - company_id=False): - - result = super(AccountInvoiceLine, self).onchange_account_id( - cr, uid, ids, product_id, partner_id, inv_type, fposition_id, - account_id) - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', - type='out_invoice', partner_id=False, fposition_id=False, - price_unit=False, currency_id=False, context=None, - company_id=None, fiscal_category_id=False): - - result = super(AccountInvoiceLine, self).uos_id_change( - cr, uid, ids, product, uom, qty, name, type, partner_id, - fposition_id, price_unit, currency_id, context, company_id) - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product, - account_id=False) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml deleted file mode 100644 index 1fcc4f10661a..000000000000 --- a/l10n_br_account/account_invoice_view.xml +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - l10n_br_account.invoice.tree - account.invoice - - - - - - - - - - l10n_br_account.invoice.form - account.invoice - - - - - - - - - - - - - - - - onchange_journal_id(journal_id, context) - - - - - - - onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) - - - onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) - - - - - - - - - - - - - - - - 1 - - - - - - l10n_br_account.invoice.line.tree - account.invoice.line - - 26 - - - - - - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_refund'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'in_refund'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - - l10n_br_account.invoice.select - account.invoice - - 32 - - - - - - - - - - l10n_br_account.invoice.supplier.form - account.invoice - - - - - - - - - onchange_journal_id(journal_id, context) - - - onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) - - - - - onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - l10n_br_account.invoice.supplier.form3 - account.invoice - - - - - - - - - - - diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml deleted file mode 100644 index adc2d1814bc3..000000000000 --- a/l10n_br_account/account_view.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - l10n_br_account.journal.form - account.journal - - - - - - - - - - - - - - l10n_br_account.move.line.form - account.move.line - - - - - - - - - - diff --git a/l10n_br_account/data/l10n_br_account.fiscal.document.csv b/l10n_br_account/data/l10n_br_account.fiscal.document.csv deleted file mode 100644 index 149b63129b9a..000000000000 --- a/l10n_br_account/data/l10n_br_account.fiscal.document.csv +++ /dev/null @@ -1,2 +0,0 @@ -"id","code","name","electronic" -"fiscal_document_service","XX","Nota Fiscal de Serviço Municipal","False" \ No newline at end of file diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml deleted file mode 100644 index 36ce69065bf5..000000000000 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - 1 - Série 1 - - - True - service - - - - - - - - 3 - - - - - Contribuinte - Contribuinte - - - - - - - - Não Contribuinte - Não Contribuinte - - - - - - - - Simples Nacional - Simples Nacional - - - - - - - Não Contribuinte - Não Contribuinte - - - - - - - - - 3 - - - - - ICMS Simples Nacional 1,25% - ICMS Simples Nacional 1,25% - 0.0125 - - - - - - - - - - - - - ICMS Simples Nacional 1,86% - ICMS Simples Nacional 1,86% - 0.0186 - - - - - - - - - - - - - ICMS Simples Nacional 2,33% - ICMS Simples Nacional 2,33% - 0.0233 - - - - - - - - - - - - - ICMS Simples Nacional 2,56% - ICMS Simples Nacional 2,56% - 0.0256 - - - - - - - - - - - - - ICMS Simples Nacional 2,58% - ICMS Simples Nacional 2,58% - 0.0258 - - - - - - - - - - - - - ICMS Simples Nacional 2,82% - ICMS Simples Nacional 2,82% - 0.0282 - - - - - - - - - - - - - ICMS Simples Nacional 2,84% - ICMS Simples Nacional 2,84% - 0.0284 - - - - - - - - - - - - - ICMS Simples Nacional 2,87% - ICMS Simples Nacional 2,87% - 0.0287 - - - - - - - - - - - - - ICMS Simples Nacional 3,07% - ICMS Simples Nacional 3,07% - 0.0307 - - - - - - - - - - - - - ICMS Simples Nacional 3,10% - ICMS Simples Nacional 3,10% - 0.0310 - - - - - - - - - - - - - ICMS Simples Nacional 3,38% - ICMS Simples Nacional 3,38% - 0.0338 - - - - - - - - - - - - - ICMS Simples Nacional 3,41% - ICMS Simples Nacional 3,41% - 0.0341 - - - - - - - - - - - - - ICMS Simples Nacional 3,45% - ICMS Simples Nacional 3,45% - 0.0345 - - - - - - - - - - - - - ICMS Simples Nacional 3,48% - ICMS Simples Nacional 3,48% - 0.0348 - - - - - - - - - - - - - ICMS Simples Nacional 3,51% - ICMS Simples Nacional 3,51% - 0.0351 - - - - - - - - - - - - - ICMS Simples Nacional 3,82% - ICMS Simples Nacional 3,82% - 0.0382 - - - - - - - - - - - - - ICMS Simples Nacional 3,85% - ICMS Simples Nacional 3,85% - 0.0385 - - - - - - - - - - - - - ICMS Simples Nacional 3,88% - ICMS Simples Nacional 3,88% - 0.0388 - - - - - - - - - - - - - ICMS Simples Nacional 3,91% - ICMS Simples Nacional 3,91% - 0.0391 - - - - - - - - - - - - - ICMS Simples Nacional 3,95% - ICMS Simples Nacional 3,95% - 0.0395 - - - - - - - - - - - - - \ No newline at end of file diff --git a/l10n_br_account/demo/account.account.csv b/l10n_br_account/demo/account.account.csv deleted file mode 100644 index 1705c6318bfb..000000000000 --- a/l10n_br_account/demo/account.account.csv +++ /dev/null @@ -1,886 +0,0 @@ -"id","code","name","parent_id:id","note","type","user_type:id","company_id:id" -"account.chart0",0,"Plano de Contas",,,"view","account.data_account_type_view","base.main_company" -"account.assets_view",1,"ATIVO","account.chart0"," ","view","account.data_account_type_asset","base.main_company" -"account.nca",1.01,"CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" -"account.cas","1.01.01","DISPONIBILIDADES","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","other","account.data_account_type_bank","base.main_company" -"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","other","account.data_account_type_cash","base.main_company" -"account_demo_101010300","1.01.01.03.00","Recursos no Exterior Decorrentes de Exportação","account.cas","Contas que registram movimentação de recursos em instituições financeiras no exterior, nos termos do art. 1o. da Lei no 11.371/2006.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010400","1.01.01.04.00","Contas Bancárias – Subvenções","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das subvenções, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010500","1.01.01.05.00","Contas Bancárias – Doações","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das doações, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010600","1.01.01.06.00","Contas Bancárias – Outros Recursos Sujeitos a Restrições","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de outros recursos sujeitos a restrições, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010701","1.01.01.07.01","Valores Mobiliários - Mercado de Capitais Interno","account.cas","Contas que registram as aplicações no mercado de capitais do Brasil, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010702","1.01.01.07.02","Valores Mobiliários - Mercado de Capitais Externo","account.cas","Contas que registram as aplicações no mercado de capitais do exterior, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010800","1.01.01.08.00","Valores Mobiliários – Aplicações de Subvenções ","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de subvenções.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010900","1.01.01.09.00","Valores Mobiliários – Aplicações de Doações","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de doações.","other","account.data_account_type_asset","base.main_company" -"account_demo_101011000","1.01.01.10.00","Valores Mobiliários – Aplicações de Outros Recursos Sujeitos a Restrições","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de outros recursos sujeitos a restrições.","other","account.data_account_type_asset","base.main_company" -"account_demo_101011100","1.01.01.11.00","Outras","account.cas"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10103","1.01.03","ESTOQUES","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101030101","1.01.03.01.01","Mercadorias para Revenda","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de mercadorias para revenda, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account.stk","1.01.03.01.02","Insumos (materiais diretos)","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de matérias primas e materiais diretos, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030103","1.01.03.01.03","Produtos em Elaboração","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos em elaboração, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030104","1.01.03.01.04","Produtos Acabados","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos acabados, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030105","1.01.03.01.05","Serviços em andamento","account_demo_10103","Contas que registram o valor do saldo das contas de serviços em andamento, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030106","1.01.03.01.06","Insumos Agropecuários","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de insumos agropecuários, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030107","1.01.03.01.07","Produtos Agropecuários em Formação","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de produtos agropecuários em formação, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030108","1.01.03.01.08","Produtos Agropecuários Acabados","account_demo_10103","Contas que registra, nas empresas com atividade rural, o valor do saldo das contas de estoques de produtos agropecuários acabados, na data de apuração do resultado.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030200","1.01.03.02.00","Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar o estoque de imóveis destinados à venda existente na data da apuração dos resultados. Atenção: as construções em andamento de imóveis destinados à venda devem ser incluídas na conta Construções em Andamento de Imóveis Destinados à Venda","other","account.data_account_type_asset","base.main_company" -"account_demo_101030201","1.01.03.02.01","Construções em Andamento de Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar os imóveis em construção para futura comercialização","other","account.data_account_type_asset","base.main_company" -"account_demo_101030300","1.01.03.03.00","Estoques Destinados à Doação","account_demo_10103","Contas que registram, nas instituições imunes ou isentas, estoques destinados à doação.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030400","1.01.03.04.00","Outras","account_demo_10103"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10105","1.01.05","CRÉDITOS","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101050100","1.01.05.01.00","Adiantamentos a Fornecedores ","account_demo_10105","Contas que registram aos adiantamentos feitos a fornecedores de matérias-primas ou mercadorias para revenda.","other","account.data_account_type_asset","base.main_company" -"account.a_recv","1.01.05.02.00","Clientes","account_demo_10105","Contas que registram as contas a receber com vencimento até o final do ano-calendário subseqüente.","receivable","account.data_account_type_receivable","base.main_company" -"account_demo_101050300","1.01.05.03.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050400","1.01.05.04.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM nº 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050501","1.01.05.05.01","Imposto de Renda a Recuperar","account_demo_10105","Contas correspondentes ao Imposto de REnda a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account.ova","1.01.05.05.02","IPI a Recuperar","account_demo_10105","Contas correspondentes ao IPI a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050503","1.01.05.05.03","PIS e COFINS a Recuperar","account_demo_10105","Contas correspondentes ao PIS e à Cofins a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050504","1.01.05.05.04","CSLL a Recuperar","account_demo_10105","Contas correspondentes à CSLL a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050505","1.01.05.05.05","ICMS e Contribuições a Recuperar","account_demo_10105","Contas correspondentes ao ICMS a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050506","1.01.05.05.06","Tributos Municipais a Recuperar","account_demo_10105","Contas correspondentes a tributos municipais a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050590","1.01.05.05.90","Outros Impostos e Contribuições a Recuperar","account_demo_10105","Contas correspondentes a outros impostos a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050600","1.01.05.06.00","Créditos por Contribuições e Doações","account_demo_10105","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050700","1.01.05.07.00","Outras","account_demo_10105"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10107","1.01.07","DESPESAS DO EXERCÍCIO SEGUINTE","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101070100","1.01.07.01.00","Despesas do Exercício Seguinte","account_demo_10107","Contas correspondentes a pagamentos antecipados, cujos benefícios ou prestação de serviços à pessoa jurídica ocorrerão durante o exercício seguinte. São valores relativos a despesas que efetivamente pertencem ao exercício seguinte.","other","account.data_account_type_asset","base.main_company" -"account_demo_101070200","1.01.07.02.00","Outras Contas","account_demo_10107","Incluir, dentre outras, a soma das contas/subcontas do Circulante que registram, dentre outras, a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_10109","1.01.09","CONTAS RETIFICADORAS","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101090101","1.01.09.01.01","(-) Duplicatas Descontadas","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" -"account_demo_101090103","1.01.09.01.03","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090105","1.01.09.01.05","(-) Provisão para Ajuste do Estoque ao Valor de Mercado","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor de mercado que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090107","1.01.09.01.07","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090190","1.01.09.01.90","(-) Outras Contas Retificadoras","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account.fas",1.07,"NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" -"account_demo_10700","1.07.00","REALIZÁVEL A LONGO PRAZO ","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107000100","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" -"account_demo_107000200","1.07.00.02.00","Créditos com Pessoas Ligadas (Físicas/Jurídicas)","account_demo_10700","Contas correspondentes a vendas, adiantamentos ou empréstimos a sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000300","1.07.00.03.00","Valores Mobiliários","account_demo_10700","Contas correspondentes às aplicações em títulos com vencimento posterior ao exercício seguinte, e investimentos em outras sociedades que não tenham caráter permanente, inclusive os feitos com incentivos fiscais.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000400","1.07.00.04.00","Depósitos Judiciais","account_demo_10700","Contas que registram aos depósitos judiciais efetuados, a qualquer título, pendentes de decisão.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000500","1.07.00.05.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000600","1.07.00.06.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000700","1.07.00.07.00","Créditos por Contribuições e Doações","account_demo_10700","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações com vencimento após final do exercício subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000800","1.07.00.08.00","Outras Contas","account_demo_10700","Contas que registram, entre outras, a soma das contas/subcontas do Realizável a Longo Prazo que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009000","1.07.00.90.00","(-) Duplicatas Descontadas","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" -"account_demo_107009300","1.07.00.93.00","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009500","1.07.00.95.00","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009700","1.07.00.97.00","(-) Outras Contas Retificadoras","account_demo_10700","Contas que registram parcelas a serem subtraídas do Realizável a Longo Prazo que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_10701","1.07.01","INVESTIMENTOS","account.fas",,"view","account.data_account_type_asset","base.main_company" -"account_demo_107010100","1.07.01.01.00","Participações Permanentes em Coligadas ou Controladas","account_demo_10701","Contas que registram investimentos permanentes, na forma de participação em outras sociedades coligadas e/ou controladas, ainda que se trate de investimento não relevante.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010200","1.07.01.02.00","Investimentos Decorrentes de Incentivos Fiscais","account_demo_10701","Contas que registram os investimentos decorrentes de incentivos fiscais representados por ações novas da Embraer ou de empresas nacionais de informática ou por participação direta decorrente da troca do CI – Certificado de Investimento por ações pertencentes às carteiras de Fundos (Finor, Finam e Fiset). Inclui-se a aquisição de quotas representativas de direitos de comercialização sobre produção de obras audiovisuais cinematográficas brasileiras de produção independente, com projetos previamente aprovados pelo Ministério da Cultura, realizada no mercado de capitais, em ativos previstos em lei e autorizados pela Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_asset","base.main_company" -"account_demo_107010300","1.07.01.03.00","Outros Investimentos","account_demo_10701","Contas correspondentes aos direitos de qualquer natureza que não se destinem à manutenção da atividade da companhia ou da empresa e que não se classifiquem no ativo circulante ou realizável a longo prazo, tais como: o imóvel não utilizado na exploração ou na manutenção das atividades da empresa e que não se destine à revenda, e os recursos florestais destinados à proteção do solo ou à preservação da natureza, entre outros.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010400","1.07.01.04.00","Ágios em Investimentos","account_demo_10701","Contas correspondentes ao ágio por diferença de valor de mercado dos bens, por valor de rentabilidade futura, por fundo de comércio, intangíveis, ou outras razões econômicas.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010500","1.07.01.05.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010600","1.07.01.06.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010700","1.07.01.07.00","(-) Deságios e Provisão para Perdas Prováveis em Investimentos","account_demo_10701","Contas que registram: -a) o deságio por diferença de valor de mercado dos bens, por valor de rentabilidade futura e por fundo de comércio, intangíveis, ou outras razões econômicas; -b) o valor correspondente à provisão para perdas em investimentos registrados pelo método de custo e à provisão para perdas em investimentos avaliados pelo método da equivalência patrimonial, sendo que, neste último caso, deve ser informado somente o valor das perdas efetivas ou potenciais já previstas, mas não reconhecidas contabilmente pela coligada ou controlada.","other","account.data_account_type_asset","base.main_company" -"account_demo_107019000","1.07.01.90.00","Outras Contas","account_demo_10701","Contas que registram bens e direitos classificáveis em Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_107019700","1.07.01.97.00","(-) Outras Contas Retificadoras","account_demo_10701","Contas que registram parcelas a serem subtraídas de Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_10704","1.07.04","IMOBILIZADO","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107040100","1.07.04.01.00","Terrenos","account_demo_10704","Contas que registram os terrenos de propriedade da pessoa jurídica utilizados nas operações, ou seja, onde se localizam a fábrica, os depósitos, os escritórios, as filiais, as lojas, etc., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: o valor do terreno onde está em construção uma nova unidade que ainda não esteja em operação também deve ser informado nesta conta.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040200","1.07.04.02.00","Edifícios e Construções","account_demo_10704","Contas que registram os edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: As construções em andamento devem ser informadas na conta Construções em Andamento.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040201","1.07.04.02.01"," Construções em Andamento","account_demo_10704","Contas que registram as construções em andamento de edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040300","1.07.04.03.00","Equipamentos, Máquinas e Instalações Industriais","account_demo_10704","Contas que registram os equipamentos, máquinas e instalações industriais utilizados no processo de produção da pessoa jurídica, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040400","1.07.04.04.00","Veículos","account_demo_10704","Contas que registram os veículos de propriedade da pessoa jurídica. inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: Os veículos de uso direto na produção, como empilhadeiras e similares, devem ser informados na conta Equipamentos, Máquinas e Instalações Industriais.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040401","1.07.04.04.01","Embarcações","account_demo_10704","Contas que registram as embarcações de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040402","1.07.04.04.02","Aeronaves","account_demo_10704","Contas que registram as aeronaves de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040500","1.07.04.05.00","Móveis, Utensílios e Instalações Comerciais","account_demo_10704","Contas que registram os móveis, utensílios e instalações comerciais., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040600","1.07.04.06.00","Recursos Minerais","account_demo_10704","Contas que registram os direitos de exploração de jazidas de minério, de pedras preciosas, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040700","1.07.04.07.00","Florestamento e Reflorestamento","account_demo_10704","Contas que registram os recursos florestais destinados à exploração dos respectivos frutos e ao corte para comercialização, consumo ou industrialização, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040800","1.07.04.08.00","Direitos Contratuais de Exploração de Florestas","account_demo_10704","Contas que registram os direitos contratuais de exploração de florestas com prazo de exploração superior a dois anos., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account.xfa","1.07.04.09.00","Outras Imobilizações","account_demo_10704","Contas que registram outras imobilizações, tais como: benfeitorias em propriedades arrendadas que se incorporam ao imóvel arrendado e revertem ao proprietário do imóvel ao final da locação, adiantamentos para inversões fixas, reprodutores, matrizes e as culturas permanentes da atividade rural, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107041000","1.07.04.10.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107041100","1.07.04.11.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária especial na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107041200","1.07.04.12.00","(-) Depreciações, Amortizações e Quotas de Exaustão","account_demo_10704","Contas que registram as depreciações, amortizações e quotas de exaustão das contas do imobilizado.","other","account.data_account_type_asset","base.main_company" -"account_demo_107049000","1.07.04.90.00","(-) Outras Contas Redutoras do Imobilizado","account_demo_10704","Outras contas redutoras do Imobilizado, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" -"account_demo_10705","1.07.05","INTANGÍVEL","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107050100","1.07.05.01.00","Concessões","account_demo_10705","Contas que registram os custos com aquisição de concessões","other","account.data_account_type_asset","base.main_company" -"account_demo_107050300","1.07.05.03.00","Marcas e Patentes","account_demo_10705","Contas que registram os custos com aquisição de marcas e patentes","other","account.data_account_type_asset","base.main_company" -"account_demo_107050500","1.07.05.05.00","Direitos Autorais","account_demo_10705","Contas que registram os custos com aquisição de direitos autorais","other","account.data_account_type_asset","base.main_company" -"account_demo_107050700","1.07.05.07.00","Fundo de Comércio","account_demo_10705","Contas que registram os custos com aquisição de fundos de comércio","other","account.data_account_type_asset","base.main_company" -"account_demo_107050900","1.07.05.09.00","Software ou Programas de Computador","account_demo_10705","Contas que registram os custos com aquisição/desenvolvimento de programas de computador","other","account.data_account_type_asset","base.main_company" -"account_demo_107051100","1.07.05.11.00","Franquias","account_demo_10705","Contas que registram os custos com aquisição de franquias","other","account.data_account_type_asset","base.main_company" -"account_demo_107051300","1.07.05.13.00","Desenvolvimento de Produtos","account_demo_10705","Contas que registram os custos com o desenvolvimento de novos produtos","other","account.data_account_type_asset","base.main_company" -"account_demo_107051500","1.07.05.15.00","Outras","account_demo_10705","Contas que registram os custos com aquisição de outros itens classificáveis no intangível","other","account.data_account_type_asset","base.main_company" -"account_demo_107059000","1.07.05.90.00","(-) Amortização do Intangível","account_demo_10705","Contas correspondentes à amortização das contas do ativo intangível","other","account.data_account_type_asset","base.main_company" -"account_demo_107059700","1.07.05.97.00","(-) Outras Contas Redutoras do Intangível","account_demo_10705","Outras contas redutoras o intangível, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" -"account_demo_10707","1.07.07","DIFERIDO","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107070100","1.07.07.01.00","Despesas Pré-Operacionais ou Pré-Industriais","account_demo_10707","Contas que registram os gastos de organização e administração, encargos financeiros líquidos, estudos, projetos e detalhamentos, juros a acionista na fase de implantação e gastos preliminares de operação. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070200","1.07.07.02.00","Despesas com Pesquisas Científicas ou Tecnológicas","account_demo_10707","Contas que registram os gastos com pesquisa científica ou tecnológica. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070300","1.07.07.03.00","Demais Aplicações em Despesas Amortizáveis","account_demo_10707","Contas que registram os gastos com pesquisas e desenvolvimento de produtos, com a implantação de sistemas e métodos e com reorganização. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070400","1.07.07.04.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107070500","1.07.07.05.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107070600","1.07.07.06.00","(-) Amortização do Diferido","account_demo_10707","Contas correspondentes à amortização das contas do ativo diferido.","other","account.data_account_type_asset","base.main_company" -"account.bal",2,"PASSIVO","account.chart0"," ","view","l10n_br.passivo","base.main_company" -"account.cli",2.01,"CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account.liabilities_view","2.01.01","OBRIGAÇÕES DE CURTO PRAZO","account.cli"," ","view","l10n_br.passivo","base.main_company" -"account.a_pay","2.01.01.01.00","Fornecedores","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" -"account_demo_201010101","2.01.01.01.01","Adiantamentos de Clientes","account.liabilities_view","Contas que registram o valor correspondente a adiantamentos de clientes.","other","l10n_br.passivo","base.main_company" -"account_demo_201010201","2.01.01.02.01","Financiamentos a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Curto Prazo – Outros. ","other","l10n_br.passivo","base.main_company" -"account_demo_201010202","2.01.01.02.02","Arrendamento Mercantil (Financeiro) a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram as obrigações de curto prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" -"account_demo_201010203","2.01.01.02.03","Financiamentos a Curto Prazo - Outros","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta .","other","l10n_br.passivo","base.main_company" -"account_demo_201010204","2.01.01.02.04","Financiamentos a Curto Prazo - Exterior","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Curto Prazo – Exterior","other","l10n_br.passivo","base.main_company" -"account_demo_201010205","2.01.01.02.05","Arrendamento Mercantil (Financeiro) a Curto Prazo - Exterior","account.liabilities_view","Contas que registram as obrigações das pessoas jurídicas relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" -"account.iva","2.01.01.03.01","IPI a Recolher","account.liabilities_view","Contas correspondentes ao IPI a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010302","2.01.01.03.02","ICMS e Contribuições a Recolher","account.liabilities_view","Contas correspondentes ao ICMS a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010303","2.01.01.03.03","Tributos Municipais a Recolher","account.liabilities_view","Contas correspondentes a tributos municipais a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010400","2.01.01.04.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor do FGTS a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010500","2.01.01.05.00","PIS e COFINS a Recolher","account.liabilities_view","Contas que registram o valor do PIS e da COFINS a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010600","2.01.01.06.00","Contribuições Previdenciárias a Recolher","account.liabilities_view","Contas que registram o valor das Contribuições Previdenciárias a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010690","2.01.01.06.90","Outros tributos a recolher","account.liabilities_view","Contas correspondentes a tributos a recolher não classificáveis em contas específicas.","other","l10n_br.passivo","base.main_company" -"account_demo_201010700","2.01.01.07.00","Salários a Pagar","account.liabilities_view","Contas que registram o valor correspondente aos salários, ordenados, horas extras, adicionais e prêmios a serem pagos no exercício subseqüente.","other","l10n_br.passivo","base.main_company" -"account_demo_201010800","2.01.01.08.00","Dividendos Propostos ou Lucros Creditados","account.liabilities_view","Contas correspondentes aos dividendos aprovados pela Assembléia, creditados aos acionistas ou propostos pela administração da pessoa jurídica na data do balanço, como parte da destinação proposta para os lucros.","other","l10n_br.passivo","base.main_company" -"account_demo_201010900","2.01.01.09.00","Provisão para a Contribuição Social sobre o Lucro Líquido","account.liabilities_view","Conta correspondente à provisão para a contribuição social sobre o lucro líquido a pagar.","other","l10n_br.passivo","base.main_company" -"account_demo_201011000","2.01.01.10.00","Provisão para o Imposto de Renda","account.liabilities_view","Conta correspondente ao saldo a pagar da provisão para o imposto de renda.","other","l10n_br.passivo","base.main_company" -"account_demo_201011100","2.01.01.11.00","Débitos Fiscais CSLL – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_201011200","2.01.01.12.00","Débitos Fiscais IRPJ – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_201011210","2.01.01.12.10","Provisões de Natureza Fiscal","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza fiscal.","other","l10n_br.passivo","base.main_company" -"account_demo_201011220","2.01.01.12.20","Provisões de Natureza Trabalhista","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza trabalhista.","other","l10n_br.passivo","base.main_company" -"account_demo_201011230","2.01.01.12.30","Provisões de Natureza Cível","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza cível.","other","l10n_br.passivo","base.main_company" -"account_demo_201011240","2.01.01.12.40","Doações e Subvenções para Investimentos","account.liabilities_view","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_201011300","2.01.01.13.00","Outras Contas","account.liabilities_view","Contas que registram comissões a pagar ou provisionadas de retenções contratuais, de obrigações decorrentes do fornecimento ou utilização de serviços (energia elétrica, água, telefone, propaganda, honorários profissionais de terceiros, aluguéis) e outras contas não citadas nas contas anteriores. Atenção: também são incluídas, nesta conta, as provisões para registro de obrigações, tais como as provisões para: férias, gratificações a empregados (inclusive encargos sociais a pagar e FGTS a recolher sobre tais provisões), e outras de natureza semelhante, ainda que não dedutíveis.","other","l10n_br.passivo","base.main_company" -"account_demo_201019000","2.01.01.90.00","(-) Contas Retificadoras","account.liabilities_view","Contas correspondentes às contas retificadoras do passivo circulante.","other","l10n_br.passivo","base.main_company" -"account_demo_203",2.03,"NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" -"account_demo_20301","2.03.01","OBRIGAÇÕES A LONGO PRAZO","account_demo_203"," ","view","l10n_br.passivo","base.main_company" -"account_demo_203010100","2.03.01.01.00","Fornecedores","account_demo_20301","Contas que registram valores a pagar relativos à compra de matérias-primas, bens, insumos e mercadorias e o valor correspondente a adiantamentos de clientes, com prazo de pagamento posterior ao exercício seguinte à data do balanço.","payable","account.data_account_type_payable","base.main_company" -"account_demo_203010201","2.03.01.02.01","Financiamentos a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Longo Prazo – Brasil – Outros ","other","l10n_br.passivo","base.main_company" -"account_demo_203010202","2.03.01.02.02","Arrendamento Mercantil (Financeiro) a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" -"account_demo_203010203","2.03.01.02.03","Financiamentos a Longo Prazo – Brasil - Outros","account_demo_20301","Contas que registram os credores por financiamentos de longo prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta.","other","l10n_br.passivo","base.main_company" -"account_demo_203010204","2.03.01.02.04","Financiamentos a Longo Prazo – Exterior","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior ","other","l10n_br.passivo","base.main_company" -"account_demo_203010205","2.03.01.02.05","Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" -"account_demo_203010300","2.03.01.03.00","Empréstimos de Sócios/Acionistas Não Administradores","account_demo_20301","Contas relativas a empréstimos concedidos à pessoa jurídica por sócios e acionistas não administradores.","other","l10n_br.passivo","base.main_company" -"account_demo_203010400","2.03.01.04.00","Créditos de Pessoas Ligadas (Físicas/Jurídicas)","account_demo_20301","Contas que registram compras, adiantamentos ou empréstimos de sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","l10n_br.passivo","base.main_company" -"account_demo_203010500","2.03.01.05.00","Provisão para o Imposto de Renda sobre Lucros Diferidos","account_demo_20301","Conta que registra o imposto de renda sobre lucros diferidos, tais como: lucro inflacionário não realizado, contratos a longo prazo relativos a fornecimento de bens e de construção por empreitada para o poder público e suas empresas, ganho de capital oriundo de desapropriação, ganho de capital por venda de bens do ativo permanente com recebimento parcelado a longo prazo e depreciação acelerada.","other","l10n_br.passivo","base.main_company" -"account_demo_203010600","2.03.01.06.00","Débitos Fiscais CSLL - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM nº 273, de 1998","other","l10n_br.passivo","base.main_company" -"account_demo_203010700","2.03.01.07.00","Débitos Fiscais IRPJ - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_203010710","2.03.01.07.10","Outras Provisões de Natureza Fiscal","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza fiscal, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010720","2.03.01.07.20","Outras Provisões de Natureza Trabalhista","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza trabalhista, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010730","2.03.01.07.30","Outras Provisões de Natureza Cível","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza cível, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010740","2.03.01.07.40","Doações e Subvenções para Investimentos","account_demo_20301","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010800","2.03.01.08.00","Outras Contas","account_demo_20301","Contas que registram obrigações, não especificadas nos itens precedentes, cujo vencimento ocorrerá em período posterior ao exercício seguinte. Atenção: não incluir, nesta conta, o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária, e os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras. Esses valores devem ser informados em Resultados de Exercícios Futuros.","other","l10n_br.passivo","base.main_company" -"account_demo_203019000","2.03.01.90.00","(-) Contas Retificadoras","account_demo_20301","Contas retificadoras do Exigível de Longo Prazo","other","l10n_br.passivo","base.main_company" -"account_demo_20303","2.03.03","RECEITAS DIFERIDAS","account_demo_203",,"view","l10n_br.passivo","base.main_company" -"account_demo_203030100","2.03.03.01.00","Receitas Diferidas","account_demo_20303","Saldo remanescente da conta Resultado de Exercícios Futuros onde a pessoa jurídica que explore as atividades de compra e venda, loteamento, incorporação e construção de imóveis indicava o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária. Também se consideravam como receitas de exercícios futuros os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras.","other","l10n_br.passivo","base.main_company" -"account_demo_203030300","2.03.03.03.00","(-) Custos Correspondentes às Receitas Diferidas","account_demo_20303","Contas correspondentes aos custos e despesas de exercícios futuros correspondentes às receitas indicadas na conta precedente.","other","l10n_br.passivo","base.main_company" -"account_demo_207",2.07,"PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account_demo_20701","2.07.01","CAPITAL REALIZADO","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207010100","2.07.01.01.00","Capital Subscrito de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no País.","other","l10n_br.passivo","base.main_company" -"account_demo_207010200","2.07.01.02.00","(-) Capital a Integralizar de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no País que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" -"account_demo_207010300","2.07.01.03.00","Capital Subscrito de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no exterior.","other","l10n_br.passivo","base.main_company" -"account_demo_207010400","2.07.01.04.00","(-) Capital a Integralizar de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no exterior que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" -"account_demo_20704","2.07.04","RESERVAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207040100","2.07.04.01.00","Reservas de Capital","account_demo_20704","Contas correspondentes às reservas constituídas pela correção monetária do capital, por incentivos fiscais, por ágio na emissão de ações, por alienação de partes beneficiárias.","other","l10n_br.passivo","base.main_company" -"account_demo_207040200","2.07.04.02.00","Reservas de Reavaliação","account_demo_20704","Contas correspondentes aos saldos dos reservas de reavaliação ainda não realizadas, decorrentes de reavaliação de ativos próprios e de ativos de coligadas e controladas, estes avaliados pelo método da equivalência patrimonial.","other","l10n_br.passivo","base.main_company" -"account_demo_207040300","2.07.04.03.00","Reservas de Lucros","account_demo_20704","Contas correspondentes às reservas constituídas pela destinação de lucros da empresa, tais como: reserva legal, reservas estatutárias, reserva para contingências, reserva de lucros a realizar, reserva de lucros para expansão, reserva especial para dividendo obrigatório não distribuído e reserva de exaustão incentivada de recursos minerais.","other","l10n_br.passivo","base.main_company" -"account_demo_207040301","2.07.04.03.01","Reservas de Lucros - Doações e Subvenções para Investimentos","account_demo_20704","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento","other","l10n_br.passivo","base.main_company" -"account_demo_207040302","2.07.04.03.02","Reservas de Lucros - Prêmio na Emissão de Debêntures","account_demo_20704","Contas que registram, a partir de 01.01.2008, os prêmios na emissão de debêntures","other","l10n_br.passivo","base.main_company" -"account_demo_207040400","2.07.04.04.00","Reserva para Aumento de Capital (Lei no 9.249/1995, art. 9o, § 9o)","account_demo_20704","Conta correspondente à reserva constituída em 1996 com o montante dos juros sobre o capital próprio deduzidos como despesa financeira, mas mantidos no patrimônio da empresa, caso esta tenha optado pela faculdade prevista no § 9o do art. 9o da Lei no 9.249, de 1995.","other","l10n_br.passivo","base.main_company" -"account_demo_207040500","2.07.04.05.00","Outras Reservas","account_demo_20704","Contas correspondentes às demais reservas não consignadas nos itens anteriores, tais como o saldo devedor ou credor da conta de correção monetária correspondente à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal e o saldo da correção especial das contas do ativo permanente efetuada com base nos arts. 33 e 44 do Decreto no 332, de 1991.","other","l10n_br.passivo","base.main_company" -"account_demo_20705","2.07.05","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_demo_207",,"view","l10n_br.passivo","base.main_company" -"account_demo_207050100","2.07.05.01.00","Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) -","other","l10n_br.passivo","base.main_company" -"account_demo_207050101","2.07.05.01.01","(-) Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) -","other","l10n_br.passivo","base.main_company" -"account_demo_20707","2.07.07","OUTRAS CONTAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207070100","2.07.07.01.00","Lucros Acumulados e/ou Saldo à Disposição da Assembléia","account_demo_20707","Contas correspondentes aos lucros acumulados ou do saldo à disposição da assembléia.","other","l10n_br.passivo","base.main_company" -"account.rsa","2.07.07.02.00","(-) Prejuízos Acumulados","account_demo_20707","Contas correspondentes aos prejuízos acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_207070300","2.07.07.03.00","(-) Ações em Tesouraria","account_demo_20707","Contas que registrem as aquisições de ações da própria empresa.","other","l10n_br.passivo","base.main_company" -"account_demo_207070400","2.07.07.04.00","Outras","account_demo_20707","Outras contas classificáveis no patrimônio líquido que não tenham correspondência nas contas Lucros Acumulados e/ou Saldo à Disposição da Assembléia, Prejuízos Acumulados, Ações em Tesouraria.","other","l10n_br.passivo","base.main_company" -"account_demo_208",2.08,"PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account_demo_20801","2.08.01","FUNDO PATRIMONIAL","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208010100","2.08.01.01.00","Fundo Patrimonial","account_demo_20801","Contas que registrem, nas instituições imunes ou isentas, o Fundo Patrimonial.","other","l10n_br.passivo","base.main_company" -"account_demo_20804","2.08.04","RESERVAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208040100","2.08.04.01.00","Reservas Patrimoniais","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas patrimoniais.","other","l10n_br.passivo","base.main_company" -"account_demo_208040200","2.08.04.02.00","Reservas Estatutárias","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas estatutárias.","other","l10n_br.passivo","base.main_company" -"account_demo_20807","2.08.07","OUTRAS CONTAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208070100","2.08.07.01.00","Superávits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos superávits acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_208070200","2.08.07.02.00","Déficits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos déficits acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_3",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301",3.01,"RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account_demo_301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101","3.01.01.01","RECEITA LIQUIDA","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010101","3.01.01.01.01","RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101010101","3.01.01.01.01.01.01","Receita de Exportação Direta de Mercadorias e Produtos","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de mercadorias e produtos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010102","3.01.01.01.01.01.02","Receita de Vendas de Mercadorias e Produtos a Comercial Exportadora com Fim Específico de Exportação","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da venda de mercadorias e produtos a empresa comercial exportadora, com fim específico de exportação.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010103","3.01.01.01.01.01.03","Receita de Exportação de Serviços","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de serviços","other","account.data_account_type_view","base.main_company" -"account.a_sale","3.01.01.01.01.02.00","Receita da Venda no Mercado Interno de Produtos de Fabricação Própria","account_demo_301010101","Contas que registram a receita auferida no mercado interno correspondente à venda de produtos de fabricação própria e as receitas auferidas na industrialização por encomenda ou por conta e ordem de terceiros. (Não se incluem o valor correspondente ao Imposto sobre Produtos Industrializados (IPI) cobrado destacadamente do comprador ou contratante, uma vez que o vendedor é mero depositário e este imposto não integra o preço de venda da mercadoria, e, também, o valor correspondente ao ICMS cobrado na condição de substituto.)","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010300","3.01.01.01.01.03.00","Receita da Revenda de Mercadorias no Mercado Interno","account_demo_301010101","Contas que registram receita auferida no mercado interno, correspondente à revenda de mercadorias e o resultado auferido nas operações de conta alheia.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010400","3.01.01.01.01.04.00","Receita da Prestação de Serviços – Mercado Interno","account_demo_301010101","Contas que registram a receita decorrente dos serviços prestados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010500","3.01.01.01.01.05.00","Receita das Unidades Imobiliárias Vendidas","account_demo_301010101","As pessoas jurídicas que exploram atividades imobiliárias devem indicar, nestas contas, o montante das receitas das unidades imobiliárias vendidas, apropriadas ao resultado, inclusive as receitas transferidas de Resultados de Exercícios Futuros e os custos recuperados de períodos de apuração anteriores.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010600","3.01.01.01.01.06.00","Receita de Locação de Bens Móveis e Imóveis","account_demo_301010101","Contas que registram a receita decorrente da locação de bens móveis e imóveis","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010700","3.01.01.01.01.07.00","Outras","account_demo_301010101","Outras contas que registrem valores componentes da receita bruta não especificadas nos itens anteriores.","other","account.data_account_type_view","base.main_company" -"account_demo_301010103","3.01.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101030100","3.01.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_301010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes das contas integrantes do grupo RECEITA BRUTA","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030200","3.01.01.01.03.02.00","(-) ICMS","account_demo_301010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes das contas integrantes do grupo RECEITA BRUTA. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030300","3.01.01.01.03.03.00","(-) Cofins","account_demo_301010103","vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030400","3.01.01.01.03.04.00","(-) PIS/Pasep","account_demo_301010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030500","3.01.01.01.03.05.00","(-) ISS","account_demo_301010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços,conforme legislação específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030600","3.01.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_301010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que tratam as contas integrantes do grupo RECEITA BRUTA, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010103","3.01.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010301","3.01.01.03.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA VENDIDOS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103010000","3.01.01.03.01.00.00","Custo dos Produtos de Fabricação Própria Vendidos","account_demo_301010301"," ","other","account.data_account_type_view","base.main_company" -"account_demo_301010303","3.01.01.03.03","CUSTO DAS MERCADORIAS REVENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103030000","3.01.01.03.03.00.00","Custo das Mercadorias Revendidas","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" -"account_demo_3010103050000","3.01.01.03.05.00.00","Custo dos Serviços Vendidos","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" -"account_demo_301010307","3.01.01.03.07","CUSTO DAS UNIDADES IMOBILIÁRIAS VENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103070100","3.01.01.03.07.01.00","Custo das Unidades Imobiliárias Vendidas","account_demo_301010307","Contas que registram, na empresa que tiver por objeto a compra de imóveis para venda ou que promover empreendimento de desmembramento ou loteamento de terrenos, incorporação imobiliária ou construção de prédio destinado à venda, os valores dos custos correspondentes às unidades imobiliárias vendidas apropriados ao resultado do período de apuração. A recuperação de custos do próprio período é computada no montante a ser indicado nesta conta. Os custos recuperados correspondentes a períodos de apuração anteriores devem ser indicados na conta Receita das Unidades Imobiliárias Vendidas.","other","account.data_account_type_view","base.main_company" -"account_demo_301010309","3.01.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010105","3.01.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010501","3.01.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3010105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010105010100","3.01.01.05.01.01.00","Variações Cambiais Ativas","account_demo_301010501","Contas que registram os ganhos apurados em razão de variações ativas Decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. -Atenção: -1) As variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei nº 9.718, art. 9º c/c art. 17); -2) Nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF nº 84/79, de 20 de dezembro de 1979, da IN SRF nº 23/83, de 25 de março de 1983, e da IN SRF nº 67/88, de 21 de abril de 1988 (IN SRF nº 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010200","3.01.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010501","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei nº 9.532, de 1997, art. 28, alterado pela MP nº 1.636, de 1998, art. 2º, e reedições).Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) Os ganhos auferidos em operações day-trade devem ser informados em conta específica. -2) O valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. -3) São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010300","3.01.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_301010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010400","3.01.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_301010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010500","3.01.01.05.01.05.00","Outras Receitas Financeiras","account_demo_301010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas nas contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência.Atenção: 1) As variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; 2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010600","3.01.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010700","3.01.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_301010501","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas. Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. - -c) as bonificações recebidas. Atenção: 1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei nº 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3º da Lei nº 8.849, de 1994, e art. 3º da Lei nº 9.064, de 1995). 2) o caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei nº 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -d) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -e) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências. Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto nº 3.000, de 1999, e no art. 74 da Medida Provisória nº 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010710","3.01.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010800","3.01.01.05.01.08.00","Resultados Positivos em SCP","account_demo_301010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para o registro: -a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; -b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. -Atenção: os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto nº 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010900","3.01.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_301010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4º trimestre. Atenção: Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais..","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011000","3.01.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_301010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011010","3.01.01.05.01.10.10","Prêmios Recebidos na Emissão de Debêntures","account_demo_301010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011020","3.01.01.05.01.10.20","Doações e Subvenções para Investimentos","account_demo_301010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011030","3.01.01.05.01.10.30","Contrapartida dos Ajustes ao Valor Presente","account_demo_301010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011040","3.01.01.05.01.10.40","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011100","3.01.01.05.01.11.00","Outras Receitas Operacionais","account_demo_301010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei nº 9.430, de 1996, art. 70, § 3º, II); -e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3º da Lei nº 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107","3.01.01.07","DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010701","3.01.01.07.01","DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","account_demo_3010107"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010107010100","3.01.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_301010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a -administradores, diretores, gerentes e seus assessores (PN Cosit nº 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010201","3.01.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_301010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. -2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010203","3.01.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010205","3.01.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010207","3.01.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010209","3.01.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_301010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; -2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010300","3.01.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010400","3.01.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010401","3.01.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_301010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010402","3.01.01.07.01.04.02","Locação de Mão-de-obra","account_demo_301010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010500","3.01.01.07.01.05.00","Encargos Sociais – Previdência Social","account_demo_301010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes – PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010600","3.01.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_301010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010700","3.01.01.07.01.07.00","Encargos Sociais – Outros","account_demo_301010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010800","3.01.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_301010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010900","3.01.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei nº 9.249/1995, art.13, § 2º)","account_demo_301010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011000","3.01.01.07.01.10.00","Doações a Entidades Civis","account_demo_301010701","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011100","3.01.01.07.01.11.00","Outras Contribuições e Doações","account_demo_301010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011200","3.01.01.07.01.12.00","Alimentação do Trabalhador","account_demo_301010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011300","3.01.01.07.01.13.00","PIS/Pasep","account_demo_301010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011400","3.01.01.07.01.14.00","Cofins","account_demo_301010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011500","3.01.01.07.01.15.00","CPMF","account_demo_301010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011600","3.01.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_301010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta; -e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; -f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011700","3.01.01.07.01.17.00","Arrendamento Mercantil","account_demo_301010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011800","3.01.01.07.01.18.00","Aluguéis","account_demo_301010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011900","3.01.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_301010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012001","3.01.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_301010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012002","3.01.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_301010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012100","3.01.01.07.01.21.00","Multas","account_demo_301010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012200","3.01.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_301010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012300","3.01.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_301010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012400","3.01.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_301010701","Contas que registram as despesas com a constituição de provisões para: -a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); -b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012500","3.01.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_301010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012600","3.01.01.07.01.26.00","Demais Provisões","account_demo_301010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012700","3.01.01.07.01.27.00","Gratificações a Administradores","account_demo_301010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012800","3.01.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012900","3.01.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013000","3.01.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_301010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013100","3.01.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_301010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013200","3.01.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_301010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013301","3.01.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_301010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013390","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: -a) contribuição sindical; -b) prêmios de seguro; -c) fretes e carretos que não componham os custos; -d) transporte de empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109","3.01.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010901","3.01.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3010109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010109010100","3.01.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_301010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. -Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010200","3.01.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010901","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). -Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010300","3.01.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_301010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010400","3.01.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_301010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio liquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP) observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010500","3.01.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_301010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira; -2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010600","3.01.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010700","3.01.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_301010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção:considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010710","3.01.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. -Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010800","3.01.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_301010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010900","3.01.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_301010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011000","3.01.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_301010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011100","3.01.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011200","3.01.01.09.01.12.00","(-) Contrapartida dos Ajustes de Valor do Imobilizado e Intangível","account_demo_301010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account_demo_301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010301","3.01.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_30103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301030101","3.01.03.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_3010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010301010100","3.01.03.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente","account_demo_301030101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação, de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301010110","3.01.03.01.01.01.10","Ganhos de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030101","Contas que registram o ganho de capital resultante de acréscimo, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial. -Atenção: Esse valor deve ser excluído do lucro líquido para determinação do lucro real no período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301010200","3.01.03.01.01.02.00","Outras Receitas Não Operacionais","account_demo_301030101","Contas que registram: -a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; -b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); -c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" -"account_demo_301030103","3.01.03.01.03","DESPESAS NÃO OPERACIONAIS","account_demo_3010301",,"view","account.data_account_type_view","base.main_company" -"account_demo_3010301030100","3.01.03.01.03.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_301030103","Contas que registram o contábil dos bens do ativo permanente baixados no curso do período de apuração cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente. O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301030110","3.01.03.01.03.01.10","(-) Perdas de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030103","Contas que registram a perda de capital resultante de redução, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301030200","3.01.03.01.03.02.00","(-) Outras Despesas Não Operacionais","account_demo_301030103","Contas que registram: -a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos. -Atenção: Sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426 do Decreto no 3.000, de 1999. -b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" -"account_demo_30105","3.01.05","PARTICIPAÇÕES","account_demo_301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501","3.01.05.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301050101","3.01.05.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501010100","3.01.05.01.01.01.00","(-) Participações de Empregados","account_demo_301050101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501010200","3.01.05.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_301050101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501010300","3.01.05.01.01.03.00","(-) Outras Participações de Empregados","account_demo_301050101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" -"account_demo_301050103","3.01.05.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501030100","3.01.05.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_301050103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501030200","3.01.05.01.03.02.00","(-) Participações de Debêntures ","account_demo_301050103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" -"account_demo_3010501030300","3.01.05.01.03.03.00","(-) Outras ","account_demo_301050103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_302",3.02,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account_demo_3"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30201","3.02.01","PROVISÃO PARA CSLL E IRPJ","account_demo_302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3020101","3.02.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_30201"," ","view","account.data_account_type_view","base.main_company" -"account_demo_302010101","3.02.01.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_3020101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3020101010100","3.02.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_302010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão da CSLL sobre os resultados das operações realizadas com os não-associados. -Atenção: para as empresas com atividades mistas, os valores da CSLL relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" -"account_demo_3020101010200","3.02.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_302010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão para o IRPJ sobre os resultados das operações realizadas com os não-associados. -Atenção: para as empresas com atividades mistas, os valores do IRPJ relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" -"account_demo_305",3.05,"RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30501","3.05.01","RESULTADO OPERACIONAL DA ATIVIDADE RURAL ","account_demo_305"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101","3.05.01.01","RECEITA OPERACIONAL LÍQUIDA DA ATIVIDADE RURAL","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010101","3.05.01.01.01","RECEITA BRUTA DA ATIVIDADE RURAL","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101010100","3.05.01.01.01.01.00","Receita da Atividade Rural","account_demo_305010101","Contas que registram a receita da atividade rural. ","other","account.data_account_type_view","base.main_company" -"account_demo_305010103","3.05.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101030100","3.05.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_305010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes da conta Receita da Atividade Rural.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030200","3.05.01.01.03.02.00","(-) ICMS","account_demo_305010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes da conta Receita da Atividade Rural. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030300","3.05.01.01.03.03.00","(-) Cofins","account_demo_305010103","Contas que registram a Cofins apurada sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). - Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030400","3.05.01.01.03.04.00","(-) PIS/Pasep","account_demo_305010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030500","3.05.01.01.03.05.00","(-) ISS","account_demo_305010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços, conforme legislação específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030600","3.05.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_305010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que trata a conta Receita da Atividade Rural, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050103","3.05.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010301","3.05.01.03.01","CUSTO DOS PRODUTOS DA ATIVIDADE RURAL VENDIDOS","account_demo_3050103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050103010000","3.05.01.03.01.00.00","Custo dos Produtos Vendidos da Atividade Rural","account_demo_305010301",,"other","account.data_account_type_view","base.main_company" -"account_demo_305010309","3.05.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_305010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050105","3.05.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010501","3.05.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3050105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050105010100","3.05.01.05.01.01.00","Variações Cambiais Ativas","account_demo_305010501","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. -Atenção: -1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei no 9.718, art. 9o c/c art. 17); -2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de 20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010200","3.05.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010501","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; -2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. -3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010300","3.05.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_305010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. -Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010400","3.05.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_305010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010500","3.05.01.05.01.05.00","Outras Receitas Financeiras","account_demo_305010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. -Atenção: -1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; -2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010600","3.05.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010700","3.05.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_305010501","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -c) as bonificações recebidas; -Atenção: -1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995).; -2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; -Atenção:os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010710","3.05.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010800","3.05.01.05.01.08.00","Resultados Positivos em SCP","account_demo_305010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para a registro: -a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; -b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. -Atenção:os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto no 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010900","3.05.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_305010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4o trimestre. -Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011000","3.05.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_305010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011100","3.05.01.05.01.11.00","Outras Receitas Operacionais","account_demo_305010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II);e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011200","3.05.01.05.01.12.00","Prêmios Recebidos na Emissão de Debêntures","account_demo_305010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011300","3.05.01.05.01.13.00","Doações e Subvenções para Investimentos","account_demo_305010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011400","3.05.01.05.01.14.00","Contrapartida dos Ajustes ao Valor Presente","account_demo_305010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011500","3.05.01.05.01.15.00","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3050107","3.05.01.07","DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010701","3.05.01.07.01","DESPESAS OPERACIONAIS DA ATIVIDADE RURAL","account_demo_3050107"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050107010100","3.05.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_305010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal ou consultivo. -Atenção: os valores das gratificações aos dirigentes que estejam ligados à área de produção rural devem ser informados na conta Remuneração a Dirigentes da Produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010201","3.05.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_305010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. -2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010203","3.05.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010205","3.05.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010207","3.05.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010209","3.05.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_305010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; -2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010300","3.05.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010400","3.05.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010401","3.05.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_305010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010402","3.05.01.07.01.04.02","Locação de Mão-de-obra","account_demo_305010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010500","3.05.01.07.01.05.00","Encargos Sociais - Previdência Social","account_demo_305010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010600","3.05.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_305010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010700","3.05.01.07.01.07.00","Encargos Sociais – Outros","account_demo_305010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010800","3.05.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_305010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010900","3.05.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account_demo_305010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011000","3.05.01.07.01.10.00","Doações a Entidades Civis","account_demo_305010701","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011100","3.05.01.07.01.11.00","Outras Contribuições e Doações","account_demo_305010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011200","3.05.01.07.01.12.00","Alimentação do Trabalhador","account_demo_305010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011300","3.05.01.07.01.13.00","PIS/Pasep","account_demo_305010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011400","3.05.01.07.01.14.00","Cofins","account_demo_305010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011500","3.05.01.07.01.15.00","CPMF","account_demo_305010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011600","3.05.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_305010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta ; -e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; -f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011700","3.05.01.07.01.17.00","Arrendamento Mercantil","account_demo_305010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011800","3.05.01.07.01.18.00","Aluguéis","account_demo_305010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011900","3.05.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_305010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012001","3.05.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_305010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012002","3.05.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_305010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012100","3.05.01.07.01.21.00","Multas","account_demo_305010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012200","3.05.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_305010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012300","3.05.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_305010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012400","3.05.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_305010701","Contas que registram as despesas com a constituição de provisões para: -a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); -b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012500","3.05.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_305010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012600","3.05.01.07.01.26.00","Demais Provisões","account_demo_305010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012700","3.05.01.07.01.27.00","Gratificações a Administradores","account_demo_305010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012800","3.05.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012900","3.05.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013000","3.05.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_305010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013100","3.05.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_305010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013200","3.05.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_305010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013301","3.05.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_305010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013390","3.05.01.07.01.33.90","Outras Despesas Operacionais","account_demo_305010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: -a) contribuição sindical; -b) prêmios de seguro; -c) fretes e carretos que não componham os custos; -d) transporte de empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109","3.05.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010901","3.05.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3050109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050109010100","3.05.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_305010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art. 52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização,dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. -Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo -diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010200","3.05.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010901","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). -Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010300","3.05.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_305010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010400","3.05.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_305010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio líquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP), observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010500","3.05.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_305010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira. -2) As variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010600","3.05.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010700","3.05.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_305010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010710","3.05.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. -Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010800","3.05.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_305010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010900","3.05.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_305010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011000","3.05.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_305010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011100","3.05.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011200","3.05.01.09.01.12.00","(-) Contrapartida dos ajustes de valor do imobilizado e intangível","account_demo_305010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_30503","3.05.03","PARTICIPAÇÕES","account_demo_305"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050301","3.05.03.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30503"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305030101","3.05.03.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3050301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050301010100","3.05.03.01.01.01.00","(-) Participações de Empregados","account_demo_305030101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301010200","3.05.03.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_305030101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301010300","3.05.03.01.01.03.00","(-) Outras Participações de Empregados","account_demo_305030101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" -"account_demo_305030103","3.05.03.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3050301",,"view","account.data_account_type_view","base.main_company" -"account_demo_3050301030100","3.05.03.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_305030103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301030200","3.05.03.01.03.02.00","(-) Participações de Debêntures","account_demo_305030103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" -"account_demo_3050301030500","3.05.03.01.03.05.00","(-) Outras ","account_demo_305030103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_306",3.06,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account_demo_3",,"view","account.data_account_type_view","base.main_company" -"account_demo_30601","3.06.01","PROVISÃO PARA CSLL E IRPJ","account_demo_306",,"view","account.data_account_type_view","base.main_company" -"account_demo_3060101","3.06.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_30601",,"view","account.data_account_type_view","base.main_company" -"account_demo_306010101","3.06.01.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_3060101",,"view","account.data_account_type_view","base.main_company" -"account_demo_3060101010100","3.06.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_306010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" -"account_demo_3060101010200","3.06.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_306010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" -"account.gpf",4,"SUPERÁVIT/DÉFICIT LÍQUIDO DO PERÍODO","account.chart0","GRUPO DESTINADO EXCLUSIVAMENTE ÀS SOCIEDADES SIMPLES, SEM FINS LUCRATIVOS","view","account.data_account_type_view","base.main_company" -"account_demo_401",4.01,"RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40101","4.01.01","RECEITA OPERACIONAL LÍQUIDA","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account.income_view","4.01.01.01","RECEITA BRUTA","account_demo_40101"," ","view","account.data_account_type_view","base.main_company" -"account.rev","4.01.01.01.01","RECEITA DE VENDA DE PRODUTOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101010100","4.01.01.01.01.01.00","Da atividade de Educação","account.rev","Contas que registram a receita de venda dos produtos da atividade de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010200","4.01.01.01.01.02.00","Da atividade de Saúde","account.rev","Contas que registram a receita de venda dos produtos da atividade de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010300","4.01.01.01.01.03.00","Da atividade de Assistência Social","account.rev","Contas que registram a receita de venda dos produtos da atividade de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010400","4.01.01.01.01.04.00","Outras","account.rev","Contas que registram as demais receitas de vendas de produtos.","other","account.data_account_type_view","base.main_company" -"account_demo_401010102","4.01.01.01.02","RECEITA DE PRESTAÇÃO DOS SERVIÇOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101020100","4.01.01.01.02.01.00","Serviços Educacionais","account_demo_401010102","Contas que registram as receitas de prestação de serviços na atividade educacional.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020200","4.01.01.01.02.02.00","Doações/Subvenções Vinculadas ","account_demo_401010102","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à prestação de serviços, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020300","4.01.01.01.02.03.00","Doações","account_demo_401010102","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020400","4.01.01.01.02.04.00","Contribuições","account_demo_401010102","Contas que registram as receitas recebidas como contribuições com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020500","4.01.01.01.02.05.00","Outras","account_demo_401010102","Contas que registram as demais receitas de prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_401010103","4.01.01.01.03","RECEITA DE SERVIÇOS DE SAÚDE","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101030100","4.01.01.01.03.01.00","Pacientes Particulares","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030200","4.01.01.01.03.02.00","Convênios – SUS","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes conveniados do SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030300","4.01.01.01.03.03.00","Convênios – Outros","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a outros pacientes conveniados.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030400","4.01.01.01.03.04.00","Doações/Subvenções Vinculadas","account_demo_401010103","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030500","4.01.01.01.03.05.00","Doações","account_demo_401010103","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área da saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030600","4.01.01.01.03.06.00","Contribuições","account_demo_401010103","Contas que registram as receitas recebidas como contribuições com destinação à área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030700","4.01.01.01.03.07.00","Outras","account_demo_401010103","Contas que registram as demais receitas de serviços de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_401010104","4.01.01.01.04","RECEITAS DE SERVIÇOS DE ASSISTÊNCIA SOCIAL","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101040100","4.01.01.01.04.01.00","Pacientes Particulares","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040200","4.01.01.01.04.02.00","Convênios - Outros","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares através de convênios/contratos/termos de parcerias.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040300","4.01.01.01.04.03.00","Doações/Subvenções Vinculadas","account_demo_401010104","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040400","4.01.01.01.04.04.00","Doações","account_demo_401010104","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040500","4.01.01.01.04.05.00","Contribuições","account_demo_401010104","Contas que registram as receitas recebidas como contribuições com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040600","4.01.01.01.04.06.00","Outras","account_demo_401010104","Contas que registram as demais receitas de serviços na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_401010105","4.01.01.01.05","RECEITAS DE OUTRAS ATIVIDADES","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101050100","4.01.01.01.05.01.00","Contribuições Sindicais","account_demo_401010105","Contas que registram receitas com a natureza de contribuições sindicais.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050200","4.01.01.01.05.02.00","Contribuições Confederativas/Associativas","account_demo_401010105","Contas que registram receitas com a natureza de contribuições confederativas e/ou associativas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050300","4.01.01.01.05.03.00","Mensalidades","account_demo_401010105","Contas que registram receitas com a natureza de mensalidades revertidas por seus associados.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050400","4.01.01.01.05.04.00","Doações/Subvenções","account_demo_401010105","Contas que registram receitas com a natureza de doações e/ou subvenções recebidas de entidades públicas e/ou privadas, e de pessoas físicas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050500","4.01.01.01.05.05.00","Outras Contribuições","account_demo_401010105","Demais contas que registram contribuições não especificadas anteriormente.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050600","4.01.01.01.05.06.00","Outras","account_demo_401010105"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401010109","4.01.01.01.09","DEDUÇÕES DA RECEITA BRUTA","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101090100","4.01.01.01.09.01.00","(-) Vendas Canceladas","account_demo_401010109","Contas que registram vendas das prestações de serviços canceladas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101090200","4.01.01.01.09.02.00","(-) Devoluções e Descontos Incondicionais","account_demo_401010109","Contas que registram as devoluções e descontos incondicionais nas atividades da entidade.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101090300","4.01.01.01.09.03.00","Outras","account_demo_401010109","Contas que registram as demais deduções da receita bruta.","other","account.data_account_type_view","base.main_company" -"account_demo_40103","4.01.03","CUSTO DOS PRODUTOS E SERVIÇOS VENDIDOS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301","4.01.03.01","CUSTO DOS PRODUTOS VENDIDOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401030101","4.01.03.01.01","CUSTO DOS PRODUTOS VENDIDOS PARA EDUCAÇÃO","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301010100","4.01.03.01.01.01.00","Custos dos Produtos para Educação - Vendidos","account_demo_401030101","Contas que registram o custo do produto vendido na área de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301010200","4.01.03.01.01.02.00","Custos dos Produtos para Educação - Gratuidades","account_demo_401030101","Contas que registram o custo do produto dado em gratuidade na área de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301010300","4.01.03.01.01.03.00","Outros Custos","account_demo_401030101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030102","4.01.03.01.02","CUSTO DOS PRODUTOS VENDIDOS PARA SAÚDE","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301020100","4.01.03.01.02.01.00","Custos dos Produtos para Saúde – Vendidos","account_demo_401030102","Contas que registram o custo do produto vendido na área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301020200","4.01.03.01.02.02.00","Custos dos Produtos para Saúde - Gratuidades","account_demo_401030102","Contas que registram o custo do produto dado em gratuidade na área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301020300","4.01.03.01.02.03.00","Outros Custos","account_demo_401030102"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030103","4.01.03.01.03","CUSTO DOS PRODUTOS VENDIDOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301030100","4.01.03.01.03.01.00","Custos dos Produtos para Assistência Social - Vendidos","account_demo_401030103","Contas que registram o custo do produto vendido na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301030200","4.01.03.01.03.02.00","Custos dos Produtos para Assistência Social - Gratuidades","account_demo_401030103","Contas que registram o custo do produto dado em gratuidade na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301030300","4.01.03.01.03.03.00","Outras","account_demo_401030103"," ","other","account.data_account_type_view","base.main_company" -"account.cos","4.01.03.01.04","CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account.cog","4.01.03.01.04.01.00","Custos dos Produtos Vendidos em Geral","account.cos","Contas que registram o custo do produto vendido nas atividades não abrangidas anteriormente.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301040200","4.01.03.01.04.02.00","Outros Custos","account.cos"," ","other","account.data_account_type_view","base.main_company" -"account_demo_4010302","4.01.03.02","CUSTO DOS SERVIÇOS PRESTADOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401030201","4.01.03.02.01","CUSTO DOS SERVIÇOS PRESTADOS PARA EDUCAÇÃO","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302010100","4.01.03.02.01.01.00","Custo dos Serviços Prestados a Alunos Não Bolsistas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos não bolsistas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010200","4.01.03.02.01.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias (Exceto PROUNI)","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no PROUNI.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010300","4.01.03.02.01.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de educação, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010400","4.01.03.02.01.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados às demais doações, com destinação à área de educação, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010500","4.01.03.02.01.05.00","Custo dos Serviços Prestados ao PROUNI","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados ao PROUNI.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010600","4.01.03.02.01.06.00","Custo dos Serviços Prestados a Gratuidade ","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos com gratuidades de bolsas parciais e/ou integrais, exceto às vinculadas ao PROUNI, sendo que para as bolsas parciais, o custo deverá ser lançado com o valor parcial, o restante do custo deste aluno, será lançado na conta dos alunos não bolsistas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010700","4.01.03.02.01.07.00","Outros Custos","account_demo_401030201"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030202","4.01.03.02.02","CUSTO DOS SERVIÇOS PRESTADOS PARA SAÚDE","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302020100","4.01.03.02.02.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020200","4.01.03.02.02.02.00","Custo dos Serviços Prestados a Convênios SUS","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes atendidos através do convênio do SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020300","4.01.03.02.02.03.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020400","4.01.03.02.02.04.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020500","4.01.03.02.02.05.00","Custo dos Serviços Prestados a Doações","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020600","4.01.03.02.02.06.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes com gratuidades do pagamento, exceto às vinculadas ao SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020700","4.01.03.02.02.07.00","Outros Custos","account_demo_401030202"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030203","4.01.03.02.03","CUSTO DOS SERVIÇOS PRESTADOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302030100","4.01.03.02.03.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030200","4.01.03.02.03.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados aos convênios/contratos/parcerias, exceto àqueles que estão vinculados por doações e por subvenções.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030300","4.01.03.02.03.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados a doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030400","4.01.03.02.03.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030203","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030500","4.01.03.02.03.05.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários com gratuidades do pagamento, exceto às atividades vinculadas por doações e por subvenções. Em especial, ao publico alvo da política nacional de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030600","4.01.03.02.03.06.00","Outros Custos","account_demo_401030203"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030204","4.01.03.02.04","CUSTO DOS SERVIÇOS PRESTADOS PARA AS DEMAIS ATIVIDADES","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302040100","4.01.03.02.04.01.00","Custo dos Serviços Prestados em Geral","account_demo_401030204","Contas que registram o custo da prestação do serviço para as demais atividades, não informadas anteriormente. ","other","account.data_account_type_view","base.main_company" -"account_demo_4010302040200","4.01.03.02.04.02.00","Outros Custos","account_demo_401030204"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40105","4.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010501","4.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_40105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401050101","4.01.05.01.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_4010501"," ","view","account.data_account_type_view","base.main_company" -"account.income_fx_income","4.01.05.01.01.01.00","Variações Cambiais Ativas","account_demo_401050101","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações das taxas de câmbio. -Atenção: -1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da -exploração (Lei no 9.718, art. 9o c/c art. 17); -2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de -20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010200","4.01.05.01.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_401050101","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e -controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; -2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica; -3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010300","4.01.05.01.01.03.00","Ganhos em Operações Day-Trade","account_demo_401050101","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. -Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010400","4.01.05.01.01.04.00","Outras Receitas de Aplicações Financeiras","account_demo_401050101","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em outras contas. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. -Atenção: -1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; -2) as variações cambiais ativas devem ser informadas na conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010500","4.01.05.01.01.05.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401050101","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos em outra conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010600","4.01.05.01.01.06.00","Resultados Positivos em Participações Societárias","account_demo_401050101","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -c) as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido. -d) as bonificações recebidas; -Atenção: -1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são -consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995); -2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; -Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010700","4.01.05.01.01.07.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_401050101","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. -Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais ","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010800","4.01.05.01.01.08.00","Reversão dos Saldos das Provisões Operacionais","account_demo_401050101","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010900","4.01.05.01.01.09.00","Outras Receitas Operacionais","account_demo_401050101","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II); -e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na -forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501011000","4.01.05.01.01.10.00","Outras","account_demo_401050101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40107","4.01.07","DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010701","4.01.07.01","DESPESAS OPERACIONAIS","account_demo_40107"," ","view","account.data_account_type_view","base.main_company" -"account.expense_view","4.01.07.01.01","DESPESAS OPERACIONAIS","account_demo_4010701"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40107010100","4.01.07.01.01.00","Remunerações a Empregados","account.expense_view","Contas que registram os valores lançados como salários, gratificações, horas extras, adicionais e similares pag0s a empregados da entidade.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010200","4.01.07.01.02.00","Indenizações Trabalhistas","account.expense_view","Contas que registram os valores lançados como abonos pecuniários, indenização de 40% do FGTS, indenizações determinadas pelo Juiz e similares pagas aos empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010300","4.01.07.01.03.00","Remuneração a Dirigentes e a Conselho de Administração/Fiscal","account.expense_view","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010400","4.01.07.01.04.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account.expense_view","Contas que registram as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica declarante, tais como: comissões, corretagens, gratificações, honorários e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010500","4.01.07.01.05.00","Prestação de Serviço por Pessoa Jurídica","account.expense_view","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010600","4.01.07.01.06.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account.expense_view","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010700","4.01.07.01.07.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account.expense_view","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010800","4.01.07.01.08.00","Doações a Entidades Civis","account.expense_view","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010900","4.01.07.01.09.00","Outras Contribuições e Doações","account.expense_view","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011000","4.01.07.01.10.00","FGTS (sem indenização 40%)","account.expense_view","Contas que registram o FGTS, inclusive os valores do FGTS do 13º. salário. Não informar os valores de indenização da multa de 40% do FGTS nesse item, e sim, na conta Indenizações Trabalhistas .","other","account.data_account_type_view","base.main_company" -"account_demo_40107011100","4.01.07.01.11.00","Assistência Médica, Odontológica, Medicamentos, Aparelhos Ortopédicos e Similares","account.expense_view","Contas que registram as despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011200","4.01.07.01.12.00","Provisões para Férias e 13o Salário de Empregados","account.expense_view","Contas que registram as despesas com a constituição de provisões para: a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); b) o 13o salário, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_40107011300","4.01.07.01.13.00","Demais Provisões","account.expense_view","Contas que registram as despesas com provisões não relacionadas nas contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011400","4.01.07.01.14.00","Arrendamento Mercantil","account.expense_view","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_40107011500","4.01.07.01.15.00","Aluguéis","account.expense_view","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011600","4.01.07.01.16.00","Despesas com Veículos e de Conservação de Bens e Instalações","account.expense_view","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011700","4.01.07.01.17.00","Propaganda e Publicidade","account.expense_view","Contas que registram as despesas com propaganda e publicidade. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011800","4.01.07.01.18.00","Multas","account.expense_view","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011900","4.01.07.01.19.00","Encargos de Depreciação e Amortização","account.expense_view","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012000","4.01.07.01.20.00","Repasses para Outras Entidades (Sindicatos/Federações/Confederações)","account.expense_view","Contas que foram repassadas parte das contribuições/doações/mensalidades e similares para Sindicatos/Federações/Confederações.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012100","4.01.07.01.21.00","Contribuições Previdenciárias Patronais","account.expense_view","Contas que registram as contribuições previdenciárias devidas. No caso de imunes/isentas, informar o valor da contribuição previdenciária patronal devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012200","4.01.07.01.22.00","COFINS","account.expense_view","Contas que registram a Cofins devida. No caso de imunes/isentas, informar o valor da Cofins devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012300","4.01.07.01.23.00","CSLL","account.expense_view","Contas que registram a CSLL devida. No caso de imunes/isentas, informar o valor da CSLL devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012400","4.01.07.01.24.00","PIS/PASEP","account.expense_view","Contas que registram o valor da contribuição para o PIS/PASEP devida.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012500","4.01.07.01.25.00","CPMF","account.expense_view","Contas que registram o valor da CPMF devida.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012600","4.01.07.01.26.00","Demais Impostos, Taxas e Contribuições, exceto as citadas acima.","account.expense_view","Contas que registram os demais impostos, taxas e contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012700","4.01.07.01.27.00","Outras Despesas Operacionais","account.expense_view"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40109","4.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010901","4.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_40109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401090101","4.01.09.01.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_4010901"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010901010100","4.01.09.01.01.01.00","(-) Variações Cambiais Passivas","account_demo_401090101","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o), inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010200","4.01.09.01.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_401090101","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias, que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado a vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições).São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). Atenção: As perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010300","4.01.09.01.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_401090101","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010400","4.01.09.01.01.04.00","(-) Outras Despesas de Aplicações","account_demo_401090101","Contas que registram as despesas relativas a juros, não incluídas em outras contas, a descontos de títulos de crédito e outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das -obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesas financeiras; -2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas .","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010500","4.01.09.01.01.05.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401090101","Contas que registram os prejuízos havidos em virtude de alienação, títulos não integrantes do ativo permanente, desde que não incluídos nas contas acima.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010600","4.01.09.01.01.06.00","(-) Resultados Negativos em Participações Societárias","account_demo_401090101","Contas que registram as perdas por ajustes no valor de investimentos relevantes, avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010700","4.01.09.01.01.07.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_401090101","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010800","4.01.09.01.01.08.00","Outras Despesas Operacionais","account_demo_401090101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_403",4.03,"OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40301","4.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_403"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030101","4.03.01.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_40301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_403010101","4.03.01.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030101010100","4.03.01.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente.","account_demo_403010101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais . Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_4030101010200","4.03.01.01.01.02.00","Outras Receitas Não Operacionais","account_demo_403010101","Contas que registram: -a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; -b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela -equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); -c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. -Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" -"account_demo_403020101","4.03.02.01.01","DESPESAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030201010100","4.03.02.01.01.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_403020101","Contas que registram o valor contábil dos bens do ativo permanente baixados no curso do período de apuração, cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente . O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_4030201010200","4.03.02.01.01.02.00","(-) Outras Despesas Não Operacionais","account_demo_403020101","Contas que registram: -a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos; -Atenção: sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426, ambos do Decreto no 3.000, de 1999. -b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" -"account_demo_5",5,"CUSTOS DE PRODUÇÃO","account.chart0",,"view","account.data_account_type_expense","base.main_company" -"account_demo_501",5.01,"CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_50101","5.01.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_501010100","5.01.01.01.00","Consumo de Insumos","account_demo_50101","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material direto e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010400","5.01.01.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50101","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010500","5.01.01.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50101","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010503","5.01.01.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501010505","5.01.01.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501010507","5.01.01.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010509","5.01.01.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50101","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010600","5.01.01.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010700","5.01.01.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501010800","5.01.01.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50101","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501010900","5.01.01.09.00","Locação de Mão-de-obra","account_demo_50101","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501011000","5.01.01.10.00","Encargos Sociais – Previdência Social","account_demo_50101","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011100","5.01.01.11.00","Encargos Sociais – FGTS","account_demo_50101","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011200","5.01.01.12.00","Encargos Sociais – Outros","account_demo_50101","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011300","5.01.01.13.00","Alimentação do Trabalhador","account_demo_50101","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011400","5.01.01.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50101","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011500","5.01.01.15.00","Arrendamento Mercantil","account_demo_50101","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","other","account.data_account_type_expense","base.main_company" -"account_demo_501011600","5.01.01.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50101","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011700","5.01.01.17.00","Constituição de Provisões","account_demo_50101","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011800","5.01.01.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501011900","5.01.01.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501012000","5.01.01.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501012100","5.01.01.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501019000","5.01.01.90.00","Outros Custos","account_demo_50101","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" -"account_demo_50103","5.01.03","CUSTO DOS SERVIÇOS PRODUZIDOS","account_demo_501",,"view","account.data_account_type_expense","base.main_company" -"account_demo_501030200","5.01.03.02.00","Material Aplicado na Produção de Serviços","account_demo_50103","Contas correspondentes aos materiais aplicados diretamente na produção de serviços dos serviços durante o período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030400","5.01.03.04.00","Remuneração a Dirigentes ligados à Produção de Serviços","account_demo_50103","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção de serviços, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção de serviços (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção de serviços, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030500","5.01.03.05.00","Custo do Pessoal Aplicado na Produção de Serviços","account_demo_50103","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção de serviços da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030503","5.01.03.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" -"account_demo_501030505","5.01.03.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" -"account_demo_501030507","5.01.03.05.07","Plano de Previdência Privada de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030509","5.01.03.05.09","Outros Gastos com Pessoal Ligado à Produção de Serviços","account_demo_50103","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030600","5.01.03.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030700","5.01.03.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501030800","5.01.03.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50103","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501030900","5.01.03.09.00","Locação de Mão-de-obra","account_demo_50103","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501031000","5.01.03.10.00","Encargos Sociais – Previdência Social","account_demo_50103","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031100","5.01.03.11.00","Encargos Sociais – FGTS","account_demo_50103","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria – PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031200","5.01.03.12.00","Encargos Sociais – Outros","account_demo_50103","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção de serviços, não classificados nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031300","5.01.03.13.00","Alimentação do Trabalhador","account_demo_50103","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção de serviços, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031400","5.01.03.14.00","Manutenção e Reparo de Bens Aplicados na Produção de Serviços","account_demo_50103","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031500","5.01.03.15.00","Arrendamento Mercantil","account_demo_50103","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção de serviços, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção de serviços, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção de serviços devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031600","5.01.03.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50103","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção de serviços. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção de serviços devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031700","5.01.03.17.00","Constituição de Provisões","account_demo_50103","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção de serviços da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031800","5.01.03.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501031900","5.01.03.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501032000","5.01.03.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501032100","5.01.03.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501039000","5.01.03.90.00","Outros Custos","account_demo_50103","Contas que representam os demais custos da empresa no processo de produção de serviços, para os quais não haja conta mais específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" -"account_demo_50105","5.01.05","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS DA ATIVIDADE RURAL","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_501050100","5.01.05.01.00","Consumo de Insumos","account_demo_50105","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material secundário e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050400","5.01.05.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50105","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050500","5.01.05.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50105","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050503","5.01.05.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501050505","5.01.05.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501050507","5.01.05.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050509","5.01.05.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50105","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050600","5.01.05.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050700","5.01.05.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501050800","5.01.05.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50105","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501050900","5.01.05.09.00","Locação de Mão-de-obra","account_demo_50105","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501051000","5.01.05.10.00","Encargos Sociais – Previdência Social","account_demo_50105","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051100","5.01.05.11.00","Encargos Sociais – FGTS","account_demo_50105","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051200","5.01.05.12.00","Encargos Sociais – Outros","account_demo_50105","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051300","5.01.05.13.00","Alimentação do Trabalhador","account_demo_50105","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051400","5.01.05.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50105","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051500","5.01.05.15.00","Arrendamento Mercantil","account_demo_50105","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051600","5.01.05.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50105","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051700","5.01.05.17.00","Constituição de Provisões","account_demo_50105","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051800","5.01.05.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501051900","5.01.05.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501052000","5.01.05.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501052100","5.01.05.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501059000","5.01.05.90.00","Outros Custos","account_demo_50105","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" diff --git a/l10n_br_account/demo/account_financial_demo.xml b/l10n_br_account/demo/account_financial_demo.xml deleted file mode 100644 index 4928ff24b09c..000000000000 --- a/l10n_br_account/demo/account_financial_demo.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - True - - A Vista - - - - - 07 e 14 dias liquidos - 07 / 14 DDL - - - - - - procent - - - - - - - balance - - - - - - 07 / 28 DDL - - - - - - - procent - - - - - - - balance - - - - - 35 DDL - - 35 dias - - - - - - balance - - - - - - 45 dias - 45 DDL - - - - - - balance - - - - - - diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml deleted file mode 100644 index 803990c56c7d..000000000000 --- a/l10n_br_account/demo/account_fiscal_demo.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/l10n_br_account/demo/account_tax_code.xml b/l10n_br_account/demo/account_tax_code.xml deleted file mode 100644 index 50776352e4eb..000000000000 --- a/l10n_br_account/demo/account_tax_code.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - Códigos de Impostos Brasileiros - 1 - - - - - IRPJ - IRPJ - irpj - 1 - - - - - - IR - IR - ir - 1 - - - - - - ISSQN - ISSQN - issqn - 1 - - - - - - CSLL - CSLL - csll - 1 - - - - - - - diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml deleted file mode 100644 index d1301d5e6f7a..000000000000 --- a/l10n_br_account/demo/base_demo.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_br_account/i18n/pt_BR.po b/l10n_br_account/i18n/pt_BR.po deleted file mode 100644 index 405b7c19b03c..000000000000 --- a/l10n_br_account/i18n/pt_BR.po +++ /dev/null @@ -1,9 +0,0 @@ -#. module: base -#: model:ir.module.module,shortdesc:base.module_l10n_br_account -msgid "Brazilian Localization Account" -msgstr "Localização Brasileira - Módulo base contabilidade" - -#. module: base -#: model:ir.module.module,description:base.module_l10n_br_sale_stock -msgid "Brazilian Localization Account" -msgstr "Localização Brasileira - Módulo principal que define as funcionalidades contabeis brasileira" diff --git a/l10n_br_account/images/l10n_br-hover.png b/l10n_br_account/images/l10n_br-hover.png deleted file mode 100644 index 4d33b9bb7c63a5245c90f1f4c16344fd07e29743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5558 zcmV;n6-nxeP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipN3 z78fcks*+SeRY*tzAw<@MEeI;Iinz2Q5LpzY z9k&s;?uM~t8jz)>ReDTc0pM3HO>({Sm{rdHU!XeCviI4&l zlid?Oj_SPtWb}L4_?Nlk!aIJtz--*OkwuFZVM-IlRH#j@rLtQU^_}XGnoIyAF0t8+ z$Qi-5+duf}0W)dRBq}N@kWw;q^f59*ue=_TpnNlR+;o;&Znla;TpWa+=6E+3k+cX4NB)Y3E`R)_%A1~^ zhTB`myPFJtme<51h$t|(|6TBDwZxDyfLc+aM@B!)!chy)4KU$wm`EhTb=O^oVHo%W zeiT!|Z}C%9P)vPiPt$;fM3aK5+a)4-7S8mi+idrO+zTizEv0i`olo9`G^am-Vx$C5 z2=4hn@Yh2U6wxXNee=shbWiR6!vpi|v(NJ6lTQ*E5TP!^Lw!dtW|DD&*N6=`A}PKV za_rzS`p~}9zBb!Ub*AEN@M2nQ5SUH>{0cU&UPfxW0LYkv#QJat;f1dR^FE9LB$_mA zT+i!RGkwhuANk&M&po(YE{f|*sLQEq2@0_pge9Nd6a_^}2y0ih8O+^u(@l82UNAtW z_QW(5KHt}wjQj_Aam7VZ0&YerPAkkEB=OFGmqtq*8em3U``SZm&rM38>pCwlTZXnp zZPm^Jh)CWU4+A^IF0nvKac;sT<>lq9Sg`_|&BmK=y$L25odzOHC&eFsB%*Tn>?u6= z@({#{-APE%;Ldz-|EuJ`uM!OEAi)5`G|r8?9zJYXbjJfYTd*=uje_yHO%r)##f3bv z+{(r^W&C#0Z&|l)9aU9T0GN7vP#qZdQBc;qiE-m%@T+-~>DjHCYp(bP8HqmX3NL61 zI4oe%;OD(0KhKAaMVxZFaK^oo$KxTbLmK8_6SL5428!SpeI?J0ikeTORXKVt#8YpD z)K5{&ZQwUR5t!|-fvP@9@{zvHG41jYR-q1jny}FEn1p~RT+jx=`FRB2q zk%cq6{M@-~P16ukU@SHf0!%5nJ{SIXtZZ_%z}^2|$cwKHX=S3V+o9dA;q``FWq_G? zZRfWSe?xlK*DcN&!L10(NEC7E%yCwLnKWqxiHOcBV zk1Cg)=nxD*A+Ki|U2@x#oUD=2F&VcfK+W+myLOi{_Szo2`SzDF1~@T6QYqc{2Riqu zJ0o*AE5PjDy_=y!ha!Hd(mzk-<0�oXR+Pe*H}rQ6LDDE@ycf_$g*c)k;#O;I`!2M`ld6>U-*hI_mwpRN$}#6Z!_cm-REyTX49rk z2q8#4DA_PuMF(Fw$!gOW6zXSQb1Ew?>owUq=b?Hv6_JL*cZaa9G`?D-sTLx>I? zdSFR0NzGL0(p!+!y^>MWGUz|CGerj+e7r{R`isTX`+RKP){PnWzXx1-ZZ#$l2#}PN z)FK_wbsYiRw@Bwtzpyr`yKGGQfDWtppDh|6ZgTU^%2J9;JP6f9Rh77zG!9Kl2!$gI zxwsQMcUI81e=1XM?#7t0S?mg~Bg2x-p1-8Ce)Tp!{&)+?w(TwQv`{F7uIt!rwzCV& zHP>8&+wG=f$BwL7(-ciU@x&86_uO-omXuQZO*=Ad3JHuGBiCv7-p7Z#GB8c>dLuL+ zMs!~!00R=kFj17K*_fsz5QuQY#D3)6e3-7??OdETgn^ceP}6sSJ|q_JL>M({6oz5M z+kWZgm&ogzchUs*djT_N&Kx#x-i(lf^BL3MIr_xFUw-po0Cat$iQ!= zVe4GRXPefQl*Boc{d^`i@q@rtFIx(Gb=v!}TCqI=`#P8*m(g9f2%I>#m)Lvv_I zqS-VC%yMYtXND;p7JWMLKBY`3vE9G$TK=-?LWD5mr=$c;1Bb(k%N2;F1qL%_4CKWZ zKSS5GXoXicfdXI{CaI}bG}X)DJxh>5jfeho0_)yCh=`e`kb(z)|221i7NS1f6f0)h zGAWu>bowblFc@V2{{0Yyq|_udMT>1Ze;A=L=X#hhOhZZ)A@mr(Yap67iN=Jn2N6O= z(^ND~K~V&nrT_|VcL+^WP*nwsMd7c1{fhhU9gLz#R8>LK6f`Y*z11qX_ufGyC+p<* zsswb9Di6~2`GaFxLhD+BXcoXp$px3p#xw5JPD{A6~601k5psNh*e;mUwdEnPWC@S(` zw_E7l+li_Q6h&aMs1zNo$Kwgnv7-%D6{xBb+XShpR-8@?IbGZH>8Eu}z5Z*Y)FCzw zAylxcT(MRojE1JDsLeJ-D5#1`zz8tn&m#yM;qMQOuIng@f?`!r6qPaA8vk{f28I@! zbTiYTm1B+O6w#UYZ`$w$)!Nl9v)Prmx9h7Y!t#dt@cX@aUMA5N!*Rd0WdqF8z2q4yw=6di+9Df4Lz zTcx4vO#s9}X|~_|*vt(xPtPlD-MW=4uDXJO&kc;*s{%MIk~{MycE1hOG79^)j~cbv z7S}`rzLDc+P~%RHXWTZMMnOSGwrwjrp^hA-tsz4)`RJo^x@6n&)Q6crYc)3%?nRnW zA5`I&j9eu#L`zPRLL$v(zmW;oEWT_pGX~H2{sCToUOw6^jg+L6goX_%Sy#B0oX$Bs zwx$dB4|T?a-8dM{Nm+oqE{SnB{|ohAYrGxPln5c>mnuq>jD--fa}Y5E^JZ<~&gq{J ziwP-fkX*9{g0acRC(a3A$d;f;DM`^&*ga$S>7@kYmW`)Y)WjQ|oHv=@jQ9-zS(#aQ z$AlPmT~99S1k-v#?^qSBF%}V`DNShbYy9qyV|ZsnK1tR{v)CrOW3ea%gJvvliJtq@ z@899dQHPPSvQL>$Qn)@^(uq&@#K|`YO42HLOUEreGuicyV>=kyWoW{&#fulSf%CT)Pah)m>@HngQx4Qlo~*O7a6S0XdBvM{bT>3?G%4&=cy<@{GqW<` z1MmfW*puyvPf&mo3!@Yz`u%B*WcvR>sx?~KpVCb>mBOWLa`Q6kc5mDO-Uv}1YHVAy z)C4JHye}yws-kjX#)SmU5UQduf8>0YY+XXgj7GjQFP(XIHD>tm;q2P6lkB-U^c~Qr zRS$5YcW4|=#00x08Il2aAo^ozq1JSf-J=WgNj;g3FOety(F>{h80)dQ~kdOwom3~&NtLC>W5-a}?JbIK% z{x||viJE7l*O5|UVq(F{ixZa8Ewx+A*Go?dnzC-QFWO-e=zp->0}@!E3D zff}q%E4EBqt3WY1#J=tW>eW1Y&%N`k>4 z)2B~I(=?ua_F2->(xSDW`Ud9yW-dV^hpG@s zVw#O%y+LttF_o2-+w5gY1q&A7a=D_OE27Zj(H^JNUng59mQGlD zT4Vk}UVv6rl|UdsO-&7@rKMC>R^s>jQ51z+Zn=dAAAFE$)21bW5)208pqQo!1yEO1 zN5mib*8a*H%DH3p>AlW+R>@aNNhlP;RRwY9Z`LLoM6*gzlK4_h-HT?Il>C+FyPCa7-u^!tHibRaJ$@;~^4>vawNXatSAaaMJ-nbcfYwi-d7+Jh_5>bBSEa1 z^~|R;Cz54VRTXZxn@}hek2xC8hr?lfJ|7;B2dC3X$BrGb+wG{T8aKPv_@phfYkb-j z6%_zfR#wJ?yAzA=%^yJX#rU%UO57`%ris_H*N=i!j^2;w1u3xZV0i#BZ z;)fO?rIbFOk7LJj-CHk*yKv^1PfC*g3I;^JcJ>+4(9nmg{eBW^a$ zWz(ijELyaP9Xoc!k9F?cnK#~egWcUsdvpz>nsk3 zgNllZ7H?^t3(*3B0Diy!q@YMC@%el-G&Eqh+vD2N8ksf+rLeG&Kp;SVem*vv4Z|=9 zg+d%Sa3Ic0jnch)cQ$O;fW>0rd=M=d44#x%9((LD)~#FD;`rl_KhBULL)rv#{P^(% zgFyxi7!aSV%jKfDxVY7O7A{;!*REX?ywACmHb=2@=T63s9UBKFGc%J89XiA(IcLrs z#*Q7!=FOYi^j;Q=1*fJW z@L;-h=|cDJ-6<$2ATKYEjEoHYem{#BFJ}Jy`K@wJquCridX%!VvXiC+qeqWs_Uzg5 zW2;xMKDWT=x}FewY}vAfS6_V7zMaCt z!uX#fR8^&G*RDYHzXgq1@rja}no3eq5=)jWp|Y})qM{RX7nuf>YVd~VWtXsE^!-o&! za5%oT^DSGpkdu>x&*!6K$Bw-9)?2t-E~JzkJ9g}Q)ltqE`C2R%oK7bmkB7;VCj-!< zM~~?0U~HAJtgH-|%XLbb@?(!Zmhd|%DJh}eVzb$pJb5y8b#-*;&;ggr#eo9{=+&!N z!hPA<+2__PDT+e-_U*CT?HoIHEU}(p80^`z=X#n<6fO1}llv0|eDR=GKB>}0bs=Vl;i)4O&z7$RWiul%T;lhP-|Ni~5 zrlv+V%JSvQ<;IO0Wm}?Ynk*_RlINq)xbwvqU&JSwnwt8pK%}Lm$)}!rO77UPLwY=( zRvW+c(o0VY%*vH3WiS{#zk#W!sE~d8_H7f0!Gj0Op+kqt6)RTA9Up#pN{we^WXO_| z68U44cs(XFGn2i0_wxGduO}3)uD$l!R%;~RCNI430tE#Hbm`KCAETU=Vz|fS!QpV= zcDql>ZJ&>FRuYp(AAJ;;%k`rL<*aGUPeGJ_LeRSWKj;JlKE`k^5&!@I07*qoM6N<$ Eg74{+vj6}9 diff --git a/l10n_br_account/images/l10n_br.png b/l10n_br_account/images/l10n_br.png deleted file mode 100644 index d65fda9da2782737583c0e7ccb2e7ba77b41762b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4953 zcmW-l2|UyPAIBvjSEYqq32CwuoR{aimZgt>1*=K7fu({klDa_6QTxo^Xq zxsSQ;^Z)UG?6K{!?fdaxwZOa5`ID9!ygCT~ z{Q%xBIBC6jMv>Raxd=W`o4$Ghr#L%*Bvog`fNw6pSJro;prF5g{=7he`^pBsq(LK8 z6=_HpZn3a3+ow|sQcy4tBj5@;ZX@J`cPI$)Mze2`{aW6J2XS{~|B}Q|@KDp$@%ubN zuLJ3mBS->Sy;OIg*4Yw?Jm3A3c+#SAy4k(y1Z?I5ab*P?gYVre?*rJMalEzB#{Fz+ z8VZ|umyh2W8sBT*zKHLMbS1I{_`_v;TbGBWT~|*goVuocyJ#^f&|?#=hIMQ1ZYp#PWqDlRjbE@yh=hK5OU&rkQ z%}8$9moS#+SbhqK;%#YZ4uz{|a-zqQAP$F1t+31gwB{@t#d zR9YIFc)FdDD2rUJ-g_Gy9IOEe8XYwnwR`;h`SU-8UsG5$r)$;80WO(edM zVv|jYmZ4!APW&BIQ1JGcNA2-uTbaP-$zWNHBF|N%xj9wN0PbNo)*^mn!~l$&VGU15 zuKLq(BOM)?^$0*>u*VOP*jgyneR#}OJ2n>d9FyBNSOkXKg^WtKA{G&2zwxZ$o ze4ia54-bz&#m_DD)3dWNRaG*^{Ww@)U?8XDdy0_X^$GShp(#*s!&=(fsmpu4X|EU< z7|c0efsqoAM&~m#GkJuB==EbuCfCy|mv@$l?>xsXi_%J1TaHH8_O=EM?F(GU2D@ZZ zb2Q%zHg4|0Qm_bVxw#Bc%`ucIur{y=W<|qdwv=&SzcwI6tPBhd3|?AW3xXLGsj=Eg zil}8=_xtvZJ3BiYT{}BJU-W+J*;q+ury4)vFTKe=Wp#D+pTb<*kmF;o4!0cN82@Wj z7Z6x0TU!hANJ(6WCAassCeUc@3E4g?KYxCIW7wx_wVI~pwVj=vmGNrn*|ODDyVkb0eDla9&1ZM`p+F*vI z;dfreA|(k zOEo|DBXZd_D*u9lhwL02;$O1VD3bE>B0meg(bCd-2Bc(a8cec$l zIy*b>d&wCIv$8&TI|DWbHC`2e_nRB<9rdtAQ?PZMOwFT|PJ3gn*BPi=y1M4oeGg+? zPF~0#UXwpN=vrJ}HtYH(D~a!fXh0N`b8^BqHXMMRF^4XU@OviDyvue4QqYeLZ8SxV z{)`5~20N!;Y;}$13ir%L^R0}ZKiT}?y!FA19O#+B2fhcdVqyBCW|W@BbzrX(TqnF) z{oJ?atl`*3(|=GX2L0HU)>czesqM{}_O1CYZ7r=|pmc%vNwK0z44e`FNOfb+zVL^p zz4}t-&-Q9r%R0OUAuXva50V`3D zX=$ijt7((n8x7>41-}tYcJ>H{Wj30HBQFq$%k(U;ZqcLQVCrKZ`2ZfIXngTJb)bTQ zfq`6klZvY9lwLTQW#ELZnP=kMPOOlGHsiho5775Rk>+4bKQ+z>t-e{68qP{Z6dJyBgC5EiM8_u{rlIHP(6&YbaMl_^Pz3F zw-`RameCjbdnzd@i6XHpgt)AllMI$ya4*|TgpC2z+BdIF1lMPW4u|kz)L^M!JrX%y zJs@nm7{xS61dv zu_g@I%r5k#vcJv_KEb5$V0dk9Z3R!#IMjW8<$ceNCWecx`*y6sb(AzAs^rujsI07P zgK5F1&vAM8TXL+#*d5A^KK%X%1hP`CI3hyIODLZm4^s{!n`)2>b-H#QD>sD%;7?+RDXmLA9vIX zj-kJeVfi?odzfD|x4e?35hw``dRF1@B_-mvC~afojv#v0bvGF>0kB`iDn@Bsa^URn zk%X2(3e-dm{=Q+Uk+0tyaA1Y=GJ4g(dts|fULCB0y37VuNlD2~n#|KgW&Zv3-&dk7 z^oiS|ew&G>J!TlSZBQ;3EErGga2vPkKw+&O{MBrdk(BC}>DP_G+qoFTsz?CgZW ziqJP_T+x9jQq$0stVrvVAd2+(I_!r_)SqtAu|rl$T04haE~0l9HwQFL=r z#klZctVKL<=KIaK%m2lfs%<&}=S)wxwDT8)!T2F`*O<-^zxhUkONXC1xw4W2n8a}O zVkxh?Bhac8)4!$EgGdn#eSL%sce9n)=49ZNO#oo;qV1iWwnpvJK>Rz+wci97nMokv z2VSa8STcoNjB0)ktRJu`QsmFlK+fXQ5-&@b@oPTaJfkdYl!b+bfg?FxGoeqNUdKbU zPwq`w5Y97;nSuJCS^l&haNL`*YTx7OTf+rrA(5i58S|IQUC1M8)}z}o!G=u-OSzuG z7k3vQB1F^NS4W?WyU%k0<<8E|dToT6G=N<0?fuo?|Ecs6w*K{6eooHxRLHFw*_QXO zzj^QKGu@K=s+DrPtuQiO=dSBgzu!Ns}2Kc zGu}M<%F1*CJbiAmJ`e;t-Iul?5_t{`3+h(bq$V7A4SU39guT~AV4Gb&yN}3{E{=}a zu}atLQO){4kQapB5+31JXMns@;Pnm=tN5W6QZf9$!(*N)!u{ypmTv9gC^uMb>PPoWij?fD>3Ys zFCif4#wwhFx$)1AKM!F7*+QX#A<0g z>#i-Pgyn~8nj?|tqy{u69>pA?bg(}i1;Uq8+C`>$C=om@g(SXpV9bu92Y zaHONB7iYx9#Z9u-?l-;`)DxemutllBSoqi&L}g^cp%`#;#fyH8rc=PM&YPRVLl2kL zQG^)#IY1(?=Odvc06xaW#ZdqRdq3g5H?`r`JNQ>MD#B+y@YbjvvLA^MkGpq6GREK@ z=9w6~1&Efu|Auu$Y=LEg$vQeZW@cvti0LMga=1tW^KTO#+Yk1Jp+_U7xblf@uC+(T zT;dy{sPLDA!1@3mMJs=R^ZGZM)=#}hmXXA{#qoQWsVEs38L!a=#Suh(W`#_q?#drr z78e(9FntKtT?qzDFSPL*D=;6GMH=5a@g)lQQ z_5uR};4XkgAU=Ri7-!xJg|l&SRSRfP5NsYrD+720{fnUOxzfq{1$ruc71-K|ZnR}Z z0Vg-N02>2ySR*?33qJy+*R$lSDbT-;<$t=mh>FSgE{k($U>{lTtc1G1F23oV*#29tdK(a;1+%YFk*yWHHQqk^X2nSr66}qb`Rq zGvkYhi1;ewj?GB)VOO}iKqk+oM#=S-OjNo);E+H~T81S-G0b#93jos0&H2-Q?A!P! zyrc(y4f-q)Ybq)#-v@9nxZU|}3${r1wH-CyN0Q!$#V)p>eL6nft0iVXwU-jva5LIC zIyvW8&(^z=kyw{&!L-meT5Jb9E(WKa=f$M@t_?f(tqeB#JIdw9in|G94dTl}>@0G~jS zWaZ@a32@L-Ei5j!{2BZ7`LnV1{Z*rvO`2b2J!8|;1sEau#2hY%y3dY9;1gj6hTqeg zKm-V_(U?Q9N7}9dK+HigD{8i3`U-4;SF*l!yHGn3 z1(y23gDVPG_cy=PwiCRf2LAi}IjC>3e|OiZOZJ7Dnp&%nNC3~(sOESa&eY4xi2h{Y zk+~+Me68k4(s70sbTFW6GTNECtM)aixcHL>6z=0A=ez&=7A+MeNLmw<3Fi&ywl+@+k-YuJ)80PV`l<3Vcxnn3@jevy%ppA6Vb z)b?U8q{fCl!K(plM_X6%BfiS}o>u61%y;5BrO+RVZ#`A%7h{B;MBS2C1Kntp?5-Xi zv@8gUNdevFS7}$Z3lNZvqwe$gm#V4}ytDz7?MquLMP2tmlh-;l6qnL!@3X}L;6|~9 zUmymtap2WThGv?`9j`yP#R4FIbLrRg2J}JoHrDZQ+gcIQSd7otFS1lZGI7gf!c%)l z9C69Xw=Dp=-1OHgFbygMP4sM?|HalU?F`EScLfFiUSL>W?26N7Rc{{<2!x7F2mRRL zDt9M?$Qhf>rJQ^%6BBiS=7~!2*F}vWia^w~)PY5gq_Wg@gz4tVns4G$p7pFt7M)^q iMLfZ0&;NUSN. # -############################################################################### - -from openerp.osv import orm, fields -from openerp import netsvc -import datetime - -TYPE = [ - ('input', u'Entrada'), - ('output', u'Saída'), -] - -PRODUCT_FISCAL_TYPE = [ - ('service', u'Serviço'), -] - -PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] - - -class L10n_brAccountCce(orm.Model): - _name = 'l10n_br_account.invoice.cce' - _description = u'Cartão de Correção no Sefaz' - _columns = { - 'invoice_id': fields.many2one( - 'account.invoice', 'Fatura'), - 'motivo': fields.text('Motivo', readonly=True - , required=True), - 'sequencia': fields.char('Sequencia', help=u"Indica a sequencia da carta de correcão"), - 'cce_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') - } - -class L10n_brAccountInvoiceCancel(orm.Model): - _name = 'l10n_br_account.invoice.cancel' - _description = u'Cancelar Documento Eletrônico no Sefaz' - _columns = { - 'invoice_id': fields.many2one( - 'account.invoice', 'Fatura'), - 'justificative': fields.char('Justificativa', size=255, readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'cancel_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), - 'state': fields.selection( - [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True), - } - _defaults = { - 'state': 'draft', - } - - def _check_justificative(self, cr, uid, ids): - for invalid in self.browse(cr, uid, ids): - if len(invalid.justificative) < 15: - return False - return True - - _constraints = [( - _check_justificative, - 'Justificativa deve ter tamanho minimo de 15 caracteres.', - ['justificative'])] - - def action_draft_done(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'done'}) - return True - - -class L10n_brDocumentEvent(orm.Model): - _name = 'l10n_br_account.document_event' - _columns = { - 'type': fields.selection( - [('-1', u'Exception'), - ('0', u'Envio Lote'), - ('1', u'Consulta Recibo'), - ('2', u'Cancelamento'), - ('3', u'Inutilização'), - ('4', u'Consulta NFE'), - ('5', u'Consulta Situação'), - ('6', u'Consulta Cadastro'), - ('7', u'DPEC Recepção'), - ('8', u'DPEC Consulta'), - ('9', u'Recepção Evento'), - ('10', u'Download'), - ('11', u'Consulta Destinadas'), ], 'Serviço'), - 'response': fields.char(u'Descrição', size=64, readonly=True), - 'company_id': fields.many2one( - 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}), - 'origin': fields.char('Documento de Origem', size=64, - readonly=True, states={'draft': [('readonly', False)]}, - help="Reference of the document that produced event."), - 'file_sent': fields.char('Envio', readonly=True), - 'file_returned': fields.char('Retorno', readonly=True), - 'status': fields.char('Codigo', readonly=True), - 'message': fields.char('Mensagem', readonly=True), - 'create_date': fields.datetime(u'Data Criação', readonly=True), - 'write_date': fields.datetime(u'Data Alteração', readonly=True), - 'end_date': fields.datetime(u'Data Finalização', readonly=True), - 'state': fields.selection( - [('draft', 'Rascunho'), ('send', 'Enviado'), - ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], - 'Status', select=True, readonly=True), - 'document_event_ids': fields.many2one( - 'account.invoice', 'Documentos', ondelete='cascade') - } - _defaults = { - 'state': 'draft', - } - - def set_done(self, cr, uid, ids, context=None): - if context is None: - context = {} - self.write(cr, uid, ids, - {'state': 'done', 'end_date': datetime.datetime.now()}, - context=context) - return True - - -class L10n_brAccountFiscalCategory(orm.Model): - _name = 'l10n_br_account.fiscal.category' - _description = 'Categoria Fiscal' - _columns = { - 'code': fields.char(u'Código', size=254, required=True), - 'name': fields.char(u'Descrição', size=254), - 'type': fields.selection(TYPE, 'Tipo'), - 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), - 'property_journal': fields.property( - 'account.journal', type='many2one', relation='account.journal', - string=u"Diário Contábil", method=True, view_load=True, - help=u"Diário utilizado para esta categoria de operação fiscal"), - 'journal_type': fields.selection( - [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), - ('purchase', 'Compras'), - ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', - size=32, required=True), - 'refund_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('journal_type', 'like', journal_type), - ('state', '=', 'approved')]"""), - 'reverse_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('state', '=', 'approved')]"""), - 'fiscal_position_ids': fields.one2many('account.fiscal.position', - 'fiscal_category_id', u'Posições Fiscais'), - 'note': fields.text(u'Observações'), - 'state': fields.selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True), - } - _defaults = { - 'state': 'draft', - 'type': 'output', - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - 'journal_type': 'sale', - } - _sql_constraints = [ - ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', - u'Já existe uma categoria fiscal com esse código !') - ] - - def action_unapproved_draft(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'draft'}) - wf_service = netsvc.LocalService("workflow") - for fc_id in ids: - wf_service.trg_delete( - uid, 'l10n_br_account.fiscal.category', fc_id, cr) - wf_service.trg_create( - uid, 'l10n_br_account.fiscal.category', fc_id, cr) - return True - - -class L10n_brAccountServiceType(orm.Model): - _name = 'l10n_br_account.service.type' - _description = u'Cadastro de Operações Fiscais de Serviço' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=256, required=True), - 'parent_id': fields.many2one( - 'l10n_br_account.service.type', 'Tipo de Serviço Pai'), - 'child_ids': fields.one2many( - 'l10n_br_account.service.type', 'parent_id', - u'Tipo de Serviço Filhos'), - 'internal_type': fields.selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal' - } - - def name_get(self, cr, uid, ids, context=None): - if not ids: - return [] - reads = self.read(cr, uid, ids, ['name', 'code'], context=context) - res = [] - for record in reads: - name = record['name'] - if record['code']: - name = record['code'] + ' - ' + name - res.append((record['id'], name)) - return res - - -class L10n_brAccountFiscalDocument(orm.Model): - _name = 'l10n_br_account.fiscal.document' - _description = 'Tipo de Documento Fiscal' - _columns = { - 'code': fields.char(u'Codigo', size=8, required=True), - 'name': fields.char(u'Descrição', size=64), - 'electronic': fields.boolean(u'Eletrônico') - } - - -class L10n_brAccountDocumentSerie(orm.Model): - _name = 'l10n_br_account.document.serie' - _description = 'Serie de documentos fiscais' - _columns = { - 'code': fields.char(u'Código', size=3, required=True), - 'name': fields.char(u'Descrição', size=64, required=True), - 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal', required=True), - 'company_id': fields.many2one( - 'res.company', 'Empresa', required=True), - 'active': fields.boolean('Ativo'), - 'internal_sequence_id': fields.many2one( - 'ir.sequence', u'Sequência Interna') - } - _defaults = { - 'active': True, - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - } - - def create_sequence(self, cr, uid, vals, context=None): - """ Create new no_gap entry sequence for every - new document serie """ - seq = { - 'name': vals['name'], - 'implementation': 'no_gap', - 'padding': 1, - 'number_increment': 1} - if 'company_id' in vals: - seq['company_id'] = vals['company_id'] - return self.pool.get('ir.sequence').create(cr, uid, seq) - - def create(self, cr, uid, vals, context=None): - """ Overwrite method to create a new ir.sequence if - this field is null """ - if not 'internal_sequence_id' in vals or \ - not vals['internal_sequence_id']: - vals.update({'internal_sequence_id': self.create_sequence( - cr, uid, vals, context)}) - result = super(L10n_brAccountDocumentSerie, self).create( - cr, uid, vals, context) - if result: - company = self.pool.get('res.company').browse( - cr, uid, vals.get('company_id'), context=context) - value = {} - if vals.get('fiscal_type') == 'product': - series = [doc_serie.id for doc_serie in - company.document_serie_product_ids] - series.append(result) - value = { - 'document_serie_product_ids': [(6, 0, list(set(series)))]} - else: - value = {'document_serie_service_id': result} - self.pool.get('res.company').write( - cr, uid, vals.get('company_id'), value, context=context) - return result - - -class L10n_brAccountInvoiceInvalidNumber(orm.Model): - _name = 'l10n_br_account.invoice.invalid.number' - _description = u'Inutilização de Faixa de Numeração' - - def _name_get(self, cr, uid, ids, field_name, arg, context=None): - result = {} - for record in self.browse(cr, uid, ids, context): - result[record.id] = record.fiscal_document_id.name + ' (' + \ - record.document_serie_id.name + '): ' + \ - str(record.number_start) + ' - ' + str(record.number_end) - return result - - _columns = { - 'name': fields.function( - _name_get, method=True, type="char", - size=64, string="Nome"), - 'company_id': fields.many2one( - 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', 'Documento Fiscal', - readonly=True, states={'draft': [('readonly', False)]}, - required=True), - 'document_serie_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id), " - "('company_id', '=', company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'number_start': fields.integer( - u'Número Inicial', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'number_end': fields.integer( - u'Número Final', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'state': fields.selection( - [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True), - 'justificative': fields.char('Justificativa', size=255, - readonly=True, states={'draft': [('readonly', False)]}, - required=True), - 'invalid_number_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos'), - } - _defaults = { - 'state': 'draft', - 'company_id': lambda self, cr, uid, - c: self.pool.get('res.company')._company_default_get( - cr, uid, 'account.invoice', context=c) - } - _sql_constraints = [ - ('number_uniq', - 'unique(document_serie_id, number_start, number_end, state)', - u'Sequência existente!'), - ] - - def _check_justificative(self, cr, uid, ids): - for invalid in self.browse(cr, uid, ids): - if len(invalid.justificative) < 15: - return False - return True - - def _check_range(self, cursor, user, ids, context=None): - for invalid_number in self.browse(cursor, user, ids, context=context): - where = [] - if invalid_number.number_start: - where.append("((number_end>='%s') or (number_end is null))" % ( - invalid_number.number_start,)) - if invalid_number.number_end: - where.append("((number_start<='%s') or (number_start is null))" % (invalid_number.number_end,)) - - cursor.execute('SELECT id ' \ - 'FROM l10n_br_account_invoice_invalid_number ' \ - 'WHERE '+' and '.join(where) + (where and ' and ' or '') + - 'document_serie_id = %s ' \ - "AND state = 'done'" \ - 'AND id <> %s' % (invalid_number.document_serie_id.id, invalid_number.id)) - if cursor.fetchall() or (invalid_number.number_start > invalid_number.number_end): - return False - return True - - _constraints = [ - (_check_range, u'Não é permitido faixas sobrepostas!', - ['number_start', 'number_end']), - (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) - ] - - def action_draft_done(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'done'}) - return True - - def unlink(self, cr, uid, ids, context=None): - if context is None: - context = {} - invalid_numbers = self.read(cr, uid, ids, ['state'], context=context) - unlink_ids = [] - for invalid_number in invalid_numbers: - if invalid_number['state'] in ('draft'): - unlink_ids.append(invalid_number['id']) - else: - raise orm.except_orm( - (u'Ação Inválida!'), - (u'Você não pode excluir uma sequência concluída.')) - orm.Model.unlink(self, cr, uid, unlink_ids, context=context) - return True - - -class L10n_brAccountPartnerFiscalType(orm.Model): - _name = 'l10n_br_account.partner.fiscal.type' - _description = 'Tipo Fiscal de Parceiros' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=64), - 'is_company': fields.boolean('Pessoa Juridica?'), - 'default': fields.boolean(u'Tipo Fiscal Padrão'), - 'icms': fields.boolean('Recupera ICMS'), - 'ipi': fields.boolean('Recupera IPI') - } - _defaults = { - 'default': True, - } - - -class L10n_brAccountCNAE(orm.Model): - _name = 'l10n_br_account.cnae' - _description = 'Cadastro de CNAE' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=64, required=True), - 'version': fields.char(u'Versão', size=16, required=True), - 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), - 'child_ids': fields.one2many( - 'l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos'), - 'internal_type': fields.selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal' - } - - def name_get(self, cr, uid, ids, context=None): - if not ids: - return [] - reads = self.read(cr, uid, ids, ['name', 'code'], context=context) - res = [] - for record in reads: - name = record['name'] - if record['code']: - name = record['code'] + ' - ' + name - res.append((record['id'], name)) - return res - - -class L10n_brTaxDefinitionTemplate(orm.Model): - _name = 'l10n_br_tax.definition.template' - _columns = { - 'tax_id': fields.many2one( - 'account.tax.template', 'Imposto', required=True), - 'tax_domain': fields.related( - 'tax_id', 'domain', type='char'), - 'tax_code_id': fields.many2one( - 'account.tax.code.template', u'Código de Imposto')} - - def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): - tax_domain = False - if tax_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_id, ['domain'], context=context)['domain'] - return {'value': {'tax_domain': tax_domain}} - - -class L10n_brTaxDefinition(orm.Model): - _name = 'l10n_br_tax.definition' - _columns = { - 'tax_id': fields.many2one('account.tax', 'Imposto', required=True), - 'tax_domain': fields.related('tax_id', 'domain', - type='char'), - 'tax_code_id': fields.many2one( - 'account.tax.code', u'Código de Imposto'), - 'company_id': fields.related( - 'tax_id', 'company_id', type='many2one', readonly=True, - relation='res.company', store=True, string='Empresa'), - } - - def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): - tax_domain = False - if tax_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_id, ['domain'], context=context)['domain'] - return {'value': {'tax_domain': tax_domain}} diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml deleted file mode 100644 index 661d98648ca9..000000000000 --- a/l10n_br_account/l10n_br_account_view.xml +++ /dev/null @@ -1,560 +0,0 @@ - - - - - - - - - - - l10n_br_account.invoice.cancel.form - l10n_br_account.invoice.cancel - - -
-
- - - - - - - -
- - - l10n_br_account.invoice.cce.form - l10n_br_account.invoice.cce - -
- - - - - - - -
-
- - - l10n_br_account.invoice.cancel.tree - l10n_br_account.invoice.cancel - - - - - - - - - - - l10n_br_account.invoice.cce.tree - l10n_br_account.invoice.cce - - - - - - - - - - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - -
- - - - - -
- - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - - - - - - - - - - - l10n_br_account.fiscal.category.form - l10n_br_account.fiscal.category - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - l10n_br_account.fiscal.category.search - l10n_br_account.fiscal.category - - - - - - - - - - - - - - - - - - l10n_br_account.fiscal.category.tree - l10n_br_account.fiscal.category - - - - - - - - - - - - - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - -
- - - - - - - - - -
- - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - - - - - - - - - - - l10n_br_account.document.serie - l10n_br_account.document.serie - -
- - - - - - - - - -
- - - l10n_br_account.document.serie - l10n_br_account.document.serie - - - - - - - - - - - - - l10n_br_account.document_event.form - l10n_br_account.document_event - -
-
- -
- - - - - - - - - - - - - - -
-
-
- - - l10n_br_account.document_event.tree - l10n_br_account.document_event - - - - - - - - - - - - - - - - - - l10n_br_account.invoice.invalid.number.form - l10n_br_account.invoice.invalid.number - -
-
-
- - - - - - - - - - -
-
- - - l10n_br_account.invoice.invalid.number.tree - l10n_br_account.invoice.invalid.number - - - - - - - - - - - - - - - l10n_br_account.cnae.form - l10n_br_account.cnae - -
- - - - - - - -
- - - l10n_br_account.cnae.tree - l10n_br_account.cnae - - - - - - - - - - - - l10n_br_account.cnae.structure - l10n_br_account.cnae - child_ids - - - - - - - - - - - - l10n_br_account.service.type.form - l10n_br_account.service.type - -
- - - - - - -
-
-
- - - l10n_br_account.service.type.tree - l10n_br_account.service.type - - - - - - - - - - - l10n_br_account.service.type.structure - l10n_br_account.service.type - child_ids - - - - - - - - - - - l10n_br_tax.definition.form - l10n_br_tax.definition - -
- - - - - -
- - - l10n_br_tax.definition.tree - l10n_br_tax.definition - - - - - - - - - - - Documento Fiscal - ir.actions.act_window - l10n_br_account.fiscal.document - tree,form - form - - - - - Categoria Fiscal - ir.actions.act_window - l10n_br_account.fiscal.category - tree,form - form - {"search_default_approved":1} - - - - - - Document Serie - ir.actions.act_window - l10n_br_account.document.serie - tree,form - form - - - - - Eventos Eletronicos - ir.actions.act_window - l10n_br_account.document_event - tree,form - form - - - - - - Inutilizar Faixa de Numeração - ir.actions.act_window - l10n_br_account.invoice.invalid.number - tree,form - form - - - - - - Tipo Fiscal de Parceiro - ir.actions.act_window - l10n_br_account.partner.fiscal.type - tree,form - form - - - - - CNAE - ir.actions.act_window - l10n_br_account.cnae - tree,form - form - - - - - Estrutura do CNAE - ir.actions.act_window - l10n_br_account.cnae - tree - [('parent_id','=',False)] - - - - - Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree,form - form - - - - - Estrutura de Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree - [('parent_id','=',False)] - - - - - Cancelar Documento Eletrônico - ir.actions.act_window - l10n_br_account.invoice.cancel - tree,form - form - - - - - Carta de Correção - ir.actions.act_window - l10n_br_account.invoice.cce - tree,form - form - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
diff --git a/l10n_br_account/l10n_br_account_workflow.xml b/l10n_br_account/l10n_br_account_workflow.xml deleted file mode 100644 index a1b5b9984a57..000000000000 --- a/l10n_br_account/l10n_br_account_workflow.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - Fiscal Category Approval - l10n_br_account.fiscal.category - True - - - - - - True - draft - - - - - review - write({'state':'review'}) - function - - - - - approved - write({'state':'approved'}) - function - - - - - unapproved - True - write({'state':'unapproved'}) - function - - - - - - - fiscal_category_review - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_unapproved - - - - diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py deleted file mode 100644 index fabe3a0abbe1..000000000000 --- a/l10n_br_account/product.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields -from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT - - -class ProductTemplate(orm.Model): - _inherit = 'product.template' - _columns = { - 'fiscal_category_default_ids': fields.one2many( - 'l10n_br_account.product.category', 'product_tmpl_id', - u'Categoria de Operação Fiscal Padrões'), - 'service_type_id': fields.many2one( - 'l10n_br_account.service.type', u'Tipo de Serviço'), - 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), - } - _defaults = { - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT - } - - -class L10n_brAccountProductFiscalCategory(orm.Model): - _name = 'l10n_br_account.product.category' - _columns = { - 'fiscal_category_source_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Origem'), - 'fiscal_category_destination_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Destino'), - 'product_tmpl_id': fields.many2one( - 'product.template', 'Produto', ondelete='cascade') - } diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml deleted file mode 100644 index 48106c3ba419..000000000000 --- a/l10n_br_account/product_view.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - l10n_br_account.normal.form - product.product - - - - - - - - - - - - - - - - - - - - - l10n_br_account_product_template_form_view - product.template - - - - - - - - - - - - - - - - - diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py deleted file mode 100644 index 31e2d4b4ca08..000000000000 --- a/l10n_br_account/res_company.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields -from openerp.addons import decimal_precision as dp - -COMPANY_FISCAL_TYPE = [ - ('1', 'Simples Nacional'), - ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), - ('3', 'Regime Normal') -] - -COMPANY_FISCAL_TYPE_DEFAULT = '3' - -SQL_CONSTRAINTS = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id, company_id)', - u'Imposto já existente nesta empresa!') -] - - -class ResCompany(orm.Model): - _inherit = 'res.company' - _columns = { - 'service_invoice_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal'), - 'document_serie_service_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', - domain="[('company_id', '=', active_id),('active','=',True)," - "('fiscal_type','=','service')]"), - 'annual_revenue': fields.float( - 'Faturamento Anual', required=True, - digits_compute=dp.get_precision('Account'), - help=u"Faturamento Bruto dos últimos 12 meses"), - 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, - u'Regime Tributário', required=True), - 'cnae_main_id': fields.many2one( - 'l10n_br_account.cnae', u'CNAE Primário'), - 'cnae_secondary_ids': fields.many2many( - 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', u'CNAE Segundários'), - 'ecnpj_a1_file': fields.binary('Arquivo e-CNPJ A1'), - 'ecnpj_a1_password': fields.char('Senha e-CNPJ A1', size=64), - 'fiscal_rule_parent_id': fields.many2one( - 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', - domain="[('parent_id', '=', False)]"), - } - _defaults = { - 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, - 'annual_revenue': 0.00, - } diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml deleted file mode 100644 index 3843286ffedb..000000000000 --- a/l10n_br_account/res_company_view.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - l10n_br_account.company - res.company - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py deleted file mode 100644 index 42d70d08560d..000000000000 --- a/l10n_br_account/res_partner.py +++ /dev/null @@ -1,375 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -from openerp.osv import orm, fields - -FISCAL_POSITION_COLUMNS = { - 'name': fields.char('Fiscal Position', size=128, required=True), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal'), - 'fiscal_category_fiscal_type': fields.related( - 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, - relation='l10n_br_account.fiscal.category', store=True, - string='Fiscal Type'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo'), - 'type_tax_use': fields.selection( - [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], - 'Tax Application'), - 'inv_copy_note': fields.boolean(u'Copiar Observação na Nota Fiscal'), - 'asset_operation': fields.boolean(u'Operação de Aquisição de Ativo', - help=u"""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS."""), - 'state': fields.selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True), -} - -FISCAL_POSITION_DEFAULTS = { - 'state': 'draft', -} - - -class AccountFiscalPositionTemplate(orm.Model): - _inherit = 'account.fiscal.position.template' - _columns = FISCAL_POSITION_COLUMNS - _defaults = FISCAL_POSITION_DEFAULTS - - def onchange_type(self, cr, uid, ids, type=False, context=None): - type_tax = {'input': 'purhcase', 'output': 'sale'} - return {'value': {'type_tax_use': type_tax.get(type, 'all'), - 'tax_ids': False}} - - def onchange_fiscal_category_id(self, cr, uid, ids, - fiscal_category_id=False, context=None): - if fiscal_category_id: - fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, - ['fiscal_type', 'journal_type'], context=context) - return {'value': - {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} - - def generate_fiscal_position(self, cr, uid, chart_temp_id, - tax_template_ref, acc_template_ref, - company_id, context=None): - """ - This method generate Fiscal Position, Fiscal Position Accounts and - Fiscal Position Taxes from templates. - - :param chart_temp_id: Chart Template Id. - :param taxes_ids: Taxes templates reference for generating - account.fiscal.position.tax. - :param acc_template_ref: Account templates reference for generating - account.fiscal.position.account. - :param company_id: selected from wizard.multi.charts.accounts. - :returns: True - """ - if context is None: - context = {} - - obj_tax_fp = self.pool.get('account.fiscal.position.tax') - obj_ac_fp = self.pool.get('account.fiscal.position.account') - obj_fiscal_position = self.pool.get('account.fiscal.position') - obj_tax_code = self.pool.get('account.tax.code') - obj_tax_code_template = self.pool.get('account.tax.code.template') - tax_code_template_ref = {} - tax_code_ids = obj_tax_code.search( - cr, uid, [('company_id', '=', company_id)]) - - for tax_code in obj_tax_code.browse(cr, uid, tax_code_ids): - tax_code_template = obj_tax_code_template.search( - cr, uid, [('name', '=', tax_code.name)]) - if tax_code_template: - tax_code_template_ref[tax_code_template[0]] = tax_code.id - - fp_ids = self.search(cr, uid, - [('chart_template_id', '=', chart_temp_id)]) - for position in self.browse(cr, uid, fp_ids, context=context): - new_fp = obj_fiscal_position.create(cr, uid, - {'company_id': company_id, - 'name': position.name, - 'note': position.note, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) - for tax in position.tax_ids: - obj_tax_fp.create(cr, uid, { - 'tax_src_id': tax.tax_src_id and tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': tax.tax_code_src_id and tax_code_template_ref.get(tax.tax_code_src_id.id, False), - 'tax_src_domain': tax.tax_src_domain, - 'tax_dest_id': tax.tax_dest_id and tax_template_ref.get(tax.tax_dest_id.id, False), - 'tax_code_dest_id': tax.tax_code_dest_id and tax_code_template_ref.get(tax.tax_code_dest_id.id, False), - 'position_id': new_fp - }) - for acc in position.account_ids: - obj_ac_fp.create(cr, uid, { - 'account_src_id': acc_template_ref[acc.account_src_id.id], - 'account_dest_id': acc_template_ref[acc.account_dest_id.id], - 'position_id': new_fp - }) - return True - - -class AccountFiscalPositionTaxTemplate(orm.Model): - _inherit = 'account.fiscal.position.tax.template' - _columns = { - 'tax_src_id': fields.many2one('account.tax.template', 'Tax Source'), - 'tax_code_src_id': fields.many2one('account.tax.code.template', - u'Código Taxa Origem'), - 'tax_src_domain': fields.related('tax_src_id', 'domain', - type='char'), - 'tax_code_dest_id': fields.many2one('account.tax.code.template', - 'Replacement Tax Code') - } - - def _tax_domain(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - tax_domain = False - if tax_src_id: - tax_domain = self.pool.get('account.tax.template').read( - cr, uid, tax_src_id, ['domain'], context=context)['domain'] - - if tax_code_src_id: - tax_domain = self.pool.get('account.tax.code.template').read( - cr, uid, tax_code_src_id, ['domain'], - context=context)['domain'] - - return {'value': {'tax_src_domain': tax_domain}} - - def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - -class AccountFiscalPosition(orm.Model): - _inherit = 'account.fiscal.position' - _columns = FISCAL_POSITION_COLUMNS - _defaults = FISCAL_POSITION_DEFAULTS - - def onchange_type(self, cr, uid, ids, type=False, context=None): - type_tax = {'input': 'purchase', 'output': 'sale'} - return {'value': {'type_tax_use': type_tax.get(type, 'all'), - 'tax_ids': False}} - - def onchange_fiscal_category_id(self, cr, uid, ids, - fiscal_category_id=False, context=None): - if fiscal_category_id: - fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, ['fiscal_type', 'journal_type'], - context=context) - return {'value': - {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} - - #TODO - Refatorar para trocar os impostos - def map_tax_code(self, cr, uid, product_id, fiscal_position, - company_id=False, tax_ids=False, context=None): - - if not context: - context = {} - - result = {} - if tax_ids: - - product = self.pool.get('product.product').browse( - cr, uid, product_id, context=context) - - fclassificaion = product.ncm_id - - if context.get('type_tax_use') == 'sale': - - if fclassificaion: - tax_sale_ids = fclassificaion.sale_tax_definition_line - for tax_def in tax_sale_ids: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if company_id: - company = self.pool.get('res.company').browse( - cr, uid, company_id, context=context) - - if context.get('fiscal_type', 'product') == 'product': - company_tax_def = company.product_tax_definition_line - else: - company_tax_def = company.service_tax_definition_line - - for tax_def in company_tax_def: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if context.get('type_tax_use') == 'purchase': - - if fclassificaion: - tax_purchase_ids = fclassificaion.purchase_tax_definition_line - for tax_def in tax_purchase_ids: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if fiscal_position: - for fp_tax in fiscal_position.tax_ids: - if fp_tax.tax_dest_id: - if fp_tax.tax_dest_id.id in tax_ids and fp_tax.tax_code_dest_id: - result.update({fp_tax.tax_dest_id.domain: - fp_tax.tax_code_dest_id.id}) - if not fp_tax.tax_dest_id and fp_tax.tax_code_src_id and \ - fp_tax.tax_code_dest_id: - result.update({fp_tax.tax_code_src_id.domain: - fp_tax.tax_code_dest_id.id}) - - return result - - def map_tax(self, cr, uid, fposition_id, taxes, context=None): - result = [] - if not context: - context = {} - if fposition_id and fposition_id.company_id and \ - context.get('type_tax_use') in ('sale', 'all'): - if context.get('fiscal_type', 'product') == 'product': - company_tax_ids = self.pool.get('res.company').read( - cr, uid, fposition_id.company_id.id, ['product_tax_ids'], - context=context)['product_tax_ids'] - else: - company_tax_ids = self.pool.get('res.company').read( - cr, uid, fposition_id.company_id.id, ['service_tax_ids'], - context=context)['service_tax_ids'] - - company_taxes = self.pool.get('account.tax').browse( - cr, uid, company_tax_ids, context=context) - if taxes: - all_taxes = taxes + company_taxes - else: - all_taxes = company_taxes - taxes = all_taxes - - if not taxes: - return [] - if not fposition_id: - return map(lambda x: x.id, taxes) - for t in taxes: - ok = False - tax_src = False - for tax in fposition_id.tax_ids: - tax_src = tax.tax_src_id and tax.tax_src_id.id == t.id - tax_code_src = tax.tax_code_src_id and \ - tax.tax_code_src_id.id == t.tax_code_id.id - - if tax_src or tax_code_src: - if tax.tax_dest_id: - result.append(tax.tax_dest_id.id) - ok = True - if not ok: - result.append(t.id) - - return list(set(result)) - - -class AccountFiscalPositionTax(orm.Model): - _inherit = 'account.fiscal.position.tax' - _columns = { - 'tax_src_id': fields.many2one('account.tax', 'Tax Source'), - 'tax_code_src_id': fields.many2one( - 'account.tax.code', u'Código Taxa Origem'), - 'tax_src_domain': fields.related( - 'tax_src_id', 'domain', type='char'), - 'tax_code_dest_id': fields.many2one( - 'account.tax.code', 'Replacement Tax Code') - } - - def _tax_domain(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - tax_domain = False - if tax_src_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_src_id, ['domain'], context=context)['domain'] - - if tax_code_src_id: - tax_domain = self.pool.get('account.tax.code').read( - cr, uid, tax_code_src_id, ['domain'], - context=context)['domain'] - - return {'value': {'tax_src_domain': tax_domain}} - - def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - -class ResPartner(orm.Model): - _inherit = 'res.partner' - _columns = { - 'partner_fiscal_type_id': fields.many2one( - 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', - domain="[('is_company', '=', is_company)]") - } - - def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, - context=None): - """Define o valor padão para o campo tipo fiscal, por padrão pega - o tipo fiscal para não contribuinte já que quando é criado um novo - parceiro o valor do campo is_company é false""" - result = False - ft_ids = self.pool.get('l10n_br_account.partner.fiscal.type').search( - cr, uid, [('default', '=', 'True'), - ('is_company', '=', is_company)], context=context) - - parnter_fiscal_type = self.pool.get('res.company').read( - cr, uid, ft_ids, ['id'], context=context) - if parnter_fiscal_type: - result = parnter_fiscal_type[0]['id'] - return result - - _defaults = { - 'partner_fiscal_type_id': _default_partner_fiscal_type_id, - } - - def onchange_mask_cnpj_cpf(self, cr, uid, ids, is_company, - cnpj_cpf, context=None): - result = super(ResPartner, self).onchange_mask_cnpj_cpf( - cr, uid, ids, is_company, cnpj_cpf, context) - ft_id = self._default_partner_fiscal_type_id( - cr, uid, is_company, context) - - if ft_id: - result['value']['partner_fiscal_type_id'] = ft_id - return result diff --git a/l10n_br_account/res_partner_view.xml b/l10n_br_account/res_partner_view.xml deleted file mode 100644 index 6861c5ea69bb..000000000000 --- a/l10n_br_account/res_partner_view.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - l10n_br_account.fiscal.position.template.form - account.fiscal.position.template - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - -
-
- - - l10n_br_account.fiscal.position.tree - account.fiscal.position - - - - - - - - - - l10n_br_account.fiscal.position.form - account.fiscal.position - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - -
-
- - - l10n_br_account.partner.form - res.partner - - - - - - - - -
-
diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv deleted file mode 100644 index d01c35885077..000000000000 --- a/l10n_br_account/security/ir.model.access.csv +++ /dev/null @@ -1,35 +0,0 @@ -"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"l10n_br_account_partner_fiscal_type_manager","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 -"l10n_br_account_partner_fiscal_type","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 -"l10n_br_account_fiscal_document","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_manager",1,1,1,1 -"l10n_br_account_fiscal_category","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_manager",1,1,1,1 -"l10n_br_account_document_serie","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_manager",1,1,1,1 -"l10n_br_account_product_category","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_manager",1,1,1,1 -"l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_manager",1,1,1,1 -"l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 -"l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 -"l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 -"l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 -"l10n_br_account_document_serie_user","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_user",1,0,0,0 -"l10n_br_account_product_category_user","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_user",1,0,0,0 -"l10n_br_account_cnae_user","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_user",1,0,0,0 -"l10n_br_account_service_type_user","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_user",1,0,0,0 -"l10n_br_account_partner_fiscal_type_invoice","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_invoice",1,0,0,0 -"l10n_br_account_fiscal_document_invoice","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_invoice",1,0,0,0 -"l10n_br_account_fiscal_category_invoice","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_invoice",1,0,0,0 -"l10n_br_account_document_serie_invoice","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_invoice",1,0,0,0 -"l10n_br_account_product_category_invoice","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_invoice",1,0,0,0 -"l10n_br_account_cnae_invoice","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_invoice",1,0,0,0 -"l10n_br_account_service_type_invoice","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_invoice",1,0,0,0 -"l10n_br_tax_definition_manager","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_manager",1,1,1,1 -"l10n_br_tax_definition_user","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_invoice",1,0,0,0 -"l10n_br_tax_definition_template_manager","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_manager",1,1,1,1 -"l10n_br_tax_definition_template_user","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_invoice",1,0,0,0 -"l10n_br_account_invoice_invalid_number_manager","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_manager",1,1,1,1 -"l10n_br_account_invoice_invalid_number_user","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_invoice",1,0,0,0 -"account_tax_computation_user","account.tax.computation","model_account_tax_computation","account.group_account_invoice",1,0,0,0 -"account_tax_computation_manager","account.tax.computation","model_account_tax_computation","account.group_account_manager",1,1,1,1 -"l10n_br_account_invoice_cancel_user","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_invoice",1,0,0,0 -"l10n_br_account_invoice_cancel_manager","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_manager",1,1,1,1 -"l10n_br_account_document_event_user","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_invoice",1,0,0,0 -"l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml deleted file mode 100644 index f058a1129518..000000000000 --- a/l10n_br_account/security/l10n_br_account_security.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - Tax Definition Template multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - Tax Definition multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - - - - - Document Serie Company multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - - - - - diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py deleted file mode 100644 index 390a02291068..000000000000 --- a/l10n_br_account/sped/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2012 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - -import document -import efd diff --git a/l10n_br_account/sped/document.py b/l10n_br_account/sped/document.py deleted file mode 100644 index 9c9e5e97febb..000000000000 --- a/l10n_br_account/sped/document.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2013 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### - - -class FiscalDocument(object): - - def __init__(self): - pass - - def _serializer(): - pass - - def _deserializer(): - pass - - def get_xml(): - pass - - def set_xml(): - pass - - def get_txt(): - pass - - def set_txt(): - pass diff --git a/l10n_br_account/sped/efd/__init__.py b/l10n_br_account/sped/efd/__init__.py deleted file mode 100644 index 744c624b8ebe..000000000000 --- a/l10n_br_account/sped/efd/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2012 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### diff --git a/l10n_br_account/static/src/img/icon.png b/l10n_br_account/static/src/img/icon.png deleted file mode 100644 index d43df0f9de6e41bd26e9a8fc2e76c5195fe5b073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11654 zcmai4^-~Dn zQIwU|_FFy6_Ybqy35G~Q@&Yf`9O`P%k10CrJ7BF-5#2RralVje%zk8Wz#V22Q6nFo zD9WB~GvjlajU`F^5B%7M$UkDCErm;HpJNkqZgW(2R9jX1y72Y98}f4aJ#b6+wyL@V z7XB*avSN2}WApKK%JuOr1mautiQ-rzMr6Ji)4SsT8r~>>uG;8Vo*EKVy7lYXI(U?p zc07Yuii4q6Xw!Rj9f1pxI5#xd6^EF9R4?Jqdk=9)-BaHWfx$hJIYuY0~a-TBjc zIFKu>(`}1dFJ$JMrp*%k{_Wf!2*&Lh-sA9a{Kr=Bt)sS zBX9GJ`aLkQBO*BddMOwt4b~^%@C?=%t(1W<0<^|5t_!PFRk~9LS*Ht(M=8l%fA` zG#0hG6QUSdrQ&s*rriu8KsL<1A-7bd{$s#!XYDG3i)>yi3X z*2S@ja976~3e?Em=N@TVxMrN5^5G_5J97r6DtRbYc0w)ja`_XMMjj?K2;L%YkjJ6~ z;S-~}9_Bj_Y5Ho7Ch3iN`dks8w1Bd&siZOdH>cn!`x?X0brez8$EEu!=wP|O#7~&O z?`$wt%=*K)y5lNI6gDq2UgGIm;Ez~NB!a@Uw7-t;b%CMP!8iso7ON(#lY+umpbA23 zdeDjNszZhDsVcxmWwq;GbKp;Gx`R5Q!8!VuYy27+2TOh|8v-2q-OC`;!?H5sMqP|r z17(Sy_ra3-*`qeo<5nwgP@-YFFZ>11+w5qjeU3p*h(RUYVMQ}?8g9SM5!?lEy7(6L zstE4>V3>dc*p%oczBy1}@2wo zVxZrmd0FOYg?7mWP#fG6n*<05XTaOmJa%V0$y_w~NpUO$HA#5vDLmR_--xVcz$pti;hRmO57*VH|)bnf+)EkaZ7AoV&qam?L*5 zrlqw)^ACtwN;x?i@(U5kqMn4Sz(2^g2j5F7`TKNmc&%QKc;C-;I%KI7qq*~k*V4D~ zx#MfHPiYq97mM-AX{!ctN~V>}EUCA2=2GiP1)7Y5;!^CY0JMMTVk+=$aUj(Bd@Hps zPfIl=Gm>FMR&D}iV!WU19U@ksU&e-nf9ab8t$jRj4<0LwGNr1~>*etsKM=5ql0@SD z25&oAyo2Pu;2!OOT=I-m)7t>5Ex}5dk8l7G115UN_6`yv@I!gp%F#38*8OF0UG3sm zh95di2bX_NoVNjR+kpG)OL!{DJ$`Q5g+4>Nsk%al1(uuz$4jDm3KW?~0(?JfSnj7p zHwj1|h?2;z`JV7%n3n_<;}I@Y5ui@H{fa=nfDJ}oh9P=xn^CBig@0Jt56O0tO1ajW zWV}7mQ3Z8`IZYv*FqSdsJZIlLQD1WPz?xcmVHLne4f#ab+6_%)0nBC=00 zm7-}A#R~s|sUUp&x?8WL&0L}y|G+GrEenH9!!}JL@JmEgZadH~yx%T~uNY?0aJL># zX{JCv5GDS|>G$t&g)B<(navedq~RePT0%*(QbRe*5*9!uN|k35lO>_Zw@HRRFtK`x zDgy!b@cO>_Sd*6bdlB$un43wNq0rfbfxungCg29fFt_E74(iM{1-3KA%W?|#QCJYJ z0csX-qXi}89CzxnIM|OitL9@?DH@nlz&%#MaUghYgpDkW0eb=3{Q`pg9Xnq>f+?Ly93Xt5@VSZ z83qFmS_Y=JJ_jxR(r)SGee%D^P{M68b2%(m@17yV(%QPik0n7s?A#Slrg^-ioBTI* z>9iXfv6wY1ynAd^1)8S~SKv`I;c~UhAC%W|a&S9DK)EIRxV7YZ5Qpca-7nAWPK*o7i2sb%xOlzT12~YOkI^~EcGr8hg2T+aOTP&op!wE4MtsUE={u{?@*;;T8FQeof0KT z8g9*8xbkCKv|H6%T8BcdChUxS`Jr_AH(pnU>4b7enja1pIfiVMuB7G*aDsxv;||#{ z-(ALYhbY%{c_2HuN}y^#d-%*sfBnZVJ6iVo4!A%i`ch4{okJTYb%=%`J&y93H7S?E znXW{VMUKEqUleKcQG&3ngL|`59v;0Ay2qMB z-RyHqXN-mPsOHywhlaokfO~oQ2cWk1P;s+N^*jyxetoL7%Q4p!!y9hG4xV>+4;u!x z_q4vO#t-nKce(5WMbvMD>TpLCeeU;m)C{v_1tpKloVF_ZVZ)qAuOrQYD1!=Xs3QAy zk((99-A7ayTDy{yvUM~uC#URO=3R?~i$FG)b$uSPWwX#=`A)Bv>Uk&nUS;FFQVwkX zbmgPPtd1!zgPh{}%T+p=UG-1o@1r5~iWq>>RXXBymjbuq$568ROR&oD3#rP@PK+uS&|nc zN`#4wgk>Rc}6Y<37!G-`Be-~Nc5jK39}Mu5_Z3|X6P zu_J|&xeNOJ5P{xs3AXS7dYE)m+~Qy9(Fd)^J6n-)wS38BBcHUF6zz_3Y`Qfu6^(|} z7A~|tYOCSa8Og?eO7O&#ylR*#P9K=I8o9sSs~Pe``cs-J1`C_jY9r0Ouqds^PO0Hh z@VR{VqSB4+w@8hry@zszu1t+GxvM3*G{^TQOu!^g(AxoW7#p4XmWf)9#S5nRQ9QM( z9HT}DU5&gDBg&r)@HKp1OXat=7sbDzgc#AZ2m2~?ZT1cJ-{yICVTK)FDaeR-*fsbk zbvP*kavb36`O{`1yDKdF=)9UR>)2mU?ZV2Nl#2{iWekf;leu3mSEDGV=i44v2r1?r zQ9t8(GuyfG;k5zrmZAHF(zDWItj=A0XQtyL62)BgyzhmI_zF0Hqsmg3K6%AMA7Ou7 z!$pMo(@;iqKY9NTN_d%v#DP{=wAdNrinCRQlx!EER(1uPci+ETOXy7XUq;sVKfnki zlUY9u)50{SV`xy&_ys&g4m6a)f3JbfAq=Rn>9>31qtc@|fu^haEQq`$DORmIoF6nw zxB9`T4pDe~sH>Ml%%NO2f722g%q3Yryf^&Jbe84yA*#EGt?Q9t&gM?Jb4Bu^E18B zD-VQ4r(pC*&dIsj7q(RV9D( zXlQ>gngh*@uL4iWi$UpCILMKUxS|UDjj|t=4}$<`j-JMhXU`jx-+`tLHfq6F&mLCP z6+^`p+@Yx=FNEJ_i|O+@5Q@E3rZOvJ-5Wc6+quaw0!{Id8L`z>zw|gG!2m2$mr)ix z_(ySsXzIFk#6vE@`DrDr=UL>hG;U@%uqn~DOQ*1G3b4(xuoUK5NJ}4;d-F7sEM*uU z9^sTe80FP&8R|A=O5Sm$ClK8; zmqrxyywk={VRX*`@lQ<{k@EaFmtBxA8qD;S7>@>zZV5JKjW9|89`;NRgMJ)7 zrzCulsYr_=M=0QEj+F7=o*5?GVXOp2%Silt-G)~w;8!!e^t?{|q>n6V5t$&q^d#|! zLI+nw49fZb}3>dt}%`ltQy19+?~D$+4=qmx%gahsZ~d5UKaYks2k=zkK5elj*1kMeiZ{;Hp`0^Yv%#@^Z;U7YGOWTc&y(D zbS}bxuq7X;VmNUEQnQ(lA_`Qdc5TJdDApSHAJ@g=;p>#+uMJp2TE9o%W7Za^s8~0^~*M>AzLa4 zH`;H}6>G-Vv&hr@9@7voC{qdN)-eI)LT)^Hh@E9{|r|-M3JI~&$V?Dvn;{@kzp}UoWnFd z3b^-Tml^#aMv2ZNUvTspIRb8Q*!5SS8FJW495<%8zPVMc>@1npXUH;k5-v6figdVu zI?%|{xhfitHuxOH)X)qkpL8vvW~E9ntjnZh$zrY|P=eeg|0hx3UWvs_^MKg~X#|7t zuW5HOD7SS^v>7+-r~%dqpSOUSOOIt&hyPPZqGVu-)VFNC2OV|PcB?bpakyf+dIr}X zn!1>9g)v%YJ14^W8UMdR;hOgoj`hy$e7dy1m3Yf}RZht1%SUc+njV`W4FP{pZff-v z%QRq$eBEL<2|ker*I&u`pmoi@k%^R@(NC5%Nuc+)0d{dQGt(jR&&H zMr0QBt2Xrly48_TY6d&haH*){DH<{Y=y(u>0F}pKxDo*U8S~#p^cD^Qne9rEcepKL zwr=!G#zD0DC6r5Xfx57F-L*j0PL6Ek4+~5;OjKxycPBMn=5iS=;5x)@e zFb68~&%;Ri^RLyTy?Fl)ncgR|p@h04wO=b?`10B)nlzdOl`;eG-kISZEE7`i$4 zf{&Dk+6BuR4(qA8*8>1tG5K5|&* zODqhQU#{?WeqVU1f&8~Gluu8&$gi<>74hOY=RtdqLC15_;Ib+^$s$7_4;=yKmOJ@y z;WhSqK++z0g`J{FCvY~MN7B+8wU>zNP z3sy(FdFrBWRn4r}gP-6{A}biiy8G_tb}bDS5R>u?0D)X;(Z9bD>HqO&g@-57xQ%AI z!CK_M>=*xDl(#F{b()md0W36@e1?;~?AY76%{4n7x?GbCrxN?|kpfeVVt=>66?!-S zY>HXB)d4G&hPS+`Wx9$0n-GnBJHOv_+GLhTxzXPd4u?c3E+wR0Dd<{*u}eVIAMH|q z=+{-nP)Af5@*<&p=a+mU4XM#5zSM0mj1dNkg5Z;BSUiQelS zQC~(D;x~K-l&ieQLC27b41H->Qu=R>02 zk0?%G9~ljLT?pfLF44*L!s_y|_H-VmT--VVm6}54SwAvsTV2?-#=jXq8mwB#u&v~3}-`n)0iSH4wQOc&mq^}PU>uKG^EPbC*^{x(}?-PBjxB% zHByDFc18Tkdj3sjqJ0FlZo3fum@6Q7j=$v8MA4gJcvl7?ujlHB>4`l5yS0{ zhsG3Un|rV>YLEohxHvd`eL#_6PIklgMtI9|ouES<%gxdeqOyBu8pCRY;+dD&aYgHSq;?HY_BQMnjPr!z$VYK}_$QkAu^ zSsQV2F<-F~MJknCtDqf2xb(wN8vN&m2#(`se9QOVyjYjN08T5j<$Eo3DL{z&UdDy)|!Y${6VZQa9zXfiVpI8E86Y z+H?4cUB29S&D7N1qes2ywt4nggwaDhzEUo=&l;_dmU5?Q2?hV{_>!Ui(lmw&Y^QoR zZ$8wYjhE_VTLY!>6BAdwr@wO!TuYW;=! z%_b~ecHAq})YpB&?2Y)d^&k=Qw4jb{*+#P--AH3w=uP?Q`7Lg4qRj)2#98){L0kR; zhrLtx_Tk>uWJM?H6)m-I(d2Cy23{iJ=&2uVMN(iic<|ZZc5}}YFd1|^{66qV~^1i1+ z=BUR!5qI~mW!|e~Z~r}mAh%ZddXdEvxOZ3FRwDYn=bnq-nIs$C_C9&)tm|Utbh1++ z0ju}s1WQjK=#Ila9&TO+gBnfzet50N}=kd zU}5fVJ0rf-V;tSjH?jM?FXzktSt}Nii`)LBw*B{bEj304+w>4;smlE<2y=uKbnM-W zJoM$wwb+x=Hm^0JI^;&OA``9a0io%p#~({F4&#w}8p-9AIK$UOmfowWq-lYoQ$e|P zv%XVkl@M98s-2}R93hr1>5a{oYQ)qhC!eFy_S(dQB_&A?XOoa-*4RUs<{EjCbHPX(a~3a1s20+F(Wp?L6Wl{3T%l*Axa$8wjLzGUn?h)zx@Gz9S^*w2zwk)SzGlZ zEy`?O5xrYsLtarexEkA|gP?M5ef*rY%j|s$6tF|Axy*HKiz(cA^1!4Zw>%gV1KTk$ zvTCz%XT)2twMgHc=gY_vla4h6c!$q6uyBe!tI5Kp<8lrByhGgzB1Sc_bS{s@Zcm}= zb{Mng7ke9h&7 zCFcC{s>us0ZGkw3AmIj`j%7ir*KKgn33pyYM1fOf*!xncFR!5F<@@{~QDeNOivRV{ z2JAoRNTqac9kl7^+^0u{{&)K60nEq++oKk8_#$Qr;FcgXh8|l3zUAs6wR%DT_K#-Q z3|c%?N)n6eXN9)ZsD8JtZ&X^LlCT9kgRTBfuSkPPE;>Q3kht~6);#10KWaoAtV`tP z;lj`xhb!Ub-rf;o-=wPuqMFL@-cA&NAJ)%z{9>1VAOC1s_dFh4%q&>qh)G;|ekW5v z7oHx}qU^bYHZNU4LDPMgP@>?s!|6hy!a~Gt>)~g|bj>=?{dSwiQu})1q18;f?|edL0Y&XWmH#7ZV)&-?zW$Jg{{LE+A)R_0pq?Y}6c0DG%5 zDtgqPhu99J-jM$MI#1r-Y+NV)nGGK__F(sOh>a zC|=Gz#jwp!GVNOmgfhBxg$so?B!V7nb_(yMTRDL$wXX5m+Hl--XF-fvkS-k$F`>ks-xW`+jEsbGK*I3_FBlC6m4-;mx7&9b?aEY zARWI!hGN0$nMH2B7B62Cj?g}634F>e>4eWzgyxM^z+cpkio{d8WJ@(tF$C7+1hoJP zJ+X&xW9hC6Z-3V%NuN$Ok_uIc!3%Lw2 zP(D8zYb$yF<{2=;_w>DGSsa3HIPUZoJe>Tz$a*(9>x^1zXJYH_E@N9ZZffGGNJ1ng z{{XxUmRxa=SW)dfuU`;2Angs!%jIZ~8#snLG3mf`-J`yL8Q(Y!VA_AtD^%L|YTQ*o zA#&+S!Jv87=l^bvHLi-6GE3mmk1CrtL!3#Kdd;3Q_yp*TBT?;e1 zUn3`~B{p>U@*6WKUl{xHy4}g?pS10O$^0(IHpDI>dD|Yyh8O}69XY7RvwqM2Q{ph3{hDiD`4-O8-B3}eg2a-@x zF+N|j4ZrU|+p4Ou8gb<|$FJMJN(>9HsoR_-Ka&zqG@OxF83w?`&+E3#yR0qatuNf+ z%!fG|A6==ieE1QH#m~<>P!-N!A?mnp1-r*VHsmO$oB@v7XC zr1PtSTo{xA1B3qbUoC(RsR&>WLzdtiWf$fu;UMHWWJJATXyvN2(CoODY&m#{DAmHrzmc#?KYv}WuLAwWiyHRpO1NYbg&yWQU ze%GZXXQ}Te*W8eN)FhkzJE|RPI4AspFBcT+&4vJf;V(cGbLHr|QIwhmoQmdyqc8XE z&%O~MWJRNRC3_~1gaaNZK>m_e6ICI>?(ICCHPfj+MO)A3!q>N7(+RE*Uqc{t&&!S0 zXx-i2>!I(jF!%{_(S^Jdi(6~*)5qrl5G=;zWpLh1C|q|S)nNwGr}Z(K-7E485@oj8 zFAgw@nQSHatJhq1>B(edqktwr6qN5JIa*`nj|7Z{dPED!W{89uiM-Edirr_xU*Q8I zwdb>Y_cPHcXW>>p{{Fqt=UF-lj-?HCiO{U#Vw$_tm9&Yc^tT5;xr1n=FZPj#pMB7h zN@8yv!7CjhS+&K|HkjXWekubaYBQN(K*5k^fe-EE;XGOGT;Wt&9Gy=rc#7hG<;Na~ z1%W{UeeVj2C#FF-*$cTV*GbbYPrlFhR}V?=6T(!F48B2kSQRQsJJ#1K=bKSYa{`(Y zMhLd-E!fnwr)#a8E03ap3zN5d@~2(V(IvwHrMcTdgBTEDonw6MCU76kpbV4pBU^_1 z;+zxGmyZXQZ1|Y?n?<7}%(zxGIrGHY9Ij;ZnRQ=>bbH#6?c|57O z!M~a`1}YZ}-tZkmdUos;`dzuwbH^&2cI7NT%>HqysdM}b0l|Mr9~PsP5|(-vHrs7C z7{sP6Pw!4nE;{vBUm9|2cm9d_<-BKhh@0&ynusto-b{39%U^t$DpZWIZqgl+?|XH? z8Jc~2vQ(13`={`YZ_`&I^64k1SsI~hX?_`Zk9tc=x$6-1;K`E4-=i|aO3i}oG9$KK zO?<9?RKuQF6BXhvM8wixR-sSG)#3p0@6@@frBl~Xpc!y*g&0TgUqbL-#y-t62?COf zkR=yrSr%eQ{`C~nYUn7oHS9;Znq>t!IXrRf_5spY={C5pH+qcvMN{Vv68|yrne%ie z$BQzrqQon60CNAMyVGh{C)Lc2n}lPM=$xF6jJpfI37RTyGfon{Qh(kQzRmY=R4)zM z?#~?V9KN7GLD99xoHBTG@d_J_TNBz#XSbk8*;9ug5up9c9vP>qAKndc@>6gD(zJ|)JmScWq#a_Dac_0y39%f z@!8pVeKw6uVi76~1QAwu@(V1075iNW0>B>;nCThbndzJ)GUl5bKA$F+0jxcyUq)=2 zc?C8BL3v8d?z%kfIZVknp`jyYC-Q&%iLgR(>rb5{ z&ms1CsVU)Iu3vn-gTF^;SUf$M0GC09DiZ2Fe(ZQ{bD#|+;WDwEqPJ$GpKOxmXD zk+$-_hl;v-Q{eqMLZW_?4TkxFIjRBt3V{_1{cayNBBFJg8T%z4se%zugE?Az+`4MW zV3$el4spg1AC*x}2T0dkOFK}a6Ox(in{FTMRP%xF2p_4JL)hphBC)|1dqC`Fs1Woj}c%>Trq)p6WBDJv%-YXPbh1WC=S|j7nDX$_q81Y2v@z2J}`bgP9)E+j=h{4(`*Ys|hpA50ax4L>o( zkr&zNbGAFD%z1G8wvmoSUmZOC*xTwp-Z@o^w)g^daF}62c{3&Qv!*vdmCyldHrx>c zA4aNVF85lExDAYPQO~EJO3WvM8$8Ka7i&F9HwsZk0!-*`w623rt?5{+P^2{3CydoR zN9Bnt3`wleopbZqv84>3+nA5HmplrptE{7=mo8Z)nP->Q5-y&FAj_?;rW@Ig3Z}2Q zy|89xW?_20PYbg5FXM{9inYyPO!-`J^(0l@;&DO;jCPH6 zqhYZFyL|Pi%bw&Z*&QeN#RhgJY|VQ_SJyW?@C&+ds(yM+f?Ifu7Vs7hjfCMnr1H)b zIfD_)W6AeDA}$U^x7H{Ql-YUFlPkm@cQyl7=Il-o4 zs7SsThrDV%w>=MU9n_B3N@N-ZjC--IWwkS5jxQ$rjjaJS?#Wp?+DX6jB9;)i3%jhm zL=~^%AERntth%@kwh$cdPr@J8^yf)*v(7LE8Xf@}ZJqf;bFac}JsO4;IYW8tp0-RG z;(rmw@a9hb7_}n)dts~db0@9vRm}J8G1sv6wZDY&;(5Tg?Ieu|L~i&TvlD=j)|6eQm;hq7wtb&4EjD?Q+K7leN_<&&QYb|~i{zVvg`9tK#Qzou+0|}u|mUE3j8iFVR zY9qF1b;(E-fL%|OWZ^`19^|}2ENmaO)zPjP?3Tw?^JwSGmVv7%FsfgQA(KPnJJ<0-BdnV? z0cJmeEZzVjT6<4IL%c5F?}HDks%vxXL=urL!tn)9LsnM zayX(BTvgio3~kU&7Iyi$JB7!a%yQ!i{GFpa6OX1@&K%PnE5hW;wf?|qDVjUl8@RM! zPpYN@!Dzzv!g@Iug*?q0kE&Y63uvZ!VaBBrMGP7(%ufyh(ev1?hY+D9zur~%&gOuh vjApxs*Pp|LEbDcYRsR3#;)48}ci2+Xob2oTbAx|H(lCm0YO=L5W)c4bsbR>U From bfe337d7939e57057700b9ad43f4822200d45fdc Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 01:50:52 -0200 Subject: [PATCH 0418/1549] Set module l10n_br_account as installable --- l10n_br_account/README.md | 2 + l10n_br_account/__init__.py | 27 + l10n_br_account/__openerp__.py | 60 ++ l10n_br_account/account.py | 195 ++++ .../account_fiscal_position_rule.py | 203 ++++ .../account_fiscal_position_rule_view.xml | 125 +++ .../account_fiscal_position_workflow.xml | 79 ++ l10n_br_account/account_invoice.py | 626 +++++++++++++ l10n_br_account/account_invoice_view.xml | 174 ++++ l10n_br_account/account_view.xml | 32 + .../data/l10n_br_account.fiscal.document.csv | 2 + l10n_br_account/data/l10n_br_account_data.xml | 366 ++++++++ l10n_br_account/demo/account.account.csv | 886 ++++++++++++++++++ .../demo/account_financial_demo.xml | 81 ++ l10n_br_account/demo/account_fiscal_demo.xml | 8 + l10n_br_account/demo/account_tax_code.xml | 50 + l10n_br_account/demo/base_demo.xml | 80 ++ l10n_br_account/i18n/pt_BR.po | 9 + l10n_br_account/images/l10n_br-hover.png | Bin 0 -> 5558 bytes l10n_br_account/images/l10n_br.png | Bin 0 -> 4953 bytes l10n_br_account/l10n_br_account.py | 482 ++++++++++ l10n_br_account/l10n_br_account_view.xml | 560 +++++++++++ l10n_br_account/l10n_br_account_workflow.xml | 79 ++ l10n_br_account/product.py | 49 + l10n_br_account/product_view.xml | 46 + l10n_br_account/res_company.py | 67 ++ l10n_br_account/res_company_view.xml | 43 + l10n_br_account/res_partner.py | 375 ++++++++ l10n_br_account/res_partner_view.xml | 153 +++ l10n_br_account/security/ir.model.access.csv | 35 + .../security/l10n_br_account_security.xml | 33 + l10n_br_account/sped/__init__.py | 21 + l10n_br_account/sped/document.py | 42 + l10n_br_account/sped/efd/__init__.py | 18 + l10n_br_account/static/src/img/icon.png | Bin 0 -> 11654 bytes 35 files changed, 5008 insertions(+) create mode 100644 l10n_br_account/README.md create mode 100644 l10n_br_account/__init__.py create mode 100644 l10n_br_account/__openerp__.py create mode 100644 l10n_br_account/account.py create mode 100755 l10n_br_account/account_fiscal_position_rule.py create mode 100644 l10n_br_account/account_fiscal_position_rule_view.xml create mode 100644 l10n_br_account/account_fiscal_position_workflow.xml create mode 100644 l10n_br_account/account_invoice.py create mode 100644 l10n_br_account/account_invoice_view.xml create mode 100644 l10n_br_account/account_view.xml create mode 100644 l10n_br_account/data/l10n_br_account.fiscal.document.csv create mode 100644 l10n_br_account/data/l10n_br_account_data.xml create mode 100644 l10n_br_account/demo/account.account.csv create mode 100644 l10n_br_account/demo/account_financial_demo.xml create mode 100644 l10n_br_account/demo/account_fiscal_demo.xml create mode 100644 l10n_br_account/demo/account_tax_code.xml create mode 100644 l10n_br_account/demo/base_demo.xml create mode 100644 l10n_br_account/i18n/pt_BR.po create mode 100644 l10n_br_account/images/l10n_br-hover.png create mode 100644 l10n_br_account/images/l10n_br.png create mode 100644 l10n_br_account/l10n_br_account.py create mode 100644 l10n_br_account/l10n_br_account_view.xml create mode 100644 l10n_br_account/l10n_br_account_workflow.xml create mode 100644 l10n_br_account/product.py create mode 100644 l10n_br_account/product_view.xml create mode 100644 l10n_br_account/res_company.py create mode 100644 l10n_br_account/res_company_view.xml create mode 100644 l10n_br_account/res_partner.py create mode 100644 l10n_br_account/res_partner_view.xml create mode 100644 l10n_br_account/security/ir.model.access.csv create mode 100644 l10n_br_account/security/l10n_br_account_security.xml create mode 100644 l10n_br_account/sped/__init__.py create mode 100644 l10n_br_account/sped/document.py create mode 100644 l10n_br_account/sped/efd/__init__.py create mode 100644 l10n_br_account/static/src/img/icon.png diff --git a/l10n_br_account/README.md b/l10n_br_account/README.md new file mode 100644 index 000000000000..bfa09df78156 --- /dev/null +++ b/l10n_br_account/README.md @@ -0,0 +1,2 @@ +Módulo Base Contabilidade +========================= diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py new file mode 100644 index 000000000000..e13f87ea11be --- /dev/null +++ b/l10n_br_account/__init__.py @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +import l10n_br_account +import sped +import res_company +import res_partner +import account +import account_invoice +import product +import account_fiscal_position_rule \ No newline at end of file diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py new file mode 100644 index 000000000000..064ed16ab745 --- /dev/null +++ b/l10n_br_account/__openerp__.py @@ -0,0 +1,60 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009-2013 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +{ + 'name': 'Brazilian Localization Account', + 'description': 'Brazilian Localization Account', + 'category': 'Localisation', + 'license': 'AGPL-3', + 'author': 'Akretion, OpenERP Brasil', + 'website': 'http://openerpbrasil.org', + 'version': '7.0', + 'depends': [ + 'l10n_br', + 'l10n_br_base', + 'l10n_br_product', + 'account_fiscal_position_rule', + 'web_context_tunnel', + ], + 'data': [ + 'l10n_br_account_workflow.xml', + 'account_fiscal_position_workflow.xml', + 'data/l10n_br_account.fiscal.document.csv', + 'data/l10n_br_account_data.xml', + 'account_view.xml', + 'account_fiscal_position_rule_view.xml', + 'account_invoice_view.xml', + 'l10n_br_account_view.xml', + 'res_partner_view.xml', + 'product_view.xml', + 'res_company_view.xml', + 'security/ir.model.access.csv', + 'security/l10n_br_account_security.xml', + ], + 'demo': [ + 'demo/account.account.csv', + 'demo/account_tax_code.xml', + 'demo/account_financial_demo.xml', + 'demo/account_fiscal_demo.xml', + 'demo/base_demo.xml', + ], + 'test': [], + 'installable': True, + 'auto_install': True, +} diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py new file mode 100644 index 000000000000..f027f3850531 --- /dev/null +++ b/l10n_br_account/account.py @@ -0,0 +1,195 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from openerp.osv import orm, fields + + +class AccountJournal(orm.Model): + _inherit = 'account.journal' + _columns = { + 'revenue_expense': fields.boolean('Gera Financeiro') + } + + +class AccountTaxComputation(orm.Model): + _name = 'account.tax.computation' + _columns = { + 'name': fields.char('Name', size=64) + } + + +class AccountTax(orm.Model): + _inherit = 'account.tax' + + def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, + precision): + result = {'tax_discount': 0.0, 'taxes': []} + + for tax in taxes: + if tax.get('type') == 'weight' and product: + product_read = self.pool.get('product.product').read( + cr, uid, product, ['weight_net']) + tax['amount'] = round((product_qty * product_read.get('weight_net', 0.0)) * tax['percent'], precision) + + if tax.get('type') == 'quantity': + tax['amount'] = round(product_qty * tax['percent'], precision) + + tax['amount'] = round(total_line * tax['percent'], precision) + tax['amount'] = round(tax['amount'] * (1 - tax['base_reduction']), precision) + + if tax.get('tax_discount'): + result['tax_discount'] += tax['amount'] + + if tax['percent']: + tax['total_base'] = round(total_line * (1 - tax['base_reduction']), precision) + tax['total_base_other'] = round(total_line - tax['total_base'], precision) + else: + tax['total_base'] = 0.00 + tax['total_base_other'] = 0.00 + + result['taxes'] = taxes + return result + + def compute_all(self, cr, uid, taxes, price_unit, quantity, + product=None, partner=None, force_excluded=False, + fiscal_position=False, insurance_value=0.0, + freight_value=0.0, other_costs_value=0.0): + """Compute taxes + + Returns a dict of the form:: + + { + 'total': Total without taxes, + 'total_included': Total with taxes, + 'total_tax_discount': Total Tax Discounts, + 'taxes': , + 'total_base': Total Base by tax, + } + + :Parameters: + - 'cr': Database cursor. + - 'uid': Current user. + - 'taxes': List with all taxes id. + - 'price_unit': Product price unit. + - 'quantity': Product quantity. + - 'force_excluded': Used to say that we don't want to consider + the value of field price_include of tax. + It's used in encoding by line where you don't + matter if you encoded a tax with that boolean + to True or False. + """ + obj_precision = self.pool.get('decimal.precision') + precision = obj_precision.precision_get(cr, uid, 'Account') + result = super(AccountTax, self).compute_all(cr, uid, taxes, + price_unit, quantity, product, partner, force_excluded) + totaldc = 0.0 + calculed_taxes = [] + + for tax in result['taxes']: + tax_list = [tx for tx in taxes if tx.id == tax['id']] + if tax_list: + tax_brw = tax_list[0] + tax['domain'] = tax_brw.domain + tax['type'] = tax_brw.type + tax['percent'] = tax_brw.amount + tax['base_reduction'] = tax_brw.base_reduction + tax['amount_mva'] = tax_brw.amount_mva + tax['tax_discount'] = tax_brw.base_code_id.tax_discount + + common_taxes = [tx for tx in result['taxes'] if tx['domain']] + result_tax = self._compute_tax(cr, uid, common_taxes, result['total'], + product, quantity, precision) + totaldc += result_tax['tax_discount'] + calculed_taxes += result_tax['taxes'] + + return { + 'total': result['total'], + 'total_included': result['total_included'], + 'total_tax_discount': totaldc, + 'taxes': calculed_taxes + } + + +class WizardMultiChartsAccounts(orm.TransientModel): + _inherit = 'wizard.multi.charts.accounts' + + def execute(self, cr, uid, ids, context=None): + """This function is called at the confirmation of the wizard to + generate the COA from the templates. It will read all the provided + information to create the accounts, the banks, the journals, the + taxes, the tax codes, the accounting properties... accordingly for + the chosen company. + + This is override in Brazilian Localization to copy CFOP + from fiscal positions template to fiscal positions. + + :Parameters: + - 'cr': Database cursor. + - 'uid': Current user. + - 'ids': orm_memory id used to read all data. + - 'context': Context. + """ + result = super(WizardMultiChartsAccounts, self).execute( + cr, uid, ids, context) + + obj_multi = self.browse(cr, uid, ids[0]) + obj_fp_template = self.pool.get('account.fiscal.position.template') + obj_fp = self.pool.get('account.fiscal.position') + + chart_template_id = obj_multi.chart_template_id.id + company_id = obj_multi.company_id.id + + fp_template_ids = obj_fp_template.search(cr, uid, + [('chart_template_id', '=', chart_template_id)]) + + for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, + context=context): + if fp_template.cfop_id: + fp_id = obj_fp.search(cr, uid, + [('name', '=', fp_template.name), + ('company_id', '=', company_id)]) + + if fp_id: + obj_fp.write(cr, uid, fp_id, + {'cfop_id': fp_template.cfop_id.id}) + return result + + +class AccountAccount(orm.Model): + _inherit = 'account.account' + + def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): + """Hack to allow re-shaping demo chart of account in demo mode""" + cr.execute("""SELECT demo + FROM ir_module_module WHERE name = 'l10n_br_account';""") + if cr.fetchone()[0]: + return True + else: + return super(AccountAccount, self)._check_allow_type_change( + cr, uid, ids, context) + + def _check_allow_code_change(self, cr, uid, ids, context=None): + """Hack to allow re-shaping demo chart of account in demo mode""" + cr.execute("""SELECT demo + FROM ir_module_module WHERE name = 'l10n_br_account';""") + if cr.fetchone()[0]: + return True + else: + return super(AccountAccount, self)._check_allow_code_change( + cr, uid, ids, context) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py new file mode 100755 index 000000000000..70ff889d1370 --- /dev/null +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -0,0 +1,203 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +import time + +from openerp.osv import orm, fields +from openerp.addons import decimal_precision as dp +from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT + +FISCAL_RULE_COLUMNS = { + 'partner_fiscal_type_id': fields.many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria'), + 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, + u'Regime Tributário', required=True), + 'revenue_start': fields.float( + 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto"), + 'revenue_end': fields.float( + 'Faturamento Final', digits_compute=dp.get_precision('Account'), + help="Faixa inicial de faturamento bruto") +} + +OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE = { + 'parent_id': fields.many2one( + 'account.fiscal.position.rule.template', 'Regra Pai'), + 'child_ids': fields.one2many( + 'account.fiscal.position.rule.template', + 'parent_id', 'Regras Filhas'), +} + +OTHERS_FISCAL_RULE_COLUMNS = { + 'parent_id': fields.many2one( + 'account.fiscal.position.rule', 'Regra Pai'), + 'child_ids': fields.one2many( + 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas'), +} + +FISCAL_RULE_DEFAULTS = { + 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, + 'revenue_start': 0.00, + 'revenue_end': 0.00 +} + + +class AccountFiscalPositionRuleTemplate(orm.Model): + _inherit = 'account.fiscal.position.rule.template' + _columns = dict( + FISCAL_RULE_COLUMNS.items() + + OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE.items()) + _defaults = FISCAL_RULE_DEFAULTS + + +class AccountFiscalPositionRule(orm.Model): + _inherit = 'account.fiscal.position.rule' + _columns = dict( + FISCAL_RULE_COLUMNS.items() + + OTHERS_FISCAL_RULE_COLUMNS.items()) + _defaults = FISCAL_RULE_DEFAULTS + + def _map_domain(self, cr, uid, partner, addrs, company, + context=None, **kwargs): + if context is None: + context = {} + + from_country = company.partner_id.country_id.id + from_state = company.partner_id.state_id.id + fiscal_rule_parent_id = company.fiscal_rule_parent_id.id + partner_fiscal_type_id = partner.partner_fiscal_type_id.id + + document_date = context.get('date', time.strftime('%Y-%m-%d')) + use_domain = context.get('use_domain', ('use_sale', '=', True)) + + domain = [ + '&', ('company_id', '=', company.id), use_domain, + ('fiscal_type', '=', company.fiscal_type), + ('fiscal_category_id', '=', kwargs.get('fiscal_category_id')), + '|', ('partner_fiscal_type_id', '=', partner_fiscal_type_id), + ('partner_fiscal_type_id', '=', False), + '|', ('from_country', '=', from_country), + ('from_country', '=', False), + '|', ('from_state', '=', from_state), + ('from_state', '=', False), + '|', ('parent_id', '=', fiscal_rule_parent_id), + ('parent_id', '=', False), + '|', ('date_start', '=', False), + ('date_start', '<=', document_date), + '|', ('date_end', '=', False), + ('date_end', '>=', document_date), + '|', ('revenue_start', '=', False), + ('revenue_start', '<=', company.annual_revenue), + '|', ('revenue_end', '=', False), + ('revenue_end', '>=', company.annual_revenue) + ] + + for address_type, address in addrs.items(): + key_country = 'to_%s_country' % address_type + key_state = 'to_%s_state' % address_type + to_country = address.country_id.id or False + domain += ['|', (key_country, '=', to_country), + (key_country, '=', False)] + to_state = address.state_id.id or False + domain += ['|', (key_state, '=', to_state), + (key_state, '=', False)] + + return domain + + def product_fiscal_category_map(self, cr, uid, product_id=False, + fiscal_category_id=False): + result = False + + if not product_id or not fiscal_category_id: + return result + + product_tmpl_id = self.pool.get('product.product').read( + cr, uid, product_id, ['product_tmpl_id'])['product_tmpl_id'][0] + default_product_fiscal_category = self.pool.get( + 'l10n_br_account.product.category').search( + cr, uid, [('product_tmpl_id', '=', product_tmpl_id), + ('fiscal_category_source_id', '=', fiscal_category_id)]) + if default_product_fiscal_category: + fc_des_id = self.pool.get('l10n_br_account.product.category').read( + cr, uid, default_product_fiscal_category, + ['fiscal_category_destination_id'] + )[0]['fiscal_category_destination_id'][0] + result = fc_des_id + return result + + +class WizardAccountFiscalPositionRule(orm.TransientModel): + _inherit = 'wizard.account.fiscal.position.rule' + + def action_create(self, cr, uid, ids, context=None): + super(WizardAccountFiscalPositionRule, self).action_create( + cr, uid, ids, context) + + obj_wizard = self.browse(cr, uid, ids[0]) + + obj_fp = self.pool.get('account.fiscal.position') + obj_fpr = self.pool.get('account.fiscal.position.rule') + obj_fpr_templ = self.pool.get('account.fiscal.position.rule.template') + + company_id = obj_wizard.company_id.id + pfr_ids = obj_fpr_templ.search(cr, uid, []) + + for fpr_template in obj_fpr_templ.browse(cr, uid, pfr_ids): + + from_country = fpr_template.from_country.id or False + from_state = fpr_template.from_state.id or False + to_invoice_country = fpr_template.to_invoice_country.id or False + to_invoice_state = fpr_template.to_invoice_state.id or False + partner_ft_id = fpr_template.partner_fiscal_type_id.id or False + fiscal_category_id = fpr_template.fiscal_category_id.id or False + + fiscal_position_id = False + fp_id = obj_fp.search( + cr, uid, [('name', '=', fpr_template.fiscal_position_id.name), + ('company_id', '=', company_id)],) + + if fp_id: + fiscal_position_id = fp_id[0] + + fprt_id = obj_fpr.search( + cr, uid, + [('name', '=', fpr_template.name), + ('company_id', '=', company_id), + ('description', '=', fpr_template.description), + ('from_country', '=', from_country), + ('from_state', '=', from_state), + ('to_invoice_country', '=', to_invoice_country), + ('to_invoice_state', '=', to_invoice_state), + ('use_sale', '=', fpr_template.use_sale), + ('use_invoice', '=', fpr_template.use_invoice), + ('use_purchase', '=', fpr_template.use_purchase), + ('use_picking', '=', fpr_template.use_picking), + ('fiscal_position_id', '=', fiscal_position_id)]) + + if fprt_id: + obj_fpr.write( + cr, uid, fprt_id, { + 'partner_fiscal_type_id': partner_ft_id, + 'fiscal_category_id': fiscal_category_id, + 'fiscal_type': fpr_template.fiscal_type, + 'revenue_start': fpr_template.revenue_start, + 'revenue_end': fpr_template.revenue_end}) + return {} diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/account_fiscal_position_rule_view.xml new file mode 100644 index 000000000000..10b0c4b3b887 --- /dev/null +++ b/l10n_br_account/account_fiscal_position_rule_view.xml @@ -0,0 +1,125 @@ + + + + + + l10n_br_account.fiscal.position.rule.template.tree + + account.fiscal.position.rule.template + + + + + + + + + + + l10n_br_account.fiscal.position.rule.tree + account.fiscal.position.rule + + + + + + + + + + + l10n_br_account.fiscal.position.rule.template.form + account.fiscal.position.rule.template + + + + + + + + + + + + + + + + + + + + + + + l10n_br_account.fiscal.position.rule.form + account.fiscal.position.rule + + + + + + + + + + + + + + + + + + + + + + + l10n_br_sale.fiscal.position.rule.template.search + account.fiscal.position.rule.template + + + + + + + + + + + + + + + + + + + + + + + l10n_br_sale.fiscal.position.rule.search + account.fiscal.position.rule + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/account_fiscal_position_workflow.xml b/l10n_br_account/account_fiscal_position_workflow.xml new file mode 100644 index 000000000000..f4255d95674b --- /dev/null +++ b/l10n_br_account/account_fiscal_position_workflow.xml @@ -0,0 +1,79 @@ + + + + + + + Fiscal Position Approval + l10n_br_account.fiscal.category + True + + + + + + True + draft + + + + + review + write({'state':'review'}) + function + + + + + approved + write({'state':'approved'}) + function + + + + + unapproved + True + write({'state':'unapproved'}) + function + + + + + + + fiscal_category_review + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_unapproved + + + + diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py new file mode 100644 index 000000000000..49a8486e4170 --- /dev/null +++ b/l10n_br_account/account_invoice.py @@ -0,0 +1,626 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from lxml import etree + +from openerp import netsvc +from openerp.osv import orm, fields +from openerp.addons import decimal_precision as dp +from openerp.tools.translate import _ + +from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT + +OPERATION_TYPE = { + 'out_invoice': 'output', + 'in_invoice': 'input', + 'out_refund': 'input', + 'in_refund': 'output' +} + +JOURNAL_TYPE = { + 'out_invoice': 'sale', + 'in_invoice': 'purchase', + 'out_refund': 'sale_refund', + 'in_refund': 'purchase_refund' +} + + +class AccountInvoice(orm.Model): + _inherit = 'account.invoice' + + def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): + res = {} + for invoice in self.browse(cr, uid, ids, context=context): + res[invoice.id] = [] + if not invoice.move_id: + continue + data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable') and invoice.journal_id.revenue_expense] + New_ids = [] + for line in data_lines: + New_ids.append(line.id) + New_ids.sort() + res[invoice.id] = New_ids + return res + + _columns = { + 'issuer': fields.selection( + [('0', u'Emissão própria'), + ('1', 'Terceiros')], 'Emitente', readonly=True, + states={'draft': [('readonly', False)]}), + 'internal_number': fields.char( + 'Invoice Number', size=32, readonly=True, + states={'draft': [('readonly', False)]}, + help="""Unique number of the invoice, computed + automatically when the invoice is created."""), + 'fiscal_type': fields.selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), + 'vendor_serie': fields.char( + u'Série NF Entrada', size=12, readonly=True, + states={'draft': [('readonly', False)]}, + help=u"Série do número da Nota Fiscal do Fornecedor"), + 'move_line_receivable_id': fields.function( + _get_receivable_lines, method=True, type='many2many', + relation='account.move.line', string='Entry Lines'), + 'document_serie_id': fields.many2one( + 'l10n_br_account.document.serie', u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id),\ + ('company_id','=',company_id)]", readonly=True, + states={'draft': [('readonly', False)]}), + 'fiscal_document_id': fields.many2one( + 'l10n_br_account.fiscal.document', 'Documento', readonly=True, + states={'draft': [('readonly', False)]}), + 'fiscal_document_electronic': fields.related( + 'fiscal_document_id', 'electronic', type='boolean', readonly=True, + relation='l10n_br_account.fiscal.document', store=True, + string='Electronic'), + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal', + readonly=True, states={'draft': [('readonly', False)]}), + 'fiscal_position': fields.many2one( + 'account.fiscal.position', 'Fiscal Position', readonly=True, + states={'draft': [('readonly', False)]}, + domain="[('fiscal_category_id','=',fiscal_category_id)]"), + 'account_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos'), + 'fiscal_comment': fields.text(u'Observação Fiscal'), + } + + def _default_fiscal_document(self, cr, uid, context): + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + fiscal_document = self.pool.get('res.company').read( + cr, uid, user.company_id.id, ['service_invoice_id'], + context=context)['service_invoice_id'] + + return fiscal_document and fiscal_document[0] or False + + def _default_fiscal_document_serie(self, cr, uid, context): + fiscal_document_serie = False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + company = self.pool.get('res.company').browse( + cr, uid, user.company_id.id, context=context) + + fiscal_document_serie = company.document_serie_service_id and \ + company.document_serie_service_id.id or False + + return fiscal_document_serie + + _defaults = { + 'issuer': '0', + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, + 'fiscal_document_id': _default_fiscal_document, + 'document_serie_id': _default_fiscal_document_serie, + } + + def _check_invoice_number(self, cr, uid, ids, context=None): + if context is None: + context = {} + invoices = self.browse(cr, uid, ids, context=context) + domain = [] + for invoice in invoices: + if not invoice.number: + continue + fiscal_document = invoice.fiscal_document_id and \ + invoice.fiscal_document_id.id or False + domain.extend([('internal_number', '=', invoice.number), + ('fiscal_type', '=', invoice.fiscal_type), + ('fiscal_document_id', '=', fiscal_document) + ]) + if invoice.issuer == '0': + domain.extend( + [('company_id', '=', invoice.company_id.id), + ('internal_number', '=', invoice.number), + ('fiscal_document_id', '=', invoice.fiscal_document_id.id), + ('issuer', '=', '0')]) + else: + domain.extend( + [('partner_id', '=', invoice.partner_id.id), + ('vendor_serie', '=', invoice.vendor_serie), + ('issuer', '=', '1')]) + + invoice_id = self.pool.get('account.invoice').search( + cr, uid, domain) + if len(invoice_id) > 1: + return False + return True + + _constraints = [ + (_check_invoice_number, + u"Error!\nNão é possível registrar \ + documentos fiscais com números repetidos.", + ['number']), + ] + + #TODO - Melhorar esse método! + def fields_view_get(self, cr, uid, view_id=None, view_type=False, + context=None, toolbar=False, submenu=False): + result = super(AccountInvoice, self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) + + if context is None: + context = {} + + if not view_type: + view_id = self.pool.get('ir.ui.view').search( + cr, uid, [('name', '=', 'account.invoice.tree')]) + view_type = 'tree' + + if view_type == 'form': + eview = etree.fromstring(result['arch']) + + if 'type' in context.keys(): + fiscal_types = eview.xpath("//field[@name='invoice_line']") + for fiscal_type in fiscal_types: + fiscal_type.set( + 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( + context['type'], + context.get('fiscal_type', 'product'))) + + fiscal_categories = eview.xpath( + "//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set( + 'domain', + """[('fiscal_type', '=', '%s'), ('type', '=', '%s'), + ('state', '=', 'approved'), + ('journal_type', '=', '%s')]""" + % (context.get('fiscal_type', 'product'), + OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) + fiscal_category_id.set('required', '1') + + document_series = eview.xpath( + "//field[@name='document_serie_id']") + for document_serie_id in document_series: + document_serie_id.set( + 'domain', "[('fiscal_type', '=', '%s')]" + % (context.get('fiscal_type', 'product'))) + + if context.get('fiscal_type', False): + delivery_infos = eview.xpath("//group[@name='delivery_info']") + for delivery_info in delivery_infos: + delivery_info.set('invisible', '1') + + result['arch'] = etree.tostring(eview) + + if view_type == 'tree': + doc = etree.XML(result['arch']) + nodes = doc.xpath("//field[@name='partner_id']") + partner_string = _('Customer') + if context.get('type', 'out_invoice') in ('in_invoice', 'in_refund'): + partner_string = _('Supplier') + for node in nodes: + node.set('string', partner_string) + result['arch'] = etree.tostring(doc) + return result + + def init(self, cr): + # Remove a constraint na coluna número do documento fiscal, + # no caso dos documentos de entradas dos fornecedores pode existir + # documentos fiscais de fornecedores diferentes com a mesma numeração + cr.execute("ALTER TABLE %s DROP CONSTRAINT IF EXISTS %s" % ( + 'account_invoice', 'account_invoice_number_uniq')) + + # go from canceled state to draft state + def action_cancel_draft(self, cr, uid, ids, *args): + self.write(cr, uid, ids, { + 'state': 'draft', + 'internal_number': False, + 'nfe_access_key': False, + 'nfe_status': False, + 'nfe_date': False, + 'nfe_export_date': False}) + wf_service = netsvc.LocalService("workflow") + for inv_id in ids: + wf_service.trg_delete(uid, 'account.invoice', inv_id, cr) + wf_service.trg_create(uid, 'account.invoice', inv_id, cr) + return True + + def copy(self, cr, uid, id, default={}, context=None): + default.update({ + 'internal_number': False, + 'nfe_access_key': False, + 'nfe_status': False, + 'nfe_protocol_number': False, + 'nfe_date': False, + 'nfe_export_date': False, + 'account_document_event_ids': False, + }) + return super(AccountInvoice, self).copy(cr, uid, id, default, context) + + def action_internal_number(self, cr, uid, ids, context=None): + if context is None: + context = {} + + for inv in self.browse(cr, uid, ids): + if inv.issuer == '0': + sequence = self.pool.get('ir.sequence') + sequence_read = sequence.read( + cr, uid, inv.document_serie_id.internal_sequence_id.id, + ['number_next']) + invalid_number = self.pool.get( + 'l10n_br_account.invoice.invalid.number').search( + cr, uid, [ + ('number_start', '<=', sequence_read['number_next']), + ('number_end', '>=', sequence_read['number_next']), + ('state', '=', 'done')]) + + if invalid_number: + raise orm.except_orm( + _(u'Número Inválido !'), + _(u"O número: %s da série: %s, esta inutilizado") % ( + sequence_read['number_next'], + inv.document_serie_id.name)) + + seq_no = sequence.get_id(cr, uid, inv.document_serie_id.internal_sequence_id.id, context=context) + self.write(cr, uid, inv.id, {'ref': seq_no, 'internal_number': seq_no}) + return True + + def action_number(self, cr, uid, ids, context=None): + if context is None: + context = {} + #TODO: not correct fix but required a frech values before reading it. + self.write(cr, uid, ids, {}) + + for obj_inv in self.browse(cr, uid, ids, context=context): + inv_id = obj_inv.id + move_id = obj_inv.move_id and obj_inv.move_id.id or False + ref = obj_inv.internal_number or obj_inv.reference or '' + + cr.execute('UPDATE account_move SET ref=%s ' + 'WHERE id=%s AND (ref is null OR ref = \'\')', + (ref, move_id)) + cr.execute('UPDATE account_move_line SET ref=%s ' + 'WHERE move_id=%s AND (ref is null OR ref = \'\')', + (ref, move_id)) + cr.execute('UPDATE account_analytic_line SET ref=%s ' + 'FROM account_move_line ' + 'WHERE account_move_line.move_id = %s ' + 'AND account_analytic_line.move_id = account_move_line.id', + (ref, move_id)) + + for inv_id, name in self.name_get(cr, uid, [inv_id]): + ctx = context.copy() + if obj_inv.type in ('out_invoice', 'out_refund'): + ctx = self.get_log_context(cr, uid, context=ctx) + message = _('Invoice ') + " '" + name + "' " + _("is validated.") + self.log(cr, uid, inv_id, message, context=ctx) + return True + + def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): + """finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines + Hook method to be overridden in additional modules to verify and possibly alter the + move lines to be created by an invoice, for special cases. + :param invoice_browse: browsable record of the invoice that is generating the move lines + :param move_lines: list of dictionaries with the account.move.lines (as for create()) + :return: the (possibly updated) final move_lines to create for this invoice + """ + move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(cr, uid, invoice_browse, move_lines) + cont=1 + result = [] + for move_line in move_lines: + if (move_line[2]['debit'] or move_line[2]['credit']): + if (move_line[2]['account_id'] == invoice_browse.account_id.id): + move_line[2]['name'] = '%s/%s' % ( invoice_browse.internal_number, cont) + cont +=1 + result.append(move_line) + return result + + def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): + + if not context: + context = {} + context.update({'use_domain': ('use_invoice', '=', True)}) + kwargs.update({'context': context}) + + if not kwargs.get('fiscal_category_id', False): + return result + + obj_company = self.pool.get('res.company').browse( + cr, uid, kwargs.get('company_id', False)) + obj_fcategory = self.pool.get('l10n_br_account.fiscal.category') + + fcategory = obj_fcategory.browse( + cr, uid, kwargs.get('fiscal_category_id')) + result['value']['journal_id'] = fcategory.property_journal and \ + fcategory.property_journal.id or False + if not result['value'].get('journal_id', False): + raise orm.except_orm( + _(u'Nenhum Diário !'), + _(u"Categoria fiscal: '%s', não tem um diário contábil para a \ + empresa %s") % (fcategory.name, obj_company.name)) + + obj_fp_rule = self.pool.get('account.fiscal.position.rule') + return obj_fp_rule.apply_fiscal_mapping(cr, uid, result, **kwargs) + + def onchange_partner_id(self, cr, uid, ids, type, partner_id, + date_invoice=False, payment_term=False, + partner_bank_id=False, company_id=False, + fiscal_category_id=False): + + result = super(AccountInvoice, self).onchange_partner_id( + cr, uid, ids, type, partner_id, date_invoice, payment_term, + partner_bank_id, company_id) + + return self._fiscal_position_map( + cr, uid, result, False, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id) + + def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, + invoice_line, currency_id, + fiscal_category_id=False): + + result = super(AccountInvoice, self).onchange_company_id( + cr, uid, ids, company_id, partner_id, type, invoice_line, + currency_id) + + return self._fiscal_position_map( + cr, uid, result, False, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id) + + def onchange_fiscal_category_id(self, cr, uid, ids, + partner_address_id=False, + partner_id=False, company_id=False, + fiscal_category_id=False): + result = {'value': {}} + return self._fiscal_position_map( + cr, uid, result, False, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id) + + def onchange_fiscal_document_id(self, cr, uid, ids, fiscal_document_id, + company_id, issuer, fiscal_type, + context=None): + result = {'value': {'document_serie_id': False}} + if not context: + context = {} + company = self.pool.get('res.company').browse(cr, uid, company_id, + context=context) + + if issuer == '0': + serie = company.document_serie_service_id and \ + company.document_serie_service_id.id or False + result['value']['document_serie_id'] = serie + + return result + + +class AccountInvoiceLine(orm.Model): + _inherit = 'account.invoice.line' + + def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): + res = {} + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') + for line in self.browse(cr, uid, ids): + res[line.id] = { + 'price_subtotal': 0.0, + 'price_total': 0.0, + } + + price = line.price_unit * (1 - (line.discount or 0.0) / 100.0) + taxes = tax_obj.compute_all( + cr, uid, line.invoice_line_tax_id, price, line.quantity, + line.product_id, line.invoice_id.partner_id, + fiscal_position=line.fiscal_position) + + if line.invoice_id: + currency = line.invoice_id.currency_id + res[line.id].update({ + 'price_subtotal': cur_obj.round( + cr, uid, currency, + taxes['total'] - taxes['total_tax_discount']), + 'price_total': cur_obj.round( + cr, uid, currency, taxes['total']), + }) + + return res + + _columns = { + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria'), + 'fiscal_position': fields.many2one( + 'account.fiscal.position', u'Posição Fiscal', + domain="[('fiscal_category_id','=',fiscal_category_id)]"), + 'price_total': fields.function( + _amount_line, method=True, string='Total', type="float", + digits_compute=dp.get_precision('Account'), + store=True, multi='all'), + } + + def fields_view_get(self, cr, uid, view_id=None, view_type=False, + context=None, toolbar=False, submenu=False): + + result = super(AccountInvoiceLine, self).fields_view_get( + cr, uid, view_id=view_id, view_type=view_type, context=context, + toolbar=toolbar, submenu=submenu) + + if context is None: + context = {} + + if view_type == 'form': + eview = etree.fromstring(result['arch']) + + if 'type' in context.keys(): + fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + for fiscal_category_id in fiscal_categories: + fiscal_category_id.set( + 'domain', """[('type', '=', '%s'), + ('journal_type', '=', '%s')]""" + % (OPERATION_TYPE[context['type']], + JOURNAL_TYPE[context['type']])) + fiscal_category_id.set('required', '1') + + product_ids = eview.xpath("//field[@name='product_id']") + for product_id in product_ids: + product_id.set('domain', "[('fiscal_type', '=', '%s')]" % ( + context.get('fiscal_type', 'service'))) + + result['arch'] = etree.tostring(eview) + + return result + + def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): + + if not context: + context = {} + context.update({'use_domain': ('use_invoice', '=', True)}) + kwargs.update({'context': context}) + result['value']['cfop_id'] = False + obj_fp_rule = self.pool.get('account.fiscal.position.rule') + result_rule = obj_fp_rule.apply_fiscal_mapping( + cr, uid, result, **kwargs) + if result['value'].get('fiscal_position', False): + obj_fp = self.pool.get('account.fiscal.position').browse( + cr, uid, result['value'].get('fiscal_position', False)) + result_rule['value']['cfop_id'] = obj_fp.cfop_id and obj_fp.cfop_id.id or False + if kwargs.get('product_id', False): + obj_product = self.pool.get('product.product').browse( + cr, uid, kwargs.get('product_id', False), context=context) + context['fiscal_type'] = obj_product.fiscal_type + if context.get('type') in ('out_invoice', 'out_refund'): + context['type_tax_use'] = 'sale' + taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) + else: + context['type_tax_use'] = 'purchase' + taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) + tax_ids = self.pool.get('account.fiscal.position').map_tax( + cr, uid, obj_fp, taxes, context) + + result_rule['value']['invoice_line_tax_id'] = tax_ids + + result['value'].update(self._get_tax_codes( + cr, uid, kwargs.get('product_id'), + obj_fp, tax_ids, kwargs.get('company_id'), + context=context)) + + return result_rule + + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', + type='out_invoice', partner_id=False, + fposition_id=False, price_unit=False, + currency_id=False, context=None, company_id=False, + parent_fiscal_category_id=False, + parent_fposition_id=False): + + result = super(AccountInvoiceLine, self).product_id_change( + cr, uid, ids, product, uom, qty, name, type, partner_id, + fposition_id, price_unit, currency_id, context, company_id) + + fiscal_position = fposition_id or parent_fposition_id or False + + if not parent_fiscal_category_id or not product or not fiscal_position: + return result + obj_fp_rule = self.pool.get('account.fiscal.position.rule') + product_fiscal_category_id = obj_fp_rule.product_fiscal_category_map( + cr, uid, product, parent_fiscal_category_id) + + if product_fiscal_category_id: + parent_fiscal_category_id = product_fiscal_category_id + + result['value']['fiscal_category_id'] = parent_fiscal_category_id + + result = self._fiscal_position_map(cr, uid, result, context, + partner_id=partner_id, partner_invoice_id=partner_id, + company_id=company_id, product_id=product, + fiscal_category_id=parent_fiscal_category_id, + account_id=result['value'].get('account_id')) + + values = { + 'partner_id': partner_id, + 'company_id': company_id, + 'product_id': product, + 'quantity': qty, + 'price_unit': price_unit, + 'fiscal_position': result['value'].get('fiscal_position'), + 'invoice_line_tax_id': [[6, 0, result['value'].get('invoice_line_tax_id')]], + } + result['value'].update(self._validate_taxes(cr, uid, values, context)) + return result + + def onchange_fiscal_category_id(self, cr, uid, ids, partner_id, + company_id, product_id, fiscal_category_id, + account_id, context): + result = {'value': {}} + return self._fiscal_position_map( + cr, uid, result, context, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id, product_id=product_id, + account_id=account_id) + + def onchange_fiscal_position(self, cr, uid, ids, partner_id, company_id, + product_id, fiscal_category_id, + account_id, context): + result = {'value': {}} + return self._fiscal_position_map( + cr, uid, result, context, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id, product_id=product_id, + account_id=account_id) + + def onchange_account_id(self, cr, uid, ids, product_id, partner_id, + inv_type, fposition_id, account_id=False, + context=None, fiscal_category_id=False, + company_id=False): + + result = super(AccountInvoiceLine, self).onchange_account_id( + cr, uid, ids, product_id, partner_id, inv_type, fposition_id, + account_id) + return self._fiscal_position_map( + cr, uid, result, context, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id, product_id=product_id, + account_id=account_id) + + def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', + type='out_invoice', partner_id=False, fposition_id=False, + price_unit=False, currency_id=False, context=None, + company_id=None, fiscal_category_id=False): + + result = super(AccountInvoiceLine, self).uos_id_change( + cr, uid, ids, product, uom, qty, name, type, partner_id, + fposition_id, price_unit, currency_id, context, company_id) + return self._fiscal_position_map( + cr, uid, result, context, partner_id=partner_id, + partner_invoice_id=partner_id, company_id=company_id, + fiscal_category_id=fiscal_category_id, product_id=product, + account_id=False) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml new file mode 100644 index 000000000000..1fcc4f10661a --- /dev/null +++ b/l10n_br_account/account_invoice_view.xml @@ -0,0 +1,174 @@ + + + + + + + l10n_br_account.invoice.tree + account.invoice + + + + + + + + + + l10n_br_account.invoice.form + account.invoice + + + + + + + + + + + + + + + + onchange_journal_id(journal_id, context) + + + + + + + onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) + + + onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) + + + + + + + + + + + + + + + + 1 + + + + + + l10n_br_account.invoice.line.tree + account.invoice.line + + 26 + + + + + + + + + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] + + + + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] + + + + [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'service')] + + + + [('type', '=', 'out_refund'), ('fiscal_type', '=', 'service')] + + + + [('type', '=', 'in_refund'), ('fiscal_type', '=', 'service')] + + + + [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] + + + + l10n_br_account.invoice.select + account.invoice + + 32 + + + + + + + + + + l10n_br_account.invoice.supplier.form + account.invoice + + + + + + + + + onchange_journal_id(journal_id, context) + + + onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) + + + + + onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + l10n_br_account.invoice.supplier.form3 + account.invoice + + + + + + + + + + + diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/account_view.xml new file mode 100644 index 000000000000..adc2d1814bc3 --- /dev/null +++ b/l10n_br_account/account_view.xml @@ -0,0 +1,32 @@ + + + + + + l10n_br_account.journal.form + account.journal + + + + + + + + + + + + + + l10n_br_account.move.line.form + account.move.line + + + + + + + + + + diff --git a/l10n_br_account/data/l10n_br_account.fiscal.document.csv b/l10n_br_account/data/l10n_br_account.fiscal.document.csv new file mode 100644 index 000000000000..149b63129b9a --- /dev/null +++ b/l10n_br_account/data/l10n_br_account.fiscal.document.csv @@ -0,0 +1,2 @@ +"id","code","name","electronic" +"fiscal_document_service","XX","Nota Fiscal de Serviço Municipal","False" \ No newline at end of file diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml new file mode 100644 index 000000000000..36ce69065bf5 --- /dev/null +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -0,0 +1,366 @@ + + + + + + + 1 + Série 1 + + + True + service + + + + + + + + 3 + + + + + Contribuinte + Contribuinte + + + + + + + + Não Contribuinte + Não Contribuinte + + + + + + + + Simples Nacional + Simples Nacional + + + + + + + Não Contribuinte + Não Contribuinte + + + + + + + + + 3 + + + + + ICMS Simples Nacional 1,25% + ICMS Simples Nacional 1,25% + 0.0125 + + + + + + + + + + + + + ICMS Simples Nacional 1,86% + ICMS Simples Nacional 1,86% + 0.0186 + + + + + + + + + + + + + ICMS Simples Nacional 2,33% + ICMS Simples Nacional 2,33% + 0.0233 + + + + + + + + + + + + + ICMS Simples Nacional 2,56% + ICMS Simples Nacional 2,56% + 0.0256 + + + + + + + + + + + + + ICMS Simples Nacional 2,58% + ICMS Simples Nacional 2,58% + 0.0258 + + + + + + + + + + + + + ICMS Simples Nacional 2,82% + ICMS Simples Nacional 2,82% + 0.0282 + + + + + + + + + + + + + ICMS Simples Nacional 2,84% + ICMS Simples Nacional 2,84% + 0.0284 + + + + + + + + + + + + + ICMS Simples Nacional 2,87% + ICMS Simples Nacional 2,87% + 0.0287 + + + + + + + + + + + + + ICMS Simples Nacional 3,07% + ICMS Simples Nacional 3,07% + 0.0307 + + + + + + + + + + + + + ICMS Simples Nacional 3,10% + ICMS Simples Nacional 3,10% + 0.0310 + + + + + + + + + + + + + ICMS Simples Nacional 3,38% + ICMS Simples Nacional 3,38% + 0.0338 + + + + + + + + + + + + + ICMS Simples Nacional 3,41% + ICMS Simples Nacional 3,41% + 0.0341 + + + + + + + + + + + + + ICMS Simples Nacional 3,45% + ICMS Simples Nacional 3,45% + 0.0345 + + + + + + + + + + + + + ICMS Simples Nacional 3,48% + ICMS Simples Nacional 3,48% + 0.0348 + + + + + + + + + + + + + ICMS Simples Nacional 3,51% + ICMS Simples Nacional 3,51% + 0.0351 + + + + + + + + + + + + + ICMS Simples Nacional 3,82% + ICMS Simples Nacional 3,82% + 0.0382 + + + + + + + + + + + + + ICMS Simples Nacional 3,85% + ICMS Simples Nacional 3,85% + 0.0385 + + + + + + + + + + + + + ICMS Simples Nacional 3,88% + ICMS Simples Nacional 3,88% + 0.0388 + + + + + + + + + + + + + ICMS Simples Nacional 3,91% + ICMS Simples Nacional 3,91% + 0.0391 + + + + + + + + + + + + + ICMS Simples Nacional 3,95% + ICMS Simples Nacional 3,95% + 0.0395 + + + + + + + + + + + + + \ No newline at end of file diff --git a/l10n_br_account/demo/account.account.csv b/l10n_br_account/demo/account.account.csv new file mode 100644 index 000000000000..274e038f027e --- /dev/null +++ b/l10n_br_account/demo/account.account.csv @@ -0,0 +1,886 @@ +"id","code","name","parent_id:id","note","type","user_type:id","company_id:id" +"account.chart0",0,"Plano de Contas",,,"view","account.data_account_type_view","base.main_company" +"account.assets_view",1,"ATIVO","account.chart0"," ","view","account.data_account_type_asset","base.main_company" +"account.nca",1.01,"CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" +"account.cas","1.01.01","DISPONIBILIDADES","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","other","account.data_account_type_bank","base.main_company" +"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","other","account.data_account_type_cash","base.main_company" +"account_demo_101010300","1.01.01.03.00","Recursos no Exterior Decorrentes de Exportação","account.cas","Contas que registram movimentação de recursos em instituições financeiras no exterior, nos termos do art. 1o. da Lei no 11.371/2006.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010400","1.01.01.04.00","Contas Bancárias – Subvenções","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das subvenções, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010500","1.01.01.05.00","Contas Bancárias – Doações","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das doações, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010600","1.01.01.06.00","Contas Bancárias – Outros Recursos Sujeitos a Restrições","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de outros recursos sujeitos a restrições, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010701","1.01.01.07.01","Valores Mobiliários - Mercado de Capitais Interno","account.cas","Contas que registram as aplicações no mercado de capitais do Brasil, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010702","1.01.01.07.02","Valores Mobiliários - Mercado de Capitais Externo","account.cas","Contas que registram as aplicações no mercado de capitais do exterior, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010800","1.01.01.08.00","Valores Mobiliários – Aplicações de Subvenções ","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de subvenções.","other","account.data_account_type_asset","base.main_company" +"account_demo_101010900","1.01.01.09.00","Valores Mobiliários – Aplicações de Doações","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de doações.","other","account.data_account_type_asset","base.main_company" +"account_demo_101011000","1.01.01.10.00","Valores Mobiliários – Aplicações de Outros Recursos Sujeitos a Restrições","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de outros recursos sujeitos a restrições.","other","account.data_account_type_asset","base.main_company" +"account_demo_101011100","1.01.01.11.00","Outras","account.cas"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10103","1.01.03","ESTOQUES","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101030101","1.01.03.01.01","Mercadorias para Revenda","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de mercadorias para revenda, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account.stk","1.01.03.01.02","Insumos (materiais diretos)","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de matérias primas e materiais diretos, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030103","1.01.03.01.03","Produtos em Elaboração","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos em elaboração, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030104","1.01.03.01.04","Produtos Acabados","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos acabados, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030105","1.01.03.01.05","Serviços em andamento","account_demo_10103","Contas que registram o valor do saldo das contas de serviços em andamento, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" +"account_demo_101030106","1.01.03.01.06","Insumos Agropecuários","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de insumos agropecuários, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030107","1.01.03.01.07","Produtos Agropecuários em Formação","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de produtos agropecuários em formação, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030108","1.01.03.01.08","Produtos Agropecuários Acabados","account_demo_10103","Contas que registra, nas empresas com atividade rural, o valor do saldo das contas de estoques de produtos agropecuários acabados, na data de apuração do resultado.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030200","1.01.03.02.00","Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar o estoque de imóveis destinados à venda existente na data da apuração dos resultados. Atenção: as construções em andamento de imóveis destinados à venda devem ser incluídas na conta Construções em Andamento de Imóveis Destinados à Venda","other","account.data_account_type_asset","base.main_company" +"account_demo_101030201","1.01.03.02.01","Construções em Andamento de Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar os imóveis em construção para futura comercialização","other","account.data_account_type_asset","base.main_company" +"account_demo_101030300","1.01.03.03.00","Estoques Destinados à Doação","account_demo_10103","Contas que registram, nas instituições imunes ou isentas, estoques destinados à doação.","other","account.data_account_type_asset","base.main_company" +"account_demo_101030400","1.01.03.04.00","Outras","account_demo_10103"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10105","1.01.05","CRÉDITOS","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101050100","1.01.05.01.00","Adiantamentos a Fornecedores ","account_demo_10105","Contas que registram aos adiantamentos feitos a fornecedores de matérias-primas ou mercadorias para revenda.","other","account.data_account_type_asset","base.main_company" +"account.a_recv","1.01.05.02.00","Clientes","account_demo_10105","Contas que registram as contas a receber com vencimento até o final do ano-calendário subseqüente.","receivable","account.data_account_type_receivable","base.main_company" +"account_demo_101050300","1.01.05.03.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050400","1.01.05.04.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM nº 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050501","1.01.05.05.01","Imposto de Renda a Recuperar","account_demo_10105","Contas correspondentes ao Imposto de REnda a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account.ova","1.01.05.05.02","IPI a Recuperar","account_demo_10105","Contas correspondentes ao IPI a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050503","1.01.05.05.03","PIS e COFINS a Recuperar","account_demo_10105","Contas correspondentes ao PIS e à Cofins a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050504","1.01.05.05.04","CSLL a Recuperar","account_demo_10105","Contas correspondentes à CSLL a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050505","1.01.05.05.05","ICMS e Contribuições a Recuperar","account_demo_10105","Contas correspondentes ao ICMS a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050506","1.01.05.05.06","Tributos Municipais a Recuperar","account_demo_10105","Contas correspondentes a tributos municipais a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050590","1.01.05.05.90","Outros Impostos e Contribuições a Recuperar","account_demo_10105","Contas correspondentes a outros impostos a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050600","1.01.05.06.00","Créditos por Contribuições e Doações","account_demo_10105","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações.","other","account.data_account_type_asset","base.main_company" +"account_demo_101050700","1.01.05.07.00","Outras","account_demo_10105"," ","other","account.data_account_type_asset","base.main_company" +"account_demo_10107","1.01.07","DESPESAS DO EXERCÍCIO SEGUINTE","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101070100","1.01.07.01.00","Despesas do Exercício Seguinte","account_demo_10107","Contas correspondentes a pagamentos antecipados, cujos benefícios ou prestação de serviços à pessoa jurídica ocorrerão durante o exercício seguinte. São valores relativos a despesas que efetivamente pertencem ao exercício seguinte.","other","account.data_account_type_asset","base.main_company" +"account_demo_101070200","1.01.07.02.00","Outras Contas","account_demo_10107","Incluir, dentre outras, a soma das contas/subcontas do Circulante que registram, dentre outras, a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_10109","1.01.09","CONTAS RETIFICADORAS","account.nca"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_101090101","1.01.09.01.01","(-) Duplicatas Descontadas","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" +"account_demo_101090103","1.01.09.01.03","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090105","1.01.09.01.05","(-) Provisão para Ajuste do Estoque ao Valor de Mercado","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor de mercado que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090107","1.01.09.01.07","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_101090190","1.01.09.01.90","(-) Outras Contas Retificadoras","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account.fas",1.07,"NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" +"account_demo_10700","1.07.00","REALIZÁVEL A LONGO PRAZO ","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107000100","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" +"account_demo_107000200","1.07.00.02.00","Créditos com Pessoas Ligadas (Físicas/Jurídicas)","account_demo_10700","Contas correspondentes a vendas, adiantamentos ou empréstimos a sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000300","1.07.00.03.00","Valores Mobiliários","account_demo_10700","Contas correspondentes às aplicações em títulos com vencimento posterior ao exercício seguinte, e investimentos em outras sociedades que não tenham caráter permanente, inclusive os feitos com incentivos fiscais.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000400","1.07.00.04.00","Depósitos Judiciais","account_demo_10700","Contas que registram aos depósitos judiciais efetuados, a qualquer título, pendentes de decisão.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000500","1.07.00.05.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000600","1.07.00.06.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000700","1.07.00.07.00","Créditos por Contribuições e Doações","account_demo_10700","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações com vencimento após final do exercício subseqüente.","other","account.data_account_type_asset","base.main_company" +"account_demo_107000800","1.07.00.08.00","Outras Contas","account_demo_10700","Contas que registram, entre outras, a soma das contas/subcontas do Realizável a Longo Prazo que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009000","1.07.00.90.00","(-) Duplicatas Descontadas","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" +"account_demo_107009300","1.07.00.93.00","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009500","1.07.00.95.00","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" +"account_demo_107009700","1.07.00.97.00","(-) Outras Contas Retificadoras","account_demo_10700","Contas que registram parcelas a serem subtraídas do Realizável a Longo Prazo que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_10701","1.07.01","INVESTIMENTOS","account.fas",,"view","account.data_account_type_asset","base.main_company" +"account_demo_107010100","1.07.01.01.00","Participações Permanentes em Coligadas ou Controladas","account_demo_10701","Contas que registram investimentos permanentes, na forma de participação em outras sociedades coligadas e/ou controladas, ainda que se trate de investimento não relevante.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010200","1.07.01.02.00","Investimentos Decorrentes de Incentivos Fiscais","account_demo_10701","Contas que registram os investimentos decorrentes de incentivos fiscais representados por ações novas da Embraer ou de empresas nacionais de informática ou por participação direta decorrente da troca do CI – Certificado de Investimento por ações pertencentes às carteiras de Fundos (Finor, Finam e Fiset). Inclui-se a aquisição de quotas representativas de direitos de comercialização sobre produção de obras audiovisuais cinematográficas brasileiras de produção independente, com projetos previamente aprovados pelo Ministério da Cultura, realizada no mercado de capitais, em ativos previstos em lei e autorizados pela Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_asset","base.main_company" +"account_demo_107010300","1.07.01.03.00","Outros Investimentos","account_demo_10701","Contas correspondentes aos direitos de qualquer natureza que não se destinem à manutenção da atividade da companhia ou da empresa e que não se classifiquem no ativo circulante ou realizável a longo prazo, tais como: o imóvel não utilizado na exploração ou na manutenção das atividades da empresa e que não se destine à revenda, e os recursos florestais destinados à proteção do solo ou à preservação da natureza, entre outros.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010400","1.07.01.04.00","Ágios em Investimentos","account_demo_10701","Contas correspondentes ao ágio por diferença de valor de mercado dos bens, por valor de rentabilidade futura, por fundo de comércio, intangíveis, ou outras razões econômicas.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010500","1.07.01.05.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010600","1.07.01.06.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107010700","1.07.01.07.00","(-) Deságios e Provisão para Perdas Prováveis em Investimentos","account_demo_10701","Contas que registram: +a) o deságio por diferença de valor de mercado dos bens, por valor de rentabilidade futura e por fundo de comércio, intangíveis, ou outras razões econômicas; +b) o valor correspondente à provisão para perdas em investimentos registrados pelo método de custo e à provisão para perdas em investimentos avaliados pelo método da equivalência patrimonial, sendo que, neste último caso, deve ser informado somente o valor das perdas efetivas ou potenciais já previstas, mas não reconhecidas contabilmente pela coligada ou controlada.","other","account.data_account_type_asset","base.main_company" +"account_demo_107019000","1.07.01.90.00","Outras Contas","account_demo_10701","Contas que registram bens e direitos classificáveis em Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_107019700","1.07.01.97.00","(-) Outras Contas Retificadoras","account_demo_10701","Contas que registram parcelas a serem subtraídas de Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" +"account_demo_10704","1.07.04","IMOBILIZADO","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107040100","1.07.04.01.00","Terrenos","account_demo_10704","Contas que registram os terrenos de propriedade da pessoa jurídica utilizados nas operações, ou seja, onde se localizam a fábrica, os depósitos, os escritórios, as filiais, as lojas, etc., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: o valor do terreno onde está em construção uma nova unidade que ainda não esteja em operação também deve ser informado nesta conta.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040200","1.07.04.02.00","Edifícios e Construções","account_demo_10704","Contas que registram os edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: As construções em andamento devem ser informadas na conta Construções em Andamento.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040201","1.07.04.02.01"," Construções em Andamento","account_demo_10704","Contas que registram as construções em andamento de edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040300","1.07.04.03.00","Equipamentos, Máquinas e Instalações Industriais","account_demo_10704","Contas que registram os equipamentos, máquinas e instalações industriais utilizados no processo de produção da pessoa jurídica, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040400","1.07.04.04.00","Veículos","account_demo_10704","Contas que registram os veículos de propriedade da pessoa jurídica. inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens +Atenção: Os veículos de uso direto na produção, como empilhadeiras e similares, devem ser informados na conta Equipamentos, Máquinas e Instalações Industriais.","other","account.data_account_type_asset","base.main_company" +"account_demo_107040401","1.07.04.04.01","Embarcações","account_demo_10704","Contas que registram as embarcações de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040402","1.07.04.04.02","Aeronaves","account_demo_10704","Contas que registram as aeronaves de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040500","1.07.04.05.00","Móveis, Utensílios e Instalações Comerciais","account_demo_10704","Contas que registram os móveis, utensílios e instalações comerciais., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040600","1.07.04.06.00","Recursos Minerais","account_demo_10704","Contas que registram os direitos de exploração de jazidas de minério, de pedras preciosas, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040700","1.07.04.07.00","Florestamento e Reflorestamento","account_demo_10704","Contas que registram os recursos florestais destinados à exploração dos respectivos frutos e ao corte para comercialização, consumo ou industrialização, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107040800","1.07.04.08.00","Direitos Contratuais de Exploração de Florestas","account_demo_10704","Contas que registram os direitos contratuais de exploração de florestas com prazo de exploração superior a dois anos., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account.xfa","1.07.04.09.00","Outras Imobilizações","account_demo_10704","Contas que registram outras imobilizações, tais como: benfeitorias em propriedades arrendadas que se incorporam ao imóvel arrendado e revertem ao proprietário do imóvel ao final da locação, adiantamentos para inversões fixas, reprodutores, matrizes e as culturas permanentes da atividade rural, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" +"account_demo_107041000","1.07.04.10.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107041100","1.07.04.11.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária especial na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107041200","1.07.04.12.00","(-) Depreciações, Amortizações e Quotas de Exaustão","account_demo_10704","Contas que registram as depreciações, amortizações e quotas de exaustão das contas do imobilizado.","other","account.data_account_type_asset","base.main_company" +"account_demo_107049000","1.07.04.90.00","(-) Outras Contas Redutoras do Imobilizado","account_demo_10704","Outras contas redutoras do Imobilizado, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" +"account_demo_10705","1.07.05","INTANGÍVEL","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107050100","1.07.05.01.00","Concessões","account_demo_10705","Contas que registram os custos com aquisição de concessões","other","account.data_account_type_asset","base.main_company" +"account_demo_107050300","1.07.05.03.00","Marcas e Patentes","account_demo_10705","Contas que registram os custos com aquisição de marcas e patentes","other","account.data_account_type_asset","base.main_company" +"account_demo_107050500","1.07.05.05.00","Direitos Autorais","account_demo_10705","Contas que registram os custos com aquisição de direitos autorais","other","account.data_account_type_asset","base.main_company" +"account_demo_107050700","1.07.05.07.00","Fundo de Comércio","account_demo_10705","Contas que registram os custos com aquisição de fundos de comércio","other","account.data_account_type_asset","base.main_company" +"account_demo_107050900","1.07.05.09.00","Software ou Programas de Computador","account_demo_10705","Contas que registram os custos com aquisição/desenvolvimento de programas de computador","other","account.data_account_type_asset","base.main_company" +"account_demo_107051100","1.07.05.11.00","Franquias","account_demo_10705","Contas que registram os custos com aquisição de franquias","other","account.data_account_type_asset","base.main_company" +"account_demo_107051300","1.07.05.13.00","Desenvolvimento de Produtos","account_demo_10705","Contas que registram os custos com o desenvolvimento de novos produtos","other","account.data_account_type_asset","base.main_company" +"account_demo_107051500","1.07.05.15.00","Outras","account_demo_10705","Contas que registram os custos com aquisição de outros itens classificáveis no intangível","other","account.data_account_type_asset","base.main_company" +"account_demo_107059000","1.07.05.90.00","(-) Amortização do Intangível","account_demo_10705","Contas correspondentes à amortização das contas do ativo intangível","other","account.data_account_type_asset","base.main_company" +"account_demo_107059700","1.07.05.97.00","(-) Outras Contas Redutoras do Intangível","account_demo_10705","Outras contas redutoras o intangível, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" +"account_demo_10707","1.07.07","DIFERIDO","account.fas"," ","view","account.data_account_type_asset","base.main_company" +"account_demo_107070100","1.07.07.01.00","Despesas Pré-Operacionais ou Pré-Industriais","account_demo_10707","Contas que registram os gastos de organização e administração, encargos financeiros líquidos, estudos, projetos e detalhamentos, juros a acionista na fase de implantação e gastos preliminares de operação. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070200","1.07.07.02.00","Despesas com Pesquisas Científicas ou Tecnológicas","account_demo_10707","Contas que registram os gastos com pesquisa científica ou tecnológica. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070300","1.07.07.03.00","Demais Aplicações em Despesas Amortizáveis","account_demo_10707","Contas que registram os gastos com pesquisas e desenvolvimento de produtos, com a implantação de sistemas e métodos e com reorganização. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" +"account_demo_107070400","1.07.07.04.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107070500","1.07.07.05.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" +"account_demo_107070600","1.07.07.06.00","(-) Amortização do Diferido","account_demo_10707","Contas correspondentes à amortização das contas do ativo diferido.","other","account.data_account_type_asset","base.main_company" +"account.bal",2,"PASSIVO","account.chart0"," ","view","l10n_br.passivo","base.main_company" +"account.cli",2.01,"CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account.liabilities_view","2.01.01","OBRIGAÇÕES DE CURTO PRAZO","account.cli"," ","view","l10n_br.passivo","base.main_company" +"account.a_pay","2.01.01.01.00","Fornecedores","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" +"account_demo_201010101","2.01.01.01.01","Adiantamentos de Clientes","account.liabilities_view","Contas que registram o valor correspondente a adiantamentos de clientes.","other","l10n_br.passivo","base.main_company" +"account_demo_201010201","2.01.01.02.01","Financiamentos a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Curto Prazo – Outros. ","other","l10n_br.passivo","base.main_company" +"account_demo_201010202","2.01.01.02.02","Arrendamento Mercantil (Financeiro) a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram as obrigações de curto prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" +"account_demo_201010203","2.01.01.02.03","Financiamentos a Curto Prazo - Outros","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta .","other","l10n_br.passivo","base.main_company" +"account_demo_201010204","2.01.01.02.04","Financiamentos a Curto Prazo - Exterior","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Curto Prazo – Exterior","other","l10n_br.passivo","base.main_company" +"account_demo_201010205","2.01.01.02.05","Arrendamento Mercantil (Financeiro) a Curto Prazo - Exterior","account.liabilities_view","Contas que registram as obrigações das pessoas jurídicas relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" +"account.iva","2.01.01.03.01","IPI a Recolher","account.liabilities_view","Contas correspondentes ao IPI a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010302","2.01.01.03.02","ICMS e Contribuições a Recolher","account.liabilities_view","Contas correspondentes ao ICMS a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010303","2.01.01.03.03","Tributos Municipais a Recolher","account.liabilities_view","Contas correspondentes a tributos municipais a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" +"account_demo_201010400","2.01.01.04.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor do FGTS a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010500","2.01.01.05.00","PIS e COFINS a Recolher","account.liabilities_view","Contas que registram o valor do PIS e da COFINS a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010600","2.01.01.06.00","Contribuições Previdenciárias a Recolher","account.liabilities_view","Contas que registram o valor das Contribuições Previdenciárias a recolher","other","l10n_br.passivo","base.main_company" +"account_demo_201010690","2.01.01.06.90","Outros tributos a recolher","account.liabilities_view","Contas correspondentes a tributos a recolher não classificáveis em contas específicas.","other","l10n_br.passivo","base.main_company" +"account_demo_201010700","2.01.01.07.00","Salários a Pagar","account.liabilities_view","Contas que registram o valor correspondente aos salários, ordenados, horas extras, adicionais e prêmios a serem pagos no exercício subseqüente.","other","l10n_br.passivo","base.main_company" +"account_demo_201010800","2.01.01.08.00","Dividendos Propostos ou Lucros Creditados","account.liabilities_view","Contas correspondentes aos dividendos aprovados pela Assembléia, creditados aos acionistas ou propostos pela administração da pessoa jurídica na data do balanço, como parte da destinação proposta para os lucros.","other","l10n_br.passivo","base.main_company" +"account_demo_201010900","2.01.01.09.00","Provisão para a Contribuição Social sobre o Lucro Líquido","account.liabilities_view","Conta correspondente à provisão para a contribuição social sobre o lucro líquido a pagar.","other","l10n_br.passivo","base.main_company" +"account_demo_201011000","2.01.01.10.00","Provisão para o Imposto de Renda","account.liabilities_view","Conta correspondente ao saldo a pagar da provisão para o imposto de renda.","other","l10n_br.passivo","base.main_company" +"account_demo_201011100","2.01.01.11.00","Débitos Fiscais CSLL – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_201011200","2.01.01.12.00","Débitos Fiscais IRPJ – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_201011210","2.01.01.12.10","Provisões de Natureza Fiscal","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza fiscal.","other","l10n_br.passivo","base.main_company" +"account_demo_201011220","2.01.01.12.20","Provisões de Natureza Trabalhista","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza trabalhista.","other","l10n_br.passivo","base.main_company" +"account_demo_201011230","2.01.01.12.30","Provisões de Natureza Cível","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza cível.","other","l10n_br.passivo","base.main_company" +"account_demo_201011240","2.01.01.12.40","Doações e Subvenções para Investimentos","account.liabilities_view","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_201011300","2.01.01.13.00","Outras Contas","account.liabilities_view","Contas que registram comissões a pagar ou provisionadas de retenções contratuais, de obrigações decorrentes do fornecimento ou utilização de serviços (energia elétrica, água, telefone, propaganda, honorários profissionais de terceiros, aluguéis) e outras contas não citadas nas contas anteriores. Atenção: também são incluídas, nesta conta, as provisões para registro de obrigações, tais como as provisões para: férias, gratificações a empregados (inclusive encargos sociais a pagar e FGTS a recolher sobre tais provisões), e outras de natureza semelhante, ainda que não dedutíveis.","other","l10n_br.passivo","base.main_company" +"account_demo_201019000","2.01.01.90.00","(-) Contas Retificadoras","account.liabilities_view","Contas correspondentes às contas retificadoras do passivo circulante.","other","l10n_br.passivo","base.main_company" +"account_demo_203",2.03,"NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" +"account_demo_20301","2.03.01","OBRIGAÇÕES A LONGO PRAZO","account_demo_203"," ","view","l10n_br.passivo","base.main_company" +"account_demo_203010100","2.03.01.01.00","Fornecedores","account_demo_20301","Contas que registram valores a pagar relativos à compra de matérias-primas, bens, insumos e mercadorias e o valor correspondente a adiantamentos de clientes, com prazo de pagamento posterior ao exercício seguinte à data do balanço.","payable","account.data_account_type_payable","base.main_company" +"account_demo_203010201","2.03.01.02.01","Financiamentos a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Longo Prazo – Brasil – Outros ","other","l10n_br.passivo","base.main_company" +"account_demo_203010202","2.03.01.02.02","Arrendamento Mercantil (Financeiro) a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" +"account_demo_203010203","2.03.01.02.03","Financiamentos a Longo Prazo – Brasil - Outros","account_demo_20301","Contas que registram os credores por financiamentos de longo prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta.","other","l10n_br.passivo","base.main_company" +"account_demo_203010204","2.03.01.02.04","Financiamentos a Longo Prazo – Exterior","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior ","other","l10n_br.passivo","base.main_company" +"account_demo_203010205","2.03.01.02.05","Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" +"account_demo_203010300","2.03.01.03.00","Empréstimos de Sócios/Acionistas Não Administradores","account_demo_20301","Contas relativas a empréstimos concedidos à pessoa jurídica por sócios e acionistas não administradores.","other","l10n_br.passivo","base.main_company" +"account_demo_203010400","2.03.01.04.00","Créditos de Pessoas Ligadas (Físicas/Jurídicas)","account_demo_20301","Contas que registram compras, adiantamentos ou empréstimos de sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","l10n_br.passivo","base.main_company" +"account_demo_203010500","2.03.01.05.00","Provisão para o Imposto de Renda sobre Lucros Diferidos","account_demo_20301","Conta que registra o imposto de renda sobre lucros diferidos, tais como: lucro inflacionário não realizado, contratos a longo prazo relativos a fornecimento de bens e de construção por empreitada para o poder público e suas empresas, ganho de capital oriundo de desapropriação, ganho de capital por venda de bens do ativo permanente com recebimento parcelado a longo prazo e depreciação acelerada.","other","l10n_br.passivo","base.main_company" +"account_demo_203010600","2.03.01.06.00","Débitos Fiscais CSLL - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM nº 273, de 1998","other","l10n_br.passivo","base.main_company" +"account_demo_203010700","2.03.01.07.00","Débitos Fiscais IRPJ - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","l10n_br.passivo","base.main_company" +"account_demo_203010710","2.03.01.07.10","Outras Provisões de Natureza Fiscal","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza fiscal, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010720","2.03.01.07.20","Outras Provisões de Natureza Trabalhista","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza trabalhista, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010730","2.03.01.07.30","Outras Provisões de Natureza Cível","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza cível, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010740","2.03.01.07.40","Doações e Subvenções para Investimentos","account_demo_20301","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" +"account_demo_203010800","2.03.01.08.00","Outras Contas","account_demo_20301","Contas que registram obrigações, não especificadas nos itens precedentes, cujo vencimento ocorrerá em período posterior ao exercício seguinte. Atenção: não incluir, nesta conta, o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária, e os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras. Esses valores devem ser informados em Resultados de Exercícios Futuros.","other","l10n_br.passivo","base.main_company" +"account_demo_203019000","2.03.01.90.00","(-) Contas Retificadoras","account_demo_20301","Contas retificadoras do Exigível de Longo Prazo","other","l10n_br.passivo","base.main_company" +"account_demo_20303","2.03.03","RECEITAS DIFERIDAS","account_demo_203",,"view","l10n_br.passivo","base.main_company" +"account_demo_203030100","2.03.03.01.00","Receitas Diferidas","account_demo_20303","Saldo remanescente da conta Resultado de Exercícios Futuros onde a pessoa jurídica que explore as atividades de compra e venda, loteamento, incorporação e construção de imóveis indicava o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária. Também se consideravam como receitas de exercícios futuros os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras.","other","l10n_br.passivo","base.main_company" +"account_demo_203030300","2.03.03.03.00","(-) Custos Correspondentes às Receitas Diferidas","account_demo_20303","Contas correspondentes aos custos e despesas de exercícios futuros correspondentes às receitas indicadas na conta precedente.","other","l10n_br.passivo","base.main_company" +"account_demo_207",2.07,"PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_20701","2.07.01","CAPITAL REALIZADO","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207010100","2.07.01.01.00","Capital Subscrito de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no País.","other","l10n_br.passivo","base.main_company" +"account_demo_207010200","2.07.01.02.00","(-) Capital a Integralizar de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no País que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" +"account_demo_207010300","2.07.01.03.00","Capital Subscrito de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no exterior.","other","l10n_br.passivo","base.main_company" +"account_demo_207010400","2.07.01.04.00","(-) Capital a Integralizar de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no exterior que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" +"account_demo_20704","2.07.04","RESERVAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207040100","2.07.04.01.00","Reservas de Capital","account_demo_20704","Contas correspondentes às reservas constituídas pela correção monetária do capital, por incentivos fiscais, por ágio na emissão de ações, por alienação de partes beneficiárias.","other","l10n_br.passivo","base.main_company" +"account_demo_207040200","2.07.04.02.00","Reservas de Reavaliação","account_demo_20704","Contas correspondentes aos saldos dos reservas de reavaliação ainda não realizadas, decorrentes de reavaliação de ativos próprios e de ativos de coligadas e controladas, estes avaliados pelo método da equivalência patrimonial.","other","l10n_br.passivo","base.main_company" +"account_demo_207040300","2.07.04.03.00","Reservas de Lucros","account_demo_20704","Contas correspondentes às reservas constituídas pela destinação de lucros da empresa, tais como: reserva legal, reservas estatutárias, reserva para contingências, reserva de lucros a realizar, reserva de lucros para expansão, reserva especial para dividendo obrigatório não distribuído e reserva de exaustão incentivada de recursos minerais.","other","l10n_br.passivo","base.main_company" +"account_demo_207040301","2.07.04.03.01","Reservas de Lucros - Doações e Subvenções para Investimentos","account_demo_20704","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento","other","l10n_br.passivo","base.main_company" +"account_demo_207040302","2.07.04.03.02","Reservas de Lucros - Prêmio na Emissão de Debêntures","account_demo_20704","Contas que registram, a partir de 01.01.2008, os prêmios na emissão de debêntures","other","l10n_br.passivo","base.main_company" +"account_demo_207040400","2.07.04.04.00","Reserva para Aumento de Capital (Lei no 9.249/1995, art. 9o, § 9o)","account_demo_20704","Conta correspondente à reserva constituída em 1996 com o montante dos juros sobre o capital próprio deduzidos como despesa financeira, mas mantidos no patrimônio da empresa, caso esta tenha optado pela faculdade prevista no § 9o do art. 9o da Lei no 9.249, de 1995.","other","l10n_br.passivo","base.main_company" +"account_demo_207040500","2.07.04.05.00","Outras Reservas","account_demo_20704","Contas correspondentes às demais reservas não consignadas nos itens anteriores, tais como o saldo devedor ou credor da conta de correção monetária correspondente à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal e o saldo da correção especial das contas do ativo permanente efetuada com base nos arts. 33 e 44 do Decreto no 332, de 1991.","other","l10n_br.passivo","base.main_company" +"account_demo_20705","2.07.05","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_demo_207",,"view","l10n_br.passivo","base.main_company" +"account_demo_207050100","2.07.05.01.00","Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) +","other","l10n_br.passivo","base.main_company" +"account_demo_207050101","2.07.05.01.01","(-) Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) +","other","l10n_br.passivo","base.main_company" +"account_demo_20707","2.07.07","OUTRAS CONTAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207070100","2.07.07.01.00","Lucros Acumulados e/ou Saldo à Disposição da Assembléia","account_demo_20707","Contas correspondentes aos lucros acumulados ou do saldo à disposição da assembléia.","other","l10n_br.passivo","base.main_company" +"account.rsa","2.07.07.02.00","(-) Prejuízos Acumulados","account_demo_20707","Contas correspondentes aos prejuízos acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_207070300","2.07.07.03.00","(-) Ações em Tesouraria","account_demo_20707","Contas que registrem as aquisições de ações da própria empresa.","other","l10n_br.passivo","base.main_company" +"account_demo_207070400","2.07.07.04.00","Outras","account_demo_20707","Outras contas classificáveis no patrimônio líquido que não tenham correspondência nas contas Lucros Acumulados e/ou Saldo à Disposição da Assembléia, Prejuízos Acumulados, Ações em Tesouraria.","other","l10n_br.passivo","base.main_company" +"account_demo_208",2.08,"PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_20801","2.08.01","FUNDO PATRIMONIAL","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208010100","2.08.01.01.00","Fundo Patrimonial","account_demo_20801","Contas que registrem, nas instituições imunes ou isentas, o Fundo Patrimonial.","other","l10n_br.passivo","base.main_company" +"account_demo_20804","2.08.04","RESERVAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208040100","2.08.04.01.00","Reservas Patrimoniais","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas patrimoniais.","other","l10n_br.passivo","base.main_company" +"account_demo_208040200","2.08.04.02.00","Reservas Estatutárias","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas estatutárias.","other","l10n_br.passivo","base.main_company" +"account_demo_20807","2.08.07","OUTRAS CONTAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208070100","2.08.07.01.00","Superávits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos superávits acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_208070200","2.08.07.02.00","Déficits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos déficits acumulados.","other","l10n_br.passivo","base.main_company" +"account_demo_3",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301",3.01,"RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101","3.01.01.01","RECEITA LIQUIDA","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010101","3.01.01.01.01","RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101010101","3.01.01.01.01.01.01","Receita de Exportação Direta de Mercadorias e Produtos","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de mercadorias e produtos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010102","3.01.01.01.01.01.02","Receita de Vendas de Mercadorias e Produtos a Comercial Exportadora com Fim Específico de Exportação","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da venda de mercadorias e produtos a empresa comercial exportadora, com fim específico de exportação.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010103","3.01.01.01.01.01.03","Receita de Exportação de Serviços","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de serviços","other","account.data_account_type_view","base.main_company" +"account.a_sale","3.01.01.01.01.02.00","Receita da Venda no Mercado Interno de Produtos de Fabricação Própria","account_demo_301010101","Contas que registram a receita auferida no mercado interno correspondente à venda de produtos de fabricação própria e as receitas auferidas na industrialização por encomenda ou por conta e ordem de terceiros. (Não se incluem o valor correspondente ao Imposto sobre Produtos Industrializados (IPI) cobrado destacadamente do comprador ou contratante, uma vez que o vendedor é mero depositário e este imposto não integra o preço de venda da mercadoria, e, também, o valor correspondente ao ICMS cobrado na condição de substituto.)","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010300","3.01.01.01.01.03.00","Receita da Revenda de Mercadorias no Mercado Interno","account_demo_301010101","Contas que registram receita auferida no mercado interno, correspondente à revenda de mercadorias e o resultado auferido nas operações de conta alheia.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010400","3.01.01.01.01.04.00","Receita da Prestação de Serviços – Mercado Interno","account_demo_301010101","Contas que registram a receita decorrente dos serviços prestados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010500","3.01.01.01.01.05.00","Receita das Unidades Imobiliárias Vendidas","account_demo_301010101","As pessoas jurídicas que exploram atividades imobiliárias devem indicar, nestas contas, o montante das receitas das unidades imobiliárias vendidas, apropriadas ao resultado, inclusive as receitas transferidas de Resultados de Exercícios Futuros e os custos recuperados de períodos de apuração anteriores.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010600","3.01.01.01.01.06.00","Receita de Locação de Bens Móveis e Imóveis","account_demo_301010101","Contas que registram a receita decorrente da locação de bens móveis e imóveis","other","account.data_account_type_view","base.main_company" +"account_demo_3010101010700","3.01.01.01.01.07.00","Outras","account_demo_301010101","Outras contas que registrem valores componentes da receita bruta não especificadas nos itens anteriores.","other","account.data_account_type_view","base.main_company" +"account_demo_301010103","3.01.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010101030100","3.01.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_301010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes das contas integrantes do grupo RECEITA BRUTA","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030200","3.01.01.01.03.02.00","(-) ICMS","account_demo_301010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes das contas integrantes do grupo RECEITA BRUTA. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030300","3.01.01.01.03.03.00","(-) Cofins","account_demo_301010103","vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030400","3.01.01.01.03.04.00","(-) PIS/Pasep","account_demo_301010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030500","3.01.01.01.03.05.00","(-) ISS","account_demo_301010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços,conforme legislação específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010101030600","3.01.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_301010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que tratam as contas integrantes do grupo RECEITA BRUTA, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010103","3.01.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010301","3.01.01.03.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA VENDIDOS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103010000","3.01.01.03.01.00.00","Custo dos Produtos de Fabricação Própria Vendidos","account_demo_301010301"," ","other","account.data_account_type_view","base.main_company" +"account_demo_301010303","3.01.01.03.03","CUSTO DAS MERCADORIAS REVENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103030000","3.01.01.03.03.00.00","Custo das Mercadorias Revendidas","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" +"account_demo_3010103050000","3.01.01.03.05.00.00","Custo dos Serviços Vendidos","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" +"account_demo_301010307","3.01.01.03.07","CUSTO DAS UNIDADES IMOBILIÁRIAS VENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010103070100","3.01.01.03.07.01.00","Custo das Unidades Imobiliárias Vendidas","account_demo_301010307","Contas que registram, na empresa que tiver por objeto a compra de imóveis para venda ou que promover empreendimento de desmembramento ou loteamento de terrenos, incorporação imobiliária ou construção de prédio destinado à venda, os valores dos custos correspondentes às unidades imobiliárias vendidas apropriados ao resultado do período de apuração. A recuperação de custos do próprio período é computada no montante a ser indicado nesta conta. Os custos recuperados correspondentes a períodos de apuração anteriores devem ser indicados na conta Receita das Unidades Imobiliárias Vendidas.","other","account.data_account_type_view","base.main_company" +"account_demo_301010309","3.01.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010105","3.01.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010501","3.01.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3010105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010105010100","3.01.01.05.01.01.00","Variações Cambiais Ativas","account_demo_301010501","Contas que registram os ganhos apurados em razão de variações ativas Decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. +Atenção: +1) As variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei nº 9.718, art. 9º c/c art. 17); +2) Nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF nº 84/79, de 20 de dezembro de 1979, da IN SRF nº 23/83, de 25 de março de 1983, e da IN SRF nº 67/88, de 21 de abril de 1988 (IN SRF nº 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010200","3.01.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010501","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei nº 9.532, de 1997, art. 28, alterado pela MP nº 1.636, de 1998, art. 2º, e reedições).Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) Os ganhos auferidos em operações day-trade devem ser informados em conta específica. +2) O valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. +3) São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010300","3.01.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_301010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010400","3.01.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_301010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010500","3.01.01.05.01.05.00","Outras Receitas Financeiras","account_demo_301010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas nas contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência.Atenção: 1) As variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; 2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010600","3.01.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010700","3.01.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_301010501","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas. Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. + +c) as bonificações recebidas. Atenção: 1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei nº 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3º da Lei nº 8.849, de 1994, e art. 3º da Lei nº 9.064, de 1995). 2) o caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei nº 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +d) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +e) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências. Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto nº 3.000, de 1999, e no art. 74 da Medida Provisória nº 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010710","3.01.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010800","3.01.01.05.01.08.00","Resultados Positivos em SCP","account_demo_301010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para o registro: +a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; +b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. +Atenção: os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto nº 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105010900","3.01.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_301010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4º trimestre. Atenção: Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais..","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011000","3.01.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_301010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011010","3.01.01.05.01.10.10","Prêmios Recebidos na Emissão de Debêntures","account_demo_301010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011020","3.01.01.05.01.10.20","Doações e Subvenções para Investimentos","account_demo_301010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011030","3.01.01.05.01.10.30","Contrapartida dos Ajustes ao Valor Presente","account_demo_301010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011040","3.01.01.05.01.10.40","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3010105011100","3.01.01.05.01.11.00","Outras Receitas Operacionais","account_demo_301010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei nº 9.430, de 1996, art. 70, § 3º, II); +e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3º da Lei nº 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107","3.01.01.07","DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010701","3.01.01.07.01","DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","account_demo_3010107"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010107010100","3.01.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_301010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a +administradores, diretores, gerentes e seus assessores (PN Cosit nº 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010201","3.01.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_301010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. +2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010203","3.01.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010205","3.01.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010207","3.01.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010209","3.01.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_301010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; +2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010300","3.01.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010400","3.01.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010401","3.01.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_301010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010402","3.01.01.07.01.04.02","Locação de Mão-de-obra","account_demo_301010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010500","3.01.01.07.01.05.00","Encargos Sociais – Previdência Social","account_demo_301010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes – PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010600","3.01.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_301010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010700","3.01.01.07.01.07.00","Encargos Sociais – Outros","account_demo_301010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010800","3.01.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_301010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107010900","3.01.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei nº 9.249/1995, art.13, § 2º)","account_demo_301010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011000","3.01.01.07.01.10.00","Doações a Entidades Civis","account_demo_301010701","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011100","3.01.01.07.01.11.00","Outras Contribuições e Doações","account_demo_301010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011200","3.01.01.07.01.12.00","Alimentação do Trabalhador","account_demo_301010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011300","3.01.01.07.01.13.00","PIS/Pasep","account_demo_301010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011400","3.01.01.07.01.14.00","Cofins","account_demo_301010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011500","3.01.01.07.01.15.00","CPMF","account_demo_301010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011600","3.01.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_301010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta; +e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; +f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011700","3.01.01.07.01.17.00","Arrendamento Mercantil","account_demo_301010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011800","3.01.01.07.01.18.00","Aluguéis","account_demo_301010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107011900","3.01.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_301010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012001","3.01.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_301010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012002","3.01.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_301010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012100","3.01.01.07.01.21.00","Multas","account_demo_301010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012200","3.01.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_301010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012300","3.01.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_301010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012400","3.01.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_301010701","Contas que registram as despesas com a constituição de provisões para: +a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); +b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012500","3.01.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_301010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012600","3.01.01.07.01.26.00","Demais Provisões","account_demo_301010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012700","3.01.01.07.01.27.00","Gratificações a Administradores","account_demo_301010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012800","3.01.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107012900","3.01.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013000","3.01.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_301010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013100","3.01.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_301010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013200","3.01.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_301010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013301","3.01.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_301010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" +"account_demo_3010107013390","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: +a) contribuição sindical; +b) prêmios de seguro; +c) fretes e carretos que não componham os custos; +d) transporte de empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109","3.01.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301010901","3.01.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3010109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010109010100","3.01.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_301010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. +Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010200","3.01.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010901","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). +Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010300","3.01.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_301010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010400","3.01.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_301010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio liquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP) observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010500","3.01.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_301010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira; +2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010600","3.01.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010700","3.01.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_301010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção:considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010710","3.01.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. +Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010800","3.01.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_301010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109010900","3.01.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_301010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011000","3.01.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_301010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011100","3.01.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3010109011200","3.01.01.09.01.12.00","(-) Contrapartida dos Ajustes de Valor do Imobilizado e Intangível","account_demo_301010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010301","3.01.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_30103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301030101","3.01.03.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_3010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010301010100","3.01.03.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente","account_demo_301030101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação, de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301010110","3.01.03.01.01.01.10","Ganhos de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030101","Contas que registram o ganho de capital resultante de acréscimo, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial. +Atenção: Esse valor deve ser excluído do lucro líquido para determinação do lucro real no período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301010200","3.01.03.01.01.02.00","Outras Receitas Não Operacionais","account_demo_301030101","Contas que registram: +a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; +b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); +c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" +"account_demo_301030103","3.01.03.01.03","DESPESAS NÃO OPERACIONAIS","account_demo_3010301",,"view","account.data_account_type_view","base.main_company" +"account_demo_3010301030100","3.01.03.01.03.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_301030103","Contas que registram o contábil dos bens do ativo permanente baixados no curso do período de apuração cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente. O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301030110","3.01.03.01.03.01.10","(-) Perdas de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030103","Contas que registram a perda de capital resultante de redução, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3010301030200","3.01.03.01.03.02.00","(-) Outras Despesas Não Operacionais","account_demo_301030103","Contas que registram: +a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos. +Atenção: Sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426 do Decreto no 3.000, de 1999. +b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" +"account_demo_30105","3.01.05","PARTICIPAÇÕES","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501","3.01.05.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_301050101","3.01.05.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501010100","3.01.05.01.01.01.00","(-) Participações de Empregados","account_demo_301050101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501010200","3.01.05.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_301050101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501010300","3.01.05.01.01.03.00","(-) Outras Participações de Empregados","account_demo_301050101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" +"account_demo_301050103","3.01.05.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3010501030100","3.01.05.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_301050103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3010501030200","3.01.05.01.03.02.00","(-) Participações de Debêntures ","account_demo_301050103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" +"account_demo_3010501030300","3.01.05.01.03.03.00","(-) Outras ","account_demo_301050103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" +"account_demo_302",3.02,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30201","3.02.01","PROVISÃO PARA CSLL E IRPJ","account_demo_302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3020101","3.02.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_30201"," ","view","account.data_account_type_view","base.main_company" +"account_demo_302010101","3.02.01.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_3020101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3020101010100","3.02.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_302010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão da CSLL sobre os resultados das operações realizadas com os não-associados. +Atenção: para as empresas com atividades mistas, os valores da CSLL relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" +"account_demo_3020101010200","3.02.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_302010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão para o IRPJ sobre os resultados das operações realizadas com os não-associados. +Atenção: para as empresas com atividades mistas, os valores do IRPJ relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" +"account_demo_305",3.05,"RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30501","3.05.01","RESULTADO OPERACIONAL DA ATIVIDADE RURAL ","account_demo_305"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101","3.05.01.01","RECEITA OPERACIONAL LÍQUIDA DA ATIVIDADE RURAL","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010101","3.05.01.01.01","RECEITA BRUTA DA ATIVIDADE RURAL","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101010100","3.05.01.01.01.01.00","Receita da Atividade Rural","account_demo_305010101","Contas que registram a receita da atividade rural. ","other","account.data_account_type_view","base.main_company" +"account_demo_305010103","3.05.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050101030100","3.05.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_305010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes da conta Receita da Atividade Rural.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030200","3.05.01.01.03.02.00","(-) ICMS","account_demo_305010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes da conta Receita da Atividade Rural. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030300","3.05.01.01.03.03.00","(-) Cofins","account_demo_305010103","Contas que registram a Cofins apurada sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). + Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030400","3.05.01.01.03.04.00","(-) PIS/Pasep","account_demo_305010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030500","3.05.01.01.03.05.00","(-) ISS","account_demo_305010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços, conforme legislação específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050101030600","3.05.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_305010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que trata a conta Receita da Atividade Rural, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050103","3.05.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010301","3.05.01.03.01","CUSTO DOS PRODUTOS DA ATIVIDADE RURAL VENDIDOS","account_demo_3050103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050103010000","3.05.01.03.01.00.00","Custo dos Produtos Vendidos da Atividade Rural","account_demo_305010301",,"other","account.data_account_type_view","base.main_company" +"account_demo_305010309","3.05.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_305010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050105","3.05.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010501","3.05.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3050105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050105010100","3.05.01.05.01.01.00","Variações Cambiais Ativas","account_demo_305010501","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. +Atenção: +1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei no 9.718, art. 9o c/c art. 17); +2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de 20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010200","3.05.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010501","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; +2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. +3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010300","3.05.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_305010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. +Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010400","3.05.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_305010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010500","3.05.01.05.01.05.00","Outras Receitas Financeiras","account_demo_305010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. +Atenção: +1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; +2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010600","3.05.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010700","3.05.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_305010501","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +c) as bonificações recebidas; +Atenção: +1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995).; +2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; +Atenção:os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010710","3.05.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010800","3.05.01.05.01.08.00","Resultados Positivos em SCP","account_demo_305010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para a registro: +a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; +b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. +Atenção:os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto no 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105010900","3.05.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_305010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4o trimestre. +Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011000","3.05.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_305010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011100","3.05.01.05.01.11.00","Outras Receitas Operacionais","account_demo_305010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II);e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011200","3.05.01.05.01.12.00","Prêmios Recebidos na Emissão de Debêntures","account_demo_305010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011300","3.05.01.05.01.13.00","Doações e Subvenções para Investimentos","account_demo_305010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011400","3.05.01.05.01.14.00","Contrapartida dos Ajustes ao Valor Presente","account_demo_305010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3050105011500","3.05.01.05.01.15.00","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3050107","3.05.01.07","DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010701","3.05.01.07.01","DESPESAS OPERACIONAIS DA ATIVIDADE RURAL","account_demo_3050107"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050107010100","3.05.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_305010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal ou consultivo. +Atenção: os valores das gratificações aos dirigentes que estejam ligados à área de produção rural devem ser informados na conta Remuneração a Dirigentes da Produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010201","3.05.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_305010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. +2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010203","3.05.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010205","3.05.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010207","3.05.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010209","3.05.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_305010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes +Atenção: +1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; +2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010300","3.05.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010400","3.05.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010401","3.05.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_305010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010402","3.05.01.07.01.04.02","Locação de Mão-de-obra","account_demo_305010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010500","3.05.01.07.01.05.00","Encargos Sociais - Previdência Social","account_demo_305010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010600","3.05.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_305010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010700","3.05.01.07.01.07.00","Encargos Sociais – Outros","account_demo_305010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010800","3.05.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_305010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107010900","3.05.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account_demo_305010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011000","3.05.01.07.01.10.00","Doações a Entidades Civis","account_demo_305010701","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011100","3.05.01.07.01.11.00","Outras Contribuições e Doações","account_demo_305010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011200","3.05.01.07.01.12.00","Alimentação do Trabalhador","account_demo_305010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011300","3.05.01.07.01.13.00","PIS/Pasep","account_demo_305010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011400","3.05.01.07.01.14.00","Cofins","account_demo_305010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011500","3.05.01.07.01.15.00","CPMF","account_demo_305010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011600","3.05.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_305010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta ; +e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; +f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011700","3.05.01.07.01.17.00","Arrendamento Mercantil","account_demo_305010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011800","3.05.01.07.01.18.00","Aluguéis","account_demo_305010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107011900","3.05.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_305010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012001","3.05.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_305010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012002","3.05.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_305010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012100","3.05.01.07.01.21.00","Multas","account_demo_305010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012200","3.05.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_305010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012300","3.05.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_305010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012400","3.05.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_305010701","Contas que registram as despesas com a constituição de provisões para: +a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); +b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012500","3.05.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_305010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012600","3.05.01.07.01.26.00","Demais Provisões","account_demo_305010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012700","3.05.01.07.01.27.00","Gratificações a Administradores","account_demo_305010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012800","3.05.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107012900","3.05.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013000","3.05.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_305010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013100","3.05.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_305010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013200","3.05.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_305010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013301","3.05.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_305010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" +"account_demo_3050107013390","3.05.01.07.01.33.90","Outras Despesas Operacionais","account_demo_305010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: +a) contribuição sindical; +b) prêmios de seguro; +c) fretes e carretos que não componham os custos; +d) transporte de empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109","3.05.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305010901","3.05.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3050109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050109010100","3.05.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_305010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art. 52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização,dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. +Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo +diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010200","3.05.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010901","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). +Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010300","3.05.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_305010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010400","3.05.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_305010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio líquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP), observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010500","3.05.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_305010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira. +2) As variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010600","3.05.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010700","3.05.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_305010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010710","3.05.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. +Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010800","3.05.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_305010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109010900","3.05.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_305010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011000","3.05.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_305010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011100","3.05.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" +"account_demo_3050109011200","3.05.01.09.01.12.00","(-) Contrapartida dos ajustes de valor do imobilizado e intangível","account_demo_305010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" +"account_demo_30503","3.05.03","PARTICIPAÇÕES","account_demo_305"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050301","3.05.03.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30503"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305030101","3.05.03.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3050301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_3050301010100","3.05.03.01.01.01.00","(-) Participações de Empregados","account_demo_305030101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301010200","3.05.03.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_305030101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301010300","3.05.03.01.01.03.00","(-) Outras Participações de Empregados","account_demo_305030101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" +"account_demo_305030103","3.05.03.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3050301",,"view","account.data_account_type_view","base.main_company" +"account_demo_3050301030100","3.05.03.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_305030103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" +"account_demo_3050301030200","3.05.03.01.03.02.00","(-) Participações de Debêntures","account_demo_305030103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" +"account_demo_3050301030500","3.05.03.01.03.05.00","(-) Outras ","account_demo_305030103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" +"account_demo_306",3.06,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account_demo_3",,"view","account.data_account_type_view","base.main_company" +"account_demo_30601","3.06.01","PROVISÃO PARA CSLL E IRPJ","account_demo_306",,"view","account.data_account_type_view","base.main_company" +"account_demo_3060101","3.06.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_30601",,"view","account.data_account_type_view","base.main_company" +"account_demo_306010101","3.06.01.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_3060101",,"view","account.data_account_type_view","base.main_company" +"account_demo_3060101010100","3.06.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_306010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" +"account_demo_3060101010200","3.06.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_306010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" +"account.gpf",4,"SUPERÁVIT/DÉFICIT LÍQUIDO DO PERÍODO","account.chart0","GRUPO DESTINADO EXCLUSIVAMENTE ÀS SOCIEDADES SIMPLES, SEM FINS LUCRATIVOS","view","account.data_account_type_view","base.main_company" +"account_demo_401",4.01,"RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40101","4.01.01","RECEITA OPERACIONAL LÍQUIDA","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account.income_view","4.01.01.01","RECEITA BRUTA","account_demo_40101"," ","view","account.data_account_type_view","base.main_company" +"account.rev","4.01.01.01.01","RECEITA DE VENDA DE PRODUTOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101010100","4.01.01.01.01.01.00","Da atividade de Educação","account.rev","Contas que registram a receita de venda dos produtos da atividade de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010200","4.01.01.01.01.02.00","Da atividade de Saúde","account.rev","Contas que registram a receita de venda dos produtos da atividade de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010300","4.01.01.01.01.03.00","Da atividade de Assistência Social","account.rev","Contas que registram a receita de venda dos produtos da atividade de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101010400","4.01.01.01.01.04.00","Outras","account.rev","Contas que registram as demais receitas de vendas de produtos.","other","account.data_account_type_view","base.main_company" +"account_demo_401010102","4.01.01.01.02","RECEITA DE PRESTAÇÃO DOS SERVIÇOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101020100","4.01.01.01.02.01.00","Serviços Educacionais","account_demo_401010102","Contas que registram as receitas de prestação de serviços na atividade educacional.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020200","4.01.01.01.02.02.00","Doações/Subvenções Vinculadas ","account_demo_401010102","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à prestação de serviços, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020300","4.01.01.01.02.03.00","Doações","account_demo_401010102","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020400","4.01.01.01.02.04.00","Contribuições","account_demo_401010102","Contas que registram as receitas recebidas como contribuições com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101020500","4.01.01.01.02.05.00","Outras","account_demo_401010102","Contas que registram as demais receitas de prestação de serviços.","other","account.data_account_type_view","base.main_company" +"account_demo_401010103","4.01.01.01.03","RECEITA DE SERVIÇOS DE SAÚDE","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101030100","4.01.01.01.03.01.00","Pacientes Particulares","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030200","4.01.01.01.03.02.00","Convênios – SUS","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes conveniados do SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030300","4.01.01.01.03.03.00","Convênios – Outros","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a outros pacientes conveniados.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030400","4.01.01.01.03.04.00","Doações/Subvenções Vinculadas","account_demo_401010103","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030500","4.01.01.01.03.05.00","Doações","account_demo_401010103","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área da saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030600","4.01.01.01.03.06.00","Contribuições","account_demo_401010103","Contas que registram as receitas recebidas como contribuições com destinação à área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101030700","4.01.01.01.03.07.00","Outras","account_demo_401010103","Contas que registram as demais receitas de serviços de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_401010104","4.01.01.01.04","RECEITAS DE SERVIÇOS DE ASSISTÊNCIA SOCIAL","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101040100","4.01.01.01.04.01.00","Pacientes Particulares","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040200","4.01.01.01.04.02.00","Convênios - Outros","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares através de convênios/contratos/termos de parcerias.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040300","4.01.01.01.04.03.00","Doações/Subvenções Vinculadas","account_demo_401010104","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040400","4.01.01.01.04.04.00","Doações","account_demo_401010104","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040500","4.01.01.01.04.05.00","Contribuições","account_demo_401010104","Contas que registram as receitas recebidas como contribuições com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101040600","4.01.01.01.04.06.00","Outras","account_demo_401010104","Contas que registram as demais receitas de serviços na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_401010105","4.01.01.01.05","RECEITAS DE OUTRAS ATIVIDADES","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101050100","4.01.01.01.05.01.00","Contribuições Sindicais","account_demo_401010105","Contas que registram receitas com a natureza de contribuições sindicais.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050200","4.01.01.01.05.02.00","Contribuições Confederativas/Associativas","account_demo_401010105","Contas que registram receitas com a natureza de contribuições confederativas e/ou associativas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050300","4.01.01.01.05.03.00","Mensalidades","account_demo_401010105","Contas que registram receitas com a natureza de mensalidades revertidas por seus associados.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050400","4.01.01.01.05.04.00","Doações/Subvenções","account_demo_401010105","Contas que registram receitas com a natureza de doações e/ou subvenções recebidas de entidades públicas e/ou privadas, e de pessoas físicas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050500","4.01.01.01.05.05.00","Outras Contribuições","account_demo_401010105","Demais contas que registram contribuições não especificadas anteriormente.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101050600","4.01.01.01.05.06.00","Outras","account_demo_401010105"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401010109","4.01.01.01.09","DEDUÇÕES DA RECEITA BRUTA","account.income_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010101090100","4.01.01.01.09.01.00","(-) Vendas Canceladas","account_demo_401010109","Contas que registram vendas das prestações de serviços canceladas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101090200","4.01.01.01.09.02.00","(-) Devoluções e Descontos Incondicionais","account_demo_401010109","Contas que registram as devoluções e descontos incondicionais nas atividades da entidade.","other","account.data_account_type_view","base.main_company" +"account_demo_4010101090300","4.01.01.01.09.03.00","Outras","account_demo_401010109","Contas que registram as demais deduções da receita bruta.","other","account.data_account_type_view","base.main_company" +"account_demo_40103","4.01.03","CUSTO DOS PRODUTOS E SERVIÇOS VENDIDOS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301","4.01.03.01","CUSTO DOS PRODUTOS VENDIDOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401030101","4.01.03.01.01","CUSTO DOS PRODUTOS VENDIDOS PARA EDUCAÇÃO","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301010100","4.01.03.01.01.01.00","Custos dos Produtos para Educação - Vendidos","account_demo_401030101","Contas que registram o custo do produto vendido na área de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301010200","4.01.03.01.01.02.00","Custos dos Produtos para Educação - Gratuidades","account_demo_401030101","Contas que registram o custo do produto dado em gratuidade na área de educação.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301010300","4.01.03.01.01.03.00","Outros Custos","account_demo_401030101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030102","4.01.03.01.02","CUSTO DOS PRODUTOS VENDIDOS PARA SAÚDE","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301020100","4.01.03.01.02.01.00","Custos dos Produtos para Saúde – Vendidos","account_demo_401030102","Contas que registram o custo do produto vendido na área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301020200","4.01.03.01.02.02.00","Custos dos Produtos para Saúde - Gratuidades","account_demo_401030102","Contas que registram o custo do produto dado em gratuidade na área de saúde.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301020300","4.01.03.01.02.03.00","Outros Custos","account_demo_401030102"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030103","4.01.03.01.03","CUSTO DOS PRODUTOS VENDIDOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010301030100","4.01.03.01.03.01.00","Custos dos Produtos para Assistência Social - Vendidos","account_demo_401030103","Contas que registram o custo do produto vendido na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301030200","4.01.03.01.03.02.00","Custos dos Produtos para Assistência Social - Gratuidades","account_demo_401030103","Contas que registram o custo do produto dado em gratuidade na área de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301030300","4.01.03.01.03.03.00","Outras","account_demo_401030103"," ","other","account.data_account_type_view","base.main_company" +"account.cos","4.01.03.01.04","CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" +"account.cog","4.01.03.01.04.01.00","Custos dos Produtos Vendidos em Geral","account.cos","Contas que registram o custo do produto vendido nas atividades não abrangidas anteriormente.","other","account.data_account_type_view","base.main_company" +"account_demo_4010301040200","4.01.03.01.04.02.00","Outros Custos","account.cos"," ","other","account.data_account_type_view","base.main_company" +"account_demo_4010302","4.01.03.02","CUSTO DOS SERVIÇOS PRESTADOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401030201","4.01.03.02.01","CUSTO DOS SERVIÇOS PRESTADOS PARA EDUCAÇÃO","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302010100","4.01.03.02.01.01.00","Custo dos Serviços Prestados a Alunos Não Bolsistas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos não bolsistas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010200","4.01.03.02.01.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias (Exceto PROUNI)","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no PROUNI.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010300","4.01.03.02.01.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de educação, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010400","4.01.03.02.01.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados às demais doações, com destinação à área de educação, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010500","4.01.03.02.01.05.00","Custo dos Serviços Prestados ao PROUNI","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados ao PROUNI.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010600","4.01.03.02.01.06.00","Custo dos Serviços Prestados a Gratuidade ","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos com gratuidades de bolsas parciais e/ou integrais, exceto às vinculadas ao PROUNI, sendo que para as bolsas parciais, o custo deverá ser lançado com o valor parcial, o restante do custo deste aluno, será lançado na conta dos alunos não bolsistas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302010700","4.01.03.02.01.07.00","Outros Custos","account_demo_401030201"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030202","4.01.03.02.02","CUSTO DOS SERVIÇOS PRESTADOS PARA SAÚDE","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302020100","4.01.03.02.02.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020200","4.01.03.02.02.02.00","Custo dos Serviços Prestados a Convênios SUS","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes atendidos através do convênio do SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020300","4.01.03.02.02.03.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020400","4.01.03.02.02.04.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020500","4.01.03.02.02.05.00","Custo dos Serviços Prestados a Doações","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020600","4.01.03.02.02.06.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes com gratuidades do pagamento, exceto às vinculadas ao SUS.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302020700","4.01.03.02.02.07.00","Outros Custos","account_demo_401030202"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030203","4.01.03.02.03","CUSTO DOS SERVIÇOS PRESTADOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302030100","4.01.03.02.03.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários particulares.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030200","4.01.03.02.03.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados aos convênios/contratos/parcerias, exceto àqueles que estão vinculados por doações e por subvenções.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030300","4.01.03.02.03.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados a doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030400","4.01.03.02.03.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030203","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030500","4.01.03.02.03.05.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários com gratuidades do pagamento, exceto às atividades vinculadas por doações e por subvenções. Em especial, ao publico alvo da política nacional de assistência social.","other","account.data_account_type_view","base.main_company" +"account_demo_4010302030600","4.01.03.02.03.06.00","Outros Custos","account_demo_401030203"," ","other","account.data_account_type_view","base.main_company" +"account_demo_401030204","4.01.03.02.04","CUSTO DOS SERVIÇOS PRESTADOS PARA AS DEMAIS ATIVIDADES","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010302040100","4.01.03.02.04.01.00","Custo dos Serviços Prestados em Geral","account_demo_401030204","Contas que registram o custo da prestação do serviço para as demais atividades, não informadas anteriormente. ","other","account.data_account_type_view","base.main_company" +"account_demo_4010302040200","4.01.03.02.04.02.00","Outros Custos","account_demo_401030204"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40105","4.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010501","4.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_40105"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401050101","4.01.05.01.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_4010501"," ","view","account.data_account_type_view","base.main_company" +"account.income_fx_income","4.01.05.01.01.01.00","Variações Cambiais Ativas","account_demo_401050101","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações das taxas de câmbio. +Atenção: +1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da +exploração (Lei no 9.718, art. 9o c/c art. 17); +2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de +20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010200","4.01.05.01.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_401050101","Contas que registram: +a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e +controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). +Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. +Atenção: +1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; +2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica; +3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010300","4.01.05.01.01.03.00","Ganhos em Operações Day-Trade","account_demo_401050101","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. +Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010400","4.01.05.01.01.04.00","Outras Receitas de Aplicações Financeiras","account_demo_401050101","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em outras contas. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. +Atenção: +1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; +2) as variações cambiais ativas devem ser informadas na conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010500","4.01.05.01.01.05.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401050101","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos em outra conta específica.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010600","4.01.05.01.01.06.00","Resultados Positivos em Participações Societárias","account_demo_401050101","Contas que registram: +a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; +b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +c) as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido. +d) as bonificações recebidas; +Atenção: +1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são +consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995); +2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. +e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; +Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. +f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010700","4.01.05.01.01.07.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_401050101","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. +Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais ","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010800","4.01.05.01.01.08.00","Reversão dos Saldos das Provisões Operacionais","account_demo_401050101","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501010900","4.01.05.01.01.09.00","Outras Receitas Operacionais","account_demo_401050101","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: +a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; +b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; +c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; +d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II); +e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na +forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" +"account_demo_4010501011000","4.01.05.01.01.10.00","Outras","account_demo_401050101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40107","4.01.07","DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010701","4.01.07.01","DESPESAS OPERACIONAIS","account_demo_40107"," ","view","account.data_account_type_view","base.main_company" +"account.expense_view","4.01.07.01.01","DESPESAS OPERACIONAIS","account_demo_4010701"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40107010100","4.01.07.01.01.00","Remunerações a Empregados","account.expense_view","Contas que registram os valores lançados como salários, gratificações, horas extras, adicionais e similares pag0s a empregados da entidade.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010200","4.01.07.01.02.00","Indenizações Trabalhistas","account.expense_view","Contas que registram os valores lançados como abonos pecuniários, indenização de 40% do FGTS, indenizações determinadas pelo Juiz e similares pagas aos empregados.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010300","4.01.07.01.03.00","Remuneração a Dirigentes e a Conselho de Administração/Fiscal","account.expense_view","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010400","4.01.07.01.04.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account.expense_view","Contas que registram as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica declarante, tais como: comissões, corretagens, gratificações, honorários e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010500","4.01.07.01.05.00","Prestação de Serviço por Pessoa Jurídica","account.expense_view","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010600","4.01.07.01.06.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account.expense_view","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010700","4.01.07.01.07.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account.expense_view","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: +a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; +b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010800","4.01.07.01.08.00","Doações a Entidades Civis","account.expense_view","Contas que registram as doações efetuadas a: +a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e +b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" +"account_demo_40107010900","4.01.07.01.09.00","Outras Contribuições e Doações","account.expense_view","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011000","4.01.07.01.10.00","FGTS (sem indenização 40%)","account.expense_view","Contas que registram o FGTS, inclusive os valores do FGTS do 13º. salário. Não informar os valores de indenização da multa de 40% do FGTS nesse item, e sim, na conta Indenizações Trabalhistas .","other","account.data_account_type_view","base.main_company" +"account_demo_40107011100","4.01.07.01.11.00","Assistência Médica, Odontológica, Medicamentos, Aparelhos Ortopédicos e Similares","account.expense_view","Contas que registram as despesas com assistência médica, odontológica e farmacêutica. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011200","4.01.07.01.12.00","Provisões para Férias e 13o Salário de Empregados","account.expense_view","Contas que registram as despesas com a constituição de provisões para: a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); b) o 13o salário, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" +"account_demo_40107011300","4.01.07.01.13.00","Demais Provisões","account.expense_view","Contas que registram as despesas com provisões não relacionadas nas contas específicas.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011400","4.01.07.01.14.00","Arrendamento Mercantil","account.expense_view","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" +"account_demo_40107011500","4.01.07.01.15.00","Aluguéis","account.expense_view","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011600","4.01.07.01.16.00","Despesas com Veículos e de Conservação de Bens e Instalações","account.expense_view","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011700","4.01.07.01.17.00","Propaganda e Publicidade","account.expense_view","Contas que registram as despesas com propaganda e publicidade. +Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011800","4.01.07.01.18.00","Multas","account.expense_view","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" +"account_demo_40107011900","4.01.07.01.19.00","Encargos de Depreciação e Amortização","account.expense_view","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012000","4.01.07.01.20.00","Repasses para Outras Entidades (Sindicatos/Federações/Confederações)","account.expense_view","Contas que foram repassadas parte das contribuições/doações/mensalidades e similares para Sindicatos/Federações/Confederações.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012100","4.01.07.01.21.00","Contribuições Previdenciárias Patronais","account.expense_view","Contas que registram as contribuições previdenciárias devidas. No caso de imunes/isentas, informar o valor da contribuição previdenciária patronal devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012200","4.01.07.01.22.00","COFINS","account.expense_view","Contas que registram a Cofins devida. No caso de imunes/isentas, informar o valor da Cofins devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012300","4.01.07.01.23.00","CSLL","account.expense_view","Contas que registram a CSLL devida. No caso de imunes/isentas, informar o valor da CSLL devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012400","4.01.07.01.24.00","PIS/PASEP","account.expense_view","Contas que registram o valor da contribuição para o PIS/PASEP devida.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012500","4.01.07.01.25.00","CPMF","account.expense_view","Contas que registram o valor da CPMF devida.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012600","4.01.07.01.26.00","Demais Impostos, Taxas e Contribuições, exceto as citadas acima.","account.expense_view","Contas que registram os demais impostos, taxas e contribuições, exceto: +a) incorporadas ao custo de bens do ativo permanente; +b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; +c) correspondentes aos impostos recuperáveis; +d) correspondentes aos impostos e contribuições redutores da receita bruta.","other","account.data_account_type_view","base.main_company" +"account_demo_40107012700","4.01.07.01.27.00","Outras Despesas Operacionais","account.expense_view"," ","other","account.data_account_type_view","base.main_company" +"account_demo_40109","4.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010901","4.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_40109"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401090101","4.01.09.01.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_4010901"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4010901010100","4.01.09.01.01.01.00","(-) Variações Cambiais Passivas","account_demo_401090101","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o), inclusive a variação cambial passiva correspondente: +a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; +b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010200","4.01.09.01.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_401090101","Contas que registram: +a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; +b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias, que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e +c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado a vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições).São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). Atenção: As perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010300","4.01.09.01.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_401090101","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010400","4.01.09.01.01.04.00","(-) Outras Despesas de Aplicações","account_demo_401090101","Contas que registram as despesas relativas a juros, não incluídas em outras contas, a descontos de títulos de crédito e outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. +Atenção: +1) as variações monetárias passivas decorrentes da atualização das +obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesas financeiras; +2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas .","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010500","4.01.09.01.01.05.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401090101","Contas que registram os prejuízos havidos em virtude de alienação, títulos não integrantes do ativo permanente, desde que não incluídos nas contas acima.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010600","4.01.09.01.01.06.00","(-) Resultados Negativos em Participações Societárias","account_demo_401090101","Contas que registram as perdas por ajustes no valor de investimentos relevantes, avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. +Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. +Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010700","4.01.09.01.01.07.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_401090101","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_4010901010800","4.01.09.01.01.08.00","Outras Despesas Operacionais","account_demo_401090101"," ","other","account.data_account_type_view","base.main_company" +"account_demo_403",4.03,"OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_40301","4.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_403"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030101","4.03.01.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_40301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_403010101","4.03.01.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030101010100","4.03.01.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente.","account_demo_403010101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais . Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais , conforme o caso.","other","account.data_account_type_view","base.main_company" +"account_demo_4030101010200","4.03.01.01.01.02.00","Outras Receitas Não Operacionais","account_demo_403010101","Contas que registram: +a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; +b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela +equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); +c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. +Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" +"account_demo_403020101","4.03.02.01.01","DESPESAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" +"account_demo_4030201010100","4.03.02.01.01.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_403020101","Contas que registram o valor contábil dos bens do ativo permanente baixados no curso do período de apuração, cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente . O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" +"account_demo_4030201010200","4.03.02.01.01.02.00","(-) Outras Despesas Não Operacionais","account_demo_403020101","Contas que registram: +a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos; +Atenção: sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426, ambos do Decreto no 3.000, de 1999. +b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" +"account_demo_5",5,"CUSTOS DE PRODUÇÃO","account.chart0",,"view","account.data_account_type_expense","base.main_company" +"account_demo_501",5.01,"CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_50101","5.01.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_501010100","5.01.01.01.00","Consumo de Insumos","account_demo_50101","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material direto e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010400","5.01.01.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50101","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010500","5.01.01.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50101","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010503","5.01.01.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501010505","5.01.01.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501010507","5.01.01.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010509","5.01.01.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50101","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010600","5.01.01.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501010700","5.01.01.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501010800","5.01.01.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50101","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501010900","5.01.01.09.00","Locação de Mão-de-obra","account_demo_50101","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501011000","5.01.01.10.00","Encargos Sociais – Previdência Social","account_demo_50101","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011100","5.01.01.11.00","Encargos Sociais – FGTS","account_demo_50101","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011200","5.01.01.12.00","Encargos Sociais – Outros","account_demo_50101","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011300","5.01.01.13.00","Alimentação do Trabalhador","account_demo_50101","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011400","5.01.01.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50101","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011500","5.01.01.15.00","Arrendamento Mercantil","account_demo_50101","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","other","account.data_account_type_expense","base.main_company" +"account_demo_501011600","5.01.01.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50101","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011700","5.01.01.17.00","Constituição de Provisões","account_demo_50101","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501011800","5.01.01.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501011900","5.01.01.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501012000","5.01.01.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501012100","5.01.01.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501019000","5.01.01.90.00","Outros Custos","account_demo_50101","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" +"account_demo_50103","5.01.03","CUSTO DOS SERVIÇOS PRODUZIDOS","account_demo_501",,"view","account.data_account_type_expense","base.main_company" +"account_demo_501030200","5.01.03.02.00","Material Aplicado na Produção de Serviços","account_demo_50103","Contas correspondentes aos materiais aplicados diretamente na produção de serviços dos serviços durante o período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030400","5.01.03.04.00","Remuneração a Dirigentes ligados à Produção de Serviços","account_demo_50103","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção de serviços, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção de serviços (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção de serviços, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030500","5.01.03.05.00","Custo do Pessoal Aplicado na Produção de Serviços","account_demo_50103","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção de serviços da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030503","5.01.03.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" +"account_demo_501030505","5.01.03.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" +"account_demo_501030507","5.01.03.05.07","Plano de Previdência Privada de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030509","5.01.03.05.09","Outros Gastos com Pessoal Ligado à Produção de Serviços","account_demo_50103","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030600","5.01.03.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501030700","5.01.03.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501030800","5.01.03.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50103","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501030900","5.01.03.09.00","Locação de Mão-de-obra","account_demo_50103","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501031000","5.01.03.10.00","Encargos Sociais – Previdência Social","account_demo_50103","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031100","5.01.03.11.00","Encargos Sociais – FGTS","account_demo_50103","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria – PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031200","5.01.03.12.00","Encargos Sociais – Outros","account_demo_50103","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção de serviços, não classificados nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031300","5.01.03.13.00","Alimentação do Trabalhador","account_demo_50103","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção de serviços, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031400","5.01.03.14.00","Manutenção e Reparo de Bens Aplicados na Produção de Serviços","account_demo_50103","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031500","5.01.03.15.00","Arrendamento Mercantil","account_demo_50103","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção de serviços, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção de serviços, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção de serviços devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031600","5.01.03.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50103","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção de serviços. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção de serviços devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031700","5.01.03.17.00","Constituição de Provisões","account_demo_50103","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção de serviços da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501031800","5.01.03.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501031900","5.01.03.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501032000","5.01.03.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501032100","5.01.03.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501039000","5.01.03.90.00","Outros Custos","account_demo_50103","Contas que representam os demais custos da empresa no processo de produção de serviços, para os quais não haja conta mais específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" +"account_demo_50105","5.01.05","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS DA ATIVIDADE RURAL","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_501050100","5.01.05.01.00","Consumo de Insumos","account_demo_50105","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material secundário e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050400","5.01.05.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50105","Contas que registram: +a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; +b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). +Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050500","5.01.05.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50105","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050503","5.01.05.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501050505","5.01.05.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" +"account_demo_501050507","5.01.05.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050509","5.01.05.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50105","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. +Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050600","5.01.05.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" +"account_demo_501050700","5.01.05.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" +"account_demo_501050800","5.01.05.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50105","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" +"account_demo_501050900","5.01.05.09.00","Locação de Mão-de-obra","account_demo_50105","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" +"account_demo_501051000","5.01.05.10.00","Encargos Sociais – Previdência Social","account_demo_50105","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051100","5.01.05.11.00","Encargos Sociais – FGTS","account_demo_50105","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051200","5.01.05.12.00","Encargos Sociais – Outros","account_demo_50105","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051300","5.01.05.13.00","Alimentação do Trabalhador","account_demo_50105","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051400","5.01.05.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50105","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051500","5.01.05.15.00","Arrendamento Mercantil","account_demo_50105","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051600","5.01.05.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50105","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051700","5.01.05.17.00","Constituição de Provisões","account_demo_50105","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" +"account_demo_501051800","5.01.05.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" +"account_demo_501051900","5.01.05.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" +"account_demo_501052000","5.01.05.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501052100","5.01.05.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" +"account_demo_501059000","5.01.05.90.00","Outros Custos","account_demo_50105","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" diff --git a/l10n_br_account/demo/account_financial_demo.xml b/l10n_br_account/demo/account_financial_demo.xml new file mode 100644 index 000000000000..4928ff24b09c --- /dev/null +++ b/l10n_br_account/demo/account_financial_demo.xml @@ -0,0 +1,81 @@ + + + + + + + + True + + A Vista + + + + + 07 e 14 dias liquidos + 07 / 14 DDL + + + + + + procent + + + + + + + balance + + + + + + 07 / 28 DDL + + + + + + + procent + + + + + + + balance + + + + + 35 DDL + + 35 dias + + + + + + balance + + + + + + 45 dias + 45 DDL + + + + + + balance + + + + + + diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml new file mode 100644 index 000000000000..803990c56c7d --- /dev/null +++ b/l10n_br_account/demo/account_fiscal_demo.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/l10n_br_account/demo/account_tax_code.xml b/l10n_br_account/demo/account_tax_code.xml new file mode 100644 index 000000000000..50776352e4eb --- /dev/null +++ b/l10n_br_account/demo/account_tax_code.xml @@ -0,0 +1,50 @@ + + + + + + + Códigos de Impostos Brasileiros + 1 + + + + + IRPJ + IRPJ + irpj + 1 + + + + + + IR + IR + ir + 1 + + + + + + ISSQN + ISSQN + issqn + 1 + + + + + + CSLL + CSLL + csll + 1 + + + + + + + diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml new file mode 100644 index 000000000000..d1301d5e6f7a --- /dev/null +++ b/l10n_br_account/demo/base_demo.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/i18n/pt_BR.po b/l10n_br_account/i18n/pt_BR.po new file mode 100644 index 000000000000..405b7c19b03c --- /dev/null +++ b/l10n_br_account/i18n/pt_BR.po @@ -0,0 +1,9 @@ +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_br_account +msgid "Brazilian Localization Account" +msgstr "Localização Brasileira - Módulo base contabilidade" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_br_sale_stock +msgid "Brazilian Localization Account" +msgstr "Localização Brasileira - Módulo principal que define as funcionalidades contabeis brasileira" diff --git a/l10n_br_account/images/l10n_br-hover.png b/l10n_br_account/images/l10n_br-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..4d33b9bb7c63a5245c90f1f4c16344fd07e29743 GIT binary patch literal 5558 zcmV;n6-nxeP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipN3 z78fcks*+SeRY*tzAw<@MEeI;Iinz2Q5LpzY z9k&s;?uM~t8jz)>ReDTc0pM3HO>({Sm{rdHU!XeCviI4&l zlid?Oj_SPtWb}L4_?Nlk!aIJtz--*OkwuFZVM-IlRH#j@rLtQU^_}XGnoIyAF0t8+ z$Qi-5+duf}0W)dRBq}N@kWw;q^f59*ue=_TpnNlR+;o;&Znla;TpWa+=6E+3k+cX4NB)Y3E`R)_%A1~^ zhTB`myPFJtme<51h$t|(|6TBDwZxDyfLc+aM@B!)!chy)4KU$wm`EhTb=O^oVHo%W zeiT!|Z}C%9P)vPiPt$;fM3aK5+a)4-7S8mi+idrO+zTizEv0i`olo9`G^am-Vx$C5 z2=4hn@Yh2U6wxXNee=shbWiR6!vpi|v(NJ6lTQ*E5TP!^Lw!dtW|DD&*N6=`A}PKV za_rzS`p~}9zBb!Ub*AEN@M2nQ5SUH>{0cU&UPfxW0LYkv#QJat;f1dR^FE9LB$_mA zT+i!RGkwhuANk&M&po(YE{f|*sLQEq2@0_pge9Nd6a_^}2y0ih8O+^u(@l82UNAtW z_QW(5KHt}wjQj_Aam7VZ0&YerPAkkEB=OFGmqtq*8em3U``SZm&rM38>pCwlTZXnp zZPm^Jh)CWU4+A^IF0nvKac;sT<>lq9Sg`_|&BmK=y$L25odzOHC&eFsB%*Tn>?u6= z@({#{-APE%;Ldz-|EuJ`uM!OEAi)5`G|r8?9zJYXbjJfYTd*=uje_yHO%r)##f3bv z+{(r^W&C#0Z&|l)9aU9T0GN7vP#qZdQBc;qiE-m%@T+-~>DjHCYp(bP8HqmX3NL61 zI4oe%;OD(0KhKAaMVxZFaK^oo$KxTbLmK8_6SL5428!SpeI?J0ikeTORXKVt#8YpD z)K5{&ZQwUR5t!|-fvP@9@{zvHG41jYR-q1jny}FEn1p~RT+jx=`FRB2q zk%cq6{M@-~P16ukU@SHf0!%5nJ{SIXtZZ_%z}^2|$cwKHX=S3V+o9dA;q``FWq_G? zZRfWSe?xlK*DcN&!L10(NEC7E%yCwLnKWqxiHOcBV zk1Cg)=nxD*A+Ki|U2@x#oUD=2F&VcfK+W+myLOi{_Szo2`SzDF1~@T6QYqc{2Riqu zJ0o*AE5PjDy_=y!ha!Hd(mzk-<0�oXR+Pe*H}rQ6LDDE@ycf_$g*c)k;#O;I`!2M`ld6>U-*hI_mwpRN$}#6Z!_cm-REyTX49rk z2q8#4DA_PuMF(Fw$!gOW6zXSQb1Ew?>owUq=b?Hv6_JL*cZaa9G`?D-sTLx>I? zdSFR0NzGL0(p!+!y^>MWGUz|CGerj+e7r{R`isTX`+RKP){PnWzXx1-ZZ#$l2#}PN z)FK_wbsYiRw@Bwtzpyr`yKGGQfDWtppDh|6ZgTU^%2J9;JP6f9Rh77zG!9Kl2!$gI zxwsQMcUI81e=1XM?#7t0S?mg~Bg2x-p1-8Ce)Tp!{&)+?w(TwQv`{F7uIt!rwzCV& zHP>8&+wG=f$BwL7(-ciU@x&86_uO-omXuQZO*=Ad3JHuGBiCv7-p7Z#GB8c>dLuL+ zMs!~!00R=kFj17K*_fsz5QuQY#D3)6e3-7??OdETgn^ceP}6sSJ|q_JL>M({6oz5M z+kWZgm&ogzchUs*djT_N&Kx#x-i(lf^BL3MIr_xFUw-po0Cat$iQ!= zVe4GRXPefQl*Boc{d^`i@q@rtFIx(Gb=v!}TCqI=`#P8*m(g9f2%I>#m)Lvv_I zqS-VC%yMYtXND;p7JWMLKBY`3vE9G$TK=-?LWD5mr=$c;1Bb(k%N2;F1qL%_4CKWZ zKSS5GXoXicfdXI{CaI}bG}X)DJxh>5jfeho0_)yCh=`e`kb(z)|221i7NS1f6f0)h zGAWu>bowblFc@V2{{0Yyq|_udMT>1Ze;A=L=X#hhOhZZ)A@mr(Yap67iN=Jn2N6O= z(^ND~K~V&nrT_|VcL+^WP*nwsMd7c1{fhhU9gLz#R8>LK6f`Y*z11qX_ufGyC+p<* zsswb9Di6~2`GaFxLhD+BXcoXp$px3p#xw5JPD{A6~601k5psNh*e;mUwdEnPWC@S(` zw_E7l+li_Q6h&aMs1zNo$Kwgnv7-%D6{xBb+XShpR-8@?IbGZH>8Eu}z5Z*Y)FCzw zAylxcT(MRojE1JDsLeJ-D5#1`zz8tn&m#yM;qMQOuIng@f?`!r6qPaA8vk{f28I@! zbTiYTm1B+O6w#UYZ`$w$)!Nl9v)Prmx9h7Y!t#dt@cX@aUMA5N!*Rd0WdqF8z2q4yw=6di+9Df4Lz zTcx4vO#s9}X|~_|*vt(xPtPlD-MW=4uDXJO&kc;*s{%MIk~{MycE1hOG79^)j~cbv z7S}`rzLDc+P~%RHXWTZMMnOSGwrwjrp^hA-tsz4)`RJo^x@6n&)Q6crYc)3%?nRnW zA5`I&j9eu#L`zPRLL$v(zmW;oEWT_pGX~H2{sCToUOw6^jg+L6goX_%Sy#B0oX$Bs zwx$dB4|T?a-8dM{Nm+oqE{SnB{|ohAYrGxPln5c>mnuq>jD--fa}Y5E^JZ<~&gq{J ziwP-fkX*9{g0acRC(a3A$d;f;DM`^&*ga$S>7@kYmW`)Y)WjQ|oHv=@jQ9-zS(#aQ z$AlPmT~99S1k-v#?^qSBF%}V`DNShbYy9qyV|ZsnK1tR{v)CrOW3ea%gJvvliJtq@ z@899dQHPPSvQL>$Qn)@^(uq&@#K|`YO42HLOUEreGuicyV>=kyWoW{&#fulSf%CT)Pah)m>@HngQx4Qlo~*O7a6S0XdBvM{bT>3?G%4&=cy<@{GqW<` z1MmfW*puyvPf&mo3!@Yz`u%B*WcvR>sx?~KpVCb>mBOWLa`Q6kc5mDO-Uv}1YHVAy z)C4JHye}yws-kjX#)SmU5UQduf8>0YY+XXgj7GjQFP(XIHD>tm;q2P6lkB-U^c~Qr zRS$5YcW4|=#00x08Il2aAo^ozq1JSf-J=WgNj;g3FOety(F>{h80)dQ~kdOwom3~&NtLC>W5-a}?JbIK% z{x||viJE7l*O5|UVq(F{ixZa8Ewx+A*Go?dnzC-QFWO-e=zp->0}@!E3D zff}q%E4EBqt3WY1#J=tW>eW1Y&%N`k>4 z)2B~I(=?ua_F2->(xSDW`Ud9yW-dV^hpG@s zVw#O%y+LttF_o2-+w5gY1q&A7a=D_OE27Zj(H^JNUng59mQGlD zT4Vk}UVv6rl|UdsO-&7@rKMC>R^s>jQ51z+Zn=dAAAFE$)21bW5)208pqQo!1yEO1 zN5mib*8a*H%DH3p>AlW+R>@aNNhlP;RRwY9Z`LLoM6*gzlK4_h-HT?Il>C+FyPCa7-u^!tHibRaJ$@;~^4>vawNXatSAaaMJ-nbcfYwi-d7+Jh_5>bBSEa1 z^~|R;Cz54VRTXZxn@}hek2xC8hr?lfJ|7;B2dC3X$BrGb+wG{T8aKPv_@phfYkb-j z6%_zfR#wJ?yAzA=%^yJX#rU%UO57`%ris_H*N=i!j^2;w1u3xZV0i#BZ z;)fO?rIbFOk7LJj-CHk*yKv^1PfC*g3I;^JcJ>+4(9nmg{eBW^a$ zWz(ijELyaP9Xoc!k9F?cnK#~egWcUsdvpz>nsk3 zgNllZ7H?^t3(*3B0Diy!q@YMC@%el-G&Eqh+vD2N8ksf+rLeG&Kp;SVem*vv4Z|=9 zg+d%Sa3Ic0jnch)cQ$O;fW>0rd=M=d44#x%9((LD)~#FD;`rl_KhBULL)rv#{P^(% zgFyxi7!aSV%jKfDxVY7O7A{;!*REX?ywACmHb=2@=T63s9UBKFGc%J89XiA(IcLrs z#*Q7!=FOYi^j;Q=1*fJW z@L;-h=|cDJ-6<$2ATKYEjEoHYem{#BFJ}Jy`K@wJquCridX%!VvXiC+qeqWs_Uzg5 zW2;xMKDWT=x}FewY}vAfS6_V7zMaCt z!uX#fR8^&G*RDYHzXgq1@rja}no3eq5=)jWp|Y})qM{RX7nuf>YVd~VWtXsE^!-o&! za5%oT^DSGpkdu>x&*!6K$Bw-9)?2t-E~JzkJ9g}Q)ltqE`C2R%oK7bmkB7;VCj-!< zM~~?0U~HAJtgH-|%XLbb@?(!Zmhd|%DJh}eVzb$pJb5y8b#-*;&;ggr#eo9{=+&!N z!hPA<+2__PDT+e-_U*CT?HoIHEU}(p80^`z=X#n<6fO1}llv0|eDR=GKB>}0bs=Vl;i)4O&z7$RWiul%T;lhP-|Ni~5 zrlv+V%JSvQ<;IO0Wm}?Ynk*_RlINq)xbwvqU&JSwnwt8pK%}Lm$)}!rO77UPLwY=( zRvW+c(o0VY%*vH3WiS{#zk#W!sE~d8_H7f0!Gj0Op+kqt6)RTA9Up#pN{we^WXO_| z68U44cs(XFGn2i0_wxGduO}3)uD$l!R%;~RCNI430tE#Hbm`KCAETU=Vz|fS!QpV= zcDql>ZJ&>FRuYp(AAJ;;%k`rL<*aGUPeGJ_LeRSWKj;JlKE`k^5&!@I07*qoM6N<$ Eg74{+vj6}9 literal 0 HcmV?d00001 diff --git a/l10n_br_account/images/l10n_br.png b/l10n_br_account/images/l10n_br.png new file mode 100644 index 0000000000000000000000000000000000000000..d65fda9da2782737583c0e7ccb2e7ba77b41762b GIT binary patch literal 4953 zcmW-l2|UyPAIBvjSEYqq32CwuoR{aimZgt>1*=K7fu({klDa_6QTxo^Xq zxsSQ;^Z)UG?6K{!?fdaxwZOa5`ID9!ygCT~ z{Q%xBIBC6jMv>Raxd=W`o4$Ghr#L%*Bvog`fNw6pSJro;prF5g{=7he`^pBsq(LK8 z6=_HpZn3a3+ow|sQcy4tBj5@;ZX@J`cPI$)Mze2`{aW6J2XS{~|B}Q|@KDp$@%ubN zuLJ3mBS->Sy;OIg*4Yw?Jm3A3c+#SAy4k(y1Z?I5ab*P?gYVre?*rJMalEzB#{Fz+ z8VZ|umyh2W8sBT*zKHLMbS1I{_`_v;TbGBWT~|*goVuocyJ#^f&|?#=hIMQ1ZYp#PWqDlRjbE@yh=hK5OU&rkQ z%}8$9moS#+SbhqK;%#YZ4uz{|a-zqQAP$F1t+31gwB{@t#d zR9YIFc)FdDD2rUJ-g_Gy9IOEe8XYwnwR`;h`SU-8UsG5$r)$;80WO(edM zVv|jYmZ4!APW&BIQ1JGcNA2-uTbaP-$zWNHBF|N%xj9wN0PbNo)*^mn!~l$&VGU15 zuKLq(BOM)?^$0*>u*VOP*jgyneR#}OJ2n>d9FyBNSOkXKg^WtKA{G&2zwxZ$o ze4ia54-bz&#m_DD)3dWNRaG*^{Ww@)U?8XDdy0_X^$GShp(#*s!&=(fsmpu4X|EU< z7|c0efsqoAM&~m#GkJuB==EbuCfCy|mv@$l?>xsXi_%J1TaHH8_O=EM?F(GU2D@ZZ zb2Q%zHg4|0Qm_bVxw#Bc%`ucIur{y=W<|qdwv=&SzcwI6tPBhd3|?AW3xXLGsj=Eg zil}8=_xtvZJ3BiYT{}BJU-W+J*;q+ury4)vFTKe=Wp#D+pTb<*kmF;o4!0cN82@Wj z7Z6x0TU!hANJ(6WCAassCeUc@3E4g?KYxCIW7wx_wVI~pwVj=vmGNrn*|ODDyVkb0eDla9&1ZM`p+F*vI z;dfreA|(k zOEo|DBXZd_D*u9lhwL02;$O1VD3bE>B0meg(bCd-2Bc(a8cec$l zIy*b>d&wCIv$8&TI|DWbHC`2e_nRB<9rdtAQ?PZMOwFT|PJ3gn*BPi=y1M4oeGg+? zPF~0#UXwpN=vrJ}HtYH(D~a!fXh0N`b8^BqHXMMRF^4XU@OviDyvue4QqYeLZ8SxV z{)`5~20N!;Y;}$13ir%L^R0}ZKiT}?y!FA19O#+B2fhcdVqyBCW|W@BbzrX(TqnF) z{oJ?atl`*3(|=GX2L0HU)>czesqM{}_O1CYZ7r=|pmc%vNwK0z44e`FNOfb+zVL^p zz4}t-&-Q9r%R0OUAuXva50V`3D zX=$ijt7((n8x7>41-}tYcJ>H{Wj30HBQFq$%k(U;ZqcLQVCrKZ`2ZfIXngTJb)bTQ zfq`6klZvY9lwLTQW#ELZnP=kMPOOlGHsiho5775Rk>+4bKQ+z>t-e{68qP{Z6dJyBgC5EiM8_u{rlIHP(6&YbaMl_^Pz3F zw-`RameCjbdnzd@i6XHpgt)AllMI$ya4*|TgpC2z+BdIF1lMPW4u|kz)L^M!JrX%y zJs@nm7{xS61dv zu_g@I%r5k#vcJv_KEb5$V0dk9Z3R!#IMjW8<$ceNCWecx`*y6sb(AzAs^rujsI07P zgK5F1&vAM8TXL+#*d5A^KK%X%1hP`CI3hyIODLZm4^s{!n`)2>b-H#QD>sD%;7?+RDXmLA9vIX zj-kJeVfi?odzfD|x4e?35hw``dRF1@B_-mvC~afojv#v0bvGF>0kB`iDn@Bsa^URn zk%X2(3e-dm{=Q+Uk+0tyaA1Y=GJ4g(dts|fULCB0y37VuNlD2~n#|KgW&Zv3-&dk7 z^oiS|ew&G>J!TlSZBQ;3EErGga2vPkKw+&O{MBrdk(BC}>DP_G+qoFTsz?CgZW ziqJP_T+x9jQq$0stVrvVAd2+(I_!r_)SqtAu|rl$T04haE~0l9HwQFL=r z#klZctVKL<=KIaK%m2lfs%<&}=S)wxwDT8)!T2F`*O<-^zxhUkONXC1xw4W2n8a}O zVkxh?Bhac8)4!$EgGdn#eSL%sce9n)=49ZNO#oo;qV1iWwnpvJK>Rz+wci97nMokv z2VSa8STcoNjB0)ktRJu`QsmFlK+fXQ5-&@b@oPTaJfkdYl!b+bfg?FxGoeqNUdKbU zPwq`w5Y97;nSuJCS^l&haNL`*YTx7OTf+rrA(5i58S|IQUC1M8)}z}o!G=u-OSzuG z7k3vQB1F^NS4W?WyU%k0<<8E|dToT6G=N<0?fuo?|Ecs6w*K{6eooHxRLHFw*_QXO zzj^QKGu@K=s+DrPtuQiO=dSBgzu!Ns}2Kc zGu}M<%F1*CJbiAmJ`e;t-Iul?5_t{`3+h(bq$V7A4SU39guT~AV4Gb&yN}3{E{=}a zu}atLQO){4kQapB5+31JXMns@;Pnm=tN5W6QZf9$!(*N)!u{ypmTv9gC^uMb>PPoWij?fD>3Ys zFCif4#wwhFx$)1AKM!F7*+QX#A<0g z>#i-Pgyn~8nj?|tqy{u69>pA?bg(}i1;Uq8+C`>$C=om@g(SXpV9bu92Y zaHONB7iYx9#Z9u-?l-;`)DxemutllBSoqi&L}g^cp%`#;#fyH8rc=PM&YPRVLl2kL zQG^)#IY1(?=Odvc06xaW#ZdqRdq3g5H?`r`JNQ>MD#B+y@YbjvvLA^MkGpq6GREK@ z=9w6~1&Efu|Auu$Y=LEg$vQeZW@cvti0LMga=1tW^KTO#+Yk1Jp+_U7xblf@uC+(T zT;dy{sPLDA!1@3mMJs=R^ZGZM)=#}hmXXA{#qoQWsVEs38L!a=#Suh(W`#_q?#drr z78e(9FntKtT?qzDFSPL*D=;6GMH=5a@g)lQQ z_5uR};4XkgAU=Ri7-!xJg|l&SRSRfP5NsYrD+720{fnUOxzfq{1$ruc71-K|ZnR}Z z0Vg-N02>2ySR*?33qJy+*R$lSDbT-;<$t=mh>FSgE{k($U>{lTtc1G1F23oV*#29tdK(a;1+%YFk*yWHHQqk^X2nSr66}qb`Rq zGvkYhi1;ewj?GB)VOO}iKqk+oM#=S-OjNo);E+H~T81S-G0b#93jos0&H2-Q?A!P! zyrc(y4f-q)Ybq)#-v@9nxZU|}3${r1wH-CyN0Q!$#V)p>eL6nft0iVXwU-jva5LIC zIyvW8&(^z=kyw{&!L-meT5Jb9E(WKa=f$M@t_?f(tqeB#JIdw9in|G94dTl}>@0G~jS zWaZ@a32@L-Ei5j!{2BZ7`LnV1{Z*rvO`2b2J!8|;1sEau#2hY%y3dY9;1gj6hTqeg zKm-V_(U?Q9N7}9dK+HigD{8i3`U-4;SF*l!yHGn3 z1(y23gDVPG_cy=PwiCRf2LAi}IjC>3e|OiZOZJ7Dnp&%nNC3~(sOESa&eY4xi2h{Y zk+~+Me68k4(s70sbTFW6GTNECtM)aixcHL>6z=0A=ez&=7A+MeNLmw<3Fi&ywl+@+k-YuJ)80PV`l<3Vcxnn3@jevy%ppA6Vb z)b?U8q{fCl!K(plM_X6%BfiS}o>u61%y;5BrO+RVZ#`A%7h{B;MBS2C1Kntp?5-Xi zv@8gUNdevFS7}$Z3lNZvqwe$gm#V4}ytDz7?MquLMP2tmlh-;l6qnL!@3X}L;6|~9 zUmymtap2WThGv?`9j`yP#R4FIbLrRg2J}JoHrDZQ+gcIQSd7otFS1lZGI7gf!c%)l z9C69Xw=Dp=-1OHgFbygMP4sM?|HalU?F`EScLfFiUSL>W?26N7Rc{{<2!x7F2mRRL zDt9M?$Qhf>rJQ^%6BBiS=7~!2*F}vWia^w~)PY5gq_Wg@gz4tVns4G$p7pFt7M)^q iMLfZ0&;NUSN. # +############################################################################### + +from openerp.osv import orm, fields +from openerp import netsvc +import datetime + +TYPE = [ + ('input', u'Entrada'), + ('output', u'Saída'), +] + +PRODUCT_FISCAL_TYPE = [ + ('service', u'Serviço'), +] + +PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] + + +class L10n_brAccountCce(orm.Model): + _name = 'l10n_br_account.invoice.cce' + _description = u'Cartão de Correção no Sefaz' + _columns = { + 'invoice_id': fields.many2one( + 'account.invoice', 'Fatura'), + 'motivo': fields.text('Motivo', readonly=True + , required=True), + 'sequencia': fields.char('Sequencia', help=u"Indica a sequencia da carta de correcão"), + 'cce_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + } + +class L10n_brAccountInvoiceCancel(orm.Model): + _name = 'l10n_br_account.invoice.cancel' + _description = u'Cancelar Documento Eletrônico no Sefaz' + _columns = { + 'invoice_id': fields.many2one( + 'account.invoice', 'Fatura'), + 'justificative': fields.char('Justificativa', size=255, readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'cancel_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), + 'state': fields.selection( + [('draft', 'Rascunho'), ('cancel', 'Cancelado'), + ('done', u'Concluído')], 'Status', required=True), + } + _defaults = { + 'state': 'draft', + } + + def _check_justificative(self, cr, uid, ids): + for invalid in self.browse(cr, uid, ids): + if len(invalid.justificative) < 15: + return False + return True + + _constraints = [( + _check_justificative, + 'Justificativa deve ter tamanho minimo de 15 caracteres.', + ['justificative'])] + + def action_draft_done(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'done'}) + return True + + +class L10n_brDocumentEvent(orm.Model): + _name = 'l10n_br_account.document_event' + _columns = { + 'type': fields.selection( + [('-1', u'Exception'), + ('0', u'Envio Lote'), + ('1', u'Consulta Recibo'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), + ('11', u'Consulta Destinadas'), ], 'Serviço'), + 'response': fields.char(u'Descrição', size=64, readonly=True), + 'company_id': fields.many2one( + 'res.company', 'Empresa', readonly=True, + states={'draft': [('readonly', False)]}), + 'origin': fields.char('Documento de Origem', size=64, + readonly=True, states={'draft': [('readonly', False)]}, + help="Reference of the document that produced event."), + 'file_sent': fields.char('Envio', readonly=True), + 'file_returned': fields.char('Retorno', readonly=True), + 'status': fields.char('Codigo', readonly=True), + 'message': fields.char('Mensagem', readonly=True), + 'create_date': fields.datetime(u'Data Criação', readonly=True), + 'write_date': fields.datetime(u'Data Alteração', readonly=True), + 'end_date': fields.datetime(u'Data Finalização', readonly=True), + 'state': fields.selection( + [('draft', 'Rascunho'), ('send', 'Enviado'), + ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], + 'Status', select=True, readonly=True), + 'document_event_ids': fields.many2one( + 'account.invoice', 'Documentos', ondelete='cascade') + } + _defaults = { + 'state': 'draft', + } + + def set_done(self, cr, uid, ids, context=None): + if context is None: + context = {} + self.write(cr, uid, ids, + {'state': 'done', 'end_date': datetime.datetime.now()}, + context=context) + return True + + +class L10n_brAccountFiscalCategory(orm.Model): + _name = 'l10n_br_account.fiscal.category' + _description = 'Categoria Fiscal' + _columns = { + 'code': fields.char(u'Código', size=254, required=True), + 'name': fields.char(u'Descrição', size=254), + 'type': fields.selection(TYPE, 'Tipo'), + 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), + 'property_journal': fields.property( + 'account.journal', type='many2one', relation='account.journal', + string=u"Diário Contábil", method=True, view_load=True, + help=u"Diário utilizado para esta categoria de operação fiscal"), + 'journal_type': fields.selection( + [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), + ('purchase', 'Compras'), + ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', + size=32, required=True), + 'refund_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('journal_type', 'like', journal_type), + ('state', '=', 'approved')]"""), + 'reverse_fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('state', '=', 'approved')]"""), + 'fiscal_position_ids': fields.one2many('account.fiscal.position', + 'fiscal_category_id', u'Posições Fiscais'), + 'note': fields.text(u'Observações'), + 'state': fields.selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True), + } + _defaults = { + 'state': 'draft', + 'type': 'output', + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, + 'journal_type': 'sale', + } + _sql_constraints = [ + ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', + u'Já existe uma categoria fiscal com esse código !') + ] + + def action_unapproved_draft(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'draft'}) + wf_service = netsvc.LocalService("workflow") + for fc_id in ids: + wf_service.trg_delete( + uid, 'l10n_br_account.fiscal.category', fc_id, cr) + wf_service.trg_create( + uid, 'l10n_br_account.fiscal.category', fc_id, cr) + return True + + +class L10n_brAccountServiceType(orm.Model): + _name = 'l10n_br_account.service.type' + _description = u'Cadastro de Operações Fiscais de Serviço' + _columns = { + 'code': fields.char(u'Código', size=16, required=True), + 'name': fields.char(u'Descrição', size=256, required=True), + 'parent_id': fields.many2one( + 'l10n_br_account.service.type', 'Tipo de Serviço Pai'), + 'child_ids': fields.one2many( + 'l10n_br_account.service.type', 'parent_id', + u'Tipo de Serviço Filhos'), + 'internal_type': fields.selection( + [('view', u'Visualização'), ('normal', 'Normal')], + 'Tipo Interno', required=True), + } + _defaults = { + 'internal_type': 'normal' + } + + def name_get(self, cr, uid, ids, context=None): + if not ids: + return [] + reads = self.read(cr, uid, ids, ['name', 'code'], context=context) + res = [] + for record in reads: + name = record['name'] + if record['code']: + name = record['code'] + ' - ' + name + res.append((record['id'], name)) + return res + + +class L10n_brAccountFiscalDocument(orm.Model): + _name = 'l10n_br_account.fiscal.document' + _description = 'Tipo de Documento Fiscal' + _columns = { + 'code': fields.char(u'Codigo', size=8, required=True), + 'name': fields.char(u'Descrição', size=64), + 'electronic': fields.boolean(u'Eletrônico') + } + + +class L10n_brAccountDocumentSerie(orm.Model): + _name = 'l10n_br_account.document.serie' + _description = 'Serie de documentos fiscais' + _columns = { + 'code': fields.char(u'Código', size=3, required=True), + 'name': fields.char(u'Descrição', size=64, required=True), + 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), + 'fiscal_document_id': fields.many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal', required=True), + 'company_id': fields.many2one( + 'res.company', 'Empresa', required=True), + 'active': fields.boolean('Ativo'), + 'internal_sequence_id': fields.many2one( + 'ir.sequence', u'Sequência Interna') + } + _defaults = { + 'active': True, + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, + } + + def create_sequence(self, cr, uid, vals, context=None): + """ Create new no_gap entry sequence for every + new document serie """ + seq = { + 'name': vals['name'], + 'implementation': 'no_gap', + 'padding': 1, + 'number_increment': 1} + if 'company_id' in vals: + seq['company_id'] = vals['company_id'] + return self.pool.get('ir.sequence').create(cr, uid, seq) + + def create(self, cr, uid, vals, context=None): + """ Overwrite method to create a new ir.sequence if + this field is null """ + if not 'internal_sequence_id' in vals or \ + not vals['internal_sequence_id']: + vals.update({'internal_sequence_id': self.create_sequence( + cr, uid, vals, context)}) + result = super(L10n_brAccountDocumentSerie, self).create( + cr, uid, vals, context) + if result: + company = self.pool.get('res.company').browse( + cr, uid, vals.get('company_id'), context=context) + value = {} + if vals.get('fiscal_type') == 'product': + series = [doc_serie.id for doc_serie in + company.document_serie_product_ids] + series.append(result) + value = { + 'document_serie_product_ids': [(6, 0, list(set(series)))]} + else: + value = {'document_serie_service_id': result} + self.pool.get('res.company').write( + cr, uid, vals.get('company_id'), value, context=context) + return result + + +class L10n_brAccountInvoiceInvalidNumber(orm.Model): + _name = 'l10n_br_account.invoice.invalid.number' + _description = u'Inutilização de Faixa de Numeração' + + def _name_get(self, cr, uid, ids, field_name, arg, context=None): + result = {} + for record in self.browse(cr, uid, ids, context): + result[record.id] = record.fiscal_document_id.name + ' (' + \ + record.document_serie_id.name + '): ' + \ + str(record.number_start) + ' - ' + str(record.number_end) + return result + + _columns = { + 'name': fields.function( + _name_get, method=True, type="char", + size=64, string="Nome"), + 'company_id': fields.many2one( + 'res.company', 'Empresa', readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'fiscal_document_id': fields.many2one( + 'l10n_br_account.fiscal.document', 'Documento Fiscal', + readonly=True, states={'draft': [('readonly', False)]}, + required=True), + 'document_serie_id': fields.many2one( + 'l10n_br_account.document.serie', u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id), " + "('company_id', '=', company_id)]", readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'number_start': fields.integer( + u'Número Inicial', readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'number_end': fields.integer( + u'Número Final', readonly=True, + states={'draft': [('readonly', False)]}, required=True), + 'state': fields.selection( + [('draft', 'Rascunho'), ('cancel', 'Cancelado'), + ('done', u'Concluído')], 'Status', required=True), + 'justificative': fields.char('Justificativa', size=255, + readonly=True, states={'draft': [('readonly', False)]}, + required=True), + 'invalid_number_document_event_ids': fields.one2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos'), + } + _defaults = { + 'state': 'draft', + 'company_id': lambda self, cr, uid, + c: self.pool.get('res.company')._company_default_get( + cr, uid, 'account.invoice', context=c) + } + _sql_constraints = [ + ('number_uniq', + 'unique(document_serie_id, number_start, number_end, state)', + u'Sequência existente!'), + ] + + def _check_justificative(self, cr, uid, ids): + for invalid in self.browse(cr, uid, ids): + if len(invalid.justificative) < 15: + return False + return True + + def _check_range(self, cursor, user, ids, context=None): + for invalid_number in self.browse(cursor, user, ids, context=context): + where = [] + if invalid_number.number_start: + where.append("((number_end>='%s') or (number_end is null))" % ( + invalid_number.number_start,)) + if invalid_number.number_end: + where.append("((number_start<='%s') or (number_start is null))" % (invalid_number.number_end,)) + + cursor.execute('SELECT id ' \ + 'FROM l10n_br_account_invoice_invalid_number ' \ + 'WHERE '+' and '.join(where) + (where and ' and ' or '') + + 'document_serie_id = %s ' \ + "AND state = 'done'" \ + 'AND id <> %s' % (invalid_number.document_serie_id.id, invalid_number.id)) + if cursor.fetchall() or (invalid_number.number_start > invalid_number.number_end): + return False + return True + + _constraints = [ + (_check_range, u'Não é permitido faixas sobrepostas!', + ['number_start', 'number_end']), + (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) + ] + + def action_draft_done(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'done'}) + return True + + def unlink(self, cr, uid, ids, context=None): + if context is None: + context = {} + invalid_numbers = self.read(cr, uid, ids, ['state'], context=context) + unlink_ids = [] + for invalid_number in invalid_numbers: + if invalid_number['state'] in ('draft'): + unlink_ids.append(invalid_number['id']) + else: + raise orm.except_orm( + (u'Ação Inválida!'), + (u'Você não pode excluir uma sequência concluída.')) + orm.Model.unlink(self, cr, uid, unlink_ids, context=context) + return True + + +class L10n_brAccountPartnerFiscalType(orm.Model): + _name = 'l10n_br_account.partner.fiscal.type' + _description = 'Tipo Fiscal de Parceiros' + _columns = { + 'code': fields.char(u'Código', size=16, required=True), + 'name': fields.char(u'Descrição', size=64), + 'is_company': fields.boolean('Pessoa Juridica?'), + 'default': fields.boolean(u'Tipo Fiscal Padrão'), + 'icms': fields.boolean('Recupera ICMS'), + 'ipi': fields.boolean('Recupera IPI') + } + _defaults = { + 'default': True, + } + + +class L10n_brAccountCNAE(orm.Model): + _name = 'l10n_br_account.cnae' + _description = 'Cadastro de CNAE' + _columns = { + 'code': fields.char(u'Código', size=16, required=True), + 'name': fields.char(u'Descrição', size=64, required=True), + 'version': fields.char(u'Versão', size=16, required=True), + 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), + 'child_ids': fields.one2many( + 'l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos'), + 'internal_type': fields.selection( + [('view', u'Visualização'), ('normal', 'Normal')], + 'Tipo Interno', required=True), + } + _defaults = { + 'internal_type': 'normal' + } + + def name_get(self, cr, uid, ids, context=None): + if not ids: + return [] + reads = self.read(cr, uid, ids, ['name', 'code'], context=context) + res = [] + for record in reads: + name = record['name'] + if record['code']: + name = record['code'] + ' - ' + name + res.append((record['id'], name)) + return res + + +class L10n_brTaxDefinitionTemplate(orm.Model): + _name = 'l10n_br_tax.definition.template' + _columns = { + 'tax_id': fields.many2one( + 'account.tax.template', 'Imposto', required=True), + 'tax_domain': fields.related( + 'tax_id', 'domain', type='char'), + 'tax_code_id': fields.many2one( + 'account.tax.code.template', u'Código de Imposto')} + + def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): + tax_domain = False + if tax_id: + tax_domain = self.pool.get('account.tax').read( + cr, uid, tax_id, ['domain'], context=context)['domain'] + return {'value': {'tax_domain': tax_domain}} + + +class L10n_brTaxDefinition(orm.Model): + _name = 'l10n_br_tax.definition' + _columns = { + 'tax_id': fields.many2one('account.tax', 'Imposto', required=True), + 'tax_domain': fields.related('tax_id', 'domain', + type='char'), + 'tax_code_id': fields.many2one( + 'account.tax.code', u'Código de Imposto'), + 'company_id': fields.related( + 'tax_id', 'company_id', type='many2one', readonly=True, + relation='res.company', store=True, string='Empresa'), + } + + def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): + tax_domain = False + if tax_id: + tax_domain = self.pool.get('account.tax').read( + cr, uid, tax_id, ['domain'], context=context)['domain'] + return {'value': {'tax_domain': tax_domain}} diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml new file mode 100644 index 000000000000..661d98648ca9 --- /dev/null +++ b/l10n_br_account/l10n_br_account_view.xml @@ -0,0 +1,560 @@ + + + + + + + + + + + l10n_br_account.invoice.cancel.form + l10n_br_account.invoice.cancel + +
+
+
+ + + + + + +
+
+ + + l10n_br_account.invoice.cce.form + l10n_br_account.invoice.cce + +
+ + + + + + + +
+
+ + + l10n_br_account.invoice.cancel.tree + l10n_br_account.invoice.cancel + + + + + + + + + + + l10n_br_account.invoice.cce.tree + l10n_br_account.invoice.cce + + + + + + + + + + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + +
+ + + + + +
+ + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + + + + + + + + + + + l10n_br_account.fiscal.category.form + l10n_br_account.fiscal.category + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + l10n_br_account.fiscal.category.search + l10n_br_account.fiscal.category + + + + + + + + + + + + + + + + + + l10n_br_account.fiscal.category.tree + l10n_br_account.fiscal.category + + + + + + + + + + + + + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + +
+ + + + + + + + + +
+ + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + + + + + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + +
+ + + + + + + + + +
+ + + l10n_br_account.document.serie + l10n_br_account.document.serie + + + + + + + + + + + + + l10n_br_account.document_event.form + l10n_br_account.document_event + +
+
+ +
+ + + + + + + + + + + + + + +
+
+
+ + + l10n_br_account.document_event.tree + l10n_br_account.document_event + + + + + + + + + + + + + + + + + + l10n_br_account.invoice.invalid.number.form + l10n_br_account.invoice.invalid.number + +
+
+
+ + + + + + + + + + +
+
+ + + l10n_br_account.invoice.invalid.number.tree + l10n_br_account.invoice.invalid.number + + + + + + + + + + + + + + + l10n_br_account.cnae.form + l10n_br_account.cnae + +
+ + + + + + + +
+ + + l10n_br_account.cnae.tree + l10n_br_account.cnae + + + + + + + + + + + + l10n_br_account.cnae.structure + l10n_br_account.cnae + child_ids + + + + + + + + + + + + l10n_br_account.service.type.form + l10n_br_account.service.type + +
+ + + + + + +
+
+
+ + + l10n_br_account.service.type.tree + l10n_br_account.service.type + + + + + + + + + + + l10n_br_account.service.type.structure + l10n_br_account.service.type + child_ids + + + + + + + + + + + l10n_br_tax.definition.form + l10n_br_tax.definition + +
+ + + + + +
+ + + l10n_br_tax.definition.tree + l10n_br_tax.definition + + + + + + + + + + + Documento Fiscal + ir.actions.act_window + l10n_br_account.fiscal.document + tree,form + form + + + + + Categoria Fiscal + ir.actions.act_window + l10n_br_account.fiscal.category + tree,form + form + {"search_default_approved":1} + + + + + + Document Serie + ir.actions.act_window + l10n_br_account.document.serie + tree,form + form + + + + + Eventos Eletronicos + ir.actions.act_window + l10n_br_account.document_event + tree,form + form + + + + + + Inutilizar Faixa de Numeração + ir.actions.act_window + l10n_br_account.invoice.invalid.number + tree,form + form + + + + + + Tipo Fiscal de Parceiro + ir.actions.act_window + l10n_br_account.partner.fiscal.type + tree,form + form + + + + + CNAE + ir.actions.act_window + l10n_br_account.cnae + tree,form + form + + + + + Estrutura do CNAE + ir.actions.act_window + l10n_br_account.cnae + tree + [('parent_id','=',False)] + + + + + Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree,form + form + + + + + Estrutura de Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree + [('parent_id','=',False)] + + + + + Cancelar Documento Eletrônico + ir.actions.act_window + l10n_br_account.invoice.cancel + tree,form + form + + + + + Carta de Correção + ir.actions.act_window + l10n_br_account.invoice.cce + tree,form + form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
diff --git a/l10n_br_account/l10n_br_account_workflow.xml b/l10n_br_account/l10n_br_account_workflow.xml new file mode 100644 index 000000000000..a1b5b9984a57 --- /dev/null +++ b/l10n_br_account/l10n_br_account_workflow.xml @@ -0,0 +1,79 @@ + + + + + + + Fiscal Category Approval + l10n_br_account.fiscal.category + True + + + + + + True + draft + + + + + review + write({'state':'review'}) + function + + + + + approved + write({'state':'approved'}) + function + + + + + unapproved + True + write({'state':'unapproved'}) + function + + + + + + + fiscal_category_review + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_approved + + + + + + fiscal_category_unapproved + + + + + + fiscal_category_unapproved + + + + diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py new file mode 100644 index 000000000000..fabe3a0abbe1 --- /dev/null +++ b/l10n_br_account/product.py @@ -0,0 +1,49 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from openerp.osv import orm, fields +from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT + + +class ProductTemplate(orm.Model): + _inherit = 'product.template' + _columns = { + 'fiscal_category_default_ids': fields.one2many( + 'l10n_br_account.product.category', 'product_tmpl_id', + u'Categoria de Operação Fiscal Padrões'), + 'service_type_id': fields.many2one( + 'l10n_br_account.service.type', u'Tipo de Serviço'), + 'fiscal_type': fields.selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), + } + _defaults = { + 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT + } + + +class L10n_brAccountProductFiscalCategory(orm.Model): + _name = 'l10n_br_account.product.category' + _columns = { + 'fiscal_category_source_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Origem'), + 'fiscal_category_destination_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Destino'), + 'product_tmpl_id': fields.many2one( + 'product.template', 'Produto', ondelete='cascade') + } diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml new file mode 100644 index 000000000000..48106c3ba419 --- /dev/null +++ b/l10n_br_account/product_view.xml @@ -0,0 +1,46 @@ + + + + + + l10n_br_account.normal.form + product.product + + + + + + + + + + + + + + + + + + + + + l10n_br_account_product_template_form_view + product.template + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py new file mode 100644 index 000000000000..31e2d4b4ca08 --- /dev/null +++ b/l10n_br_account/res_company.py @@ -0,0 +1,67 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from openerp.osv import orm, fields +from openerp.addons import decimal_precision as dp + +COMPANY_FISCAL_TYPE = [ + ('1', 'Simples Nacional'), + ('2', 'Simples Nacional – excesso de sublimite de receita bruta'), + ('3', 'Regime Normal') +] + +COMPANY_FISCAL_TYPE_DEFAULT = '3' + +SQL_CONSTRAINTS = [ + ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id, company_id)', + u'Imposto já existente nesta empresa!') +] + + +class ResCompany(orm.Model): + _inherit = 'res.company' + _columns = { + 'service_invoice_id': fields.many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal'), + 'document_serie_service_id': fields.many2one( + 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id),('active','=',True)," + "('fiscal_type','=','service')]"), + 'annual_revenue': fields.float( + 'Faturamento Anual', required=True, + digits_compute=dp.get_precision('Account'), + help=u"Faturamento Bruto dos últimos 12 meses"), + 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, + u'Regime Tributário', required=True), + 'cnae_main_id': fields.many2one( + 'l10n_br_account.cnae', u'CNAE Primário'), + 'cnae_secondary_ids': fields.many2many( + 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', + 'company_id', 'cnae_id', u'CNAE Segundários'), + 'ecnpj_a1_file': fields.binary('Arquivo e-CNPJ A1'), + 'ecnpj_a1_password': fields.char('Senha e-CNPJ A1', size=64), + 'fiscal_rule_parent_id': fields.many2one( + 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', + domain="[('parent_id', '=', False)]"), + } + _defaults = { + 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, + 'annual_revenue': 0.00, + } diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/res_company_view.xml new file mode 100644 index 000000000000..3843286ffedb --- /dev/null +++ b/l10n_br_account/res_company_view.xml @@ -0,0 +1,43 @@ + + + + + + l10n_br_account.company + res.company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py new file mode 100644 index 000000000000..42d70d08560d --- /dev/null +++ b/l10n_br_account/res_partner.py @@ -0,0 +1,375 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from openerp.osv import orm, fields + +FISCAL_POSITION_COLUMNS = { + 'name': fields.char('Fiscal Position', size=128, required=True), + 'fiscal_category_id': fields.many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal'), + 'fiscal_category_fiscal_type': fields.related( + 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, + relation='l10n_br_account.fiscal.category', store=True, + string='Fiscal Type'), + 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo'), + 'type_tax_use': fields.selection( + [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], + 'Tax Application'), + 'inv_copy_note': fields.boolean(u'Copiar Observação na Nota Fiscal'), + 'asset_operation': fields.boolean(u'Operação de Aquisição de Ativo', + help=u"""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS."""), + 'state': fields.selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True), +} + +FISCAL_POSITION_DEFAULTS = { + 'state': 'draft', +} + + +class AccountFiscalPositionTemplate(orm.Model): + _inherit = 'account.fiscal.position.template' + _columns = FISCAL_POSITION_COLUMNS + _defaults = FISCAL_POSITION_DEFAULTS + + def onchange_type(self, cr, uid, ids, type=False, context=None): + type_tax = {'input': 'purhcase', 'output': 'sale'} + return {'value': {'type_tax_use': type_tax.get(type, 'all'), + 'tax_ids': False}} + + def onchange_fiscal_category_id(self, cr, uid, ids, + fiscal_category_id=False, context=None): + if fiscal_category_id: + fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( + cr, uid, fiscal_category_id, + ['fiscal_type', 'journal_type'], context=context) + return {'value': + {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} + + def generate_fiscal_position(self, cr, uid, chart_temp_id, + tax_template_ref, acc_template_ref, + company_id, context=None): + """ + This method generate Fiscal Position, Fiscal Position Accounts and + Fiscal Position Taxes from templates. + + :param chart_temp_id: Chart Template Id. + :param taxes_ids: Taxes templates reference for generating + account.fiscal.position.tax. + :param acc_template_ref: Account templates reference for generating + account.fiscal.position.account. + :param company_id: selected from wizard.multi.charts.accounts. + :returns: True + """ + if context is None: + context = {} + + obj_tax_fp = self.pool.get('account.fiscal.position.tax') + obj_ac_fp = self.pool.get('account.fiscal.position.account') + obj_fiscal_position = self.pool.get('account.fiscal.position') + obj_tax_code = self.pool.get('account.tax.code') + obj_tax_code_template = self.pool.get('account.tax.code.template') + tax_code_template_ref = {} + tax_code_ids = obj_tax_code.search( + cr, uid, [('company_id', '=', company_id)]) + + for tax_code in obj_tax_code.browse(cr, uid, tax_code_ids): + tax_code_template = obj_tax_code_template.search( + cr, uid, [('name', '=', tax_code.name)]) + if tax_code_template: + tax_code_template_ref[tax_code_template[0]] = tax_code.id + + fp_ids = self.search(cr, uid, + [('chart_template_id', '=', chart_temp_id)]) + for position in self.browse(cr, uid, fp_ids, context=context): + new_fp = obj_fiscal_position.create(cr, uid, + {'company_id': company_id, + 'name': position.name, + 'note': position.note, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': position.cfop_id and position.cfop_id.id or False, + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) + for tax in position.tax_ids: + obj_tax_fp.create(cr, uid, { + 'tax_src_id': tax.tax_src_id and tax_template_ref.get(tax.tax_src_id.id, False), + 'tax_code_src_id': tax.tax_code_src_id and tax_code_template_ref.get(tax.tax_code_src_id.id, False), + 'tax_src_domain': tax.tax_src_domain, + 'tax_dest_id': tax.tax_dest_id and tax_template_ref.get(tax.tax_dest_id.id, False), + 'tax_code_dest_id': tax.tax_code_dest_id and tax_code_template_ref.get(tax.tax_code_dest_id.id, False), + 'position_id': new_fp + }) + for acc in position.account_ids: + obj_ac_fp.create(cr, uid, { + 'account_src_id': acc_template_ref[acc.account_src_id.id], + 'account_dest_id': acc_template_ref[acc.account_dest_id.id], + 'position_id': new_fp + }) + return True + + +class AccountFiscalPositionTaxTemplate(orm.Model): + _inherit = 'account.fiscal.position.tax.template' + _columns = { + 'tax_src_id': fields.many2one('account.tax.template', 'Tax Source'), + 'tax_code_src_id': fields.many2one('account.tax.code.template', + u'Código Taxa Origem'), + 'tax_src_domain': fields.related('tax_src_id', 'domain', + type='char'), + 'tax_code_dest_id': fields.many2one('account.tax.code.template', + 'Replacement Tax Code') + } + + def _tax_domain(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + tax_domain = False + if tax_src_id: + tax_domain = self.pool.get('account.tax.template').read( + cr, uid, tax_src_id, ['domain'], context=context)['domain'] + + if tax_code_src_id: + tax_domain = self.pool.get('account.tax.code.template').read( + cr, uid, tax_code_src_id, ['domain'], + context=context)['domain'] + + return {'value': {'tax_src_domain': tax_domain}} + + def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, + context=context) + + def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, + context=context) + + +class AccountFiscalPosition(orm.Model): + _inherit = 'account.fiscal.position' + _columns = FISCAL_POSITION_COLUMNS + _defaults = FISCAL_POSITION_DEFAULTS + + def onchange_type(self, cr, uid, ids, type=False, context=None): + type_tax = {'input': 'purchase', 'output': 'sale'} + return {'value': {'type_tax_use': type_tax.get(type, 'all'), + 'tax_ids': False}} + + def onchange_fiscal_category_id(self, cr, uid, ids, + fiscal_category_id=False, context=None): + if fiscal_category_id: + fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( + cr, uid, fiscal_category_id, ['fiscal_type', 'journal_type'], + context=context) + return {'value': + {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} + + #TODO - Refatorar para trocar os impostos + def map_tax_code(self, cr, uid, product_id, fiscal_position, + company_id=False, tax_ids=False, context=None): + + if not context: + context = {} + + result = {} + if tax_ids: + + product = self.pool.get('product.product').browse( + cr, uid, product_id, context=context) + + fclassificaion = product.ncm_id + + if context.get('type_tax_use') == 'sale': + + if fclassificaion: + tax_sale_ids = fclassificaion.sale_tax_definition_line + for tax_def in tax_sale_ids: + if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: + result.update({tax_def.tax_id.domain: + tax_def.tax_code_id.id}) + + if company_id: + company = self.pool.get('res.company').browse( + cr, uid, company_id, context=context) + + if context.get('fiscal_type', 'product') == 'product': + company_tax_def = company.product_tax_definition_line + else: + company_tax_def = company.service_tax_definition_line + + for tax_def in company_tax_def: + if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: + result.update({tax_def.tax_id.domain: + tax_def.tax_code_id.id}) + + if context.get('type_tax_use') == 'purchase': + + if fclassificaion: + tax_purchase_ids = fclassificaion.purchase_tax_definition_line + for tax_def in tax_purchase_ids: + if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: + result.update({tax_def.tax_id.domain: + tax_def.tax_code_id.id}) + + if fiscal_position: + for fp_tax in fiscal_position.tax_ids: + if fp_tax.tax_dest_id: + if fp_tax.tax_dest_id.id in tax_ids and fp_tax.tax_code_dest_id: + result.update({fp_tax.tax_dest_id.domain: + fp_tax.tax_code_dest_id.id}) + if not fp_tax.tax_dest_id and fp_tax.tax_code_src_id and \ + fp_tax.tax_code_dest_id: + result.update({fp_tax.tax_code_src_id.domain: + fp_tax.tax_code_dest_id.id}) + + return result + + def map_tax(self, cr, uid, fposition_id, taxes, context=None): + result = [] + if not context: + context = {} + if fposition_id and fposition_id.company_id and \ + context.get('type_tax_use') in ('sale', 'all'): + if context.get('fiscal_type', 'product') == 'product': + company_tax_ids = self.pool.get('res.company').read( + cr, uid, fposition_id.company_id.id, ['product_tax_ids'], + context=context)['product_tax_ids'] + else: + company_tax_ids = self.pool.get('res.company').read( + cr, uid, fposition_id.company_id.id, ['service_tax_ids'], + context=context)['service_tax_ids'] + + company_taxes = self.pool.get('account.tax').browse( + cr, uid, company_tax_ids, context=context) + if taxes: + all_taxes = taxes + company_taxes + else: + all_taxes = company_taxes + taxes = all_taxes + + if not taxes: + return [] + if not fposition_id: + return map(lambda x: x.id, taxes) + for t in taxes: + ok = False + tax_src = False + for tax in fposition_id.tax_ids: + tax_src = tax.tax_src_id and tax.tax_src_id.id == t.id + tax_code_src = tax.tax_code_src_id and \ + tax.tax_code_src_id.id == t.tax_code_id.id + + if tax_src or tax_code_src: + if tax.tax_dest_id: + result.append(tax.tax_dest_id.id) + ok = True + if not ok: + result.append(t.id) + + return list(set(result)) + + +class AccountFiscalPositionTax(orm.Model): + _inherit = 'account.fiscal.position.tax' + _columns = { + 'tax_src_id': fields.many2one('account.tax', 'Tax Source'), + 'tax_code_src_id': fields.many2one( + 'account.tax.code', u'Código Taxa Origem'), + 'tax_src_domain': fields.related( + 'tax_src_id', 'domain', type='char'), + 'tax_code_dest_id': fields.many2one( + 'account.tax.code', 'Replacement Tax Code') + } + + def _tax_domain(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + tax_domain = False + if tax_src_id: + tax_domain = self.pool.get('account.tax').read( + cr, uid, tax_src_id, ['domain'], context=context)['domain'] + + if tax_code_src_id: + tax_domain = self.pool.get('account.tax.code').read( + cr, uid, tax_code_src_id, ['domain'], + context=context)['domain'] + + return {'value': {'tax_src_domain': tax_domain}} + + def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, + context=context) + + def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, + tax_code_src_id=False, context=None): + + return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, + context=context) + + +class ResPartner(orm.Model): + _inherit = 'res.partner' + _columns = { + 'partner_fiscal_type_id': fields.many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', + domain="[('is_company', '=', is_company)]") + } + + def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, + context=None): + """Define o valor padão para o campo tipo fiscal, por padrão pega + o tipo fiscal para não contribuinte já que quando é criado um novo + parceiro o valor do campo is_company é false""" + result = False + ft_ids = self.pool.get('l10n_br_account.partner.fiscal.type').search( + cr, uid, [('default', '=', 'True'), + ('is_company', '=', is_company)], context=context) + + parnter_fiscal_type = self.pool.get('res.company').read( + cr, uid, ft_ids, ['id'], context=context) + if parnter_fiscal_type: + result = parnter_fiscal_type[0]['id'] + return result + + _defaults = { + 'partner_fiscal_type_id': _default_partner_fiscal_type_id, + } + + def onchange_mask_cnpj_cpf(self, cr, uid, ids, is_company, + cnpj_cpf, context=None): + result = super(ResPartner, self).onchange_mask_cnpj_cpf( + cr, uid, ids, is_company, cnpj_cpf, context) + ft_id = self._default_partner_fiscal_type_id( + cr, uid, is_company, context) + + if ft_id: + result['value']['partner_fiscal_type_id'] = ft_id + return result diff --git a/l10n_br_account/res_partner_view.xml b/l10n_br_account/res_partner_view.xml new file mode 100644 index 000000000000..6861c5ea69bb --- /dev/null +++ b/l10n_br_account/res_partner_view.xml @@ -0,0 +1,153 @@ + + + + + + l10n_br_account.fiscal.position.template.form + account.fiscal.position.template + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + +
+
+ + + l10n_br_account.fiscal.position.tree + account.fiscal.position + + + + + + + + + + l10n_br_account.fiscal.position.form + account.fiscal.position + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + +
+
+ + + l10n_br_account.partner.form + res.partner + + + + + + + + +
+
diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv new file mode 100644 index 000000000000..d01c35885077 --- /dev/null +++ b/l10n_br_account/security/ir.model.access.csv @@ -0,0 +1,35 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"l10n_br_account_partner_fiscal_type_manager","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 +"l10n_br_account_partner_fiscal_type","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","base.group_partner_manager",1,1,1,1 +"l10n_br_account_fiscal_document","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_manager",1,1,1,1 +"l10n_br_account_fiscal_category","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_manager",1,1,1,1 +"l10n_br_account_document_serie","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_manager",1,1,1,1 +"l10n_br_account_product_category","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_manager",1,1,1,1 +"l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_manager",1,1,1,1 +"l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 +"l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 +"l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 +"l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 +"l10n_br_account_document_serie_user","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_user",1,0,0,0 +"l10n_br_account_product_category_user","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_user",1,0,0,0 +"l10n_br_account_cnae_user","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_user",1,0,0,0 +"l10n_br_account_service_type_user","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_user",1,0,0,0 +"l10n_br_account_partner_fiscal_type_invoice","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_invoice",1,0,0,0 +"l10n_br_account_fiscal_document_invoice","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_invoice",1,0,0,0 +"l10n_br_account_fiscal_category_invoice","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_invoice",1,0,0,0 +"l10n_br_account_document_serie_invoice","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_invoice",1,0,0,0 +"l10n_br_account_product_category_invoice","l10n_br_account.product.category","model_l10n_br_account_product_category","account.group_account_invoice",1,0,0,0 +"l10n_br_account_cnae_invoice","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_invoice",1,0,0,0 +"l10n_br_account_service_type_invoice","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_invoice",1,0,0,0 +"l10n_br_tax_definition_manager","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_manager",1,1,1,1 +"l10n_br_tax_definition_user","l10n_br_tax.definition","model_l10n_br_tax_definition","account.group_account_invoice",1,0,0,0 +"l10n_br_tax_definition_template_manager","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_manager",1,1,1,1 +"l10n_br_tax_definition_template_user","l10n_br_tax.definition.template","model_l10n_br_tax_definition_template","account.group_account_invoice",1,0,0,0 +"l10n_br_account_invoice_invalid_number_manager","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_manager",1,1,1,1 +"l10n_br_account_invoice_invalid_number_user","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_invoice",1,0,0,0 +"account_tax_computation_user","account.tax.computation","model_account_tax_computation","account.group_account_invoice",1,0,0,0 +"account_tax_computation_manager","account.tax.computation","model_account_tax_computation","account.group_account_manager",1,1,1,1 +"l10n_br_account_invoice_cancel_user","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_invoice",1,0,0,0 +"l10n_br_account_invoice_cancel_manager","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_manager",1,1,1,1 +"l10n_br_account_document_event_user","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_invoice",1,0,0,0 +"l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml new file mode 100644 index 000000000000..f058a1129518 --- /dev/null +++ b/l10n_br_account/security/l10n_br_account_security.xml @@ -0,0 +1,33 @@ + + + + + + + Tax Definition Template multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Tax Definition multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + + + + + Document Serie Company multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + + diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py new file mode 100644 index 000000000000..390a02291068 --- /dev/null +++ b/l10n_br_account/sped/__init__.py @@ -0,0 +1,21 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +import document +import efd diff --git a/l10n_br_account/sped/document.py b/l10n_br_account/sped/document.py new file mode 100644 index 000000000000..9c9e5e97febb --- /dev/null +++ b/l10n_br_account/sped/document.py @@ -0,0 +1,42 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2013 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + + +class FiscalDocument(object): + + def __init__(self): + pass + + def _serializer(): + pass + + def _deserializer(): + pass + + def get_xml(): + pass + + def set_xml(): + pass + + def get_txt(): + pass + + def set_txt(): + pass diff --git a/l10n_br_account/sped/efd/__init__.py b/l10n_br_account/sped/efd/__init__.py new file mode 100644 index 000000000000..744c624b8ebe --- /dev/null +++ b/l10n_br_account/sped/efd/__init__.py @@ -0,0 +1,18 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2012 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### diff --git a/l10n_br_account/static/src/img/icon.png b/l10n_br_account/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d43df0f9de6e41bd26e9a8fc2e76c5195fe5b073 GIT binary patch literal 11654 zcmai4^-~Dn zQIwU|_FFy6_Ybqy35G~Q@&Yf`9O`P%k10CrJ7BF-5#2RralVje%zk8Wz#V22Q6nFo zD9WB~GvjlajU`F^5B%7M$UkDCErm;HpJNkqZgW(2R9jX1y72Y98}f4aJ#b6+wyL@V z7XB*avSN2}WApKK%JuOr1mautiQ-rzMr6Ji)4SsT8r~>>uG;8Vo*EKVy7lYXI(U?p zc07Yuii4q6Xw!Rj9f1pxI5#xd6^EF9R4?Jqdk=9)-BaHWfx$hJIYuY0~a-TBjc zIFKu>(`}1dFJ$JMrp*%k{_Wf!2*&Lh-sA9a{Kr=Bt)sS zBX9GJ`aLkQBO*BddMOwt4b~^%@C?=%t(1W<0<^|5t_!PFRk~9LS*Ht(M=8l%fA` zG#0hG6QUSdrQ&s*rriu8KsL<1A-7bd{$s#!XYDG3i)>yi3X z*2S@ja976~3e?Em=N@TVxMrN5^5G_5J97r6DtRbYc0w)ja`_XMMjj?K2;L%YkjJ6~ z;S-~}9_Bj_Y5Ho7Ch3iN`dks8w1Bd&siZOdH>cn!`x?X0brez8$EEu!=wP|O#7~&O z?`$wt%=*K)y5lNI6gDq2UgGIm;Ez~NB!a@Uw7-t;b%CMP!8iso7ON(#lY+umpbA23 zdeDjNszZhDsVcxmWwq;GbKp;Gx`R5Q!8!VuYy27+2TOh|8v-2q-OC`;!?H5sMqP|r z17(Sy_ra3-*`qeo<5nwgP@-YFFZ>11+w5qjeU3p*h(RUYVMQ}?8g9SM5!?lEy7(6L zstE4>V3>dc*p%oczBy1}@2wo zVxZrmd0FOYg?7mWP#fG6n*<05XTaOmJa%V0$y_w~NpUO$HA#5vDLmR_--xVcz$pti;hRmO57*VH|)bnf+)EkaZ7AoV&qam?L*5 zrlqw)^ACtwN;x?i@(U5kqMn4Sz(2^g2j5F7`TKNmc&%QKc;C-;I%KI7qq*~k*V4D~ zx#MfHPiYq97mM-AX{!ctN~V>}EUCA2=2GiP1)7Y5;!^CY0JMMTVk+=$aUj(Bd@Hps zPfIl=Gm>FMR&D}iV!WU19U@ksU&e-nf9ab8t$jRj4<0LwGNr1~>*etsKM=5ql0@SD z25&oAyo2Pu;2!OOT=I-m)7t>5Ex}5dk8l7G115UN_6`yv@I!gp%F#38*8OF0UG3sm zh95di2bX_NoVNjR+kpG)OL!{DJ$`Q5g+4>Nsk%al1(uuz$4jDm3KW?~0(?JfSnj7p zHwj1|h?2;z`JV7%n3n_<;}I@Y5ui@H{fa=nfDJ}oh9P=xn^CBig@0Jt56O0tO1ajW zWV}7mQ3Z8`IZYv*FqSdsJZIlLQD1WPz?xcmVHLne4f#ab+6_%)0nBC=00 zm7-}A#R~s|sUUp&x?8WL&0L}y|G+GrEenH9!!}JL@JmEgZadH~yx%T~uNY?0aJL># zX{JCv5GDS|>G$t&g)B<(navedq~RePT0%*(QbRe*5*9!uN|k35lO>_Zw@HRRFtK`x zDgy!b@cO>_Sd*6bdlB$un43wNq0rfbfxungCg29fFt_E74(iM{1-3KA%W?|#QCJYJ z0csX-qXi}89CzxnIM|OitL9@?DH@nlz&%#MaUghYgpDkW0eb=3{Q`pg9Xnq>f+?Ly93Xt5@VSZ z83qFmS_Y=JJ_jxR(r)SGee%D^P{M68b2%(m@17yV(%QPik0n7s?A#Slrg^-ioBTI* z>9iXfv6wY1ynAd^1)8S~SKv`I;c~UhAC%W|a&S9DK)EIRxV7YZ5Qpca-7nAWPK*o7i2sb%xOlzT12~YOkI^~EcGr8hg2T+aOTP&op!wE4MtsUE={u{?@*;;T8FQeof0KT z8g9*8xbkCKv|H6%T8BcdChUxS`Jr_AH(pnU>4b7enja1pIfiVMuB7G*aDsxv;||#{ z-(ALYhbY%{c_2HuN}y^#d-%*sfBnZVJ6iVo4!A%i`ch4{okJTYb%=%`J&y93H7S?E znXW{VMUKEqUleKcQG&3ngL|`59v;0Ay2qMB z-RyHqXN-mPsOHywhlaokfO~oQ2cWk1P;s+N^*jyxetoL7%Q4p!!y9hG4xV>+4;u!x z_q4vO#t-nKce(5WMbvMD>TpLCeeU;m)C{v_1tpKloVF_ZVZ)qAuOrQYD1!=Xs3QAy zk((99-A7ayTDy{yvUM~uC#URO=3R?~i$FG)b$uSPWwX#=`A)Bv>Uk&nUS;FFQVwkX zbmgPPtd1!zgPh{}%T+p=UG-1o@1r5~iWq>>RXXBymjbuq$568ROR&oD3#rP@PK+uS&|nc zN`#4wgk>Rc}6Y<37!G-`Be-~Nc5jK39}Mu5_Z3|X6P zu_J|&xeNOJ5P{xs3AXS7dYE)m+~Qy9(Fd)^J6n-)wS38BBcHUF6zz_3Y`Qfu6^(|} z7A~|tYOCSa8Og?eO7O&#ylR*#P9K=I8o9sSs~Pe``cs-J1`C_jY9r0Ouqds^PO0Hh z@VR{VqSB4+w@8hry@zszu1t+GxvM3*G{^TQOu!^g(AxoW7#p4XmWf)9#S5nRQ9QM( z9HT}DU5&gDBg&r)@HKp1OXat=7sbDzgc#AZ2m2~?ZT1cJ-{yICVTK)FDaeR-*fsbk zbvP*kavb36`O{`1yDKdF=)9UR>)2mU?ZV2Nl#2{iWekf;leu3mSEDGV=i44v2r1?r zQ9t8(GuyfG;k5zrmZAHF(zDWItj=A0XQtyL62)BgyzhmI_zF0Hqsmg3K6%AMA7Ou7 z!$pMo(@;iqKY9NTN_d%v#DP{=wAdNrinCRQlx!EER(1uPci+ETOXy7XUq;sVKfnki zlUY9u)50{SV`xy&_ys&g4m6a)f3JbfAq=Rn>9>31qtc@|fu^haEQq`$DORmIoF6nw zxB9`T4pDe~sH>Ml%%NO2f722g%q3Yryf^&Jbe84yA*#EGt?Q9t&gM?Jb4Bu^E18B zD-VQ4r(pC*&dIsj7q(RV9D( zXlQ>gngh*@uL4iWi$UpCILMKUxS|UDjj|t=4}$<`j-JMhXU`jx-+`tLHfq6F&mLCP z6+^`p+@Yx=FNEJ_i|O+@5Q@E3rZOvJ-5Wc6+quaw0!{Id8L`z>zw|gG!2m2$mr)ix z_(ySsXzIFk#6vE@`DrDr=UL>hG;U@%uqn~DOQ*1G3b4(xuoUK5NJ}4;d-F7sEM*uU z9^sTe80FP&8R|A=O5Sm$ClK8; zmqrxyywk={VRX*`@lQ<{k@EaFmtBxA8qD;S7>@>zZV5JKjW9|89`;NRgMJ)7 zrzCulsYr_=M=0QEj+F7=o*5?GVXOp2%Silt-G)~w;8!!e^t?{|q>n6V5t$&q^d#|! zLI+nw49fZb}3>dt}%`ltQy19+?~D$+4=qmx%gahsZ~d5UKaYks2k=zkK5elj*1kMeiZ{;Hp`0^Yv%#@^Z;U7YGOWTc&y(D zbS}bxuq7X;VmNUEQnQ(lA_`Qdc5TJdDApSHAJ@g=;p>#+uMJp2TE9o%W7Za^s8~0^~*M>AzLa4 zH`;H}6>G-Vv&hr@9@7voC{qdN)-eI)LT)^Hh@E9{|r|-M3JI~&$V?Dvn;{@kzp}UoWnFd z3b^-Tml^#aMv2ZNUvTspIRb8Q*!5SS8FJW495<%8zPVMc>@1npXUH;k5-v6figdVu zI?%|{xhfitHuxOH)X)qkpL8vvW~E9ntjnZh$zrY|P=eeg|0hx3UWvs_^MKg~X#|7t zuW5HOD7SS^v>7+-r~%dqpSOUSOOIt&hyPPZqGVu-)VFNC2OV|PcB?bpakyf+dIr}X zn!1>9g)v%YJ14^W8UMdR;hOgoj`hy$e7dy1m3Yf}RZht1%SUc+njV`W4FP{pZff-v z%QRq$eBEL<2|ker*I&u`pmoi@k%^R@(NC5%Nuc+)0d{dQGt(jR&&H zMr0QBt2Xrly48_TY6d&haH*){DH<{Y=y(u>0F}pKxDo*U8S~#p^cD^Qne9rEcepKL zwr=!G#zD0DC6r5Xfx57F-L*j0PL6Ek4+~5;OjKxycPBMn=5iS=;5x)@e zFb68~&%;Ri^RLyTy?Fl)ncgR|p@h04wO=b?`10B)nlzdOl`;eG-kISZEE7`i$4 zf{&Dk+6BuR4(qA8*8>1tG5K5|&* zODqhQU#{?WeqVU1f&8~Gluu8&$gi<>74hOY=RtdqLC15_;Ib+^$s$7_4;=yKmOJ@y z;WhSqK++z0g`J{FCvY~MN7B+8wU>zNP z3sy(FdFrBWRn4r}gP-6{A}biiy8G_tb}bDS5R>u?0D)X;(Z9bD>HqO&g@-57xQ%AI z!CK_M>=*xDl(#F{b()md0W36@e1?;~?AY76%{4n7x?GbCrxN?|kpfeVVt=>66?!-S zY>HXB)d4G&hPS+`Wx9$0n-GnBJHOv_+GLhTxzXPd4u?c3E+wR0Dd<{*u}eVIAMH|q z=+{-nP)Af5@*<&p=a+mU4XM#5zSM0mj1dNkg5Z;BSUiQelS zQC~(D;x~K-l&ieQLC27b41H->Qu=R>02 zk0?%G9~ljLT?pfLF44*L!s_y|_H-VmT--VVm6}54SwAvsTV2?-#=jXq8mwB#u&v~3}-`n)0iSH4wQOc&mq^}PU>uKG^EPbC*^{x(}?-PBjxB% zHByDFc18Tkdj3sjqJ0FlZo3fum@6Q7j=$v8MA4gJcvl7?ujlHB>4`l5yS0{ zhsG3Un|rV>YLEohxHvd`eL#_6PIklgMtI9|ouES<%gxdeqOyBu8pCRY;+dD&aYgHSq;?HY_BQMnjPr!z$VYK}_$QkAu^ zSsQV2F<-F~MJknCtDqf2xb(wN8vN&m2#(`se9QOVyjYjN08T5j<$Eo3DL{z&UdDy)|!Y${6VZQa9zXfiVpI8E86Y z+H?4cUB29S&D7N1qes2ywt4nggwaDhzEUo=&l;_dmU5?Q2?hV{_>!Ui(lmw&Y^QoR zZ$8wYjhE_VTLY!>6BAdwr@wO!TuYW;=! z%_b~ecHAq})YpB&?2Y)d^&k=Qw4jb{*+#P--AH3w=uP?Q`7Lg4qRj)2#98){L0kR; zhrLtx_Tk>uWJM?H6)m-I(d2Cy23{iJ=&2uVMN(iic<|ZZc5}}YFd1|^{66qV~^1i1+ z=BUR!5qI~mW!|e~Z~r}mAh%ZddXdEvxOZ3FRwDYn=bnq-nIs$C_C9&)tm|Utbh1++ z0ju}s1WQjK=#Ila9&TO+gBnfzet50N}=kd zU}5fVJ0rf-V;tSjH?jM?FXzktSt}Nii`)LBw*B{bEj304+w>4;smlE<2y=uKbnM-W zJoM$wwb+x=Hm^0JI^;&OA``9a0io%p#~({F4&#w}8p-9AIK$UOmfowWq-lYoQ$e|P zv%XVkl@M98s-2}R93hr1>5a{oYQ)qhC!eFy_S(dQB_&A?XOoa-*4RUs<{EjCbHPX(a~3a1s20+F(Wp?L6Wl{3T%l*Axa$8wjLzGUn?h)zx@Gz9S^*w2zwk)SzGlZ zEy`?O5xrYsLtarexEkA|gP?M5ef*rY%j|s$6tF|Axy*HKiz(cA^1!4Zw>%gV1KTk$ zvTCz%XT)2twMgHc=gY_vla4h6c!$q6uyBe!tI5Kp<8lrByhGgzB1Sc_bS{s@Zcm}= zb{Mng7ke9h&7 zCFcC{s>us0ZGkw3AmIj`j%7ir*KKgn33pyYM1fOf*!xncFR!5F<@@{~QDeNOivRV{ z2JAoRNTqac9kl7^+^0u{{&)K60nEq++oKk8_#$Qr;FcgXh8|l3zUAs6wR%DT_K#-Q z3|c%?N)n6eXN9)ZsD8JtZ&X^LlCT9kgRTBfuSkPPE;>Q3kht~6);#10KWaoAtV`tP z;lj`xhb!Ub-rf;o-=wPuqMFL@-cA&NAJ)%z{9>1VAOC1s_dFh4%q&>qh)G;|ekW5v z7oHx}qU^bYHZNU4LDPMgP@>?s!|6hy!a~Gt>)~g|bj>=?{dSwiQu})1q18;f?|edL0Y&XWmH#7ZV)&-?zW$Jg{{LE+A)R_0pq?Y}6c0DG%5 zDtgqPhu99J-jM$MI#1r-Y+NV)nGGK__F(sOh>a zC|=Gz#jwp!GVNOmgfhBxg$so?B!V7nb_(yMTRDL$wXX5m+Hl--XF-fvkS-k$F`>ks-xW`+jEsbGK*I3_FBlC6m4-;mx7&9b?aEY zARWI!hGN0$nMH2B7B62Cj?g}634F>e>4eWzgyxM^z+cpkio{d8WJ@(tF$C7+1hoJP zJ+X&xW9hC6Z-3V%NuN$Ok_uIc!3%Lw2 zP(D8zYb$yF<{2=;_w>DGSsa3HIPUZoJe>Tz$a*(9>x^1zXJYH_E@N9ZZffGGNJ1ng z{{XxUmRxa=SW)dfuU`;2Angs!%jIZ~8#snLG3mf`-J`yL8Q(Y!VA_AtD^%L|YTQ*o zA#&+S!Jv87=l^bvHLi-6GE3mmk1CrtL!3#Kdd;3Q_yp*TBT?;e1 zUn3`~B{p>U@*6WKUl{xHy4}g?pS10O$^0(IHpDI>dD|Yyh8O}69XY7RvwqM2Q{ph3{hDiD`4-O8-B3}eg2a-@x zF+N|j4ZrU|+p4Ou8gb<|$FJMJN(>9HsoR_-Ka&zqG@OxF83w?`&+E3#yR0qatuNf+ z%!fG|A6==ieE1QH#m~<>P!-N!A?mnp1-r*VHsmO$oB@v7XC zr1PtSTo{xA1B3qbUoC(RsR&>WLzdtiWf$fu;UMHWWJJATXyvN2(CoODY&m#{DAmHrzmc#?KYv}WuLAwWiyHRpO1NYbg&yWQU ze%GZXXQ}Te*W8eN)FhkzJE|RPI4AspFBcT+&4vJf;V(cGbLHr|QIwhmoQmdyqc8XE z&%O~MWJRNRC3_~1gaaNZK>m_e6ICI>?(ICCHPfj+MO)A3!q>N7(+RE*Uqc{t&&!S0 zXx-i2>!I(jF!%{_(S^Jdi(6~*)5qrl5G=;zWpLh1C|q|S)nNwGr}Z(K-7E485@oj8 zFAgw@nQSHatJhq1>B(edqktwr6qN5JIa*`nj|7Z{dPED!W{89uiM-Edirr_xU*Q8I zwdb>Y_cPHcXW>>p{{Fqt=UF-lj-?HCiO{U#Vw$_tm9&Yc^tT5;xr1n=FZPj#pMB7h zN@8yv!7CjhS+&K|HkjXWekubaYBQN(K*5k^fe-EE;XGOGT;Wt&9Gy=rc#7hG<;Na~ z1%W{UeeVj2C#FF-*$cTV*GbbYPrlFhR}V?=6T(!F48B2kSQRQsJJ#1K=bKSYa{`(Y zMhLd-E!fnwr)#a8E03ap3zN5d@~2(V(IvwHrMcTdgBTEDonw6MCU76kpbV4pBU^_1 z;+zxGmyZXQZ1|Y?n?<7}%(zxGIrGHY9Ij;ZnRQ=>bbH#6?c|57O z!M~a`1}YZ}-tZkmdUos;`dzuwbH^&2cI7NT%>HqysdM}b0l|Mr9~PsP5|(-vHrs7C z7{sP6Pw!4nE;{vBUm9|2cm9d_<-BKhh@0&ynusto-b{39%U^t$DpZWIZqgl+?|XH? z8Jc~2vQ(13`={`YZ_`&I^64k1SsI~hX?_`Zk9tc=x$6-1;K`E4-=i|aO3i}oG9$KK zO?<9?RKuQF6BXhvM8wixR-sSG)#3p0@6@@frBl~Xpc!y*g&0TgUqbL-#y-t62?COf zkR=yrSr%eQ{`C~nYUn7oHS9;Znq>t!IXrRf_5spY={C5pH+qcvMN{Vv68|yrne%ie z$BQzrqQon60CNAMyVGh{C)Lc2n}lPM=$xF6jJpfI37RTyGfon{Qh(kQzRmY=R4)zM z?#~?V9KN7GLD99xoHBTG@d_J_TNBz#XSbk8*;9ug5up9c9vP>qAKndc@>6gD(zJ|)JmScWq#a_Dac_0y39%f z@!8pVeKw6uVi76~1QAwu@(V1075iNW0>B>;nCThbndzJ)GUl5bKA$F+0jxcyUq)=2 zc?C8BL3v8d?z%kfIZVknp`jyYC-Q&%iLgR(>rb5{ z&ms1CsVU)Iu3vn-gTF^;SUf$M0GC09DiZ2Fe(ZQ{bD#|+;WDwEqPJ$GpKOxmXD zk+$-_hl;v-Q{eqMLZW_?4TkxFIjRBt3V{_1{cayNBBFJg8T%z4se%zugE?Az+`4MW zV3$el4spg1AC*x}2T0dkOFK}a6Ox(in{FTMRP%xF2p_4JL)hphBC)|1dqC`Fs1Woj}c%>Trq)p6WBDJv%-YXPbh1WC=S|j7nDX$_q81Y2v@z2J}`bgP9)E+j=h{4(`*Ys|hpA50ax4L>o( zkr&zNbGAFD%z1G8wvmoSUmZOC*xTwp-Z@o^w)g^daF}62c{3&Qv!*vdmCyldHrx>c zA4aNVF85lExDAYPQO~EJO3WvM8$8Ka7i&F9HwsZk0!-*`w623rt?5{+P^2{3CydoR zN9Bnt3`wleopbZqv84>3+nA5HmplrptE{7=mo8Z)nP->Q5-y&FAj_?;rW@Ig3Z}2Q zy|89xW?_20PYbg5FXM{9inYyPO!-`J^(0l@;&DO;jCPH6 zqhYZFyL|Pi%bw&Z*&QeN#RhgJY|VQ_SJyW?@C&+ds(yM+f?Ifu7Vs7hjfCMnr1H)b zIfD_)W6AeDA}$U^x7H{Ql-YUFlPkm@cQyl7=Il-o4 zs7SsThrDV%w>=MU9n_B3N@N-ZjC--IWwkS5jxQ$rjjaJS?#Wp?+DX6jB9;)i3%jhm zL=~^%AERntth%@kwh$cdPr@J8^yf)*v(7LE8Xf@}ZJqf;bFac}JsO4;IYW8tp0-RG z;(rmw@a9hb7_}n)dts~db0@9vRm}J8G1sv6wZDY&;(5Tg?Ieu|L~i&TvlD=j)|6eQm;hq7wtb&4EjD?Q+K7leN_<&&QYb|~i{zVvg`9tK#Qzou+0|}u|mUE3j8iFVR zY9qF1b;(E-fL%|OWZ^`19^|}2ENmaO)zPjP?3Tw?^JwSGmVv7%FsfgQA(KPnJJ<0-BdnV? z0cJmeEZzVjT6<4IL%c5F?}HDks%vxXL=urL!tn)9LsnM zayX(BTvgio3~kU&7Iyi$JB7!a%yQ!i{GFpa6OX1@&K%PnE5hW;wf?|qDVjUl8@RM! zPpYN@!Dzzv!g@Iug*?q0kE&Y63uvZ!VaBBrMGP7(%ufyh(ev1?hY+D9zur~%&gOuh vjApxs*Pp|LEbDcYRsR3#;)48}ci2+Xob2oTbAx|H(lCm0YO=L5W)c4bsbR>U literal 0 HcmV?d00001 From fcf087ea8dbc9c6c979e4fa2a1ee2b6d2a784998 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 01:52:18 -0200 Subject: [PATCH 0419/1549] change metadata info --- l10n_br_account/__openerp__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 064ed16ab745..295ec00ebc8a 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -22,9 +22,9 @@ 'description': 'Brazilian Localization Account', 'category': 'Localisation', 'license': 'AGPL-3', - 'author': 'Akretion, OpenERP Brasil', - 'website': 'http://openerpbrasil.org', - 'version': '7.0', + 'author': 'Akretion, Odoo Brasil', + 'website': 'http://odoobrasil.org', + 'version': '8.0', 'depends': [ 'l10n_br', 'l10n_br_base', From 8745aa99dfa90af213d77f343c670cf3538fa92a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 01:55:57 -0200 Subject: [PATCH 0420/1549] moved icon.png to new description folder --- .../static/{src/img => description}/icon.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename l10n_br_account/static/{src/img => description}/icon.png (100%) diff --git a/l10n_br_account/static/src/img/icon.png b/l10n_br_account/static/description/icon.png similarity index 100% rename from l10n_br_account/static/src/img/icon.png rename to l10n_br_account/static/description/icon.png From 4daf3e37fe41a00aec1c8254ab16a3bd672244f6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 01:58:01 -0200 Subject: [PATCH 0421/1549] update demo chart of account --- l10n_br_account/demo/account.account.csv | 44 ++++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/l10n_br_account/demo/account.account.csv b/l10n_br_account/demo/account.account.csv index 274e038f027e..2fb2286fcce6 100644 --- a/l10n_br_account/demo/account.account.csv +++ b/l10n_br_account/demo/account.account.csv @@ -1,10 +1,10 @@ "id","code","name","parent_id:id","note","type","user_type:id","company_id:id" "account.chart0",0,"Plano de Contas",,,"view","account.data_account_type_view","base.main_company" "account.assets_view",1,"ATIVO","account.chart0"," ","view","account.data_account_type_asset","base.main_company" -"account.nca",1.01,"CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" +"account.nca","1.01","CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" "account.cas","1.01.01","DISPONIBILIDADES","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","other","account.data_account_type_bank","base.main_company" -"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","other","account.data_account_type_cash","base.main_company" +"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","liquidity","account.data_account_type_bank","base.main_company" +"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","liquidity","account.data_account_type_cash","base.main_company" "account_demo_101010300","1.01.01.03.00","Recursos no Exterior Decorrentes de Exportação","account.cas","Contas que registram movimentação de recursos em instituições financeiras no exterior, nos termos do art. 1o. da Lei no 11.371/2006.","other","account.data_account_type_asset","base.main_company" "account_demo_101010400","1.01.01.04.00","Contas Bancárias – Subvenções","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das subvenções, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" "account_demo_101010500","1.01.01.05.00","Contas Bancárias – Doações","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das doações, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" @@ -51,9 +51,9 @@ "account_demo_101090105","1.01.09.01.05","(-) Provisão para Ajuste do Estoque ao Valor de Mercado","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor de mercado que retificam este grupo.","other","account.data_account_type_asset","base.main_company" "account_demo_101090107","1.01.09.01.07","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" "account_demo_101090190","1.01.09.01.90","(-) Outras Contas Retificadoras","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account.fas",1.07,"NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" +"account.fas","1.07","NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" "account_demo_10700","1.07.00","REALIZÁVEL A LONGO PRAZO ","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107000100","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" +"account.o_income","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" "account_demo_107000200","1.07.00.02.00","Créditos com Pessoas Ligadas (Físicas/Jurídicas)","account_demo_10700","Contas correspondentes a vendas, adiantamentos ou empréstimos a sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","account.data_account_type_asset","base.main_company" "account_demo_107000300","1.07.00.03.00","Valores Mobiliários","account_demo_10700","Contas correspondentes às aplicações em títulos com vencimento posterior ao exercício seguinte, e investimentos em outras sociedades que não tenham caráter permanente, inclusive os feitos com incentivos fiscais.","other","account.data_account_type_asset","base.main_company" "account_demo_107000400","1.07.00.04.00","Depósitos Judiciais","account_demo_10700","Contas que registram aos depósitos judiciais efetuados, a qualquer título, pendentes de decisão.","other","account.data_account_type_asset","base.main_company" @@ -116,9 +116,9 @@ Atenção: Os veículos de uso direto na produção, como empilhadeiras e simila "account_demo_107070500","1.07.07.05.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" "account_demo_107070600","1.07.07.06.00","(-) Amortização do Diferido","account_demo_10707","Contas correspondentes à amortização das contas do ativo diferido.","other","account.data_account_type_asset","base.main_company" "account.bal",2,"PASSIVO","account.chart0"," ","view","l10n_br.passivo","base.main_company" -"account.cli",2.01,"CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account.cli","2.01","CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" "account.liabilities_view","2.01.01","OBRIGAÇÕES DE CURTO PRAZO","account.cli"," ","view","l10n_br.passivo","base.main_company" -"account.a_pay","2.01.01.01.00","Fornecedores","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" +"account.a_pay","2.01.01.01.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" "account_demo_201010101","2.01.01.01.01","Adiantamentos de Clientes","account.liabilities_view","Contas que registram o valor correspondente a adiantamentos de clientes.","other","l10n_br.passivo","base.main_company" "account_demo_201010201","2.01.01.02.01","Financiamentos a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Curto Prazo – Outros. ","other","l10n_br.passivo","base.main_company" "account_demo_201010202","2.01.01.02.02","Arrendamento Mercantil (Financeiro) a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram as obrigações de curto prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" @@ -144,7 +144,7 @@ Atenção: Os veículos de uso direto na produção, como empilhadeiras e simila "account_demo_201011240","2.01.01.12.40","Doações e Subvenções para Investimentos","account.liabilities_view","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" "account_demo_201011300","2.01.01.13.00","Outras Contas","account.liabilities_view","Contas que registram comissões a pagar ou provisionadas de retenções contratuais, de obrigações decorrentes do fornecimento ou utilização de serviços (energia elétrica, água, telefone, propaganda, honorários profissionais de terceiros, aluguéis) e outras contas não citadas nas contas anteriores. Atenção: também são incluídas, nesta conta, as provisões para registro de obrigações, tais como as provisões para: férias, gratificações a empregados (inclusive encargos sociais a pagar e FGTS a recolher sobre tais provisões), e outras de natureza semelhante, ainda que não dedutíveis.","other","l10n_br.passivo","base.main_company" "account_demo_201019000","2.01.01.90.00","(-) Contas Retificadoras","account.liabilities_view","Contas correspondentes às contas retificadoras do passivo circulante.","other","l10n_br.passivo","base.main_company" -"account_demo_203",2.03,"NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" +"account_demo_203","2.03","NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" "account_demo_20301","2.03.01","OBRIGAÇÕES A LONGO PRAZO","account_demo_203"," ","view","l10n_br.passivo","base.main_company" "account_demo_203010100","2.03.01.01.00","Fornecedores","account_demo_20301","Contas que registram valores a pagar relativos à compra de matérias-primas, bens, insumos e mercadorias e o valor correspondente a adiantamentos de clientes, com prazo de pagamento posterior ao exercício seguinte à data do balanço.","payable","account.data_account_type_payable","base.main_company" "account_demo_203010201","2.03.01.02.01","Financiamentos a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Longo Prazo – Brasil – Outros ","other","l10n_br.passivo","base.main_company" @@ -166,7 +166,7 @@ Atenção: Os veículos de uso direto na produção, como empilhadeiras e simila "account_demo_20303","2.03.03","RECEITAS DIFERIDAS","account_demo_203",,"view","l10n_br.passivo","base.main_company" "account_demo_203030100","2.03.03.01.00","Receitas Diferidas","account_demo_20303","Saldo remanescente da conta Resultado de Exercícios Futuros onde a pessoa jurídica que explore as atividades de compra e venda, loteamento, incorporação e construção de imóveis indicava o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária. Também se consideravam como receitas de exercícios futuros os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras.","other","l10n_br.passivo","base.main_company" "account_demo_203030300","2.03.03.03.00","(-) Custos Correspondentes às Receitas Diferidas","account_demo_20303","Contas correspondentes aos custos e despesas de exercícios futuros correspondentes às receitas indicadas na conta precedente.","other","l10n_br.passivo","base.main_company" -"account_demo_207",2.07,"PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_207","2.07","PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" "account_demo_20701","2.07.01","CAPITAL REALIZADO","account_demo_207"," ","view","l10n_br.passivo","base.main_company" "account_demo_207010100","2.07.01.01.00","Capital Subscrito de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no País.","other","l10n_br.passivo","base.main_company" "account_demo_207010200","2.07.01.02.00","(-) Capital a Integralizar de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no País que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" @@ -190,7 +190,7 @@ Atenção: Os veículos de uso direto na produção, como empilhadeiras e simila "account.rsa","2.07.07.02.00","(-) Prejuízos Acumulados","account_demo_20707","Contas correspondentes aos prejuízos acumulados.","other","l10n_br.passivo","base.main_company" "account_demo_207070300","2.07.07.03.00","(-) Ações em Tesouraria","account_demo_20707","Contas que registrem as aquisições de ações da própria empresa.","other","l10n_br.passivo","base.main_company" "account_demo_207070400","2.07.07.04.00","Outras","account_demo_20707","Outras contas classificáveis no patrimônio líquido que não tenham correspondência nas contas Lucros Acumulados e/ou Saldo à Disposição da Assembléia, Prejuízos Acumulados, Ações em Tesouraria.","other","l10n_br.passivo","base.main_company" -"account_demo_208",2.08,"PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" +"account_demo_208","2.08","PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" "account_demo_20801","2.08.01","FUNDO PATRIMONIAL","account_demo_208"," ","view","l10n_br.passivo","base.main_company" "account_demo_208010100","2.08.01.01.00","Fundo Patrimonial","account_demo_20801","Contas que registrem, nas instituições imunes ou isentas, o Fundo Patrimonial.","other","l10n_br.passivo","base.main_company" "account_demo_20804","2.08.04","RESERVAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" @@ -199,9 +199,9 @@ Atenção: Os veículos de uso direto na produção, como empilhadeiras e simila "account_demo_20807","2.08.07","OUTRAS CONTAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" "account_demo_208070100","2.08.07.01.00","Superávits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos superávits acumulados.","other","l10n_br.passivo","base.main_company" "account_demo_208070200","2.08.07.02.00","Déficits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos déficits acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_3",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301",3.01,"RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account.liabilities_view",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" +"account.cli","3.01","RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account.cli"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010101","3.01.01.01","RECEITA LIQUIDA","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" "account_demo_301010101","3.01.01.01.01","RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010101010101","3.01.01.01.01.01.01","Receita de Exportação Direta de Mercadorias e Produtos","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de mercadorias e produtos.","other","account.data_account_type_view","base.main_company" @@ -333,7 +333,7 @@ Atenção: o valor referente à contratação de serviços de profissionais libe "account_demo_3010107013100","3.01.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_301010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" "account_demo_3010107013200","3.01.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_301010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" "account_demo_3010107013301","3.01.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_301010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013390","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: +"account.o_expense","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: a) contribuição sindical; b) prêmios de seguro; c) fretes e carretos que não componham os custos; @@ -365,7 +365,7 @@ Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determ "account_demo_3010109011000","3.01.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_301010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" "account_demo_3010109011100","3.01.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" "account_demo_3010109011200","3.01.01.09.01.12.00","(-) Contrapartida dos Ajustes de Valor do Imobilizado e Intangível","account_demo_301010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account.cli"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010301","3.01.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_30103"," ","view","account.data_account_type_view","base.main_company" "account_demo_301030101","3.01.03.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_3010301"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010301010100","3.01.03.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente","account_demo_301030101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação, de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais, conforme o caso.","other","account.data_account_type_view","base.main_company" @@ -382,7 +382,7 @@ c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo p a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos. Atenção: Sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426 do Decreto no 3.000, de 1999. b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" -"account_demo_30105","3.01.05","PARTICIPAÇÕES","account_demo_301"," ","view","account.data_account_type_view","base.main_company" +"account_demo_30105","3.01.05","PARTICIPAÇÕES","account.cli"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010501","3.01.05.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30105"," ","view","account.data_account_type_view","base.main_company" "account_demo_301050101","3.01.05.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" "account_demo_3010501010100","3.01.05.01.01.01.00","(-) Participações de Empregados","account_demo_301050101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" @@ -392,7 +392,7 @@ b) as perdas de capital por variação na percentagem de participação no capit "account_demo_3010501030100","3.01.05.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_301050103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" "account_demo_3010501030200","3.01.05.01.03.02.00","(-) Participações de Debêntures ","account_demo_301050103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" "account_demo_3010501030300","3.01.05.01.03.03.00","(-) Outras ","account_demo_301050103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_302",3.02,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_302","3.02","PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" "account_demo_30201","3.02.01","PROVISÃO PARA CSLL E IRPJ","account_demo_302"," ","view","account.data_account_type_view","base.main_company" "account_demo_3020101","3.02.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_30201"," ","view","account.data_account_type_view","base.main_company" "account_demo_302010101","3.02.01.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_3020101"," ","view","account.data_account_type_view","base.main_company" @@ -400,7 +400,7 @@ b) as perdas de capital por variação na percentagem de participação no capit Atenção: para as empresas com atividades mistas, os valores da CSLL relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" "account_demo_3020101010200","3.02.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_302010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão para o IRPJ sobre os resultados das operações realizadas com os não-associados. Atenção: para as empresas com atividades mistas, os valores do IRPJ relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" -"account_demo_305",3.05,"RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account_demo_3"," ","view","account.data_account_type_view","base.main_company" +"account_demo_305","3.05","RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" "account_demo_30501","3.05.01","RESULTADO OPERACIONAL DA ATIVIDADE RURAL ","account_demo_305"," ","view","account.data_account_type_view","base.main_company" "account_demo_3050101","3.05.01.01","RECEITA OPERACIONAL LÍQUIDA DA ATIVIDADE RURAL","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" "account_demo_305010101","3.05.01.01.01","RECEITA BRUTA DA ATIVIDADE RURAL","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" @@ -575,14 +575,14 @@ Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determ "account_demo_3050301030100","3.05.03.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_305030103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" "account_demo_3050301030200","3.05.03.01.03.02.00","(-) Participações de Debêntures","account_demo_305030103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" "account_demo_3050301030500","3.05.03.01.03.05.00","(-) Outras ","account_demo_305030103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_306",3.06,"PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account_demo_3",,"view","account.data_account_type_view","base.main_company" +"account_demo_306","3.06","PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account.liabilities_view",,"view","account.data_account_type_view","base.main_company" "account_demo_30601","3.06.01","PROVISÃO PARA CSLL E IRPJ","account_demo_306",,"view","account.data_account_type_view","base.main_company" "account_demo_3060101","3.06.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_30601",,"view","account.data_account_type_view","base.main_company" "account_demo_306010101","3.06.01.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_3060101",,"view","account.data_account_type_view","base.main_company" "account_demo_3060101010100","3.06.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_306010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" "account_demo_3060101010200","3.06.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_306010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" "account.gpf",4,"SUPERÁVIT/DÉFICIT LÍQUIDO DO PERÍODO","account.chart0","GRUPO DESTINADO EXCLUSIVAMENTE ÀS SOCIEDADES SIMPLES, SEM FINS LUCRATIVOS","view","account.data_account_type_view","base.main_company" -"account_demo_401",4.01,"RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_401","4.01","RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" "account_demo_40101","4.01.01","RECEITA OPERACIONAL LÍQUIDA","account_demo_401"," ","view","account.data_account_type_view","base.main_company" "account.income_view","4.01.01.01","RECEITA BRUTA","account_demo_40101"," ","view","account.data_account_type_view","base.main_company" "account.rev","4.01.01.01.01","RECEITA DE VENDA DE PRODUTOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" @@ -778,7 +778,7 @@ Atenção: considera-se controlada a filial, a agência, a sucursal, a dependên Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" "account_demo_4010901010700","4.01.09.01.01.07.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_401090101","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" "account_demo_4010901010800","4.01.09.01.01.08.00","Outras Despesas Operacionais","account_demo_401090101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_403",4.03,"OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" +"account_demo_403","4.03","OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" "account_demo_40301","4.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_403"," ","view","account.data_account_type_view","base.main_company" "account_demo_4030101","4.03.01.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_40301"," ","view","account.data_account_type_view","base.main_company" "account_demo_403010101","4.03.01.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" @@ -796,7 +796,7 @@ a) o valor contábil dos bens do ativo permanente baixados no curso do período Atenção: sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426, ambos do Decreto no 3.000, de 1999. b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" "account_demo_5",5,"CUSTOS DE PRODUÇÃO","account.chart0",,"view","account.data_account_type_expense","base.main_company" -"account_demo_501",5.01,"CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" +"account_demo_501","5.01","CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" "account_demo_50101","5.01.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" "account_demo_501010100","5.01.01.01.00","Consumo de Insumos","account_demo_50101","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material direto e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" "account_demo_501010400","5.01.01.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50101","Contas que registram: From 1836d9b50b0630c3ffbf14548b45a0820401bc0a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 01:58:54 -0200 Subject: [PATCH 0422/1549] update partner demo data --- l10n_br_account/demo/base_demo.xml | 220 +++++++++++++++++++++++------ 1 file changed, 177 insertions(+), 43 deletions(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index d1301d5e6f7a..71abcbe502ec 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -1,80 +1,214 @@ + - - - - - + + + + + - - - + + + - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - + + + + From d0599afad4e7d57cbbfb9a31aef3a5fd6c95708b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 02:01:04 -0200 Subject: [PATCH 0423/1549] migrate product.py classes to new API --- l10n_br_account/product.py | 42 +++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index fabe3a0abbe1..839a80cf25ef 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -17,33 +17,29 @@ #along with this program. If not, see . # ############################################################################### -from openerp.osv import orm, fields +from openerp import models, fields, api from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT -class ProductTemplate(orm.Model): +class ProductTemplate(models.Model): _inherit = 'product.template' - _columns = { - 'fiscal_category_default_ids': fields.one2many( - 'l10n_br_account.product.category', 'product_tmpl_id', - u'Categoria de Operação Fiscal Padrões'), - 'service_type_id': fields.many2one( - 'l10n_br_account.service.type', u'Tipo de Serviço'), - 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), - } - _defaults = { - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT - } + fiscal_category_default_ids = fields.One2many( + 'l10n_br_account.product.category', 'product_tmpl_id', + u'Categoria de Operação Fiscal Padrões') + service_type_id = fields.Many2one( + 'l10n_br_account.service.type', u'Tipo de Serviço') + fiscal_type = fields.Selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True, + default=PRODUCT_FISCAL_TYPE_DEFAULT) -class L10n_brAccountProductFiscalCategory(orm.Model): + +class L10n_brAccountProductFiscalCategory(models.Model): _name = 'l10n_br_account.product.category' - _columns = { - 'fiscal_category_source_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Origem'), - 'fiscal_category_destination_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Destino'), - 'product_tmpl_id': fields.many2one( - 'product.template', 'Produto', ondelete='cascade') - } + + fiscal_category_source_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Origem') + fiscal_category_destination_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria de Destino') + product_tmpl_id = fields.Many2one( + 'product.template', 'Produto', ondelete='cascade') From 1b96c3c546bc1e5c11ab60c3e6316ae6b4997395 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 02:05:55 -0200 Subject: [PATCH 0424/1549] migrate product view --- l10n_br_account/product_view.xml | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 48106c3ba419..37b23ad4fe21 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -2,14 +2,13 @@ - - l10n_br_account.normal.form - product.product - + + l10n_br_account_product_template_form_view + product.template + - + - @@ -24,23 +23,5 @@ - - l10n_br_account_product_template_form_view - product.template - - - - - - - - - - - - - - - From b1d9ed7ee7b3daf1cf73b4015376cf05130e9d8c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 02:07:42 -0200 Subject: [PATCH 0425/1549] migrate res.company to new API --- l10n_br_account/res_company.py | 63 +++++++++++++++------------------- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/l10n_br_account/res_company.py b/l10n_br_account/res_company.py index 31e2d4b4ca08..8691db66be35 100644 --- a/l10n_br_account/res_company.py +++ b/l10n_br_account/res_company.py @@ -17,7 +17,7 @@ #along with this program. If not, see . # ############################################################################### -from openerp.osv import orm, fields +from openerp import models, fields from openerp.addons import decimal_precision as dp COMPANY_FISCAL_TYPE = [ @@ -28,40 +28,31 @@ COMPANY_FISCAL_TYPE_DEFAULT = '3' -SQL_CONSTRAINTS = [ - ('l10n_br_tax_definition_tax_id_uniq', 'unique (tax_id, company_id)', - u'Imposto já existente nesta empresa!') -] - -class ResCompany(orm.Model): +class ResCompany(models.Model): _inherit = 'res.company' - _columns = { - 'service_invoice_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal'), - 'document_serie_service_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', - domain="[('company_id', '=', active_id),('active','=',True)," - "('fiscal_type','=','service')]"), - 'annual_revenue': fields.float( - 'Faturamento Anual', required=True, - digits_compute=dp.get_precision('Account'), - help=u"Faturamento Bruto dos últimos 12 meses"), - 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, - u'Regime Tributário', required=True), - 'cnae_main_id': fields.many2one( - 'l10n_br_account.cnae', u'CNAE Primário'), - 'cnae_secondary_ids': fields.many2many( - 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', u'CNAE Segundários'), - 'ecnpj_a1_file': fields.binary('Arquivo e-CNPJ A1'), - 'ecnpj_a1_password': fields.char('Senha e-CNPJ A1', size=64), - 'fiscal_rule_parent_id': fields.many2one( - 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', - domain="[('parent_id', '=', False)]"), - } - _defaults = { - 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, - 'annual_revenue': 0.00, - } + + service_invoice_id = fields.Many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal') + document_serie_service_id = fields.Many2one( + 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id),('active','=',True)," + "('fiscal_type','=','service')]") + annual_revenue = fields.Float( + 'Faturamento Anual', required=True, + digits_compute=dp.get_precision('Account'), default=0.00, + help="Faturamento Bruto dos últimos 12 meses") + fiscal_type = fields.Selection( + COMPANY_FISCAL_TYPE, 'Regime Tributário', required=True, + default=COMPANY_FISCAL_TYPE_DEFAULT) + cnae_main_id = fields.Many2one( + 'l10n_br_account.cnae', 'CNAE Primário') + cnae_secondary_ids = fields.Many2many( + 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', + 'company_id', 'cnae_id', 'CNAE Segundários') + ecnpj_a1_file = fields.Binary('Arquivo e-CNPJ A1') + ecnpj_a1_password = fields.Char('Senha e-CNPJ A1', size=64) + fiscal_rule_parent_id = fields.Many2one( + 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', + domain="[('parent_id', '=', False)]") From a30cafc362a85b511a721ec3f03de5f20cdb5b3f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 20:37:49 -0200 Subject: [PATCH 0426/1549] migrate account.fiscal.position.rule.template to new API --- .../account_fiscal_position_rule.py | 63 ++++++------------- 1 file changed, 20 insertions(+), 43 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 70ff889d1370..bd49562f0f56 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -19,54 +19,31 @@ import time -from openerp.osv import orm, fields +from openerp import models, fields, api from openerp.addons import decimal_precision as dp from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT -FISCAL_RULE_COLUMNS = { - 'partner_fiscal_type_id': fields.many2one( - 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro'), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria'), - 'fiscal_type': fields.selection(COMPANY_FISCAL_TYPE, - u'Regime Tributário', required=True), - 'revenue_start': fields.float( - 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto"), - 'revenue_end': fields.float( - 'Faturamento Final', digits_compute=dp.get_precision('Account'), - help="Faixa inicial de faturamento bruto") -} - -OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE = { - 'parent_id': fields.many2one( - 'account.fiscal.position.rule.template', 'Regra Pai'), - 'child_ids': fields.one2many( - 'account.fiscal.position.rule.template', - 'parent_id', 'Regras Filhas'), -} - -OTHERS_FISCAL_RULE_COLUMNS = { - 'parent_id': fields.many2one( - 'account.fiscal.position.rule', 'Regra Pai'), - 'child_ids': fields.one2many( - 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas'), -} - -FISCAL_RULE_DEFAULTS = { - 'fiscal_type': COMPANY_FISCAL_TYPE_DEFAULT, - 'revenue_start': 0.00, - 'revenue_end': 0.00 -} - - -class AccountFiscalPositionRuleTemplate(orm.Model): + +class AccountFiscalPositionRuleTemplate(models.Model): _inherit = 'account.fiscal.position.rule.template' - _columns = dict( - FISCAL_RULE_COLUMNS.items() + - OTHERS_FISCAL_RULE_COLUMNS_TEMPLATE.items()) - _defaults = FISCAL_RULE_DEFAULTS + partner_fiscal_type_id = fields.Many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro') + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria') + fiscal_type = fields.Selection( + COMPANY_FISCAL_TYPE, u'Regime Tributário', required=True, + default=COMPANY_FISCAL_TYPE_DEFAULT) + revenue_start = fields.Float( + 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + revenue_end = fields.Float( + 'Faturamento Final', digits_compute=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + parent_id = fields.Many2one( + 'account.fiscal.position.rule.template', 'Regra Pai') + child_ids = fields.One2many( + 'account.fiscal.position.rule.template', 'parent_id', 'Regras Filhas') class AccountFiscalPositionRule(orm.Model): _inherit = 'account.fiscal.position.rule' From 712eb946bcd7f690f1808c181af4f2985b6dde8b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 20:42:13 -0200 Subject: [PATCH 0427/1549] migrate account.fiscal.position.rule to new API --- .../account_fiscal_position_rule.py | 68 ++++++++++--------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index bd49562f0f56..387593a3c9fa 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -45,25 +45,35 @@ class AccountFiscalPositionRuleTemplate(models.Model): child_ids = fields.One2many( 'account.fiscal.position.rule.template', 'parent_id', 'Regras Filhas') -class AccountFiscalPositionRule(orm.Model): + +class AccountFiscalPositionRule(models.Model): _inherit = 'account.fiscal.position.rule' - _columns = dict( - FISCAL_RULE_COLUMNS.items() + - OTHERS_FISCAL_RULE_COLUMNS.items()) - _defaults = FISCAL_RULE_DEFAULTS - def _map_domain(self, cr, uid, partner, addrs, company, - context=None, **kwargs): - if context is None: - context = {} + partner_fiscal_type_id = fields.Many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro') + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria') + fiscal_type = fields.Selection( + COMPANY_FISCAL_TYPE, u'Regime Tributário', required=True, + default=COMPANY_FISCAL_TYPE_DEFAULT) + revenue_start = fields.Float( + 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + revenue_end = fields.Float( + 'Faturamento Final', digits_compute=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + parent_id = fields.Many2one('account.fiscal.position.rule', 'Regra Pai') + child_ids = fields.One2many( + 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas') + def _map_domain(self, partner, addrs, company, **kwargs): from_country = company.partner_id.country_id.id from_state = company.partner_id.state_id.id fiscal_rule_parent_id = company.fiscal_rule_parent_id.id partner_fiscal_type_id = partner.partner_fiscal_type_id.id - document_date = context.get('date', time.strftime('%Y-%m-%d')) - use_domain = context.get('use_domain', ('use_sale', '=', True)) + document_date = self.env.context.get('date', time.strftime('%Y-%m-%d')) + use_domain = self.env.context.get('use_domain', ('use_sale', '=', True)) domain = [ '&', ('company_id', '=', company.id), use_domain, @@ -84,40 +94,36 @@ def _map_domain(self, cr, uid, partner, addrs, company, '|', ('revenue_start', '=', False), ('revenue_start', '<=', company.annual_revenue), '|', ('revenue_end', '=', False), - ('revenue_end', '>=', company.annual_revenue) - ] + ('revenue_end', '>=', company.annual_revenue)] for address_type, address in addrs.items(): key_country = 'to_%s_country' % address_type key_state = 'to_%s_state' % address_type to_country = address.country_id.id or False - domain += ['|', (key_country, '=', to_country), + domain += [ + '|', (key_country, '=', to_country), (key_country, '=', False)] to_state = address.state_id.id or False - domain += ['|', (key_state, '=', to_state), - (key_state, '=', False)] + domain += [ + '|', (key_state, '=', to_state), (key_state, '=', False)] return domain - def product_fiscal_category_map(self, cr, uid, product_id=False, - fiscal_category_id=False): - result = False + def product_fiscal_category_map(self, product_id, fiscal_category_id, + to_state_id=None): + result = None if not product_id or not fiscal_category_id: return result - - product_tmpl_id = self.pool.get('product.product').read( - cr, uid, product_id, ['product_tmpl_id'])['product_tmpl_id'][0] - default_product_fiscal_category = self.pool.get( - 'l10n_br_account.product.category').search( - cr, uid, [('product_tmpl_id', '=', product_tmpl_id), - ('fiscal_category_source_id', '=', fiscal_category_id)]) + product_tmpl_id = self.env['product.product'].browse(product_id).id + default_product_fiscal_category = self.env[ + 'l10n_br_account.product.category'].search( + [('product_tmpl_id', '=', product_tmpl_id), + ('fiscal_category_source_id', '=', fiscal_category_id), + '|', ('to_state_id', '=', False), + ('to_state_id', '=', to_state_id)]) if default_product_fiscal_category: - fc_des_id = self.pool.get('l10n_br_account.product.category').read( - cr, uid, default_product_fiscal_category, - ['fiscal_category_destination_id'] - )[0]['fiscal_category_destination_id'][0] - result = fc_des_id + result = default_product_fiscal_category[0].id return result From 1d526a1828e69ef0182af2899e9c6da792960169 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 20:43:14 -0200 Subject: [PATCH 0428/1549] migrate wizard.account.fiscal.position.rule to new API --- .../account_fiscal_position_rule.py | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/account_fiscal_position_rule.py index 387593a3c9fa..106d350537c3 100755 --- a/l10n_br_account/account_fiscal_position_rule.py +++ b/l10n_br_account/account_fiscal_position_rule.py @@ -127,23 +127,22 @@ def product_fiscal_category_map(self, product_id, fiscal_category_id, return result -class WizardAccountFiscalPositionRule(orm.TransientModel): +class WizardAccountFiscalPositionRule(models.TransientModel): _inherit = 'wizard.account.fiscal.position.rule' - def action_create(self, cr, uid, ids, context=None): - super(WizardAccountFiscalPositionRule, self).action_create( - cr, uid, ids, context) + @api.multi + def action_create(self): + super(WizardAccountFiscalPositionRule, self).action_create() - obj_wizard = self.browse(cr, uid, ids[0]) + obj_wizard = self - obj_fp = self.pool.get('account.fiscal.position') - obj_fpr = self.pool.get('account.fiscal.position.rule') - obj_fpr_templ = self.pool.get('account.fiscal.position.rule.template') + obj_fpr = self.env['account.fiscal.position.rule'] + obj_fpr_templ = self.env['account.fiscal.position.rule.template'] company_id = obj_wizard.company_id.id - pfr_ids = obj_fpr_templ.search(cr, uid, []) + pfr_ids = obj_fpr_templ.search([]) - for fpr_template in obj_fpr_templ.browse(cr, uid, pfr_ids): + for fpr_template in obj_fpr_templ.browse(pfr_ids): from_country = fpr_template.from_country.id or False from_state = fpr_template.from_state.id or False @@ -153,16 +152,15 @@ def action_create(self, cr, uid, ids, context=None): fiscal_category_id = fpr_template.fiscal_category_id.id or False fiscal_position_id = False - fp_id = obj_fp.search( - cr, uid, [('name', '=', fpr_template.fiscal_position_id.name), - ('company_id', '=', company_id)],) + fp_id = self.env['account.fiscal.position'].search([ + ('name', '=', fpr_template.fiscal_position_id.name), + ('company_id', '=', company_id)]) if fp_id: fiscal_position_id = fp_id[0] - fprt_id = obj_fpr.search( - cr, uid, - [('name', '=', fpr_template.name), + fprt_id = obj_fpr.search([ + ('name', '=', fpr_template.name), ('company_id', '=', company_id), ('description', '=', fpr_template.description), ('from_country', '=', from_country), @@ -176,11 +174,10 @@ def action_create(self, cr, uid, ids, context=None): ('fiscal_position_id', '=', fiscal_position_id)]) if fprt_id: - obj_fpr.write( - cr, uid, fprt_id, { - 'partner_fiscal_type_id': partner_ft_id, - 'fiscal_category_id': fiscal_category_id, - 'fiscal_type': fpr_template.fiscal_type, - 'revenue_start': fpr_template.revenue_start, - 'revenue_end': fpr_template.revenue_end}) + obj_fpr.write(fprt_id, { + 'partner_fiscal_type_id': partner_ft_id, + 'fiscal_category_id': fiscal_category_id, + 'fiscal_type': fpr_template.fiscal_type, + 'revenue_start': fpr_template.revenue_start, + 'revenue_end': fpr_template.revenue_end}) return {} From 94d85bf1eb83d1af8b3d7b170ae198c5b4ae17e0 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 20:52:06 -0200 Subject: [PATCH 0429/1549] migrate account.py classes to new API --- l10n_br_account/account.py | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/l10n_br_account/account.py b/l10n_br_account/account.py index f027f3850531..b3a578be179a 100644 --- a/l10n_br_account/account.py +++ b/l10n_br_account/account.py @@ -17,24 +17,22 @@ #along with this program. If not, see . # ############################################################################### -from openerp.osv import orm, fields +from openerp import models, fields, api -class AccountJournal(orm.Model): +class AccountJournal(models.Model): _inherit = 'account.journal' - _columns = { - 'revenue_expense': fields.boolean('Gera Financeiro') - } + revenue_expense = fields.Boolean('Gera Financeiro') -class AccountTaxComputation(orm.Model): + +class AccountTaxComputation(models.Model): _name = 'account.tax.computation' - _columns = { - 'name': fields.char('Name', size=64) - } + + name = fields.Char('Name', size=64) -class AccountTax(orm.Model): +class AccountTax(models.Model): _inherit = 'account.tax' def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, @@ -66,6 +64,7 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, result['taxes'] = taxes return result + @api.v7 def compute_all(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, force_excluded=False, fiscal_position=False, insurance_value=0.0, @@ -125,10 +124,22 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, 'taxes': calculed_taxes } + @api.v8 + def compute_all(self, price_unit, quantity, product=None, partner=None, + force_excluded=False, fiscal_position=False, + insurance_value=0.0, freight_value=0.0, + other_costs_value=0.0): + return self._model.compute_all( + self._cr, self._uid, self, price_unit, quantity, + product=product, partner=partner, force_excluded=force_excluded, + fiscal_position=fiscal_position, insurance_value=insurance_value, + freight_value=freight_value, other_costs_value=other_costs_value) + -class WizardMultiChartsAccounts(orm.TransientModel): +class WizardMultiChartsAccounts(models.TransientModel): _inherit = 'wizard.multi.charts.accounts' + @api.v7 def execute(self, cr, uid, ids, context=None): """This function is called at the confirmation of the wizard to generate the COA from the templates. It will read all the provided @@ -171,9 +182,10 @@ def execute(self, cr, uid, ids, context=None): return result -class AccountAccount(orm.Model): +class AccountAccount(models.Model): _inherit = 'account.account' + @api.v7 def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): """Hack to allow re-shaping demo chart of account in demo mode""" cr.execute("""SELECT demo @@ -184,6 +196,7 @@ def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): return super(AccountAccount, self)._check_allow_type_change( cr, uid, ids, context) + @api.v7 def _check_allow_code_change(self, cr, uid, ids, context=None): """Hack to allow re-shaping demo chart of account in demo mode""" cr.execute("""SELECT demo From 9cf5aa105185bf60168abed7fa40b9a9317f1989 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 22:01:07 -0200 Subject: [PATCH 0430/1549] migrate l10n_br_account.py classes to new API --- l10n_br_account/l10n_br_account.py | 610 +++++++++++++---------------- 1 file changed, 277 insertions(+), 333 deletions(-) diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/l10n_br_account.py index bdfe3f9747b1..d78e80fe11d5 100644 --- a/l10n_br_account/l10n_br_account.py +++ b/l10n_br_account/l10n_br_account.py @@ -18,10 +18,11 @@ #along with this program. If not, see . # ############################################################################### -from openerp.osv import orm, fields -from openerp import netsvc import datetime +from openerp import models, fields, api, _ +from openerp.exceptions import Warning + TYPE = [ ('input', u'Entrada'), ('output', u'Saída'), @@ -34,36 +35,32 @@ PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] -class L10n_brAccountCce(orm.Model): +class L10n_brAccountCce(models.Model): _name = 'l10n_br_account.invoice.cce' _description = u'Cartão de Correção no Sefaz' - _columns = { - 'invoice_id': fields.many2one( - 'account.invoice', 'Fatura'), - 'motivo': fields.text('Motivo', readonly=True - , required=True), - 'sequencia': fields.char('Sequencia', help=u"Indica a sequencia da carta de correcão"), - 'cce_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') - } - -class L10n_brAccountInvoiceCancel(orm.Model): + + # TODO nome de campos devem ser em ingles + invoice_id = fields.Many2one('account.invoice', 'Fatura') + motivo = fields.Text('Motivo', readonly=True, required=True) + sequencia = fields.Char( + 'Sequencia', help=u"Indica a sequencia da carta de correcão") + cce_document_event_ids = fields.One2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + + +class L10n_brAccountInvoiceCancel(models.Model): _name = 'l10n_br_account.invoice.cancel' _description = u'Cancelar Documento Eletrônico no Sefaz' - _columns = { - 'invoice_id': fields.many2one( - 'account.invoice', 'Fatura'), - 'justificative': fields.char('Justificativa', size=255, readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'cancel_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', u'Eventos'), - 'state': fields.selection( - [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True), - } - _defaults = { - 'state': 'draft', - } + + invoice_id = fields.Many2one('account.invoice', 'Fatura') + justificative = fields.Char( + 'Justificativa', size=255, readonly=True, required=True, + states={'draft': [('readonly', False)]}) + cancel_document_event_ids = fields.One2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + state = fields.Selection( + [('draft', 'Rascunho'), ('cancel', 'Cancelado'), + ('done', u'Concluído')], 'Status', required=True, default='draft') def _check_justificative(self, cr, uid, ids): for invalid in self.browse(cr, uid, ids): @@ -76,182 +73,155 @@ def _check_justificative(self, cr, uid, ids): 'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative'])] - def action_draft_done(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'done'}) + def action_draft_done(self): + self.write({'state': 'done'}) return True -class L10n_brDocumentEvent(orm.Model): +class L10n_brDocumentEvent(models.Model): _name = 'l10n_br_account.document_event' - _columns = { - 'type': fields.selection( - [('-1', u'Exception'), - ('0', u'Envio Lote'), - ('1', u'Consulta Recibo'), - ('2', u'Cancelamento'), - ('3', u'Inutilização'), - ('4', u'Consulta NFE'), - ('5', u'Consulta Situação'), - ('6', u'Consulta Cadastro'), - ('7', u'DPEC Recepção'), - ('8', u'DPEC Consulta'), - ('9', u'Recepção Evento'), - ('10', u'Download'), - ('11', u'Consulta Destinadas'), ], 'Serviço'), - 'response': fields.char(u'Descrição', size=64, readonly=True), - 'company_id': fields.many2one( - 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}), - 'origin': fields.char('Documento de Origem', size=64, - readonly=True, states={'draft': [('readonly', False)]}, - help="Reference of the document that produced event."), - 'file_sent': fields.char('Envio', readonly=True), - 'file_returned': fields.char('Retorno', readonly=True), - 'status': fields.char('Codigo', readonly=True), - 'message': fields.char('Mensagem', readonly=True), - 'create_date': fields.datetime(u'Data Criação', readonly=True), - 'write_date': fields.datetime(u'Data Alteração', readonly=True), - 'end_date': fields.datetime(u'Data Finalização', readonly=True), - 'state': fields.selection( - [('draft', 'Rascunho'), ('send', 'Enviado'), - ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], - 'Status', select=True, readonly=True), - 'document_event_ids': fields.many2one( - 'account.invoice', 'Documentos', ondelete='cascade') - } - _defaults = { - 'state': 'draft', - } - - def set_done(self, cr, uid, ids, context=None): - if context is None: - context = {} - self.write(cr, uid, ids, - {'state': 'done', 'end_date': datetime.datetime.now()}, - context=context) + + type = fields.Selection( + [('-1', u'Exception'), + ('0', u'Envio Lote'), + ('1', u'Consulta Recibo'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), + ('11', u'Consulta Destinadas'), ], 'Serviço') + response = fields.Char(u'Descrição', size=64, readonly=True) + company_id = fields.Many2one( + 'res.company', 'Empresa', readonly=True, + states={'draft': [('readonly', False)]}) + origin = fields.Char('Documento de Origem', size=64, + readonly=True, states={'draft': [('readonly', False)]}, + help="Reference of the document that produced event.") + file_sent = fields.Char('Envio', readonly=True) + file_returned = fields.Char('Retorno', readonly=True) + status = fields.Char('Codigo', readonly=True) + message = fields.Char('Mensagem', readonly=True) + create_date = fields.Datetime(u'Data Criação', readonly=True) + write_date = fields.Datetime(u'Data Alteração', readonly=True) + end_date = fields.Datetime(u'Data Finalização', readonly=True) + state = fields.Selection( + [('draft', 'Rascunho'), ('send', 'Enviado'), + ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], + 'Status', select=True, readonly=True, default='draft') + document_event_ids = fields.Many2one( + 'account.invoice', 'Documentos', ondelete='cascade') + + @api.multi + def set_done(self): + self.write({'state': 'done', 'end_date': datetime.datetime.now()}) return True -class L10n_brAccountFiscalCategory(orm.Model): +class L10n_brAccountFiscalCategory(models.Model): _name = 'l10n_br_account.fiscal.category' _description = 'Categoria Fiscal' - _columns = { - 'code': fields.char(u'Código', size=254, required=True), - 'name': fields.char(u'Descrição', size=254), - 'type': fields.selection(TYPE, 'Tipo'), - 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), - 'property_journal': fields.property( - 'account.journal', type='many2one', relation='account.journal', - string=u"Diário Contábil", method=True, view_load=True, - help=u"Diário utilizado para esta categoria de operação fiscal"), - 'journal_type': fields.selection( - [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), - ('purchase', 'Compras'), - ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', - size=32, required=True), - 'refund_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('journal_type', 'like', journal_type), - ('state', '=', 'approved')]"""), - 'reverse_fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('state', '=', 'approved')]"""), - 'fiscal_position_ids': fields.one2many('account.fiscal.position', - 'fiscal_category_id', u'Posições Fiscais'), - 'note': fields.text(u'Observações'), - 'state': fields.selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True), - } - _defaults = { - 'state': 'draft', - 'type': 'output', - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - 'journal_type': 'sale', - } + + code = fields.Char(u'Código', size=254, required=True) + name = fields.Char(u'Descrição', size=254) + type = fields.Selection(TYPE, 'Tipo', default='output') + fiscal_type = fields.Selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT) + property_journal = fields.Many2one('account.journal', + string=u"Diário Contábil", company_dependent=True, + help=u"Diário utilizado para esta categoria de operação fiscal") + journal_type = fields.Selection( + [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), + ('purchase', 'Compras'), + ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', + size=32, required=True, default='sale') + refund_fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('journal_type', 'like', journal_type), + ('state', '=', 'approved')]""") + reverse_fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', + domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), + ('state', '=', 'approved')]""") + fiscal_position_ids = fields.One2many('account.fiscal.position', + 'fiscal_category_id', u'Posições Fiscais') + note = fields.Text(u'Observações') + state = fields.Selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True, default='draft') + _sql_constraints = [ ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', u'Já existe uma categoria fiscal com esse código !') ] - def action_unapproved_draft(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'draft'}) - wf_service = netsvc.LocalService("workflow") - for fc_id in ids: - wf_service.trg_delete( - uid, 'l10n_br_account.fiscal.category', fc_id, cr) - wf_service.trg_create( - uid, 'l10n_br_account.fiscal.category', fc_id, cr) + @api.multi + def action_unapproved_draft(self): + self.write({'state': 'draft'}) + self.delete_workflow() + self.create_workflow() return True -class L10n_brAccountServiceType(orm.Model): +class L10n_brAccountServiceType(models.Model): _name = 'l10n_br_account.service.type' _description = u'Cadastro de Operações Fiscais de Serviço' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=256, required=True), - 'parent_id': fields.many2one( - 'l10n_br_account.service.type', 'Tipo de Serviço Pai'), - 'child_ids': fields.one2many( - 'l10n_br_account.service.type', 'parent_id', - u'Tipo de Serviço Filhos'), - 'internal_type': fields.selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal' - } - - def name_get(self, cr, uid, ids, context=None): - if not ids: - return [] - reads = self.read(cr, uid, ids, ['name', 'code'], context=context) - res = [] - for record in reads: + + code = fields.Char(u'Código', size=16, required=True) + name = fields.Char(u'Descrição', size=256, required=True) + parent_id = fields.Many2one( + 'l10n_br_account.service.type', 'Tipo de Serviço Pai') + child_ids = fields.One2many( + 'l10n_br_account.service.type', 'parent_id', + u'Tipo de Serviço Filhos') + internal_type = fields.Selection( + [('view', u'Visualização'), ('normal', 'Normal')], 'Tipo Interno', + required=True, default='normal') + + @api.multi + def name_get(self): + result = [] + for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name - res.append((record['id'], name)) - return res + result.append((record['id'], name)) + return result -class L10n_brAccountFiscalDocument(orm.Model): +class L10n_brAccountFiscalDocument(models.Model): _name = 'l10n_br_account.fiscal.document' _description = 'Tipo de Documento Fiscal' - _columns = { - 'code': fields.char(u'Codigo', size=8, required=True), - 'name': fields.char(u'Descrição', size=64), - 'electronic': fields.boolean(u'Eletrônico') - } + code = fields.Char(u'Codigo', size=8, required=True) + name = fields.Char(u'Descrição', size=64) + electronic = fields.Boolean(u'Eletrônico') -class L10n_brAccountDocumentSerie(orm.Model): + +class L10n_brAccountDocumentSerie(models.Model): _name = 'l10n_br_account.document.serie' _description = 'Serie de documentos fiscais' - _columns = { - 'code': fields.char(u'Código', size=3, required=True), - 'name': fields.char(u'Descrição', size=64, required=True), - 'fiscal_type': fields.selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal'), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal', required=True), - 'company_id': fields.many2one( - 'res.company', 'Empresa', required=True), - 'active': fields.boolean('Ativo'), - 'internal_sequence_id': fields.many2one( - 'ir.sequence', u'Sequência Interna') - } - _defaults = { - 'active': True, - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - } - - def create_sequence(self, cr, uid, vals, context=None): + + code = fields.Char(u'Código', size=3, required=True) + name = fields.Char(u'Descrição', size=64, required=True) + fiscal_type = fields.Selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT) + fiscal_document_id = fields.Many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal', required=True) + company_id = fields.Many2one( + 'res.company', 'Empresa', required=True) + active = fields.Boolean('Ativo') + internal_sequence_id = fields.Many2one( + 'ir.sequence', u'Sequência Interna') + + def _create_sequence(self, vals): """ Create new no_gap entry sequence for every new document serie """ seq = { @@ -261,38 +231,35 @@ def create_sequence(self, cr, uid, vals, context=None): 'number_increment': 1} if 'company_id' in vals: seq['company_id'] = vals['company_id'] - return self.pool.get('ir.sequence').create(cr, uid, seq) + return self.env['ir.sequence'].create(seq).id - def create(self, cr, uid, vals, context=None): + @api.model + def create(self, vals): """ Overwrite method to create a new ir.sequence if this field is null """ - if not 'internal_sequence_id' in vals or \ - not vals['internal_sequence_id']: - vals.update({'internal_sequence_id': self.create_sequence( - cr, uid, vals, context)}) - result = super(L10n_brAccountDocumentSerie, self).create( - cr, uid, vals, context) - if result: - company = self.pool.get('res.company').browse( - cr, uid, vals.get('company_id'), context=context) - value = {} - if vals.get('fiscal_type') == 'product': - series = [doc_serie.id for doc_serie in - company.document_serie_product_ids] - series.append(result) - value = { - 'document_serie_product_ids': [(6, 0, list(set(series)))]} - else: - value = {'document_serie_service_id': result} - self.pool.get('res.company').write( - cr, uid, vals.get('company_id'), value, context=context) + if not vals.get('internal_sequence_id'): + vals.update({'internal_sequence_id': self._create_sequence(vals)}) + result = super(L10n_brAccountDocumentSerie, self).create(vals) + # TODO + #if result: + # company = self.env['res.company'].browse(vals.get('company_id')) + # value = {} + # if vals.get('fiscal_type') == 'product': + # series = [doc_serie.id for doc_serie in + # company.document_serie_product_ids] + # series.append(result.id) + # company.document_serie_product_ids = [(6, 0, list(set(series)))] + # else: + # company.document_serie_service_id = result.id + # company.write() return result -class L10n_brAccountInvoiceInvalidNumber(orm.Model): +class L10n_brAccountInvoiceInvalidNumber(models.Model): _name = 'l10n_br_account.invoice.invalid.number' _description = u'Inutilização de Faixa de Numeração' + #TODO def _name_get(self, cr, uid, ids, field_name, arg, context=None): result = {} for record in self.browse(cr, uid, ids, context): @@ -301,73 +268,69 @@ def _name_get(self, cr, uid, ids, field_name, arg, context=None): str(record.number_start) + ' - ' + str(record.number_end) return result - _columns = { - 'name': fields.function( - _name_get, method=True, type="char", - size=64, string="Nome"), - 'company_id': fields.many2one( - 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', 'Documento Fiscal', - readonly=True, states={'draft': [('readonly', False)]}, - required=True), - 'document_serie_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id), " - "('company_id', '=', company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'number_start': fields.integer( - u'Número Inicial', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'number_end': fields.integer( - u'Número Final', readonly=True, - states={'draft': [('readonly', False)]}, required=True), - 'state': fields.selection( - [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True), - 'justificative': fields.char('Justificativa', size=255, - readonly=True, states={'draft': [('readonly', False)]}, - required=True), - 'invalid_number_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos'), - } - _defaults = { - 'state': 'draft', - 'company_id': lambda self, cr, uid, - c: self.pool.get('res.company')._company_default_get( - cr, uid, 'account.invoice', context=c) - } + name = fields.Char(store=True, size=64, string="Nome", function=_name_get) + company_id = fields.Many2one( + 'res.company', 'Empresa', readonly=True, + states={'draft': [('readonly', False)]}, required=True, + default=lambda self: self.env['res.company']._company_default_get( + 'l10n_br_account.invoice.invalid.number')) + fiscal_document_id = fields.Many2one( + 'l10n_br_account.fiscal.document', 'Documento Fiscal', + readonly=True, states={'draft': [('readonly', False)]}, + required=True) + document_serie_id = fields.Many2one( + 'l10n_br_account.document.serie', u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id), " + "('company_id', '=', company_id)]", readonly=True, + states={'draft': [('readonly', False)]}, required=True) + number_start = fields.Integer( + u'Número Inicial', readonly=True, + states={'draft': [('readonly', False)]}, required=True) + number_end = fields.Integer( + u'Número Final', readonly=True, + states={'draft': [('readonly', False)]}, required=True) + state = fields.Selection( + [('draft', 'Rascunho'), ('cancel', 'Cancelado'), + ('done', u'Concluído')], 'Status', required=True, default='draft') + justificative = fields.Char('Justificativa', size=255, + readonly=True, states={'draft': [('readonly', False)]}, required=True) + invalid_number_document_event_ids = fields.One2many( + 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + _sql_constraints = [ ('number_uniq', 'unique(document_serie_id, number_start, number_end, state)', u'Sequência existente!'), ] - def _check_justificative(self, cr, uid, ids): - for invalid in self.browse(cr, uid, ids): - if len(invalid.justificative) < 15: - return False + @api.one + @api.constrains('justificative') + def _check_justificative(self): + if len(self.justificative) < 15: + raise Warning( + _('Justificativa deve ter tamanho minimo de 15 caracteres.')) return True - def _check_range(self, cursor, user, ids, context=None): - for invalid_number in self.browse(cursor, user, ids, context=context): - where = [] - if invalid_number.number_start: - where.append("((number_end>='%s') or (number_end is null))" % ( - invalid_number.number_start,)) - if invalid_number.number_end: - where.append("((number_start<='%s') or (number_start is null))" % (invalid_number.number_end,)) - - cursor.execute('SELECT id ' \ - 'FROM l10n_br_account_invoice_invalid_number ' \ - 'WHERE '+' and '.join(where) + (where and ' and ' or '') + - 'document_serie_id = %s ' \ - "AND state = 'done'" \ - 'AND id <> %s' % (invalid_number.document_serie_id.id, invalid_number.id)) - if cursor.fetchall() or (invalid_number.number_start > invalid_number.number_end): - return False + @api.one + @api.constrains('number_start', 'number_end') + def _check_range(self): + where = [] + if self.number_start: + where.append("((number_end>='%s') or (number_end is null))" % ( + self.number_start,)) + if self.number_end: + where.append( + "((number_start<='%s') or (number_start is null))" % ( + self.number_end,)) + + self._cr.execute('SELECT id ' \ + 'FROM l10n_br_account_invoice_invalid_number ' \ + 'WHERE '+' and '.join(where) + (where and ' and ' or '') + + 'document_serie_id = %s ' \ + "AND state = 'done'" \ + 'AND id <> %s' % (self.document_serie_id.id, self.id)) + if self._cr.fetchall() or (self.number_start > self.number_end): + raise Warning(_(u'Não é permitido faixas sobrepostas!')) return True _constraints = [ @@ -376,107 +339,88 @@ def _check_range(self, cursor, user, ids, context=None): (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) ] - def action_draft_done(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state': 'done'}) + def action_draft_done(self): + self.write({'state': 'done'}) return True - def unlink(self, cr, uid, ids, context=None): - if context is None: - context = {} - invalid_numbers = self.read(cr, uid, ids, ['state'], context=context) + @api.multi + def unlink(self): unlink_ids = [] - for invalid_number in invalid_numbers: + for invalid_number in self: if invalid_number['state'] in ('draft'): unlink_ids.append(invalid_number['id']) else: - raise orm.except_orm( - (u'Ação Inválida!'), - (u'Você não pode excluir uma sequência concluída.')) - orm.Model.unlink(self, cr, uid, unlink_ids, context=context) - return True + raise Warning(_( + u'Você não pode excluir uma sequência concluída.')) + return super(L10n_brAccountInvoiceInvalidNumber, self).unlink() -class L10n_brAccountPartnerFiscalType(orm.Model): +class L10n_brAccountPartnerFiscalType(models.Model): _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=64), - 'is_company': fields.boolean('Pessoa Juridica?'), - 'default': fields.boolean(u'Tipo Fiscal Padrão'), - 'icms': fields.boolean('Recupera ICMS'), - 'ipi': fields.boolean('Recupera IPI') - } - _defaults = { - 'default': True, - } - - -class L10n_brAccountCNAE(orm.Model): + + code = fields.Char(u'Código', size=16, required=True) + name = fields.Char(u'Descrição', size=64) + is_company = fields.Boolean('Pessoa Juridica?') + default = fields.Boolean(u'Tipo Fiscal Padrão', default=True) + icms = fields.Boolean('Recupera ICMS') + ipi = fields.Boolean('Recupera IPI') + + +class L10n_brAccountCNAE(models.Model): _name = 'l10n_br_account.cnae' _description = 'Cadastro de CNAE' - _columns = { - 'code': fields.char(u'Código', size=16, required=True), - 'name': fields.char(u'Descrição', size=64, required=True), - 'version': fields.char(u'Versão', size=16, required=True), - 'parent_id': fields.many2one('l10n_br_account.cnae', 'CNAE Pai'), - 'child_ids': fields.one2many( - 'l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos'), - 'internal_type': fields.selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True), - } - _defaults = { - 'internal_type': 'normal' - } - - def name_get(self, cr, uid, ids, context=None): - if not ids: - return [] - reads = self.read(cr, uid, ids, ['name', 'code'], context=context) - res = [] - for record in reads: + + code = fields.Char(u'Código', size=16, required=True) + name = fields.Char(u'Descrição', size=64, required=True) + version = fields.Char(u'Versão', size=16, required=True) + parent_id = fields.Many2one('l10n_br_account.cnae', 'CNAE Pai') + child_ids = fields.One2many( + 'l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos') + internal_type = fields.Selection( + [('view', u'Visualização'), ('normal', 'Normal')], + 'Tipo Interno', required=True, default='normal') + + @api.multi + def name_get(self): + result = [] + for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name - res.append((record['id'], name)) - return res + result.append((record['id'], name)) + return result -class L10n_brTaxDefinitionTemplate(orm.Model): +class L10n_brTaxDefinitionTemplate(models.Model): _name = 'l10n_br_tax.definition.template' - _columns = { - 'tax_id': fields.many2one( - 'account.tax.template', 'Imposto', required=True), - 'tax_domain': fields.related( - 'tax_id', 'domain', type='char'), - 'tax_code_id': fields.many2one( - 'account.tax.code.template', u'Código de Imposto')} - - def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): + + tax_id = fields.Many2one('account.tax.template', string='Imposto', + required=True) + tax_domain = fields.Char(related='tax_id.domain', string='Tax Domain') + tax_code_id = fields.Many2one( + 'account.tax.code.template', u'Código de Imposto') + + @api.multi + def onchange_tax_id(self, tax_id): tax_domain = False if tax_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_id, ['domain'], context=context)['domain'] + tax_domain = self.env['account.tax'].browse(tax_id).domain return {'value': {'tax_domain': tax_domain}} -class L10n_brTaxDefinition(orm.Model): +class L10n_brTaxDefinition(models.Model): _name = 'l10n_br_tax.definition' - _columns = { - 'tax_id': fields.many2one('account.tax', 'Imposto', required=True), - 'tax_domain': fields.related('tax_id', 'domain', - type='char'), - 'tax_code_id': fields.many2one( - 'account.tax.code', u'Código de Imposto'), - 'company_id': fields.related( - 'tax_id', 'company_id', type='many2one', readonly=True, - relation='res.company', store=True, string='Empresa'), - } - - def onchange_tax_id(self, cr, uid, ids, tax_id=False, context=None): + + tax_id = fields.Many2one('account.tax', string='Imposto', required=True) + tax_domain = fields.Char(related='tax_id.domain', string='Tax Domain') + tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') + company_id = fields.Many2one('res.company', string='Company', + related='tax_id.company_id', store=True, readonly=True) + + @api.multi + def onchange_tax_id(self, tax_id): tax_domain = False if tax_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_id, ['domain'], context=context)['domain'] + tax_domain = self.env['account.tax'].browse(tax_id).domain return {'value': {'tax_domain': tax_domain}} From 6a0438ab9451d84ff3ed2faa6911a3c3837482f5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 22:02:56 -0200 Subject: [PATCH 0431/1549] migrate views in l10n_br_account_view.xml --- l10n_br_account/l10n_br_account_view.xml | 85 +++++++++++++++--------- 1 file changed, 53 insertions(+), 32 deletions(-) diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/l10n_br_account_view.xml index 661d98648ca9..77e886451a0f 100644 --- a/l10n_br_account/l10n_br_account_view.xml +++ b/l10n_br_account/l10n_br_account_view.xml @@ -69,9 +69,13 @@ l10n_br_account.fiscal.document
- - - + + + + + + +
@@ -176,13 +180,18 @@ l10n_br_account.partner.fiscal.type
- - - - - - - + + + + + + + + + + + +
@@ -204,13 +213,17 @@ l10n_br_account.document.serie
- - - - - - - + + + + + + + + + + +
@@ -317,11 +330,15 @@ l10n_br_account.cnae
- - - - - + + + + + + + + + @@ -358,16 +375,18 @@ l10n_br_account.service.type
- - - - - - + + + + + + + +
- + l10n_br_account.service.type.tree l10n_br_account.service.type @@ -398,9 +417,11 @@ l10n_br_tax.definition
- - - + + + + +
From 31e35c97af70ed802ec9d2589191837f17cb2973 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 22:03:44 -0200 Subject: [PATCH 0432/1549] added state_id in product fiscal category --- l10n_br_account/product.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_br_account/product.py b/l10n_br_account/product.py index 839a80cf25ef..dc8796890624 100644 --- a/l10n_br_account/product.py +++ b/l10n_br_account/product.py @@ -43,3 +43,5 @@ class L10n_brAccountProductFiscalCategory(models.Model): 'l10n_br_account.fiscal.category', 'Categoria de Destino') product_tmpl_id = fields.Many2one( 'product.template', 'Produto', ondelete='cascade') + to_state_id = fields.Many2one( + 'res.country.state', 'Estado Destino') From ac1a6d72eebc48741d187a12142f01843d6b8f8f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 22:07:45 -0200 Subject: [PATCH 0433/1549] added state_id in product fiscal category view --- l10n_br_account/product_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/product_view.xml index 37b23ad4fe21..ede25a08f914 100644 --- a/l10n_br_account/product_view.xml +++ b/l10n_br_account/product_view.xml @@ -16,6 +16,7 @@ +
From bb45c3352c7d744f62f336695f751d6d6f801e07 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 23 Oct 2014 22:09:37 -0200 Subject: [PATCH 0434/1549] migrate account.fiscal.position.template to new API --- l10n_br_account/res_partner.py | 71 +++++++++++++++------------------- 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index 42d70d08560d..d7130ba17548 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -17,54 +17,47 @@ #along with this program. If not, see . # ############################################################################### -from openerp.osv import orm, fields - -FISCAL_POSITION_COLUMNS = { - 'name': fields.char('Fiscal Position', size=128, required=True), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal'), - 'fiscal_category_fiscal_type': fields.related( - 'fiscal_category_id', 'fiscal_type', type='char', readonly=True, - relation='l10n_br_account.fiscal.category', store=True, - string='Fiscal Type'), - 'type': fields.selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo'), - 'type_tax_use': fields.selection( +from openerp import models, fields, api +from openerp.addons.l10n_br_account.l10n_br_account import TYPE + +class AccountFiscalPositionTemplate(models.Model): + _inherit = 'account.fiscal.position.template' + + name = fields.Char('Fiscal Position', size=128, required=True) + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal') + fiscal_category_fiscal_type = fields.Selection(TYPE, + related='fiscal_category_id.type', readonly=True, + store=True, string='Fiscal Type') + type = fields.Selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo') + type_tax_use = fields.Selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], - 'Tax Application'), - 'inv_copy_note': fields.boolean(u'Copiar Observação na Nota Fiscal'), - 'asset_operation': fields.boolean(u'Operação de Aquisição de Ativo', - help=u"""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS."""), - 'state': fields.selection([('draft', u'Rascunho'), + 'Tax Application') + inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') + asset_operation = fields.Boolean('Operação de Aquisição de Ativo', + help="""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS.""") + state = fields.Selection([('draft', u'Rascunho'), ('review', u'Revisão'), ('approved', u'Aprovada'), ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True), -} - -FISCAL_POSITION_DEFAULTS = { - 'state': 'draft', -} - - -class AccountFiscalPositionTemplate(orm.Model): - _inherit = 'account.fiscal.position.template' - _columns = FISCAL_POSITION_COLUMNS - _defaults = FISCAL_POSITION_DEFAULTS + track_visibility='onchange', select=True, default='draft') - def onchange_type(self, cr, uid, ids, type=False, context=None): + @api.multi + def onchange_type(self, type): type_tax = {'input': 'purhcase', 'output': 'sale'} return {'value': {'type_tax_use': type_tax.get(type, 'all'), 'tax_ids': False}} - def onchange_fiscal_category_id(self, cr, uid, ids, - fiscal_category_id=False, context=None): + @api.multi + def onchange_fiscal_category_id(self, fiscal_category_id=None): + result = {'value': {}} if fiscal_category_id: - fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, - ['fiscal_type', 'journal_type'], context=context) - return {'value': - {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} + fiscal_category = self.env[ + 'l10n_br_account.fiscal.category'].browse(fiscal_category_id) + result['value'].update( + {'fiscal_category_fiscal_type': fiscal_category.fiscal_type}) + return result def generate_fiscal_position(self, cr, uid, chart_temp_id, tax_template_ref, acc_template_ref, From c993375f51ccca61e57c728775d2ab04c481d0c6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 11:24:04 -0200 Subject: [PATCH 0435/1549] migrate res_partner.py classes to new API --- l10n_br_account/res_partner.py | 302 ++++++++++++++------------------- 1 file changed, 127 insertions(+), 175 deletions(-) diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/res_partner.py index d7130ba17548..e0ea355f7acc 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/res_partner.py @@ -124,125 +124,134 @@ def generate_fiscal_position(self, cr, uid, chart_temp_id, return True -class AccountFiscalPositionTaxTemplate(orm.Model): +class AccountFiscalPositionTaxTemplate(models.Model): _inherit = 'account.fiscal.position.tax.template' - _columns = { - 'tax_src_id': fields.many2one('account.tax.template', 'Tax Source'), - 'tax_code_src_id': fields.many2one('account.tax.code.template', - u'Código Taxa Origem'), - 'tax_src_domain': fields.related('tax_src_id', 'domain', - type='char'), - 'tax_code_dest_id': fields.many2one('account.tax.code.template', - 'Replacement Tax Code') - } - - def _tax_domain(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - tax_domain = False - if tax_src_id: - tax_domain = self.pool.get('account.tax.template').read( - cr, uid, tax_src_id, ['domain'], context=context)['domain'] - - if tax_code_src_id: - tax_domain = self.pool.get('account.tax.code.template').read( - cr, uid, tax_code_src_id, ['domain'], - context=context)['domain'] - return {'value': {'tax_src_domain': tax_domain}} + tax_src_id = fields.Many2one( + 'account.tax.template', string='Tax Source', required=False) + tax_code_src_id = fields.Many2one( + 'account.tax.code.template', string=u'Código Taxa Origem') + tax_src_domain = fields.Char( + related='tax_src_id.domain', string='Tax Domain') + tax_code_dest_id = fields.Many2one( + 'account.tax.code.template', string='Replacement Tax Code') - def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): + def _tax_domain(self, tax_src_id=None, tax_code_src_id=None): - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) + tax_domain = None + if tax_src_id: + tax_domain = self.env['account.tax'].browse(tax_src_id).domain + if tax_code_src_id: + tax_domain = self.env['account.tax'].browse( + tax_code_src_id).domain + return {'value': {'tax_src_domain': tax_domain}} - def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): + @api.one + def onchange_tax_src_id(self, tax_src_id, tax_code_src_id): + return self._tax_domain(tax_src_id, tax_code_src_id) - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) + @api.one + def onchange_tax_code_src_id(self, tax_src_id, tax_code_src_id,): + return self._tax_domain(tax_src_id, tax_code_src_id) -class AccountFiscalPosition(orm.Model): +class AccountFiscalPosition(models.Model): _inherit = 'account.fiscal.position' - _columns = FISCAL_POSITION_COLUMNS - _defaults = FISCAL_POSITION_DEFAULTS - def onchange_type(self, cr, uid, ids, type=False, context=None): + name = fields.Char('Fiscal Position', size=128, required=True) + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal') + fiscal_category_fiscal_type = fields.Selection(TYPE, + related='fiscal_category_id.type', readonly=True, + store=True, string='Fiscal Type') + type = fields.Selection([('input', 'Entrada'), ('output', 'Saida')], + 'Tipo') + type_tax_use = fields.Selection( + [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], + 'Tax Application') + inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') + asset_operation = fields.Boolean('Operação de Aquisição de Ativo', + help="""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS.""") + state = fields.Selection([('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True, default='draft') + + @api.multi + def onchange_type(self, type): type_tax = {'input': 'purchase', 'output': 'sale'} return {'value': {'type_tax_use': type_tax.get(type, 'all'), - 'tax_ids': False}} + 'tax_ids': False}} - def onchange_fiscal_category_id(self, cr, uid, ids, - fiscal_category_id=False, context=None): + @api.multi + def onchange_fiscal_category_id(self, fiscal_category_id=None): + result = {'value': {}} if fiscal_category_id: - fc_fields = self.pool.get('l10n_br_account.fiscal.category').read( - cr, uid, fiscal_category_id, ['fiscal_type', 'journal_type'], - context=context) - return {'value': - {'fiscal_category_fiscal_type': fc_fields['fiscal_type']}} + fiscal_category = self.env[ + 'l10n_br_account.fiscal.category'].browse(fiscal_category_id) + result['value'].update( + {'fiscal_category_fiscal_type': fiscal_category.fiscal_type}) + return result - #TODO - Refatorar para trocar os impostos - def map_tax_code(self, cr, uid, product_id, fiscal_position, - company_id=False, tax_ids=False, context=None): - if not context: - context = {} +class AccountFiscalPositionTax(models.Model): + _inherit = 'account.fiscal.position.tax' + + tax_src_id = fields.Many2one( + 'account.tax', string='Tax Source', required=False) + tax_code_src_id = fields.Many2one( + 'account.tax.code', u'Código Taxa Origem') + tax_src_domain = fields.Char(related='tax_src_id.domain') + tax_code_dest_id = fields.Many2one( + 'account.tax.code', 'Replacement Tax Code') - result = {} - if tax_ids: - - product = self.pool.get('product.product').browse( - cr, uid, product_id, context=context) - - fclassificaion = product.ncm_id - - if context.get('type_tax_use') == 'sale': - - if fclassificaion: - tax_sale_ids = fclassificaion.sale_tax_definition_line - for tax_def in tax_sale_ids: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if company_id: - company = self.pool.get('res.company').browse( - cr, uid, company_id, context=context) - - if context.get('fiscal_type', 'product') == 'product': - company_tax_def = company.product_tax_definition_line - else: - company_tax_def = company.service_tax_definition_line - - for tax_def in company_tax_def: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if context.get('type_tax_use') == 'purchase': - - if fclassificaion: - tax_purchase_ids = fclassificaion.purchase_tax_definition_line - for tax_def in tax_purchase_ids: - if tax_def.tax_id.id in tax_ids and tax_def.tax_code_id: - result.update({tax_def.tax_id.domain: - tax_def.tax_code_id.id}) - - if fiscal_position: - for fp_tax in fiscal_position.tax_ids: - if fp_tax.tax_dest_id: - if fp_tax.tax_dest_id.id in tax_ids and fp_tax.tax_code_dest_id: - result.update({fp_tax.tax_dest_id.domain: - fp_tax.tax_code_dest_id.id}) - if not fp_tax.tax_dest_id and fp_tax.tax_code_src_id and \ - fp_tax.tax_code_dest_id: - result.update({fp_tax.tax_code_src_id.domain: - fp_tax.tax_code_dest_id.id}) + def _tax_domain(self, tax_src_id=None, tax_code_src_id=None): + tax_domain = None + if tax_src_id: + tax_domain = self.env['account.tax'].browse(tax_src_id).domain + if tax_code_src_id: + tax_domain = self.env['account.tax'].browse( + tax_code_src_id).domain + return {'value': {'tax_src_domain': tax_domain}} + + @api.one + def onchange_tax_src_id(self, tax_src_id, tax_code_src_id): + return self._tax_domain(tax_src_id, tax_code_src_id) + + @api.one + def onchange_tax_code_src_id(self, tax_src_id, tax_code_src_id,): + return self._tax_domain(tax_src_id, tax_code_src_id) + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + @api.model + def _default_partner_fiscal_type_id(self, is_company=False): + """Define o valor padão para o campo tipo fiscal, por padrão pega + o tipo fiscal para não contribuinte já que quando é criado um novo + parceiro o valor do campo is_company é false""" + ft_ids = self.env['l10n_br_account.partner.fiscal.type'].search( + [('default', '=', 'True'), ('is_company', '=', is_company)]) + return ft_ids + + partner_fiscal_type_id = fields.Many2one( + 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', + domain="[('is_company', '=', is_company)]", + default=_default_partner_fiscal_type_id) + + @api.multi + def onchange_mask_cnpj_cpf(self, is_company, cnpj_cpf): + result = super(ResPartner, self).onchange_mask_cnpj_cpf( + is_company, cnpj_cpf) + ft_id = self._default_partner_fiscal_type_id(is_company) + if ft_id: + result['value']['partner_fiscal_type_id'] = ft_id return result + @api.v7 def map_tax(self, cr, uid, fposition_id, taxes, context=None): result = [] if not context: @@ -287,82 +296,25 @@ def map_tax(self, cr, uid, fposition_id, taxes, context=None): return list(set(result)) + @api.v8 + def map_tax(self, taxes): + result = self.env['account.tax'].browse() + if self.company_id and self.env.context.get('type_tax_use') in ('sale', 'all'): + if self.env.context.get('fiscal_type', 'product') == 'product': + company_taxes = self.company_id.product_tax_ids + else: + company_taxes = self.company_id.service_tax_ids -class AccountFiscalPositionTax(orm.Model): - _inherit = 'account.fiscal.position.tax' - _columns = { - 'tax_src_id': fields.many2one('account.tax', 'Tax Source'), - 'tax_code_src_id': fields.many2one( - 'account.tax.code', u'Código Taxa Origem'), - 'tax_src_domain': fields.related( - 'tax_src_id', 'domain', type='char'), - 'tax_code_dest_id': fields.many2one( - 'account.tax.code', 'Replacement Tax Code') - } - - def _tax_domain(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - tax_domain = False - if tax_src_id: - tax_domain = self.pool.get('account.tax').read( - cr, uid, tax_src_id, ['domain'], context=context)['domain'] - - if tax_code_src_id: - tax_domain = self.pool.get('account.tax.code').read( - cr, uid, tax_code_src_id, ['domain'], - context=context)['domain'] - - return {'value': {'tax_src_domain': tax_domain}} - - def onchange_tax_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - def onchange_tax_code_src_id(self, cr, uid, ids, tax_src_id=False, - tax_code_src_id=False, context=None): - - return self._tax_domain(cr, uid, ids, tax_src_id, tax_code_src_id, - context=context) - - -class ResPartner(orm.Model): - _inherit = 'res.partner' - _columns = { - 'partner_fiscal_type_id': fields.many2one( - 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', - domain="[('is_company', '=', is_company)]") - } - - def _default_partner_fiscal_type_id(self, cr, uid, is_company=False, - context=None): - """Define o valor padão para o campo tipo fiscal, por padrão pega - o tipo fiscal para não contribuinte já que quando é criado um novo - parceiro o valor do campo is_company é false""" - result = False - ft_ids = self.pool.get('l10n_br_account.partner.fiscal.type').search( - cr, uid, [('default', '=', 'True'), - ('is_company', '=', is_company)], context=context) - - parnter_fiscal_type = self.pool.get('res.company').read( - cr, uid, ft_ids, ['id'], context=context) - if parnter_fiscal_type: - result = parnter_fiscal_type[0]['id'] + if taxes: + taxes |= company_taxes + + for tax in taxes: + for t in self.tax_ids: + if t.tax_src_id == tax or t.tax_code_src_id == tax.tax_code_id: + if t.tax_dest_id: + result |= t.tax_dest_id + break + else: + result |= tax return result - _defaults = { - 'partner_fiscal_type_id': _default_partner_fiscal_type_id, - } - - def onchange_mask_cnpj_cpf(self, cr, uid, ids, is_company, - cnpj_cpf, context=None): - result = super(ResPartner, self).onchange_mask_cnpj_cpf( - cr, uid, ids, is_company, cnpj_cpf, context) - ft_id = self._default_partner_fiscal_type_id( - cr, uid, is_company, context) - - if ft_id: - result['value']['partner_fiscal_type_id'] = ft_id - return result From 5e62ac40467a8456335d52963ba6753da178fee5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:10:05 -0200 Subject: [PATCH 0436/1549] migrate account.invoice class to new API --- l10n_br_account/account_invoice.py | 388 ++++++++++------------------- 1 file changed, 137 insertions(+), 251 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 49a8486e4170..9b8bc8dbe683 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -19,10 +19,9 @@ from lxml import etree -from openerp import netsvc -from openerp.osv import orm, fields +from openerp import models, fields, api, _ from openerp.addons import decimal_precision as dp -from openerp.tools.translate import _ +from openerp.exceptions import except_orm, Warning from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT @@ -41,130 +40,104 @@ } -class AccountInvoice(orm.Model): +class AccountInvoice(models.Model): _inherit = 'account.invoice' - def _get_receivable_lines(self, cr, uid, ids, name, arg, context=None): - res = {} - for invoice in self.browse(cr, uid, ids, context=context): - res[invoice.id] = [] - if not invoice.move_id: - continue - data_lines = [x for x in invoice.move_id.line_id if x.account_id.id == invoice.account_id.id and x.account_id.type in ('receivable', 'payable') and invoice.journal_id.revenue_expense] - New_ids = [] - for line in data_lines: - New_ids.append(line.id) - New_ids.sort() - res[invoice.id] = New_ids - return res - - _columns = { - 'issuer': fields.selection( - [('0', u'Emissão própria'), - ('1', 'Terceiros')], 'Emitente', readonly=True, - states={'draft': [('readonly', False)]}), - 'internal_number': fields.char( - 'Invoice Number', size=32, readonly=True, - states={'draft': [('readonly', False)]}, - help="""Unique number of the invoice, computed - automatically when the invoice is created."""), - 'fiscal_type': fields.selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True), - 'vendor_serie': fields.char( - u'Série NF Entrada', size=12, readonly=True, - states={'draft': [('readonly', False)]}, - help=u"Série do número da Nota Fiscal do Fornecedor"), - 'move_line_receivable_id': fields.function( - _get_receivable_lines, method=True, type='many2many', - relation='account.move.line', string='Entry Lines'), - 'document_serie_id': fields.many2one( - 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id),\ - ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}), - 'fiscal_document_id': fields.many2one( - 'l10n_br_account.fiscal.document', 'Documento', readonly=True, - states={'draft': [('readonly', False)]}), - 'fiscal_document_electronic': fields.related( - 'fiscal_document_id', 'electronic', type='boolean', readonly=True, - relation='l10n_br_account.fiscal.document', store=True, - string='Electronic'), - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal', - readonly=True, states={'draft': [('readonly', False)]}), - 'fiscal_position': fields.many2one( - 'account.fiscal.position', 'Fiscal Position', readonly=True, - states={'draft': [('readonly', False)]}, - domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'account_document_event_ids': fields.one2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos'), - 'fiscal_comment': fields.text(u'Observação Fiscal'), - } - - def _default_fiscal_document(self, cr, uid, context): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - fiscal_document = self.pool.get('res.company').read( - cr, uid, user.company_id.id, ['service_invoice_id'], - context=context)['service_invoice_id'] - - return fiscal_document and fiscal_document[0] or False - - def _default_fiscal_document_serie(self, cr, uid, context): - fiscal_document_serie = False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - company = self.pool.get('res.company').browse( - cr, uid, user.company_id.id, context=context) - - fiscal_document_serie = company.document_serie_service_id and \ - company.document_serie_service_id.id or False - - return fiscal_document_serie - - _defaults = { - 'issuer': '0', - 'fiscal_type': PRODUCT_FISCAL_TYPE_DEFAULT, - 'fiscal_document_id': _default_fiscal_document, - 'document_serie_id': _default_fiscal_document_serie, - } - - def _check_invoice_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - invoices = self.browse(cr, uid, ids, context=context) + @api.one + @api.depends( + 'move_id.line_id.reconcile_id.line_id', + 'move_id.line_id.reconcile_partial_id.line_partial_ids', + ) + def _compute_receivables(self): + lines = self.env['account.move.line'] + for line in self.move_id.line_id: + if line.account_id.id == self.account_id.id and \ + line.account_id.type in ('receivable', 'payable') and \ + self.journal_id.revenue_expense: + lines |= line + self.move_line_receivable_id = (lines).sorted() + + @api.model + def _default_fiscal_document(self): + company = self.env['res.company'].browse(self.env.user.company_id.id) + return company.service_invoice_id + + @api.model + def _default_fiscal_document_serie(self): + company = self.env['res.company'].browse(self.env.user.company_id.id) + return company.document_serie_service_id + + issuer = fields.Selection( + [('0', u'Emissão própria'), ('1', 'Terceiros')], 'Emitente', + default='0', readonly=True, states={'draft': [('readonly', False)]}) + internal_number = fields.Char( + 'Invoice Number', size=32, readonly=True, + states={'draft': [('readonly', False)]}, + help="""Unique number of the invoice, computed + automatically when the invoice is created.""") + fiscal_type = fields.Selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True, + default=PRODUCT_FISCAL_TYPE_DEFAULT) + vendor_serie = fields.Char( + 'Série NF Entrada', size=12, readonly=True, + states={'draft': [('readonly', False)]}, + help=u"Série do número da Nota Fiscal do Fornecedor") + move_line_receivable_id = fields.Many2many( + 'account.move.line', string='Receivables', + compute='_compute_receivables') + fiscal_document_id = fields.Many2one( + 'l10n_br_account.fiscal.document', 'Documento', readonly=True, + states={'draft': [('readonly', False)]}, + default=_default_fiscal_document) + fiscal_document_electronic = fields.Boolean( + related='fiscal_document_id.electronic') + document_serie_id = fields.Many2one( + 'l10n_br_account.document.serie', u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id),\ + ('company_id','=',company_id)]", readonly=True, + states={'draft': [('readonly', False)]}, + default=_default_fiscal_document_serie) + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal', + readonly=True, states={'draft': [('readonly', False)]}) + fiscal_position = fields.Many2one( + 'account.fiscal.position', 'Fiscal Position', readonly=True, + states={'draft': [('readonly', False)]}, + domain="[('fiscal_category_id','=',fiscal_category_id)]") + account_document_event_ids = fields.One2many( + 'l10n_br_account.document_event', 'document_event_ids', + u'Eventos') + fiscal_comment = fields.Text(u'Observação Fiscal') + + @api.one + @api.constrains('number') + def _check_invoice_number(self): domain = [] - for invoice in invoices: - if not invoice.number: - continue - fiscal_document = invoice.fiscal_document_id and \ - invoice.fiscal_document_id.id or False - domain.extend([('internal_number', '=', invoice.number), - ('fiscal_type', '=', invoice.fiscal_type), + if self.number: + fiscal_document = self.fiscal_document_id and self.fiscal_document_id.id or False + domain.extend([('internal_number', '=', self.number), + ('fiscal_type', '=', self.fiscal_type), ('fiscal_document_id', '=', fiscal_document) ]) - if invoice.issuer == '0': - domain.extend( - [('company_id', '=', invoice.company_id.id), - ('internal_number', '=', invoice.number), - ('fiscal_document_id', '=', invoice.fiscal_document_id.id), + if self.issuer == '0': + domain.extend([ + ('company_id', '=', self.company_id.id), + ('internal_number', '=', self.number), + ('fiscal_document_id', '=', self.fiscal_document_id.id), ('issuer', '=', '0')]) else: - domain.extend( - [('partner_id', '=', invoice.partner_id.id), - ('vendor_serie', '=', invoice.vendor_serie), + domain.extend([ + ('partner_id', '=', self.partner_id.id), + ('vendor_serie', '=', self.vendor_serie), ('issuer', '=', '1')]) - invoice_id = self.pool.get('account.invoice').search( - cr, uid, domain) - if len(invoice_id) > 1: - return False - return True + invoices = self.env['account.invoice'].search(domain) + if len(invoices) > 1: + raise Warning(u'Não é possível registrar documentos fiscais com números repetidos.') - _constraints = [ - (_check_invoice_number, - u"Error!\nNão é possível registrar \ - documentos fiscais com números repetidos.", - ['number']), + _sql_constraints = [ + ('number_uniq', 'unique(number, company_id, journal_id, type, partner_id)', + 'Invoice Number must be unique per Company!'), ] #TODO - Melhorar esse método! @@ -231,68 +204,6 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, result['arch'] = etree.tostring(doc) return result - def init(self, cr): - # Remove a constraint na coluna número do documento fiscal, - # no caso dos documentos de entradas dos fornecedores pode existir - # documentos fiscais de fornecedores diferentes com a mesma numeração - cr.execute("ALTER TABLE %s DROP CONSTRAINT IF EXISTS %s" % ( - 'account_invoice', 'account_invoice_number_uniq')) - - # go from canceled state to draft state - def action_cancel_draft(self, cr, uid, ids, *args): - self.write(cr, uid, ids, { - 'state': 'draft', - 'internal_number': False, - 'nfe_access_key': False, - 'nfe_status': False, - 'nfe_date': False, - 'nfe_export_date': False}) - wf_service = netsvc.LocalService("workflow") - for inv_id in ids: - wf_service.trg_delete(uid, 'account.invoice', inv_id, cr) - wf_service.trg_create(uid, 'account.invoice', inv_id, cr) - return True - - def copy(self, cr, uid, id, default={}, context=None): - default.update({ - 'internal_number': False, - 'nfe_access_key': False, - 'nfe_status': False, - 'nfe_protocol_number': False, - 'nfe_date': False, - 'nfe_export_date': False, - 'account_document_event_ids': False, - }) - return super(AccountInvoice, self).copy(cr, uid, id, default, context) - - def action_internal_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - - for inv in self.browse(cr, uid, ids): - if inv.issuer == '0': - sequence = self.pool.get('ir.sequence') - sequence_read = sequence.read( - cr, uid, inv.document_serie_id.internal_sequence_id.id, - ['number_next']) - invalid_number = self.pool.get( - 'l10n_br_account.invoice.invalid.number').search( - cr, uid, [ - ('number_start', '<=', sequence_read['number_next']), - ('number_end', '>=', sequence_read['number_next']), - ('state', '=', 'done')]) - - if invalid_number: - raise orm.except_orm( - _(u'Número Inválido !'), - _(u"O número: %s da série: %s, esta inutilizado") % ( - sequence_read['number_next'], - inv.document_serie_id.name)) - - seq_no = sequence.get_id(cr, uid, inv.document_serie_id.internal_sequence_id.id, context=context) - self.write(cr, uid, inv.id, {'ref': seq_no, 'internal_number': seq_no}) - return True - def action_number(self, cr, uid, ids, context=None): if context is None: context = {} @@ -324,97 +235,72 @@ def action_number(self, cr, uid, ids, context=None): self.log(cr, uid, inv_id, message, context=ctx) return True - def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): - """finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines - Hook method to be overridden in additional modules to verify and possibly alter the - move lines to be created by an invoice, for special cases. - :param invoice_browse: browsable record of the invoice that is generating the move lines - :param move_lines: list of dictionaries with the account.move.lines (as for create()) - :return: the (possibly updated) final move_lines to create for this invoice + # TODO Talvez este metodo substitui o metodo action_move_create + @api.multi + def finalize_invoice_move_lines(self, move_lines): + """ finalize_invoice_move_lines(move_lines) -> move_lines + + Hook method to be overridden in additional modules to verify and + possibly alter the move lines to be created by an invoice, for + special cases. + :param move_lines: list of dictionaries with the account.move.lines (as for create()) + :return: the (possibly updated) final move_lines to create for this invoice """ - move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(cr, uid, invoice_browse, move_lines) + move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(move_lines) cont=1 result = [] for move_line in move_lines: if (move_line[2]['debit'] or move_line[2]['credit']): if (move_line[2]['account_id'] == invoice_browse.account_id.id): - move_line[2]['name'] = '%s/%s' % ( invoice_browse.internal_number, cont) + move_line[2]['name'] = '%s/%s' % (self.internal_number, cont) cont +=1 result.append(move_line) return result - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): - - if not context: - context = {} - context.update({'use_domain': ('use_invoice', '=', True)}) - kwargs.update({'context': context}) + def _fiscal_position_map(self, result, **kwargs): + ctx = dict(self._context) + ctx.update({'use_domain': ('use_invoice', '=', True)}) - if not kwargs.get('fiscal_category_id', False): + if not ctx.get('fiscal_category_id'): return result - obj_company = self.pool.get('res.company').browse( - cr, uid, kwargs.get('company_id', False)) - obj_fcategory = self.pool.get('l10n_br_account.fiscal.category') + kwargs['fiscal_category_id'] = ctx.get('fiscal_category_id') - fcategory = obj_fcategory.browse( - cr, uid, kwargs.get('fiscal_category_id')) - result['value']['journal_id'] = fcategory.property_journal and \ - fcategory.property_journal.id or False - if not result['value'].get('journal_id', False): - raise orm.except_orm( - _(u'Nenhum Diário !'), - _(u"Categoria fiscal: '%s', não tem um diário contábil para a \ - empresa %s") % (fcategory.name, obj_company.name)) - - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - return obj_fp_rule.apply_fiscal_mapping(cr, uid, result, **kwargs) - - def onchange_partner_id(self, cr, uid, ids, type, partner_id, - date_invoice=False, payment_term=False, - partner_bank_id=False, company_id=False, - fiscal_category_id=False): + company = self.env['res.company'].browse(kwargs.get('company_id')) - result = super(AccountInvoice, self).onchange_partner_id( - cr, uid, ids, type, partner_id, date_invoice, payment_term, - partner_bank_id, company_id) - - return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - def onchange_company_id(self, cr, uid, ids, company_id, partner_id, type, - invoice_line, currency_id, - fiscal_category_id=False): - - result = super(AccountInvoice, self).onchange_company_id( - cr, uid, ids, company_id, partner_id, type, invoice_line, - currency_id) - - return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - def onchange_fiscal_category_id(self, cr, uid, ids, - partner_address_id=False, - partner_id=False, company_id=False, - fiscal_category_id=False): - result = {'value': {}} + fcategory = self.env['l10n_br_account.fiscal.category'].browse( + kwargs.get('fiscal_category_id')) + result['value']['journal_id'] = fcategory.property_journal.id + if not result['value'].get('journal_id', False): + raise except_orm( + _('Nenhum Diário !'), + _("Categoria fiscal: '%s', não tem um diário contábil para a \ + empresa %s") % (fcategory.name, company.name)) + return self.env['account.fiscal.position.rule'].with_context( + ctx).apply_fiscal_mapping(result, **kwargs) + + @api.multi + def onchange_fiscal_category_id(self, partner_address_id, + partner_id, company_id, + fiscal_category_id): + #TODO Deixar em branco a posição fiscal se não achar a regra + result = {'value': {'fiscal_position': None}} + if fiscal_category_id: + fiscal_category = self.env[ + 'l10n_br_account.fiscal.category'].browse(fiscal_category_id) + #TODO CASO NAO TENHA DIARIO EXIBIR UMA MENSAGEM + if fiscal_category.property_journal: + result['value']['journal_id'] = fiscal_category.property_journal.id return self._fiscal_position_map( - cr, uid, result, False, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, + result, partner_id=partner_id, + partner_invoice_id=partner_address_id, company_id=company_id, fiscal_category_id=fiscal_category_id) - def onchange_fiscal_document_id(self, cr, uid, ids, fiscal_document_id, - company_id, issuer, fiscal_type, - context=None): + @api.multi + def onchange_fiscal_document_id(self, fiscal_document_id, + company_id, issuer, fiscal_type): result = {'value': {'document_serie_id': False}} - if not context: - context = {} - company = self.pool.get('res.company').browse(cr, uid, company_id, - context=context) + company = self.env['res.company'].browse(company_id) if issuer == '0': serie = company.document_serie_service_id and \ From de3bd495d841692589d8e0a438cbd3e802a98df5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:13:49 -0200 Subject: [PATCH 0437/1549] [FIX] migrate account.invoice class to new API --- l10n_br_account/account_invoice.py | 57 ++++++++++++++---------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 9b8bc8dbe683..d36dca6a964a 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -140,7 +140,7 @@ def _check_invoice_number(self): 'Invoice Number must be unique per Company!'), ] - #TODO - Melhorar esse método! + #TODO não foi migrado por causa do bug github.com/odoo/odoo/issues/1711 def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): result = super(AccountInvoice, self).fields_view_get( @@ -204,35 +204,32 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, result['arch'] = etree.tostring(doc) return result - def action_number(self, cr, uid, ids, context=None): - if context is None: - context = {} - #TODO: not correct fix but required a frech values before reading it. - self.write(cr, uid, ids, {}) - - for obj_inv in self.browse(cr, uid, ids, context=context): - inv_id = obj_inv.id - move_id = obj_inv.move_id and obj_inv.move_id.id or False - ref = obj_inv.internal_number or obj_inv.reference or '' - - cr.execute('UPDATE account_move SET ref=%s ' - 'WHERE id=%s AND (ref is null OR ref = \'\')', - (ref, move_id)) - cr.execute('UPDATE account_move_line SET ref=%s ' - 'WHERE move_id=%s AND (ref is null OR ref = \'\')', - (ref, move_id)) - cr.execute('UPDATE account_analytic_line SET ref=%s ' - 'FROM account_move_line ' - 'WHERE account_move_line.move_id = %s ' - 'AND account_analytic_line.move_id = account_move_line.id', - (ref, move_id)) - - for inv_id, name in self.name_get(cr, uid, [inv_id]): - ctx = context.copy() - if obj_inv.type in ('out_invoice', 'out_refund'): - ctx = self.get_log_context(cr, uid, context=ctx) - message = _('Invoice ') + " '" + name + "' " + _("is validated.") - self.log(cr, uid, inv_id, message, context=ctx) + @api.multi + def action_number(self): + #TODO: not correct fix but required a fresh values before reading it. + self.write({}) + + for invoice in self: + if invoice.issuer == '0': + sequence_obj = self.env['ir.sequence'] + sequence = sequence_obj.browse( + invoice.document_serie_id.internal_sequence_id.id) + invalid_number = self.env[ + 'l10n_br_account.invoice.invalid.number'].search([ + ('number_start', '<=', sequence.number_next), + ('number_end', '>=', sequence.number_next), + ('state', '=', 'done')]) + + if invalid_number: + raise except_orm( + _(u'Número Inválido !'), + _("O número: %s da série: %s, esta inutilizado") % ( + sequence.number_next, + invoice.document_serie_id.name)) + + seq_number = sequence_obj.get_id( + invoice.document_serie_id.internal_sequence_id.id) + self.write({'internal_number': seq_number, 'number': seq_number}) return True # TODO Talvez este metodo substitui o metodo action_move_create From 30706a415568d37352def0c5a6f5fddf9c8f9de7 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:17:52 -0200 Subject: [PATCH 0438/1549] [FIX] migrate account.invoice.line class to new API --- l10n_br_account/account_invoice.py | 229 ++++++++++++----------------- 1 file changed, 94 insertions(+), 135 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index d36dca6a964a..2e0e5551398f 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -307,48 +307,38 @@ def onchange_fiscal_document_id(self, fiscal_document_id, return result -class AccountInvoiceLine(orm.Model): +class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' - def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict): - res = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - for line in self.browse(cr, uid, ids): - res[line.id] = { - 'price_subtotal': 0.0, - 'price_total': 0.0, - } - - price = line.price_unit * (1 - (line.discount or 0.0) / 100.0) - taxes = tax_obj.compute_all( - cr, uid, line.invoice_line_tax_id, price, line.quantity, - line.product_id, line.invoice_id.partner_id, - fiscal_position=line.fiscal_position) - - if line.invoice_id: - currency = line.invoice_id.currency_id - res[line.id].update({ - 'price_subtotal': cur_obj.round( - cr, uid, currency, - taxes['total'] - taxes['total_tax_discount']), - 'price_total': cur_obj.round( - cr, uid, currency, taxes['total']), - }) - - return res - - _columns = { - 'fiscal_category_id': fields.many2one( - 'l10n_br_account.fiscal.category', 'Categoria'), - 'fiscal_position': fields.many2one( - 'account.fiscal.position', u'Posição Fiscal', - domain="[('fiscal_category_id','=',fiscal_category_id)]"), - 'price_total': fields.function( - _amount_line, method=True, string='Total', type="float", - digits_compute=dp.get_precision('Account'), - store=True, multi='all'), - } + @api.one + @api.depends('price_unit', 'discount', 'invoice_line_tax_id', + 'quantity', 'product_id', 'invoice_id.partner_id', + 'invoice_id.currency_id') + def _compute_price(self): + price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) + taxes = self.invoice_line_tax_id.compute_all( + price, self.quantity, product=self.product_id, + partner=self.invoice_id.partner_id, + fiscal_position=self.fiscal_position) + self.price_subtotal = taxes['total'] - taxes['total_tax_discount'] + self.price_total = taxes['total'] + if self.invoice_id: + self.price_subtotal = self.invoice_id.currency_id.round( + self.price_subtotal) + self.price_total = self.invoice_id.currency_id.round( + self.price_total) + + invoice_line_tax_id = fields.Many2many( + 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', + 'tax_id', string='Taxes', domain=[('parent_id', '=', False)]) + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria Fiscal') + fiscal_position = fields.Many2one( + 'account.fiscal.position', u'Posição Fiscal', + domain="[('fiscal_category_id', '=', fiscal_category_id)]") + price_total = fields.Float( + string='Amount', store=True, digits=dp.get_precision('Account'), + readonly=True, compute='_compute_price') def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): @@ -382,128 +372,97 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, return result - def _fiscal_position_map(self, cr, uid, result, context=None, **kwargs): + @api.model + def _fiscal_position_map(self, result, **kwargs): + ctx = dict(self.env.context) + ctx.update({'use_domain': ('use_invoice', '=', True)}) + #result['value']['cfop_id'] = None - if not context: - context = {} - context.update({'use_domain': ('use_invoice', '=', True)}) - kwargs.update({'context': context}) - result['value']['cfop_id'] = False - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - result_rule = obj_fp_rule.apply_fiscal_mapping( - cr, uid, result, **kwargs) - if result['value'].get('fiscal_position', False): + result_rule = self.env[ + 'account.fiscal.position.rule'].with_context( + ctx).apply_fiscal_mapping(result, **kwargs) + if result_rule.get('fiscal_position'): obj_fp = self.pool.get('account.fiscal.position').browse( - cr, uid, result['value'].get('fiscal_position', False)) - result_rule['value']['cfop_id'] = obj_fp.cfop_id and obj_fp.cfop_id.id or False + result_rule.get('fiscal_position', False)) if kwargs.get('product_id', False): - obj_product = self.pool.get('product.product').browse( - cr, uid, kwargs.get('product_id', False), context=context) - context['fiscal_type'] = obj_product.fiscal_type - if context.get('type') in ('out_invoice', 'out_refund'): - context['type_tax_use'] = 'sale' - taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) + obj_product = self.env['product.product'].browse( + kwargs.get('product_id', False)) + ctx['fiscal_type'] = obj_product.fiscal_type + if ctx.get('type') in ('out_invoice', 'out_refund'): + ctx['type_tax_use'] = 'sale' + taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) else: - context['type_tax_use'] = 'purchase' - taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(cr, uid, kwargs.get('account_id', False), context=context).tax_ids or False) - tax_ids = self.pool.get('account.fiscal.position').map_tax( - cr, uid, obj_fp, taxes, context) + ctx['type_tax_use'] = 'purchase' + taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) + tax_ids = self.env['account.fiscal.position'].with_context( + ctx).map_tax(obj_fp, taxes) result_rule['value']['invoice_line_tax_id'] = tax_ids result['value'].update(self._get_tax_codes( - cr, uid, kwargs.get('product_id'), - obj_fp, tax_ids, kwargs.get('company_id'), - context=context)) + kwargs.get('product_id'), + obj_fp, tax_ids, kwargs.get('company_id'))) return result_rule - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', - type='out_invoice', partner_id=False, - fposition_id=False, price_unit=False, - currency_id=False, context=None, company_id=False, - parent_fiscal_category_id=False, - parent_fposition_id=False): + @api.multi + def product_id_change(self, product, uom_id, qty=0, name='', + type='out_invoice', partner_id=False, + fposition_id=False, price_unit=False, + currency_id=False, company_id=None): + ctx = dict(self.env.context) + if ctx.get('type') in ('out_invoice', 'out_refund'): + type_tax_use = {'type_tax_use': 'sale'} + else: + type_tax_use = {'type_tax_use': 'purchase'} + self = self.with_context(type_tax_use) + result = {'value': {}} - result = super(AccountInvoiceLine, self).product_id_change( - cr, uid, ids, product, uom, qty, name, type, partner_id, - fposition_id, price_unit, currency_id, context, company_id) + parent_fiscal_position = ctx.get('parent_fiscal_position') + parent_fiscal_category_id = ctx.get('parent_fiscal_category_id') - fiscal_position = fposition_id or parent_fposition_id or False + fiscal_position = fposition_id or parent_fiscal_position or None if not parent_fiscal_category_id or not product or not fiscal_position: return result - obj_fp_rule = self.pool.get('account.fiscal.position.rule') - product_fiscal_category_id = obj_fp_rule.product_fiscal_category_map( - cr, uid, product, parent_fiscal_category_id) + partner = self.env['res.partner'].browse(partner_id) + obj_fp_rule = self.env['account.fiscal.position.rule'] + product_fiscal_category_id = obj_fp_rule.with_context( + ctx).product_fiscal_category_map( + product, parent_fiscal_category_id, partner.state_id.id) if product_fiscal_category_id: parent_fiscal_category_id = product_fiscal_category_id - result['value']['fiscal_category_id'] = parent_fiscal_category_id - result = self._fiscal_position_map(cr, uid, result, context, - partner_id=partner_id, partner_invoice_id=partner_id, + result = self._fiscal_position_map( + result, partner_id=partner_id, partner_invoice_id=partner_id, company_id=company_id, product_id=product, fiscal_category_id=parent_fiscal_category_id, account_id=result['value'].get('account_id')) - values = { - 'partner_id': partner_id, - 'company_id': company_id, - 'product_id': product, - 'quantity': qty, - 'price_unit': price_unit, - 'fiscal_position': result['value'].get('fiscal_position'), - 'invoice_line_tax_id': [[6, 0, result['value'].get('invoice_line_tax_id')]], - } - result['value'].update(self._validate_taxes(cr, uid, values, context)) - return result + result_super = super(AccountInvoiceLine, self).product_id_change( + product, uom_id, qty, name, type, partner_id, + fposition_id, price_unit, currency_id, company_id) - def onchange_fiscal_category_id(self, cr, uid, ids, partner_id, - company_id, product_id, fiscal_category_id, - account_id, context): + result_super['value'].update(result['value']) + return result_super + + @api.multi + def onchange_fiscal_category_id(self, partner_id, company_id, product_id, + fiscal_category_id, account_id): result = {'value': {}} return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def onchange_fiscal_position(self, cr, uid, ids, partner_id, company_id, - product_id, fiscal_category_id, - account_id, context): + result, partner_id=partner_id, partner_invoice_id=partner_id, + company_id=company_id, fiscal_category_id=fiscal_category_id, + product_id=product_id, account_id=account_id) + + @api.multi + def onchange_fiscal_position(self, partner_id, company_id, product_id, + fiscal_category_id, account_id, quantity, + price_unit): result = {'value': {}} return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def onchange_account_id(self, cr, uid, ids, product_id, partner_id, - inv_type, fposition_id, account_id=False, - context=None, fiscal_category_id=False, - company_id=False): - - result = super(AccountInvoiceLine, self).onchange_account_id( - cr, uid, ids, product_id, partner_id, inv_type, fposition_id, - account_id) - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product_id, - account_id=account_id) - - def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', - type='out_invoice', partner_id=False, fposition_id=False, - price_unit=False, currency_id=False, context=None, - company_id=None, fiscal_category_id=False): - - result = super(AccountInvoiceLine, self).uos_id_change( - cr, uid, ids, product, uom, qty, name, type, partner_id, - fposition_id, price_unit, currency_id, context, company_id) - return self._fiscal_position_map( - cr, uid, result, context, partner_id=partner_id, - partner_invoice_id=partner_id, company_id=company_id, - fiscal_category_id=fiscal_category_id, product_id=product, - account_id=False) + result, partner_id=partner_id, partner_invoice_id=partner_id, + company_id=company_id, fiscal_category_id=fiscal_category_id, + product_id=product_id, account_id=account_id) \ No newline at end of file From 569a9c77162ca9d8f54790ab9fe856057d406ea1 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:19:48 -0200 Subject: [PATCH 0439/1549] migrate customer invoice view --- l10n_br_account/account_invoice_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index 1fcc4f10661a..cd0abfe08d7b 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -39,7 +39,7 @@ - onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) + {'fiscal_category_id': fiscal_category_id} onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) @@ -117,7 +117,7 @@ account.invoice - + @@ -126,7 +126,7 @@ onchange_journal_id(journal_id, context) - onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, fiscal_category_id) + {'fiscal_category_id': fiscal_category_id} From 66b4f266166173aac76ca501db830ad932f6d36f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:20:43 -0200 Subject: [PATCH 0440/1549] migrate invoice line view --- l10n_br_account/account_invoice_view.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/account_invoice_view.xml index cd0abfe08d7b..666cdb861266 100644 --- a/l10n_br_account/account_invoice_view.xml +++ b/l10n_br_account/account_invoice_view.xml @@ -158,7 +158,7 @@ - + l10n_br_account.invoice.supplier.form3 account.invoice @@ -169,6 +169,21 @@ - + + l10n_br_account.invoice.line.form + account.invoice.line + + 26 + + + + + + + {'parent_fiscal_category_id': parent.fiscal_category_id, 'parent_fiscal_position': parent.fiscal_position} + + + + From 60479de8c7ab7126891195af4dae753ea9a281f2 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 24 Oct 2014 12:22:18 -0200 Subject: [PATCH 0441/1549] migrate security rules --- .../security/l10n_br_account_security.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml index f058a1129518..af9969ab7acc 100644 --- a/l10n_br_account/security/l10n_br_account_security.xml +++ b/l10n_br_account/security/l10n_br_account_security.xml @@ -5,25 +5,25 @@ Tax Definition Template multi-company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] Tax Definition multi-company - - + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - + - + Document Serie Company multi-company - + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] From 0bf7dd73d393b2fa4ebca7b0f37ab91543bbe5c7 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 30 Oct 2014 18:01:37 -0200 Subject: [PATCH 0442/1549] [FIX] finalize_invoice_move_lines method --- l10n_br_account/account_invoice.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 2e0e5551398f..bf4850f9a561 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -244,13 +244,13 @@ def finalize_invoice_move_lines(self, move_lines): :return: the (possibly updated) final move_lines to create for this invoice """ move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(move_lines) - cont=1 + count = 1 result = [] for move_line in move_lines: - if (move_line[2]['debit'] or move_line[2]['credit']): - if (move_line[2]['account_id'] == invoice_browse.account_id.id): - move_line[2]['name'] = '%s/%s' % (self.internal_number, cont) - cont +=1 + if move_line[2]['debit'] or move_line[2]['credit']: + if move_line[2]['account_id'] == self.account_id.id: + move_line[2]['name'] = '%s/%s' % (self.internal_number, count) + count += 1 result.append(move_line) return result From 97fc2723357f8bdd6cc81214ecd2b6da0dd093ce Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 13 Dec 2014 17:29:23 -0200 Subject: [PATCH 0443/1549] updated partner fiscal type data --- l10n_br_account/data/l10n_br_account_data.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 36ce69065bf5..2ab0f5c4c8f6 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -34,7 +34,7 @@ Não Contribuinte Não Contribuinte - + @@ -43,6 +43,7 @@ Simples Nacional Simples Nacional + @@ -51,6 +52,7 @@ Não Contribuinte Não Contribuinte + @@ -363,4 +365,4 @@ - \ No newline at end of file + From b8350cad838b35f98c0b6e98d6a68737f9a4fe5a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 16 Dec 2014 09:00:49 -0200 Subject: [PATCH 0444/1549] fix fiscal category domain --- l10n_br_account/account_invoice.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index bf4850f9a561..e4994a811e4f 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -164,7 +164,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, fiscal_type.set( 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( context['type'], - context.get('fiscal_type', 'product'))) + context.get('fiscal_type', 'service'))) fiscal_categories = eview.xpath( "//field[@name='fiscal_category_id']") @@ -174,7 +174,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, """[('fiscal_type', '=', '%s'), ('type', '=', '%s'), ('state', '=', 'approved'), ('journal_type', '=', '%s')]""" - % (context.get('fiscal_type', 'product'), + % (context.get('fiscal_type', 'service'), OPERATION_TYPE[context['type']], JOURNAL_TYPE[context['type']])) fiscal_category_id.set('required', '1') @@ -184,7 +184,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, for document_serie_id in document_series: document_serie_id.set( 'domain', "[('fiscal_type', '=', '%s')]" - % (context.get('fiscal_type', 'product'))) + % (context.get('fiscal_type', 'service'))) if context.get('fiscal_type', False): delivery_infos = eview.xpath("//group[@name='delivery_info']") @@ -465,4 +465,4 @@ def onchange_fiscal_position(self, partner_id, company_id, product_id, return self._fiscal_position_map( result, partner_id=partner_id, partner_invoice_id=partner_id, company_id=company_id, fiscal_category_id=fiscal_category_id, - product_id=product_id, account_id=account_id) \ No newline at end of file + product_id=product_id, account_id=account_id) From ece82e4f8ed437b363634e1a2a7d9ea2820202d5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 17 Jan 2015 13:05:56 -0200 Subject: [PATCH 0445/1549] added order by internal_number in account invoice --- l10n_br_account/account_invoice.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index e4994a811e4f..7af1bc0b8de8 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -109,6 +109,8 @@ def _default_fiscal_document_serie(self): u'Eventos') fiscal_comment = fields.Text(u'Observação Fiscal') + _order = 'internal_sequence desc' + @api.one @api.constrains('number') def _check_invoice_number(self): From aa3377d2a9063204f4c3e1ecfef49e249af46ca5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Mar 2015 12:35:31 -0300 Subject: [PATCH 0446/1549] [FIX] account invoice order by and added state field in fiscal positions views --- l10n_br_account/account_invoice.py | 2 +- l10n_br_account/res_partner_view.xml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/account_invoice.py index 7af1bc0b8de8..c6fae463f843 100644 --- a/l10n_br_account/account_invoice.py +++ b/l10n_br_account/account_invoice.py @@ -109,7 +109,7 @@ def _default_fiscal_document_serie(self): u'Eventos') fiscal_comment = fields.Text(u'Observação Fiscal') - _order = 'internal_sequence desc' + _order = 'internal_number desc' @api.one @api.constrains('number') diff --git a/l10n_br_account/res_partner_view.xml b/l10n_br_account/res_partner_view.xml index 6861c5ea69bb..33b75cc4305e 100644 --- a/l10n_br_account/res_partner_view.xml +++ b/l10n_br_account/res_partner_view.xml @@ -14,6 +14,7 @@ + @@ -88,6 +89,7 @@ + From 7e4d1bb197b3ed7c4b636c2d536f46eaa9569f0a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Mar 2015 14:38:23 -0300 Subject: [PATCH 0447/1549] moved models and views to a folder as new pattern --- l10n_br_account/__init__.py | 12 +++--------- l10n_br_account/__openerp__.py | 16 ++++++++-------- l10n_br_account/{ => models}/account.py | 0 .../{ => models}/account_fiscal_position_rule.py | 0 l10n_br_account/{ => models}/account_invoice.py | 0 l10n_br_account/{ => models}/l10n_br_account.py | 0 l10n_br_account/{ => models}/product.py | 0 l10n_br_account/{ => models}/res_company.py | 0 l10n_br_account/{ => models}/res_partner.py | 4 +++- .../account_fiscal_position_rule_view.xml | 0 .../{ => views}/account_invoice_view.xml | 0 l10n_br_account/{ => views}/account_view.xml | 0 .../{ => views}/l10n_br_account_view.xml | 0 l10n_br_account/{ => views}/product_view.xml | 0 l10n_br_account/{ => views}/res_company_view.xml | 0 l10n_br_account/{ => views}/res_partner_view.xml | 0 16 files changed, 14 insertions(+), 18 deletions(-) rename l10n_br_account/{ => models}/account.py (100%) rename l10n_br_account/{ => models}/account_fiscal_position_rule.py (100%) rename l10n_br_account/{ => models}/account_invoice.py (100%) rename l10n_br_account/{ => models}/l10n_br_account.py (100%) rename l10n_br_account/{ => models}/product.py (100%) rename l10n_br_account/{ => models}/res_company.py (100%) rename l10n_br_account/{ => models}/res_partner.py (99%) rename l10n_br_account/{ => views}/account_fiscal_position_rule_view.xml (100%) rename l10n_br_account/{ => views}/account_invoice_view.xml (100%) rename l10n_br_account/{ => views}/account_view.xml (100%) rename l10n_br_account/{ => views}/l10n_br_account_view.xml (100%) rename l10n_br_account/{ => views}/product_view.xml (100%) rename l10n_br_account/{ => views}/res_company_view.xml (100%) rename l10n_br_account/{ => views}/res_partner_view.xml (100%) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index e13f87ea11be..0f8005613420 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # @@ -17,11 +17,5 @@ #along with this program. If not, see . # ############################################################################### -import l10n_br_account -import sped -import res_company -import res_partner -import account -import account_invoice -import product -import account_fiscal_position_rule \ No newline at end of file +from . import models +from . import sped diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 295ec00ebc8a..8154deca5bd0 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009-2013 Renato Lima - Akretion # @@ -37,13 +37,13 @@ 'account_fiscal_position_workflow.xml', 'data/l10n_br_account.fiscal.document.csv', 'data/l10n_br_account_data.xml', - 'account_view.xml', - 'account_fiscal_position_rule_view.xml', - 'account_invoice_view.xml', - 'l10n_br_account_view.xml', - 'res_partner_view.xml', - 'product_view.xml', - 'res_company_view.xml', + 'views/account_view.xml', + 'views/account_fiscal_position_rule_view.xml', + 'views/account_invoice_view.xml', + 'views/l10n_br_account_view.xml', + 'views/res_partner_view.xml', + 'views/product_view.xml', + 'views/res_company_view.xml', 'security/ir.model.access.csv', 'security/l10n_br_account_security.xml', ], diff --git a/l10n_br_account/account.py b/l10n_br_account/models/account.py similarity index 100% rename from l10n_br_account/account.py rename to l10n_br_account/models/account.py diff --git a/l10n_br_account/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py similarity index 100% rename from l10n_br_account/account_fiscal_position_rule.py rename to l10n_br_account/models/account_fiscal_position_rule.py diff --git a/l10n_br_account/account_invoice.py b/l10n_br_account/models/account_invoice.py similarity index 100% rename from l10n_br_account/account_invoice.py rename to l10n_br_account/models/account_invoice.py diff --git a/l10n_br_account/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py similarity index 100% rename from l10n_br_account/l10n_br_account.py rename to l10n_br_account/models/l10n_br_account.py diff --git a/l10n_br_account/product.py b/l10n_br_account/models/product.py similarity index 100% rename from l10n_br_account/product.py rename to l10n_br_account/models/product.py diff --git a/l10n_br_account/res_company.py b/l10n_br_account/models/res_company.py similarity index 100% rename from l10n_br_account/res_company.py rename to l10n_br_account/models/res_company.py diff --git a/l10n_br_account/res_partner.py b/l10n_br_account/models/res_partner.py similarity index 99% rename from l10n_br_account/res_partner.py rename to l10n_br_account/models/res_partner.py index e0ea355f7acc..42b8eaefeddd 100644 --- a/l10n_br_account/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -18,7 +18,9 @@ ############################################################################### from openerp import models, fields, api -from openerp.addons.l10n_br_account.l10n_br_account import TYPE + +from .l10n_br_account import TYPE + class AccountFiscalPositionTemplate(models.Model): _inherit = 'account.fiscal.position.template' diff --git a/l10n_br_account/account_fiscal_position_rule_view.xml b/l10n_br_account/views/account_fiscal_position_rule_view.xml similarity index 100% rename from l10n_br_account/account_fiscal_position_rule_view.xml rename to l10n_br_account/views/account_fiscal_position_rule_view.xml diff --git a/l10n_br_account/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml similarity index 100% rename from l10n_br_account/account_invoice_view.xml rename to l10n_br_account/views/account_invoice_view.xml diff --git a/l10n_br_account/account_view.xml b/l10n_br_account/views/account_view.xml similarity index 100% rename from l10n_br_account/account_view.xml rename to l10n_br_account/views/account_view.xml diff --git a/l10n_br_account/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml similarity index 100% rename from l10n_br_account/l10n_br_account_view.xml rename to l10n_br_account/views/l10n_br_account_view.xml diff --git a/l10n_br_account/product_view.xml b/l10n_br_account/views/product_view.xml similarity index 100% rename from l10n_br_account/product_view.xml rename to l10n_br_account/views/product_view.xml diff --git a/l10n_br_account/res_company_view.xml b/l10n_br_account/views/res_company_view.xml similarity index 100% rename from l10n_br_account/res_company_view.xml rename to l10n_br_account/views/res_company_view.xml diff --git a/l10n_br_account/res_partner_view.xml b/l10n_br_account/views/res_partner_view.xml similarity index 100% rename from l10n_br_account/res_partner_view.xml rename to l10n_br_account/views/res_partner_view.xml From a169ca17b89d40c509cdae1d5cdf8f54d48adcec Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Mar 2015 14:39:15 -0300 Subject: [PATCH 0448/1549] removed edf folder --- l10n_br_account/sped/__init__.py | 3 +-- l10n_br_account/sped/efd/__init__.py | 18 ------------------ 2 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 l10n_br_account/sped/efd/__init__.py diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py index 390a02291068..5fab9647c90d 100644 --- a/l10n_br_account/sped/__init__.py +++ b/l10n_br_account/sped/__init__.py @@ -17,5 +17,4 @@ #along with this program. If not, see . # ############################################################################### -import document -import efd +from . import document diff --git a/l10n_br_account/sped/efd/__init__.py b/l10n_br_account/sped/efd/__init__.py deleted file mode 100644 index 744c624b8ebe..000000000000 --- a/l10n_br_account/sped/efd/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################### -# # -# Copyright (C) 2012 Renato Lima - Akretion # -# # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # -# # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # -# # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # -############################################################################### From bdc5f01ddc46e7508f272073b43e0b9e33c4c8da Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 11 Mar 2015 15:37:06 -0300 Subject: [PATCH 0449/1549] added new __init__.py in model and replace uncoding to coding in py files --- l10n_br_account/models/__init__.py | 26 +++++++++++++++++++ l10n_br_account/models/account.py | 2 +- .../models/account_fiscal_position_rule.py | 2 +- l10n_br_account/models/account_invoice.py | 2 +- l10n_br_account/models/l10n_br_account.py | 2 +- l10n_br_account/models/product.py | 2 +- l10n_br_account/models/res_company.py | 2 +- l10n_br_account/models/res_partner.py | 2 +- 8 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 l10n_br_account/models/__init__.py diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py new file mode 100644 index 000000000000..980eec69427a --- /dev/null +++ b/l10n_br_account/models/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2015 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +from . import l10n_br_account +from . import account +from . import account_invoice +from . import product +from . import res_company +from . import res_partner +from . import account_fiscal_position_rule diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index b3a578be179a..8abdc10bdba3 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 106d350537c3..af7a7265d63e 100755 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index c6fae463f843..7870c123ef02 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index d78e80fe11d5..dcab9aa3fa36 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index dc8796890624..48eb1f6aa6c9 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 8691db66be35..abdcddba545a 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion # diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 42b8eaefeddd..55f217ee79a5 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # From 936acd05525a90c30e0100a7b6ff41df705318ff Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Mar 2015 10:37:28 -0300 Subject: [PATCH 0450/1549] removed from account invoice some fields to insert in account invoice in l10n_br_account_product and l10n_br_account_service --- l10n_br_account/models/account_invoice.py | 12 ------------ l10n_br_account/models/res_company.py | 7 ------- l10n_br_account/views/account_invoice_view.xml | 6 ------ 3 files changed, 25 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 7870c123ef02..2a9bfc969160 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -85,18 +85,6 @@ def _default_fiscal_document_serie(self): move_line_receivable_id = fields.Many2many( 'account.move.line', string='Receivables', compute='_compute_receivables') - fiscal_document_id = fields.Many2one( - 'l10n_br_account.fiscal.document', 'Documento', readonly=True, - states={'draft': [('readonly', False)]}, - default=_default_fiscal_document) - fiscal_document_electronic = fields.Boolean( - related='fiscal_document_id.electronic') - document_serie_id = fields.Many2one( - 'l10n_br_account.document.serie', u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id),\ - ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, - default=_default_fiscal_document_serie) fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal', readonly=True, states={'draft': [('readonly', False)]}) diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index abdcddba545a..b6790d6ce3da 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -32,13 +32,6 @@ class ResCompany(models.Model): _inherit = 'res.company' - service_invoice_id = fields.Many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal') - document_serie_service_id = fields.Many2one( - 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', - domain="[('company_id', '=', active_id),('active','=',True)," - "('fiscal_type','=','service')]") annual_revenue = fields.Float( 'Faturamento Anual', required=True, digits_compute=dp.get_precision('Account'), default=0.00, diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 666cdb861266..8a566984215c 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -21,7 +21,6 @@ - @@ -47,8 +46,6 @@ - - @@ -136,15 +133,12 @@ - - - From d4f1b3991e7cb5f480ff1c348e14ae5d949dbeed Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Mar 2015 14:17:01 -0300 Subject: [PATCH 0451/1549] added comments and new onchange method to field journal_type to clear property_journal --- l10n_br_account/models/l10n_br_account.py | 12 +++++++++--- l10n_br_account/views/l10n_br_account_view.xml | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index dcab9aa3fa36..8fc6d0f53895 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -123,6 +123,7 @@ def set_done(self): class L10n_brAccountFiscalCategory(models.Model): + """Fiscal Category to apply fiscal and account parameters in documents.""" _name = 'l10n_br_account.fiscal.category' _description = 'Categoria Fiscal' @@ -135,9 +136,9 @@ class L10n_brAccountFiscalCategory(models.Model): string=u"Diário Contábil", company_dependent=True, help=u"Diário utilizado para esta categoria de operação fiscal") journal_type = fields.Selection( - [('sale', 'Venda'), ('sale_refund', u'Devolução de Venda'), - ('purchase', 'Compras'), - ('purchase_refund', u'Devolução de Compras')], u'Tipo do Diário', + [('sale', 'Saída'), ('sale_refund', u'Devolução de Saída'), + ('purchase', 'Entrada'), + ('purchase_refund', u'Devolução de Entrada')], u'Tipo do Diário', size=32, required=True, default='sale') refund_fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', @@ -163,11 +164,16 @@ class L10n_brAccountFiscalCategory(models.Model): @api.multi def action_unapproved_draft(self): + """Set state to draft and create a new workflow instance""" self.write({'state': 'draft'}) self.delete_workflow() self.create_workflow() return True + @api.multi + def onchange_journal_type(self, journal_type): + """Clear property_journal""" + return {'value': {'property_journal': None}} class L10n_brAccountServiceType(models.Model): _name = 'l10n_br_account.service.type' diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index 77e886451a0f..ddba643483bc 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -120,7 +120,7 @@ - + From a6df9eda802f01d5944997aead20ee497e104a8b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 12 Mar 2015 14:27:50 -0300 Subject: [PATCH 0452/1549] added unicode in selection field --- l10n_br_account/models/l10n_br_account.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 8fc6d0f53895..072270920a01 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -136,8 +136,8 @@ class L10n_brAccountFiscalCategory(models.Model): string=u"Diário Contábil", company_dependent=True, help=u"Diário utilizado para esta categoria de operação fiscal") journal_type = fields.Selection( - [('sale', 'Saída'), ('sale_refund', u'Devolução de Saída'), - ('purchase', 'Entrada'), + [('sale', u'Saída'), ('sale_refund', u'Devolução de Saída'), + ('purchase', u'Entrada'), ('purchase_refund', u'Devolução de Entrada')], u'Tipo do Diário', size=32, required=True, default='sale') refund_fiscal_category_id = fields.Many2one( From 1e1f7be3c75c024bf305ce98c26b06ed32ea5e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Thu, 6 Aug 2015 11:29:56 -0300 Subject: [PATCH 0453/1549] Removed l10n_br_product deprecated dependency; Linted headers --- l10n_br_account/__init__.py | 22 ++++++++--------- l10n_br_account/__openerp__.py | 3 +-- l10n_br_account/models/__init__.py | 22 ++++++++--------- l10n_br_account/models/account.py | 22 ++++++++--------- .../models/account_fiscal_position_rule.py | 22 ++++++++--------- l10n_br_account/models/account_invoice.py | 22 ++++++++--------- l10n_br_account/models/l10n_br_account.py | 24 +++++++++---------- l10n_br_account/models/product.py | 23 +++++++++--------- l10n_br_account/models/res_company.py | 22 ++++++++--------- l10n_br_account/models/res_partner.py | 22 ++++++++--------- 10 files changed, 102 insertions(+), 102 deletions(-) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 0f8005613420..7f73774668c3 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from . import models diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 8154deca5bd0..32af44c75eda 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009-2013 Renato Lima - Akretion # +# Copyright (C) 2009-TODAY Renato Lima - Akretion # # # #This program is free software: you can redistribute it and/or modify # #it under the terms of the GNU Affero General Public License as published by # @@ -28,7 +28,6 @@ 'depends': [ 'l10n_br', 'l10n_br_base', - 'l10n_br_product', 'account_fiscal_position_rule', 'web_context_tunnel', ], diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 980eec69427a..5393647802d0 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2015 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from . import l10n_br_account diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index 8abdc10bdba3..58b7a09dcdec 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from openerp import models, fields, api diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index af7a7265d63e..0fa2f38cbb04 100755 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### import time diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 2a9bfc969160..4a2c6502eedc 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from lxml import etree diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 072270920a01..d636a493ee6e 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -1,21 +1,21 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # -# Copyright (C) 2014 KMEE - www.kmee.com.br # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2014 KMEE - www.kmee.com.br # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### import datetime diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index 48eb1f6aa6c9..e8303b9517e4 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -1,20 +1,21 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# Copyright (C) 2009 Gabriel C. Stabel # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from openerp import models, fields, api diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index b6790d6ce3da..3098e0c10229 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from openerp import models, fields diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 55f217ee79a5..d6ef0eaf96e6 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009 Renato Lima - Akretion, Gabriel C. Stabel # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from openerp import models, fields, api From 85a98d2fd7fc5e600c81efeb1986eadc02b52781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Thu, 6 Aug 2015 11:31:23 -0300 Subject: [PATCH 0454/1549] fixed a gazillon of PEP-8 style issues --- l10n_br_account/__openerp__.py | 22 ++--- l10n_br_account/models/account.py | 32 ++++--- .../models/account_fiscal_position_rule.py | 3 +- l10n_br_account/models/account_invoice.py | 35 ++++--- l10n_br_account/models/l10n_br_account.py | 75 ++++++++------- l10n_br_account/models/product.py | 4 +- l10n_br_account/models/res_partner.py | 91 +++++++++++-------- l10n_br_account/sped/__init__.py | 24 ++--- l10n_br_account/sped/document.py | 24 ++--- 9 files changed, 175 insertions(+), 135 deletions(-) diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 32af44c75eda..b7ecc1c50ccc 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2009-TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### { diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index 58b7a09dcdec..95f856746780 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -43,20 +43,25 @@ def _compute_tax(self, cr, uid, taxes, total_line, product, product_qty, if tax.get('type') == 'weight' and product: product_read = self.pool.get('product.product').read( cr, uid, product, ['weight_net']) - tax['amount'] = round((product_qty * product_read.get('weight_net', 0.0)) * tax['percent'], precision) + weight_net = product_read.get('weight_net', 0.0) + float_val = product_qty * weight_net * tax['percent'] + tax['amount'] = round(float_val, precision) if tax.get('type') == 'quantity': tax['amount'] = round(product_qty * tax['percent'], precision) tax['amount'] = round(total_line * tax['percent'], precision) - tax['amount'] = round(tax['amount'] * (1 - tax['base_reduction']), precision) + tax['amount'] = round( + tax['amount'] * (1 - tax['base_reduction']), precision) if tax.get('tax_discount'): result['tax_discount'] += tax['amount'] if tax['percent']: - tax['total_base'] = round(total_line * (1 - tax['base_reduction']), precision) - tax['total_base_other'] = round(total_line - tax['total_base'], precision) + tax['total_base'] = round( + total_line * (1 - tax['base_reduction']), precision) + tax['total_base_other'] = round( + total_line - tax['total_base'], precision) else: tax['total_base'] = 0.00 tax['total_base_other'] = 0.00 @@ -95,8 +100,10 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, """ obj_precision = self.pool.get('decimal.precision') precision = obj_precision.precision_get(cr, uid, 'Account') - result = super(AccountTax, self).compute_all(cr, uid, taxes, - price_unit, quantity, product, partner, force_excluded) + result = super( + AccountTax, self).compute_all( + cr, uid, taxes, price_unit, quantity, product, + partner, force_excluded) totaldc = 0.0 calculed_taxes = [] @@ -112,7 +119,8 @@ def compute_all(self, cr, uid, taxes, price_unit, quantity, tax['tax_discount'] = tax_brw.base_code_id.tax_discount common_taxes = [tx for tx in result['taxes'] if tx['domain']] - result_tax = self._compute_tax(cr, uid, common_taxes, result['total'], + result_tax = self._compute_tax( + cr, uid, common_taxes, result['total'], product, quantity, precision) totaldc += result_tax['tax_discount'] calculed_taxes += result_tax['taxes'] @@ -166,18 +174,20 @@ def execute(self, cr, uid, ids, context=None): chart_template_id = obj_multi.chart_template_id.id company_id = obj_multi.company_id.id - fp_template_ids = obj_fp_template.search(cr, uid, - [('chart_template_id', '=', chart_template_id)]) + fp_template_ids = obj_fp_template.search( + cr, uid, [('chart_template_id', '=', chart_template_id)]) for fp_template in obj_fp_template.browse(cr, uid, fp_template_ids, context=context): if fp_template.cfop_id: - fp_id = obj_fp.search(cr, uid, + fp_id = obj_fp.search( + cr, uid, [('name', '=', fp_template.name), ('company_id', '=', company_id)]) if fp_id: - obj_fp.write(cr, uid, fp_id, + obj_fp.write( + cr, uid, fp_id, {'cfop_id': fp_template.cfop_id.id}) return result diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 0fa2f38cbb04..05a2386a8f87 100755 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -73,7 +73,8 @@ def _map_domain(self, partner, addrs, company, **kwargs): partner_fiscal_type_id = partner.partner_fiscal_type_id.id document_date = self.env.context.get('date', time.strftime('%Y-%m-%d')) - use_domain = self.env.context.get('use_domain', ('use_sale', '=', True)) + use_domain = self.env.context.get( + 'use_domain', ('use_sale', '=', True)) domain = [ '&', ('company_id', '=', company.id), use_domain, diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 4a2c6502eedc..1e8738e5339b 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -123,11 +123,12 @@ def _check_invoice_number(self): invoices = self.env['account.invoice'].search(domain) if len(invoices) > 1: - raise Warning(u'Não é possível registrar documentos fiscais com números repetidos.') + raise Warning(u'Não é possível registrar documentos\ + fiscais com números repetidos.') _sql_constraints = [ - ('number_uniq', 'unique(number, company_id, journal_id, type, partner_id)', - 'Invoice Number must be unique per Company!'), + ('number_uniq', 'unique(number, company_id, journal_id,\ + type, partner_id)', 'Invoice Number must be unique per Company!'), ] #TODO não foi migrado por causa do bug github.com/odoo/odoo/issues/1711 @@ -205,10 +206,10 @@ def action_number(self): sequence = sequence_obj.browse( invoice.document_serie_id.internal_sequence_id.id) invalid_number = self.env[ - 'l10n_br_account.invoice.invalid.number'].search([ - ('number_start', '<=', sequence.number_next), - ('number_end', '>=', sequence.number_next), - ('state', '=', 'done')]) + 'l10n_br_account.invoice.invalid.number'].search( + [('number_start', '<=', sequence.number_next), + ('number_end', '>=', sequence.number_next), + ('state', '=', 'done')]) if invalid_number: raise except_orm( @@ -219,7 +220,8 @@ def action_number(self): seq_number = sequence_obj.get_id( invoice.document_serie_id.internal_sequence_id.id) - self.write({'internal_number': seq_number, 'number': seq_number}) + self.write( + {'internal_number': seq_number, 'number': seq_number}) return True # TODO Talvez este metodo substitui o metodo action_move_create @@ -230,10 +232,13 @@ def finalize_invoice_move_lines(self, move_lines): Hook method to be overridden in additional modules to verify and possibly alter the move lines to be created by an invoice, for special cases. - :param move_lines: list of dictionaries with the account.move.lines (as for create()) - :return: the (possibly updated) final move_lines to create for this invoice + :param move_lines: list of dictionaries with the account.move.lines + (as for create()) + :return: the (possibly updated) final move_lines to create for this + invoice """ - move_lines = super(AccountInvoice, self).finalize_invoice_move_lines(move_lines) + move_lines = super( + AccountInvoice, self).finalize_invoice_move_lines(move_lines) count = 1 result = [] for move_line in move_lines: @@ -380,7 +385,7 @@ def _fiscal_position_map(self, result, **kwargs): ctx['fiscal_type'] = obj_product.fiscal_type if ctx.get('type') in ('out_invoice', 'out_refund'): ctx['type_tax_use'] = 'sale' - taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) + taxes = obj_product.taxes_id and obj_product.taxes_id or(kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) else: ctx['type_tax_use'] = 'purchase' taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) @@ -397,9 +402,9 @@ def _fiscal_position_map(self, result, **kwargs): @api.multi def product_id_change(self, product, uom_id, qty=0, name='', - type='out_invoice', partner_id=False, - fposition_id=False, price_unit=False, - currency_id=False, company_id=None): + type='out_invoice', partner_id=False, + fposition_id=False, price_unit=False, + currency_id=False, company_id=None): ctx = dict(self.env.context) if ctx.get('type') in ('out_invoice', 'out_refund'): type_tax_use = {'type_tax_use': 'sale'} diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index d636a493ee6e..723771349f87 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -83,23 +83,24 @@ class L10n_brDocumentEvent(models.Model): type = fields.Selection( [('-1', u'Exception'), - ('0', u'Envio Lote'), - ('1', u'Consulta Recibo'), - ('2', u'Cancelamento'), - ('3', u'Inutilização'), - ('4', u'Consulta NFE'), - ('5', u'Consulta Situação'), - ('6', u'Consulta Cadastro'), - ('7', u'DPEC Recepção'), - ('8', u'DPEC Consulta'), - ('9', u'Recepção Evento'), - ('10', u'Download'), - ('11', u'Consulta Destinadas'), ], 'Serviço') + ('0', u'Envio Lote'), + ('1', u'Consulta Recibo'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), + ('11', u'Consulta Destinadas'), ], 'Serviço') response = fields.Char(u'Descrição', size=64, readonly=True) company_id = fields.Many2one( 'res.company', 'Empresa', readonly=True, states={'draft': [('readonly', False)]}) - origin = fields.Char('Documento de Origem', size=64, + origin = fields.Char( + 'Documento de Origem', size=64, readonly=True, states={'draft': [('readonly', False)]}, help="Reference of the document that produced event.") file_sent = fields.Char('Envio', readonly=True) @@ -111,7 +112,7 @@ class L10n_brDocumentEvent(models.Model): end_date = fields.Datetime(u'Data Finalização', readonly=True) state = fields.Selection( [('draft', 'Rascunho'), ('send', 'Enviado'), - ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], + ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], 'Status', select=True, readonly=True, default='draft') document_event_ids = fields.Many2one( 'account.invoice', 'Documentos', ondelete='cascade') @@ -130,15 +131,16 @@ class L10n_brAccountFiscalCategory(models.Model): code = fields.Char(u'Código', size=254, required=True) name = fields.Char(u'Descrição', size=254) type = fields.Selection(TYPE, 'Tipo', default='output') - fiscal_type = fields.Selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', + fiscal_type = fields.Selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', default=PRODUCT_FISCAL_TYPE_DEFAULT) - property_journal = fields.Many2one('account.journal', - string=u"Diário Contábil", company_dependent=True, + property_journal = fields.Many2one( + 'account.journal', string=u"Diário Contábil", company_dependent=True, help=u"Diário utilizado para esta categoria de operação fiscal") journal_type = fields.Selection( [('sale', u'Saída'), ('sale_refund', u'Devolução de Saída'), - ('purchase', u'Entrada'), - ('purchase_refund', u'Devolução de Entrada')], u'Tipo do Diário', + ('purchase', u'Entrada'), + ('purchase_refund', u'Devolução de Entrada')], u'Tipo do Diário', size=32, required=True, default='sale') refund_fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', @@ -149,12 +151,15 @@ class L10n_brAccountFiscalCategory(models.Model): 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), ('state', '=', 'approved')]""") - fiscal_position_ids = fields.One2many('account.fiscal.position', + fiscal_position_ids = fields.One2many( + 'account.fiscal.position', 'fiscal_category_id', u'Posições Fiscais') note = fields.Text(u'Observações') - state = fields.Selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + state = fields.Selection( + [('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], + 'Status', readonly=True, track_visibility='onchange', select=True, default='draft') _sql_constraints = [ @@ -175,6 +180,7 @@ def onchange_journal_type(self, journal_type): """Clear property_journal""" return {'value': {'property_journal': None}} + class L10n_brAccountServiceType(models.Model): _name = 'l10n_br_account.service.type' _description = u'Cadastro de Operações Fiscais de Serviço' @@ -216,7 +222,8 @@ class L10n_brAccountDocumentSerie(models.Model): code = fields.Char(u'Código', size=3, required=True) name = fields.Char(u'Descrição', size=64, required=True) - fiscal_type = fields.Selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', + fiscal_type = fields.Selection( + PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', default=PRODUCT_FISCAL_TYPE_DEFAULT) fiscal_document_id = fields.Many2one( 'l10n_br_account.fiscal.document', @@ -297,9 +304,10 @@ def _name_get(self, cr, uid, ids, field_name, arg, context=None): states={'draft': [('readonly', False)]}, required=True) state = fields.Selection( [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True, default='draft') - justificative = fields.Char('Justificativa', size=255, - readonly=True, states={'draft': [('readonly', False)]}, required=True) + ('done', u'Concluído')], 'Status', required=True, default='draft') + justificative = fields.Char( + 'Justificativa', size=255, readonly=True, + states={'draft': [('readonly', False)]}, required=True) invalid_number_document_event_ids = fields.One2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') @@ -342,7 +350,9 @@ def _check_range(self): _constraints = [ (_check_range, u'Não é permitido faixas sobrepostas!', ['number_start', 'number_end']), - (_check_justificative,'Justificativa deve ter tamanho minimo de 15 caracteres.', ['justificative']) + (_check_justificative, + 'Justificativa deve ter tamanho minimo de 15 caracteres.', + ['justificative']) ] def action_draft_done(self): @@ -401,8 +411,8 @@ def name_get(self): class L10n_brTaxDefinitionTemplate(models.Model): _name = 'l10n_br_tax.definition.template' - tax_id = fields.Many2one('account.tax.template', string='Imposto', - required=True) + tax_id = fields.Many2one( + 'account.tax.template', string='Imposto', required=True) tax_domain = fields.Char(related='tax_id.domain', string='Tax Domain') tax_code_id = fields.Many2one( 'account.tax.code.template', u'Código de Imposto') @@ -421,8 +431,9 @@ class L10n_brTaxDefinition(models.Model): tax_id = fields.Many2one('account.tax', string='Imposto', required=True) tax_domain = fields.Char(related='tax_id.domain', string='Tax Domain') tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') - company_id = fields.Many2one('res.company', string='Company', - related='tax_id.company_id', store=True, readonly=True) + company_id = fields.Many2one( + 'res.company', string='Company', related='tax_id.company_id', + store=True, readonly=True) @api.multi def onchange_tax_id(self, tax_id): diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index e8303b9517e4..fb959f2718c3 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -18,7 +18,7 @@ # along with this program. If not, see . # ############################################################################### -from openerp import models, fields, api +from openerp import models, fields from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT @@ -29,7 +29,7 @@ class ProductTemplate(models.Model): 'l10n_br_account.product.category', 'product_tmpl_id', u'Categoria de Operação Fiscal Padrões') service_type_id = fields.Many2one( - 'l10n_br_account.service.type', u'Tipo de Serviço') + 'l10n_br_account.service.type', u'Tipo de Serviço') fiscal_type = fields.Selection( PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True, default=PRODUCT_FISCAL_TYPE_DEFAULT) diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index d6ef0eaf96e6..e9cc1c20acfb 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -28,22 +28,24 @@ class AccountFiscalPositionTemplate(models.Model): name = fields.Char('Fiscal Position', size=128, required=True) fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal') - fiscal_category_fiscal_type = fields.Selection(TYPE, - related='fiscal_category_id.type', readonly=True, + fiscal_category_fiscal_type = fields.Selection( + TYPE, related='fiscal_category_id.type', readonly=True, store=True, string='Fiscal Type') - type = fields.Selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo') + type = fields.Selection( + [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') type_tax_use = fields.Selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], 'Tax Application') inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') - asset_operation = fields.Boolean('Operação de Aquisição de Ativo', + asset_operation = fields.Boolean( + 'Operação de Aquisição de Ativo', help="""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS.""") - state = fields.Selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True, default='draft') + calculo do ICMS.""") + state = fields.Selection( + [('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + track_visibility='onchange', select=True, default='draft') @api.multi def onchange_type(self, type): @@ -94,33 +96,43 @@ def generate_fiscal_position(self, cr, uid, chart_temp_id, if tax_code_template: tax_code_template_ref[tax_code_template[0]] = tax_code.id - fp_ids = self.search(cr, uid, - [('chart_template_id', '=', chart_temp_id)]) + fp_ids = self.search( + cr, uid, [('chart_template_id', '=', chart_temp_id)]) for position in self.browse(cr, uid, fp_ids, context=context): - new_fp = obj_fiscal_position.create(cr, uid, - {'company_id': company_id, - 'name': position.name, - 'note': position.note, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) + new_fp = obj_fiscal_position.create( + cr, uid, {'company_id': company_id, + 'name': position.name, + 'note': position.note, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': + position.cfop_id and position.cfop_id.id or False, + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': + position.fiscal_category_id and + position.fiscal_category_id.id or False}) for tax in position.tax_ids: obj_tax_fp.create(cr, uid, { - 'tax_src_id': tax.tax_src_id and tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': tax.tax_code_src_id and tax_code_template_ref.get(tax.tax_code_src_id.id, False), + 'tax_src_id': + tax.tax_src_id and + tax_template_ref.get(tax.tax_src_id.id, False), + 'tax_code_src_id': + tax.tax_code_src_id and + tax_code_template_ref.get(tax.tax_code_src_id.id, False), 'tax_src_domain': tax.tax_src_domain, - 'tax_dest_id': tax.tax_dest_id and tax_template_ref.get(tax.tax_dest_id.id, False), - 'tax_code_dest_id': tax.tax_code_dest_id and tax_code_template_ref.get(tax.tax_code_dest_id.id, False), + 'tax_dest_id': tax.tax_dest_id and + tax_template_ref.get(tax.tax_dest_id.id, False), + 'tax_code_dest_id': tax.tax_code_dest_id and + tax_code_template_ref.get(tax.tax_code_dest_id.id, False), 'position_id': new_fp }) for acc in position.account_ids: obj_ac_fp.create(cr, uid, { 'account_src_id': acc_template_ref[acc.account_src_id.id], - 'account_dest_id': acc_template_ref[acc.account_dest_id.id], + 'account_dest_id': + acc_template_ref[acc.account_dest_id.id], 'position_id': new_fp }) return True @@ -163,28 +175,30 @@ class AccountFiscalPosition(models.Model): name = fields.Char('Fiscal Position', size=128, required=True) fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal') - fiscal_category_fiscal_type = fields.Selection(TYPE, - related='fiscal_category_id.type', readonly=True, + fiscal_category_fiscal_type = fields.Selection( + TYPE, related='fiscal_category_id.type', readonly=True, store=True, string='Fiscal Type') - type = fields.Selection([('input', 'Entrada'), ('output', 'Saida')], - 'Tipo') + type = fields.Selection( + [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') type_tax_use = fields.Selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], 'Tax Application') inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') - asset_operation = fields.Boolean('Operação de Aquisição de Ativo', + asset_operation = fields.Boolean( + 'Operação de Aquisição de Ativo', help="""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS.""") - state = fields.Selection([('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, + calculo do ICMS.""") + state = fields.Selection( + [('draft', u'Rascunho'), + ('review', u'Revisão'), ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], 'Status', readonly=True, track_visibility='onchange', select=True, default='draft') @api.multi def onchange_type(self, type): type_tax = {'input': 'purchase', 'output': 'sale'} return {'value': {'type_tax_use': type_tax.get(type, 'all'), - 'tax_ids': False}} + 'tax_ids': False}} @api.multi def onchange_fiscal_category_id(self, fiscal_category_id=None): @@ -319,4 +333,3 @@ def map_tax(self, taxes): else: result |= tax return result - diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py index 5fab9647c90d..0e415e1f1a50 100644 --- a/l10n_br_account/sped/__init__.py +++ b/l10n_br_account/sped/__init__.py @@ -1,20 +1,20 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2012 Renato Lima - Akretion # +# Copyright (C) 2012 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### from . import document diff --git a/l10n_br_account/sped/document.py b/l10n_br_account/sped/document.py index 9c9e5e97febb..60aea8572404 100644 --- a/l10n_br_account/sped/document.py +++ b/l10n_br_account/sped/document.py @@ -1,20 +1,20 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # -# Copyright (C) 2013 Renato Lima - Akretion # +# Copyright (C) 2013 - TODAY Renato Lima - Akretion # # # -#This program is free software: you can redistribute it and/or modify # -#it under the terms of the GNU Affero General Public License as published by # -#the Free Software Foundation, either version 3 of the License, or # -#(at your option) any later version. # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # # # -#This program is distributed in the hope that it will be useful, # -#but WITHOUT ANY WARRANTY; without even the implied warranty of # -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -#GNU Affero General Public License for more details. # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # # # -#You should have received a copy of the GNU Affero General Public License # -#along with this program. If not, see . # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see . # ############################################################################### From 362443b5f28b14be239e0dcd21c3922842ef7b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Thu, 6 Aug 2015 11:33:29 -0300 Subject: [PATCH 0455/1549] moved from l10n_br_product that we are now dropping because it went empty --- l10n_br_account/data/l10n_br_account_data.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 2ab0f5c4c8f6..c03301223738 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -1,6 +1,10 @@ + + + + From 4d55ccd8b6257a6fe23239ba6b7959d6c3592c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Thu, 6 Aug 2015 15:06:27 -0300 Subject: [PATCH 0456/1549] PEP 8 - WIP --- l10n_br_account/models/account_invoice.py | 35 +++++++++++++---------- l10n_br_account/models/l10n_br_account.py | 6 ++-- l10n_br_account/models/res_partner.py | 5 ++-- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 1e8738e5339b..d6cc9a81df4a 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -53,7 +53,7 @@ def _compute_receivables(self): for line in self.move_id.line_id: if line.account_id.id == self.account_id.id and \ line.account_id.type in ('receivable', 'payable') and \ - self.journal_id.revenue_expense: + self.journal_id.revenue_expense: lines |= line self.move_line_receivable_id = (lines).sorted() @@ -104,7 +104,8 @@ def _default_fiscal_document_serie(self): def _check_invoice_number(self): domain = [] if self.number: - fiscal_document = self.fiscal_document_id and self.fiscal_document_id.id or False + fiscal_document = self.fiscal_document_id and\ + self.fiscal_document_id.id or False domain.extend([('internal_number', '=', self.number), ('fiscal_type', '=', self.fiscal_type), ('fiscal_document_id', '=', fiscal_document) @@ -131,7 +132,7 @@ def _check_invoice_number(self): type, partner_id)', 'Invoice Number must be unique per Company!'), ] - #TODO não foi migrado por causa do bug github.com/odoo/odoo/issues/1711 + # TODO não foi migrado por causa do bug github.com/odoo/odoo/issues/1711 def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): result = super(AccountInvoice, self).fields_view_get( @@ -188,7 +189,8 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, doc = etree.XML(result['arch']) nodes = doc.xpath("//field[@name='partner_id']") partner_string = _('Customer') - if context.get('type', 'out_invoice') in ('in_invoice', 'in_refund'): + if context.get('type', 'out_invoice') in \ + ('in_invoice', 'in_refund'): partner_string = _('Supplier') for node in nodes: node.set('string', partner_string) @@ -197,7 +199,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, @api.multi def action_number(self): - #TODO: not correct fix but required a fresh values before reading it. + # TODO: not correct fix but required a fresh values before reading it. self.write({}) for invoice in self: @@ -244,7 +246,8 @@ def finalize_invoice_move_lines(self, move_lines): for move_line in move_lines: if move_line[2]['debit'] or move_line[2]['credit']: if move_line[2]['account_id'] == self.account_id.id: - move_line[2]['name'] = '%s/%s' % (self.internal_number, count) + move_line[2]['name'] = '%s/%s' % \ + (self.internal_number, count) count += 1 result.append(move_line) return result @@ -275,14 +278,15 @@ def _fiscal_position_map(self, result, **kwargs): def onchange_fiscal_category_id(self, partner_address_id, partner_id, company_id, fiscal_category_id): - #TODO Deixar em branco a posição fiscal se não achar a regra + # TODO Deixar em branco a posição fiscal se não achar a regra result = {'value': {'fiscal_position': None}} if fiscal_category_id: fiscal_category = self.env[ 'l10n_br_account.fiscal.category'].browse(fiscal_category_id) - #TODO CASO NAO TENHA DIARIO EXIBIR UMA MENSAGEM + # TODO CASO NAO TENHA DIARIO EXIBIR UMA MENSAGEM if fiscal_category.property_journal: - result['value']['journal_id'] = fiscal_category.property_journal.id + result['value']['journal_id'] = \ + fiscal_category.property_journal.id return self._fiscal_position_map( result, partner_id=partner_id, partner_invoice_id=partner_address_id, company_id=company_id, @@ -296,7 +300,7 @@ def onchange_fiscal_document_id(self, fiscal_document_id, if issuer == '0': serie = company.document_serie_service_id and \ - company.document_serie_service_id.id or False + company.document_serie_service_id.id or False result['value']['document_serie_id'] = serie return result @@ -349,13 +353,14 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, eview = etree.fromstring(result['arch']) if 'type' in context.keys(): - fiscal_categories = eview.xpath("//field[@name='fiscal_category_id']") + expr = "//field[@name='fiscal_category_id']" + fiscal_categories = eview.xpath(expr) for fiscal_category_id in fiscal_categories: fiscal_category_id.set( 'domain', """[('type', '=', '%s'), ('journal_type', '=', '%s')]""" % (OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) + JOURNAL_TYPE[context['type']])) fiscal_category_id.set('required', '1') product_ids = eview.xpath("//field[@name='product_id']") @@ -371,7 +376,7 @@ def fields_view_get(self, cr, uid, view_id=None, view_type=False, def _fiscal_position_map(self, result, **kwargs): ctx = dict(self.env.context) ctx.update({'use_domain': ('use_invoice', '=', True)}) - #result['value']['cfop_id'] = None + # result['value']['cfop_id'] = None result_rule = self.env[ 'account.fiscal.position.rule'].with_context( @@ -381,11 +386,11 @@ def _fiscal_position_map(self, result, **kwargs): result_rule.get('fiscal_position', False)) if kwargs.get('product_id', False): obj_product = self.env['product.product'].browse( - kwargs.get('product_id', False)) + kwargs.get('product_id', False)) ctx['fiscal_type'] = obj_product.fiscal_type if ctx.get('type') in ('out_invoice', 'out_refund'): ctx['type_tax_use'] = 'sale' - taxes = obj_product.taxes_id and obj_product.taxes_id or(kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) + taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) else: ctx['type_tax_use'] = 'purchase' taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 723771349f87..42ea3c16e5be 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -254,14 +254,14 @@ def create(self, vals): vals.update({'internal_sequence_id': self._create_sequence(vals)}) result = super(L10n_brAccountDocumentSerie, self).create(vals) # TODO - #if result: + # if result: # company = self.env['res.company'].browse(vals.get('company_id')) # value = {} # if vals.get('fiscal_type') == 'product': # series = [doc_serie.id for doc_serie in # company.document_serie_product_ids] # series.append(result.id) - # company.document_serie_product_ids = [(6, 0, list(set(series)))] + # company.document_serie_product_ids = [(6, 0, list(set(series)))] # else: # company.document_serie_service_id = result.id # company.write() @@ -272,7 +272,7 @@ class L10n_brAccountInvoiceInvalidNumber(models.Model): _name = 'l10n_br_account.invoice.invalid.number' _description = u'Inutilização de Faixa de Numeração' - #TODO + # TODO def _name_get(self, cr, uid, ids, field_name, arg, context=None): result = {} for record in self.browse(cr, uid, ids, context): diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index e9cc1c20acfb..80467743c2aa 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -284,7 +284,7 @@ def map_tax(self, cr, uid, fposition_id, taxes, context=None): context=context)['service_tax_ids'] company_taxes = self.pool.get('account.tax').browse( - cr, uid, company_tax_ids, context=context) + cr, uid, company_tax_ids, context=context) if taxes: all_taxes = taxes + company_taxes else: @@ -315,7 +315,8 @@ def map_tax(self, cr, uid, fposition_id, taxes, context=None): @api.v8 def map_tax(self, taxes): result = self.env['account.tax'].browse() - if self.company_id and self.env.context.get('type_tax_use') in ('sale', 'all'): + if self.company_id and \ + self.env.context.get('type_tax_use') in ('sale', 'all'): if self.env.context.get('fiscal_type', 'product') == 'product': company_taxes = self.company_id.product_tax_ids else: From 482a6ec5ab61f90a0326d1e2cae45919cc4ef184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Thu, 6 Aug 2015 15:08:40 -0300 Subject: [PATCH 0457/1549] PEP 8 cleared --- l10n_br_account/models/account_invoice.py | 42 +++++++++++++++-------- l10n_br_account/models/l10n_br_account.py | 17 ++++----- l10n_br_account/models/res_partner.py | 4 +-- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index d6cc9a81df4a..72ec9e26aa68 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -378,30 +378,43 @@ def _fiscal_position_map(self, result, **kwargs): ctx.update({'use_domain': ('use_invoice', '=', True)}) # result['value']['cfop_id'] = None + account_obj = self.env['account.account'] result_rule = self.env[ 'account.fiscal.position.rule'].with_context( ctx).apply_fiscal_mapping(result, **kwargs) if result_rule.get('fiscal_position'): - obj_fp = self.pool.get('account.fiscal.position').browse( - result_rule.get('fiscal_position', False)) - if kwargs.get('product_id', False): - obj_product = self.env['product.product'].browse( - kwargs.get('product_id', False)) - ctx['fiscal_type'] = obj_product.fiscal_type + fp = self.env['account.fiscal.position'].browse( + result_rule['fiscal_position']) + if kwargs.get('product_id'): + product = self.env['product.product'].browse( + kwargs['product_id']) + ctx['fiscal_type'] = product.fiscal_type + if ctx.get('type') in ('out_invoice', 'out_refund'): ctx['type_tax_use'] = 'sale' - taxes = obj_product.taxes_id and obj_product.taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) + if product.taxes_id: + taxes = product.taxes_id + elif kwargs.get('account_id'): + account_id = kwargs['account_id'] + taxes = account_obj.browse(account_id).tax_ids + else: + taxes = False else: ctx['type_tax_use'] = 'purchase' - taxes = obj_product.supplier_taxes_id and obj_product.supplier_taxes_id or (kwargs.get('account_id', False) and self.pool.get('account.account').browse(kwargs.get('account_id', False)).tax_ids or False) - tax_ids = self.env['account.fiscal.position'].with_context( - ctx).map_tax(obj_fp, taxes) + if product.supplier_taxes_id: + taxes = product.supplier_taxes_id + elif kwargs.get('account_id'): + account_id = kwargs['account_id'] + taxes = account_obj.browse(account_id).tax_ids + else: + taxes = False + tax_ids = self.env['account.fiscal.position'].with_context( + ctx).map_tax(fp, taxes) result_rule['value']['invoice_line_tax_id'] = tax_ids - result['value'].update(self._get_tax_codes( - kwargs.get('product_id'), - obj_fp, tax_ids, kwargs.get('company_id'))) + kwargs['product_id'], + fp, tax_ids, kwargs['company_id'])) return result_rule @@ -420,7 +433,6 @@ def product_id_change(self, product, uom_id, qty=0, name='', parent_fiscal_position = ctx.get('parent_fiscal_position') parent_fiscal_category_id = ctx.get('parent_fiscal_category_id') - fiscal_position = fposition_id or parent_fiscal_position or None if not parent_fiscal_category_id or not product or not fiscal_position: @@ -439,7 +451,7 @@ def product_id_change(self, product, uom_id, qty=0, name='', result, partner_id=partner_id, partner_invoice_id=partner_id, company_id=company_id, product_id=product, fiscal_category_id=parent_fiscal_category_id, - account_id=result['value'].get('account_id')) + account_id=result['value']['account_id']) result_super = super(AccountInvoiceLine, self).product_id_change( product, uom_id, qty, name, type, partner_id, diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 42ea3c16e5be..c6d422fc8e24 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -277,8 +277,8 @@ def _name_get(self, cr, uid, ids, field_name, arg, context=None): result = {} for record in self.browse(cr, uid, ids, context): result[record.id] = record.fiscal_document_id.name + ' (' + \ - record.document_serie_id.name + '): ' + \ - str(record.number_start) + ' - ' + str(record.number_end) + record.document_serie_id.name + '): ' + \ + str(record.number_start) + ' - ' + str(record.number_end) return result name = fields.Char(store=True, size=64, string="Nome", function=_name_get) @@ -337,12 +337,13 @@ def _check_range(self): "((number_start<='%s') or (number_start is null))" % ( self.number_end,)) - self._cr.execute('SELECT id ' \ - 'FROM l10n_br_account_invoice_invalid_number ' \ - 'WHERE '+' and '.join(where) + (where and ' and ' or '') + - 'document_serie_id = %s ' \ - "AND state = 'done'" \ - 'AND id <> %s' % (self.document_serie_id.id, self.id)) + self._cr.execute( + 'SELECT id \ + FROM l10n_br_account_invoice_invalid_number \ + WHERE '+' and '.join(where) + (where and ' and ' or '') + + "document_serie_id = %s \ + AND state = 'done' \ + AND id <> %s" % (self.document_serie_id.id, self.id)) if self._cr.fetchall() or (self.number_start > self.number_end): raise Warning(_(u'Não é permitido faixas sobrepostas!')) return True diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 80467743c2aa..912da6236b0f 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -272,8 +272,8 @@ def map_tax(self, cr, uid, fposition_id, taxes, context=None): result = [] if not context: context = {} - if fposition_id and fposition_id.company_id and \ - context.get('type_tax_use') in ('sale', 'all'): + if fposition_id and fposition_id.company_id and\ + context.get('type_tax_use') in ('sale', 'all'): if context.get('fiscal_type', 'product') == 'product': company_tax_ids = self.pool.get('res.company').read( cr, uid, fposition_id.company_id.id, ['product_tax_ids'], From d3b35fc62182476acf96b60a81dec9cdcd96e563 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 7 Aug 2015 00:17:30 -0300 Subject: [PATCH 0458/1549] FIX remove invalid references in demo data --- l10n_br_account/demo/base_demo.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 71abcbe502ec..fc582b555d9b 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -198,17 +198,5 @@ - - - - - - - - - - - - From 716f911766f2751b38887c0ab72d794a20df1674 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 7 Aug 2015 15:48:06 -0300 Subject: [PATCH 0459/1549] move demo data from l10n_br_base to l10n_br_account --- l10n_br_account/demo/base_demo.xml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index fc582b555d9b..3f37bc121536 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -3,12 +3,32 @@ - + + + Sua Empresa + Sua Empresa + Avenida Paulista + 1 + Bela Vista + + 01311-000 + Slogan da Sua Empresa + www.suaempresa.com.br + +55 11 9999-9999 + info@suaempresa.com.br + 81.583.054/0001-29 + 078.016.350.838 + + + + + + From 42d45fdc8249b3ff24d197fc10f08c622115ff59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Felipe=20Mil=C3=A9o?= Date: Fri, 7 Aug 2015 17:36:01 -0300 Subject: [PATCH 0460/1549] [FIX] Duplicacao de fatura, hora no danfe e campo numero da fatura corrigido na visao --- .../views/account_invoice_view.xml | 27 ++----------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 8a566984215c..1a5e0fb09884 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -3,17 +3,6 @@ - - l10n_br_account.invoice.tree - account.invoice - - - - - - - - l10n_br_account.invoice.form account.invoice @@ -23,7 +12,7 @@ - + @@ -96,18 +85,6 @@ [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - l10n_br_account.invoice.select - account.invoice - - 32 - - - - - - - l10n_br_account.invoice.supplier.form @@ -125,7 +102,7 @@ {'fiscal_category_id': fiscal_category_id} - + onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) From 15913c16fc055cd5c368adebdd2a15af35c7e0de Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 7 Aug 2015 19:01:46 -0300 Subject: [PATCH 0461/1549] Bring back fiscal fields --- l10n_br_account/models/account_invoice.py | 12 ++++++++++++ l10n_br_account/models/res_company.py | 9 ++++++++- l10n_br_account/views/account_invoice_view.xml | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 72ec9e26aa68..aa983ed607e9 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -85,6 +85,17 @@ def _default_fiscal_document_serie(self): move_line_receivable_id = fields.Many2many( 'account.move.line', string='Receivables', compute='_compute_receivables') + document_serie_id = fields.Many2one( + 'l10n_br_account.document.serie', string=u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id),\ + ('company_id','=',company_id)]", readonly=True, + states={'draft': [('readonly', False)]}, default=_default_fiscal_document_serie) + fiscal_document_id = fields.Many2one( + 'l10n_br_account.fiscal.document', string='Documento', readonly=True, + states={'draft': [('readonly', False)]}, default=_default_fiscal_document) + fiscal_document_electronic = fields.Boolean( + related='fiscal_document_id.electronic', type='boolean', readonly=True, + store=True, string='Electronic') fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal', readonly=True, states={'draft': [('readonly', False)]}) @@ -423,6 +434,7 @@ def product_id_change(self, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, company_id=None): + import pudb; pudb.set_trace() ctx = dict(self.env.context) if ctx.get('type') in ('out_invoice', 'out_refund'): type_tax_use = {'type_tax_use': 'sale'} diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 3098e0c10229..0036fa7f8a24 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- + # -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # @@ -32,6 +32,13 @@ class ResCompany(models.Model): _inherit = 'res.company' + service_invoice_id = fields.Many2one( + 'l10n_br_account.fiscal.document', + 'Documento Fiscal') + document_serie_service_id = fields.Many2one( + 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id),('active','=',True)," + "('fiscal_type','=','service')]") annual_revenue = fields.Float( 'Faturamento Anual', required=True, digits_compute=dp.get_precision('Account'), default=0.00, diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 1a5e0fb09884..c5a7ac439d29 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -10,6 +10,7 @@ + @@ -34,6 +35,8 @@ + + From 717a0e59c22cf6fa2b3eba84821721095b013701 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 7 Aug 2015 19:08:27 -0300 Subject: [PATCH 0462/1549] [FIX] PEP8 --- l10n_br_account/models/account_invoice.py | 7 ++++--- l10n_br_account/models/res_company.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index aa983ed607e9..e140ce916233 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -89,10 +89,12 @@ def _default_fiscal_document_serie(self): 'l10n_br_account.document.serie', string=u'Série', domain="[('fiscal_document_id', '=', fiscal_document_id),\ ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, default=_default_fiscal_document_serie) + states={'draft': [('readonly', False)]}, + default=_default_fiscal_document_serie) fiscal_document_id = fields.Many2one( 'l10n_br_account.fiscal.document', string='Documento', readonly=True, - states={'draft': [('readonly', False)]}, default=_default_fiscal_document) + states={'draft': [('readonly', False)]}, + default=_default_fiscal_document) fiscal_document_electronic = fields.Boolean( related='fiscal_document_id.electronic', type='boolean', readonly=True, store=True, string='Electronic') @@ -434,7 +436,6 @@ def product_id_change(self, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, company_id=None): - import pudb; pudb.set_trace() ctx = dict(self.env.context) if ctx.get('type') in ('out_invoice', 'out_refund'): type_tax_use = {'type_tax_use': 'sale'} diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 0036fa7f8a24..50c27b975dfd 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,4 +1,4 @@ - # -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################### # # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # From 5c75d7e964698351c4445ef1a7fb8c23e12d644f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 7 Aug 2015 19:30:19 -0300 Subject: [PATCH 0463/1549] [FIX] import --- l10n_br_account/models/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 5393647802d0..7b993372d96a 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -18,9 +18,9 @@ ############################################################################### from . import l10n_br_account +from . import res_company from . import account from . import account_invoice from . import product -from . import res_company from . import res_partner from . import account_fiscal_position_rule From 7976b08e41f9375a16b5325f99809fcbe965e926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Felipe=20Mil=C3=A9o?= Date: Fri, 7 Aug 2015 20:07:22 -0300 Subject: [PATCH 0464/1549] [MIG][l10n_br_account] Fields and imports --- l10n_br_account/security/ir.model.access.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index d01c35885077..b2d7adc7aa33 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -33,3 +33,5 @@ "l10n_br_account_invoice_cancel_manager","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_manager",1,1,1,1 "l10n_br_account_document_event_user","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_invoice",1,0,0,0 "l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 +"l10n_br_account_invoice_cce_manager","l10n_br_account_invoice_cce","model_l10n_br_account_invoice_cce","account.group_account_manager",1,1,1,1 + From 683888bba5351df72fe59f7de9622ab4fcb38918 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 8 Aug 2015 00:26:31 -0300 Subject: [PATCH 0465/1549] [FIX] product onchange in invoice line --- l10n_br_account/demo/base_demo.xml | 2 +- .../models/account_fiscal_position_rule.py | 6 +++--- l10n_br_account/models/account_invoice.py | 15 +++++---------- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 3f37bc121536..be4e3e43cd6a 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -21,7 +21,7 @@ 81.583.054/0001-29 078.016.350.838 - + 3 diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 05a2386a8f87..500494fe3673 100755 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -117,14 +117,14 @@ def product_fiscal_category_map(self, product_id, fiscal_category_id, if not product_id or not fiscal_category_id: return result product_tmpl_id = self.env['product.product'].browse(product_id).id - default_product_fiscal_category = self.env[ + fiscal_category = self.env[ 'l10n_br_account.product.category'].search( [('product_tmpl_id', '=', product_tmpl_id), ('fiscal_category_source_id', '=', fiscal_category_id), '|', ('to_state_id', '=', False), ('to_state_id', '=', to_state_id)]) - if default_product_fiscal_category: - result = default_product_fiscal_category[0].id + if fiscal_category: + result = fiscal_category[0].fiscal_category_destination_id.id return result diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index e140ce916233..2854d5609ed8 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -269,11 +269,9 @@ def _fiscal_position_map(self, result, **kwargs): ctx = dict(self._context) ctx.update({'use_domain': ('use_invoice', '=', True)}) - if not ctx.get('fiscal_category_id'): + if not kwargs.get('fiscal_category_id'): return result - kwargs['fiscal_category_id'] = ctx.get('fiscal_category_id') - company = self.env['res.company'].browse(kwargs.get('company_id')) fcategory = self.env['l10n_br_account.fiscal.category'].browse( @@ -442,7 +440,9 @@ def product_id_change(self, product, uom_id, qty=0, name='', else: type_tax_use = {'type_tax_use': 'purchase'} self = self.with_context(type_tax_use) - result = {'value': {}} + result = super(AccountInvoiceLine, self).product_id_change( + product, uom_id, qty, name, type, partner_id, + fposition_id, price_unit, currency_id, company_id) parent_fiscal_position = ctx.get('parent_fiscal_position') parent_fiscal_category_id = ctx.get('parent_fiscal_category_id') @@ -466,12 +466,7 @@ def product_id_change(self, product, uom_id, qty=0, name='', fiscal_category_id=parent_fiscal_category_id, account_id=result['value']['account_id']) - result_super = super(AccountInvoiceLine, self).product_id_change( - product, uom_id, qty, name, type, partner_id, - fposition_id, price_unit, currency_id, company_id) - - result_super['value'].update(result['value']) - return result_super + return result @api.multi def onchange_fiscal_category_id(self, partner_id, company_id, product_id, From 6a8176261a2a568a4f9a640792bd45ccc153edc2 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 8 Aug 2015 10:37:49 -0300 Subject: [PATCH 0466/1549] Added demo data --- l10n_br_account/demo/account_fiscal_demo.xml | 38 ++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml index 803990c56c7d..1cad1f52efb1 100644 --- a/l10n_br_account/demo/account_fiscal_demo.xml +++ b/l10n_br_account/demo/account_fiscal_demo.xml @@ -3,6 +3,44 @@ + + + + Diário de Vendas - (test) + + + + + Nota de Crédito de Vendas - (test) + + + + Diário de Depesas - (test) + + + + + Nota de Crédito de Despesas - (test) + + + + Diário Bancário - (test) + + + + Diário de Cheques - (test) + + + + Diário de Caixa - (test) + + + + Diário de Abertura - (test) + + From d6d1573c9db11eb79fea936e15020c1ca6dbba95 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 10 Aug 2015 01:25:18 -0300 Subject: [PATCH 0467/1549] [FIX] fiscal category form view, tests, field definitin in fiscal position --- l10n_br_account/__openerp__.py | 5 +- l10n_br_account/models/l10n_br_account.py | 2 +- l10n_br_account/models/res_partner.py | 10 +-- .../test/account_customer_invoice.yml | 63 +++++++++++++++++++ .../test/account_supplier_invoice.yml | 58 +++++++++++++++++ .../views/l10n_br_account_view.xml | 6 +- l10n_br_account/views/res_partner_view.xml | 4 +- 7 files changed, 136 insertions(+), 12 deletions(-) create mode 100644 l10n_br_account/test/account_customer_invoice.yml create mode 100644 l10n_br_account/test/account_supplier_invoice.yml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index b7ecc1c50ccc..9b3ad6cf1040 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -53,7 +53,10 @@ 'demo/account_fiscal_demo.xml', 'demo/base_demo.xml', ], - 'test': [], + 'test': [ + 'test/account_customer_invoice.yml', + 'test/account_supplier_invoice.yml', + ], 'installable': True, 'auto_install': True, } diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index c6d422fc8e24..35891a9f6ea4 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -153,7 +153,7 @@ class L10n_brAccountFiscalCategory(models.Model): ('state', '=', 'approved')]""") fiscal_position_ids = fields.One2many( 'account.fiscal.position', - 'fiscal_category_id', u'Posições Fiscais') + 'fiscal_category_id', string=u'Posições Fiscais') note = fields.Text(u'Observações') state = fields.Selection( [('draft', u'Rascunho'), diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 912da6236b0f..b9d879f773ba 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -19,7 +19,7 @@ from openerp import models, fields, api -from .l10n_br_account import TYPE +from .l10n_br_account import PRODUCT_FISCAL_TYPE class AccountFiscalPositionTemplate(models.Model): @@ -29,8 +29,8 @@ class AccountFiscalPositionTemplate(models.Model): fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal') fiscal_category_fiscal_type = fields.Selection( - TYPE, related='fiscal_category_id.type', readonly=True, - store=True, string='Fiscal Type') + PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', + readonly=True, store=True, string='Fiscal Type') type = fields.Selection( [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') type_tax_use = fields.Selection( @@ -176,8 +176,8 @@ class AccountFiscalPosition(models.Model): fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal') fiscal_category_fiscal_type = fields.Selection( - TYPE, related='fiscal_category_id.type', readonly=True, - store=True, string='Fiscal Type') + PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', + readonly=True, store=True, string='Fiscal Type') type = fields.Selection( [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') type_tax_use = fields.Selection( diff --git a/l10n_br_account/test/account_customer_invoice.yml b/l10n_br_account/test/account_customer_invoice.yml new file mode 100644 index 000000000000..0eaa41d027e1 --- /dev/null +++ b/l10n_br_account/test/account_customer_invoice.yml @@ -0,0 +1,63 @@ +- + Create Fiscal Category +- + !record {model: l10n_br_account.fiscal.category, id: fiscal_category_sale}: + code: Venda + name: Venda + type: output + journal_type: sale + property_journal: account.sales_journal +- + Create Fiscal Position +- + !record {model: account.fiscal.position, id: fiscal_position_sale}: + name: Venda + type: output + company_id: base.main_company + fiscal_category_id: fiscal_category_sale +- + I configure automatically if the country is set on the company, mainly for online offers. +- + !python {model: account.installer}: | + print "passou!" +- + Create Fiscal Position Rule +- + !record {model: account.fiscal.position.rule, id: fiscal_position_rule_sale}: + name: Venda + description: Venda + company_id: base.main_company + from_country: base.br + fiscal_category_id: fiscal_category_sale + fiscal_position_id: fiscal_position_sale + use_sale: true + use_invoice: true + use_picking: true +- + Create a customer invoice +- + !record {model: account.invoice, id: account_invoice_customer0, view: view_l10n_br_account_invoice_form}: + payment_term: account.account_payment_term_advance + partner_id: base.res_partner_3 + fiscal_category_id: fiscal_category_sale + reference_type: none + name: 'Test Customer Invoice' + invoice_line: + - product_id: product.product_product_5 + quantity: 10.0 +- + I check that Initially customer invoice is in the "Draft" state +- + !assert {model: account.invoice, id: account_invoice_customer0}: + - state == 'draft' +- + I create invoice by clicking on Create button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_customer0} +- + I check that the invoice state is "Open" +- + !assert {model: account.invoice, id: account_invoice_customer0}: + - state == 'open' + + diff --git a/l10n_br_account/test/account_supplier_invoice.yml b/l10n_br_account/test/account_supplier_invoice.yml new file mode 100644 index 000000000000..da9ef711867b --- /dev/null +++ b/l10n_br_account/test/account_supplier_invoice.yml @@ -0,0 +1,58 @@ +- + Create Fiscal Category +- + !record {model: l10n_br_account.fiscal.category, id: fiscal_category_purchase}: + code: Compras + name: Compras + type: input + journal_type: purchase + property_journal: account.expenses_journal +- + Create Fiscal Position +- + !record {model: account.fiscal.position, id: fiscal_position_purchase}: + name: Compras + type: input + company_id: base.main_company + fiscal_category_id: fiscal_category_purchase +- + Create Fiscal Position Rule +- + !record {model: account.fiscal.position.rule, id: fiscal_position_rule_purchase}: + name: Compras + description: Compras + company_id: base.main_company + from_country: base.br + fiscal_category_id: fiscal_category_purchase + fiscal_position_id: fiscal_position_purchase + use_purchase: true + use_invoice: true + use_picking: true +- + Create a supplier invoice +- + !record {model: account.invoice, id: account_invoice_supplier0, view: view_l10n_br_account_invoice_form}: + payment_term: account.account_payment_term_advance + partner_id: base.res_partner_3 + fiscal_category_id: fiscal_category_purchase + reference_type: none + name: 'Test Supplier Invoice' + invoice_line: + - product_id: product.product_product_5 + quantity: 10.0 +- + I check that Initially supplier invoice is in the "Draft" state +- + !assert {model: account.invoice, id: account_invoice_supplier0}: + - state == 'draft' +- + I create invoice by clicking on Create button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_supplier0} +- + I check that the invoice state is "Open" +- + !assert {model: account.invoice, id: account_invoice_supplier0}: + - state == 'open' + + diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index ddba643483bc..438ad99877c2 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -91,12 +91,12 @@ - + l10n_br_account.fiscal.category.form l10n_br_account.fiscal.category -
+
- - - - - - - -
- - - l10n_br_account.invoice.cce.form - l10n_br_account.invoice.cce - -
- - - - - - - -
-
- - - l10n_br_account.invoice.cancel.tree - l10n_br_account.invoice.cancel - - - - - - - - - - - l10n_br_account.invoice.cce.tree - l10n_br_account.invoice.cce - - - - - - - - - - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - -
+ + + + + + + + + l10n_br_account.invoice.cancel.form + l10n_br_account.invoice.cancel + + +
+
+ + + + + + + +
+ + + l10n_br_account.invoice.cce.form + l10n_br_account.invoice.cce + +
+ + + + + + + +
+
+ + + l10n_br_account.invoice.cancel.tree + l10n_br_account.invoice.cancel + + + + + + + + + + + l10n_br_account.invoice.cce.tree + l10n_br_account.invoice.cce + + + + + + + + + + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + +
- - - + + + -
-
-
- - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - - - - - - - - - - - l10n_br_account.fiscal.category.form - l10n_br_account.fiscal.category - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - l10n_br_account.fiscal.category.search - l10n_br_account.fiscal.category - - - - - - - - - - - - - - - - - - l10n_br_account.fiscal.category.tree - l10n_br_account.fiscal.category - - - - - - - - - - - - - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - -
+
+
+
+ + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + + + + + + + + + + + l10n_br_account.fiscal.category.form + l10n_br_account.fiscal.category + +
+
+
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
-
-
- - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - - - - - - - - - - - l10n_br_account.partner.special.fiscal.type - l10n_br_account.partner.special.fiscal.type - -
+
+
+
+ + + l10n_br_account.fiscal.category.search + l10n_br_account.fiscal.category + + + + + + + + + + + + + + + + + + l10n_br_account.fiscal.category.tree + l10n_br_account.fiscal.category + + + + + + + + + + + + + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + +
- + + + + + + + + -
-
-
- - - l10n_br_account.partner.special.fiscal.type - l10n_br_account.partner.special.fiscal.type - - - - - - - - - - l10n_br_account.document.serie - l10n_br_account.document.serie - -
- - - - - - - - - + + +
+ + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + + + + + + + + + + + l10n_br_account.partner.special.fiscal.type + l10n_br_account.partner.special.fiscal.type + +
+ + + -
-
-
- - - l10n_br_account.document.serie - l10n_br_account.document.serie - - - - - - - - - - - - - l10n_br_account.document_event.form - l10n_br_account.document_event - -
-
- -
- - - - - - - - - - - - - -
-
-
- - - l10n_br_account.document_event.tree - l10n_br_account.document_event - - - - - - - - - - - - - - - - - l10n_br_account.invoice.invalid.number.form - l10n_br_account.invoice.invalid.number - -
-
-
- - - - - - - - - - -
-
- - - l10n_br_account.invoice.invalid.number.tree - l10n_br_account.invoice.invalid.number - - - - - - - - - - - - - - l10n_br_account.cnae.form - l10n_br_account.cnae - -
+
+
+
+ + + l10n_br_account.partner.special.fiscal.type + l10n_br_account.partner.special.fiscal.type + + + + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + +
- - - - - + + + + + + + -
-
-
- - - l10n_br_account.cnae.tree - l10n_br_account.cnae - - - - - - - - - - - - l10n_br_account.cnae.structure - l10n_br_account.cnae - child_ids - - - - - - - - - - - - l10n_br_account.service.type.form - l10n_br_account.service.type - -
+
+
+
+ + + l10n_br_account.document.serie + l10n_br_account.document.serie + + + + + + + + + + + + + l10n_br_account.document_event.form + l10n_br_account.document_event + +
+
+ +
+ + + + + + + + + + + + + +
+
+
+ + + l10n_br_account.document_event.tree + l10n_br_account.document_event + + + + + + + + + + + + + + + + + l10n_br_account.invoice.invalid.number.form + l10n_br_account.invoice.invalid.number + +
+
+
+ + + + + + + + + + +
+
+ + + l10n_br_account.invoice.invalid.number.tree + l10n_br_account.invoice.invalid.number + + + + + + + + + + + + + + l10n_br_account.cnae.form + l10n_br_account.cnae + +
- - - - - - + + + + + + + + +
+
+
+ + + l10n_br_account.cnae.tree + l10n_br_account.cnae + + + + + + + + + + + + l10n_br_account.cnae.structure + l10n_br_account.cnae + child_ids + + + + + + + + + + + + l10n_br_account.service.type.form + l10n_br_account.service.type + +
+ + + + + + + -
-
-
- - - l10n_br_account.service.type.tree - l10n_br_account.service.type - - - - - - - - - - - l10n_br_account.service.type.structure - l10n_br_account.service.type - child_ids - - - - - - - - - - - Documento Fiscal - ir.actions.act_window - l10n_br_account.fiscal.document - tree,form - form - - - - - Categoria Fiscal - ir.actions.act_window - l10n_br_account.fiscal.category - tree,form - form - {"search_default_approved":1} - - - - - - Document Serie - ir.actions.act_window - l10n_br_account.document.serie - tree,form - form - - - - - Eventos Eletronicos - ir.actions.act_window - l10n_br_account.document_event - tree,form - form - - - - - - Inutilizar Faixa de Numeração - ir.actions.act_window - l10n_br_account.invoice.invalid.number - tree,form - form - - - - - - Tipo Fiscal de Parceiro - ir.actions.act_window - l10n_br_account.partner.fiscal.type - tree,form - form - - - - - Regime especial do Parceiro - ir.actions.act_window - l10n_br_account.partner.special.fiscal.type - tree,form - form - - - - - CNAE - ir.actions.act_window - l10n_br_account.cnae - tree,form - form - - - - - Estrutura do CNAE - ir.actions.act_window - l10n_br_account.cnae - tree - [('parent_id','=',False)] - - - - - Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree,form - form - - - - - Estrutura de Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree - [('parent_id','=',False)] - - - - - Cancelar Documento Eletrônico - ir.actions.act_window - l10n_br_account.invoice.cancel - tree,form - form - - - - - Carta de Correção - ir.actions.act_window - l10n_br_account.invoice.cce - tree,form - form - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ +
+
+ + + l10n_br_account.service.type.tree + l10n_br_account.service.type + + + + + + + + + + + l10n_br_account.service.type.structure + l10n_br_account.service.type + child_ids + + + + + + + + + + + Documento Fiscal + ir.actions.act_window + l10n_br_account.fiscal.document + tree,form + form + + + + + Categoria Fiscal + ir.actions.act_window + l10n_br_account.fiscal.category + tree,form + form + {"search_default_approved":1} + + + + + + Document Serie + ir.actions.act_window + l10n_br_account.document.serie + tree,form + form + + + + + Eventos Eletronicos + ir.actions.act_window + l10n_br_account.document_event + tree,form + form + + + + + + Inutilizar Faixa de Numeração + ir.actions.act_window + l10n_br_account.invoice.invalid.number + tree,form + form + + + + + + Tipo Fiscal de Parceiro + ir.actions.act_window + l10n_br_account.partner.fiscal.type + tree,form + form + + + + + Regime especial do Parceiro + ir.actions.act_window + l10n_br_account.partner.special.fiscal.type + tree,form + form + + + + + CNAE + ir.actions.act_window + l10n_br_account.cnae + tree,form + form + + + + + Estrutura do CNAE + ir.actions.act_window + l10n_br_account.cnae + tree + [('parent_id','=',False)] + + + + + Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree,form + form + + + + + Estrutura de Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree + [('parent_id','=',False)] + + + + + Cancelar Documento Eletrônico + ir.actions.act_window + l10n_br_account.invoice.cancel + tree,form + form + + + + + Carta de Correção + ir.actions.act_window + l10n_br_account.invoice.cce + tree,form + form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/l10n_br_account/views/product_view.xml b/l10n_br_account/views/product_view.xml index ede25a08f914..f2adbda457e4 100644 --- a/l10n_br_account/views/product_view.xml +++ b/l10n_br_account/views/product_view.xml @@ -1,28 +1,28 @@ - + - - l10n_br_account_product_template_form_view - product.template - - - - - - - - - - - - - - - - - - + + l10n_br_account_product_template_form_view + product.template + + + + + + + + + + + + + + + + + + - + diff --git a/l10n_br_account/views/res_company_view.xml b/l10n_br_account/views/res_company_view.xml index 3843286ffedb..0915e8636dc1 100644 --- a/l10n_br_account/views/res_company_view.xml +++ b/l10n_br_account/views/res_company_view.xml @@ -1,43 +1,43 @@ - + - - l10n_br_account.company - res.company - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + l10n_br_account.company + res.company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/l10n_br_account/views/res_partner_view.xml b/l10n_br_account/views/res_partner_view.xml index 33d69d1ab8bc..d7fef0dd4472 100644 --- a/l10n_br_account/views/res_partner_view.xml +++ b/l10n_br_account/views/res_partner_view.xml @@ -1,156 +1,156 @@ - + - - l10n_br_account.fiscal.position.template.form - account.fiscal.position.template - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - -
-
+ + l10n_br_account.fiscal.position.template.form + account.fiscal.position.template + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + +
+
- - l10n_br_account.fiscal.position.tree - account.fiscal.position - - - - - - - + + l10n_br_account.fiscal.position.tree + account.fiscal.position + + + + + + + - - l10n_br_account.fiscal.position.form - account.fiscal.position - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - -
-
+ + l10n_br_account.fiscal.position.form + account.fiscal.position + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + +
+
- - l10n_br_account.partner.form - res.partner - - - - - - - - + + l10n_br_account.partner.form + res.partner + + + + + + + + -
+
From 82086eef68388255df09c1e899e012422b1dbfdb Mon Sep 17 00:00:00 2001 From: sadamo Date: Mon, 25 Jul 2016 10:59:32 -0300 Subject: [PATCH 0532/1549] [FIX] Sorting invoice in view list by date_hour_invoice desc, internal_number desc [FIX] Sort by date_hour_invoice desc, internal_number desc in invoice tree view --- l10n_br_account/models/account_invoice.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 4f8933954142..a5bcfc4a50d1 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -43,7 +43,7 @@ class AccountInvoice(models.Model): _inherit = 'account.invoice' - _order = "internal_number desc, id desc" + _order = 'date_invoice DESC, internal_number DESC' @api.one @api.depends( @@ -130,8 +130,6 @@ def _default_fiscal_document_serie(self): string='Gera Financeiro' ) - _order = 'internal_number desc' - @api.one @api.constrains('number') def _check_invoice_number(self): From 416d3c91fe84aa14628da6021a4777cc327440c8 Mon Sep 17 00:00:00 2001 From: Hendrix Costa Date: Tue, 26 Jul 2016 15:01:03 -0300 Subject: [PATCH 0533/1549] [FIX] add friendly message --- l10n_br_account/report/account_invoice_report.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 826b08be8360..61311e100a8b 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -59,9 +59,12 @@ class AccountInvoiceReport(models.Model): string=u'Série', readonly=True ) - revenue_expense = fields.Boolean( + revenue_expense = fields.Char( readonly=True, - string='Gera Financeiro') + string='Gera Financeiro', + size=32, + ) + l10n_br_city_id = fields.Many2one( 'l10n_br_base.city', string='Municipio', @@ -80,7 +83,7 @@ def _select(self): ", sub.fiscal_type as fiscal_type" ", sub.fiscal_document_electronic as fiscal_document_electronic" ", sub.document_serie_id as document_serie_id" - ", sub.revenue_expense as revenue_expense" + ", CASE WHEN sub.revenue_expense = 't' THEN 'Gera Financeiro' ELSE 'Não Gera Financeiro' end as revenue_expense" ", sub.l10n_br_city_id as l10n_br_city_id" ", sub.state_id as state_id" ) From 0d96ee366bd9258c0bbb797e24df729d113a4b6d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 27 Jul 2016 10:26:24 -0300 Subject: [PATCH 0534/1549] PEP8 --- .../data/l10n_br_account.fiscal.document.csv | 2 +- l10n_br_account/models/account_invoice.py | 3 ++- l10n_br_account/report/account_invoice_report.py | 10 +++++----- l10n_br_account/views/account_invoice_view.xml | 16 +--------------- l10n_br_account/views/res_config_view.xml | 2 +- 5 files changed, 10 insertions(+), 23 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account.fiscal.document.csv b/l10n_br_account/data/l10n_br_account.fiscal.document.csv index 149b63129b9a..9e2e6e887395 100644 --- a/l10n_br_account/data/l10n_br_account.fiscal.document.csv +++ b/l10n_br_account/data/l10n_br_account.fiscal.document.csv @@ -1,2 +1,2 @@ "id","code","name","electronic" -"fiscal_document_service","XX","Nota Fiscal de Serviço Municipal","False" \ No newline at end of file +"fiscal_document_service","XX","Nota Fiscal de Serviço Municipal","False" diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index a5bcfc4a50d1..46168d8ec98d 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -352,7 +352,8 @@ def _compute_price(self): 'account.fiscal.position', u'Posição Fiscal', domain="[('fiscal_category_id', '=', fiscal_category_id)]") price_tax_discount = fields.Float( - string='Price Tax discount', store=True, digits=dp.get_precision('Account'), + string='Price Tax discount', store=True, + digits=dp.get_precision('Account'), readonly=True, compute='_compute_price') def fields_view_get(self, cr, uid, view_id=None, view_type=False, diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 61311e100a8b..0bd6eff441ca 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -21,10 +21,9 @@ from ..models.l10n_br_account import PRODUCT_FISCAL_TYPE - class AccountInvoiceReport(models.Model): - _inherit = "account.invoice.report" + _inherit = 'account.invoice.report' fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', @@ -37,8 +36,8 @@ class AccountInvoiceReport(models.Model): ('sefaz_denied', u'Denegada no Sefaz'), ]) issuer = fields.Selection( - [('0', u'Emissão própria'), - ('1', 'Terceiros')], + [('0', u'Emissão própria'), + ('1', 'Terceiros')], string='Emitente', readonly=True ) @@ -83,7 +82,8 @@ def _select(self): ", sub.fiscal_type as fiscal_type" ", sub.fiscal_document_electronic as fiscal_document_electronic" ", sub.document_serie_id as document_serie_id" - ", CASE WHEN sub.revenue_expense = 't' THEN 'Gera Financeiro' ELSE 'Não Gera Financeiro' end as revenue_expense" + ", CASE WHEN sub.revenue_expense = 't' THEN 'Gera Financeiro' " + "ELSE 'Não Gera Financeiro' end as revenue_expense" ", sub.l10n_br_city_id as l10n_br_city_id" ", sub.state_id as state_id" ) diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 0c8f26fcf091..7716b93cea09 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -4,7 +4,7 @@ l10n_br_account.partner.filter account.invoice - + @@ -163,26 +163,12 @@ - - - 1 - - l10n_br_account.invoice.supplier.form3 - account.invoice - - - - - - - - l10n_br_account.invoice.line.form account.invoice.line diff --git a/l10n_br_account/views/res_config_view.xml b/l10n_br_account/views/res_config_view.xml index 52b132b82a56..d2d36f745ef6 100644 --- a/l10n_br_account/views/res_config_view.xml +++ b/l10n_br_account/views/res_config_view.xml @@ -25,4 +25,4 @@ - \ No newline at end of file + From f3e9106f7f57eaa083a43124833c0f3eda95f77b Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Tue, 26 Jul 2016 17:45:16 -0300 Subject: [PATCH 0535/1549] [FIX] The right group to put access in l10n_br_account.partner.special.fiscal.type model is account.group_account_invoice because the others groups in Account inherit. --- l10n_br_account/security/ir.model.access.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index 9a6177018c22..cd5e142e67b9 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -8,7 +8,7 @@ "l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_manager",1,1,1,1 "l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 "l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 -"l10n_br_account_partner_special_fiscal_type_user","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_user",1,0,0,0 +"l10n_br_account_partner_special_fiscal_type_invoice","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_invoice",1,0,0,0 "l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 "l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 "l10n_br_account_document_serie_user","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_user",1,0,0,0 From b2764078fadfbc816ce78f8b5ad63db482de9ccf Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Tue, 26 Jul 2016 18:28:10 -0300 Subject: [PATCH 0536/1549] Added manage access to partner_special_fiscal_type. --- l10n_br_account/security/ir.model.access.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index cd5e142e67b9..8240f95df4da 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -8,6 +8,7 @@ "l10n_br_account_cnae","l10n_br_account.cnae","model_l10n_br_account_cnae","account.group_account_manager",1,1,1,1 "l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 "l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 +"l10n_br_account_partner_special_fiscal_type_manager","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_manager",1,1,1,1 "l10n_br_account_partner_special_fiscal_type_invoice","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_invoice",1,0,0,0 "l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 "l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 From 6f55e0cfab3d3aa43857a44ed0b2baba8ebecdbb Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Wed, 27 Jul 2016 15:55:35 -0300 Subject: [PATCH 0537/1549] Change group_invoice to group_user to be more generic and add for others objects the permission to group_user to allow users with only access like Sale, Purchase, etc create Orders. --- l10n_br_account/security/ir.model.access.csv | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index 8240f95df4da..444b7cc47e2c 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -9,7 +9,7 @@ "l10n_br_account_service_type","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_manager",1,1,1,1 "l10n_br_account_partner_fiscal_type_user","l10n_br_account.partner.fiscal.type","model_l10n_br_account_partner_fiscal_type","account.group_account_user",1,0,0,0 "l10n_br_account_partner_special_fiscal_type_manager","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_manager",1,1,1,1 -"l10n_br_account_partner_special_fiscal_type_invoice","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","account.group_account_invoice",1,0,0,0 +"l10n_br_account_partner_special_fiscal_type_invoice","l10n_br_account.partner.special.fiscal.type","model_l10n_br_account_partner_special_fiscal_type","base.group_user",1,0,0,0 "l10n_br_account_fiscal_document_user","l10n_br_account.fiscal.document","model_l10n_br_account_fiscal_document","account.group_account_user",1,0,0,0 "l10n_br_account_fiscal_category_user","l10n_br_account.fiscal.category","model_l10n_br_account_fiscal_category","account.group_account_user",1,0,0,0 "l10n_br_account_document_serie_user","l10n_br_account.document.serie","model_l10n_br_account_document_serie","account.group_account_user",1,0,0,0 @@ -33,3 +33,5 @@ "l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 "l10n_br_account_invoice_cce_manager","l10n_br_account_invoice_cce","model_l10n_br_account_invoice_cce","account.group_account_manager",1,1,1,1 "access_account_config_settings","access_account_config_settings","model_account_config_settings","base.group_system",1,1,1,1 +"access_account_tax_code_user","access_account_tax_code_user","account.model_account_tax_code","base.group_user",1,0,0,0 +"l10n_br_account_partner_fiscal_type_user","l10n_br_account_partner_fiscal_type_user","model_l10n_br_account_partner_fiscal_type","base.group_user",1,0,0,0 From fc51b38044d40870bde7f60f759214ed9b06dadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 15 Aug 2016 17:29:15 -0300 Subject: [PATCH 0538/1549] lighter new style OCA license headers --- l10n_br_account/__init__.py | 17 +---------------- l10n_br_account/__openerp__.py | 17 +---------------- l10n_br_account/models/__init__.py | 17 +---------------- l10n_br_account/models/account.py | 17 +---------------- .../models/account_fiscal_position_rule.py | 17 +---------------- l10n_br_account/models/account_invoice.py | 17 +---------------- l10n_br_account/models/l10n_br_account.py | 17 +---------------- l10n_br_account/models/product.py | 17 +---------------- l10n_br_account/models/res_company.py | 17 +---------------- l10n_br_account/models/res_config.py | 18 +----------------- l10n_br_account/models/res_partner.py | 17 +---------------- l10n_br_account/report/__init__.py | 17 +---------------- .../report/account_invoice_report.py | 17 +---------------- l10n_br_account/sped/__init__.py | 17 +---------------- l10n_br_account/sped/document.py | 17 +---------------- l10n_br_account/sped/ibpt/__init__.py | 17 +---------------- l10n_br_account/sped/ibpt/deolhonoimposto.py | 17 +---------------- 17 files changed, 17 insertions(+), 273 deletions(-) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index a82dd415b0b0..d7428a1bec13 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import models from . import sped diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index f6740d13eea5..fffa8ac2ff04 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { 'name': 'Brazilian Localization Account', diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 8e2c5a257d5d..5c4be854b760 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import l10n_br_account from . import res_partner diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index b58b42d3705e..faf712d061e7 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields, api diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index aa94902cc4ba..e6f72508ef8a 100644 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import time diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 46168d8ec98d..6645967019db 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from lxml import etree diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index afc512300c82..39a83d286c39 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -1,22 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # # Copyright (C) 2014 KMEE - www.kmee.com.br -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import datetime diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index c54097cfa940..049ba8851da3 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -1,22 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 Gabriel C. Stabel # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 0d8bf387a8d1..27ecbf2626ab 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields from openerp.addons import decimal_precision as dp diff --git a/l10n_br_account/models/res_config.py b/l10n_br_account/models/res_config.py index 4be1e778454d..c7e403a15515 100644 --- a/l10n_br_account/models/res_config.py +++ b/l10n_br_account/models/res_config.py @@ -1,23 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################## -# # Copyright (C) 2015 KMEE (http://www.kmee.com.br) # @author Luis Felipe Miléo (mileo@kmee.com.br) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 35691681852c..23e3a76881ee 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2009 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields, api diff --git a/l10n_br_account/report/__init__.py b/l10n_br_account/report/__init__.py index 8b9b5f5b749a..2cbdb8f77d00 100644 --- a/l10n_br_account/report/__init__.py +++ b/l10n_br_account/report/__init__.py @@ -1,20 +1,5 @@ # -*- coding: utf-8 -*- -############################################################################### -# # Copyright (C) 2016 Magno Costa - Akretion -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import account_invoice_report diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 0bd6eff441ca..13b46ab2af50 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # Copyright (C) 2016 Magno Costa - Akretion -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields from ..models.l10n_br_account import PRODUCT_FISCAL_TYPE diff --git a/l10n_br_account/sped/__init__.py b/l10n_br_account/sped/__init__.py index 0e415e1f1a50..5a293c608c02 100644 --- a/l10n_br_account/sped/__init__.py +++ b/l10n_br_account/sped/__init__.py @@ -1,20 +1,5 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2012 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import document diff --git a/l10n_br_account/sped/document.py b/l10n_br_account/sped/document.py index 60aea8572404..6129b57d61df 100644 --- a/l10n_br_account/sped/document.py +++ b/l10n_br_account/sped/document.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # # Copyright (C) 2013 - TODAY Renato Lima - Akretion # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html class FiscalDocument(object): diff --git a/l10n_br_account/sped/ibpt/__init__.py b/l10n_br_account/sped/ibpt/__init__.py index 6068677fa6e2..a391b415bc1f 100644 --- a/l10n_br_account/sped/ibpt/__init__.py +++ b/l10n_br_account/sped/ibpt/__init__.py @@ -1,20 +1,5 @@ # -*- coding: utf-8 -*- -############################################################################### -# # Copyright (C) 2015 Luis Felipe Miléo - KMEE -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import deolhonoimposto diff --git a/l10n_br_account/sped/ibpt/deolhonoimposto.py b/l10n_br_account/sped/ibpt/deolhonoimposto.py index 2856373573d2..d980db43b7c4 100644 --- a/l10n_br_account/sped/ibpt/deolhonoimposto.py +++ b/l10n_br_account/sped/ibpt/deolhonoimposto.py @@ -1,21 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################### -# # Copyright (C) 2015 Luis Felipe Miléo - KMEE -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -############################################################################### +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import urllib import urllib2 From a0eae85ed957128e053269f6bbfc11de3797e470 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 30 May 2016 13:00:14 -0300 Subject: [PATCH 0539/1549] [REF] Create parameter to define the quantity of days to consult the webservice again. --- l10n_br_account/models/res_config.py | 1 + l10n_br_account/views/res_config_view.xml | 57 +++++++++++++---------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/l10n_br_account/models/res_config.py b/l10n_br_account/models/res_config.py index c7e403a15515..331c1544d36a 100644 --- a/l10n_br_account/models/res_config.py +++ b/l10n_br_account/models/res_config.py @@ -13,3 +13,4 @@ class ResConfig(models.Model): string='IPBT Token', related='company_id.ipbt_token' ) + number_days_update = fields.Integer('Quantidade de dias para Atualizar') diff --git a/l10n_br_account/views/res_config_view.xml b/l10n_br_account/views/res_config_view.xml index d2d36f745ef6..fba9bb237c75 100644 --- a/l10n_br_account/views/res_config_view.xml +++ b/l10n_br_account/views/res_config_view.xml @@ -1,28 +1,35 @@ - - - account.config.settings.l10n_br_account - account.config.settings - - - - - - - - - - + - - + + account.config.settings.l10n_br_account + account.config.settings + + + + + + + + + + + + + \ No newline at end of file From 04519abe44fad9aa26a7d26b3868066778a1e620 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 13 Jul 2016 02:36:58 -0300 Subject: [PATCH 0540/1549] [FIX] number_of_days - Rename to ibpt_update_days; - Define it on company; - Make related --- l10n_br_account/models/res_company.py | 3 ++- l10n_br_account/models/res_config.py | 7 +++++-- l10n_br_account/views/res_config_view.xml | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 27ecbf2626ab..fe4e230e88e5 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -41,4 +41,5 @@ class ResCompany(models.Model): fiscal_rule_parent_id = fields.Many2one( 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', domain="[('parent_id', '=', False)]") - ipbt_token = fields.Char(string='IPBT Token') + ipbt_token = fields.Char(string=u'IPBT Token') + ibpt_update_days = fields.Integer(string=u'IPBT Token') diff --git a/l10n_br_account/models/res_config.py b/l10n_br_account/models/res_config.py index 331c1544d36a..cbf45fca95c0 100644 --- a/l10n_br_account/models/res_config.py +++ b/l10n_br_account/models/res_config.py @@ -10,7 +10,10 @@ class ResConfig(models.Model): _inherit = 'account.config.settings' ipbt_token = fields.Char( - string='IPBT Token', + string=u'IPBT Token', related='company_id.ipbt_token' ) - number_days_update = fields.Integer('Quantidade de dias para Atualizar') + ibpt_update_days = fields.Integer( + string=u'Quantidade de dias para Atualizar', + related='company_id.ibpt_update_days' + ) diff --git a/l10n_br_account/views/res_config_view.xml b/l10n_br_account/views/res_config_view.xml index fba9bb237c75..e3bfd9afd903 100644 --- a/l10n_br_account/views/res_config_view.xml +++ b/l10n_br_account/views/res_config_view.xml @@ -22,7 +22,7 @@
From 0e032081822e8c07da0e468d0fef4d623f3b5bbe Mon Sep 17 00:00:00 2001 From: Hendrix Costa Date: Wed, 17 Aug 2016 19:55:29 -0300 Subject: [PATCH 0541/1549] [FIX] update URL weservice --- l10n_br_account/sped/ibpt/deolhonoimposto.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/sped/ibpt/deolhonoimposto.py b/l10n_br_account/sped/ibpt/deolhonoimposto.py index d980db43b7c4..ba2948f4fd46 100644 --- a/l10n_br_account/sped/ibpt/deolhonoimposto.py +++ b/l10n_br_account/sped/ibpt/deolhonoimposto.py @@ -12,8 +12,8 @@ WS_PRODUTOS = 1 WS_IBPT = { - WS_SERVICOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/servico/?', - WS_PRODUTOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/produto/?', + WS_SERVICOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/Servicos/?', + WS_PRODUTOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/Produtos/?', } From 5e864ce6b6e1e0c3c420882bf63ce8b70bdc0599 Mon Sep 17 00:00:00 2001 From: Hendrix Costa Date: Wed, 17 Aug 2016 20:41:18 -0300 Subject: [PATCH 0542/1549] [ADD] default parameters for get_ibpt_product --- l10n_br_account/sped/ibpt/deolhonoimposto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/sped/ibpt/deolhonoimposto.py b/l10n_br_account/sped/ibpt/deolhonoimposto.py index ba2948f4fd46..9159f0c10771 100644 --- a/l10n_br_account/sped/ibpt/deolhonoimposto.py +++ b/l10n_br_account/sped/ibpt/deolhonoimposto.py @@ -41,7 +41,7 @@ def _request(req): raise UserError(_('Error in the request: {0}'.format(e))) -def get_ibpt_product(config, ncm, ex, reference=None, description=None, +def get_ibpt_product(config, ncm, ex='0', reference=None, description=None, uom=None, amount=None, gtin=None): data = urllib.urlencode({ From a626d23c1b1503513fdcd0e799cb4f41339ac761 Mon Sep 17 00:00:00 2001 From: Hendrix Costa Date: Mon, 22 Aug 2016 16:40:47 -0300 Subject: [PATCH 0543/1549] [FIX] Views: Wrong rebase --- l10n_br_account/views/res_config_view.xml | 63 +++++++++++------------ 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/l10n_br_account/views/res_config_view.xml b/l10n_br_account/views/res_config_view.xml index e3bfd9afd903..2deb32072c08 100644 --- a/l10n_br_account/views/res_config_view.xml +++ b/l10n_br_account/views/res_config_view.xml @@ -1,35 +1,34 @@ - + + + account.config.settings.l10n_br_account + account.config.settings + + + + + + + + + + - - account.config.settings.l10n_br_account - account.config.settings - - - - - - - - - - - - - \ No newline at end of file + + From deecde3a2d8daf8d4abcbdc4b5fd197102f48c45 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Tue, 23 Aug 2016 12:40:05 -0300 Subject: [PATCH 0544/1549] Included migrations analysis for module Account from branch 7.0 (old develop) to 8.0 --- .../8.0.1.0.1/openupgrade_analysis.txt | 25 +++++++++++++++++ .../8.0.1.0.1/openupgrade_analysis_work.txt | 27 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis.txt create mode 100644 l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis_work.txt diff --git a/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis.txt b/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis.txt new file mode 100644 index 000000000000..1f72626a96ce --- /dev/null +++ b/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis.txt @@ -0,0 +1,25 @@ +---Fields in module 'l10n_br_account'--- +l10n_br_account / account.fiscal.position / fiscal_category_fiscal_type (char): selection_keys is now 'function' ('False') +l10n_br_account / account.fiscal.position / fiscal_category_fiscal_type (char): type is now 'selection' ('char') +l10n_br_account / account.fiscal.position.template / fiscal_category_fiscal_type (char): selection_keys is now 'function' ('False') +l10n_br_account / account.fiscal.position.template / fiscal_category_fiscal_type (char): type is now 'selection' ('char') +l10n_br_account / l10n_br_account.document_event / cancel_document_event_id (many2one): NEW relation: l10n_br_account.invoice.cancel +l10n_br_account / l10n_br_account.document_event / invalid_number_document_event_id (many2one): NEW relation: l10n_br_account.invoice.invalid.number +l10n_br_account / l10n_br_account.document_event / type (selection) : selection_keys is now '['-1', '0', '1', '10', '11', '12', '13', '2', '3', '4', '5', '6', '7', '8', '9']' ('['-1', '0', '1', '10', '11', '2', '3', '4', '5', '6', '7', '8', '9']') +l10n_br_account / l10n_br_account.product.category / to_state_id (many2one) : NEW relation: res.country.state +---XML records in module 'l10n_br_account'--- +NEW account.tax.template: l10n_br_account.tax_template_68 +NEW ir.model.access: l10n_br_account.l10n_br_account_invoice_cce_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_template_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_template_user +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_user +DEL ir.rule: l10n_br_account.l10n_br_tax_definition_rule +DEL ir.rule: l10n_br_account.l10n_br_tax_definition_template_rule +NEW ir.ui.view: l10n_br_account.l10n_br_account_invoice_line_form +DEL ir.ui.view: l10n_br_account.l10n_br_account_invoice_filter +DEL ir.ui.view: l10n_br_account.l10n_br_account_product_normal_form_view +DEL ir.ui.view: l10n_br_account.view_l10n_br_account_invoice_tree +DEL ir.ui.view: l10n_br_account.view_l10n_br_tax_definition_form +DEL ir.ui.view: l10n_br_account.view_l10n_br_tax_definition_tree +NEW product.pricelist: product.list0 diff --git a/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis_work.txt b/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis_work.txt new file mode 100644 index 000000000000..59629d29efe6 --- /dev/null +++ b/l10n_br_account/migrations/8.0.1.0.1/openupgrade_analysis_work.txt @@ -0,0 +1,27 @@ +---Fields in module 'l10n_br_account'--- +l10n_br_account / account.fiscal.position / fiscal_category_fiscal_type (char): selection_keys is now 'function' ('False') +l10n_br_account / account.fiscal.position / fiscal_category_fiscal_type (char): type is now 'selection' ('char') +l10n_br_account / account.fiscal.position.template / fiscal_category_fiscal_type (char): selection_keys is now 'function' ('False') +l10n_br_account / account.fiscal.position.template / fiscal_category_fiscal_type (char): type is now 'selection' ('char') +l10n_br_account / l10n_br_account.document_event / cancel_document_event_id (many2one): NEW relation: l10n_br_account.invoice.cancel +l10n_br_account / l10n_br_account.document_event / invalid_number_document_event_id (many2one): NEW relation: l10n_br_account.invoice.invalid.number +l10n_br_account / l10n_br_account.document_event / type (selection) : selection_keys is now '['-1', '0', '1', '10', '11', '12', '13', '2', '3', '4', '5', '6', '7', '8', '9']' ('['-1', '0', '1', '10', '11', '2', '3', '4', '5', '6', '7', '8', '9']') +l10n_br_account / l10n_br_account.product.category / to_state_id (many2one) : NEW relation: res.country.state +# Nothing to do +---XML records in module 'l10n_br_account'--- +NEW account.tax.template: l10n_br_account.tax_template_68 +NEW ir.model.access: l10n_br_account.l10n_br_account_invoice_cce_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_template_manager +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_template_user +DEL ir.model.access: l10n_br_account.l10n_br_tax_definition_user +DEL ir.rule: l10n_br_account.l10n_br_tax_definition_rule +DEL ir.rule: l10n_br_account.l10n_br_tax_definition_template_rule +NEW ir.ui.view: l10n_br_account.l10n_br_account_invoice_line_form +DEL ir.ui.view: l10n_br_account.l10n_br_account_invoice_filter +DEL ir.ui.view: l10n_br_account.l10n_br_account_product_normal_form_view +DEL ir.ui.view: l10n_br_account.view_l10n_br_account_invoice_tree +DEL ir.ui.view: l10n_br_account.view_l10n_br_tax_definition_form +DEL ir.ui.view: l10n_br_account.view_l10n_br_tax_definition_tree +NEW product.pricelist: product.list0 +# Nothing to do \ No newline at end of file From 8dfbab8f68591fa3dc287b6059cb893b75780ddc Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Wed, 24 Aug 2016 22:29:05 -0300 Subject: [PATCH 0545/1549] [FIX] Class name of res.config --- l10n_br_account/models/res_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/models/res_config.py b/l10n_br_account/models/res_config.py index cbf45fca95c0..bcb0dfeaebeb 100644 --- a/l10n_br_account/models/res_config.py +++ b/l10n_br_account/models/res_config.py @@ -6,7 +6,7 @@ from openerp import models, fields -class ResConfig(models.Model): +class ResConfig(models.TransientModel): _inherit = 'account.config.settings' ipbt_token = fields.Char( From 34e5c199d161acb34e1332b270d27e8d790a5e54 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Thu, 1 Sep 2016 18:12:15 -0300 Subject: [PATCH 0546/1549] Change field Fiscal Category to be required. --- l10n_br_account/views/account_fiscal_position_rule_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/views/account_fiscal_position_rule_view.xml b/l10n_br_account/views/account_fiscal_position_rule_view.xml index 82aa3df6cf23..ffe27d0d4df6 100644 --- a/l10n_br_account/views/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/views/account_fiscal_position_rule_view.xml @@ -40,7 +40,7 @@ - + @@ -67,7 +67,7 @@ - + From 3265799d6134dce90e3be0c7b5675e6ed360c5c2 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Tue, 2 Aug 2016 00:53:05 -0300 Subject: [PATCH 0547/1549] [REF] Change Partner Fiscal Type names --- l10n_br_account/data/l10n_br_account_data.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 2fc44efba4da..376f6832b4c1 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -36,7 +36,7 @@ Não Contribuinte - Não Contribuinte + Não Contribuinte PJ @@ -54,7 +54,7 @@ Não Contribuinte - Não Contribuinte + Não Contribuinte PF From e78dc5771f9ea70afa63697b4ef9916846957140 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Tue, 2 Aug 2016 00:49:42 -0300 Subject: [PATCH 0548/1549] =?UTF-8?q?[NEW]=20"N=C3=A3o=20contribuinte"=20d?= =?UTF-8?q?emo=20partners?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/demo/base_demo.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index 53fe5cdf7bd7..df142ac0254f 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -300,5 +300,15 @@ + + + + + + + + + + From 398106dbfe263502d7a871729bb00c7c2206a1d6 Mon Sep 17 00:00:00 2001 From: mstuttgart Date: Thu, 20 Oct 2016 20:25:26 -0200 Subject: [PATCH 0549/1549] [FIX] Removendo botoes de editar e criar da view Cancelar Documento Fiscal --- l10n_br_account/views/l10n_br_account_view.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index 220936a6a145..a972fc0b2ef5 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -11,7 +11,7 @@ l10n_br_account.invoice.cancel.form l10n_br_account.invoice.cancel -
+
+ @@ -45,10 +41,8 @@ l10n_br_account.invoice.cancel - - From 324819303532aff9cea29e3290239d3596f2bf81 Mon Sep 17 00:00:00 2001 From: mstuttgart Date: Thu, 20 Oct 2016 23:47:46 -0200 Subject: [PATCH 0551/1549] =?UTF-8?q?[FIX]=20Corrigido=20erro=20de=20digit?= =?UTF-8?q?a=C3=A7=C3=A3o=20em=20labels=20dos=20campos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account/models/l10n_br_account.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index b52602fedb01..0926609c1aa8 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -22,13 +22,13 @@ class L10nBrAccountCce(models.Model): _name = 'l10n_br_account.invoice.cce' - _description = u'Cartão de Correção no Sefaz' + _description = u'Carta de Correção no Sefaz' # TODO nome de campos devem ser em ingles invoice_id = fields.Many2one('account.invoice', 'Fatura') motivo = fields.Text('Motivo', readonly=True, required=True) sequencia = fields.Char( - 'Sequencia', help=u"Indica a sequencia da carta de correcão") + 'Sequencia', help=u"Indica a sequência da carta de correcão") cce_document_event_ids = fields.One2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') @@ -85,7 +85,7 @@ class L10nBrDocumentEvent(models.Model): help="Reference of the document that produced event.") file_sent = fields.Char('Envio', readonly=True) file_returned = fields.Char('Retorno', readonly=True) - status = fields.Char('Codigo', readonly=True) + status = fields.Char(u'Código', readonly=True) message = fields.Char('Mensagem', readonly=True) create_date = fields.Datetime(u'Data Criação', readonly=True) write_date = fields.Datetime(u'Data Alteração', readonly=True) @@ -153,7 +153,7 @@ class L10nBrAccountFiscalCategory(models.Model): _sql_constraints = [ ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', - u'Já existe uma categoria fiscal com esse código !') + u'Já existe uma categoria fiscal com esse código!') ] @api.multi @@ -368,7 +368,7 @@ class L10nBrAccountPartnerFiscalType(models.Model): name = fields.Char(u'Descrição', size=64) - is_company = fields.Boolean('Pessoa Juridica?') + is_company = fields.Boolean(u'Pessoa Jurídica?') default = fields.Boolean(u'Tipo Fiscal Padrão', default=True) @@ -385,7 +385,7 @@ def _check_default(self): ])) > 1: raise UserError( _(u'Mantenha apenas um tipo fiscal padrão' - u' para Pessoa Fisíca ou para Pessoa Jurídica!')) + u' para Pessoa Física ou para Pessoa Jurídica!')) return True @@ -393,7 +393,7 @@ class L10nBrAccountPartnerSpecialFiscalType(models.Model): _name = 'l10n_br_account.partner.special.fiscal.type' _description = 'Regime especial do parceiro' - name = fields.Char(u'Name', size=20) + name = fields.Char(u'Nome', size=20) class L10nBrAccountCNAE(models.Model): From a6c55d76ae26cac80ff1207e11c169b1d9398770 Mon Sep 17 00:00:00 2001 From: mstuttgart Date: Thu, 20 Oct 2016 23:51:29 -0200 Subject: [PATCH 0552/1549] [FIX] Menu renomeado para NFs Canceladas --- l10n_br_account/views/l10n_br_account_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index efc818687046..6c79dd2b301b 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -11,7 +11,7 @@ l10n_br_account.invoice.cancel.form l10n_br_account.invoice.cancel - + @@ -40,7 +40,7 @@ l10n_br_account.invoice.cancel.tree l10n_br_account.invoice.cancel - + @@ -574,7 +574,7 @@ - + From 555b058889ae05733b226aaadb2f792ed2a102ec Mon Sep 17 00:00:00 2001 From: Michell Stuttgart Date: Fri, 21 Oct 2016 10:37:57 -0200 Subject: [PATCH 0553/1549] [FIX] Adicionado display_name em l10n_br_account.invoice.cancel, l10n_br_account.invoice.cce e l10n_br_account.document_event [FIX] Ajuste nos labels dos campos --- l10n_br_account/models/l10n_br_account.py | 40 ++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 0926609c1aa8..51b36ad4e486 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -28,14 +28,26 @@ class L10nBrAccountCce(models.Model): invoice_id = fields.Many2one('account.invoice', 'Fatura') motivo = fields.Text('Motivo', readonly=True, required=True) sequencia = fields.Char( - 'Sequencia', help=u"Indica a sequência da carta de correcão") + u'Sequência', help=u"Indica a sequência da carta de correcão") cce_document_event_ids = fields.One2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + display_name = fields.Char( + string='Name', compute='_compute_display_name', + ) + + @api.multi + @api.depends('invoice_id.internal_number', 'invoice_id.partner_id.name') + def _compute_display_name(self): + self.ensure_one() + names = ['Fatura', self.invoice_id.internal_number, + self.invoice_id.partner_id.name] + self.display_name = ' / '.join(filter(None, names)) + class L10nBrAccountInvoiceCancel(models.Model): _name = 'l10n_br_account.invoice.cancel' - _description = u'Cancelar Documento Eletrônico no Sefaz' + _description = u'Documento Eletrônico no Sefaz' invoice_id = fields.Many2one('account.invoice', 'Fatura') justificative = fields.Char(string='Justificativa', size=255, @@ -44,6 +56,18 @@ class L10nBrAccountInvoiceCancel(models.Model): 'l10n_br_account.document_event', 'cancel_document_event_id', u'Eventos') + display_name = fields.Char( + string='Nome', compute='_compute_display_name', + ) + + @api.multi + @api.depends('invoice_id.internal_number', 'invoice_id.partner_id.name') + def _compute_display_name(self): + self.ensure_one() + names = ['Fatura', self.invoice_id.internal_number, + self.invoice_id.partner_id.name] + self.display_name = ' / '.join(filter(None, names)) + def _check_justificative(self, cr, uid, ids): for invalid in self.browse(cr, uid, ids): if len(invalid.justificative) < 15: @@ -52,7 +76,7 @@ def _check_justificative(self, cr, uid, ids): _constraints = [( _check_justificative, - 'Justificativa deve ter tamanho minimo de 15 caracteres.', + u'Justificativa deve ter tamanho mínimo de 15 caracteres.', ['justificative'])] @@ -82,7 +106,7 @@ class L10nBrDocumentEvent(models.Model): origin = fields.Char( 'Documento de Origem', size=64, readonly=True, states={'draft': [('readonly', False)]}, - help="Reference of the document that produced event.") + help="Referência ao documento que gerou o evento.") file_sent = fields.Char('Envio', readonly=True) file_returned = fields.Char('Retorno', readonly=True) status = fields.Char(u'Código', readonly=True) @@ -100,9 +124,17 @@ class L10nBrDocumentEvent(models.Model): 'l10n_br_account.invoice.cancel', 'Cancelamento') invalid_number_document_event_id = fields.Many2one( 'l10n_br_account.invoice.invalid.number', u'Inutilização') + display_name = fields.Char(string='Nome', compute='_compute_display_name') _order = 'write_date desc' + @api.multi + @api.depends('company_id.name', 'origin') + def _compute_display_name(self): + self.ensure_one() + names = ['Evento', self.company_id.name, self.origin] + self.display_name = ' / '.join(filter(None, names)) + @api.multi def set_done(self): self.write({'state': 'done', 'end_date': datetime.datetime.now()}) From deba0b0c47e0ab9a6f989d5441bd2146158806c4 Mon Sep 17 00:00:00 2001 From: Michell Stuttgart Date: Fri, 21 Oct 2016 17:26:44 -0200 Subject: [PATCH 0554/1549] [NEW] Adicionado cliente na tela de NFs canceladas --- l10n_br_account/models/l10n_br_account.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 51b36ad4e486..493e32ea03cf 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -50,6 +50,9 @@ class L10nBrAccountInvoiceCancel(models.Model): _description = u'Documento Eletrônico no Sefaz' invoice_id = fields.Many2one('account.invoice', 'Fatura') + partner_id = fields.Many2one('res.partner', + related='invoice_id.partner_id', + string='Cliente') justificative = fields.Char(string='Justificativa', size=255, readonly=True, required=True) cancel_document_event_ids = fields.One2many( From 6d07eb27ad37aa2abbe73791644752986f725ec8 Mon Sep 17 00:00:00 2001 From: Michell Stuttgart Date: Fri, 21 Oct 2016 17:27:52 -0200 Subject: [PATCH 0555/1549] =?UTF-8?q?[NEW]=20Ajuste=20na=20view=20de=20NFs?= =?UTF-8?q?=20canceladas=20e=20Carta=20de=20corre=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/l10n_br_account_view.xml | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index 6c79dd2b301b..c44b82f4192f 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -14,9 +14,16 @@ + + + - + + + + +
@@ -28,20 +35,27 @@
- - + + + + - + + + + +
- - + + l10n_br_account.invoice.cancel.tree l10n_br_account.invoice.cancel - + + @@ -51,14 +65,14 @@ l10n_br_account.invoice.cce.tree l10n_br_account.invoice.cce - + - + - - + + l10n_br_account.fiscal.document l10n_br_account.fiscal.document @@ -266,7 +280,7 @@ l10n_br_account.document_event.form l10n_br_account.document_event -
+
@@ -533,7 +547,7 @@ - Cancelar Documento Eletrônico + Documentos Eletrônicos Cancelados ir.actions.act_window l10n_br_account.invoice.cancel tree,form @@ -569,14 +583,14 @@ - + - - + + From df0efeb63b1bc267a850d4533f5429db9a309718 Mon Sep 17 00:00:00 2001 From: Michell Stuttgart Date: Fri, 21 Oct 2016 17:28:30 -0200 Subject: [PATCH 0556/1549] [FIX] Adicionado name_get em account.invoice para que o mesmo mostre o numero da fatura --- l10n_br_account/models/account_invoice.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 6645967019db..0fa89f781b33 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -115,6 +115,12 @@ def _default_fiscal_document_serie(self): string='Gera Financeiro' ) + @api.multi + def name_get(self): + self.ensure_one() + name = 'Fatura ' + self.internal_number if self.internal_number else '' + return [(self.id, name)] + @api.one @api.constrains('number') def _check_invoice_number(self): From b98c6aba42f2afd9e031b1db1675016b3aed95d9 Mon Sep 17 00:00:00 2001 From: Michell Stuttgart Date: Tue, 25 Oct 2016 17:25:21 -0200 Subject: [PATCH 0557/1549] [FIX] Removido ensure_one --- l10n_br_account/models/account_invoice.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 0fa89f781b33..417014932f22 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -117,9 +117,11 @@ def _default_fiscal_document_serie(self): @api.multi def name_get(self): - self.ensure_one() - name = 'Fatura ' + self.internal_number if self.internal_number else '' - return [(self.id, name)] + lista = [] + for obj in self: + name = obj.internal_number if obj.internal_number else '' + lista.append((obj.id, name)) + return lista @api.one @api.constrains('number') From 5c6d9ef0a59359ab1275d39ae347828fe3ba942d Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Wed, 16 Nov 2016 14:18:05 -0200 Subject: [PATCH 0558/1549] Included Order by Date Maturity in account_move_line. --- l10n_br_account/models/__init__.py | 1 + l10n_br_account/models/account_move_line.py | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 l10n_br_account/models/account_move_line.py diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 5c4be854b760..2b5239eac5cb 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -10,3 +10,4 @@ from . import account_invoice from . import product from . import account_fiscal_position_rule +from . import account_move_line diff --git a/l10n_br_account/models/account_move_line.py b/l10n_br_account/models/account_move_line.py new file mode 100644 index 000000000000..2eeefe058d86 --- /dev/null +++ b/l10n_br_account/models/account_move_line.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-TODAY Akretion +# @author Magno Costa +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from openerp import models + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + _order = 'date_maturity, date desc, id desc' From bcd5188cd014529b81249b1a6bde5f5123615c9b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:47:58 -0300 Subject: [PATCH 0559/1549] removed empty spaces from headers --- l10n_br_account/__init__.py | 2 +- l10n_br_account/__openerp__.py | 2 +- l10n_br_account/models/__init__.py | 2 +- l10n_br_account/models/account.py | 2 +- l10n_br_account/models/account_fiscal_position_rule.py | 2 +- l10n_br_account/models/account_invoice.py | 2 +- l10n_br_account/models/l10n_br_account.py | 2 +- l10n_br_account/models/product.py | 4 ++-- l10n_br_account/models/res_company.py | 2 +- l10n_br_account/models/res_partner.py | 2 +- l10n_br_account/sped/document.py | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index d7428a1bec13..597245aaea0f 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import models diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index fffa8ac2ff04..01fb384aa31c 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 2b5239eac5cb..bd19fccaeae4 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import l10n_br_account diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index faf712d061e7..eb10ffbb49b8 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields, api diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index e6f72508ef8a..7ef1a10397f4 100644 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import time diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 417014932f22..bdb93fe6f66e 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from lxml import etree diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 493e32ea03cf..a1eb015bf983 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # Copyright (C) 2014 KMEE - www.kmee.com.br # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index 049ba8851da3..684a59deca42 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 Gabriel C. Stabel # -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 Gabriel C. Stabel +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index fe4e230e88e5..70e4830c3950 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 23e3a76881ee..65bcc2b83f33 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion # +# Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields, api diff --git a/l10n_br_account/sped/document.py b/l10n_br_account/sped/document.py index 6129b57d61df..4d299bf9b301 100644 --- a/l10n_br_account/sped/document.py +++ b/l10n_br_account/sped/document.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2013 - TODAY Renato Lima - Akretion # +# Copyright (C) 2013 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html From 9cbfcc9311871cb1cf9e70b840418fd4537d98ae Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:54:52 -0300 Subject: [PATCH 0560/1549] [REF] objects in l10n_br_account to use account invoice from core --- l10n_br_account/models/account_invoice.py | 244 ++-------------------- l10n_br_account/models/l10n_br_account.py | 2 +- l10n_br_account/models/product.py | 6 +- l10n_br_account/models/res_partner.py | 6 +- 4 files changed, 22 insertions(+), 236 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index bdb93fe6f66e..aa761e6cf520 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -6,11 +6,8 @@ from openerp import models, fields, api, _ from openerp.addons import decimal_precision as dp -from openerp.exceptions import except_orm from openerp.exceptions import Warning as UserError -from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT - OPERATION_TYPE = { 'out_invoice': 'output', 'in_invoice': 'input', @@ -44,31 +41,6 @@ def _compute_receivables(self): lines |= line self.move_line_receivable_id = (lines).sorted() - @api.model - def _default_fiscal_document(self): - company = self.env['res.company'].browse(self.env.user.company_id.id) - return company.service_invoice_id - - @api.model - def _default_fiscal_document_serie(self): - company = self.env['res.company'].browse(self.env.user.company_id.id) - return company.document_serie_service_id - - issuer = fields.Selection( - [('0', u'Emissão própria'), ('1', 'Terceiros')], 'Emitente', - default='0', readonly=True, states={'draft': [('readonly', False)]}) - internal_number = fields.Char( - 'Invoice Number', size=32, readonly=True, - states={'draft': [('readonly', False)]}, - help="""Unique number of the invoice, computed - automatically when the invoice is created.""") - fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True, - default=PRODUCT_FISCAL_TYPE_DEFAULT) - vendor_serie = fields.Char( - 'Série NF Entrada', size=12, readonly=True, - states={'draft': [('readonly', False)]}, - help=u"Série do número da Nota Fiscal do Fornecedor") move_line_receivable_id = fields.Many2many( 'account.move.line', string='Receivables', compute='_compute_receivables') @@ -76,22 +48,25 @@ def _default_fiscal_document_serie(self): 'l10n_br_account.document.serie', string=u'Série', domain="[('fiscal_document_id', '=', fiscal_document_id),\ ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, - default=_default_fiscal_document_serie) + states={'draft': [('readonly', False)]}) fiscal_document_id = fields.Many2one( 'l10n_br_account.fiscal.document', string='Documento', readonly=True, - states={'draft': [('readonly', False)]}, - default=_default_fiscal_document) + states={'draft': [('readonly', False)]}) fiscal_document_electronic = fields.Boolean( related='fiscal_document_id.electronic', type='boolean', readonly=True, store=True, string='Electronic') + fiscal_document_code = fields.Char( + related='fiscal_document_id.code', + readonly=True, + store=True, + string='Document Code') fiscal_category_id = fields.Many2one( 'l10n_br_account.fiscal.category', 'Categoria Fiscal', readonly=True, states={'draft': [('readonly', False)]}) fiscal_position = fields.Many2one( 'account.fiscal.position', 'Fiscal Position', readonly=True, states={'draft': [('readonly', False)]}, - domain="[('fiscal_category_id','=',fiscal_category_id)]") + ) account_document_event_ids = fields.One2many( 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') @@ -123,135 +98,11 @@ def name_get(self): lista.append((obj.id, name)) return lista - @api.one - @api.constrains('number') - def _check_invoice_number(self): - domain = [] - if self.number: - fiscal_document = self.fiscal_document_id and\ - self.fiscal_document_id.id or False - domain.extend([('internal_number', '=', self.number), - ('fiscal_type', '=', self.fiscal_type), - ('fiscal_document_id', '=', fiscal_document) - ]) - if self.issuer == '0': - domain.extend([ - ('company_id', '=', self.company_id.id), - ('internal_number', '=', self.number), - ('fiscal_document_id', '=', self.fiscal_document_id.id), - ('issuer', '=', '0')]) - else: - domain.extend([ - ('partner_id', '=', self.partner_id.id), - ('vendor_serie', '=', self.vendor_serie), - ('issuer', '=', '1')]) - - invoices = self.env['account.invoice'].search(domain) - if len(invoices) > 1: - raise UserError(u'Não é possível registrar documentos\ - fiscais com números repetidos.') - _sql_constraints = [ ('number_uniq', 'unique(number, company_id, journal_id,\ type, partner_id)', 'Invoice Number must be unique per Company!'), ] - # TODO não foi migrado por causa do bug github.com/odoo/odoo/issues/1711 - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - result = super(AccountInvoice, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if not view_type: - view_id = self.pool.get('ir.ui.view').search( - cr, uid, [('name', '=', 'account.invoice.tree')]) - view_type = 'tree' - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - fiscal_types = eview.xpath("//field[@name='invoice_line']") - for fiscal_type in fiscal_types: - fiscal_type.set( - 'context', "{'type': '%s', 'fiscal_type': '%s'}" % ( - context['type'], - context.get('fiscal_type', 'service'))) - - fiscal_categories = eview.xpath( - "//field[@name='fiscal_category_id']") - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set( - 'domain', - """[('fiscal_type', '=', '%s'), ('type', '=', '%s'), - ('state', '=', 'approved'), - ('journal_type', '=', '%s')]""" - % (context.get('fiscal_type', 'service'), - OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - document_series = eview.xpath( - "//field[@name='document_serie_id']") - for document_serie_id in document_series: - document_serie_id.set( - 'domain', "[('fiscal_type', '=', '%s')]" - % (context.get('fiscal_type', 'service'))) - - if context.get('fiscal_type', False): - delivery_infos = eview.xpath("//group[@name='delivery_info']") - for delivery_info in delivery_infos: - delivery_info.set('invisible', '1') - - result['arch'] = etree.tostring(eview) - - if view_type == 'tree': - doc = etree.XML(result['arch']) - nodes = doc.xpath("//field[@name='partner_id']") - partner_string = _('Customer') - if context.get('type', 'out_invoice') in \ - ('in_invoice', 'in_refund'): - partner_string = _('Supplier') - for node in nodes: - node.set('string', partner_string) - result['arch'] = etree.tostring(doc) - return result - - @api.multi - def action_number(self): - # TODO: not correct fix but required a fresh values before reading it. - self.write({}) - - for invoice in self: - if invoice.issuer == '0': - sequence_obj = self.env['ir.sequence'] - sequence = sequence_obj.browse( - invoice.document_serie_id.internal_sequence_id.id) - invalid_number = self.env[ - 'l10n_br_account.invoice.invalid.number'].search( - [('number_start', '<=', sequence.number_next), - ('number_end', '>=', sequence.number_next), - ('document_serie_id', '=', invoice.document_serie_id.id), - ('state', '=', 'done')]) - - if invalid_number: - raise except_orm( - _(u'Número Inválido !'), - _("O número: %s da série: %s, esta inutilizado") % ( - sequence.number_next, - invoice.document_serie_id.name)) - - seq_number = sequence_obj.get_id( - invoice.document_serie_id.internal_sequence_id.id) - self.write( - {'internal_number': seq_number, 'number': seq_number}) - return True - - # TODO Talvez este metodo substitui o metodo action_move_create @api.multi def finalize_invoice_move_lines(self, move_lines): """ finalize_invoice_move_lines(move_lines) -> move_lines @@ -267,53 +118,19 @@ def finalize_invoice_move_lines(self, move_lines): move_lines = super( AccountInvoice, self).finalize_invoice_move_lines(move_lines) count = 1 + total = len([x for x in move_lines + if x[2]['account_id'] == self.account_id.id]) + number = self.name or self.number result = [] for move_line in move_lines: if move_line[2]['debit'] or move_line[2]['credit']: if move_line[2]['account_id'] == self.account_id.id: - move_line[2]['name'] = '%s/%s' % \ - (self.internal_number, count) + move_line[2]['name'] = '%s/%s-%s' % \ + (number, count, total) count += 1 result.append(move_line) return result - def _fiscal_position_map(self, result, **kwargs): - ctx = dict(self._context) - ctx.update({'use_domain': ('use_invoice', '=', True)}) - if ctx.get('fiscal_category_id'): - kwargs['fiscal_category_id'] = ctx.get('fiscal_category_id') - - if not kwargs.get('fiscal_category_id'): - return result - - company = self.env['res.company'].browse(kwargs.get('company_id')) - - fcategory = self.env['l10n_br_account.fiscal.category'].browse( - kwargs.get('fiscal_category_id')) - result['value']['journal_id'] = fcategory.property_journal.id - if not result['value'].get('journal_id', False): - raise except_orm( - _('Nenhum Diário !'), - _("Categoria fiscal: '%s', não tem um diário contábil para a \ - empresa %s") % (fcategory.name, company.name)) - return self.env['account.fiscal.position.rule'].with_context( - ctx).apply_fiscal_mapping(result, **kwargs) - - @api.multi - def onchange_fiscal_category_id(self, partner_address_id, - partner_id, company_id, - fiscal_category_id): - result = {'value': {'fiscal_position': None}} - return self._fiscal_position_map( - result, partner_id=partner_id, - partner_invoice_id=partner_address_id, company_id=company_id, - fiscal_category_id=fiscal_category_id) - - @api.onchange('fiscal_document_id') - def onchange_fiscal_document_id(self): - if self.issuer == '0': - self.document_serie_id = self.company_id.document_serie_service_id - class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' @@ -343,45 +160,12 @@ def _compute_price(self): 'l10n_br_account.fiscal.category', 'Categoria Fiscal') fiscal_position = fields.Many2one( 'account.fiscal.position', u'Posição Fiscal', - domain="[('fiscal_category_id', '=', fiscal_category_id)]") + ) price_tax_discount = fields.Float( string='Price Tax discount', store=True, digits=dp.get_precision('Account'), readonly=True, compute='_compute_price') - def fields_view_get(self, cr, uid, view_id=None, view_type=False, - context=None, toolbar=False, submenu=False): - - result = super(AccountInvoiceLine, self).fields_view_get( - cr, uid, view_id=view_id, view_type=view_type, context=context, - toolbar=toolbar, submenu=submenu) - - if context is None: - context = {} - - if view_type == 'form': - eview = etree.fromstring(result['arch']) - - if 'type' in context.keys(): - expr = "//field[@name='fiscal_category_id']" - fiscal_categories = eview.xpath(expr) - for fiscal_category_id in fiscal_categories: - fiscal_category_id.set( - 'domain', """[('type', '=', '%s'), - ('journal_type', '=', '%s')]""" - % (OPERATION_TYPE[context['type']], - JOURNAL_TYPE[context['type']])) - fiscal_category_id.set('required', '1') - - product_ids = eview.xpath("//field[@name='product_id']") - for product_id in product_ids: - product_id.set('domain', "[('fiscal_type', '=', '%s')]" % ( - context.get('fiscal_type', 'service'))) - - result['arch'] = etree.tostring(eview) - - return result - @api.model def move_line_get_item(self, line): """ diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index a1eb015bf983..c6eb69464301 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -17,7 +17,7 @@ ('service', u'Serviço'), ] -PRODUCT_FISCAL_TYPE_DEFAULT = PRODUCT_FISCAL_TYPE[0][0] +PRODUCT_FISCAL_TYPE_DEFAULT = None class L10nBrAccountCce(models.Model): diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index 684a59deca42..372e00849108 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -16,8 +16,10 @@ class ProductTemplate(models.Model): service_type_id = fields.Many2one( 'l10n_br_account.service.type', u'Tipo de Serviço') fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', required=True, - default=PRODUCT_FISCAL_TYPE_DEFAULT) + PRODUCT_FISCAL_TYPE, + 'Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT + ) class L10nBrAccountProductFiscalCategory(models.Model): diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 65bcc2b83f33..ddebd7dbae4d 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -4,7 +4,7 @@ from openerp import models, fields, api -from .l10n_br_account import PRODUCT_FISCAL_TYPE +from .l10n_br_account import PRODUCT_FISCAL_TYPE, TYPE class AccountFiscalPositionTemplate(models.Model): @@ -17,7 +17,7 @@ class AccountFiscalPositionTemplate(models.Model): PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', readonly=True, store=True, string='Fiscal Type') type = fields.Selection( - [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') + TYPE, 'Tipo') type_tax_use = fields.Selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], 'Tax Application') @@ -163,7 +163,7 @@ class AccountFiscalPosition(models.Model): PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', readonly=True, store=True, string='Fiscal Type') type = fields.Selection( - [('input', 'Entrada'), ('output', 'Saida')], 'Tipo') + TYPE, 'Tipo') type_tax_use = fields.Selection( [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], 'Tax Application') From 3ed4308562c9715b83fe944c635623a1bb024519 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:57:32 -0300 Subject: [PATCH 0561/1549] move custom invoice workflow from l10n_br_account_product to l10n_br_account --- l10n_br_account/__openerp__.py | 1 + l10n_br_account/account_invoice_workflow.xml | 97 ++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 l10n_br_account/account_invoice_workflow.xml diff --git a/l10n_br_account/__openerp__.py b/l10n_br_account/__openerp__.py index 01fb384aa31c..053ffc2ba97e 100644 --- a/l10n_br_account/__openerp__.py +++ b/l10n_br_account/__openerp__.py @@ -19,6 +19,7 @@ 'data': [ 'l10n_br_account_workflow.xml', 'account_fiscal_position_workflow.xml', + 'account_invoice_workflow.xml', 'data/l10n_br_account.fiscal.document.csv', 'data/l10n_br_account_data.xml', 'views/account_view.xml', diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml new file mode 100644 index 000000000000..fe8843d7d88c --- /dev/null +++ b/l10n_br_account/account_invoice_workflow.xml @@ -0,0 +1,97 @@ + + + + + + + + router + nfe_check() +action_date_assign() +action_number() +action_move_create() + function + + + + + sefaz_export + write({'state':'sefaz_export'}) + function + + + + + sefaz_exception + write({'state':'sefaz_export'}) + function + + + + + open + invoice_validate() + function + + + + + cancel + True + action_cancel() +write({'state':'cancel'}) + function + + + + + + True + invoice_validate + + + + + + + fiscal_document_electronic == True and issuer == '0' + + + + + + True + invoice_cancel + + + + + + True + invoice_open + + + + + + True + invoice_sefaz_exception + + + + + + True + invoice_cancel + + + + + + fiscal_document_electronic == False or issuer == '1' + + + + + + From 7dd6457cb48faca0f28b1ff241c715d36f40b890 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:58:38 -0300 Subject: [PATCH 0562/1549] [REF] views in l10n_br_account --- .../views/account_invoice_view.xml | 122 +----------------- .../views/l10n_br_account_view.xml | 5 +- 2 files changed, 10 insertions(+), 117 deletions(-) diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 7716b93cea09..a4786e7eb6e3 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -14,19 +14,16 @@ + l10n_br_account.invoice.form account.invoice - - - - - - - + @@ -46,80 +43,18 @@ - - onchange_journal_id(journal_id, context) - - - - - - - {'fiscal_category_id': fiscal_category_id} - - - onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) - - - - - - - - - - - - - - - - 1 - - - l10n_br_account.invoice.line.tree - account.invoice.line - - 26 - - - - - - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'in_invoice'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_refund'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'in_refund'), ('fiscal_type', '=', 'service')] - - - - [('type', '=', 'out_invoice'), ('fiscal_type', '=', 'service')] - - l10n_br_account.invoice.supplier.form account.invoice + @@ -139,49 +74,6 @@ - - onchange_journal_id(journal_id, context) - - - {'fiscal_category_id': fiscal_category_id} - - - - - onchange_company_id(company_id, partner_id, type, invoice_line, currency_id, fiscal_category_id) - - - - - - - - - - - - - - - - 1 - - - - - - l10n_br_account.invoice.line.form - account.invoice.line - - 26 - - - - - - - {'parent_fiscal_category_id': parent.fiscal_category_id, 'parent_fiscal_position': parent.fiscal_position} - diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index c44b82f4192f..e840cbd8d8d7 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -2,8 +2,9 @@ - - + + + From e0fdaa52d4d0b047614b71bf0f06518905d6e0d2 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:59:08 -0300 Subject: [PATCH 0563/1549] [REF] tests --- l10n_br_account/test/account_customer_invoice.yml | 2 -- l10n_br_account/test/account_supplier_invoice.yml | 2 -- 2 files changed, 4 deletions(-) diff --git a/l10n_br_account/test/account_customer_invoice.yml b/l10n_br_account/test/account_customer_invoice.yml index 5a0c7c6b8891..8af07f6df3ac 100644 --- a/l10n_br_account/test/account_customer_invoice.yml +++ b/l10n_br_account/test/account_customer_invoice.yml @@ -34,7 +34,6 @@ !record {model: account.invoice, id: account_invoice_customer0, view: view_l10n_br_account_invoice_form}: payment_term: account.account_payment_term_advance partner_id: base.res_partner_3 - fiscal_category_id: fiscal_category_sale reference_type: none name: 'Test Customer Invoice' invoice_line: @@ -45,4 +44,3 @@ - !assert {model: account.invoice, id: account_invoice_customer0}: - state == 'draft' - - fiscal_position.id == ref('fiscal_position_sale') diff --git a/l10n_br_account/test/account_supplier_invoice.yml b/l10n_br_account/test/account_supplier_invoice.yml index 43db7a946320..da001b1599fb 100644 --- a/l10n_br_account/test/account_supplier_invoice.yml +++ b/l10n_br_account/test/account_supplier_invoice.yml @@ -34,7 +34,6 @@ !record {model: account.invoice, id: account_invoice_supplier0, view: view_l10n_br_account_invoice_form}: payment_term: account.account_payment_term_advance partner_id: base.res_partner_3 - fiscal_category_id: fiscal_category_purchase reference_type: none name: 'Test Supplier Invoice' invoice_line: @@ -45,4 +44,3 @@ - !assert {model: account.invoice, id: account_invoice_supplier0}: - state == 'draft' - - fiscal_position.id == ref('fiscal_position_purchase') From 43a59c238af06b2cfcb23bb1120b7ce5edb6dab6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 01:59:36 -0300 Subject: [PATCH 0564/1549] [REF] account invoice report --- l10n_br_account/report/account_invoice_report.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 13b46ab2af50..4c2e353d41b5 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -3,7 +3,6 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from openerp import models, fields -from ..models.l10n_br_account import PRODUCT_FISCAL_TYPE class AccountInvoiceReport(models.Model): @@ -20,20 +19,11 @@ class AccountInvoiceReport(models.Model): ('sefaz_cancelled', u'Cancelado no Sefaz'), ('sefaz_denied', u'Denegada no Sefaz'), ]) - issuer = fields.Selection( - [('0', u'Emissão própria'), - ('1', 'Terceiros')], - string='Emitente', - readonly=True - ) internal_number = fields.Char( string='Invoice Number', size=32, readonly=True, ) - fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal' - ) fiscal_document_electronic = fields.Boolean( string='Electronic', readonly=True, @@ -62,9 +52,7 @@ class AccountInvoiceReport(models.Model): def _select(self): return super(AccountInvoiceReport, self)._select() + ( ", sub.fiscal_category_id as fiscal_category_id" - ", sub.issuer as issuer" ", sub.internal_number as internal_number" - ", sub.fiscal_type as fiscal_type" ", sub.fiscal_document_electronic as fiscal_document_electronic" ", sub.document_serie_id as document_serie_id" ", CASE WHEN sub.revenue_expense = 't' THEN 'Gera Financeiro' " @@ -76,9 +64,7 @@ def _select(self): def _sub_select(self): return super(AccountInvoiceReport, self)._sub_select() + ( ", ail.fiscal_category_id as fiscal_category_id" - ", ai.issuer as issuer" ", ai.internal_number as internal_number" - ", ai.fiscal_type as fiscal_type" ", ai.fiscal_document_electronic as fiscal_document_electronic" ", ai.document_serie_id as document_serie_id" ", ai.revenue_expense as revenue_expense" @@ -89,9 +75,7 @@ def _sub_select(self): def _group_by(self): return super(AccountInvoiceReport, self)._group_by() + ( ", ail.fiscal_category_id" - ", ai.issuer" ", ai.internal_number" - ", ai.fiscal_type" ", ai.fiscal_document_electronic" ", ai.document_serie_id" ", ai.revenue_expense" From bd74881b8b4270df18ea39223533caa2dfc24c7c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 02:36:22 -0300 Subject: [PATCH 0565/1549] pep8 --- l10n_br_account/models/account_invoice.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index aa761e6cf520..5f55f5362973 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -2,11 +2,8 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from lxml import etree - -from openerp import models, fields, api, _ +from openerp import models, fields, api from openerp.addons import decimal_precision as dp -from openerp.exceptions import Warning as UserError OPERATION_TYPE = { 'out_invoice': 'output', From 5f8b22202a9efcba672cbbe01a392e83e321248e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 25 Aug 2016 03:19:06 -0300 Subject: [PATCH 0566/1549] pep8 --- l10n_br_account/models/account_invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 5f55f5362973..9c3113b4e76b 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -115,7 +115,7 @@ def finalize_invoice_move_lines(self, move_lines): move_lines = super( AccountInvoice, self).finalize_invoice_move_lines(move_lines) count = 1 - total = len([x for x in move_lines + total = len([x for x in move_lines if x[2]['account_id'] == self.account_id.id]) number = self.name or self.number result = [] From 9ad6518e2bc478c5139c5a3ac7a3536b8bf9abfb Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Wed, 19 Oct 2016 21:46:55 +0000 Subject: [PATCH 0567/1549] [FIX] account invoice workflow --- l10n_br_account/account_invoice_workflow.xml | 7 +++---- l10n_br_account/models/account_invoice.py | 7 +++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml index fe8843d7d88c..0aec4782a153 100644 --- a/l10n_br_account/account_invoice_workflow.xml +++ b/l10n_br_account/account_invoice_workflow.xml @@ -6,10 +6,9 @@ router - nfe_check() -action_date_assign() -action_number() -action_move_create() + action_date_assign() +action_move_create() +action_number() function diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 9c3113b4e76b..12084d31f517 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -38,6 +38,13 @@ def _compute_receivables(self): lines |= line self.move_line_receivable_id = (lines).sorted() + state = fields.Selection( + selection_add=[ + ('sefaz_export', 'Enviar para Receita'), + ('sefaz_exception', u'Erro de autorização da Receita'), + ('sefaz_cancelled', 'Cancelado no Sefaz'), + ('sefaz_denied', 'Denegada no Sefaz'), + ]) move_line_receivable_id = fields.Many2many( 'account.move.line', string='Receivables', compute='_compute_receivables') From 65ba032804aa367a41f281f338624bcd583584f6 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Tue, 1 Nov 2016 19:22:03 -0200 Subject: [PATCH 0568/1549] Configure access to Fiscal menu. --- l10n_br_account/views/l10n_br_account_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index e840cbd8d8d7..3b5f8b70e9e5 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -4,8 +4,8 @@ - - + + From 0a012528edbe751ecf2f3d82150d015c3618bbd9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 Nov 2016 01:47:50 +0000 Subject: [PATCH 0569/1549] remote domains in invoice views and added buttons to open fiscal documents --- l10n_br_account/models/account_invoice.py | 20 ++++++++++++++++++- .../views/account_invoice_view.xml | 14 +++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 12084d31f517..fc31f2ef2237 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields, api +from openerp import models, fields, api, _ from openerp.addons import decimal_precision as dp OPERATION_TYPE = { @@ -135,6 +135,24 @@ def finalize_invoice_move_lines(self, move_lines): result.append(move_line) return result + @api.multi + def open_fiscal_document(self): + ctx = self.env.context.copy() + ctx.update({ + 'fiscal_document_code': self.fiscal_document_code, + 'type': self.type + }) + return { + 'name': _('Documento Fiscal'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'account.invoice', + 'context': ctx, + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'res_id': self.id + } + class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index a4786e7eb6e3..692bf2050d67 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -46,6 +46,20 @@ + + l10n_br_account.invoice.tree + account.invoice + + + + + - + - @@ -38,7 +37,6 @@ - @@ -69,12 +67,11 @@ - + - @@ -83,7 +80,6 @@ - diff --git a/l10n_br_account/views/account_view.xml b/l10n_br_account/views/account_view.xml index b3bc87050431..f0f727b0c6d2 100644 --- a/l10n_br_account/views/account_view.xml +++ b/l10n_br_account/views/account_view.xml @@ -22,11 +22,21 @@ account.move.line - + + + account.tax + account.tax + + + + + + + diff --git a/l10n_br_account/views/product_view.xml b/l10n_br_account/views/product_view.xml index f2adbda457e4..ce66c4e2a7e9 100644 --- a/l10n_br_account/views/product_view.xml +++ b/l10n_br_account/views/product_view.xml @@ -11,7 +11,7 @@ - + diff --git a/l10n_br_account/views/res_company_view.xml b/l10n_br_account/views/res_company_view.xml index 0915e8636dc1..aded7c366310 100644 --- a/l10n_br_account/views/res_company_view.xml +++ b/l10n_br_account/views/res_company_view.xml @@ -5,12 +5,12 @@ l10n_br_account.company res.company - + - - - - + + + + @@ -21,13 +21,13 @@ - + - - + + - + @@ -35,7 +35,7 @@ - + diff --git a/l10n_br_account/views/res_partner_view.xml b/l10n_br_account/views/res_partner_view.xml index d7fef0dd4472..9350c8fc2700 100644 --- a/l10n_br_account/views/res_partner_view.xml +++ b/l10n_br_account/views/res_partner_view.xml @@ -2,19 +2,31 @@ - - l10n_br_account.fiscal.position.template.form - account.fiscal.position.template - + + l10n_br_account.fiscal.position.tree + account.fiscal.position + - + + + + + + + + l10n_br_account.fiscal.position.form + account.fiscal.position + + + - + - - + + + @@ -22,25 +34,29 @@ - - - - + + + - - - - + + + - - + + @@ -65,81 +81,6 @@
- - l10n_br_account.fiscal.position.tree - account.fiscal.position - - - - - - - - - - l10n_br_account.fiscal.position.form - account.fiscal.position - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - -
-
- l10n_br_account.partner.form res.partner From 44958b13c8b51a0b3a610624772f72ac783064bf Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 14:59:53 -0200 Subject: [PATCH 0575/1549] Updated module version and remove unused dependency --- l10n_br_account/__manifest__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 5a3917da292a..532b1e586a8d 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -8,13 +8,12 @@ 'license': 'AGPL-3', 'author': 'Akretion, Odoo Community Association (OCA)', 'website': 'http://odoobrasil.org', - 'version': '8.0.2.0.0', + 'version': '10.0.1.0.0', 'depends': [ 'l10n_br', 'l10n_br_base', 'account_cancel', 'account_fiscal_position_rule', - # 'web_context_tunnel', ], 'data': [ 'l10n_br_account_workflow.xml', From 19868fec5f75d29a7681a99a10c01858dcd8126c Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 15:01:36 -0200 Subject: [PATCH 0576/1549] Removed Workflows --- l10n_br_account/__manifest__.py | 3 - .../account_fiscal_position_workflow.xml | 79 --------------- l10n_br_account/account_invoice_workflow.xml | 96 ------------------- l10n_br_account/l10n_br_account_workflow.xml | 79 --------------- 4 files changed, 257 deletions(-) delete mode 100644 l10n_br_account/account_fiscal_position_workflow.xml delete mode 100644 l10n_br_account/account_invoice_workflow.xml delete mode 100644 l10n_br_account/l10n_br_account_workflow.xml diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 532b1e586a8d..049a8678da0d 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -16,9 +16,6 @@ 'account_fiscal_position_rule', ], 'data': [ - 'l10n_br_account_workflow.xml', - 'account_fiscal_position_workflow.xml', - 'account_invoice_workflow.xml', 'data/l10n_br_account.fiscal.document.csv', 'data/l10n_br_account_data.xml', 'views/account_view.xml', diff --git a/l10n_br_account/account_fiscal_position_workflow.xml b/l10n_br_account/account_fiscal_position_workflow.xml deleted file mode 100644 index a1ec99a7e81d..000000000000 --- a/l10n_br_account/account_fiscal_position_workflow.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - Fiscal Position Approval - l10n_br_account.fiscal.category - True - - - - - - True - draft - - - - - review - write({'state':'review'}) - function - - - - - approved - write({'state':'approved'}) - function - - - - - unapproved - True - write({'state':'unapproved'}) - function - - - - - - - fiscal_category_review - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_unapproved - - - - diff --git a/l10n_br_account/account_invoice_workflow.xml b/l10n_br_account/account_invoice_workflow.xml deleted file mode 100644 index 0aec4782a153..000000000000 --- a/l10n_br_account/account_invoice_workflow.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - router - action_date_assign() -action_move_create() -action_number() - function - - - - - sefaz_export - write({'state':'sefaz_export'}) - function - - - - - sefaz_exception - write({'state':'sefaz_export'}) - function - - - - - open - invoice_validate() - function - - - - - cancel - True - action_cancel() -write({'state':'cancel'}) - function - - - - - - True - invoice_validate - - - - - - - fiscal_document_electronic == True and issuer == '0' - - - - - - True - invoice_cancel - - - - - - True - invoice_open - - - - - - True - invoice_sefaz_exception - - - - - - True - invoice_cancel - - - - - - fiscal_document_electronic == False or issuer == '1' - - - - - - diff --git a/l10n_br_account/l10n_br_account_workflow.xml b/l10n_br_account/l10n_br_account_workflow.xml deleted file mode 100644 index 3761ab82730c..000000000000 --- a/l10n_br_account/l10n_br_account_workflow.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - Fiscal Category Approval - l10n_br_account.fiscal.category - True - - - - - - True - draft - - - - - review - write({'state':'review'}) - function - - - - - approved - write({'state':'approved'}) - function - - - - - unapproved - True - write({'state':'unapproved'}) - function - - - - - - - fiscal_category_review - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_approved - - - - - - fiscal_category_unapproved - - - - - - fiscal_category_unapproved - - - - From f95738d90e29b55050d8e6295159327092d76f41 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 15:04:57 -0200 Subject: [PATCH 0577/1549] [FIX] imports --- l10n_br_account/models/account.py | 2 +- l10n_br_account/models/account_fiscal_position_rule.py | 4 ++-- l10n_br_account/models/account_invoice.py | 4 ++-- l10n_br_account/models/account_move_line.py | 2 +- l10n_br_account/models/l10n_br_account.py | 4 ++-- l10n_br_account/models/product.py | 2 +- l10n_br_account/models/res_company.py | 4 ++-- l10n_br_account/models/res_config.py | 2 +- l10n_br_account/models/res_partner.py | 2 +- l10n_br_account/report/account_invoice_report.py | 2 +- l10n_br_account/sped/ibpt/deolhonoimposto.py | 4 ++-- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index c9823389a13c..14e41dd43e38 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields, api +from odoo import models, fields, api class AccountJournal(models.Model): diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 7ef1a10397f4..22f878dc1843 100644 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -4,8 +4,8 @@ import time -from openerp import models, fields, api -from openerp.addons import decimal_precision as dp +from odoo import models, fields, api +from odoo.addons import decimal_precision as dp from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index d98a53120c3d..30eb1b03afeb 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -2,8 +2,8 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields, api, _ -from openerp.addons import decimal_precision as dp +from odoo import models, fields, api, _ +from odoo.addons import decimal_precision as dp OPERATION_TYPE = { 'out_invoice': 'output', diff --git a/l10n_br_account/models/account_move_line.py b/l10n_br_account/models/account_move_line.py index 2eeefe058d86..ea325b78c4b5 100644 --- a/l10n_br_account/models/account_move_line.py +++ b/l10n_br_account/models/account_move_line.py @@ -3,7 +3,7 @@ # @author Magno Costa # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models +from odoo import models class AccountMoveLine(models.Model): diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index c643f8704690..363f9b308068 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -5,8 +5,8 @@ import datetime -from openerp import models, fields, api, _ -from openerp.exceptions import Warning as UserError +from odoo import models, fields, api, _ +from odoo.exceptions import Warning as UserError TYPE = [ ('input', u'Entrada'), diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index 372e00849108..7aee75f66077 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -3,7 +3,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields +from odoo import models, fields from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 70e4830c3950..1a4818bffc39 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -2,8 +2,8 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields -from openerp.addons import decimal_precision as dp +from odoo import models, fields +from odoo.addons import decimal_precision as dp COMPANY_FISCAL_TYPE = [ ('1', 'Simples Nacional'), diff --git a/l10n_br_account/models/res_config.py b/l10n_br_account/models/res_config.py index bcb0dfeaebeb..06688e4f88b5 100644 --- a/l10n_br_account/models/res_config.py +++ b/l10n_br_account/models/res_config.py @@ -3,7 +3,7 @@ # @author Luis Felipe Miléo (mileo@kmee.com.br) # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields +from odoo import models, fields class ResConfig(models.TransientModel): diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 0cc9a7a9576d..5e82703efd9f 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields, api +from odoo import models, fields, api from .l10n_br_account import PRODUCT_FISCAL_TYPE, TYPE diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 4c2e353d41b5..49f00e4205f3 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -2,7 +2,7 @@ # Copyright (C) 2016 Magno Costa - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import models, fields +from odoo import models, fields class AccountInvoiceReport(models.Model): diff --git a/l10n_br_account/sped/ibpt/deolhonoimposto.py b/l10n_br_account/sped/ibpt/deolhonoimposto.py index 9159f0c10771..228ce7006dc2 100644 --- a/l10n_br_account/sped/ibpt/deolhonoimposto.py +++ b/l10n_br_account/sped/ibpt/deolhonoimposto.py @@ -36,8 +36,8 @@ def _request(req): return _convert(data) except urllib2.HTTPError, e: - from openerp import _ - from openerp.exceptions import Warning as UserError + from odoo import _ + from odoo.exceptions import Warning as UserError raise UserError(_('Error in the request: {0}'.format(e))) From 7b030b3e09be55fdeca243a84d9198fc101f9479 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 15:12:45 -0200 Subject: [PATCH 0578/1549] Migrated object account.tax --- l10n_br_account/models/account.py | 78 +++++++++++++++---------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index 14e41dd43e38..7a21f6fe4edc 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -11,21 +11,12 @@ class AccountJournal(models.Model): revenue_expense = fields.Boolean('Gera Financeiro') -class AccountTaxComputation(models.Model): - _name = 'account.tax.computation' - - domain = fields.Char(u'Domain', size=64) - name = fields.Char('Name', size=64) - - class AccountTax(models.Model): _inherit = 'account.tax' - domain = fields.Char('Domain', required=True, size=8) - @api.model - def _compute_tax(self, taxes, total_line, product, product_qty, - precision): + def _compute_tax(self, taxes, total_line, + product, product_qty, precision): result = {'tax_discount': 0.0, 'taxes': []} for tax in taxes: @@ -56,31 +47,36 @@ def _compute_tax(self, taxes, total_line, product, product_qty, return result @api.multi - def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None): - """Compute taxes - - Returns a dict of the form:: - - { - 'total': Total without taxes, - 'total_included': Total with taxes, - 'total_tax_discount': Total Tax Discounts, - 'taxes': , - 'total_base': Total Base by tax, - } - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user. - - 'taxes': List with all taxes id. - - 'price_unit': Product price unit. - - 'quantity': Product quantity. - - 'force_excluded': Used to say that we don't want to consider - the value of field price_include of tax. - It's used in encoding by line where you don't - matter if you encoded a tax with that boolean - to True or False. - """ + def compute_all(self, price_unit, currency=None, + quantity=1.0, product=None, partner=None): + """Returns all information required to apply taxes + (in self + their children in case of a tax goup). + + We consider the sequence of the parent for group of taxes. + Eg. considering letters as taxes and alphabetic order as sequence: + [G, B([A, D, F]), E, C] will be computed as [A, D, F, C, E, G] + + Args: + price_unit (float): Product price unit + currency (ResCurrency): Currency + quantity (float): Product quantity + product (ProductProduct): Product + partner (ResPartner): Partner + + Returns: { + 'total_excluded': 0.0, # Total without taxes + 'total_included': 0.0, # Total with taxes + 'taxes': [{ + 'id': int, + 'name': str, + 'amount': float, + 'sequence': int, + 'account_id': int, + 'refund_account_id': int, + 'analytic': boolean, + }] + """ + precision = self.env['decimal.precision'].precision_get('Account') if not currency: if len(self) == 0: @@ -89,7 +85,11 @@ def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, par company_id = self[0].company_id currency = company_id.currency_id taxes = self - result = super(AccountTax, self).compute_all(price_unit, currency=currency, quantity=quantity, product=product, partner=partner) + result = super(AccountTax, self).compute_all(price_unit, + currency=currency, + quantity=quantity, + product=product, + partner=partner) totaldc = 0.0 calculed_taxes = [] @@ -98,14 +98,14 @@ def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, par tax_list = [tx for tx in taxes if tx.id == tax['id']] if tax_list: tax_brw = tax_list[0] - tax['domain'] = tax_brw.domain + tax['group'] = tax_brw.tax_group_id.name tax['type'] = tax_brw.type_tax_use tax['percent'] = tax_brw.amount tax['base_reduction'] = tax_brw.base_reduction tax['amount_mva'] = tax_brw.amount_mva tax['tax_discount'] = tax_brw.tax_discount - common_taxes = [tx for tx in result['taxes'] if tx['domain']] + common_taxes = [tx for tx in result['taxes'] if tx['group']] result_tax = self._compute_tax( common_taxes, result['total_excluded'], product, quantity, precision) From dfccc8eee5dadaf0e325d050478ec10b06cd31ee Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 15:12:53 -0200 Subject: [PATCH 0579/1549] Removed obsolete class AccountAccount --- l10n_br_account/models/account.py | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index 7a21f6fe4edc..788dd5007859 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -159,25 +159,3 @@ def execute(self): fp_id.write( {'cfop_id': fp_template.cfop_id.id}) return result - - -class AccountAccount(models.Model): - _inherit = 'account.account' - - def _check_allow_type_change(self, new_type, context=None): - """Hack to allow re-shaping demo chart of account in demo mode""" - self._cr.execute("""SELECT demo - FROM ir_module_module WHERE name = 'l10n_br_account';""") - if self._cr.fetchone()[0]: - return True - else: - return super(AccountAccount, self)._check_allow_type_change() - - def _check_allow_code_change(self, context=None): - """Hack to allow re-shaping demo chart of account in demo mode""" - self._cr.execute("""SELECT demo - FROM ir_module_module WHERE name = 'l10n_br_account';""") - if self._cr.fetchone()[0]: - return True - else: - return super(AccountAccount, self)._check_allow_code_change() From 63e31820c8c518840c07f5abef126e91f71a3a61 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 18:52:13 -0200 Subject: [PATCH 0580/1549] Migrate l10n_br_account objects --- l10n_br_account/models/l10n_br_account.py | 82 ++++++++++++++--------- 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 363f9b308068..c5fe184f8d0a 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -19,13 +19,6 @@ PRODUCT_FISCAL_TYPE_DEFAULT = None -class AccountTaxCode(models.Model): - _name = 'account.tax.code' - - name = fields.Char(string=u'Name') - code = fields.Char(string=u'Code') - domain = fields.Char(string=u'Domain', size=6) - class L10nBrAccountCce(models.Model): _name = 'l10n_br_account.invoice.cce' @@ -44,10 +37,10 @@ class L10nBrAccountCce(models.Model): ) @api.multi - @api.depends('invoice_id.internal_number', 'invoice_id.partner_id.name') + @api.depends('invoice_id.number', 'invoice_id.partner_id.name') def _compute_display_name(self): self.ensure_one() - names = ['Fatura', self.invoice_id.internal_number, + names = ['Fatura', self.invoice_id.number, self.invoice_id.partner_id.name] self.display_name = ' / '.join(filter(None, names)) @@ -71,10 +64,10 @@ class L10nBrAccountInvoiceCancel(models.Model): ) @api.multi - @api.depends('invoice_id.internal_number', 'invoice_id.partner_id.name') + @api.depends('invoice_id.number', 'invoice_id.partner_id.name') def _compute_display_name(self): self.ensure_one() - names = ['Fatura', self.invoice_id.internal_number, + names = ['Fatura', self.invoice_id.number, self.invoice_id.partner_id.name] self.display_name = ' / '.join(filter(None, names)) @@ -128,7 +121,7 @@ class L10nBrDocumentEvent(models.Model): state = fields.Selection( [('draft', 'Rascunho'), ('send', 'Enviado'), ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], - 'Status', select=True, readonly=True, default='draft') + 'Status', index=True, readonly=True, default='draft') document_event_ids = fields.Many2one( 'account.invoice', 'Documentos') cancel_document_event_id = fields.Many2one( @@ -192,7 +185,7 @@ class L10nBrAccountFiscalCategory(models.Model): ('review', u'Revisão'), ('approved', u'Aprovada'), ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True, default='draft') + track_visibility='onchange', index=True, default='draft') _sql_constraints = [ ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', @@ -404,6 +397,7 @@ def unlink(self): class L10nBrAccountPartnerFiscalType(models.Model): + _name = 'l10n_br_account.partner.fiscal.type' _description = 'Tipo Fiscal de Parceiros' @@ -440,23 +434,51 @@ class L10nBrAccountPartnerSpecialFiscalType(models.Model): class L10nBrAccountCNAE(models.Model): + """Classe para cadastro de Código Nacional de Atividade Econômica. + + Os CNAEs são utilizados no cadastro de empresa para definir o + ramo de atividade primário e secundários das empresas cadastradas no Odoo. + """ + _name = 'l10n_br_account.cnae' _description = 'Cadastro de CNAE' - code = fields.Char(u'Código', size=16, required=True) + code = fields.Char( + u'Código', + size=16, + required=True + ) - name = fields.Char(u'Descrição', size=64, required=True) + name = fields.Char( + u'Descrição', + size=64, + required=True + ) - version = fields.Char(u'Versão', size=16, required=True) + version = fields.Char( + u'Versão', + size=16, + required=True + ) - parent_id = fields.Many2one('l10n_br_account.cnae', 'CNAE Pai') + parent_id = fields.Many2one( + 'l10n_br_account.cnae', + u'CNAE Pai' + ) child_ids = fields.One2many( - 'l10n_br_account.cnae', 'parent_id', 'CNAEs Filhos') + 'l10n_br_account.cnae', + 'parent_id', + u'CNAEs Filhos' + ) internal_type = fields.Selection( - [('view', u'Visualização'), ('normal', 'Normal')], - 'Tipo Interno', required=True, default='normal') + [('view', u'Visualização'), + ('normal', 'Normal')], + u'Tipo Interno', + required=True, + default='normal' + ) @api.multi def name_get(self): @@ -475,9 +497,7 @@ class L10nBrTaxDefinitionTemplate(object): tax_template_id = fields.Many2one('account.tax.template', u'Imposto', required=True) - tax_domain = fields.Char('Tax Domain', related='tax_template_id.domain', - store=True) - + # TODO # tax_code_template_id = fields.Many2one('account.tax.code.template', # u'Código de Imposto') @@ -487,11 +507,13 @@ class L10nBrTaxDefinition(object): tax_id = fields.Many2one('account.tax', string='Imposto', required=True) - tax_domain = fields.Char('Tax Domain', related='tax_id.domain', - store=True) - - tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') + # TODO + # tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') - company_id = fields.Many2one('res.company', string='Company', - related='tax_id.company_id', - store=True, readonly=True) + company_id = fields.Many2one( + 'res.company', + string=u'Company', + related='tax_id.company_id', + store=True, + readonly=True + ) From 372f72e6d982f57d8293249d1b6a8e262cc4f00f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:03:00 -0200 Subject: [PATCH 0581/1549] migrate account.invoice and account.invoice.line --- l10n_br_account/models/account_invoice.py | 157 ++++++++++++---------- 1 file changed, 88 insertions(+), 69 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 30eb1b03afeb..580baecee209 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -22,7 +22,31 @@ class AccountInvoice(models.Model): _inherit = 'account.invoice' - _order = 'date_invoice DESC, internal_number DESC' + _order = 'date_invoice DESC, number DESC' + + @api.one + @api.depends('invoice_line_ids.price_subtotal', + 'tax_line_ids.amount', 'currency_id', + 'company_id', 'date_invoice') + def _compute_amount(self): + self.amount_untaxed = sum(l.price_subtotal + for l in self.invoice_line_ids) + self.amount_tax = sum(t.amount for t in self.tax_line_ids + if not t.tax_id.tax_discount) + self.amount_total = self.amount_untaxed + self.amount_tax + amount_total_company_signed = self.amount_total + amount_untaxed_signed = self.amount_untaxed + if (self.currency_id and self.company_id and + self.currency_id != self.company_id.currency_id): + currency_id = self.currency_id.with_context(date=self.date_invoice) + amount_total_company_signed = currency_id.compute( + self.amount_total, self.company_id.currency_id) + amount_untaxed_signed = currency_id.compute( + self.amount_untaxed, self.company_id.currency_id) + sign = self.type in ['in_refund', 'out_refund'] and -1 or 1 + self.amount_total_company_signed = amount_total_company_signed * sign + self.amount_total_signed = self.amount_total * sign + self.amount_untaxed_signed = amount_untaxed_signed * sign def _compute_receivables(self): lines = self.env['account.move.line'] @@ -90,38 +114,11 @@ def _compute_receivables(self): string='Gera Financeiro' ) - @api.one - @api.constrains('number') - def _check_invoice_number(self): - domain = [] - if self.number: - fiscal_document = self.fiscal_document_id and \ - self.fiscal_document_id.id or False - domain.extend([('internal_number', '=', self.number), - ('fiscal_type', '=', self.fiscal_type), - ('fiscal_document_id', '=', fiscal_document) - ]) - if self.issuer == '0': - domain.extend([ - ('company_id', '=', self.company_id.id), - ('internal_number', '=', self.number), - ('fiscal_document_id', '=', self.fiscal_document_id.id), - ('issuer', '=', '0')]) - else: - domain.extend([ - ('partner_id', '=', self.partner_id.id), - ('vendor_serie', '=', self.vendor_serie), - ('issuer', '=', '1')]) - - invoices = self.env['account.invoice'].search(domain) - if len(invoices) > 1: - raise UserError(u'Não é possível registrar documentos\ - fiscais com números repetidos.') @api.multi def name_get(self): lista = [] for obj in self: - name = obj.internal_number if obj.internal_number else '' + name = obj.number or '' lista.append((obj.id, name)) return lista @@ -142,20 +139,33 @@ def finalize_invoice_move_lines(self, move_lines): :return: the (possibly updated) final move_lines to create for this invoice """ - move_lines = super( - AccountInvoice, self).finalize_invoice_move_lines(move_lines) + move_lines = super(AccountInvoice, self).\ + finalize_invoice_move_lines(move_lines) + count = 1 total = len([x for x in move_lines if x[2]['account_id'] == self.account_id.id]) - number = self.name or self.number - result = [] - for move_line in move_lines: - if move_line[2]['debit'] or move_line[2]['credit']: - if move_line[2]['account_id'] == self.account_id.id: - move_line[2]['name'] = '%s/%s-%s' % \ - (number, count, total) - count += 1 - result.append(move_line) + number = self.name or self.number or self.origin or False + if number: + result = [] + for move_line in move_lines: + if move_line[2]['debit'] or move_line[2]['credit']: + if move_line[2]['account_id'] == self.account_id.id: + move_line[2]['name'] = '%s/%s-%s' % \ + (number, count, total) + count += 1 + result.append(move_line) + else: + result = move_lines + return result + + @api.model + def invoice_line_move_line_get(self): + result = super(AccountInvoice, self).invoice_line_move_line_get() + i = 0 + for l in self.invoice_line_ids: + result[i]['price'] = l.price_subtotal - l.amount_tax_discount + i += 1 return result def _fiscal_position_id_map(self, result, **kwargs): @@ -203,43 +213,52 @@ class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' @api.one - @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', 'quantity', - 'product_id', 'invoice_id.partner_id', 'invoice_id.currency_id', 'invoice_id.company_id') + @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', + 'quantity', 'product_id', 'invoice_id.partner_id', + 'invoice_id.currency_id', 'invoice_id.company_id') def _compute_price(self): currency = self.invoice_id and self.invoice_id.currency_id or None price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) taxes = False + amount_tax_discount = 0.0 if self.invoice_line_tax_ids: - taxes = self.invoice_line_tax_ids.compute_all(price, currency, self.quantity, product=self.product_id, - partner=self.invoice_id.partner_id) - self.price_tax_discount = price_subtotal_signed = taxes['total_excluded'] - taxes[ - 'total_tax_discount'] if taxes else self.quantity * price - self.price_subtotal = taxes['total_excluded'] if taxes else self.quantity * price - if self.invoice_id.currency_id and self.invoice_id.currency_id != self.invoice_id.company_id.currency_id: - price_subtotal_signed = self.invoice_id.currency_id.compute(price_subtotal_signed, - self.invoice_id.company_id.currency_id) + taxes = self.invoice_line_tax_ids.compute_all( + price, currency, + self.quantity, + product=self.product_id, + partner=self.invoice_id.partner_id) + + amount_tax_discount = taxes['total_tax_discount'] + + self.price_subtotal = price_subtotal_signed = \ + taxes['total_excluded'] if taxes else self.quantity * price + + self.amount_tax_discount = amount_tax_discount + + if (self.invoice_id.currency_id and self.invoice_id.company_id and + self.invoice_id.currency_id != + self.invoice_id.company_id.currency_id): + price_subtotal_signed = self.invoice_id.currency_id.compute( + price_subtotal_signed, self.invoice_id.company_id.currency_id) sign = self.invoice_id.type in ['in_refund', 'out_refund'] and -1 or 1 self.price_subtotal_signed = price_subtotal_signed * sign - invoice_line_tax_id = fields.Many2many( - 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', - 'tax_id', string='Taxes', ) # TODO MIG domain=[('parent_id', '=', False)]) fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal') + codmodel_name='l10n_br_account.fiscal.category', + string='Categoria Fiscal' + ) + fiscal_position_id = fields.Many2one( - 'account.fiscal.position', u'Posição Fiscal', - domain="[('fiscal_category_id', '=', fiscal_category_id)]") - price_total = fields.Float( - string='Amount', store=True, digits=dp.get_precision('Account'), - readonly=True, compute='_compute_price') + comodel_name='account.fiscal.position', + string=u'Posição Fiscal', + domain="[('fiscal_category_id', '=', fiscal_category_id)]" + ) - @api.model - def move_line_get_item(self, line): - """ - Overrrite core to fix invoice total account.move - :param line: - :return: - """ - res = super(AccountInvoiceLine, self).move_line_get_item(line) - res['price'] = line.price_tax_discount - return res + amount_tax_discount = fields.Float( + string='Amount Tax discount', + store=True, + digits=dp.get_precision('Account'), + readonly=True, + compute='_compute_price', + oldname='price_tax_discount' + ) From 29458161c73a3e5d067187152d03292ccd633531 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:04:14 -0200 Subject: [PATCH 0582/1549] migrate fiscal position --- l10n_br_account/models/res_partner.py | 308 ++++++++++---------------- 1 file changed, 119 insertions(+), 189 deletions(-) diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 5e82703efd9f..ed23dde2d0f1 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -4,44 +4,76 @@ from odoo import models, fields, api -from .l10n_br_account import PRODUCT_FISCAL_TYPE, TYPE +from .l10n_br_account import TYPE -class AccountFiscalPositionTemplate(models.Model): - _inherit = 'account.fiscal.position.template' +class AccountFiscalPositionAbstract(object): - name = fields.Char('Fiscal Position', size=128, required=True) fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal') - fiscal_category_fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', - readonly=True, store=True, string='Fiscal Type') + 'l10n_br_account.fiscal.category', + u'Categoria Fiscal' + ) + type = fields.Selection( - TYPE, 'Tipo') - type_tax_use = fields.Selection( - [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], - 'Tax Application') - inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') + TYPE, + related='fiscal_category_id.type', + readonly=True, + store=True, + string=u'Fiscal Type' + ) + + inv_copy_note = fields.Boolean( + string=u'Copiar Observação na Nota Fiscal' + ) + asset_operation = fields.Boolean( - 'Operação de Aquisição de Ativo', - help="""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS.""") + string=u'Operação de Aquisição de Ativo', + help=u"""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS.""" + ) + state = fields.Selection( [('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True, default='draft') + ('review', u'Revisão'), + ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], + string='Status', + readonly=True, + track_visibility='onchange', + index=True, + default='draft' + ) + + +class AccountFiscalPositionTaxAbstract(object): + + tax_group_id = fields.Many2one( + comodel_name='account.tax.group', + string=u'Grupo de Impostos', + ) + + @api.onchange('tax_src_id', + 'tax_group_id', + 'position_id') + def onchange_tax_group(self): + type_tax_use = {'input': 'purchase', 'output': 'sale'} + + domain = [('type_tax_use', 'in', + (type_tax_use.get(self.position_id.type), 'none'))] + + if self.tax_group_id: + domain.append(('tax_group_id', '=', self.tax_group_id.id)) + + if self.tax_src_id: + domain.append(('tax_group_id', '=', + self.tax_src_id.tax_group_id.id)) - @api.onchange('type') - def onchange_type(self): - type_tax = {'input': 'purhcase', 'output': 'sale'} - self.type_tax_use = type_tax.get(self.type, 'none') - self.tax_ids = False + return {'domain': {'tax_dest_id': domain, 'tax_src_id': domain}} - @api.onchange('fiscal_category_id') - def onchange_fiscal_category_id(self): - if self.fiscal_category_id: - self.fiscal_category_fiscal_type = self.fiscal_category_id.fiscal_type + +class AccountFiscalPositionTemplate(AccountFiscalPositionAbstract, + models.Model): + _inherit = 'account.fiscal.position.template' def generate_fiscal_position(self, chart_temp_id, tax_template_ref, acc_template_ref, @@ -85,6 +117,21 @@ def generate_fiscal_position(self, chart_temp_id, 'inv_copy_note': position.inv_copy_note, 'asset_operation': position.asset_operation, 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) + for tax in position.tax_ids: + obj_tax_fp.create({ + 'tax_src_id': + tax.tax_src_id and + tax_template_ref.get(tax.tax_src_id.id, False), + 'tax_code_src_id': + tax.tax_code_src_id, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': + position.cfop_id and position.cfop_id.id or False, + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) for tax in position.tax_ids: obj_tax_fp.create({ 'tax_src_id': @@ -110,175 +157,58 @@ def generate_fiscal_position(self, chart_temp_id, return True -class AccountFiscalPositionTaxTemplate(models.Model): +class AccountFiscalPositionTaxTemplate(AccountFiscalPositionTaxAbstract, + models.Model): + _inherit = 'account.fiscal.position.tax.template' tax_src_id = fields.Many2one( - 'account.tax.template', string='Tax Source', required=False) - #tax_code_src_id = fields.Many2one( - # 'account.tax.code.template', string=u'Código Taxa Origem') - #TODO MIG - # tax_src_domain = fields.Char( - # related='tax_src_id.domain', string='Tax Domain') - #tax_code_dest_id = fields.Many2one( - # 'account.tax.code.template', string='Replacement Tax Code') - - @staticmethod - def _tax_domain(tax_src_id, tax_code_src_id): - tax_domain = False - if tax_src_id: - tax_domain = tax_src_id.domain - if tax_code_src_id: - tax_domain = tax_code_src_id.domain - return tax_domain - - #@api.onchange('tax_src_id', 'tax_code_src_id') - def onchange_tax_src_id(self): - if self.tax_code_src_id or self.tax_src_id: - self.tax_src_domain = self._tax_domain( - self.tax_src_id, - self.tax_code_src_id - ) - - -class AccountFiscalPosition(models.Model): + comodel_name='account.tax.template', + string='Tax on Product', + required=False + ) + + +class AccountFiscalPosition(AccountFiscalPositionAbstract, + models.Model): + _inherit = 'account.fiscal.position' - name = fields.Char('Fiscal Position', size=128, required=True) - fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal') - fiscal_category_fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, related='fiscal_category_id.fiscal_type', - readonly=True, store=True, string='Fiscal Type') - type = fields.Selection( - TYPE, 'Tipo') - type_tax_use = fields.Selection( - [('sale', 'Sale'), ('purchase', 'Purchase'), ('all', 'All')], - 'Tax Application') - inv_copy_note = fields.Boolean('Copiar Observação na Nota Fiscal') - asset_operation = fields.Boolean( - 'Operação de Aquisição de Ativo', - help="""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS.""") - state = fields.Selection( - [('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], 'Status', readonly=True, - track_visibility='onchange', select=True, default='draft') - - @api.onchange('type') - def onchange_type(self): - type_tax = {'input': 'purhcase', 'output': 'sale'} - self.type_tax_use = type_tax.get(self.type, 'none') - self.tax_ids = False - - @api.onchange('fiscal_category_id') - def onchange_fiscal_category_id(self): - if self.fiscal_category_id: - self.fiscal_category_fiscal_type = self.fiscal_category_id.fiscal_type - - - #@TODO MIG - - # @api.v7 - # def map_tax(self, cr, uid, fposition_id, taxes, context=None): - # result = [] - # if not context: - # context = {} - # if fposition_id and fposition_id.company_id and\ - # context.get('type_tax_use') in ('sale', 'all'): - # if context.get('fiscal_type', 'product') == 'product': - # company_tax_ids = self.env['res.company').read( - # cr, uid, fposition_id.company_id.id, ['product_tax_ids'], - # context=context)['product_tax_ids'] - # else: - # company_tax_ids = self.env['res.company').read( - # cr, uid, fposition_id.company_id.id, ['service_tax_ids'], - # context=context)['service_tax_ids'] - # - # company_taxes = self.env['account.tax').browse( - # cr, uid, company_tax_ids, context=context) - # if taxes: - # all_taxes = taxes + company_taxes - # else: - # all_taxes = company_taxes - # taxes = all_taxes - # - # if not taxes: - # return [] - # if not fposition_id: - # return map(lambda x: x.id, taxes) - # for t in taxes: - # ok = False - # tax_src = False - # for tax in fposition_id.tax_ids: - # tax_src = tax.tax_src_id and tax.tax_src_id.id == t.id - # tax_code_src = tax.tax_code_src_id and \ - # tax.tax_code_src_id.id == t.tax_code_id.id - # - # if tax_src or tax_code_src: - # if tax.tax_dest_id: - # result.append(tax.tax_dest_id.id) - # ok = True - # if not ok: - # result.append(t.id) - # - # return list(set(result)) - # - # @api.v8 - # def map_tax(self, taxes): - # result = self.env['account.tax'].browse() - # if self.company_id and \ - # self.env.context.get('type_tax_use') in ('sale', 'all'): - # if self.env.context.get('fiscal_type', 'product') == 'product': - # company_taxes = self.company_id.product_tax_ids - # else: - # company_taxes = self.company_id.service_tax_ids - # - # if taxes: - # taxes |= company_taxes - # - # for tax in taxes: - # for t in self.tax_ids: - # if t.tax_src_id == tax or t.tax_code_src_id == tax.tax_code_id: - # if t.tax_dest_id: - # result |= t.tax_dest_id - # break - # else: - # result |= tax - # return result - - -class AccountFiscalPositionTax(models.Model): + @api.model + def map_tax(self, taxes, product=None, partner=None): + result = self.env['account.tax'].browse() + + if self.company_id and \ + self.env.context.get('type_tax_use') in ('sale', 'all'): + if self.env.context.get('fiscal_type', 'product') == 'service': + company_taxes = self.company_id.service_tax_ids + + if taxes: + taxes |= company_taxes + + for tax in taxes: + tax_count = 0 + for t in self.tax_ids: + if (t.tax_src_id == tax or + t.tax_group_id == tax.tax_group_id): + tax_count += 1 + if t.tax_dest_id: + result |= t.tax_dest_id + if not tax_count: + result |= tax + return result + + +class AccountFiscalPositionTax(AccountFiscalPositionTaxAbstract, + models.Model): + _inherit = 'account.fiscal.position.tax' tax_src_id = fields.Many2one( - 'account.tax', string='Tax Source', required=False) - # TODO MIG - tax_code_src_id = fields.Many2one( - 'account.tax.group', u'Código Taxa Origem') - #TODO MIG - #tax_src_domain = fields.Char(related='tax_src_id.domain') - tax_code_dest_id = fields.Many2one( - 'account.tax.group', 'Replacement Tax Code') - - @staticmethod - def _tax_domain(tax_src_id, tax_code_src_id): - tax_domain = False - if tax_src_id: - tax_domain = tax_src_id.domain - if tax_code_src_id: - tax_domain = tax_code_src_id.domain - return tax_domain - - #@api.onchange('tax_src_id', 'tax_code_src_id') - def onchange_tax_src_id(self): - if self.tax_code_src_id or self.tax_src_id: - self.tax_src_domain = self._tax_domain( - self.tax_src_id, - self.tax_code_src_id - ) - + comodel_name='account.tax', + string='Tax on Product', + required=False + ) class ResPartner(models.Model): _inherit = 'res.partner' From 0a1ba800ced212612b6148da8e75225bfea5bbfe Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:04:39 -0200 Subject: [PATCH 0583/1549] migrate fiscal position rule --- .../models/account_fiscal_position_rule.py | 56 ++++++++----------- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 22f878dc1843..68af49061b15 100644 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -9,7 +9,23 @@ from .res_company import COMPANY_FISCAL_TYPE, COMPANY_FISCAL_TYPE_DEFAULT -class AccountFiscalPositionRuleTemplate(models.Model): +class AccountFiscalPositionRuleAbstract(object): + + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', 'Categoria') + fiscal_type = fields.Selection( + COMPANY_FISCAL_TYPE, u'Regime Tributário', required=True, + default=COMPANY_FISCAL_TYPE_DEFAULT) + revenue_start = fields.Float( + 'Faturamento Inicial', digits=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + revenue_end = fields.Float( + 'Faturamento Final', digits=dp.get_precision('Account'), + default=0.00, help="Faixa inicial de faturamento bruto") + + +class AccountFiscalPositionRuleTemplate(AccountFiscalPositionRuleAbstract, + models.Model): _inherit = 'account.fiscal.position.rule.template' partner_fiscal_type_id = fields.Many2many( @@ -28,24 +44,13 @@ class AccountFiscalPositionRuleTemplate(models.Model): column2='partner_special_fiscal_type_id', string='Regime especial' ) - fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria') - fiscal_type = fields.Selection( - COMPANY_FISCAL_TYPE, u'Regime Tributário', required=True, - default=COMPANY_FISCAL_TYPE_DEFAULT) - revenue_start = fields.Float( - 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), - default=0.00, help="Faixa inicial de faturamento bruto") - revenue_end = fields.Float( - 'Faturamento Final', digits_compute=dp.get_precision('Account'), - default=0.00, help="Faixa inicial de faturamento bruto") - parent_id = fields.Many2one( - 'account.fiscal.position.rule.template', 'Regra Pai') - child_ids = fields.One2many( - 'account.fiscal.position.rule.template', 'parent_id', 'Regras Filhas') + + -class AccountFiscalPositionRule(models.Model): +class AccountFiscalPositionRule(AccountFiscalPositionRuleAbstract, + models.Model): + _inherit = 'account.fiscal.position.rule' partner_fiscal_type_id = fields.Many2many( @@ -62,25 +67,10 @@ class AccountFiscalPositionRule(models.Model): column2='partner_special_fiscal_type_id', string='Regime especial' ) - fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria') - fiscal_type = fields.Selection( - COMPANY_FISCAL_TYPE, u'Regime Tributário', required=True, - default=COMPANY_FISCAL_TYPE_DEFAULT) - revenue_start = fields.Float( - 'Faturamento Inicial', digits_compute=dp.get_precision('Account'), - default=0.00, help="Faixa inicial de faturamento bruto") - revenue_end = fields.Float( - 'Faturamento Final', digits_compute=dp.get_precision('Account'), - default=0.00, help="Faixa inicial de faturamento bruto") - parent_id = fields.Many2one('account.fiscal.position.rule', 'Regra Pai') - child_ids = fields.One2many( - 'account.fiscal.position.rule', 'parent_id', 'Regras Filhas') def _map_domain(self, partner, addrs, company, **kwargs): from_country = company.partner_id.country_id.id from_state = company.partner_id.state_id.id - fiscal_rule_parent_id = company.fiscal_rule_parent_id.id partner_fiscal_type_id = partner.partner_fiscal_type_id.id document_date = self.env.context.get('date', time.strftime('%Y-%m-%d')) @@ -111,8 +101,6 @@ def _map_domain(self, partner, addrs, company, **kwargs): ('from_country', '=', False), '|', ('from_state', '=', from_state), ('from_state', '=', False), - '|', ('parent_id', '=', fiscal_rule_parent_id), - ('parent_id', '=', False), '|', ('date_start', '=', False), ('date_start', '<=', document_date), '|', ('date_end', '=', False), From 4bf55a7bc78b9196d467b107ba1b00a63fe3d08d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:05:59 -0200 Subject: [PATCH 0584/1549] removed unused demo data --- l10n_br_account/__manifest__.py | 6 +- l10n_br_account/demo/account.account.csv | 886 ------------------ .../demo/account_financial_demo.xml | 81 -- l10n_br_account/demo/account_fiscal_demo.xml | 46 - l10n_br_account/demo/account_tax_code.xml | 50 - 5 files changed, 1 insertion(+), 1068 deletions(-) delete mode 100644 l10n_br_account/demo/account.account.csv delete mode 100644 l10n_br_account/demo/account_financial_demo.xml delete mode 100644 l10n_br_account/demo/account_fiscal_demo.xml delete mode 100644 l10n_br_account/demo/account_tax_code.xml diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 049a8678da0d..d4b0ffeaaab7 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -31,11 +31,7 @@ 'report/account_invoice_report_view.xml', ], 'demo': [ - #'demo/account.account.csv', - #'demo/account_tax_code.xml', - #'demo/account_financial_demo.xml', - #'demo/account_fiscal_demo.xml', - #'demo/base_demo.xml', + 'demo/base_demo.xml', ], 'test': [ 'test/account_customer_invoice.yml', diff --git a/l10n_br_account/demo/account.account.csv b/l10n_br_account/demo/account.account.csv deleted file mode 100644 index 2fb2286fcce6..000000000000 --- a/l10n_br_account/demo/account.account.csv +++ /dev/null @@ -1,886 +0,0 @@ -"id","code","name","parent_id:id","note","type","user_type:id","company_id:id" -"account.chart0",0,"Plano de Contas",,,"view","account.data_account_type_view","base.main_company" -"account.assets_view",1,"ATIVO","account.chart0"," ","view","account.data_account_type_asset","base.main_company" -"account.nca","1.01","CIRCULANTE","account.assets_view"," ","view","account.data_account_type_asset","base.main_company" -"account.cas","1.01.01","DISPONIBILIDADES","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account.cash","1.01.01.01.00","Caixa","account.cas","Contas que registram valores em dinheiro e em cheques em caixa, recebidos e ainda não depositados, pagáveis irrestrita e imediatamente.","liquidity","account.data_account_type_bank","base.main_company" -"account.bnk","1.01.01.02.00","Bancos","account.cas","Contas que registram disponibilidades, mantidas em instituições financeiras, não classificáveis em outras contas deste plano referencial.","liquidity","account.data_account_type_cash","base.main_company" -"account_demo_101010300","1.01.01.03.00","Recursos no Exterior Decorrentes de Exportação","account.cas","Contas que registram movimentação de recursos em instituições financeiras no exterior, nos termos do art. 1o. da Lei no 11.371/2006.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010400","1.01.01.04.00","Contas Bancárias – Subvenções","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das subvenções, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010500","1.01.01.05.00","Contas Bancárias – Doações","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de recursos de aplicações vinculadas ao objeto das doações, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010600","1.01.01.06.00","Contas Bancárias – Outros Recursos Sujeitos a Restrições","account.cas","Contas que registram disponibilidades, nas instituições imunes ou isentas, de outros recursos sujeitos a restrições, mantidas em instituições financeiras.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010701","1.01.01.07.01","Valores Mobiliários - Mercado de Capitais Interno","account.cas","Contas que registram as aplicações no mercado de capitais do Brasil, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010702","1.01.01.07.02","Valores Mobiliários - Mercado de Capitais Externo","account.cas","Contas que registram as aplicações no mercado de capitais do exterior, de recursos de livre movimentação, cujo vencimento ou resgate venha a ocorrer no curso do ano-calendário subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010800","1.01.01.08.00","Valores Mobiliários – Aplicações de Subvenções ","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de subvenções.","other","account.data_account_type_asset","base.main_company" -"account_demo_101010900","1.01.01.09.00","Valores Mobiliários – Aplicações de Doações","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de recursos oriundos de doações.","other","account.data_account_type_asset","base.main_company" -"account_demo_101011000","1.01.01.10.00","Valores Mobiliários – Aplicações de Outros Recursos Sujeitos a Restrições","account.cas","Contas que correspondem, nas instituições imunes ou isentas, às aplicações financeiras de outros recursos sujeitos a restrições.","other","account.data_account_type_asset","base.main_company" -"account_demo_101011100","1.01.01.11.00","Outras","account.cas"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10103","1.01.03","ESTOQUES","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101030101","1.01.03.01.01","Mercadorias para Revenda","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de mercadorias para revenda, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account.stk","1.01.03.01.02","Insumos (materiais diretos)","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de matérias primas e materiais diretos, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030103","1.01.03.01.03","Produtos em Elaboração","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos em elaboração, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030104","1.01.03.01.04","Produtos Acabados","account_demo_10103","Contas que registram o valor do saldo das contas de estoques de produtos acabados, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030105","1.01.03.01.05","Serviços em andamento","account_demo_10103","Contas que registram o valor do saldo das contas de serviços em andamento, na data de apuração dos resultados. Observar, quanto aos estoques, as orientações contidas na Instrução Normativa SRF no 51, de 1978, e no PN CST no 6, de 1979. ","other","account.data_account_type_asset","base.main_company" -"account_demo_101030106","1.01.03.01.06","Insumos Agropecuários","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de insumos agropecuários, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030107","1.01.03.01.07","Produtos Agropecuários em Formação","account_demo_10103","Contas que registram, nas empresas com atividade rural, o valor do saldo das contas de produtos agropecuários em formação, na data de apuração dos resultados.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030108","1.01.03.01.08","Produtos Agropecuários Acabados","account_demo_10103","Contas que registra, nas empresas com atividade rural, o valor do saldo das contas de estoques de produtos agropecuários acabados, na data de apuração do resultado.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030200","1.01.03.02.00","Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar o estoque de imóveis destinados à venda existente na data da apuração dos resultados. Atenção: as construções em andamento de imóveis destinados à venda devem ser incluídas na conta Construções em Andamento de Imóveis Destinados à Venda","other","account.data_account_type_asset","base.main_company" -"account_demo_101030201","1.01.03.02.01","Construções em Andamento de Imóveis Destinados à Venda","account_demo_10103","Contas utilizadas pela pessoa jurídica que exerce atividade imobiliária para indicar os imóveis em construção para futura comercialização","other","account.data_account_type_asset","base.main_company" -"account_demo_101030300","1.01.03.03.00","Estoques Destinados à Doação","account_demo_10103","Contas que registram, nas instituições imunes ou isentas, estoques destinados à doação.","other","account.data_account_type_asset","base.main_company" -"account_demo_101030400","1.01.03.04.00","Outras","account_demo_10103"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10105","1.01.05","CRÉDITOS","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101050100","1.01.05.01.00","Adiantamentos a Fornecedores ","account_demo_10105","Contas que registram aos adiantamentos feitos a fornecedores de matérias-primas ou mercadorias para revenda.","other","account.data_account_type_asset","base.main_company" -"account.a_recv","1.01.05.02.00","Clientes","account_demo_10105","Contas que registram as contas a receber com vencimento até o final do ano-calendário subseqüente.","receivable","account.data_account_type_receivable","base.main_company" -"account_demo_101050300","1.01.05.03.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050400","1.01.05.04.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10105","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização no exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM nº 273, de 20 de agosto de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050501","1.01.05.05.01","Imposto de Renda a Recuperar","account_demo_10105","Contas correspondentes ao Imposto de REnda a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account.ova","1.01.05.05.02","IPI a Recuperar","account_demo_10105","Contas correspondentes ao IPI a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050503","1.01.05.05.03","PIS e COFINS a Recuperar","account_demo_10105","Contas correspondentes ao PIS e à Cofins a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050504","1.01.05.05.04","CSLL a Recuperar","account_demo_10105","Contas correspondentes à CSLL a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050505","1.01.05.05.05","ICMS e Contribuições a Recuperar","account_demo_10105","Contas correspondentes ao ICMS a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050506","1.01.05.05.06","Tributos Municipais a Recuperar","account_demo_10105","Contas correspondentes a tributos municipais a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050590","1.01.05.05.90","Outros Impostos e Contribuições a Recuperar","account_demo_10105","Contas correspondentes a outros impostos a recuperar no final do período de apuração.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050600","1.01.05.06.00","Créditos por Contribuições e Doações","account_demo_10105","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações.","other","account.data_account_type_asset","base.main_company" -"account_demo_101050700","1.01.05.07.00","Outras","account_demo_10105"," ","other","account.data_account_type_asset","base.main_company" -"account_demo_10107","1.01.07","DESPESAS DO EXERCÍCIO SEGUINTE","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101070100","1.01.07.01.00","Despesas do Exercício Seguinte","account_demo_10107","Contas correspondentes a pagamentos antecipados, cujos benefícios ou prestação de serviços à pessoa jurídica ocorrerão durante o exercício seguinte. São valores relativos a despesas que efetivamente pertencem ao exercício seguinte.","other","account.data_account_type_asset","base.main_company" -"account_demo_101070200","1.01.07.02.00","Outras Contas","account_demo_10107","Incluir, dentre outras, a soma das contas/subcontas do Circulante que registram, dentre outras, a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_10109","1.01.09","CONTAS RETIFICADORAS","account.nca"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_101090101","1.01.09.01.01","(-) Duplicatas Descontadas","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" -"account_demo_101090103","1.01.09.01.03","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090105","1.01.09.01.05","(-) Provisão para Ajuste do Estoque ao Valor de Mercado","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor de mercado que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090107","1.01.09.01.07","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_101090190","1.01.09.01.90","(-) Outras Contas Retificadoras","account_demo_10109","Contas que registram parcelas a serem subtraídas do circulante que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account.fas","1.07","NÃO CIRCULANTE","account.assets_view",,"view","account.data_account_type_asset","base.main_company" -"account_demo_10700","1.07.00","REALIZÁVEL A LONGO PRAZO ","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account.o_income","1.07.00.01.00","Clientes","account_demo_10700","Contas que registram os créditos a receber de terceiros, relativos a eventuais contas de clientes, títulos a receber, adiantamentos, etc., com prazo de recebimento posterior ao exercício seguinte à data do balanço.","receivable","account.data_account_type_receivable","base.main_company" -"account_demo_107000200","1.07.00.02.00","Créditos com Pessoas Ligadas (Físicas/Jurídicas)","account_demo_10700","Contas correspondentes a vendas, adiantamentos ou empréstimos a sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000300","1.07.00.03.00","Valores Mobiliários","account_demo_10700","Contas correspondentes às aplicações em títulos com vencimento posterior ao exercício seguinte, e investimentos em outras sociedades que não tenham caráter permanente, inclusive os feitos com incentivos fiscais.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000400","1.07.00.04.00","Depósitos Judiciais","account_demo_10700","Contas que registram aos depósitos judiciais efetuados, a qualquer título, pendentes de decisão.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000500","1.07.00.05.00","Créditos Fiscais CSLL – Diferenças Temporárias e Base de Cálculo Negativa","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes da base de cálculo negativa, relativos à CSLL, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000600","1.07.00.06.00","Créditos Fiscais IRPJ – Diferenças Temporárias e Prejuízos Fiscais","account_demo_10700","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos créditos fiscais com realização após o exercício seguinte e das diferenças temporárias, inclusive as decorrentes dos prejuízos fiscais, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000700","1.07.00.07.00","Créditos por Contribuições e Doações","account_demo_10700","Contas que registram, nas instituições imunes ou isentas, créditos por contribuições ou doações com vencimento após final do exercício subseqüente.","other","account.data_account_type_asset","base.main_company" -"account_demo_107000800","1.07.00.08.00","Outras Contas","account_demo_10700","Contas que registram, entre outras, a soma das contas/subcontas do Realizável a Longo Prazo que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009000","1.07.00.90.00","(-) Duplicatas Descontadas","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das duplicatas descontadas que retificam este grupo","other","account.data_account_type_asset","base.main_company" -"account_demo_107009300","1.07.00.93.00","(-) Provisões para Créditos de Liquidação Duvidosa","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para créditos de liquidação duvidosa que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009500","1.07.00.95.00","(-) Provisões para Ajuste ao Valor Provável de Realização","account_demo_10700","Contas que registram parcelas a serem subtraídas do circulante, correspondentes a valores das provisões para ajuste do estoque ao valor provável de realização que retificam este grupo.","other","account.data_account_type_asset","base.main_company" -"account_demo_107009700","1.07.00.97.00","(-) Outras Contas Retificadoras","account_demo_10700","Contas que registram parcelas a serem subtraídas do Realizável a Longo Prazo que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_10701","1.07.01","INVESTIMENTOS","account.fas",,"view","account.data_account_type_asset","base.main_company" -"account_demo_107010100","1.07.01.01.00","Participações Permanentes em Coligadas ou Controladas","account_demo_10701","Contas que registram investimentos permanentes, na forma de participação em outras sociedades coligadas e/ou controladas, ainda que se trate de investimento não relevante.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010200","1.07.01.02.00","Investimentos Decorrentes de Incentivos Fiscais","account_demo_10701","Contas que registram os investimentos decorrentes de incentivos fiscais representados por ações novas da Embraer ou de empresas nacionais de informática ou por participação direta decorrente da troca do CI – Certificado de Investimento por ações pertencentes às carteiras de Fundos (Finor, Finam e Fiset). Inclui-se a aquisição de quotas representativas de direitos de comercialização sobre produção de obras audiovisuais cinematográficas brasileiras de produção independente, com projetos previamente aprovados pelo Ministério da Cultura, realizada no mercado de capitais, em ativos previstos em lei e autorizados pela Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_asset","base.main_company" -"account_demo_107010300","1.07.01.03.00","Outros Investimentos","account_demo_10701","Contas correspondentes aos direitos de qualquer natureza que não se destinem à manutenção da atividade da companhia ou da empresa e que não se classifiquem no ativo circulante ou realizável a longo prazo, tais como: o imóvel não utilizado na exploração ou na manutenção das atividades da empresa e que não se destine à revenda, e os recursos florestais destinados à proteção do solo ou à preservação da natureza, entre outros.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010400","1.07.01.04.00","Ágios em Investimentos","account_demo_10701","Contas correspondentes ao ágio por diferença de valor de mercado dos bens, por valor de rentabilidade futura, por fundo de comércio, intangíveis, ou outras razões econômicas.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010500","1.07.01.05.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010600","1.07.01.06.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10701","Contas/subcontas dos investimentos que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107010700","1.07.01.07.00","(-) Deságios e Provisão para Perdas Prováveis em Investimentos","account_demo_10701","Contas que registram: -a) o deságio por diferença de valor de mercado dos bens, por valor de rentabilidade futura e por fundo de comércio, intangíveis, ou outras razões econômicas; -b) o valor correspondente à provisão para perdas em investimentos registrados pelo método de custo e à provisão para perdas em investimentos avaliados pelo método da equivalência patrimonial, sendo que, neste último caso, deve ser informado somente o valor das perdas efetivas ou potenciais já previstas, mas não reconhecidas contabilmente pela coligada ou controlada.","other","account.data_account_type_asset","base.main_company" -"account_demo_107019000","1.07.01.90.00","Outras Contas","account_demo_10701","Contas que registram bens e direitos classificáveis em Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_107019700","1.07.01.97.00","(-) Outras Contas Retificadoras","account_demo_10701","Contas que registram parcelas a serem subtraídas de Investimentos que não possam ser classificadas nos itens precedentes.","other","account.data_account_type_asset","base.main_company" -"account_demo_10704","1.07.04","IMOBILIZADO","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107040100","1.07.04.01.00","Terrenos","account_demo_10704","Contas que registram os terrenos de propriedade da pessoa jurídica utilizados nas operações, ou seja, onde se localizam a fábrica, os depósitos, os escritórios, as filiais, as lojas, etc., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: o valor do terreno onde está em construção uma nova unidade que ainda não esteja em operação também deve ser informado nesta conta.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040200","1.07.04.02.00","Edifícios e Construções","account_demo_10704","Contas que registram os edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: As construções em andamento devem ser informadas na conta Construções em Andamento.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040201","1.07.04.02.01"," Construções em Andamento","account_demo_10704","Contas que registram as construções em andamento de edifícios, melhoramentos e obras integradas aos terrenos, e os serviços e instalações provisórias, necessários à construção e ao andamento das obras, tais como: limpeza do terreno, serviços topográficos, sondagens de reconhecimento, terraplenagem, e outras similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040300","1.07.04.03.00","Equipamentos, Máquinas e Instalações Industriais","account_demo_10704","Contas que registram os equipamentos, máquinas e instalações industriais utilizados no processo de produção da pessoa jurídica, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040400","1.07.04.04.00","Veículos","account_demo_10704","Contas que registram os veículos de propriedade da pessoa jurídica. inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens -Atenção: Os veículos de uso direto na produção, como empilhadeiras e similares, devem ser informados na conta Equipamentos, Máquinas e Instalações Industriais.","other","account.data_account_type_asset","base.main_company" -"account_demo_107040401","1.07.04.04.01","Embarcações","account_demo_10704","Contas que registram as embarcações de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040402","1.07.04.04.02","Aeronaves","account_demo_10704","Contas que registram as aeronaves de propriedade da pessoa jurídica., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040500","1.07.04.05.00","Móveis, Utensílios e Instalações Comerciais","account_demo_10704","Contas que registram os móveis, utensílios e instalações comerciais., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040600","1.07.04.06.00","Recursos Minerais","account_demo_10704","Contas que registram os direitos de exploração de jazidas de minério, de pedras preciosas, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040700","1.07.04.07.00","Florestamento e Reflorestamento","account_demo_10704","Contas que registram os recursos florestais destinados à exploração dos respectivos frutos e ao corte para comercialização, consumo ou industrialização, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107040800","1.07.04.08.00","Direitos Contratuais de Exploração de Florestas","account_demo_10704","Contas que registram os direitos contratuais de exploração de florestas com prazo de exploração superior a dois anos., inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account.xfa","1.07.04.09.00","Outras Imobilizações","account_demo_10704","Contas que registram outras imobilizações, tais como: benfeitorias em propriedades arrendadas que se incorporam ao imóvel arrendado e revertem ao proprietário do imóvel ao final da locação, adiantamentos para inversões fixas, reprodutores, matrizes e as culturas permanentes da atividade rural, e similares, inclusive os decorrentes de operações que transfiram à companhia os benefícios, riscos e controle desses bens","other","account.data_account_type_asset","base.main_company" -"account_demo_107041000","1.07.04.10.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107041100","1.07.04.11.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10704","Contas/subcontas do imobilizado que registram a correção monetária especial na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107041200","1.07.04.12.00","(-) Depreciações, Amortizações e Quotas de Exaustão","account_demo_10704","Contas que registram as depreciações, amortizações e quotas de exaustão das contas do imobilizado.","other","account.data_account_type_asset","base.main_company" -"account_demo_107049000","1.07.04.90.00","(-) Outras Contas Redutoras do Imobilizado","account_demo_10704","Outras contas redutoras do Imobilizado, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" -"account_demo_10705","1.07.05","INTANGÍVEL","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107050100","1.07.05.01.00","Concessões","account_demo_10705","Contas que registram os custos com aquisição de concessões","other","account.data_account_type_asset","base.main_company" -"account_demo_107050300","1.07.05.03.00","Marcas e Patentes","account_demo_10705","Contas que registram os custos com aquisição de marcas e patentes","other","account.data_account_type_asset","base.main_company" -"account_demo_107050500","1.07.05.05.00","Direitos Autorais","account_demo_10705","Contas que registram os custos com aquisição de direitos autorais","other","account.data_account_type_asset","base.main_company" -"account_demo_107050700","1.07.05.07.00","Fundo de Comércio","account_demo_10705","Contas que registram os custos com aquisição de fundos de comércio","other","account.data_account_type_asset","base.main_company" -"account_demo_107050900","1.07.05.09.00","Software ou Programas de Computador","account_demo_10705","Contas que registram os custos com aquisição/desenvolvimento de programas de computador","other","account.data_account_type_asset","base.main_company" -"account_demo_107051100","1.07.05.11.00","Franquias","account_demo_10705","Contas que registram os custos com aquisição de franquias","other","account.data_account_type_asset","base.main_company" -"account_demo_107051300","1.07.05.13.00","Desenvolvimento de Produtos","account_demo_10705","Contas que registram os custos com o desenvolvimento de novos produtos","other","account.data_account_type_asset","base.main_company" -"account_demo_107051500","1.07.05.15.00","Outras","account_demo_10705","Contas que registram os custos com aquisição de outros itens classificáveis no intangível","other","account.data_account_type_asset","base.main_company" -"account_demo_107059000","1.07.05.90.00","(-) Amortização do Intangível","account_demo_10705","Contas correspondentes à amortização das contas do ativo intangível","other","account.data_account_type_asset","base.main_company" -"account_demo_107059700","1.07.05.97.00","(-) Outras Contas Redutoras do Intangível","account_demo_10705","Outras contas redutoras o intangível, inclusive a provisão para perda decorrente da análise de recuperação (art. 183, §3º, da Lei 6.404/76) ","other","account.data_account_type_asset","base.main_company" -"account_demo_10707","1.07.07","DIFERIDO","account.fas"," ","view","account.data_account_type_asset","base.main_company" -"account_demo_107070100","1.07.07.01.00","Despesas Pré-Operacionais ou Pré-Industriais","account_demo_10707","Contas que registram os gastos de organização e administração, encargos financeiros líquidos, estudos, projetos e detalhamentos, juros a acionista na fase de implantação e gastos preliminares de operação. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070200","1.07.07.02.00","Despesas com Pesquisas Científicas ou Tecnológicas","account_demo_10707","Contas que registram os gastos com pesquisa científica ou tecnológica. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070300","1.07.07.03.00","Demais Aplicações em Despesas Amortizáveis","account_demo_10707","Contas que registram os gastos com pesquisas e desenvolvimento de produtos, com a implantação de sistemas e métodos e com reorganização. O saldo existente em 31 de dezembro de 2008 no ativo diferido que, pela sua natureza, não puder ser alocado a outro grupo de contas, poderá permanecer no ativo sob essa classificação até sua completa amortização, sujeito à análise sobre a recuperação","other","account.data_account_type_asset","base.main_company" -"account_demo_107070400","1.07.07.04.00","Correção Monetária - Diferença IPC/BTNF (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária relativa à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal, na forma estabelecida nos arts. 32 e 33 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107070500","1.07.07.05.00","Correção Monetária Especial (Lei no 8.200/1991)","account_demo_10707","Contas/subcontas do ativo diferido que registram a correção monetária especial, na forma do art. 44 do Decreto no 332, de 1991.","other","account.data_account_type_asset","base.main_company" -"account_demo_107070600","1.07.07.06.00","(-) Amortização do Diferido","account_demo_10707","Contas correspondentes à amortização das contas do ativo diferido.","other","account.data_account_type_asset","base.main_company" -"account.bal",2,"PASSIVO","account.chart0"," ","view","l10n_br.passivo","base.main_company" -"account.cli","2.01","CIRCULANTE","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account.liabilities_view","2.01.01","OBRIGAÇÕES DE CURTO PRAZO","account.cli"," ","view","l10n_br.passivo","base.main_company" -"account.a_pay","2.01.01.01.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor a pagar correspondentes à compra de matérias-primas, bens, insumos e mercadorias.(Podem ser informados, também, os adiantamentos de clientes efetuados até 31.12.2008)","payable","account.data_account_type_payable","base.main_company" -"account_demo_201010101","2.01.01.01.01","Adiantamentos de Clientes","account.liabilities_view","Contas que registram o valor correspondente a adiantamentos de clientes.","other","l10n_br.passivo","base.main_company" -"account_demo_201010201","2.01.01.02.01","Financiamentos a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Curto Prazo – Outros. ","other","l10n_br.passivo","base.main_company" -"account_demo_201010202","2.01.01.02.02","Arrendamento Mercantil (Financeiro) a Curto Prazo - Sistema Financeiro Nacional","account.liabilities_view","Contas que registram as obrigações de curto prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" -"account_demo_201010203","2.01.01.02.03","Financiamentos a Curto Prazo - Outros","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta .","other","l10n_br.passivo","base.main_company" -"account_demo_201010204","2.01.01.02.04","Financiamentos a Curto Prazo - Exterior","account.liabilities_view","Contas que registram os credores por financiamentos a curto prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Curto Prazo – Exterior","other","l10n_br.passivo","base.main_company" -"account_demo_201010205","2.01.01.02.05","Arrendamento Mercantil (Financeiro) a Curto Prazo - Exterior","account.liabilities_view","Contas que registram as obrigações das pessoas jurídicas relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" -"account.iva","2.01.01.03.01","IPI a Recolher","account.liabilities_view","Contas correspondentes ao IPI a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010302","2.01.01.03.02","ICMS e Contribuições a Recolher","account.liabilities_view","Contas correspondentes ao ICMS a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010303","2.01.01.03.03","Tributos Municipais a Recolher","account.liabilities_view","Contas correspondentes a tributos municipais a Recolher no final do período de apuração.","other","l10n_br.passivo","base.main_company" -"account_demo_201010400","2.01.01.04.00","FGTS a Recolher","account.liabilities_view","Contas que registram o valor do FGTS a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010500","2.01.01.05.00","PIS e COFINS a Recolher","account.liabilities_view","Contas que registram o valor do PIS e da COFINS a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010600","2.01.01.06.00","Contribuições Previdenciárias a Recolher","account.liabilities_view","Contas que registram o valor das Contribuições Previdenciárias a recolher","other","l10n_br.passivo","base.main_company" -"account_demo_201010690","2.01.01.06.90","Outros tributos a recolher","account.liabilities_view","Contas correspondentes a tributos a recolher não classificáveis em contas específicas.","other","l10n_br.passivo","base.main_company" -"account_demo_201010700","2.01.01.07.00","Salários a Pagar","account.liabilities_view","Contas que registram o valor correspondente aos salários, ordenados, horas extras, adicionais e prêmios a serem pagos no exercício subseqüente.","other","l10n_br.passivo","base.main_company" -"account_demo_201010800","2.01.01.08.00","Dividendos Propostos ou Lucros Creditados","account.liabilities_view","Contas correspondentes aos dividendos aprovados pela Assembléia, creditados aos acionistas ou propostos pela administração da pessoa jurídica na data do balanço, como parte da destinação proposta para os lucros.","other","l10n_br.passivo","base.main_company" -"account_demo_201010900","2.01.01.09.00","Provisão para a Contribuição Social sobre o Lucro Líquido","account.liabilities_view","Conta correspondente à provisão para a contribuição social sobre o lucro líquido a pagar.","other","l10n_br.passivo","base.main_company" -"account_demo_201011000","2.01.01.10.00","Provisão para o Imposto de Renda","account.liabilities_view","Conta correspondente ao saldo a pagar da provisão para o imposto de renda.","other","l10n_br.passivo","base.main_company" -"account_demo_201011100","2.01.01.11.00","Débitos Fiscais CSLL – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_201011200","2.01.01.12.00","Débitos Fiscais IRPJ – Diferenças Temporárias","account.liabilities_view","As companhias abertas, obrigatoriamente, deverão informar, nestas contas, o valor dos débitos fiscais com realização no exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 20 de agosto de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_201011210","2.01.01.12.10","Provisões de Natureza Fiscal","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza fiscal.","other","l10n_br.passivo","base.main_company" -"account_demo_201011220","2.01.01.12.20","Provisões de Natureza Trabalhista","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza trabalhista.","other","l10n_br.passivo","base.main_company" -"account_demo_201011230","2.01.01.12.30","Provisões de Natureza Cível","account.liabilities_view","Contas que registram, a partir de 01.01.2008, outras provisões de natureza cível.","other","l10n_br.passivo","base.main_company" -"account_demo_201011240","2.01.01.12.40","Doações e Subvenções para Investimentos","account.liabilities_view","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_201011300","2.01.01.13.00","Outras Contas","account.liabilities_view","Contas que registram comissões a pagar ou provisionadas de retenções contratuais, de obrigações decorrentes do fornecimento ou utilização de serviços (energia elétrica, água, telefone, propaganda, honorários profissionais de terceiros, aluguéis) e outras contas não citadas nas contas anteriores. Atenção: também são incluídas, nesta conta, as provisões para registro de obrigações, tais como as provisões para: férias, gratificações a empregados (inclusive encargos sociais a pagar e FGTS a recolher sobre tais provisões), e outras de natureza semelhante, ainda que não dedutíveis.","other","l10n_br.passivo","base.main_company" -"account_demo_201019000","2.01.01.90.00","(-) Contas Retificadoras","account.liabilities_view","Contas correspondentes às contas retificadoras do passivo circulante.","other","l10n_br.passivo","base.main_company" -"account_demo_203","2.03","NÃO-CIRCULANTE","account.bal",,"view","l10n_br.passivo","base.main_company" -"account_demo_20301","2.03.01","OBRIGAÇÕES A LONGO PRAZO","account_demo_203"," ","view","l10n_br.passivo","base.main_company" -"account_demo_203010100","2.03.01.01.00","Fornecedores","account_demo_20301","Contas que registram valores a pagar relativos à compra de matérias-primas, bens, insumos e mercadorias e o valor correspondente a adiantamentos de clientes, com prazo de pagamento posterior ao exercício seguinte à data do balanço.","payable","account.data_account_type_payable","base.main_company" -"account_demo_203010201","2.03.01.02.01","Financiamentos a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos junto ao Sistema Financeiro Nacional, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) devem ser informadas na conta Financiamentos a Longo Prazo – Brasil – Outros ","other","l10n_br.passivo","base.main_company" -"account_demo_203010202","2.03.01.02.02","Arrendamento Mercantil (Financeiro) a Longo Prazo - Sistema Financeiro Nacional","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas integrantes do Sistema Financeiro Nacional","other","l10n_br.passivo","base.main_company" -"account_demo_203010203","2.03.01.02.03","Financiamentos a Longo Prazo – Brasil - Outros","account_demo_20301","Contas que registram os credores por financiamentos de longo prazo, obtidos no Brasil, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de financiamentos obtidos com pessoas físicas ou outras empresas que não sejam instituições financeiras devem ser informadas nesta conta.","other","l10n_br.passivo","base.main_company" -"account_demo_203010204","2.03.01.02.04","Financiamentos a Longo Prazo – Exterior","account_demo_20301","Contas que registram os credores por financiamentos a longo prazo, obtidos no exterior, encargos financeiros a transcorrer e juros a pagar de empréstimos e financiamentos. Atenção: as obrigações resultantes de operações de Arrendamento Mercantil (Leasing Financeiro) contratadas no exterior devem ser informadas na conta Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior ","other","l10n_br.passivo","base.main_company" -"account_demo_203010205","2.03.01.02.05","Arrendamento Mercantil (Financeiro) a Longo Prazo – Exterior","account_demo_20301","Contas que registram as obrigações de longo prazo relativas a arrendamento mercantil financeiro contratado junto a empresas não sediadas no Brasil","other","l10n_br.passivo","base.main_company" -"account_demo_203010300","2.03.01.03.00","Empréstimos de Sócios/Acionistas Não Administradores","account_demo_20301","Contas relativas a empréstimos concedidos à pessoa jurídica por sócios e acionistas não administradores.","other","l10n_br.passivo","base.main_company" -"account_demo_203010400","2.03.01.04.00","Créditos de Pessoas Ligadas (Físicas/Jurídicas)","account_demo_20301","Contas que registram compras, adiantamentos ou empréstimos de sociedades coligadas ou controladas, diretores, acionistas ou participantes da empresa, que não constituam negócios usuais na exploração do objeto social da pessoa jurídica.","other","l10n_br.passivo","base.main_company" -"account_demo_203010500","2.03.01.05.00","Provisão para o Imposto de Renda sobre Lucros Diferidos","account_demo_20301","Conta que registra o imposto de renda sobre lucros diferidos, tais como: lucro inflacionário não realizado, contratos a longo prazo relativos a fornecimento de bens e de construção por empreitada para o poder público e suas empresas, ganho de capital oriundo de desapropriação, ganho de capital por venda de bens do ativo permanente com recebimento parcelado a longo prazo e depreciação acelerada.","other","l10n_br.passivo","base.main_company" -"account_demo_203010600","2.03.01.06.00","Débitos Fiscais CSLL - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos à CSLL, conforme Deliberação CVM nº 273, de 1998","other","l10n_br.passivo","base.main_company" -"account_demo_203010700","2.03.01.07.00","Débitos Fiscais IRPJ - Diferenças Temporárias","account_demo_20301","As companhias abertas, obrigatoriamente, devem informar, nestas contas, o valor dos débitos fiscais com realização após o exercício seguinte e das diferenças temporárias, relativos ao IRPJ, conforme Deliberação CVM no 273, de 1998.","other","l10n_br.passivo","base.main_company" -"account_demo_203010710","2.03.01.07.10","Outras Provisões de Natureza Fiscal","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza fiscal, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010720","2.03.01.07.20","Outras Provisões de Natureza Trabalhista","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza trabalhista, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010730","2.03.01.07.30","Outras Provisões de Natureza Cível","account_demo_20301","Contas que registram, a partir de 01.01.2008, as outras provisões de natureza cível, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010740","2.03.01.07.40","Doações e Subvenções para Investimentos","account_demo_20301","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento, enquanto não transferidas para o resultado do exercício.","other","l10n_br.passivo","base.main_company" -"account_demo_203010800","2.03.01.08.00","Outras Contas","account_demo_20301","Contas que registram obrigações, não especificadas nos itens precedentes, cujo vencimento ocorrerá em período posterior ao exercício seguinte. Atenção: não incluir, nesta conta, o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária, e os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras. Esses valores devem ser informados em Resultados de Exercícios Futuros.","other","l10n_br.passivo","base.main_company" -"account_demo_203019000","2.03.01.90.00","(-) Contas Retificadoras","account_demo_20301","Contas retificadoras do Exigível de Longo Prazo","other","l10n_br.passivo","base.main_company" -"account_demo_20303","2.03.03","RECEITAS DIFERIDAS","account_demo_203",,"view","l10n_br.passivo","base.main_company" -"account_demo_203030100","2.03.03.01.00","Receitas Diferidas","account_demo_20303","Saldo remanescente da conta Resultado de Exercícios Futuros onde a pessoa jurídica que explore as atividades de compra e venda, loteamento, incorporação e construção de imóveis indicava o valor contratado das vendas a prazo ou a prestação para recebimento após o término do ano-calendário subseqüente, no caso de atividade imobiliária. Também se consideravam como receitas de exercícios futuros os juros e demais receitas financeiras recebidos antecipadamente em transações financeiras.","other","l10n_br.passivo","base.main_company" -"account_demo_203030300","2.03.03.03.00","(-) Custos Correspondentes às Receitas Diferidas","account_demo_20303","Contas correspondentes aos custos e despesas de exercícios futuros correspondentes às receitas indicadas na conta precedente.","other","l10n_br.passivo","base.main_company" -"account_demo_207","2.07","PATRIMÔNIO LÍQUIDO","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account_demo_20701","2.07.01","CAPITAL REALIZADO","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207010100","2.07.01.01.00","Capital Subscrito de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no País.","other","l10n_br.passivo","base.main_company" -"account_demo_207010200","2.07.01.02.00","(-) Capital a Integralizar de Domiciliados e Residentes no País","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no País que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" -"account_demo_207010300","2.07.01.03.00","Capital Subscrito de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital subscrito de domiciliados no exterior.","other","l10n_br.passivo","base.main_company" -"account_demo_207010400","2.07.01.04.00","(-) Capital a Integralizar de Domiciliados e Residentes no Exterior","account_demo_20701","Contas correspondentes ao capital social subscrito de domiciliados no exterior que não tenha sido integralizado.","other","l10n_br.passivo","base.main_company" -"account_demo_20704","2.07.04","RESERVAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207040100","2.07.04.01.00","Reservas de Capital","account_demo_20704","Contas correspondentes às reservas constituídas pela correção monetária do capital, por incentivos fiscais, por ágio na emissão de ações, por alienação de partes beneficiárias.","other","l10n_br.passivo","base.main_company" -"account_demo_207040200","2.07.04.02.00","Reservas de Reavaliação","account_demo_20704","Contas correspondentes aos saldos dos reservas de reavaliação ainda não realizadas, decorrentes de reavaliação de ativos próprios e de ativos de coligadas e controladas, estes avaliados pelo método da equivalência patrimonial.","other","l10n_br.passivo","base.main_company" -"account_demo_207040300","2.07.04.03.00","Reservas de Lucros","account_demo_20704","Contas correspondentes às reservas constituídas pela destinação de lucros da empresa, tais como: reserva legal, reservas estatutárias, reserva para contingências, reserva de lucros a realizar, reserva de lucros para expansão, reserva especial para dividendo obrigatório não distribuído e reserva de exaustão incentivada de recursos minerais.","other","l10n_br.passivo","base.main_company" -"account_demo_207040301","2.07.04.03.01","Reservas de Lucros - Doações e Subvenções para Investimentos","account_demo_20704","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento","other","l10n_br.passivo","base.main_company" -"account_demo_207040302","2.07.04.03.02","Reservas de Lucros - Prêmio na Emissão de Debêntures","account_demo_20704","Contas que registram, a partir de 01.01.2008, os prêmios na emissão de debêntures","other","l10n_br.passivo","base.main_company" -"account_demo_207040400","2.07.04.04.00","Reserva para Aumento de Capital (Lei no 9.249/1995, art. 9o, § 9o)","account_demo_20704","Conta correspondente à reserva constituída em 1996 com o montante dos juros sobre o capital próprio deduzidos como despesa financeira, mas mantidos no patrimônio da empresa, caso esta tenha optado pela faculdade prevista no § 9o do art. 9o da Lei no 9.249, de 1995.","other","l10n_br.passivo","base.main_company" -"account_demo_207040500","2.07.04.05.00","Outras Reservas","account_demo_20704","Contas correspondentes às demais reservas não consignadas nos itens anteriores, tais como o saldo devedor ou credor da conta de correção monetária correspondente à diferença, em relação ao ano de 1990, entre o IPC e o BTN Fiscal e o saldo da correção especial das contas do ativo permanente efetuada com base nos arts. 33 e 44 do Decreto no 332, de 1991.","other","l10n_br.passivo","base.main_company" -"account_demo_20705","2.07.05","AJUSTES DE AVALIAÇÃO PATRIMONIAL","account_demo_207",,"view","l10n_br.passivo","base.main_company" -"account_demo_207050100","2.07.05.01.00","Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) -","other","l10n_br.passivo","base.main_company" -"account_demo_207050101","2.07.05.01.01","(-) Ajustes às Normas Internacionais de Contabilidade","account_demo_20705","Contrapartidas de aumentos ou diminuições de valor atribuídos a elementos do ativo e do passivo, em decorrência da sua avaliação a valor justo, nos casos previstos nesta Lei ou, em normas expedidas pela Comissão de Valores Mobiliários, com base na competência conferida pelo § 3o do art. 177 da Lei 6.404/76 (enquanto não computadas no resultado do exercício em obediência ao regime de competência,) -","other","l10n_br.passivo","base.main_company" -"account_demo_20707","2.07.07","OUTRAS CONTAS","account_demo_207"," ","view","l10n_br.passivo","base.main_company" -"account_demo_207070100","2.07.07.01.00","Lucros Acumulados e/ou Saldo à Disposição da Assembléia","account_demo_20707","Contas correspondentes aos lucros acumulados ou do saldo à disposição da assembléia.","other","l10n_br.passivo","base.main_company" -"account.rsa","2.07.07.02.00","(-) Prejuízos Acumulados","account_demo_20707","Contas correspondentes aos prejuízos acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_207070300","2.07.07.03.00","(-) Ações em Tesouraria","account_demo_20707","Contas que registrem as aquisições de ações da própria empresa.","other","l10n_br.passivo","base.main_company" -"account_demo_207070400","2.07.07.04.00","Outras","account_demo_20707","Outras contas classificáveis no patrimônio líquido que não tenham correspondência nas contas Lucros Acumulados e/ou Saldo à Disposição da Assembléia, Prejuízos Acumulados, Ações em Tesouraria.","other","l10n_br.passivo","base.main_company" -"account_demo_208","2.08","PATRIMÔNIO SOCIAL","account.bal"," ","view","l10n_br.passivo","base.main_company" -"account_demo_20801","2.08.01","FUNDO PATRIMONIAL","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208010100","2.08.01.01.00","Fundo Patrimonial","account_demo_20801","Contas que registrem, nas instituições imunes ou isentas, o Fundo Patrimonial.","other","l10n_br.passivo","base.main_company" -"account_demo_20804","2.08.04","RESERVAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208040100","2.08.04.01.00","Reservas Patrimoniais","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas patrimoniais.","other","l10n_br.passivo","base.main_company" -"account_demo_208040200","2.08.04.02.00","Reservas Estatutárias","account_demo_20804","Contas correspondentes, nas instituições imunes ou isentas, às reservas estatutárias.","other","l10n_br.passivo","base.main_company" -"account_demo_20807","2.08.07","OUTRAS CONTAS","account_demo_208"," ","view","l10n_br.passivo","base.main_company" -"account_demo_208070100","2.08.07.01.00","Superávits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos superávits acumulados.","other","l10n_br.passivo","base.main_company" -"account_demo_208070200","2.08.07.02.00","Déficits Acumulados","account_demo_20807","Contas correspondentes, nas instituições imunes ou isentas, aos déficits acumulados.","other","l10n_br.passivo","base.main_company" -"account.liabilities_view",3,"RESULTADO LÍQUIDO DO PERÍODO","account.chart0"," ","view","account.data_account_type_view","base.main_company" -"account.cli","3.01","RESULTADO LÍQUIDO DO PERÍODO ANTES DO IRPJ E DA CSLL - ATIVIDADE GERAL","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30101","3.01.01","RESULTADO OPERACIONAL","account.cli"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101","3.01.01.01","RECEITA LIQUIDA","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010101","3.01.01.01.01","RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101010101","3.01.01.01.01.01.01","Receita de Exportação Direta de Mercadorias e Produtos","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de mercadorias e produtos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010102","3.01.01.01.01.01.02","Receita de Vendas de Mercadorias e Produtos a Comercial Exportadora com Fim Específico de Exportação","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da venda de mercadorias e produtos a empresa comercial exportadora, com fim específico de exportação.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010103","3.01.01.01.01.01.03","Receita de Exportação de Serviços","account_demo_301010101","Contas que registram o valor da receita auferida em decorrência da exportação direta de serviços","other","account.data_account_type_view","base.main_company" -"account.a_sale","3.01.01.01.01.02.00","Receita da Venda no Mercado Interno de Produtos de Fabricação Própria","account_demo_301010101","Contas que registram a receita auferida no mercado interno correspondente à venda de produtos de fabricação própria e as receitas auferidas na industrialização por encomenda ou por conta e ordem de terceiros. (Não se incluem o valor correspondente ao Imposto sobre Produtos Industrializados (IPI) cobrado destacadamente do comprador ou contratante, uma vez que o vendedor é mero depositário e este imposto não integra o preço de venda da mercadoria, e, também, o valor correspondente ao ICMS cobrado na condição de substituto.)","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010300","3.01.01.01.01.03.00","Receita da Revenda de Mercadorias no Mercado Interno","account_demo_301010101","Contas que registram receita auferida no mercado interno, correspondente à revenda de mercadorias e o resultado auferido nas operações de conta alheia.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010400","3.01.01.01.01.04.00","Receita da Prestação de Serviços – Mercado Interno","account_demo_301010101","Contas que registram a receita decorrente dos serviços prestados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010500","3.01.01.01.01.05.00","Receita das Unidades Imobiliárias Vendidas","account_demo_301010101","As pessoas jurídicas que exploram atividades imobiliárias devem indicar, nestas contas, o montante das receitas das unidades imobiliárias vendidas, apropriadas ao resultado, inclusive as receitas transferidas de Resultados de Exercícios Futuros e os custos recuperados de períodos de apuração anteriores.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010600","3.01.01.01.01.06.00","Receita de Locação de Bens Móveis e Imóveis","account_demo_301010101","Contas que registram a receita decorrente da locação de bens móveis e imóveis","other","account.data_account_type_view","base.main_company" -"account_demo_3010101010700","3.01.01.01.01.07.00","Outras","account_demo_301010101","Outras contas que registrem valores componentes da receita bruta não especificadas nos itens anteriores.","other","account.data_account_type_view","base.main_company" -"account_demo_301010103","3.01.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3010101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010101030100","3.01.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_301010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes das contas integrantes do grupo RECEITA BRUTA","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030200","3.01.01.01.03.02.00","(-) ICMS","account_demo_301010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes das contas integrantes do grupo RECEITA BRUTA. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030300","3.01.01.01.03.03.00","(-) Cofins","account_demo_301010103","vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030400","3.01.01.01.03.04.00","(-) PIS/Pasep","account_demo_301010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas das contas integrantes do grupo RECEITA BRUTA. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030500","3.01.01.01.03.05.00","(-) ISS","account_demo_301010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços,conforme legislação específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010101030600","3.01.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_301010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que tratam as contas integrantes do grupo RECEITA BRUTA, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010103","3.01.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010301","3.01.01.03.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA VENDIDOS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103010000","3.01.01.03.01.00.00","Custo dos Produtos de Fabricação Própria Vendidos","account_demo_301010301"," ","other","account.data_account_type_view","base.main_company" -"account_demo_301010303","3.01.01.03.03","CUSTO DAS MERCADORIAS REVENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103030000","3.01.01.03.03.00.00","Custo das Mercadorias Revendidas","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" -"account_demo_3010103050000","3.01.01.03.05.00.00","Custo dos Serviços Vendidos","account_demo_301010303"," ","other","account.data_account_type_view","base.main_company" -"account_demo_301010307","3.01.01.03.07","CUSTO DAS UNIDADES IMOBILIÁRIAS VENDIDAS","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010103070100","3.01.01.03.07.01.00","Custo das Unidades Imobiliárias Vendidas","account_demo_301010307","Contas que registram, na empresa que tiver por objeto a compra de imóveis para venda ou que promover empreendimento de desmembramento ou loteamento de terrenos, incorporação imobiliária ou construção de prédio destinado à venda, os valores dos custos correspondentes às unidades imobiliárias vendidas apropriados ao resultado do período de apuração. A recuperação de custos do próprio período é computada no montante a ser indicado nesta conta. Os custos recuperados correspondentes a períodos de apuração anteriores devem ser indicados na conta Receita das Unidades Imobiliárias Vendidas.","other","account.data_account_type_view","base.main_company" -"account_demo_301010309","3.01.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_3010103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010105","3.01.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010501","3.01.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3010105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010105010100","3.01.01.05.01.01.00","Variações Cambiais Ativas","account_demo_301010501","Contas que registram os ganhos apurados em razão de variações ativas Decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. -Atenção: -1) As variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei nº 9.718, art. 9º c/c art. 17); -2) Nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF nº 84/79, de 20 de dezembro de 1979, da IN SRF nº 23/83, de 25 de março de 1983, e da IN SRF nº 67/88, de 21 de abril de 1988 (IN SRF nº 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010200","3.01.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010501","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei nº 9.532, de 1997, art. 28, alterado pela MP nº 1.636, de 1998, art. 2º, e reedições).Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) Os ganhos auferidos em operações day-trade devem ser informados em conta específica. -2) O valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. -3) São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010300","3.01.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_301010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010400","3.01.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_301010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010500","3.01.01.05.01.05.00","Outras Receitas Financeiras","account_demo_301010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas nas contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência.Atenção: 1) As variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; 2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010600","3.01.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010700","3.01.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_301010501","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas. Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. - -c) as bonificações recebidas. Atenção: 1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei nº 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3º da Lei nº 8.849, de 1994, e art. 3º da Lei nº 9.064, de 1995). 2) o caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei nº 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -d) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -e) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências. Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto nº 3.000, de 1999, e no art. 74 da Medida Provisória nº 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010710","3.01.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010800","3.01.01.05.01.08.00","Resultados Positivos em SCP","account_demo_301010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para o registro: -a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; -b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. -Atenção: os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto nº 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105010900","3.01.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_301010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4º trimestre. Atenção: Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais..","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011000","3.01.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_301010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011010","3.01.01.05.01.10.10","Prêmios Recebidos na Emissão de Debêntures","account_demo_301010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011020","3.01.01.05.01.10.20","Doações e Subvenções para Investimentos","account_demo_301010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011030","3.01.01.05.01.10.30","Contrapartida dos Ajustes ao Valor Presente","account_demo_301010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011040","3.01.01.05.01.10.40","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3010105011100","3.01.01.05.01.11.00","Outras Receitas Operacionais","account_demo_301010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei nº 9.430, de 1996, art. 70, § 3º, II); -e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3º da Lei nº 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107","3.01.01.07","DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010701","3.01.01.07.01","DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","account_demo_3010107"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010107010100","3.01.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_301010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a -administradores, diretores, gerentes e seus assessores (PN Cosit nº 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010201","3.01.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_301010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. -2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010203","3.01.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010205","3.01.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010207","3.01.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_301010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010209","3.01.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_301010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; -2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010300","3.01.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010400","3.01.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_301010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010401","3.01.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_301010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010402","3.01.01.07.01.04.02","Locação de Mão-de-obra","account_demo_301010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010500","3.01.01.07.01.05.00","Encargos Sociais – Previdência Social","account_demo_301010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes – PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010600","3.01.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_301010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010700","3.01.01.07.01.07.00","Encargos Sociais – Outros","account_demo_301010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010800","3.01.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_301010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107010900","3.01.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei nº 9.249/1995, art.13, § 2º)","account_demo_301010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011000","3.01.01.07.01.10.00","Doações a Entidades Civis","account_demo_301010701","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011100","3.01.01.07.01.11.00","Outras Contribuições e Doações","account_demo_301010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011200","3.01.01.07.01.12.00","Alimentação do Trabalhador","account_demo_301010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011300","3.01.01.07.01.13.00","PIS/Pasep","account_demo_301010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011400","3.01.01.07.01.14.00","Cofins","account_demo_301010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011500","3.01.01.07.01.15.00","CPMF","account_demo_301010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011600","3.01.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_301010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta; -e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; -f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011700","3.01.01.07.01.17.00","Arrendamento Mercantil","account_demo_301010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011800","3.01.01.07.01.18.00","Aluguéis","account_demo_301010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107011900","3.01.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_301010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012001","3.01.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_301010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012002","3.01.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_301010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012100","3.01.01.07.01.21.00","Multas","account_demo_301010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012200","3.01.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_301010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012300","3.01.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_301010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012400","3.01.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_301010701","Contas que registram as despesas com a constituição de provisões para: -a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); -b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012500","3.01.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_301010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012600","3.01.01.07.01.26.00","Demais Provisões","account_demo_301010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012700","3.01.01.07.01.27.00","Gratificações a Administradores","account_demo_301010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012800","3.01.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107012900","3.01.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_301010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção de bens e/ou serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013000","3.01.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_301010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013100","3.01.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_301010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013200","3.01.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_301010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3010107013301","3.01.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_301010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" -"account.o_expense","3.01.01.07.01.33.90","Outras Despesas Operacionais","account_demo_301010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: -a) contribuição sindical; -b) prêmios de seguro; -c) fretes e carretos que não componham os custos; -d) transporte de empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109","3.01.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301010901","3.01.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3010109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010109010100","3.01.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_301010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. -Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010200","3.01.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_301010901","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). -Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010300","3.01.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_301010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010400","3.01.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_301010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio liquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP) observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010500","3.01.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_301010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira; -2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010600","3.01.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_301010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010700","3.01.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_301010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção:considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010710","3.01.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_301010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. -Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010800","3.01.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_301010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109010900","3.01.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_301010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011000","3.01.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_301010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011100","3.01.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_301010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3010109011200","3.01.01.09.01.12.00","(-) Contrapartida dos Ajustes de Valor do Imobilizado e Intangível","account_demo_301010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_30103","3.01.03","OUTRAS RECEITAS E OUTRAS DESPESAS","account.cli"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010301","3.01.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_30103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301030101","3.01.03.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_3010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010301010100","3.01.03.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente","account_demo_301030101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação, de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301010110","3.01.03.01.01.01.10","Ganhos de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030101","Contas que registram o ganho de capital resultante de acréscimo, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial. -Atenção: Esse valor deve ser excluído do lucro líquido para determinação do lucro real no período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301010200","3.01.03.01.01.02.00","Outras Receitas Não Operacionais","account_demo_301030101","Contas que registram: -a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; -b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); -c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" -"account_demo_301030103","3.01.03.01.03","DESPESAS NÃO OPERACIONAIS","account_demo_3010301",,"view","account.data_account_type_view","base.main_company" -"account_demo_3010301030100","3.01.03.01.03.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_301030103","Contas que registram o contábil dos bens do ativo permanente baixados no curso do período de apuração cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente. O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301030110","3.01.03.01.03.01.10","(-) Perdas de Capital por Variação Percentual em Participação Societária Avaliada pelo Patrimônio Líquido","account_demo_301030103","Contas que registram a perda de capital resultante de redução, por variação percentual, do valor do patrimônio líquido de investimento avaliado pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3010301030200","3.01.03.01.03.02.00","(-) Outras Despesas Não Operacionais","account_demo_301030103","Contas que registram: -a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos. -Atenção: Sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426 do Decreto no 3.000, de 1999. -b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" -"account_demo_30105","3.01.05","PARTICIPAÇÕES","account.cli"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501","3.01.05.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_301050101","3.01.05.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501010100","3.01.05.01.01.01.00","(-) Participações de Empregados","account_demo_301050101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501010200","3.01.05.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_301050101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501010300","3.01.05.01.01.03.00","(-) Outras Participações de Empregados","account_demo_301050101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" -"account_demo_301050103","3.01.05.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3010501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3010501030100","3.01.05.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_301050103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3010501030200","3.01.05.01.03.02.00","(-) Participações de Debêntures ","account_demo_301050103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" -"account_demo_3010501030300","3.01.05.01.03.03.00","(-) Outras ","account_demo_301050103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_302","3.02","PROVISÃO PARA CSLL E IRPJ (ATIVIDADES EM GERAL)","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30201","3.02.01","PROVISÃO PARA CSLL E IRPJ","account_demo_302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3020101","3.02.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_30201"," ","view","account.data_account_type_view","base.main_company" -"account_demo_302010101","3.02.01.01.01","PROVISÃO PARA CSLL E IRPJ","account_demo_3020101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3020101010100","3.02.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_302010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão da CSLL sobre os resultados das operações realizadas com os não-associados. -Atenção: para as empresas com atividades mistas, os valores da CSLL relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" -"account_demo_3020101010200","3.02.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_302010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade geral, se for o caso. A sua constituição é obrigatória para todas as pessoas jurídicas tributadas com base no lucro real. As cooperativas devem informar, nesta conta, a provisão para o IRPJ sobre os resultados das operações realizadas com os não-associados. -Atenção: para as empresas com atividades mistas, os valores do IRPJ relativos às atividades em geral e atividade rural devem ser informados nas contas específicas de cada atividade (""Atividades em Geral"" e ""Atividade Rural"", respectivamente).","other","account.data_account_type_view","base.main_company" -"account_demo_305","3.05","RESULTADO ANTES DO IRPJ E DA CSLL - ATIVIDADE RURAL","account.liabilities_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_30501","3.05.01","RESULTADO OPERACIONAL DA ATIVIDADE RURAL ","account_demo_305"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101","3.05.01.01","RECEITA OPERACIONAL LÍQUIDA DA ATIVIDADE RURAL","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010101","3.05.01.01.01","RECEITA BRUTA DA ATIVIDADE RURAL","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101010100","3.05.01.01.01.01.00","Receita da Atividade Rural","account_demo_305010101","Contas que registram a receita da atividade rural. ","other","account.data_account_type_view","base.main_company" -"account_demo_305010103","3.05.01.01.03","DEDUÇÕES DA RECEITA BRUTA","account_demo_3050101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050101030100","3.05.01.01.03.01.00","(-) Vendas Canceladas, Devoluções e Descontos Incondicionais","account_demo_305010103","Contas representativas das vendas canceladas, a devoluções de vendas e a descontos incondicionais concedidos sobre receitas constantes da conta Receita da Atividade Rural.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030200","3.05.01.01.03.02.00","(-) ICMS","account_demo_305010103","Contas que registram o total do Imposto Sobre Operações Relativas à Circulação de Mercadorias e Sobre Prestação de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação (ICMS) calculado sobre as receitas das vendas e de serviços constantes da conta Receita da Atividade Rural. Informar o resultado da aplicação das alíquotas sobre as respectivas receitas, e não o montante recolhido, durante o período de apuração, pela pessoa jurídica.O valor referente ao ICMS pago como substituto não deve ser incluído nesta conta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030300","3.05.01.01.03.03.00","(-) Cofins","account_demo_305010103","Contas que registram a Cofins apurada sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). - Não incluir a Cofins incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030400","3.05.01.01.03.04.00","(-) PIS/Pasep","account_demo_305010103","Contas que registram as contribuições para o PIS/Pasep apurado sobre a receita de vendas em consonância com a legislação vigente à época da ocorrência dos fatos geradores, incidente sobre as receitas da conta Receita da Atividade Rural. O valor informado deve ser apurado de forma centralizada pelo estabelecimento matriz, quando a pessoa jurídica possuir mais de um estabelecimento (Lei no 9.779, de 1999, art. 15, III). Não incluir o PIS/Pasep incidente sobre as demais receitas operacionais, que deverá ser informada em conta distinta.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030500","3.05.01.01.03.05.00","(-) ISS","account_demo_305010103","Contas que registram o Imposto sobre Serviço de qualquer Natureza (ISS) relativo às receitas de serviços, conforme legislação específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050101030600","3.05.01.01.03.06.00","(-) Demais Impostos e Contribuições Incidentes sobre Vendas e Serviços","account_demo_305010103","Contas que registrem os demais impostos e contribuições incidentes sobre as receitas das vendas de que trata a conta Receita da Atividade Rural, que guardem proporcionalidade com o preço e sejam considerados redutores das receitas de vendas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050103","3.05.01.03","CUSTO DOS BENS E SERVIÇOS VENDIDOS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010301","3.05.01.03.01","CUSTO DOS PRODUTOS DA ATIVIDADE RURAL VENDIDOS","account_demo_3050103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050103010000","3.05.01.03.01.00.00","Custo dos Produtos Vendidos da Atividade Rural","account_demo_305010301",,"other","account.data_account_type_view","base.main_company" -"account_demo_305010309","3.05.01.03.09","AJUSTES DE ESTOQUES DECORRENTES DE ARBITRAMENTO","account_demo_305010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050105","3.05.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010501","3.05.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_3050105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050105010100","3.05.01.05.01.01.00","Variações Cambiais Ativas","account_demo_305010501","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações nas taxas de câmbio. -Atenção: -1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da exploração (Lei no 9.718, art. 9o c/c art. 17); -2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de 20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010200","3.05.01.05.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010501","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; -2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica. -3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010300","3.05.01.05.01.03.00","Ganhos em Operações Day-Trade","account_demo_305010501","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia. Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. -Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010400","3.05.01.05.01.04.00","Receitas de Juros sobre o Capital Próprio","account_demo_305010501","Contas que registram os juros recebidos, a título de remuneração do capital próprio, em conformidade com o art. 9o da Lei no 9.249, de 1995. O valor informado deve corresponder ao total dos juros recebidos antes do desconto do imposto de renda na fonte. O valor do imposto de renda retido na fonte, para as pessoas jurídicas tributadas pelo lucro real, é considerado antecipação do imposto devido no encerramento do período de apuração ou, ainda, pode ser compensado com aquele que for retido, pela beneficiária, por ocasião do pagamento ou crédito de juros a título de remuneração do capital próprio, ao seu titular ou aos seus sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010500","3.05.01.05.01.05.00","Outras Receitas Financeiras","account_demo_305010501","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em contas precedentes deste grupo. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. -Atenção: -1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; -2) As variações cambiais ativas devem ser informadas na conta Variações Cambiais Ativas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010600","3.05.01.05.01.06.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010501","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos na conta Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010700","3.05.01.05.01.07.00","Resultados Positivos em Participações Societárias","account_demo_305010501","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -c) as bonificações recebidas; -Atenção: -1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995).; -2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; -Atenção:os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010710","3.05.01.05.01.07.10","Amortização de Deságio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010501","Contas que registram as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010800","3.05.01.05.01.08.00","Resultados Positivos em SCP","account_demo_305010501","Conta utilizada pelas pessoas jurídicas que forem sócias ostensivas de sociedades em conta de participação, para a registro: -a) de lucros derivados de participação em SCP, avaliadas pelo custo de aquisição; -b) dos ganhos por ajustes no valor de participação em SCP, avaliadas pelo método da equivalência patrimonial. -Atenção:os lucros recebidos de investimento em SCP, avaliado pelo custo de aquisição, ou a contrapartida do ajuste do investimento ao valor do patrimônio líquido da SCP, no caso de investimento avaliado por esse método, podem ser excluídos na determinação do lucro real dos sócios, pessoas jurídicas, das referidas sociedades (Decreto no 3.000, de 1999, art. 149).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105010900","3.05.01.05.01.09.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_305010501","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. Esses valores podem, no caso de apuração trimestral do imposto, ser excluídos na apuração do lucro real do 1o ao 3o trimestres, devendo ser adicionados ao lucro líquido na apuração do lucro real referente ao 4o trimestre. -Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011000","3.05.01.05.01.10.00","Reversão dos Saldos das Provisões Operacionais","account_demo_305010501","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior para fins de apuração do lucro real (Lei no 9.430, de 1996, art. 14).","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011100","3.05.01.05.01.11.00","Outras Receitas Operacionais","account_demo_305010501","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II);e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011200","3.05.01.05.01.12.00","Prêmios Recebidos na Emissão de Debêntures","account_demo_305010501","Contas que registram, a partir de 01.01.2008, os prêmios recebidos na emissão de debêntures.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011300","3.05.01.05.01.13.00","Doações e Subvenções para Investimentos","account_demo_305010501","Contas que registram, a partir de 01.01.2008, as doações e subvenções para investimento.","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011400","3.05.01.05.01.14.00","Contrapartida dos Ajustes ao Valor Presente","account_demo_305010501","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3050105011500","3.05.01.05.01.15.00","Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010501","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3050107","3.05.01.07","DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010701","3.05.01.07.01","DESPESAS OPERACIONAIS DA ATIVIDADE RURAL","account_demo_3050107"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050107010100","3.05.01.07.01.01.00","Remuneração a Dirigentes e a Conselho de Administração","account_demo_305010701","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal ou consultivo. -Atenção: os valores das gratificações aos dirigentes que estejam ligados à área de produção rural devem ser informados na conta Remuneração a Dirigentes da Produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010201","3.05.01.07.01.02.01","Ordenados, Salários Gratificações e Outras Remunerações a Empregados","account_demo_305010701","Contas que registram as despesas com ordenados, salários, gratificações e outras despesas com empregados, tais como: comissões, moradia, seguro de vida e outras de caráter remuneratório. -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta específica. -2) Não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010203","3.05.01.07.01.02.03","Planos de Poupança e Investimentos de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010205","3.05.01.07.01.02.05","Fundo de Aposentadoria Programada Individual de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010207","3.05.01.07.01.02.07","Plano de Previdência Privada de Empregados","account_demo_305010701","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010209","3.05.01.07.01.02.09","Outros Gastos com Pessoal","account_demo_305010701","Contas que registram os gastos com empregados não enquadrados nas contas precedentes -Atenção: -1) As despesas correspondentes a salários, ordenados, gratificações e outras remunerações referentes à área de saúde, tais como assistência médica, odontológica e farmacêutica, devem ser indicadas na conta Assistência Médica, Odontológica e Farmacêutica a Empregados; -2) não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010300","3.05.01.07.01.03.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010400","3.05.01.07.01.04.00","Prestação de Serviço Pessoa Jurídica","account_demo_305010701","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010401","3.05.01.07.01.04.01","Serviços Prestados por Cooperativa de Trabalho","account_demo_305010701","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010402","3.05.01.07.01.04.02","Locação de Mão-de-obra","account_demo_305010701","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010500","3.05.01.07.01.05.00","Encargos Sociais - Previdência Social","account_demo_305010701","Contas que registram as contribuições para a Previdência Social, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010600","3.05.01.07.01.06.00","Encargos Sociais – FGTS","account_demo_305010701","Contas que registram as contribuições para a o FGTS, não computadas nos custos (inclusive dos dirigentes - PN CST no 35, de 31 de agosto de 1981).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010700","3.05.01.07.01.07.00","Encargos Sociais – Outros","account_demo_305010701","Contas que registram os demais encargos sociais, não computados nos custos ou nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010800","3.05.01.07.01.08.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account_demo_305010701","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107010900","3.05.01.07.01.09.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account_demo_305010701","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011000","3.05.01.07.01.10.00","Doações a Entidades Civis","account_demo_305010701","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011100","3.05.01.07.01.11.00","Outras Contribuições e Doações","account_demo_305010701","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011200","3.05.01.07.01.12.00","Alimentação do Trabalhador","account_demo_305010701","Contas que registram as despesas com alimentação do pessoal não ligado à produção, realizadas durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011300","3.05.01.07.01.13.00","PIS/Pasep","account_demo_305010701","Contas que registram as Contribuições para o PIS/Pasep incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011400","3.05.01.07.01.14.00","Cofins","account_demo_305010701","Contas que registram a parcela da Cofins incidente sobre as demais receitas operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011500","3.05.01.07.01.15.00","CPMF","account_demo_305010701","Contas que registram a Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos de Natureza Financeira.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011600","3.05.01.07.01.16.00","Demais Impostos, Taxas e Contribuições, exceto IR e CSLL","account_demo_305010701","Contas que registram os demais Impostos, Taxas e Contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta ; -e) correspondentes às Contribuições para o PIS/Pasep e à Cofins incidentes sobre as demais receitas operacionais, e à CPMF, indicados em contas específicas; -f) correspondentes à contribuição social sobre o lucro líquido e ao imposto de renda devidos, que são informados em contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011700","3.05.01.07.01.17.00","Arrendamento Mercantil","account_demo_305010701","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011800","3.05.01.07.01.18.00","Aluguéis","account_demo_305010701","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107011900","3.05.01.07.01.19.00","Despesas com Veículos e de Conservação de Bens e Instalações","account_demo_305010701","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012001","3.05.01.07.01.20.01","Propaganda, Publicidade e Patrocínio (Associações Desportivas que Mantenham Equipe de Futebol Profissional)","account_demo_305010701","Contas que registram as despesas relativas a propaganda publicidade e patrocínio com associações desportivas que mantenham equipe de futebol profissional e possuam registro na Federação de Futebol do respectivo Estado, a título de propaganda, publicidade e patrocínio.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012002","3.05.01.07.01.20.02","Propaganda, Publicidade e Patrocínio","account_demo_305010701","Contas que registram de propaganda, publicidade, exceto as classificadas na conta precedente","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012100","3.05.01.07.01.21.00","Multas","account_demo_305010701","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012200","3.05.01.07.01.22.00","Encargos de Depreciação e Amortização","account_demo_305010701","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012300","3.05.01.07.01.23.00","Perdas em Operações de Crédito","account_demo_305010701","Contas que registram as perdas no recebimento de créditos decorrentes das atividades da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012400","3.05.01.07.01.24.00","Provisões para Férias e 13o Salário de Empregados","account_demo_305010701","Contas que registram as despesas com a constituição de provisões para: -a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); -b) o 13o salário, no caso de apuração trimestral do imposto, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012500","3.05.01.07.01.25.00","Provisão para Perda de Estoque","account_demo_305010701","Contas que registram as despesas com a constituição de provisão para perda de estoque","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012600","3.05.01.07.01.26.00","Demais Provisões","account_demo_305010701","Contas que registram as despesas com provisões não relacionadas em contas específicas","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012700","3.05.01.07.01.27.00","Gratificações a Administradores","account_demo_305010701","Contas que registram as gratificações a administradores.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012800","3.05.01.07.01.28.00","Royalties e Assistência Técnica – PAÍS","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107012900","3.05.01.07.01.29.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_305010701","Contas que registram as despesas correspondentes às importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que não estejam relacionados com a produção.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013000","3.05.01.07.01.30.00","Assistência Médica, Odontológica e Farmacêutica a Empregados","account_demo_305010701","Indicar o valor das despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço Pessoa Jurídica, conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013100","3.05.01.07.01.31.00","Pesquisas Científicas e Tecnológicas","account_demo_305010701","Contas que registram as despesas efetuadas a esse título, inclusive a contrapartida das amortizações daquelas registradas no ativo diferido","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013200","3.05.01.07.01.32.00","Bens de Natureza Permanente Deduzidos como Despesa","account_demo_305010701","Contas que registram as despesas com aquisição de bens do ativo imobilizado cujo prazo de vida útil não ultrapasse um ano, ou, caso exceda esse prazo, tenha valor unitário igual ou inferior ao fixado no art. 301 do Decreto no 3.000, de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013301","3.05.01.07.01.33.01","Despesas com viagens, diárias e ajusta de custo","account_demo_305010701","Contas que registram as despesas operacionais com viagens, diárias e ajuda de custo","other","account.data_account_type_view","base.main_company" -"account_demo_3050107013390","3.05.01.07.01.33.90","Outras Despesas Operacionais","account_demo_305010701","Contas que registram as demais despesas operacionais, cujos títulos não se adaptem à nomenclatura específica desta ficha, tais como: -a) contribuição sindical; -b) prêmios de seguro; -c) fretes e carretos que não componham os custos; -d) transporte de empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109","3.05.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_30501"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305010901","3.05.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_3050109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050109010100","3.05.01.09.01.01.00","(-) Variações Cambiais Passivas","account_demo_305010901","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art. 52, e Lei no 9.249, de 1995, art. 8o).Inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização,dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil. -Atenção: a amortização dos ajustes de variação cambial contabilizada no ativo -diferido deve ser informada na conta Encargos de Depreciação e Amortização (Lei no 9.816, de 1999, art. 2o, e Lei no 10.305, de 2001).","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010200","3.05.01.09.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_305010901","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). -Atenção: as perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010300","3.05.01.09.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_305010901","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado à vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010400","3.05.01.09.01.04.00","(-) Juros sobre o Capital Próprio","account_demo_305010901","Contas que registram as despesas com juros pagos ou creditados individualizadamente a titular, sócios ou acionistas, a título de remuneração do capital próprio, calculados sobre as contas do patrimônio líquido e limitados à variação, pro rata dia, da Taxa de Juros de Longo Prazo (TJLP), observando-se o regime de competência (Lei no 9.249, de 1995, art. 9o).","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010500","3.05.01.09.01.05.00","(-) Outras Despesas Financeiras","account_demo_305010901","Contas que registram as despesas relativas a juros, não incluídas nas em outras contas, a descontos de títulos de crédito e ao deságio na colocação de debêntures ou outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesa financeira. -2) As variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010600","3.05.01.09.01.06.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_305010901","Contas que registram os prejuízos havidos em virtude de alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos nas contas Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade ou Perdas em Operações Day-Trade.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010700","3.05.01.09.01.07.00","(-) Resultados Negativos em Participações Societárias","account_demo_305010901","Contas que registram as perdas por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010710","3.05.01.09.01.07.10","(-) Amortização de Ágio nas Aquisições de Investimentos Avaliados pelo Patrimônio Líquido","account_demo_305010901","Contas que registram o valor da amortização registrada no período, referente ao ágio nas aquisições de investimentos avaliados pelo método da equivalência patrimonial. -Atenção: O valor amortizado deve ser adicionado ao lucro líquido, para determinação do lucro real, e controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, pode ser excluído do lucro líquido, para determinação do lucro real.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010800","3.05.01.09.01.08.00","(-) Resultados Negativos em SCP","account_demo_305010901","Conta utilizada pelos sócios ostensivos, pessoas jurídicas, de sociedades em conta de participação, para indicar as perdas por ajustes no valor de participação em SCP, avaliada pelo método da equivalência patrimonial.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109010900","3.05.01.09.01.09.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_305010901","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011000","3.05.01.09.01.10.00","(-) Contrapartida dos Ajustes ao Valor Presente","account_demo_305010901","Contrapartida do ajuste ao valor presente dos elementos do ativo e do passivo (art. 183, inciso VIII, e art. 184, inciso III da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011100","3.05.01.09.01.11.00","(-) Contrapartida de outros Ajustes às Normas Internacionais de Contabilidade","account_demo_305010901","Contrapartida de outros ajustes decorrentes da adequação às Normas Internacionais de Contabilidade","other","account.data_account_type_view","base.main_company" -"account_demo_3050109011200","3.05.01.09.01.12.00","(-) Contrapartida dos ajustes de valor do imobilizado e intangível","account_demo_305010901","Contrapartida dos ajustes decorrentes da análise de recuperação dos valores registrados no imobilizado e no intangível (art. 183, § 3º, da Lei 6.404/76)","other","account.data_account_type_view","base.main_company" -"account_demo_30503","3.05.03","PARTICIPAÇÕES","account_demo_305"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050301","3.05.03.01","PARTICIPAÇÕES NOS LUCROS","account_demo_30503"," ","view","account.data_account_type_view","base.main_company" -"account_demo_305030101","3.05.03.01.01","PARTICIPAÇÕES DE EMPREGADOS","account_demo_3050301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_3050301010100","3.05.03.01.01.01.00","(-) Participações de Empregados","account_demo_305030101","Contas que registram as participações atribuídas a empregados segundo disposição legal, estatutária, contratual ou por deliberação da assembléia de acionistas ou sócios.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301010200","3.05.03.01.01.02.00","(-) Contribuições para Assistência ou Previdência de Empregados","account_demo_305030101","Contas que registram as contribuições para instituições ou fundos de assistência ou previdência de empregados, baseadas nos lucros. Não indicar, nesta conta, aquelas contribuições já deduzidas como custo ou despesa operacional.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301010300","3.05.03.01.01.03.00","(-) Outras Participações de Empregados","account_demo_305030101","Contas que registram outras participações de empregados","other","account.data_account_type_view","base.main_company" -"account_demo_305030103","3.05.03.01.03","OUTRAS PARTICIPAÇÕES","account_demo_3050301",,"view","account.data_account_type_view","base.main_company" -"account_demo_3050301030100","3.05.03.01.03.01.00","(-) Participações de Administradores e Partes Beneficiárias","account_demo_305030103","Contas que registram quaisquer participações nos lucros atribuídas a administradores, sócio, titular de empresa individual e a portadores de partes beneficiárias, durante o período de apuração.","other","account.data_account_type_view","base.main_company" -"account_demo_3050301030200","3.05.03.01.03.02.00","(-) Participações de Debêntures","account_demo_305030103","Contas que representam as participações nos lucros da companhia atribuídas a debêntures de sua emissão","other","account.data_account_type_view","base.main_company" -"account_demo_3050301030500","3.05.03.01.03.05.00","(-) Outras ","account_demo_305030103","Contas que registram outras participações","other","account.data_account_type_view","base.main_company" -"account_demo_306","3.06","PROVISÃO PARA CSLL E IRPJ (ATIVIDADE RURAL)","account.liabilities_view",,"view","account.data_account_type_view","base.main_company" -"account_demo_30601","3.06.01","PROVISÃO PARA CSLL E IRPJ","account_demo_306",,"view","account.data_account_type_view","base.main_company" -"account_demo_3060101","3.06.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_30601",,"view","account.data_account_type_view","base.main_company" -"account_demo_306010101","3.06.01.01.01","PROVISÃO PARA CSLL E IRPJ ","account_demo_3060101",,"view","account.data_account_type_view","base.main_company" -"account_demo_3060101010100","3.06.01.01.01.01.00","(-) Contribuição Social sobre o Lucro Líquido","account_demo_306010101","Contas que registram as provisões para a CSLL calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" -"account_demo_3060101010200","3.06.01.01.01.02.00","(-) Provisão para Imposto de Renda - Pessoa Jurídica","account_demo_306010101","Contas que registram as provisões para o IRPJ calculadas sobre a base de cálculo correspondente ao período de apuração e sobre os lucros diferidos da atividade rural.","other","account.data_account_type_view","base.main_company" -"account.gpf",4,"SUPERÁVIT/DÉFICIT LÍQUIDO DO PERÍODO","account.chart0","GRUPO DESTINADO EXCLUSIVAMENTE ÀS SOCIEDADES SIMPLES, SEM FINS LUCRATIVOS","view","account.data_account_type_view","base.main_company" -"account_demo_401","4.01","RESULTADO OPERACIONAL","account.gpf"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40101","4.01.01","RECEITA OPERACIONAL LÍQUIDA","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account.income_view","4.01.01.01","RECEITA BRUTA","account_demo_40101"," ","view","account.data_account_type_view","base.main_company" -"account.rev","4.01.01.01.01","RECEITA DE VENDA DE PRODUTOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101010100","4.01.01.01.01.01.00","Da atividade de Educação","account.rev","Contas que registram a receita de venda dos produtos da atividade de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010200","4.01.01.01.01.02.00","Da atividade de Saúde","account.rev","Contas que registram a receita de venda dos produtos da atividade de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010300","4.01.01.01.01.03.00","Da atividade de Assistência Social","account.rev","Contas que registram a receita de venda dos produtos da atividade de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101010400","4.01.01.01.01.04.00","Outras","account.rev","Contas que registram as demais receitas de vendas de produtos.","other","account.data_account_type_view","base.main_company" -"account_demo_401010102","4.01.01.01.02","RECEITA DE PRESTAÇÃO DOS SERVIÇOS","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101020100","4.01.01.01.02.01.00","Serviços Educacionais","account_demo_401010102","Contas que registram as receitas de prestação de serviços na atividade educacional.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020200","4.01.01.01.02.02.00","Doações/Subvenções Vinculadas ","account_demo_401010102","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à prestação de serviços, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020300","4.01.01.01.02.03.00","Doações","account_demo_401010102","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020400","4.01.01.01.02.04.00","Contribuições","account_demo_401010102","Contas que registram as receitas recebidas como contribuições com destinação à prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101020500","4.01.01.01.02.05.00","Outras","account_demo_401010102","Contas que registram as demais receitas de prestação de serviços.","other","account.data_account_type_view","base.main_company" -"account_demo_401010103","4.01.01.01.03","RECEITA DE SERVIÇOS DE SAÚDE","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101030100","4.01.01.01.03.01.00","Pacientes Particulares","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030200","4.01.01.01.03.02.00","Convênios – SUS","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a pacientes conveniados do SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030300","4.01.01.01.03.03.00","Convênios – Outros","account_demo_401010103","Contas que registram as receitas de serviços de saúde prestados a outros pacientes conveniados.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030400","4.01.01.01.03.04.00","Doações/Subvenções Vinculadas","account_demo_401010103","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030500","4.01.01.01.03.05.00","Doações","account_demo_401010103","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área da saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030600","4.01.01.01.03.06.00","Contribuições","account_demo_401010103","Contas que registram as receitas recebidas como contribuições com destinação à área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101030700","4.01.01.01.03.07.00","Outras","account_demo_401010103","Contas que registram as demais receitas de serviços de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_401010104","4.01.01.01.04","RECEITAS DE SERVIÇOS DE ASSISTÊNCIA SOCIAL","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101040100","4.01.01.01.04.01.00","Pacientes Particulares","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040200","4.01.01.01.04.02.00","Convênios - Outros","account_demo_401010104","Contas que registram as receitas de serviços na área de assistência social a pacientes particulares através de convênios/contratos/termos de parcerias.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040300","4.01.01.01.04.03.00","Doações/Subvenções Vinculadas","account_demo_401010104","Contas que registram as receitas recebidas como doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040400","4.01.01.01.04.04.00","Doações","account_demo_401010104","Contas que registram as receitas recebidas como doações particulares não vinculadas, com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040500","4.01.01.01.04.05.00","Contribuições","account_demo_401010104","Contas que registram as receitas recebidas como contribuições com destinação à área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101040600","4.01.01.01.04.06.00","Outras","account_demo_401010104","Contas que registram as demais receitas de serviços na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_401010105","4.01.01.01.05","RECEITAS DE OUTRAS ATIVIDADES","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101050100","4.01.01.01.05.01.00","Contribuições Sindicais","account_demo_401010105","Contas que registram receitas com a natureza de contribuições sindicais.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050200","4.01.01.01.05.02.00","Contribuições Confederativas/Associativas","account_demo_401010105","Contas que registram receitas com a natureza de contribuições confederativas e/ou associativas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050300","4.01.01.01.05.03.00","Mensalidades","account_demo_401010105","Contas que registram receitas com a natureza de mensalidades revertidas por seus associados.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050400","4.01.01.01.05.04.00","Doações/Subvenções","account_demo_401010105","Contas que registram receitas com a natureza de doações e/ou subvenções recebidas de entidades públicas e/ou privadas, e de pessoas físicas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050500","4.01.01.01.05.05.00","Outras Contribuições","account_demo_401010105","Demais contas que registram contribuições não especificadas anteriormente.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101050600","4.01.01.01.05.06.00","Outras","account_demo_401010105"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401010109","4.01.01.01.09","DEDUÇÕES DA RECEITA BRUTA","account.income_view"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010101090100","4.01.01.01.09.01.00","(-) Vendas Canceladas","account_demo_401010109","Contas que registram vendas das prestações de serviços canceladas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101090200","4.01.01.01.09.02.00","(-) Devoluções e Descontos Incondicionais","account_demo_401010109","Contas que registram as devoluções e descontos incondicionais nas atividades da entidade.","other","account.data_account_type_view","base.main_company" -"account_demo_4010101090300","4.01.01.01.09.03.00","Outras","account_demo_401010109","Contas que registram as demais deduções da receita bruta.","other","account.data_account_type_view","base.main_company" -"account_demo_40103","4.01.03","CUSTO DOS PRODUTOS E SERVIÇOS VENDIDOS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301","4.01.03.01","CUSTO DOS PRODUTOS VENDIDOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401030101","4.01.03.01.01","CUSTO DOS PRODUTOS VENDIDOS PARA EDUCAÇÃO","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301010100","4.01.03.01.01.01.00","Custos dos Produtos para Educação - Vendidos","account_demo_401030101","Contas que registram o custo do produto vendido na área de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301010200","4.01.03.01.01.02.00","Custos dos Produtos para Educação - Gratuidades","account_demo_401030101","Contas que registram o custo do produto dado em gratuidade na área de educação.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301010300","4.01.03.01.01.03.00","Outros Custos","account_demo_401030101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030102","4.01.03.01.02","CUSTO DOS PRODUTOS VENDIDOS PARA SAÚDE","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301020100","4.01.03.01.02.01.00","Custos dos Produtos para Saúde – Vendidos","account_demo_401030102","Contas que registram o custo do produto vendido na área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301020200","4.01.03.01.02.02.00","Custos dos Produtos para Saúde - Gratuidades","account_demo_401030102","Contas que registram o custo do produto dado em gratuidade na área de saúde.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301020300","4.01.03.01.02.03.00","Outros Custos","account_demo_401030102"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030103","4.01.03.01.03","CUSTO DOS PRODUTOS VENDIDOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010301030100","4.01.03.01.03.01.00","Custos dos Produtos para Assistência Social - Vendidos","account_demo_401030103","Contas que registram o custo do produto vendido na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301030200","4.01.03.01.03.02.00","Custos dos Produtos para Assistência Social - Gratuidades","account_demo_401030103","Contas que registram o custo do produto dado em gratuidade na área de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301030300","4.01.03.01.03.03.00","Outras","account_demo_401030103"," ","other","account.data_account_type_view","base.main_company" -"account.cos","4.01.03.01.04","CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES","account_demo_4010301"," ","view","account.data_account_type_view","base.main_company" -"account.cog","4.01.03.01.04.01.00","Custos dos Produtos Vendidos em Geral","account.cos","Contas que registram o custo do produto vendido nas atividades não abrangidas anteriormente.","other","account.data_account_type_view","base.main_company" -"account_demo_4010301040200","4.01.03.01.04.02.00","Outros Custos","account.cos"," ","other","account.data_account_type_view","base.main_company" -"account_demo_4010302","4.01.03.02","CUSTO DOS SERVIÇOS PRESTADOS","account_demo_40103"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401030201","4.01.03.02.01","CUSTO DOS SERVIÇOS PRESTADOS PARA EDUCAÇÃO","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302010100","4.01.03.02.01.01.00","Custo dos Serviços Prestados a Alunos Não Bolsistas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos não bolsistas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010200","4.01.03.02.01.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias (Exceto PROUNI)","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no PROUNI.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010300","4.01.03.02.01.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de educação, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010400","4.01.03.02.01.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados às demais doações, com destinação à área de educação, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010500","4.01.03.02.01.05.00","Custo dos Serviços Prestados ao PROUNI","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos vinculados ao PROUNI.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010600","4.01.03.02.01.06.00","Custo dos Serviços Prestados a Gratuidade ","account_demo_401030201","Contas que registram o custo da prestação do serviço para os alunos com gratuidades de bolsas parciais e/ou integrais, exceto às vinculadas ao PROUNI, sendo que para as bolsas parciais, o custo deverá ser lançado com o valor parcial, o restante do custo deste aluno, será lançado na conta dos alunos não bolsistas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302010700","4.01.03.02.01.07.00","Outros Custos","account_demo_401030201"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030202","4.01.03.02.02","CUSTO DOS SERVIÇOS PRESTADOS PARA SAÚDE","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302020100","4.01.03.02.02.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020200","4.01.03.02.02.02.00","Custo dos Serviços Prestados a Convênios SUS","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes atendidos através do convênio do SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020300","4.01.03.02.02.03.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados aos convênios/contratos/parcerias, exceto àqueles que estão no SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020400","4.01.03.02.02.04.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados à doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de saúde, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020500","4.01.03.02.02.05.00","Custo dos Serviços Prestados a Doações","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020600","4.01.03.02.02.06.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030202","Contas que registram o custo da prestação do serviço para os pacientes com gratuidades do pagamento, exceto às vinculadas ao SUS.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302020700","4.01.03.02.02.07.00","Outros Custos","account_demo_401030202"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030203","4.01.03.02.03","CUSTO DOS SERVIÇOS PRESTADOS PARA ASSISTÊNCIA SOCIAL","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302030100","4.01.03.02.03.01.00","Custo dos Serviços Prestados a Pacientes Particulares","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários particulares.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030200","4.01.03.02.03.02.00","Custo dos Serviços Prestados a Convênios/Contratos/Parcerias","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados aos convênios/contratos/parcerias, exceto àqueles que estão vinculados por doações e por subvenções.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030300","4.01.03.02.03.03.00","Custo dos Serviços Prestados a Doações/Subvenções Vinculadas","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários vinculados a doações/subvenções vinculadas (Dec. 2.536/1998, art. 3, inciso V), com destinação à área de assistência social, preferencialmente segregadas por níveis federal, estadual e municipal.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030400","4.01.03.02.03.04.00","Custo dos Serviços Prestados a Doações","account_demo_401030203","Contas que registram o custo da prestação do serviço para os pacientes vinculados às demais doações, com destinação à área de saúde, exceto àquelas doações vinculadas.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030500","4.01.03.02.03.05.00","Custo dos Serviços Prestados a Gratuidade","account_demo_401030203","Contas que registram o custo da prestação do serviço para os usuários com gratuidades do pagamento, exceto às atividades vinculadas por doações e por subvenções. Em especial, ao publico alvo da política nacional de assistência social.","other","account.data_account_type_view","base.main_company" -"account_demo_4010302030600","4.01.03.02.03.06.00","Outros Custos","account_demo_401030203"," ","other","account.data_account_type_view","base.main_company" -"account_demo_401030204","4.01.03.02.04","CUSTO DOS SERVIÇOS PRESTADOS PARA AS DEMAIS ATIVIDADES","account_demo_4010302"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010302040100","4.01.03.02.04.01.00","Custo dos Serviços Prestados em Geral","account_demo_401030204","Contas que registram o custo da prestação do serviço para as demais atividades, não informadas anteriormente. ","other","account.data_account_type_view","base.main_company" -"account_demo_4010302040200","4.01.03.02.04.02.00","Outros Custos","account_demo_401030204"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40105","4.01.05","OUTRAS RECEITAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010501","4.01.05.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_40105"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401050101","4.01.05.01.01","OUTRAS RECEITAS OPERACIONAIS","account_demo_4010501"," ","view","account.data_account_type_view","base.main_company" -"account.income_fx_income","4.01.05.01.01.01.00","Variações Cambiais Ativas","account_demo_401050101","Contas que registram os ganhos apurados em razão de variações ativas decorrentes da atualização dos direitos de crédito e obrigações, calculados com base nas variações das taxas de câmbio. -Atenção: -1) as variações cambiais ativas decorrentes dos direitos de crédito e de obrigações, em função da taxa de câmbio, são consideradas como receita financeira, inclusive para fins de cálculo do lucro da -exploração (Lei no 9.718, art. 9o c/c art. 17); -2) nas atividades de compra e venda, loteamento, incorporação e construção de imóveis, as variações cambiais ativas são reconhecidas como receita segundo as normas constantes da IN SRF no 84/79, de -20 de dezembro de 1979, da IN SRF no 23/83, de 25 de março de 1983, e da IN SRF no 67/88, de 21 de abril de 1988 (IN SRF no 25/99, de 25 de fevereiro de 1999).","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010200","4.01.05.01.01.02.00","Ganhos Auferidos no Mercado de Renda Variável, exceto Day-Trade","account_demo_401050101","Contas que registram: -a) o somatório dos ganhos auferidos, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) os ganhos auferidos nas alienações, fora de bolsa, de ouro, ativo financeiro, e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e -controladas e de participações societárias que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) os rendimentos auferidos em operações de swap e no resgate de quota de fundo de investimento cujas carteiras sejam constituídas, no mínimo, por 67% (sessenta e sete por cento) de ações no mercado à vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições). -Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações. -Atenção: -1) os ganhos auferidos em operações day-trade devem ser informados em conta específica; -2) o valor correspondente às perdas incorridas no mercado de renda variável, exceto day-trade, deve ser informado em conta específica; -3) são consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM).","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010300","4.01.05.01.01.03.00","Ganhos em Operações Day-Trade","account_demo_401050101","Contas que registram os ganhos diários auferidos, em cada mês do período de apuração, em operações day-trade. Considera-se ganho o resultado positivo auferido nas operações citadas acima, realizadas em cada mês, admitida a dedução dos custos e despesas incorridos, necessários à realização das operações.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia. -Atenção: o valor correspondente às perdas incorridas nas operações day-trade deve ser informado em conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010400","4.01.05.01.01.04.00","Outras Receitas de Aplicações Financeiras","account_demo_401050101","Contas que registram receitas auferidas no período de apuração relativas a juros, descontos, lucro na operação de reporte, prêmio de resgate de títulos ou debêntures e rendimento nominal auferido em aplicações financeiras de renda fixa, não incluídas em outras contas. As receitas dessa natureza, derivadas de operações com títulos vencíveis após o encerramento do período de apuração, serão rateadas segundo o regime de competência. -Atenção: -1) as variações monetárias ativas decorrentes da atualização dos direitos de crédito e das obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como receita financeira; -2) as variações cambiais ativas devem ser informadas na conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010500","4.01.05.01.01.05.00","Ganhos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401050101","Contas que registram os ganhos auferidos na alienação de ações, títulos ou quotas de capital não integrantes do ativo permanente, desde que não incluídos em outra conta específica.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010600","4.01.05.01.01.06.00","Resultados Positivos em Participações Societárias","account_demo_401050101","Contas que registram: -a) os lucros e dividendos derivados de investimentos avaliados pelo custo de aquisição; -b) os ganhos por ajustes no valor de investimentos relevantes avaliados pelo método da equivalência patrimonial, decorrentes de lucros apurados nas controladas e coligadas; -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -c) as amortizações de deságios nas aquisições de investimentos avaliados pelo patrimônio líquido. O valor amortizado que for excluído do lucro líquido para determinação do lucro real deve ser controlado na Parte B do Livro de Apuração do Lucro Real até a alienação ou baixa da participação societária, quando, então, deve ser adicionado ao lucro líquido para determinação do lucro real no período de apuração em que for computado o ganho ou perda de capital havido. -d) as bonificações recebidas; -Atenção: -1) as bonificações recebidas, decorrentes da incorporação de lucros ou reservas não tributados na forma do art. 35 da Lei no 7.713, de 1988, ou apurados nos anos-calendário de 1994 ou 1995, são -consideradas a custo zero, não afetando o valor do investimento nem o resultado do período de apuração (art. 3o da Lei no 8.849, de 1994, e art. 3o da Lei no 9.064, de 1995); -2) no caso de investimento avaliado pelo custo de aquisição, as bonificações recebidas, decorrentes da incorporação de lucros ou reservas tributados na forma do art. 35 da Lei no 7.713, de 1988, e de lucros ou reservas apurados no ano-calendário de 1993 ou a partir do ano-calendário de 1996, são registradas tomando-se como custo o valor da parcela dos lucros ou reservas capitalizados. -e) os lucros e dividendos de participações societárias avaliadas pelo custo de aquisição; -Atenção: os lucros ou dividendos recebidos em decorrência de participações societárias avaliadas pelo custo de aquisição adquiridas até 6 (seis) meses antes da data do recebimento devem ser registrados como diminuição do valor do custo, não sendo incluídos nesta conta. -f) os resultados positivos decorrentes de participações societárias no exterior avaliadas pelo patrimônio líquido, os dividendos de participações avaliadas pelo custo de aquisição e os resultados de equivalência patrimonial relativos a filiais, sucursais ou agências da pessoa jurídica localizadas no exterior, em decorrência de operações realizadas naquelas filiais, sucursais ou agências.Os lucros auferidos no exterior serão adicionados ao lucro líquido, para efeito de determinação do lucro real, no período de apuração correspondente ao balanço levantado em 31 de dezembro do ano-calendário em que tiverem sido disponibilizados, observando-se o disposto nos arts. 394 e 395 do Decreto no 3.000, de 1999, e no art. 74 da Medida Provisória no 2.158-35, de 24 de agosto de 2001.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010700","4.01.05.01.01.07.00","Rendimentos e Ganhos de Capital Auferidos no Exterior","account_demo_401050101","Contas que registram os rendimentos e ganhos de capital auferidos no exterior diretamente pela pessoa jurídica domiciliada no Brasil, pelos seus valores antes de descontado o tributo pago no país de origem. -Atenção:Os ganhos de capital referentes a alienações de bens e direitos do ativo permanente situados no exterior devem ser informados na conta Outras Receitas Não Operacionais ","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010800","4.01.05.01.01.08.00","Reversão dos Saldos das Provisões Operacionais","account_demo_401050101","Contas que registram a reversão de saldos não utilizados das provisões constituídas no balanço do período de apuração imediatamente anterior.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501010900","4.01.05.01.01.09.00","Outras Receitas Operacionais","account_demo_401050101","Contas que registram todas as demais receitas que, por definição legal, sejam consideradas operacionais, tais como: -a) aluguéis de bens por empresa que não tenha por objeto a locação de móveis e imóveis; -b) recuperações de despesas operacionais de períodos de apuração anteriores, tais como: prêmios de seguros, importâncias levantadas das contas vinculadas do FGTS, ressarcimento de desfalques, roubos e furtos, etc. As recuperações de custos e despesas no decurso do próprio período de apuração devem ser creditadas diretamente às contas de resultado em que foram debitadas; -c) os créditos presumidos do IPI para ressarcimento do valor da Contribuição ao PIS/Pasep e Cofins; -d) multas ou vantagens a título de indenização em virtude de rescisão contratual (Lei no 9.430, de 1996, art. 70, § 3o, II); -e) o crédito presumido da contribuição para o PIS/Pasep e da Cofins concedido na -forma do art. 3o da Lei no 10.147, de 2000.","other","account.data_account_type_view","base.main_company" -"account_demo_4010501011000","4.01.05.01.01.10.00","Outras","account_demo_401050101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40107","4.01.07","DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010701","4.01.07.01","DESPESAS OPERACIONAIS","account_demo_40107"," ","view","account.data_account_type_view","base.main_company" -"account.expense_view","4.01.07.01.01","DESPESAS OPERACIONAIS","account_demo_4010701"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40107010100","4.01.07.01.01.00","Remunerações a Empregados","account.expense_view","Contas que registram os valores lançados como salários, gratificações, horas extras, adicionais e similares pag0s a empregados da entidade.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010200","4.01.07.01.02.00","Indenizações Trabalhistas","account.expense_view","Contas que registram os valores lançados como abonos pecuniários, indenização de 40% do FGTS, indenizações determinadas pelo Juiz e similares pagas aos empregados.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010300","4.01.07.01.03.00","Remuneração a Dirigentes e a Conselho de Administração/Fiscal","account.expense_view","Contas que registram a despesa incorrida relativa à remuneração mensal e fixa atribuída ao titular de firma individual, aos sócios, diretores e administradores de sociedades, ou aos representantes legais de sociedades estrangeiras, as despesas incorridas com os salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores (PN Cosit no 11, de 1992), e o valor referente às remunerações atribuídas aos membros do conselho fiscal/administração/consultivo.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010400","4.01.07.01.04.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account.expense_view","Contas que registram as despesas correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica declarante, tais como: comissões, corretagens, gratificações, honorários e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em geral.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010500","4.01.07.01.05.00","Prestação de Serviço por Pessoa Jurídica","account.expense_view","Contas que registram, salvo se houver conta mais específica, o valor das despesas correspondentes aos serviços prestados por outra pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010600","4.01.07.01.06.00","Doações e Patrocínios de Caráter Cultural e Artístico (Lei no 8.313/1991)","account.expense_view","Contas que registram as doações e patrocínios efetuados no período de apuração em favor de projetos culturais previamente aprovados pelo Ministério da Cultura ou pela Agência Nacional do Cinema (Ancine), observada a legislação de concessão dos projetos.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010700","4.01.07.01.07.00","Doações a Instituições de Ensino e Pesquisa (Lei no 9.249/1995, art.13, § 2o)","account.expense_view","Contas que registram as doações a instituições de ensino e pesquisa cuja criação tenha sido autorizada por lei federal e que preencham os requisitos dos incisos I e II do art. 213 da Constituição Federal, de 1988, que são: -a) comprovação de finalidade não-lucrativa e aplicação dos excedentes financeiros em educação; -b) assegurar a destinação do seu patrimônio a outra escola comunitária, filantrópica ou confessional, ou ao Poder Público, no caso de encerramento de suas atividades.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010800","4.01.07.01.08.00","Doações a Entidades Civis","account.expense_view","Contas que registram as doações efetuadas a: -a) entidades civis, legalmente constituídas no Brasil, sem fins lucrativos, que prestem serviços gratuitos em benefício de empregados da pessoa jurídica doadora, e respectivos dependentes, ou em benefício da comunidade na qual atuem; e -b) Organizações da Sociedade Civil de Interesse Público (OSCIP), qualificadas segundo as normas estabelecidas na Lei no 9.790, de 23 de março de 1999.","other","account.data_account_type_view","base.main_company" -"account_demo_40107010900","4.01.07.01.09.00","Outras Contribuições e Doações","account.expense_view","Contas que registram as doações feitas, entre outras, aos Fundos controlados pelos Conselhos Municipais, Estaduais e Nacional dos Direitos da Criança e do Adolescente.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011000","4.01.07.01.10.00","FGTS (sem indenização 40%)","account.expense_view","Contas que registram o FGTS, inclusive os valores do FGTS do 13º. salário. Não informar os valores de indenização da multa de 40% do FGTS nesse item, e sim, na conta Indenizações Trabalhistas .","other","account.data_account_type_view","base.main_company" -"account_demo_40107011100","4.01.07.01.11.00","Assistência Médica, Odontológica, Medicamentos, Aparelhos Ortopédicos e Similares","account.expense_view","Contas que registram as despesas com assistência médica, odontológica e farmacêutica. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011200","4.01.07.01.12.00","Provisões para Férias e 13o Salário de Empregados","account.expense_view","Contas que registram as despesas com a constituição de provisões para: a) pagamento de remuneração correspondente a férias e adicional de férias de empregados, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 337, e PN CST no 7, de 1980); b) o 13o salário, inclusive encargos sociais (Decreto no 3.000, de 1999, art. 338).","other","account.data_account_type_view","base.main_company" -"account_demo_40107011300","4.01.07.01.13.00","Demais Provisões","account.expense_view","Contas que registram as despesas com provisões não relacionadas nas contas específicas.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011400","4.01.07.01.14.00","Arrendamento Mercantil","account.expense_view","Contas que registram as despesas, não computadas nos custos, pagas ou creditadas a título de contraprestação de arrendamento mercantil, decorrentes de contrato celebrado com observância da Lei no 6.099, de 12 de setembro de 1974, com as alterações da Lei no 7.132, de 26 de outubro de 1983, e da Portaria MF no 140, de 1984","other","account.data_account_type_view","base.main_company" -"account_demo_40107011500","4.01.07.01.15.00","Aluguéis","account.expense_view","Contas que registram as despesas com aluguéis não decorrentes de arrendamento mercantil.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011600","4.01.07.01.16.00","Despesas com Veículos e de Conservação de Bens e Instalações","account.expense_view","Contas que registram as despesas relativas aos bens que não estejam ligados diretamente à produção, as realizadas com reparos que não impliquem aumento superior a um ano da vida útil do bem, prevista no ato de sua aquisição, e as relativas a combustíveis e lubrificantes para veículos.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011700","4.01.07.01.17.00","Propaganda e Publicidade","account.expense_view","Contas que registram as despesas com propaganda e publicidade. -Atenção: o valor referente à contratação de serviços de profissionais liberais sem vínculo empregatício ou de sociedades civis deve ser informado nas contas Prestação de Serviços por Pessoa Física sem Vínculo Empregatício ou Prestação de Serviço por Pessoa Jurídica , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011800","4.01.07.01.18.00","Multas","account.expense_view","Contas que registram as despesas com multas.","other","account.data_account_type_view","base.main_company" -"account_demo_40107011900","4.01.07.01.19.00","Encargos de Depreciação e Amortização","account.expense_view","Contas que registram apenas os encargos a esses títulos, com bens não aplicados diretamente na produção. Inclui a amortização dos ajustes de variação cambial contabilizada no ativo diferido, relativa à atividade geral da pessoa jurídica.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012000","4.01.07.01.20.00","Repasses para Outras Entidades (Sindicatos/Federações/Confederações)","account.expense_view","Contas que foram repassadas parte das contribuições/doações/mensalidades e similares para Sindicatos/Federações/Confederações.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012100","4.01.07.01.21.00","Contribuições Previdenciárias Patronais","account.expense_view","Contas que registram as contribuições previdenciárias devidas. No caso de imunes/isentas, informar o valor da contribuição previdenciária patronal devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012200","4.01.07.01.22.00","COFINS","account.expense_view","Contas que registram a Cofins devida. No caso de imunes/isentas, informar o valor da Cofins devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012300","4.01.07.01.23.00","CSLL","account.expense_view","Contas que registram a CSLL devida. No caso de imunes/isentas, informar o valor da CSLL devida como se sem isenção estivesse, devendo fazer um novo lançamento de reversão para evidenciar que é isenta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012400","4.01.07.01.24.00","PIS/PASEP","account.expense_view","Contas que registram o valor da contribuição para o PIS/PASEP devida.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012500","4.01.07.01.25.00","CPMF","account.expense_view","Contas que registram o valor da CPMF devida.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012600","4.01.07.01.26.00","Demais Impostos, Taxas e Contribuições, exceto as citadas acima.","account.expense_view","Contas que registram os demais impostos, taxas e contribuições, exceto: -a) incorporadas ao custo de bens do ativo permanente; -b) correspondentes aos impostos não recuperáveis, incorporados ao custo das matérias-primas, materiais secundários, materiais de embalagem e mercadorias destinadas à revenda; -c) correspondentes aos impostos recuperáveis; -d) correspondentes aos impostos e contribuições redutores da receita bruta.","other","account.data_account_type_view","base.main_company" -"account_demo_40107012700","4.01.07.01.27.00","Outras Despesas Operacionais","account.expense_view"," ","other","account.data_account_type_view","base.main_company" -"account_demo_40109","4.01.09","OUTRAS DESPESAS OPERACIONAIS","account_demo_401"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010901","4.01.09.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_40109"," ","view","account.data_account_type_view","base.main_company" -"account_demo_401090101","4.01.09.01.01","OUTRAS DESPESAS OPERACIONAIS","account_demo_4010901"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4010901010100","4.01.09.01.01.01.00","(-) Variações Cambiais Passivas","account_demo_401090101","Contas que registram as perdas monetárias passivas resultantes da atualização dos direitos de créditos e das obrigações, calculadas com base nas variações nas taxas de câmbio (Lei no 9.069, de 1995, art.52, e Lei no 9.249, de 1995, art. 8o), inclusive a variação cambial passiva correspondente: -a) à atualização das obrigações e dos créditos em moeda estrangeira, registrada em qualquer data e apurada no encerramento do período de apuração em função da taxa de câmbio vigente; -b) às operações com moeda estrangeira e conversão de obrigações para moeda nacional, ou novação dessas obrigações, ou sua extinção, total ou parcial, em virtude de capitalização, dação em pagamento, compensação, ou qualquer outro modo, desde que observadas as condições fixadas pelo Banco Central do Brasil.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010200","4.01.09.01.01.02.00","(-) Perdas Incorridas no Mercado de Renda Variável, exceto Day-Trade","account_demo_401090101","Contas que registram: -a) o somatório das perdas incorridas, em cada mês do período de apuração, em operações realizadas nas bolsas de valores, de mercadorias, de futuros e assemelhadas, existentes no País; -b) as perdas incorridas nas alienações, fora de bolsa, de ouro, ativo financeiro e de participações societárias, exceto as alienações de participações societárias permanentes em sociedades coligadas e controladas e de participações societárias, que permanecerem no ativo da pessoa jurídica até o término do ano-calendário seguinte ao de suas aquisições; e -c) as perdas em operações de swap e no resgate de quota de fundo de investimento que mantenha, no mínimo, 67% (sessenta e sete por cento) de ações negociadas no mercado a vista de bolsa de valores ou entidade assemelhada (Lei no 9.532, de 1997, art. 28, alterado pela MP no 1.636, de 1998, art. 2o, e reedições).São consideradas assemelhadas às bolsas de valores, de mercadorias e de futuros, as entidades cujo objeto social seja análogo ao das referidas bolsas e que funcionem sob a supervisão e fiscalização da Comissão de Valores Mobiliários (CVM). Atenção: As perdas apuradas em operações day-trade devem ser informadas em conta própria.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010300","4.01.09.01.01.03.00","(-) Perdas em Operações Day-Trade","account_demo_401090101","Contas que registram o somatório das perdas diárias apuradas, em cada mês do período de apuração, em operações day-trade.Não se caracteriza como day-trade o exercício da opção e a venda ou compra do ativo no mercado a vista, no mesmo dia.Também não se caracterizam como day-trade as operações iniciadas por intermédio de uma instituição e encerradas em outra, quando houver a liquidação física mediante movimentação de títulos ou valores mobiliários em custódia.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010400","4.01.09.01.01.04.00","(-) Outras Despesas de Aplicações","account_demo_401090101","Contas que registram as despesas relativas a juros, não incluídas em outras contas, a descontos de títulos de crédito e outros títulos. Tais despesas serão obrigatoriamente rateadas, segundo o regime de competência. -Atenção: -1) as variações monetárias passivas decorrentes da atualização das -obrigações, em função de índices ou coeficientes aplicáveis por disposição legal ou contratual, devem ser informadas como despesas financeiras; -2) as variações cambiais passivas não devem ser informadas nesta conta, e sim na conta Variações Cambiais Passivas .","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010500","4.01.09.01.01.05.00","(-) Prejuízos na Alienação de Participações Não Integrantes do Ativo Permanente","account_demo_401090101","Contas que registram os prejuízos havidos em virtude de alienação, títulos não integrantes do ativo permanente, desde que não incluídos nas contas acima.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010600","4.01.09.01.01.06.00","(-) Resultados Negativos em Participações Societárias","account_demo_401090101","Contas que registram as perdas por ajustes no valor de investimentos relevantes, avaliados pelo método da equivalência patrimonial, decorrentes de prejuízos apurados nas controladas e coligadas. -Atenção: considera-se controlada a filial, a agência, a sucursal, a dependência ou o escritório de representação no exterior, sempre que os respectivos ativos e passivos não estejam incluídos na contabilidade da investidora, por força de normatização específica. -Devem, também, ser indicados nesta conta os resultados negativos derivados de participações societárias no exterior, avaliadas pelo patrimônio líquido. Incluem-se, nestas informações, as perdas apuradas em filiais, sucursais e agências da pessoa jurídica localizadas no exterior.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010700","4.01.09.01.01.07.00","(-) Perdas em Operações Realizadas no Exterior","account_demo_401090101","Contas que registram as perdas em operações realizadas no exterior diretamente pela pessoa jurídica domiciliada no Brasil, com exceção das perdas de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior, que devem ser indicadas na conta Outras Despesas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_4010901010800","4.01.09.01.01.08.00","Outras Despesas Operacionais","account_demo_401090101"," ","other","account.data_account_type_view","base.main_company" -"account_demo_403","4.03","OUTRAS RECEITAS E DESPESAS","account.gpf"," ","view","account.data_account_type_view","base.main_company" -"account_demo_40301","4.03.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_403"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030101","4.03.01.01","RECEITAS E DESPESAS NÃO OPERACIONAIS","account_demo_40301"," ","view","account.data_account_type_view","base.main_company" -"account_demo_403010101","4.03.01.01.01","RECEITAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030101010100","4.03.01.01.01.01.00","Receitas de Alienações de Bens e Direitos do Ativo Permanente.","account_demo_403010101","Contas que registram as receitas auferidas por meio de alienações, inclusive por desapropriação de bens e direitos do ativo permanente. O valor relativo às receitas obtidas pela venda de sucata e de bens ou direitos do ativo permanente baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso deve ser informado na conta Outras Receitas Não Operacionais . Os valores correspondentes ao ganho ou perda de capital decorrente da alienação de bens e direitos do ativo permanente situados no exterior devem ser indicados, pelo seu resultado, nas contas Outras Receitas Não Operacionais ou Outras Despesas Não Operacionais , conforme o caso.","other","account.data_account_type_view","base.main_company" -"account_demo_4030101010200","4.03.01.01.01.02.00","Outras Receitas Não Operacionais","account_demo_403010101","Contas que registram: -a) todas as demais receitas decorrentes de operações não incluídas nas atividades principais e acessórias da empresa, tais como: a reversão do saldo da provisão para perdas prováveis na realização de investimentos e a reserva de reavaliação realizada no período de apuração, quando computada em conta de resultado; -b) os ganhos de capital por variação na percentagem de participação no capital social de coligada ou controlada, quando o investimento for avaliado pela -equivalência patrimonial (Decreto no 3.000, de 1999, art. 428); -c) os ganhos de capital decorrentes da alienação de bens e direitos do ativo permanente situados no exterior. -Devem ser indicadas tanto as contas que registram as receitas quanto as que registram os custos.","other","account.data_account_type_view","base.main_company" -"account_demo_403020101","4.03.02.01.01","DESPESAS NÃO OPERACIONAIS","account_demo_4030101"," ","view","account.data_account_type_view","base.main_company" -"account_demo_4030201010100","4.03.02.01.01.01.00","(-) Valor Contábil dos Bens e Direitos Alienados","account_demo_403020101","Contas que registram o valor contábil dos bens do ativo permanente baixados no curso do período de apuração, cuja receita da venda tenha sido indicada na conta Receitas de Alienações de Bens e Direitos do Ativo Permanente . O valor contábil de bens ou direitos baixados em virtude de terem se tornado imprestáveis, obsoletos ou caído em desuso e o valor contábil de bens ou direitos situados no exterior devem ser informados na conta Outras Receitas Não Operacionais.","other","account.data_account_type_view","base.main_company" -"account_demo_4030201010200","4.03.02.01.01.02.00","(-) Outras Despesas Não Operacionais","account_demo_403020101","Contas que registram: -a) o valor contábil dos bens do ativo permanente baixados no curso do período de apuração não incluídos na conta precedente e a despesa com a constituição da provisão para perdas prováveis na realização de investimentos; -Atenção: sobre a definição de valor contábil, consultar o § 1o do art. 418 e o art. 426, ambos do Decreto no 3.000, de 1999. -b) as perdas de capital por variação na percentagem de participação no capital social de coligada ou controlada no Brasil, quando o investimento for avaliado pela equivalência patrimonial (Decreto no 3.000, de 1999, art. 428).","other","account.data_account_type_view","base.main_company" -"account_demo_5",5,"CUSTOS DE PRODUÇÃO","account.chart0",,"view","account.data_account_type_expense","base.main_company" -"account_demo_501","5.01","CUSTO DOS BENS E SERVIÇOS PRODUZIDOS","account_demo_5"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_50101","5.01.01","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_501010100","5.01.01.01.00","Consumo de Insumos","account_demo_50101","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material direto e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010400","5.01.01.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50101","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010500","5.01.01.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50101","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010503","5.01.01.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501010505","5.01.01.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501010507","5.01.01.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50101","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010509","5.01.01.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50101","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010600","5.01.01.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501010700","5.01.01.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501010800","5.01.01.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50101","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501010900","5.01.01.09.00","Locação de Mão-de-obra","account_demo_50101","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501011000","5.01.01.10.00","Encargos Sociais – Previdência Social","account_demo_50101","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011100","5.01.01.11.00","Encargos Sociais – FGTS","account_demo_50101","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011200","5.01.01.12.00","Encargos Sociais – Outros","account_demo_50101","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011300","5.01.01.13.00","Alimentação do Trabalhador","account_demo_50101","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011400","5.01.01.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50101","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011500","5.01.01.15.00","Arrendamento Mercantil","account_demo_50101","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL","other","account.data_account_type_expense","base.main_company" -"account_demo_501011600","5.01.01.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50101","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011700","5.01.01.17.00","Constituição de Provisões","account_demo_50101","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501011800","5.01.01.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501011900","5.01.01.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50101","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501012000","5.01.01.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501012100","5.01.01.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50101","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501019000","5.01.01.90.00","Outros Custos","account_demo_50101","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" -"account_demo_50103","5.01.03","CUSTO DOS SERVIÇOS PRODUZIDOS","account_demo_501",,"view","account.data_account_type_expense","base.main_company" -"account_demo_501030200","5.01.03.02.00","Material Aplicado na Produção de Serviços","account_demo_50103","Contas correspondentes aos materiais aplicados diretamente na produção de serviços dos serviços durante o período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030400","5.01.03.04.00","Remuneração a Dirigentes ligados à Produção de Serviços","account_demo_50103","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção de serviços, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção de serviços (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção de serviços, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030500","5.01.03.05.00","Custo do Pessoal Aplicado na Produção de Serviços","account_demo_50103","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção de serviços da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030503","5.01.03.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" -"account_demo_501030505","5.01.03.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção de serviços","other","account.data_account_type_expense","base.main_company" -"account_demo_501030507","5.01.03.05.07","Plano de Previdência Privada de Empregados Ligados à Produção de Serviços","account_demo_50103","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030509","5.01.03.05.09","Outros Gastos com Pessoal Ligado à Produção de Serviços","account_demo_50103","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030600","5.01.03.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501030700","5.01.03.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501030800","5.01.03.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50103","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501030900","5.01.03.09.00","Locação de Mão-de-obra","account_demo_50103","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501031000","5.01.03.10.00","Encargos Sociais – Previdência Social","account_demo_50103","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031100","5.01.03.11.00","Encargos Sociais – FGTS","account_demo_50103","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria – PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção de serviços.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031200","5.01.03.12.00","Encargos Sociais – Outros","account_demo_50103","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção de serviços, não classificados nas contas Encargos Sociais - Previdência Social ou Encargos Sociais - FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031300","5.01.03.13.00","Alimentação do Trabalhador","account_demo_50103","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção de serviços, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031400","5.01.03.14.00","Manutenção e Reparo de Bens Aplicados na Produção de Serviços","account_demo_50103","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031500","5.01.03.15.00","Arrendamento Mercantil","account_demo_50103","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção de serviços, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção de serviços, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção de serviços devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031600","5.01.03.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50103","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção de serviços. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção de serviços devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DAS ATIVIDADES EM GERAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031700","5.01.03.17.00","Constituição de Provisões","account_demo_50103","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção de serviços da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501031800","5.01.03.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501031900","5.01.03.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50103","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501032000","5.01.03.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501032100","5.01.03.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50103","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501039000","5.01.03.90.00","Outros Custos","account_demo_50103","Contas que representam os demais custos da empresa no processo de produção de serviços, para os quais não haja conta mais específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" -"account_demo_50105","5.01.05","CUSTO DOS PRODUTOS DE FABRICAÇÃO PRÓPRIA PRODUZIDOS DA ATIVIDADE RURAL","account_demo_501"," ","view","account.data_account_type_expense","base.main_company" -"account_demo_501050100","5.01.05.01.00","Consumo de Insumos","account_demo_50105","Contas que registram o consumo, durante o período de apuração, de matéria-prima, material secundário e material de embalagem, no mercado interno e externo, para utilização no processo produtivo, os valores referentes aos custos com transporte e seguro até o estabelecimento do contribuinte, os tributos não recuperáveis devidos na importação e o custo relativo ao desembaraço aduaneiro.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050400","5.01.05.04.00","Remuneração a Dirigentes de Ligados à Produção","account_demo_50105","Contas que registram: -a) a remuneração mensal e fixa dos dirigentes diretamente ligados à produção, pelo valor total do custo incorrido no período de apuração, exceto os encargos sociais (Previdência Social e FGTS) que são informados em conta distinta; -b) o valor relativo aos custos incorridos com salários indiretos concedidos pela empresa a administradores, diretores, gerentes e seus assessores, se ligados diretamente à produção (PN Cosit nº 11, de 30 de setembro de 1992). -Atenção: deve ser incluído nesta conta o valor das gratificações dos dirigentes ligados à produção, inclusive o 13º salário.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050500","5.01.05.05.00","Custo do Pessoal Aplicado na Produção","account_demo_50105","Contas que representem do custo com ordenados, salários e outros custos com empregados ligados à produção da empresa, tais como: moradia, seguro de vida e outras de caráter remuneratório. Inclusive os custos com supervisão direta, manutenção e guarda das instalações, decorrentes de vínculo empregatício com a pessoa jurídica.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050503","5.01.05.05.03","Planos de Poupança e Investimentos de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Poupança e Investimentos (PAIT), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501050505","5.01.05.05.05","Fundo de Aposentadoria Programada Individual de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Fundos de Aposentadoria Programada Individual (FAPI), relativos ao pessoal ligado à produção","other","account.data_account_type_expense","base.main_company" -"account_demo_501050507","5.01.05.05.07","Plano de Previdência Privada de Empregados Ligados à Produção","account_demo_50105","Contas que registram o valor total dos gastos efetuados com Planos de Previdência Privada, relativos ao pessoal ligado à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050509","5.01.05.05.09","Outros Gastos com Pessoal Ligado à Produção","account_demo_50105","Contas que registram os gastos com empregados, computados nos custos, não enquadrados nas contas precedentes. -Atenção: não deve ser informado nesta conta o valor referente às participações dos empregados no lucro da pessoa jurídica. Esse valor deve ser informado na conta Participações de Empregados.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050600","5.01.05.06.00","Prestação de Serviços por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica, os gastos correspondentes aos serviços prestados por pessoa física que não tenha vínculo empregatício com a pessoa jurídica, tais como: comissões, corretagens, gratificações, honorários, direitos autorais e outras remunerações, inclusive as relativas a empreitadas de obras exclusivamente de trabalho e as decorrentes de fretes e carretos em gera, computadas nos custos.","other","account.data_account_type_expense","base.main_company" -"account_demo_501050700","5.01.05.07.00","Prestação de Serviço Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica, o valor dos gastos correspondentes aos serviços prestados por outra pessoa jurídica à pessoa jurídica declarante, computados nos custos","other","account.data_account_type_expense","base.main_company" -"account_demo_501050800","5.01.05.08.00","Serviços Prestados por Cooperativa de Trabalho","account_demo_50105","Contas que registram os serviços prestados por cooperativa de trabalho","other","account.data_account_type_expense","base.main_company" -"account_demo_501050900","5.01.05.09.00","Locação de Mão-de-obra","account_demo_50105","Contas que registram o valor total dos gastos efetuados no período com a contratação de serviços executados mediante cessão de mão-de-obra ou empreitada, inclusive em regime temporário, sujeitos à retenção de contribuição previdenciária, nos termos do art. 219 do Regulamento da Previdência Social - RPS, aprovado pelo Decreto nº 3.048, de 1999","other","account.data_account_type_expense","base.main_company" -"account_demo_501051000","5.01.05.10.00","Encargos Sociais – Previdência Social","account_demo_50105","Contas que registram as contribuições para a Previdência Social (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051100","5.01.05.11.00","Encargos Sociais – FGTS","account_demo_50105","Contas que registram as contribuições para o FGTS (inclusive dos dirigentes de indústria - PN CST no 35, de 31 de agosto de 1981), relativas ao pessoal ligado diretamente à produção.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051200","5.01.05.12.00","Encargos Sociais – Outros","account_demo_50105","Contas que registram encargos sociais, relativos ao pessoal ligado diretamente à produção, não classificados nas contas Encargos Sociais – Previdência Social ou Encargos Sociais – FGTS.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051300","5.01.05.13.00","Alimentação do Trabalhador","account_demo_50105","Contas que registram os custos com alimentação do pessoal ligado diretamente à produção, realizados durante o período de apuração, ainda que a pessoa jurídica não tenha Programa de Alimentação do Trabalhador aprovado pelo Ministério do Trabalho.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051400","5.01.05.14.00","Manutenção e Reparo de Bens Aplicados na Produção","account_demo_50105","Contas que representam somente os custos realizados com reparos que não implicaram aumento superior a um ano da vida útil prevista no ato da aquisição do bem.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051500","5.01.05.15.00","Arrendamento Mercantil","account_demo_50105","Contas que representam o valor do custo incorrido a título de contraprestação de arrendamento mercantil de bens alocados na produção, segundo contratos celebrados com observância da Lei nº 6.099, de 12 de setembro de 1974, com as alterações da Lei nº 7.132, de 26 de outubro de 1983. Os custos com aluguel de outros bens alocados à produção, mediante contrato diferente do de arrendamento mercantil, devem ser indicados em ""Outros Custos"". Os valores referentes a bens que não sejam intrinsecamente relacionados com a produção devem ser informados na conta Arrendamento Mercantil do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051600","5.01.05.16.00","Encargos de Depreciação, Amortização e Exaustão","account_demo_50105","Contas que registram os encargos a esses títulos com bens aplicados diretamente na produção. Os encargos que não forem decorrentes de bens intrinsecamente relacionados com a produção devem ser informados na conta Encargos de Depreciação e Amortização do grupo DESPESAS OPERACIONAIS DA ATIVIDADE RURAL.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051700","5.01.05.17.00","Constituição de Provisões","account_demo_50105","Contas que registram os encargos com a constituição de provisões que devam ser imputados aos custos de produção da empresa no período de apuração.","other","account.data_account_type_expense","base.main_company" -"account_demo_501051800","5.01.05.18.00","Serviços Prestados por Pessoa Física sem Vínculo Empregatício","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados à pessoa jurídica por pessoa física sem vínculo empregatício, relacionados com a atividade industrial da pessoa jurídica .","other","account.data_account_type_expense","base.main_company" -"account_demo_501051900","5.01.05.19.00","Serviços Prestados Pessoa Jurídica","account_demo_50105","Contas que registram, salvo se houver conta mais específica neste plano referencial, os custos correspondentes aos serviços prestados por pessoa jurídica, relacionados com atividade industrial da pessoa jurídica declarante.","other","account.data_account_type_expense","base.main_company" -"account_demo_501052000","5.01.05.20.00","Royalties e Assistência Técnica – PAÍS","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no Brasil, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501052100","5.01.05.21.00","Royalties e Assistência Técnica – EXTERIOR","account_demo_50105","Contas que registram as importâncias pagas a beneficiário pessoa física ou jurídica, residente ou domiciliado no exterior, a título de royalties e assistência técnica, científica ou assemelhada, que estejam relacionadas com a atividade industrial.","other","account.data_account_type_expense","base.main_company" -"account_demo_501059000","5.01.05.90.00","Outros Custos","account_demo_50105","Contas que representam os demais custos da empresa no processo de produção, para os quais não haja conta maIs específica ou cujas classificações contábeis não se adaptem à nomenclatura específica, tais como: custo referente ao valor de bens de consumo eventual; as quebras ou perdas de estoque, e as ocorridas na fabricação, no transporte e manuseio.","other","account.data_account_type_expense","base.main_company" diff --git a/l10n_br_account/demo/account_financial_demo.xml b/l10n_br_account/demo/account_financial_demo.xml deleted file mode 100644 index 1e63c88d5f1a..000000000000 --- a/l10n_br_account/demo/account_financial_demo.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - True - - A Vista - - - - - 07 e 14 dias liquidos - 07 / 14 DDL - - - - - - procent - - - - - - - balance - - - - - - 07 / 28 DDL - - - - - - - procent - - - - - - - balance - - - - - 35 DDL - - 35 dias - - - - - - balance - - - - - - 45 dias - 45 DDL - - - - - - balance - - - - - - diff --git a/l10n_br_account/demo/account_fiscal_demo.xml b/l10n_br_account/demo/account_fiscal_demo.xml deleted file mode 100644 index 2ab3c1317eb3..000000000000 --- a/l10n_br_account/demo/account_fiscal_demo.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - Diário de Vendas - (test) - - - - - Nota de Crédito de Vendas - (test) - - - - Diário de Depesas - (test) - - - - - Nota de Crédito de Despesas - (test) - - - - Diário Bancário - (test) - - - - Diário de Cheques - (test) - - - - Diário de Caixa - (test) - - - - Diário de Abertura - (test) - - - - - diff --git a/l10n_br_account/demo/account_tax_code.xml b/l10n_br_account/demo/account_tax_code.xml deleted file mode 100644 index 20400662a79a..000000000000 --- a/l10n_br_account/demo/account_tax_code.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - Códigos de Impostos Brasileiros - 1 - - - - - IRPJ - IRPJ - irpj - 1 - - - - - - IR - IR - ir - 1 - - - - - - ISSQN - ISSQN - issqn - 1 - - - - - - CSLL - CSLL - csll - 1 - - - - - - - From f5c90ab5811d86c95ce3c899d3705aa211924b01 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:06:31 -0200 Subject: [PATCH 0585/1549] migrate base demo data --- l10n_br_account/demo/base_demo.xml | 518 ++++++++++++----------------- 1 file changed, 205 insertions(+), 313 deletions(-) diff --git a/l10n_br_account/demo/base_demo.xml b/l10n_br_account/demo/base_demo.xml index df142ac0254f..5357a2495bf6 100644 --- a/l10n_br_account/demo/base_demo.xml +++ b/l10n_br_account/demo/base_demo.xml @@ -1,314 +1,206 @@ - - - - - - - Sua Empresa - Sua Empresa - Avenida Paulista - 1 - Bela Vista - - - 01311-000 - - Slogan da Sua Empresa - www.suaempresa.com.br - +55 11 9999-9999 - info@suaempresa.com.br - 81.583.054/0001-29 - 078.016.350.838 - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Sua Empresa + Sua Empresa + Avenida Paulista + 1 + Bela Vista + + + 01311-000 + + Slogan da Sua Empresa + www.suaempresa.com.br + +55 11 9999-9999 + info@suaempresa.com.br + 81.583.054/0001-29 + 078.016.350.838 + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 61ef22eb5e90c5a38246c4ff11055a0412184b92 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:06:58 -0200 Subject: [PATCH 0586/1549] migrate l10n_br_account data --- l10n_br_account/data/l10n_br_account_data.xml | 305 +----------------- 1 file changed, 2 insertions(+), 303 deletions(-) diff --git a/l10n_br_account/data/l10n_br_account_data.xml b/l10n_br_account/data/l10n_br_account_data.xml index 6e8e97e95b13..9fc7ffbbe4ea 100644 --- a/l10n_br_account/data/l10n_br_account_data.xml +++ b/l10n_br_account/data/l10n_br_account_data.xml @@ -1,5 +1,5 @@ - + @@ -67,306 +67,5 @@ 3 - - - ICMS Simples Nacional 1,25% - ICMS Simples Nacional 1,25% - 0.0125 - - - - - - - - - - - - - ICMS Simples Nacional 1,86% - ICMS Simples Nacional 1,86% - 0.0186 - - - - - - - - - - - - - ICMS Simples Nacional 2,33% - ICMS Simples Nacional 2,33% - 0.0233 - - - - - - - - - - - - - ICMS Simples Nacional 2,56% - ICMS Simples Nacional 2,56% - 0.0256 - - - - - - - - - - - - - ICMS Simples Nacional 2,58% - ICMS Simples Nacional 2,58% - 0.0258 - - - - - - - - - - - - - ICMS Simples Nacional 2,82% - ICMS Simples Nacional 2,82% - 0.0282 - - - - - - - - - - - - - ICMS Simples Nacional 2,84% - ICMS Simples Nacional 2,84% - 0.0284 - - - - - - - - - - - - - ICMS Simples Nacional 2,87% - ICMS Simples Nacional 2,87% - 0.0287 - - - - - - - - - - - - - ICMS Simples Nacional 3,07% - ICMS Simples Nacional 3,07% - 0.0307 - - - - - - - - - - - - - ICMS Simples Nacional 3,10% - ICMS Simples Nacional 3,10% - 0.0310 - - - - - - - - - - - - - ICMS Simples Nacional 3,38% - ICMS Simples Nacional 3,38% - 0.0338 - - - - - - - - - - - - - ICMS Simples Nacional 3,41% - ICMS Simples Nacional 3,41% - 0.0341 - - - - - - - - - - - - - ICMS Simples Nacional 3,45% - ICMS Simples Nacional 3,45% - 0.0345 - - - - - - - - - - - - - ICMS Simples Nacional 3,48% - ICMS Simples Nacional 3,48% - 0.0348 - - - - - - - - - - - - - ICMS Simples Nacional 3,51% - ICMS Simples Nacional 3,51% - 0.0351 - - - - - - - - - - - - - ICMS Simples Nacional 3,82% - ICMS Simples Nacional 3,82% - 0.0382 - - - - - - - - - - - - - ICMS Simples Nacional 3,85% - ICMS Simples Nacional 3,85% - 0.0385 - - - - - - - - - - - - - ICMS Simples Nacional 3,88% - ICMS Simples Nacional 3,88% - 0.0388 - - - - - - - - - - - - - ICMS Simples Nacional 3,91% - ICMS Simples Nacional 3,91% - 0.0391 - - - - - - - - - - - - - ICMS Simples Nacional 3,95% - ICMS Simples Nacional 3,95% - 0.0395 - - - - - - - - - - - - + From 90822374c10dd57911678ef86c9d268285a8263a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:07:34 -0200 Subject: [PATCH 0587/1549] migrate security files --- l10n_br_account/security/ir.model.access.csv | 4 +--- l10n_br_account/security/l10n_br_account_security.xml | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/l10n_br_account/security/ir.model.access.csv b/l10n_br_account/security/ir.model.access.csv index d62107cbba6f..07e0bd8a0d56 100644 --- a/l10n_br_account/security/ir.model.access.csv +++ b/l10n_br_account/security/ir.model.access.csv @@ -25,12 +25,10 @@ "l10n_br_account_service_type_invoice","l10n_br_account.service.type","model_l10n_br_account_service_type","account.group_account_invoice",1,0,0,0 "l10n_br_account_invoice_invalid_number_manager","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_manager",1,1,1,1 "l10n_br_account_invoice_invalid_number_user","l10n_br_account.invoice.invalid.number","model_l10n_br_account_invoice_invalid_number","account.group_account_invoice",1,0,0,0 -"account_tax_computation_user","account.tax.computation","model_account_tax_computation","account.group_account_invoice",1,0,0,0 -"account_tax_computation_manager","account.tax.computation","model_account_tax_computation","account.group_account_manager",1,1,1,1 "l10n_br_account_invoice_cancel_user","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_invoice",1,0,0,0 "l10n_br_account_invoice_cancel_manager","l10n_br_account_invoice.cancel","model_l10n_br_account_invoice_cancel","account.group_account_manager",1,1,1,1 "l10n_br_account_document_event_user","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_invoice",1,0,0,0 "l10n_br_account_document_event_manager","l10n_br_account.document_event","model_l10n_br_account_document_event","account.group_account_manager",1,1,1,1 "l10n_br_account_invoice_cce_manager","l10n_br_account_invoice_cce","model_l10n_br_account_invoice_cce","account.group_account_manager",1,1,1,1 -"access_account_tax_code_user","access_account_tax_code_user","account.model_account_tax_code","base.group_user",1,0,0,0 +"access_account_tax_group_user","access_account_tax_group_user","account.model_account_tax_group","base.group_user",1,0,0,0 "l10n_br_account_partner_fiscal_type_user","l10n_br_account_partner_fiscal_type_user","model_l10n_br_account_partner_fiscal_type","base.group_user",1,0,0,0 diff --git a/l10n_br_account/security/l10n_br_account_security.xml b/l10n_br_account/security/l10n_br_account_security.xml index a3851182a76f..ecc9144077d9 100644 --- a/l10n_br_account/security/l10n_br_account_security.xml +++ b/l10n_br_account/security/l10n_br_account_security.xml @@ -1,5 +1,5 @@ - + @@ -16,4 +16,4 @@ - + From 97785922ea45be960ef128440f4f9dbe81ca9304 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:08:43 -0200 Subject: [PATCH 0588/1549] migrate invoice report --- l10n_br_account/report/account_invoice_report.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/l10n_br_account/report/account_invoice_report.py b/l10n_br_account/report/account_invoice_report.py index 49f00e4205f3..46ccbbe2ac2c 100644 --- a/l10n_br_account/report/account_invoice_report.py +++ b/l10n_br_account/report/account_invoice_report.py @@ -19,8 +19,8 @@ class AccountInvoiceReport(models.Model): ('sefaz_cancelled', u'Cancelado no Sefaz'), ('sefaz_denied', u'Denegada no Sefaz'), ]) - internal_number = fields.Char( - string='Invoice Number', + number = fields.Char( + string='Number', size=32, readonly=True, ) @@ -52,7 +52,7 @@ class AccountInvoiceReport(models.Model): def _select(self): return super(AccountInvoiceReport, self)._select() + ( ", sub.fiscal_category_id as fiscal_category_id" - ", sub.internal_number as internal_number" + ", sub.number as number" ", sub.fiscal_document_electronic as fiscal_document_electronic" ", sub.document_serie_id as document_serie_id" ", CASE WHEN sub.revenue_expense = 't' THEN 'Gera Financeiro' " @@ -64,7 +64,7 @@ def _select(self): def _sub_select(self): return super(AccountInvoiceReport, self)._sub_select() + ( ", ail.fiscal_category_id as fiscal_category_id" - ", ai.internal_number as internal_number" + ", ai.number as number" ", ai.fiscal_document_electronic as fiscal_document_electronic" ", ai.document_serie_id as document_serie_id" ", ai.revenue_expense as revenue_expense" @@ -75,7 +75,7 @@ def _sub_select(self): def _group_by(self): return super(AccountInvoiceReport, self)._group_by() + ( ", ail.fiscal_category_id" - ", ai.internal_number" + ", ai.number" ", ai.fiscal_document_electronic" ", ai.document_serie_id" ", ai.revenue_expense" From 075ccd3ce6bb3bc13e45e7c2522994f1f4b305e6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:09:12 -0200 Subject: [PATCH 0589/1549] migrate fiscal position rule view --- .../account_fiscal_position_rule_view.xml | 234 +++++++++--------- 1 file changed, 115 insertions(+), 119 deletions(-) diff --git a/l10n_br_account/views/account_fiscal_position_rule_view.xml b/l10n_br_account/views/account_fiscal_position_rule_view.xml index ffe27d0d4df6..2e3d52af6144 100644 --- a/l10n_br_account/views/account_fiscal_position_rule_view.xml +++ b/l10n_br_account/views/account_fiscal_position_rule_view.xml @@ -1,131 +1,127 @@ - - + - - l10n_br_account.fiscal.position.rule.template.tree + + l10n_br_account.fiscal.position.rule.template.tree + + account.fiscal.position.rule.template + + + + + - account.fiscal.position.rule.template - - - - - - - - + + - - l10n_br_account.fiscal.position.rule.tree - account.fiscal.position.rule - - - - - - + + l10n_br_account.fiscal.position.rule.tree + account.fiscal.position.rule + + + + + - + + - - l10n_br_account.fiscal.position.rule.template.form - account.fiscal.position.rule.template - - - - - - - - - - - - - - - - - - - - - + + l10n_br_account.fiscal.position.rule.template.form + account.fiscal.position.rule.template + + + + + + + + + + + + + + + + - - - - l10n_br_account.fiscal.position.rule.form - account.fiscal.position.rule - - - - - - - - - - - - - - - - - - - - - + + - + + - - l10n_br_sale.fiscal.position.rule.template.search - account.fiscal.position.rule.template - - - - - - - - - - - - - - - - - - + + l10n_br_account.fiscal.position.rule.form + account.fiscal.position.rule + + + + + + + + + + + + + + + + - - - - l10n_br_sale.fiscal.position.rule.search - account.fiscal.position.rule - - - - - - - - - - - - - - - - + + - + + + + + l10n_br_sale.fiscal.position.rule.template.search + account.fiscal.position.rule.template + + + + + + + + + + + + + + + + + + + + + + + l10n_br_sale.fiscal.position.rule.search + account.fiscal.position.rule + + + + + + + + + + + + + + + + + + - - + From 8893cba0bc92616ef77cd1f48e9cd1c805eca744 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:09:33 -0200 Subject: [PATCH 0590/1549] migrate account invoice view --- .../views/account_invoice_view.xml | 156 +++++++++--------- 1 file changed, 74 insertions(+), 82 deletions(-) diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index 324e3569139a..b57dc02061b8 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -1,91 +1,83 @@ - - - - l10n_br_account.partner.filter - account.invoice - - - - - - - - + + + + l10n_br_account.partner.filter + account.invoice + + + + + + - + + - - - l10n_br_account.invoice.form - account.invoice - - - - - - - - - - - - - - - - - - - + + + l10n_br_account.invoice.form + account.invoice + + + + + + + + + + + + + + + + + - - + + + - - l10n_br_account.invoice.tree - account.invoice - - - - - - - - - - - - - - - - - - - - - + - - + From c0f61a3a19aa1e65fdeae9ec30477f87717b1429 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:09:43 -0200 Subject: [PATCH 0591/1549] migrate account view --- l10n_br_account/views/account_view.xml | 62 +++++++++++--------------- 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/l10n_br_account/views/account_view.xml b/l10n_br_account/views/account_view.xml index f0f727b0c6d2..89782a5e2bfc 100644 --- a/l10n_br_account/views/account_view.xml +++ b/l10n_br_account/views/account_view.xml @@ -1,42 +1,30 @@ - - + - - l10n_br_account.journal.form - account.journal - - - - - - - - - - - + + l10n_br_account.journal.form + account.journal + + + + + + + + + + + - - l10n_br_account.move.line.form - account.move.line - - - - - + + l10n_br_account.move.line.form + account.move.line + + + + - + + - - account.tax - account.tax - - - - - - - - - + From 2001ddf5f086539f2786d56ce699987edd02c8ed Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Thu, 15 Dec 2016 19:10:31 -0200 Subject: [PATCH 0592/1549] migrate account fiscal position view --- .../views/l10n_br_account_view.xml | 1143 ++++++++--------- l10n_br_account/views/res_partner_view.xml | 137 +- 2 files changed, 618 insertions(+), 662 deletions(-) diff --git a/l10n_br_account/views/l10n_br_account_view.xml b/l10n_br_account/views/l10n_br_account_view.xml index 3b5f8b70e9e5..fe1abedfdb1b 100644 --- a/l10n_br_account/views/l10n_br_account_view.xml +++ b/l10n_br_account/views/l10n_br_account_view.xml @@ -1,598 +1,595 @@ - - + - - - + + + - - - - l10n_br_account.invoice.cancel.form - l10n_br_account.invoice.cancel - -
- - - - + + + + l10n_br_account.invoice.cancel.form + l10n_br_account.invoice.cancel + + + + + + + + + + + + + + + + + + + + l10n_br_account.invoice.cce.form + l10n_br_account.invoice.cce + +
+ + + + + + + + + + + + +
+
+
+ + + l10n_br_account.invoice.cancel.tree + l10n_br_account.invoice.cancel + + + + + + + + + + + l10n_br_account.invoice.cce.tree + l10n_br_account.invoice.cce + + + + + + + + + + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + +
+ - + + + - - - - - - -
-
- - - l10n_br_account.invoice.cce.form - l10n_br_account.invoice.cce - -
+ +
+
+
+ + + l10n_br_account.fiscal.document + l10n_br_account.fiscal.document + + + + + + + + + + + l10n_br_account.fiscal.category.form + l10n_br_account.fiscal.category + +
+
+
+ - - + + - - - - - - - - -
-
- - - l10n_br_account.invoice.cancel.tree - l10n_br_account.invoice.cancel - - - - - - - - - - - l10n_br_account.invoice.cce.tree - l10n_br_account.invoice.cce - - - - - - - - - - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - -
- - - - + + - -
-
-
- - - l10n_br_account.fiscal.document - l10n_br_account.fiscal.document - - - - - - - - - - - l10n_br_account.fiscal.category.form - l10n_br_account.fiscal.category - -
-
-
- - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + + + + + + + + - -
-
-
- - - l10n_br_account.fiscal.category.search - l10n_br_account.fiscal.category - - - - - - - - - - - - - - - - - l10n_br_account.fiscal.category.tree - l10n_br_account.fiscal.category - - - - - - - - - - - - - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - -
- - - - - - - - - - - - -
-
-
- - - l10n_br_account.partner.fiscal.type - l10n_br_account.partner.fiscal.type - - - - - - - - - - - l10n_br_account.partner.special.fiscal.type - l10n_br_account.partner.special.fiscal.type - -
- - - - - -
-
-
- - - l10n_br_account.partner.special.fiscal.type - l10n_br_account.partner.special.fiscal.type - - - - - - - - - - l10n_br_account.document.serie - l10n_br_account.document.serie - -
- - - - - - - - - + + + + +
+
+
+ + + l10n_br_account.fiscal.category.search + l10n_br_account.fiscal.category + + + + + + + + + + + + + + + + + + l10n_br_account.fiscal.category.tree + l10n_br_account.fiscal.category + + + + + + + + + + + + + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + +
+ + + + + + + + + - -
-
-
- - - l10n_br_account.document.serie - l10n_br_account.document.serie - - - - - - - - - - - - - l10n_br_account.document_event.form - l10n_br_account.document_event - -
-
- -
+ + +
+
+
+ + + l10n_br_account.partner.fiscal.type + l10n_br_account.partner.fiscal.type + + + + + + + + + + + l10n_br_account.partner.special.fiscal.type + l10n_br_account.partner.special.fiscal.type + +
+ - - - - - - - - - - - + - -
-
- - - l10n_br_account.document_event.tree - l10n_br_account.document_event - - - - - - - - - - - - - - - - - l10n_br_account.invoice.invalid.number.form - l10n_br_account.invoice.invalid.number - -
-
-
+ +
+
+
+ + + l10n_br_account.partner.special.fiscal.type + l10n_br_account.partner.special.fiscal.type + + + + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + +
+ + + + + + + - - - - - - - - -
- - - l10n_br_account.invoice.invalid.number.tree - l10n_br_account.invoice.invalid.number - - + + + + + + + l10n_br_account.document.serie + l10n_br_account.document.serie + + + + + + + + + + + + + l10n_br_account.document_event.form + l10n_br_account.document_event + +
+
+ +
+ + + + + + + + + + + + + +
+
+
+ + + l10n_br_account.document_event.tree + l10n_br_account.document_event + + + + + + + + + + + + + + + + + l10n_br_account.invoice.invalid.number.form + l10n_br_account.invoice.invalid.number + +
+
+
+ + - - - - - - - - l10n_br_account.cnae.form - l10n_br_account.cnae - - - - - - - - - - - - - - - - - l10n_br_account.cnae.tree - l10n_br_account.cnae - - - - - - - - - - - - l10n_br_account.cnae.structure - l10n_br_account.cnae - child_ids - - - - - - - - - - - - l10n_br_account.service.type.form - l10n_br_account.service.type - -
- - - - - - - - -
-
-
- - - l10n_br_account.service.type.tree - l10n_br_account.service.type - - - - - - - - - - - l10n_br_account.service.type.structure - l10n_br_account.service.type - child_ids - - - - - - - - - - - Documento Fiscal - ir.actions.act_window - l10n_br_account.fiscal.document - tree,form - form - - - - - Categoria Fiscal - ir.actions.act_window - l10n_br_account.fiscal.category - tree,form - form - {"search_default_approved":1} - - - - - - Document Serie - ir.actions.act_window - l10n_br_account.document.serie - tree,form - form - - - - - Eventos Eletronicos - ir.actions.act_window - l10n_br_account.document_event - tree,form - form - - - - - - Inutilizar Faixa de Numeração - ir.actions.act_window - l10n_br_account.invoice.invalid.number - tree,form - form - - - - - - Tipo Fiscal de Parceiro - ir.actions.act_window - l10n_br_account.partner.fiscal.type - tree,form - form - - - - - Regime especial do Parceiro - ir.actions.act_window - l10n_br_account.partner.special.fiscal.type - tree,form - form - - - - - CNAE - ir.actions.act_window - l10n_br_account.cnae - tree,form - form - - - - - Estrutura do CNAE - ir.actions.act_window - l10n_br_account.cnae - tree - [('parent_id','=',False)] - - - - - Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree,form - form - - - - - Estrutura de Tipo de Serviço - ir.actions.act_window - l10n_br_account.service.type - tree - [('parent_id','=',False)] - - - - - Documentos Eletrônicos Cancelados - ir.actions.act_window - l10n_br_account.invoice.cancel - tree,form - form - - - - - Carta de Correção - ir.actions.act_window - l10n_br_account.invoice.cce - tree,form - form - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
+ +
+ + + + + + + l10n_br_account.invoice.invalid.number.tree + l10n_br_account.invoice.invalid.number + + + + + + + + + + + + + + l10n_br_account.cnae.form + l10n_br_account.cnae + +
+ + + + + + + + + +
+
+
+ + + l10n_br_account.cnae.tree + l10n_br_account.cnae + + + + + + + + + + + + l10n_br_account.cnae.structure + l10n_br_account.cnae + child_ids + + + + + + + + + + + + l10n_br_account.service.type.form + l10n_br_account.service.type + +
+ + + + + + + + +
+
+
+ + + l10n_br_account.service.type.tree + l10n_br_account.service.type + + + + + + + + + + + l10n_br_account.service.type.structure + l10n_br_account.service.type + child_ids + + + + + + + + + + + Documento Fiscal + ir.actions.act_window + l10n_br_account.fiscal.document + tree,form + form + + + + + Categoria Fiscal + ir.actions.act_window + l10n_br_account.fiscal.category + tree,form + form + {"search_default_approved":1} + + + + + + Document Serie + ir.actions.act_window + l10n_br_account.document.serie + tree,form + form + + + + + Eventos Eletronicos + ir.actions.act_window + l10n_br_account.document_event + tree,form + form + + + + + + Inutilizar Faixa de Numeração + ir.actions.act_window + l10n_br_account.invoice.invalid.number + tree,form + form + + + + + + Tipo Fiscal de Parceiro + ir.actions.act_window + l10n_br_account.partner.fiscal.type + tree,form + form + + + + + Regime especial do Parceiro + ir.actions.act_window + l10n_br_account.partner.special.fiscal.type + tree,form + form + + + + + CNAE + ir.actions.act_window + l10n_br_account.cnae + tree,form + form + + + + + Estrutura do CNAE + ir.actions.act_window + l10n_br_account.cnae + tree + [('parent_id','=',False)] + + + + + Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree,form + form + + + + + Estrutura de Tipo de Serviço + ir.actions.act_window + l10n_br_account.service.type + tree + [('parent_id','=',False)] + + + + + Documentos Eletrônicos Cancelados + ir.actions.act_window + l10n_br_account.invoice.cancel + tree,form + form + + + + + Carta de Correção + ir.actions.act_window + l10n_br_account.invoice.cce + tree,form + form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_br_account/views/res_partner_view.xml b/l10n_br_account/views/res_partner_view.xml index 9350c8fc2700..16015f424ca2 100644 --- a/l10n_br_account/views/res_partner_view.xml +++ b/l10n_br_account/views/res_partner_view.xml @@ -1,97 +1,56 @@ - - + - - l10n_br_account.fiscal.position.tree - account.fiscal.position - - - - - + + l10n_br_account.fiscal.position.tree + account.fiscal.position + + + + - + + - - l10n_br_account.fiscal.position.form - account.fiscal.position - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- - + + l10n_br_account.fiscal.position.form + account.fiscal.position + + + + - + + + + + + + + + + + + + + + + + {'required': [('tax_group_id', '=', False)]} + +
+
- - l10n_br_account.partner.form - res.partner - - - - - - + + l10n_br_account.partner.form + res.partner + + + + + - + + -
-
+ From 2ec151ef06833a6633600a7d85edb094fe0e46f3 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:04:51 -0300 Subject: [PATCH 0593/1549] migrate res.company object --- l10n_br_account/models/res_company.py | 64 +++++++++++++++++++-------- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/l10n_br_account/models/res_company.py b/l10n_br_account/models/res_company.py index 1a4818bffc39..661c18580e19 100644 --- a/l10n_br_account/models/res_company.py +++ b/l10n_br_account/models/res_company.py @@ -18,28 +18,54 @@ class ResCompany(models.Model): _inherit = 'res.company' service_invoice_id = fields.Many2one( - 'l10n_br_account.fiscal.document', - 'Documento Fiscal') + comodel_name='l10n_br_account.fiscal.document', + string=u'Documento Fiscal' + ) document_serie_service_id = fields.Many2one( - 'l10n_br_account.document.serie', u'Série Fiscais para Serviço', - domain="[('company_id', '=', active_id),('active','=',True)," - "('fiscal_type','=','service')]") + comodel_name='l10n_br_account.document.serie', + string=u'Série Fiscais para Serviço', + domain="[('company_id', '=', active_id), ('active', '=', True)," + "('fiscal_type', '=', 'service')]" + ) annual_revenue = fields.Float( - 'Faturamento Anual', required=True, - digits_compute=dp.get_precision('Account'), default=0.00, - help="Faturamento Bruto dos últimos 12 meses") + string=u'Faturamento Anual', + required=True, + digits=dp.get_precision('Account'), + default=0.00, + help=u"Faturamento Bruto dos últimos 12 meses" + ) fiscal_type = fields.Selection( - COMPANY_FISCAL_TYPE, 'Regime Tributário', required=True, - default=COMPANY_FISCAL_TYPE_DEFAULT) + selection=COMPANY_FISCAL_TYPE, + string=u'Regime Tributário', + required=True, + default=COMPANY_FISCAL_TYPE_DEFAULT + ) cnae_main_id = fields.Many2one( - 'l10n_br_account.cnae', 'CNAE Primário') + comodel_name='l10n_br_account.cnae', + string=u'CNAE Primário' + ) cnae_secondary_ids = fields.Many2many( - 'l10n_br_account.cnae', 'res_company_l10n_br_account_cnae', - 'company_id', 'cnae_id', 'CNAE Segundários') - ecnpj_a1_file = fields.Binary('Arquivo e-CNPJ A1') - ecnpj_a1_password = fields.Char('Senha e-CNPJ A1', size=64) + comodel_name='l10n_br_account.cnae', + relation='res_company_l10n_br_account_cnae', + column1='company_id', + column2='cnae_id', + string=u'CNAE Segundários' + ) + ecnpj_a1_file = fields.Binary( + string=u'Arquivo e-CNPJ A1' + ) + ecnpj_a1_password = fields.Char( + string=u'Senha e-CNPJ A1', + size=64 + ) fiscal_rule_parent_id = fields.Many2one( - 'account.fiscal.position.rule', u'Conjunto de Regras Fiscais', - domain="[('parent_id', '=', False)]") - ipbt_token = fields.Char(string=u'IPBT Token') - ibpt_update_days = fields.Integer(string=u'IPBT Token') + comodel_name='account.fiscal.position.rule', + string=u'Conjunto de Regras Fiscais', + domain="[('parent_id', '=', False)]" + ) + ipbt_token = fields.Char( + string=u'IPBT Token' + ) + ibpt_update_days = fields.Integer( + string=u'IPBT Token' + ) From 76493cea1ade826a20b5fdbde589d04490c5c5fd Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:09:42 -0300 Subject: [PATCH 0594/1549] remove object l10n_br_account.product.category from product.py --- l10n_br_account/models/product.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product.py index 7aee75f66077..d6843c9f421d 100644 --- a/l10n_br_account/models/product.py +++ b/l10n_br_account/models/product.py @@ -20,16 +20,3 @@ class ProductTemplate(models.Model): 'Tipo Fiscal', default=PRODUCT_FISCAL_TYPE_DEFAULT ) - - -class L10nBrAccountProductFiscalCategory(models.Model): - _name = 'l10n_br_account.product.category' - - fiscal_category_source_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Origem') - fiscal_category_destination_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria de Destino') - product_tmpl_id = fields.Many2one( - 'product.template', 'Produto', ondelete='cascade') - to_state_id = fields.Many2one( - 'res.country.state', 'Estado Destino') From 43ec9bed37db1540d3e4f4931d05ea14330922e0 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:11:04 -0300 Subject: [PATCH 0595/1549] added object l10n_br_account_product_category in new file l10n_br_account_product_category.py --- .../l10n_br_account_product_category.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_product_category.py diff --git a/l10n_br_account/models/l10n_br_account_product_category.py b/l10n_br_account/models/l10n_br_account_product_category.py new file mode 100644 index 000000000000..27c362be11f9 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_product_category.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 Gabriel C. Stabel +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields + +class L10nBrAccountProductFiscalCategory(models.Model): + _name = 'l10n_br_account.product.category' + + fiscal_category_source_id = fields.Many2one( + comodel_name='l10n_br_account.fiscal.category', + string=u'Categoria de Origem' + ) + fiscal_category_destination_id = fields.Many2one( + comodel_name='l10n_br_account.fiscal.category', + string='Categoria de Destino' + ) + product_tmpl_id = fields.Many2one( + comodel_name='product.template', + string=u'Produto', + ondelete='cascade' + ) + to_state_id = fields.Many2one( + comodel_name='res.country.state', + string=u'Estado Destino' + ) From 0d75fccf934faf59e2c49943681216b98af7a913 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:11:23 -0300 Subject: [PATCH 0596/1549] added new py file in __init__.py --- l10n_br_account/models/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index bd19fccaeae4..41b9ce86176b 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -9,5 +9,6 @@ from . import account from . import account_invoice from . import product +from . import l10n_br_account_product_category from . import account_fiscal_position_rule from . import account_move_line From 7df3f5c5b6c17e09474e031357d5b132c0ebce9a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:34:34 -0300 Subject: [PATCH 0597/1549] removed account.fiscal.position objects from res.partner.py --- l10n_br_account/models/res_partner.py | 203 -------------------------- 1 file changed, 203 deletions(-) diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index ed23dde2d0f1..8b283c867274 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -7,209 +7,6 @@ from .l10n_br_account import TYPE -class AccountFiscalPositionAbstract(object): - - fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', - u'Categoria Fiscal' - ) - - type = fields.Selection( - TYPE, - related='fiscal_category_id.type', - readonly=True, - store=True, - string=u'Fiscal Type' - ) - - inv_copy_note = fields.Boolean( - string=u'Copiar Observação na Nota Fiscal' - ) - - asset_operation = fields.Boolean( - string=u'Operação de Aquisição de Ativo', - help=u"""Caso seja marcada essa opção, será incluido o IPI na base de - calculo do ICMS.""" - ) - - state = fields.Selection( - [('draft', u'Rascunho'), - ('review', u'Revisão'), - ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], - string='Status', - readonly=True, - track_visibility='onchange', - index=True, - default='draft' - ) - - -class AccountFiscalPositionTaxAbstract(object): - - tax_group_id = fields.Many2one( - comodel_name='account.tax.group', - string=u'Grupo de Impostos', - ) - - @api.onchange('tax_src_id', - 'tax_group_id', - 'position_id') - def onchange_tax_group(self): - type_tax_use = {'input': 'purchase', 'output': 'sale'} - - domain = [('type_tax_use', 'in', - (type_tax_use.get(self.position_id.type), 'none'))] - - if self.tax_group_id: - domain.append(('tax_group_id', '=', self.tax_group_id.id)) - - if self.tax_src_id: - domain.append(('tax_group_id', '=', - self.tax_src_id.tax_group_id.id)) - - return {'domain': {'tax_dest_id': domain, 'tax_src_id': domain}} - - -class AccountFiscalPositionTemplate(AccountFiscalPositionAbstract, - models.Model): - _inherit = 'account.fiscal.position.template' - - def generate_fiscal_position(self, chart_temp_id, - tax_template_ref, acc_template_ref, - company_id): - """ - This method generate Fiscal Position, Fiscal Position Accounts and - Fiscal Position Taxes from templates. - - :param chart_temp_id: Chart Template Id. - :param taxes_ids: Taxes templates reference for generating - account.fiscal.position.tax. - :param acc_template_ref: Account templates reference for generating - account.fiscal.position.account. - :param company_id: selected from wizard.multi.charts.accounts. - :returns: True - """ - obj_tax_fp = self.env['account.fiscal.position.tax'] - obj_ac_fp = self.env['account.fiscal.position.account'] - obj_fiscal_position = self.env['account.fiscal.position'] - obj_tax_code = self.env['account.tax.code'] - obj_tax_code_template = self.env['account.tax.code.template'] - tax_code_template_ref = {} - tax_code_ids = obj_tax_code.search([('company_id', '=', company_id)]) - - for tax_code in tax_code_ids: - tax_code_template = obj_tax_code_template.search([('name', '=', tax_code.name)]) - if tax_code_template: - tax_code_template_ref[tax_code_template[0].id] = tax_code.id - - fp_ids = self.search([('chart_template_id', '=', chart_temp_id)]) - for position in fp_ids: - new_fp = obj_fiscal_position.create({ - 'company_id': company_id, - 'name': position.name, - 'note': position.note, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': - position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) - for tax in position.tax_ids: - obj_tax_fp.create({ - 'tax_src_id': - tax.tax_src_id and - tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': - tax.tax_code_src_id, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': - position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': position.fiscal_category_id and position.fiscal_category_id.id or False}) - for tax in position.tax_ids: - obj_tax_fp.create({ - 'tax_src_id': - tax.tax_src_id and - tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': - tax.tax_code_src_id and - tax_code_template_ref.get(tax.tax_code_src_id.id, False), - 'tax_src_domain': tax.tax_src_domain, - 'tax_dest_id': tax.tax_dest_id and - tax_template_ref.get(tax.tax_dest_id.id, False), - 'tax_code_dest_id': tax.tax_code_dest_id and - tax_code_template_ref.get(tax.tax_code_dest_id.id, False), - 'position_id': new_fp - }) - for acc in position.account_ids: - obj_ac_fp.create({ - 'account_src_id': acc_template_ref[acc.account_src_id.id], - 'account_dest_id': - acc_template_ref[acc.account_dest_id.id], - 'position_id': new_fp - }) - return True - - -class AccountFiscalPositionTaxTemplate(AccountFiscalPositionTaxAbstract, - models.Model): - - _inherit = 'account.fiscal.position.tax.template' - - tax_src_id = fields.Many2one( - comodel_name='account.tax.template', - string='Tax on Product', - required=False - ) - - -class AccountFiscalPosition(AccountFiscalPositionAbstract, - models.Model): - - _inherit = 'account.fiscal.position' - - @api.model - def map_tax(self, taxes, product=None, partner=None): - result = self.env['account.tax'].browse() - - if self.company_id and \ - self.env.context.get('type_tax_use') in ('sale', 'all'): - if self.env.context.get('fiscal_type', 'product') == 'service': - company_taxes = self.company_id.service_tax_ids - - if taxes: - taxes |= company_taxes - - for tax in taxes: - tax_count = 0 - for t in self.tax_ids: - if (t.tax_src_id == tax or - t.tax_group_id == tax.tax_group_id): - tax_count += 1 - if t.tax_dest_id: - result |= t.tax_dest_id - if not tax_count: - result |= tax - return result - - -class AccountFiscalPositionTax(AccountFiscalPositionTaxAbstract, - models.Model): - - _inherit = 'account.fiscal.position.tax' - - tax_src_id = fields.Many2one( - comodel_name='account.tax', - string='Tax on Product', - required=False - ) - class ResPartner(models.Model): _inherit = 'res.partner' From 107256ac747ea44bf71459dd03449977d4217b75 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:37:06 -0300 Subject: [PATCH 0598/1549] added account.fiscal.position objects files --- .../models/account_fiscal_position.py | 48 +++++++ .../account_fiscal_position_abstract.py | 68 ++++++++++ .../account_fiscal_position_template.py | 119 ++++++++++++++++++ 3 files changed, 235 insertions(+) create mode 100644 l10n_br_account/models/account_fiscal_position.py create mode 100644 l10n_br_account/models/account_fiscal_position_abstract.py create mode 100644 l10n_br_account/models/account_fiscal_position_template.py diff --git a/l10n_br_account/models/account_fiscal_position.py b/l10n_br_account/models/account_fiscal_position.py new file mode 100644 index 000000000000..8c5dc3b11110 --- /dev/null +++ b/l10n_br_account/models/account_fiscal_position.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + + +class AccountFiscalPosition(AccountFiscalPositionAbstract, + models.Model): + + _inherit = 'account.fiscal.position' + + @api.model + def map_tax(self, taxes, product=None, partner=None): + result = self.env['account.tax'].browse() + + if self.company_id and \ + self.env.context.get('type_tax_use') in ('sale', 'all'): + if self.env.context.get('fiscal_type', 'product') == 'service': + company_taxes = self.company_id.service_tax_ids + + if taxes: + taxes |= company_taxes + + for tax in taxes: + tax_count = 0 + for t in self.tax_ids: + if (t.tax_src_id == tax or + t.tax_group_id == tax.tax_group_id): + tax_count += 1 + if t.tax_dest_id: + result |= t.tax_dest_id + if not tax_count: + result |= tax + return result + + +class AccountFiscalPositionTax(AccountFiscalPositionTaxAbstract, + models.Model): + + _inherit = 'account.fiscal.position.tax' + + tax_src_id = fields.Many2one( + comodel_name='account.tax', + string='Tax on Product', + required=False + ) + diff --git a/l10n_br_account/models/account_fiscal_position_abstract.py b/l10n_br_account/models/account_fiscal_position_abstract.py new file mode 100644 index 000000000000..4729e2c63d0b --- /dev/null +++ b/l10n_br_account/models/account_fiscal_position_abstract.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + +from .l10n_br_account import TYPE + + +class AccountFiscalPositionAbstract(object): + + fiscal_category_id = fields.Many2one( + 'l10n_br_account.fiscal.category', + u'Categoria Fiscal' + ) + type = fields.Selection( + TYPE, + related='fiscal_category_id.type', + readonly=True, + store=True, + string=u'Fiscal Type' + ) + inv_copy_note = fields.Boolean( + string=u'Copiar Observação na Nota Fiscal' + ) + + asset_operation = fields.Boolean( + string=u'Operação de Aquisição de Ativo', + help=u"""Caso seja marcada essa opção, será incluido o IPI na base de + calculo do ICMS.""" + ) + state = fields.Selection( + [('draft', u'Rascunho'), + ('review', u'Revisão'), + ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], + string='Status', + readonly=True, + track_visibility='onchange', + index=True, + default='draft' + ) + + +class AccountFiscalPositionTaxAbstract(object): + + tax_group_id = fields.Many2one( + comodel_name='account.tax.group', + string=u'Grupo de Impostos', + ) + + @api.onchange('tax_src_id', + 'tax_group_id', + 'position_id') + def onchange_tax_group(self): + type_tax_use = {'input': 'purchase', 'output': 'sale'} + + domain = [('type_tax_use', 'in', + (type_tax_use.get(self.position_id.type), 'none'))] + + if self.tax_group_id: + domain.append(('tax_group_id', '=', self.tax_group_id.id)) + + if self.tax_src_id: + domain.append(('tax_group_id', '=', + self.tax_src_id.tax_group_id.id)) + + return {'domain': {'tax_dest_id': domain, 'tax_src_id': domain}} diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py new file mode 100644 index 000000000000..96fb6b0f7050 --- /dev/null +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + +from .account_fiscal_position_abstract import ( + AccountFiscalPositionAbstract, + AccountFiscalPositionTaxAbstract +) + + +class AccountFiscalPositionTemplate(AccountFiscalPositionAbstract, + models.Model): + _inherit = 'account.fiscal.position.template' + + def generate_fiscal_position(self, chart_temp_id, + tax_template_ref, acc_template_ref, + company_id): + """ + This method generate Fiscal Position, Fiscal Position Accounts and + Fiscal Position Taxes from templates. + + :param chart_temp_id: Chart Template Id. + :param taxes_ids: Taxes templates reference for generating + account.fiscal.position.tax. + :param acc_template_ref: Account templates reference for generating + account.fiscal.position.account. + :param company_id: selected from wizard.multi.charts.accounts. + :returns: True + """ + obj_tax_fp = self.env['account.fiscal.position.tax'] + obj_ac_fp = self.env['account.fiscal.position.account'] + obj_fiscal_position = self.env['account.fiscal.position'] + obj_tax_code = self.env['account.tax.code'] + obj_tax_code_template = self.env['account.tax.code.template'] + tax_code_template_ref = {} + tax_code_ids = obj_tax_code.search([('company_id', '=', company_id)]) + + for tax_code in tax_code_ids: + tax_code_template = obj_tax_code_template.search( + [('name', '=', tax_code.name)]) + if tax_code_template: + tax_code_template_ref[tax_code_template[0].id] = tax_code.id + + fp_ids = self.search([('chart_template_id', '=', chart_temp_id)]) + for position in fp_ids: + new_fp = obj_fiscal_position.create({ + 'company_id': company_id, + 'name': position.name, + 'note': position.note, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': + position.cfop_id and position.cfop_id.id or False, + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': (position.fiscal_category_id and + position.fiscal_category_id.id or + False) + }) + + for tax in position.tax_ids: + obj_tax_fp.create({ + 'tax_src_id': + tax.tax_src_id and + tax_template_ref.get(tax.tax_src_id.id, False), + 'tax_code_src_id': + tax.tax_code_src_id, + 'type': position.type, + 'state': position.state, + 'type_tax_use': position.type_tax_use, + 'cfop_id': (position.cfop_id and + position.cfop_id.id or False), + 'inv_copy_note': position.inv_copy_note, + 'asset_operation': position.asset_operation, + 'fiscal_category_id': (position.fiscal_category_id and + position.fiscal_category_id.id or + False) + }) + + for tax in position.tax_ids: + obj_tax_fp.create({ + 'tax_src_id': + tax.tax_src_id and + tax_template_ref.get(tax.tax_src_id.id, False), + 'tax_code_src_id': + tax.tax_code_src_id and + tax_code_template_ref.get(tax.tax_code_src_id.id, False), + 'tax_src_domain': tax.tax_src_domain, + 'tax_dest_id': tax.tax_dest_id and + tax_template_ref.get(tax.tax_dest_id.id, False), + 'tax_code_dest_id': tax.tax_code_dest_id and + tax_code_template_ref.get(tax.tax_code_dest_id.id, False), + 'position_id': new_fp + }) + + for acc in position.account_ids: + obj_ac_fp.create({ + 'account_src_id': acc_template_ref[acc.account_src_id.id], + 'account_dest_id': + acc_template_ref[acc.account_dest_id.id], + 'position_id': new_fp + }) + + return True + + +class AccountFiscalPositionTaxTemplate(AccountFiscalPositionTaxAbstract, + models.Model): + + _inherit = 'account.fiscal.position.tax.template' + + tax_src_id = fields.Many2one( + comodel_name='account.tax.template', + string=u'Tax on Product', + required=False + ) From 6d52877475bd16ce51d75ed6cba4c8eb1298025d Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:37:44 -0300 Subject: [PATCH 0599/1549] addded new files in __init__ --- l10n_br_account/models/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 41b9ce86176b..9f916d4338e0 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -3,6 +3,9 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import l10n_br_account +from . import account_fiscal_position_abstract +from . import account_fiscal_position_template +from . import account_fiscal_position from . import res_partner from . import res_company from . import res_config From 4c7f82ff1eb7ca56f89b5c0215f447008a1ccafa Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:44:24 -0300 Subject: [PATCH 0600/1549] remove account.journal and wizard_multi_charts_accounts objects from account.py file --- l10n_br_account/models/account.py | 47 ------------------------------- 1 file changed, 47 deletions(-) diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account.py index 788dd5007859..84951d2436cd 100644 --- a/l10n_br_account/models/account.py +++ b/l10n_br_account/models/account.py @@ -5,12 +5,6 @@ from odoo import models, fields, api -class AccountJournal(models.Model): - _inherit = 'account.journal' - - revenue_expense = fields.Boolean('Gera Financeiro') - - class AccountTax(models.Model): _inherit = 'account.tax' @@ -118,44 +112,3 @@ def compute_all(self, price_unit, currency=None, 'total_tax_discount': totaldc, 'taxes': calculed_taxes } - - -class WizardMultiChartsAccounts(models.TransientModel): - _inherit = 'wizard.multi.charts.accounts' - - def execute(self): - """This function is called at the confirmation of the wizard to - generate the COA from the templates. It will read all the provided - information to create the accounts, the banks, the journals, the - taxes, the tax codes, the accounting properties... accordingly for - the chosen company. - - This is override in Brazilian Localization to copy CFOP - from fiscal positions template to fiscal positions. - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user. - - 'ids': orm_memory id used to read all data. - - 'context': Context. - """ - result = super(WizardMultiChartsAccounts, self).execute() - - obj_multi = self[0] - obj_fp_template = self.env['account.fiscal.position.template'] - obj_fp = self.env['account.fiscal.position'] - - chart_template_id = obj_multi.chart_template_id.id - company_id = obj_multi.company_id.id - - fp_template_ids = obj_fp_template.search([('chart_template_id', '=', chart_template_id)]) - - for fp_template in fp_template_ids: - if fp_template.cfop_id: - fp_id = obj_fp.search( - [('name', '=', fp_template.name), - ('company_id', '=', company_id)]) - if fp_id: - fp_id.write( - {'cfop_id': fp_template.cfop_id.id}) - return result From f623ef7cab66c14e56db86916f5b992cbc404845 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:45:51 -0300 Subject: [PATCH 0601/1549] added account_journal.py file --- l10n_br_account/models/account_journal.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 l10n_br_account/models/account_journal.py diff --git a/l10n_br_account/models/account_journal.py b/l10n_br_account/models/account_journal.py new file mode 100644 index 000000000000..d078eddaf5e3 --- /dev/null +++ b/l10n_br_account/models/account_journal.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields + + +class AccountJournal(models.Model): + _inherit = 'account.journal' + + revenue_expense = fields.Boolean( + string=u'Gera Financeiro' + ) From b8ae7268df474c0770737db35c089e8afae61b7a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:46:31 -0300 Subject: [PATCH 0602/1549] wizard.multi.charts.accounts file --- .../models/wizard_multi_charts_accounts.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 l10n_br_account/models/wizard_multi_charts_accounts.py diff --git a/l10n_br_account/models/wizard_multi_charts_accounts.py b/l10n_br_account/models/wizard_multi_charts_accounts.py new file mode 100644 index 000000000000..5171aa4f2448 --- /dev/null +++ b/l10n_br_account/models/wizard_multi_charts_accounts.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models + + +class WizardMultiChartsAccounts(models.TransientModel): + _inherit = 'wizard.multi.charts.accounts' + + def execute(self): + """This function is called at the confirmation of the wizard to + generate the COA from the templates. It will read all the provided + information to create the accounts, the banks, the journals, the + taxes, the tax codes, the accounting properties... accordingly for + the chosen company. + + This is override in Brazilian Localization to copy CFOP + from fiscal positions template to fiscal positions. + + :Parameters: + - 'cr': Database cursor. + - 'uid': Current user. + - 'ids': orm_memory id used to read all data. + - 'context': Context. + """ + result = super(WizardMultiChartsAccounts, self).execute() + + obj_multi = self[0] + obj_fp_template = self.env['account.fiscal.position.template'] + obj_fp = self.env['account.fiscal.position'] + + chart_template_id = obj_multi.chart_template_id.id + company_id = obj_multi.company_id.id + + fp_template_ids = obj_fp_template.search( + [('chart_template_id', '=', chart_template_id)]) + + for fp_template in fp_template_ids: + if fp_template.cfop_id: + fp_id = obj_fp.search( + [('name', '=', fp_template.name), + ('company_id', '=', company_id)]) + if fp_id: + fp_id.write( + {'cfop_id': fp_template.cfop_id.id}) + return result From 34049f38d9a976b89822e71d8dff493d3e23a182 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 00:47:11 -0300 Subject: [PATCH 0603/1549] added new files in __init__ --- l10n_br_account/models/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 9f916d4338e0..233b1e850f1a 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -9,7 +9,9 @@ from . import res_partner from . import res_company from . import res_config +from . import account_journal from . import account +from . import wizard_multi_charts_accounts from . import account_invoice from . import product from . import l10n_br_account_product_category From 14774ac745c5bb87803e96b47c7a9935299b91a1 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 01:25:21 -0300 Subject: [PATCH 0604/1549] change name file --- l10n_br_account/models/{account.py => account_tax.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename l10n_br_account/models/{account.py => account_tax.py} (100%) diff --git a/l10n_br_account/models/account.py b/l10n_br_account/models/account_tax.py similarity index 100% rename from l10n_br_account/models/account.py rename to l10n_br_account/models/account_tax.py From c03ac8221d19f73fae664b22fc675721c29e5ee9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 01:25:54 -0300 Subject: [PATCH 0605/1549] move account_invoice_line to new file --- l10n_br_account/models/__init__.py | 1 + l10n_br_account/models/account_invoice.py | 125 +++++++----------- .../models/account_invoice_line.py | 61 +++++++++ 3 files changed, 107 insertions(+), 80 deletions(-) create mode 100644 l10n_br_account/models/account_invoice_line.py diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 233b1e850f1a..48dd2c2e349a 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -13,6 +13,7 @@ from . import account from . import wizard_multi_charts_accounts from . import account_invoice +from . import account_invoice_line from . import product from . import l10n_br_account_product_category from . import account_fiscal_position_rule diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 580baecee209..fefa21cb91c8 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -3,7 +3,6 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import models, fields, api, _ -from odoo.addons import decimal_precision as dp OPERATION_TYPE = { 'out_invoice': 'output', @@ -52,7 +51,7 @@ def _compute_receivables(self): lines = self.env['account.move.line'] for line in self.move_id.line_ids: if line.account_id.id == self.account_id.id and \ - line.account_id.user_type_id.type in ('receivable', 'payable') and \ + line.account_id.user_type_id.type in ('receivable', 'payable') and \ self.journal_id.revenue_expense: lines |= line self.move_line_receivable_id = (lines).sorted() @@ -62,39 +61,60 @@ def _compute_receivables(self): ('sefaz_export', 'Enviar para Receita'), ('sefaz_exception', u'Erro de autorização da Receita'), ('sefaz_cancelled', 'Cancelado no Sefaz'), - ('sefaz_denied', 'Denegada no Sefaz'), - ]) + ('sefaz_denied', 'Denegada no Sefaz')] + ) move_line_receivable_id = fields.Many2many( - 'account.move.line', string='Receivables', - compute='_compute_receivables') + comodel_name='account.move.line', + string=u'Receivables', + compute='_compute_receivables' + ) document_serie_id = fields.Many2one( - 'l10n_br_account.document.serie', string=u'Série', - domain="[('fiscal_document_id', '=', fiscal_document_id),\ - ('company_id','=',company_id)]", readonly=True, - states={'draft': [('readonly', False)]}) + comodel_name='l10n_br_account.document.serie', + string=u'Série', + domain="[('fiscal_document_id', '=', fiscal_document_id)," + "('company_id', '=', company_id)]", + readonly=True, + states={'draft': [('readonly', False)]} + ) fiscal_document_id = fields.Many2one( - 'l10n_br_account.fiscal.document', string='Documento', readonly=True, - states={'draft': [('readonly', False)]}) + comodel_name='l10n_br_account.fiscal.document' + string=u'Documento', + readonly=True, + states={'draft': [('readonly', False)]} + ) fiscal_document_electronic = fields.Boolean( - related='fiscal_document_id.electronic', type='boolean', readonly=True, - store=True, string='Electronic') + related='fiscal_document_id.electronic', + store=True, + readonly=True, + string='Electronic' + ) fiscal_document_code = fields.Char( related='fiscal_document_id.code', - readonly=True, store=True, - string='Document Code') + readonly=True, + string='Document Code' + ) fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', 'Categoria Fiscal', - readonly=True, states={'draft': [('readonly', False)]}) + comodel_name='l10n_br_account.fiscal.category', + string=u'Categoria Fiscal', + readonly=True, + states={'draft': [('readonly', False)]} + ) fiscal_position_id = fields.Many2one( - 'account.fiscal.position', 'Fiscal Position', readonly=True, - states={'draft': [('readonly', False)]}, - oldname='fiscal_position', + comodel_name='account.fiscal.position', + string=u'Fiscal Position', + readonly=True, + states={'draft': [('readonly', False)]}, + oldname='fiscal_position', ) account_document_event_ids = fields.One2many( - 'l10n_br_account.document_event', 'document_event_ids', - u'Eventos') - fiscal_comment = fields.Text(u'Observação Fiscal') + comodel_name='l10n_br_account.document_event', + inverse_name='document_event_ids', + string=u'Eventos' + ) + fiscal_comment = fields.Text( + string=u'Observação Fiscal' + ) cnpj_cpf = fields.Char( string=u'CNPJ/CPF', related='partner_id.cnpj_cpf', @@ -111,7 +131,7 @@ def _compute_receivables(self): related='journal_id.revenue_expense', readonly=True, store=True, - string='Gera Financeiro' + string=u'Gera Financeiro' ) @api.multi @@ -207,58 +227,3 @@ def open_fiscal_document(self): 'nodestroy': True, 'res_id': self.id } - - -class AccountInvoiceLine(models.Model): - _inherit = 'account.invoice.line' - - @api.one - @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', - 'quantity', 'product_id', 'invoice_id.partner_id', - 'invoice_id.currency_id', 'invoice_id.company_id') - def _compute_price(self): - currency = self.invoice_id and self.invoice_id.currency_id or None - price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) - taxes = False - amount_tax_discount = 0.0 - if self.invoice_line_tax_ids: - taxes = self.invoice_line_tax_ids.compute_all( - price, currency, - self.quantity, - product=self.product_id, - partner=self.invoice_id.partner_id) - - amount_tax_discount = taxes['total_tax_discount'] - - self.price_subtotal = price_subtotal_signed = \ - taxes['total_excluded'] if taxes else self.quantity * price - - self.amount_tax_discount = amount_tax_discount - - if (self.invoice_id.currency_id and self.invoice_id.company_id and - self.invoice_id.currency_id != - self.invoice_id.company_id.currency_id): - price_subtotal_signed = self.invoice_id.currency_id.compute( - price_subtotal_signed, self.invoice_id.company_id.currency_id) - sign = self.invoice_id.type in ['in_refund', 'out_refund'] and -1 or 1 - self.price_subtotal_signed = price_subtotal_signed * sign - - fiscal_category_id = fields.Many2one( - codmodel_name='l10n_br_account.fiscal.category', - string='Categoria Fiscal' - ) - - fiscal_position_id = fields.Many2one( - comodel_name='account.fiscal.position', - string=u'Posição Fiscal', - domain="[('fiscal_category_id', '=', fiscal_category_id)]" - ) - - amount_tax_discount = fields.Float( - string='Amount Tax discount', - store=True, - digits=dp.get_precision('Account'), - readonly=True, - compute='_compute_price', - oldname='price_tax_discount' - ) diff --git a/l10n_br_account/models/account_invoice_line.py b/l10n_br_account/models/account_invoice_line.py new file mode 100644 index 000000000000..1f91316cdc88 --- /dev/null +++ b/l10n_br_account/models/account_invoice_line.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api, _ +from odoo.addons import decimal_precision as dp + + +class AccountInvoiceLine(models.Model): + _inherit = 'account.invoice.line' + + @api.one + @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', + 'quantity', 'product_id', 'invoice_id.partner_id', + 'invoice_id.currency_id', 'invoice_id.company_id') + def _compute_price(self): + currency = self.invoice_id and self.invoice_id.currency_id or None + price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) + taxes = False + amount_tax_discount = 0.0 + if self.invoice_line_tax_ids: + taxes = self.invoice_line_tax_ids.compute_all( + price, currency, + self.quantity, + product=self.product_id, + partner=self.invoice_id.partner_id) + + amount_tax_discount = taxes['total_tax_discount'] + + self.price_subtotal = price_subtotal_signed = \ + taxes['total_excluded'] if taxes else self.quantity * price + + self.amount_tax_discount = amount_tax_discount + + if (self.invoice_id.currency_id and self.invoice_id.company_id and + self.invoice_id.currency_id != + self.invoice_id.company_id.currency_id): + price_subtotal_signed = self.invoice_id.currency_id.compute( + price_subtotal_signed, self.invoice_id.company_id.currency_id) + sign = self.invoice_id.type in ['in_refund', 'out_refund'] and -1 or 1 + self.price_subtotal_signed = price_subtotal_signed * sign + + fiscal_category_id = fields.Many2one( + codmodel_name='l10n_br_account.fiscal.category', + string='Categoria Fiscal' + ) + + fiscal_position_id = fields.Many2one( + comodel_name='account.fiscal.position', + string=u'Posição Fiscal', + domain="[('fiscal_category_id', '=', fiscal_category_id)]" + ) + + amount_tax_discount = fields.Float( + string='Amount Tax discount', + store=True, + digits=dp.get_precision('Account'), + readonly=True, + compute='_compute_price', + oldname='price_tax_discount' + ) From abcb37a569d6387a34fc92e8e436a81755603873 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 01:59:31 -0300 Subject: [PATCH 0606/1549] migrate and change file name product.py to product_template.py --- l10n_br_account/models/{product.py => product_template.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename l10n_br_account/models/{product.py => product_template.py} (100%) diff --git a/l10n_br_account/models/product.py b/l10n_br_account/models/product_template.py similarity index 100% rename from l10n_br_account/models/product.py rename to l10n_br_account/models/product_template.py From 8d44dca0816f13c1f345bcd447088f62466718e7 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:09:00 -0300 Subject: [PATCH 0607/1549] migrate product.template object --- l10n_br_account/models/product_template.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/l10n_br_account/models/product_template.py b/l10n_br_account/models/product_template.py index d6843c9f421d..429dc011e046 100644 --- a/l10n_br_account/models/product_template.py +++ b/l10n_br_account/models/product_template.py @@ -4,6 +4,7 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import models, fields + from .l10n_br_account import PRODUCT_FISCAL_TYPE, PRODUCT_FISCAL_TYPE_DEFAULT @@ -11,12 +12,15 @@ class ProductTemplate(models.Model): _inherit = 'product.template' fiscal_category_default_ids = fields.One2many( - 'l10n_br_account.product.category', 'product_tmpl_id', - u'Categoria de Operação Fiscal Padrões') + comodel_name='l10n_br_account.product.category', + inverse_name='product_tmpl_id', + string=u'Categoria de Operação Fiscal Padrões') + service_type_id = fields.Many2one( - 'l10n_br_account.service.type', u'Tipo de Serviço') + comodel_name='l10n_br_account.service.type', + string=u'Tipo de Serviço') + fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, - 'Tipo Fiscal', - default=PRODUCT_FISCAL_TYPE_DEFAULT - ) + selection=PRODUCT_FISCAL_TYPE, + string=u'Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT) From d8baf6ed54212342477e4a55bb8f377cc37441ab Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:09:48 -0300 Subject: [PATCH 0608/1549] remove object from l10n_br_account.py --- l10n_br_account/models/l10n_br_account.py | 488 +++++++--------------- 1 file changed, 158 insertions(+), 330 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index c5fe184f8d0a..dd0cb2415c5a 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -25,16 +25,27 @@ class L10nBrAccountCce(models.Model): _description = u'Carta de Correção no Sefaz' # TODO nome de campos devem ser em ingles - invoice_id = fields.Many2one('account.invoice', 'Fatura') - motivo = fields.Text('Motivo', readonly=True, required=True) + invoice_id = fields.Many2one( + comodel_name='account.invoice', + string=u'Fatura') + + motivo = fields.Text( + string=u'Motivo', + readonly=True, + required=True) + sequencia = fields.Char( - u'Sequência', help=u"Indica a sequência da carta de correcão") + string=u'Sequência', + help=u"Indica a sequência da carta de correcão") + cce_document_event_ids = fields.One2many( - 'l10n_br_account.document_event', 'document_event_ids', u'Eventos') + comodel_name='l10n_br_account.document_event', + inverse_name='document_event_ids', + string=u'Eventos') display_name = fields.Char( - string='Name', compute='_compute_display_name', - ) + string='Name', + compute='_compute_display_name') @api.multi @api.depends('invoice_id.number', 'invoice_id.partner_id.name') @@ -49,18 +60,29 @@ class L10nBrAccountInvoiceCancel(models.Model): _name = 'l10n_br_account.invoice.cancel' _description = u'Documento Eletrônico no Sefaz' - invoice_id = fields.Many2one('account.invoice', 'Fatura') - partner_id = fields.Many2one('res.partner', - related='invoice_id.partner_id', - string='Cliente') - justificative = fields.Char(string='Justificativa', size=255, - readonly=True, required=True) + invoice_id = fields.Many2one( + comodel_name='account.invoice', + string=u'Fatura') + + partner_id = fields.Many2one( + comodel_name='res.partner', + related='invoice_id.partner_id', + string='Cliente') + + justificative = fields.Char( + string='Justificativa', + size=255, + readonly=True, + required=True) + cancel_document_event_ids = fields.One2many( - 'l10n_br_account.document_event', 'cancel_document_event_id', - u'Eventos') + comodel_name='l10n_br_account.document_event', + inverse_name='cancel_document_event_id', + string=u'Eventos') display_name = fields.Char( - string='Nome', compute='_compute_display_name', + string=u'Nome', + compute='_compute_display_name', ) @api.multi @@ -88,47 +110,94 @@ class L10nBrDocumentEvent(models.Model): _name = 'l10n_br_account.document_event' type = fields.Selection( - [('-1', u'Exception'), - ('0', u'Envio Lote'), - ('1', u'Consulta Recibo'), - ('2', u'Cancelamento'), - ('3', u'Inutilização'), - ('4', u'Consulta NFE'), - ('5', u'Consulta Situação'), - ('6', u'Consulta Cadastro'), - ('7', u'DPEC Recepção'), - ('8', u'DPEC Consulta'), - ('9', u'Recepção Evento'), - ('10', u'Download'), - ('11', u'Consulta Destinadas'), - ('12', u'Distribuição DFe'), - ('13', u'Manifestação'), ], 'Serviço') - response = fields.Char(u'Descrição', size=64, readonly=True) + selection=[('-1', u'Exception'), + ('0', u'Envio Lote'), + ('1', u'Consulta Recibo'), + ('2', u'Cancelamento'), + ('3', u'Inutilização'), + ('4', u'Consulta NFE'), + ('5', u'Consulta Situação'), + ('6', u'Consulta Cadastro'), + ('7', u'DPEC Recepção'), + ('8', u'DPEC Consulta'), + ('9', u'Recepção Evento'), + ('10', u'Download'), + ('11', u'Consulta Destinadas'), + ('12', u'Distribuição DFe'), + ('13', u'Manifestação')], + string='Serviço') + + response = fields.Char( + string=u'Descrição', + size=64, + readonly=True) + company_id = fields.Many2one( - 'res.company', 'Empresa', readonly=True, + comodel_name='res.company', + string='Empresa', + readonly=True, states={'draft': [('readonly', False)]}) + origin = fields.Char( - 'Documento de Origem', size=64, - readonly=True, states={'draft': [('readonly', False)]}, - help="Referência ao documento que gerou o evento.") - file_sent = fields.Char('Envio', readonly=True) - file_returned = fields.Char('Retorno', readonly=True) - status = fields.Char(u'Código', readonly=True) - message = fields.Char('Mensagem', readonly=True) - create_date = fields.Datetime(u'Data Criação', readonly=True) - write_date = fields.Datetime(u'Data Alteração', readonly=True) - end_date = fields.Datetime(u'Data Finalização', readonly=True) + string=u'Documento de Origem', + size=64, + readonly=True, + states={'draft': [('readonly', False)]}, + help=u"Referência ao documento que gerou o evento.") + + file_sent = fields.Char( + string='Envio', + readonly=True) + + file_returned = fields.Char( + string='Retorno', + readonly=True) + + status = fields.Char( + string=u'Código', + readonly=True) + + message = fields.Char( + string=u'Mensagem', + readonly=True) + + create_date = fields.Datetime( + string=u'Data Criação', + readonly=True) + + write_date = fields.Datetime( + string=u'Data Alteração', + readonly=True) + + end_date = fields.Datetime( + string=u'Data Finalização', + readonly=True) + state = fields.Selection( - [('draft', 'Rascunho'), ('send', 'Enviado'), - ('wait', 'Aguardando Retorno'), ('done', 'Recebido Retorno')], - 'Status', index=True, readonly=True, default='draft') + selection=[('draft', 'Rascunho'), + ('send', 'Enviado'), + ('wait', 'Aguardando Retorno'), + ('done', 'Recebido Retorno')], + string=u'Status', + index=True, + readonly=True, + default='draft') + document_event_ids = fields.Many2one( - 'account.invoice', 'Documentos') + comodel_name='account.invoice', + string=u'Documentos') + cancel_document_event_id = fields.Many2one( - 'l10n_br_account.invoice.cancel', 'Cancelamento') + comodel_name='l10n_br_account.invoice.cancel', + string='Cancelamento') + invalid_number_document_event_id = fields.Many2one( - 'l10n_br_account.invoice.invalid.number', u'Inutilização') - display_name = fields.Char(string='Nome', compute='_compute_display_name') + comodel_name='l10n_br_account.invoice.invalid.number', + string=u'Inutilização') + + display_name = fields.Char( + string='Nome', + compute='_compute_display_name') _order = 'write_date desc' @@ -141,150 +210,11 @@ def _compute_display_name(self): @api.multi def set_done(self): - self.write({'state': 'done', 'end_date': datetime.datetime.now()}) + self.write({'state': 'done', + 'end_date': datetime.datetime.now()}) return True -class L10nBrAccountFiscalCategory(models.Model): - """Fiscal Category to apply fiscal and account parameters in documents.""" - _name = 'l10n_br_account.fiscal.category' - _description = 'Categoria Fiscal' - - code = fields.Char(u'Código', size=254, required=True) - name = fields.Char( - string=u'Descrição', - size=254, - help="Natureza da operação informada no XML") - type = fields.Selection(TYPE, 'Tipo', default='output') - fiscal_type = fields.Selection( - PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', - default=PRODUCT_FISCAL_TYPE_DEFAULT) - property_journal = fields.Many2one( - 'account.journal', string=u"Diário Contábil", company_dependent=True, - help=u"Diário utilizado para esta categoria de operação fiscal") - journal_type = fields.Selection( - [('sale', u'Saída'), ('sale_refund', u'Devolução de Saída'), - ('purchase', u'Entrada'), - ('purchase_refund', u'Devolução de Entrada')], u'Tipo do Diário', - size=32, required=True, default='sale') - refund_fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal de Devolução', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('journal_type', 'like', journal_type), - ('state', '=', 'approved')]""") - reverse_fiscal_category_id = fields.Many2one( - 'l10n_br_account.fiscal.category', u'Categoria Fiscal Inversa', - domain="""[('type', '!=', type), ('fiscal_type', '=', fiscal_type), - ('state', '=', 'approved')]""") - fiscal_position_ids = fields.One2many( - 'account.fiscal.position', - 'fiscal_category_id', string=u'Posições Fiscais') - note = fields.Text(u'Observações') - state = fields.Selection( - [('draft', u'Rascunho'), - ('review', u'Revisão'), ('approved', u'Aprovada'), - ('unapproved', u'Não Aprovada')], - 'Status', readonly=True, - track_visibility='onchange', index=True, default='draft') - - _sql_constraints = [ - ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', - u'Já existe uma categoria fiscal com esse código!') - ] - - @api.multi - def action_unapproved_draft(self): - """Set state to draft and create a new workflow instance""" - self.write({'state': 'draft'}) - self.delete_workflow() - self.create_workflow() - return True - - @api.multi - def onchange_journal_type(self, journal_type): - """Clear property_journal""" - return {'value': {'property_journal': None}} - - -class L10nBrAccountServiceType(models.Model): - _name = 'l10n_br_account.service.type' - _description = u'Cadastro de Operações Fiscais de Serviço' - - code = fields.Char(u'Código', size=16, required=True) - name = fields.Char(u'Descrição', size=256, required=True) - parent_id = fields.Many2one( - 'l10n_br_account.service.type', 'Tipo de Serviço Pai') - child_ids = fields.One2many( - 'l10n_br_account.service.type', 'parent_id', - u'Tipo de Serviço Filhos') - internal_type = fields.Selection( - [('view', u'Visualização'), ('normal', 'Normal')], 'Tipo Interno', - required=True, default='normal') - - @api.multi - def name_get(self): - result = [] - for record in self: - name = record['name'] - if record['code']: - name = record['code'] + ' - ' + name - result.append((record['id'], name)) - return result - - -class L10nBrAccountFiscalDocument(models.Model): - _name = 'l10n_br_account.fiscal.document' - _description = 'Tipo de Documento Fiscal' - - code = fields.Char(u'Codigo', size=8, required=True) - name = fields.Char(u'Descrição', size=64) - electronic = fields.Boolean(u'Eletrônico') - - -class L10nBrAccountDocumentSerie(models.Model): - _name = 'l10n_br_account.document.serie' - _description = 'Serie de documentos fiscais' - - code = fields.Char(u'Código', size=3, required=True) - - name = fields.Char(u'Descrição', required=True) - - active = fields.Boolean('Ativo') - - fiscal_type = fields.Selection(PRODUCT_FISCAL_TYPE, 'Tipo Fiscal', - default=PRODUCT_FISCAL_TYPE_DEFAULT) - - fiscal_document_id = fields.Many2one('l10n_br_account.fiscal.document', - 'Documento Fiscal', required=True) - - company_id = fields.Many2one('res.company', 'Empresa', - required=True) - - internal_sequence_id = fields.Many2one('ir.sequence', - u'Sequência Interna') - - @api.model - def _create_sequence(self, vals): - """ Create new no_gap entry sequence for every - new document serie """ - seq = { - 'name': vals['name'], - 'implementation': 'no_gap', - 'padding': 1, - 'number_increment': 1} - if 'company_id' in vals: - seq['company_id'] = vals['company_id'] - return self.env['ir.sequence'].create(seq).id - - @api.model - def create(self, vals): - """ Overwrite method to create a new ir.sequence if - this field is null """ - if not vals.get('internal_sequence_id'): - vals.update({'internal_sequence_id': self._create_sequence(vals)}) - return super(L10nBrAccountDocumentSerie, self).create(vals) - - class L10nBrAccountInvoiceInvalidNumber(models.Model): _name = 'l10n_br_account.invoice.invalid.number' _description = u'Inutilização de Faixa de Numeração' @@ -299,41 +229,62 @@ def name_get(self): ) for rec in self] company_id = fields.Many2one( - 'res.company', 'Empresa', readonly=True, - states={'draft': [('readonly', False)]}, required=True, + comodel_name='res.company', + string=u'Empresa', + readonly=True, + states={'draft': [('readonly', False)]}, + required=True, default=lambda self: self.env['res.company']._company_default_get( 'l10n_br_account.invoice.invalid.number')) fiscal_document_id = fields.Many2one( - 'l10n_br_account.fiscal.document', 'Documento Fiscal', - readonly=True, states={'draft': [('readonly', False)]}, + comodel_name='l10n_br_account.fiscal.document', + string=u'Documento Fiscal', + readonly=True, + states={'draft': [('readonly', False)]}, required=True) document_serie_id = fields.Many2one( - 'l10n_br_account.document.serie', u'Série', + comodel_name='l10n_br_account.document.serie', + string=u'Série', + readonly=True, + states={'draft': [('readonly', False)]}, domain="[('fiscal_document_id', '=', fiscal_document_id), " - "('company_id', '=', company_id)]", readonly=True, - states={'draft': [('readonly', False)]}, required=True) + "('company_id', '=', company_id)]", + required=True) number_start = fields.Integer( - u'Número Inicial', readonly=True, - states={'draft': [('readonly', False)]}, required=True) + string=u'Número Inicial', + readonly=True, + states={'draft': [('readonly', False)]}, + required=True) number_end = fields.Integer( - u'Número Final', readonly=True, - states={'draft': [('readonly', False)]}, required=True) + string=u'Número Final', + readonly=True, + states={'draft': [('readonly', False)]}, + required=True) state = fields.Selection( - [('draft', 'Rascunho'), ('cancel', 'Cancelado'), - ('done', u'Concluído')], 'Status', required=True, default='draft') + selection=[('draft', 'Rascunho'), + ('cancel', 'Cancelado'), + ('done', u'Concluído')], + string='Status', + required=True, + default='draft') justificative = fields.Char( - 'Justificativa', size=255, readonly=True, - states={'draft': [('readonly', False)]}, required=True) + string=u'Justificativa', + size=255, + readonly=True, + states={'draft': [('readonly', False)]}, + required=True) invalid_number_document_event_ids = fields.One2many( - 'l10n_br_account.document_event', 'invalid_number_document_event_id', - u'Eventos', states={'done': [('readonly', True)]}) + comodel_name='l10n_br_account.document_event', + inverse_name='invalid_number_document_event_id', + string=u'Eventos', + states={'done': [('readonly', True)]}) _sql_constraints = [ ('number_uniq', @@ -394,126 +345,3 @@ def unlink(self): raise UserError(_( u'Você não pode excluir uma sequência concluída.')) return super(L10nBrAccountInvoiceInvalidNumber, self).unlink() - - -class L10nBrAccountPartnerFiscalType(models.Model): - - _name = 'l10n_br_account.partner.fiscal.type' - _description = 'Tipo Fiscal de Parceiros' - - code = fields.Char(u'Código', size=16, required=True) - - name = fields.Char(u'Descrição', size=64) - - is_company = fields.Boolean(u'Pessoa Jurídica?') - - default = fields.Boolean(u'Tipo Fiscal Padrão', default=True) - - icms = fields.Boolean('Recupera ICMS') - - ipi = fields.Boolean('Recupera IPI') - - @api.constrains('default', 'is_company') - def _check_default(self): - for fiscal_type in self: - if len(fiscal_type.search([ - ('default', '=', 'True'), - ('is_company', '=', fiscal_type.is_company) - ])) > 1: - raise UserError( - _(u'Mantenha apenas um tipo fiscal padrão' - u' para Pessoa Física ou para Pessoa Jurídica!')) - return True - - -class L10nBrAccountPartnerSpecialFiscalType(models.Model): - _name = 'l10n_br_account.partner.special.fiscal.type' - _description = 'Regime especial do parceiro' - - name = fields.Char(u'Nome', size=20) - - -class L10nBrAccountCNAE(models.Model): - """Classe para cadastro de Código Nacional de Atividade Econômica. - - Os CNAEs são utilizados no cadastro de empresa para definir o - ramo de atividade primário e secundários das empresas cadastradas no Odoo. - """ - - _name = 'l10n_br_account.cnae' - _description = 'Cadastro de CNAE' - - code = fields.Char( - u'Código', - size=16, - required=True - ) - - name = fields.Char( - u'Descrição', - size=64, - required=True - ) - - version = fields.Char( - u'Versão', - size=16, - required=True - ) - - parent_id = fields.Many2one( - 'l10n_br_account.cnae', - u'CNAE Pai' - ) - - child_ids = fields.One2many( - 'l10n_br_account.cnae', - 'parent_id', - u'CNAEs Filhos' - ) - - internal_type = fields.Selection( - [('view', u'Visualização'), - ('normal', 'Normal')], - u'Tipo Interno', - required=True, - default='normal' - ) - - @api.multi - def name_get(self): - result = [] - for record in self: - name = record['name'] - if record['code']: - name = record['code'] + ' - ' + name - result.append((record['id'], name)) - return result - - -class L10nBrTaxDefinitionTemplate(object): - _name = 'l10n_br_tax.definition.template' - - tax_template_id = fields.Many2one('account.tax.template', u'Imposto', - required=True) - - # TODO - # tax_code_template_id = fields.Many2one('account.tax.code.template', - # u'Código de Imposto') - - -class L10nBrTaxDefinition(object): - _name = 'l10n_br_tax.definition' - - tax_id = fields.Many2one('account.tax', string='Imposto', required=True) - - # TODO - # tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') - - company_id = fields.Many2one( - 'res.company', - string=u'Company', - related='tax_id.company_id', - store=True, - readonly=True - ) From 4a6f8cc37d1880b67608a36c7864524106aabfd8 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:10:12 -0300 Subject: [PATCH 0609/1549] add new file for l10n_br_account.cnae object --- .../models/l10n_br_account_cnae.py | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_cnae.py diff --git a/l10n_br_account/models/l10n_br_account_cnae.py b/l10n_br_account/models/l10n_br_account_cnae.py new file mode 100644 index 000000000000..b06b3a1dcce8 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_cnae.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + +class L10nBrAccountCNAE(models.Model): + """Classe para cadastro de Código Nacional de Atividade Econômica. + + Os CNAEs são utilizados no cadastro de empresa para definir o + ramo de atividade primário e secundários das empresas cadastradas no Odoo. + """ + _name = 'l10n_br_account.cnae' + _description = 'Cadastro de CNAE' + + code = fields.Char( + string=u'Código', + size=16, + required=True) + + name = fields.Char( + string=u'Descrição', + size=64, + required=True) + + version = fields.Char( + string=u'Versão', + size=16, + required=True) + + parent_id = fields.Many2one( + comodel_name='l10n_br_account.cnae', + string=u'CNAE Pai') + + child_ids = fields.One2many( + comodel_name='l10n_br_account.cnae', + inverse_name='parent_id', + string=u'CNAEs Filhos') + + internal_type = fields.Selection( + [('view', u'Visualização'), + ('normal', 'Normal')], + u'Tipo Interno', + required=True, + default='normal') + + @api.multi + @api.depends('code', 'name') + def name_get(self): + l = [] + for cnae in self: + name = cnae.name + if cnae.code: + name = cnae.code + ' - ' + cnae.name + l.append((cnae.id, name)) + return l From ad13fc6dfc839ef7011be36af2db5b691df64b57 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:10:32 -0300 Subject: [PATCH 0610/1549] add new file for l10n_br_account.fiscal.category object --- .../models/l10n_br_account_fiscal_category.py | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_fiscal_category.py diff --git a/l10n_br_account/models/l10n_br_account_fiscal_category.py b/l10n_br_account/models/l10n_br_account_fiscal_category.py new file mode 100644 index 000000000000..d9e363a918de --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_fiscal_category.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + +TYPE = [ + ('input', u'Entrada'), + ('output', u'Saída'), +] + +PRODUCT_FISCAL_TYPE = [ + ('service', u'Serviço'), +] + +PRODUCT_FISCAL_TYPE_DEFAULT = None + + +class L10nBrAccountFiscalCategory(models.Model): + """Fiscal Category to apply fiscal and account parameters in documents.""" + _name = 'l10n_br_account.fiscal.category' + _description = 'Categoria Fiscal' + + code = fields.Char( + string=u'Código', + size=254, + required=True) + + name = fields.Char( + string=u'Descrição', + size=254, + help="Natureza da operação informada no XML") + + type = fields.Selection( + selection=TYPE, + string='Tipo', + default='output') + + fiscal_type = fields.Selection( + selection=PRODUCT_FISCAL_TYPE, + string='Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT) + + property_journal = fields.Many2one( + comodel_name='account.journal', + string=u"Diário Contábil", + company_dependent=True, + help=u"Diário utilizado para esta categoria de operação fiscal) + + journal_type = fields.Selection( + selection=[('sale', u'Saída'), + ('sale_refund', u'Devolução de Saída'), + ('purchase', u'Entrada'), + ('purchase_refund', u'Devolução de Entrada')], + string=u'Tipo do Diário', + size=32, + required=True, + default='sale') + + refund_fiscal_category_id = fields.Many2one( + comodel_name='l10n_br_account.fiscal.category', + string=u'Categoria Fiscal de Devolução', + domain="[('type', '!=', type), ('fiscal_type', '=', fiscal_type)," + "('journal_type', 'like', journal_type)," + "('state', '=', 'approved')]") + + reverse_fiscal_category_id = fields.Many2one( + comodel_name='l10n_br_account.fiscal.category', + string=u'Categoria Fiscal Inversa', + domain="[('type', '!=', type), ('fiscal_type', '=', fiscal_type)," + "('state', '=', 'approved')]") + + fiscal_position_ids = fields.One2many( + comodel_name='account.fiscal.position', + inverse_name='fiscal_category_id', + string=u'Posições Fiscais') + + note = fields.Text( + string=u'Observações') + + state = fields.Selection( + selection=[('draft', u'Rascunho'), + ('review', u'Revisão'), + ('approved', u'Aprovada'), + ('unapproved', u'Não Aprovada')], + string='Status', + readonly=True, + track_visibility='onchange', + index=True, + default='draft') + + _sql_constraints = [ + ('l10n_br_account_fiscal_category_code_uniq', 'unique (code)', + u'Já existe uma categoria fiscal com esse código!') + ] + + @api.multi + def action_unapproved_draft(self): + """Set state to draft and create a new workflow instance""" + self.write({'state': 'draft'}) + self.delete_workflow() + self.create_workflow() + return True + + @api.multi + def onchange_journal_type(self, journal_type): + """Clear property_journal""" + return {'value': {'property_journal': None}} From 36de075c6e4c07323197d0fb540ebbe8db912860 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:11:12 -0300 Subject: [PATCH 0611/1549] add new file for l10n_br_account.fiscal.document object --- .../models/l10n_br_account_fiscal_document.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_fiscal_document.py diff --git a/l10n_br_account/models/l10n_br_account_fiscal_document.py b/l10n_br_account/models/l10n_br_account_fiscal_document.py new file mode 100644 index 000000000000..4b86fd01e127 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_fiscal_document.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, + + +class L10nBrAccountFiscalDocument(models.Model): + _name = 'l10n_br_account.fiscal.document' + _description = 'Tipo de Documento Fiscal' + + code = fields.Char( + string=u'Codigo', + size=8, + required=True) + + name = fields.Char( + string=u'Descrição', + size=64) + + electronic = fields.Boolean( + string=u'Eletrônico') From 352b121c76f71d4cab6fa6460a8a611a2073a1ba Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:11:44 -0300 Subject: [PATCH 0612/1549] add new file for l10n_br_account.fiscal.document.serie object --- .../l10n_br_account_fiscal_document_serie.py | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_fiscal_document_serie.py diff --git a/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py b/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py new file mode 100644 index 000000000000..d3f596a62f79 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + + +class L10nBrAccountDocumentSerie(models.Model): + _name = 'l10n_br_account.document.serie' + _description = 'Serie de documentos fiscais' + + code = fields.Char( + string=u'Código', + size=3, + required=True) + + name = fields.Char( + string=u'Descrição', + required=True) + + active = fields.Boolean(string='Ativo') + + fiscal_type = fields.Selection( + selection=PRODUCT_FISCAL_TYPE, + string=u'Tipo Fiscal', + default=PRODUCT_FISCAL_TYPE_DEFAULT) + + fiscal_document_id = fields.Many2one( + comodel_name='l10n_br_account.fiscal.document', + string='Documento Fiscal', + required=True) + + company_id = fields.Many2one( + comodel_name='res.company', + string='Empresa', + required=True) + + internal_sequence_id = fields.Many2one( + comodel_name='ir.sequence', + string=u'Sequência Interna') + + @api.model + def _create_sequence(self, vals): + """ Create new no_gap entry sequence for every + new document serie """ + seq = { + 'name': vals['name'], + 'implementation': 'no_gap', + 'padding': 1, + 'number_increment': 1} + if 'company_id' in vals: + seq['company_id'] = vals['company_id'] + return self.env['ir.sequence'].create(seq).id + + @api.model + def create(self, vals): + """ Overwrite method to create a new ir.sequence if + this field is null """ + if not vals.get('internal_sequence_id'): + vals.update({'internal_sequence_id': self._create_sequence(vals)}) + return super(L10nBrAccountDocumentSerie, self).create(vals) From 3fcdf937156dd413a79cc8de62397c24bfb7a148 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:12:09 -0300 Subject: [PATCH 0613/1549] add new file for l10n_br_account.fiscal.partner.type object --- .../l10n_br_account_fiscal_partner_type.py | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_fiscal_partner_type.py diff --git a/l10n_br_account/models/l10n_br_account_fiscal_partner_type.py b/l10n_br_account/models/l10n_br_account_fiscal_partner_type.py new file mode 100644 index 000000000000..9913b2a97dba --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_fiscal_partner_type.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api, _ +from odoo.exceptions import Warning as UserError + + +class L10nBrAccountPartnerFiscalType(models.Model): + _name = 'l10n_br_account.partner.fiscal.type' + _description = 'Tipo Fiscal de Parceiros' + + code = fields.Char( + string=u'Código', + size=16, + required=True) + + name = fields.Char( + string=u'Descrição', + size=64) + + is_company = fields.Boolean( + string=u'Pessoa Jurídica?') + + default = fields.Boolean( + string=u'Tipo Fiscal Padrão', + default=True) + + icms = fields.Boolean( + string=u'Recupera ICMS') + + ipi = fields.Boolean( + string=u'Recupera IPI') + + @api.constrains('default', 'is_company') + def _check_default(self): + for fiscal_type in self: + if len(fiscal_type.search([ + ('default', '=', 'True'), + ('is_company', '=', fiscal_type.is_company) + ])) > 1: + raise UserError( + _(u'Mantenha apenas um tipo fiscal padrão' + u' para Pessoa Física ou para Pessoa Jurídica!')) + return True + + +class L10nBrAccountPartnerSpecialFiscalType(models.Model): + _name = 'l10n_br_account.partner.special.fiscal.type' + _description = 'Regime especial do parceiro' + + name = fields.Char( + string=u'Nome', + size=20) From 429315f6b213d118a1433f2c6c69d8985b37858b Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:13:38 -0300 Subject: [PATCH 0614/1549] add new file for l10n_br_account.service.type object --- .../models/l10n_br_account_service_type.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_service_type.py diff --git a/l10n_br_account/models/l10n_br_account_service_type.py b/l10n_br_account/models/l10n_br_account_service_type.py new file mode 100644 index 000000000000..9df7438a7c43 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_service_type.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + + +class L10nBrAccountServiceType(models.Model): + _name = 'l10n_br_account.service.type' + _description = u'Cadastro de Operações Fiscais de Serviço' + + code = fields.Char( + string=u'Código', + size=16, + required=True) + + name = fields.Char( + string=u'Descrição', + size=256, + required=True) + + parent_id = fields.Many2one( + comodel_name='l10n_br_account.service.type', + string=u'Tipo de Serviço Pai') + + child_ids = fields.One2many( + comodel_name='l10n_br_account.service.type', + inverse_name='parent_id', + string=u'Tipo de Serviço Filhos') + + internal_type = fields.Selection( + selection=[('view', u'Visualização'), + ('normal', 'Normal')], + string=u'Tipo Interno', + required=True, + default='normal') + + @api.multi + def name_get(self): + l = [] + for s in self: + name = s.code + ' - ' + s.name + l.append((s.id, name)) + return l From 7e4976adc2fc2b0dedd10de86beb1d9026a91480 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:14:08 -0300 Subject: [PATCH 0615/1549] add new file for l10n_br_account.product.category object --- .../models/l10n_br_account_product_category.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/l10n_br_account/models/l10n_br_account_product_category.py b/l10n_br_account/models/l10n_br_account_product_category.py index 27c362be11f9..6e4848400f59 100644 --- a/l10n_br_account/models/l10n_br_account_product_category.py +++ b/l10n_br_account/models/l10n_br_account_product_category.py @@ -5,23 +5,23 @@ from odoo import models, fields + class L10nBrAccountProductFiscalCategory(models.Model): _name = 'l10n_br_account.product.category' fiscal_category_source_id = fields.Many2one( comodel_name='l10n_br_account.fiscal.category', - string=u'Categoria de Origem' - ) + string=u'Categoria de Origem') + fiscal_category_destination_id = fields.Many2one( comodel_name='l10n_br_account.fiscal.category', - string='Categoria de Destino' - ) + string=u'Categoria de Destino') + product_tmpl_id = fields.Many2one( comodel_name='product.template', string=u'Produto', - ondelete='cascade' - ) + ondelete='cascade') + to_state_id = fields.Many2one( comodel_name='res.country.state', - string=u'Estado Destino' - ) + string=u'Estado Destino') From eb262b9eee829273c3a7d90cca2b5b2ed3c7cfc6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:14:33 -0300 Subject: [PATCH 0616/1549] add new file for l10n_br_account.tax.definition object --- .../models/l10n_br_account_tax_definition.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 l10n_br_account/models/l10n_br_account_tax_definition.py diff --git a/l10n_br_account/models/l10n_br_account_tax_definition.py b/l10n_br_account/models/l10n_br_account_tax_definition.py new file mode 100644 index 000000000000..dfb715c43234 --- /dev/null +++ b/l10n_br_account/models/l10n_br_account_tax_definition.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009 - TODAY Renato Lima - Akretion +# Copyright (C) 2014 KMEE - www.kmee.com.br +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields + + +class L10nBrTaxDefinitionTemplate(object): + _name = 'l10n_br_tax.definition.template' + + tax_template_id = fields.Many2one( + comodel_name='account.tax.template', + string=u'Imposto', + required=True) + + # TODO + # tax_code_template_id = fields.Many2one('account.tax.code.template', + # u'Código de Imposto') + + +class L10nBrTaxDefinition(object): + _name = 'l10n_br_tax.definition' + + tax_id = fields.Many2one( + comodel_name='account.tax', + string='Imposto', + required=True) + + # TODO + # tax_code_id = fields.Many2one('account.tax.code', u'Código de Imposto') + + company_id = fields.Many2one( + 'res.company', + string=u'Company', + related='tax_id.company_id', + store=True, + readonly=True + ) From 146b9784795826d5d2249f93ad065f981948f4a9 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:14:55 -0300 Subject: [PATCH 0617/1549] update __init__ file --- l10n_br_account/models/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 48dd2c2e349a..80ceb1d171ac 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -3,6 +3,13 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import l10n_br_account +from . import l10n_br_account_fiscal_category +from . import l10n_br_account_cnae +from . import l10n_br_account_service_type +from . import l10n_br_account_fiscal_document +from . import l10n_br_account_fiscal_document_serie +from . import l10n_br_account_fiscal_partner_type +from . import l10n_br_account_tax_definition from . import account_fiscal_position_abstract from . import account_fiscal_position_template from . import account_fiscal_position @@ -14,7 +21,7 @@ from . import wizard_multi_charts_accounts from . import account_invoice from . import account_invoice_line -from . import product +from . import product_product from . import l10n_br_account_product_category from . import account_fiscal_position_rule from . import account_move_line From 86b8096d93a43bea305b7b95dd5b93c33f1f2066 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 03:45:50 -0300 Subject: [PATCH 0618/1549] pep8 --- .../models/account_fiscal_position.py | 6 +- .../account_fiscal_position_abstract.py | 2 +- .../models/account_fiscal_position_rule.py | 2 - .../account_fiscal_position_template.py | 17 ++--- l10n_br_account/models/account_invoice.py | 67 ++++++++++--------- .../models/account_invoice_line.py | 4 +- l10n_br_account/models/account_tax.py | 12 ++-- l10n_br_account/models/l10n_br_account.py | 2 +- .../models/l10n_br_account_cnae.py | 1 + .../models/l10n_br_account_fiscal_category.py | 2 +- .../models/l10n_br_account_fiscal_document.py | 2 +- .../l10n_br_account_fiscal_document_serie.py | 3 + .../models/l10n_br_account_tax_definition.py | 2 +- l10n_br_account/models/res_partner.py | 10 ++- 14 files changed, 69 insertions(+), 63 deletions(-) diff --git a/l10n_br_account/models/account_fiscal_position.py b/l10n_br_account/models/account_fiscal_position.py index 8c5dc3b11110..34d808669051 100644 --- a/l10n_br_account/models/account_fiscal_position.py +++ b/l10n_br_account/models/account_fiscal_position.py @@ -4,6 +4,11 @@ from odoo import models, fields, api +from .account_fiscal_position_abstract import ( + AccountFiscalPositionAbstract, + AccountFiscalPositionTaxAbstract +) + class AccountFiscalPosition(AccountFiscalPositionAbstract, models.Model): @@ -45,4 +50,3 @@ class AccountFiscalPositionTax(AccountFiscalPositionTaxAbstract, string='Tax on Product', required=False ) - diff --git a/l10n_br_account/models/account_fiscal_position_abstract.py b/l10n_br_account/models/account_fiscal_position_abstract.py index 4729e2c63d0b..2973e5b6dbf5 100644 --- a/l10n_br_account/models/account_fiscal_position_abstract.py +++ b/l10n_br_account/models/account_fiscal_position_abstract.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, api +from odoo import fields, api from .l10n_br_account import TYPE diff --git a/l10n_br_account/models/account_fiscal_position_rule.py b/l10n_br_account/models/account_fiscal_position_rule.py index 68af49061b15..743176f17e30 100644 --- a/l10n_br_account/models/account_fiscal_position_rule.py +++ b/l10n_br_account/models/account_fiscal_position_rule.py @@ -45,8 +45,6 @@ class AccountFiscalPositionRuleTemplate(AccountFiscalPositionRuleAbstract, string='Regime especial' ) - - class AccountFiscalPositionRule(AccountFiscalPositionRuleAbstract, models.Model): diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py index 96fb6b0f7050..d5f97384dc0e 100644 --- a/l10n_br_account/models/account_fiscal_position_template.py +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, api +from odoo import models, fields from .account_fiscal_position_abstract import ( AccountFiscalPositionAbstract, @@ -58,8 +58,7 @@ def generate_fiscal_position(self, chart_temp_id, 'asset_operation': position.asset_operation, 'fiscal_category_id': (position.fiscal_category_id and position.fiscal_category_id.id or - False) - }) + False)}) for tax in position.tax_ids: obj_tax_fp.create({ @@ -77,8 +76,7 @@ def generate_fiscal_position(self, chart_temp_id, 'asset_operation': position.asset_operation, 'fiscal_category_id': (position.fiscal_category_id and position.fiscal_category_id.id or - False) - }) + False)}) for tax in position.tax_ids: obj_tax_fp.create({ @@ -93,16 +91,14 @@ def generate_fiscal_position(self, chart_temp_id, tax_template_ref.get(tax.tax_dest_id.id, False), 'tax_code_dest_id': tax.tax_code_dest_id and tax_code_template_ref.get(tax.tax_code_dest_id.id, False), - 'position_id': new_fp - }) + 'position_id': new_fp}) for acc in position.account_ids: obj_ac_fp.create({ 'account_src_id': acc_template_ref[acc.account_src_id.id], 'account_dest_id': acc_template_ref[acc.account_dest_id.id], - 'position_id': new_fp - }) + 'position_id': new_fp}) return True @@ -115,5 +111,4 @@ class AccountFiscalPositionTaxTemplate(AccountFiscalPositionTaxAbstract, tax_src_id = fields.Many2one( comodel_name='account.tax.template', string=u'Tax on Product', - required=False - ) + required=False) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index fefa21cb91c8..e7d86823edb0 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -3,6 +3,7 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import models, fields, api, _ +from odoo.exceptions import Warning as UserError OPERATION_TYPE = { 'out_invoice': 'output', @@ -50,9 +51,10 @@ def _compute_amount(self): def _compute_receivables(self): lines = self.env['account.move.line'] for line in self.move_id.line_ids: - if line.account_id.id == self.account_id.id and \ - line.account_id.user_type_id.type in ('receivable', 'payable') and \ - self.journal_id.revenue_expense: + if (line.account_id.id == self.account_id.id and + self.journal_id.revenue_expense and + line.account_id.user_type_id.type in ('receivable', + 'payable')): lines |= line self.move_line_receivable_id = (lines).sorted() @@ -61,78 +63,77 @@ def _compute_receivables(self): ('sefaz_export', 'Enviar para Receita'), ('sefaz_exception', u'Erro de autorização da Receita'), ('sefaz_cancelled', 'Cancelado no Sefaz'), - ('sefaz_denied', 'Denegada no Sefaz')] - ) + ('sefaz_denied', 'Denegada no Sefaz')]) + move_line_receivable_id = fields.Many2many( comodel_name='account.move.line', string=u'Receivables', - compute='_compute_receivables' - ) + compute='_compute_receivables') + document_serie_id = fields.Many2one( comodel_name='l10n_br_account.document.serie', string=u'Série', domain="[('fiscal_document_id', '=', fiscal_document_id)," "('company_id', '=', company_id)]", readonly=True, - states={'draft': [('readonly', False)]} - ) + states={'draft': [('readonly', False)]}) + fiscal_document_id = fields.Many2one( - comodel_name='l10n_br_account.fiscal.document' + comodel_name='l10n_br_account.fiscal.document', string=u'Documento', readonly=True, - states={'draft': [('readonly', False)]} - ) + states={'draft': [('readonly', False)]}) + fiscal_document_electronic = fields.Boolean( related='fiscal_document_id.electronic', store=True, readonly=True, - string='Electronic' - ) + string='Electronic') + fiscal_document_code = fields.Char( related='fiscal_document_id.code', store=True, readonly=True, - string='Document Code' - ) + string='Document Code') + fiscal_category_id = fields.Many2one( comodel_name='l10n_br_account.fiscal.category', string=u'Categoria Fiscal', readonly=True, - states={'draft': [('readonly', False)]} - ) + states={'draft': [('readonly', False)]}) + fiscal_position_id = fields.Many2one( comodel_name='account.fiscal.position', string=u'Fiscal Position', readonly=True, states={'draft': [('readonly', False)]}, - oldname='fiscal_position', - ) + oldname='fiscal_position') + account_document_event_ids = fields.One2many( comodel_name='l10n_br_account.document_event', inverse_name='document_event_ids', - string=u'Eventos' - ) + string=u'Eventos') + fiscal_comment = fields.Text( - string=u'Observação Fiscal' - ) + string=u'Observação Fiscal') + cnpj_cpf = fields.Char( string=u'CNPJ/CPF', - related='partner_id.cnpj_cpf', - ) + related='partner_id.cnpj_cpf') + legal_name = fields.Char( string=u'Razão Social', - related='partner_id.legal_name', - ) + related='partner_id.legal_name') + ie = fields.Char( string=u'Inscrição Estadual', - related='partner_id.inscr_est', - ) + related='partner_id.inscr_est') + revenue_expense = fields.Boolean( related='journal_id.revenue_expense', readonly=True, store=True, - string=u'Gera Financeiro' - ) + string=u'Gera Financeiro') @api.multi def name_get(self): @@ -203,7 +204,7 @@ def _fiscal_position_id_map(self, result, **kwargs): kwargs.get('fiscal_category_id')) result['value']['journal_id'] = fcategory.property_journal.id if not result['value'].get('journal_id', False): - raise except_orm( + raise UserError( _('Nenhum Diário !'), _("Categoria fiscal: '%s', não tem um diário contábil para a \ empresa %s") % (fcategory.name, company.name)) diff --git a/l10n_br_account/models/account_invoice_line.py b/l10n_br_account/models/account_invoice_line.py index 1f91316cdc88..9238735f1615 100644 --- a/l10n_br_account/models/account_invoice_line.py +++ b/l10n_br_account/models/account_invoice_line.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, api, _ +from odoo import models, fields, api from odoo.addons import decimal_precision as dp @@ -46,7 +46,7 @@ def _compute_price(self): ) fiscal_position_id = fields.Many2one( - comodel_name='account.fiscal.position', + comodel_name='account.fiscal.position', string=u'Posição Fiscal', domain="[('fiscal_category_id', '=', fiscal_category_id)]" ) diff --git a/l10n_br_account/models/account_tax.py b/l10n_br_account/models/account_tax.py index 84951d2436cd..1a6b953b172a 100644 --- a/l10n_br_account/models/account_tax.py +++ b/l10n_br_account/models/account_tax.py @@ -2,7 +2,7 @@ # Copyright (C) 2009 - TODAY Renato Lima - Akretion # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, api +from odoo import models, api class AccountTax(models.Model): @@ -43,9 +43,9 @@ def _compute_tax(self, taxes, total_line, @api.multi def compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None): - """Returns all information required to apply taxes + """Returns all information required to apply taxes (in self + their children in case of a tax goup). - + We consider the sequence of the parent for group of taxes. Eg. considering letters as taxes and alphabetic order as sequence: [G, B([A, D, F]), E, C] will be computed as [A, D, F, C, E, G] @@ -73,10 +73,10 @@ def compute_all(self, price_unit, currency=None, precision = self.env['decimal.precision'].precision_get('Account') if not currency: - if len(self) == 0: - company_id = self.env.user.company_id + if len(self) == 0: + company_id = self.env.user.company_id else: - company_id = self[0].company_id + company_id = self[0].company_id currency = company_id.currency_id taxes = self result = super(AccountTax, self).compute_all(price_unit, diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index dd0cb2415c5a..a89ca318643c 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -210,7 +210,7 @@ def _compute_display_name(self): @api.multi def set_done(self): - self.write({'state': 'done', + self.write({'state': 'done', 'end_date': datetime.datetime.now()}) return True diff --git a/l10n_br_account/models/l10n_br_account_cnae.py b/l10n_br_account/models/l10n_br_account_cnae.py index b06b3a1dcce8..a755d7bc1226 100644 --- a/l10n_br_account/models/l10n_br_account_cnae.py +++ b/l10n_br_account/models/l10n_br_account_cnae.py @@ -5,6 +5,7 @@ from odoo import models, fields, api + class L10nBrAccountCNAE(models.Model): """Classe para cadastro de Código Nacional de Atividade Econômica. diff --git a/l10n_br_account/models/l10n_br_account_fiscal_category.py b/l10n_br_account/models/l10n_br_account_fiscal_category.py index d9e363a918de..44f23888c912 100644 --- a/l10n_br_account/models/l10n_br_account_fiscal_category.py +++ b/l10n_br_account/models/l10n_br_account_fiscal_category.py @@ -46,7 +46,7 @@ class L10nBrAccountFiscalCategory(models.Model): comodel_name='account.journal', string=u"Diário Contábil", company_dependent=True, - help=u"Diário utilizado para esta categoria de operação fiscal) + help=u"Diário utilizado para esta categoria de operação fiscal") journal_type = fields.Selection( selection=[('sale', u'Saída'), diff --git a/l10n_br_account/models/l10n_br_account_fiscal_document.py b/l10n_br_account/models/l10n_br_account_fiscal_document.py index 4b86fd01e127..269ac05b94d7 100644 --- a/l10n_br_account/models/l10n_br_account_fiscal_document.py +++ b/l10n_br_account/models/l10n_br_account_fiscal_document.py @@ -3,7 +3,7 @@ # Copyright (C) 2014 KMEE - www.kmee.com.br # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, +from odoo import models, fields class L10nBrAccountFiscalDocument(models.Model): diff --git a/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py b/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py index d3f596a62f79..6519041f8678 100644 --- a/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py +++ b/l10n_br_account/models/l10n_br_account_fiscal_document_serie.py @@ -5,6 +5,9 @@ from odoo import models, fields, api +from .l10n_br_account import (PRODUCT_FISCAL_TYPE, + PRODUCT_FISCAL_TYPE_DEFAULT) + class L10nBrAccountDocumentSerie(models.Model): _name = 'l10n_br_account.document.serie' diff --git a/l10n_br_account/models/l10n_br_account_tax_definition.py b/l10n_br_account/models/l10n_br_account_tax_definition.py index dfb715c43234..3e03391aced5 100644 --- a/l10n_br_account/models/l10n_br_account_tax_definition.py +++ b/l10n_br_account/models/l10n_br_account_tax_definition.py @@ -3,7 +3,7 @@ # Copyright (C) 2014 KMEE - www.kmee.com.br # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields +from odoo import fields class L10nBrTaxDefinitionTemplate(object): diff --git a/l10n_br_account/models/res_partner.py b/l10n_br_account/models/res_partner.py index 8b283c867274..1580d7a96ce7 100644 --- a/l10n_br_account/models/res_partner.py +++ b/l10n_br_account/models/res_partner.py @@ -4,8 +4,6 @@ from odoo import models, fields, api -from .l10n_br_account import TYPE - class ResPartner(models.Model): _inherit = 'res.partner' @@ -21,10 +19,16 @@ def _default_partner_fiscal_type_id(self, is_company=False): return ft_ids partner_fiscal_type_id = fields.Many2one( - 'l10n_br_account.partner.fiscal.type', 'Tipo Fiscal do Parceiro', + comodel_name='l10n_br_account.partner.fiscal.type', + string=u'Tipo Fiscal do Parceiro', domain="[('is_company', '=', is_company)]", default=_default_partner_fiscal_type_id) + partner_special_fiscal_type_id = fields.Many2many( + comodel_name='l10n_br_account.partner.special.fiscal.type', + relation='res_partner_l10n_br_special_type', + string='Regime especial') + @api.onchange('is_company') def _onchange_is_company(self): self.partner_fiscal_type_id = \ From 917d390cac7f137cc55141618ee809cacd36dcaa Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Sat, 12 May 2018 04:06:36 -0300 Subject: [PATCH 0619/1549] [FIX] worng import --- l10n_br_account/models/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 80ceb1d171ac..3cdf903e21b4 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -17,11 +17,11 @@ from . import res_company from . import res_config from . import account_journal -from . import account +from . import account_tax from . import wizard_multi_charts_accounts from . import account_invoice from . import account_invoice_line -from . import product_product +from . import product_template from . import l10n_br_account_product_category from . import account_fiscal_position_rule from . import account_move_line From 222a2cbe023f3ea5f1ce7362388fe43e9aa9e2ce Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Wed, 15 Aug 2018 16:33:02 -0300 Subject: [PATCH 0620/1549] Replace api.one to api.multi . --- l10n_br_account/models/account_invoice.py | 39 ++++++------- .../models/account_invoice_line.py | 56 ++++++++++--------- l10n_br_account/models/l10n_br_account.py | 52 ++++++++--------- 3 files changed, 77 insertions(+), 70 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index e7d86823edb0..b4be5ca537cb 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -24,29 +24,30 @@ class AccountInvoice(models.Model): _inherit = 'account.invoice' _order = 'date_invoice DESC, number DESC' - @api.one + @api.multi @api.depends('invoice_line_ids.price_subtotal', 'tax_line_ids.amount', 'currency_id', 'company_id', 'date_invoice') def _compute_amount(self): - self.amount_untaxed = sum(l.price_subtotal - for l in self.invoice_line_ids) - self.amount_tax = sum(t.amount for t in self.tax_line_ids - if not t.tax_id.tax_discount) - self.amount_total = self.amount_untaxed + self.amount_tax - amount_total_company_signed = self.amount_total - amount_untaxed_signed = self.amount_untaxed - if (self.currency_id and self.company_id and - self.currency_id != self.company_id.currency_id): - currency_id = self.currency_id.with_context(date=self.date_invoice) - amount_total_company_signed = currency_id.compute( - self.amount_total, self.company_id.currency_id) - amount_untaxed_signed = currency_id.compute( - self.amount_untaxed, self.company_id.currency_id) - sign = self.type in ['in_refund', 'out_refund'] and -1 or 1 - self.amount_total_company_signed = amount_total_company_signed * sign - self.amount_total_signed = self.amount_total * sign - self.amount_untaxed_signed = amount_untaxed_signed * sign + for record in self: + record.amount_untaxed = sum(l.price_subtotal + for l in record.invoice_line_ids) + record.amount_tax = sum(t.amount for t in record.tax_line_ids + if not t.tax_id.tax_discount) + record.amount_total = record.amount_untaxed + record.amount_tax + amount_total_company_signed = record.amount_total + amount_untaxed_signed = record.amount_untaxed + if (record.currency_id and record.company_id and + record.currency_id != record.company_id.currency_id): + currency_id = record.currency_id.with_context(date=record.date_invoice) + amount_total_company_signed = currency_id.compute( + record.amount_total, record.company_id.currency_id) + amount_untaxed_signed = currency_id.compute( + record.amount_untaxed, record.company_id.currency_id) + sign = record.type in ['in_refund', 'out_refund'] and -1 or 1 + record.amount_total_company_signed = amount_total_company_signed * sign + record.amount_total_signed = record.amount_total * sign + record.amount_untaxed_signed = amount_untaxed_signed * sign def _compute_receivables(self): lines = self.env['account.move.line'] diff --git a/l10n_br_account/models/account_invoice_line.py b/l10n_br_account/models/account_invoice_line.py index 9238735f1615..bcc584c00240 100644 --- a/l10n_br_account/models/account_invoice_line.py +++ b/l10n_br_account/models/account_invoice_line.py @@ -9,36 +9,40 @@ class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' - @api.one + @api.multi @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', 'quantity', 'product_id', 'invoice_id.partner_id', 'invoice_id.currency_id', 'invoice_id.company_id') def _compute_price(self): - currency = self.invoice_id and self.invoice_id.currency_id or None - price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) - taxes = False - amount_tax_discount = 0.0 - if self.invoice_line_tax_ids: - taxes = self.invoice_line_tax_ids.compute_all( - price, currency, - self.quantity, - product=self.product_id, - partner=self.invoice_id.partner_id) - - amount_tax_discount = taxes['total_tax_discount'] - - self.price_subtotal = price_subtotal_signed = \ - taxes['total_excluded'] if taxes else self.quantity * price - - self.amount_tax_discount = amount_tax_discount - - if (self.invoice_id.currency_id and self.invoice_id.company_id and - self.invoice_id.currency_id != - self.invoice_id.company_id.currency_id): - price_subtotal_signed = self.invoice_id.currency_id.compute( - price_subtotal_signed, self.invoice_id.company_id.currency_id) - sign = self.invoice_id.type in ['in_refund', 'out_refund'] and -1 or 1 - self.price_subtotal_signed = price_subtotal_signed * sign + for record in self: + currency = ( + record.invoice_id and record.invoice_id.currency_id or None) + price = record.price_unit * (1 - (record.discount or 0.0) / 100.0) + taxes = False + amount_tax_discount = 0.0 + if record.invoice_line_tax_ids: + taxes = record.invoice_line_tax_ids.compute_all( + price, currency, + record.quantity, + product=record.product_id, + partner=record.invoice_id.partner_id) + + amount_tax_discount = taxes['total_tax_discount'] + + record.price_subtotal = price_subtotal_signed = \ + taxes['total_excluded'] if taxes else record.quantity * price + + record.amount_tax_discount = amount_tax_discount + + if (record.invoice_id.currency_id and record.invoice_id.company_id + and record.invoice_id.currency_id != + record.invoice_id.company_id.currency_id): + price_subtotal_signed = record.invoice_id.currency_id.compute( + price_subtotal_signed, + record.invoice_id.company_id.currency_id) + sign = record.invoice_id.type in [ + 'in_refund', 'out_refund'] and -1 or 1 + record.price_subtotal_signed = price_subtotal_signed * sign fiscal_category_id = fields.Many2one( codmodel_name='l10n_br_account.fiscal.category', diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index a89ca318643c..83a99a53cb7b 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -292,36 +292,38 @@ def name_get(self): u'Sequência existente!'), ] - @api.one + @api.multi @api.constrains('justificative') def _check_justificative(self): - if len(self.justificative) < 15: - raise UserError( - _('Justificativa deve ter tamanho minimo de 15 caracteres.')) - return True + for record in self: + if len(record.justificative) < 15: + raise UserError(_( + 'Justificativa deve ter tamanho minimo de 15 caracteres.')) + return True - @api.one + @api.multi @api.constrains('number_start', 'number_end') def _check_range(self): - where = [] - if self.number_start: - where.append("((number_end>='%s') or (number_end is null))" % ( - self.number_start,)) - if self.number_end: - where.append( - "((number_start<='%s') or (number_start is null))" % ( - self.number_end,)) - - self._cr.execute( - 'SELECT id \ - FROM l10n_br_account_invoice_invalid_number \ - WHERE ' + ' and '.join(where) + (where and ' and ' or '') + - "document_serie_id = %s \ - AND state = 'done' \ - AND id <> %s" % (self.document_serie_id.id, self.id)) - if self._cr.fetchall() or (self.number_start > self.number_end): - raise UserError(_(u'Não é permitido faixas sobrepostas!')) - return True + for record in self: + where = [] + if record.number_start: + where.append("((number_end>='%s') or (number_end is null))" % ( + record.number_start,)) + if record.number_end: + where.append( + "((number_start<='%s') or (number_start is null))" % ( + record.number_end,)) + + record._cr.execute( + 'SELECT id \ + FROM l10n_br_account_invoice_invalid_number \ + WHERE ' + ' and '.join(where) + (where and ' and ' or '') + + "document_serie_id = %s \ + AND state = 'done' \ + AND id <> %s" % (record.document_serie_id.id, record.id)) + if record._cr.fetchall() or (record.number_start > record.number_end): + raise UserError(_(u'Não é permitido faixas sobrepostas!')) + return True _constraints = [ (_check_range, u'Não é permitido faixas sobrepostas!', From 49a3efc50bab6fa3b3535b2d00118b00618235e9 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Thu, 16 Aug 2018 11:11:17 -0300 Subject: [PATCH 0621/1549] Change tests from YAML to Python. --- l10n_br_account/__init__.py | 1 + l10n_br_account/__manifest__.py | 5 -- .../test/account_customer_invoice.yml | 46 ------------ .../test/account_supplier_invoice.yml | 46 ------------ .../test/generate_fiscal_rules.yml | 11 --- l10n_br_account/tests/__init__.py | 8 ++ .../tests/test_account_customer_invoice.py | 74 +++++++++++++++++++ .../tests/test_account_supplier_invoice.py | 74 +++++++++++++++++++ .../tests/test_generate_fiscal_rules.py | 19 +++++ 9 files changed, 176 insertions(+), 108 deletions(-) delete mode 100644 l10n_br_account/test/account_customer_invoice.yml delete mode 100644 l10n_br_account/test/account_supplier_invoice.yml delete mode 100644 l10n_br_account/test/generate_fiscal_rules.yml create mode 100644 l10n_br_account/tests/__init__.py create mode 100644 l10n_br_account/tests/test_account_customer_invoice.py create mode 100644 l10n_br_account/tests/test_account_supplier_invoice.py create mode 100644 l10n_br_account/tests/test_generate_fiscal_rules.py diff --git a/l10n_br_account/__init__.py b/l10n_br_account/__init__.py index 597245aaea0f..8aad6ea961e9 100644 --- a/l10n_br_account/__init__.py +++ b/l10n_br_account/__init__.py @@ -5,3 +5,4 @@ from . import models from . import sped from . import report +from . import tests diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index d4b0ffeaaab7..3daff0fe1084 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -33,11 +33,6 @@ 'demo': [ 'demo/base_demo.xml', ], - 'test': [ - 'test/account_customer_invoice.yml', - 'test/account_supplier_invoice.yml', - 'test/generate_fiscal_rules.yml', - ], 'installable': True, 'auto_install': False, } diff --git a/l10n_br_account/test/account_customer_invoice.yml b/l10n_br_account/test/account_customer_invoice.yml deleted file mode 100644 index 8af07f6df3ac..000000000000 --- a/l10n_br_account/test/account_customer_invoice.yml +++ /dev/null @@ -1,46 +0,0 @@ -- - Create Fiscal Category -- - !record {model: l10n_br_account.fiscal.category, id: fiscal_category_sale}: - code: Venda Teste - name: Venda Teste - type: output - journal_type: sale - property_journal: account.sales_journal -- - Create Fiscal Position -- - !record {model: account.fiscal.position, id: fiscal_position_sale}: - name: Venda Teste - type: output - company_id: base.main_company - fiscal_category_id: fiscal_category_sale -- - Create Fiscal Position Rule -- - !record {model: account.fiscal.position.rule, id: fiscal_position_rule_sale}: - name: Venda - description: Venda - company_id: base.main_company - from_country: base.br - fiscal_category_id: fiscal_category_sale - fiscal_position_id: fiscal_position_sale - use_sale: true - use_invoice: true - use_picking: true -- - Create a customer invoice -- - !record {model: account.invoice, id: account_invoice_customer0, view: view_l10n_br_account_invoice_form}: - payment_term: account.account_payment_term_advance - partner_id: base.res_partner_3 - reference_type: none - name: 'Test Customer Invoice' - invoice_line: - - product_id: product.product_product_5 - quantity: 10.0 -- - I check that Initially customer invoice is in the "Draft" state -- - !assert {model: account.invoice, id: account_invoice_customer0}: - - state == 'draft' diff --git a/l10n_br_account/test/account_supplier_invoice.yml b/l10n_br_account/test/account_supplier_invoice.yml deleted file mode 100644 index da001b1599fb..000000000000 --- a/l10n_br_account/test/account_supplier_invoice.yml +++ /dev/null @@ -1,46 +0,0 @@ -- - Create Fiscal Category -- - !record {model: l10n_br_account.fiscal.category, id: fiscal_category_purchase}: - code: Compras - name: Compras - type: input - journal_type: purchase - property_journal: account.expenses_journal -- - Create Fiscal Position -- - !record {model: account.fiscal.position, id: fiscal_position_purchase}: - name: Compras - type: input - company_id: base.main_company - fiscal_category_id: fiscal_category_purchase -- - Create Fiscal Position Rule -- - !record {model: account.fiscal.position.rule, id: fiscal_position_rule_purchase}: - name: Compras - description: Compras - company_id: base.main_company - from_country: base.br - fiscal_category_id: fiscal_category_purchase - fiscal_position_id: fiscal_position_purchase - use_purchase: true - use_invoice: true - use_picking: true -- - Create a supplier invoice -- - !record {model: account.invoice, id: account_invoice_supplier0, view: view_l10n_br_account_invoice_form}: - payment_term: account.account_payment_term_advance - partner_id: base.res_partner_3 - reference_type: none - name: 'Test Supplier Invoice' - invoice_line: - - product_id: product.product_product_5 - quantity: 10.0 -- - I check that Initially supplier invoice is in the "Draft" state -- - !assert {model: account.invoice, id: account_invoice_supplier0}: - - state == 'draft' diff --git a/l10n_br_account/test/generate_fiscal_rules.yml b/l10n_br_account/test/generate_fiscal_rules.yml deleted file mode 100644 index 654566f7f282..000000000000 --- a/l10n_br_account/test/generate_fiscal_rules.yml +++ /dev/null @@ -1,11 +0,0 @@ -- - Create Wizard -- - !record {model: wizard.account.fiscal.position.rule, id: wizard_account_fiscal_position_rule_test}: - company_id: base.main_company -- - Execute Wizard -- - !python {model: wizard.account.fiscal.position.rule}: | - context = {"active_ids": [ref("account_fiscal_position_rule.menu_action_account_fiscal_position_rule_template_form")], "active_id":ref('account_fiscal_position_rule.menu_action_account_fiscal_position_rule_template_form')} - self.action_create(cr, uid, [ref("wizard_account_fiscal_position_rule_test")], context=context) diff --git a/l10n_br_account/tests/__init__.py b/l10n_br_account/tests/__init__.py new file mode 100644 index 000000000000..e1be73235d10 --- /dev/null +++ b/l10n_br_account/tests/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# @ 2018 Akretion - www.akretion.com.br - +# Magno Costa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_account_customer_invoice +from . import test_account_supplier_invoice +from . import test_generate_fiscal_rules diff --git a/l10n_br_account/tests/test_account_customer_invoice.py b/l10n_br_account/tests/test_account_customer_invoice.py new file mode 100644 index 000000000000..f48757857f81 --- /dev/null +++ b/l10n_br_account/tests/test_account_customer_invoice.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# @ 2018 Akretion - www.akretion.com.br - +# Magno Costa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase + + +class TestCustomerInvoice(TransactionCase): + + def setUp(self): + super(TestCustomerInvoice, self).setUp() + self.sale_account = self.env['account.account'].create(dict( + code='X1020', + name='Product Sales - (test)', + user_type_id=self.env.ref( + 'account.data_account_type_revenue').id, + )) + self.sale_journal = self.env['account.journal'].create(dict( + name='Sales Journal - (test)', + code='TSAJ', + type='sale', + refund_sequence=True, + default_debit_account_id=self.sale_account.id, + default_credit_account_id=self.sale_account.id, + )) + self.fiscal_category = self.env[ + 'l10n_br_account.fiscal.category'].create(dict( + code='Venda Teste', + name='Venda Teste', + type='output', + journal_type='sale', + property_journal=self.sale_journal.id + )) + self.fiscal_position = self.env['account.fiscal.position'].create(dict( + name='Venda Teste', + type='output', + company_id=self.env.ref('base.main_company').id, + fiscal_category_id=self.fiscal_category.id, + )) + self.fiscal_position_rule = self.env[ + 'account.fiscal.position.rule'].create(dict( + name='Venda', + description='Venda', + company_id=self.env.ref('base.main_company').id, + from_country=self.env.ref('base.br').id, + fiscal_category_id=self.fiscal_category.id, + fiscal_position_id=self.fiscal_position.id, + use_sale=True, + use_invoice=True, + use_picking=True, + )) + self.invoice_1 = self.env['account.invoice'].create(dict( + name='Test Customer Invoice', + payment_term_id=self.env.ref( + 'account.account_payment_term_advance').id, + fiscal_category_id=self.fiscal_category.id, + partner_id=self.env.ref('base.res_partner_3').id, + reference_type="none", + invoice_line_ids=[(0, 0, { + 'product_id': self.env.ref('product.product_product_5').id, + 'quantity': 10.0, + 'price_unit': 450.0, + 'account_id': self.env['account.account'].search( + [('user_type_id', '=', self.env.ref( + 'account.data_account_type_revenue').id)], limit=1).id, + 'name': 'product test 5', + 'uom_id': self.env.ref('product.product_uom_unit').id + })] + )) + + def test_state(self): + self.assertEquals(self.invoice_1.state, 'draft', + "Invoice should be in state Draft") diff --git a/l10n_br_account/tests/test_account_supplier_invoice.py b/l10n_br_account/tests/test_account_supplier_invoice.py new file mode 100644 index 000000000000..0e01822d3781 --- /dev/null +++ b/l10n_br_account/tests/test_account_supplier_invoice.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# @ 2018 Akretion - www.akretion.com.br - +# Magno Costa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase + + +class TestSupplierInvoice(TransactionCase): + + def setUp(self): + super(TestSupplierInvoice, self).setUp() + self.purchase_account = self.env['account.account'].create(dict( + code='X1020', + name='Product Purchase - (test)', + user_type_id=self.env.ref( + 'account.data_account_type_revenue').id, + )) + self.purchase_journal = self.env['account.journal'].create(dict( + name='Purchase Journal - (test)', + code='TPJ', + type='purchase', + refund_sequence=True, + default_debit_account_id=self.purchase_account.id, + default_credit_account_id=self.purchase_account.id, + )) + self.fiscal_category = self.env[ + 'l10n_br_account.fiscal.category'].create(dict( + code='Compras Teste', + name='Compras Teste', + type='input', + journal_type='purchase', + property_journal=self.purchase_journal.id + )) + self.fiscal_position = self.env['account.fiscal.position'].create(dict( + name='Compras Teste', + type='input', + company_id=self.env.ref('base.main_company').id, + fiscal_category_id=self.fiscal_category.id, + )) + self.fiscal_position_rule = self.env[ + 'account.fiscal.position.rule'].create(dict( + name='Compras', + description='Compras', + company_id=self.env.ref('base.main_company').id, + from_country=self.env.ref('base.br').id, + fiscal_category_id=self.fiscal_category.id, + fiscal_position_id=self.fiscal_position.id, + use_purchase=True, + use_invoice=True, + use_picking=True, + )) + self.invoice_1 = self.env['account.invoice'].create(dict( + name='Test Supplier Invoice', + payment_term_id=self.env.ref( + 'account.account_payment_term_advance').id, + fiscal_category_id=self.fiscal_category.id, + partner_id=self.env.ref('base.res_partner_3').id, + reference_type="none", + invoice_line_ids=[(0, 0, { + 'product_id': self.env.ref('product.product_product_5').id, + 'quantity': 10.0, + 'price_unit': 450.0, + 'account_id': self.env['account.account'].search( + [('user_type_id', '=', self.env.ref( + 'account.data_account_type_revenue').id)], limit=1).id, + 'name': 'product test 5', + 'uom_id': self.env.ref('product.product_uom_unit').id + })] + )) + + def test_state(self): + self.assertEquals(self.invoice_1.state, 'draft', + "Invoice should be in state Draft") diff --git a/l10n_br_account/tests/test_generate_fiscal_rules.py b/l10n_br_account/tests/test_generate_fiscal_rules.py new file mode 100644 index 000000000000..5e38c63568fb --- /dev/null +++ b/l10n_br_account/tests/test_generate_fiscal_rules.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# @ 2018 Akretion - www.akretion.com.br - +# Magno Costa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase + + +class TestGenerateFiscalRules(TransactionCase): + + def setUp(self): + super(TestGenerateFiscalRules, self).setUp() + self.wzd_account_fiscal_position_rule = self.env[ + 'wizard.account.fiscal.position.rule'].create(dict( + company_id=self.env.ref('base.main_company').id, + )) + + def test_generate_fiscal_rules(self): + self.wzd_account_fiscal_position_rule.action_create() From f8f0572020f0dac0a6c204023b081b9f498f58d0 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Thu, 16 Aug 2018 11:39:56 -0300 Subject: [PATCH 0622/1549] PEP8. --- l10n_br_account/models/account_invoice.py | 16 +++++--- l10n_br_account/models/l10n_br_account.py | 3 +- .../tests/test_account_customer_invoice.py | 40 ++++++++++--------- .../tests/test_account_supplier_invoice.py | 40 ++++++++++--------- .../tests/test_generate_fiscal_rules.py | 7 ++-- 5 files changed, 58 insertions(+), 48 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index b4be5ca537cb..74eae0cc5366 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -30,22 +30,26 @@ class AccountInvoice(models.Model): 'company_id', 'date_invoice') def _compute_amount(self): for record in self: - record.amount_untaxed = sum(l.price_subtotal - for l in record.invoice_line_ids) - record.amount_tax = sum(t.amount for t in record.tax_line_ids - if not t.tax_id.tax_discount) + record.amount_untaxed = sum( + l.price_subtotal for l in record.invoice_line_ids) + record.amount_tax = sum( + t.amount for t in record.tax_line_ids if not + t.tax_id.tax_discount) record.amount_total = record.amount_untaxed + record.amount_tax amount_total_company_signed = record.amount_total amount_untaxed_signed = record.amount_untaxed if (record.currency_id and record.company_id and record.currency_id != record.company_id.currency_id): - currency_id = record.currency_id.with_context(date=record.date_invoice) + currency_id = record.currency_id.with_context( + date=record.date_invoice) amount_total_company_signed = currency_id.compute( record.amount_total, record.company_id.currency_id) amount_untaxed_signed = currency_id.compute( record.amount_untaxed, record.company_id.currency_id) sign = record.type in ['in_refund', 'out_refund'] and -1 or 1 - record.amount_total_company_signed = amount_total_company_signed * sign + record.amount_total_company_signed = ( + amount_total_company_signed * sign + ) record.amount_total_signed = record.amount_total * sign record.amount_untaxed_signed = amount_untaxed_signed * sign diff --git a/l10n_br_account/models/l10n_br_account.py b/l10n_br_account/models/l10n_br_account.py index 83a99a53cb7b..0b38609a35ba 100644 --- a/l10n_br_account/models/l10n_br_account.py +++ b/l10n_br_account/models/l10n_br_account.py @@ -321,7 +321,8 @@ def _check_range(self): "document_serie_id = %s \ AND state = 'done' \ AND id <> %s" % (record.document_serie_id.id, record.id)) - if record._cr.fetchall() or (record.number_start > record.number_end): + if (record._cr.fetchall() or + (record.number_start > record.number_end)): raise UserError(_(u'Não é permitido faixas sobrepostas!')) return True diff --git a/l10n_br_account/tests/test_account_customer_invoice.py b/l10n_br_account/tests/test_account_customer_invoice.py index f48757857f81..a6f069c1cc45 100644 --- a/l10n_br_account/tests/test_account_customer_invoice.py +++ b/l10n_br_account/tests/test_account_customer_invoice.py @@ -25,13 +25,14 @@ def setUp(self): default_credit_account_id=self.sale_account.id, )) self.fiscal_category = self.env[ - 'l10n_br_account.fiscal.category'].create(dict( - code='Venda Teste', - name='Venda Teste', - type='output', - journal_type='sale', - property_journal=self.sale_journal.id - )) + 'l10n_br_account.fiscal.category'].create( + dict( + code='Venda Teste', + name='Venda Teste', + type='output', + journal_type='sale', + property_journal=self.sale_journal.id + )) self.fiscal_position = self.env['account.fiscal.position'].create(dict( name='Venda Teste', type='output', @@ -39,17 +40,18 @@ def setUp(self): fiscal_category_id=self.fiscal_category.id, )) self.fiscal_position_rule = self.env[ - 'account.fiscal.position.rule'].create(dict( - name='Venda', - description='Venda', - company_id=self.env.ref('base.main_company').id, - from_country=self.env.ref('base.br').id, - fiscal_category_id=self.fiscal_category.id, - fiscal_position_id=self.fiscal_position.id, - use_sale=True, - use_invoice=True, - use_picking=True, - )) + 'account.fiscal.position.rule'].create( + dict( + name='Venda', + description='Venda', + company_id=self.env.ref('base.main_company').id, + from_country=self.env.ref('base.br').id, + fiscal_category_id=self.fiscal_category.id, + fiscal_position_id=self.fiscal_position.id, + use_sale=True, + use_invoice=True, + use_picking=True, + )) self.invoice_1 = self.env['account.invoice'].create(dict( name='Test Customer Invoice', payment_term_id=self.env.ref( @@ -71,4 +73,4 @@ def setUp(self): def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', - "Invoice should be in state Draft") + "Invoice should be in state Draft") diff --git a/l10n_br_account/tests/test_account_supplier_invoice.py b/l10n_br_account/tests/test_account_supplier_invoice.py index 0e01822d3781..099568c14d91 100644 --- a/l10n_br_account/tests/test_account_supplier_invoice.py +++ b/l10n_br_account/tests/test_account_supplier_invoice.py @@ -25,13 +25,14 @@ def setUp(self): default_credit_account_id=self.purchase_account.id, )) self.fiscal_category = self.env[ - 'l10n_br_account.fiscal.category'].create(dict( - code='Compras Teste', - name='Compras Teste', - type='input', - journal_type='purchase', - property_journal=self.purchase_journal.id - )) + 'l10n_br_account.fiscal.category'].create( + dict( + code='Compras Teste', + name='Compras Teste', + type='input', + journal_type='purchase', + property_journal=self.purchase_journal.id + )) self.fiscal_position = self.env['account.fiscal.position'].create(dict( name='Compras Teste', type='input', @@ -39,17 +40,18 @@ def setUp(self): fiscal_category_id=self.fiscal_category.id, )) self.fiscal_position_rule = self.env[ - 'account.fiscal.position.rule'].create(dict( - name='Compras', - description='Compras', - company_id=self.env.ref('base.main_company').id, - from_country=self.env.ref('base.br').id, - fiscal_category_id=self.fiscal_category.id, - fiscal_position_id=self.fiscal_position.id, - use_purchase=True, - use_invoice=True, - use_picking=True, - )) + 'account.fiscal.position.rule'].create( + dict( + name='Compras', + description='Compras', + company_id=self.env.ref('base.main_company').id, + from_country=self.env.ref('base.br').id, + fiscal_category_id=self.fiscal_category.id, + fiscal_position_id=self.fiscal_position.id, + use_purchase=True, + use_invoice=True, + use_picking=True, + )) self.invoice_1 = self.env['account.invoice'].create(dict( name='Test Supplier Invoice', payment_term_id=self.env.ref( @@ -71,4 +73,4 @@ def setUp(self): def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', - "Invoice should be in state Draft") + "Invoice should be in state Draft") diff --git a/l10n_br_account/tests/test_generate_fiscal_rules.py b/l10n_br_account/tests/test_generate_fiscal_rules.py index 5e38c63568fb..3e7b25710285 100644 --- a/l10n_br_account/tests/test_generate_fiscal_rules.py +++ b/l10n_br_account/tests/test_generate_fiscal_rules.py @@ -11,9 +11,10 @@ class TestGenerateFiscalRules(TransactionCase): def setUp(self): super(TestGenerateFiscalRules, self).setUp() self.wzd_account_fiscal_position_rule = self.env[ - 'wizard.account.fiscal.position.rule'].create(dict( - company_id=self.env.ref('base.main_company').id, - )) + 'wizard.account.fiscal.position.rule'].create( + dict( + company_id=self.env.ref('base.main_company').id, + )) def test_generate_fiscal_rules(self): self.wzd_account_fiscal_position_rule.action_create() From a8ad8db648a9d2fae1fa5e159fbafc2e173c0116 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Thu, 16 Aug 2018 13:56:15 -0300 Subject: [PATCH 0623/1549] [IMP] Tests. --- l10n_br_account/tests/__init__.py | 1 + .../tests/test_account_customer_invoice.py | 67 ++++++++++++++++++- .../tests/test_account_supplier_invoice.py | 6 +- .../test_generate_multi_charts_accounts.py | 29 ++++++++ 4 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 l10n_br_account/tests/test_generate_multi_charts_accounts.py diff --git a/l10n_br_account/tests/__init__.py b/l10n_br_account/tests/__init__.py index e1be73235d10..61697c21a8b4 100644 --- a/l10n_br_account/tests/__init__.py +++ b/l10n_br_account/tests/__init__.py @@ -6,3 +6,4 @@ from . import test_account_customer_invoice from . import test_account_supplier_invoice from . import test_generate_fiscal_rules +from . import test_generate_multi_charts_accounts diff --git a/l10n_br_account/tests/test_account_customer_invoice.py b/l10n_br_account/tests/test_account_customer_invoice.py index a6f069c1cc45..64952e0fa220 100644 --- a/l10n_br_account/tests/test_account_customer_invoice.py +++ b/l10n_br_account/tests/test_account_customer_invoice.py @@ -67,10 +67,75 @@ def setUp(self): [('user_type_id', '=', self.env.ref( 'account.data_account_type_revenue').id)], limit=1).id, 'name': 'product test 5', - 'uom_id': self.env.ref('product.product_uom_unit').id + 'uom_id': self.env.ref('product.product_uom_unit').id, + 'fiscal_category_id': self.fiscal_category.id, + })] + )) + # Invoice with TAXES + tax_fixed = self.env['account.tax'].create({ + 'sequence': 10, + 'name': 'Tax 10.0 (Fixed)', + 'amount': 10.0, + 'amount_type': 'fixed', + 'include_base_amount': True, + }) + tax_percent_included_base_incl = self.env['account.tax'].create({ + 'sequence': 20, + 'name': 'Tax 50.0% (Percentage of Price Tax Included)', + 'amount': 50.0, + 'amount_type': 'division', + 'include_base_amount': True, + }) + tax_percentage = self.env['account.tax'].create({ + 'sequence': 30, + 'name': 'Tax 20.0% (Percentage of Price)', + 'amount': 20.0, + 'amount_type': 'percent', + 'include_base_amount': False, + }) + self.invoice_2 = self.env['account.invoice'].create(dict( + name='Test Customer Invoice', + payment_term_id=self.env.ref( + 'account.account_payment_term_advance').id, + fiscal_category_id=self.fiscal_category.id, + partner_id=self.env.ref('base.res_partner_3').id, + reference_type="none", + invoice_line_ids=[(0, 0, { + 'product_id': self.env.ref('product.product_product_5').id, + 'quantity': 5.0, + 'price_unit': 100.0, + 'account_id': self.env['account.account'].search( + [('user_type_id', '=', self.env.ref( + 'account.data_account_type_revenue').id)], limit=1).id, + 'name': 'product test 5', + 'uom_id': self.env.ref('product.product_uom_unit').id, + 'fiscal_category_id': self.fiscal_category.id, + 'invoice_line_tax_ids': [(6, 0, [ + tax_fixed.id, + tax_percent_included_base_incl.id, + tax_percentage.id + ])], })] )) def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', "Invoice should be in state Draft") + self.invoice_1.action_invoice_open() + self.assertEquals(self.invoice_1.state, 'open', + "Invoice should be in state Open") + + def test_tax(self): + self.invoice_2.action_invoice_open() + self.assertEquals(self.invoice_2.state, 'open', + "Invoice should be in state Open") + invoice_tax = self.invoice_2.tax_line_ids.sorted( + key=lambda r: r.sequence) + self.assertEquals(invoice_tax.mapped('amount'), [50.0, 550.0, 220.0]) + self.assertEquals(invoice_tax.mapped('base'), [500.0, 550.0, 1100.0]) + assert self.invoice_2.move_id, "Move not created for open invoice" + self.invoice_2.pay_and_reconcile( + self.env['account.journal'].search( + [('type', '=', 'bank')], limit=1), 10050.0) + self.assertEquals(self.invoice_2.state, 'paid', + "Invoice should be in state Paid") diff --git a/l10n_br_account/tests/test_account_supplier_invoice.py b/l10n_br_account/tests/test_account_supplier_invoice.py index 099568c14d91..1174cfc80b92 100644 --- a/l10n_br_account/tests/test_account_supplier_invoice.py +++ b/l10n_br_account/tests/test_account_supplier_invoice.py @@ -67,10 +67,14 @@ def setUp(self): [('user_type_id', '=', self.env.ref( 'account.data_account_type_revenue').id)], limit=1).id, 'name': 'product test 5', - 'uom_id': self.env.ref('product.product_uom_unit').id + 'uom_id': self.env.ref('product.product_uom_unit').id, + 'fiscal_category_id': self.fiscal_category.id, })] )) def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', "Invoice should be in state Draft") + self.invoice_1.action_invoice_open() + self.assertEquals(self.invoice_1.state, 'open', + "Invoice should be in state Open") diff --git a/l10n_br_account/tests/test_generate_multi_charts_accounts.py b/l10n_br_account/tests/test_generate_multi_charts_accounts.py new file mode 100644 index 000000000000..fd0fe159b0f5 --- /dev/null +++ b/l10n_br_account/tests/test_generate_multi_charts_accounts.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# @ 2018 Akretion - www.akretion.com.br - +# Magno Costa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase + + +class TestGenerateMultiChartsAccounts(TransactionCase): + + def setUp(self): + super(TestGenerateMultiChartsAccounts, self).setUp() + self.company_1 = self.env['res.company'].create( + dict( + name='Empresa TESTE', + currency_id=self.env.ref('base.BRL').id + )) + self.account_id = self.env['account.account.template'].search([])[0] + self.wzd_account_multi_charts_accounts = self.env[ + 'wizard.multi.charts.accounts'].create( + dict( + company_id=self.company_1.id, + currency_id=self.env.ref('base.BRL').id, + transfer_account_id=self.account_id.id, + code_digits=6, + )) + + def test_generate_multi_charts_accounts(self): + self.wzd_account_multi_charts_accounts.execute() From d5a53b05d788f457d56c117771f2093420963dcb Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Sat, 18 Aug 2018 18:12:05 -0300 Subject: [PATCH 0624/1549] [REF] The code should be implement on the module l10n_br_account_product . --- l10n_br_account/models/account_tax.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/l10n_br_account/models/account_tax.py b/l10n_br_account/models/account_tax.py index 1a6b953b172a..2a398092ba21 100644 --- a/l10n_br_account/models/account_tax.py +++ b/l10n_br_account/models/account_tax.py @@ -14,13 +14,6 @@ def _compute_tax(self, taxes, total_line, result = {'tax_discount': 0.0, 'taxes': []} for tax in taxes: - if tax.get('type') == 'weight' and product: - weight_net = product.weight_net - float_val = product_qty * weight_net * tax['percent'] - tax['amount'] = round(float_val, precision) - - if tax.get('type') == 'quantity': - tax['amount'] = round(product_qty * tax['percent'], precision) tax['amount'] = round( tax['amount'] * (1 - tax['base_reduction']), precision) From ce454a33efef3265b1b5af100df60ecd94d919f3 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Sat, 18 Aug 2018 18:15:48 -0300 Subject: [PATCH 0625/1549] [FIX] The method 'execute' from object wizard.multi.charts.accounts check field 'cfop_id' when create template. --- l10n_br_account/models/account_fiscal_position_template.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py index d5f97384dc0e..64192101b0d4 100644 --- a/l10n_br_account/models/account_fiscal_position_template.py +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -14,6 +14,11 @@ class AccountFiscalPositionTemplate(AccountFiscalPositionAbstract, models.Model): _inherit = 'account.fiscal.position.template' + cfop_id = fields.Many2one( + comodel_name='l10n_br_account_product.cfop', + string='CFOP' + ) + def generate_fiscal_position(self, chart_temp_id, tax_template_ref, acc_template_ref, company_id): @@ -29,6 +34,7 @@ def generate_fiscal_position(self, chart_temp_id, :param company_id: selected from wizard.multi.charts.accounts. :returns: True """ + print '========= ACCOUNT FISCAL POSITION TEMPLATE ============' obj_tax_fp = self.env['account.fiscal.position.tax'] obj_ac_fp = self.env['account.fiscal.position.account'] obj_fiscal_position = self.env['account.fiscal.position'] From ab446479c21d922159020064d6bfb6c9a0981235 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Sat, 18 Aug 2018 18:25:47 -0300 Subject: [PATCH 0626/1549] [IMP] Tests. --- l10n_br_account/__manifest__.py | 1 + l10n_br_account/demo/l10n_br_chart_demo.xml | 53 +++++++++++++++++++ .../account_fiscal_position_template.py | 1 - .../test_generate_multi_charts_accounts.py | 17 ++++-- 4 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 l10n_br_account/demo/l10n_br_chart_demo.xml diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 3daff0fe1084..630ee27db5dd 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -32,6 +32,7 @@ ], 'demo': [ 'demo/base_demo.xml', + 'demo/l10n_br_chart_demo.xml', ], 'installable': True, 'auto_install': False, diff --git a/l10n_br_account/demo/l10n_br_chart_demo.xml b/l10n_br_account/demo/l10n_br_chart_demo.xml new file mode 100644 index 000000000000..70ef39a82475 --- /dev/null +++ b/l10n_br_account/demo/l10n_br_chart_demo.xml @@ -0,0 +1,53 @@ + + + + + transferência de Conta + 1.01.01.12.00 + + + + + + Planilha de Contas Brasileira + 6 + 1.01.01.02.00 + 1.01.01.01.00 + + + + + + + + + + + + Contribuinte + + + + + 3.01.03.01.01.03.00 + ganho cambial + + + + + + 3.01.03.01.03.03.00 + Perda cambial + + + + + + + + + + + + + diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py index 64192101b0d4..fcd36161ef9a 100644 --- a/l10n_br_account/models/account_fiscal_position_template.py +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -34,7 +34,6 @@ def generate_fiscal_position(self, chart_temp_id, :param company_id: selected from wizard.multi.charts.accounts. :returns: True """ - print '========= ACCOUNT FISCAL POSITION TEMPLATE ============' obj_tax_fp = self.env['account.fiscal.position.tax'] obj_ac_fp = self.env['account.fiscal.position.account'] obj_fiscal_position = self.env['account.fiscal.position'] diff --git a/l10n_br_account/tests/test_generate_multi_charts_accounts.py b/l10n_br_account/tests/test_generate_multi_charts_accounts.py index fd0fe159b0f5..7935641e94d3 100644 --- a/l10n_br_account/tests/test_generate_multi_charts_accounts.py +++ b/l10n_br_account/tests/test_generate_multi_charts_accounts.py @@ -10,20 +10,31 @@ class TestGenerateMultiChartsAccounts(TransactionCase): def setUp(self): super(TestGenerateMultiChartsAccounts, self).setUp() + self.company_1 = self.env['res.company'].create( dict( name='Empresa TESTE', - currency_id=self.env.ref('base.BRL').id + country_id=self.env.ref('base.br').id, + currency_id=self.env.ref('base.BRL').id, + transfer_account_id=self.env.ref( + 'l10n_br.transfer_account_id').id, )) - self.account_id = self.env['account.account.template'].search([])[0] + + self.account_chart_template_1 = self.env.ref( + 'l10n_br_account.l10n_br_account_chart_template_demo') + self.wzd_account_multi_charts_accounts = self.env[ 'wizard.multi.charts.accounts'].create( dict( company_id=self.company_1.id, currency_id=self.env.ref('base.BRL').id, - transfer_account_id=self.account_id.id, + transfer_account_id=self.env.ref( + 'l10n_br.transfer_account_id').id, code_digits=6, + chart_template_id=self.account_chart_template_1.id, )) + self.wzd_account_multi_charts_accounts.onchange_chart_template_id() def test_generate_multi_charts_accounts(self): + self.wzd_account_multi_charts_accounts.execute() From ef77d6e6cce9657854480658c9aad2e438b8281e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 20 Aug 2018 10:45:40 -0300 Subject: [PATCH 0627/1549] [MIGR] view file product_view.xml --- l10n_br_account/views/product_view.xml | 46 ++++++++++++-------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/l10n_br_account/views/product_view.xml b/l10n_br_account/views/product_view.xml index ce66c4e2a7e9..8731c78b1034 100644 --- a/l10n_br_account/views/product_view.xml +++ b/l10n_br_account/views/product_view.xml @@ -1,28 +1,26 @@ - - + - - l10n_br_account_product_template_form_view - product.template - - - - - - - - - - - - - - - - + + l10n_br_account_product_template_form_view + product.template + + + + - + + + + + + + + + + + + + - - + From 76a85f1af5c8574ce5e3eb0b73290883d008f227 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 20 Aug 2018 10:46:05 -0300 Subject: [PATCH 0628/1549] [MIGR] view file res_company_view.xml --- l10n_br_account/views/res_company_view.xml | 76 +++++++++++----------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/l10n_br_account/views/res_company_view.xml b/l10n_br_account/views/res_company_view.xml index aded7c366310..c70e6b9b31c0 100644 --- a/l10n_br_account/views/res_company_view.xml +++ b/l10n_br_account/views/res_company_view.xml @@ -1,43 +1,41 @@ - - + - - l10n_br_account.company - res.company - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + l10n_br_account.company + res.company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - + From 9627f083c2cfd4f20a8c8e6759a97005c2a50158 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 20 Aug 2018 10:46:51 -0300 Subject: [PATCH 0629/1549] [MIGR] view file res_config_view.xml --- l10n_br_account/views/res_config_view.xml | 59 +++++++++++------------ 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/l10n_br_account/views/res_config_view.xml b/l10n_br_account/views/res_config_view.xml index 2deb32072c08..1bc5fb8449e3 100644 --- a/l10n_br_account/views/res_config_view.xml +++ b/l10n_br_account/views/res_config_view.xml @@ -1,34 +1,33 @@ - - - - account.config.settings.l10n_br_account - account.config.settings - - - - - - - + From 7cc70f37a7baf0cfb0bb32d661d084eb5be0c2c3 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 12:17:44 -0300 Subject: [PATCH 0630/1549] [REF] Move wizard to create charts to module l10n_br_account_product because CFOP is implement there. --- l10n_br_account/models/__init__.py | 1 - .../models/wizard_multi_charts_accounts.py | 47 ------------------- 2 files changed, 48 deletions(-) delete mode 100644 l10n_br_account/models/wizard_multi_charts_accounts.py diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 3cdf903e21b4..dd100052ef4e 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -18,7 +18,6 @@ from . import res_config from . import account_journal from . import account_tax -from . import wizard_multi_charts_accounts from . import account_invoice from . import account_invoice_line from . import product_template diff --git a/l10n_br_account/models/wizard_multi_charts_accounts.py b/l10n_br_account/models/wizard_multi_charts_accounts.py deleted file mode 100644 index 5171aa4f2448..000000000000 --- a/l10n_br_account/models/wizard_multi_charts_accounts.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (C) 2009 - TODAY Renato Lima - Akretion -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html - -from odoo import models - - -class WizardMultiChartsAccounts(models.TransientModel): - _inherit = 'wizard.multi.charts.accounts' - - def execute(self): - """This function is called at the confirmation of the wizard to - generate the COA from the templates. It will read all the provided - information to create the accounts, the banks, the journals, the - taxes, the tax codes, the accounting properties... accordingly for - the chosen company. - - This is override in Brazilian Localization to copy CFOP - from fiscal positions template to fiscal positions. - - :Parameters: - - 'cr': Database cursor. - - 'uid': Current user. - - 'ids': orm_memory id used to read all data. - - 'context': Context. - """ - result = super(WizardMultiChartsAccounts, self).execute() - - obj_multi = self[0] - obj_fp_template = self.env['account.fiscal.position.template'] - obj_fp = self.env['account.fiscal.position'] - - chart_template_id = obj_multi.chart_template_id.id - company_id = obj_multi.company_id.id - - fp_template_ids = obj_fp_template.search( - [('chart_template_id', '=', chart_template_id)]) - - for fp_template in fp_template_ids: - if fp_template.cfop_id: - fp_id = obj_fp.search( - [('name', '=', fp_template.name), - ('company_id', '=', company_id)]) - if fp_id: - fp_id.write( - {'cfop_id': fp_template.cfop_id.id}) - return result From 42bbb6fe73dc4abf85b8f836072bb13d5fd01c05 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 12:29:03 -0300 Subject: [PATCH 0631/1549] [REF] Moved method to module l10n_br_account_product because the implement of field CFOP is there. --- .../account_fiscal_position_template.py | 98 ------------------- 1 file changed, 98 deletions(-) diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py index fcd36161ef9a..a65e4ca11bff 100644 --- a/l10n_br_account/models/account_fiscal_position_template.py +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -10,104 +10,6 @@ ) -class AccountFiscalPositionTemplate(AccountFiscalPositionAbstract, - models.Model): - _inherit = 'account.fiscal.position.template' - - cfop_id = fields.Many2one( - comodel_name='l10n_br_account_product.cfop', - string='CFOP' - ) - - def generate_fiscal_position(self, chart_temp_id, - tax_template_ref, acc_template_ref, - company_id): - """ - This method generate Fiscal Position, Fiscal Position Accounts and - Fiscal Position Taxes from templates. - - :param chart_temp_id: Chart Template Id. - :param taxes_ids: Taxes templates reference for generating - account.fiscal.position.tax. - :param acc_template_ref: Account templates reference for generating - account.fiscal.position.account. - :param company_id: selected from wizard.multi.charts.accounts. - :returns: True - """ - obj_tax_fp = self.env['account.fiscal.position.tax'] - obj_ac_fp = self.env['account.fiscal.position.account'] - obj_fiscal_position = self.env['account.fiscal.position'] - obj_tax_code = self.env['account.tax.code'] - obj_tax_code_template = self.env['account.tax.code.template'] - tax_code_template_ref = {} - tax_code_ids = obj_tax_code.search([('company_id', '=', company_id)]) - - for tax_code in tax_code_ids: - tax_code_template = obj_tax_code_template.search( - [('name', '=', tax_code.name)]) - if tax_code_template: - tax_code_template_ref[tax_code_template[0].id] = tax_code.id - - fp_ids = self.search([('chart_template_id', '=', chart_temp_id)]) - for position in fp_ids: - new_fp = obj_fiscal_position.create({ - 'company_id': company_id, - 'name': position.name, - 'note': position.note, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': - position.cfop_id and position.cfop_id.id or False, - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': (position.fiscal_category_id and - position.fiscal_category_id.id or - False)}) - - for tax in position.tax_ids: - obj_tax_fp.create({ - 'tax_src_id': - tax.tax_src_id and - tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': - tax.tax_code_src_id, - 'type': position.type, - 'state': position.state, - 'type_tax_use': position.type_tax_use, - 'cfop_id': (position.cfop_id and - position.cfop_id.id or False), - 'inv_copy_note': position.inv_copy_note, - 'asset_operation': position.asset_operation, - 'fiscal_category_id': (position.fiscal_category_id and - position.fiscal_category_id.id or - False)}) - - for tax in position.tax_ids: - obj_tax_fp.create({ - 'tax_src_id': - tax.tax_src_id and - tax_template_ref.get(tax.tax_src_id.id, False), - 'tax_code_src_id': - tax.tax_code_src_id and - tax_code_template_ref.get(tax.tax_code_src_id.id, False), - 'tax_src_domain': tax.tax_src_domain, - 'tax_dest_id': tax.tax_dest_id and - tax_template_ref.get(tax.tax_dest_id.id, False), - 'tax_code_dest_id': tax.tax_code_dest_id and - tax_code_template_ref.get(tax.tax_code_dest_id.id, False), - 'position_id': new_fp}) - - for acc in position.account_ids: - obj_ac_fp.create({ - 'account_src_id': acc_template_ref[acc.account_src_id.id], - 'account_dest_id': - acc_template_ref[acc.account_dest_id.id], - 'position_id': new_fp}) - - return True - - class AccountFiscalPositionTaxTemplate(AccountFiscalPositionTaxAbstract, models.Model): From b0a38aea0cedccdae778aa622aa67af8be6b93e1 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 12:37:24 -0300 Subject: [PATCH 0632/1549] [IMP] Tests. --- l10n_br_account/demo/l10n_br_chart_demo.xml | 33 ++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/demo/l10n_br_chart_demo.xml b/l10n_br_account/demo/l10n_br_chart_demo.xml index 70ef39a82475..7ae0c3890ca7 100644 --- a/l10n_br_account/demo/l10n_br_chart_demo.xml +++ b/l10n_br_account/demo/l10n_br_chart_demo.xml @@ -43,11 +43,36 @@ + + + + + + + + IPI + IPI Saída - TESTE + 0.00 + sale + + + + + + + IPI 2% + IPI Saída 2% - TESTE + 2 + sale + + + + - - - - + + + + From d1184084325c39e8494aa8ed5e3248c0170f2abe Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 12:55:44 -0300 Subject: [PATCH 0633/1549] PEP8. --- l10n_br_account/models/account_fiscal_position_template.py | 1 - 1 file changed, 1 deletion(-) diff --git a/l10n_br_account/models/account_fiscal_position_template.py b/l10n_br_account/models/account_fiscal_position_template.py index a65e4ca11bff..5c750d1ecf32 100644 --- a/l10n_br_account/models/account_fiscal_position_template.py +++ b/l10n_br_account/models/account_fiscal_position_template.py @@ -5,7 +5,6 @@ from odoo import models, fields from .account_fiscal_position_abstract import ( - AccountFiscalPositionAbstract, AccountFiscalPositionTaxAbstract ) From 77ab1f657f756ab795babc0d4cdff77e8d94ea86 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 17:33:13 -0300 Subject: [PATCH 0634/1549] [REF] The field 'move_line_receivable_id' are changed to 'payment_move_line_ids' on core. --- l10n_br_account/models/account_invoice.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/l10n_br_account/models/account_invoice.py b/l10n_br_account/models/account_invoice.py index 74eae0cc5366..2a10dc2c9855 100644 --- a/l10n_br_account/models/account_invoice.py +++ b/l10n_br_account/models/account_invoice.py @@ -53,15 +53,20 @@ def _compute_amount(self): record.amount_total_signed = record.amount_total * sign record.amount_untaxed_signed = amount_untaxed_signed * sign - def _compute_receivables(self): - lines = self.env['account.move.line'] - for line in self.move_id.line_ids: - if (line.account_id.id == self.account_id.id and - self.journal_id.revenue_expense and - line.account_id.user_type_id.type in ('receivable', - 'payable')): - lines |= line - self.move_line_receivable_id = (lines).sorted() + @api.one + @api.depends('move_id.line_ids.amount_residual') + def _compute_payments(self): + payment_lines = [] + for line in self.move_id.line_ids.filtered( + lambda l: l.account_id.id == self.account_id.id and + self.journal_id.revenue_expense and + l.account_id.user_type_id.type in ('receivable', 'payable')): + payment_lines.extend(filter(None, [ + rp.credit_move_id.id for rp in line.matched_credit_ids])) + payment_lines.extend(filter(None, [ + rp.debit_move_id.id for rp in line.matched_debit_ids])) + self.payment_move_line_ids = self.env[ + 'account.move.line'].browse(list(set(payment_lines))) state = fields.Selection( selection_add=[ From 1397e22b32b0dec4fffde68e3361e7e8caa410ab Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 17:34:37 -0300 Subject: [PATCH 0635/1549] [IMP] Tests. --- .../tests/test_account_customer_invoice.py | 36 +++++++++++++++++++ .../tests/test_account_supplier_invoice.py | 4 +++ 2 files changed, 40 insertions(+) diff --git a/l10n_br_account/tests/test_account_customer_invoice.py b/l10n_br_account/tests/test_account_customer_invoice.py index 64952e0fa220..6ad8b8e865b8 100644 --- a/l10n_br_account/tests/test_account_customer_invoice.py +++ b/l10n_br_account/tests/test_account_customer_invoice.py @@ -15,6 +15,7 @@ def setUp(self): name='Product Sales - (test)', user_type_id=self.env.ref( 'account.data_account_type_revenue').id, + reconcile=True, )) self.sale_journal = self.env['account.journal'].create(dict( name='Sales Journal - (test)', @@ -23,6 +24,7 @@ def setUp(self): refund_sequence=True, default_debit_account_id=self.sale_account.id, default_credit_account_id=self.sale_account.id, + revenue_expense=True, )) self.fiscal_category = self.env[ 'l10n_br_account.fiscal.category'].create( @@ -59,6 +61,7 @@ def setUp(self): fiscal_category_id=self.fiscal_category.id, partner_id=self.env.ref('base.res_partner_3').id, reference_type="none", + journal_id=self.sale_journal.id, invoice_line_ids=[(0, 0, { 'product_id': self.env.ref('product.product_product_5').id, 'quantity': 10.0, @@ -100,6 +103,7 @@ def setUp(self): fiscal_category_id=self.fiscal_category.id, partner_id=self.env.ref('base.res_partner_3').id, reference_type="none", + journal_id=self.sale_journal.id, invoice_line_ids=[(0, 0, { 'product_id': self.env.ref('product.product_product_5').id, 'quantity': 5.0, @@ -117,6 +121,27 @@ def setUp(self): ])], })] )) + self.invoice_3 = self.env['account.invoice'].create(dict( + name='Test Customer Invoice', + payment_term_id=self.env.ref( + 'account.account_payment_term_advance').id, + fiscal_category_id=self.fiscal_category.id, + currency_id=self.env.ref('base.EUR').id, + partner_id=self.env.ref('base.res_partner_3').id, + reference_type="none", + journal_id=self.sale_journal.id, + invoice_line_ids=[(0, 0, { + 'product_id': self.env.ref('product.product_product_5').id, + 'quantity': 10.0, + 'price_unit': 450.0, + 'account_id': self.env['account.account'].search( + [('user_type_id', '=', self.env.ref( + 'account.data_account_type_revenue').id)], limit=1).id, + 'name': 'product test 5', + 'uom_id': self.env.ref('product.product_uom_unit').id, + 'fiscal_category_id': self.fiscal_category.id, + })] + )) def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', @@ -137,5 +162,16 @@ def test_tax(self): self.invoice_2.pay_and_reconcile( self.env['account.journal'].search( [('type', '=', 'bank')], limit=1), 10050.0) + assert self.invoice_2.payment_move_line_ids, \ + "Paymente Move Line not created for Paid invoice" self.assertEquals(self.invoice_2.state, 'paid', "Invoice should be in state Paid") + + def test_invoice_other_currency(self): + self.assertEquals(self.invoice_3.state, 'draft', + "Invoice should be in state Draft") + self.invoice_3.action_invoice_open() + assert self.invoice_3.move_id, \ + "Move Receivable not created for open invoice" + self.assertEquals(self.invoice_3.state, 'open', + "Invoice should be in state Open") diff --git a/l10n_br_account/tests/test_account_supplier_invoice.py b/l10n_br_account/tests/test_account_supplier_invoice.py index 1174cfc80b92..5b3e53da3517 100644 --- a/l10n_br_account/tests/test_account_supplier_invoice.py +++ b/l10n_br_account/tests/test_account_supplier_invoice.py @@ -23,6 +23,7 @@ def setUp(self): refund_sequence=True, default_debit_account_id=self.purchase_account.id, default_credit_account_id=self.purchase_account.id, + revenue_expense=True, )) self.fiscal_category = self.env[ 'l10n_br_account.fiscal.category'].create( @@ -59,6 +60,7 @@ def setUp(self): fiscal_category_id=self.fiscal_category.id, partner_id=self.env.ref('base.res_partner_3').id, reference_type="none", + journal_id=self.purchase_journal.id, invoice_line_ids=[(0, 0, { 'product_id': self.env.ref('product.product_product_5').id, 'quantity': 10.0, @@ -76,5 +78,7 @@ def test_state(self): self.assertEquals(self.invoice_1.state, 'draft', "Invoice should be in state Draft") self.invoice_1.action_invoice_open() + assert self.invoice_1.move_id, \ + "Move Receivable not created for open invoice" self.assertEquals(self.invoice_1.state, 'open', "Invoice should be in state Open") From c5e8455bb9b628be24b4ada29a934620e2fa6fc9 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Mon, 20 Aug 2018 17:48:02 -0300 Subject: [PATCH 0636/1549] PEP8. --- l10n_br_account/views/account_invoice_view.xml | 10 +++++----- l10n_br_account/views/l10n_br_account_view.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/l10n_br_account/views/account_invoice_view.xml b/l10n_br_account/views/account_invoice_view.xml index b57dc02061b8..bb3788046772 100644 --- a/l10n_br_account/views/account_invoice_view.xml +++ b/l10n_br_account/views/account_invoice_view.xml @@ -41,15 +41,15 @@ - l10n_br_account.invoice.tree - account.invoice - - + l10n_br_account.invoice.tree + account.invoice + + +
+ + + + + From 782bac83fe81046a0525c051b8a5736f1179ef18 Mon Sep 17 00:00:00 2001 From: Diego Paradeda Date: Fri, 28 Mar 2025 11:19:43 -0300 Subject: [PATCH 1512/1549] [IMP] l10n_br_account: test fiscal doc. move link --- l10n_br_account/tests/test_account_move_lc.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/l10n_br_account/tests/test_account_move_lc.py b/l10n_br_account/tests/test_account_move_lc.py index ba9906551d51..45b2bcf21eb7 100644 --- a/l10n_br_account/tests/test_account_move_lc.py +++ b/l10n_br_account/tests/test_account_move_lc.py @@ -1090,6 +1090,14 @@ def test_compra_para_revenda(self): move_vals, ) + def test_venda_fiscal_document_move_link(self): + fiscal_doc_id = self.move_out_venda.fiscal_document_id + self.assertEqual(fiscal_doc_id.move_count, 1) + view_type = "account.action_move_out_invoice_type" + action = self.env["ir.actions.act_window"]._for_xml_id(view_type) + res = self.move_out_venda.action_view_invoice() + self.assertEqual(res["id"], action["id"]) + # TODO test effect of ind_final? # ver aqui https://github.com/OCA/l10n-brazil/pull/2347#issuecomment-1548345563 From b6d5a0e5a3008cb4c780635383e93c55f816c8b1 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Sat, 29 Mar 2025 14:53:48 +0000 Subject: [PATCH 1513/1549] [UPD] Update l10n_br_account.pot --- l10n_br_account/i18n/l10n_br_account.pot | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/l10n_br_account/i18n/l10n_br_account.pot b/l10n_br_account/i18n/l10n_br_account.pot index c78a2c162024..4fe645cb6e47 100644 --- a/l10n_br_account/i18n/l10n_br_account.pot +++ b/l10n_br_account/i18n/l10n_br_account.pot @@ -3183,11 +3183,20 @@ msgstr "" msgid "Invoice Lines" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__move_count +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__move_count +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__move_count +#: model:ir.model.fields,field_description:l10n_br_account.field_l10n_br_fiscal_document__move_count +msgid "Invoice count" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__move_ids #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__move_ids #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__move_ids #: model:ir.model.fields,field_description:l10n_br_account.field_l10n_br_fiscal_document__move_ids +#: model_terms:ir.ui.view,arch_db:l10n_br_account.nfe_document_form_inherit msgid "Invoices" msgstr "" @@ -4448,6 +4457,11 @@ msgstr "" msgid "Service Type LC 166" msgstr "" +#. module: l10n_br_account +#: model_terms:ir.ui.view,arch_db:l10n_br_account.nfe_document_form_inherit +msgid "Show related invoices" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_UFSaidaPais #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_UFSaidaPais From f010824b58eb90cdd17c9b79d9ecca523611f693 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 29 Mar 2025 15:07:10 +0000 Subject: [PATCH 1514/1549] [BOT] post-merge updates --- l10n_br_account/README.rst | 2 +- l10n_br_account/__manifest__.py | 2 +- l10n_br_account/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/README.rst b/l10n_br_account/README.rst index 635a52526ce5..81f58ca78da4 100644 --- a/l10n_br_account/README.rst +++ b/l10n_br_account/README.rst @@ -7,7 +7,7 @@ Invoicing and accounting entries for Brazil !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:36c1216c03828524b4abaacfe9580698cbf5036a6e980a894c4fb437188ca293 + !! source digest: sha256:a7b510f545ba92f406347f7d913739d6c39c3f5068a8eecfb03bfab9a70d1285 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index de57544ea8cb..86a200b91f66 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "author": "Akretion, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-brazil", - "version": "16.0.2.8.0", + "version": "16.0.2.9.0", "development_status": "Beta", "maintainers": ["renatonlima", "rvalyi"], "depends": [ diff --git a/l10n_br_account/static/description/index.html b/l10n_br_account/static/description/index.html index e91f0e110660..8ce346101b03 100644 --- a/l10n_br_account/static/description/index.html +++ b/l10n_br_account/static/description/index.html @@ -367,7 +367,7 @@

Invoicing and accounting entries for Brazil

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:36c1216c03828524b4abaacfe9580698cbf5036a6e980a894c4fb437188ca293 +!! source digest: sha256:a7b510f545ba92f406347f7d913739d6c39c3f5068a8eecfb03bfab9a70d1285 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

This module was written to extend the functionality of … to support From c4649eaa82492799ae1151f53f28579a63d7e8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 6 Apr 2025 15:16:38 +0000 Subject: [PATCH 1515/1549] [REF] l10n_br_account: fix " " linebreak glitch --- l10n_br_account/models/document.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/models/document.py b/l10n_br_account/models/document.py index 80cbe3d05693..8b002425da53 100644 --- a/l10n_br_account/models/document.py +++ b/l10n_br_account/models/document.py @@ -135,7 +135,7 @@ def unlink(self): if non_draft_documents: UserError( - _("You cannot delete a fiscal document " "which is not draft state.") + _("You cannot delete a fiscal document which is not in draft state!") ) return super().unlink() From 86edc99e61b39f0e034e3b85f228e20fc768bc01 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 7 Apr 2025 22:27:56 +0000 Subject: [PATCH 1516/1549] [UPD] Update l10n_br_account.pot --- l10n_br_account/i18n/l10n_br_account.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/i18n/l10n_br_account.pot b/l10n_br_account/i18n/l10n_br_account.pot index 4fe645cb6e47..7e6b633b4d8d 100644 --- a/l10n_br_account/i18n/l10n_br_account.pot +++ b/l10n_br_account/i18n/l10n_br_account.pot @@ -5680,7 +5680,7 @@ msgstr "" #. odoo-python #: code:addons/l10n_br_account/models/document.py:0 #, python-format -msgid "You cannot delete a fiscal document which is not draft state." +msgid "You cannot delete a fiscal document which is not in draft state!" msgstr "" #. module: l10n_br_account From d2f08c6d905a686a28f68c27233ad2536e33baad Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 7 Apr 2025 22:41:52 +0000 Subject: [PATCH 1517/1549] [BOT] post-merge updates --- l10n_br_account/README.rst | 2 +- l10n_br_account/__manifest__.py | 2 +- l10n_br_account/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/README.rst b/l10n_br_account/README.rst index 81f58ca78da4..db46ec653907 100644 --- a/l10n_br_account/README.rst +++ b/l10n_br_account/README.rst @@ -7,7 +7,7 @@ Invoicing and accounting entries for Brazil !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:a7b510f545ba92f406347f7d913739d6c39c3f5068a8eecfb03bfab9a70d1285 + !! source digest: sha256:76668624f26f0472e07aafe37f95f622b915fa46c654474079762148ae0cd857 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 86a200b91f66..919ce02ed8ea 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "author": "Akretion, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-brazil", - "version": "16.0.2.9.0", + "version": "16.0.2.9.1", "development_status": "Beta", "maintainers": ["renatonlima", "rvalyi"], "depends": [ diff --git a/l10n_br_account/static/description/index.html b/l10n_br_account/static/description/index.html index 8ce346101b03..0d18aebcc1ae 100644 --- a/l10n_br_account/static/description/index.html +++ b/l10n_br_account/static/description/index.html @@ -367,7 +367,7 @@

Invoicing and accounting entries for Brazil

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:a7b510f545ba92f406347f7d913739d6c39c3f5068a8eecfb03bfab9a70d1285 +!! source digest: sha256:76668624f26f0472e07aafe37f95f622b915fa46c654474079762148ae0cd857 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

This module was written to extend the functionality of … to support From d514312cc531f846fd97ecfcc1944b6c743f0403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Fri, 4 Apr 2025 02:35:18 +0000 Subject: [PATCH 1518/1549] [REF] l10n_br_account: fiscal_decorator_mixin --- l10n_br_account/models/__init__.py | 1 + l10n_br_account/models/account_move.py | 40 ++------- l10n_br_account/models/account_move_line.py | 88 ++----------------- .../models/fiscal_decorator_mixin.py | 84 ++++++++++++++++++ 4 files changed, 98 insertions(+), 115 deletions(-) create mode 100644 l10n_br_account/models/fiscal_decorator_mixin.py diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 7ffd639b7e91..93a6cfd6db13 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -8,6 +8,7 @@ from . import fiscal_tax from . import fiscal_operation from . import fiscal_operation_line +from . import fiscal_decorator_mixin from . import account_move from . import account_move_line from . import document diff --git a/l10n_br_account/models/account_move.py b/l10n_br_account/models/account_move.py index 679d4fb43d7d..32c45c958bc7 100644 --- a/l10n_br_account/models/account_move.py +++ b/l10n_br_account/models/account_move.py @@ -9,7 +9,7 @@ from odoo import _, api, fields, models from odoo.exceptions import UserError from odoo.tests.common import Form -from odoo.tools import frozendict, mute_logger +from odoo.tools import frozendict from odoo.addons.l10n_br_fiscal.constants.fiscal import ( DOCUMENT_ISSUER_COMPANY, @@ -55,25 +55,14 @@ SHADOWED_FIELDS = ["company_id", "currency_id", "user_id", "partner_id"] -class InheritsCheckMuteLogger(mute_logger): - """ - Mute the Model#_inherits_check warning - because the _inherits field is not required. - (some account.move may have no fiscal document) - """ - - def filter(self, record): - msg = record.getMessage() - if "Field definition for _inherits reference" in msg: - return 0 - return super().filter(record) - - class AccountMove(models.Model): _name = "account.move" + _fiscal_decorator_model = "l10n_br_fiscal.document" + _fiscal_decorator_compute_blacklist = ["_compute_fiscal_amount"] _inherit = [ _name, "l10n_br_fiscal.document.move.mixin", + "l10n_br_account.decorator.mixin", ] # an account.move has normally 0 or 1 related fiscal document: @@ -86,7 +75,7 @@ class AccountMove(models.Model): # fiscal_document_id might be used only to sync the "main" fiscal # document (or the one currently imported or edited). In this case, # fiscal_document_ids contains all the line fiscal documents. - _inherits = {"l10n_br_fiscal.document": "fiscal_document_id"} + _inherits = {_fiscal_decorator_model: "fiscal_document_id"} _order = "date DESC, name DESC" @@ -177,31 +166,12 @@ def _get_amount_lines(self): """Get object lines instances used to compute fields""" return self.mapped("invoice_line_ids") - @api.model - def _inherits_check(self): - """ - Overriden to avoid the super method to set the fiscal_document_id - field as required (because some account.move may not have any fiscal document). - """ - with InheritsCheckMuteLogger("odoo.models"): # mute spurious warnings - res = super()._inherits_check() - field = self._fields.get("fiscal_document_id") - field.required = False # unset the required = True assignement - return res - @api.model def _shadowed_fields(self): """Return the list of shadowed fields that are synchronized from account.move.""" return SHADOWED_FIELDS - @api.model - def _inject_shadowed_fields(self, vals_list): - for vals in vals_list: - for field in self._shadowed_fields(): - if field in vals: - vals[f"fiscal_proxy_{field}"] = vals[field] - def ensure_one_doc(self): self.ensure_one() if len(self.fiscal_document_ids) > 1: diff --git a/l10n_br_account/models/account_move_line.py b/l10n_br_account/models/account_move_line.py index ab2b2db82354..45a7140370f6 100644 --- a/l10n_br_account/models/account_move_line.py +++ b/l10n_br_account/models/account_move_line.py @@ -7,8 +7,6 @@ from odoo import _, api, fields, models from odoo.tools import frozendict -from .account_move import InheritsCheckMuteLogger - # These fields have the same name in account.move.line # and l10n_br_fiscal.document.line. So they wouldn't get updated # by the _inherits system. An alternative would be changing their name @@ -27,8 +25,14 @@ class AccountMoveLine(models.Model): _name = "account.move.line" - _inherit = [_name, "l10n_br_fiscal.document.line.mixin.methods"] - _inherits = {"l10n_br_fiscal.document.line": "fiscal_document_line_id"} + _fiscal_decorator_model = "l10n_br_fiscal.document.line" + _fiscal_decorator_compute_blacklist = ["_compute_fiscal_amounts"] + _inherit = [ + _name, + "l10n_br_fiscal.document.line.mixin.methods", + "l10n_br_account.decorator.mixin", + ] + _inherits = {_fiscal_decorator_model: "fiscal_document_line_id"} fiscal_document_line_id = fields.Many2one( comodel_name="l10n_br_fiscal.document.line", @@ -42,63 +46,6 @@ class AccountMoveLine(models.Model): related="move_id.document_type_id", ) - tax_framework = fields.Selection( - related="move_id.company_id.tax_framework", - string="Tax Framework", - ) - - cfop_destination = fields.Selection( - related="cfop_id.destination", string="CFOP Destination" - ) - - partner_company_type = fields.Selection(related="partner_id.company_type") - - ind_final = fields.Selection(related="move_id.ind_final") - - fiscal_genre_code = fields.Char( - related="fiscal_genre_id.code", - string="Fiscal Product Genre Code", - ) - - # The following fields belong to the fiscal document line mixin - # but they are redefined here to ensure they are recomputed in the - # account.move.line views. - icms_cst_code = fields.Char( - related="icms_cst_id.code", - string="ICMS CST Code", - ) - - ipi_cst_code = fields.Char( - related="ipi_cst_id.code", - string="IPI CST Code", - ) - - cofins_cst_code = fields.Char( - related="cofins_cst_id.code", - string="COFINS CST Code", - ) - - cofinsst_cst_code = fields.Char( - related="cofinsst_cst_id.code", - string="COFINS ST CST Code", - ) - - pis_cst_code = fields.Char( - related="pis_cst_id.code", - string="PIS CST Code", - ) - - pisst_cst_code = fields.Char( - related="pisst_cst_id.code", - string="PIS ST CST Code", - ) - - partner_is_public_entity = fields.Boolean(related="partner_id.is_public_entity") - - allow_csll_irpj = fields.Boolean( - compute="_compute_allow_csll_irpj", - ) - discount = fields.Float( compute="_compute_discounts", store=True, @@ -142,31 +89,12 @@ def _compute_name(self): return super()._compute_name() return True - @api.model - def _inherits_check(self): - """ - Overriden to avoid the super method to set the fiscal_document_line_id - field as required. - """ - with InheritsCheckMuteLogger("odoo.models"): # mute spurious warnings - res = super()._inherits_check() - field = self._fields.get("fiscal_document_line_id") - field.required = False # unset the required = True assignement - return res - @api.model def _shadowed_fields(self): """Return the list of shadowed fields that are synchronized from account.move.line.""" return SHADOWED_FIELDS - @api.model - def _inject_shadowed_fields(self, vals_list): - for vals in vals_list: - for field in self._shadowed_fields(): - if field in vals: - vals[f"fiscal_proxy_{field}"] = vals[field] - @api.model_create_multi def create(self, vals_list): for values in vals_list: diff --git a/l10n_br_account/models/fiscal_decorator_mixin.py b/l10n_br_account/models/fiscal_decorator_mixin.py new file mode 100644 index 000000000000..4a5a0844cd59 --- /dev/null +++ b/l10n_br_account/models/fiscal_decorator_mixin.py @@ -0,0 +1,84 @@ +# Copyright (C) 2025 - TODAY Raphaël Valyi - Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import api, fields, models +from odoo.tools import mute_logger + + +class InheritsCheckMuteLogger(mute_logger): + """ + Mute the Model#_inherits_check warning + because the _inherits field is not required. + (some account.move may have no fiscal document) + """ + + def filter(self, record): + msg = record.getMessage() + if "Field definition for _inherits reference" in msg: + return 0 + return super().filter(record) + + +class FiscalDecoratorMixin(models.AbstractModel): + _name = "l10n_br_account.decorator.mixin" + _description = """A mixin to decorate l10n_br_fiscal_document(.line) easily. + It specially deals with related and compute fields inherited with _inherits. + """ + _fiscal_decorator_model = None + _fiscal_decorator_compute_blacklist = [] # conflicting computes to skip + + @api.model + def _add_inherited_fields(self): + """ + Add related and computed fields inherited with _inherits from the + _fiscal_decorator_model preserving the related and compute attributes. + The original Odoo method would indeed alter the related attribute in a way + that disables dynamic onchanges/compute during the edition before saving. + As the account.move(.line) inherits with _inherit (no s) from the + l10n_br_fiscal.document(.line).mixin.methods, we can preserve the compute + attribute except for compute in the _fiscal_decorator_compute_blacklist. + """ + if self._fiscal_decorator_model is not None: + for name, field in self.env.registry[ + f"{self._fiscal_decorator_model}.mixin" + ]._fields.items(): + field_cls = type(field) + if ( + name in self._fields + or name.startswith("fiscal_proxy_") + or (not field.compute and not field.related) + or field_cls in [fields.One2many, fields.Many2many] + or field.compute in self._fiscal_decorator_compute_blacklist + ): + continue + self._add_field( + name, + field_cls( + related=field.related, + compute=field.compute, + inverse=field.inverse, + comodel_name=field.comodel_name, + ), + ) + return super()._add_inherited_fields() + + @api.model + def _inherits_check(self): + """ + Overriden to avoid the super method to set the fiscal_document(_line)_id + field as required. + """ + with InheritsCheckMuteLogger("odoo.models"): # mute spurious warnings + res = super()._inherits_check() + if self._fiscal_decorator_model is not None: + field_name = self._inherits[self._fiscal_decorator_model] + field = self._fields.get(field_name) + field.required = False # unset the required = True assignement + return res + + @api.model + def _inject_shadowed_fields(self, vals_list): + for vals in vals_list: + for field in self._shadowed_fields(): + if field in vals: + vals[f"fiscal_proxy_{field}"] = vals[field] From f44e1a5303c8dc787394d6eb3659c98c6b63832e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Fri, 4 Apr 2025 15:12:05 +0000 Subject: [PATCH 1519/1549] [REF] l10n_br_account: remove document.move.mixin --- l10n_br_account/models/account_move.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_br_account/models/account_move.py b/l10n_br_account/models/account_move.py index 32c45c958bc7..b58bb78ddc27 100644 --- a/l10n_br_account/models/account_move.py +++ b/l10n_br_account/models/account_move.py @@ -61,7 +61,7 @@ class AccountMove(models.Model): _fiscal_decorator_compute_blacklist = ["_compute_fiscal_amount"] _inherit = [ _name, - "l10n_br_fiscal.document.move.mixin", + "l10n_br_fiscal.document.mixin.methods", "l10n_br_account.decorator.mixin", ] From 043595de1bdf7d5115b72912f3e93205d403f2cf Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 11 Apr 2025 15:09:41 +0000 Subject: [PATCH 1520/1549] [UPD] Update l10n_br_account.pot --- l10n_br_account/i18n/l10n_br_account.pot | 196 ++++++++++------------- 1 file changed, 89 insertions(+), 107 deletions(-) diff --git a/l10n_br_account/i18n/l10n_br_account.pot b/l10n_br_account/i18n/l10n_br_account.pot index 7e6b633b4d8d..9c561085cd4f 100644 --- a/l10n_br_account/i18n/l10n_br_account.pot +++ b/l10n_br_account/i18n/l10n_br_account.pot @@ -35,6 +35,14 @@ msgstr "" msgid "Fiscal Details" msgstr "" +#. module: l10n_br_account +#: model:ir.model,name:l10n_br_account.model_l10n_br_account_decorator_mixin +msgid "" +"A mixin to decorate l10n_br_fiscal_document(.line) easily.\n" +" It specially deals with related and compute fields inherited with _inherits.\n" +" " +msgstr "" + #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.fiscal_operation_form msgid "Account" @@ -109,11 +117,6 @@ msgstr "" msgid "All Documents" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__allow_csll_irpj -msgid "Allow Csll Irpj" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_move_line__nfe40_vAliqProd msgid "Alíquota do COFINS (em reais) (NT2011/004)" @@ -356,18 +359,15 @@ msgstr "" msgid "CFOP" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cfop_destination -msgid "CFOP Destination" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cnae_id msgid "CNAE Code" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_cnpj_cpf #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_cnpj_cpf +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_cnpj_cpf msgid "CNPJ" msgstr "" @@ -429,11 +429,6 @@ msgstr "" msgid "COFINS Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cofins_cst_code -msgid "COFINS CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cofins_credit_id msgid "COFINS Credit Code" @@ -496,11 +491,6 @@ msgstr "" msgid "COFINS ST Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cofinsst_cst_code -msgid "COFINS ST CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__amount_cofinsst_value #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__amount_cofinsst_value @@ -727,7 +717,9 @@ msgid "Cfop" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_is_company #: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_is_company +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_is_company msgid "Check if the contact is a company, otherwise it is a person" msgstr "" @@ -796,102 +788,128 @@ msgid "Comments" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_id -msgid "Company" -msgstr "" - -#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_cnpj_cpf #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_cnpj_cpf +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_cnpj_cpf msgid "Company CNPJ" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_city_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_city_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_city_id msgid "Company City" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_country_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_country_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_country_id msgid "Company Country" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_district #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_district +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_district msgid "Company District" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_legal_name #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_legal_name +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_legal_name msgid "Company Legal Name" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_cnae_main_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_cnae_main_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_cnae_main_id msgid "Company Main CNAE" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_inscr_mun #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_inscr_mun +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_inscr_mun msgid "Company Municipal Tax Number" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_name #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_name +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_name msgid "Company Name" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_number #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_number +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_number msgid "Company Number" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_phone #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_phone +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_phone msgid "Company Phone" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_inscr_est_st #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_inscr_est_st +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_inscr_est_st msgid "Company ST State Tax Number" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_state_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_state_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_state_id msgid "Company State" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_inscr_est #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_inscr_est +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_inscr_est msgid "Company State Tax Number" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_street #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_street +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_street msgid "Company Street" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_street2 #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_street2 +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_street2 msgid "Company Street2" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_suframa #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_suframa +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_suframa msgid "Company Suframa" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_tax_framework #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_tax_framework +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_tax_framework msgid "Company Tax Framework" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__partner_company_type -msgid "Company Type" -msgstr "" - -#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__company_zip #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__company_zip +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__company_zip msgid "Company ZIP" msgstr "" @@ -903,7 +921,9 @@ msgid "Company mismatch!" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_ind_ie_dest #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_ind_ie_dest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_ind_ie_dest msgid "Contribuinte do ICMS" msgstr "" @@ -1376,10 +1396,7 @@ msgid "Deductible Taxes" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__delivery_costs -#: model:ir.model.fields,help:l10n_br_account.field_account_move__delivery_costs #: model:ir.model.fields,help:l10n_br_account.field_account_move_line__delivery_costs -#: model:ir.model.fields,help:l10n_br_account.field_account_payment__delivery_costs msgid "" "Define if costs of Insurance, Freight and Other Costs should be informed by " "Line or by Total." @@ -1398,10 +1415,7 @@ msgid "" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__delivery_costs -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__delivery_costs #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__delivery_costs -#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__delivery_costs msgid "Delivery Costs" msgstr "" @@ -1892,11 +1906,6 @@ msgstr "" msgid "Fiscal Product Genre" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__fiscal_genre_code -msgid "Fiscal Product Genre Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__fiscal_proxy_name #: model:ir.model.fields,field_description:l10n_br_account.field_l10n_br_fiscal_document_line__fiscal_proxy_name @@ -2183,11 +2192,6 @@ msgstr "" msgid "ICMS Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__icms_cst_code -msgid "ICMS CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__icms_destination_value msgid "ICMS Dest. Value" @@ -2517,11 +2521,6 @@ msgstr "" msgid "IPI Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__ipi_cst_code -msgid "IPI CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__ipi_guideline_id msgid "IPI Guideline" @@ -2806,11 +2805,6 @@ msgstr "" msgid "Identificação do vagão (v2.0)" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,help:l10n_br_account.field_account_move_line__cfop_destination -msgid "Identifies the operation destination." -msgstr "" - #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.invoice_form msgid "Import Fiscal Document" @@ -2948,15 +2942,6 @@ msgid "" "\t\t\t\t\t\t\t\t\t\t\t(0-Não se aplica (ex.: Nota Fiscal complementar ou de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não presencial, teleatendimento;4-NFC-e entrega em domicílio;5-Operação presencial, fora do estabelecimento;9-Não presencial, outros)" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,help:l10n_br_account.field_account_move_line__partner_is_public_entity -msgid "" -"Indicates whether the entity in question is a public organization or " -"government-related entity. It encompasses a range of entities such as " -"municipal governments, state-owned enterprises (where the government is the " -"largest shareholder), and other government-controlled organizations." -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_comb msgid "Informar apenas para operações" @@ -3265,7 +3250,9 @@ msgid "" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_legal_name #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_legal_name +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_legal_name #: model_terms:ir.ui.view,arch_db:l10n_br_account.fiscal_invoice_search #: model_terms:ir.ui.view,arch_db:l10n_br_account.invoice_search msgid "Legal Name" @@ -3311,7 +3298,9 @@ msgid "MDF-e Version" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_cnae_main_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_cnae_main_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_cnae_main_id msgid "Main CNAE" msgstr "" @@ -3584,7 +3573,9 @@ msgid "" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_inscr_mun #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_inscr_mun +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_inscr_mun msgid "Municipal Tax Number" msgstr "" @@ -3824,23 +3815,11 @@ msgstr "" msgid "Operation" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__operation_fiscal_type -msgid "Operation Fiscal Type" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__fiscal_operation_line_id msgid "Operation Line" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__operation_name -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__operation_name -#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__operation_name -msgid "Operation Name" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__operation_nature #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__operation_nature @@ -3848,11 +3827,6 @@ msgstr "" msgid "Operation Nature" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__fiscal_operation_type -msgid "Operation Type" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_xOri #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_xOri @@ -3927,11 +3901,6 @@ msgstr "" msgid "PIS Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__pis_cst_code -msgid "PIS CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__pis_credit_id msgid "PIS Credit" @@ -3994,11 +3963,6 @@ msgstr "" msgid "PIS ST Base Type" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__pisst_cst_code -msgid "PIS ST CST Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__amount_pisst_value #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__amount_pisst_value @@ -4033,37 +3997,43 @@ msgid "PL_005d - 11/08/09 - validação do Id" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_id -msgid "Partner" -msgstr "" - -#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_city_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_city_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_city_id msgid "Partner City" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_country_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_country_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_country_id msgid "Partner Country" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_district #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_district +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_district msgid "Partner District" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_is_company #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_is_company +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_is_company msgid "Partner Is Company?" msgstr "" #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_name +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_name msgid "Partner Name" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_number #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_number +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_number msgid "Partner Number" msgstr "" @@ -4078,27 +4048,37 @@ msgid "Partner Order Line (nItemPed)" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_phone #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_phone +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_phone msgid "Partner Phone" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_state_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_state_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_state_id msgid "Partner State" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_street #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_street +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_street msgid "Partner Street" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_street2 #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_street2 +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_street2 msgid "Partner Street2" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_zip #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_zip +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_zip msgid "Partner Zip" msgstr "" @@ -4249,7 +4229,9 @@ msgid "Prefixo do Trem" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__processador_edoc #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__processador_edoc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__processador_edoc msgid "Processador documentos eletrônicos" msgstr "" @@ -4296,11 +4278,6 @@ msgstr "" msgid "Proprietário do Veículo" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__partner_is_public_entity -msgid "Public Entity" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_move_line__nfe40_qCom msgid "" @@ -4540,7 +4517,9 @@ msgid "Situação e-doc" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_inscr_est #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_inscr_est +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_inscr_est #: model_terms:ir.ui.view,arch_db:l10n_br_account.fiscal_invoice_search #: model_terms:ir.ui.view,arch_db:l10n_br_account.invoice_search msgid "State Tax Number" @@ -4583,7 +4562,9 @@ msgid "Subsequent documents generated?" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_suframa #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_suframa +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_suframa msgid "Suframa" msgstr "" @@ -4639,11 +4620,6 @@ msgstr "" msgid "Tax Benefit" msgstr "" -#. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__icms_tax_benefit_code -msgid "Tax Benefit Code" -msgstr "" - #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cofins_tax_id msgid "Tax COFINS" @@ -4670,8 +4646,10 @@ msgid "Tax CSLL RET" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_tax_framework #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_tax_framework #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__tax_framework +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_tax_framework msgid "Tax Framework" msgstr "" @@ -4988,8 +4966,12 @@ msgid "Unidade comercial" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__company_legal_name +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_legal_name #: model:ir.model.fields,help:l10n_br_account.field_account_move__company_legal_name #: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_legal_name +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__company_legal_name +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_legal_name msgid "Used in fiscal documents" msgstr "" From 277e5e2bdbe9d5bc90eaaa34554e880637d28975 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 11 Apr 2025 15:23:04 +0000 Subject: [PATCH 1521/1549] [BOT] post-merge updates --- l10n_br_account/README.rst | 2 +- l10n_br_account/__manifest__.py | 2 +- l10n_br_account/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_br_account/README.rst b/l10n_br_account/README.rst index db46ec653907..c9309c1f9556 100644 --- a/l10n_br_account/README.rst +++ b/l10n_br_account/README.rst @@ -7,7 +7,7 @@ Invoicing and accounting entries for Brazil !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:76668624f26f0472e07aafe37f95f622b915fa46c654474079762148ae0cd857 + !! source digest: sha256:cf6ffad865e85568bbe71e4642a798dd7f4617c8908dd5aea821d0e85cbb4f9d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 919ce02ed8ea..b75afb1be98c 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "author": "Akretion, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-brazil", - "version": "16.0.2.9.1", + "version": "16.0.3.0.0", "development_status": "Beta", "maintainers": ["renatonlima", "rvalyi"], "depends": [ diff --git a/l10n_br_account/static/description/index.html b/l10n_br_account/static/description/index.html index 0d18aebcc1ae..18a357651bfa 100644 --- a/l10n_br_account/static/description/index.html +++ b/l10n_br_account/static/description/index.html @@ -367,7 +367,7 @@

Invoicing and accounting entries for Brazil

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:76668624f26f0472e07aafe37f95f622b915fa46c654474079762148ae0cd857 +!! source digest: sha256:cf6ffad865e85568bbe71e4642a798dd7f4617c8908dd5aea821d0e85cbb4f9d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

This module was written to extend the functionality of … to support From 7f3d5166a7618cc755a9c822838181a7138f2462 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 14 Apr 2025 21:10:54 +0000 Subject: [PATCH 1522/1549] [UPD] Update l10n_br_account.pot --- l10n_br_account/i18n/l10n_br_account.pot | 1623 +++++++++++++++++++++- 1 file changed, 1619 insertions(+), 4 deletions(-) diff --git a/l10n_br_account/i18n/l10n_br_account.pot b/l10n_br_account/i18n/l10n_br_account.pot index 9c561085cd4f..4763682f81d8 100644 --- a/l10n_br_account/i18n/l10n_br_account.pot +++ b/l10n_br_account/i18n/l10n_br_account.pot @@ -43,6 +43,20 @@ msgid "" " " msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vAFRMM +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vAFRMM +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vAFRMM +msgid "AFRMM" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_vAFRMM +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_vAFRMM +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_vAFRMM +msgid "AFRMM (Adicional de Frete para Renovação da Marinha Mercante)" +msgstr "" + #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.fiscal_operation_form msgid "Account" @@ -224,10 +238,13 @@ msgstr "" #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__amount_price_gross +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_vRec #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_vProd #: model:ir.model.fields,help:l10n_br_account.field_account_move__amount_price_gross +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_vRec #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_vProd #: model:ir.model.fields,help:l10n_br_account.field_account_payment__amount_price_gross +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_vRec #: model:ir.model.fields,help:l10n_br_account.field_account_payment__nfe40_vProd msgid "Amount without discount." msgstr "" @@ -276,15 +293,21 @@ msgid "Authorization Protocol Number" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_autXML #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_autXML +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_autXML #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_autXML +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_autXML #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_autXML msgid "Autorizados para download do XML do DF-e" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_autXML #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_autXML +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_autXML #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_autXML +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_autXML #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_autXML msgid "" "Autorizados para download do XML do DF-e\n" @@ -607,6 +630,27 @@ msgstr "" msgid "CST PIS ST" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_version +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_version +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_version +msgid "CT-e Version" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_transmission +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_transmission +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_transmission +msgid "CTE Transmission" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_environment +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_environment +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_environment +msgid "CTe Environment" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_obsFisco #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_obsFisco @@ -625,12 +669,27 @@ msgid "" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_obsCont #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_obsCont +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_obsCont #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_obsCont +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_obsCont #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__nfe40_obsCont msgid "Campo de uso livre do contribuinte" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_obsCont +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_obsFisco +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_obsCont +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_obsFisco +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_obsCont +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_obsFisco +msgid "" +"Campo de uso livre do contribuinte\n" +"Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_obsCont #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_obsCont @@ -704,6 +763,40 @@ msgstr "" msgid "Capacidade em M3" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xCaracSer +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xCaracSer +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xCaracSer +msgid "Característica adicional do serviço" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xCaracSer +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xCaracSer +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xCaracSer +msgid "" +"Característica adicional do serviço\n" +"Texto livre:\n" +"\t\t\t\t\t\t\t\t\t\t\tENTREGA EXPRESSA; LOGÍSTICA REVERSA; CONVENCIONAL; EMERGENCIAL; etc" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xCaracAd +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xCaracAd +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xCaracAd +msgid "Característica adicional do transporte" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xCaracAd +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xCaracAd +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xCaracAd +msgid "" +"Característica adicional do transporte\n" +"Texto livre:\n" +"REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_categCombVeic #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_categCombVeic @@ -716,6 +809,20 @@ msgstr "" msgid "Cfop" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_chCTeFerroOrigem +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_chCTeFerroOrigem +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_chCTeFerroOrigem +msgid "Chave de acesso do CT-e emitido" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_chCTeFerroOrigem +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_chCTeFerroOrigem +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_chCTeFerroOrigem +msgid "Chave de acesso do CT-e emitido pelo ferrovia de origem" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_is_company #: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_is_company @@ -742,6 +849,32 @@ msgstr "" msgid "Civil Construction Code" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CL +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CL +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CL +msgid "Classe" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_CL +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_CL +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_CL +msgid "" +"Classe\n" +"Preencher com:\n" +"\t\t\t\t\t\t\t\t\tM - Tarifa Mínima;\n" +"\t\t\t\t\t\t\t\t\tG - Tarifa Geral;\n" +"\t\t\t\t\t\t\t\t\tE - Tarifa Específica" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CST +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CST +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CST +msgid "Classificação Tributária do Serviço" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__close_id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__close_id @@ -920,6 +1053,13 @@ msgstr "" msgid "Company mismatch!" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_comp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_comp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_comp +msgid "Componentes do Valor da Prestação" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_ind_ie_dest #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_ind_ie_dest @@ -965,6 +1105,116 @@ msgstr "" msgid "Create a new NFS-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal_aereo_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal_aereo_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal_aereo_id +msgid "Cte Modal Aereo" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal_aquaviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal_aquaviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal_aquaviario_id +msgid "Cte Modal Aquaviario" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal_dutoviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal_dutoviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal_dutoviario_id +msgid "Cte Modal Dutoviario" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal_ferroviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal_ferroviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal_ferroviario_id +msgid "Cte Modal Ferroviario" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal_rodoviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal_rodoviario_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal_rodoviario_id +msgid "Cte Modal Rodoviario" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_choice_infcteNorm_infcteComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_choice_infcteNorm_infcteComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_choice_infcteNorm_infcteComp +msgid "Cte40 Choice Infctenorm Infctecomp" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_choice_toma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_choice_toma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_choice_toma +msgid "Cte40 Choice Toma" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cte40_Comp_vPrest_id +msgid "Cte40 Comp Vprest" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_enderReme +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_enderReme +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_enderReme +msgid "Cte40 Enderreme" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_indSN +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_indSN +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_indSN +msgid "Cte40 Indsn" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infCTeComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infCTeComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infCTeComp +msgid "Cte40 Infctecomp" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infCTeSupl +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infCTeSupl +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infCTeSupl +msgid "Cte40 Infctesupl" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_UFEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_UFEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_UFEnv +msgid "Cte40 Ufenv" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_UFFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_UFFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_UFFim +msgid "Cte40 Uffim" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_UFIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_UFIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_UFIni +msgid "Cte40 Ufini" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xObs +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xObs +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xObs +msgid "Cte40 Xobs" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__customer_additional_data #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__customer_additional_data @@ -991,6 +1241,13 @@ msgstr "" msgid "Código EX TIPI (3 posições)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CFOP +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CFOP +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CFOP +msgid "Código Fiscal de Operações e Prestações" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_NCM msgid "Código NCM (8 posições)" @@ -1021,6 +1278,29 @@ msgstr "" msgid "Código da Embarcação" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xRota +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xRota +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xRota +msgid "Código da Rota de Entrega" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cTar +msgid "Código da Tarifa" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cTar +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cTar +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cTar +msgid "" +"Código da Tarifa\n" +"Deverão ser incluídos os códigos de três dígitos, correspondentes à tarifa." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_cUF #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_cUF @@ -1076,6 +1356,13 @@ msgstr "" msgid "Código de Pais" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CRT +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CRT +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CRT +msgid "Código de Regime Tributário (CTe)" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_CRT #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_CRT @@ -1154,6 +1441,54 @@ msgid "" "IBGE)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cMunEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cMunEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cMunEnv +msgid "Código do Município de envio do CT-e" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cMunEnv +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cMunEnv +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cMunEnv +msgid "" +"Código do Município de envio do CT-e (de onde o documento foi transmitido)\n" +"Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cMunIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cMunIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cMunIni +msgid "Código do Município de início" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cMunIni +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cMunIni +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cMunIni +msgid "" +"Código do Município de início da prestação\n" +"Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cMunFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cMunFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cMunFim +msgid "Código do Município de término" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cMunFim +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cMunFim +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cMunFim +msgid "" +"Código do Município de término da prestação\n" +"Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_cInt #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_cInt @@ -1196,8 +1531,11 @@ msgid "Código do serviço prestado dentro do município" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cCT #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_cNF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cCT #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_cNF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cCT #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__nfe40_cNF msgid "Código numérico que compõe a Chave" msgstr "" @@ -1211,6 +1549,15 @@ msgid "" "Código aleatório gerado pelo emitente, com o objetivo de evitar acessos indevidos ao documento." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cCT +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cCT +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cCT +msgid "" +"Código numérico que compõe a Chave de Acesso.\n" +"Número aleatório gerado pelo emitente para cada CT-e, com o objetivo de evitar acessos indevidos ao documento." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_cNF #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_cNF @@ -1227,6 +1574,13 @@ msgstr "" msgid "DF-e Consult" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cobr +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cobr +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cobr +msgid "Dados da cobrança do CT-e" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_retTransp #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_retTransp @@ -1248,6 +1602,20 @@ msgstr "" msgid "Dados das duplicatas NT 2011/004" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_peri +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_peri +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_peri +msgid "Dados de carga perigosa" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_enderToma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_enderToma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_enderToma +msgid "Dados do endereço" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_reboque #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_reboque @@ -1290,6 +1658,13 @@ msgstr "" msgid "Danfe Layout" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dProg +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dProg +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dProg +msgid "Data Programada" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_dCompet #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_dCompet @@ -1304,6 +1679,20 @@ msgstr "" msgid "Data da prestação do serviço (AAAA-MM-DD)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dFim +msgid "Data de Fim da prestação do serviço" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dIni +msgid "Data de Início da prestação do serviço" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_dVoo #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_dVoo @@ -1311,6 +1700,22 @@ msgstr "" msgid "Data do Voo" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dhCont +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dhCont +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dhCont +msgid "Data e Hora da entrada em contingência" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_dhCont +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_dhCont +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_dhCont +msgid "" +"Data e Hora da entrada em contingência\n" +"Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_dhSaiEnt #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_dhSaiEnt @@ -1375,6 +1780,31 @@ msgid "" "Formato AAAA-MM-DDTHH:MM:DD TZD" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dPrevAereo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dPrevAereo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dPrevAereo +msgid "Data prevista da entrega" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_dPrevAereo +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_dPrevAereo +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_dPrevAereo +msgid "" +"Data prevista da entrega\n" +"Formato AAAA-MM-DD" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_dProg +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_dProg +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_dProg +msgid "" +"Data programada\n" +"Formato AAAA-MM-DD" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_dhTrem #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_dhTrem @@ -1450,6 +1880,13 @@ msgstr "" msgid "Dest" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dest +msgid "Destinatário" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_xDest #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_xDest @@ -1457,11 +1894,25 @@ msgstr "" msgid "Destino do Trem" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infCteComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infCteComp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infCteComp +msgid "Detalhamento do CT-e complementado" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_detExport msgid "Detalhe da exportação" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xDetRetira +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xDetRetira +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xDetRetira +msgid "Detalhes do retira" +msgstr "" + #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.fiscal_invoice_form msgid "Devolver" @@ -1481,6 +1932,22 @@ msgstr "" msgid "Digito Verificador da Chave de Acesso da NF-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cDV +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cDV +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cDV +msgid "Digito Verificador da chave de acesso" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_cDV +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_cDV +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_cDV +msgid "" +"Digito Verificador da chave de acesso do CT-e\n" +"Informar o dígito de controle da chave de acesso do CT-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_cDV #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_cDV @@ -1497,6 +1964,38 @@ msgid "" "Informar o dígito de controle da chave de acesso do MDF-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xDime +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xDime +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xDime +msgid "Dimensão" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xDime +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xDime +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xDime +msgid "" +"Dimensão\n" +"Formato:1234X1234X1234 (cm). Esse campo deve sempre que possível ser preenchido. Entretanto, quando for impossível o preenchimento das dimensões, fica obrigatório o preenchimento da cubagem em metro cúbico do leiaute do CT-e da estrutura genérica (infQ)." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_direc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_direc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_direc +msgid "Direção" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_direc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_direc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_direc +msgid "" +"Direção\n" +"Preencher com: N-Norte, L-Leste, S-Sul, O-Oeste" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__discount msgid "Discount (%)" @@ -1514,8 +2013,11 @@ msgid "Document" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_dhEmi #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__document_date +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_dhEmi #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__document_date +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_dhEmi #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__document_date #: model:ir.model.fields,field_description:l10n_br_account.field_l10n_br_fiscal_document__document_date msgid "Document Date" @@ -1601,6 +2103,13 @@ msgid "" " Force one!" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_docAnt +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_docAnt +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_docAnt +msgid "Documentos de Transporte Anterior" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__edoc_error_message #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__edoc_error_message @@ -1637,8 +2146,11 @@ msgid "Emissão de avulsa, informar os dados do Fisco emitente" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_emit #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_emit +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_emit #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_emit +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_emit #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__nfe40_emit msgid "Emit" msgstr "" @@ -1650,6 +2162,13 @@ msgstr "" msgid "Emit Type" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_email +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_email +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_email +msgid "Endereço de email" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_entrega #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_entrega @@ -1657,6 +2176,43 @@ msgstr "" msgid "Entrega" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_comHora +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_comHora +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_comHora +msgid "Entrega com hora definida" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_noInter +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_noInter +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_noInter +msgid "Entrega no intervalo de horário definido" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_noPeriodo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_noPeriodo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_noPeriodo +msgid "Entrega no período definido" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_semData +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_semData +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_semData +msgid "Entrega sem data definida" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_semData +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_semData +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_semData +msgid "" +"Entrega sem data definida\n" +"Esta opção é proibida para o modal aéreo." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe_environment #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe_environment @@ -1702,6 +2258,13 @@ msgid "" "Judicial;7-Exig.Susp. ADM" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_exped +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_exped +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_exped +msgid "Expedidor" +msgstr "" + #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.invoice_form msgid "Extra Info" @@ -1722,6 +2285,24 @@ msgstr "" msgid "FCP WH Base" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_ferrEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_ferrEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_ferrEmi +msgid "Ferrovia Emitente do CTe" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_ferrEmi +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_ferrEmi +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_ferrEmi +msgid "" +"Ferrovia Emitente do CTe\n" +"Preencher com: \n" +"\t\t\t\t\t\t\t\t\t1-Ferrovia de origem; \n" +"\t\t\t\t\t\t\t\t\t2-Ferrovia de destino" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__ind_final #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__ind_final @@ -1966,6 +2547,29 @@ msgstr "" msgid "Fiscal User" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_fluxo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_fluxo +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_fluxo +msgid "Fluxo Ferroviário" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_fluxo +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_fluxo +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_fluxo +msgid "" +"Fluxo Ferroviário\n" +"Trata-se de um número identificador do contrato firmado com o cliente" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_pass +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_pass +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_pass +msgid "Fluxo Pass" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__force_compute_delivery_costs_by_total #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__force_compute_delivery_costs_by_total @@ -2002,6 +2606,26 @@ msgid "" "9 - Contingência off-line NFC-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpEmis +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpEmis +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpEmis +msgid "Forma de emissão do CT-e" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpEmis +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpEmis +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpEmis +msgid "" +"Forma de emissão do CT-e\n" +"Preencher com:\n" +"1 - Normal;\n" +" 3-Regime Especial NFF; 4-EPEC pela SVC; 5 - Contingência FSDA;\n" +"\t7 - Autorização pela SVC-RS;\n" +" 8 - Autorização pela SVC-SP" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_tpEmis #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_tpEmis @@ -2019,6 +2643,22 @@ msgid "" "; 2 - Contingência; 3-Regime Especial NFF" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpImp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpImp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpImp +msgid "Formato de impressão do DACTE" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpImp +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpImp +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpImp +msgid "" +"Formato de impressão do DACTE\n" +"Preencher com: 1 - Retrato; 2 - Paisagem." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_tpImp #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_tpImp @@ -2043,6 +2683,13 @@ msgstr "" msgid "Freight Value" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xEmi +msgid "Funcionário emissor do CTe" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_cEAN msgid "GTIN" @@ -2072,6 +2719,20 @@ msgstr "" msgid "Gross Product/Service Amount" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infPAA +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infPAA +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infPAA +msgid "Grupo de Informação do Provedor" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infPAA +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infPAA +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infPAA +msgid "Grupo de Informação do Provedor de Assinatura e Autorização" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_infIntermed #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_infIntermed @@ -2107,6 +2768,13 @@ msgstr "" msgid "Grupo de informações" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_balsa +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_balsa +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_balsa +msgid "Grupo de informações das balsas" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_procRef #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_procRef @@ -2115,15 +2783,21 @@ msgid "Grupo de informações do processo referenciado" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infSolicNFF #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_infSolicNFF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infSolicNFF #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_infSolicNFF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infSolicNFF #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_infSolicNFF msgid "Grupo de informações do pedido" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infSolicNFF #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_infSolicNFF +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infSolicNFF #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_infSolicNFF +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infSolicNFF #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_infSolicNFF msgid "Grupo de informações do pedido de emissão da Nota Fiscal Fácil" msgstr "" @@ -2702,12 +3376,24 @@ msgid "ISSQN Value" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_Id #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_Id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_Id #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_Id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_Id #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_Id msgid "Identificador da tag a ser assinada" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_Id +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_Id +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_Id +msgid "" +"Identificador da tag a ser assinada\n" +"Informar a chave de acesso do CT-e e precedida do literal 'CTe'" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_Id #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_Id @@ -2733,6 +3419,24 @@ msgid "" "(1-Interna;2-Interestadual;3-Exterior)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_procEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_procEmi +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_procEmi +msgid "Identificador do processo de emissão" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_procEmi +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_procEmi +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_procEmi +msgid "" +"Identificador do processo de emissão do CT-e\n" +"Preencher com: \n" +"\t\t\t\t\t\t\t\t\t\t\t0 - emissão de CT-e com aplicativo do contribuinte;\n" +"\t\t\t\t\t\t\t\t\t\t\t3- emissão CT-e pelo contribuinte com aplicativo fornecido pelo SEBRAE." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_balsa #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_balsa @@ -2789,6 +3493,13 @@ msgid "" "endereço do remetente)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xNavio +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xNavio +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xNavio +msgid "Identificação do Navio" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_procEmi #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_procEmi @@ -2876,6 +3587,22 @@ msgstr "" msgid "Indica se o valor do PISST compõe o valor total da NF-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_indGlobalizado +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_indGlobalizado +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_indGlobalizado +msgid "Indicador de CT-e Globalizado" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_indGlobalizado +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_indGlobalizado +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_indGlobalizado +msgid "" +"Indicador de CT-e Globalizado\n" +"Informar valor 1 quando for Globalizado e não informar a tag quando não tratar de CT-e Globalizado" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_indIncentivo msgid "Indicador de Incentivo Fiscal" @@ -2942,6 +3669,41 @@ msgid "" "\t\t\t\t\t\t\t\t\t\t\t(0-Não se aplica (ex.: Nota Fiscal complementar ou de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não presencial, teleatendimento;4-NFC-e entrega em domicílio;5-Operação presencial, fora do estabelecimento;9-Não presencial, outros)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_indIEToma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_indIEToma +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_indIEToma +msgid "Indicador do papel do tomador" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_indIEToma +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_indIEToma +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_indIEToma +msgid "" +"Indicador do papel do tomador na prestação do serviço:\n" +"1 – Contribuinte ICMS;\n" +"2 – Contribuinte isento de inscrição;\n" +"9 – Não Contribuinte\n" +"Aplica-se ao tomador que for indicado no toma3 ou toma4" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_retira +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_retira +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_retira +msgid "Indicador se o Recebedor retira" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_retira +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_retira +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_retira +msgid "" +"Indicador se o Recebedor retira no Aeroporto, Filial, Porto ou Estação de Destino?\n" +"Preencher com: 0 - sim; 1 - não" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_comb msgid "Informar apenas para operações" @@ -2967,15 +3729,21 @@ msgid "Informações Complementares MDFE" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infAdFisco #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_infAdFisco +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infAdFisco #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_infAdFisco +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infAdFisco #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__nfe40_infAdFisco msgid "Informações adicionais de interesse" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infAdFisco #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_infAdFisco +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infAdFisco #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_infAdFisco +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infAdFisco #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_infAdFisco msgid "" "Informações adicionais de interesse do Fisco\n" @@ -3018,6 +3786,20 @@ msgstr "" msgid "Informações complementares de interesse do Contribuinte" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_ferroEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_ferroEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_ferroEnv +msgid "Informações das Ferrovias Envolvidas" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infNFe +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infNFe +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infNFe +msgid "Informações das NF-e DOCS (Cte)" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_compra #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_compra @@ -3032,6 +3814,26 @@ msgstr "" msgid "Informações de compras (Nota de Empenho, Pedido e Contrato)" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infQ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infQ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infQ +msgid "Informações de quantidades da Carga" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infQ +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infQ +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infQ +msgid "" +"Informações de quantidades da Carga do CT-e\n" +"Para o Aéreo é obrigatório o preenchimento desse campo da seguinte forma.\n" +"1 - Peso Bruto, sempre em quilogramas (obrigatório);\n" +"2 - Peso Cubado; sempre em quilogramas;\n" +"3 - Quantidade de volumes, sempre em unidades (obrigatório);\n" +"4 - Cubagem, sempre em metros cúbicos (obrigatório apenas quando for impossível preencher as dimensões da(s) embalagem(ens) na tag xDime do leiaute do Aéreo)." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_cana #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_cana @@ -3046,6 +3848,29 @@ msgstr "" msgid "Informações de registro aquisições de cana" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infGlobalizado +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infGlobalizado +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infGlobalizado +msgid "Informações do CT-e Globalizado" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infCteSub +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infCteSub +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infCteSub +msgid "Informações do CT-e de substituição" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_dest +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_dest +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_dest +msgid "" +"Informações do Destinatário do CT-e\n" +"Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_infPercurso #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_infPercurso @@ -3054,22 +3879,51 @@ msgid "Informações do Percurso do MDF-e" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_rem +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_rem +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_rem +msgid "" +"Informações do Remetente das mercadorias transportadas pelo CT-e\n" +"Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infRespTec #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_infRespTec +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infRespTec #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_infRespTec +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infRespTec #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__nfe40_infRespTec msgid "Informações do Responsável Técnico" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_infRespTec +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_infRespTec +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_infRespTec #: model:ir.model.fields,help:l10n_br_account.field_account_payment__nfe40_infRespTec msgid "Informações do Responsável Técnico pela emissão do DF-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infServVinc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infServVinc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infServVinc +msgid "Informações do Serviço Vinculado" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infServVinc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infServVinc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infServVinc +msgid "Informações do Serviço Vinculado a Multimodal" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_infMunCarrega #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_infMunCarrega @@ -3098,6 +3952,30 @@ msgstr "" msgid "Informações dos Municípios de descarregamento" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infOutros +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infOutros +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infOutros +msgid "Informações dos Outros DOCS (Cte)" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_infDoc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_infDoc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_infDoc +msgid "Informações dos documentos transportados" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_infDoc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_infDoc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_infDoc +msgid "" +"Informações dos documentos transportados pelo CT-e\n" +"Opcional para Redespacho Intermediario e Serviço vinculado a multimodal.\n" +"Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_infProdNFF msgid "Informações mais detalhadas do produto" @@ -3116,6 +3994,43 @@ msgstr "" msgid "Initial State" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_IE +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_IE +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_IE +msgid "Inscrição Estadual" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_IE +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_IE +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_IE +msgid "" +"Inscrição Estadual\n" +"Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__insurance_endorsement +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__insurance_endorsement +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__insurance_endorsement +msgid "Insurance Endorsement" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__insurance_policy +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__insurance_policy +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__insurance_policy +msgid "Insurance Policy" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_insurance_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_insurance_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_insurance_id +msgid "Insurance Provider" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__amount_insurance_value #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__amount_insurance_value @@ -3185,6 +4100,20 @@ msgstr "" msgid "Invoices" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_irin +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_irin +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_irin +msgid "Irin do navio" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_irin +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_irin +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_irin +msgid "Irin do navio sempre deverá ser informado" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__is_edoc_printed #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__is_edoc_printed @@ -3226,6 +4155,13 @@ msgstr "" msgid "Justificativa da entrada" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xJust +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xJust +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xJust +msgid "Justificativa da entrada em contingência" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__document_key #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__document_key @@ -3471,8 +4407,28 @@ msgid "Mdfe30 Veicreboque" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_modal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_modal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_modal +msgid "Modal" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_modal +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_modal +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_modal +msgid "" +"Modal\n" +"Preencher com:01-Rodoviário;\n" +"02-Aéreo;03-Aquaviário;04-Ferroviário;05-Dutoviário;06-Multimodal;" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte_modal #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__transport_modal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte_modal #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__transport_modal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte_modal #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__transport_modal msgid "Modal de Transporte" msgstr "" @@ -3573,10 +4529,38 @@ msgid "" msgstr "" #. module: l10n_br_account -#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_inscr_mun -#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_inscr_mun -#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_inscr_mun -msgid "Municipal Tax Number" +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_inscr_mun +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_inscr_mun +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_inscr_mun +msgid "Municipal Tax Number" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_destCalc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_destCalc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_destCalc +msgid "Município de destino para efeito" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_destCalc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_destCalc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_destCalc +msgid "Município de destino para efeito de cálculo do frete" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_origCalc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_origCalc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_origCalc +msgid "Município de origem para efeito" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_origCalc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_origCalc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_origCalc +msgid "Município de origem para efeito de cálculo do frete" msgstr "" #. module: l10n_br_account @@ -3639,6 +4623,11 @@ msgstr "" msgid "Nacionalidade da Aeronave" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cte40_xNome +msgid "Name" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__simple_value msgid "National Simple Taxes" @@ -3649,6 +4638,13 @@ msgstr "" msgid "National Simple Taxes without ICMS" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_natOp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_natOp +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_natOp +msgid "Natureza da Operação" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe_dhCont #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe_dhCont @@ -3687,6 +4683,13 @@ msgstr "" msgid "No new Fiscal Document Line to import!" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xFant +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xFant +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xFant +msgid "Nome Fantasia" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_xEmbar #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_xEmbar @@ -3694,6 +4697,54 @@ msgstr "" msgid "Nome da Embarcação" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xMunEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xMunEnv +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xMunEnv +msgid "Nome do Município de envio do CT-e" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xMunEnv +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xMunEnv +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xMunEnv +msgid "" +"Nome do Município de envio do CT-e (de onde o documento foi transmitido)\n" +"Informar PAIS/Municipio para as operações com o exterior." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xMunIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xMunIni +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xMunIni +msgid "Nome do Município do início da prestação" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xMunIni +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xMunIni +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xMunIni +msgid "" +"Nome do Município do início da prestação\n" +"Informar 'EXTERIOR' para operações com o exterior." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xMunFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xMunFim +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xMunFim +msgid "Nome do Município do término" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xMunFim +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xMunFim +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xMunFim +msgid "" +"Nome do Município do término da prestação\n" +"Informar 'EXTERIOR' para operações com o exterior." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_NVE msgid "Nomenclatura de Valor aduaneio" @@ -3705,8 +4756,43 @@ msgid "Nomenclatura de Valor aduaneio e Estatístico" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_nOCA +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_nOCA +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_nOCA +msgid "Número Operacional do Conhecimento Aéreo" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_nOCA +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_nOCA +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_nOCA +msgid "" +"Número Operacional do Conhecimento Aéreo\n" +"Representa o número de controle comumente utilizado pelo conhecimento aéreo composto por uma sequência numérica de onze dígitos. Os três primeiros dígitos representam um código que os operadores de transporte aéreo associados à IATA possuem. Em seguida um número de série de sete dígitos determinados pelo operador de transporte aéreo. Para finalizar, um dígito verificador, que é um sistema de módulo sete imponderado o qual divide o número de série do conhecimento aéreo por sete e usa o resto como dígito de verificação." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_nMinu +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_nMinu +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_nMinu +msgid "Número da Minuta" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_nMinu +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_nMinu +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_nMinu +msgid "" +"Número da Minuta\n" +"Documento que precede o CT-e, assinado pelo expedidor, espécie de pedido de serviço" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_nViag #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_nViag +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_nViag #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_nViag +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_nViag #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_nViag msgid "Número da Viagem" msgstr "" @@ -3728,6 +4814,46 @@ msgstr "" msgid "Número de controle da FCI - Ficha de Conteúdo de Importação." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CNPJ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CNPJ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CNPJ +msgid "Número do CNPJ" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_CNPJ +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_CNPJ +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_CNPJ +msgid "" +"Número do CNPJ\n" +"Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros.\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" +"Informar os zeros não significativos." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_CPF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_CPF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_CPF +msgid "Número do CPF" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_CPF +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_CPF +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_CPF +msgid "" +"Número do CPF\n" +"Informar os zeros não significativos." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_nCT +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_nCT +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_nCT +msgid "Número do CT-e" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_nNF #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_nNF @@ -3790,6 +4916,13 @@ msgstr "" msgid "Número do item do NF" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_obsFisco +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_obsFisco +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_obsFisco +msgid "ObsFisco" +msgstr "" + #. module: l10n_br_account #: model_terms:ir.actions.act_window,help:l10n_br_account.fiscal_invoice_all_action #: model_terms:ir.actions.act_window,help:l10n_br_account.fiscal_invoice_in_action @@ -3827,6 +4960,13 @@ msgstr "" msgid "Operation Nature" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_occ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_occ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_occ +msgid "Ordens de Coleta associados" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_xOri #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_xOri @@ -3866,6 +5006,22 @@ msgstr "" msgid "Outgoing Document" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xOutCat +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xOutCat +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xOutCat +msgid "Outras características da carga" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xOutCat +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xOutCat +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xOutCat +msgid "" +"Outras características da carga\n" +"'FRIA', 'GRANEL', 'REFRIGERADA', 'Medidas: 12X12X12'" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_vOutro #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_vOutro @@ -4256,15 +5412,21 @@ msgid "" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_proPred #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_prodPred +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_proPred #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_prodPred +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_proPred #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_prodPred msgid "Produto predominante" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_proPred #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_prodPred +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_proPred #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_prodPred +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_proPred #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_prodPred msgid "" "Produto predominante\n" @@ -4374,8 +5536,11 @@ msgid "RENAVAM" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_RNTRC #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_RNTRC +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_RNTRC #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_RNTRC +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_RNTRC #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_RNTRC msgid "RNTRC" msgstr "" @@ -4387,6 +5552,41 @@ msgstr "" msgid "RPS Number" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xNome +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xNome +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xNome +msgid "Razão Social ou Nome" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_receb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_receb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_receb +msgid "Recebedor" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_receivering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_receivering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_receivering_id +msgid "Receiver Address" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_RNTRC +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_RNTRC +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_RNTRC +msgid "Registro Nacional de Transportadores Rodoviários de Carga" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_rem +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_rem +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_rem +msgid "Remetente" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_infRespTec #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_infRespTec @@ -4394,6 +5594,13 @@ msgstr "" msgid "Responsável Técnico MDFe" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_respFat +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_respFat +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_respFat +msgid "Responsável pelo Faturamento" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe_route_state_ids #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe_route_state_ids @@ -4422,6 +5629,13 @@ msgstr "" msgid "Send Document File XML" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_sendering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_sendering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_sendering_id +msgid "Sender Address" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__document_serie #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__document_serie @@ -4434,6 +5648,13 @@ msgstr "" msgid "Service Type LC 166" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__partner_shippering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__partner_shippering_id +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__partner_shippering_id +msgid "Shipper Address" +msgstr "" + #. module: l10n_br_account #: model_terms:ir.ui.view,arch_db:l10n_br_account.nfe_document_form_inherit msgid "Show related invoices" @@ -4497,6 +5718,42 @@ msgstr "" msgid "Sigla da UF para qual é devido o ICMS ST da operação." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xOrig +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xOrig +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xOrig +msgid "Sigla ou código interno" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_xDest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_xDest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_xDest +msgid "Sigla ou código interno (xDest)" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xOrig +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xOrig +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xOrig +msgid "" +"Sigla ou código interno da Filial/Porto/Estação/ Aeroporto de Origem\n" +"Observações para o modal aéreo:\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t- Preenchimento obrigatório para o modal aéreo.\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t- O código de três letras IATA do aeroporto de partida deverá ser incluído como primeira anotação. Quando não for possível, utilizar a sigla OACI." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_xDest +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_xDest +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_xDest +msgid "" +"Sigla ou código interno da Filial/Porto/Estação/Aeroporto de Destino\n" +"Observações para o modal aéreo:\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t- Preenchimento obrigatório para o modal aéreo.\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t- Deverá ser incluído o código de três letras IATA do aeroporto de destino. Quando não for possível, utilizar a sigla OACI." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__icmssn_range_id msgid "Simplified Range Tax" @@ -4568,6 +5825,22 @@ msgstr "" msgid "Suframa" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_serie +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_serie +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_serie +msgid "Série do CT-e" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_serie +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_serie +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_serie +msgid "" +"Série do CT-e\n" +"Preencher com '0' no caso de série única" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_serie #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_serie @@ -4764,11 +6037,80 @@ msgstr "" msgid "Taxes" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_fone +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_fone +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_fone +msgid "Telefone" +msgstr "" + #. module: l10n_br_account #: model:ir.model,name:l10n_br_account.model_account_tax_template msgid "Templates for Taxes" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__insurance_endorsement +#: model:ir.model.fields,help:l10n_br_account.field_account_move__insurance_endorsement +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__insurance_endorsement +msgid "" +"The endorsement number associated with the insurance policy, indicating any " +"modifications or adjustments to the coverage. This field is primarily used " +"when issuing the CT-e." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__insurance_policy +#: model:ir.model.fields,help:l10n_br_account.field_account_move__insurance_policy +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__insurance_policy +msgid "" +"The insurance policy number covering the transported goods. This field is " +"primarily used when issuing the CT-e." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_receb +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_receivering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_receb +#: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_receivering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_receb +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_receivering_id +msgid "" +"The intermediary partner who receives the goods before they reach the final " +"recipient, often involved in verification, temporary storage, or further " +"distribution. This field is primarily used when issuing the CT-e." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_insurance_id +#: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_insurance_id +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_insurance_id +msgid "" +"The partner providing insurance coverage for the transported goods. This " +"field is primarily used when issuing the CT-e." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_exped +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_shippering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_exped +#: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_shippering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_exped +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_shippering_id +msgid "" +"The partner responsible for delivering the cargo to the carrier, if not done" +" directly by the sender. This field is primarily used when issuing the CT-e." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__partner_sendering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_move__partner_sendering_id +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__partner_sendering_id +msgid "" +"The partner responsible for sending the goods, typically the issuer of the " +"document. This field is primarily used when issuing the CT-e." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__nfe40_transporta #: model:ir.model.fields,help:l10n_br_account.field_account_move__nfe40_transporta @@ -4791,17 +6133,34 @@ msgid "Tipo de Carroceria" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_choice_icms +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_choice_icms #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_choice_icms +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_choice_icms msgid "Tipo de ICMS" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpNav #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_tpNav +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpNav #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_tpNav +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpNav #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_tpNav msgid "Tipo de Navegação" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpNav +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpNav +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpNav +msgid "" +"Tipo de Navegação\n" +"Preencher com: \n" +"\t\t\t\t\t\t0 - Interior;\n" +"\t\t\t\t\t\t1 - Cabotagem" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_choice_prod msgid "Tipo de Produto" @@ -4818,8 +6177,53 @@ msgid "Tipo de Tributação do PIS" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpTraf +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpTraf +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpTraf +msgid "Tipo de Tráfego" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpPer +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpPer +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpPer +msgid "Tipo de data/período programado" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpPer +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpPer +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpPer +msgid "" +"Tipo de data/período programado para entrega\n" +"Preencher com:\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1-Na data;\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2-Até a data;\n" +"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t3-A partir da data" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpHor +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpHor +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpHor +msgid "Tipo de hora" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpHor +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpHor +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpHor +msgid "" +"Tipo de hora\n" +"0- Sem hora definida" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpAmb #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_tpAmb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpAmb #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_tpAmb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpAmb #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_tpAmb msgid "Tipo do Ambiente" msgstr "" @@ -4834,6 +6238,34 @@ msgid "" "2 - Homologação" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpAmb +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpAmb +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpAmb +msgid "" +"Tipo do Ambiente\n" +"Preencher com:1 - Produção; 2 - Homologação." +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpCTe +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpCTe +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpCTe +msgid "Tipo do CT-e" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpCTe +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpCTe +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpCTe +msgid "" +"Tipo do CT-e\n" +"Preencher com:\n" +"\t0 - CT-e Normal;\n" +" 1 - CT-e de Complemento de Valores;\n" +" 3 - CT-e de Substituição" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_tpNF #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_tpNF @@ -4874,6 +6306,27 @@ msgstr "" msgid "Tipo do Rodado" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_tpServ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_tpServ +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_tpServ +msgid "Tipo do Serviço" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_tpServ +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_tpServ +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_tpServ +msgid "" +"Tipo do Serviço\n" +"Preencher com: \n" +"0 - Normal;\n" +"1 - Subcontratação;\n" +"2 - Redespacho;\n" +"3 - Redespacho Intermediário; \n" +"4 - Serviço Vinculado a Multimodal" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_tpTransp #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_tpTransp @@ -4895,12 +6348,26 @@ msgid "" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_toma #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__service_provider +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_toma #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__service_provider +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_toma #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__service_provider msgid "Tomador do Serviço" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_toma +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_toma +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_toma +msgid "" +"Tomador do Serviço\n" +"Preencher com: \n" +" 4 - Outros\n" +" Obs: Informar os dados cadastrais do tomador do serviço" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__total_weight #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__total_weight @@ -5042,6 +6509,22 @@ msgstr "" msgid "Valor Total da NF-e" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vTPrest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vTPrest +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vTPrest +msgid "Valor Total da Prestação do Serviço" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_vTPrest +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_vTPrest +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_vTPrest +msgid "" +"Valor Total da Prestação do Serviço\n" +"Pode conter zeros quando o CT-e for de complemento de ICMS" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_vFCP #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_vFCP @@ -5172,6 +6655,13 @@ msgid "" "Valor Total dos Serviços sob não-incidência ou não tributados pelo ICMS" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vTotTrib +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vTotTrib +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vTotTrib +msgid "Valor Total dos Tributos" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_vProd #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_vProd @@ -5179,6 +6669,13 @@ msgstr "" msgid "Valor Total dos produtos e serviços" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vRec +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vRec +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vRec +msgid "Valor a Receber" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_vProd msgid "Valor bruto do produto ou serviço" @@ -5224,6 +6721,22 @@ msgstr "" msgid "Valor da Base de cálculo do FCP retido por substituicao tributaria." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vCargaAverb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vCargaAverb +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vCargaAverb +msgid "Valor da Carga para efeito de averbação" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_vCargaAverb +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_vCargaAverb +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_vCargaAverb +msgid "" +"Valor da Carga para efeito de averbação\n" +"Normalmente igual ao valor declarado da mercadoria, diferente por exemplo, quando a mercadoria transportada é isenta de tributos nacionais para exportação, onde é preciso averbar um valor maior, pois no caso de indenização, o valor a ser pago será maior" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_vRetPrev #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_vRetPrev @@ -5231,6 +6744,22 @@ msgstr "" msgid "Valor da Retenção da Previdêncica Social" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_aereo_vTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_aereo_vTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_aereo_vTar +msgid "Valor da Tarifa" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_aereo_vTar +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_aereo_vTar +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_aereo_vTar +msgid "" +"Valor da Tarifa\n" +"Valor da tarifa por kg quando for o caso." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_vBCEfet msgid "Valor da base de cálculo efetiva" @@ -5241,6 +6770,13 @@ msgstr "" msgid "Valor da do ISSQN" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vTar +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vTar +msgid "Valor da tarifa" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_vDespAdu msgid "Valor das despesas aduaneiras" @@ -5298,6 +6834,13 @@ msgstr "" msgid "Valor do FCP retido por substituição tributária." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vFrete +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vFrete +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vFrete +msgid "Valor do Frete do Tráfego Mútuo" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_vICMS msgid "Valor do ICMS" @@ -5406,6 +6949,11 @@ msgstr "" msgid "Valor do Troco" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__cte40_vComp +msgid "Valor do componente" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_vTotTrib #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_vTotTrib @@ -5453,6 +7001,22 @@ msgid "" "de medida." msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_vCarga +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_vCarga +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_vCarga +msgid "Valor total da carga" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_vCarga +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_vCarga +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_vCarga +msgid "" +"Valor total da carga\n" +"Dever ser informado para todos os modais, com exceção para o Dutoviário." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_qBCMono #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_qBCMono @@ -5580,8 +7144,11 @@ msgid "Version" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_versao #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_versao +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_versao #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_versao +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_versao #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_versao msgid "Versão do leiaute" msgstr "" @@ -5595,6 +7162,15 @@ msgid "" "Ex: '3.00'" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_versao +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_versao +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_versao +msgid "" +"Versão do leiaute\n" +"Ex: '4.00'" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_versao #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_versao @@ -5603,26 +7179,44 @@ msgid "Versão do leiaute (v4.00)" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_versaoModal #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_versaoModal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_versaoModal #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_versaoModal +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_versaoModal #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_versaoModal msgid "Versão do leiaute específico" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_versaoModal #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_versaoModal +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_versaoModal #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_versaoModal +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_versaoModal #: model:ir.model.fields,help:l10n_br_account.field_account_payment__mdfe30_versaoModal msgid "Versão do leiaute específico para o Modal" msgstr "" #. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_verProc #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__mdfe30_verProc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_verProc #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__mdfe30_verProc +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_verProc #: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__mdfe30_verProc msgid "Versão do processo de emissão" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__cte40_verProc +#: model:ir.model.fields,help:l10n_br_account.field_account_move__cte40_verProc +#: model:ir.model.fields,help:l10n_br_account.field_account_payment__cte40_verProc +msgid "" +"Versão do processo de emissão\n" +"Iinformar a versão do aplicativo emissor de CT-e." +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,help:l10n_br_account.field_account_bank_statement_line__mdfe30_verProc #: model:ir.model.fields,help:l10n_br_account.field_account_move__mdfe30_verProc @@ -5677,6 +7271,20 @@ msgstr "" msgid "cBenef" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_cUF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_cUF +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_cUF +msgid "cte40_cUF" +msgstr "" + +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_mod +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_mod +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_mod +msgid "cte40_mod" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__nfe40_dhCont #: model:ir.model.fields,field_description:l10n_br_account.field_account_move__nfe40_dhCont @@ -5719,6 +7327,13 @@ msgstr "" msgid "infProdEmb" msgstr "" +#. module: l10n_br_account +#: model:ir.model.fields,field_description:l10n_br_account.field_account_bank_statement_line__cte40_veicNovos +#: model:ir.model.fields,field_description:l10n_br_account.field_account_move__cte40_veicNovos +#: model:ir.model.fields,field_description:l10n_br_account.field_account_payment__cte40_veicNovos +msgid "informações dos veículos transportados" +msgstr "" + #. module: l10n_br_account #: model:ir.model.fields,field_description:l10n_br_account.field_account_move_line__nfe40_modBCST msgid "modBCST" From 37f486f1660bd95681b770f45423da58af70fad0 Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Mon, 28 Apr 2025 16:49:45 -0300 Subject: [PATCH 1523/1549] [DON'T MERGE] test-requirements.txt --- test-requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 000000000000..1f9e95b7a17c --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +odoo-addon-l10n_br_fiscal @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3740/head#subdirectory=l10n_br_fiscal +odoo-addon-l10n_br_account_due_list @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3756/head#subdirectory=l10n_br_account_due_list +odoo-addon-l10n_br_coa @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3758/head#subdirectory=l10n_br_coa From df883f9a18131cf465e93f9f32b370760bfd524f Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Tue, 29 Apr 2025 11:52:38 -0300 Subject: [PATCH 1524/1549] [MIG] l10n_br_account: Migration to 17.0 --- l10n_br_account/README.rst | 36 +++++++++---------- l10n_br_account/__manifest__.py | 2 +- l10n_br_account/static/description/index.html | 6 ++-- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/l10n_br_account/README.rst b/l10n_br_account/README.rst index c9309c1f9556..e4758b39b63c 100644 --- a/l10n_br_account/README.rst +++ b/l10n_br_account/README.rst @@ -17,13 +17,13 @@ Invoicing and accounting entries for Brazil :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github - :target: https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_account + :target: https://github.com/OCA/l10n-brazil/tree/17.0/l10n_br_account :alt: OCA/l10n-brazil .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/l10n-brazil-16-0/l10n-brazil-16-0-l10n_br_account + :target: https://translation.odoo-community.org/projects/l10n-brazil-17-0/l10n-brazil-17-0-l10n_br_account :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -41,21 +41,21 @@ Installation To install this module, you need to: -- do this ... +- do this ... Configuration ============= To configure this module, you need to: -- go to ... +- go to ... Usage ===== To use this module, you need to: -- go to ... +- go to ... Known issues / Roadmap ====================== @@ -73,7 +73,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -88,23 +88,23 @@ Authors Contributors ------------ -- `Akretion `__: +- `Akretion `__: - - Renato Lima - - Raphaël Valyi + - Renato Lima + - Raphaël Valyi -- `KMEE `__: +- `KMEE `__: - - Luis Felipe Mileo + - Luis Felipe Mileo -- `Escodoo `__: +- `Escodoo `__: - - Marcel Savegnago + - Marcel Savegnago -- `Engenere `__: +- `Engenere `__: - - Antônio S. Pereira Neto - - Felipe Motter Pereira + - Antônio S. Pereira Neto + - Felipe Motter Pereira Maintainers ----------- @@ -130,6 +130,6 @@ Current `maintainers `__: |maintainer-renatonlima| |maintainer-rvalyi| -This module is part of the `OCA/l10n-brazil `_ project on GitHub. +This module is part of the `OCA/l10n-brazil `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index b75afb1be98c..478abdb7664b 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "author": "Akretion, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-brazil", - "version": "16.0.3.0.0", + "version": "17.0.1.0.0", "development_status": "Beta", "maintainers": ["renatonlima", "rvalyi"], "depends": [ diff --git a/l10n_br_account/static/description/index.html b/l10n_br_account/static/description/index.html index 18a357651bfa..7aac86f41319 100644 --- a/l10n_br_account/static/description/index.html +++ b/l10n_br_account/static/description/index.html @@ -369,7 +369,7 @@

Invoicing and accounting entries for Brazil

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:cf6ffad865e85568bbe71e4642a798dd7f4617c8908dd5aea821d0e85cbb4f9d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

This module was written to extend the functionality of … to support … and allow you to …

Table of contents

@@ -421,7 +421,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -466,7 +466,7 @@

Maintainers

promote its widespread use.

Current maintainers:

renatonlima rvalyi

-

This module is part of the OCA/l10n-brazil project on GitHub.

+

This module is part of the OCA/l10n-brazil project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From 4808a6fc9c07d6147daec7ea402eb59d6a26f318 Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Tue, 29 Apr 2025 12:13:18 -0300 Subject: [PATCH 1525/1549] fix test requirements --- test-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test-requirements.txt b/test-requirements.txt index 1f9e95b7a17c..ab1345976c42 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,3 +1,4 @@ +odoo-addon-l10n_br_base @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3729/head#subdirectory=l10n_br_base odoo-addon-l10n_br_fiscal @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3740/head#subdirectory=l10n_br_fiscal odoo-addon-l10n_br_account_due_list @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3756/head#subdirectory=l10n_br_account_due_list odoo-addon-l10n_br_coa @ git+https://github.com/OCA/l10n-brazil.git@refs/pull/3758/head#subdirectory=l10n_br_coa From f32f9c1b6f9d2a5af9cc0d5bf3a23680508e5fc1 Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Tue, 29 Apr 2025 12:27:02 -0300 Subject: [PATCH 1526/1549] [MIG] l10n_br_account: account.chart.template refactor --- l10n_br_account/__manifest__.py | 4 - l10n_br_account/data/account_tax_group.xml | 125 ------- l10n_br_account/data/account_tax_template.xml | 307 ------------------ .../data/template/account.tax-br_oca.csv | 42 +++ .../template/account.tax.group-br_oca.csv | 24 ++ l10n_br_account/models/__init__.py | 3 - .../models/account_chart_template.py | 70 ---- .../models/account_tax_template.py | 28 -- l10n_br_account/models/template_br_oca.py | 37 +++ .../views/account_tax_template_view.xml | 34 -- l10n_br_account/views/account_tax_view.xml | 8 +- 11 files changed, 105 insertions(+), 577 deletions(-) delete mode 100644 l10n_br_account/data/account_tax_group.xml delete mode 100644 l10n_br_account/data/account_tax_template.xml create mode 100644 l10n_br_account/data/template/account.tax-br_oca.csv create mode 100644 l10n_br_account/data/template/account.tax.group-br_oca.csv delete mode 100644 l10n_br_account/models/account_chart_template.py delete mode 100644 l10n_br_account/models/account_tax_template.py create mode 100644 l10n_br_account/models/template_br_oca.py delete mode 100644 l10n_br_account/views/account_tax_template_view.xml diff --git a/l10n_br_account/__manifest__.py b/l10n_br_account/__manifest__.py index 478abdb7664b..a6d8479f31b2 100644 --- a/l10n_br_account/__manifest__.py +++ b/l10n_br_account/__manifest__.py @@ -19,12 +19,8 @@ "data": [ # security "security/ir.model.access.csv", - # data - "data/account_tax_group.xml", - "data/account_tax_template.xml", # Views "views/account_tax_view.xml", - "views/account_tax_template_view.xml", "views/fiscal_operation_view.xml", "views/fiscal_operation_line_view.xml", "views/account_move_view.xml", diff --git a/l10n_br_account/data/account_tax_group.xml b/l10n_br_account/data/account_tax_group.xml deleted file mode 100644 index 96cef1b96c7f..000000000000 --- a/l10n_br_account/data/account_tax_group.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - IPI - - - - - II - - - - - ICMS - - - - - ICMS SN - - - - - ICMS ST - - - - - ICMS FCP - - - - - ICMS FCP ST - - - - - PIS - - - - - PIS ST - - - - - PIS WH - - - - - COFINS - - - - - COFINS ST - - - - - COFINS WH - - - - - ISSQN - - - - - ISSQN WH - - - - - CSLL - - - - - CSLL WH - - - - - IR - - - - - IRPJ - - - - - IRPJ WH - - - - - INSS - - - - - INSS WH - - - - - Simples Nacional - - - - - Outros - - - - diff --git a/l10n_br_account/data/account_tax_template.xml b/l10n_br_account/data/account_tax_template.xml deleted file mode 100644 index 93e3aee4cc0c..000000000000 --- a/l10n_br_account/data/account_tax_template.xml +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_br_account/data/template/account.tax-br_oca.csv b/l10n_br_account/data/template/account.tax-br_oca.csv new file mode 100644 index 000000000000..8fee15a2985b --- /dev/null +++ b/l10n_br_account/data/template/account.tax-br_oca.csv @@ -0,0 +1,42 @@ +"id","fiscal_tax_ids@tax_group_id" +"tax_template_out_ipi","l10n_br_fiscal.tax_group_ipi" +"tax_template_in_ipi","l10n_br_fiscal.tax_group_ipi" +"tax_template_out_ii","l10n_br_fiscal.tax_group_ii" +"tax_template_in_ii","l10n_br_fiscal.tax_group_ii" +"tax_template_out_icms","l10n_br_fiscal.tax_group_icms" +"tax_template_in_icms","l10n_br_fiscal.tax_group_icms" +"tax_template_out_icmssn","l10n_br_fiscal.tax_group_icmssn" +"tax_template_in_icmssn","l10n_br_fiscal.tax_group_icmssn" +"tax_template_out_icms_subist","l10n_br_fiscal.tax_group_icmsst" +"tax_template_in_icms_subist","l10n_br_fiscal.tax_group_icmsst" +"tax_template_out_icmsfcp","l10n_br_fiscal.tax_group_icmsfcp" +"tax_template_in_icmsfcp","l10n_br_fiscal.tax_group_icmsfcp" +"tax_template_out_pis","l10n_br_fiscal.tax_group_pis" +"tax_template_out_pisst","l10n_br_fiscal.tax_group_pisst" +"tax_template_out_pis_wh","l10n_br_fiscal.tax_group_pis_wh" +"tax_template_in_pis","l10n_br_fiscal.tax_group_pis" +"tax_template_in_pisst","l10n_br_fiscal.tax_group_pisst" +"tax_template_in_pis_wh","l10n_br_fiscal.tax_group_pis_wh" +"tax_template_out_cofins","l10n_br_fiscal.tax_group_cofins" +"tax_template_out_cofinsst","l10n_br_fiscal.tax_group_cofinsst" +"tax_template_out_cofins_wh","l10n_br_fiscal.tax_group_cofins_wh" +"tax_template_in_cofins","l10n_br_fiscal.tax_group_cofins" +"tax_template_in_cofinsst","l10n_br_fiscal.tax_group_cofinsst" +"tax_template_in_cofins_wh","l10n_br_fiscal.tax_group_cofins_wh" +"tax_template_out_issqn","l10n_br_fiscal.tax_group_issqn" +"tax_template_out_issqn_wh","l10n_br_fiscal.tax_group_issqn_wh" +"tax_template_in_issqn","l10n_br_fiscal.tax_group_issqn" +"tax_template_in_issqn_wh","l10n_br_fiscal.tax_group_issqn_wh" +"tax_template_out_irpj","l10n_br_fiscal.tax_group_irpj" +"tax_template_out_irpj_wh","l10n_br_fiscal.tax_group_irpj_wh" +"tax_template_in_irpj","l10n_br_fiscal.tax_group_irpj" +"tax_template_in_irpj_wh","l10n_br_fiscal.tax_group_irpj_wh" +"tax_template_out_csll","l10n_br_fiscal.tax_group_csll" +"tax_template_out_csll_wh","l10n_br_fiscal.tax_group_csll_wh" +"tax_template_in_csll","l10n_br_fiscal.tax_group_csll" +"tax_template_in_csll_wh","l10n_br_fiscal.tax_group_csll_wh" +"tax_template_out_inss","l10n_br_fiscal.tax_group_inss" +"tax_template_out_inss_wh","l10n_br_fiscal.tax_group_inss_wh" +"tax_template_in_inss","l10n_br_fiscal.tax_group_inss" +"tax_template_in_inss_wh","l10n_br_fiscal.tax_group_inss_wh" +"tax_template_simples","l10n_br_fiscal.tax_group_simples" diff --git a/l10n_br_account/data/template/account.tax.group-br_oca.csv b/l10n_br_account/data/template/account.tax.group-br_oca.csv new file mode 100644 index 000000000000..4735f90fed44 --- /dev/null +++ b/l10n_br_account/data/template/account.tax.group-br_oca.csv @@ -0,0 +1,24 @@ +"id","fiscal_tax_group_id" +"tax_group_ipi","l10n_br_fiscal.tax_group_ipi" +"tax_group_ii","l10n_br_fiscal.tax_group_ii" +"tax_group_icms","l10n_br_fiscal.tax_group_icms" +"tax_group_icmssn","l10n_br_fiscal.tax_group_icmssn" +"tax_group_icmsst","l10n_br_fiscal.tax_group_icmsst" +"tax_group_icmsfcp","l10n_br_fiscal.tax_group_icmsfcp" +"tax_group_pis","l10n_br_fiscal.tax_group_pis" +"tax_group_pisst","l10n_br_fiscal.tax_group_pisst" +"tax_group_pis_wh","l10n_br_fiscal.tax_group_pis_wh" +"tax_group_cofins","l10n_br_fiscal.tax_group_cofins" +"tax_group_cofinsst","l10n_br_fiscal.tax_group_cofinsst" +"tax_group_cofins_wh","l10n_br_fiscal.tax_group_cofins_wh" +"tax_group_issqn","l10n_br_fiscal.tax_group_issqn" +"tax_group_issqn_wh","l10n_br_fiscal.tax_group_issqn_wh" +"tax_group_csll","l10n_br_fiscal.tax_group_csll" +"tax_group_csll_wh","l10n_br_fiscal.tax_group_csll_wh" +"tax_group_ir","l10n_br_fiscal.tax_group_ir" +"tax_group_irpj","l10n_br_fiscal.tax_group_irpj" +"tax_group_irpj_wh","l10n_br_fiscal.tax_group_irpj_wh" +"tax_group_inss","l10n_br_fiscal.tax_group_inss" +"tax_group_inss_wh","l10n_br_fiscal.tax_group_inss_wh" +"tax_group_simples","l10n_br_fiscal.tax_group_simples" +"tax_group_others","l10n_br_fiscal.tax_group_others" diff --git a/l10n_br_account/models/__init__.py b/l10n_br_account/models/__init__.py index 93a6cfd6db13..75fc9d157dd6 100644 --- a/l10n_br_account/models/__init__.py +++ b/l10n_br_account/models/__init__.py @@ -1,9 +1,6 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html - -from . import account_chart_template from . import account_tax_group from . import fiscal_tax_group -from . import account_tax_template from . import account_tax from . import fiscal_tax from . import fiscal_operation diff --git a/l10n_br_account/models/account_chart_template.py b/l10n_br_account/models/account_chart_template.py deleted file mode 100644 index 09aacf635d11..000000000000 --- a/l10n_br_account/models/account_chart_template.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (C) 2019 Renato Lima - Akretion -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models - - -class AccountChartTemplate(models.Model): - _inherit = "account.chart.template" - - def _load(self, company): - """ - Avoid to populate account_sale/purchase_tax_id - with tax that cannot be applied in Brazil and confuses the users. - """ - res = super()._load(company) - if self.parent_id and self.parent_id == self.env.ref( - "l10n_br_coa.l10n_br_coa_template" - ): - company.account_sale_tax_id = None - company.account_purchase_tax_id = None - return res - - def _load_template( - self, company, code_digits=None, account_ref=None, taxes_ref=None - ): - """ - If the CoA is installed before l10n_br_account, at least we trigger - load_fiscal_taxes from the l10n_br_account/hooks.py for the demo CoA's. - With this override, we also ensure these demo CoA or any custom CoA - will get its account taxes properly linked to fiscal taxes when it is - installed after l10n_br_account. - """ - self.ensure_one() - account_ref, taxes_ref = super()._load_template( - company, code_digits, account_ref, taxes_ref - ) - - if self.parent_id and self.parent_id == self.env.ref( - "l10n_br_coa.l10n_br_coa_template" - ): - self.load_fiscal_taxes() - return account_ref, taxes_ref - - def load_fiscal_taxes(self): - """ - Relate account taxes with fiscal taxes to enable the Brazilian - tax engine to kick in with the installed chart of account. - """ - for coa_tpl in self: - companies = self.env["res.company"].search( - [("chart_template_id", "=", coa_tpl.id)] - ) - - for company in companies: - taxes = self.env["account.tax"].search( - [("company_id", "=", company.id)] - ) - - for tax in taxes: - if tax.get_external_id(): - tax_ref = tax.get_external_id().get(tax.id) - ref_module, ref_name = tax_ref.split(".") - ref_name = ref_name.replace(str(company.id) + "_", "") - template_source_ref = ".".join(["l10n_br_coa", ref_name]) - template_source = self.env.ref(template_source_ref) - tax_source_ref = ".".join([ref_module, ref_name]) - tax_template = self.env.ref(tax_source_ref) - tax.fiscal_tax_ids = ( - tax_template.fiscal_tax_ids - ) = template_source.fiscal_tax_ids diff --git a/l10n_br_account/models/account_tax_template.py b/l10n_br_account/models/account_tax_template.py deleted file mode 100644 index 090f352d1c41..000000000000 --- a/l10n_br_account/models/account_tax_template.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) 2013 Renato Lima - Akretion -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html - -from odoo import fields, models - - -class AccountTaxTemplate(models.Model): - _inherit = "account.tax.template" - - fiscal_tax_ids = fields.Many2many( - comodel_name="l10n_br_fiscal.tax", - relation="fiscal_account_template_tax_rel", - column1="account_tax_template_id", - column2="fiscal_tax_id", - string="Fiscal Taxes", - ) - - def _generate_tax(self, company): - mapping = super()._generate_tax(company) - taxes_template = mapping.get("tax_template_to_tax").keys() - - for tax_template in taxes_template: - tax_id = mapping.get("tax_template_to_tax").get(tax_template.id) - self.env["account.tax"].browse(tax_id).write( - {"fiscal_tax_ids": [(6, 0, tax_template.fiscal_tax_ids.ids)]} - ) - - return mapping diff --git a/l10n_br_account/models/template_br_oca.py b/l10n_br_account/models/template_br_oca.py new file mode 100644 index 000000000000..a618aec0bd1e --- /dev/null +++ b/l10n_br_account/models/template_br_oca.py @@ -0,0 +1,37 @@ +# Copyright (C) 2019 Renato Lima - Akretion +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import Command, models + +from odoo.addons.account.models.chart_template import template + + +class AccountChartTemplate(models.AbstractModel): + _inherit = "account.chart.template" + + @template("br_oca", "account.tax") + def _get_br_oca_fiscal_account_tax(self): + return self._link_existing_fiscal_tax_groups_to_account_tax_data( + self._parse_csv("br_oca", "account.tax", module="l10n_br_account") + ) + + @template("br_oca", "account.tax.group") + def _get_br_oca_fiscal_account_tax_group(self): + return self._parse_csv("br_oca", "account.tax.group", module="l10n_br_account") + + def _link_existing_fiscal_tax_groups_to_account_tax_data(self, data): + group_key = "fiscal_tax_ids@tax_group_id" + for rec_data in data.values(): + if group_key not in rec_data: + continue + rec_data["fiscal_tax_ids"] = [ + Command.set( + self.env["l10n_br_fiscal.tax"] + .search( + [("tax_group_id", "=", self.env.ref(rec_data[group_key]).id)] + ) + .ids + ) + ] + del rec_data[group_key] + return data diff --git a/l10n_br_account/views/account_tax_template_view.xml b/l10n_br_account/views/account_tax_template_view.xml deleted file mode 100644 index 5f0aaae77295..000000000000 --- a/l10n_br_account/views/account_tax_template_view.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - l10n_br_account.tax.template.form - account.tax.template - - - - - - - - - {'readonly': [('fiscal_tax_ids', '!=', False)]} - 1 - - - {'readonly': [('fiscal_tax_ids', '!=', False)]} - 1 - - - - - diff --git a/l10n_br_account/views/account_tax_view.xml b/l10n_br_account/views/account_tax_view.xml index 2dc3b49b223c..6525fd613268 100644 --- a/l10n_br_account/views/account_tax_view.xml +++ b/l10n_br_account/views/account_tax_view.xml @@ -12,15 +12,11 @@ - {'readonly': [('fiscal_tax_ids', '!=', False)]} + fiscal_tax_ids 1 - {'readonly': [('fiscal_tax_ids', '!=', False)]} + fiscal_tax_ids 1 From ebbc091d7a84c6868d96a1fd0d38252095ad402f Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Tue, 29 Apr 2025 13:28:55 -0300 Subject: [PATCH 1527/1549] [MIG] l10n_br_account: views refactor --- l10n_br_account/views/account_move_view.xml | 236 +++++++++++------- l10n_br_account/views/document_view.xml | 2 +- l10n_br_account/views/fiscal_invoice_view.xml | 24 +- .../views/fiscal_operation_line_view.xml | 5 +- .../views/fiscal_operation_view.xml | 9 +- l10n_br_account/views/res_partner_view.xml | 6 +- 6 files changed, 170 insertions(+), 112 deletions(-) diff --git a/l10n_br_account/views/account_move_view.xml b/l10n_br_account/views/account_move_view.xml index 3c112398df30..1346213f7a41 100644 --- a/l10n_br_account/views/account_move_view.xml +++ b/l10n_br_account/views/account_move_view.xml @@ -31,7 +31,7 @@ - + - {'invisible': [('document_type_id', '!=', False)]} + document_type_id @@ -87,46 +85,56 @@ + + @@ -152,8 +160,8 @@ widget="many2many_tags" options="{'no_create': True}" /> - - + + @@ -171,7 +179,7 @@ @@ -189,25 +197,32 @@ - {'default_move_type': context.get('default_move_type'), 'line_ids': line_ids, 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id or company_currency_id, 'default_fiscal_operation_id': fiscal_operation_id, 'default_document_type_id': document_type_id, 'default_exclude_from_invoice_tab': 1} + { + 'default_move_type': context.get('default_move_type'), + 'line_ids': line_ids, + 'journal_id': journal_id, + 'default_partner_id': commercial_partner_id, + 'default_currency_id': currency_id or company_currency_id, + 'default_fiscal_operation_id': fiscal_operation_id, + 'default_document_type_id': document_type_id, + 'default_exclude_from_invoice_tab': 1 + } - + + --> - + --> - - - - - - + + + + + + - @@ -237,40 +251,36 @@ - - + + - - - - - - + + + + - - - - + + + + - - - - + + - - +
- + + @@ -319,7 +330,13 @@ + + + @@ -349,15 +366,47 @@ name="domain" >context.get('default_move_type') in ('out_invoice', 'out_refund', 'out_receipt') and [('sale_ok', '=', True), '|', ('company_id', '=', False), ('company_id', '=', parent.company_id)] or [('purchase_ok', '=', True), '|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]
+ + + + + - 1 + hide @@ -367,48 +416,54 @@ >
@@ -418,7 +473,7 @@ > - + @@ -471,24 +526,25 @@ name="fiscal_document_id" placeholder="Fiscal Document to import..." domain="[('partner_id', '=', partner_id), ('company_id', '=', company_id)]" - attrs="{'invisible': [('state', '!=', 'draft')]}" + invisible="state != 'draft'" />