Skip to content

Commit

Permalink
Merge pull request #190 from leogregianin/main
Browse files Browse the repository at this point in the history
Adiciona testes para Simples Nacional
  • Loading branch information
juniortada authored Jun 20, 2022
2 parents d4aab02 + 9f81c8b commit 2f12e17
Show file tree
Hide file tree
Showing 26 changed files with 3,977 additions and 49 deletions.
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

0 comments on commit 2f12e17

Please sign in to comment.