@extends('layouts.app') @section('title', 'Leituras Grid - ' . $barragem->nome) @push('styles') @endpush @section('content') @php // Verificar se barragem usa nivel hidrometrico $temEscalaNpa = $barragem->escala_npa && $barragem->cota_npa; $inicio = request('data_inicio') ? \Carbon\Carbon::parse(request('data_inicio')) : now()->startOfMonth(); $fim = request('data_fim') ? \Carbon\Carbon::parse(request('data_fim')) : now()->endOfMonth(); $totalDias = $inicio->diffInDays($fim) + 1; // Contar leituras existentes no período $leiturasExistentes = $barragem->leituras() ->whereBetween('data_leitura', [$inicio, $fim]) ->get(); $diasComLeitura = $leiturasExistentes->count(); $percentualPreenchido = $totalDias > 0 ? round(($diasComLeitura / $totalDias) * 100) : 0; // Última leitura $ultimaLeitura = $leiturasExistentes->sortByDesc('data_leitura')->first(); // Médias do período $cotaMedia = $leiturasExistentes->avg('cota_actual'); $volumeMedia = $leiturasExistentes->avg('volume_actual'); $enchimentoMedia = $leiturasExistentes->avg('percentagem_enchimento'); @endphp

Leituras - Modo Grid

{{ $barragem->nome }} {{ $barragem->codigo }} {{ $inicio->format('d/m/Y') }} - {{ $fim->format('d/m/Y') }}

Preenchimento

{{ $diasComLeitura }}/{{ $totalDias }}

Cota Média

{{ $cotaMedia ? number_format($cotaMedia, 2) : '--' }} m
NPA: {{ $barragem->cota_npa ?? '--' }}m • NME: {{ $barragem->cota_nme ?? '--' }}m

Enchimento Médio

{{ $enchimentoMedia ? number_format($enchimentoMedia, 1) : '--' }}%
@if($ultimaLeitura) Último: {{ number_format($ultimaLeitura->percentagem_enchimento ?? 0, 1) }}% @else Sem dados @endif

Modificações

0
linhas pendentes de salvar
@if($leiturasExistentes->count() >= 2)

Tendência do Período

Cota
NPA
NME
@php $cotas = $leiturasExistentes->sortBy('data_leitura')->pluck('cota_actual')->filter()->values(); $minCota = $cotas->min() ?? 0; $maxCota = $cotas->max() ?? 100; $range = max($maxCota - $minCota, 1); // Ajustar para incluir NPA e NME no range if ($barragem->cota_npa) $maxCota = max($maxCota, $barragem->cota_npa); if ($barragem->cota_nme) $minCota = min($minCota, $barragem->cota_nme); $range = max($maxCota - $minCota, 1); $width = 100; $height = 100; $points = []; $count = $cotas->count(); foreach ($cotas as $i => $cota) { $x = $count > 1 ? ($i / ($count - 1)) * $width : 50; $y = $height - (($cota - $minCota) / $range) * $height; $points[] = round($x, 1) . ',' . round($y, 1); } // NPA e NME lines $npaPct = $barragem->cota_npa ? $height - (($barragem->cota_npa - $minCota) / $range) * $height : null; $nmePct = $barragem->cota_nme ? $height - (($barragem->cota_nme - $minCota) / $range) * $height : null; @endphp @if($npaPct !== null) @endif @if($nmePct !== null) @endif @if(count($points) > 1) @endif
{{ number_format($maxCota, 1) }}m
{{ number_format($minCota, 1) }}m
@endif
Parâmetros: @if($temEscalaNpa)
Escala NPA: {{ number_format($barragem->escala_npa, 2) }}m
@endif
NPA: {{ $barragem->cota_npa ?? '--' }}m
NME: {{ $barragem->cota_nme ?? '--' }}m
Vol. Máx: {{ $barragem->volume_maximo ? number_format((float)$barragem->volume_maximo, 2) . ' Mm³' : '--' }}
Vol. Morto: {{ $barragem->volume_morto ? number_format((float)$barragem->volume_morto, 2) . ' Mm³' : '--' }}
a
Pronto
@if($temEscalaNpa) @else @endif @for($data = $inicio->copy(); $data->lte($fim); $data->addDay()) @php $leitura = $barragem->leituras() ->whereDate('data_leitura', $data) ->first(); // Determinar classe de status baseado na percentagem de enchimento $statusClass = ''; $hasData = $leitura && ($leitura->cota_actual || $leitura->nivel_hidrometrico); if ($hasData && $leitura->percentagem_enchimento !== null) { if ($leitura->percentagem_enchimento >= 90) { $statusClass = 'nivel-critico'; } elseif ($leitura->percentagem_enchimento >= 70) { $statusClass = 'nivel-alerta'; } else { $statusClass = 'nivel-normal'; } } @endphp @php $isHoje = $data->isToday(); @endphp @if($temEscalaNpa) @else @endif @endfor
Data Hora Nível (m) Cota (m) Cota (m) Volume (Mm³) % Ench. % Total Variação Afluente Efluente Precip. Obs.
@if($isHoje) HOJE @endif @php $horaGrid = $leitura && $leitura->hora_leitura ? \Carbon\Carbon::parse($leitura->hora_leitura)->format('H:i') : '06:00'; @endphp
@if($temEscalaNpa) Digite o NÍVEL na régua → Cota, Volume e % calculados automaticamente @else Digite a COTA → Volume e % calculados automaticamente @endif Tab Próx. célula Enter Próx. linha Ctrl+S Salvar <70% 70-90% >90%
@endsection