Browse Source

Funcion en uader mapuche persona para obtener los codigos de unidades academicas en donde trabaja actualmente

main
jirho 1 year ago
parent
commit
a0ad24d56b
  1. 55
      src/app/Models/UaderMapuchePersona.php

55
src/app/Models/UaderMapuchePersona.php

@ -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).
* *

Loading…
Cancel
Save