{% extends 'base.html' %} {% set chave_dfe = (dfe.chave or '')|string %} {% set tipo_dfe = dfe.tipo_documento or dfe.tipo_dfe or '-' %} {% set status_manifesto = dfe.situacao_manifesto or dfe.status_manifesto or '' %} {% set tem_xml = dfe.xml or dfe.xml_completo or dfe.xml_resumo %} {% set numero_nota_dfe = dfe.numero_nota_lista if dfe.numero_nota_lista is defined and dfe.numero_nota_lista and dfe.numero_nota_lista != '-' else none %} {% if not numero_nota_dfe and chave_dfe|length >= 34 %} {% set numero_nota_dfe = (chave_dfe[25:34]|int) %} {% endif %} {% set serie_dfe = dfe.serie_lista if dfe.serie_lista is defined and dfe.serie_lista else none %} {% if not serie_dfe and chave_dfe|length >= 25 %} {% set serie_dfe = (chave_dfe[22:25]|int) %} {% endif %} {% set dfe_processado_legado = dfe.processado if dfe.processado is defined else false %} {% set mapa_importacao = dfe.mapeamento_importacao_lista if dfe.mapeamento_importacao_lista is defined else { 'importado': dfe_processado_legado, 'status': 'processado_legado' if dfe_processado_legado else 'disponivel', 'badge': 'success' if dfe_processado_legado else 'secondary', 'rotulo': 'Já lançada no ERP' if dfe_processado_legado else 'Disponível para lançar', 'detalhe': 'O runtime ainda não carregou o mapeamento detalhado; reinicie o servidor para exibir o vínculo exato.' if dfe_processado_legado else 'Nenhum documento importado foi localizado para este DF-e.', 'documento_id': none, 'documento_tipo': none, 'documento_label': none, 'url': none, 'nota_entrada_id': none, 'entrada_mercadoria_id': none } %} {% set badge_importacao = dfe.badge_importacao_lista if dfe.badge_importacao_lista is defined else (mapa_importacao.badge or 'secondary') %} {% set rotulo_importacao = dfe.rotulo_importacao_lista if dfe.rotulo_importacao_lista is defined else (mapa_importacao.rotulo or 'Disponível para lançar') %} {% set detalhe_importacao = dfe.detalhe_importacao_lista if dfe.detalhe_importacao_lista is defined else (mapa_importacao.detalhe or '') %} {% set documento_importacao = dfe.documento_importacao_lista if dfe.documento_importacao_lista is defined else mapa_importacao.documento_label %} {% set url_importacao = dfe.url_importacao_lista if dfe.url_importacao_lista is defined else mapa_importacao.url %} {% block title %}Visualizar DF-e - {{ chave_dfe or ('NSU ' ~ (dfe.nsu or '-')) }}{% endblock %} {% block content %}

{{ tipo_dfe }}{% if numero_nota_dfe %} Nº {{ numero_nota_dfe }}{% endif %}{% if serie_dfe is not none %} Série {{ serie_dfe }}{% endif %} - Detalhes

{% if chave_dfe %} {{ chave_dfe }} {% else %} Chave não disponível • NSU {{ dfe.nsu or '-' }} {% endif %}

Voltar {% if tem_xml %} Download XML {% endif %} {% if status_manifesto == 'PENDENTE' and chave_dfe %} {% elif status_manifesto == 'PENDENTE' %} {% endif %}
Informações Gerais
Tipo DF-e: {{ tipo_dfe }}
NSU: {{ dfe.nsu }}
Chave de Acesso: {% if chave_dfe %} {{ chave_dfe }} {% else %} Chave não disponível {% endif %}
Número / Série: {% if numero_nota_dfe %} Nº {{ numero_nota_dfe }}{% if serie_dfe is not none %} Série {{ serie_dfe }}{% endif %} {% else %} Não identificado {% endif %}
Data Emissão: {{ dfe.data_emissao.strftime('%d/%m/%Y %H:%M') if dfe.data_emissao else '-' }}
Data Recebimento: {{ dfe.data_recebimento.strftime('%d/%m/%Y %H:%M') if dfe.data_recebimento else '-' }}
Valor Total: {{ "R$ {:,.2f}".format(dfe.valor_total or 0).replace(',', 'X').replace('.', ',').replace('X', '.') }}
Importação: {{ rotulo_importacao }}
{% if documento_importacao and url_importacao %} {{ documento_importacao }} {% else %} {{ detalhe_importacao }} {% endif %}
Emitente
{% if dados_xml and dados_xml.emitente %} {% endif %}
CNPJ: {{ dfe.cnpj_emitente|cnpj if dfe.cnpj_emitente else '-' }}
Razão Social: {{ dfe.nome_emitente or '-' }}
UF: {{ dados_xml.emitente.uf or '-' }}
Status da Manifestação
{% if status_manifesto == 'PENDENTE' and chave_dfe %}
Pendente de Manifestação

Este documento ainda não foi manifestado.

{% elif status_manifesto == 'PENDENTE' %}
Manifesto indisponível

Este DF-e não possui chave de acesso disponível para manifestação.

{% elif status_manifesto == 'CIENCIA' %}
Ciência da Operação

Manifestado em {{ dfe.data_manifesto.strftime('%d/%m/%Y %H:%M') if dfe.data_manifesto else '-' }}

{% elif status_manifesto == 'CONFIRMADA' %}
Operação Confirmada

Manifestado em {{ dfe.data_manifesto.strftime('%d/%m/%Y %H:%M') if dfe.data_manifesto else '-' }}

{% elif status_manifesto == 'DESCONHECIDA' %}
Operação Desconhecida

Manifestado em {{ dfe.data_manifesto.strftime('%d/%m/%Y %H:%M') if dfe.data_manifesto else '-' }}

{% elif status_manifesto == 'NAO_REALIZADA' %}
Operação Não Realizada

Manifestado em {{ dfe.data_manifesto.strftime('%d/%m/%Y %H:%M') if dfe.data_manifesto else '-' }}

{% else %}
{{ status_manifesto or '-' }}
{% endif %}
{% if manifestos %}
Histórico de Manifestações
{% for m in manifestos %} {% if m.justificativa %} {% endif %} {% if m.motivo_retorno %} {% endif %} {% endfor %}
Data Evento Status Protocolo
{{ m.data_evento.strftime('%d/%m/%Y %H:%M') if m.data_evento else '-' }} {{ m.descricao_evento or m.tipo_evento }} {{ m.status }} {{ m.protocolo or '-' }}
Justificativa: {{ m.justificativa }}
Retorno: {{ m.codigo_retorno }} - {{ m.motivo_retorno }}
{% endif %}
{% if dados_xml and dados_xml.itens %}
Itens do Documento {{ dados_xml.itens|length }}
{% for item in dados_xml.itens %} {% endfor %}
Código Descrição Quantidade Valor Unit. Valor Total
{{ item.codigo }} {{ item.descricao }} {{ item.quantidade }} {{ "R$ {:,.4f}".format(item.valor_unitario|float).replace(',', 'X').replace('.', ',').replace('X', '.') if item.valor_unitario else '-' }} {{ "R$ {:,.2f}".format(item.valor_total|float).replace(',', 'X').replace('.', ',').replace('X', '.') if item.valor_total else '-' }}
{% elif dados_xml and dados_xml.erro %}
Erro ao processar XML: {{ dados_xml.erro }}
{% elif not dfe.xml_completo %}
XML completo não disponível. Apenas o resumo foi recebido da SEFAZ. {% if dfe.status_manifesto == 'PENDENTE' %} Manifeste "Ciência da Operação" para solicitar o XML completo. {% endif %}
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}