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 $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)
{
@@ -323,6 +323,7 @@ class wsBase
$oCriteria->addSelectColumn( ApplicationPeer::APP_NUMBER );
$oCriteria->addSelectColumn( ApplicationPeer::APP_STATUS );
$oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );
$oCriteria->addSelectColumn( ApplicationPeer::PRO_UID );
$oCriteria->addAsColumn( 'CASE_TITLE', 'C1.CON_VALUE' );
$oCriteria->addAlias( "C1", 'CONTENT' );
$caseTitleConds = array ();
@@ -354,15 +355,21 @@ class wsBase
'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();
}
return $result;
} 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;
}
@@ -385,16 +392,21 @@ class wsBase
$oDataset->next();
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();
}
return $result;
} 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;
}
@@ -665,7 +677,9 @@ class wsBase
$result = array ();
$oCriteria = new Criteria( 'workflow' );
$del = DBAdapter::getStringDelimiter();
$oCriteria->addSelectColumn( TaskPeer::PRO_UID );
$oCriteria->addSelectColumn( TaskPeer::TAS_UID );
$oCriteria->addSelectColumn( TaskPeer::TAS_START );
$oCriteria->setDistinct();
$oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' );
$oCriteria->addAlias( "C1", 'CONTENT' );
@@ -687,8 +701,10 @@ class wsBase
$oDataset->next();
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();
}
@@ -1600,94 +1616,6 @@ class wsBase
}
}
/**
* 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.
*
@@ -1700,23 +1628,59 @@ class wsBase
public function newCase ($processId, $userId, $taskId, $variables)
{
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 ();
if (is_array( $variables ) && count( $variables ) > 0) {
$Fields = $variables;
}
$oProcesses = new Processes();
$pro = $oProcesses->processExists( $processId );
if (! $pro) {
$result = new wsResponse( 11, G::loadTranslation( 'ID_INVALID_PROCESS' ) . " " . $processId );
G::pr("invalid process");
$this->restoreSessionVars();
return $result;
}
$oCase = new Cases();
$oTask = new Tasks();
$startingTasks = $oCase->getStartCases( $userId );
@@ -1744,16 +1708,17 @@ class wsBase
if ($tasksInThisProcess > 1) {
$result = new wsResponse( 13, G::loadTranslation( 'ID_MULTIPLE_STARTING_TASKS' ) );
$this->restoreSessionVars();
return $result;
}
}
if ($founded == '') {
$result = new wsResponse( 14, G::loadTranslation( 'ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK' ) );
$this->restoreSessionVars();
return $result;
}
$case = $oCase->startCase( $taskId, $userId );
$_SESSION['APPLICATION'] = $case['APPLICATION'];
@@ -1766,11 +1731,37 @@ class wsBase
$caseId = $case['APPLICATION'];
$caseNr = $case['CASE_NUMBER'];
$oldFields = $oCase->loadCase( $caseId );
$oldFields['APP_DATA'] = array_merge( $oldFields['APP_DATA'], $Fields );
$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->caseId = $caseId;
@@ -1779,7 +1770,7 @@ class wsBase
return $result;
} catch (Exception $e) {
$result = new wsResponse( 100, $e->getMessage() );
$this->restoreSessionVars();
return $result;
}
}