/** * Fix order before delete * @param IRecord record */ public function fixOrderBeforeDelete(IRecord $record) { $columns[] = $this->orderColumn; if (isset($this->groupColumn)) { $columns[] = $this->groupColumn; } $record->lazyLoadValues($columns); $fluent = $record->getMapper()->getDb()->update($record->getMapper()->getTable(), array($this->orderColumn . "%sql" => array("%n - 1", $this->orderColumn)))->where("%n > %i", $this->orderColumn, $record->{$this->orderColumn}); if (isset($this->groupColumn)) { $type = $record->getConfig()->getType($this->groupColumn); $fluent->where("%n = %{$type}", $this->groupColumn, $record->{$this->groupColumn}); } $fluent->execute(); }