Commit aa012626 authored by Mahmoud Aglan's avatar Mahmoud Aglan

style(members): replace all emojis with Lucide icons across member pages

Replaced every emoji in show.php, edit.php, create.php, search.php,
changelog.php, and _partials/profile-header.php with proper Lucide SVG
icons for a professional, consistent UI appearance.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent c7acd73c
......@@ -16,7 +16,7 @@ $hasPhoto = !empty($member->photo_path);
<div style="color:#6B7280;margin-top:4px;">رقم العضوية: <strong><?= e($member->membership_number ?: 'لم يُحدد') ?></strong></div>
<?php if (!$hasPhoto): ?>
<div style="margin-top:6px;">
<span style="background:#FEF2F2;color:#DC2626;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;"> لا توجد صورة — مطلوبة لإصدار الكارنيه</span>
<span style="background:#FEF2F2;color:#DC2626;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;"><i data-lucide="alert-triangle" style="width:11px;height:11px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> لا توجد صورة — مطلوبة لإصدار الكارنيه</span>
</div>
<?php endif; ?>
</div>
......
......@@ -5,10 +5,10 @@
use App\Modules\Audit\Services\AuditService;
$sections = [
'member' => ['label' => 'العضو الرئيسي', 'icon' => '👤', 'logs' => $memberLogs, 'color' => '#0D7377'],
'spouse' => ['label' => 'الزوجات', 'icon' => '💍', 'logs' => $spouseLogs, 'color' => '#7C3AED'],
'child' => ['label' => 'الأبناء', 'icon' => '👶', 'logs' => $childLogs, 'color' => '#0284C7'],
'temp' => ['label' => 'الأعضاء المؤقتون', 'icon' => '👥', 'logs' => $tempLogs, 'color' => '#D97706'],
'member' => ['label' => 'العضو الرئيسي', 'icon' => '<i data-lucide="user" style="width:14px;height:14px;display:inline-block;vertical-align:middle;"></i>', 'logs' => $memberLogs, 'color' => '#0D7377'],
'spouse' => ['label' => 'الزوجات', 'icon' => '<i data-lucide="heart" style="width:14px;height:14px;display:inline-block;vertical-align:middle;"></i>', 'logs' => $spouseLogs, 'color' => '#7C3AED'],
'child' => ['label' => 'الأبناء', 'icon' => '<i data-lucide="baby" style="width:14px;height:14px;display:inline-block;vertical-align:middle;"></i>', 'logs' => $childLogs, 'color' => '#0284C7'],
'temp' => ['label' => 'الأعضاء المؤقتون', 'icon' => '<i data-lucide="users" style="width:14px;height:14px;display:inline-block;vertical-align:middle;"></i>', 'logs' => $tempLogs, 'color' => '#D97706'],
];
$totalLogs = count($memberLogs) + count($spouseLogs) + count($childLogs) + count($tempLogs);
......@@ -34,7 +34,7 @@ $totalLogs = count($memberLogs) + count($spouseLogs) + count($childLogs) + count
<div id="tab-<?= $key ?>" class="changelog-panel" style="display:none;">
<?php if (empty($sec['logs'])): ?>
<div class="card" style="padding:40px;text-align:center;color:#9CA3AF;">
<div style="font-size:48px;margin-bottom:10px;">📋</div>
<div style="margin-bottom:10px;"><i data-lucide="clipboard-list" style="width:48px;height:48px;display:inline-block;color:#9CA3AF;"></i></div>
<p>لا توجد تعديلات مسجلة في هذا القسم</p>
</div>
<?php else: ?>
......
......@@ -259,7 +259,8 @@ document.addEventListener('DOMContentLoaded', function() {
var dupLabel = dupType === 'spouse' ? 'زوج/ة العضو رقم ' + data.duplicate.membership_number
: dupType === 'child' ? 'ابن/ة العضو رقم ' + data.duplicate.membership_number
: 'عضو';
feedback.innerHTML += '<br><span style="color:#DC2626;">⚠️ مسجل بالفعل كـ' + dupLabel + ': ' + data.duplicate.full_name_ar + '</span>';
feedback.innerHTML += '<br><span style="color:#DC2626;"><i data-lucide="alert-triangle" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> مسجل بالفعل كـ' + dupLabel + ': ' + data.duplicate.full_name_ar + '</span>';
if (window.lucide) lucide.createIcons();
}
} else {
resultsBox.style.display = 'none';
......
......@@ -8,10 +8,10 @@
<!-- ═══ SuperAdmin Only: Name & National ID ═══ -->
<div class="card" style="margin-bottom:20px;padding:20px;border-right:4px solid #DC2626;">
<div style="display:flex;align-items:center;gap:10px;margin-bottom:15px;">
<h3 style="color:#DC2626;margin:0;">🔒 صلاحيات المشرف العام</h3>
<h3 style="color:#DC2626;margin:0;"><i data-lucide="lock" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> صلاحيات المشرف العام</h3>
<span style="background:#FEF2F2;color:#DC2626;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;">SUPER ADMIN ONLY</span>
</div>
<p style="color:#6B7280;font-size:13px;margin-bottom:15px;"> تغيير هذه البيانات يؤثر على كل سجلات العضو — تأكد من صحة البيانات قبل الحفظ</p>
<p style="color:#6B7280;font-size:13px;margin-bottom:15px;"><i data-lucide="alert-triangle" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تغيير هذه البيانات يؤثر على كل سجلات العضو — تأكد من صحة البيانات قبل الحفظ</p>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;">
<div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
......@@ -30,8 +30,8 @@
<h3 style="color:#0D7377;margin-bottom:15px;">البيانات الأساسية (للقراءة فقط)</h3>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;">
<?php if (empty($isSuperAdmin)): ?>
<div class="form-group"><label class="form-label">الاسم بالعربي 🔒</label><input type="text" value="<?= e($member->full_name_ar) ?>" class="form-input" disabled style="background:#F3F4F6;"></div>
<div class="form-group"><label class="form-label">الرقم القومي 🔒</label><input type="text" value="<?= e($member->national_id ?: '—') ?>" class="form-input" disabled style="background:#F3F4F6;direction:ltr;text-align:left;"></div>
<div class="form-group"><label class="form-label">الاسم بالعربي <i data-lucide="lock" style="width:11px;height:11px;display:inline-block;vertical-align:middle;color:#6B7280;"></i></label><input type="text" value="<?= e($member->full_name_ar) ?>" class="form-input" disabled style="background:#F3F4F6;"></div>
<div class="form-group"><label class="form-label">الرقم القومي <i data-lucide="lock" style="width:11px;height:11px;display:inline-block;vertical-align:middle;color:#6B7280;"></i></label><input type="text" value="<?= e($member->national_id ?: '—') ?>" class="form-input" disabled style="background:#F3F4F6;direction:ltr;text-align:left;"></div>
<?php endif; ?>
<div class="form-group"><label class="form-label">تاريخ الميلاد</label><input type="text" value="<?= e($member->date_of_birth) ?>" class="form-input" disabled style="background:#F3F4F6;"></div>
<div class="form-group"><label class="form-label">النوع</label><input type="text" value="<?= e($member->getGenderLabel()) ?>" class="form-input" disabled style="background:#F3F4F6;"></div>
......
......@@ -8,7 +8,7 @@
<input type="text" name="q" value="<?= e($query ?? '') ?>" class="form-input" placeholder="الاسم بالعربي، الرقم القومي، رقم العضوية، رقم المحمول، رقم الاستمارة..." style="font-size:16px;padding:12px;" autofocus>
</div>
<div style="grid-column:1/-1;">
<button type="submit" class="btn btn-primary" style="padding:12px 30px;">🔍 بحث</button>
<button type="submit" class="btn btn-primary" style="padding:12px 30px;"><i data-lucide="search" style="width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> بحث</button>
<a href="/members" class="btn btn-outline">عرض كل الأعضاء</a>
</div>
</form>
......
......@@ -3,9 +3,9 @@
<?php $__template->section('page_actions'); ?>
<?php if (can('member.edit') && (empty($member->membership_number) || ($isSuperAdmin ?? false))): ?>
<a href="/members/<?= (int) $member->id ?>/edit" class="btn btn-outline">✏️ تعديل</a>
<a href="/members/<?= (int) $member->id ?>/edit" class="btn btn-outline"><i data-lucide="pencil" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> تعديل</a>
<?php endif; ?>
<a href="/members/<?= (int) $member->id ?>/changelog" class="btn btn-outline">📜 سجل التعديلات</a>
<a href="/members/<?= (int) $member->id ?>/changelog" class="btn btn-outline"><i data-lucide="history" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> سجل التعديلات</a>
<a href="/members" class="btn btn-outline">← العودة</a>
<?php $__template->endSection(); ?>
......@@ -41,11 +41,11 @@ $canEdit = can('member.edit') && (!$isLocked || ($isSuperAdmin ?? false));
$ffBreakdown = $ffNotes['fee_breakdown'] ?? null;
if (is_array($ffBreakdown) && !empty($ffBreakdown)): ?>
<div style="margin-top:15px;background:#FFFBEB;border:1px solid #FCD34D;border-radius:8px;padding:10px 14px;text-align:right;max-width:350px;display:inline-block;">
<div style="font-weight:700;color:#92400E;margin-bottom:6px;font-size:12px;">📊 تفصيل:</div>
<div style="font-weight:700;color:#92400E;margin-bottom:6px;font-size:12px;"><i data-lucide="bar-chart-3" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تفصيل:</div>
<?php foreach ($ffBreakdown as $ffLine): ?>
<?php if (str_contains($ffLine, '═══')): ?>
<hr style="border:0;border-top:1px solid #FCD34D;margin:4px 0;">
<?php elseif (str_starts_with($ffLine, '💵')): ?>
<?php elseif (str_starts_with($ffLine, 'الإجمالي') || str_starts_with($ffLine, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($ffLine) ?></div>
<?php else: ?>
<div style="font-size:12px;color:#374151;padding:1px 0;"><?= e($ffLine) ?></div>
......@@ -83,17 +83,17 @@ $canEdit = can('member.edit') && (!$isLocked || ($isSuperAdmin ?? false));
<div class="card" style="margin-bottom:20px;padding:25px;background:#F0FDF4;border:2px solid #059669;">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;">
<div>
<h3 style="color:#059669;margin:0 0 8px;"> تم دفع رسوم الاستمارة — الآن قم بملء البيانات وإضافة الأسرة</h3>
<h3 style="color:#059669;margin:0 0 8px;"><i data-lucide="check-circle" style="width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> تم دفع رسوم الاستمارة — الآن قم بملء البيانات وإضافة الأسرة</h3>
<p style="color:#6B7280;margin:0;font-size:14px;">استمارة رقم <strong><?= e($member->form_number) ?></strong> — يمكنك إضافة أفراد الأسرة الآن بدون رسوم إضافية</p>
</div>
<?php if (can('member.fill_form')): ?>
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary" style="padding:15px 30px;font-size:18px;">📝 ملء الاستمارة</a>
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary" style="padding:15px 30px;font-size:18px;"><i data-lucide="file-edit" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> ملء الاستمارة</a>
<?php endif; ?>
</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #A7F3D0;">
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline">💍 إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline">👶 إضافة ابن/ة</a>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline">👤 إضافة عضو مؤقت</a>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline"><i data-lucide="heart" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline"><i data-lucide="baby" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة ابن/ة</a>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline"><i data-lucide="user-plus" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة عضو مؤقت</a>
</div>
</div>
<?php endif; ?>
......@@ -110,7 +110,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<span style="display:inline-block;padding:6px 16px;border-radius:20px;font-weight:700;font-size:14px;color:#fff;background:<?= $statusColor ?>;box-shadow:0 2px 8px rgba(0,0,0,0.2);"><?= e($statusLabel) ?></span>
<?php if ($member->status === 'active'): ?>
<?php if (!empty($overdueSubscriptions)): ?>
<span style="display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:rgba(220,38,38,0.15);color:#FCA5A5;border:1px solid rgba(220,38,38,0.3);">⚠️ اشتراكات متأخرة</span>
<span style="display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:rgba(220,38,38,0.15);color:#FCA5A5;border:1px solid rgba(220,38,38,0.3);"><i data-lucide="alert-triangle" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> اشتراكات متأخرة</span>
<?php elseif (!empty($subscriptionStatus) && $subscriptionStatus['status'] === 'paid'): ?>
<span style="display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:rgba(5,150,105,0.15);color:#6EE7B7;border:1px solid rgba(5,150,105,0.3);">✓ العضوية سارية</span>
<?php else: ?>
......@@ -156,16 +156,16 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<h2 style="margin:0 0 2px;color:#1A1A2E;font-size:24px;font-weight:800;"><?= e($member->full_name_ar) ?></h2>
<?php if ($member->full_name_en): ?><div style="color:#6B7280;font-size:14px;margin-bottom:4px;"><?= e($member->full_name_en) ?></div><?php endif; ?>
<?php if (!$_memberHasPhoto): ?>
<span style="display:inline-block;background:#FEF2F2;color:#DC2626;padding:2px 10px;border-radius:4px;font-size:11px;font-weight:600;margin-bottom:4px;"> لا توجد صورة — مطلوبة لإصدار الكارنيه</span>
<span style="display:inline-block;background:#FEF2F2;color:#DC2626;padding:2px 10px;border-radius:4px;font-size:11px;font-weight:600;margin-bottom:4px;"><i data-lucide="alert-triangle" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> لا توجد صورة — مطلوبة لإصدار الكارنيه</span>
<?php endif; ?>
</div>
</div>
<div style="display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:#6B7280;margin-top:14px;padding-top:14px;border-top:1px solid #E5E7EB;">
<?php if ($member->membership_number): ?><span style="background:#E6FFFA;padding:4px 10px;border-radius:6px;">🪪 عضوية: <strong style="color:#0D7377;font-size:15px;"><?= e($member->membership_number) ?></strong></span><?php endif; ?>
<span style="background:#FFF7ED;padding:4px 10px;border-radius:6px;">📋 استمارة: <strong style="color:#D97706;"><?= e($member->form_number ?? '—') ?></strong></span>
<span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;">🏢 <?= e($branchName) ?></span>
<span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;"><?= $member->gender === 'male' ? '👨' : '👩' ?> <?= $member->getGenderLabel() ?></span>
<?php if ($member->age_years): ?><span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;">🎂 <?= (int) $member->age_years ?> سنة</span><?php endif; ?>
<?php if ($member->membership_number): ?><span style="background:#E6FFFA;padding:4px 10px;border-radius:6px;"><i data-lucide="id-card" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> عضوية: <strong style="color:#0D7377;font-size:15px;"><?= e($member->membership_number) ?></strong></span><?php endif; ?>
<span style="background:#FFF7ED;padding:4px 10px;border-radius:6px;"><i data-lucide="clipboard-list" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> استمارة: <strong style="color:#D97706;"><?= e($member->form_number ?? '—') ?></strong></span>
<span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;"><i data-lucide="building-2" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> <?= e($branchName) ?></span>
<span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;"><?= $member->gender === 'male' ? '<i data-lucide="user" style="width:13px;height:13px;display:inline-block;vertical-align:middle;"></i>' : '<i data-lucide="user" style="width:13px;height:13px;display:inline-block;vertical-align:middle;"></i>' ?> <?= $member->getGenderLabel() ?></span>
<?php if ($member->age_years): ?><span style="background:#F3F4F6;padding:4px 10px;border-radius:6px;"><i data-lucide="cake" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> <?= (int) $member->age_years ?> سنة</span><?php endif; ?>
</div>
<?php if (!empty($divorceTransfer) || !empty($member->transferred_from_death_id) || !empty($waiverTransfer) || !empty($member->ownership_transfer_date)): ?>
<div style="display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;">
......@@ -198,7 +198,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php if (!empty($overdueSubscriptions)): ?>
<div class="card" style="margin-bottom:20px;padding:16px 20px;background:#FEF2F2;border:1px solid #FECACA;display:flex;align-items:center;justify-content:space-between;">
<div style="display:flex;align-items:center;gap:10px;">
<span style="font-size:18px;">⚠️</span>
<i data-lucide="alert-triangle" style="width:18px;height:18px;color:#D97706;"></i>
<span style="font-weight:700;color:#DC2626;font-size:14px;">يوجد اشتراكات متأخرة يجب سدادها</span>
</div>
<a href="/members/<?= (int) $member->id ?>/subscriptions" class="btn btn-sm" style="background:#DC2626;color:#fff;padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;">عرض الاشتراكات</a>
......@@ -211,7 +211,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php if (!empty($deathTransfer) || !empty($waiverTransfer) || !empty($divorceTransfer) || !empty($separationTransfer)): ?>
<div class="card" style="margin-bottom:20px;padding:20px;background:#F0F9FF;border:1px solid #BAE6FD;">
<div style="display:flex;align-items:center;gap:10px;margin-bottom:12px;">
<span style="font-size:18px;">🔄</span>
<i data-lucide="refresh-cw" style="width:18px;height:18px;color:#0D7377;"></i>
<h3 style="margin:0;color:#0369A1;font-size:15px;">بيانات انتقال العضوية</h3>
</div>
<table style="width:100%;font-size:13px;border-collapse:collapse;">
......@@ -255,7 +255,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php if ($member->status === 'pending_cheques' && !empty($installmentPlan)): ?>
<div class="card" style="margin-bottom:20px;padding:25px;background:linear-gradient(135deg,#FFF7ED,#FEF3C7);border:2px solid #EA580C;">
<div style="display:flex;align-items:center;gap:15px;">
<div style="font-size:40px;">📝</div>
<div style="font-size:40px;"><i data-lucide="file-text" style="width:40px;height:40px;display:inline-block;color:#EA580C;"></i></div>
<div style="flex:1;">
<h3 style="margin:0 0 5px;color:#9A3412;">في انتظار تسليم شيكات الأقساط</h3>
<p style="margin:0;color:#78350F;font-size:14px;">لا يمكن تفعيل العضوية أو إصدار رقم عضوية حتى يتم رفع جميع الشيكات المطلوبة (<?= (int) $installmentPlan['number_of_months'] ?> شيك)</p>
......@@ -271,7 +271,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php if ($isInitialPhase && $formFilled): ?>
<div class="card" style="margin-bottom:20px;border:2px solid #0D7377;">
<div style="padding:15px 20px;background:#0D7377;color:#fff;display:flex;justify-content:space-between;align-items:center;">
<h3 style="margin:0;">🧾 فاتورة العضوية</h3>
<h3 style="margin:0;"><i data-lucide="receipt" style="width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> فاتورة العضوية</h3>
<div style="text-align:left;">
<div style="font-size:12px;opacity:0.8;">الإجمالي المطلوب</div>
<div style="font-size:28px;font-weight:700;"><?= money($bill['total_pending']) ?></div>
......@@ -321,7 +321,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php foreach ($item['breakdown'] as $line): ?>
<?php if (str_contains($line, '═══')): ?>
<hr style="border:0;border-top:1px solid #D1D5DB;margin:4px 0;">
<?php elseif (str_starts_with($line, '💵')): ?>
<?php elseif (str_starts_with($line, 'الإجمالي') || str_starts_with($line, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($line) ?></div>
<?php else: ?>
<div style="color:#374151;padding:1px 0;"><?= e($line) ?></div>
......@@ -358,9 +358,9 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<!-- Add Family Before Paying -->
<div style="padding:0 20px 15px;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #E5E7EB;padding-top:15px;">
<span style="color:#6B7280;font-size:13px;padding:8px 0;">أضف أفراد الأسرة (بدون رسوم استمارة إضافية):</span>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline">💍 إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline">👶 إضافة ابن/ابنة</a>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline">👤 عضو مؤقت</a>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline"><i data-lucide="heart" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline"><i data-lucide="baby" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة ابن/ابنة</a>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline"><i data-lucide="user-plus" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> عضو مؤقت</a>
</div>
<!-- Special Discount Section -->
......@@ -410,10 +410,10 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php if ($member->status === 'potential' && ($member->membership_type ?? 'working') !== 'working' && $bill['form_fee_paid'] && !$typeDetailExists && empty($pendingMembership) && !($bill['membership_pending'] ?? false) && !($bill['membership_paid'] ?? false)): ?>
<?php
$typeFormRoutes = [
'seasonal' => ['route' => '/members/' . (int) $member->id . '/seasonal/create', 'label' => 'تسجيل بيانات العضوية الموسمية', 'icon' => '📋', 'desc' => 'سجّل بيانات المدة والأسرة — سيتم حساب الرسوم وإرسالها للخزينة تلقائياً'],
'foreign' => ['route' => '/members/' . (int) $member->id . '/foreign/create', 'label' => 'تسجيل بيانات العضوية الأجنبية', 'icon' => '🛂', 'desc' => 'سجّل بيانات جواز السفر وسعر الصرف قبل السداد'],
'sports' => ['route' => '/members/' . (int) $member->id . '/sports/create', 'label' => 'تسجيل بيانات العضوية الرياضية', 'icon' => '🏅', 'desc' => 'سجّل بيانات الرياضة والاتحاد قبل السداد'],
'honorary' => ['route' => '/members/' . (int) $member->id . '/honorary/create', 'label' => 'تسجيل بيانات العضوية الشرفية', 'icon' => '🏆', 'desc' => 'سجّل سبب منح العضوية الشرفية — سيتم التفعيل فوراً بدون رسوم'],
'seasonal' => ['route' => '/members/' . (int) $member->id . '/seasonal/create', 'label' => 'تسجيل بيانات العضوية الموسمية', 'icon' => 'clipboard-list', 'desc' => 'سجّل بيانات المدة والأسرة — سيتم حساب الرسوم وإرسالها للخزينة تلقائياً'],
'foreign' => ['route' => '/members/' . (int) $member->id . '/foreign/create', 'label' => 'تسجيل بيانات العضوية الأجنبية', 'icon' => 'globe', 'desc' => 'سجّل بيانات جواز السفر وسعر الصرف قبل السداد'],
'sports' => ['route' => '/members/' . (int) $member->id . '/sports/create', 'label' => 'تسجيل بيانات العضوية الرياضية', 'icon' => 'medal', 'desc' => 'سجّل بيانات الرياضة والاتحاد قبل السداد'],
'honorary' => ['route' => '/members/' . (int) $member->id . '/honorary/create', 'label' => 'تسجيل بيانات العضوية الشرفية', 'icon' => 'award', 'desc' => 'سجّل سبب منح العضوية الشرفية — سيتم التفعيل فوراً بدون رسوم'],
];
$typeForm = $typeFormRoutes[$member->membership_type] ?? null;
?>
......@@ -450,11 +450,11 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
$pmBreakdown = $pmNotes['fee_breakdown'] ?? null;
if (is_array($pmBreakdown) && !empty($pmBreakdown)): ?>
<div style="margin-top:15px;background:#FFFBEB;border:1px solid #FCD34D;border-radius:8px;padding:12px 16px;text-align:right;max-width:400px;display:inline-block;">
<div style="font-weight:700;color:#92400E;margin-bottom:6px;font-size:12px;">📊 تفصيل المبلغ:</div>
<div style="font-weight:700;color:#92400E;margin-bottom:6px;font-size:12px;"><i data-lucide="bar-chart-3" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تفصيل المبلغ:</div>
<?php foreach ($pmBreakdown as $pmLine): ?>
<?php if (str_contains($pmLine, '═══')): ?>
<hr style="border:0;border-top:1px solid #FCD34D;margin:4px 0;">
<?php elseif (str_starts_with($pmLine, '💵')): ?>
<?php elseif (str_starts_with($pmLine, 'الإجمالي') || str_starts_with($pmLine, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($pmLine) ?></div>
<?php else: ?>
<div style="font-size:12px;color:#374151;padding:1px 0;"><?= e($pmLine) ?></div>
......@@ -649,7 +649,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
</div>
<?php elseif ($formFilled && in_array($member->status, ['under_review', 'interview_scheduled'])): ?>
<div style="padding:20px;background:#EFF6FF;border-top:2px solid #0284C7;">
<p style="margin:0;color:#0284C7;font-size:14px;">📋 الفاتورة جاهزة — في انتظار قرار مجلس الأمناء قبل السداد</p>
<p style="margin:0;color:#0284C7;font-size:14px;"><i data-lucide="clipboard-check" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> الفاتورة جاهزة — في انتظار قرار مجلس الأمناء قبل السداد</p>
<p style="margin:5px 0 0;color:#6B7280;font-size:13px;">يمكنك إضافة أفراد الأسرة الآن وستُضاف رسومهم تلقائياً</p>
</div>
<?php endif; ?>
......@@ -701,7 +701,7 @@ $_memberInitials = mb_substr($member->full_name_ar, 0, 2);
<?php foreach ($paBreakdown as $line): ?>
<?php if (str_contains($line, '═══')): ?>
<hr style="border:0;border-top:1px solid #D1D5DB;margin:4px 0;">
<?php elseif (str_starts_with($line, '💵')): ?>
<?php elseif (str_starts_with($line, 'الإجمالي') || str_starts_with($line, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($line) ?></div>
<?php else: ?>
<div style="color:#374151;padding:1px 0;"><?= e($line) ?></div>
......@@ -841,7 +841,7 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Info Grid -->
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;">
<div class="card">
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;">👤 البيانات الشخصية</h3></div>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;"><i data-lucide="user" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> البيانات الشخصية</h3></div>
<div style="padding:15px 20px;">
<table style="width:100%;font-size:13px;">
<tr><td style="padding:5px 0;color:#6B7280;width:40%;">الرقم القومي</td><td style="padding:5px 0;direction:ltr;text-align:right;font-weight:600;"><?= e($member->national_id ?? '—') ?></td></tr>
......@@ -858,7 +858,7 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
</div>
<div class="card">
<?php if (can('member.view_financial')): ?>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;">💰 الملخص المالي</h3></div>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;"><i data-lucide="wallet" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> الملخص المالي</h3></div>
<div style="padding:15px 20px;">
<div style="display:grid;grid-template-columns:<?= !empty($specialDiscount) ? '1fr 1fr 1fr' : '1fr 1fr' ?>;gap:15px;">
<?php
......@@ -882,20 +882,20 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<div style="font-size:20px;font-weight:700;color:#D97706;">-<?= money($member->discount_amount ?? '0') ?></div>
<div style="color:#6B7280;font-size:11px;">خصم: <?= e($specialDiscount['name_ar']) ?> (<?= e($specialDiscount['discount_percentage']) ?>%)</div>
<?php if ($specialDiscount['requires_document'] && !empty($member->special_discount_document)): ?>
<a href="/<?= e($member->special_discount_document) ?>" target="_blank" style="font-size:11px;color:#0D7377;">📄 عرض الإثبات</a>
<a href="/<?= e($member->special_discount_document) ?>" target="_blank" style="font-size:11px;color:#0D7377;"><i data-lucide="file-text" style="width:11px;height:11px;display:inline-block;vertical-align:middle;margin-left:2px;"></i> عرض الإثبات</a>
<?php endif; ?>
</div>
<?php endif; ?>
<div style="background:#EFF6FF;padding:15px;border-radius:8px;text-align:center;"><div style="font-size:20px;font-weight:700;color:#0284C7;"><?= money($bill['total_paid']) ?></div><div style="color:#6B7280;font-size:11px;">إجمالي المدفوع</div></div>
</div>
<a href="/payments/member/<?= (int) $member->id ?>" class="btn btn-outline" style="width:100%;text-align:center;margin-top:10px;">📜 سجل المدفوعات</a>
<a href="/payments/member/<?= (int) $member->id ?>" class="btn btn-outline" style="width:100%;text-align:center;margin-top:10px;"><i data-lucide="scroll-text" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> سجل المدفوعات</a>
<?php if (!empty($deathTransfer['deceased_member_id'])): ?>
<a href="/payments/member/<?= (int) $deathTransfer['deceased_member_id'] ?>" class="btn btn-outline" style="width:100%;text-align:center;margin-top:6px;color:#6B7280;border-color:#D1D5DB;">📋 سجل مدفوعات العضو المتوفي (<?= e($deathTransfer['deceased_member_name'] ?? '') ?>)</a>
<a href="/payments/member/<?= (int) $deathTransfer['deceased_member_id'] ?>" class="btn btn-outline" style="width:100%;text-align:center;margin-top:6px;color:#6B7280;border-color:#D1D5DB;"><i data-lucide="clipboard-list" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> سجل مدفوعات العضو المتوفي (<?= e($deathTransfer['deceased_member_name'] ?? '') ?>)</a>
<?php endif; ?>
</div>
<?php else: ?>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;">💰 الملخص المالي</h3></div>
<div style="padding:30px;text-align:center;color:#9CA3AF;">🔒 لا تملك صلاحية عرض البيانات المالية</div>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;"><i data-lucide="wallet" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> الملخص المالي</h3></div>
<div style="padding:30px;text-align:center;color:#9CA3AF;"><i data-lucide="lock" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> لا تملك صلاحية عرض البيانات المالية</div>
<?php endif; ?>
</div>
</div>
......@@ -905,16 +905,16 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- ═══════════════════════════════════════════════ -->
<div class="card" style="margin-bottom:20px;">
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;">
<h3 style="margin:0;color:#0D7377;font-size:15px;"> الإجراءات</h3>
<h3 style="margin:0;color:#0D7377;font-size:15px;"><i data-lucide="zap" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> الإجراءات</h3>
</div>
<div style="padding:15px 20px;">
<!-- Registration & Form -->
<?php if ($bill['form_fee_paid'] && !$formFilled && can('member.fill_form')): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">📋 الاستمارة</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="clipboard-list" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> الاستمارة</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary">📝 ملء الاستمارة</a>
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary"><i data-lucide="file-edit" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> ملء الاستمارة</a>
</div>
</div>
<?php endif; ?>
......@@ -922,16 +922,16 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Family Management — available once form fee is paid (during filling) or after -->
<?php if (($bill['form_fee_paid'] || $formFilled || $isActive) && $canEdit): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">👨‍👩‍👧‍👦 الأسرة</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="users" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> الأسرة</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<?php if (can('spouse.add')): ?>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline">💍 إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-sm btn-outline"><i data-lucide="heart" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة زوج/ة</a>
<?php endif; ?>
<?php if (can('child.add')): ?>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline">👶 إضافة ابن/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-sm btn-outline"><i data-lucide="baby" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة ابن/ة</a>
<?php endif; ?>
<?php if (can('temp.add')): ?>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline">👤 إضافة عضو مؤقت</a>
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline"><i data-lucide="user-plus" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إضافة عضو مؤقت</a>
<?php endif; ?>
</div>
</div>
......@@ -940,9 +940,9 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Interview & Review -->
<?php if (in_array($member->status, ['under_review', 'interview_scheduled', 'potential']) && can('interview.schedule')): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">🗓️ المقابلة والمراجعة</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="calendar" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> المقابلة والمراجعة</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<a href="/interviews/schedule/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">🗓️ تحديد مقابلة</a>
<a href="/interviews/schedule/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="calendar" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تحديد مقابلة</a>
</div>
</div>
<?php endif; ?>
......@@ -950,20 +950,20 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Financial -->
<?php if (canAny(['payment.view', 'member.view_financial'])): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">💰 المالية</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="wallet" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> المالية</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<?php if (can('payment.process_cash')): ?>
<a href="/payments/process/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">💰 تسجيل دفعة</a>
<a href="/payments/process/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="wallet" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تسجيل دفعة</a>
<?php endif; ?>
<?php if (can('payment.view')): ?>
<a href="/payments/member/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📜 سجل المدفوعات</a>
<a href="/payments/member/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="scroll-text" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> سجل المدفوعات</a>
<?php endif; ?>
<?php if ($isActive): ?>
<?php if (can('installment.create_plan')): ?>
<a href="/installments/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📅 خطة تقسيط</a>
<a href="/installments/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="calendar-range" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> خطة تقسيط</a>
<?php endif; ?>
<?php if (can('subscription.view')): ?>
<a href="/members/<?= (int) $member->id ?>/subscriptions" class="btn btn-sm btn-outline">🔄 الاشتراكات</a>
<a href="/members/<?= (int) $member->id ?>/subscriptions" class="btn btn-sm btn-outline"><i data-lucide="refresh-cw" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> الاشتراكات</a>
<?php endif; ?>
<?php endif; ?>
</div>
......@@ -973,16 +973,16 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Documents & Carnet -->
<?php if (($bill['form_fee_paid'] || $formFilled || $isActive) && canAny(['document.view', 'document.upload', 'carnet.issue'])): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">📁 المستندات والكارنيه</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="folder" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> المستندات والكارنيه</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<?php if (can('document.upload')): ?>
<a href="/documents/upload/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📁 رفع مستندات</a>
<a href="/documents/upload/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="upload" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> رفع مستندات</a>
<?php endif; ?>
<?php if (can('document.view')): ?>
<a href="/documents/member/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📂 عرض المستندات</a>
<a href="/documents/member/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="folder-open" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> عرض المستندات</a>
<?php endif; ?>
<?php if ($isActive && can('carnet.issue')): ?>
<a href="/carnets/issue/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">🪪 إصدار كارنيه</a>
<a href="/carnets/issue/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="id-card" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> إصدار كارنيه</a>
<?php endif; ?>
</div>
</div>
......@@ -1021,9 +1021,9 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Violations & Fines (active members only) -->
<?php if ($isActive && can('fine.impose')): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">⚠️ المخالفات والغرامات</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="alert-triangle" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> المخالفات والغرامات</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<a href="/violations/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline" style="color:#DC2626;border-color:#DC2626;">⚠️ تسجيل مخالفة</a>
<a href="/violations/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline" style="color:#DC2626;border-color:#DC2626;"><i data-lucide="alert-triangle" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تسجيل مخالفة</a>
</div>
</div>
<?php endif; ?>
......@@ -1031,17 +1031,17 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Life Events (active members only) -->
<?php if ($isActive && canAny(['transfer.initiate', 'waiver.initiate', 'member.change_status'])): ?>
<div style="margin-bottom:15px;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">🔀 التحويلات وأحداث الحياة</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="arrow-right-left" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> التحويلات وأحداث الحياة</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<?php if (can('transfer.initiate')): ?>
<a href="/transfers/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">🔀 طلب تحويل/فصل</a>
<a href="/transfers/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="arrow-right-left" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> طلب تحويل/فصل</a>
<?php endif; ?>
<?php if (can('member.change_status')): ?>
<a href="/divorce/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">💔 تسجيل طلاق</a>
<a href="/death/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline" style="color:#6B7280;">🕊️ تسجيل وفاة</a>
<a href="/divorce/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="heart-crack" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تسجيل طلاق</a>
<a href="/death/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline" style="color:#6B7280;"><i data-lucide="cloud" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> تسجيل وفاة</a>
<?php endif; ?>
<?php if (can('waiver.initiate')): ?>
<a href="/waivers/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📤 طلب تنازل</a>
<a href="/waivers/create/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="send" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> طلب تنازل</a>
<?php endif; ?>
</div>
</div>
......@@ -1049,13 +1049,13 @@ $hasIncomplete = !empty(array_filter($missingSteps, fn($s) => !$s['done']));
<!-- Archive & Audit -->
<div style="margin-bottom:0;">
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;">🗄️ الأرشيف والمراجعة</div>
<div style="font-size:12px;color:#6B7280;font-weight:600;margin-bottom:8px;text-transform:uppercase;"><i data-lucide="archive" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> الأرشيف والمراجعة</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<a href="/members/<?= (int) $member->id ?>/insurance-record" class="btn btn-sm btn-outline" style="color:#1E40AF;border-color:#1E40AF;">&#x1f4cb; السجل التأميني</a>
<a href="/audit/entity/members/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">📜 سجل المراجعة</a>
<a href="/archive/entity/members/<?= (int) $member->id ?>" class="btn btn-sm btn-outline">🗄️ اللقطات الأرشيفية</a>
<a href="/members/<?= (int) $member->id ?>/insurance-record" class="btn btn-sm btn-outline" style="color:#1E40AF;border-color:#1E40AF;"><i data-lucide="clipboard-list" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> السجل التأميني</a>
<a href="/audit/entity/members/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="scroll-text" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> سجل المراجعة</a>
<a href="/archive/entity/members/<?= (int) $member->id ?>" class="btn btn-sm btn-outline"><i data-lucide="archive" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> اللقطات الأرشيفية</a>
<?php if ($member->membership_number): ?>
<a href="/archive/number-chain/<?= urlencode($member->membership_number) ?>" class="btn btn-sm btn-outline">🔗 سلسلة رقم العضوية</a>
<a href="/archive/number-chain/<?= urlencode($member->membership_number) ?>" class="btn btn-sm btn-outline"><i data-lucide="link" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> سلسلة رقم العضوية</a>
<?php endif; ?>
</div>
</div>
......@@ -1084,7 +1084,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<a href="/members/<?= (int) $member->id ?>/temporary/create" class="btn btn-sm btn-outline">+ عضو مؤقت</a>
</div>
<?php elseif ($isLocked): ?>
<span style="font-size:12px;color:#6B7280;">🔒 البيانات مقفلة بعد تفعيل العضوية</span>
<span style="font-size:12px;color:#6B7280;"><i data-lucide="lock" style="width:12px;height:12px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> البيانات مقفلة بعد تفعيل العضوية</span>
<?php endif; ?>
</div>
......@@ -1169,7 +1169,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<?php foreach ($sBreakdown as $line): ?>
<?php if (str_contains($line, '═══')): ?>
<hr style="border:0;border-top:1px solid #D1D5DB;margin:4px 0;">
<?php elseif (str_starts_with($line, '💵')): ?>
<?php elseif (str_starts_with($line, 'الإجمالي') || str_starts_with($line, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($line) ?></div>
<?php else: ?>
<div style="color:#374151;padding:1px 0;"><?= e($line) ?></div>
......@@ -1322,7 +1322,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<?php foreach ($cBreakdown as $line): ?>
<?php if (str_contains($line, '═══')): ?>
<hr style="border:0;border-top:1px solid #D1D5DB;margin:4px 0;">
<?php elseif (str_starts_with($line, '💵')): ?>
<?php elseif (str_starts_with($line, 'الإجمالي') || str_starts_with($line, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($line) ?></div>
<?php else: ?>
<div style="color:#374151;padding:1px 0;"><?= e($line) ?></div>
......@@ -1409,7 +1409,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<?php foreach ($tBreakdown as $line): ?>
<?php if (str_contains($line, '═══')): ?>
<hr style="border:0;border-top:1px solid #D1D5DB;margin:4px 0;">
<?php elseif (str_starts_with($line, '💵')): ?>
<?php elseif (str_starts_with($line, 'الإجمالي') || str_starts_with($line, 'المطلوب')): ?>
<div style="font-weight:700;color:#059669;font-size:13px;"><?= e($line) ?></div>
<?php else: ?>
<div style="color:#374151;padding:1px 0;"><?= e($line) ?></div>
......@@ -1430,7 +1430,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<?php if (can('member.change_status')): ?>
<!-- Status Change -->
<div class="card" style="margin-bottom:20px;">
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;">🔄 تغيير الحالة</h3></div>
<div style="padding:15px 20px;border-bottom:1px solid #E5E7EB;"><h3 style="margin:0;color:#0D7377;font-size:15px;"><i data-lucide="refresh-cw" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> تغيير الحالة</h3></div>
<div style="padding:15px 20px;">
<form method="POST" action="/members/<?= (int) $member->id ?>/status" style="display:flex;gap:10px;align-items:center;">
<?= csrf_field() ?>
......@@ -1451,7 +1451,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<?php if (!empty($waiverTransfer)): ?>
<div class="card" style="margin-bottom:20px;border:2px solid #7C3AED;">
<div style="padding:15px 20px;border-bottom:1px solid #DDD6FE;background:#F5F3FF;display:flex;justify-content:space-between;align-items:center;">
<h3 style="margin:0;color:#7C3AED;font-size:15px;">📤 هذه العضوية ناتجة عن تنازل</h3>
<h3 style="margin:0;color:#7C3AED;font-size:15px;"><i data-lucide="send" style="width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px;"></i> هذه العضوية ناتجة عن تنازل</h3>
<a href="/waivers/<?= (int) $waiverTransfer['id'] ?>" class="btn btn-sm btn-outline" style="color:#7C3AED;border-color:#7C3AED;">عرض طلب التنازل</a>
</div>
<div style="padding:20px;">
......@@ -1481,7 +1481,7 @@ $childClassLabels = ['included' => 'تابع مشمول', 'dependent_with_fee' =
<div style="margin-bottom:10px;">
<button type="button" onclick="document.getElementById('waiver-archive-detail').style.display = document.getElementById('waiver-archive-detail').style.display === 'none' ? 'block' : 'none';"
class="btn btn-sm btn-outline" style="color:#7C3AED;border-color:#7C3AED;">
🗄️ عرض أرشيف العضو السابق
<i data-lucide="archive" style="width:13px;height:13px;display:inline-block;vertical-align:middle;margin-left:3px;"></i> عرض أرشيف العضو السابق
</button>
<span style="font-size:12px;color:#9CA3AF;margin-right:10px;">لقطة كاملة من تاريخ <?= e(substr($waiverArchiveSnapshot['snapshot_taken_at'] ?? '', 0, 10)) ?></span>
</div>
......
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