<?php
// Depto de Engenharia e Automacao - Master Automacao - Autor: Derlivon Silva
$actionUrl = '/produtos/margem-negativa';
?>
<div class="pbi-page-header">
    <div class="pbi-page-icon"><i class="bi bi-exclamation-triangle-fill" style="color:#ef4444"></i></div>
    <div>
        <div class="pbi-page-title">Margem Negativa</div>
        <div class="pbi-page-subtitle">Produtos vendidos abaixo do custo no período — você perdeu dinheiro em cada unidade</div>
    </div>
</div>
<?php if (file_exists(__DIR__ . '/_submenu.php')) include __DIR__ . '/_submenu.php'; ?>
<?php if (file_exists(__DIR__ . '/_filtro.php')) include __DIR__ . '/_filtro.php'; ?>

<div class="pbi-hint mb-3" style="margin-top:0">
    Lista produtos onde o <strong>preço médio de venda</strong> no período ficou abaixo do <strong>custo cadastrado</strong> — ordenado pelo maior prejuízo total. Considera apenas produtos com custo &gt; 0 cadastrado.
</div>

<div class="pbi-card">
    <div class="pbi-card-header d-flex justify-content-between flex-wrap">
        <span><i class="bi bi-exclamation-triangle-fill me-2" style="color:#ef4444"></i>Produtos com prejuízo no período</span>
        <small class="text-muted" id="badge">—</small>
    </div>
    <div class="pbi-card-body">
        <div id="tabela"><div class="text-center py-4"><div class="spinner-border text-accent"></div></div></div>
    </div>
</div>

<script>
(function () {
'use strict';
var INI = <?= json_encode($filtros['dataIni'] ?? date('Y-01-01')) ?>;
var FIM = <?= json_encode($filtros['dataFim'] ?? date('Y-m-d')) ?>;
function brl(v){return (v==null||isNaN(+v))?'—':(+v).toLocaleString('pt-BR',{style:'currency',currency:'BRL'});}
function num(v){return (v==null||isNaN(+v))?'—':(+v).toLocaleString('pt-BR',{minimumFractionDigits:0,maximumFractionDigits:2});}
function esc(s){return String(s??'').replace(/[&<>"]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c]));}

fetch('/api/produtos/margem-negativa?data_ini='+encodeURIComponent(INI)+'&data_fim='+encodeURIComponent(FIM)+'&limite=200')
.then(r=>r.json()).then(j=>{
    if(!j.ok) throw new Error(j.erro||'erro');
    if(j.sem_custo){
        document.getElementById('badge').textContent = 'sem custo no cadastro';
        document.getElementById('tabela').innerHTML =
          '<div class="alert alert-warning d-flex align-items-start gap-3 mb-0" style="border-left:4px solid #f59e0b">' +
          '  <i class="bi bi-info-circle-fill" style="font-size:1.5rem;color:#f59e0b"></i>' +
          '  <div>' +
          '    <div class="fw-semibold mb-1">Nenhum produto tem custo cadastrado no ERP Fire Sistemas</div>' +
          '    <div>Pra calcular margem negativa o BI precisa do <strong>Custo Médio</strong> ou <strong>Custo de Compra</strong> preenchido no cadastro do produto. ' +
          '    Os <strong>5.077 produtos</strong> deste ERP Fire Sistemas estão com custo zerado — comum em bar/restaurante, onde drinks são compostos e o custo é controlado por ingrediente, não por item de venda.</div>' +
          '    <div class="mt-2 text-muted small">Como liberar este relatório: cadastrar o custo nos produtos pelo ERP Fire Sistemas (módulo de cadastro de itens).</div>' +
          '  </div>' +
          '</div>';
        return;
    }
    var rows = j.rows||[];
    document.getElementById('badge').textContent = rows.length+' produtos';
    if(!rows.length){
        document.getElementById('tabela').innerHTML = '<div class="text-center text-success py-4"><i class="bi bi-check-circle-fill me-2"></i>Nenhum produto vendendo abaixo do custo no período.</div>';
        return;
    }
    var h = '<div class="table-responsive"><table class="table table-sm table-hover mb-0 pbi-table">';
    h += '<thead><tr>' +
         '<th style="width:40px">#</th>' +
         '<th>Produto</th>' +
         '<th class="text-end" style="width:90px">Qtd</th>' +
         '<th class="text-end" style="width:120px">Preço médio</th>' +
         '<th class="text-end" style="width:120px">Custo</th>' +
         '<th class="text-end" style="width:130px">Margem/un</th>' +
         '<th class="text-end" style="width:150px">Prejuízo total</th>' +
         '</tr></thead><tbody>';
    rows.forEach((r,i)=>{
        h += '<tr>' +
             '<td class="text-muted">'+(i+1)+'</td>' +
             '<td>'+esc(r.DESCRICAO)+'</td>' +
             '<td class="text-end">'+num(r.QTD_VENDIDA)+'</td>' +
             '<td class="text-end">'+brl(r.PRECO_MEDIO)+'</td>' +
             '<td class="text-end">'+brl(r.CUSTO_UNIT)+'</td>' +
             '<td class="text-end" style="color:#ef4444">'+brl(r.MARGEM_UNIT)+'</td>' +
             '<td class="text-end fw-semibold" style="color:#ef4444">'+brl(r.LUCRO_PERIODO)+'</td>' +
             '</tr>';
    });
    h += '</tbody></table></div>';
    document.getElementById('tabela').innerHTML = h;
}).catch(e=>{
    document.getElementById('tabela').innerHTML = '<div class="alert alert-danger">Erro: '+esc(e.message)+'</div>';
});
})();
</script>
