Files

106 lines
4.6 KiB
HTML

{% extends "base.html" %}
{% block title %}Revisar importação{% endblock %}
{% block content %}
<div class="page-head">
<div>
<h2>Revisar antes de importar</h2>
<p class="muted">Confira os documentos extraídos. Corrija os ilegíveis e confirme.</p>
</div>
<a href="/" class="btn btn-ghost btn-sm">Cancelar</a>
</div>
<section class="summary-banner">
<div class="summary-item">
<span class="summary-label">Documentos</span>
<strong class="summary-value">{{ summary.count }}</strong>
</div>
<div class="summary-item">
<span class="summary-label">Valor total</span>
<strong class="summary-value money">{{ summary.total | money }}</strong>
</div>
{% if summary.pendentes %}
<div class="summary-item warn">
<span class="summary-label">Precisam de correção</span>
<strong class="summary-value">{{ summary.pendentes }}</strong>
</div>
{% endif %}
</section>
{% if not rows %}
<div class="card"><p class="muted">Nenhum documento neste lote. <a href="/" class="link">Voltar</a>.</p></div>
{% else %}
<div class="staging-list">
{% for r in rows %}
<article class="staging-row {{ 'row-warn' if (not r.legible or not r.supplier_name or r.total_paid is none or not r.mes or not r.ano) else '' }}">
<div class="staging-badges">
{% if not r.legible %}<span class="badge badge-warn">Ilegível — revise</span>{% endif %}
{% if r.legible and (not r.supplier_name or r.total_paid is none or not r.mes or not r.ano) %}<span class="badge badge-warn">Incompleto — preencha</span>{% endif %}
<span class="badge badge-conf badge-{{ r.confidence }}">{{ r.confidence }}</span>
<span class="badge badge-src">{{ 'IA' if r.extractor == 'openai' else 'OCR local' }}</span>
{% if r.uncertain_fields and r.uncertain_fields != '[]' %}
<span class="badge badge-fields">incertos: {{ r.uncertain_fields | replace('[','') | replace(']','') | replace('"','') }}</span>
{% endif %}
</div>
<form method="post" action="/import/{{ batch.id }}/update/{{ r.id }}" class="staging-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<label class="field">
<span>Competência</span>
<span class="field-group">
<select name="mes" required>
<option value="" disabled {{ 'selected' if not r.mes else '' }}>Mês</option>
{% for m in meses_competencia %}
<option value="{{ loop.index }}" {{ 'selected' if r.mes == loop.index else '' }}>{{ m }}</option>
{% endfor %}
</select>
<select name="ano" required>
<option value="" disabled {{ 'selected' if not r.ano else '' }}>Ano</option>
{% for a in anos_competencia %}
<option value="{{ a }}" {{ 'selected' if r.ano == a else '' }}>{{ a }}</option>
{% endfor %}
</select>
</span>
</label>
<label class="field grow">
<span>Fornecedor</span>
<input type="text" name="supplier_name" value="{{ r.supplier_name or '' }}" placeholder="Nome do estabelecimento">
</label>
<label class="field">
<span>Valor (R$)</span>
<input type="text" inputmode="decimal" name="total_paid" value="{{ '%.2f'|format(r.total_paid) if r.total_paid is not none else '' }}" placeholder="0,00">
</label>
<div class="staging-actions">
<button type="submit" class="btn btn-primary btn-sm">Salvar correção</button>
<a href="/files/{{ r.upload_id }}" target="_blank" rel="noopener" class="btn btn-ghost btn-sm">Ver arquivo</a>
</div>
</form>
<form method="post" action="/import/{{ batch.id }}/discard/{{ r.id }}" class="staging-discard"
onsubmit="return confirm('Descartar este documento do lote?');">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<button type="submit" class="btn btn-danger btn-sm">Descartar</button>
</form>
<div class="staging-source">{{ r.source_file_name }}</div>
</article>
{% endfor %}
</div>
<div class="confirm-bar">
<div class="muted">
{% if summary.pendentes %}
Corrija os {{ summary.pendentes }} documento(s) pendente(s) antes de importar.
{% else %}
Tudo pronto para importar.
{% endif %}
</div>
<form method="post" action="/import/{{ batch.id }}/confirm">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<button type="submit" class="btn btn-primary btn-lg" {{ 'disabled' if summary.pendentes else '' }}>
Confirmar importação de {{ summary.count }} documento(s) · {{ summary.total | money }}
</button>
</form>
</div>
{% endif %}
{% endblock %}