From aa8290e03bdb8e9a5ffd4467ebc9ac4e66aae6b5 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Jan 2021 14:19:44 +0100 Subject: [PATCH] add searching fro revision date --- SeedDMS_Core/Core/inc.ClassDMS.php | 25 +++++++++++++++++++++++-- SeedDMS_Core/package.xml | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index e261466ec..2e4d7368c 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1959,8 +1959,9 @@ class SeedDMS_Core_DMS { */ function search($query, $limit=0, $offset=0, $logicalmode='AND', $searchin=array(), $startFolder=null, $owner=null, $status = array(), $creationstartdate=array(), $creationenddate=array(), $modificationstartdate=array(), $modificationenddate=array(), $categories=array(), $attributes=array(), $mode=0x3, $expirationstartdate=array(), $expirationenddate=array(), $reception=array()) { /* {{{ */ $orderby = ''; + $revisionstartdate = $revisionenddate = ''; if(is_array($query)) { - foreach(array('limit', 'offset', 'logicalmode', 'searchin', 'startFolder', 'owner', 'status', 'creationstartdate', 'creationenddate', 'modificationstartdate', 'modificationenddate', 'categories', 'attributes', 'mode', 'expirationstartdate', 'expirationenddate', 'reception') as $paramname) + foreach(array('limit', 'offset', 'logicalmode', 'searchin', 'startFolder', 'owner', 'status', 'creationstartdate', 'creationenddate', 'modificationstartdate', 'modificationenddate', 'categories', 'attributes', 'mode', 'revisionstartdate', 'revisionenddate', 'expirationstartdate', 'expirationenddate', 'reception') as $paramname) ${$paramname} = isset($query[$paramname]) ? $query[$paramname] : ${$paramname}; foreach(array('orderby') as $paramname) ${$paramname} = isset($query[$paramname]) ? $query[$paramname] : ''; @@ -2264,6 +2265,23 @@ class SeedDMS_Core_DMS { $searchCreateDate .= "`tblDocumentContent`.`date` <= ".$stopdate; } } + $searchRevisionDate = ""; + if ($revisionstartdate) { + $startdate = $revisionstartdate['year'].'-'.$revisionstartdate["month"].'-'.$revisionstartdate["day"]; + if ($startdate) { + if($searchRevisionDate) + $searchRevisionDate .= " AND "; + $searchRevisionDate .= "`tblDocumentContent`.`revisiondate` >= '".$startdate."'"; + } + } + if ($revisionenddate) { + $stopdate = $revisionenddate["year"].'-'.$revisionenddate["month"].'-'.$revisionenddate["day"]; + if ($stopdate) { + if($searchRevisionDate) + $searchRevisionDate .= " AND "; + $searchRevisionDate .= "`tblDocumentContent`.`revisiondate` <= '".$stopdate."'"; + } + } $searchExpirationDate = ''; if ($expirationstartdate) { $startdate = SeedDMS_Core_DMS::makeTimeStamp($expirationstartdate['hour'], $expirationstartdate['minute'], $expirationstartdate['second'], $expirationstartdate['year'], $expirationstartdate["month"], $expirationstartdate["day"]); @@ -2330,6 +2348,9 @@ class SeedDMS_Core_DMS { if (strlen($searchCreateDate)>0) { $searchQuery .= " AND (".$searchCreateDate.")"; } + if (strlen($searchRevisionDate)>0) { + $searchQuery .= " AND (".$searchRevisionDate.")"; + } if (strlen($searchExpirationDate)>0) { $searchQuery .= " AND (".$searchExpirationDate.")"; } @@ -2363,7 +2384,7 @@ class SeedDMS_Core_DMS { } } - if($searchKey || $searchOwner || $searchCategories || $searchCreateDate || $searchExpirationDate || $searchAttributes || $status || $reception) { + if($searchKey || $searchOwner || $searchCategories || $searchCreateDate || $searchRevisionDate || $searchExpirationDate || $searchAttributes || $status || $reception) { // Count the number of rows that the search will produce. $resArr = $this->db->getResultArray("SELECT COUNT(*) AS num FROM (SELECT DISTINCT `tblDocuments`.`id` ".$searchQuery.") a"); $totalDocs = 0; diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 91c7d489c..7e6aecfc9 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -24,7 +24,7 @@ GPL License -- no changes, just keep same version as seeddms application +- add searching for revision date