Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

نظام إدارة معاملات البيع والشراء — Sales & Purchase Management System

مشروع أكاديمي — قسم هندسة البرمجيات المعهد التقني للحاسوب — جامعة دمشق · العام الدراسي 2025/2026 إعداد: الحارث ياسر مياسا | إشراف: م.م. محمود محمود

نظام سطح مكتب متكامل مبني بـ C# / Windows Forms يطبّق مبادئ البرمجة كائنية التوجه (OOP) بأسلوب Service + Repository، لإدارة عمليات البيع والشراء والمخزون في المصانع والمستودعات — ليحل محل العمليات الورقية التقليدية ويقلل نسبة الخطأ ويرفع كفاءة العمل.


✨ المزايا الرئيسية

🔐 تسجيل دخول بثلاث صلاحيات (Role-Based Access)

الدور الحساب كلمة المرور الوصول
Admin Admin admin@admin لوحة التحكم الكاملة
User User user@user سلة المشتريات والبيع
Marketer Marketer mark@mark إدارة المنتجات

📦 إدارة المنتجات (Product Management)

  • إضافة منتج بمعرّف فريد وتصنيف قابل للتكرار
  • لو تكرّر المنتج تُحدَّث كميته تلقائياً
  • حذف عنصر واحد أو مجموعة عناصر دفعة واحدة
  • تعديل واستخراج معلومات المنتج

🧑‍💼 إدارة المسوّقين (Marketer Management)

  • معرّف ورقم هاتف ورقم وطني فريدة — أي تكرار يُرفض برسالة خطأ
  • حذف وتعديل المسوّقين (أفراد أو مجموعات)

🛒 سلة المشتريات والدفع (Shopping Cart & Payment)

  • تحقّق فوري من الكمية مقابل المخزون مع عرض الكميات المتاحة
  • نظام خصم تدريجي تلقائي:
    • ≥ 1,500 → خصم DISC12 (12%)
    • ≥ 5,000 → خصم DISC20 (20%)
    • ≥ 7,000 → خصم DISC25 (25%)
    • ≥ 10,000 → خصم DISC35 (35%)
  • طريقتا دفع مع تحقّق صارم من صحة البيانات:
    • نقدي: اسم + رقم بطاقة (10 أرقام) + حساب بنكي (8+ أرقام)
    • بالدين: هاتف سوري +963 + رقم وطني (10–11 أرقام)
  • إنشاء الفاتورة وطباعتها وتصديرها PDF

📊 التقارير (Reports)

  • أفضل المنتجات مبيعاً
  • المستخدمون الأكثر إضافةً للمنتجات
  • إجمالي الكميات المباعة والأرباح المحقّقة

🧾 سجل الفواتير (Billing History)

  • حفظ كل الفواتير والبحث/التصفية حسب رقم الفاتورة والاسم وطريقة الدفع
  • عرض تفاصيل كاملة (خصم، مجموع فرعي، إجمالي) مع إمكانية الطباعة

🏗️ البنية المعمارية (Architecture)

├── 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
  1. افتح project.sln في Visual Studio
  2. استعدّ حزم NuGet (Restore NuGet Packages)
  3. فعّل التوقيع المؤقت للمشروع (Project Properties → Signing)
  4. شغّل بـ F5

عند أول تشغيل سيُهيّئ النظام بيانات تجريبية تلقائياً. سجّل الدخول بأحد الحسابات الثلاثة الموضّحة أعلاه.


📌 الملاحظات والأهداف التعليمية

هذا المشروع أكاديمي أُعدّ ضمن مقرر "البرمجة المتقدمة"، ويركّز على:

  • تطبيق مبادئ البرمجة كائنية التوجه في نظام واقعي
  • فصل طبقات العرض عن المنطق عن البيانات
  • إدارة الأمان وسياسة الخصوصية (أدوار + تحقق من المدخلات)
  • إنشاء تقارير دورية عن حركة المخزون وتسهيل عمليات البيع والجرد

📃 الرخصة

أُعدّ هذا المشروع لأغراض تعليمية ضمن متطلبات المقرر الجامعي.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages