@php $prefill = $prefill ?? []; $prefillContactoId = $prefill['contacto_id'] ?? null; $prefillUnidades = $prefill['unidades_atencion'] ?? []; $prefillFuncionarios = $prefill['funcionarios'] ?? []; $prefillTematicas = $prefill['tematicas'] ?? []; $prefillObservaciones = $prefill['observaciones'] ?? ''; // Resolver valores iniciales para unidad y contacto $prefillUnidadId = $prefillUnidades[0] ?? null; $oldUnidadId = old('unidades_atencion.0', $prefillUnidadId); $oldUnidadNombre = ''; if ($oldUnidadId) { $found = $unidades->firstWhere('id', $oldUnidadId); $oldUnidadNombre = $found?->nombre_comercial ?? ''; } $oldContactoId = old('contacto_id', $prefillContactoId); $prefillAccionId = isset($accionId) ? (int) $accionId : null; $oldAccionIds = array_map('intval', old('accion_ids', $prefillAccionId ? [$prefillAccionId] : [])); // Slots de hora (09:00 – 16:00, cada 15 min) $slots = []; for ($h = 9; $h <= 16; $h++) { foreach ([0, 15, 30, 45] as $m) { if ($h === 16 && $m > 0) { break; } $slots[] = sprintf('%02d:%02d', $h, $m); } } $oldHoraInicio = old('hora_inicio') ? \Carbon\Carbon::parse(old('hora_inicio'))->format('H:i') : ''; $oldHoraFin = old('hora_fin') ? \Carbon\Carbon::parse(old('hora_fin'))->format('H:i') : ''; @endphp {{-- Indicadores de pasos --}}
1 Participantes
—
2 Logística
—
3 Detalles

{{-- PASO 1: Participantes --}}
Participantes
{{-- Unidad de atención --}}
@error('unidades_atencion')
{{ $message }}
@enderror
{{ $oldUnidadNombre }}
{{-- Acciones vinculadas --}}
@include('reuniones.partials.buscador-acciones', [ 'acciones' => $acciones, 'selectedIds' => $oldAccionIds, 'startDisabled' => !$oldUnidadId, ])
{{-- Contacto --}}
@error('contacto_id')
{{ $message }}
@enderror
No hay contactos asociados a esta unidad.
{{-- Funcionarios --}}
@error('funcionarios')
{{ $message }}
@enderror
{{-- PASO 2: Logística --}}
Logística y Tiempo
{{-- Fecha --}}
Solo se pueden agendar reuniones de lunes a viernes.
La fecha de reunión no puede superar 15 años desde la fecha actual.
@error('fecha_reunion')
{{ $message }}
@enderror
{{-- Hora inicio (custom dropdown) --}}
{{ $oldHoraInicio ?: '--:--' }}
@error('hora_inicio')
{{ $message }}
@enderror
@foreach ($slots as $slot) @endforeach
{{-- Hora fin (custom dropdown) --}}
{{ $oldHoraFin ?: '--:--' }}
La hora de fin debe ser posterior a la hora de inicio.
@error('hora_fin')
{{ $message }}
@enderror
@foreach ($slots as $slot) @endforeach
{{-- Modalidad --}}
@error('modalidad')
{{ $message }}
@enderror
{{-- Lugar --}}
@error('lugar')
{{ $message }}
@enderror
{{-- PASO 3: Detalles --}}
Detalles de la Reunión
@error('tipo_reunion')
{{ $message }}
@enderror
@error('estado')
{{ $message }}
@enderror
@error('tematicas')
{{ $message }}
@enderror
@php $oldTematicasPaso = old('tematicas', $prefillTematicas); @endphp @foreach ($oldTematicasPaso as $tematicaValue) {{ $tematicaValue }} @endforeach
Máximo 1000 caracteres. Evite caracteres especiales o emojis.
@error('observaciones')
{{ $message }}
@enderror
{{-- Navegación del wizard --}}
@php $unidadesJson = $unidades->map(function ($u) { return ['id' => $u->id, 'nombre' => $u->nombre_comercial]; }); $contactosJson = $contactos->map(function ($c) { return [ 'id' => $c->id, 'nombre' => $c->user->nombre . ' ' . $c->user->apellido, 'email' => $c->user->email, 'unidades' => $c->unidadesAtencion->pluck('id')->values()->all(), ]; }); $funcionariosJson = $funcionarios->map(function ($f) { return ['id' => $f->id, 'nombre' => $f->user->nombre . ' ' . $f->user->apellido]; }); $prefillFuncsJson = array_map('intval', old('funcionarios', $prefillFuncionarios)); $prefillContactoJson = (int) $oldContactoId; $accionesJson = $acciones->map(function ($a) { return [ 'id' => $a->id, 'nombre' => $a->detalle_accion, 'unidades' => $a->planes->pluck('unidad_atencion_id')->filter()->unique()->values()->all(), ]; }); $prefillAccionesJson = $oldAccionIds; $tieneErroresPaso2 = $errors->has('fecha_reunion') || $errors->has('hora_inicio') || $errors->has('hora_fin') || $errors->has('modalidad') || $errors->has('lugar'); $tieneErroresPaso3 = $errors->has('tipo_reunion') || $errors->has('estado') || $errors->has('tematicas') || $errors->has('observaciones'); $wizardInitialStep = 1; if ($tieneErroresPaso3) { $wizardInitialStep = 3; } elseif ($tieneErroresPaso2) { $wizardInitialStep = 2; } @endphp @push('scripts') @endpush