Commit a2cdc876 authored by Administrator's avatar Administrator

Update 3 files via Son of Anton

parent 35e407e0
......@@ -3,20 +3,23 @@ declare(strict_types=1);
return [
// Member CRUD
['GET', '/members', 'Members\Controllers\MemberController@index', ['auth'], 'member.view'],
['GET', '/members/create', 'Members\Controllers\MemberController@create', ['auth'], 'member.create'],
['POST', '/members', 'Members\Controllers\MemberController@store', ['auth'], 'member.create'],
['GET', '/members/search', 'Members\Controllers\MemberController@search', ['auth'], 'member.view'],
['GET', '/members/{id}', 'Members\Controllers\MemberController@show', ['auth'], 'member.view'],
['GET', '/members/{id}/edit', 'Members\Controllers\MemberController@edit', ['auth'], 'member.edit'],
['POST', '/members/{id}', 'Members\Controllers\MemberController@update', ['auth'], 'member.edit'],
['POST', '/members/{id}/status', 'Members\Controllers\MemberController@changeStatus',['auth'], 'member.change_status'],
['GET', '/members', 'Members\Controllers\MemberController@index', ['auth'], 'member.view'],
['GET', '/members/create', 'Members\Controllers\MemberController@create', ['auth'], 'member.create'],
['POST', '/members', 'Members\Controllers\MemberController@store', ['auth'], 'member.create'],
['GET', '/members/search', 'Members\Controllers\MemberController@search', ['auth'], 'member.view'],
['GET', '/members/{id}', 'Members\Controllers\MemberController@show', ['auth'], 'member.view'],
['GET', '/members/{id}/edit', 'Members\Controllers\MemberController@edit', ['auth'], 'member.edit'],
['POST', '/members/{id}', 'Members\Controllers\MemberController@update', ['auth'], 'member.edit'],
['POST', '/members/{id}/status', 'Members\Controllers\MemberController@changeStatus', ['auth'], 'member.change_status'],
// Fill Form (استمارة)
['GET', '/members/{id}/fill-form', 'Members\Controllers\MemberController@fillForm', ['auth'], 'member.edit'],
['POST', '/members/{id}/fill-form', 'Members\Controllers\MemberController@saveFillForm',['auth'], 'member.edit'],
// Form fee payment
['POST', '/members/{id}/pay-form-fee', 'Members\Controllers\MemberController@payFormFee', ['auth'], 'member.edit'],
// Fill Form (استمارة) — blocked until form fee paid
['GET', '/members/{id}/fill-form', 'Members\Controllers\MemberController@fillForm', ['auth'], 'member.edit'],
['POST', '/members/{id}/fill-form', 'Members\Controllers\MemberController@saveFillForm', ['auth'], 'member.edit'],
// API endpoints
['POST', '/api/members/parse-nid', 'Members\Controllers\MemberApiController@parseNid', ['auth'], 'member.create'],
['POST', '/api/members/search', 'Members\Controllers\MemberApiController@search', ['auth'], 'member.view'],
['POST', '/api/members/parse-nid', 'Members\Controllers\MemberApiController@parseNid', ['auth'], 'member.create'],
['POST', '/api/members/search', 'Members\Controllers\MemberApiController@search', ['auth'], 'member.view'],
];
\ No newline at end of file
......@@ -13,27 +13,73 @@ $statusLabel = $member->getStatusLabel();
$statusColor = $member->getStatusColor();
?>
<!-- Form Not Filled Banner -->
<?php if (!$formFilled && in_array($member->status, ['potential'])): ?>
<div class="card" style="margin-bottom:20px;padding:25px;background:linear-gradient(135deg, #FFF7ED, #FEF3C7);border:2px solid #F59E0B;">
<!-- ══════════════════════════════════════════════════════ -->
<!-- STEP 1: Form Fee Not Paid — BIG RED BLOCKER -->
<!-- ══════════════════════════════════════════════════════ -->
<?php if (!$formFeePaid && $member->status === 'potential'): ?>
<div class="card" style="margin-bottom:20px;padding:30px;background:linear-gradient(135deg, #FEF2F2, #FEE2E2);border:2px solid #DC2626;">
<div style="text-align:center;margin-bottom:20px;">
<div style="font-size:48px;">🔒</div>
<h2 style="color:#DC2626;margin:10px 0 5px;">يجب دفع رسوم الاستمارة أولاً</h2>
<p style="color:#6B7280;font-size:14px;margin:0;">لا يمكن ملء بيانات الاستمارة قبل دفع الرسوم</p>
</div>
<div style="max-width:500px;margin:0 auto;background:#fff;border-radius:12px;padding:25px;box-shadow:0 4px 12px rgba(0,0,0,0.1);">
<table style="width:100%;font-size:15px;margin-bottom:20px;">
<tr>
<td style="padding:8px 0;color:#6B7280;">رقم الاستمارة</td>
<td style="padding:8px 0;text-align:left;font-weight:700;font-size:20px;color:#0D7377;"><?= e($member->form_number ?? '—') ?></td>
</tr>
<tr>
<td style="padding:8px 0;color:#6B7280;">اسم العضو</td>
<td style="padding:8px 0;text-align:left;font-weight:600;"><?= e($member->full_name_ar) ?></td>
</tr>
<tr>
<td style="padding:8px 0;color:#6B7280;">رسوم الاستمارة</td>
<td style="padding:8px 0;text-align:left;font-weight:700;font-size:24px;color:#DC2626;"><?= money($formFee) ?></td>
</tr>
</table>
<form method="POST" action="/members/<?= (int) $member->id ?>/pay-form-fee">
<?= csrf_field() ?>
<div class="form-group" style="margin-bottom:15px;">
<label class="form-label">طريقة الدفع</label>
<select name="payment_method" class="form-select" style="font-size:16px;">
<option value="cash">نقدي 💵</option>
<option value="visa">فيزا / بطاقة 💳</option>
<option value="bank_transfer">تحويل بنكي 🏦</option>
</select>
</div>
<button type="submit" class="btn btn-primary" style="width:100%;padding:15px;font-size:18px;background:#059669;border-color:#059669;" onclick="return confirm('تأكيد دفع رسوم الاستمارة <?= e(money($formFee)) ?>؟')">
💰 تسجيل دفع رسوم الاستمارة
</button>
</form>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- STEP 2: Fee Paid but Form Not Filled -->
<!-- ══════════════════════════════════════════════════════ -->
<?php elseif ($formFeePaid && !$formFilled && in_array($member->status, ['potential', 'under_review'])): ?>
<div class="card" style="margin-bottom:20px;padding:25px;background:linear-gradient(135deg, #F0FDF4, #DCFCE7);border:2px solid #059669;">
<div style="display:flex;justify-content:space-between;align-items:center;">
<div>
<h3 style="color:#D97706;margin:0 0 8px;">📋 الاستمارة لم تُملأ بعد</h3>
<p style="color:#92400E;margin:0;font-size:14px;">
استمارة رقم <strong style="font-size:18px;"><?= e($member->form_number) ?></strong>
— رسوم الاستمارة: <strong><?= money($formFee) ?></strong>
<h3 style="color:#059669;margin:0 0 8px;">✅ تم دفع رسوم الاستمارة — جاهز لملء البيانات</h3>
<p style="color:#6B7280;margin:0;font-size:14px;">
استمارة رقم <strong style="font-size:18px;color:#0D7377;"><?= e($member->form_number) ?></strong>
— إيصال: <strong><?= e($formFeePayment['receipt_number'] ?? '—') ?></strong>
— المبلغ: <strong><?= money($formFee) ?></strong>
</p>
<p style="color:#6B7280;margin:8px 0 0;font-size:13px;">يجب دفع رسوم الاستمارة ثم ملء باقي البيانات</p>
</div>
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary" style="padding:15px 30px;font-size:16px;background:#D97706;border-color:#D97706;">
📝 ملء الاستمارة
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary" style="padding:15px 30px;font-size:18px;">
📝 ملء الاستمارة الآن
</a>
</div>
</div>
<?php endif; ?>
<!-- Member Header Card -->
<div class="card" style="margin-bottom:20px;overflow:visible;">
<div class="card" style="margin-bottom:20px;">
<div style="padding:25px;">
<div style="display:flex;justify-content:space-between;align-items:start;">
<div>
......@@ -51,6 +97,11 @@ $statusColor = $member->getStatusColor();
<?php if ($member->age_years): ?>
<span>🎂 <?= (int) $member->age_years ?> سنة</span>
<?php endif; ?>
<?php if ($formFeePaid): ?>
<span style="color:#059669;">✅ الرسوم مدفوعة</span>
<?php else: ?>
<span style="color:#DC2626;">❌ الرسوم غير مدفوعة</span>
<?php endif; ?>
</div>
</div>
<div style="text-align:left;">
......@@ -105,23 +156,24 @@ $statusColor = $member->getStatusColor();
<div style="color:#6B7280;font-size:12px;">إجمالي المدفوع</div>
</div>
</div>
<a href="/payments/member/<?= (int) $member->id ?>" class="btn btn-outline" style="width:100%;text-align:center;">عرض كل المدفوعات</a>
</div>
</div>
</div>
<!-- Quick Actions -->
<div class="card" style="margin-bottom:20px;padding:15px;">
<h4 style="margin:0 0 10px;color:#6B7280;font-size:13px;">إجراءات سريعة</h4>
<div style="display:flex;gap:10px;flex-wrap:wrap;">
<?php if (!$formFilled && $member->status === 'potential'): ?>
<?php if ($formFeePaid && !$formFilled): ?>
<a href="/members/<?= (int) $member->id ?>/fill-form" class="btn btn-primary">📝 ملء الاستمارة</a>
<?php endif; ?>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-outline">💍 إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-outline">👶 إضافة ابن/ة</a>
<a href="/payments/process/<?= (int) $member->id ?>" class="btn btn-outline">💰 تسجيل دفعة</a>
<a href="/documents/upload/<?= (int) $member->id ?>" class="btn btn-outline">📁 رفع مستندات</a>
<a href="/interviews/schedule/<?= (int) $member->id ?>" class="btn btn-outline">🗓️ تحديد مقابلة</a>
<a href="/installments/create/<?= (int) $member->id ?>" class="btn btn-outline">📅 خطة تقسيط</a>
<?php if ($formFilled): ?>
<a href="/members/<?= (int) $member->id ?>/spouses/create" class="btn btn-outline">💍 إضافة زوج/ة</a>
<a href="/members/<?= (int) $member->id ?>/children/create" class="btn btn-outline">👶 إضافة ابن/ة</a>
<a href="/documents/upload/<?= (int) $member->id ?>" class="btn btn-outline">📁 رفع مستندات</a>
<a href="/interviews/schedule/<?= (int) $member->id ?>" class="btn btn-outline">🗓️ تحديد مقابلة</a>
<a href="/installments/create/<?= (int) $member->id ?>" class="btn btn-outline">📅 خطة تقسيط</a>
<?php endif; ?>
<?php if ($member->status === 'active'): ?>
<a href="/carnets/issue/<?= (int) $member->id ?>" class="btn btn-outline">🪪 إصدار كارنيه</a>
<?php endif; ?>
......@@ -226,21 +278,4 @@ $statusColor = $member->getStatusColor();
</div>
</div>
<!-- Notes -->
<?php if (!empty($notes)): ?>
<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;">
<?php foreach ($notes as $note): ?>
<div style="padding:10px 0;border-bottom:1px solid #F3F4F6;">
<div style="font-size:13px;"><?= nl2br(e($note['note_text'])) ?></div>
<div style="font-size:11px;color:#9CA3AF;margin-top:5px;"><?= e($note['employee_name'] ?? 'النظام') ?><?= e($note['created_at']) ?></div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<?php $__template->endSection(); ?>
\ No newline at end of file
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