@extends('admin.base-chamados') @section('page_title', 'Chamados |Admin Logística') @section('styles') @endsection @section('nav') @include('admin.partials.nav-logistica') @endsection {{-- ── Topbar ── --}} @section('page-header')

Logística | Expedição

@endsection {{-- ── Stat cards ── --}} @section('stat-cards') @php $movimento = \App\Helpers\ChamadoHelper::movimentoDoDia($daily_chamado); $abertosHoje = $movimento['abertos']; $fechadosHoje = $movimento['solucionados']; // Contados no banco: $chamados é só a página visível da listagem. $semInteracao = $cardSemInteracao; // Abertos há mais de 5 dias e ainda sem técnico assumindo. $emAndamento = $cardArrastando; @endphp

Atividade

{{ $abertosHoje }} {{ $fechadosHoje }}

abertos / fechados hoje

Em andamento

{{ $emAndamento }}

pendentes há +5 dias

Sem interação

{{ $semInteracao }}

chamados há +3 dias parados

@endsection {{-- ── Filtros do dropdown principal ── --}} @section('toolbar-filters') Todos Seus Chamados Em aberto Em andamento Planejados Solucionados @endsection {{-- ── Filtros avançados: tipo de chamado → categoria → categoria do acessório solicitado, filial, data de abertura. Somem junto com a aba "Solucionados" — valem só para a fila em aberto. ── --}} @section('toolbar-extra') @if (in_array(auth()->user()->level, [2, 99])) Acesso @endif @endsection @section('scripts-extra') (function () { var faTipo = document.getElementById('fa-tipo'); var faCat = document.getElementById('fa-categoria'); var faCatAc = document.getElementById('fa-categoria-acessorio'); var faFilial = document.getElementById('fa-filial'); var faIni = document.getElementById('fa-data-inicio'); var faFim = document.getElementById('fa-data-fim'); var faLimpar = document.getElementById('fa-limpar'); var faBtn = document.getElementById('filtro-avancado-btn'); var faDrop = document.getElementById('filtro-avancado-drop'); {{-- Memória dos filtros avançados: sobrevive a reload/navegação, por navegador. Guarda só os valores dos selects/datas — nada sensível. --}} var FA_STORAGE_KEY = 'logistica.filtroAvancado.v1'; function salvarFiltros() { try { localStorage.setItem(FA_STORAGE_KEY, JSON.stringify({ tipo: faTipo.value, cat: faCat.value, catAc: faCatAc.value, filial: faFilial.value, ini: faIni.value, fim: faFim.value })); } catch (e) { /* localStorage indisponível — filtro só não persiste */ } } function limparFiltrosSalvos() { try { localStorage.removeItem(FA_STORAGE_KEY); } catch (e) {} } {{-- Repõe os selects a partir da memória e devolve true se havia algo salvo. --}} function restaurarFiltros() { var raw; try { raw = localStorage.getItem(FA_STORAGE_KEY); } catch (e) { return false; } if (!raw) return false; var s; try { s = JSON.parse(raw); } catch (e) { limparFiltrosSalvos(); return false; } if (!s || typeof s !== 'object') return false; faTipo.value = s.tipo || ''; faCat.value = s.cat || ''; faCatAc.value = s.catAc || ''; faFilial.value = s.filial || ''; faIni.value = s.ini || ''; faFim.value = s.fim || ''; if (faIni.value) faFim.min = faIni.value; if (faFim.value) faIni.max = faFim.value; return !!(faTipo.value || faCat.value || faCatAc.value || faFilial.value || faIni.value || faFim.value); } function atualizarLabelAvancado() { var n = 0; if (chamadoFiltroTipo) n++; if (chamadoFiltroCategoria) n++; if (chamadoFiltroCategoriaAcessorio) n++; if (chamadoFiltroFilial) n++; if (chamadoFiltroDataInicio || chamadoFiltroDataFim) n++; $(faBtn).find('.saas-filter-label').text(n ? 'Filtros (' + n + ')' : 'Mais filtros'); $(faLimpar).prop('disabled', n === 0); } function sincronizarVars() { chamadoFiltroTipo = faTipo.value; chamadoFiltroCategoria = faCat.value; chamadoFiltroCategoriaAcessorio = faCatAc.value; chamadoFiltroFilial = faFilial.value; chamadoFiltroDataInicio = faIni.value; chamadoFiltroDataFim = faFim.value; } function aplicarAvancado() { sincronizarVars(); salvarFiltros(); atualizarLabelAvancado(); loadChamados(1); } [faTipo, faCat, faCatAc, faFilial, faIni, faFim].forEach(function (el) { el.addEventListener('change', aplicarAvancado); }); {{-- O Bootstrap fecha o .dropdown-menu em qualquer clique que não seja num /