// js/components/widgets/entradas/NotasEmTransitoPanel.jsx
// [v224.40 PRIVACY 20260526] Read-only · estoquistas Ibra/Munir/Karim vê Notas em Trânsito
// (NÃO cria/edita). Abbes (can_manage_notes_freteiro=true) vê NotasFreteiroPanel completo.
// Reusa lógica visual NotasFreteiroPanel mas SEM botões action (Registrar Entrada/Edit/Delete).
(function(){
  'use strict';
  function NotasEmTransitoPanel({notasFreteiro, products, inactiveLookup, suppliers, notaProgress, notaStatus}){
    var fmtD = window.fmtDate || function(d){ return d ? String(d).slice(0,10) : '—'; };
    // Filtra só notas NÃO completas (em trânsito = ainda recebendo)
    var safe = (notasFreteiro||[]).filter(function(n){
      try { return notaStatus(n) !== 'Completo'; }
      catch(_){ return true; }
    });
    if(safe.length === 0){
      return (
        <div style={{padding:50,textAlign:'center',color:'#9CA3AF',background:'#fff',borderRadius:12,border:'1px solid #E5E7EB'}}>
          ✓ Nenhuma nota em trânsito · todas entregues
        </div>
      );
    }
    return (
      <div style={{display:'grid',gridTemplateColumns:'1fr',gap:12}}>
        {safe.map(function(nf){
          var supp = (suppliers||[]).find(function(s){ return s.id === nf.supplier_id; });
          var progress = [];
          try { progress = notaProgress(nf) || []; } catch(_){ progress = []; }
          var completos = progress.filter(function(p){ return p.received >= p.expected; }).length;
          var pct = progress.length ? Math.round(completos/progress.length*100) : 0;
          return (
            <div key={nf.id} style={{background:'#fff',padding:14,borderRadius:10,border:'1px solid #E5E7EB',boxShadow:'0 1px 3px rgba(0,0,0,0.04)'}}>
              <div style={{display:'flex',justifyContent:'space-between',alignItems:'center',marginBottom:8,gap:8,flexWrap:'wrap'}}>
                <div style={{flex:'1 1 auto',minWidth:0}}>
                  <div style={{fontSize:14,fontWeight:600,color:'#111827'}}>📦 Nota {nf.nota_number || (nf.id ? nf.id.slice(0,8) : '?')}</div>
                  <div style={{fontSize:11,color:'#6B7280',marginTop:2}}>{supp ? supp.name : '—'} · {fmtD(nf.date)}</div>
                </div>
                <span style={{padding:'4px 10px',borderRadius:999,fontSize:11,fontWeight:600,background:'#FEF3C7',color:'#92400E',whiteSpace:'nowrap'}}>
                  🚛 Em trânsito
                </span>
              </div>
              <div style={{background:'#F3F4F6',height:8,borderRadius:4,overflow:'hidden',marginBottom:6}}>
                <div style={{height:'100%',width:pct+'%',background:'#B89840',transition:'width 0.3s'}}/>
              </div>
              <div style={{fontSize:11,color:'#6B7280'}}>
                {completos} de {progress.length} produto{progress.length!==1?'s':''} recebido{completos!==1?'s':''} ({pct}%)
              </div>
            </div>
          );
        })}
      </div>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.entradas = window.ZNX.widgets.entradas || {};
  window.ZNX.widgets.entradas.NotasEmTransitoPanel = NotasEmTransitoPanel;
})();
