Skip to content

Commit 2f12e17

Browse files
authored
Merge pull request #190 from leogregianin/main
Adiciona testes para Simples Nacional
2 parents d4aab02 + 9f81c8b commit 2f12e17

26 files changed

+3977
-49
lines changed

pynfe/processamento/serializacao.py

+11-8
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True):
139139
def _serializar_cliente(self, cliente, modelo, tag_raiz='dest', retorna_string=True):
140140
raiz = etree.Element(tag_raiz)
141141

142-
# Dados do cliente (distinatario)
142+
# Dados do cliente (destinatário)
143143
etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento)
144144
if not self._so_cpf:
145145
if cliente.razao_social:
@@ -547,8 +547,8 @@ def _serializar_imposto_icms(self, produto_servico, tag_raiz='imposto', retorna_
547547
icms_item = etree.SubElement(icms, 'ICMSSN'+produto_servico.icms_modalidade)
548548
etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem)
549549
etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn
550-
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
551-
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)
550+
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
551+
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)
552552

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

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

582585
if produto_servico.icms_modalidade == '201':
583-
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
584-
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)
586+
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
587+
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)
585588

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

618621
if produto_servico.icms_aliquota > 0:
619-
etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
620-
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)
622+
etree.SubElement(icms_item, 'pCredSN').text = '{:.2f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional).
623+
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)
621624

622625
else:
623626
raise NotImplementedError

tests/test_nfce_serializacao.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def preenche_emitente(self):
5353
razao_social='NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
5454
nome_fantasia='Nome Fantasia da Empresa',
5555
cnpj='99999999000199', # cnpj apenas números
56-
codigo_de_regime_tributario='1', # 1 para simples nacional ou 3 para normal
56+
codigo_de_regime_tributario='3', # 1 para simples nacional ou 3 para normal
5757
inscricao_estadual='9999999999', # numero de IE da empresa
5858
inscricao_municipal='12345',
5959
cnae_fiscal='9999999', # cnae apenas números
@@ -133,7 +133,7 @@ def preenche_notafiscal_produto(self):
133133
ind_total=1,
134134
icms_modalidade='00',
135135
icms_origem=0,
136-
icms_csosn='400',
136+
icms_csosn='',
137137
pis_modalidade='51',
138138
cofins_modalidade='51',
139139
pis_valor_base_calculo=Decimal('0.00'),
@@ -222,7 +222,7 @@ def dados_emitente_test(self):
222222
self.assertEqual(razao_social, 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL')
223223
self.assertEqual(nome_fantasia, 'Nome Fantasia da Empresa')
224224
self.assertEqual(cnpj, '99999999000199')
225-
self.assertEqual(codigo_de_regime_tributario, '1')
225+
self.assertEqual(codigo_de_regime_tributario, '3')
226226
self.assertEqual(inscricao_estadual, '9999999999')
227227
self.assertEqual(inscricao_municipal, '12345')
228228
self.assertEqual(cnae_fiscal, '9999999')

0 commit comments

Comments
 (0)