HOR-310: Add option to delete cases
correccion de observaciones correcion de obsesrvaciones correcion observaciones correcion observaciones correccion de observaciones correccion observaciones
This commit is contained in:
@@ -1126,23 +1126,16 @@ class Cases
|
||||
* @return Fields
|
||||
*/
|
||||
|
||||
public function removeCase($sAppUid)
|
||||
public function removeCase($sAppUid, $deleteDelegation = true)
|
||||
{
|
||||
try {
|
||||
$this->getExecuteTriggerProcess($sAppUid, 'DELETED');
|
||||
|
||||
$oAppDelegation = new AppDelegation();
|
||||
$oAppDocument = new AppDocument();
|
||||
|
||||
//Delete the delegations of a application
|
||||
$oCriteria2 = new Criteria('workflow');
|
||||
$oCriteria2->add(AppDelegationPeer::APP_UID, $sAppUid);
|
||||
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
||||
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
while ($aRow2 = $oDataset2->getRow()) {
|
||||
$oAppDelegation->remove($sAppUid, $aRow2['DEL_INDEX']);
|
||||
$oDataset2->next();
|
||||
if($deleteDelegation) {
|
||||
//Delete the delegations of a application
|
||||
$this->deleteDelegation($sAppUid);
|
||||
}
|
||||
//Delete the documents assigned to a application
|
||||
$oCriteria2 = new Criteria('workflow');
|
||||
@@ -1237,6 +1230,9 @@ class Cases
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->add(ListParticipatedLastPeer::APP_UID, $sAppUid);
|
||||
ListParticipatedLastPeer::doDelete($oCriteria);
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->add(ListPausedPeer::APP_UID, $sAppUid);
|
||||
ListPausedPeer::doDelete($oCriteria);
|
||||
/*----------------------------------********---------------------------------*/
|
||||
return $result;
|
||||
} catch (exception $e) {
|
||||
@@ -7253,5 +7249,19 @@ class Cases
|
||||
return $processList;
|
||||
}
|
||||
|
||||
public function deleteDelegation($sAppUid)
|
||||
{
|
||||
$oAppDelegation = new AppDelegation();
|
||||
$oCriteria2 = new Criteria('workflow');
|
||||
$oCriteria2->add(AppDelegationPeer::APP_UID, $sAppUid);
|
||||
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
||||
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
while ($aRow2 = $oDataset2->getRow()) {
|
||||
$oAppDelegation->remove($sAppUid, $aRow2['DEL_INDEX']);
|
||||
$oDataset2->next();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1052,5 +1052,70 @@ class Process extends BaseProcess
|
||||
}
|
||||
return $aProc;
|
||||
}
|
||||
|
||||
public function deleteProcessCases($proUid)
|
||||
{
|
||||
try {
|
||||
/*get cases by process uid*/
|
||||
$oCase = new Cases();
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
$oCriteria->addSelectColumn( ApplicationPeer::APP_UID);
|
||||
$oCriteria->add( ApplicationPeer::PRO_UID, $proUid );
|
||||
$oDataset = ApplicationPeer::doSelectRS( $oCriteria, Propel::getDbConnection('workflow_ro') );
|
||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
while ($oDataset->next()) {
|
||||
$row = $oDataset->getRow();
|
||||
$oCase->removeCase($row['APP_UID'], false);
|
||||
}
|
||||
} catch(Exception $e) {
|
||||
throw ($e);
|
||||
}
|
||||
}
|
||||
|
||||
public function refreshUserAllCountersByProcessesGroupUid($proUidArray)
|
||||
{
|
||||
$aTypes = array(
|
||||
'to_do',
|
||||
'draft',
|
||||
'cancelled',
|
||||
'sent',
|
||||
'paused',
|
||||
'completed',
|
||||
'selfservice'
|
||||
);
|
||||
$usersArray = array();
|
||||
$users = new Users();
|
||||
$oCase = new Cases();
|
||||
$oCriteria = new Criteria();
|
||||
$oCriteria->addSelectColumn( AppDelegationPeer::APP_UID );
|
||||
$oCriteria->addSelectColumn( AppDelegationPeer::USR_UID );
|
||||
$oCriteria->setDistinct();
|
||||
$oCriteria->add( AppDelegationPeer::PRO_UID, $proUidArray, Criteria::IN );
|
||||
$oRuleSet = AppDelegationPeer::doSelectRS( $oCriteria );
|
||||
$oRuleSet->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
while($oRuleSet->next()) {
|
||||
$row = $oRuleSet->getRow();
|
||||
if(isset($row['USR_UID'])) {
|
||||
$usersArray[$row['USR_UID']] = $row['USR_UID'];
|
||||
}
|
||||
$oCase->deleteDelegation($row['APP_UID']);
|
||||
}
|
||||
|
||||
foreach($usersArray as $value) {
|
||||
$oAppCache = new AppCacheView();
|
||||
$aCount = $oAppCache->getAllCounters( $aTypes, $value );
|
||||
$newData = array(
|
||||
'USR_UID' => $value,
|
||||
'USR_TOTAL_INBOX' => $aCount['to_do'],
|
||||
'USR_TOTAL_DRAFT' => $aCount['draft'],
|
||||
'USR_TOTAL_CANCELLED' => $aCount['cancelled'],
|
||||
'USR_TOTAL_PARTICIPATED' => $aCount['sent'],
|
||||
'USR_TOTAL_PAUSED' => $aCount['paused'],
|
||||
'USR_TOTAL_COMPLETED' => $aCount['completed'],
|
||||
'USR_TOTAL_UNASSIGNED' => $aCount['selfservice']
|
||||
);
|
||||
$users->update($newData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user