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.
 
 
 
 

140 lines
4.9 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']);
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 == date('w') && $horario->tipo_horario != 2){ # dia del horario es el mismo que el dia actual y que no sea horario de disposicion
$horarios[$horario->dia_semanal][] = [
'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)
{
//
}
}