|
|
|
@ -2,6 +2,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
namespace App\Models; |
|
|
|
namespace App\Models; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; |
|
|
|
use DB; |
|
|
|
use DB; |
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory; |
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory; |
|
|
|
use Illuminate\Database\Eloquent\Model; |
|
|
|
use Illuminate\Database\Eloquent\Model; |
|
|
|
@ -111,6 +112,60 @@ class UaderMapuchePersona extends Model |
|
|
|
return self::buscarPersona("dni", $dni); |
|
|
|
return self::buscarPersona("dni", $dni); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Obtiene los codigos de unidades académicas asociadas a la declaración jurada de la persona. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* Este método verifica si la persona tiene una declaración jurada. Si no la tiene, |
|
|
|
|
|
|
|
* se lanza una excepción indicando que no se encontró la declaración jurada. |
|
|
|
|
|
|
|
* Luego, se obtienen los cargos activos de la declaración jurada. Si no hay cargos, |
|
|
|
|
|
|
|
* se lanza una excepción indicando que la persona no tiene designaciones. |
|
|
|
|
|
|
|
* Finalmente, se construye un arreglo con las unidades académicas activas asociadas a los cargos, |
|
|
|
|
|
|
|
* asegurando que no haya duplicados, y se devuelve un array con el ID de la persona, su nombre |
|
|
|
|
|
|
|
* completo y las unidades académicas activas. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @return array Un arreglo que contiene el ID de la persona, su nombre completo y las unidades |
|
|
|
|
|
|
|
* académicas activas. |
|
|
|
|
|
|
|
* @throws NotFoundHttpException Si no se encuentra la declaración jurada o si la persona no tiene designaciones. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public function getUnidadesAcademicas() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$declaracionJurada = $this->declaracion_jurada; |
|
|
|
|
|
|
|
if (!$declaracionJurada) { |
|
|
|
|
|
|
|
throw new NotFoundHttpException( |
|
|
|
|
|
|
|
__("persona.DECLARACION_JURADA_NO_ENCONTRADA") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$cargos = $declaracionJurada |
|
|
|
|
|
|
|
->CargosGrupo() |
|
|
|
|
|
|
|
->where("estado", "A") |
|
|
|
|
|
|
|
->get(); |
|
|
|
|
|
|
|
if (empty($cargos)) { |
|
|
|
|
|
|
|
throw new NotFoundHttpException( |
|
|
|
|
|
|
|
__("persona.NO_TIENE_DESIGNACIONES") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Agrego la unidad académica |
|
|
|
|
|
|
|
$unidadesAcademicas = []; |
|
|
|
|
|
|
|
foreach ($cargos as $cargo) { |
|
|
|
|
|
|
|
$uaGuarani = trim($cargo->Sede->ua_guarani); // Eliminar espacios en blanco |
|
|
|
|
|
|
|
// Verificar que no exista ya en el arreglo |
|
|
|
|
|
|
|
if (!in_array($uaGuarani, $unidadesAcademicas)) { |
|
|
|
|
|
|
|
$unidadesAcademicas[] = $uaGuarani; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return [ |
|
|
|
|
|
|
|
"id" => $declaracionJurada->id_persona, |
|
|
|
|
|
|
|
"nombre" => |
|
|
|
|
|
|
|
ucwords(strtolower(trim($this->desc_nombr))) . |
|
|
|
|
|
|
|
" " . |
|
|
|
|
|
|
|
ucwords(strtolower(trim($this->desc_appat))), |
|
|
|
|
|
|
|
"unidades academicas activas" => $unidadesAcademicas, |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Busca una persona en el sistema según el tipo de filtro especificado (DNI o teléfono). |
|
|
|
* Busca una persona en el sistema según el tipo de filtro especificado (DNI o teléfono). |
|
|
|
* |
|
|
|
* |
|
|
|
|