Skip to content

Commit

Permalink
Merge pull request #327 from nuvelbr/master
Browse files Browse the repository at this point in the history
Adiciona valores faltantes do ICMS ST 60
  • Loading branch information
juniortada authored Feb 25, 2024
2 parents dcce8cb + a537041 commit 9f65bc2
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 27 deletions.
40 changes: 23 additions & 17 deletions pynfe/entidades/notafiscal.py
Original file line number Diff line number Diff line change
Expand Up @@ -533,21 +533,18 @@ def identificador_unico(self):
"tpEmis": str(self.forma_emissao),
"cNF": self._codigo_numerico_aleatorio(),
}
return (
"NFe%(uf)s%(ano)s%(mes)s%(cnpj)s%(mod)s%(serie)s%(nNF)s%(tpEmis)s%(cNF)s%(cDV)s"
% {
"uf": CODIGOS_ESTADOS[self.uf],
"ano": self.data_emissao.strftime("%y"),
"mes": self.data_emissao.strftime("%m"),
"cnpj": so_numeros(self.emitente.cnpj).zfill(14),
"mod": self.modelo,
"serie": str(self.serie).zfill(3),
"nNF": str(self.numero_nf).zfill(9),
"tpEmis": str(self.forma_emissao),
"cNF": str(self.codigo_numerico_aleatorio),
"cDV": self._dv_codigo_numerico(key),
}
)
return "NFe%(uf)s%(ano)s%(mes)s%(cnpj)s%(mod)s%(serie)s%(nNF)s%(tpEmis)s%(cNF)s%(cDV)s" % {
"uf": CODIGOS_ESTADOS[self.uf],
"ano": self.data_emissao.strftime("%y"),
"mes": self.data_emissao.strftime("%m"),
"cnpj": so_numeros(self.emitente.cnpj).zfill(14),
"mod": self.modelo,
"serie": str(self.serie).zfill(3),
"nNF": str(self.numero_nf).zfill(9),
"tpEmis": str(self.forma_emissao),
"cNF": str(self.codigo_numerico_aleatorio),
"cDV": self._dv_codigo_numerico(key),
}


class NotaFiscalReferenciada(Entidade):
Expand Down Expand Up @@ -705,7 +702,6 @@ class NotaFiscalProduto(Entidade):
# Percentual do índice de mistura do Biodiesel (B100) no Óleo Diesel B
comb_p_bio = Decimal()


# - Tributos
# - ICMS
# - Situacao tributaria (obrigatorio - seleciona de lista) - ICMS_TIPOS_TRIBUTACAO
Expand Down Expand Up @@ -769,7 +765,17 @@ class NotaFiscalProduto(Entidade):
icms_inter_destino_valor = Decimal()
icms_inter_remetente_valor = Decimal()

# - ICMS monofásico
# - ICMS ST Retido
# - Valor da base de calculo
icms_st_ret_base_calculo = Decimal()

# - Aliquota
icms_st_ret_aliquota = Decimal()

# - Valor
icms_st_ret_valor = Decimal()

# - ICMS monofásico
icms_ad_rem_icms = Decimal()
icms_v_icms_mono = Decimal()
icms_q_bc_mono = Decimal()
Expand Down
6 changes: 3 additions & 3 deletions pynfe/processamento/serializacao.py
Original file line number Diff line number Diff line change
Expand Up @@ -736,11 +736,11 @@ def _serializar_imposto_icms(
icms_item = etree.SubElement(icms, "ICMS" + produto_servico.icms_modalidade)
etree.SubElement(icms_item, "orig").text = str(produto_servico.icms_origem)
etree.SubElement(icms_item, "CST").text = "60"
etree.SubElement(icms_item, "vBCSTRet").text = "0"
etree.SubElement(icms_item, "pST").text = "{:.4f}".format(0)
etree.SubElement(icms_item, "vBCSTRet").text = "{:.2f}".format(produto_servico.icms_st_ret_base_calculo or 0)
etree.SubElement(icms_item, "pST").text = "{:.2f}".format(produto_servico.icms_st_ret_aliquota or 0)
etree.SubElement(
icms_item, "vICMSSTRet"
).text = "0" # Informar o valor do ICMS ST retido na UF remetente
).text = "{:.2f}".format(produto_servico.icms_st_ret_valor or 0)

if produto_servico.fcp_st_valor:
etree.SubElement(icms_item, "vBCFCPSTRet").text = "{:.2f}".format(
Expand Down
14 changes: 7 additions & 7 deletions tests/test_nfe_serializacao_cst_60.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
#!/usr/bin/env python
# *-* encoding: utf8 *-*

import datetime
import unittest
from decimal import Decimal

from pynfe.entidades.cliente import Cliente
from pynfe.entidades.emitente import Emitente
from pynfe.entidades.notafiscal import NotaFiscal
from pynfe.entidades.fonte_dados import _fonte_dados
from pynfe.processamento.serializacao import SerializacaoXML
from pynfe.entidades.notafiscal import NotaFiscal
from pynfe.processamento.assinatura import AssinaturaA1
from pynfe.processamento.serializacao import SerializacaoXML
from pynfe.processamento.validacao import Validacao
from pynfe.utils.flags import (
CODIGO_BRASIL,
Expand All @@ -18,8 +20,6 @@
XSD_NFE,
XSD_NFE_PROCESSADA,
)
from decimal import Decimal
import datetime


class SerializacaoNFeTestCase(unittest.TestCase):
Expand Down Expand Up @@ -266,9 +266,9 @@ def total_e_produto_cst60_test(self):

self.assertEqual(orig, "0")
self.assertEqual(CST, "60")
self.assertEqual(vBCSTRet, "0")
self.assertEqual(pST, "0.0000")
self.assertEqual(vICMSSTRet, "0")
self.assertEqual(vBCSTRet, "0.00")
self.assertEqual(pST, "0.00")
self.assertEqual(vICMSSTRet, "0.00")

# Informações Adicionais do produto
infAdProd = self.xml_assinado.xpath(
Expand Down

0 comments on commit 9f65bc2

Please sign in to comment.