Commit 2c686f52 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix(sports): block completed players from re-entering registration wizard

Players who already completed the full registration (status=completed/assessed)
are now refused at the first lookup screen with an error message instead of
being redirected to their existing registration.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 9a3d2c0d
...@@ -86,7 +86,7 @@ class RegistrationWizardController extends Controller ...@@ -86,7 +86,7 @@ class RegistrationWizardController extends Controller
$existingReg = null; $existingReg = null;
if ($nationalId !== '') { if ($nationalId !== '') {
$existingReg = $db->selectOne( $existingReg = $db->selectOne(
"SELECT r.id FROM sa_registrations r "SELECT r.id, r.status FROM sa_registrations r
INNER JOIN sa_players p ON p.id = r.player_id INNER JOIN sa_players p ON p.id = r.player_id
WHERE p.national_id = ? AND r.status IN ('in_progress','completed','assessed') AND p.is_archived = 0 WHERE p.national_id = ? AND r.status IN ('in_progress','completed','assessed') AND p.is_archived = 0
ORDER BY r.id DESC LIMIT 1", ORDER BY r.id DESC LIMIT 1",
...@@ -95,7 +95,7 @@ class RegistrationWizardController extends Controller ...@@ -95,7 +95,7 @@ class RegistrationWizardController extends Controller
} }
if (!$existingReg && $memberId > 0) { if (!$existingReg && $memberId > 0) {
$existingReg = $db->selectOne( $existingReg = $db->selectOne(
"SELECT r.id FROM sa_registrations r "SELECT r.id, r.status FROM sa_registrations r
INNER JOIN sa_players p ON p.id = r.player_id INNER JOIN sa_players p ON p.id = r.player_id
WHERE p.member_id = ? AND r.status IN ('in_progress','completed','assessed') AND p.is_archived = 0 WHERE p.member_id = ? AND r.status IN ('in_progress','completed','assessed') AND p.is_archived = 0
ORDER BY r.id DESC LIMIT 1", ORDER BY r.id DESC LIMIT 1",
...@@ -103,6 +103,12 @@ class RegistrationWizardController extends Controller ...@@ -103,6 +103,12 @@ class RegistrationWizardController extends Controller
); );
} }
if ($existingReg) { if ($existingReg) {
if (in_array($existingReg['status'], ['completed', 'assessed'], true)) {
return $this->json([
'success' => false,
'error' => 'هذا اللاعب مسجل بالفعل وأكمل جميع الخطوات — لا يمكن التسجيل مرة أخرى',
]);
}
return $this->json([ return $this->json([
'success' => true, 'success' => true,
'redirect' => '/sa/registration/' . (int) $existingReg['id'], 'redirect' => '/sa/registration/' . (int) $existingReg['id'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment