{{-- 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']))
es_vacaciones))>

Día de vacaciones del trabajador: se ocultan horarios, lugar, descripción de obra, materiales y dietas. Use observaciones si necesita una nota.

@endif
Horas de trabajo
Mañana
Tarde

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).

{{-- Paro para comer + ticket de dieta en la misma tarjeta --}}
paro_comer))>

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')
{{ $message }}
@enderror @if($r?->ticket_dieta_path)
Archivo actual: descargar
@endif
El servidor solo admite el fichero si la jornada cumple las reglas de pausa de comida.

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')
{{ $message }}
@enderror

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.

{{-- /#registro-detalle-jornada --}} @once @push('css') @endpush @push('scripts') @endpush @endonce