RESTORING to set a fresh Pull request.

This commit is contained in:
Ralph Asendeteufrer
2012-10-12 12:52:50 -04:00
parent 1c7b1d658d
commit b4e3c54302

View File

@@ -76,7 +76,7 @@ class wsBase
{ {
public $stored_system_variables; //boolean public $stored_system_variables; //boolean
public $wsSessionId; //web service session id, if the wsbase function is used from a WS request public $wsSessionId; //web service session id, if the wsbase function is used from a WS request
private $originalValues = array (); // session temporary array store.
public function __construct ($params = null) public function __construct ($params = null)
{ {
@@ -323,6 +323,7 @@ class wsBase
$oCriteria->addSelectColumn( ApplicationPeer::APP_NUMBER ); $oCriteria->addSelectColumn( ApplicationPeer::APP_NUMBER );
$oCriteria->addSelectColumn( ApplicationPeer::APP_STATUS ); $oCriteria->addSelectColumn( ApplicationPeer::APP_STATUS );
$oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX ); $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );
$oCriteria->addSelectColumn( ApplicationPeer::PRO_UID );
$oCriteria->addAsColumn( 'CASE_TITLE', 'C1.CON_VALUE' ); $oCriteria->addAsColumn( 'CASE_TITLE', 'C1.CON_VALUE' );
$oCriteria->addAlias( "C1", 'CONTENT' ); $oCriteria->addAlias( "C1", 'CONTENT' );
$caseTitleConds = array (); $caseTitleConds = array ();
@@ -354,15 +355,21 @@ class wsBase
'delIndex' => $aRow['DEL_INDEX'] 'delIndex' => $aRow['DEL_INDEX']
); );
*/ */
$result[] = array ('guid' => $aRow['APP_UID'],'name' => $aRow['APP_NUMBER'],'status' => $aRow['APP_STATUS'],'delIndex' => $aRow['DEL_INDEX'] $result[] = array('guid' => $aRow['APP_UID'],
); 'name' => $aRow['APP_NUMBER'],
'status' => $aRow['APP_STATUS'],
'delIndex' => $aRow['DEL_INDEX'],
'processId' => $aRow['PRO_UID']);
$oDataset->next(); $oDataset->next();
} }
return $result; return $result;
} catch (Exception $e) { } catch (Exception $e) {
$result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage(),'status' => $e->getMessage(),'status' => $e->getMessage() $result[] = array ('guid' => $e->getMessage(),
); 'name' => $e->getMessage(),
'status' => $e->getMessage(),
'status' => $e->getMessage(),
'processId' => $e->getMessage());
return $result; return $result;
} }
@@ -385,16 +392,21 @@ class wsBase
$oDataset->next(); $oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
$result[] = array ('guid' => $aRow['APP_UID'],'name' => $aRow['APP_NUMBER'],'delIndex' => $aRow['DEL_INDEX'] $result[] = array ('guid' => $aRow['APP_UID'],
); 'name' => $aRow['APP_NUMBER'],
'delIndex' => $aRow['DEL_INDEX'],
'processId' => $aRow['PRO_UID']);
$oDataset->next(); $oDataset->next();
} }
return $result; return $result;
} catch (Exception $e) { } catch (Exception $e) {
$result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage(),'status' => $e->getMessage(),'status' => $e->getMessage() $result[] = array ('guid' => $e->getMessage(),
); 'name' => $e->getMessage(),
'status' => $e->getMessage(),
'status' => $e->getMessage(),
'processId' => $e->getMessage());
return $result; return $result;
} }
@@ -665,7 +677,9 @@ class wsBase
$result = array (); $result = array ();
$oCriteria = new Criteria( 'workflow' ); $oCriteria = new Criteria( 'workflow' );
$del = DBAdapter::getStringDelimiter(); $del = DBAdapter::getStringDelimiter();
$oCriteria->addSelectColumn( TaskPeer::PRO_UID );
$oCriteria->addSelectColumn( TaskPeer::TAS_UID ); $oCriteria->addSelectColumn( TaskPeer::TAS_UID );
$oCriteria->addSelectColumn( TaskPeer::TAS_START );
$oCriteria->setDistinct(); $oCriteria->setDistinct();
$oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' ); $oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' );
$oCriteria->addAlias( "C1", 'CONTENT' ); $oCriteria->addAlias( "C1", 'CONTENT' );
@@ -687,8 +701,10 @@ class wsBase
$oDataset->next(); $oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
$result[] = array ('guid' => $aRow['TAS_UID'],'name' => $aRow['TAS_TITLE'] $result[] = array ('guid' => $aRow['TAS_UID'],
); 'name' => $aRow['TAS_TITLE'],
'processId' => $aRow['PRO_UID'],
'initialTask' => $aRow['TAS_START'] == 'TRUE' ? '1' : '0');
$oDataset->next(); $oDataset->next();
} }
@@ -1599,94 +1615,6 @@ class wsBase
return $result; return $result;
} }
} }
/**
* save the $_SESSION variables into $originalValues array, to unset them temporary.
*
*/
private function saveTemporarySessionVars()
{
//Unset any variable, because we are starting a new case
if (isset( $_SESSION['APPLICATION'] )) {
$this->originalValues['APPLICATION'] = $_SESSION['APPLICATION'];
unset( $_SESSION['APPLICATION'] );
}
if (isset( $_SESSION['PROCESS'] )) {
$this->originalValues['PROCESS'] = $_SESSION['PROCESS'];
unset( $_SESSION['PROCESS'] );
}
if (isset( $_SESSION['TASK'] )) {
$this->originalValues['TASK'] = $_SESSION['TASK'];
unset( $_SESSION['TASK'] );
}
if (isset( $_SESSION['INDEX'] )) {
$this->originalValues['INDEX'] = $_SESSION['INDEX'];
unset( $_SESSION['INDEX'] );
}
if (isset( $_SESSION['USER_LOGGED'] )) {
$this->originalValues['USER_LOGGED'] = $_SESSION['USER_LOGGED'];
unset( $_SESSION['USER_LOGGED'] );
}
if (isset( $_SESSION['USR_USERNAME'] )) {
$this->originalValues['USR_USERNAME'] = $_SESSION['USR_USERNAME'];
unset( $_SESSION['USR_USERNAME'] );
}
if (isset( $_SESSION['STEP_POSITION'] )) {
$this->originalValues['STEP_POSITION'] = $_SESSION['STEP_POSITION'];
unset( $_SESSION['STEP_POSITION'] );
}
}
/**
* restore the Session variables with values of $originalValues array, if this is set.
*
*/
private function restoreSessionVars()
{
//Restore original values
if (isset( $this->originalValues['APPLICATION'] )) {
$_SESSION['APPLICATION'] = $this->originalValues['APPLICATION'];
unset( $this->originalValues['APPLICATION']);
}
if (isset( $this->originalValues['PROCESS'] )) {
$_SESSION['PROCESS'] = $this->originalValues['PROCESS'];
unset( $this->originalValues['PROCESS']);
}
if (isset( $this->originalValues['TASK'] )) {
$_SESSION['TASK'] = $this->originalValues['TASK'];
unset( $this->originalValues['TASK']);
}
if (isset( $this->originalValues['INDEX'] )) {
$_SESSION['INDEX'] = $this->originalValues['INDEX'];
unset( $this->originalValues['INDEX']);
}
if (isset( $this->originalValues['USR_USERNAME'] )) {
$_SESSION['USR_USERNAME'] = $this->originalValues['USR_USERNAME'];
unset( $this->originalValues['USR_USERNAME']);
}
if (isset( $this->originalValues['USER_LOGGED'] )) {
G::pr("restore:".$this->originalValues['USER_LOGGED']." se:".$_SESSION['USER_LOGGED']);
$_SESSION['USER_LOGGED'] = $this->originalValues['USER_LOGGED'];
unset( $this->originalValues['USER_LOGGED']);
G::pr("restore:".$this->originalValues['USER_LOGGED']." se:".$_SESSION['USER_LOGGED']);
}
if (isset( $this->originalValues['STEP_POSITION'] )) {
$_SESSION['STEP_POSITION'] = $this->originalValues['STEP_POSITION'];
unset( $this->originalValues['STEP_POSITION']);
}
}
/** /**
* new Case begins a new case under the name of the logged-in user. * new Case begins a new case under the name of the logged-in user.
@@ -1700,23 +1628,59 @@ class wsBase
public function newCase ($processId, $userId, $taskId, $variables) public function newCase ($processId, $userId, $taskId, $variables)
{ {
try { try {
$originalValues = array ();
$this->saveTemporarySessionVars();
//Unset any variable, because we are starting a new case
if (isset( $_SESSION['APPLICATION'] )) {
$originalValues['APPLICATION'] = $_SESSION['APPLICATION'];
unset( $_SESSION['APPLICATION'] );
}
if (isset( $_SESSION['PROCESS'] )) {
$originalValues['PROCESS'] = $_SESSION['PROCESS'];
unset( $_SESSION['PROCESS'] );
}
if (isset( $_SESSION['TASK'] )) {
$originalValues['TASK'] = $_SESSION['TASK'];
unset( $_SESSION['TASK'] );
}
if (isset( $_SESSION['INDEX'] )) {
$originalValues['INDEX'] = $_SESSION['INDEX'];
unset( $_SESSION['INDEX'] );
}
if (isset( $_SESSION['USER_LOGGED'] )) {
$originalValues['USER_LOGGED'] = $_SESSION['USER_LOGGED'];
unset( $_SESSION['USER_LOGGED'] );
}
if (isset( $_SESSION['USR_USERNAME'] )) {
$originalValues['USR_USERNAME'] = $_SESSION['USR_USERNAME'];
unset( $_SESSION['USR_USERNAME'] );
}
if (isset( $_SESSION['STEP_POSITION'] )) {
$originalValues['STEP_POSITION'] = $_SESSION['STEP_POSITION'];
unset( $_SESSION['STEP_POSITION'] );
}
$Fields = array (); $Fields = array ();
if (is_array( $variables ) && count( $variables ) > 0) { if (is_array( $variables ) && count( $variables ) > 0) {
$Fields = $variables; $Fields = $variables;
} }
$oProcesses = new Processes(); $oProcesses = new Processes();
$pro = $oProcesses->processExists( $processId ); $pro = $oProcesses->processExists( $processId );
if (! $pro) { if (! $pro) {
$result = new wsResponse( 11, G::loadTranslation( 'ID_INVALID_PROCESS' ) . " " . $processId ); $result = new wsResponse( 11, G::loadTranslation( 'ID_INVALID_PROCESS' ) . " " . $processId );
G::pr("invalid process");
$this->restoreSessionVars();
return $result; return $result;
} }
$oCase = new Cases(); $oCase = new Cases();
$oTask = new Tasks(); $oTask = new Tasks();
$startingTasks = $oCase->getStartCases( $userId ); $startingTasks = $oCase->getStartCases( $userId );
@@ -1744,16 +1708,17 @@ class wsBase
if ($tasksInThisProcess > 1) { if ($tasksInThisProcess > 1) {
$result = new wsResponse( 13, G::loadTranslation( 'ID_MULTIPLE_STARTING_TASKS' ) ); $result = new wsResponse( 13, G::loadTranslation( 'ID_MULTIPLE_STARTING_TASKS' ) );
$this->restoreSessionVars();
return $result; return $result;
} }
} }
if ($founded == '') { if ($founded == '') {
$result = new wsResponse( 14, G::loadTranslation( 'ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK' ) ); $result = new wsResponse( 14, G::loadTranslation( 'ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK' ) );
$this->restoreSessionVars();
return $result; return $result;
} }
$case = $oCase->startCase( $taskId, $userId ); $case = $oCase->startCase( $taskId, $userId );
$_SESSION['APPLICATION'] = $case['APPLICATION']; $_SESSION['APPLICATION'] = $case['APPLICATION'];
@@ -1766,11 +1731,37 @@ class wsBase
$caseId = $case['APPLICATION']; $caseId = $case['APPLICATION'];
$caseNr = $case['CASE_NUMBER']; $caseNr = $case['CASE_NUMBER'];
$oldFields = $oCase->loadCase( $caseId ); $oldFields = $oCase->loadCase( $caseId );
$oldFields['APP_DATA'] = array_merge( $oldFields['APP_DATA'], $Fields ); $oldFields['APP_DATA'] = array_merge( $oldFields['APP_DATA'], $Fields );
$up_case = $oCase->updateCase( $caseId, $oldFields ); $up_case = $oCase->updateCase( $caseId, $oldFields );
$this->restoreSessionVars(); //Restore original values
if (isset( $originalValues['APPLICATION'] )) {
$_SESSION['APPLICATION'] = $originalValues['APPLICATION'];
}
if (isset( $originalValues['PROCESS'] )) {
$_SESSION['PROCESS'] = $originalValues['PROCESS'];
}
if (isset( $originalValues['TASK'] )) {
$_SESSION['TASK'] = $originalValues['TASK'];
}
if (isset( $originalValues['INDEX'] )) {
$_SESSION['INDEX'] = $originalValues['INDEX'];
}
if (isset( $originalValues['USR_USERNAME'] )) {
$_SESSION['USR_USERNAME'] = $originalValues['USR_USERNAME'];
}
if (isset( $originalValues['STEP_POSITION'] )) {
$_SESSION['STEP_POSITION'] = $originalValues['STEP_POSITION'];
}
$result = new wsResponse( 0, G::loadTranslation( 'ID_STARTED_SUCCESSFULLY' ) ); $result = new wsResponse( 0, G::loadTranslation( 'ID_STARTED_SUCCESSFULLY' ) );
$result->caseId = $caseId; $result->caseId = $caseId;
@@ -1779,7 +1770,7 @@ class wsBase
return $result; return $result;
} catch (Exception $e) { } catch (Exception $e) {
$result = new wsResponse( 100, $e->getMessage() ); $result = new wsResponse( 100, $e->getMessage() );
$this->restoreSessionVars();
return $result; return $result;
} }
} }