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

- إنشاء جدول جديد tblForwardBills في قاعدة البيانات
- زر الحفظ btnSaveToDB
- زر فاتورة جديدة btnNewBill
يتم إنشاء جدول جديد داخل قاعدة البيانات واضافة الية الحقول التالية لتخزين معلومات الوصل او الفاتورة .
ثانياً: زر الحفظ 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
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
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



تعليقات
إرسال تعليق