Skip to content

Commit

Permalink
[DONE] - Finalizado implementação da nota carioca
Browse files Browse the repository at this point in the history
  • Loading branch information
danimaribeiro committed Mar 28, 2018
1 parent 08654e3 commit 3bece10
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 112 deletions.
1 change: 1 addition & 0 deletions br_nfse_carioca/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
],
'data': [
'views/br_account_service.xml',
'views/res_company.xml',
'reports/danfpse.xml',
],
'application': True,
Expand Down
1 change: 1 addition & 0 deletions br_nfse_carioca/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
from . import account_invoice
from . import invoice_eletronic
from . import br_account_service
from . import res_company
6 changes: 2 additions & 4 deletions br_nfse_carioca/models/account_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ class AccountInvoice(models.Model):
_inherit = 'account.invoice'

def _return_pdf_invoice(self, doc):
if self.service_document_id.code == '012': # Floripa
return 'br_nfse_florianopolis.report_br_nfse_danfpse'
# TODO Implementar ou não?
# PS: ITS DONE MADAFAKA
if self.service_document_id.code == '013': # Nota carioca
return 'br_nfse_carioca.report_br_nfse_danfe_carioca'
return super(AccountInvoice, self)._return_pdf_invoice(doc)

def _prepare_edoc_item_vals(self, line):
Expand Down
13 changes: 7 additions & 6 deletions br_nfse_carioca/models/invoice_eletronic.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from datetime import datetime
from odoo import api, fields, models
from odoo.tools.safe_eval import safe_eval
from odoo.exceptions import UserError

from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT as DTFT

Expand Down Expand Up @@ -119,7 +120,7 @@ def _prepare_eletronic_invoice_values(self):
'tipo_rps': '1',
'data_emissao': dt_emissao,
'natureza_operacao': '1', # Tributada no municipio
'regime_tributacao': '2', # Estimativa
'regime_tributacao': self.company_id.regime_tributacao or '',
'optante_simples': # 1 - Sim, 2 - Não
'2' if self.company_id.fiscal_type == '3' else '1',
'incentivador_cultural': '2', # 2 - Não
Expand All @@ -138,7 +139,7 @@ def _prepare_eletronic_invoice_values(self):
'aliquota_issqn': str("%.4f" % (
self.eletronic_item_ids[0].issqn_aliquota / 100)),
'valor_liquido_nfse': str("%.2f" % self.valor_final),
'codigo_servico': str("%.2f" % float(codigo_servico)),
'codigo_servico': re.sub('[^0-9]', '', codigo_servico),
'codigo_tributacao_municipio':
self.eletronic_item_ids[0].codigo_tributacao_municipio,
# '01.07.00 / 00010700',
Expand Down Expand Up @@ -175,7 +176,7 @@ def _find_attachment_ids_email(self):

danfe_report = self.env['ir.actions.report'].search(
[('report_name', '=',
'br_nfse_florianopolis.main_template_br_nfse_danfpse')])
'br_nfse_carioca.main_template_br_nfse_carioca')])
report_service = danfe_report.xml_id
danfse, dummy = self.env.ref(report_service).render_qweb_pdf([self.id])
report_name = safe_eval(danfe_report.print_report_name,
Expand Down Expand Up @@ -285,12 +286,12 @@ def action_cancel_document(self, context=None, justificativa=None):
'cidade': '%s%s' % (city_prestador.state_id.ibge_code,
city_prestador.ibge_code),
'numero_nfse': self.numero_nfse,
'codigo_cancelamento': '1',
'senha': self.company_id.senha_ambiente_nfse
'codigo_cancelamento': '1', # Erro na emissão
}
cancel = cancelar_nfse(
certificado, cancelamento=canc, ambiente=self.ambiente)
retorno = cancel['object'].Body.CancelarNfseResponse.CancelarNfseResult

retorno = cancel['object']
if "Cancelamento" in dir(retorno):
self.state = 'cancel'
self.codigo_retorno = '100'
Expand Down
18 changes: 18 additions & 0 deletions br_nfse_carioca/models/res_company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# © 2018 Danimar Ribeiro <danimaribeiro@gmail.com>, Trustcode
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).


from odoo import fields, models


class ResCompany(models.Model):
_inherit = 'res.company'

regime_tributacao = fields.Selection(
[('1', 'Microempresa Municipal'),
('2', 'Estimativa'),
('3', 'Sociedade de profissionais'),
('4', 'Cooperativa'),
('5', 'Microempresário individual (MEI)'),
('6', 'Microempresário e empresa de pequeno porte')],
string="Regime Tributação")
119 changes: 17 additions & 102 deletions br_nfse_carioca/reports/danfpse.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
<div class="page">
<div class="row" style="border: 1px solid black;">
<div class="col-xs-2">
<img src="/br_nfse_carioca/static/img/nota-carioca.jpg" alt="Logo Nota Carioca"
style="max-height:80px; margin-top:4px; margin-left:10px;" />
<img src="/br_nfse_carioca/static/img/nota-carioca.png" alt="Logo Nota Carioca"
style="max-height:120px; margin-top:4px; margin-left:10px;" />
</div>
<div class="col-xs-7" style="padding:0px;text-align:center;font-size:18px;">
PREFEITURA DA CIDADE DO RIO DE JANEIRO
Expand All @@ -58,9 +58,9 @@
</t>
</div>
<div class="col-xs-3" style="padding:0px;">
<div style="border: 1px solid black; padding: 2px;">
<div style="border: 1px solid black; padding: 2px;text-align:center;">
<t t-if="doc.state == 'done'">
<span style="font-size:9px;">Número NFSe</span>
<span style="font-size:9px;">Número da Nota</span>
<br />
<strong t-field="doc.numero_nfse"></strong>
</t>
Expand All @@ -70,13 +70,13 @@
<strong t-field="doc.numero"></strong>
</t>
</div>
<div style="border: 1px solid black; padding: 2px;">
<span style="font-size:9px;">Data de Emissão</span>
<div style="border: 1px solid black; padding: 2px;text-align:center;">
<span style="font-size:9px;">Data e Hora de Emissão</span>
<br />
<strong t-field="doc.data_emissao"></strong>
</div>
<t t-if="doc.state == 'done'">
<div style="border: 1px solid black; padding: 2px;">
<div style="border: 1px solid black; padding: 2px;text-align:center;">
<span style="font-size:8px;">Código de verificação</span>
<br />
<strong t-field="doc.verify_code"></strong>
Expand Down Expand Up @@ -161,20 +161,6 @@
<strong t-field="doc.partner_id.email"></strong>
</div>
</div>
<div class="row" style="border: 1px solid black;padding: 0 0 5px 5px;">
<div class="col-xs-12" style="text-align:center;">
<strong>INTERMEDIÁRIO DE SERVIÇOS</strong>
<br />
</div>
<div class="col-xs-4">
CPF/CNPJ:
<strong> ---- </strong>
</div>
<div class="col-xs-8">
Nome/Razão Social:
<strong> ---- </strong>
</div>
</div>
<div class="row" style="border: 1px solid black;padding: 0 0 5px 5px; min-height:350px;">
<div class="col-xs-12" style="text-align:center;">
<strong >DISCRIMINAÇÃO DOS SERVIÇOS</strong>
Expand All @@ -189,70 +175,13 @@
</div>
</div>
<div class="row" style="border: 1px solid black;padding: 0 0 5px 5px;">
<div class="col-xs-12" style="text-align:center;">
<div class="col-xs-12" style="text-align:center; font-size: 16px;">
<strong>VALOR TOTAL DA NOTA = </strong>
<strong t-field="doc.valor_final"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
<br />
</div>
</div>
<div class="row" style="border: 1px solid black; padding:0 0 5px 5px;">
<div class="col-xs-2" style="width:20%;text-align:center;">
INSS(<span />%):
<br />
<t t-if="doc.company_id.fiscal_type == '3'">
<strong t-field="doc.valor_retencao_inss"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
</t>
<t t-if="doc.company_id.fiscal_type != '3'">
<strong>-</strong>
</t>
</div>
<div class="col-xs-2" style="width:20%;text-align:center;">
IR(<span />%):
<br />
<t t-if="doc.company_id.fiscal_type == '3'">
<strong t-field="doc.valor_retencao_irrf"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
</t>
<t t-if="doc.company_id.fiscal_type != '3'">
<strong>-</strong>
</t>
</div>
<div class="col-xs-2" style="width:20%;text-align:center;">
CSLL(<span />%):
<br />
<t t-if="doc.company_id.fiscal_type == '3'">
<strong t-field="doc.valor_retencao_csll"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
</t>
<t t-if="doc.company_id.fiscal_type != '3'">
<strong>-</strong>
</t>
</div>
<div class="col-xs-2" style="width:20%;text-align:center;">
COFINS(<span t-field="doc.eletronic_item_ids[0].cofins_aliquota" />%):
<br />
<t t-if="doc.company_id.fiscal_type == '3'">
<strong t-field="doc.valor_cofins_servicos"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
</t>
<t t-if="doc.company_id.fiscal_type != '3'">
<strong>-</strong>
</t>
</div>
<div class="col-xs-2" style="width:20%;text-align:center;border">
PIS(<span t-field="doc.eletronic_item_ids[0].pis_aliquota" />%):
<br />
<t t-if="doc.company_id.fiscal_type == '3'">
<strong t-field="doc.valor_pis_servicos"
t-options='{"widget": "monetary", "display_currency": doc.currency_id }'></strong>
</t>
<t t-if="doc.company_id.fiscal_type != '3'">
<strong>-</strong>
</t>
</div>
</div>
<div class="row" style="border: 1px solid black; padding:0 0 5px 5px;">
<div class="col-xs-12">
Código do serviço:
Expand Down Expand Up @@ -305,32 +234,18 @@
<strong>0,00</strong>
</div>
</div>
<div class="row" style="border: 1px solid black;padding:0 0 5px 5px;">
<div class="col-xs-4" style="text-align:center;">
Município de Prestação do Serviço:
<br />
<strong>-</strong>
</div>
<div class="col-xs-4" style="text-align:center;">
Número Inscrição da Obra:
<br />
<strong>-</strong>
</div>
<div class="col-xs-4" style="text-align:center;">
Valor Aproximado dos Tributos / Fonte
<br />
<strong>-</strong>
</div>
</div>
<div class="row"
style="border: 1px solid black;min-height:170px; padding:0 0 5px 5px;">
<div style="text-align:center"><b>Outras informações</b></div>
<div style="float:left; width:50%;">
(1) Esta NFS-e foi emitida com respaldo na Lei nº 14.097/2005;
</div>
<div style="float:left; width:50%;">
(2) Esta NFS-e substitui o RPS Nº <span t-field="doc.numero" /> Série API, emitido em <span t-field="doc.data_emissao" t-options='{"format": "dd/MM/yyyy"}' />
</div>
<ul style="list-style-type: square;">
<li>Esta NFS-e foi emitida com respaldo na Lei nº 5.098 de 15/10/2009 e no Decreto nº 32.250 de 11/05/2010</li>
<li>PROCON-RJ: Av. Rio Branco nº 25, 5º andar, tel 151: www.procon.rj.gov.br</li>
<li>ISS devido deve ser recolhido por meio de Documento de Arrecadação do Simples Nacional (DAS)</li>
<t t-if="doc.company_id.fiscal_type != '3'">
<li>Documento emitido por ME ou EPP optantee pelo Simples Nacional. Não gera direito a crédito fiscal de IPI.</li>
</t>
<li>Esta NFS-e não gera crédito</li>
</ul>
<br />
<span t-field="doc.informacoes_legais"></span>
</div>
Expand Down
Binary file removed br_nfse_carioca/static/img/nota-carioca.jpg
Binary file not shown.
Binary file added br_nfse_carioca/static/img/nota-carioca.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions br_nfse_carioca/views/res_company.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_br_nfse_carioca_res_company_form" model="ir.ui.view">
<field name="name">br_nfse_carioca.res.company.form</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="br_account_einvoice.view_br_account_einvoice_res_company_form"/>
<field name="arch" type="xml">
<page name="integracao_nfse" position="inside">
<group string="Nota Carioca">
<field name="regime_tributacao" />
</group>
</page>
</field>
</record>
</odoo>

0 comments on commit 3bece10

Please sign in to comment.