Exemplo n.º 1
0
 /**
  * Saves report object
  *
  * @return void
  **/
 public function save()
 {
     // проверим права доступа на запись отчета
     $this->_mapper->access($this, 'WRITE');
     // выставим текущую дату модификации
     $this->mdate = M('Tools')->date()->dbDateTime();
     // получим объект валидатор в зависимости от контекста
     $this->validator($this->_mapper->getValidator($this));
     // проверим чтобы parent_id не был равен id этого отчета
     if ($this->parent_id === $this->id()) {
         throw new RM_Base_Exception_BadUsage(__METHOD__ . "(): Parent id cannot be equal primary id!");
     }
     // клиент сохраняет отчет, который является дочерним по отношению к другому
     // в такой ситуации родительский отчет удалить, а у нашего подменить hash_id
     $this->_replaceParentIfCan();
     // выставим некоторые свойства по умолчанию
     // see __set() for details
     if (is_null($this->parent_id)) {
         $this->parent_id = 0;
     }
     if (!$this->stable) {
         $this->stable = 0;
     }
     if (is_null($this->is_dynamic)) {
         $this->is_dynamic = 0;
     }
     if (!$this->brand_id) {
         $this->brand_id = NULL;
     }
     $this->_mapper->_setCollection('hide', $this, $this->_invisible);
     $this->_mapper->_setCollection('group', $this, $this->_grouping);
     // сохраним отчет в базе
     return parent::save();
 }