diff --git a/pynfe/entidades/notafiscal.py b/pynfe/entidades/notafiscal.py index 15c1812..0d276a7 100644 --- a/pynfe/entidades/notafiscal.py +++ b/pynfe/entidades/notafiscal.py @@ -347,6 +347,8 @@ class NotaFiscal(Entidade): self.totais_icms_cofins += obj.cofins_valor self.totais_icms_outras_despesas_acessorias += obj.outras_despesas_acessorias self.totais_icms_total_nota += obj.valor_total_bruto + ## TODO calcular impostos aproximados + #self.totais_tributos_aproximado += obj.tributos return obj def adicionar_transporte_volume(self, **kwargs): diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 12e79c8..6f18a62 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -111,7 +111,9 @@ class SerializacaoXML(Serializacao): # Inscricao Municipal if emitente.inscricao_municipal: etree.SubElement(raiz, 'IM').text = emitente.inscricao_municipal - etree.SubElement(raiz, 'CNAE').text = emitente.cnae_fiscal + # Campo Opcional. Pode ser informado quando a Inscrição Municipal (id:C19) for informada. + if emitente.cnae_fiscal: + etree.SubElement(raiz, 'CNAE').text = emitente.cnae_fiscal etree.SubElement(raiz, 'CRT').text = emitente.codigo_de_regime_tributario if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) @@ -468,7 +470,8 @@ class SerializacaoXML(Serializacao): etree.SubElement(icms_total, 'vOutro').text = str('{:.2f}').format(nota_fiscal.totais_icms_outras_despesas_acessorias) etree.SubElement(icms_total, 'vNF').text = str('{:.2f}').format(nota_fiscal.totais_icms_total_nota) - #etree.SubElement(icms_total, 'vTotTrib').text = str('{:.2f}').format(nota_fiscal.totais_tributos_aproximado) + if nota_fiscal.totais_tributos_aproximado: + etree.SubElement(icms_total, 'vTotTrib').text = str('{:.2f}').format(nota_fiscal.totais_tributos_aproximado) # Apenas NF-e if nota_fiscal.modelo == 55: