Skip to content

Commit

Permalink
Merge pull request #311 from orbitpdv/master
Browse files Browse the repository at this point in the history
CST 61 - ICMS Monofásico
  • Loading branch information
juniortada authored Dec 15, 2023
2 parents aaf0b1b + 6ce6176 commit 4cd1367
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 11 deletions.
11 changes: 11 additions & 0 deletions pynfe/entidades/notafiscal.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,12 @@ class NotaFiscal(Entidade):
# - Valor total do ICMS Interestadual para a UF do remetente
totais_icms_inter_remetente = Decimal()

# - Valor total do qBCMonoRet
totais_icms_q_bc_mono_ret = Decimal()

# - Valor total do vICMSMonoRet
totais_icms_v_icms_mono_ret = Decimal()

# Transporte
# - Modalidade do Frete (obrigatorio - seleciona de lista) - MODALIDADES_FRETE
# 0=Contratação do Frete por conta do Remetente (CIF);
Expand Down Expand Up @@ -415,6 +421,8 @@ def adicionar_produto_servico(self, **kwargs):
self.totais_fcp_st_ret += obj.fcp_st_ret_valor
self.totais_icms_inter_destino += obj.icms_inter_destino_valor
self.totais_icms_inter_remetente += obj.icms_inter_remetente_valor
self.totais_icms_q_bc_mono_ret += obj.icms_q_bc_mono_ret
self.totais_icms_v_icms_mono_ret += obj.icms_v_icms_mono_ret
# TODO calcular impostos aproximados
# self.totais_tributos_aproximado += obj.tributos

Expand Down Expand Up @@ -715,6 +723,9 @@ class NotaFiscalProduto(Entidade):
fcp_st_ret_valor = Decimal()
icms_inter_destino_valor = Decimal()
icms_inter_remetente_valor = Decimal()
icms_q_bc_mono_ret = Decimal()
icms_ad_rem_icms_ret = Decimal()
icms_v_icms_mono_ret = Decimal()

# - IPI
# - Situacao tributaria (seleciona de lista) - IPI_TIPOS_TRIBUTACAO
Expand Down
46 changes: 35 additions & 11 deletions pynfe/processamento/serializacao.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
# -*- coding: utf-8 -*-
from pynfe.entidades import NotaFiscal, Manifesto
import base64
import hashlib
import re
from datetime import datetime

from pynfe.entidades import Manifesto, NotaFiscal
from pynfe.utils import (
etree,
so_numeros,
obter_codigo_por_municipio,
obter_municipio_por_codigo,
obter_pais_por_codigo,
obter_codigo_por_municipio,
so_numeros,
)
from pynfe.utils.flags import (
CODIGOS_ESTADOS,
VERSAO_PADRAO,
VERSAO_MDFE,
NAMESPACE_NFE,
NAMESPACE_MDFE,
NAMESPACE_NFE,
NAMESPACE_SIG,
VERSAO_MDFE,
VERSAO_PADRAO,
VERSAO_QRCODE,
)
from pynfe.utils.webservices import NFCE, MDFE
import base64
import hashlib
from datetime import datetime
import re
from pynfe.utils.webservices import MDFE, NFCE


class Serializacao(object):
Expand Down Expand Up @@ -697,6 +698,21 @@ def _serializar_imposto_icms(
etree.SubElement(icms_item, "vFCPSTRet").text = "{:.2f}".format(
produto_servico.fcp_st_valor or 0
)

# 61=Tributação monofásica sobre combustíveis cobrada anteriormente
elif produto_servico.icms_modalidade == "61":
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 = "61"
etree.SubElement(icms_item, "qBCMonoRet").text = "{:.2f}".format(
produto_servico.icms_q_bc_mono_ret or 0
)
etree.SubElement(icms_item, "adRemICMSRet").text = "{:.2f}".format(
produto_servico.icms_ad_rem_icms_ret or 0
)
etree.SubElement(icms_item, "vICMSMonoRet").text = "{:.2f}".format(
produto_servico.icms_v_icms_mono_ret or 0
)

# 70=Com redução da BC e cobrança do ICMS por substituição tributária
elif produto_servico.icms_modalidade == "70":
Expand Down Expand Up @@ -1494,6 +1510,14 @@ def _serializar_nota_fiscal(
etree.SubElement(icms_total, "vICMSUFRemet").text = "{:.2f}".format(
nota_fiscal.totais_icms_remetente
)
if nota_fiscal.totais_icms_q_bc_mono_ret:
etree.SubElement(icms_total, "qBCMonoRet").text = "{:.2f}".format(
nota_fiscal.totais_icms_q_bc_mono_ret
)
if nota_fiscal.totais_icms_v_icms_mono_ret:
etree.SubElement(icms_total, "vICMSMonoRet").text = "{:.2f}".format(
nota_fiscal.totais_icms_v_icms_mono_ret
)
etree.SubElement(icms_total, "vFCP").text = "{:.2f}".format(
nota_fiscal.totais_fcp
)
Expand Down

0 comments on commit 4cd1367

Please sign in to comment.