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:
Hector Cortez
2013-08-30 11:50:54 -04:00
parent 4ee27b7be1
commit 1a25eb2f05
2 changed files with 53 additions and 3 deletions

View File

@@ -173,13 +173,16 @@ class StepTrigger extends BaseStepTrigger
}
}
public function getNextPosition ($sStepUID, $sType)
public function getNextPosition ($sStepUID, $sType, $sTaskId = '')
{
try {
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( '(COUNT(*) + 1) AS POSITION' );
$oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID );
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
if ($sTaskId != '') {
$oCriteria->add( StepTriggerPeer::TAS_UID , $sTaskId );
}
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$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)
{
try {
@@ -199,6 +240,7 @@ class StepTrigger extends BaseStepTrigger
$oCriteria->add( StepTriggerPeer::ST_TYPE, $sType );
$oCriteria->add( StepTriggerPeer::ST_POSITION, $iPosition, '>' );
$oDataset = StepTriggerPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
while ($aRow = $oDataset->getRow()) {