mirror of
				https://git.code.sf.net/p/seeddms/code
				synced 2025-10-31 13:18:06 +00:00 
			
		
		
		
	rejecting a revision will neccesarily put document in need correction status
This commit is contained in:
		
							parent
							
								
									31d3d491b5
								
							
						
					
					
						commit
						9b2eecca0e
					
				|  | @ -33,6 +33,13 @@ class SeedDMS_Controller_ReviseDocument extends SeedDMS_Controller_Common { | |||
| 		$group = $this->params['group']; | ||||
| 		$comment = $this->params['comment']; | ||||
| 
 | ||||
| 		/* if set to true, a single reject will reject the doc. If set to false | ||||
| 		 * all revisions will be collected first and afterwards the doc is rejected | ||||
| 		 * if one has rejected it. So in the very end the doc is rejected, but | ||||
| 		 * doc remainѕ in S_IN_REVISION until all have revised the doc | ||||
| 		 */ | ||||
| 		$onevotereject = $this->param['onevotereject']; | ||||
| 
 | ||||
| 		/* Get the document id and name before removing the document */ | ||||
| 		$docname = $document->getName(); | ||||
| 		$documentid = $document->getID(); | ||||
|  | @ -63,7 +70,7 @@ class SeedDMS_Controller_ReviseDocument extends SeedDMS_Controller_Common { | |||
| 		 */ | ||||
| 		$result = $this->callHook('reviseUpdateDocumentStatus', $content); | ||||
| 		if($result === null) { | ||||
| 			if ($revisionstatus == -1){ | ||||
| 			if ($onevotereject && $revisionstatus == -1){ | ||||
| 				if(!$content->setStatus(S_NEEDS_CORRECTION,$comment,$user)) { | ||||
| 					$this->error = 1; | ||||
| 					$this->errormsg = "revision_update_failed"; | ||||
|  | @ -76,24 +83,38 @@ class SeedDMS_Controller_ReviseDocument extends SeedDMS_Controller_Common { | |||
| 					$this->errormsg = "cannot_retrieve_revision_snapshot"; | ||||
| 					return false; | ||||
| 				} | ||||
| 				$revisionCT = 0; | ||||
| 				$revisionok = 0; | ||||
| 				$revisionnotok = 0; | ||||
| 				$revisionTotal = 0; | ||||
| 				foreach ($docRevisionStatus as $drstat) { | ||||
| 					if ($drstat["status"] == 1) { | ||||
| 						$revisionCT++; | ||||
| 						$revisionok++; | ||||
| 					} | ||||
| 					if ($drstat["status"] == -1) { | ||||
| 						$revisionnotok++; | ||||
| 					} | ||||
| 					if ($drstat["status"] != -2) { | ||||
| 						$revisionTotal++; | ||||
| 					} | ||||
| 				} | ||||
| 				// If all revisions have been received and there are no rejections,
 | ||||
| 				// then release the document otherwise put it back into revision workflow
 | ||||
| 				if ($revisionCT == $revisionTotal) { | ||||
| 				// If all revisions have been done and there are no rejections,
 | ||||
| 				// then release the document. If all revisions have been done but some
 | ||||
| 				// of them were rejections then documents needs correction.
 | ||||
| 				// Otherwise put it back into revision workflow
 | ||||
| 				if ($revisionok == $revisionTotal) { | ||||
| 					$newStatus=S_RELEASED; | ||||
| 					if ($content->finishRevision($user, $newStatus, 'Finished revision workflow', getMLText("automatic_status_update"))) { | ||||
| 						if(!$this->callHook('finishReviseDocument', $content)) { | ||||
| 						} | ||||
| 					} | ||||
| 				} elseif (($revisionok + $revisionnotok) == $revisionTotal) { | ||||
| 					$newStatus=S_NEEDS_CORRECTION; | ||||
| //					if ($content->finishRevision($user, $newStatus, 'Finished revision workflow', getMLText("automatic_status_update"))) {
 | ||||
| 					if(!$content->setStatus($newStatus,$comment,$user)) { | ||||
| 						$this->error = 1; | ||||
| 						$this->errormsg = "revision_update_failed"; | ||||
| 						return false; | ||||
| 					} | ||||
| 				} else { | ||||
| 					$newStatus=S_IN_REVISION; | ||||
| 					if(!$content->setStatus($newStatus,$comment,$user)) { | ||||
|  |  | |||
|  | @ -186,6 +186,8 @@ class Settings { /* {{{ */ | |||
| 	var $_enableAcknowledgeWorkflow = true; | ||||
| 	// enable/disable revision workflow
 | ||||
| 	var $_enableRevisionWorkflow = true; | ||||
| 	// enable/disable revision on vote reject
 | ||||
| 	var $_enableRevisionOnVoteReject = true; | ||||
| 	// Allow to set just a reviewer in tradional workflow
 | ||||
| 	var $_allowReviewerOnly = true; | ||||
| 	// enable/disable log system
 | ||||
|  | @ -649,6 +651,7 @@ class Settings { /* {{{ */ | |||
| 		$this->_workflowMode = strval($tab["workflowMode"]); | ||||
| 		$this->_enableAcknowledgeWorkflow = strval($tab["enableAcknowledgeWorkflow"]); | ||||
| 		$this->_enableRevisionWorkflow = strval($tab["enableRevisionWorkflow"]); | ||||
| 		$this->_enableRevisionOnVoteReject = strval($tab["enableRevisionOnVoteReject"]); | ||||
| 		$this->_allowReviewerOnly = Settings::boolval($tab["allowReviewerOnly"]); | ||||
| 		$this->_enableVersionDeletion = Settings::boolval($tab["enableVersionDeletion"]); | ||||
| 		$this->_enableVersionModification = Settings::boolval($tab["enableVersionModification"]); | ||||
|  | @ -965,6 +968,7 @@ class Settings { /* {{{ */ | |||
|     $this->setXMLAttributValue($node, "workflowMode", $this->_workflowMode); | ||||
|     $this->setXMLAttributValue($node, "enableAcknowledgeWorkflow", $this->_enableAcknowledgeWorkflow); | ||||
|     $this->setXMLAttributValue($node, "enableRevisionWorkflow", $this->_enableRevisionWorkflow); | ||||
|     $this->setXMLAttributValue($node, "enableRevisionOnVoteReject", $this->_enableRevisionOnVoteReject); | ||||
|     $this->setXMLAttributValue($node, "allowReviewerOnly", $this->_allowReviewerOnly); | ||||
|     $this->setXMLAttributValue($node, "enableVersionDeletion", $this->_enableVersionDeletion); | ||||
|     $this->setXMLAttributValue($node, "enableVersionModification", $this->_enableVersionModification); | ||||
|  |  | |||
|  | @ -92,6 +92,7 @@ if ($_POST["revisionType"] == "grp") { | |||
| } | ||||
| $controller->setParam('group', $group); | ||||
| $controller->setParam('comment', $_POST["comment"]); | ||||
| $controller->setParam('onevotereject', $settins->_enableRevisionOnVoteReject); | ||||
| if(!$controller->run()) { | ||||
| 	UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText($controller->getErrorMsg())); | ||||
| } | ||||
|  |  | |||
|  | @ -180,6 +180,7 @@ if ($action == "saveSettings") | |||
|   $settings->_workflowMode = $_POST["workflowMode"]; | ||||
|   $settings->_enableAcknowledgeWorkflow = getBoolValue("enableAcknowledgeWorkflow"); | ||||
|   $settings->_enableRevisionWorkflow = getBoolValue("enableRevisionWorkflow"); | ||||
|   $settings->_enableRevisionOnVoteReject = getBoolValue("enableRevisionOnVoteReject"); | ||||
|   $settings->_allowReviewerOnly = getBoolValue("allowReviewerOnly"); | ||||
|   $settings->_enableAdminRevApp = getBoolValue("enableAdminRevApp"); | ||||
|   $settings->_enableOwnerRevApp = getBoolValue("enableOwnerRevApp"); | ||||
|  |  | |||
|  | @ -678,6 +678,10 @@ if(!is_writeable($settings->_configFilePath)) { | |||
|         <td><?php printMLText("settings_enableRevisionWorkflow");?>:</td>
 | ||||
|         <td><input name="enableRevisionWorkflow" type="checkbox" <?php if ($settings->_enableRevisionWorkflow) echo "checked" ?> /></td>
 | ||||
|       </tr> | ||||
|       <tr title="<?php printMLText("settings_enableRevisionOnVoteReject_desc");?>"> | ||||
|         <td><?php printMLText("settings_enableRevisionOnVoteReject");?>:</td>
 | ||||
|         <td><input name="enableRevisionOnVoteReject" type="checkbox" <?php if ($settings->_enableRevisionOnVoteReject) echo "checked" ?> /></td>
 | ||||
|       </tr> | ||||
|       <tr title="<?php printMLText("settings_versioningFileName_desc");?>"> | ||||
|         <td><?php printMLText("settings_versioningFileName");?>:</td>
 | ||||
|         <td><?php $this->showTextField("versioningFileName", $settings->_versioningFileName); ?></td>
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Uwe Steinmann
						Uwe Steinmann