From c61c02f32638659fd66d3fff623db146ea87f8b0 Mon Sep 17 00:00:00 2001 From: Roberto Godinho Date: Fri, 15 Dec 2023 17:47:13 -0300 Subject: [PATCH] ADD: Grupo de encerrantes dos combustiveis --- pynfe/entidades/notafiscal.py | 26 ++++++++++++++++++ pynfe/processamento/serializacao.py | 41 ++++++++++++++++++----------- 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/pynfe/entidades/notafiscal.py b/pynfe/entidades/notafiscal.py index 7a257ad..5bacb2a 100644 --- a/pynfe/entidades/notafiscal.py +++ b/pynfe/entidades/notafiscal.py @@ -661,6 +661,32 @@ class NotaFiscalProduto(Entidade): # Sigla da UF de consumo – (OBS: Deve ser a Sigla e não o Código da UF) UFCons = str() + # Código de autorização / registro do CODI + comb_codif = str() + + # Quantidade de combustível faturada à temperatura ambiente. + comb_q_temp = str() + + # - Grupo de informações dos encerrantes + # Número de identificação do bico utilizado no abastecimento + comb_n_bico = int() + + # Número de identificação da bomba ao qual o bico está interligado + comb_n_bomba = int() + + # Número de identificação do tanque ao qual o bico está interligado + comb_n_tanque = int() + + # Valor do Encerrante no início do abastecimento + comb_v_enc_ini = Decimal() + + # Valor do Encerrante no final do abastecimento + comb_v_enc_fin = Decimal() + + # 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 diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 3e04697..5d3a866 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -377,24 +377,35 @@ def _serializar_produto_servico( # Combustível if produto_servico.cProdANP: combustivel = etree.SubElement(prod, "comb") - etree.SubElement(combustivel, "cProdANP").text = str( - produto_servico.cProdANP - ) + etree.SubElement(combustivel, "cProdANP").text = str(produto_servico.cProdANP) etree.SubElement(combustivel, "descANP").text = str(produto_servico.descANP) - etree.SubElement(combustivel, "pGLP").text = "{:.4f}".format( - produto_servico.pGLP or 0 - ) - etree.SubElement(combustivel, "pGNn").text = "{:.4f}".format( - produto_servico.pGNn or 0 - ) - etree.SubElement(combustivel, "pGNi").text = "{:.4f}".format( - produto_servico.pGNi or 0 - ) - etree.SubElement(combustivel, "vPart").text = "{:.2f}".format( - produto_servico.vPart or 0 - ) + if produto_servico.pGLP: + etree.SubElement(combustivel, "pGLP").text = "{:.4f}".format(produto_servico.pGLP or 0) + if produto_servico.pGNn: + etree.SubElement(combustivel, "pGNn").text = "{:.4f}".format(produto_servico.pGNn or 0) + if produto_servico.pGNi: + etree.SubElement(combustivel, "pGNi").text = "{:.4f}".format(produto_servico.pGNi or 0) + if produto_servico.vPart: + etree.SubElement(combustivel, "vPart").text = "{:.2f}".format(produto_servico.vPart or 0) + if produto_servico.comb_codif: + etree.SubElement(combustivel, "CODIF").text = produto_servico.comb_codif + if produto_servico.comb_q_temp: + etree.SubElement(combustivel, "qTemp").text = produto_servico.comb_q_temp etree.SubElement(combustivel, "UFCons").text = str(produto_servico.UFCons) + # encerrantes + if produto_servico.comb_n_bico: + encerrante = etree.SubElement(combustivel, "encerrante") + etree.SubElement(encerrante, "nBico").text = str(produto_servico.comb_n_bico) + if produto_servico.comb_n_bomba: + etree.SubElement(encerrante, "nBomba").text = str(produto_servico.comb_n_bomba) + etree.SubElement(encerrante, "nTanque").text = str(produto_servico.comb_n_tanque) + etree.SubElement(encerrante, "vEncIni").text = "{:.3f}".format(produto_servico.comb_v_enc_ini) + etree.SubElement(encerrante, "vEncFin").text = "{:.3f}".format(produto_servico.comb_v_enc_fin) + + if produto_servico.comb_p_bio: + etree.SubElement(combustivel, "pBio").text = "{:.4f}".format(produto_servico.comb_p_bio or 0) + # Imposto imposto = etree.SubElement(raiz, "imposto")