Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adiciona testes para Simples Nacional #190

Merged
merged 6 commits into from
Jun 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions pynfe/processamento/serializacao.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True):
def _serializar_cliente(self, cliente, modelo, tag_raiz='dest', retorna_string=True):
raiz = etree.Element(tag_raiz)

# Dados do cliente (distinatario)
# Dados do cliente (destinatário)
etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento)
if not self._so_cpf:
if cliente.razao_social:
Expand Down Expand Up @@ -547,8 +547,8 @@ def _serializar_imposto_icms(self, produto_servico, tag_raiz='imposto', retorna_
icms_item = etree.SubElement(icms, 'ICMSSN'+produto_servico.icms_modalidade)
etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem)
etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = str(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = '{:.2f}'.format(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)

# 102=Tributada pelo Simples Nacional sem permissão de crédito
# 103=Isenção do ICMS no Simples Nacional para faixa de receita bruta
Expand All @@ -563,7 +563,10 @@ def _serializar_imposto_icms(self, produto_servico, tag_raiz='imposto', retorna_
# 202=Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária
# 203=Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária
elif produto_servico.icms_modalidade in ('201', '202', '203'):
icms_item = etree.SubElement(icms, 'ICMSSN'+produto_servico.icms_modalidade)
if produto_servico.icms_modalidade == '201':
icms_item = etree.SubElement(icms, 'ICMSSN201')
elif produto_servico.icms_modalidade in ['202', '203']:
icms_item = etree.SubElement(icms, 'ICMSSN202')
etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem)
etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn

Expand All @@ -580,8 +583,8 @@ def _serializar_imposto_icms(self, produto_servico, tag_raiz='imposto', retorna_
etree.SubElement(icms_item, 'vFCPST').text = '{:.2f}'.format(produto_servico.fcp_st_valor or 0)

if produto_servico.icms_modalidade == '201':
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = str(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = '{:.2f}'.format(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)

# 500=ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação
elif produto_servico.icms_modalidade == '500':
Expand Down Expand Up @@ -616,8 +619,8 @@ def _serializar_imposto_icms(self, produto_servico, tag_raiz='imposto', retorna_
etree.SubElement(icms_item, 'vFCPST').text = '{:.2f}'.format(produto_servico.fcp_st_valor or 0)

if produto_servico.icms_aliquota > 0:
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = str(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
etree.SubElement(icms_item, 'vCredICMSSN').text = '{:.2f}'.format(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)

else:
raise NotImplementedError
Expand Down
6 changes: 3 additions & 3 deletions tests/test_nfce_serializacao.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def preenche_emitente(self):
razao_social='NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
nome_fantasia='Nome Fantasia da Empresa',
cnpj='99999999000199', # cnpj apenas números
codigo_de_regime_tributario='1', # 1 para simples nacional ou 3 para normal
codigo_de_regime_tributario='3', # 1 para simples nacional ou 3 para normal
inscricao_estadual='9999999999', # numero de IE da empresa
inscricao_municipal='12345',
cnae_fiscal='9999999', # cnae apenas números
Expand Down Expand Up @@ -133,7 +133,7 @@ def preenche_notafiscal_produto(self):
ind_total=1,
icms_modalidade='00',
icms_origem=0,
icms_csosn='400',
icms_csosn='',
pis_modalidade='51',
cofins_modalidade='51',
pis_valor_base_calculo=Decimal('0.00'),
Expand Down Expand Up @@ -222,7 +222,7 @@ def dados_emitente_test(self):
self.assertEqual(razao_social, 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL')
self.assertEqual(nome_fantasia, 'Nome Fantasia da Empresa')
self.assertEqual(cnpj, '99999999000199')
self.assertEqual(codigo_de_regime_tributario, '1')
self.assertEqual(codigo_de_regime_tributario, '3')
self.assertEqual(inscricao_estadual, '9999999999')
self.assertEqual(inscricao_municipal, '12345')
self.assertEqual(cnae_fiscal, '9999999')
Expand Down
Loading