<?php
// Depto de Engenharia e Automação - Master Automação - Autor: Derlivon Silva
// (parte do Premium Express BI - Fire Sistemas)
//
// View interna de diagnóstico: /diag/operacoes
// Lista por COD_TIPO_OPERACAO mostrando flags do ERP + decisão do BI + motivo.

/**
 * @var string $titulo
 * @var string $subtitulo
 * @var string $data_filtro
 * @var int    $cod_empresa
 * @var int[]  $extras
 * @var int[]  $excluir
 * @var array  $linhas
 * @var float  $total_mov
 * @var float  $total_no_bi
 * @var float  $total_fora_bi
 * @var int    $qtd_ops
 * @var string $erro
 * @var string $sql_usado
 */

$e = fn($v) => htmlspecialchars((string)$v, ENT_QUOTES, 'UTF-8');
$brl = fn($v) => 'R$ ' . number_format((float)$v, 2, ',', '.');
?>

<div class="pbi-page-header">
    <div class="pbi-page-icon" style="background:#fef3c7;color:#92400e">
        <i class="bi bi-clipboard-data"></i>
    </div>
    <div>
        <div class="pbi-page-title"><?= $e($titulo) ?></div>
        <div class="pbi-page-subtitle"><?= $e($subtitulo) ?></div>
    </div>
    <div class="ms-auto d-flex gap-2 align-items-center">
        <span class="badge bg-warning text-dark" title="Tela interna de diagnostico">
            <i class="bi bi-tools me-1"></i>Diagnostico interno
        </span>
    </div>
</div>

<!-- Filtro de data -->
<div class="pbi-card mb-3">
    <div class="p-3 d-flex flex-wrap gap-2 align-items-center">
        <form method="get" action="/diag/operacoes" class="d-flex gap-2 align-items-center flex-wrap">
            <span class="text-muted small me-1"><i class="bi bi-calendar3 me-1"></i>Data:</span>
            <input type="date" name="data" value="<?= $e($data_filtro) ?>" class="form-control form-control-sm" style="max-width:180px">
            <button type="submit" class="btn btn-sm pbi-btn-filtrar" style="background:#0ea5e9;color:#fff;border:none;border-radius:6px;padding:.4rem .9rem;font-weight:600">
                <i class="bi bi-funnel me-1"></i>Diagnosticar
            </button>
            <span class="text-muted small ms-3">
                COD_EMPRESA = <strong><?= (int)$cod_empresa ?></strong>
            </span>
        </form>
    </div>
</div>

<?php if (!empty($erro)): ?>
    <div class="alert alert-danger" style="border-radius:10px">
        <i class="bi bi-exclamation-triangle-fill me-1"></i>
        <strong>Erro ao consultar o banco:</strong> <?= $e($erro) ?>
    </div>
<?php endif; ?>

<?php if ($total_fora_bi > 0): ?>
    <div style="background:#fef3c7;border:1px solid #fbbf24;border-radius:10px;padding:1rem 1.2rem;margin-bottom:1rem;color:#78350f;line-height:1.55">
        <div style="font-weight:700;font-size:1rem;margin-bottom:.3rem">
            <i class="bi bi-exclamation-triangle-fill me-1"></i>
            Encontramos <?= $brl($total_fora_bi) ?> em operacoes que NAO estao entrando no BI.
        </div>
        <div style="font-size:.9rem">
            Veja a lista abaixo — se alguma dessas operacoes <strong>DEVERIA contar como venda</strong>,
            copie o codigo (coluna <code>Cod</code>) e me avise pra eu adicionar em
            <code>tipos_venda_extras</code> no <code>config/database.php</code>.
        </div>
    </div>
<?php endif; ?>

<!-- KPIs de resumo -->
<div class="row g-3 mb-3">
    <div class="col-6 col-md-3">
        <div class="pbi-kpi-card">
            <div class="pbi-kpi-label"><i class="bi bi-cash-stack me-1"></i>Total movimentado no dia</div>
            <div class="pbi-kpi-valor" style="color:#0f172a"><?= $brl($total_mov) ?></div>
        </div>
    </div>
    <div class="col-6 col-md-3">
        <div class="pbi-kpi-card">
            <div class="pbi-kpi-label"><i class="bi bi-check-circle me-1"></i>Total NO BI (entra no faturamento)</div>
            <div class="pbi-kpi-valor" style="color:#16a34a"><?= $brl($total_no_bi) ?></div>
        </div>
    </div>
    <div class="col-6 col-md-3">
        <div class="pbi-kpi-card">
            <div class="pbi-kpi-label"><i class="bi bi-x-circle me-1"></i>Total FORA DO BI</div>
            <div class="pbi-kpi-valor" style="color:#dc2626"><?= $brl($total_fora_bi) ?></div>
        </div>
    </div>
    <div class="col-6 col-md-3">
        <div class="pbi-kpi-card">
            <div class="pbi-kpi-label"><i class="bi bi-tags me-1"></i>Qtd operacoes diferentes</div>
            <div class="pbi-kpi-valor" style="color:#0f172a"><?= (int)$qtd_ops ?></div>
        </div>
    </div>
</div>

<!-- Tabela detalhada -->
<div class="pbi-card mb-3">
    <div class="pbi-card-header">
        <i class="bi bi-list-ul me-2 text-accent"></i>Detalhe por operacao
        <span class="text-muted small ms-2">(<?= $e($data_filtro) ?>)</span>
    </div>
    <div class="pbi-card-body" style="padding:0">
        <?php if (empty($linhas)): ?>
            <div style="padding:2rem;text-align:center;color:#64748b">
                <i class="bi bi-inbox" style="font-size:2rem;display:block;margin-bottom:.5rem;color:#cbd5e1"></i>
                Nenhuma operacao movimentada nessa data para a empresa <?= (int)$cod_empresa ?>.
            </div>
        <?php else: ?>
            <div class="table-responsive">
                <table class="table table-hover mb-0" style="font-size:.85rem">
                    <thead style="background:#f1f5f9;color:#475569;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em">
                        <tr>
                            <th style="padding:.6rem .75rem">Cod</th>
                            <th>Nome da operacao</th>
                            <th class="text-center" title="TIPO_NATUREZA">Nat</th>
                            <th class="text-center" title="DEVOLUCAO">Dev</th>
                            <th class="text-center" title="ETRANSF">Tra</th>
                            <th class="text-center" title="MOV_INTERNA">Int</th>
                            <th class="text-center" title="GERA_FINANCEIRO">Fin</th>
                            <th class="text-end">Qtd notas</th>
                            <th class="text-end">Cancel.</th>
                            <th class="text-end">Valor</th>
                            <th>Status</th>
                            <th>Motivo / observacao</th>
                        </tr>
                    </thead>
                    <tbody>
                    <?php foreach ($linhas as $l):
                        $todoCancelado = ($l['qtd_notas'] > 0 && $l['qtd_canc'] === $l['qtd_notas']);
                        if ($todoCancelado) {
                            $bg = '#f1f5f9'; $cor = '#64748b'; // cinza (tudo cancelado)
                        } elseif ($l['no_filtro_bi']) {
                            $bg = '#ecfdf5'; $cor = '#065f46'; // verde claro (no BI)
                        } else {
                            $bg = '#fef2f2'; $cor = '#991b1b'; // vermelho claro (fora)
                        }
                    ?>
                        <tr style="background:<?= $bg ?>">
                            <td style="padding:.55rem .75rem;font-family:ui-monospace,monospace;font-weight:700;color:#0f172a">
                                <?= (int)$l['cod_op'] ?>
                            </td>
                            <td style="color:<?= $cor ?>;font-weight:500">
                                <?= $e($l['nome'] !== '' ? $l['nome'] : '— (sem cadastro em TIPO_OPERACAO)') ?>
                                <?php if (!empty($l['forcado_extras'])): ?>
                                    <span class="badge bg-info text-dark ms-1" title="Forcado a entrar por tipos_venda_extras">extras</span>
                                <?php endif; ?>
                            </td>
                            <td class="text-center" style="font-family:ui-monospace,monospace"><?= $e($l['natureza'] ?: '—') ?></td>
                            <td class="text-center" style="font-family:ui-monospace,monospace;color:<?= ($l['devol'] === 'S' ? '#dc2626' : '#94a3b8') ?>"><?= $e($l['devol'] ?: '—') ?></td>
                            <td class="text-center" style="font-family:ui-monospace,monospace;color:<?= ($l['etransf'] === 'S' ? '#dc2626' : '#94a3b8') ?>"><?= $e($l['etransf'] ?: '—') ?></td>
                            <td class="text-center" style="font-family:ui-monospace,monospace;color:<?= ($l['mov_interna'] === 'S' ? '#dc2626' : '#94a3b8') ?>"><?= $e($l['mov_interna'] ?: '—') ?></td>
                            <td class="text-center" style="font-family:ui-monospace,monospace;color:<?= ($l['gera_fin'] === 'N' ? '#dc2626' : '#94a3b8') ?>"><?= $e($l['gera_fin'] ?: '—') ?></td>
                            <td class="text-end" style="font-family:ui-monospace,monospace"><?= (int)$l['qtd_notas'] ?></td>
                            <td class="text-end" style="font-family:ui-monospace,monospace;color:<?= ($l['qtd_canc'] > 0 ? '#dc2626' : '#94a3b8') ?>"><?= (int)$l['qtd_canc'] ?></td>
                            <td class="text-end" style="font-family:ui-monospace,monospace;font-weight:600;color:<?= $cor ?>">
                                <?= $brl($l['valor_valido']) ?>
                                <?php if ($l['qtd_canc'] > 0 && !$todoCancelado): ?>
                                    <div style="font-size:.7rem;color:#94a3b8;font-weight:400">
                                        bruto: <?= $brl($l['valor_total']) ?>
                                    </div>
                                <?php endif; ?>
                            </td>
                            <td>
                                <?php if ($todoCancelado): ?>
                                    <span class="badge" style="background:#cbd5e1;color:#334155">
                                        <i class="bi bi-slash-circle me-1"></i>Tudo cancelado
                                    </span>
                                <?php elseif ($l['no_filtro_bi']): ?>
                                    <span class="badge" style="background:#16a34a;color:#fff">
                                        <i class="bi bi-check-lg me-1"></i>NO BI
                                    </span>
                                <?php else: ?>
                                    <span class="badge" style="background:#dc2626;color:#fff">
                                        <i class="bi bi-x-lg me-1"></i>FORA
                                    </span>
                                <?php endif; ?>
                            </td>
                            <td style="font-size:.78rem;color:<?= $cor ?>;max-width:340px">
                                <?php if ($todoCancelado): ?>
                                    Todas as notas dessa op foram canceladas — nao impactam o BI.
                                <?php elseif ($l['no_filtro_bi'] && $l['forcado_extras']): ?>
                                    Forcada a entrar por <code>tipos_venda_extras</code> no config.
                                <?php elseif ($l['no_filtro_bi']): ?>
                                    Passa em todas as regras (natureza V, sem dev/transf/int/fin=N).
                                <?php else: ?>
                                    <?= $e($l['razao_fora']) ?>
                                <?php endif; ?>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>
    </div>
</div>

<!-- Overrides atuais do config -->
<div class="pbi-card mb-3">
    <div class="pbi-card-header">
        <i class="bi bi-sliders me-2 text-accent"></i>Overrides atuais (config/database.php)
    </div>
    <div class="pbi-card-body">
        <div class="row g-3">
            <div class="col-md-6">
                <div style="background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:.7rem .9rem">
                    <div style="font-size:.75rem;color:#065f46;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem">
                        <i class="bi bi-plus-circle me-1"></i>tipos_venda_extras (forca a INCLUIR)
                    </div>
                    <?php if (empty($extras)): ?>
                        <div style="color:#64748b;font-size:.85rem;font-style:italic">(nenhum override — usa apenas as regras padrao do ERP)</div>
                    <?php else: ?>
                        <div style="font-family:ui-monospace,monospace;font-size:.9rem;color:#065f46;font-weight:600">
                            <?= $e(implode(', ', $extras)) ?>
                        </div>
                    <?php endif; ?>
                </div>
            </div>
            <div class="col-md-6">
                <div style="background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.7rem .9rem">
                    <div style="font-size:.75rem;color:#991b1b;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem">
                        <i class="bi bi-dash-circle me-1"></i>tipos_venda_excluir (forca a EXCLUIR)
                    </div>
                    <?php if (empty($excluir)): ?>
                        <div style="color:#64748b;font-size:.85rem;font-style:italic">(nenhum override)</div>
                    <?php else: ?>
                        <div style="font-family:ui-monospace,monospace;font-size:.9rem;color:#991b1b;font-weight:600">
                            <?= $e(implode(', ', $excluir)) ?>
                        </div>
                    <?php endif; ?>
                </div>
            </div>
        </div>
        <div class="text-muted small mt-2" style="font-size:.78rem">
            Edite em <a href="/configuracao/tipos-venda">/configuracao/tipos-venda</a> (extras) ou direto em <code>config/database.php</code>.
        </div>
    </div>
</div>

<!-- Footer: SQL usado pra debug futuro -->
<details style="margin-top:1rem">
    <summary style="cursor:pointer;color:#64748b;font-size:.8rem;user-select:none">
        <i class="bi bi-code-slash me-1"></i>SQL usado nesta tela (debug)
    </summary>
    <pre style="background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:8px;font-size:.75rem;overflow-x:auto;margin-top:.5rem"><?= $e($sql_usado) ?></pre>
    <div class="text-muted small mt-1" style="font-size:.72rem">
        Parametros: <code>:data = <?= $e($data_filtro) ?></code>, <code>:emp = <?= (int)$cod_empresa ?></code>
    </div>
</details>
