From a3f9788a2f1181a579315b7e6e6e9b57ff83c17f Mon Sep 17 00:00:00 2001 From: jirho Date: Tue, 24 Sep 2024 13:59:38 -0300 Subject: [PATCH] Se agregan docstrings a todas las funciones del modelo uader_mapuche persona. A las funciones que buscan por dni/telefono se les agrega el filtro del estado de las declaracione juradas, permitiendo que sea estado C (cerrada) o V (visada). --- app/Models/UaderMapuchePersona.php | 93 +++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 16 deletions(-) diff --git a/app/Models/UaderMapuchePersona.php b/app/Models/UaderMapuchePersona.php index 2e699e0..82c6114 100644 --- a/app/Models/UaderMapuchePersona.php +++ b/app/Models/UaderMapuchePersona.php @@ -6,61 +6,122 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use DB; +/** + * Modelo Eloquent para la tabla `uader_mapuche_persona`. + + * Este modelo representa los datos de las personas en el sistema Mapuche. + * @package App\Models + */ class UaderMapuchePersona extends Model { use HasFactory; protected $table = 'uader_mapuche_persona'; + /** + * Obtiene la lista de familiares asociados a una persona. + * + * Utiliza la relación 'hasMany' para recuperar los registros de la tabla 'uader_mapuche_familiares' + * relacionados con el identificador de la persona en la tabla actual. + * + * @return Illuminate\Database\Eloquent\Collection Una colección de objetos UaderMapucheFamiliares. + */ public function familiares() { return $this->hasMany(UaderMapucheFamiliares::class, 'id_uader_mapu_pers', 'id'); } + /** + * Obtiene la localidad a la que pertenece una persona. + * + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_ciudades' + * asociado al identificador de la localidad en la tabla actual. + * + * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheCiudades + * representando la localidad, o null si no se encuentra. + */ public function localidad() { return $this->hasOne(MapucheCiudades::class, 'id', 'localidad_id'); } + /** + * Obtiene la declaración jurada asociada a una persona. + * + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'uader_dj_persona' + * asociado al identificador de la declaración jurada en la tabla actual. + * + * @return Illuminate\Database\Eloquent\Model|null El objeto UaderDjPersona + * representando la declaración jurada, o null si no se encuentra. + */ public function declaracion_jurada(){ return $this->hasOne(UaderDjPersona::class, 'id', 'id_dj_persona'); } + /** + * Obtiene la provincia a la que pertenece una persona. + * + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_provincias' + * asociado al código de provincia en la tabla actual. + * + * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheProvincias + * representando la provincia, o null si no se encuentra. + */ public function provincia() { return $this->hasOne(MapucheProvincias::class, 'codigo_pcia', 'codigo_provincia'); } - static public function BuscarPersonaPorTelefono($cel) { + /** + * Busca los datos de una persona y su ultima declaracion juarada por su número de teléfono. + * + * Elimina los guiones y el prefijo '15' del número de teléfono antes de realizar la búsqueda. + * Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). + * Ordena los resultados por la fecha de cierre de la declaración jurada (descendente). + * + * @param string $telefono El número de teléfono de la persona a buscar. + * @return UaderMapuchePersona|null El objeto UaderMapuchePersona + * representando la persona encontrada, o null si no se encuentra. + */ + public static function BuscarPersonaPorTelefono($telefono) { + $persona = DB::table('uader_mapuche_persona') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') - ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$cel'") - // descomentar cuando termine el periodo de prueba - // ->where('uader_dj_persona.estado', '=', 'C') + ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'") + ->whereIn('uader_dj_persona.estado', ['C', 'V']) ->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->first(); - if (!empty($persona)) { - return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); - } else { + + if (empty($persona)) { return 0; } + + return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); } - static public function buscarPersonaPorDni($dni) + /** + * Busca los datos de una persona y su ultima designación por su número de documento (DNI). + * + * Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). + * Ordena los resultados por la fecha de cierre de la declaración jurada (descendente). + * + * @param string $dni El número de documento de la persona a buscar. + * @return UaderMapuchePersona|null El objeto UaderMapuchePersona + * representando la persona encontrada, o null si no se encuentra. + */ + public static function buscarPersonaPorDni($dni) { $persona = DB::table('uader_mapuche_persona') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') ->whereRaw("uader_mapuche_persona.nro_docum = '$dni'") - // descomentar cuando termine el periodo de prueba - // ->where('uader_dj_persona.estado', '=', 'C') + ->whereIn('uader_dj_persona.estado', ['C', 'V']) ->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->first(); - if (!empty($persona)) { - return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); + if (empty($persona)) { + return null; } - - return null; + + return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); } - - + }