اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته 

اقوم بعمل نظام فواتير لدي جدول بي المنتجات اريد الموظف عند عمل طلب جديد يتم انشاء فاتورة مع العلم باني يمكن دفع جزء من المبلغ الفكرة كيف اعرف اني تم سداد باقي المبلغ هل يتم انشاء فاتورة اخري ولم يتم وحالة الفاتورة لم يتم الدفع . الرجاء مساعدة بطريقة عملها في قاعدة البيانات 

خالص شكري 

Recommended Posts

  • 0
نشر

أولاً عليك بتصميم جدول للمنتجات يحتوي على معلومات المنتجات مثل الاسم والسعر والكمية المتوفرة وغيرها من المعلومات التي تحتاجها كالتالي:

CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    quantity INT NOT NULL
);

ثم إنشاء جدول لتخزين بيانات الفواتير مثل تاريخ الفاتورة ومعلومات الموظف وحالة الدفع.

CREATE TABLE invoices (
    invoice_id INT AUTO_INCREMENT PRIMARY KEY,
    employee_name VARCHAR(255) NOT NULL,
    invoice_date DATE NOT NULL,
    total_amount DECIMAL(10, 2) NOT NULL,
    amount_paid DECIMAL(10, 2) NOT NULL,
    payment_status ENUM('Unpaid', 'Partially Paid', 'Paid') NOT NULL
);

بعد ذلك ربط جدول المنتجات بجدول الفواتير لكي تتمكن من تتبع التفاصيل الخاصة بكل فاتورة والمنتجات المرتبطة بها:

CREATE TABLE invoice_details (
    detail_id INT AUTO_INCREMENT PRIMARY KEY,
    invoice_id INT NOT NULL,
    product_id INT NOT NULL,
    quantity INT NOT NULL,
    subtotal DECIMAL(10, 2) NOT NULL,
    FOREIGN KEY (invoice_id) REFERENCES invoices (invoice_id),
    FOREIGN KEY (product_id) REFERENCES products (product_id)
);

والآن تأتي خطوة إضافة بيانات المنتجات بإضافة بعض البيانات الاختبارية لجدول المنتجات باستخدام عبارة INSERT INTO.

INSERT INTO products (product_name, price, quantity)
VALUES
    ('Product 1', 10.00, 50),
    ('Product 2', 15.00, 30),
    ('Product 3', 20.00, 20);

وعندما يقوم الموظف بعمل طلب جديد، يتم إنشاء فاتورة جديدة في جدول الفواتير، وربما تحتاج إلى تعبئة بعض المعلومات مثل اسم الموظف وتاريخ الفاتورة.

وبعد إنشاء الفاتورة، قم بإضافة تفاصيل الطلب (المنتجات المطلوبة وكمياتها) إلى جدول تفاصيل الفواتير.

ثم احتفظ بمعلومات المبلغ المدفوع في جدول الفواتير، وتستطيع تحديث حالة الدفع إلى "Partially Paid" عند دفع جزء من المبلغ وعند دفع المبلغ بالكامل يمكنك تحديث حالة الدفع إلى "Paid".

وباستخدام حقل الحالة في جدول الفواتير، بإمكانك متابعة ما إذا كان العميل قد قام بدفع الفاتورة بالكامل أم لا.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته،

سوف اذكر لك نموذج بسيط لجدول قاعدة البيانات لتخزين المنتجات والفواتير وحالتها:

1-جدول "المنتجات":

  • مُعرّف المنتج (Product ID)
  • اسم المنتج (Product Name)
  • سعر المنتج (Product Price)

2-جدول "الفواتير":

 

  • مُعرّف الفاتورة (Invoice ID)
  • تاريخ الفاتورة (Invoice Date)
  • حالة الدفع (Payment Status) - يمكن أن تكون قيمها مثلاً "غير مدفوعة" أو "جزئياً مدفوعة" أو "مدفوعة بالكامل"

3-جدول "تفاصيل الفاتورة":

  • مُعرّف تفصيل الفاتورة (Invoice Detail ID)
  • مُعرّف الفاتورة (Invoice ID) - مفتاح خارجي يربط مع جدول الفواتير
  • مُعرّف المنتج (Product ID) - مفتاح خارجي يربط مع جدول المنتجات
  • كمية المنتج (Product Quantity)
  • المبلغ الإجمالي للمنتج (Total Amount for Product)

عندما يقوم الموظف بإنشاء طلب جديد، يتم إضافة سجل جديد في جدول الفواتير ويتم ربط تفاصيل الفاتورة بالمنتجات التي تم طلبها في جدول "تفاصيل الفاتورة".

عندما يتم دفع جزء من المبلغ، يمكن للنظام تحديث حالة الدفع في جدول الفواتير إلى "جزئياً مدفوعة" ويمكن إضافة سجل في جدول المدفوعات لتتبع المبالغ المدفوعة. وعندما يتم دفع المبلغ كله، يمكن تحديث حالة الدفع في جدول الفواتير إلى "مدفوعة بالكامل".

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

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

  • 0
نشر
بتاريخ 22 ساعة قال Hessen Alosh:

وعليكم السلام ورحمة الله وبركاته،

سوف اذكر لك نموذج بسيط لجدول قاعدة البيانات لتخزين المنتجات والفواتير وحالتها:

1-جدول "المنتجات":

  • مُعرّف المنتج (Product ID)
  • اسم المنتج (Product Name)
  • سعر المنتج (Product Price)

2-جدول "الفواتير":

 

  • مُعرّف الفاتورة (Invoice ID)
  • تاريخ الفاتورة (Invoice Date)
  • حالة الدفع (Payment Status) - يمكن أن تكون قيمها مثلاً "غير مدفوعة" أو "جزئياً مدفوعة" أو "مدفوعة بالكامل"

3-جدول "تفاصيل الفاتورة":

  • مُعرّف تفصيل الفاتورة (Invoice Detail ID)
  • مُعرّف الفاتورة (Invoice ID) - مفتاح خارجي يربط مع جدول الفواتير
  • مُعرّف المنتج (Product ID) - مفتاح خارجي يربط مع جدول المنتجات
  • كمية المنتج (Product Quantity)
  • المبلغ الإجمالي للمنتج (Total Amount for Product)

عندما يقوم الموظف بإنشاء طلب جديد، يتم إضافة سجل جديد في جدول الفواتير ويتم ربط تفاصيل الفاتورة بالمنتجات التي تم طلبها في جدول "تفاصيل الفاتورة".

عندما يتم دفع جزء من المبلغ، يمكن للنظام تحديث حالة الدفع في جدول الفواتير إلى "جزئياً مدفوعة" ويمكن إضافة سجل في جدول المدفوعات لتتبع المبالغ المدفوعة. وعندما يتم دفع المبلغ كله، يمكن تحديث حالة الدفع في جدول الفواتير إلى "مدفوعة بالكامل".

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

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

شكرا لك اخي الكريم تم استخدام الفكرة بتعت حضرتك والحمدلله تمام بس افضل طريقة لتسجيل التاريخ في قاعدة البيانات علشان بعد كده اقدر اعمل استعلام بدون مشاكل 

  • 0
نشر
بتاريخ 5 ساعة قال Mohamed Abdel Moaty:

شكرا لك اخي الكريم تم استخدام الفكرة بتعت حضرتك والحمدلله تمام بس افضل طريقة لتسجيل التاريخ في قاعدة البيانات علشان بعد كده اقدر اعمل استعلام بدون مشاكل 

لتقوم بتسجيل تاريخ الفاتورة في قاعدة البيانات، يمكنك اتباع الخطوات التالية باستخدام لغة مثل SQL:

  1. تأكد من أن لديك جدول لتخزين الفواتير: قم بإنشاء جدول يحمل اسمًا مناسبًا لتخزين الفواتير. يمكنك استخدام جدول بالاسم "الفواتير" مثل النموذج الذي ذكرناه سابقا.
  2. تحديد نوع البيانات لحقل تاريخ الفاتورة: قم بتحديد نوع البيانات لحقل تاريخ الفاتورة في جدول الفواتير على أنه نوع البيانات "تاريخ" (Date). لانه هو الأنسب لتخزين التواريخ والسماح بإجراءات البحث والفرز بناءً عليها.
  3. إدخال تاريخ الفاتورة عند إنشاء سجل جديد: عند إنشاء سجل جديد في جدول الفواتير (عند إنشاء فاتورة جديدة)، يجب تحديد التاريخ لهذه الفاتورة وإضافته إلى حقل "تاريخ الفاتورة" في الجدول. يمكنك تنفيذ ذلك من خلال استخدام إحدى عبارات الإدخال (INSERT) في SQL أو من خلال استخدام واجهة المستخدم الخاصة بتطبيقك.

وليكي تقوم بعمل استعلام بدون مشاكل بناءً على التاريخ يمكنك استخدام عبارات الاستعلام (SELECT) في SQL مع شرط يحدد التاريخ المطلوب. على سبيل المثال، إذا كنت ترغب في استرداد جميع الفواتير التي تم إنشاؤها في يوم معين، يمكنك استخدام الشرط التالي:
 

SELECT * FROM الفواتير WHERE تاريخ_الفاتورة = 'تاريخ_الفاتورة_المطلوب';

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...