برمجة

تقييد مفاتيح بنود الفواتير في Laravel قبل حفظ البيانات

فريق فايندو جروب1 دقائق قراءة0 مشاهدة0 تعليقات
مشاركة:
واجهة مراجعة طلب فاتورة تعرض مفاتيح البند المقبولة ومفتاح السعر الإضافي المرفوض

حدّد من يملك كل قيمة

في فاتورة افتراضية، المتصفح يرسل معرّف المنتج والكمية. السعر المخزن في قاعدة البيانات هو أساس الحساب، وتعديله إن كان مسموحًا يتم من مسار مستقل بصلاحية واضحة. اكتب عقدًا لكل بند يوضح حقوله المقبولة، بدل بناء العقد من عناصر النموذج الظاهرة في المتصفح.

تحقق من شكل البند وقيمه

استعمل قاعدة array في Laravel مع قائمة مفاتيح محددة على كل بند، مثل array:product_id,quantity. ثم تحقق من البنود الفردية بقواعد متداخلة على items.*.product_id وitems.*.quantity. قائمة المفاتيح المسموحة لا تجعلها مطلوبة وحدها، لذلك ضع required أو القاعدة التي تعبّر عن حالتك على الحقول نفسها.

كوّن سجل الحفظ داخل الخدمة

مرّر الحقول المعتمدة إلى خدمة الفواتير. افحص وصول المستخدم إلى المنتج واستخرج السعر المتاح للسياق الصحيح ثم احسب المبلغ بالوحدة النقدية المعتمدة. إذا كانت أسعار الفواتير تاريخية فاحفظ نسخة سعر البند عند الإنشاء. عند تعديل فاتورة سابقة حدّد متى تحتفظ بالسعر المسجل ومتى تعيد التسعير.

اختبر حدود العقد

أرسل بندًا صحيحًا ثم أرسل مثله مع مفتاح unit_price إضافي وتحقق من رفضه قبل الحفظ. اختبر أيضًا غياب quantity، وحدود الكمية، ومنتجًا غير متاح لهذا الحساب. قارن إجمالي السجل المحفوظ بإجمالي الخادم وتأكد أن فشل بند واحد يترك الفاتورة في حالة متسقة.

من فايندو جروب: نظام إدارة الموارد والفواتير.

المراجع

التصنيفات:برمجة
شارك:

التعليقات

لا توجد تعليقات بعد

أضف تعليقك

كن أول من يعلق على هذا المقال

02 · تابع القراءة

مقالات ذات صلة