diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 9f85e84be..d803f5b55 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -3925,7 +3925,7 @@ class Processes * @param array $arrayData * @throws Exception */ - public function updateFilesManager(array $arrayData) + public function updateFilesManager($processUid, array $arrayData) { try { $filesManager = new \ProcessMaker\BusinessModel\FilesManager(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php index 6c705e1a3..a3041589c 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php @@ -27,7 +27,12 @@ class AssignmentRulesMigrator implements Importable, Exportable // TODO: Implement beforeImport() method. } - public function import($data) + /** + * @param $data + * @param $replace + * @throws ImportException + */ + public function import($data, $replace) { try { $this->processes->createTaskRows($data); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php index 8f7d7ceef..0eb526400 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/FilesMigrator.php @@ -29,29 +29,33 @@ class FilesMigrator implements Importable, Exportable // TODO: Implement beforeImport() method. } - public function import($data) + public function import($data, $replace) { try { $aTable = $data['TABLE']; foreach ($aTable as $value) { - if($value['PRF_EDITABLE'] !== 1){ - $this->processes->createFilesManager($value['PRO_UID'],array($value)); + if ($value['PRF_EDITABLE'] !== 1) { + if ($replace) { + $this->processes->createFilesManager($value['PRO_UID'], array($value)); + } else { + $this->processes->updateFilesManager($value['PRO_UID'], array($value)); + } } } $aPath = $data['PATH']; foreach ($aPath as $target => $files) { $basePath = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP; - if(strtoupper($target) === 'PUBLIC'){ + if (strtoupper($target) === 'PUBLIC') { foreach ($files as $file) { - $filename = $basePath . ((isset($file["file_path"]))? $file["file_path"] : $file["filepath"]); - $path = dirname($filename); + $filename = $basePath . ((isset($file["file_path"])) ? $file["file_path"] : $file["filepath"]); + $path = dirname($filename); - if (!is_dir($path)) { - Util\Common::mk_dir($path, 0775); - } + if (!is_dir($path)) { + Util\Common::mk_dir($path, 0775); + } - file_put_contents($filename, $file["file_content"]); - chmod($filename, 0775); + file_put_contents($filename, $file["file_content"]); + chmod($filename, 0775); } } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php index 3318492fd..87cfec374 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php @@ -81,7 +81,7 @@ class ProcessDefinitionMigrator implements Importable, Exportable $oData->tasks = $this->processes->getTaskRows($prj_uid); $oDataTask = new \StdClass(); - $oDataTask->taskusers = $this->getTaskUserRows( $oData->tasks ); + $oDataTask->taskusers = $this->getTaskUserRows($oData->tasks); $oData->routes = $this->processes->getRouteRows($prj_uid); $oData->lanes = $this->processes->getLaneRows($prj_uid); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TemplatesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TemplatesMigrator.php index 7dce9a5df..d92e5393c 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TemplatesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TemplatesMigrator.php @@ -27,22 +27,30 @@ class TemplatesMigrator implements Importable, Exportable // TODO: Implement beforeImport() method. } - public function import($data) + /** + * @param $data + * @param $replace + * @throws ImportException + */ + public function import($data, $replace) { try { - //TABLE $aTable = $data['TABLE']; foreach ($aTable as $value) { - if($value['PRF_EDITABLE'] === 1){ - $this->processes->createFilesManager($value['PRO_UID'],array($value)); + if ($value['PRF_EDITABLE'] === 1) { + if ($replace) { + $this->processes->createFilesManager($value['PRO_UID'], array($value)); + } else { + $this->processes->updateFilesManager($value['PRO_UID'], array($value)); + } } } $aPath = $data['PATH']; foreach ($aPath as $target => $files) { $basePath = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'mailTemplates' . PATH_SEP; - if(strtoupper($target) === 'TEMPLATES'){ + if (strtoupper($target) === 'TEMPLATES') { foreach ($files as $file) { - $filename = $basePath . ((isset($file["file_path"]))? $file["file_path"] : $file["filepath"]); + $filename = $basePath . ((isset($file["file_path"])) ? $file["file_path"] : $file["filepath"]); $path = dirname($filename); if (!is_dir($path)) { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TriggersMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TriggersMigrator.php index ba2ccbd50..4f52b131d 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TriggersMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/TriggersMigrator.php @@ -27,10 +27,18 @@ class TriggersMigrator implements Importable, Exportable // TODO: Implement beforeImport() method. } - public function import($data) + /** + * @param $data + * @param $replace + */ + public function import($data, $replace) { try { - $this->processes->createTriggerRows($data); + if ($replace) { + $this->processes->createTriggerRows($data); + } else { + $this->processes->updateTriggerRows($data); + } } catch (\Exception $e) { \Logger::log($e->getMessage()); throwException(new ImportException($e->getMessage())); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/VariablesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/VariablesMigrator.php index d861a373b..9c0ea59c8 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/VariablesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/VariablesMigrator.php @@ -29,8 +29,9 @@ class VariablesMigrator implements Importable, Exportable } /** - * Imports the process variables * @param $data + * @param $replace + * @throws ImportException */ public function import($data, $replace) {