Skip to content

Commit

Permalink
Merge branch '10.0' into 10.0-outros-custos-compras
Browse files Browse the repository at this point in the history
  • Loading branch information
danimaribeiro committed Feb 14, 2017
2 parents e9c0711 + 92cbf64 commit 32f6552
Show file tree
Hide file tree
Showing 26 changed files with 403 additions and 173 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
*.py[cod]
*.swp
*~
# Remove IDE files
.idea/

42 changes: 25 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ Odoo Brasil
|
<b><a href="#funcionalidades">Funcionalidades</a></b>
|
<b><a href="#installation">Instalação</a></b>
|
<b><a href="#roadmap">Roadmap</a></b>
|
<b><a href="#estrutura">Estrutura</a></b>
<b><a href="#installation">Instalação</a></b>
|
<b><a href="#suporte">Suporte</a></b>
|
<b><a href="#creditos">Créditos</a></b>
|
Expand All @@ -27,6 +27,8 @@ This is a repository from Trustcode.

[![Build Status](https://travis-ci.org/Trust-Code/odoo-brasil.svg?branch=10.0)](https://travis-ci.org/Trust-Code/odoo-brasil)
[![Coverage Status](https://coveralls.io/repos/github/Trust-Code/odoo-brasil/badge.svg?branch=10.0)](https://coveralls.io/github/Trust-Code/odoo-brasil?branch=10.0)
[![Code Climate](https://codeclimate.com/github/Trust-Code/odoo-brasil/badges/gpa.svg)](https://codeclimate.com/github/Trust-Code/odoo-brasil)
[![Licence](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)



Expand All @@ -40,18 +42,28 @@ Este repositório adapta o Odoo 10 para ser usado no Brasil

* Cálculo de impostos (ICMS, IPI, PIS, COFINS, ISSQN, DIFAL, FCP, Simples Nacional)
* Emissão de NFe
* Emissão de Boletos
* Emissão de NFSe Paulistana
* Emissão de Boletos (boletos homologados: Itaú, Bradesco, Sicoob, Cecred)
* Integração Bancária (cnab240)
* Folha de Pagamento
* Importação de extratos bancários
* Importação de extratos bancários (OFX)
* Contas a pagar e Receber
* Integração Cielo
* Integração Correios

<p align="right"><a href="#top">:arrow_up:</a></p>

## Roadmap

* Importação de XML
* Integração com Manifesto de destinatário
* Retenções de Impostos (INSS, IRRF, PIS, COFINS, CSLL, ISS)

<p align="right"><a href="#top">:arrow_up:</a></p>

## Installation

TODO
<a href="https://github.com/Trust-Code/Tutorial-Instalacao">Tutorial de instalação para desenvolvimento</a>

<p align="right"><a href="#top">:arrow_up:</a></p>

Expand All @@ -61,19 +73,15 @@ TODO

<p align="right"><a href="#top">:arrow_up:</a></p>

## Updating

## Setup

### Initialize
### Suporte

TODO
Contribua com o desenvolvimento do projeto.

<p align="right"><a href="#top">:arrow_up:</a></p>
Seja nosso contribuidor mensal contratando nosso suporte especializado.

## Structure
Para efetuar doações, use os links abaixo:

TODO

<p align="right"><a href="#top">:arrow_up:</a></p>

Expand All @@ -83,15 +91,15 @@ TODO

This repository is built on top of the great work made by those people.

<a href="#structure">OCA/l10n-brazil</a>
<a href="https://github.com/OCA/l10n-brazil">OCA/l10n-brazil</a>

Contributors

<a href="#structure">OCA/l10n-brazil</a>
<a href="https://github.com/OCA/l10n-brazil/graphs/contributors">OCA/l10n-brazil</a>

<p align="right"><a href="#top">:arrow_up:</a></p>

## Licence [![Licence](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)
## Licence

Este projeto é open source sob licença AGPL v3 http://www.gnu.org/licenses/agpl-3.0.html

Expand Down
2 changes: 2 additions & 0 deletions br_account/models/account_fiscal_position.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ class AccountFiscalPosition(models.Model):
account_id = fields.Many2one(
'account.account', string="Conta Contábil",
help="Conta Contábil a ser utilizada na fatura.")
fiscal_observation_ids = fields.Many2many(
'br_account.fiscal.observation', string="Observações Fiscais")
note = fields.Text(u'Observações')

icms_tax_rule_ids = fields.One2many(
Expand Down
6 changes: 6 additions & 0 deletions br_account/models/account_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ def _default_fiscal_document_serie(self):
'br_account.document.related', 'invoice_id',
'Documento Fiscal Relacionado', readonly=True,
states={'draft': [('readonly', False)]})
fiscal_observation_ids = fields.Many2many(
'br_account.fiscal.observation', string="Observações Fiscais",
readonly=True, states={'draft': [('readonly', False)]})
fiscal_comment = fields.Text(
u'Observação Fiscal', readonly=True,
states={'draft': [('readonly', False)]})
Expand Down Expand Up @@ -205,6 +208,9 @@ def _onchange_br_account_fiscal_position_id(self):
self.account_id = self.fiscal_position_id.account_id.id
if self.fiscal_position_id and self.fiscal_position_id.journal_id:
self.journal_id = self.fiscal_position_id.journal_id
if self.fiscal_position_id.fiscal_observation_ids:
self.fiscal_observation_ids |= \
self.fiscal_position_id.fiscal_observation_ids

@api.model
def invoice_line_move_line_get(self):
Expand Down
11 changes: 11 additions & 0 deletions br_account/models/br_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,14 @@ def onchange_invoice_related_id(self):
self.date = False
self.fiscal_document_id = False
self.inscr_est = False


class BrAccountFiscalObservation(models.Model):
_name = 'br_account.fiscal.observation'
_description = u'Observação Fiscal'
_order = 'sequence'

sequence = fields.Integer(u'Sequência', default=1, required=True)
name = fields.Text(u'Descrição', required=True)
document_id = fields.Many2one(
'br_account.fiscal.document', string="Documento Fiscal")
3 changes: 3 additions & 0 deletions br_account/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"access_br_account_import_declaration_line","access_br_account_import_declaration_line","model_br_account_import_declaration_line","account.group_account_manager",1,1,1,1
"access_br_account_import_declaration","access_br_account_import_declaration","model_br_account_import_declaration","account.group_account_manager",1,1,1,1
"access_br_account_document_related","access_br_account_document_related","model_br_account_document_related","account.group_account_manager",1,1,1,1
"access_br_account_fiscal_observation","access_br_account_fiscal_observation","model_br_account_fiscal_observation","account.group_account_manager",1,1,1,1
"br_account_fiscal_document_user","br_account.fiscal.document","model_br_account_fiscal_document","account.group_account_user",1,0,0,0
"br_account_document_serie_user","br_account.document.serie","model_br_account_document_serie","account.group_account_user",1,0,0,0
"br_account_cnae_user","br_account.cnae","model_br_account_cnae","account.group_account_user",1,0,0,0
Expand All @@ -19,6 +20,7 @@
"access_br_account_import_declaration_line_user","access_br_account_import_declaration_line","model_br_account_import_declaration_line","account.group_account_user",1,0,0,0
"access_br_account_import_declaration_user","access_br_account_import_declaration","model_br_account_import_declaration","account.group_account_user",1,0,0,0
"access_br_account_document_related_user","access_br_account_document_related","model_br_account_document_related","account.group_account_user",1,0,0,0
"access_br_account_fiscal_observation_user","access_br_account_fiscal_observation","model_br_account_fiscal_observation","account.group_account_user",1,0,0,0
"br_account_fiscal_document_invoice","br_account.fiscal.document","model_br_account_fiscal_document","account.group_account_invoice",1,0,0,0
"br_account_document_serie_invoice","br_account.document.serie","model_br_account_document_serie","account.group_account_invoice",1,0,0,0
"br_account_cnae_invoice","br_account.cnae","model_br_account_cnae","account.group_account_invoice",1,0,0,0
Expand All @@ -29,3 +31,4 @@
"access_br_account_import_declaration_line_invoice","access_br_account_import_declaration_line","model_br_account_import_declaration_line","account.group_account_invoice",1,0,0,0
"access_br_account_import_declaration_invoice","access_br_account_import_declaration","model_br_account_import_declaration","account.group_account_invoice",1,0,0,0
"access_br_account_document_related_user_invoice","access_br_account_document_related","model_br_account_document_related","account.group_account_invoice",1,0,0,0
"access_br_account_fiscal_observation_invoice","access_br_account_fiscal_observation","model_br_account_fiscal_observation","account.group_account_invoice",1,0,0,0
7 changes: 7 additions & 0 deletions br_account/views/account_fiscal_position_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,13 @@
<field name="account_id" placeholder="Esta conta vai ser usada para faturamento" />
</group>
</xpath>
<xpath expr="//page[@name='account_mapping']" position="after">
<page name="notes" string="Observações Fiscais">
<group string="Observações">
<field name="fiscal_observation_ids" nolabel="1" />
</group>
</page>
</xpath>
<field name="vat_required" position="attributes" >
<attribute name="invisible">1</attribute>
</field>
Expand Down
6 changes: 6 additions & 0 deletions br_account/views/account_invoice_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@
</form>
</field>
</group>
<group string="Observações Fiscais">
<field name="fiscal_observation_ids" nolabel="1"/>
</group>
<group string="Observações">
<field name="comment" nolabel="1"/>
</group>
Expand Down Expand Up @@ -151,6 +154,9 @@
</page>
</xpath>
<xpath expr="//notebook/page[last()]/group" position="after">
<group string="Observações Fiscais">
<field name="fiscal_observation_ids" nolabel="1"/>
</group>
<group string="Observações">
<field name="comment" nolabel="1"/>
</group>
Expand Down
25 changes: 25 additions & 0 deletions br_account/views/br_account_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,31 @@
</field>
</record>

<record id="br_account_fiscal_observation_form" model="ir.ui.view">
<field name="name">br_account.fiscal.observation.form</field>
<field name="model">br_account.fiscal.observation</field>
<field name="arch" type="xml">
<form string="Observações Fiscais">
<group>
<field name="name" placeholder="Utilize ${invoice.origin} para campos dinâmicos" />
<field name="document_id"/>
</group>
</form>
</field>
</record>

<record id="br_account_fiscal_observation_tree" model="ir.ui.view">
<field name="name">br_account.fiscal.observation.tree</field>
<field name="model">br_account.fiscal.observation</field>
<field name="arch" type="xml">
<tree string="Observações Fiscais">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="document_id"/>
</tree>
</field>
</record>

<record id="br_account_cfop_action" model="ir.actions.act_window">
<field name="name">CFOP</field>
<field name="type">ir.actions.act_window</field>
Expand Down
59 changes: 56 additions & 3 deletions br_account_einvoice/models/invoice_eletronic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
# © 2016 Danimar Ribeiro <danimaribeiro@gmail.com>, Trustcode
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import re
import base64
import copy
from datetime import datetime
import re
import dateutil.relativedelta as relativedelta
from odoo.exceptions import UserError
from odoo import api, fields, models
from odoo import api, fields, models, tools
from odoo.addons import decimal_precision as dp
from odoo.addons.br_account.models.cst import CST_ICMS
from odoo.addons.br_account.models.cst import CSOSN_SIMPLES
Expand Down Expand Up @@ -291,6 +293,57 @@ def _hook_validation(self):
eletr.product_id.name))
return errors

@api.multi
def _compute_legal_information(self):
from jinja2.sandbox import SandboxedEnvironment
mako_template_env = SandboxedEnvironment(
block_start_string="<%",
block_end_string="%>",
variable_start_string="${",
variable_end_string="}",
comment_start_string="<%doc>",
comment_end_string="</%doc>",
line_statement_prefix="%",
line_comment_prefix="##",
trim_blocks=True, # do not output newline after
autoescape=True, # XML/HTML automatic escaping
)
mako_template_env.globals.update({
'str': str,
'datetime': datetime,
'len': len,
'abs': abs,
'min': min,
'max': max,
'sum': sum,
'filter': filter,
'reduce': reduce,
'map': map,
'round': round,
'cmp': cmp,
# dateutil.relativedelta is an old-style class and cannot be
# instanciated wihtin a jinja2 expression, so a lambda "proxy" is
# is needed, apparently.
'relativedelta': lambda *a, **kw: relativedelta.relativedelta(
*a, **kw),
})
mako_safe_env = copy.copy(mako_template_env)
mako_safe_env.autoescape = False

result = ''
for item in self.invoice_id.fiscal_observation_ids:
if item.document_id and item.document_id.code != self.model:
continue
template = mako_safe_env.from_string(tools.ustr(item.name))
variables = {
'user': self.env.user,
'ctx': self._context,
'invoice': self.invoice_id,
}
render_result = template.render(variables)
result += render_result + '\n'
self.informacoes_legais = result

@api.multi
def validate_invoice(self):
self.ensure_one()
Expand All @@ -302,7 +355,7 @@ def validate_invoice(self):

@api.multi
def action_post_validate(self):
pass
self._compute_legal_information()

@api.multi
def _prepare_eletronic_invoice_item(self, item, invoice):
Expand Down
1 change: 1 addition & 0 deletions br_account_payment/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
'website': 'http://www.trustcode.com.br',
'contributors': [
'Danimar Ribeiro <danimaribeiro@gmail.com>',
'Carlos Alberto Cipriano Korovsky <carlos.korovsky@uktech.com.br',
],
'depends': [
'br_account',
Expand Down
15 changes: 15 additions & 0 deletions br_account_payment/models/account_journal.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,18 @@ class AccountJournal(models.Model):
related='bank_account_id.partner_id')
bank_currency_id = fields.Many2one('res.currency', string="Bank Account",
related='bank_account_id.currency_id')

def set_bank_account(self, acc_number, bank_id=None):
self.ensure_one()
vals = {
'acc_number': acc_number,
'acc_number_dig': self.acc_number_dig,
'bra_number': self.bank_agency_number,
'bra_number_dig': self.bank_agency_dig,
'bank_id': bank_id,
'company_id': self.company_id.id,
'currency_id': self.currency_id.id,
'partner_id': self.company_id.partner_id.id,
}
super(AccountJournal, self).set_bank_account(acc_number, bank_id)
self.bank_account_id.write(vals)
23 changes: 12 additions & 11 deletions br_bank_statement_import/models/account_bank_statement_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,18 @@ def _parse_ofx(self, data_file):
transacoes = []
total = 0.0
index = 1 # Some banks don't use a unique transaction id, we make one
for transacao in ofx.account.statement.transactions:
transacoes.append({
'date': transacao.date,
'name': transacao.payee + (
transacao.memo and ': ' + transacao.memo or ''),
'ref': transacao.id,
'amount': transacao.amount,
'unique_import_id': "%s-%s" % (transacao.id, index)
})
total += float(transacao.amount)
index += 1
for account in ofx.accounts:
for transacao in account.statement.transactions:
transacoes.append({
'date': transacao.date,
'name': transacao.payee + (
transacao.memo and ': ' + transacao.memo or ''),
'ref': transacao.id,
'amount': transacao.amount,
'unique_import_id': "%s-%s" % (transacao.id, index)
})
total += float(transacao.amount)
index += 1
# Really? Still using Brazilian Cruzeiros :/
if ofx.account.statement.currency.upper() == "BRC":
ofx.account.statement.currency = "BRL"
Expand Down
6 changes: 5 additions & 1 deletion br_base/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
{
'name': 'Odoo Brasil - Módulo Base',
'description': 'Brazilian Localization Base',
'version': '10.0.1.0.0',
'category': 'Localisation',
'license': 'AGPL-3',
'author': 'Akretion, OpenERP Brasil',
'website': 'http://www.trustcode.com,br',
'version': '10.0.1.0.0',
'contributors': [
'Danimar Ribeiro <danimaribeiro@gmail.com>',
'Carlos Alberto Cipriano Korovsky <carlos.korovsky@uktech.com.br',
],
'depends': [
'base', 'web',
],
Expand Down

0 comments on commit 32f6552

Please sign in to comment.