Files
Sio-Back/app/Http/Controllers/SupervisorOperaciones/JornadaController.php
SIO Admin de656b70a2 feat: Actualizacion sistema SIO Backend
- Nuevo modulo de historial de cambios (ServicioHistorial)
- Observer para tracking automatico de cambios en servicios
- Correccion de variables auxiliar en ServiciosController
- Actualizacion de configuraciones y migraciones
- Endpoint para consultar historial de cambios

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:01:55 +00:00

69 lines
1.9 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\SupervisorOperaciones;
use App\Models\BitacoraLaboral;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use DB;
use Log;
class JornadaController extends Controller
{
public function inicioJornada(Request $request)
{
$user = Auth::user();
$fecha = Carbon::now()->toDateTimeString();
DB::beginTransaction();
try {
$bitacora = BitacoraLaboral::where('usuario_id', $user->id)
->whereNull('fecha_hora_fin')
->first();
if($bitacora){
DB::rollBack();
return response()->unprocessable('JORNADA_YA_INICIADA', [$bitacora->id]);
}
$bitacora_laboral = BitacoraLaboral::create(['fecha_hora_ini' => $fecha, 'usuario_id' => $user->id]);
DB::commit();
return response()->success($bitacora_laboral);
} catch (\Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
return response()->unprocessable('Error', ['Error al guardar el inicio de jornada.']);
}
}
public function finalizarJornada(Request $request, $id){
$fecha = Carbon::now()->toDateTimeString();
DB::beginTransaction();
try {
$jornada = BitacoraLaboral::where('id',$id)->first();
if($jornada->fecha_hora_fin){
DB::rollBack();
return response()->unprocessable('Error', ['La jornada ya se encuentra finalizada.']);
}
$jornada->update(['fecha_hora_fin' => $fecha]);
DB::commit();
return response()->success(['result' => 'ok']);
} catch (\Exception $e) {
DB::rollBack();
return response()->unprocessable('Error', ['Error al guardar el fin de jornada.']);
}
}
}