# نظام الإدارة الشامل (ERP) - قائمة المهام

## البنية الأساسية
- [x] إعداد الهوية البصرية العربية RTL (خطوط، ألوان، ثيم أنيق)
- [x] تصميم قاعدة البيانات الكاملة (جميع الجداول والعلاقات)
- [x] هيكل التنقل العام مع القائمة الجانبية العربية
- [x] نظام الأدوار والصلاحيات (مدير عام، محاسب، مدير مخازن، موارد بشرية، موظف)
- [x] إخفاء/إظهار الأقسام حسب دور المستخدم

## الموارد البشرية
- [x] إدارة الموظفين (إضافة/تعديل/حذف) مع المسمى الوظيفي والقسم وبيانات التواصل وتاريخ التعيين
- [x] إدارة الأقسام
- [x] الحضور والانصراف مع تتبع ساعات العمل
- [x] إدارة الإجازات (طلبات، موافقة/رفض، أنواع الإجازات)

## الرواتب
- [x] كشوف الرواتب الشهرية
- [x] البدلات والخصومات
- [x] طباعة قسيمة الراتب

## العملاء والموردين
- [x] إدارة العملاء (بيانات كاملة + سجل المعاملات + الأرصدة المستحقة)
- [x] إدارة الموردين (بيانات كاملة + سجل المعاملات + الأرصدة المستحقة)

## المخازن
- [x] إدارة المنتجات (أكواد، أسعار، كميات، حد أدنى)
- [x] حركة المخزون (وارد/صادر) مع سجل كامل
- [x] تنبيهات نقص المخزون
- [x] إدارة المستودعات

## المبيعات والمشتريات
- [x] فواتير البيع مع خصم تلقائي من المخزون وإضافة تلقائية للإيرادات
- [x] عروض الأسعار وتحويلها لفواتير
- [x] أوامر الشراء وفواتير الموردين مع تحديث المخزون تلقائياً وإضافة للمصاريف
- [x] طباعة الفواتير

## المالية
- [x] تسجيل المصاريف مع الفئات والوصف
- [x] تسجيل الإيرادات
- [x] إدارة الخزينة والحسابات
- [x] تقرير الأرباح والخسائر
- [x] التقارير المالية والمخزنية

## لوحة التحكم
- [x] مؤشرات الأداء الرئيسية KPIs
- [x] رسوم بيانية للمبيعات والإيرادات والمصاريف والمخزون
- [x] تنبيهات وإشعارات (نقص مخزون، فواتير مستحقة)

## الإعدادات والمستخدمين
- [x] إدارة المستخدمين وربطهم بالأدوار
- [x] إعدادات الشركة (الاسم، العملة، الضريبة)

## الجودة والاختبار
- [x] اختبارات vitest للوحدات الأساسية (14/14 ناجحة)
- [x] التحقق البصري من جميع الصفحات
- [x] حفظ نقطة الحفظ النهائية (e1768dd3)

## بلاغات المستخدم
- [x] إصلاح: القائمة الجانبية لا تعرض الأقسام على النسخة المنشورة (تمت ترقية حساب Ahmed Hosny إلى admin)

## YAHYA ERP — التحويل متعدد الأنشطة
- [x] تغيير اسم النظام إلى YAHYA ERP (الشعار، العنوان، صفحة الدخول)
- [x] تسجيل دخول مستقل بالبريد الإلكتروني + رمز OTP (وضع مؤقت: الرمز يظهر على الشاشة، جاهز للربط مع Resend لاحقاً)
- [x] تسجيل دخول بجوجل مباشرة — مؤجل بقرار المستخدم (بانتظار مفاتيح Google OAuth؛ يُعاد فتحه عند توفر المفاتيح)
- [x] اختيار نوع المنشأة عند التسجيل الأول (عيادة طبية / مستشفى / مركز تسوق / منشأة عامة)
- [x] قائمة جانبية وأقسام تتكيف حسب نوع المنشأة + لوحة تحكم ببطاقات متخصصة
- [x] وحدة المستشفى: المرضى، العمليات، التنويم والعناية، الطوارئ
- [x] وحدة العيادة: المرضى، حسابات المرضى (كشف حساب بالرسوم والمواعيد والعمليات + تسجيل إيراد تلقائي)، جدولة العمليات، حجز المواعيد
- [x] وحدة مركز التسوق: الوحدات/المحلات، عقود الإيجار (تشمل بيانات المستأجر: اسم وهاتف)، تحصيل الإيجارات مع تسجيل إيراد تلقائي
- [x] تقارير تلقائية: ميزانية عمومية وقائمة دخل بضغطة زر
- [x] متابعة المخزون متاحة لكل الأنشطة (قسم المخازن يظهر لجميع أنواع المنشآت في القائمة المتكيفة)
- [x] اختبارات vitest للوحدات الجديدة (25/25 ناجحة)
- [x] حفظ نقطة الحفظ والنشر (YAHYA ERP — 760580a7)

## صفحة تحديثات النظام والنسخ الاحتياطية
- [x] محرك نسخ احتياطي في الخادم: تصدير جميع بيانات الجداول (23 جدولاً) إلى JSON وحفظها في S3 مع سجل بحجم البيانات والتاريخ
- [x] استرجاع نسخة احتياطية بضغطة زر (استبدال البيانات الحالية ببيانات النسخة بترتيب آمن للعلاقات)
- [x] حد أقصى 10 نسخ مع حذف الأقدم تلقائياً
- [x] صفحة واجهة "تحديثات النظام": الإصدار الحالي (2.1.0)، جدول النسخ الاحتياطية مع أزرار الاسترجاع والحذف، سجل إصدارات النظام
- [x] إتاحة الصفحة للمدير العام فقط (صلاحية settings) وإضافتها للقائمة الجانبية
- [x] اختبارات vitest للنسخ الاحتياطي والاسترجاع (28/28 ناجحة — تعطيل توازي ملفات الاختبار لتشارك قاعدة البيانات)
- [x] حذف فعلي لملفات النسخ من التخزين S3 عند تجاوز الحد أو الحذف اليدوي (إفراغ الملف عبر الكتابة فوقه)
- [x] حفظ نقطة الحفظ والنشر (415ebb07)

## بلاغ: القائمة الجانبية وOnboarding على النسخة المنشورة
- [x] تشخيص: مستخدم OTP الجديد كان دوره "user" لوجود حسابات جوجل سابقة + settings من الاختبارات منعت Onboarding
- [x] أول مستخدم يسجل عبر OTP يصبح مديراً عاماً تلقائياً (إن لم يوجد مدير بريد سابق)
- [x] ترقية حساب ahosni1111@gmail.com إلى admin وحذف بيانات الاختبار
- [x] من يُكمل الإعداد الأول على نظام فارغ يُرقى إلى admin تلقائياً
- [x] الاختبارات 28/28 ناجحة — (تجاوز بند نقطة الحفظ: دُمج مع التحويل التالي بطلب المستخدم)

## التحويل إلى نظام مستشفيات متخصص (YAHYA HIS)
- [x] حذف وحدات مركز التسوق (الوحدات، عقود الإيجار، تحصيل الإيجارات) من الواجهة والقائمة
- [x] إلغاء شاشة اختيار نوع المنشأة — النظام مستشفى دائماً (YAHYA HIS)
- [x] توسيع الأدوار: طبيب، ممرض، استقبال، صيدلي، فني مختبر، فني أشعة + الأدوار الحالية
- [x] إدارة حسابات الموظفين من المدير: إنشاء حساب ببريد وكلمة مرور، تعيين الدور، تعطيل/تفعيل، إعادة تعيين كلمة المرور
- [x] دخول الموظفين بكلمة المرور (إلى جانب OTP للمدير) — تبويبان في صفحة الدخول
- [x] إدارة الأقسام الطبية والأطباء (تخصص، جدول، رسوم كشف)
- [x] إدارة الغرف والأسرّة (تنويم/عناية مركزة) مع حالة الإشغال
- [x] العناية المركزة ICU كوحدة مستقلة
- [x] المختبر: طلبات التحاليل ونتائجها مع رسوم تلقائية
- [x] الأشعة: طلبات الفحوصات ونتائجها مع رسوم تلقائية
- [x] الصيدلية الداخلية: صرف أدوية للمرضى مع خصم من المخزون وتسجيل الرسوم على حساب المريض
- [x] فواتير المرضى: كشف حساب موحد (كشف + عمليات + تنويم + تحاليل + أشعة + أدوية) مع الدفعات وتسجيل إيراد تلقائي
- [x] تحديث لوحة التحكم بإحصاءات المستشفى (أسرّة، مرضى، طوارئ، تحاليل، أشعة، إيرادات)
- [x] الاختبارات الشاملة (43/43 ناجحة) والتحقق البصري في المتصفح (الدخول بكلمة مرور، لوحة التحكم، إدارة الموظفين)
- [x] تنظيف البقايا: حذف عمود facilityType من settings (هجرة 0005)، تحديث نص النسخ الاحتياطي، حذف الحسابات التجريبية
- [x] حفظ نقطة الحفظ والنشر

## تحسينات المستخدم (22 يوليو — دفعة 2)
- [x] كود مريض (MRN) فريد لكل مريض: عمود جديد + توليد تلقائي عند الإضافة + backfill للمرضى الحاليين
- [x] خانة بحث حية لاختيار المريض بالاسم أو الكود (Combobox) في كل النماذج (مواعيد، تنويم، عمليات، مختبر، أشعة، صيدلية، فواتير مرضى، طوارئ)
- [x] عرض كود المريض وباركود في كشف حساب المريض وعند الطباعة والتحويل بين الأقسام (بطاقة مريض بباركود + كشف حساب مطبوع بباركود)
- [x] تغيير "نوع الزيارة" إلى "نوع الحجز" وإزالة خيار "طوارئ" من قائمة الحجز في المواعيد
- [x] إغلاق القائمة الجانبية تلقائياً على الجوال عند اختيار قسم
- [x] الاختبارات والتحقق البصري وحفظ نقطة النشر

## إصلاحات المستخدم (22 يوليو — دفعة 3)
- [x] إصلاح تخطيط بنود فاتورة الشراء: اسم المنتج الطويل يغطي خانة الكمية (اقتطاع النص + على الجوال المنتج بصف كامل والكمية/السعر بصف ثانٍ)

## طلبات المستخدم (22 يوليو — دفعة 4): التسعير والأجهزة والفاتورة المفصلة
- [x] جدول قائمة الأسعار (price_list): خدمة باسم وسعر ثابت وفئة/قسم اختياري + صفحة إدارة قائمة الأسعار
- [x] جدول الأجهزة (devices): اسم الجهاز + سعر الاستخدام + القسم الطبي التابع له + صفحة إدارة الأجهزة
- [x] جدول استخدامات الأجهزة (device_usages): تسجيل استخدام جهاز لمريض يضيف السعر تلقائياً لحساب المريض
- [x] السعر التلقائي في النماذج: عند اختيار خدمة من قائمة الأسعار في المختبر/الأشعة/المواعيد/العمليات يظهر السعر تلقائياً (قابل للتعديل)
- [x] فلترة الأجهزة حسب القسم عند تسجيل الاستخدام
- [x] فاتورة مريض مفصلة: عند الإصدار/الطباعة تظهر كل البنود المستخدمة (كشف، تنويم، عمليات، تحاليل، أشعة، أدوية، أجهزة) بنداً بنداً مع الأسعار
- [x] الاختبارات والتحقق البصري وحفظ نقطة النشر (50/50 اختباراً ناجحاً)

## طلبات المستخدم (22 يوليو — دفعة 5): لوحات تحكم حسب الدور + نسخ احتياطي تلقائي
- [x] لوحة تحكم مخصصة حسب الدور: المدير العام فقط يرى اللوحة الكاملة (مالية + تشغيلية)
- [x] لوحة الطبيب: مواعيد اليوم، مرضاه، عملياته القادمة (بدون بيانات مالية)
- [x] لوحة فني المختبر: التحاليل المعلقة والمكتملة اليوم
- [x] لوحة فني الأشعة: الفحوصات المعلقة والمكتملة اليوم
- [x] لوحة الصيدلي: صرف اليوم وتنبيهات نقص المخزون
- [x] لوحة الاستقبال/الممرض: مواعيد اليوم، الأسرّة المتاحة، حالات الطوارئ النشطة
- [x] لوحة المحاسب: الإيرادات والمصاريف والفواتير (بدون بقية الإحصاءات)
- [x] لوحة الموارد البشرية: الموظفون والحضور والإجازات المعلقة
- [x] نسخ احتياطي تلقائي مجدول (Heartbeat): خيار كل ساعة / كل يوم / إيقاف في صفحة تحديثات النظام
- [x] handler مجدول /api/scheduled/autoBackup ينشئ نسخة كاملة (بنفس منطق النسخ اليدوي مع حد أقصى 10 نسخ)
- [x] إصلاح: تفعيل الجدولة بجلسة موظف محلية كان يفشل 401 — يتم الآن الإنشاء بهوية مالك المشروع تلقائياً
- [x] الاختبارات (57/57) والتحقق البصري وحفظ نقطة النشر

## بلاغات المستخدم (22 يوليو — دفعة 6): فواتير المرضى
- [x] إصلاح تداخل أسماء المرضى مع الأرقام في جدول فواتير المرضى على الجوال (اقتطاع/التفاف صحيح RTL)
- [x] كشف حساب المريض المفصل: عرض كل البنود (كشف، عمليات، إقامة/تنويم، عناية، تحاليل، أشعة، أدوية، أجهزة) بالمبالغ في نافذة كشف الحساب وعند الطباعة
- [x] إضافة الضريبة (من إعدادات النظام) على إجمالي الفاتورة مع إظهار المجموع قبل الضريبة وقيمتها والإجمالي النهائي — بند الإقامة يُحسب أيام × سعر يومي ويدخل في الإجمالي
- [x] توضيح أماكن إصدار فواتير المرضى للمستخدم
- [x] توحيد الرصيد المستحق في جدول أرصدة المرضى ليشمل الضريبة (نفس منطق الكشف المفصل: الإجمالي شامل الضريبة − المدفوع) — الاختبارات 57/57 ناجحة

## طلبات المستخدم (22 يوليو — دفعة 7): دفعة مقدمة عند تسجيل المريض
- [x] خانة "المبلغ المدفوع عند الدخول" في نموذج إضافة مريض جديد (اختيارية + طريقة الدفع، تظهر عند الإضافة فقط)
- [x] تسجيل المبلغ كدفعة مقدمة في سندات القبض تلقائياً مع إيراد مالي مرتبط (فئة "دفعات مرضى")
- [x] خصم الدفعة المقدمة تلقائياً من كشف الحساب عند التصفية (المتبقي = الإجمالي شامل الضريبة − كل المدفوعات بما فيها المقدمة)
- [x] التحقق من الترابط بين الأقسام: اختبارات تكاملية تثبت أن رسوم المختبر والأشعة والعمليات تدخل كشف الحساب وتُخصم منها الدفعة المقدمة (الكشف نفسه يجمع أيضاً الصيدلية والتنويم والطوارئ والأجهزة من دفعة سابقة)
- [x] الاختبارات والتحقق البصري وحفظ نقطة النشر — 62/62 ناجحة

## طلبات المستخدم (22 يوليو — دفعة 8): قسم موارد بشرية HR كامل
- [x] فحص مكونات HR الحالية — الموظفون/الأقسام/الحضور/الإجازات/الرواتب موجودة مسبقاً بصفحات مستقلة في القائمة الجانبية
- [x] ملف الموظف الكامل: بيانات وظيفية (قسم، مسمى، تاريخ تعيين، راتب، حالة) — موجود ومكتمل
- [x] رفع ملفات الموظفين PDF (عقود، شهادات، هوية، سيرة ذاتية، شهادات طبية) إلى S3 مع عرض/تنزيل/حذف — جدول employee_documents + نافذة "ملفات الموظف" بزر في جدول الموظفين
- [x] الرواتب: ترحيل مصروف "رواتب" تلقائي في المالية عند تعليم الكشف "مدفوع" (بدون تكرار)
- [x] الحضور والانصراف والإجازات (اعتماد/رفض) — موجودة ومترابطة عبر صلاحيات hr_manager
- [x] اختبارات vitest (رفع/رفض نوع/حذف/ترحيل راتب) والتحقق البصري — 66/66 ناجحة

## طلبات المستخدم (22 يوليو — دفعة 9): تعديل مسميات
- [x] تغيير كلمة "التنويم" إلى "التسكين" في كل الواجهات (القائمة الجانبية، صفحة التسكين، لوحة التحكم، كشف الحساب، الطوارئ، قائمة الأسعار، رسائل الخادم)

## طلبات المستخدم (22 يوليو — دفعة 10): إصلاح مقاسات
- [x] إصلاح خروج قائمة "الرسوم (اختيار من قائمة الأسعار)" عن حدود نافذة حجز موعد جديد — تقييد عرض ServicePicker واقتطاع النص وإضافة min-w-0 لحاويات الشبكة (المواعيد، المختبر، الأشعة)

## طلبات المستخدم (22 يوليو — دفعة 11): فئات الأسرّة + حضانات + تأمين + خصومات + إشعارات الطبيب
- [x] الغرف والأسرّة: تغيير "الجناح" إلى "الفئة" بقائمة (فاخرة / متوسطة / عادية)
- [x] الغرف والأسرّة: قائمة القسم تصبح (عناية مركزة / طوارئ / إقامة / حضانات وأطفال)
- [x] قسم كامل للحضانات والأطفال: صفحة خاصة، حضّانات، تسكين مواليد/أطفال برسوم يومية تدخل كشف حساب المريض
- [x] إضافة طريقة دفع "شركة تأمين" في كل نوافذ الدفع (فواتير المرضى، الدفعة المقدمة، المواعيد...)
- [x] خصومات الموظفين HR: إضافة خصم بمبلغ وسبب على موظف معين، يُخصم من كشف الراتب تلقائياً ويظهر في القسيمة
- [x] إشعارات الطبيب: قسم/صفحة "إشعاراتي" تعرض للطبيب المرضى الذين حجزوا معه (اليوم + القادمة)
- [x] ربط المواعيد بالطبيب: اختيار الطبيب عند حجز الموعد + عرض اسم الطبيب في القائمة
- [x] ترابط الأقسام: رسوم الحضانة في كشف الحساب والفاتورة، الخصم في الراتب والقسيمة، إشعار الطبيب من المواعيد
- [x] الاختبارات (74/74 ناجحة) والتحقق البصري وحفظ نقطة النشر

## طلبات المستخدم (23 يوليو — دفعة 12): حزمة النشر على استضافة خارجية
- [x] تجهيز ملف ZIP بملفات المشروع النهائية الجاهزة للرفع
- [x] تصدير سكربت SQL كامل لإنشاء قاعدة البيانات (38 جدولاً)
- [x] كتابة دليل عربي مفصّل: طريقة الرفع، الربط، متغيرات البيئة، إعداد قاعدة البيانات
- [x] تسليم الحزمة للمستخدم

## طلبات المستخدم (23 يوليو — دفعة 13): تسكين من العناية المركزة
- [x] صفحة العناية المركزة: زر ونموذج "تسكين مريض" مباشرة في قسم العناية المركزة (اختيار المريض، سرير عناية متاح مع تعبئة السعر تلقائياً، التاريخ، التشخيص)
- [x] ربط التسكين بالأسرّة تلقائياً: التسكين يشغل السرير، والخروج/الحذف يحرره — والتكلفة تسجل إيراداً عند الخروج (اختبار 75/75 ناجح)

## طلبات المستخدم (23 يوليو — دفعة 14): فوترة تلقائية + مخازن منفصلة + عزل بيانات الطبيب
- [x] الفوترة التلقائية: أي خدمة تُنفذ للمريض في أي قسم (مختبر، أشعة، عمليات، تسكين، حضانة، طوارئ، مواعيد، صيدلية) تترحّل تلقائياً كبند في كشف حساب/فاتورة المريض
- [x] عرض بنود الخدمات المرحّلة في كشف حساب المريض مع مصدر كل بند (القسم)
- [x] مخازن منفصلة: مخزن صيدلية + مخزن عمليات + مخزن عام، وربط كل منتج بمخزن
- [x] ربط الصيدلية بمخزن الصيدلية: الصرف يخصم من مخزن الصيدلية فقط
- [x] روشتات الطبيب: الطبيب يصدر روشتة (أدوية + جرعات) للمريض وتظهر للصيدلية لصرفها
- [x] عزل بيانات الطبيب: كل طبيب يرى فقط مرضاه (المسجلين باسمه في المواعيد/الملفات) في كل الصفحات الطبية
- [x] الطبيب يرى حالة الأسرّة فقط (متاح/مشغول) دون أسماء مرضى الأطباء الآخرين
- [x] الاختبارات والتحقق البصري وحفظ نقطة النشر (79/79 ناجحة)
## طلبات المستخدم (23 يوليو — دفعة 15): تحديث ذاتي عبر رفع ZIP (للاستضافة الخاصة)
- [ ] جدول system_updates: سجل حزم التحديث (الإصدار، الملاحظات، الحجم، الحالة، مفتاح التخزين)
- [ ] رفع حزمة ZIP من صفحة تحديثات النظام (مدير عام فقط) وحفظها في التخزين مع رقم إصدار وملاحظات
- [ ] زر "تطبيق التحديث": على الاستضافة الخاصة يفك الضغط فوق ملفات النظام + pnpm install + build + إعادة تشغيل، مع نسخة احتياطية تلقائية للبيانات قبل التطبيق
- [ ] كشف بيئة التشغيل: على استضافة Manus المُدارة يظهر وضع الأرشفة/التنزيل فقط مع توضيح، وعلى الاستضافة الخاصة يتاح التطبيق الكامل
- [ ] سجل التحديثات في الواجهة: قائمة الحزم المرفوعة بحالتها (مرفوعة/مطبقة/فشلت) مع تنزيل وحذف
- [ ] تحديث دليل النشر بشرح طريقة عمل الأبديت على الهوست
- [ ] الاختبارات والتحقق البصري وحفظ نقطة النشر
