public function version_position_table($table, $version = null)
 {
     if (is_null($version)) {
         $version = versions_helper::get_version();
     }
     $db = new Database();
     $vs = new Database_Expression('(SELECT max(version) AS version FROM ' . $table . '_store LIMIT 1)');
     $r = $db->where('version', $vs)->get($table . '_store')->as_array(false);
     foreach ($r as $p) {
         unset($p['id']);
         $p['version'] = $version;
         $db->insert($table . '_store', $p);
     }
     $sql = "CREATE OR REPLACE VIEW " . $table . " AS (SELECT * FROM " . $table . "_store WHERE version=" . $version . ")";
     $db->query($sql);
 }
 /**
  * delete
  *
  * @return void
  * @author Andy Bennett
  */
 public function delete()
 {
     $pos = ORM::factory($this->object_plural . '_position')->where($this->object_name . '_id', $this->id)->find();
     $ids = $pos->delete_which();
     $version = versions_helper::get_version();
     $db = new Database();
     foreach ($ids as $id) {
         $tmp = $db->getwhere($this->table_name, array('id' => $id->{$this->object_name . '_id'}))->as_array(false);
         if (count($tmp)) {
             $arr = current($tmp);
             unset($arr['id']);
             $arr['state'] = 'D';
             $arr['version'] = $version;
             $db->insert($this->table_name, $arr);
         }
     }
     $pos->delete($version);
     return $this->clear();
 }
 /**
  * delete
  *
  * @return void
  * @author Andy Bennett
  */
 public function delete()
 {
     $model = ORM::factory($this->object_name);
     foreach ($this->as_array() as $k => $v) {
         if ($k == 'id') {
             continue;
         }
         $model->{$k} = $v;
     }
     $model->state = 'D';
     $model->version = versions_helper::get_version();
     $model->save(true);
     return $this->clear();
 }