[] ]; try { $output['inmobiliarias'] = $inmobiliariaRepository->fetchAll('razon'); } catch (EmptyResult) {} return $this->withJson($response, $output); } public function cuentas(ServerRequestInterface $request, ResponseInterface $response, Repository\Inmobiliaria $inmobiliariaRepository, Repository\Inmobiliaria\Cuenta $cuentaRepository, int $inmobiliaria_rut): ResponseInterface { $output = [ 'inmobiliaria_rut' => $inmobiliaria_rut, 'cuentas' => [] ]; try { $inmobiliaria = $inmobiliariaRepository->fetchById($inmobiliaria_rut); $output['cuentas'] = $cuentaRepository->fetchByInmobiliaria($inmobiliaria->rut); } catch (EmptyResult) {} return $this->withJson($response, $output); } public function proyectos(ServerRequestInterface $request, ResponseInterface $response, Repository\Inmobiliaria $inmobiliariaRepository, Service\Proyecto $proyectoService, int $inmobiliaria_rut): ResponseInterface { $output = [ 'inmobiliaria_rut' => $inmobiliaria_rut, 'proyectos' => [] ]; try { $inmobiliaria = $inmobiliariaRepository->fetchById($inmobiliaria_rut); $output['proyectos'] = array_map(function(Model\Proyecto $proyecto) { $p = json_decode(json_encode($proyecto)); $p->current_estado = $proyecto->currentEstado(); $p->estados = $proyecto->estados(); return $p; },$proyectoService->getByInmobiliaria($inmobiliaria->rut)); } catch (EmptyResult) {} return $this->withJson($response, $output); } public function agentes(ServerRequestInterface $request, ResponseInterface $response, Repository\Inmobiliaria $inmobiliariaRepository, Repository\Inmobiliaria\SociedadAgente $sociedadAgenteRepository, Repository\Inmobiliaria\TipoAgente $tipoAgenteRepository, int $inmobiliaria_rut): ResponseInterface { $input = $request->getParsedBody(); $output = [ 'sociedad_rut' => $inmobiliaria_rut, 'input' => $input, 'sociedad' => null, 'agentes' => [] ]; try { $inmobiliaria = $inmobiliariaRepository->fetchById($inmobiliaria_rut); $output['sociedad'] = $inmobiliaria; if (isset($input['tipo_agente_id'])) { $tipo = $tipoAgenteRepository->fetchById($input['tipo_agente_id']); $output['agentes'] = $sociedadAgenteRepository->fetchBySociedadAndTipo($inmobiliaria->rut, $tipo->id); } else { $output['agentes'] = $sociedadAgenteRepository->fetchBySociedad($inmobiliaria->rut); } } catch (EmptyResult) {} return $this->withJson($response, $output); } }