process($this->propiedadUnidadRepository->fetchById($unidad_id)); } public function getByVenta(int $venta_id): array { return array_map([$this, 'process'], $this->propiedadUnidadRepository->fetchByVenta($venta_id)); } public function getByPropiedad(int $propiedad_id): array { return array_map([$this, 'process'], $this->propiedadUnidadRepository->fetchByPropiedad($propiedad_id)); } public function edit(Model\Venta\PropiedadUnidad $propiedadUnidad, array $data): Model\Venta\PropiedadUnidad { return $this->process($this->propiedadUnidadRepository->edit($propiedadUnidad, $data)); } protected function process($unidad): Model\Venta\PropiedadUnidad { try { $unidad->precios = $this->precioService->getByUnidad($unidad->id); $unidad->currentPrecio = $this->precioService->getVigenteByUnidad($unidad->id); } catch (EmptyResult) { } return $unidad; } }