From 024f68563a645c3d913fcc4d7b1e52543e98b83d Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Fri, 2 Oct 2015 12:25:04 -0400 Subject: [PATCH] PM-3690 "Unpause Time no funciona, el caso se queda en 'Paused'..." SOLVED Issue: Unpause Time no funciona, el caso se queda en "Paused" a menos que se continue de forma manual Cause: No se setea de manera correcta la fecha al ejecutar el cron Solution: Se setea de manera correcta la fecha al ejecutar el cron PM-3690 "Unpause Time no funciona, el caso se queda en 'Paused'..." SOLVED Issue: Unpause Time no funciona, el caso se queda en "Paused" a menos que se continue de forma manual Cause: No se setea de manera correcta la fecha al ejecutar el cron Solution: Se setea de manera correcta la fecha al ejecutar el cron --- workflow/engine/bin/cron.php | 8 ++++++-- workflow/engine/bin/cron_single.php | 16 +++++++++++++--- workflow/engine/classes/class.case.php | 18 +++++++----------- workflow/engine/classes/model/AppDelay.php | 11 +++-------- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/workflow/engine/bin/cron.php b/workflow/engine/bin/cron.php index b3d4774f5..2b16baba5 100755 --- a/workflow/engine/bin/cron.php +++ b/workflow/engine/bin/cron.php @@ -34,7 +34,7 @@ $e_all = defined('E_STRICT') ? $e_all & ~E_STRICT : $e_all; $e_all = $config['debug'] ? $e_all : $e_all & ~E_NOTICE; G::LoadSystem('inputfilter'); -$filter = new InputFilter(); +$filter = new InputFilter(); $config['debug'] = $filter->validateInput($config['debug']); $config['memory_limit'] = $filter->validateInput($config['memory_limit']); $config['wsdl_cache'] = $filter->validateInput($config['wsdl_cache'],'int'); @@ -113,6 +113,10 @@ if ($force || !$bCronIsRunning) { $dateSystem = date("Y-m-d H:i:s"); for ($i = 1; $i <= count($argv) - 1; $i++) { + if (!isset($argv[$i])) { + continue; + } + if (strpos($argv[$i], "+d") !== false) { $sDate = substr($argv[$i],2); } else { @@ -125,7 +129,7 @@ if ($force || !$bCronIsRunning) { } //If $sDate is not set, so take the system time - if ($sDate != null) { + if (!empty($sDate) && preg_match("/^[1-9]\d{3}\-(?:0[1-9]|1[0-2])\-(?:0[1-9]|[12][0-9]|3[01])(?:\s(?:[0-1]\d|2[0-3])\:[0-5]\d\:[0-5]\d)?$/", $sDate)) { eprintln("[Applying date filter: $sDate]"); } else { $sDate = $dateSystem; diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index 3a3d8f011..7557a6a93 100755 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -260,8 +260,6 @@ Bootstrap::registerClass('BaseIsoCountry', PATH_HOME . "engine/classes/model Bootstrap::registerClass('IsoCountry', PATH_HOME . "engine/classes/model/IsoCountry.php"); Bootstrap::registerClass('BaseTranslation', PATH_HOME . "engine/classes/model/om/BaseTranslation.php"); Bootstrap::registerClass('Translation', PATH_HOME . "engine/classes/model/Translation.php"); -Bootstrap::registerClass('BaseLanguage', PATH_HOME . "engine/classes/model/om/BaseLanguage.php"); -Bootstrap::registerClass('Language', PATH_HOME . "engine/classes/model/Language.php"); Bootstrap::registerClass('BaseLogCasesScheduler',PATH_HOME . "engine/classes/model/om/BaseLogCasesScheduler.php"); Bootstrap::registerClass('LogCasesScheduler', PATH_HOME . "engine/classes/model/LogCasesScheduler.php"); @@ -365,7 +363,19 @@ Bootstrap::registerClass("AddonsManagerPeer", PATH_HOME . "engine" . PATH_SEP Bootstrap::registerClass('dashboards', PATH_HOME . "engine/classes/class.dashboards.php"); /*----------------------------------********---------------------------------*/ -$arrayClass = array("Configuration", "EmailServer", "ListInbox", "ListParticipatedHistory"); +$arrayClass = array( + "BpmnProject", + + "Configuration", + "EmailServer", + "Language", + "ListInbox", + "ListMyInbox", + "ListPaused", + "ListParticipatedLast", + "ListParticipatedHistory", + "AbeConfiguration" +); foreach ($arrayClass as $value) { Bootstrap::registerClass("Base" . $value, PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "om" . PATH_SEP . "Base" . $value . ".php"); diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 9dca4e926..6c45c2092 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -3185,19 +3185,15 @@ class Cases */ public function ThrowUnpauseDaemon($today, $cron = 0) { - $today = ($today == date('Y-m-d')) ? date('Y-m-d') : $today; $c = new Criteria('workflow'); $c->clearSelectColumns(); $c->add( - $c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)-> - addOr($c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0) - ) + $c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)->addOr( + $c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)) ); $c->add( - $c->getNewCriterion( - AppDelayPeer::APP_DISABLE_ACTION_DATE, $today . ' 23:59:59', Criteria::LESS_EQUAL)-> - addAnd($c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNOTNULL) - ) + $c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_DATE, (count(explode(" ", $today)) > 1)? $today : $today . " 23:59:59", Criteria::LESS_EQUAL)->addAnd( + $c->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNOTNULL)) ); $d = AppDelayPeer::doSelectRS($c); $d->setFetchmode(ResultSet::FETCHMODE_ASSOC); @@ -4078,10 +4074,10 @@ class Cases $oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $iDelegation); $oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE'); $oCriteria->add( - $oCriteria->getNewCriterion( - AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)-> - addOr($oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0)) + $oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)->addOr( + $oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)) ); + $oDataset = AppDelayPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); diff --git a/workflow/engine/classes/model/AppDelay.php b/workflow/engine/classes/model/AppDelay.php index 13d47a055..46dff2e58 100755 --- a/workflow/engine/classes/model/AppDelay.php +++ b/workflow/engine/classes/model/AppDelay.php @@ -96,16 +96,11 @@ class AppDelay extends BaseAppDelay $oCriteria->add(AppDelayPeer::APP_UID, $appUid); $oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $delIndex); $oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE'); - $oCriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, null); $oCriteria->add( - $oCriteria->getNewCriterion( - AppDelayPeer::APP_DISABLE_ACTION_USER, - null, - Criteria::ISNULL - )->addOr( - $oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0) - ) + $oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)->addOr( + $oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)) ); + $oDataset = AppDelayPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next();