register('venta_id', (new Implement\Repository\Mapper()) ->setProperty('venta') ->setFunction(function($data) { return $this->ventaRepository->fetchById($data['venta_id']); }) ) ->register('pago_id', (new Implement\Repository\Mapper()) ->setProperty('pago') ->setFunction(function($data) { return $this->pagoRepository->fetchById($data['pago_id']); }) ); return $this->parseData(new Model\Venta\Abono\Cuota(), $data, $map); } public function save(Define\Model $model): Model\Venta\Abono\Cuota { $model->id = $this->saveNew(['venta_id', 'pago_id'], [$model->venta->id, $model->pago->id]); return $model; } public function edit(Define\Model $model, array $new_data): Model\Venta\Abono\Cuota { return $this->update($model, ['venta_id', 'pago_id'], $new_data); } /** * @throws EmptyResult */ public function fetchByVenta(int $venta_id): array { $query = $this->connection->getQueryBuilder() ->select() ->from($this->getTable()) ->where('venta_id = ?'); return $this->fetchMany($query, [$venta_id]); } }