{% extends "base.html" %} {% block title %}Resumo | GTI Fiscal{% endblock %} {% block content %}

OPERAÇÃO CENTRAL

Qual cliente precisa de atenção?

Somente instalações ativas. Histórico permanece disponível nas listagens.

Atualizado pelo snapshot
{% for key,label,health in [("agents_total","Servidores",none),("online","Online","ONLINE"),("degraded","Atenção","DEGRADED"),("offline","Offline","OFFLINE"),("failed","Falhou","FAILED"),("unknown","Não informado","UNKNOWN")] %} {{ label }}{{ summary[key] }}Ver servidores {% endfor %}

Fontes de produtos

Consultas feitas somente pelo Hub, dentro do limite gratuito.

{% for src in sources %}
{{ src.provider }} {{ src.status_label }} {% if src.limit %}{{ src.used }} / {{ src.limit }} consultas hoje · restam {{ src.remaining if src.remaining is not none else "—" }}{% if src.reset_at %} · renova {{ src.reset_at.strftime("%d/%m %H:%M") }} UTC{% endif %}{% elif src.rate_per_minute %}{{ src.rate_per_minute }} consultas/min (limite documentado) · {{ src.used }} hoje{% else %}{{ src.used }} consultas hoje{% endif %} {% if src.latency_ms %} · {{ src.latency_ms }} ms{% endif %}{% if src.cache_hit_rate is not none %} · cache {{ src.cache_hit_rate }}%{% endif %} {% if src.last_success_at %} · último sucesso {{ src.last_success_at.strftime("%d/%m %H:%M") }}{% endif %}{% if src.last_error %} · último erro: {{ src.last_error }}{% endif %} · hoje: {{ src.found_today }} achados{% if not src.identity_only %}, {{ src.ncm_found_today }} com NCM{% else %} (só identidade){% endif %}, {{ src.cache_hits }} do cache, {{ src.rate_limited }} limitados{% if src.next_reset %} · próximo reset {{ src.next_reset.strftime("%d/%m %H:%M") }} UTC{% endif %} · configurado: {{ "sim" if src.configured else "não" }}
{% endfor %}

Fontes oficiais

Bases fiscais usadas para validar qualquer preenchimento.

{% for o in official %}
{{ o.label }} {{ o.status }} {% if o.active %}{{ o.records }} registros · {{ o.version }} · {{ o.sha256 }}{% if o.last_update %} · baixada {{ o.last_update.strftime("%d/%m/%Y") }}{% endif %}{% endif %}{% if o.auto_refresh %} · atualização automática diária{% endif %}{% if o.error %} · {{ o.error }}{% endif %}
{% endfor %}

Base de conhecimento de produtos

Evidência local, histórica e externa; nada vira verdade fiscal sem regra de promoção.

{{ kb.products }}Produtos conhecidos
{{ kb.verified }}GTINs verificados
{{ kb.corroborated }}Corroborados
{{ kb.conflicts }}Conflitos
{{ kb.hits_today }}Resolvidos pela base hoje
{% for c in kb.recent_conflicts %}
{{ c.gtin }} {{ c.description }}NCMs divergentes, nada é preenchido: {% for x in c.candidates %}{{ x.ncm }} ({{ x.clients|length }} cliente(s), {{ x.documents }} doc.{% if x.providers %}, {{ x.providers|join("/") }}{% endif %}){% if not loop.last %} × {% endif %}{% endfor %}
{% endfor %}

Enriquecimento de produtos novos

Cobertura medida sobre os produtos novos acompanhados (o catálogo histórico não entra).

{% if enrich_metrics.tracked %}
{% for key,label in [("GTIN_VALID_RATE","Com GTIN válido"),("KB_HIT_RATE","Resolvidos pela base"),("PRODUCT_FOUND_RATE","Produto identificado"),("NCM_AUTO_FILL_SAFE_RATE","NCM preenchível com segurança"),("AMBIGUOUS_RATE","Ambíguos"),("CONFLICT_RATE","Em conflito")] %}
{{ enrich_metrics[key] if enrich_metrics[key] is not none else "—" }}{% if enrich_metrics[key] is not none %}%{% endif %}{{ label }}
{% endfor %}
{% else %}

Nenhum produto novo acompanhado ainda.

{% endif %}

Cobertura dos produtos

Ver servidores
{% for key,label,url in [("total_products","Produtos avaliados","/agents?scope=active"),("fiscally_complete","Completos","/agents?scope=active&sort=worst_coverage"),("safe_blocked","Bloqueados com segurança","/blockers?scope=active&status=OPEN"),("failed_products","Falhas técnicas","/agents?scope=active&health=FAILED"),("unclassified_products","Não classificados","/agents?scope=active&sort=worst_coverage")] %} {{ summary[key] }}{{ label }} {% endfor %}
{% if summary.coverage_invariant_pass %}

Cobertura reconciliada: total = completos + bloqueados + falhas + não classificados.

{% else %}

Inconsistência de cobertura: {{ summary.coverage_overcount_products }} acima do total; {{ summary.coverage_invalid_snapshots }} snapshot(s) com contagens negativas.

{% endif %}
Produtos com blockers abertos: {{ summary.safe_blocked_products }}Blockers abertos: {{ summary.open_blockers }}

Breakdown dos blockers

Ver blockers
{% for key in ["NCM","CEST","CFOP","ST","ICMS","CSOSN","PIS","COFINS","RTC","OTHER"] %} {% if summary.open_blocker_breakdown[key] > 0 %}{{ key }}{{ summary.open_blocker_breakdown[key] }} {% else %}
{{ key }}0
{% endif %} {% endfor %}

FILA DE AÇÃO

Atenção necessária

Ver blockers
{% for item in summary.attention_items %} {{ item.client or "Cliente não identificado" }}{{ item.hostname or item.display_name or "Servidor sem nome" }} · {{ item.problem }}{% if item.group_count %}{{ item.products_affected }} produtos afetados · {{ item.group_count }} blockers abertos · Ver blockers →{% endif %}{{ item.age }} {% else %}

Nenhum item requer atenção imediata.

{% endfor %}

Jobs com falha

Ver jobs
{% if summary.failed_jobs %}

{{ summary.failed_jobs }} jobs aguardam investigação.

{% else %}

Nenhum job com falha.

{% endif %}

Agents desatualizados

Ver servidores
{% for item in summary.outdated_agents[:5] %}{{ item.client or "Cliente não identificado" }}{{ item.display_name or "Instalação" }} · {{ item.hostname or "Servidor não informado" }}{{ item.agent_version or "Versão não informada" }} → atualização disponívelDesatualizado{% else %}

Nenhum Agent desatualizado.

{% endfor %}
{% endblock %}