saving gateway details in Gateway table and Route Table

This commit is contained in:
girish
2011-01-04 15:09:27 +00:00
parent f3d4525c63
commit 0ba75c263d
3 changed files with 87 additions and 140 deletions

View File

@@ -57,6 +57,7 @@ require_once 'classes/model/Task.php';
require_once 'classes/model/TaskUser.php';
require_once 'classes/model/Triggers.php';
require_once 'classes/model/Users.php';
require_once 'classes/model/Gateway.php';
/**
* processMap - Process Map class
@@ -2393,12 +2394,14 @@ class processMap {
* @param string $sTaskUID Default value empty
* @param string $sNextTask Default value empty
* @param string $sType Default value empty
* @param boolean $sDelete
* @return array void
*/
function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '') {
function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $sDelete='') {
try {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS ROUTE_NUMBER');
$oCriteria->addSelectColumn('GAT_UID');
$oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
$oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
$oCriteria->add(RoutePeer::ROU_TYPE, $sType);
@@ -2412,6 +2415,20 @@ class processMap {
$aFields ['ROU_TYPE'] = $sType;
$aFields ['ROU_CASE'] = (int) $aRow ['ROUTE_NUMBER'] + 1;
$sGatewayUID = $aRow['GAT_UID'];
if($sDelete && $sGatewayUID != ''){
$oGateway = new Gateway ( );
$oGateway->remove($sGatewayUID);
}
//Getting Gateway UID after saving gateway
if($sType != 'SEQUENTIAL' && $sGatewayUID == '')
{
$oProcessMap = new processMap();
$sGatewayUID = $oProcessMap->saveNewGateway($sProcessUID, $sTaskUID);
}
$aFields ['GAT_UID'] = $sGatewayUID;
$oRoute = new Route ( );
$oRoute->create($aFields);
} catch (Exception $oError) {
@@ -2419,6 +2436,31 @@ class processMap {
}
}
/**
* saveNewGateway
*
* @param string $sProcessUID Default value empty
* @param string $sTaskUID Default value empty
* @return string $sGatewayUID
*/
function saveNewGateway($sProcessUID = '', $sTaskUID = '') {
try {
$oTask = new Task();
$aTaskDetails = $oTask->load($sTaskUID);
$aFields ['PRO_UID'] = $sProcessUID;
$aFields ['GAT_X'] = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
$aFields ['GAT_Y'] = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
$oGateway = new Gateway ( );
$sGatewayUID = $oGateway->create($aFields);
return $sGatewayUID;
} catch (Exception $oError) {
throw ($oError);
}
}
/*
* Delete a derivation rule
* @param string $sTaskUID
@@ -5535,8 +5577,6 @@ class processMap {
break;
}
$aObjects [] = array('CTO_TITLE' => $sTitle, 'CTO_UID' => $aRow ['CTO_UID'], 'CTO_TYPE_OBJ' => $aRow ['CTO_TYPE_OBJ'], 'CTO_UID_OBJ' => $aRow ['CTO_UID_OBJ'], 'CTO_CONDITION' => $aRow ['CTO_CONDITION'], 'CTO_POSITION' => $aRow ['CTO_POSITION']);
}
catch (Exception $oError) { //Nothing
@@ -5555,19 +5595,6 @@ class processMap {
return $aObjects;
}
/**
* availableCaseTrackerObjects
*
* @param string $sProcessUID
* @return boolean true
*/
function availableExtCaseTrackerObjects($sProcessUID) {
global $G_PUBLISH;
$G_PUBLISH = new Publisher ( );
$G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_AvailableCaseTrackerObjects', $this->getAvailableCaseTrackerObjectsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
G::RenderPage('publish', 'raw');
return true;
}
/**
* getAvailableCaseTrackerObjectsCriteria
@@ -5667,92 +5694,7 @@ class processMap {
return $oCriteria;*/
}
/**
* assignCaseTrackerObject
*
* @param string $sProcessUID
* @param string $sObjType
* @param string $sObjUID
* @return void
*/
function assignExtCaseTrackerObject($sProcessUID, $sObjType, $sObjUID) {
$oCriteria = new Criteria('workflow');
$oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
$iPosition = CaseTrackerObjectPeer::doCount($oCriteria) + 1;
$oCaseTrackerObject = new CaseTrackerObject ( );
$oCaseTrackerObject->create(array('PRO_UID' => $sProcessUID, 'CTO_TYPE_OBJ' => $sObjType, 'CTO_UID_OBJ' => $sObjUID, 'CTO_POSITION' => $iPosition));
}
/**
* removeCaseTrackerObject
*
* @param string $sCTOUID
* @param string $sProcessUID
* @param integer $iPosition
* @return void
*/
function removeExtCaseTrackerObject($sCTOUID, $sProcessUID, $iPosition) {
$oCaseTrackerObject = new CaseTrackerObject ( );
$oCaseTrackerObject->remove($sCTOUID);
$oCaseTrackerObject->reorderPositions($sProcessUID, $iPosition);
}
/**
* upCaseTrackerObject
*
* @param string $sCTOUID
* @param string $sProcessUID
* @param integer $iPosition
* @return void
*/
function upExtCaseTrackerObject($sCTOUID, $sProcessUID, $iPosition) {
if ($iPosition > 1) {
$oCriteria1 = new Criteria('workflow');
$oCriteria1->add(CaseTrackerObjectPeer::CTO_POSITION, $iPosition);
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
$oCriteria2->add(CaseTrackerObjectPeer::CTO_POSITION, ($iPosition - 1));
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow'));
$oCriteria1 = new Criteria('workflow');
$oCriteria1->add(CaseTrackerObjectPeer::CTO_POSITION, ($iPosition - 1));
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(CaseTrackerObjectPeer::CTO_UID, $sCTOUID);
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow'));
}
}
/**
* downCaseTrackerObject
*
* @param string $sCTOUID
* @param string $sProcessUID
* @param integer $iPosition
* @return void
*/
function downExtCaseTrackerObject($sCTOUID, $sProcessUID, $iPosition) {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS MAX_POSITION');
$oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
$oDataset = CaseTrackerObjectPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if ($iPosition < (int) $aRow ['MAX_POSITION']) {
$oCriteria1 = new Criteria('workflow');
$oCriteria1->add(CaseTrackerObjectPeer::CTO_POSITION, $iPosition);
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
$oCriteria2->add(CaseTrackerObjectPeer::CTO_POSITION, ($iPosition + 1));
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow'));
$oCriteria1 = new Criteria('workflow');
$oCriteria1->add(CaseTrackerObjectPeer::CTO_POSITION, ($iPosition + 1));
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(CaseTrackerObjectPeer::CTO_UID, $sCTOUID);
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow'));
}
}
function getExtReportTables($sProcessUID = '') {
function getExtReportTables($sProcessUID = '') {
$sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
@@ -5775,9 +5717,6 @@ class processMap {
$oDataset->next();
}
return $aReportTable;
}
}

View File

@@ -16,29 +16,32 @@ require_once 'classes/model/om/BaseGateway.php';
*/
class Gateway extends BaseGateway {
function create ($aData)
public function create ($aData)
{
$con = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try
{
$this->fromArray($aData, BasePeer::TYPE_FIELDNAME);
if($this->validate())
{
$result=$this->save();
$oConnection = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try {
$sGatewayUID = G::generateUniqueID();
$aData['GAT_UID'] = $sGatewayUID;
$oGateway = new Gateway();
$oGateway->fromArray($aData, BasePeer::TYPE_FIELDNAME);
if ($oGateway->validate()) {
$oConnection->begin();
$iResult = $oGateway->save();
$oConnection->commit();
return $sGatewayUID;
}
else
{
$e=new Exception("Failed Validation in class ".get_class($this).".");
$e->aValidationFailures=$this->getValidationFailures();
throw($e);
else {
$sMessage = '';
$aValidationFailures = $oGateway->getValidationFailures();
foreach($aValidationFailures as $oValidationFailure) {
$sMessage .= $oValidationFailure->getMessage() . '<br />';
}
throw(new Exception('The registry cannot be created!<br />'.$sMessage));
}
$con->commit();
return $result;
}
catch(Exception $e)
{
$con->rollback();
throw($e);
catch (Exception $oError) {
$oConnection->rollback();
throw($oError);
}
}
@@ -89,21 +92,26 @@ class Gateway extends BaseGateway {
}
}
function remove($GatewayUid)
public function remove($GatewayUid)
{
$con = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try
{
$con->begin();
$this->setGatUid($GatewayUid);
$result=$this->delete();
$con->commit();
return $result;
$oConnection = Propel::getConnection(GatewayPeer::DATABASE_NAME);
try {
$oGateWay = RoutePeer::retrieveByPK($GatewayUid);
if (!is_null($oGateWay))
{
$oConnection->begin();
$iResult = $oGateWay->delete();
$oConnection->commit();
return $iResult;
}
else {
throw(new Exception('This row doesn\'t exists!'));
}
}
catch(Exception $e)
{
$con->rollback();
throw($e);
catch (Exception $oError) {
$oConnection->rollback();
throw($oError);
}
}
} // Gateway

View File

@@ -276,7 +276,7 @@ try {
$oTasks = new Tasks();
$oTasks->deleteAllRoutesOfTask($oData->pro_uid, $oData->tas_uid);
}
$oProcessMap->saveNewPattern($oData->pro_uid, $oData->tas_uid, $oData->next_task, $sType);
$oProcessMap->saveNewPattern($oData->pro_uid, $oData->tas_uid, $oData->next_task, $sType, $oData->delete);
break;
case 'deleteAllRoutes':
G::LoadClass('tasks');