You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

143 lines
5.1 KiB

<?php
namespace App\Http\Controllers;
use App\Models\UaderMapuchePersona;
use App\Models\UaderDjPersona;
use Illuminate\Http\Request;
class ApiPersonaController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return json_encode(['reply' => 'hola']);
}
public function store(Request $request)
{
$input = $request->input();
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($input['cel']);
$dia = $input['dia'];
# lanzar error si es invalido o no vino
$tipo_horario = $input['tipo_horario'];
# lanzar error si es invalido o no vino
if (!empty($persona)) {
$funciones = array();
$declaracion_jurada = UaderDjPersona::find($persona->id_dj_persona);
$designaciones = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get();
foreach ($designaciones as $designacion) {
$horarios = array();
#dd( $designaciones);
foreach ($designacion->GrupoHorario as $grupo_horario) {
foreach ($grupo_horario->Horarios as $horario) {
if ($horario->dia_semanal == $dia && $horario->tipo_horario == $tipo_horario){ # dia del horario es el mismo que el dia actual y que no sea horario de disposicion
$horarios[] = [
'tipo' => $horario->tipo_horario,
'hora_entra' => $horario->hora_entra,
'hora_sale' => $horario->hora_sale
];
}
}
}
# si bien las designaciones son distintas los datos requeridos en esta ruta son pocos y solo necesitamos las designaciones (funciones) con datos diferentes
$nueva_funcion = ['funcion' => $designacion->id_funcion, 'ua' => intval($designacion->Sede->ua_guarani), 'horarios' => $horarios];
if (!in_array($nueva_funcion, $funciones)) {
$funciones[] = $nueva_funcion;
}
}
$datos = array(
'id' => $declaracion_jurada->id_persona,
'dni' => $persona->nro_docum,
'apellido' => ucwords(strtolower(trim($persona->desc_appat))),
'nombres' => ucwords(strtolower(trim($persona->desc_nombr))),
'telefono' => '549' . preg_replace('([^0-9])', '', trim($persona->telefono_celular)),
'email' => strtolower(trim($persona->correo_electronico)),
'funciones' => $funciones,
);
return response()->json($datos);
} else {
return response()->json(array(), 404);
}
}
public function buscar($dni)
{
$persona = UaderMapuchePersona::buscarPersonaPorDni($dni);
if (!empty($persona)) {
$dj = UaderDjPersona::find($persona->id_dj_persona);
$datos = array(
'id' => $dj->id_persona,
'dni' => $persona->nro_docum,
'apellido' => ucwords(strtolower(trim($persona->desc_appat))),
'nombres' => ucwords(strtolower(trim($persona->desc_nombr))),
'telefono' => '549' . preg_replace('([^0-9])', '', trim($persona->telefono_celular)),
'email' => strtolower(trim($persona->correo_electronico)),
'domicilio' => array(
'calle' => strtolower(trim($persona->calle)),
'numero' => strtolower(trim($persona->numero)),
'piso' => strtolower(trim($persona->piso)),
'dpto_oficina' => strtolower(trim($persona->dpto_oficina)),
'calles_entre' => strtolower(trim($persona->calles_entre)),
'domicilio_referencia' => strtolower(trim($persona->domicilio_referencia)),
'zona_paraje' => strtolower(trim($persona->zona_paraje)),
'casa_nro' => strtolower(trim($persona->casa_nro)),
'casa_manzana' => strtolower(trim($persona->casa_manzana)),
'localidad' => ucfirst(strtolower(trim($persona->Localidad->desc_localidad))),
'provincia' => trim($persona->Provincia->descripcion_pcia),
)
);
return response()->json($datos);
} else {
return response()->json(array(), 404);
}
}
/**
* Display the specified resource.
*/
public function show(UaderDjPersona $uaderDjPersona)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(UaderDjPersona $uaderDjPersona)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, UaderDjPersona $uaderDjPersona)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(UaderDjPersona $uaderDjPersona)
{
//
}
}