اهلا بالجميع ،،

اليوم بحمد الله انتهيت بشكل مبدئي من نظام بسيط لاحد المجمعات الطبية في السودان ، باستخدام الاداة Qt

وحاليا جالس في مرحلة اقناعهم باستخدام نظام لينوكس ، ولكن الزولة عجاااااااازين

النظام يدير حسابات هذا المجمع ،، يعني اي مبلغ ياتي ، يجب ان نعرف كم مقداره ومن اي قسم قد اتي.
وكذلك اي مبلغ تم صرفه ، يجب ان نعرف كم مقداره وتحت اي بند تم صرفه !
وكذلك يجب ان يقوم باصدار تقارير عن ارصدة المجمع "رصيد الخزنة+رصيد البنك "
الترخيص :: GPL v2 or later version
++++++++++++++++++++++++++++
طيب خلينا نشوف مثال صغير على الية العمل ،، حتى تاخدو فكرة على النظام :
مثلا جاء مريض وسوى صورة اشعة ، فانه سيدفع تكلفة الصورة ويأخذ ايصال بانه قد دفع المبلغ.
وفي نهاية اليوم يذهب هذا الايصال مع اخوانه الى المحاسب لكي يقوم بعملية التوريد المملة

1- تبدأ هذه العملية باصدار "اذن استلام" وفيه يتم كتابة اجمالي المبلغ الذي اتى الى المحاسب ، واسم الشخص الذي اتي بها "المحصل".
2- يتم عمل "حافظة توريد" وفيها يتم كتابة اجمالى كل قسم على حدة .
مثلا اتي 20 جنيه من قسم الاشعة
50 من المعمل
89 من .... الخ.
3- يتم عمل سند قيد ثم ترحل هذا البيانات الى دفتر الخزنة ثم ترحل الى دفتر الاستاذ.
العملية مملة جدا ،، وقد ينشيء عنها الكثير من الاخطاء ، ناهيك عن عمليات السرقة

تبقى عملية الصرف وهي تقريبا بنفس الفكرة ،،
لذلك خلونا من هاالكلام الفاضي


طريقة اعداد وتشغيل النظام راح اذكرها في الاخر .
++++++++++++++++++++++++++++++
اولا اضغط على البرنامج Mas ،، وراح يأتيك الشاشة ::

اسم المستخدم : root وكذلك الباسوورد . "لا اشوف واحد يسوي Hacking على المجمع

وبعدها راح تأتيك الشاشة الرئيسية :

مثل ما شايفين ، لسه ما اكتملت وذلك لانها بحاجة الى تصميم ، واخوكم ما شاء الله عليه في التصميم ;)
الان اضغط على القائمة في اليسار على الخيار "ايصالات"

ولاضافة ايصال جديد ، لازم اولا تضغط على الزر اللي عليه اشارة +
ثم بعد الاضافة لازم تضغط على الزر اللي عليه فلوبي ديسك .
شاشة اذن الاستلام :

لانشاء اذن استلام فقط قم بتحديد التاريخ ، ثم اضغط على + .
شاشة حافظة التوريد :

لانشاء حافظة قم بتحديد التاريخ ثم اضغط +
---------------------------------
المنصرفاااااااااااااااااااات :
شاشة طلب صرف:
تستخدم لكي يتم صرف مبلغ.

شاشة اذن دفع :

---------------------------------
البنـــــــــــــــــــــــــك ::



---------------------------------
التقاريــــــــــــــــــــــــــر::
الشاشة التالية تذكرنا ببرامج قواعد البيانات ، حيث تقوم ببناء التقرير بشكل يدوي.
يعني اختر الحقول التي تريدها ثم اكتب الشرط ، واختر احد الدوال.

طبعا لم اكمل هذه الشاشة ، فقط الحقول + الشرط هي التي تعمل.

رسم بياني ، اختر التاريخ ثم اضغط على رسم .

--------------------------------
القائمة الرئيسية ::






--------------------------------
اخرى ::







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

الكود في المرفقات ،،
+++++++++++++++++++++++++++
طريقة التشغيل ::
لان هذه ليست النسخة الاخيرة ،، لذلك يلزمك اعداد النظام بنفسك.
اولا : انشاء قاعدة الببانات ::
من داخل الملف المرفق ، يوجد مجلد اسمه DB وبداخله يوجد ملف db.sql
انسخ محتوياته ، واذهب الى الشل ، ثم افتح قاعدة بيانات MySQL
ثم اعمل لصق paste .
ثانيا: تعئبة بعض الجداول ::
بداخل نفس المجلد يوجد مجلد اخر اسمه test ،، ادخل عليه ثم نفذ الامر:
qmake
ثم
make
ثم شغل البرنامج ، ثم اقفله .
ثالثا:: ترجمة النظام ::
من داخل المجلد App ،،ادخل على MAS ثم نفذ الامر ::
qmake
make
ثم شغل النظام ، واسمه راح يكون mas
+++++++++++++++++++++++++++
المشاكل التي قد تواجهك ::
1- حجم الخط :: في جهازي الخط 14 شغال تمام ، ولكن عندما نقلته الى جهاز اخر تفاجأت بانه ضخم جدا.
حل هذه المشكلة هو ان تدخل على اي ملف .ui وتقوم بتخفيض الخط الى 11 او 10.
2- اسم المستخدم والباسوورد لقاعدة البيانات :: الاعدادات التي وضعتها هي ان اسم المستخدم هو root
ولا يوجد باسوورد ، لذلك اذا حدث خطأ ،، قم بفتح ملف main.cpp الموجود بداخل مجلد test ومجلد MAS
وتعديل اسم المستخدم والباسوورد، ثم قم باعادة الخطوة ثانيا وثالثا.
+++++++++++++++++++++++++++++
للمبرمجين ::
* الكود صغير الحجم ، حوالى 5 الاف سطر

لانه كما لاحظتم ان اغلب الشاشات تتشابه ،، وتختلف في الجدول الذي تتم منه القراءة والكتابة وبعض الاشياء الاخرى.
وكان من الافضل ان اقوم بكتابة الكود المتشابه في class واقوم بالوراثة منه في كل شاشة ، حتى لا اكرر الكود.
* لا يوجد توثيق للكود .
*لم يتم تطبيق اي من مفاهيم Design Pattern ، وذلك لضيق الوقت
* كانت هناك محاولة لكتابة النظام على شكل three tire archiecture
اي فصل الواجهة عن منطق النظام عن قاعدة البيانات ولكن كان سيزيد حجم المشروع ثلاث الى 5 اضعاف >> اسحب على ابوها يا شيخ

* الكود جيد لدراسة كيفية الربط مع قاعدة البيانات ، واستخدام ال QSqlRelationalTableModel ،، و كذلك ال Mappers
لذلك افضل ان تقرأ ملف receiptsWidget.h & receiptsWidget.cpp ، كذلك لعمل التقارير انظر الى ملف كشف حساب الخزنة :
storageStatementOfAccountWidget.cpp & storageStatementOfAccountWidget.h
كذلك لعمل القوائم Menus و Dock Windows انظر الى mainWindow.h & mainWindow.cpp
اي ملاحظات ، اقترحات ، نقد ،سؤال ...الخ ؟؟
وشكراً ،،
تعليق