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']; 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 {