Skip to content

Commit 4cd1367

Browse files
authored
Merge pull request #311 from orbitpdv/master
CST 61 - ICMS Monofásico
2 parents aaf0b1b + 6ce6176 commit 4cd1367

File tree

2 files changed

+46
-11
lines changed

2 files changed

+46
-11
lines changed

pynfe/entidades/notafiscal.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,12 @@ class NotaFiscal(Entidade):
274274
# - Valor total do ICMS Interestadual para a UF do remetente
275275
totais_icms_inter_remetente = Decimal()
276276

277+
# - Valor total do qBCMonoRet
278+
totais_icms_q_bc_mono_ret = Decimal()
279+
280+
# - Valor total do vICMSMonoRet
281+
totais_icms_v_icms_mono_ret = Decimal()
282+
277283
# Transporte
278284
# - Modalidade do Frete (obrigatorio - seleciona de lista) - MODALIDADES_FRETE
279285
# 0=Contratação do Frete por conta do Remetente (CIF);
@@ -415,6 +421,8 @@ def adicionar_produto_servico(self, **kwargs):
415421
self.totais_fcp_st_ret += obj.fcp_st_ret_valor
416422
self.totais_icms_inter_destino += obj.icms_inter_destino_valor
417423
self.totais_icms_inter_remetente += obj.icms_inter_remetente_valor
424+
self.totais_icms_q_bc_mono_ret += obj.icms_q_bc_mono_ret
425+
self.totais_icms_v_icms_mono_ret += obj.icms_v_icms_mono_ret
418426
# TODO calcular impostos aproximados
419427
# self.totais_tributos_aproximado += obj.tributos
420428

@@ -715,6 +723,9 @@ class NotaFiscalProduto(Entidade):
715723
fcp_st_ret_valor = Decimal()
716724
icms_inter_destino_valor = Decimal()
717725
icms_inter_remetente_valor = Decimal()
726+
icms_q_bc_mono_ret = Decimal()
727+
icms_ad_rem_icms_ret = Decimal()
728+
icms_v_icms_mono_ret = Decimal()
718729

719730
# - IPI
720731
# - Situacao tributaria (seleciona de lista) - IPI_TIPOS_TRIBUTACAO

pynfe/processamento/serializacao.py

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
# -*- coding: utf-8 -*-
2-
from pynfe.entidades import NotaFiscal, Manifesto
2+
import base64
3+
import hashlib
4+
import re
5+
from datetime import datetime
6+
7+
from pynfe.entidades import Manifesto, NotaFiscal
38
from pynfe.utils import (
49
etree,
5-
so_numeros,
10+
obter_codigo_por_municipio,
611
obter_municipio_por_codigo,
712
obter_pais_por_codigo,
8-
obter_codigo_por_municipio,
13+
so_numeros,
914
)
1015
from pynfe.utils.flags import (
1116
CODIGOS_ESTADOS,
12-
VERSAO_PADRAO,
13-
VERSAO_MDFE,
14-
NAMESPACE_NFE,
1517
NAMESPACE_MDFE,
18+
NAMESPACE_NFE,
1619
NAMESPACE_SIG,
20+
VERSAO_MDFE,
21+
VERSAO_PADRAO,
1722
VERSAO_QRCODE,
1823
)
19-
from pynfe.utils.webservices import NFCE, MDFE
20-
import base64
21-
import hashlib
22-
from datetime import datetime
23-
import re
24+
from pynfe.utils.webservices import MDFE, NFCE
2425

2526

2627
class Serializacao(object):
@@ -697,6 +698,21 @@ def _serializar_imposto_icms(
697698
etree.SubElement(icms_item, "vFCPSTRet").text = "{:.2f}".format(
698699
produto_servico.fcp_st_valor or 0
699700
)
701+
702+
# 61=Tributação monofásica sobre combustíveis cobrada anteriormente
703+
elif produto_servico.icms_modalidade == "61":
704+
icms_item = etree.SubElement(icms, "ICMS" + produto_servico.icms_modalidade)
705+
etree.SubElement(icms_item, "orig").text = str(produto_servico.icms_origem)
706+
etree.SubElement(icms_item, "CST").text = "61"
707+
etree.SubElement(icms_item, "qBCMonoRet").text = "{:.2f}".format(
708+
produto_servico.icms_q_bc_mono_ret or 0
709+
)
710+
etree.SubElement(icms_item, "adRemICMSRet").text = "{:.2f}".format(
711+
produto_servico.icms_ad_rem_icms_ret or 0
712+
)
713+
etree.SubElement(icms_item, "vICMSMonoRet").text = "{:.2f}".format(
714+
produto_servico.icms_v_icms_mono_ret or 0
715+
)
700716

701717
# 70=Com redução da BC e cobrança do ICMS por substituição tributária
702718
elif produto_servico.icms_modalidade == "70":
@@ -1494,6 +1510,14 @@ def _serializar_nota_fiscal(
14941510
etree.SubElement(icms_total, "vICMSUFRemet").text = "{:.2f}".format(
14951511
nota_fiscal.totais_icms_remetente
14961512
)
1513+
if nota_fiscal.totais_icms_q_bc_mono_ret:
1514+
etree.SubElement(icms_total, "qBCMonoRet").text = "{:.2f}".format(
1515+
nota_fiscal.totais_icms_q_bc_mono_ret
1516+
)
1517+
if nota_fiscal.totais_icms_v_icms_mono_ret:
1518+
etree.SubElement(icms_total, "vICMSMonoRet").text = "{:.2f}".format(
1519+
nota_fiscal.totais_icms_v_icms_mono_ret
1520+
)
14971521
etree.SubElement(icms_total, "vFCP").text = "{:.2f}".format(
14981522
nota_fiscal.totais_fcp
14991523
)

0 commit comments

Comments
 (0)