From b07cd2d44297e46bf5d76bbc11180b201d570750 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 25 Jan 2017 14:48:12 +0100 Subject: [PATCH] fix getRevisionStatus() it didn't always return the last entry of the revision log --- SeedDMS_Core/Core/inc.ClassGroup.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassGroup.php b/SeedDMS_Core/Core/inc.ClassGroup.php index 16cafc9bb..3c8afed0f 100644 --- a/SeedDMS_Core/Core/inc.ClassGroup.php +++ b/SeedDMS_Core/Core/inc.ClassGroup.php @@ -461,18 +461,24 @@ class SeedDMS_Core_Group { /* {{{ */ $status = array(); + if (!$db->createTemporaryTable("ttcontentid")) { + return false; + } // See if the group is assigned as a revisor. $queryStr = "SELECT `tblDocumentRevisors`.*, `tblDocumentRevisionLog`.`status`, ". "`tblDocumentRevisionLog`.`comment`, `tblDocumentRevisionLog`.`date`, ". "`tblDocumentRevisionLog`.`userID` ". "FROM `tblDocumentRevisors` ". "LEFT JOIN `tblDocumentRevisionLog` USING (`revisionID`) ". + "LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentRevisors`.`version` AND `ttcontentid`.`document` = `tblDocumentRevisors`.`documentID` ". "WHERE `tblDocumentRevisors`.`type`='1' ". ($documentID==null ? "" : "AND `tblDocumentRevisors`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentRevisors`.`version` = '". (int) $version ."' "). - "AND `tblDocumentRevisors`.`required`='". $this->_id ."' "; + ($documentID==null && $version==null ? "AND `ttcontentid`.`maxVersion` = `tblDocumentRevisors`.`version` " : ""). + "AND `tblDocumentRevisors`.`required`='". $this->_id ."' ". + "ORDER BY `tblDocumentRevisionLog`.`revisionLogID` DESC"; $resArr = $db->getResultArray($queryStr); - if (is_bool($resArr) && $resArr == false) + if ($resArr === false) return false; if (count($resArr)>0) { $status['status'] = array();