saving gateway details in Gateway table and Route Table
This commit is contained in:
@@ -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,20 +5595,7 @@ 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,22 +91,27 @@ class Gateway extends BaseGateway {
|
||||
throw($e);
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user