يفترض أنك لا تكرر نفس الصنف في نفس فاتورة المشتريات. هذا أولاً.
الفاتورة تتكون من قسمين:
قسم رأس الفاتورة: وهو جدول في قاعدة البيانات يحتوي على حقول تمثل رأس الفاتورة مثل:
رقم مسلسل - رقم الفاتورة - تاريخ الفاتورة - رقم المورد - إجمالي الفاتورة - قيمة الخصم - نهائي الفاتورة - القيمة المدفوعة - القيمة المتبقية - حالة الفاتورة... الخ.
(وبالطبع لا بد من وجود جدول خاص بالموردين يحتوي على حقول مثل: رقم مسلسل - اسم المورد - أرقام الهواتف - العنوان - البريد الإلكتروني - حالة المورد - ... الخ).
قسم محتويات الفاتورة: وهو جدول في قاعدة البيانات يحتوي على حقول تمثل محتويات الفاتورة من الأصناف مثل:
رقم مسلسل - رقم الفاتورة - رقم الصنف - الكمية - سعر التكلفة للوحدة - إجمالي سعر التكلفة - ... الخ.
ويكون مرتبطاً بجدول رأس الفاتورة من خلال الحقل (رقم الفاتورة).
في الفورم الخاص بالفاتورة، تصنع آلية لاختيار الأصناف (عن طريق الباركود أو عن طريق البحث عن الصنف المطلوب يدوياً) وعند اختياره تكتب الكمية المشتراة وسعر التكلفة للوحدة ثم تضغط زراً معيناً ليضيفه إلى محتويات الفاتورة.
عندئذ يتم إضافة إجمالي تكلفة هذا الصنف إلى الإجمالي العام للفاتورة، ويتم تحديث كل من الجدولين (جدول رأس الفاتورة وجدول محتويات الفاتورة) بالقيم الجديدة.
- اصنع آلية لاختيار المورد، بحيث تسترجع رقم تسلسله واسمه من جدول الموردين، ليتم تحديث جدول رأس الفاتورة برقم المورد المحدد.
- اصنع آلية لسداد الفاتورة.
- عند الانتهاء من تخزين الأصناف المشتراة في الفاتورة، اصنع آلية تقوم بإضافة الكميات المشتراة إلى نظيراتها في جدول الأصناف، ولا تنس أيضاً أن تستنتج (متوسط) سعر تكلفة كل صنف وتقوم بتحديث حقل سعر التكلفة لكل صنف من أصناف الفاتورة في نظيراتها من جدول الأصناف. وحبذا لو تخزن التغيير في سعر التكلفة في جدول مستقل يكون بالتركيبة التالية: رقم مسلسل - رقم الصنف - سعر التكلفة الحالي - سعر التكلفة الجديد - تاريخ آخر تحديث - رقم المشغل... الخ.
- كل ذلك تعمله يدوياً بنفسك، حتى تفهم الكود تماماً ويمكنك لاحقاً تعديله وتصحيح مواطن العلل إن وجدت.
أتمنى لك الفائدة.