Commit 8d0f495b authored by Fares's avatar Fares

fix(swimming): show accurate member/non-member pricing on assignment page

Display both fee tiers on each group card with the applicable one highlighted
based on the player's registration type, preventing pricing confusion.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 2b19960d
...@@ -72,7 +72,7 @@ class SwimmingAssignmentController extends Controller ...@@ -72,7 +72,7 @@ class SwimmingAssignmentController extends Controller
if ($isRegistrationId) { if ($isRegistrationId) {
$registration = $db->selectOne( $registration = $db->selectOne(
"SELECT r.*, p.id as player_id, p.full_name_ar, p.date_of_birth, p.gender, "SELECT r.*, p.id as player_id, p.full_name_ar, p.date_of_birth, p.gender,
p.phone, p.photo_path, p.player_type, p.medical_status p.phone, p.photo_path, p.player_type as player_type, p.medical_status
FROM sa_registrations r 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 r.id = ?", WHERE r.id = ?",
......
...@@ -109,10 +109,14 @@ if ($done): ?> ...@@ -109,10 +109,14 @@ if ($done): ?>
</div> </div>
<div style="flex:1;"> <div style="flex:1;">
<div style="font-size:15px;font-weight:700;color:#1A1A2E;"><?= e($player['full_name_ar']) ?></div> <div style="font-size:15px;font-weight:700;color:#1A1A2E;"><?= e($player['full_name_ar']) ?></div>
<div style="font-size:12px;color:#6B7280;margin-top:2px;"> <div style="font-size:12px;color:#6B7280;margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;">
<?php if ($playerAge !== null): ?><?= $playerAge ?> سنة<?php endif; ?> <?php if ($playerAge !== null): ?><span><?= $playerAge ?> سنة</span><?php endif; ?>
<?= $player['player_type'] === 'member' ? 'عضو' : 'غير عضو' ?> <?php if (($player['player_type'] ?? '') === 'member'): ?>
<?= $player['medical_status'] === 'fit' ? 'لائق طبياً' : ($player['medical_status'] === 'pending' ? 'بانتظار الموافقة' : $player['medical_status']) ?> <span style="background:#ECFDF5;color:#059669;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;">عضو</span>
<?php else: ?>
<span style="background:#FEF2F2;color:#DC2626;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;">غير عضو</span>
<?php endif; ?>
<span><?= $player['medical_status'] === 'fit' ? 'لائق طبياً' : ($player['medical_status'] === 'pending' ? 'بانتظار الموافقة' : $player['medical_status']) ?></span>
</div> </div>
</div> </div>
</div> </div>
...@@ -173,9 +177,10 @@ function filterByDiscipline(id) { ...@@ -173,9 +177,10 @@ function filterByDiscipline(id) {
if (!empty($g['age_to']) && $playerAge > (int) $g['age_to']) $ageOk = false; if (!empty($g['age_to']) && $playerAge > (int) $g['age_to']) $ageOk = false;
} }
$fee = $player['player_type'] === 'member' $isMember = ($player['player_type'] ?? '') === 'member';
? (float) $g['monthly_fee_member'] $feeMember = (float) $g['monthly_fee_member'];
: (float) $g['monthly_fee_nonmember']; $feeNonMember = (float) $g['monthly_fee_nonmember'];
$fee = $isMember ? $feeMember : $feeNonMember;
?> ?>
<div class="group-card" data-group-id="<?= (int) $g['id'] ?>" data-fee="<?= $fee ?>" <div class="group-card" data-group-id="<?= (int) $g['id'] ?>" data-fee="<?= $fee ?>"
style="border:2px solid #E5E7EB;border-radius:8px;padding:12px;cursor:<?= ($isFull || !$ageOk) ? 'not-allowed' : 'pointer' ?>;opacity:<?= ($isFull || !$ageOk) ? '0.5' : '1' ?>;transition:border-color 0.2s;" style="border:2px solid #E5E7EB;border-radius:8px;padding:12px;cursor:<?= ($isFull || !$ageOk) ? 'not-allowed' : 'pointer' ?>;opacity:<?= ($isFull || !$ageOk) ? '0.5' : '1' ?>;transition:border-color 0.2s;"
...@@ -197,7 +202,15 @@ function filterByDiscipline(id) { ...@@ -197,7 +202,15 @@ function filterByDiscipline(id) {
</div> </div>
<span style="font-size:10px;color:#6B7280;"><?= $current ?>/<?= $capacity ?></span> <span style="font-size:10px;color:#6B7280;"><?= $current ?>/<?= $capacity ?></span>
</div> </div>
<div style="font-size:12px;font-weight:600;color:#059669;"><?= number_format($fee) ?> ج.م / شهر</div> <div style="font-size:11px;margin-top:4px;">
<?php if ($isMember): ?>
<span style="font-weight:700;color:#059669;background:#ECFDF5;padding:2px 6px;border-radius:4px;">عضو: <?= number_format($feeMember) ?> ج.م</span>
<span style="color:#9CA3AF;margin-right:6px;text-decoration:line-through;">غير عضو: <?= number_format($feeNonMember) ?> ج.م</span>
<?php else: ?>
<span style="font-weight:700;color:#DC2626;background:#FEF2F2;padding:2px 6px;border-radius:4px;">غير عضو: <?= number_format($feeNonMember) ?> ج.م</span>
<span style="color:#9CA3AF;margin-right:6px;text-decoration:line-through;">عضو: <?= number_format($feeMember) ?> ج.م</span>
<?php endif; ?>
</div>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
...@@ -212,8 +225,13 @@ function filterByDiscipline(id) { ...@@ -212,8 +225,13 @@ function filterByDiscipline(id) {
<span style="font-size:13px;font-weight:700;color:#1A1A2E;">المجموعة المختارة: </span> <span style="font-size:13px;font-weight:700;color:#1A1A2E;">المجموعة المختارة: </span>
<span id="selectedGroupName" style="font-size:13px;color:#2563EB;font-weight:600;"></span> <span id="selectedGroupName" style="font-size:13px;color:#2563EB;font-weight:600;"></span>
</div> </div>
<div style="font-size:14px;font-weight:700;color:#059669;"> <div style="text-align:left;">
<span id="selectedFee">0</span> ج.م <div style="font-size:14px;font-weight:700;color:#059669;">
<span id="selectedFee">0</span> ج.م
</div>
<div style="font-size:11px;color:#6B7280;" id="selectedFeeType">
(<?= $isMember ? 'سعر الأعضاء' : 'سعر غير الأعضاء' ?>)
</div>
</div> </div>
</div> </div>
<button type="button" id="confirmAssignBtn" class="btn btn-primary" style="width:100%;padding:10px;font-size:14px;" onclick="confirmAssignment()"> <button type="button" id="confirmAssignBtn" class="btn btn-primary" style="width:100%;padding:10px;font-size:14px;" onclick="confirmAssignment()">
......
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