برنامج إدارة المبيعات: الدرس- 15: صفحة المبيعات الآجله - الجزء 2: حفظ فاتورة البيع الآجل في قاعدة البيانات



في الدرس الخامس عشر من برنامج ادارة المبيعات سنقوم بانشاء جدول جديد في قاعدة البيانات لحفظ وصل او فاتورة المبيعات الآجلة (الغير نقدية) داخله.










متطلبات هذا الدرس

  • إنشاء جدول جديد  tblForwardBills في قاعدة البيانات
  • زر الحفظ btnSaveToDB
  • زر فاتورة جديدة btnNewBill


أولا: إنشاء جدول جديد tblForwardBills في قاعدة البيانات.

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






ثانياً: زر الحفظ btnSavetoDB

  •  يتم داخل هذا الزر التاكد من ان رقم الفاتورة المراد تخزينها غير موجود سابقا داخل جدول المبيعات الآجله، ايضا التاكد من اضافة مواد لفاتورة المبيعات قبل الحفظ والا لن يتم الحفظ. بعد تحقق الشرطين اعلاه تتم عملية الحفظ.
  • بعد ان تتم عملية الحفظ يتم ايضا تحديت رقم الوصل المخزن سابقا داخل جدول BillID برقم فاتورة جديد لاستخدمه كرقم فاتورة جديد لعملية بيع جديدة.

Private Sub btnSaveToDB_Click(sender As Object, e As EventArgs) Handles btnSaveToDB.Click

        ' للتأكد من عدم تكرار رقم الفاتورة مرة ثانية

        Dim daCheckID As New OleDbDataAdapter

        Dim dtCheckID As New DataTable

        daCheckID = New OleDbDataAdapter("Select * from tblForwardBills Where Bill_ID = " & tbBillNo.Text, con)

        daCheckID.Fill(dtCheckID)

        If dtCheckID.Rows.Count <> 0 Then

            MsgBox("رقم الوصل محفوظ سابقاً داخل قاعدة البيانات", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً .. لم يتم الحفظ")

            Return

        Else

            If dgvBill.Rows.Count = 0 Then  ' للتأكد من إضافة مواد للفاتورة

                MsgBox("يرجى إضافة مادة واحدة على الاٌقل لأتمام عملية الحفط", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً .. لم يتم الحفظ")

                Return

            End If

            Dim d, m, y As String

            d = cbDay.Text

            m = cbMonth.Text

            y = cbYear.Text

            BillDate = d & "-" & m & "-" & y

 

            Dim dp, mp, yp As String

            dp = cbPayDay.Text

            mp = cbPayMonth.Text

            yp = cbPayYear.Text

            BillPaymentDate = dp & "-" & mp & "-" & yp

' خزن الفاتورة داخل جدول المبيعات الآجلة

            For Each Row As DataGridViewRow In dgvBill.Rows

               Using cmd As New OleDbCommand("INSERT INTO tblForwardBills (Customer_Name, Bill_ID, Bill_Date, Item_Name, Units, Unit_Price, Total,Paid_Amount,Remaining_Amount,Not_Status, Payment_Date)

                                           VALUES (@Customer_Name, @Bill_ID, @Bill_Date, @Item_Name,@Units, @Unit_Price, @Total,@Paid_Amount,@Remaining_Amount,@Not_Status, @Payment_Date)", con)

 

             cmd.Parameters.AddWithValue("@Customer_Name", tbPurchaserName.Text)

             cmd.Parameters.AddWithValue("@Bill_ID", tbBillNo.Text)

             cmd.Parameters.AddWithValue("@Bill_Date", BillDate)

             cmd.Parameters.AddWithValue("@Item_Name", Row.Cells("ItemName").Value)

             cmd.Parameters.AddWithValue("@Units", Row.Cells("No").Value)

             cmd.Parameters.AddWithValue("@Unit_Price", Row.Cells("Price").Value)

             cmd.Parameters.AddWithValue("@Total", Row.Cells("Total").Value)

             cmd.Parameters.AddWithValue("@Paid_Amount", tbAmountPaid.Text)

             cmd.Parameters.AddWithValue("@Remaining_Amount", lbRemainingAmount.Text)

 

                    If cbNotifications.Checked = True Then

                        cmd.Parameters.AddWithValue("@Not_Status", "Yes")

                        cmd.Parameters.AddWithValue("@Payment_Date", BillPaymentDate)

                    Else

                        cmd.Parameters.AddWithValue("@Not_Status", "No")

                        cmd.Parameters.AddWithValue("@Payment_Date", "-")

 

                    End If

 

 

 

                    cmd.CommandType = CommandType.Text

                    cmd.CommandTimeout = 420

                    con.Open()

                    cmd.ExecuteNonQuery()

                    con.Close()

 

                End Using

 

            Next

' تحديث رقم الفاتورة المخزن سابقا بالرقم الجديد

            Using cmdUpdate As New OleDbCommand("UPDATE tblBillID SET LastID = @LastID WHERE ID =@ID", con)

                cmdUpdate.Parameters.AddWithValue("@LastID", CInt(tbBillNo.Text))

                cmdUpdate.Parameters.AddWithValue("@ID", 1)

 

                cmdUpdate.CommandType = CommandType.Text

                cmdUpdate.CommandTimeout = 420

                con.Open()

                cmdUpdate.ExecuteNonQuery()

                con.Close()

            End Using

 

            btnNewBill.Enabled = True

            MsgBox("تم حفظ الوصل بنجاح", vbMsgBoxRight + MsgBoxStyle.Information, "جاري الحفظ")

 

        End If

    End Sub


  • ثالثاً: زر فاتورة جديدة btnNewBill

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

Private Sub btnNewBill_Click(sender As Object, e As EventArgs) Handles btnNewBill.Click

    Dim msgPrint As MsgBoxResult = MessageBox.Show("هل تريد انشاء فاتورة جديدة", "تنبيه ", MessageBoxButtons.YesNo, MessageBoxIcon.Information)

        If msgPrint = MsgBoxResult.Yes Then

            dgvBill.Rows.Clear()

            Dim No As Integer = CInt(tbBillNo.Text + 1)

            tbBillNo.Text = CStr(No)

            btnNewBill.Enabled = False

            tbAmountPaid.Clear()

            lbRemainingAmount.Text = "0"

        Else

            Return

        End If

 

    End Sub



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

يمكنكم متابعة الدرس عن طريق اليوتيوب





شرح عرض الفواتير- برنامج ادارة المطاعم
https://youtu.be/pvGbqhxwo5o
عرض الفواتير حسب رقم الفاتورة،تأريخ معين،بين تأريخين - برنامج ادارة المطاعم
https://youtu.be/Gnbveum_erI
عرض الفواتير الشهر,فواتير الخصم وبدون خصم - برنامج ادارة المطاعم
https://youtu.be/8d2_ea8CRgk
عرض الفواتير اليوم , الأمس والأسبوع - برنامج ادارة المطاعم
https://youtu.be/_GkYftUyJgU
برنامج إدارة المبيعات: الدرس - 4 : صفحة البيع النقدي - ج 1: عرض الموجودات داخل فورم البيع النقدي
https://youtu.be/TMZwavXZGMs
برنامج إدارة المبيعات: الدرس - 5 : صفحة البيع النقدي - ج 2: إضافة المواد الى فاتورة البيع
https://youtu.be/J90pkxjhS70
برنامج إدارة المبيعات: الدرس - 6 : صفحة البيع النقدي - ج 3: إلغاء الفاتورة - حذف مواد من الفاتورة
https://youtu.be/dCA-rSErZoU
برنامج إدارة المبيعات: الدرس - 7 : صفحة البيع النقدي - ج 4:برمجة رقم الوصل - تأريخ الوصل-
https://youtu.be/J1Zm2mlsbCw
برنامج إدارة المبيعات: الدرس - 8 : صفحة البيع النقدي - ج 5:حفظ معلومات الوصل في قاعدة البيانات
https://youtu.be/pOX5ZGcsjpM

قوائم تشغيل قد تهمك 🎬
برنامج إدارة المطاعم - Vb.net and MS Access https://youtube.com/playlist?list=PLJ_b4a1hzeO_8w9hKbLq_FvhYquVLynqk دورة مايكروسوفت اكسس Microsoft Access https://www.youtube.com/playlist?list=PLJ_b4a1hzeO8kBfZzpjYGVB-i1dgrGyWW دورة ربط الفيجوال بيسك بقواعد البيانات (SQL Server - Access) https://www.youtube.com/playlist?list=PLJ_b4a1hzeO9-R7JTfRFsmHXaWhWaXTVP دورة تعلم الفيحوال بيسك (vb.net) https://www.youtube.com/playlist?list=PLJ_b4a1hzeO_qAeBJbFZlTWwLhqqpIMXk

للتواصل https://www.facebook.com/Info.AliAlhadithy #المبيعات #المدينون #مبيعات_غير_نقدية #مبيعات_آجلة #مبيعات_نقدية #حساب_المبيعات #فاتورة_ييع


تعليقات

المشاركات الشائعة من هذه المدونة

برنامج إدارة المطاعم - الدرس الثالث والعشرون والأخير: برمجة صلاحيات المستخدمين

برنامج إدارة المبيعات - الدرس الأول :- صفحة الموجودات - الجزء 1 - إنشاء جدول الموجوادت وعرضه بالفيجوال بيسك

دورة Microsoft Access - الدرس الثامن: انشاء وتوزيع صلاحيات التحكم للمستخدمين :