BUG 11075 Adicion de triggers: UP-DOWN no funciona SOLVED
- En la asignación de triggers a un Step, es difícil poder mover la posición de un trigger (en cualquiera de las opciones: Before, After, Before Assignment, Before Routing,etc)con el Down y Up. - Adjustment in generating task indices and re-indexed position by task.
This commit is contained in:
@@ -173,13 +173,16 @@ class StepTrigger extends BaseStepTrigger
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNextPosition ($sStepUID, $sType)
|
public function getNextPosition ($sStepUID, $sType, $sTaskId = '')
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$oCriteria = new Criteria( 'workflow' );
|
$oCriteria = new Criteria( 'workflow' );
|
||||||
$oCriteria->addSelectColumn( '(COUNT(*) + 1) AS POSITION' );
|
$oCriteria->addSelectColumn( '(COUNT(*) + 1) AS POSITION' );
|
||||||
$oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID );
|
$oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID );
|
||||||
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
|
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
|
||||||
|
if ($sTaskId != '') {
|
||||||
|
$oCriteria->add( StepTriggerPeer::TAS_UID , $sTaskId );
|
||||||
|
}
|
||||||
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
|
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
|
||||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
@@ -190,6 +193,44 @@ class StepTrigger extends BaseStepTrigger
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param type $sStepUID
|
||||||
|
* @param type $sTaskUID
|
||||||
|
* @param type $sType
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function orderPosition ($sStepUID, $sTaskUID, $sType)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$oCriteria = new Criteria( 'workflow' );
|
||||||
|
$oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID );
|
||||||
|
$oCriteria->add( StepTriggerPeer::TAS_UID, $sTaskUID );
|
||||||
|
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
|
||||||
|
$oCriteria->addAscendingOrderByColumn(StepTriggerPeer::ST_POSITION);
|
||||||
|
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
|
||||||
|
|
||||||
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||||
|
$oDataset->next();
|
||||||
|
$aRow = $oDataset->getRow();
|
||||||
|
if ((int)$aRow['ST_POSITION'] > 1 ) {
|
||||||
|
$rowNro = 1;
|
||||||
|
while ($aRow = $oDataset->getRow()) {
|
||||||
|
$oStep = StepTriggerPeer::retrieveByPK( $aRow['STEP_UID'], $aRow['TAS_UID'], $aRow['TRI_UID'], $aRow['ST_TYPE'] );
|
||||||
|
$oStep->setStPosition( $rowNro );
|
||||||
|
$oStep->save();
|
||||||
|
$oDataset->next();
|
||||||
|
$rowNro++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception $oException) {
|
||||||
|
throw $oException;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function reOrder ($sStepUID, $sTaskUID, $sType, $iPosition)
|
public function reOrder ($sStepUID, $sTaskUID, $sType, $iPosition)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@@ -199,6 +240,7 @@ class StepTrigger extends BaseStepTrigger
|
|||||||
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
|
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
|
||||||
$oCriteria->add( StepTriggerPeer::ST_POSITION, $iPosition, '>' );
|
$oCriteria->add( StepTriggerPeer::ST_POSITION, $iPosition, '>' );
|
||||||
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
|
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
|
||||||
|
|
||||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
while ($aRow = $oDataset->getRow()) {
|
while ($aRow = $oDataset->getRow()) {
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ try {
|
|||||||
$oProcessMap = new ProcessMap();
|
$oProcessMap = new ProcessMap();
|
||||||
global $G_PUBLISH;
|
global $G_PUBLISH;
|
||||||
$G_PUBLISH = new Publisher();
|
$G_PUBLISH = new Publisher();
|
||||||
|
|
||||||
|
$oStepTrigger = new StepTrigger();
|
||||||
|
$oStepTrigger->orderPosition( $aData['sStep'], $_SESSION['TASK'], $aData['sType']);
|
||||||
|
|
||||||
if ($aData['sType'] == 'BEFORE') {
|
if ($aData['sType'] == 'BEFORE') {
|
||||||
$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'steps/triggersBefore_List', $oProcessMap->getStepTriggersCriteria( $aData['sStep'], $_SESSION['TASK'], $aData['sType'] ), array ('STEP' => $aData['sStep']) );
|
$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'steps/triggersBefore_List', $oProcessMap->getStepTriggersCriteria( $aData['sStep'], $_SESSION['TASK'], $aData['sType'] ), array ('STEP' => $aData['sStep']) );
|
||||||
} else {
|
} else {
|
||||||
@@ -114,12 +118,16 @@ try {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'assignTrigger':
|
case 'assignTrigger':
|
||||||
$aFields = array ('STEP_UID' => $aData['STEP_UID'],'TAS_UID' => $_SESSION['TASK'],'TRI_UID' => $aData['TRI_UID'],'ST_TYPE' => $aData['ST_TYPE']
|
$aFields = array (
|
||||||
|
'STEP_UID' => $aData['STEP_UID'],
|
||||||
|
'TAS_UID' => $_SESSION['TASK'],
|
||||||
|
'TRI_UID' => $aData['TRI_UID'],
|
||||||
|
'ST_TYPE' => $aData['ST_TYPE']
|
||||||
);
|
);
|
||||||
$oStepTrigger = new StepTrigger();
|
$oStepTrigger = new StepTrigger();
|
||||||
$oStepTrigger->create( $aFields );
|
$oStepTrigger->create( $aFields );
|
||||||
$aFields['ST_CONDITION'] = $aData['ST_CONDITION'];
|
$aFields['ST_CONDITION'] = $aData['ST_CONDITION'];
|
||||||
$aFields['ST_POSITION'] = ($oStepTrigger->getNextPosition( $aData['STEP_UID'], $aData['ST_TYPE'] ) - 1);
|
$aFields['ST_POSITION'] = ($oStepTrigger->getNextPosition( $aData['STEP_UID'], $aData['ST_TYPE'], $_SESSION['TASK'] ) - 1 );
|
||||||
$oStepTrigger->update( $aFields );
|
$oStepTrigger->update( $aFields );
|
||||||
break;
|
break;
|
||||||
case 'editTriggerCondition':
|
case 'editTriggerCondition':
|
||||||
|
|||||||
Reference in New Issue
Block a user