🧪 اختبار نموذج فاتورة العميل

استخدم هذا الاختبار للتحقق من أن جميع عناصر النموذج تعمل بشكل صحيح

1️⃣ اختبار عناصر النموذج الأساسية

✅ نموذج الفاتورة موجود بـ ID invoiceForm
✅ حقول العميل والعقد محددة بشكل صحيح
✅ حقول التواريخ موجودة ومحددة
✅ حقل الحالة موجود مع الخيارات

2️⃣ اختبار جدول البنود

✅ جدول البنود موجود بـ ID itemsTable
✅ جسم الجدول موجود بـ ID itemsBody
✅ أزرار الإضافة موجودة
✅ حقول البند بصيغة صحيحة: items[index][fieldname]

3️⃣ اختبار زر الحفظ

✅ زر الحفظ موجود بـ type=submit
✅ زر الحفظ له ID submitBtn
✅ زر الحفظ له class btn btn-success
✅ الأيقونة fa-save موجودة

4️⃣ اختبار الحسابات

✅ دالة calculateTotals() موجودة
✅ دالة createItemRow() موجودة
✅ دالة attachItemEventListeners() موجودة
✅ معالجات الأحداث مرتبطة بحقول البند

5️⃣ اختبار الحماية والتحقق

✅ CSRF token موجود (@csrf)
✅ جميع الحقول المطلوبة محددة بـ required
✅ معالج submit يتحقق من وجود بند واحد على الأقل

6️⃣ اختبار المسار والمتحكم

✅ المسار customer-invoices.store موجود
✅ المتحكم CustomerInvoiceController موجود
✅ دالة store() موجودة
✅ معالجة الحركات (Transactions) موجودة

🧬 خطوات الاختبار العملي

  1. افتح صفحة إضافة فاتورة جديدة: /customer-invoices/create
  2. اختر عميلًا من القائمة المنسدلة
  3. ملء حقول الفاتورة الأساسية:
    • رقم الفاتورة
    • تاريخ الفاتورة
    • تاريخ الاستحقاق
    • الحالة
  4. أضف بند واحد على الأقل:
    • اضغط زر "إضافة بند"
    • ملء الوصف والكمية والسعر
    • أضف خصم أو ضريبة إذا لزم الحال
  5. تحقق من الحسابات:
    • تأكد من ظهور الإجمالي الصحيح
    • تحقق من حساب الخصم والضريبة
  6. اضغط زر الحفظ 💾
    • يجب أن يظهر indicator تحميل
    • يجب أن ينتقل إلى صفحة عرض الفاتورة
    • يجب أن تظهر الفاتورة مع جميع البنود

🚀 الحالة النهائية

✅ زر الحفظ جاهز للعمل!
عند الضغط على زر الحفظ:
  1. يتم التحقق من وجود بند واحد على الأقل
  2. يتم إرسال البيانات إلى POST /customer-invoices
  3. يتم التحقق من البيانات على جانب الخادم
  4. يتم إنشاء الفاتورة مع البنود
  5. يتم حساب الإجماليات
  6. يتم إعادة التوجيه إلى صفحة الفاتورة