From 740577191e8345c8a09f5031f8bc4732b82096b2 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 3 Feb 2021 17:19:03 -0400 Subject: [PATCH] PMCORE-2703 After to execute the convert-old-web-entries command the Dynaform is duplicated --- .../BusinessModel/WebEntryEvent.php | 27 ++++++++++--------- .../engine/src/ProcessMaker/Model/Step.php | 16 ++++++++++- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php index c1cad3653..343e096e0 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php @@ -11,6 +11,7 @@ use G; use ProcessMaker\BusinessModel\Process as BusinessModelProcess; use ProcessMaker\BusinessModel\Validator as BusinessModelValidator; use ProcessMaker\Core\System; +use ProcessMaker\Model\Step as StepModel; use ProcessMaker\Project\Workflow; use ProcessMaker\Util\Common; use ProcessPeer; @@ -554,20 +555,22 @@ class WebEntryEvent if (!isset($arrayData['WE_TYPE']) || $arrayData['WE_TYPE'] === 'SINGLE') { //Task - Step + $stepModel = StepModel::getByProcessTaskAndStepType($projectUid, $this->webEntryEventWebEntryTaskUid, 'DYNAFORM', $dynaFormUid); $step = new Step(); - - $stepUid = $step->create(array( - "PRO_UID" => $projectUid, - "TAS_UID" => $this->webEntryEventWebEntryTaskUid - )); - if (!empty($dynaFormUid)) { - $result = $step->update(array( - "STEP_UID" => $stepUid, - "STEP_TYPE_OBJ" => "DYNAFORM", - "STEP_UID_OBJ" => $dynaFormUid, - "STEP_POSITION" => 1, - "STEP_MODE" => "EDIT" + if (empty($stepModel)) { + $stepUid = $step->create(array( + "PRO_UID" => $projectUid, + "TAS_UID" => $this->webEntryEventWebEntryTaskUid )); + if (!empty($dynaFormUid)) { + $result = $step->update(array( + "STEP_UID" => $stepUid, + "STEP_TYPE_OBJ" => "DYNAFORM", + "STEP_UID_OBJ" => $dynaFormUid, + "STEP_POSITION" => 1, + "STEP_MODE" => "EDIT" + )); + } } } diff --git a/workflow/engine/src/ProcessMaker/Model/Step.php b/workflow/engine/src/ProcessMaker/Model/Step.php index 361af6fbc..cebe88841 100644 --- a/workflow/engine/src/ProcessMaker/Model/Step.php +++ b/workflow/engine/src/ProcessMaker/Model/Step.php @@ -8,4 +8,18 @@ class Step extends Model { protected $table = "STEP"; public $timestamps = false; -} \ No newline at end of file + + /** + * Get object step by process, task, object type and his Uid. + */ + public static function getByProcessTaskAndStepType($proUid, $tasUid, $stepTypeObj, $stepUidObj) + { + $step = self::where('PRO_UID', '=', $proUid) + ->where('TAS_UID', '=', $tasUid) + ->where('STEP_TYPE_OBJ', '=', $stepTypeObj) + ->where('STEP_UID_OBJ', '=', $stepUidObj) + ->get() + ->first(); + return $step; + } +}