From 9cdee7bb50e3ea3daec49bfa1bfa4e2fee2c02ad Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Mon, 13 Jul 2015 18:39:59 -0400 Subject: [PATCH] PM-2576 "Support for Timer-Event (End-points and Backend)" SOLVED Issue: Los procesos inactivos siguen ejecutandose con el timereventcron Cause: Falta validacion para procesos inactivos Solution: Se agrego validacion, solo se consideran a procesos activos para iniciar/continuar el caso --- .../src/ProcessMaker/BusinessModel/TimerEvent.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php index 4d4423fdc..de2c8f6ce 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php @@ -1190,6 +1190,12 @@ class TimerEvent $criteria->addSelectColumn(\BpmnEventPeer::EVN_NAME); $criteria->addSelectColumn(\ElementTaskRelationPeer::TAS_UID); + $arrayCondition = array(); + $arrayCondition[] = array(\TimerEventPeer::PRJ_UID, \ProcessPeer::PRO_UID, \Criteria::EQUAL); + $criteria->addJoinMC($arrayCondition, \Criteria::INNER_JOIN); + + $criteria->add(\ProcessPeer::PRO_STATUS, "ACTIVE", \Criteria::EQUAL); + $arrayCondition = array(); $arrayCondition[] = array(\TimerEventPeer::PRJ_UID, \ElementTaskRelationPeer::PRJ_UID, \Criteria::EQUAL); $arrayCondition[] = array(\TimerEventPeer::EVN_UID, \ElementTaskRelationPeer::ELEMENT_UID, \Criteria::EQUAL); @@ -1257,6 +1263,8 @@ class TimerEvent if ((int)($hour . $minute) <= (int)($hourCase . $minuteCase)) { $flagCase = $hourCase == $hour && $minuteCase == $minute; } else { + $timerEventNextRunDateNew = $this->getNextRunDateByDataAndDatetime($arrayTimerEventData, $datetime); //Generate new date for old TMREVN_NEXT_RUN_DATE + $flagCase = true; //Create the old case } } @@ -1361,6 +1369,12 @@ class TimerEvent $criteriaMain->addSelectColumn(\AppDelegationPeer::DEL_DELEGATE_DATE); $criteriaMain->addSelectColumn(\BpmnEventPeer::EVN_NAME); + $arrayCondition = array(); + $arrayCondition[] = array(\AppDelegationPeer::PRO_UID, \ProcessPeer::PRO_UID, \Criteria::EQUAL); + $criteriaMain->addJoinMC($arrayCondition, \Criteria::INNER_JOIN); + + $criteriaMain->add(\ProcessPeer::PRO_STATUS, "ACTIVE", \Criteria::EQUAL); + $arrayCondition = array(); $arrayCondition[] = array(\AppDelegationPeer::APP_UID, \ApplicationPeer::APP_UID, \Criteria::EQUAL); $criteriaMain->addJoinMC($arrayCondition, \Criteria::INNER_JOIN);