مشروع أكاديمي — قسم هندسة البرمجيات المعهد التقني للحاسوب — جامعة دمشق · العام الدراسي 2025/2026 إعداد: الحارث ياسر مياسا | إشراف: م.م. محمود محمود
نظام سطح مكتب متكامل مبني بـ C# / Windows Forms يطبّق مبادئ البرمجة كائنية التوجه (OOP) بأسلوب Service + Repository، لإدارة عمليات البيع والشراء والمخزون في المصانع والمستودعات — ليحل محل العمليات الورقية التقليدية ويقلل نسبة الخطأ ويرفع كفاءة العمل.
| الدور | الحساب | كلمة المرور | الوصول |
|---|---|---|---|
Admin |
Admin | admin@admin | لوحة التحكم الكاملة |
User |
User | user@user | سلة المشتريات والبيع |
Marketer |
Marketer | mark@mark | إدارة المنتجات |
- إضافة منتج بمعرّف فريد وتصنيف قابل للتكرار
- لو تكرّر المنتج تُحدَّث كميته تلقائياً
- حذف عنصر واحد أو مجموعة عناصر دفعة واحدة
- تعديل واستخراج معلومات المنتج
- معرّف ورقم هاتف ورقم وطني فريدة — أي تكرار يُرفض برسالة خطأ
- حذف وتعديل المسوّقين (أفراد أو مجموعات)
- تحقّق فوري من الكمية مقابل المخزون مع عرض الكميات المتاحة
- نظام خصم تدريجي تلقائي:
- ≥ 1,500 → خصم
DISC12(12%) - ≥ 5,000 → خصم
DISC20(20%) - ≥ 7,000 → خصم
DISC25(25%) - ≥ 10,000 → خصم
DISC35(35%)
- ≥ 1,500 → خصم
- طريقتا دفع مع تحقّق صارم من صحة البيانات:
- نقدي: اسم + رقم بطاقة (10 أرقام) + حساب بنكي (8+ أرقام)
- بالدين: هاتف سوري
+963+ رقم وطني (10–11 أرقام)
- إنشاء الفاتورة وطباعتها وتصديرها PDF
- أفضل المنتجات مبيعاً
- المستخدمون الأكثر إضافةً للمنتجات
- إجمالي الكميات المباعة والأرباح المحقّقة
- حفظ كل الفواتير والبحث/التصفية حسب رقم الفاتورة والاسم وطريقة الدفع
- عرض تفاصيل كاملة (خصم، مجموع فرعي، إجمالي) مع إمكانية الطباعة
├── Classes/ # نماذج البيانات (Entities)
│ ├── Product.cs # منتج مع تحقّق من المُدخلات
│ ├── Marketer.cs # مسوّق (FullName محسوب)
│ ├── Invoice.cs # فاتورة (خصم + إجمالي نهائي)
│ ├── InvoiceItem.cs # بند في الفاتورة (TotalPrice محسوب)
│ ├── DiscountInfo.cs # هيكل بيانات الخصم
│ └── InvoiceSummary.cs # ملخّص فاتورة
│
├── Repositories/ # طبقة الوصول للبيانات (JSON)
│ ├── ProductRepository.cs # products.json + marketers.json
│ ├── MarketerRepository.cs # إدارة المسوّقين
│ └── InvoiceRepository.cs # فواتير كملفات .inv (thread-safe)
│
├── Services/ # منطق العمل (Business Logic)
│ ├── ProductService.cs # عمليات المنتجات
│ ├── InvoiceService.cs # إنشاء/خصم/حفظ الفواتير
│ ├── IPaymentService.cs # واجهة الدفع (OOP Interface)
│ ├── CashPaymentService.cs # دفع نقدي (يُطبّق الواجهة)
│ └── DebtPaymentService.cs # دفع بالدين (يُطبّق الواجهة)
│
├── Helpers/
│ └── ReportBuilder.cs # بناء نص الفاتورة الجاهز للطباعة
│
├── Forms/ # واجهات المستخدم (Windows Forms)
│ ├── Login_Form.cs # شاشة الدخول
│ ├── startslre_Form.cs # الصفحة الرئيسية (لوحة التحكم)
│ ├── Addtyps_Form.cs # إدارة المنتجات
│ ├── AddMarketers.cs # إدارة المسوّقين
│ ├── Salesbasket_Form.cs # سلة المشتريات
│ ├── PaymentDialog.cs # نافذة الدفع
│ ├── Reports_Form.cs # التقارير والإحصائيات
│ └── Billing__History.cs # سجل الفواتير
│
└── Program.cs # نقطة الدخول
أنماط OOP المستخدمة:
- 🧬 الوراثة والتغليف — فئات
sealedمع خصائص محمية - 🔌 تعدد الأشكال — واجهة
IPaymentServiceمع تطبيقَي دفع مختلفين - 🏭 فصل المسؤوليات — طبقات
Repository(بيانات) +Service(منطق) +Form(عرض) - 🛡️ صمامات الحماية — تحقّق
ArgumentNullException، قصص regex للتحقق من الإدخالات، قفلlockللكتابة الخيطية الآمنة
| التقنية | الاستخدام |
|---|---|
| C# / .NET Framework 4.5.2 | لغة البرمجة وإطار العمل |
| Windows Forms | واجهات المستخدم الرسومية |
| Guna.UI2 WinForms | تحسين مظهر الواجهات والتحكّمات |
| Newtonsoft.Json 12.0.3 | التخزين والقراءة بصيغة JSON |
| OOP | منهجية التصميم والبرمجة |
| Regex | التحقق من صحة بيانات الدفع والإدخال |
💾 ملاحظة على التخزين: البيانات محفوظة محلياً في ملفات JSON (بدل قاعدة بيانات SQL) — تُنشأ تلقائياً في مجلد
Data\عند أول تشغيل، مع قفل خيطي (lock) لتجنّب تعارضات القراءة/الكتابة.
- Visual Studio 2017 أو أحدث
- .NET Framework 4.5.2 أو أعلى
- NuGet packages:
Newtonsoft.Json 12.0.3وGuna.UI2.WinForms
git clone https://github.com/Alharith380/SalesInventory-OOP.git
cd SalesInventory-OOP- افتح
project.slnفي Visual Studio - استعدّ حزم NuGet (Restore NuGet Packages)
- فعّل التوقيع المؤقت للمشروع (Project Properties → Signing)
- شغّل بـ
F5
عند أول تشغيل سيُهيّئ النظام بيانات تجريبية تلقائياً. سجّل الدخول بأحد الحسابات الثلاثة الموضّحة أعلاه.
هذا المشروع أكاديمي أُعدّ ضمن مقرر "البرمجة المتقدمة"، ويركّز على:
- تطبيق مبادئ البرمجة كائنية التوجه في نظام واقعي
- فصل طبقات العرض عن المنطق عن البيانات
- إدارة الأمان وسياسة الخصوصية (أدوار + تحقق من المدخلات)
- إنشاء تقارير دورية عن حركة المخزون وتسهيل عمليات البيع والجرد
أُعدّ هذا المشروع لأغراض تعليمية ضمن متطلبات المقرر الجامعي.