added gateway details while importing and exporting process.

Added zoomfactor in zoom function...
This commit is contained in:
girish
2011-01-24 15:06:17 +00:00
parent ce2930fdb3
commit 7c4bcdc568
6 changed files with 177 additions and 18 deletions

View File

@@ -2489,10 +2489,11 @@ class processMap {
$oGateway->remove($sGatewayUID);
}
//Getting Gateway UID after saving gateway
if($sType != 'SEQUENTIAL' && $sGatewayUID == '' && $sDelete == '1')
//if($sType != 'SEQUENTIAL' && $sGatewayUID == '' && $sDelete == '1')
if($sType != 'SEQUENTIAL')
{
$oProcessMap = new processMap();
$sGatewayUID = $oProcessMap->saveNewGateway($sProcessUID, $sTaskUID);
$sGatewayUID = $oProcessMap->saveNewGateway($sProcessUID, $sTaskUID, $sNextTask);
}
$aFields ['GAT_UID'] = (isset($sGatewayUID))?$sGatewayUID:'';
@@ -2508,14 +2509,16 @@ class processMap {
*
* @param string $sProcessUID Default value empty
* @param string $sTaskUID Default value empty
* @param string $sNextTask Default value empty
* @return string $sGatewayUID
*/
function saveNewGateway($sProcessUID = '', $sTaskUID = '') {
function saveNewGateway($sProcessUID = '', $sTaskUID = '', $sNextTask = '') {
try {
$oTask = new Task();
$aTaskDetails = $oTask->load($sTaskUID);
$aFields ['PRO_UID'] = $sProcessUID;
$aFields ['TAS_UID'] = $sTaskUID;
$aFields ['GAT_NEXT_TASK'] = $sNextTask;
$aFields ['GAT_X'] = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
$aFields ['GAT_Y'] = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
@@ -4646,6 +4649,7 @@ class processMap {
function getExtAvailableBBCriteria($sProcessUID = '', $sTaskUID = '')
{
try {
$_SESSION['TASK'] = $sTaskUID;
$oTasks = new Tasks ( );
$_SESSION['TASK'] = $sTaskUID;
$aSteps = $oTasks->getStepsOfTask ( $sTaskUID );

View File

@@ -1002,6 +1002,26 @@ class Processes {
return $this->getAllLanes( $sProUid );
}
/**
* Get Gateway Rows from a process and returns those in an array.
* @param $sProUid string for the process Uid
* @return $oTask array
*/
function getGatewayRows ($sProUid ){
$oTask = new Tasks( );
return $oTask->getAllGateways( $sProUid );
}
/**
* Create Gateway Rows from a $aGateways array data and returns those in an array.
* @param $aGateways array
* @return $oGateway array
*/
function createGatewayRows ($aGateways ){
$oTask = new Tasks( );
return $oTask->createGatewayRows( $aGateways );
}
/**
* Create Lane Rows from a $aLanes array data and returns those in an array.
* @param $aLanes array.
@@ -2128,6 +2148,7 @@ class Processes {
$oData->tasks = $this->getTaskRows( $sProUid );
$oData->routes = $this->getRouteRows( $sProUid );
$oData->lanes = $this->getLaneRows( $sProUid );
$oData->gateways = $this->getGatewayRows( $sProUid );
$oData->inputs = $this->getInputRows( $sProUid );
$oData->outputs = $this->getOutputRows( $sProUid );
$oData->dynaforms = $this->getDynaformRows ( $sProUid );
@@ -2991,6 +3012,7 @@ class Processes {
$this->createTaskRows($oData->tasks);
$this->createRouteRows($oData->routes);
$this->createLaneRows($oData->lanes);
$this->createGatewayRows($oData->gateways);
$this->createDynaformRows($oData->dynaforms);
$this->createInputRows($oData->inputs);
$this->createOutputRows($oData->outputs);

View File

@@ -33,6 +33,7 @@ require_once 'classes/model/StepTrigger.php';
require_once 'classes/model/Task.php';
require_once 'classes/model/TaskUser.php';
require_once 'classes/model/Users.php';
require_once 'classes/model/Gateway.php';
/**
* Tasks - Tasks class
@@ -321,6 +322,48 @@ class Tasks
}
}
/**
* Get all gateways for any Process
* @param string $sProUid
* @return array
*/
public function getAllGateways($sProUid)
{
try {
$aGateways = array();
$oCriteria = new Criteria('workflow');
$oCriteria->add(GatewayPeer::PRO_UID, $sProUid);
$oDataset = GatewayPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$oGateway = new Gateway();
$aGateways[] = $oGateway->Load($aRow['GAT_UID']);
$oDataset->next();
}
return $aGateways;
}
catch (Exception $oError) {
throw($oError);
}
}
/**
* creates row tasks from an Task Array
* @param string $aTasks
* @return array
*/
public function createGatewayRows( $aGateway )
{
foreach ( $aGateway as $key => $row ) {
$oGateway = new Gateway();
if($oGateway->gatewayExists ($row['GAT_UID']))
$oGateway->remove($row['GAT_UID']);
$res = $oGateway->createRow($row);
}
return;
}
/**
* Delete all routes from a task
* @param string $sProcessUID

View File

@@ -113,5 +113,68 @@ class Gateway extends BaseGateway {
throw($oError);
}
}
/**
* verify if Gateway row specified in [GatUid] exists.
*
* @param string $sProUid the uid of the Prolication
*/
function gatewayExists ( $GatUid ) {
$con = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try {
$oPro = GatewayPeer::retrieveByPk( $GatUid );
if ( is_object($oPro) && get_class ($oPro) == 'Gateway' ) {
return true;
}
else {
return false;
}
}
catch (Exception $oError) {
throw($oError);
}
}
/**
* create a new Gateway
*
* @param array $aData with new values
* @return void
*/
function createRow($aData)
{
$con = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try
{
$con->begin();
$this->fromArray($aData,BasePeer::TYPE_FIELDNAME);
if($this->validate())
{
$this->setGatUid((isset($aData['GAT_UID']) ? $aData['GAT_UID']: ''));
$this->setProUid((isset($aData['PRO_UID']) ? $aData['PRO_UID']: ''));
$this->setTasUid((isset($aData['TAS_UID']) ? $aData['TAS_UID']: ''));
$this->setGatNextTask((isset($aData['GAT_NEXT_TASK']) ? $aData['GAT_NEXT_TASK']: ''));
$this->setGatX((isset($aData['GAT_X']) ? $aData['GAT_X']: ''));
$this->setGatY((isset($aData['GAT_Y']) ? $aData['GAT_Y']: ''));
$this->save();
$con->commit();
return;
}
else
{
$con->rollback();
$e=new Exception("Failed Validation in class ".get_class($this).".");
$e->aValidationFailures=$this->getValidationFailures();
throw($e);
}
}
catch(Exception $e)
{
$con->rollback();
throw($e);
}
}
} // Gateway