From 6e7eec75282808fe8f071ed4d6520b87369f4e93 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Thu, 28 Aug 2014 10:18:44 -0400 Subject: [PATCH 1/2] Fix bug 14245: Crear OutputDocuments en el nuevo Designer BPMN, cuando existe un OD con el mismo nombre en otro proceso --- .../ProcessMaker/BusinessModel/OutputDocument.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php b/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php index f6a38c298..60d83bf85 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php @@ -392,18 +392,26 @@ class OutputDocument { try { $delimiter = \DBAdapter::getStringDelimiter(); + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\OutputDocumentPeer::OUT_DOC_UID); - $criteria->addAlias("CT", "CONTENT"); + + $criteria->addAlias("CT", \ContentPeer::TABLE_NAME); + $arrayCondition = array(); $arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CT.CON_ID", \Criteria::EQUAL); $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "OUT_DOC_TITLE" . $delimiter, \Criteria::EQUAL); $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL); $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + $criteria->add(\OutputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL); - $criteria->add(\ContentPeer::CON_VALUE, $title, \Criteria::EQUAL); + + + $criteria->add("CT.CON_VALUE", $title, \Criteria::EQUAL); + $rsCriteria = \OutputDocumentPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + if ($rsCriteria->next()) { return true; } else { From 4f852ab4e5833dee1594f4fc1072d2875e47a2bb Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Thu, 28 Aug 2014 12:35:17 -0400 Subject: [PATCH 2/2] Se valida sch_end_date que acepte valor nulo en CASE SCHEDULER --- .../BusinessModel/CaseScheduler.php | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php index 3bee930e5..45cf59f6b 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php @@ -283,11 +283,6 @@ class CaseScheduler if (!preg_match($patternDate, $caseSchedulerData['SCH_START_DATE'])) { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_START_DATE")); } - if (!isset($caseSchedulerData['SCH_END_DATE'])) { - if (!preg_match($patternDate, $caseSchedulerData['SCH_END_DATE'])) { - throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_END_DATE")); - } - } if ($caseSchedulerData['SCH_START_DATE'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_date'))); } @@ -486,8 +481,10 @@ class CaseScheduler $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $date; } } - if (trim( $caseSchedulerData['SCH_END_DATE'] ) != '') { - $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_END_DATE']; + if (! empty( $caseSchedulerData['SCH_REPEAT_TASK_CHK'] )) { + if (trim( $caseSchedulerData['SCH_END_DATE'] ) != '') { + $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_END_DATE']; + } } if (! empty( $caseSchedulerData['SCH_REPEAT_TASK_CHK'] )) { $nOptEvery = $caseSchedulerData['SCH_REPEAT_EVERY_OPT']; @@ -569,11 +566,6 @@ class CaseScheduler if (!preg_match($patternDate, $caseSchedulerData['SCH_START_DATE'])) { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_START_DATE")); } - if (isset($caseSchedulerData['SCH_END_DATE'])) { - if (!preg_match($patternDate, $caseSchedulerData['SCH_END_DATE'])) { - throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_END_DATE")); - } - } if ($caseSchedulerData['SCH_START_DATE'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_date'))); } @@ -780,8 +772,10 @@ class CaseScheduler $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $date; } } - if (trim( $caseSchedulerData['SCH_END_DATE'] ) != '') { - $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_END_DATE']; + if (! empty( $caseSchedulerData['SCH_REPEAT_TASK_CHK'] )) { + if (trim( $caseSchedulerData['SCH_END_DATE'] ) != '') { + $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_END_DATE']; + } } if (! empty( $caseSchedulerData['SCH_REPEAT_TASK_CHK'] )) { $nOptEvery = $caseSchedulerData['SCH_REPEAT_EVERY_OPT'];