/** * Исполнитель соглашается с изменениями. * * @param integer $version версия этапа на момент вызова (та, которую сейчас видит исполнитель). * @return boolean успешно? */ function agreeChanges($version, $sbr_version = NULL) { $this->v_data = $this->getVersion($this->frl_version, $this->data); $sql = "UPDATE sbr_stages SET frl_version = {$version} WHERE id = {$this->id} AND sbr_id = {$this->sbr->id} AND frl_version <> {$version}"; if ($res = $this->_eventQuery($sql, false)) { if ($sbr_version) { $res = $this->sbr->agreeChanges($sbr_version); } } if ($res) { if ($this->sbr->scheme_type == sbr::SCHEME_LC) { $pskb = new pskb($this->sbr); $lc = $pskb->getLC(); $v_day = intval($this->v_data['work_days']); $day = intval($this->data['work_days']); $add_day = $day - $v_day; if ($add_day > 0) { $pskb->prolongLC($lc['lc_id'], $add_day); } } return $this->_commitXact(); } $this->_abortXact(); return false; }