From 19ced00885a2bd65bbba6a683e92850e7dba871a Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Wed, 20 Aug 2025 19:11:50 -0400 Subject: [PATCH 1/3] FOUR-25925 --- ProcessMaker/Models/ProcessRequestToken.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProcessMaker/Models/ProcessRequestToken.php b/ProcessMaker/Models/ProcessRequestToken.php index 0f052e1819..b13bbf3a7a 100644 --- a/ProcessMaker/Models/ProcessRequestToken.php +++ b/ProcessMaker/Models/ProcessRequestToken.php @@ -760,7 +760,7 @@ public function valueAliasStatus($value, $expression, $callback = null, User $us if ($user) { $taskIds = $user->availableSelfServiceTaskIds(); - $query->whereIn('id', $taskIds); + $query->whereIn('process_request_tokens.id', $taskIds); } else { $query->where('is_self_service', 1); } From 70ee32d26f46e995b7910aa9896c41859f198926 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Thu, 21 Aug 2025 14:21:09 -0400 Subject: [PATCH 2/3] Solving the test related --- tests/unit/ProcessMaker/FilterTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/ProcessMaker/FilterTest.php b/tests/unit/ProcessMaker/FilterTest.php index aa1b3182a0..4ad010cbf9 100644 --- a/tests/unit/ProcessMaker/FilterTest.php +++ b/tests/unit/ProcessMaker/FilterTest.php @@ -228,7 +228,7 @@ public function testTaskStatus() ], ProcessRequestToken::class); $this->assertEquals( - "select * from `process_request_tokens` where ((`id` in ({$selfServiceTask->id})))", + "select * from `process_request_tokens` where ((`process_request_tokens`.`id` in ({$selfServiceTask->id})))", $sql ); } From fd6c313545dc2e0c2ccb6cec709ae35fa6c68d18 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Thu, 28 Aug 2025 15:33:37 -0400 Subject: [PATCH 3/3] Updating the status --- ProcessMaker/Models/ProcessRequestToken.php | 8 +++--- tests/unit/ProcessMaker/FilterTest.php | 28 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/ProcessMaker/Models/ProcessRequestToken.php b/ProcessMaker/Models/ProcessRequestToken.php index b13bbf3a7a..082a2fa3ed 100644 --- a/ProcessMaker/Models/ProcessRequestToken.php +++ b/ProcessMaker/Models/ProcessRequestToken.php @@ -762,18 +762,18 @@ public function valueAliasStatus($value, $expression, $callback = null, User $us $taskIds = $user->availableSelfServiceTaskIds(); $query->whereIn('process_request_tokens.id', $taskIds); } else { - $query->where('is_self_service', 1); + $query->where('process_request_tokens.is_self_service', 1); } } elseif (array_key_exists($value, $statusMap)) { - $query->where('is_self_service', 0); + $query->where('process_request_tokens.is_self_service', 0); if ($expression->operator == '=') { $query->whereIn('process_request_tokens.status', $statusMap[$value]); } elseif ($expression->operator == '!=') { $query->whereNotIn('process_request_tokens.status', $statusMap[$value]); } } else { - $query->where('status', $expression->operator, $value) - ->where('is_self_service', 0); + $query->where('process_request_tokens.status', $expression->operator, $value) + ->where('process_request_tokens.is_self_service', 0); } }; } diff --git a/tests/unit/ProcessMaker/FilterTest.php b/tests/unit/ProcessMaker/FilterTest.php index 4ad010cbf9..70e0269fa5 100644 --- a/tests/unit/ProcessMaker/FilterTest.php +++ b/tests/unit/ProcessMaker/FilterTest.php @@ -206,7 +206,7 @@ public function testRequestStatus() ); } - public function testTaskStatus() + public function testTaskStatusSelfservice() { $user = User::factory()->create(); @@ -233,6 +233,32 @@ public function testTaskStatus() ); } + public function testTaskStatusActive() + { + $user = User::factory()->create(); + + $selfServiceTask = ProcessRequestToken::factory()->create([ + 'is_self_service' => false, + 'status' => 'ACTIVE', + 'user_id' => $user->id, + ]); + + Auth::shouldReceive('user')->andReturn($user); + + $sql = $this->filter([ + [ + 'subject' => ['type' => 'Status'], + 'operator' => '=', + 'value' => 'ACTIVE', + ], + ], ProcessRequestToken::class); + + $this->assertEquals( + "select * from `process_request_tokens` where ((`process_request_tokens`.`status` = 'active' and `process_request_tokens`.`is_self_service` = 0))", + $sql + ); + } + public function testRequestProcess() { $sql = $this->filter([