process($this->unidadRepository->fetchById($unidad_id)); } public function getByVenta(int $venta_id): array { return array_map([$this, 'process'], $this->unidadRepository->fetchByVenta($venta_id)); } public function getByPropiedad(int $propiedad_id): array { return array_map([$this, 'process'], $this->unidadRepository->fetchByPropiedad($propiedad_id)); } public function getByCierre(int $cierre_id): array { return array_map([$this, 'process'], $this->unidadRepository->fetchByCierre($cierre_id)); } public function getDisponiblesByProyecto(int $proyecto_id): array { return $this->unidadRepository->fetchDisponiblesByProyecto($proyecto_id); } public function getByIdForSearch(int $unidad_id): array { return $this->unidadRepository->fetchByIdForSearch($unidad_id); } protected function process($unidad): Model\Venta\Unidad { try { $unidad->precios = $this->precioService->getByUnidad($unidad->id); $unidad->currentPrecio = $this->precioService->getVigenteByUnidad($unidad->id); } catch (EmptyResult) { } return $unidad; } }