@php use App\Models\Leite\Coletas\CargaAnalise; use App\Structural\Enums\Leite\CargaCompartimentoSituacaoEnum; use App\Structural\Enums\Leite\CargaCompartimentoStatusAnaliseEnum; use App\Structural\Enums\Tipagem; use Carbon\Carbon; @endphp @forelse ($registros as $registro) @php $pk = $registro->getKeyName(); $totalCols = count($registro->getCamposConsulta()) + 1; // +1 por causa da checkbox @endphp {{-- ROW PRINCIPAL --}} @foreach ($registro->getCamposConsulta() as $nomeCampo => $attribute) @if($attribute->getExhibitionOptions()->isViewableList()) @if($attribute->getRelation()) @php $relation = $attribute->getRelation(); $relationName = (string) $relation->getFunction(); $relationCampo = (string) $relation->getCampo(); $value = $registro->$relationName->$relationCampo ?? null; @endphp
{{ $value }}
@else @php $tipagem = $attribute->getInputOptions()->getTipagem(); if (!is_null($attribute->getInputOptions()->getMutator())) { $mutator = $attribute->getInputOptions()->getMutator(); $sValor = $registro->$mutator; } elseif ($tipagem == Tipagem::BOOLEAN || $tipagem == Tipagem::CHECKBOX || $tipagem == Tipagem::CHECKBOX_SWITCH) { $sValor = $registro->$nomeCampo ? 'Sim' : 'Não'; } elseif ($tipagem == Tipagem::SELECT) { $sValor = $attribute->getSelectOptions() ->getOpcaoByKey($registro->$nomeCampo); } else { if (is_string($registro->$nomeCampo) || is_numeric($registro->$nomeCampo) || is_null($registro->$nomeCampo)) { $sValor = $tipagem->addMascara($registro->$nomeCampo); } elseif ($registro->$nomeCampo instanceof Carbon) { if ($tipagem == Tipagem::DATA) { $sValor = $registro->$nomeCampo->format('d/m/Y'); } elseif ($tipagem == Tipagem::TIMESTAMP) { $sValor = $registro->$nomeCampo->format('d/m/Y H:i:s'); } } else { $sValor = $registro->$nomeCampo->label() ?? $registro->$nomeCampo->value; } } @endphp $tipagem == Tipagem::NUMERICO || $tipagem == Tipagem::INTEIRO || $tipagem == Tipagem::NUMERICO_NEGATIVO || $tipagem == Tipagem::INTEIRO_NEGATIVO ]) data-header="{{ $nomeCampo }}" data-value="{{ $registro->$nomeCampo }}" data-rowsize="{{ $attribute->getExhibitionOptions()->getRowSize() }}" title="{{ $sValor }}">
{{ $sValor }}
@endif @endif @endforeach @if($registro->cargaCompartimentos?->count()) {{-- NOVO HEADER (escondido) --}} ⟶ Comp. ID Nº Caneco Quantidade Densidade Situacao Status Analise {{-- ROW INTERNA --}} @foreach($registro->cargaCompartimentos as $comp) @php $compPk = $comp->getKeyName(); if($registro instanceof CargaAnalise) { $bgColor = match ($comp->situacao) { CargaCompartimentoSituacaoEnum::LIBERADO->value => '#e9f7ef', CargaCompartimentoSituacaoEnum::REJEITADO->value => '#fde2e2', default => null, }; } else { $bgColor = match ($comp->status_analise) { CargaCompartimentoStatusAnaliseEnum::DESCARREGADO->value => '#e9f7ef', default => null, }; } @endphp
{{-- Comp ID --}} #{{ $comp->id }} {{-- Numero Caneco --}} {{ $comp->numero_caneco ?? '-' }} {{-- Quantidade --}} {{ $comp->quantidade ?? '-' }} {{-- Densidade --}} {{-- Peso Calculado --}} {{ $comp->peso_calculado ?? '-' }} {{-- Situação --}} {{ CargaCompartimentoSituacaoEnum::tryFrom($comp->situacao)?->label() ?? '-' }} {{-- status_analiase --}} {{ CargaCompartimentoStatusAnaliseEnum::tryFrom($comp->status_analise)?->label() ?? '-' }} @endforeach @endif @empty Nenhum registro encontrado! @endforelse @if($withInfos) {{ $registros->links() }} @endif