has('dni') && !$request->has('telefono')){ return response()->json( ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST ); } try{ if ($request->has('dni') && !empty($request->get('dni')) ) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); if ($persona) { return self::extraerFamiliaresJson($persona); } } if ($request->has('telefono') && !empty($request->get('telefono')) ) { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return self::extraerFamiliaresJson($persona); } } return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } /** * Esta funcion es llamada por la función de ruta getFamiliares. * Extrae la información de los familiares de una persona y la retorna en formato JSON. * * @param \App\Models\UaderMapuchePersona $persona La persona de la cual se van a extraer los familiares. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares. */ public function extraerFamiliaresJson($persona) { $familiares = $persona->familiares; $datos = array(); foreach ($familiares as $familiar) { $datos[] = array( 'dni' => $familiar->nro_docum, 'apellido' => ucwords(strtolower($familiar['desc_apell'])), 'nombres' => ucwords(strtolower($familiar['desc_nombre'])), 'parentezco' => $familiar->codc_paren, 'fnac' => $familiar->fec_nacim, 'discapacidad' => $familiar->sino_incap, 'a_cargo' => $familiar->sino_cargo, ); } return response()->json($datos); } /** * Función de ruta para obtener los datos de un familiar específico a partir de su DNI. * * @param string $dni El DNI del familiar a buscar. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos del familiar o un código 404 si no se encuentra. */ public function familiarPorDni($dni) { if ( UaderMapucheFamiliares::where('nro_docum', $dni)->exists() ) { $familiar = UaderMapucheFamiliares::where('nro_docum', $dni)->first(); return response()->json( array( 'apellido' => ucwords(strtolower($familiar->desc_apell)), 'nombres' => ucwords(strtolower($familiar->desc_nombre)), 'parentezco' => $familiar->codc_paren, 'fnac' => $familiar->fec_nacim, ) ); } else { return response()->json(array(), 404); } } }