Browse Source

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).
main
jirho 1 year ago
parent
commit
a3f9788a2f
  1. 93
      app/Models/UaderMapuchePersona.php

93
app/Models/UaderMapuchePersona.php

@ -6,61 +6,122 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use DB; 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 class UaderMapuchePersona extends Model
{ {
use HasFactory; use HasFactory;
protected $table = 'uader_mapuche_persona'; 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() { public function familiares() {
return $this->hasMany(UaderMapucheFamiliares::class, 'id_uader_mapu_pers', 'id'); 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() { public function localidad() {
return $this->hasOne(MapucheCiudades::class, 'id', 'localidad_id'); 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(){ public function declaracion_jurada(){
return $this->hasOne(UaderDjPersona::class, 'id', 'id_dj_persona'); 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() { public function provincia() {
return $this->hasOne(MapucheProvincias::class, 'codigo_pcia', 'codigo_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') $persona = DB::table('uader_mapuche_persona')
->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id')
->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj')
->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$cel'") ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'")
// descomentar cuando termine el periodo de prueba ->whereIn('uader_dj_persona.estado', ['C', 'V'])
// ->where('uader_dj_persona.estado', '=', 'C')
->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->orderBy('uader_dj_persona.fecha_cierre', 'desc')
->first(); ->first();
if (!empty($persona)) {
return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); if (empty($persona)) {
} else {
return 0; 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') $persona = DB::table('uader_mapuche_persona')
->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id')
->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj')
->whereRaw("uader_mapuche_persona.nro_docum = '$dni'") ->whereRaw("uader_mapuche_persona.nro_docum = '$dni'")
// descomentar cuando termine el periodo de prueba ->whereIn('uader_dj_persona.estado', ['C', 'V'])
// ->where('uader_dj_persona.estado', '=', 'C')
->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->orderBy('uader_dj_persona.fecha_cierre', 'desc')
->first(); ->first();
if (!empty($persona)) { if (empty($persona)) {
return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); return null;
} }
return null; return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first();
} }
} }

Loading…
Cancel
Save