From 3ca31bc006b8c7285cb2ac0431e2b8c54cd99b10 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Wed, 12 Jun 2024 17:11:12 -0400 Subject: [PATCH 1/5] feature/FOUR-15682 --- public/definitions/ProcessMaker.xsd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/public/definitions/ProcessMaker.xsd b/public/definitions/ProcessMaker.xsd index 1d193c063c..8b5e3c3736 100644 --- a/public/definitions/ProcessMaker.xsd +++ b/public/definitions/ProcessMaker.xsd @@ -16,6 +16,8 @@ + + From 666bc544ba03672f2b64b1377e45a1ad2d86b763 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker <123644082+luNunezProcessmaker@users.noreply.github.com> Date: Thu, 13 Jun 2024 09:09:13 -0400 Subject: [PATCH 2/5] Update ProcessMaker.xsd --- public/definitions/ProcessMaker.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/definitions/ProcessMaker.xsd b/public/definitions/ProcessMaker.xsd index 8b5e3c3736..070daf5ea9 100644 --- a/public/definitions/ProcessMaker.xsd +++ b/public/definitions/ProcessMaker.xsd @@ -16,7 +16,7 @@ - + From 8a202967ea5a18513309ebaf9c024584e40ed938 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Thu, 13 Jun 2024 12:38:39 -0400 Subject: [PATCH 3/5] feature/FOUR-15682 --- ProcessMaker/Repositories/TokenRepository.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ProcessMaker/Repositories/TokenRepository.php b/ProcessMaker/Repositories/TokenRepository.php index 6d72d7e0b2..6bdc42f784 100644 --- a/ProcessMaker/Repositories/TokenRepository.php +++ b/ProcessMaker/Repositories/TokenRepository.php @@ -5,6 +5,7 @@ use Carbon\Carbon; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; +use ProcessMaker\Models\FormalExpression; use ProcessMaker\Models\ProcessCollaboration; use ProcessMaker\Models\ProcessRequest as Instance; use ProcessMaker\Models\ProcessRequestToken; @@ -145,7 +146,17 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter } //Default 3 days of due date - $due = $activity->getProperty('dueIn', '72'); + $isDueVariable = $activity->getProperty('isDueInVariable', false); + if ($isDueVariable) { + $instanceData= $token->getInstance()->getDataStore()->getData(); + $formalExp = new FormalExpression(); + $formalExp->setLanguage('FEEL'); + $formalExp->setBody($activity->getProperty('dueInVariable')); + $dueVariable = $formalExp($instanceData); + $due = is_numeric($dueVariable) ? $dueVariable : '72'; + } else { + $due = $activity->getProperty('dueIn', '72'); + } $token->due_at = $due ? Carbon::now()->addHours($due) : null; $token->initiated_at = null; $token->riskchanges_at = $due ? Carbon::now()->addHours($due * 0.7) : null; From f99e02f662b0a37b24f30d021232814e7c288ba4 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Thu, 13 Jun 2024 13:11:33 -0400 Subject: [PATCH 4/5] feature/FOUR-15682 --- ProcessMaker/Repositories/TokenRepository.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ProcessMaker/Repositories/TokenRepository.php b/ProcessMaker/Repositories/TokenRepository.php index 6bdc42f784..7bdc2df9ab 100644 --- a/ProcessMaker/Repositories/TokenRepository.php +++ b/ProcessMaker/Repositories/TokenRepository.php @@ -5,7 +5,7 @@ use Carbon\Carbon; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; -use ProcessMaker\Models\FormalExpression; +use Mustache_Engine; use ProcessMaker\Models\ProcessCollaboration; use ProcessMaker\Models\ProcessRequest as Instance; use ProcessMaker\Models\ProcessRequestToken; @@ -147,13 +147,12 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter //Default 3 days of due date $isDueVariable = $activity->getProperty('isDueInVariable', false); - if ($isDueVariable) { + $dueVariable = $activity->getProperty('dueInVariable'); + if ($isDueVariable && !empty($dueVariable)) { $instanceData= $token->getInstance()->getDataStore()->getData(); - $formalExp = new FormalExpression(); - $formalExp->setLanguage('FEEL'); - $formalExp->setBody($activity->getProperty('dueInVariable')); - $dueVariable = $formalExp($instanceData); - $due = is_numeric($dueVariable) ? $dueVariable : '72'; + $mustache = new Mustache_Engine(); + $mustacheDueVariable = $mustache->render($dueVariable, $instanceData); + $due = is_numeric($dueVariable) ? $mustacheDueVariable : '72'; } else { $due = $activity->getProperty('dueIn', '72'); } From 5d269558eda9fee36f86f75a7896bfbe80d80cda Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Thu, 13 Jun 2024 13:57:59 -0400 Subject: [PATCH 5/5] feature/FOUR-15682 --- ProcessMaker/Repositories/TokenRepository.php | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/ProcessMaker/Repositories/TokenRepository.php b/ProcessMaker/Repositories/TokenRepository.php index 7bdc2df9ab..77256e3447 100644 --- a/ProcessMaker/Repositories/TokenRepository.php +++ b/ProcessMaker/Repositories/TokenRepository.php @@ -146,16 +146,7 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter } //Default 3 days of due date - $isDueVariable = $activity->getProperty('isDueInVariable', false); - $dueVariable = $activity->getProperty('dueInVariable'); - if ($isDueVariable && !empty($dueVariable)) { - $instanceData= $token->getInstance()->getDataStore()->getData(); - $mustache = new Mustache_Engine(); - $mustacheDueVariable = $mustache->render($dueVariable, $instanceData); - $due = is_numeric($dueVariable) ? $mustacheDueVariable : '72'; - } else { - $due = $activity->getProperty('dueIn', '72'); - } + $due = $this->getDueVariable($activity, $token); $token->due_at = $due ? Carbon::now()->addHours($due) : null; $token->initiated_at = null; $token->riskchanges_at = $due ? Carbon::now()->addHours($due * 0.7) : null; @@ -168,6 +159,25 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter $this->instanceRepository->persistInstanceUpdated($token->getInstance()); } + /** + * Get due Variable + * + * @param Instance $instance + * @param User $user + */ + private function getDueVariable(ActivityInterface $activity, TokenInterface $token) + { + $isDueVariable = $activity->getProperty('isDueInVariable', false); + $dueVariable = $activity->getProperty('dueInVariable'); + if ($isDueVariable && !empty($dueVariable)) { + $instanceData= $token->getInstance()->getDataStore()->getData(); + $mustache = new Mustache_Engine(); + $mustacheDueVariable = $mustache->render($dueVariable, $instanceData); + return is_numeric($mustacheDueVariable) ? $mustacheDueVariable : '72'; + } + return $activity->getProperty('dueIn', '72'); + } + /** * Persists tokens that triggered a Start Event *