From 816802d8ee542450b6ee129c245cc20f1cac918e Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Wed, 17 Jul 2013 16:43:45 -0400 Subject: [PATCH 1/2] BUG 12054 "Problema con PMFDerivateCase" SOLVED - Problema al iniciar y derivar un nuevo caso con PMFNewCase y PMFDerivateCase - Problema resuelto, se ha mejorado el metodo "createAppDelegation()" para recuperar el ultimo DEL_INDEX esto en la clase AppDelegation.php, pues al parecer este campo no era valido para la consulta que se hacia, y por consiguiente se esta utilizando el metodo "getCurrentDelegationCase()" para obtener el ultimo DEL_INDEX para este caso * Available from version ProcessMaker-2.5.1-testing.4 --- .../engine/classes/model/AppDelegation.php | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/model/AppDelegation.php b/workflow/engine/classes/model/AppDelegation.php index df107d501..17d208629 100755 --- a/workflow/engine/classes/model/AppDelegation.php +++ b/workflow/engine/classes/model/AppDelegation.php @@ -82,13 +82,26 @@ class AppDelegation extends BaseAppDelegation $criteria = new Criteria('workflow'); $criteria->add( AppDelegationPeer::APP_UID, $sAppUid ); $criteria->add( AppDelegationPeer::DEL_LAST_INDEX , 1); - //$criteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX); + $criteriaIndex = clone $criteria; - $rs = AppDelegationPeer::doSelectRS( $criteriaIndex ); - $rs->next(); - $row = $rs->getRow(); - $delIndex = (isset($row['1'])) ? $row['1'] + 1 : 1; + $rs = AppDelegationPeer::doSelectRS($criteriaIndex); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + $delIndex = 1; + + if ($rs->next()) { + $row = $rs->getRow(); + + $delIndex = (isset($row["DEL_INDEX"]))? $row["DEL_INDEX"] + 1 : 1; + } else { + G::LoadClass("case"); + + $case = new Cases(); + $delIndexAux = $case->getCurrentDelegationCase($sAppUid); + + $delIndex = (isset($delIndexAux))? $delIndexAux + 1 : 1; + } // update set $criteriaUpdate = new Criteria('workflow'); From 6619158bc72cfa29413c4ea6ba785ef51c7dc627 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 18 Jul 2013 09:45:33 -0400 Subject: [PATCH 2/2] BUG 12054 "Problema con PMFDerivateCase" SOLVED - Problema al iniciar y derivar un nuevo caso con PMFNewCase y PMFDerivateCase - Problema resuelto, se ha mejorado el metodo "createAppDelegation()" para recuperar el ultimo DEL_INDEX esto en la clase AppDelegation.php, pues al parecer este campo no era valido para la consulta que se hacia, y por consiguiente se esta utilizando el metodo "getCurrentDelegationCase()" para obtener el ultimo DEL_INDEX para este caso * Available from version ProcessMaker-2.5.1-testing.4 --- .../engine/classes/model/AppDelegation.php | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/workflow/engine/classes/model/AppDelegation.php b/workflow/engine/classes/model/AppDelegation.php index 17d208629..59ab22abe 100755 --- a/workflow/engine/classes/model/AppDelegation.php +++ b/workflow/engine/classes/model/AppDelegation.php @@ -78,10 +78,10 @@ class AppDelegation extends BaseAppDelegation throw (new Exception( 'Column "APP_THREAD" cannot be null.' )); } - //get max DEL_INDEX - $criteria = new Criteria('workflow'); - $criteria->add( AppDelegationPeer::APP_UID, $sAppUid ); - $criteria->add( AppDelegationPeer::DEL_LAST_INDEX , 1); + //Get max DEL_INDEX + $criteria = new Criteria("workflow"); + $criteria->add(AppDelegationPeer::APP_UID, $sAppUid); + $criteria->add(AppDelegationPeer::DEL_LAST_INDEX, 1); $criteriaIndex = clone $criteria; @@ -95,15 +95,24 @@ class AppDelegation extends BaseAppDelegation $delIndex = (isset($row["DEL_INDEX"]))? $row["DEL_INDEX"] + 1 : 1; } else { - G::LoadClass("case"); + $criteriaDelIndex = new Criteria("workflow"); - $case = new Cases(); - $delIndexAux = $case->getCurrentDelegationCase($sAppUid); + $criteriaDelIndex->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteriaDelIndex->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE); + $criteriaDelIndex->add(AppDelegationPeer::APP_UID, $sAppUid); + $criteriaDelIndex->addDescendingOrderByColumn(AppDelegationPeer::DEL_DELEGATE_DATE); - $delIndex = (isset($delIndexAux))? $delIndexAux + 1 : 1; + $rsCriteriaDelIndex = AppDelegationPeer::doSelectRS($criteriaDelIndex); + $rsCriteriaDelIndex->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if ($rsCriteriaDelIndex->next()) { + $row = $rsCriteriaDelIndex->getRow(); + + $delIndex = (isset($row["DEL_INDEX"]))? $row["DEL_INDEX"] + 1 : 1; + } } - // update set + //Update set $criteriaUpdate = new Criteria('workflow'); $criteriaUpdate->add(AppDelegationPeer::DEL_LAST_INDEX, 0); BasePeer::doUpdate($criteria, $criteriaUpdate, Propel::getConnection('workflow'));