diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php
index 08bc6c346..4a075a6f5 100755
--- a/workflow/engine/classes/class.wsTools.php
+++ b/workflow/engine/classes/class.wsTools.php
@@ -1842,12 +1842,14 @@ class workspaceTools
throw $e;
}
}
+
/**
* Migrate all cases to New list
*
* return all LIST TABLES with data
*/
- public function migrateList ($workSpace){
+ public function migrateList ($workSpace)
+ {
$this->initPropel(true);
$appCache = new AppCacheView();
G::LoadClass("case");
@@ -1877,7 +1879,7 @@ class workspaceTools
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
//Insert new data LIST_COMPLETED
while ($rsCriteria->next()) {
- $row = $rsCriteria->getRow();
+ $row = $rsCriteria->getRow();
$listCompleted = new ListCompleted();
$listCompleted->remove($row["APP_UID"]);
$listCompleted->setDeleted(false);
@@ -1887,32 +1889,39 @@ class workspaceTools
//Select data TO_DO OR DRAFT
$inbCriteria = $appCache->getSelAllColumns();
- $inbCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::NOT_EQUAL);
$rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+
//Insert new data LIST_INBOX
while ($rsCriteria->next()) {
- $row = $rsCriteria->getRow();
- if($row["DEL_THREAD_STATUS"] == 'OPEN'){
- $listInbox = new ListInbox();
- $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]);
- $listInbox->setDeleted(false);
- $listInbox->create($row);
- } else {
- // create participated List when the thread is CLOSED
- $listParticipatedHistory = new ListParticipatedHistory();
- $listParticipatedHistory->remove($row['APP_UID'],$row['DEL_INDEX']);
- $listParticipatedHistory = new ListParticipatedHistory();
- $listParticipatedHistory->create($row);
- $listParticipatedLast = new ListParticipatedLast();
- $listParticipatedLast->remove($row['APP_UID'], $row['USR_UID']);
- $listParticipatedLast = new ListParticipatedLast();
- $listParticipatedLast->create($row);
- $listParticipatedLast = new ListParticipatedLast();
- $listParticipatedLast->refresh($row);
- }
+ $row = $rsCriteria->getRow();
+ $isSelfService = ($row['USR_UID'] == '') ? true : false;
+ if($row["DEL_THREAD_STATUS"] == 'OPEN'){
+ $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"];
+ $listInbox = new ListInbox();
+ $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]);
+ $listInbox->setDeleted(false);
+ $listInbox->create($row, $isSelfService);
+ } else {
+ // create participated List when the thread is CLOSED
+ $listParticipatedHistory = new ListParticipatedHistory();
+ $listParticipatedHistory->remove($row['APP_UID'], $row['DEL_INDEX']);
+ $listParticipatedHistory = new ListParticipatedHistory();
+ $listParticipatedHistory->create($row);
+
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ListParticipatedLastPeer::APP_UID, $row['APP_UID']);
+ $oCriteria->add(ListParticipatedLastPeer::USR_UID, $row['USR_UID']);
+ ListParticipatedLastPeer::doDelete($oCriteria);
+
+ $listParticipatedLast = new ListParticipatedLast();
+ $listParticipatedLast->create($row);
+ $listParticipatedLast = new ListParticipatedLast();
+ $listParticipatedLast->refresh($row);
+ }
}
+
CLI::logging("> Completed table LIST_INBOX\n");
//With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST
CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");
@@ -1922,7 +1931,7 @@ class workspaceTools
$myiCriteria = $appCache->getSelAllColumns();
$myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL);
$rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria);
- $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
//Insert new data LIST_MY_INBOX
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
@@ -1939,7 +1948,13 @@ class workspaceTools
$delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID);
$delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
$delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
- $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID, Criteria::INNER_JOIN );
+ $delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID);
+ $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);
+ $delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID);
+
+ $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN );
+ $delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL);
+ $delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL);
$rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
//Insert new data LIST_PAUSED
@@ -1948,7 +1963,6 @@ class workspaceTools
$data = $row;
$data["DEL_INDEX"] = $row["APP_DEL_INDEX"];
$listPaused = new ListPaused();
- $listPaused->remove($data["APP_UID"],$data["DEL_INDEX"]);
$listPaused->setDeleted(false);
$listPaused->create($data);
}
@@ -1965,7 +1979,7 @@ class workspaceTools
$del->doDeleteAll();
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
- $listUnassigned = new ListUnassigned();
+ $listUnassigned = new ListUnassigned();
$unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]);
}
CLI::logging("> Completed table LIST_UNASSIGNED\n");
@@ -2005,7 +2019,8 @@ class workspaceTools
}
$this->listFirstExecution('insert');
return true;
- }
+ }
+
/**
* This function checks if List tables are going to migrated
*
diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php
index 05e2cd51f..68c1ac873 100644
--- a/workflow/engine/classes/model/ListInbox.php
+++ b/workflow/engine/classes/model/ListInbox.php
@@ -49,8 +49,11 @@ class ListInbox extends BaseListInbox
// remove and create participated last
if (!$isSelfService) {
- $listParticipatedLast = new ListParticipatedLast();
- $listParticipatedLast->remove($data['APP_UID'], $data['USR_UID']);
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ListParticipatedLastPeer::APP_UID, $data['APP_UID']);
+ $oCriteria->add(ListParticipatedLastPeer::USR_UID, $data['USR_UID']);
+ ListParticipatedLastPeer::doDelete($oCriteria);
+
$listParticipatedLast = new ListParticipatedLast();
$listParticipatedLast->create($data);
$listParticipatedLast = new ListParticipatedLast();
@@ -367,6 +370,11 @@ class ListInbox extends BaseListInbox
{
$criteria = new Criteria();
$criteria->add( ListInboxPeer::USR_UID, $usr_uid, Criteria::EQUAL );
+ if ($filters['action'] == 'draft') {
+ $criteria->add( ListInboxPeer::APP_STATUS, 'DRAFT', Criteria::EQUAL );
+ } else {
+ $criteria->add( ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL );
+ }
self::loadFilters($criteria, $filters);
$total = ListInboxPeer::doCount( $criteria );
return (int)$total;
diff --git a/workflow/engine/classes/model/ListMyInbox.php b/workflow/engine/classes/model/ListMyInbox.php
index 5a5aa3f36..3541d848d 100644
--- a/workflow/engine/classes/model/ListMyInbox.php
+++ b/workflow/engine/classes/model/ListMyInbox.php
@@ -123,6 +123,7 @@ class ListMyInbox extends BaseListMyInbox
if ($data['DEL_INDEX'] == 1 && $data['APP_STATUS'] == 'TO_DO') {
$data['APP_CREATE_DATE'] = $data['APP_UPDATE_DATE'];
+ $this->remove($data['APP_UID'], $data['USR_UID']);
$this->create($data);
} else {
unset($data['USR_UID']);
diff --git a/workflow/engine/classes/model/ListParticipatedLast.php b/workflow/engine/classes/model/ListParticipatedLast.php
index ebcf6d959..72bea4e91 100644
--- a/workflow/engine/classes/model/ListParticipatedLast.php
+++ b/workflow/engine/classes/model/ListParticipatedLast.php
@@ -143,9 +143,9 @@ class ListParticipatedLast extends BaseListParticipatedLast
* @throws type
*
*/
- public function remove ($app_uid, $usr_uid)
+ public function remove ($app_uid, $usr_uid, $del_index)
{
- $existField = ListParticipatedLastPeer::retrieveByPK($app_uid, $usr_uid);
+ $existField = ListParticipatedLastPeer::retrieveByPK($app_uid, $usr_uid, $del_index);
if (! is_null( $existField )) {
$users = new Users();
$users->refreshTotal($usr_uid, 'removed', 'participated');
diff --git a/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php b/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php
index a67b28884..62e4c7701 100644
--- a/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php
+++ b/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php
@@ -69,7 +69,7 @@ class ListParticipatedLastMapBuilder
$tMap->addPrimaryKey('USR_UID', 'UsrUid', 'string', CreoleTypes::VARCHAR, true, 32);
- $tMap->addColumn('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
+ $tMap->addPrimaryKey('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32);
diff --git a/workflow/engine/classes/model/om/BaseListParticipatedLast.php b/workflow/engine/classes/model/om/BaseListParticipatedLast.php
index 4344870fb..c06821fa7 100644
--- a/workflow/engine/classes/model/om/BaseListParticipatedLast.php
+++ b/workflow/engine/classes/model/om/BaseListParticipatedLast.php
@@ -1686,6 +1686,7 @@ abstract class BaseListParticipatedLast extends BaseObject implements Persistent
$criteria->add(ListParticipatedLastPeer::APP_UID, $this->app_uid);
$criteria->add(ListParticipatedLastPeer::USR_UID, $this->usr_uid);
+ $criteria->add(ListParticipatedLastPeer::DEL_INDEX, $this->del_index);
return $criteria;
}
@@ -1703,6 +1704,8 @@ abstract class BaseListParticipatedLast extends BaseObject implements Persistent
$pks[1] = $this->getUsrUid();
+ $pks[2] = $this->getDelIndex();
+
return $pks;
}
@@ -1719,6 +1722,8 @@ abstract class BaseListParticipatedLast extends BaseObject implements Persistent
$this->setUsrUid($keys[1]);
+ $this->setDelIndex($keys[2]);
+
}
/**
@@ -1734,8 +1739,6 @@ abstract class BaseListParticipatedLast extends BaseObject implements Persistent
public function copyInto($copyObj, $deepCopy = false)
{
- $copyObj->setDelIndex($this->del_index);
-
$copyObj->setTasUid($this->tas_uid);
$copyObj->setProUid($this->pro_uid);
@@ -1781,6 +1784,8 @@ abstract class BaseListParticipatedLast extends BaseObject implements Persistent
$copyObj->setUsrUid(''); // this is a pkey column, so set to default value
+ $copyObj->setDelIndex('0'); // this is a pkey column, so set to default value
+
}
/**
diff --git a/workflow/engine/classes/model/om/BaseListParticipatedLastPeer.php b/workflow/engine/classes/model/om/BaseListParticipatedLastPeer.php
index 777982e33..26fe8f6f3 100644
--- a/workflow/engine/classes/model/om/BaseListParticipatedLastPeer.php
+++ b/workflow/engine/classes/model/om/BaseListParticipatedLastPeer.php
@@ -487,6 +487,9 @@ abstract class BaseListParticipatedLastPeer
$comparison = $criteria->getComparison(ListParticipatedLastPeer::USR_UID);
$selectCriteria->add(ListParticipatedLastPeer::USR_UID, $criteria->remove(ListParticipatedLastPeer::USR_UID), $comparison);
+ $comparison = $criteria->getComparison(ListParticipatedLastPeer::DEL_INDEX);
+ $selectCriteria->add(ListParticipatedLastPeer::DEL_INDEX, $criteria->remove(ListParticipatedLastPeer::DEL_INDEX), $comparison);
+
} else {
$criteria = $values->buildCriteria(); // gets full criteria
$selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
@@ -560,10 +563,12 @@ abstract class BaseListParticipatedLastPeer
$vals[0][] = $value[0];
$vals[1][] = $value[1];
+ $vals[2][] = $value[2];
}
$criteria->add(ListParticipatedLastPeer::APP_UID, $vals[0], Criteria::IN);
$criteria->add(ListParticipatedLastPeer::USR_UID, $vals[1], Criteria::IN);
+ $criteria->add(ListParticipatedLastPeer::DEL_INDEX, $vals[2], Criteria::IN);
}
// Set the correct dbName
@@ -626,10 +631,11 @@ abstract class BaseListParticipatedLastPeer
* Retrieve object using using composite pkey values.
* @param string $app_uid
* @param string $usr_uid
+ * @param int $del_index
* @param Connection $con
* @return ListParticipatedLast
*/
- public static function retrieveByPK($app_uid, $usr_uid, $con = null)
+ public static function retrieveByPK($app_uid, $usr_uid, $del_index, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
@@ -637,6 +643,7 @@ abstract class BaseListParticipatedLastPeer
$criteria = new Criteria();
$criteria->add(ListParticipatedLastPeer::APP_UID, $app_uid);
$criteria->add(ListParticipatedLastPeer::USR_UID, $usr_uid);
+ $criteria->add(ListParticipatedLastPeer::DEL_INDEX, $del_index);
$v = ListParticipatedLastPeer::doSelect($criteria, $con);
return !empty($v) ? $v[0] : null;
diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml
index 73b3e8fde..e06aaf39a 100755
--- a/workflow/engine/config/schema.xml
+++ b/workflow/engine/config/schema.xml
@@ -4017,7 +4017,7 @@
-
+
diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql
index 221be5aaf..a5635ded6 100755
--- a/workflow/engine/data/mysql/schema.sql
+++ b/workflow/engine/data/mysql/schema.sql
@@ -2285,7 +2285,7 @@ CREATE TABLE `LIST_PARTICIPATED_LAST`
`DEL_DUE_DATE` DATETIME,
`DEL_PRIORITY` VARCHAR(32) default '3' NOT NULL,
`DEL_THREAD_STATUS` VARCHAR(32) default 'OPEN' NOT NULL,
- PRIMARY KEY (`APP_UID`,`USR_UID`)
+ PRIMARY KEY (`APP_UID`,`USR_UID`,`DEL_INDEX`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Participated last list';
#-----------------------------------------------------------------------------
#-- LIST_COMPLETED
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Lists.php b/workflow/engine/src/ProcessMaker/BusinessModel/Lists.php
index 6ed830437..5c936080c 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Lists.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Lists.php
@@ -176,6 +176,7 @@ class Lists {
$filtersData['date_to'] = $filters["dateTo"];
$response['filters'] = $filtersData;
$response['data'] = $result;
+ $filtersData['action'] = $filters["action"];
$response['totalCount'] = $list->countTotal($userUid, $filtersData);
} else {
$response = $result;