[] ]; 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 proveedores(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, 'proveedores' => [] ]; try { $inmobiliaria = $inmobiliariaRepository->fetchById($inmobiliaria_rut); $output['sociedad'] = $inmobiliaria; if (isset($input['tipo_agente_id'])) { $tipo = $tipoAgenteRepository->fetchById($input['tipo_agente_id']); $proveedores = $sociedadAgenteRepository->fetchBySociedadAndTipo($inmobiliaria->rut, $tipo->id); } else { $proveedores = $sociedadAgenteRepository->fetchBySociedad($inmobiliaria->rut); } $output['proveedores'] = json_decode(json_encode($proveedores), JSON_OBJECT_AS_ARRAY); foreach ($proveedores as $i => $proveedor) { $output['proveedores'][$i]['sociedad'] = $proveedor->sociedad; $output['proveedores'][$i]['proveedor'] = $proveedor->agenteTipo->agente; $output['proveedores'][$i]['tipo'] = $proveedor->agenteTipo->tipoAgente; } } catch (EmptyResult) {} return $this->withJson($response, $output); } }