diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index bc0da1403..fb6c29fe2 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -3926,6 +3926,29 @@ class Processes } } + /** + * Create if the new Files Managers does not exist + * + * @param string $processUid Unique id of Process + * @param array $arrayData Data + * + * return void + */ + public function addNewFilesManager($processUid, array $arrayData) + { + try { + $filesManager = new \ProcessMaker\BusinessModel\FilesManager(); + + foreach ($arrayData as $value) { + if(!$filesManager->existsProcessFile($value['PRF_UID'])){ + $filesManager->addProcessFilesManagerInDb($value); + } + } + } catch (Exception $e) { + throw $e; + } + } + /** * @param array $arrayData * @throws Exception diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php index cc2a55273..24ff30096 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php @@ -250,13 +250,13 @@ class FilesManager $aData = array_change_key_case($aData, CASE_UPPER); $oProcessFiles->fromArray($aData, \BasePeer::TYPE_FIELDNAME); + $sDirectory = PATH_DATA_MAILTEMPLATES . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']); + $oProcessFiles->setPrfPath($sDirectory); + if($this->existsProcessFile($aData['PRF_UID'])) { $sPkProcessFiles = \G::generateUniqueID(); $oProcessFiles->setPrfUid($sPkProcessFiles); - $sDirectory = PATH_DATA_MAILTEMPLATES . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']); - $oProcessFiles->setPrfPath($sDirectory); - $emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); $emailEvent->updatePrfUid($aData['PRF_UID'], $sPkProcessFiles, $aData['PRO_UID']); } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php index e568c25d7..ad11b5a45 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php @@ -33,11 +33,11 @@ class FilesMigrator implements Importable, Exportable try { $aTable = $data['TABLE']; foreach ($aTable as $value) { - if ($value['PRF_EDITABLE'] !== 1) { + if ($value['PRF_EDITABLE'] === '0') { if ($replace) { $this->processes->createFilesManager($value['PRO_UID'], array($value)); } else { - $this->processes->updateFilesManager($value['PRO_UID'], array($value)); + $this->processes->addNewFilesManager($value['PRO_UID'], array($value)); } } } @@ -87,7 +87,7 @@ class FilesMigrator implements Importable, Exportable $fileHandler = new FileHandler(); $arrayPublicFileToExclude = $fileHandler->getFilesToExclude($prj_uid); - $workflowFile = $fileHandler->getTemplatesOrPublicFiles($prj_uid, $arrayPublicFileToExclude, 'public'); + $workflowFile = $fileHandler->getTemplatesOrPublicFiles($prj_uid, $arrayPublicFileToExclude, 'PUBLIC'); $result = array( 'workflow-definition' => (array)$oData,