diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 26dd943a7..ac5877d49 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -1100,7 +1100,6 @@ class Cases $criteria = new Criteria("workflow"); $criteria->add(AppSolrQueuePeer::APP_UID, $sAppUid); AppSolrQueuePeer::doDelete($criteria); - //Before delete verify if is a child case $oCriteria2 = new Criteria('workflow'); $oCriteria2->add(SubApplicationPeer::APP_UID, $sAppUid); @@ -1118,10 +1117,12 @@ class Cases $oCriteria2->add(SubApplicationPeer::APP_PARENT, $sAppUid); SubApplicationPeer::doDelete($oCriteria2); + //Delete records of the Report Table + $this->reportTableDeleteRecord($sAppUid); + //Delete record of the APPLICATION table (trigger: delete records of the APP_CACHE_VIEW table) $application = new Application(); $result = $application->remove($sAppUid); - //delete application from index if ($this->appSolr != null) { $this->appSolr->deleteApplicationSearchIndex($sAppUid); @@ -6554,4 +6555,63 @@ class Cases } return false; } + + public function reportTableDeleteRecord($applicationUid) + { + $criteria1 = new Criteria("workflow"); + + //SELECT + $criteria1->addSelectColumn(ApplicationPeer::PRO_UID); + + //FROM + + //WHERE + $criteria1->add(ApplicationPeer::APP_UID, $applicationUid); + + //QUERY + $rsCriteria1 = ApplicationPeer::doSelectRS($criteria1); + $rsCriteria1->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + $rsCriteria1->next(); + $row1 = $rsCriteria1->getRow(); + + $processUid = $row1["PRO_UID"]; + + $criteria2 = new Criteria("workflow"); + + //SELECT + $criteria2->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME); + + //FROM + + //WHERE + + $criteria2->add(AdditionalTablesPeer::PRO_UID, $processUid); + + //QUERY + $rsCriteria2 = AdditionalTablesPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + G::LoadClass("pmTable"); + $pmTable = new PmTable(); + + while ($rsCriteria2->next()) { + try { + $row2 = $rsCriteria2->getRow(); + $tableName = $row2["ADD_TAB_NAME"]; + $pmTableName = $pmTable->toCamelCase($tableName); + + //DELETE + require_once (PATH_WORKSPACE . "classes" . PATH_SEP . "$pmTableName.php"); + + $criteria3 = new Criteria("workflow"); + + eval("\$criteria3->add(" . $pmTableName . "Peer::APP_UID, \$applicationUid);"); + eval($pmTableName . "Peer::doDelete(\$criteria3);"); + + } catch (Exception $e) { + throw $e; + } + } + } } diff --git a/workflow/engine/controllers/adhocUserProxy.php b/workflow/engine/controllers/adhocUserProxy.php index 75af2e669..b98439cd0 100755 --- a/workflow/engine/controllers/adhocUserProxy.php +++ b/workflow/engine/controllers/adhocUserProxy.php @@ -1,77 +1,76 @@ -getGroupsOfTask( $_SESSION['TASK'], 2 ); - $aAdhocUsers = array (); - $oGroups = new Groups(); - foreach ($aAux as $aGroup) { - $aUsers = $oGroups->getUsersOfGroup( $aGroup['GRP_UID'] ); - foreach ($aUsers as $aUser) { - if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { - $aAdhocUsers[] = $aUser['USR_UID']; - } - } - } - $aAux = $oTasks->getUsersOfTask( $_SESSION['TASK'], 2 ); - foreach ($aAux as $aUser) { - if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { - $aAdhocUsers[] = $aUser['USR_UID']; - } - } - require_once 'classes/model/Users.php'; - $oCriteria = new Criteria( 'workflow' ); - $oCriteria->addSelectColumn( UsersPeer::USR_UID ); - $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME ); - $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME ); - $oCriteria->add( UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN ); - $oDataset = UsersPeer::doSelectRS( $oCriteria ); - $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $aData = array (); - while ($oDataset->next()) { - $aData[] = $oDataset->getRow(); - } - - $this->data = $aData; - - } + function adhocAssignUsersk ($params) + { + + G::LoadClass( 'groups' ); + G::LoadClass( 'tasks' ); + $oTasks = new Tasks(); + $aAux = $oTasks->getGroupsOfTask( $_SESSION['TASK'], 2 ); + $aAdhocUsers = array (); + $oGroups = new Groups(); + foreach ($aAux as $aGroup) { + $aUsers = $oGroups->getUsersOfGroup( $aGroup['GRP_UID'] ); + foreach ($aUsers as $aUser) { + if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { + $aAdhocUsers[] = $aUser['USR_UID']; + } + } + } + $aAux = $oTasks->getUsersOfTask( $_SESSION['TASK'], 2 ); + foreach ($aAux as $aUser) { + if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { + $aAdhocUsers[] = $aUser['USR_UID']; + } + } + require_once 'classes/model/Users.php'; + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->addSelectColumn( UsersPeer::USR_UID ); + $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME ); + $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME ); + $oCriteria->add( UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN ); + $oDataset = UsersPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $aData = array (); + while ($oDataset->next()) { + $aData[] = $oDataset->getRow(); + } + + $this->data = $aData; + + } //assign user adhoc - function reassignCase ($params) - { - $cases = new Cases(); - $cases->reassignCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $_POST['USR_UID'], $_POST['THETYPE'] ); - $this->success = true; - } + function reassignCase ($params) + { + $cases = new Cases(); + $cases->reassignCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $_POST['USR_UID'], $_POST['THETYPE'] ); + $this->success = true; + } //delete case adhoc - function deleteCase ($params) - { - $ainfoCase = array (); - try { - $applicationUID = (isset( $_POST['APP_UID'] )) ? $_POST['APP_UID'] : $_SESSION['APPLICATION']; - $app = new Application(); - $caseData = $app->load( $applicationUID ); - $data['APP_NUMBER'] = $caseData['APP_NUMBER']; - - $oCase = new Cases(); - $oCase->removeCase( $applicationUID ); - - $this->success = true; - $this->msg = G::LoadTranslation( 'ID_CASE_DELETED_SUCCESSFULLY', SYS_LANG, $data ); - } catch (Exception $e) { - $this->success = false; - $this->msg = $e->getMessage(); - } - } - -} -//End adhocUserProxy - + function deleteCase ($params) + { + $ainfoCase = array (); + try { + $applicationUID = (isset( $_POST['APP_UID'] )) ? $_POST['APP_UID'] : $_SESSION['APPLICATION']; + $app = new Application(); + $caseData = $app->load( $applicationUID ); + $data['APP_NUMBER'] = $caseData['APP_NUMBER']; + + $oCase = new Cases(); + $oCase->removeCase( $applicationUID ); + + $this->success = true; + $this->msg = G::LoadTranslation( 'ID_CASE_DELETED_SUCCESSFULLY', SYS_LANG, $data ); + } catch (Exception $e) { + $this->success = false; + $this->msg = $e->getMessage(); + } + } + +} +//End adhocUserProxy diff --git a/workflow/engine/methods/cases/cases_Delete.php b/workflow/engine/methods/cases/cases_Delete.php index 5fa4c0182..9b8bef0ed 100755 --- a/workflow/engine/methods/cases/cases_Delete.php +++ b/workflow/engine/methods/cases/cases_Delete.php @@ -46,7 +46,6 @@ try { foreach ($ids as $id) { $oCase->removeCase( $id ); } - if (count( $_POST['APP_UIDS'] ) > 1) { echo 'The Case was deleted successfully'; } else {