I solved the issue PM-1649 ./processmaker migrate-new-cases-lists

This commit is contained in:
Paula V. Quispe
2015-03-04 18:42:47 -04:00
parent f4a65aa184
commit 1f497cc6f6
10 changed files with 500 additions and 7 deletions

View File

@@ -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;
}
}
}