From f0d0f74abc094161d18b517773f5f77b777b7506 Mon Sep 17 00:00:00 2001 From: jirho Date: Wed, 26 Feb 2025 00:38:04 -0300 Subject: [PATCH] Fix, se traian mal los horarios. Se tuvo que ajustar la forma de relacionar las tablas uader_cargos_grupos con uader_horarios_comunes (no es solamente con id_declaracion_jurada, sino que habai que usar una tabla relacionarl uader_grupo_cargo_hora) . --- src/app/Http/Controllers/ApiPersonaController.php | 7 +++++-- src/app/Models/UaderCargosGrupo.php | 4 +++- src/app/Models/UaderGrupoCargoHora.php | 5 ++++- src/app/Models/UaderMapuchePersona.php | 6 ++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/app/Http/Controllers/ApiPersonaController.php b/src/app/Http/Controllers/ApiPersonaController.php index d3af20f..43f4bd6 100644 --- a/src/app/Http/Controllers/ApiPersonaController.php +++ b/src/app/Http/Controllers/ApiPersonaController.php @@ -743,6 +743,7 @@ class ApiPersonaController extends Controller ->CargosGrupo() ->where("estado", "A") ->get(); + if (empty($cargos)) { return response()->json( ["error" => trans("persona.NO_TIENE_DESIGNACIONES")], @@ -755,18 +756,20 @@ class ApiPersonaController extends Controller $unidadAcademica = null; foreach ($cargos as $cargo) { + if ($unidadAcademica == null) { $unidadAcademica = $cargo->Sede->ua_guarani; } if ( $cargo->id_funcion == $funcion && - $cargo->Sede->uacad == $sede + $cargo->sede == $sede ) { // Si vino - foreach ($cargo->GrupoHorario as $grupo_horario) { + foreach ($grupo_horario->Horarios as $horario) { + if ( $horario->dia_semanal == $dia && $horario->tipo_horario == $tipoHorario diff --git a/src/app/Models/UaderCargosGrupo.php b/src/app/Models/UaderCargosGrupo.php index c42152a..9d00073 100644 --- a/src/app/Models/UaderCargosGrupo.php +++ b/src/app/Models/UaderCargosGrupo.php @@ -9,6 +9,7 @@ class UaderCargosGrupo extends Model { use HasFactory; + protected $primaryKey = 'id'; protected $table = 'uader_cargos_grupo'; public function Sede() @@ -18,6 +19,7 @@ class UaderCargosGrupo extends Model public function GrupoHorario() { - return $this->hasMany(UaderGrupoCargoHora::class, 'id_declaracion_jurada', 'id_declaracion_jurada'); + return $this->hasMany(UaderGrupoCargoHora::class, 'id_declaracion_jurada', 'id_declaracion_jurada') + ->where('id_grupo_cargo', $this->id_grupo_cargo); } } diff --git a/src/app/Models/UaderGrupoCargoHora.php b/src/app/Models/UaderGrupoCargoHora.php index e48d610..ebf0de6 100644 --- a/src/app/Models/UaderGrupoCargoHora.php +++ b/src/app/Models/UaderGrupoCargoHora.php @@ -9,10 +9,13 @@ class UaderGrupoCargoHora extends Model { use HasFactory; + protected $primaryKey = 'id'; + protected $table = 'uader_grupo_cargo_hora'; public function Horarios() { - return $this->hasMany(UaderHorariosComunes::class, 'id_declaracion_jurada', 'id_declaracion_jurada'); + return $this->hasMany(UaderHorariosComunes::class, 'id_declaracion_jurada', 'id_declaracion_jurada') + ->where('id_grupo_hora', $this->id_grupo_hora); } } diff --git a/src/app/Models/UaderMapuchePersona.php b/src/app/Models/UaderMapuchePersona.php index ce2894c..cbfde6e 100644 --- a/src/app/Models/UaderMapuchePersona.php +++ b/src/app/Models/UaderMapuchePersona.php @@ -140,7 +140,8 @@ class UaderMapuchePersona extends Model ->CargosGrupo() ->where("estado", "A") ->get(); - if (empty($cargos)) { + + if ($cargos->isEmpty()) { throw new NotFoundHttpException( __("persona.NO_TIENE_DESIGNACIONES") ); @@ -193,7 +194,8 @@ class UaderMapuchePersona extends Model ->CargosGrupo() ->where("estado", "A") ->get(); - if (empty($cargos)) { + + if ($cargos->isEmpty()) { throw new NotFoundHttpException( __("persona.NO_TIENE_DESIGNACIONES") );