Exemple #1
0
 /**
  * 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();
 }