@forelse($planes as $plan)
@php
$planEliminado = method_exists($plan, 'trashed') && $plan->trashed();
$estadoPlan = $planEliminado
? 'eliminado'
: ($plan->estado instanceof PlanAccionEstadoEnum
? $plan->estado->value
: (string) $plan->estado);
$colorBordePlan = $esVistaTotal
? '#0d6efd'
: match ($estadoPlan) {
PlanAccionEstadoEnum::ASIGNADO->value => '#ffc107',
PlanAccionEstadoEnum::EN_PROCESO->value => '#0d6efd',
PlanAccionEstadoEnum::FINALIZADO->value => '#198754',
'eliminado' => '#dc3545',
default => $colorBordeCards,
};
$colorBordeContenedor = $esVistaTotal
? 'rgba(13,110,253,.35)'
: match ($estadoPlan) {
PlanAccionEstadoEnum::ASIGNADO->value => 'rgba(255,193,7,.38)',
PlanAccionEstadoEnum::EN_PROCESO->value => 'rgba(13,110,253,.35)',
PlanAccionEstadoEnum::FINALIZADO->value => 'rgba(25,135,84,.35)',
'eliminado' => 'rgba(220,53,69,.35)',
default => 'rgba(13,110,253,.35)',
};
$colorBordeInicialPlan = match ($estadoPlan) {
PlanAccionEstadoEnum::ASIGNADO->value => 'rgba(255,193,7,.42)',
PlanAccionEstadoEnum::EN_PROCESO->value => 'rgba(13,110,253,.38)',
PlanAccionEstadoEnum::FINALIZADO->value => 'rgba(25,135,84,.38)',
'eliminado' => 'rgba(220,53,69,.36)',
default => 'rgba(13,110,253,.32)',
};
$estiloCardPlan = "border:0;border-left:4px solid {$colorBordePlan};";
if (!$esVistaTotal) {
$estiloCardPlan .= "background-color:{$colorFondoCards};box-shadow:0 .35rem 1rem {$colorSombraCards},0 .18rem .5rem rgba(15,23,42,.05)!important;";
}
$estiloInicialPlan = $esVistaTotal
? 'background:linear-gradient(135deg,#e8f1ff,#d9e8ff);color:#0d4cc0;'
: "background:#ffffff;color:#0d4cc0;border:1px solid {$colorBordeInicialPlan};";
$estadoEnum =
$plan->estado instanceof PlanAccionEstadoEnum
? $plan->estado
: PlanAccionEstadoEnum::tryFrom($plan->estado);
$acciones = $plan->acciones ?? collect();
$accionesTotal = $acciones->count();
$accionesFinalizadas = $acciones->where('estado', 'finalizada')->count();
$accionesTexto = $acciones->pluck('detalle_accion')->join(' ');
$busquedaRow = mb_strtolower(
trim(
($plan->titulo ?? '') .
' ' .
($plan->unidadAtencion->nombre_comercial ?? '') .
' ' .
($plan->descripcion ?? '') .
' ' .
($estadoEnum?->label() ?? '') .
' ' .
$accionesTexto,
),
);
@endphp
{{ mb_substr($plan->titulo, 0, 1) }}
{{ \Illuminate\Support\Str::limit($plan->titulo, 120) }}
@if ($plan->fecha_vencimiento)
Vencimiento:
{{ $plan->fecha_vencimiento?->format('d/m/Y') }}
@endif
@if ($planEliminado && !$filtroEliminados)
Eliminado
@endif
Unidad:
{{ \Illuminate\Support\Str::limit($plan->unidadAtencion->nombre_comercial ?? '—', 100) }}
@if ($planEliminado)
· Eliminado: {{ $plan->deleted_at?->format('d/m/Y') }}
@endif
@if ($puedeGestionarPlanes)
@if ($planEliminado)
@else
@endif
@endif
{{ $accionesTotal }} {{ $accionesTotal === 1 ? 'acción' : 'acciones' }}
{{ $accionesFinalizadas }} finalizada{{ $accionesFinalizadas === 1 ? '' : 's' }}
@if ($plan->descripcion)
{{ \Illuminate\Support\Str::limit($plan->descripcion, 220) }}
@endif
@if ($puedeGestionarPlanes && !$planEliminado)
@endif
@empty
{{ $filtroEliminados ? 'No hay planes eliminados.' : 'No hay planes de acción creados.' }}
@endforelse