I solved the issue PM-1649 ./processmaker migrate-new-cases-lists
This commit is contained in:
@@ -1842,5 +1842,177 @@ class workspaceTools
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Migrate all cases to New list
|
||||
*
|
||||
* return all LIST TABLES with data
|
||||
*/
|
||||
public function migrateList ($workSpace){
|
||||
$this->initPropel(true);
|
||||
$appCache = new AppCacheView();
|
||||
G::LoadClass("case");
|
||||
$case = new Cases();
|
||||
|
||||
//Select data CANCELLED
|
||||
$canCriteria = $appCache->getSelAllColumns();
|
||||
$canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL);
|
||||
$canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert data LIST_CANCELED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listCanceled = new ListCanceled();
|
||||
$listCanceled->remove($row["APP_UID"]);
|
||||
$listCanceled->setDeleted(false);
|
||||
$listCanceled->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_CANCELED\n");
|
||||
|
||||
//Select data COMPLETED
|
||||
$comCriteria = $appCache->getSelAllColumns();
|
||||
$comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL);
|
||||
$comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_COMPLETED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listCompleted = new ListCompleted();
|
||||
$listCompleted->remove($row["APP_UID"]);
|
||||
$listCompleted->setDeleted(false);
|
||||
$listCompleted->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_COMPLETED\n");
|
||||
|
||||
//Select data TO_DO OR DRAFT
|
||||
$inbCriteria = $appCache->getSelAllColumns();
|
||||
//$inbCriteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN", CRITERIA::EQUAL);
|
||||
$inbCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::NOT_EQUAL);
|
||||
$inbCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", 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'],$row['DEL_INDEX']);
|
||||
$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");
|
||||
CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");
|
||||
|
||||
//Select data TO_DO OR DRAFT CASES CREATED BY AN USER
|
||||
$myiCriteria = $appCache->getSelAllColumns();
|
||||
$myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_MY_INBOX
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listMyInbox = new ListMyInbox();
|
||||
$listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]);
|
||||
$listMyInbox->setDeleted(false);
|
||||
$listMyInbox->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_MY_INBOX\n");
|
||||
|
||||
//Select data PAUSED
|
||||
$delaycriteria = new Criteria("workflow");
|
||||
$delaycriteria->addSelectColumn(AppDelayPeer::APP_UID);
|
||||
$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 );
|
||||
$rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_PAUSED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$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);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_PAUSED\n");
|
||||
|
||||
//Select and Insert LIST_UNASSIGNED
|
||||
$unaCriteria = $appCache->getSelAllColumns();
|
||||
$unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$del = new ListUnassignedPeer();
|
||||
$del->doDeleteAll();
|
||||
$del = new ListUnassignedGroupPeer();
|
||||
$del->doDeleteAll();
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listUnassigned = new ListUnassigned();
|
||||
$unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_UNASSIGNED\n");
|
||||
CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n");
|
||||
$this->listFirstExecution('insert');
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* This function checks if List tables are going to migrated
|
||||
*
|
||||
* return boolean value
|
||||
*/
|
||||
public function listFirstExecution ($action){
|
||||
$this->initPropel(true);
|
||||
switch ($action) {
|
||||
case 'insert':
|
||||
$conf = new Configuration();
|
||||
$data["CFG_UID"] ='MIGRATED_LIST';
|
||||
$data["OBJ_UID"] ='list';
|
||||
$data["CFG_VALUE"]='true';
|
||||
$data["PRO_UID"] ='list';
|
||||
$data["USR_UID"] ='list';
|
||||
$data["APP_UID"] ='list';
|
||||
$conf->create($data);
|
||||
return true;
|
||||
break;
|
||||
case 'check':
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn(ConfigurationPeer::CFG_UID);
|
||||
$criteria->add(ConfigurationPeer::CFG_UID, "MIGRATED_LIST", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aRows = array ();
|
||||
while ($rsCriteria->next()) {
|
||||
$aRows[] = $rsCriteria->getRow();
|
||||
}
|
||||
if(empty($aRows)){
|
||||
return false; //If is false continue with the migrated
|
||||
} else {
|
||||
return true; //Stop
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user