dao->update($table)->set('deleted')->eq(1)->where('id')->eq($id)->exec(); $object = preg_replace('/^' . preg_quote($this->config->db->prefix) . '/', '', trim($table, '`')); $this->loadModel('action')->create($object, $id, 'deleted', '', $extra = ACTIONMODEL::CAN_UNDELETED); } /** * Process status of an object according to its subStatus. * * @param string $module product | release | story | project | task | bug | testcase | testtask | feedback * @param object $record a record of above modules. * @access public * @return string */ public function processStatus($module, $record) { if(!isset($this->config->bizVersion) or empty($record->subStatus)) return zget($this->lang->$module->statusList, $record->status); return $this->loadModel('workflowfield')->processSubStatus($module, $record); } /** * Get flow extend fields. * * @access public * @return array */ public function getFlowExtendFields() { if(!isset($this->config->bizVersion)) return array(); return $this->loadModel('flow')->getExtendFields($this->app->getModuleName(), $this->app->getMethodName()); } /** * Check flow rule. * * @param object $field * @param string $value * @access public * @return bool|string */ public function checkFlowRule($field, $value) { if(!isset($this->config->bizVersion)) return false; return $this->loadModel('flow')->checkRule($field, $value); } /** * Execute Hooks * * @param int $objectID * @access public * @return void */ public function executeHooks($objectID) { if(!isset($this->config->bizVersion)) return false; $moduleName = $this->app->getModuleName(); $methodName = $this->app->getMethodName(); $action = $this->loadModel('workflowaction')->getByModuleAndAction($moduleName, $methodName); if(empty($action) or $action->extensionType == 'none') return false; $flow = $this->loadModel('workflow')->getByModule($moduleName); if($flow && $action) $this->loadModel('workflowhook')->execute($flow, $action, $objectID); } }