@extends('layouts.app') @section('title', "SNMP - {$materiel->nom} - PrintManager") @push('styles') @endpush @section('content')

{{ $materiel->nom }}

@include('partials.nav-arrows', [ 'navRoute' => 'snmp.show', 'navParam' => 'materiel', 'navFilters' => ['marque_id', 'modele_id', 'search', 'sort', 'dir'], ]) Relever Retour
@include('partials.session-alerts')
Marque : {{ $materiel->marque->nom ?? '-' }}
Modèle : {{ $materiel->modele->nom ?? '-' }}
IP : @if($materiel->adresse_ip){{ $materiel->adresse_ip }}@else-@endif
Localisation : {{ $materiel->localisation ?? '-' }}
@if($releves->isEmpty())

Aucun relevé SNMP pour ce matériel. Lancez un premier relevé.

@else @php $colorOrder = ['black' => 0, 'cyan' => 1, 'magenta' => 2, 'yellow' => 3]; $colorLeft = []; $compteurEntries = []; $rightEntries = []; foreach ($releves as $index => $entries) { $latest = $entries->first(); if ($latest && $latest->type_consommable === 'dechet_toner' && $index >= 100) { continue; } if ($latest && $latest->type_consommable === 'compteur') { $compteurEntries[] = ['index' => $index, 'entries' => $entries]; continue; } $descLow = mb_strtolower($latest->description ?: ''); $isStaple = str_contains($descLow, 'staple') || str_contains($descLow, 'agrafe'); $isToner = !$isStaple && in_array($latest->type_consommable, ['toner', 'encre']); if ($isToner) { $_four = \App\Services\SnmpNameMapper::findFourniture($materiel, $latest); $color = $_four ? (\App\Services\SnmpNameMapper::extractColor($_four->nom) ?? \App\Services\SnmpNameMapper::extractColor($latest->description)) : \App\Services\SnmpNameMapper::extractColor($latest->description); if ($color && isset($colorOrder[$color])) { $colorLeft[] = ['index' => $index, 'entries' => $entries, 'order' => $colorOrder[$color]]; } else { $rightEntries[] = ['index' => $index, 'entries' => $entries]; } } else { $rightEntries[] = ['index' => $index, 'entries' => $entries]; } } usort($colorLeft, fn($a, $b) => $a['order'] - $b['order']); $leftEntries = $colorLeft; // Waste toner en haut de la colonne de droite usort($rightEntries, fn($a, $b) => ($a['entries']->first()->type_consommable === 'dechet_toner' ? 0 : 1) <=> ($b['entries']->first()->type_consommable === 'dechet_toner' ? 0 : 1)); // Dispatch compteurs : N&B / couleur $cNb = null; $cCouleur = null; foreach ($compteurEntries as $ce) { $desc = mb_strtolower($ce['entries']->first()->description ?: ''); if (str_contains($desc, 'n&b') || str_contains($desc, 'noir') || str_contains($desc, 'black')) { $cNb = $ce; } elseif (str_contains($desc, 'couleur') || str_contains($desc, 'color')) { $cCouleur = $ce; } else { $cNb = $cNb ?? $ce; } } @endphp @if($compteurEntries)
Compteurs d'impression
@if($cNb) @php $e = $cNb['entries']->first(); @endphp
N&B
{{ number_format($e->niveau_actuel, 0, ',', ' ') }}
pages
@endif @if($cCouleur) @php $e = $cCouleur['entries']->first(); @endphp
Couleur
{{ number_format($e->niveau_actuel, 0, ',', ' ') }}
pages
@endif
@endif
@foreach($leftEntries as $p) @php $index = $p['index']; $entries = $p['entries']; $latest = $entries->first(); $isPrinthead = false; @endphp @include('snmp._card') @endforeach
@foreach($rightEntries as $o) @php $index = $o['index']; $entries = $o['entries']; $latest = $entries->first(); $isPrinthead = $index == 999; @endphp @include('snmp._card') @endforeach
@endif
@endsection