← العودة للفهرس

سجلات الكفالة

الكفالة الفعلية بعد التسجيل: سيريال، منتج، عميل تطبيق، تواريخ، حالة. معظم السجلات تأتي من التطبيق بعد اجتياز فحوصات السيريال والنافذة والمدة.

المجموعة: Warranties اسم القائمة: Warranties الرابط: /admin/warranties الأيقونة: درع تحذير

محتويات الصفحة

1. منطق العمل من التسجيل حتى الحالة

ماذا يحدث في التطبيق قبل ظهور الصف هنا

  1. عميل مسجّل (App Customers) يدخل سيريال ومنتجاً وتاريخ شراء وصورة فاتورة.
  2. السيريال يُبحث في Order Serials (أو رقم الدفعة/الكود) ويجب أن يطابق Product المختار.
  3. لا يجوز أن توجد كفالة سابقة لنفس السيريال.
  4. تاريخ الشراء داخل نافذة Warranty Durations بدءاً من وصول المستودع في Orders (افتراضي 6 أشهر).
  5. تُحسب نهاية التغطية من Product Warranties (أو رقم الضمان على السيريال / بطاقة المنتج) → يُملأ Warranty end.
  6. يُولَّد Warranty code من 7 محارف تلقائياً. يُربط App Customer إن وُجد حساب.

كيف تُحسب الحالة عند كل حفظ

الشرطStatus
لا يوجد Purchase datePending Review
اليوم بعد Warranty endExpired
اليوم ضمن فترة السماحية من تاريخ الشراءApproved
بعد السماحية وقبل انتهاء التغطيةOutside Grace Period

فترة السماحية هنا ليست Duration months. تُؤخذ من Orders.grace_period_months للطلبية المرتبطة بالسيريال، وإلا 12 شهراً. معناها: إن سجّل العميل خلال هذه الأشهر من الشراء تُعتمد تلقائياً؛ بعدها تحتاج مراجعة (Outside Grace Period) حتى لو كانت التغطية لا تزال سارية.

النص في النموذج يقول إن التعديل اليدوي للحالة متاح، لكن عند الحفظ يُعاد الحساب من التواريخ والسيريال. أزرار Approve / Reject في القائمة مخصّصة لحالات Pending Review و Outside Grace Period. إن حفظت النموذج بعد ذلك قد تُعاد الحالة المحسوبة.

2. صورة تقريبية — القائمة

Marvel Techadmin / warranties
Warranties
App Customers
Warranties
Warranties+ New
Warranty codeCustomer nameSerialProductPurchaseEndStatus
K7M2NPQAhmad AliLT-MS-21211MS-21211…2026-06-012028-06-01approved
B3H9CDESaraSN-999Battery…2024-01-102025-01-10expired

فلاتر: فترة الشراء، السوق، الدولة، الحالة، المحذوف (Trashed).

3. صورة تقريبية — النموذج (تبويبات)

Edit Warranty
Basic Info Customer Info Notes Status
K7M2NPQ
Ahmad Ali
LT-MS-21211
MS-21211 Crystal…
2026-06-01
2028-06-01

Warranty Code مخفي عند الإنشاء ويُولَّد تلقائياً. عند التعديل يظهر ومعطّل.

4. جدول الحقول والارتباطات

تبويب Basic Info

الاسم الظاهرالاسم التقنييرتبط بـالشرح
Warranty Code warranty_code — رمز فريد 7 محارف. للبحث والعرض للعميل
App Customer app_customer_id App Customers.name حساب التطبيق. اختياري في النموذج. عند الحذف من العملاء يُصفَّر الرابط (nullOnDelete)
Serial number serial_number Order Serials.serial_number يجب أن يكون في شحنة مسجّلة ليُقبل من التطبيق. يُستخدم أيضاً لجلب فترة السماحية من الطلبية
Product product_id Products.name_en — ويظهر Product Type في الجدول نفس منتج السيريال. يغذي Durations و Product Warranties
Bill Image bill_image — صورة فاتورة JPEG/PNG/WebP حتى 10MB في warranty/bills
Purchase date purchase_date يُقارن بنافذة Durations + السماحية تاريخ شراء العميل
Warranty end warranty_end يُحسب من Product Warranties عند التسجيل من التطبيق نهاية التغطية. بعد هذا التاريخ: Expired

تبويب Customer Info

لقطة من بيانات العميل وقت التسجيل (name, phone, email, address, country, state) حتى لو تغيّر حساب التطبيق لاحقاً. Customer country فلتر في القائمة وليس بالضرورة نفس Country في App Customers.

Notes

Notes نص حر داخلي/من الطلب.

Status

Warranty Status مطلوب في النموذج: Approved / Pending Review / Expired / Outside Grace Period. يُعاد حسابه عند الحفظ كما في القسم 1.

عمود Market في الجدول يرتبط بشاشة الأسواق؛ يُملأ من التطبيق (market أو نص مصدر الشراء يُحوَّل لسوق). لا يظهر كحقل في تبويبات النموذج الحالية.

5. الأعمدة والأوامر

Code، اسم العميل، هاتف (نسخ)، سيريال (نسخ)، المنتج، نوع المنتج، السوق، الدولة، تواريخ، الحالة. حذف ناعم مع Restore وفلتر Trashed.

6. الحالات وأزرار الموافقة

الحالةمعنى تشغيلي
Approvedضمن السماحية من تاريخ الشراء (أو ما زالت التغطية سارية والحساب يعتبرها معتمدة)
Pending Reviewلا تاريخ شراء — راجع البيانات
Expiredتجاوز Warranty end
Outside Grace Periodالتغطية قد تكون سارية لكن التسجيل/المراجعة خارج سماحية الطلبية (افتراضي 12 شهراً من الشراء، أو grace_period_months للطلبية)

7. كيف تراجع كفالة

  1. Warranties — صفِّ Pending Review أو Outside Grace Period.
  2. طابق السيريال مع Order Serials والمنتج.
  3. راجع الفاتورة والتواريخ وWarranty end.
  4. Approve أو Reject من الصف، أو عدّل التواريخ إن كانت خاطئة ثم احفظ (يُعاد الحساب).

8. سيناريو كامل

  1. المنتج: Durations = 6، Product Warranties = 24. طلبية وصلت المستودع أمس، سيريال مربوط بالمنتج.
  2. عميل تطبيق يسجّل الشراء اليوم + فاتورة.
  3. النظام يقبل (داخل 6 أشهر من الوصول). Warranty end بعد 24 شهراً. الحالة Approved إن كان ضمن سماحية الشراء.
  4. يظهر الصف هنا: Code، App Customer، السيريال، المنتج. عمود Warranties عند العميل يزيد واحداً.

9. أخطاء شائعة

ما يحدثالسببالحل
SERIAL_NOT_FOUND من التطبيقالسيريال غير مستورد في الطلبيةشاشة الطلبات / Order Serials
PRODUCT_MISMATCHالمنتج المختار ≠ منتج السيريالطابق المنتج
WARRANTY_ALREADY_EXISTSكفالة سابقة لنفس السيريالابحث هنا بالسيريال
OUT_OF_AVAILABILITYخارج نافذة Durations من وصول الشحنةراجع Warranty Durations والطلبية
Expired فوراًمدة تغطية 0Product Warranties أو warranty_months على المنتج