0 ? get_application($applicationId) : null; $isApprovedSchool = $application && (string) $application['status'] === 'approved'; $values = student_defaults(); $errors = []; $cycleContext = ['cycles' => [], 'selected' => null, 'active' => null, 'read_only' => false]; $selectedCycle = null; $selectedCycleId = 0; $isCycleReadOnly = false; $cycleLabel = 'لا توجد دورة بعد'; if ($application && $isApprovedSchool) { $cycleContext = resolve_school_cycle_context((int) $application['id'], $application, $requestedCycleId); $selectedCycle = $cycleContext['selected']; $selectedCycleId = $selectedCycle ? (int) ($selectedCycle['id'] ?? 0) : 0; $isCycleReadOnly = (bool) $cycleContext['read_only']; $cycleLabel = $selectedCycle ? (string) $selectedCycle['cycle_name'] : $cycleLabel; } if ($_SERVER['REQUEST_METHOD'] === 'POST' && $application) { [$values, $errors] = validate_student_input($_POST); if (!$isApprovedSchool) { $errors['form'] = 'لا يمكن فتح تسجيل الطلاب قبل اعتماد المركز.'; } elseif ($selectedCycleId <= 0) { $errors['form'] = 'يرجى إنشاء دورة موسمية أولاً من صفحة المركز.'; } elseif ($isCycleReadOnly) { $errors['form'] = 'هذه الدورة مؤرشفة للقراءة فقط. افتح دورة جديدة أو اختر دورة نشطة لإضافة طلاب جدد.'; } if ($errors === []) { try { create_student_in_cycle((int) $application['id'], $selectedCycleId, $values); set_flash('success', 'تم تسجيل الطالب بنجاح داخل الدورة الموسمية المحددة.'); header('Location: ' . school_page_url('students.php', (int) $application['id'], $selectedCycleId)); exit; } catch (PDOException $exception) { $duplicateCode = isset($exception->errorInfo[1]) && (int) $exception->errorInfo[1] === 1062; if ($duplicateCode) { $errors['student_code'] = 'هذا الكود مستخدم مسبقاً داخل نفس الدورة الموسمية.'; } else { $errors['form'] = 'تعذر حفظ بيانات الطالب حالياً. يرجى المحاولة مرة أخرى.'; } } catch (Throwable $exception) { $errors['form'] = 'تعذر حفظ بيانات الطالب حالياً. يرجى المحاولة مرة أخرى.'; } } } $students = $isApprovedSchool && $selectedCycleId > 0 ? list_school_students_by_cycle((int) $application['id'], $selectedCycleId) : []; $metrics = $isApprovedSchool && $selectedCycleId > 0 ? school_student_metrics_by_cycle((int) $application['id'], $selectedCycleId) : [ 'total' => 0, 'boys' => 0, 'girls' => 0, 'active' => 0, 'waiting' => 0, 'withdrawn' => 0, ]; $expectedCapacity = $application ? (int) ($application['expected_students'] ?? 0) : 0; $remainingSeats = max(0, $expectedCapacity - $metrics['total']); $pageTitle = $application ? 'تسجيل الطلاب: ' . (string) $application['center_name'] . ($selectedCycle ? ' — ' . $cycleLabel : '') : 'تسجيل الطلاب'; $pageDescription = 'صفحة مستقلة لتسجيل الطلاب وإدارة كشف المدرسة بعد الاعتماد، مع ربط كل البيانات بالدورة الموسمية النشطة أو المؤرشفة.'; $approvedSchoolUrl = $application ? school_page_url('approved_school.php', (int) $application['id'], $selectedCycleId) : 'approved_school.php'; $teachersUrl = $application ? school_page_url('teachers.php', (int) $application['id'], $selectedCycleId) : 'teachers.php'; $assessmentsUrl = $application ? school_page_url('assessments.php', (int) $application['id'], $selectedCycleId) : 'assessments.php'; $attendanceUrl = $application ? school_page_url('attendance.php', (int) $application['id'], $selectedCycleId) : 'attendance.php'; $applicationDetailUrl = $application ? 'application_detail.php?id=' . urlencode((string) $application['id']) : 'application_detail.php'; if (!$application) { http_response_code(404); } render_page_start($pageTitle, 'approved', $pageDescription, (string) ($application['favicon'] ?? '')); render_flash($flash); ?>
المدرسة غير موجودة

تحقق من رابط المدرسة أو ارجع إلى قائمة المراكز المعتمدة.

المراكز المعتمدة
التسجيل يبدأ بعد الاعتماد

هذه الصفحة جاهزة، لكن فتح سجل الطلاب مرتبط بتحويل حالة المركز إلى معتمد أولاً حتى يبقى التسلسل الإداري منظمًا.

الحالة الحالية: المدينة:
صفحة مستقلة لتسجيل الطلاب

سجل الطلاب —

هذا هو أول موديول تشغيلي بعد اعتماد المدرسة. هنا يتم إدخال بيانات الطلاب في صفحة منفصلة وواضحة، مع كشف جاهز للمراجعة دون خلطه مع بقية وظائف المدرسة.

السعة المعتمدة طالب المقاعد المتبقية
ملخص التسجيل
إجمالي الطلاب
طلاب مؤكدون
قائمة الانتظار

تم شغل من أصل مقعد متوقع حتى الآن.

الدورة الموسمية الحالية
كل بيانات هذه الصفحة مرتبطة الآن بالدورة . عند انتهاء الموسم يمكنك أرشفتها من صفحة المركز والبدء بدورة جديدة بدون فقدان السجلات القديمة.
اسم الدورة
الفترة
عدد الدورات دورة للمركز
هذه الدورة مؤرشفة حالياً، لذلك تبقى السجلات قابلة للمراجعة فقط بدون إضافة طلاب جدد.
كشف المدرسة
الطلاب المسجلون حالياً في هذه المدرسة فقط.
طلاب / طالبات
إجمالي القيد طالب
حالات نشطة طالب مؤكد
مقاعد متاحة مقعد متبقٍ
لا يوجد طلاب مسجلون بعد

ابدأ من نموذج التسجيل في الجانب الأيمن لإضافة أول طالب إلى كشف المدرسة.

الكود الطالب الصف ولي الأمر الهاتف الحالة التسجيل
سياق المدرسة
مدير المركز
فترة التشغيل
الفئة المستهدفة
البريد الرسمي