diff --git a/workflow/engine/src/BusinessModel/CaseScheduler.php b/workflow/engine/src/BusinessModel/CaseScheduler.php index e521bb99c..bfcc3fcdd 100644 --- a/workflow/engine/src/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/BusinessModel/CaseScheduler.php @@ -461,17 +461,23 @@ class CaseScheduler if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) { $sDateTmp = ''; if ($sStartDay == '') { - $sStartDay = date( 'Y-m-d' ); + $sStartDay = date('Y-m-d'); + } else { + $aaStartDay = explode( "|", $aData['SCH_START_DAY'] ); + $aaStartDay[0] = $aaStartDay[0]; + $aaStartDay[1] = $aaStartDay[1]; + $aaStartDay[2]= ($aaStartDay[2] == 7 ? 1 : $aaStartDay[2]); + $sStartDay = $aaStartDay[0].'|'.$aaStartDay[1].'|'.$aaStartDay[2]; } - $dCurrentDay = date( "d" ); - $dCurrentMonth = date( "m" ); + $dCurrentDay = date("d"); + $dCurrentMonth = date("m"); $aStartDay = explode( "|", $aData['SCH_START_DAY'] ); if ($sOption == '3' && $aStartDay[0] == '1') { $monthsArray = explode( "|", $sMonths ); foreach ($monthsArray as $row) { if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) { $startTime = $aData['SCH_START_TIME'] . ":00"; - $aData['SCH_TIME_NEXT_RUN'] = date( 'Y' ) . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; + $aData['SCH_TIME_NEXT_RUN'] = date('Y') . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; break; } else { $aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp ); @@ -482,8 +488,8 @@ class CaseScheduler } } else { if ($sOption == '4') { - $sDateTmp = date( 'Y-m-d' ); - $aData['SCH_START_TIME'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) ); + $sDateTmp = date('Y-m-d'); + $aData['SCH_START_TIME'] = date('Y-m-d', strtotime( $sDateTmp )) . ' ' . date('H:i:s', strtotime( $sTimeTmp )); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_END_DATE'] = $aData['SCH_START_TIME']; } @@ -492,10 +498,10 @@ class CaseScheduler if ($aData['SCH_START_DATE'] != '') { $sDateTmp = $aData['SCH_START_DATE']; } else { - $sDateTmp = date( 'Y-m-d' ); + $sDateTmp = date('Y-m-d'); $aData['SCH_START_DATE'] = $sDateTmp; } - $aData['SCH_END_DATE'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) ); + $aData['SCH_END_DATE'] = date('Y-m-d', strtotime( $sDateTmp )) . ' ' . date('H:i:s', strtotime( $sTimeTmp )); $aData['SCH_START_TIME'] = time(); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; if ($aData['SCH_REPEAT_EVERY'] == "") { @@ -509,7 +515,7 @@ class CaseScheduler $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $date = $aData['SCH_START_TIME']; $date += $nextRun; - $date = date( "Y-m-d H:i", $date ); + $date = date("Y-m-d H:i", $date); $aData['SCH_TIME_NEXT_RUN'] = $date; } } @@ -742,10 +748,16 @@ class CaseScheduler } if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) { if ($sStartDay == '') { - $sStartDay = date( 'Y-m-d' ); + $sStartDay = date('Y-m-d'); + } else { + $aaStartDay = explode( "|", $aData['SCH_START_DAY'] ); + $aaStartDay[0] = $aaStartDay[0]; + $aaStartDay[1] = $aaStartDay[1]; + $aaStartDay[2]= ($aaStartDay[2] == 7 ? 1 : $aaStartDay[2]); + $sStartDay = $aaStartDay[0].'|'.$aaStartDay[1].'|'.$aaStartDay[2]; } - $dCurrentDay = date( "d" ); - $dCurrentMonth = date( "m" ); + $dCurrentDay = date("d"); + $dCurrentMonth = date("m"); $aStartDay = explode( "|", $aData['SCH_START_DAY'] ); $sDateTmp = ''; if ($sOption == '3' && $aStartDay[0] == '1') { @@ -753,7 +765,7 @@ class CaseScheduler foreach ($monthsArray as $row) { if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) { $startTime = $aData['SCH_START_TIME'] . ":00"; - $aData['SCH_TIME_NEXT_RUN'] = date( 'Y' ) . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; + $aData['SCH_TIME_NEXT_RUN'] = date('Y') . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; break; } else { $aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp ); @@ -764,8 +776,8 @@ class CaseScheduler } } else { if ($sOption == '4') { - $sDateTmp = date( 'Y-m-d' ); - $aData['SCH_START_TIME'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) ); + $sDateTmp = date('Y-m-d'); + $aData['SCH_START_TIME'] = date('Y-m-d', strtotime( $sDateTmp )) . ' ' . date('H:i:s', strtotime( $sTimeTmp )); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_END_DATE'] = $aData['SCH_START_TIME']; } @@ -774,7 +786,7 @@ class CaseScheduler if ($aData['SCH_START_DATE'] != '') { $sDateTmp = $aData['SCH_START_DATE']; } else { - $sDateTmp = date( 'Y-m-d' ); + $sDateTmp = date('Y-m-d'); $aData['SCH_START_DATE'] = $sDateTmp; } $aData['SCH_END_DATE'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp)); @@ -791,7 +803,7 @@ class CaseScheduler $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $date = $aData['SCH_START_TIME']; $date += $nextRun; - $date = date( "Y-m-d H:i", $date ); + $date = date("Y-m-d H:i", $date); $aData['SCH_TIME_NEXT_RUN'] = $date; } } diff --git a/workflow/engine/src/BusinessModel/FilesManager.php b/workflow/engine/src/BusinessModel/FilesManager.php index 3e1684860..636f01cd1 100644 --- a/workflow/engine/src/BusinessModel/FilesManager.php +++ b/workflow/engine/src/BusinessModel/FilesManager.php @@ -309,5 +309,28 @@ class FilesManager throw $e; } } + + /** + * + * @param string $sProcessUID {@min 32} {@max 32} + * @param string $path + * + * + * @access public + */ + public function downloadProcessFilesManager($sProcessUID, $path) + { + try { + $arrayTaskUid = $this->getFileManagerUid($path); + $sPath = explode("/", $path); + $sfile = end(explode("/",$path)); + $main = implode(array_slice($sPath, -3, 1)); + if (file_exists(PATH_SEP.$path)) { + \G::streamFile($path, true); + } + } catch (Exception $e) { + throw $e; + } + } } diff --git a/workflow/engine/src/BusinessModel/OutputDocument.php b/workflow/engine/src/BusinessModel/OutputDocument.php index bd604f885..d0ea67cec 100644 --- a/workflow/engine/src/BusinessModel/OutputDocument.php +++ b/workflow/engine/src/BusinessModel/OutputDocument.php @@ -260,12 +260,14 @@ class OutputDocument $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = ""; $aData['OUT_DOC_PDF_SECURITY_PERMISSIONS'] = ""; } - if (isset( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] ) && $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] != "") { - $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = \G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'], $aData['OUT_DOC_UID'] ); - $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = \G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'], $aData['OUT_DOC_UID'] ); - } } $outDocUid = $oOutputDocument->create($aData); + $aData = array_change_key_case($aData, CASE_LOWER); + if (isset( $aData['out_doc_pdf_security_open_password'] ) && $aData['out_doc_pdf_security_open_password'] != "") { + $aData['out_doc_pdf_security_open_password'] = \G::encrypt( $aData['out_doc_pdf_security_open_password'], $outDocUid ); + $aData['out_doc_pdf_security_owner_password'] = \G::encrypt( $aData['out_doc_pdf_security_owner_password'], $outDocUid ); + } + $this->updateOutputDocument($sProcessUID, $aData, $outDocUid); //Return unset($aData["PRO_UID"]); $aData = array_change_key_case($aData, CASE_LOWER); diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php index 71ef27c15..21c35fb60 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php @@ -125,6 +125,7 @@ class FilesManager extends Api } return $response; } + /** * @param string $prjUid {@min 32} {@max 32} * @param string $path @@ -135,15 +136,30 @@ class FilesManager extends Api { try { $filesManager = new \BusinessModel\FilesManager(); - $arrayData = $filesManager->deleteProcessFilesManager($prjUid, $path); - //Response - $response = $arrayData; + $filesManager->deleteProcessFilesManager($prjUid, $path); } catch (\Exception $e) { //response throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } return $response; } + + /** + * @param string $prjUid {@min 32} {@max 32} + * @param string $path + * + * @url GET /:prjUid/process-file-manager/download + */ + public function doDownloadProcessFilesManager($prjUid, $path) + { + try { + $filesManager = new \BusinessModel\FilesManager(); + $filesManager->downloadProcessFilesManager($prjUid, $path); + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + } } class ProcessFilesManagerStructure