From 8ff2f1c091ea8c5890250c3ba1b32a0edf4205aa Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Tue, 7 Mar 2017 16:59:04 -0400 Subject: [PATCH] HOR-2813 --- workflow/engine/methods/cases/cases_Open.php | 74 ++++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/workflow/engine/methods/cases/cases_Open.php b/workflow/engine/methods/cases/cases_Open.php index 477fb90eb..0ae9314b1 100644 --- a/workflow/engine/methods/cases/cases_Open.php +++ b/workflow/engine/methods/cases/cases_Open.php @@ -23,7 +23,7 @@ */ if(isset( $_GET['gmail']) && $_GET['gmail'] == 1){ - $_SESSION['gmail'] = 1; + $_SESSION['gmail'] = 1; } /* Permissions */ @@ -52,19 +52,19 @@ Cases::clearCaseSessionData(); try { //Loading data for a Jump request - if (! isset( $_GET['APP_UID'] ) && isset( $_GET['APP_NUMBER'] )) { + if (!isset($_GET['APP_UID']) && isset($_GET['APP_NUMBER'])) { $_GET['APP_UID'] = $oCase->getApplicationUIDByNumber( $_GET['APP_NUMBER'] ); $_GET['DEL_INDEX'] = $oCase->getCurrentDelegation( $_GET['APP_UID'], $_SESSION['USER_LOGGED'] ); //if the application doesn't exist - if (is_null( $_GET['APP_UID'] )) { + if (is_null($_GET['APP_UID'])) { G::SendMessageText( G::LoadTranslation( 'ID_CASE_DOES_NOT_EXISTS' ), 'info' ); G::header( 'location: casesListExtJs' ); exit(); } //if the application exists but the - if (is_null( $_GET['DEL_INDEX'] )) { + if (is_null($_GET['DEL_INDEX'])) { G::SendMessageText( G::LoadTranslation( 'ID_CASE_IS_CURRENTLY_WITH_ANOTHER_USER' ), 'info' ); G::header( 'location: casesListExtJs' ); exit(); @@ -75,21 +75,21 @@ try { $sAppUid = $_GET['APP_UID']; $iDelIndex = $_GET['DEL_INDEX']; - $_action = isset( $_GET['action'] ) ? $_GET['action'] : ''; + $_action = isset($_GET['action']) ? $_GET['action'] : ''; //loading application data $aFields = $oCase->loadCase( $sAppUid, $iDelIndex ); - // g::pr($aFields); - // die; + if (!isset($_SESSION['CURRENT_TASK'])) { - $_SESSION['CURRENT_TASK'] = $aFields['TAS_UID']; - } else if ($_SESSION['CURRENT_TASK'] == '') { - $_SESSION['CURRENT_TASK'] = $aFields['TAS_UID']; + $_SESSION['CURRENT_TASK'] = $aFields['TAS_UID']; + } elseif ($_SESSION['CURRENT_TASK'] == '') { + $_SESSION['CURRENT_TASK'] = $aFields['TAS_UID']; } + switch ($aFields['APP_STATUS']) { case 'DRAFT': case 'TO_DO': - //check if the case is in pause, check a valid record in table APP_DELAY + //Check if the case is in pause, check a valid record in table APP_DELAY if (AppDelay::isPaused( $sAppUid, $iDelIndex )) { //the case is paused show only the resume $_SESSION['APPLICATION'] = $sAppUid; @@ -139,8 +139,7 @@ try { $aDelegation = $oAppDelegation->load( $sAppUid, $iDelIndex ); //if there are no user in the delegation row, this case is in selfservice - if ($aDelegation['USR_UID'] == "" /*&& $aDelegation['DEL_THREAD_STATUS'] == 'SELFSERVICE'*/ ) { - + if ($aDelegation['USR_UID'] == "") { $_SESSION['APPLICATION'] = $sAppUid; $_SESSION['INDEX'] = $iDelIndex; $_SESSION['PROCESS'] = $aFields['PRO_UID']; @@ -158,7 +157,7 @@ try { exit(); } - //if the current users is in the AppDelegation row, then open the case + //If the current users is in the AppDelegation row, then open the case if (($aDelegation['USR_UID'] == $_SESSION['USER_LOGGED']) && $_action != 'sent') { $_SESSION['APPLICATION'] = $sAppUid; $_SESSION['INDEX'] = $iDelIndex; @@ -174,39 +173,40 @@ try { /* Redirect to next step */ unset( $_SESSION['bNoShowSteps'] ); - + /* Execute Before Triggers for first Task*/ $oCase->getExecuteTriggerProcess($sAppUid, 'OPEN'); /*end Execute Before Triggers for first Task*/ - + $aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); $sPage = $aNextStep['PAGE']; G::header( 'location: ' . $sPage ); } else { - //when the case have another user or current user doesn't have rights to this self-service, - //just view the case Resume - - // Get DEL_INDEX - $criteria = new Criteria('workflow'); - $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); - $criteria->add(AppDelegationPeer::APP_UID, $sAppUid); - $criteria->add(AppDelegationPeer::DEL_LAST_INDEX , 1); - $rs = AppDelegationPeer::doSelectRS($criteria); - $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $rs->next(); - $row = $rs->getRow(); - $_SESSION['APPLICATION'] = $sAppUid; - if($_action=='search'){ - $_SESSION['INDEX'] = $iDelIndex; - } else { - $_SESSION['INDEX'] = $row['DEL_INDEX']; - } $_SESSION['PROCESS'] = $aFields['PRO_UID']; $_SESSION['TASK'] = - 1; $_SESSION['bNoShowSteps'] = 1; - //$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'] ); + $_SESSION['STEP_POSITION'] = 0; + + //When the case have another user or current user doesn't have rights to this self-service, + //Just view the case Resume + if ($_action === 'search' || $_action === 'to_reassign') { + //We need to use the index sent with the corresponding record + $_SESSION['INDEX'] = $iDelIndex; + } else { + //Get DEL_INDEX + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteria->add(AppDelegationPeer::APP_UID, $sAppUid); + $criteria->add(AppDelegationPeer::DEL_LAST_INDEX , 1); + $rs = AppDelegationPeer::doSelectRS($criteria); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $row = $rs->getRow(); + $_SESSION['INDEX'] = $row['DEL_INDEX']; + } + if ($_action == 'jump') { $Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], 1); $_SESSION['ACTION'] = 'jump'; @@ -214,13 +214,13 @@ try { $Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']); unset($_SESSION['ACTION']); } + $_SESSION['CURRENT_TASK'] = $Fields['TAS_UID']; - $_SESSION['STEP_POSITION'] = 0; require_once (PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php'); } break; - default: //APP_STATUS <> DRAFT and TO_DO + default: //APP_STATUS IS COMPLETED OR CANCELLED $_SESSION['APPLICATION'] = $sAppUid; $_SESSION['INDEX'] = $oCase->getCurrentDelegationCase( $_GET['APP_UID'] ); $_SESSION['PROCESS'] = $aFields['PRO_UID'];