{{-- Horario laboral primero; transporte opcional con interruptores; dieta dinámica. --}} @php $r = $registro ?? null; $filled = static fn ($v) => $v !== null && $v !== ''; $oldEm = old('entrada_manana', $r?->entrada_manana ? substr($r->entrada_manana, 0, 5) : ''); $oldSm = old('salida_manana', $r?->salida_manana ? substr($r->salida_manana, 0, 5) : ''); $oldEt = old('entrada_tarde', $r?->entrada_tarde ? substr($r->entrada_tarde, 0, 5) : ''); $oldSt = old('salida_tarde', $r?->salida_tarde ? substr($r->salida_tarde, 0, 5) : ''); $t1a = old('entrada_transporte_1', $r?->entrada_transporte_1 ? substr($r->entrada_transporte_1, 0, 5) : ''); $t1b = old('salida_transporte_1', $r?->salida_transporte_1 ? substr($r->salida_transporte_1, 0, 5) : ''); $t2a = old('entrada_transporte_2', $r?->entrada_transporte_2 ? substr($r->entrada_transporte_2, 0, 5) : ''); $t2b = old('salida_transporte_2', $r?->salida_transporte_2 ? substr($r->salida_transporte_2, 0, 5) : ''); $hayT1 = $filled($t1a) || $filled($t1b); $hayT2 = $filled($t2a) || $filled($t2b); $hayTrans = $hayT1 || $hayT2; $usarTransBool = old('usar_transporte', $hayTrans ? '1' : '0') === '1'; $segManBool = old('transporte_seg_manana', $hayT1 ? '1' : '0') === '1'; $segTarBool = old('transporte_seg_tarde', $hayT2 ? '1' : '0') === '1'; $tieneTicketPrevio = (bool) ($r?->ticket_dieta_path); $paroComerIni = (bool) old('paro_comer', $r?->paro_comer); $mostrarBloqueTicket = $tieneTicketPrevio || $paroComerIni; $aplicaTopeDietaTicket = Auth::user()->aplicaTopeDietaPorTicketEnRegistro(); $dietaMaxUsuario = $aplicaTopeDietaTicket ? Auth::user()->dieta_max_importe_dia : null; $dietaMaxNum = $dietaMaxUsuario !== null && $dietaMaxUsuario !== '' ? (float) $dietaMaxUsuario : null; $dietaFijaMensual = Auth::user()->dieta_fija_mensual_euros; @endphp {{-- Vacaciones primero: al marcarla se oculta el detalle de obra (JS + ids registro-*) --}} @if (Auth::user()->hasAnyRole(['oficina', 'gestor', 'admin']))
Día de vacaciones del trabajador: se ocultan horarios, lugar, descripción de obra, materiales y dietas. Use observaciones si necesita una nota.
Con mañana y tarde partidos, la pausa es el hueco entre salida mañana y entrada tarde (no use el interruptor de «hora de comida» de abajo).
Marque la casilla si utilizo la hora de comida. Si no la utilizo, no marque la casilla.
Opcional: puede adjuntarlo al guardar el registro o más tarde al editarlo.
@error('ticket_dieta')Obligatorio (mayor que 0) si marca «Hora de comida», aunque aún no adjunte el ticket.
0) max="{{ number_format($dietaMaxNum, 2, '.', '') }}" @endif> @if($dietaMaxNum !== null && $dietaMaxNum > 0)Máximo permitido en su cuenta: {{ number_format($dietaMaxNum, 2, ',', '.') }} €
@elseif($dietaFijaMensual !== null && (float) $dietaFijaMensual > 0)Tiene dietas fijas mensuales pactadas ({{ number_format((float) $dietaFijaMensual, 2, ',', '.') }} €/mes); no se aplica tope por ticket en este campo.
@endif @error('importe_dieta')Los festivos (domingos y fechas dadas de alta por oficina/gestión) se aplican solos según la fecha del trabajo.
Fuera del tiempo en obra / cliente.