Commit 048af80b authored by Administrator's avatar Administrator

Update 4 files via Son of Anton

parent 8ee666cd
...@@ -22,9 +22,12 @@ class ChildController extends Controller ...@@ -22,9 +22,12 @@ class ChildController extends Controller
return $this->redirect('/members')->withError('العضو غير موجود'); return $this->redirect('/members')->withError('العضو غير موجود');
} }
$countries = $db->select("SELECT id, nationality_ar FROM countries WHERE is_active = 1 ORDER BY nationality_ar");
return $this->view('Children.Views.create', [ return $this->view('Children.Views.create', [
'member' => $member, 'member' => $member,
'childOrder' => Child::getNextOrder((int) $memberId), 'childOrder' => Child::getNextOrder((int) $memberId),
'countries' => $countries,
]); ]);
} }
......
...@@ -61,6 +61,17 @@ ...@@ -61,6 +61,17 @@
<option value="female" <?= old('gender') === 'female' ? 'selected' : '' ?>>أنثى</option> <option value="female" <?= old('gender') === 'female' ? 'selected' : '' ?>>أنثى</option>
</select> </select>
</div> </div>
<div class="form-group">
<label class="form-label">الجنسية <span style="color:#DC2626;">*</span></label>
<select name="nationality" class="form-select" required>
<option value="مصري" <?= (old('nationality', 'مصري') === 'مصري') ? 'selected' : '' ?>>مصري</option>
<?php foreach ($countries as $c): ?>
<?php if ($c['nationality_ar'] !== 'مصري'): ?>
<option value="<?= e($c['nationality_ar']) ?>" <?= old('nationality') === $c['nationality_ar'] ? 'selected' : '' ?>><?= e($c['nationality_ar']) ?></option>
<?php endif; ?>
<?php endforeach; ?>
</select>
</div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الكلية / المدرسة</label> <label class="form-label">الكلية / المدرسة</label>
<input type="text" name="school_faculty" value="<?= e(old('school_faculty')) ?>" class="form-input"> <input type="text" name="school_faculty" value="<?= e(old('school_faculty')) ?>" class="form-input">
......
...@@ -33,11 +33,13 @@ class SpouseController extends Controller ...@@ -33,11 +33,13 @@ class SpouseController extends Controller
} }
$qualifications = $db->select("SELECT id, name_ar FROM qualifications WHERE is_active = 1 ORDER BY sort_order"); $qualifications = $db->select("SELECT id, name_ar FROM qualifications WHERE is_active = 1 ORDER BY sort_order");
$countries = $db->select("SELECT id, nationality_ar FROM countries WHERE is_active = 1 ORDER BY nationality_ar");
return $this->view('Spouses.Views.create', [ return $this->view('Spouses.Views.create', [
'member' => $member, 'member' => $member,
'spouseOrder' => $currentCount + 1, 'spouseOrder' => $currentCount + 1,
'qualifications' => $qualifications, 'qualifications' => $qualifications,
'countries' => $countries,
'requiredGender' => Spouse::getRequiredSpouseGender($member['gender']), 'requiredGender' => Spouse::getRequiredSpouseGender($member['gender']),
'maxAllowed' => $maxAllowed, 'maxAllowed' => $maxAllowed,
'currentCount' => $currentCount, 'currentCount' => $currentCount,
...@@ -131,9 +133,17 @@ class SpouseController extends Controller ...@@ -131,9 +133,17 @@ class SpouseController extends Controller
return $this->redirect("/members/{$memberId}/spouses/create"); return $this->redirect("/members/{$memberId}/spouses/create");
} }
// ── Fee calculation ── // ── Fee calculation — pass spouse data array ──
$spouseOrder = $currentCount + 1; $feeCalc = SpouseFeeCalculator::calculate((int) $memberId, [
$feeCalc = SpouseFeeCalculator::calculate((int) $memberId, $spouseOrder); 'nationality' => $data['nationality'] ?? 'مصري',
'marriage_date' => $data['marriage_date'] ?? null,
]);
if (!empty($feeCalc['error'])) {
return $this->redirect("/members/{$memberId}/spouses/create")->withError($feeCalc['error']);
}
$spouseOrder = $feeCalc['spouse_order'] ?? ($currentCount + 1);
$spouse = Spouse::create([ $spouse = Spouse::create([
'member_id' => (int) $memberId, 'member_id' => (int) $memberId,
...@@ -156,7 +166,7 @@ class SpouseController extends Controller ...@@ -156,7 +166,7 @@ class SpouseController extends Controller
'marriage_date' => $data['marriage_date'], 'marriage_date' => $data['marriage_date'],
'join_date' => date('Y-m-d'), 'join_date' => date('Y-m-d'),
'classification' => 'working', 'classification' => 'working',
'addition_fee' => $feeCalc['fee'] ?? '0.00', 'addition_fee' => $feeCalc['total_fee'] ?? '0.00',
'status' => 'active', 'status' => 'active',
]); ]);
...@@ -164,12 +174,12 @@ class SpouseController extends Controller ...@@ -164,12 +174,12 @@ class SpouseController extends Controller
'member_id' => (int) $memberId, 'member_id' => (int) $memberId,
'spouse_id' => (int) $spouse->id, 'spouse_id' => (int) $spouse->id,
'spouse_order'=> $spouseOrder, 'spouse_order'=> $spouseOrder,
'fee' => $feeCalc['fee'] ?? '0.00', 'fee' => $feeCalc['total_fee'] ?? '0.00',
]); ]);
$genderWord = $requiredGender === 'male' ? 'الزوج' : 'الزوجة'; $genderWord = $requiredGender === 'male' ? 'الزوج' : 'الزوجة';
return $this->redirect("/members/{$memberId}") return $this->redirect("/members/{$memberId}")
->withSuccess("تم إضافة {$genderWord} — الترتيب: #{$spouseOrder} — الرسوم: " . money($feeCalc['fee'] ?? '0.00')); ->withSuccess("تم إضافة {$genderWord} — الترتيب: #{$spouseOrder} — الرسوم: " . money($feeCalc['total_fee'] ?? '0.00'));
} }
public function show(Request $request, string $memberId, string $id): Response public function show(Request $request, string $memberId, string $id): Response
......
...@@ -73,8 +73,16 @@ $genderValue = $requiredGender; ...@@ -73,8 +73,16 @@ $genderValue = $requiredGender;
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الجنسية</label> <label class="form-label">الجنسية <span style="color:#DC2626;">*</span></label>
<input type="text" name="nationality" value="<?= e(old('nationality', 'مصري')) ?>" class="form-input"> <select name="nationality" class="form-select" required>
<option value="مصري" <?= (old('nationality', 'مصري') === 'مصري') ? 'selected' : '' ?>>مصري</option>
<?php foreach ($countries as $c): ?>
<?php if ($c['nationality_ar'] !== 'مصري'): ?>
<option value="<?= e($c['nationality_ar']) ?>" <?= old('nationality') === $c['nationality_ar'] ? 'selected' : '' ?>><?= e($c['nationality_ar']) ?></option>
<?php endif; ?>
<?php endforeach; ?>
</select>
<small style="color:#D97706;font-size:11px;">⚠ الجنسية تؤثر على الرسوم — الأجنبي = 15% من قيمة العضوية</small>
</div> </div>
<div class="form-group"> <div class="form-group">
......
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