setTable('pie'); } public function create(?array $data = null): Define\Model { $map = (new Implement\Repository\MapperParser(['valor', 'uf', 'cuotas'])) ->register('fecha', new Implement\Repository\Mapper\DateTime('fecha')) ->register('asociado', (new Implement\Repository\Mapper()) ->setFunction(function($data) { if ($data['asociado'] === null or $data['asociado'] === 0) { return null; } return $this->fetchById($data['asociado']); })) ->register('reajuste', (new Implement\Repository\Mapper()) ->setFunction(function($data) { if ($data['reajuste'] === null or $data['reajuste'] === 0) { return null; } return $this->pagoRepository->fetchById($data['reajuste']); })); return $this->parseData(new Model\Venta\Pie(), $data, $map); } public function save(Define\Model $model): Define\Model { $model->id = $this->saveNew( ['fecha', 'valor', 'uf', 'cuotas', 'asociado', 'reajuste'], [$model->fecha->format('Y-m-d H:i:s'), $model->valor, $model?->uf, $model->cuotas, $model?->asociado->id, $model?->reajuste->id] ); return $model; } public function edit(Define\Model $model, array $new_data): Define\Model { return $this->update($model, ['fecha', 'valor', 'uf', 'cuotas', 'asociado', 'reajuste'], $new_data); } }