@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) --}}
{{-- 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