نظام إدارة ومحاسبة محل المعجنات

المواصفات التفصيلية للنظام

Software Requirements Specification

نظام متكامل لإدارة ومحاسبة محل معجنات، يعمل Offline بالكامل على Android بقاعدة بيانات SQLite محلية.

نطاق المشروع المعتمد

1. المتطلبات الوظيفية

Authentication & Roles

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

Raw Materials & Inventory

  • إدارة المواد الأولية
  • تعريف وحدات القياس
  • الحد الأدنى للمخزون
  • حساب الرصيد من حركات المخزون
  • تسجيل حركة شراء
  • استهلاك الإنتاج
  • المبيعات
  • الهدر
  • التلف
  • التسويات
  • الجرد

Products & Recipes

  • إدارة المنتجات الجاهزة
  • إنشاء الوصفات
  • ربط المنتج بالمواد الأولية
  • تحديد كميات المواد المستخدمة
  • حساب تكلفة المنتج وفق آلية النظام
  • الحفاظ على تكلفة الإنتاج التاريخية وعدم تغييرها بأثر رجعي عند تعديل الوصفة

Suppliers & Purchases

  • إدارة الموردين
  • إنشاء فاتورة شراء
  • إضافة مواد الفاتورة
  • تحديث المخزون
  • تسجيل الدفعات
  • الدفع الكامل
  • الدفع الجزئي
  • حساب رصيد المورد

Production

  • إنشاء دفعة إنتاج
  • استهلاك المواد الأولية
  • إضافة المنتجات الناتجة للمخزون
  • تسجيل تكلفة دفعة الإنتاج وقت تنفيذها
  • تنفيذ الاستهلاك والإنتاج ضمن عملية ذرية Atomic Transaction

Sales

  • إنشاء الطلب
  • رقم طلب
  • اسم طالب الطلب
  • نوع الطلب: داخل المحل / سفري
  • إضافة المنتجات والكميات
  • تعديل الطلب قبل الإتمام
  • إتمام الفاتورة
  • حفظ أسعار البيع وقت العملية
  • منع حذف الفاتورة المكتملة
  • الإلغاء والإرجاع من صلاحيات الإدارة

Cashier Sessions

  • فتح جلسة
  • رصيد افتتاحي
  • ربط المبيعات بالجلسة
  • ربط مصاريف الكاشير بالجلسة
  • حساب الرصيد المتوقع
  • إدخال الرصيد الفعلي
  • حساب الفرق
  • إضافة ملاحظة
  • إغلاق الجلسة
  • مراجعة الإدارة
  • ترحيل الجلسة مرة واحدة فقط
  • منع أي عملية مالية على جلسة مغلقة

Cashboxes

  • صندوق SYP
  • صندوق USD
  • تسجيل جميع الحركات المالية
  • حساب الرصيد من الحركات
  • منع التعديل المباشر على الرصيد

Currency Exchange

  • إدارة أسعار الصرف
  • تسجيل تاريخ أسعار الصرف
  • تنفيذ عمليات SYP ↔ USD
  • حفظ سعر الصرف المستخدم وقت العملية
  • عدم تعديل السعر التاريخي
  • عرض ومقارنة أسعار الصرف خلال فترة زمنية

Expenses

  • إنشاء المصروف
  • تصنيف المصاريف
  • ربط المصروف بالمستخدم
  • ربط مصروف الكاشير بجلسة الكاشير
  • تسجيل التاريخ والوقت
  • دعم الإدارة لإضافة المصاريف مباشرة

Inventory Count

  • إنشاء جرد
  • كمية النظام
  • الكمية الفعلية
  • حساب الفرق
  • إنشاء حركة تسوية
  • تسجيل سبب التسوية
  • منع تعديل كمية المخزون مباشرة

Printing

  • حفظ الفاتورة أولًا
  • إرسال أمر الطباعة
  • حالة الطباعة: PRINT_PENDINGPRINT_FAILEDPRINTED
  • إعادة الطباعة
  • عدم فقدان الفاتورة عند فشل الطابعة

2. المتطلبات غير الوظيفية

Offline First

النظام يعمل بدون اتصال بالإنترنت في العمليات الأساسية.

Local Database

SQLite هي مصدر البيانات المحلي للنظام.

Performance

العمليات الأساسية سريعة، والاستجابة المستهدفة تقريبًا 1–2 ثانية.

Data Integrity

العمليات الحساسة تُنفَّذ باستخدام SQLite Transactions لضمان Atomicity.

Security

كلمات المرور تُخزَّن بشكل Hash وليس كنص صريح.

Authorization

التحقق من الصلاحيات داخل Business Logic.

Maintainability

فصل واضح بين UI Layer، وBusiness / Operations Layer، وData Access Layer، وSQLite.

Auditability

العمليات الحساسة قابلة للتتبع.

Future Compatibility

استخدام UUID للكيانات الرئيسية بما يسمح بالتوسع مستقبلًا، دون أن تكون المزامنة أو تعدد الأجهزة جزءًا من الإصدار الحالي.

3. Business Rules

  1. الفاتورة المكتملة لا تُحذف.
  2. الإلغاء والإرجاع للفواتير المكتملة للإدارة فقط.
  3. الرصيد النقدي يعتمد على الحركات المالية.
  4. المخزون يعتمد على حركات المخزون.
  5. الجرد ينتج عنه Adjustment وليس تعديلًا مباشرًا للكمية.
  6. أسعار الصرف التاريخية لا يتم تعديلها.
  7. كل عملية مالية تحفظ سعر الصرف المستخدم وقت تنفيذها عند الحاجة.
  8. الكاشير لا يستطيع الوصول إلى الصناديق الرئيسية.
  9. الكاشير لا يستطيع تنفيذ الصرافة.
  10. الكاشير لا يستطيع ترحيل جلسة الكاشير.
  11. لا يمكن تسجيل عمليات جديدة على جلسة مغلقة.
  12. يجب حفظ الفاتورة قبل محاولة طباعتها.
  13. فشل الطباعة لا يلغي الفاتورة.
  14. الإنتاج يستهلك المواد الأولية ويضيف المنتجات الناتجة.
  15. استهلاك المواد وإضافة الناتج في الإنتاج يتمان ضمن عملية Atomic.
  16. يُحتفظ بسجل العمليات المهمة.
  17. لا يتم تعديل السجلات التاريخية بطريقة تؤدي إلى تغيير النتائج المحاسبية السابقة.

4. نموذج البيانات

الكيانات الرئيسية وعلاقاتها.

Role←Permissionصلاحيات الدور
User←CashierSession←Order←OrderItem←Product
Product←Recipe←RecipeIngredient←RawMaterial←InventoryMovement
ProductionBatch←InventoryMovement
Supplier←PurchaseInvoice←PurchaseItem←RawMaterial
PurchaseInvoice←SupplierPayment
ExpenseCategory←Expense←CashierSession
Cashbox←CashTransaction←CurrencyExchange←ExchangeRate
InventoryCount←InventoryCountLine←InventoryMovement
AuditLog

User

Role

Permission

CashierSession

Order

OrderItem

Product

Recipe

RecipeIngredient

RawMaterial

InventoryMovement

ProductionBatch

Supplier

PurchaseInvoice

PurchaseItem

SupplierPayment

Expense

ExpenseCategory

Cashbox

CashTransaction

CurrencyExchange

ExchangeRate

InventoryCount

InventoryCountLine

AuditLog

5. الهيكل التقني

React Native
↓
UI Layer
↓
Business / Operations Layer
↓
Data Access Layer
↓
SQLite
PlatformAndroid
DatabaseSQLite
NetworkNot Required
BackendNone
CloudNone
PrinterPOS Thermal Printer via USB OTG

6. نطاق المشروع

حدود الإصدار الحالي من النظام:

Android

جهاز محلي

SQLite

Offline

بدون Backend

بدون Cloud

بدون Multi-device Synchronization

بدون Multi-branch

بدون Online Exchange Rate

بدون نظام مزامنة بين الأجهزة