BUG 9103 Don't work event range of tasks SOLVED

- I add functionality to the event range of tasks
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-07-23 18:55:23 -04:00
parent d2e823f028
commit e5951d1fdf

View File

@@ -35,6 +35,12 @@ class Event extends BaseEvent {
*/
protected $evn_description = '';
/**
* This value the Event id select
* @var string
*/
protected $eventsSelect = array();
/**
* Get the evn_description column value.
* @return string
@@ -623,21 +629,13 @@ class Event extends BaseEvent {
function createAppEvents($PRO_UID, $APP_UID, $DEL_INDEX, $TAS_UID){
$aRows = Array();
$aEventsRows = $this->getBy($PRO_UID, Array('TAS_UID'=>$TAS_UID));
$aEventsRows = $this->getBy($PRO_UID, $TAS_UID);
if( $aEventsRows !== false ){
$aRows = array_merge($aRows, $aEventsRows);
}
$aEventsRows = $this->getBy($PRO_UID, Array('EVN_TAS_UID_FROM'=>$TAS_UID));
if( $aEventsRows !== false ){
$aRows = array_merge($aRows, $aEventsRows);
}
foreach($aRows as $aData){
// if the events has a condition
if( trim($aData['EVN_CONDITIONS']) != '' ) {
G::LoadClass('case');
if( trim($aData['EVN_CONDITIONS']) != '' ) {
$oCase = new Cases();
$aFields = $oCase->loadCase($APP_UID);
@@ -691,7 +689,63 @@ class Event extends BaseEvent {
}
}
function getBy($PRO_UID, $aFilers){
function verifyTaskbetween($PRO_UID, $taskFrom, $taskTo, $taskVerify) {
$criteria = new Criteria('workflow');
$criteria->addSelectColumn(RoutePeer::ROU_NEXT_TASK);
$criteria->add(RoutePeer::PRO_UID, $PRO_UID);
$criteria->add(RoutePeer::TAS_UID, $taskFrom);
$dataset = RoutePeer::doSelectRs($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataset->next()) {
$routeData = $dataset->getRow();
switch ($routeData['ROU_NEXT_TASK']) {
case $taskVerify:
return true;
break;
case $taskTo:
case '-1':
return false;
break;
default:
return $this->verifyTaskbetween($PRO_UID, $routeData['ROU_NEXT_TASK'], $taskTo, $taskVerify);
break;
}
}
}
function getBy($PRO_UID, $taskUid){
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(EventPeer::EVN_UID);
$oCriteria->addSelectColumn(EventPeer::EVN_TAS_UID_FROM );
$oCriteria->addSelectColumn(EventPeer::EVN_TAS_UID_TO );
$oCriteria->add(EventPeer::EVN_STATUS, 'ACTIVE');
$oCriteria->add(EventPeer::EVN_ACTION, '', Criteria::NOT_EQUAL);
$oCriteria->add(EventPeer::PRO_UID, $PRO_UID, Criteria::EQUAL);
$oDataset = EventPeer::doSelectRs($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$eventsTask = array();
while ($oDataset->next()) {
$aDataEvent = $oDataset->getRow();
if ($taskUid == $aDataEvent['EVN_TAS_UID_FROM'] || $taskUid == $aDataEvent['EVN_TAS_UID_TO']) {
$eventsTask[] = $aDataEvent['EVN_UID'];
} else {
$flag = $this->verifyTaskbetween($PRO_UID, $aDataEvent['EVN_TAS_UID_FROM'], $aDataEvent['EVN_TAS_UID_TO'], $taskUid);
if ($flag) {
$eventsTask[] = $aDataEvent['EVN_UID'];
}
}
}
$aRows = Array();
if (count($eventsTask) > 0) {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(EventPeer::EVN_UID);
$oCriteria->addSelectColumn(EventPeer::PRO_UID);
@@ -709,29 +763,16 @@ class Event extends BaseEvent {
$oCriteria->addSelectColumn(EventPeer::EVN_ACTION_PARAMETERS);
$oCriteria->addSelectColumn(EventPeer::TRI_UID);
$oCriteria->add(EventPeer::EVN_STATUS, 'ACTIVE');
$oCriteria->add(EventPeer::EVN_ACTION, '', Criteria::NOT_EQUAL);
foreach($aFilers as $sFilter=>$sValue){
switch($sFilter){
case 'TAS_UID':
$oCriteria->add(EventPeer::TAS_UID, $sValue, Criteria::EQUAL);
break;
case 'EVN_TAS_UID_FROM':
$oCriteria->add(EventPeer::EVN_TAS_UID_FROM, $sValue, Criteria::EQUAL);
break;
case 'EVN_TAS_UID_TO':
$oCriteria->add(EventPeer::EVN_TAS_UID_TO, $sValue, Criteria::EQUAL);
break;
}
}
$oCriteria->add(EventPeer::EVN_UID, (array)$eventsTask, Criteria::IN);
$oDataset = EventPeer::doSelectRs($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$aRows = Array();
while($oDataset->next()) $aRows[]= $oDataset->getRow();
}
return (count($aRows) > 0)? $aRows: false;
return (count($aRows) > 0)? $aRows: false;
}
function getAppEvents($APP_UID, $DEL_INDEX){