برنامج إدارة المبيعات: الدرس - 14: صفحة المبيعات الآجله - الجزء1:حساب قيمة البيع الآجل - أشعار السداد
في الدرس الرابع عشر من برنامج ادارة المبيعات سنقوم ببرمجة صفحة او فورم المبيعات الآجلة (المبيعات الغير نقدية)

- الجزء الاول: هو اضافة نفس الادوات التي استخدمت في فورم المبيعات النقدية الى فورم المبيعات الآجلة واجراء تعديل على بعض الاكواد لعرض المراد بيعها داخل الداتاكردفيو الخاصة بطباعة الوصل او الفاتورة او حفظه داخل قاعدة البيانات
- الجزء الثاني: في هذا الجزء يتم اجراء العمليات الحسابية الخاصة بعلميات البيع الاجل سواء كان كامل البيع بالآجل او سداد جزء من قيمة المواد والباقي يكون آجلز
أولا: الجزء الاول
يرجى مراجعة الدروس التالية لمعرفة كيفية برمجة الادوات المنقولة من فورم المبيعات النقدية:
ثانياً: الجزء الثاني.
- يتم عرض مبلغ الفاتورة او الوصل الكلي الذي تم احتسابه سابقا داخل lbBillAmount الخاص بمبلغ الفاتورة الكلي عند النقر على زر btnAddToBill
Private Sub
btnAddtoBill_Click(sender As Object, e As EventArgs) Handles btnAddToBill.Click
If
tbItemName.Text = "" Then
MsgBox("يرجى التأكد من إدخال اسم المادة", vbMsgBoxRight
+ MsgBoxStyle.Critical, "عذراً .. اسم المادة مطلوب")
tbItemName.Focus()
Return
End If
If
tbSellingPrice.Text = "" Then
MsgBox("يرجى التأكد من إدخال سعر البيع", vbMsgBoxRight
+ MsgBoxStyle.Critical, "عذراً .. سعر البيع مطلوب")
tbSellingPrice.Focus()
Return
End If
If tbNo.Text = "" Then
MsgBox("يرجى التأكد من إدخال عدد الوحدات", vbMsgBoxRight
+ MsgBoxStyle.Critical, "عذراً .. عدد الوحدات مطلوب")
tbBillNo.Focus()
Return
End If
Try
For i = 0 To
dgvBill.Rows.Count - 1
If
dgvBill.Rows(i).Cells("ItemName").Value = tbItemName.Text Then
MsgBox("المادة التي أخترتها مضافة فعلاً الى فاتورة البيع", vbMsgBoxRight
+ MsgBoxStyle.Information, "عذراً..")
Return
End If
Next
If
dgvBill.Rows.Count <> 0 Then
Dim lastrow =
dgvBill.Rows.Count - 1
If
dgvBill.Rows(lastrow).Cells("ItemName").Value = "المجموع" Then
dgvBill.Rows.RemoveAt(lastrow)
End If
End If
dgvBill.Rows.Add()
Dim NewRow =
dgvBill.Rows.Count - 1
dgvBill.Rows(NewRow).Cells("ItemName").Value =
tbItemName.Text
dgvBill.Rows(NewRow).Cells("Price").Value =
tbSellingPrice.Text
dgvBill.Rows(NewRow).Cells("No").Value =
tbNo.Text
dgvBill.Rows(NewRow).Cells("Total").Value = CInt(tbSellingPrice.Text * tbNo.Text)
dgvBill.Rows.Add()
Dim RowTotal =
dgvBill.Rows.Count - 1
dgvBill.Rows(RowTotal).Cells("ItemName").Value = "المجموع"
Dim sumRowTotal As Double
sumRowTotal = 0
For Each r As
DataGridViewRow In dgvBill.Rows
sumRowTotal
+= r.Cells("Total").Value
Next
dgvBill.Rows(RowTotal).Cells("No").Value = "-"
dgvBill.Rows(RowTotal).Cells("Price").Value = "-"
dgvBill.Rows(RowTotal).Cells("Total").Value =
sumRowTotal
lbBillAmount.Text = CStr(sumRowTotal)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End
Sub
MsgBox("يرجى التأكد من إدخال اسم المادة", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً .. اسم المادة مطلوب")
Return
End If
MsgBox("يرجى التأكد من إدخال سعر البيع", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً .. سعر البيع مطلوب")
Return
End If
If tbNo.Text = "" Then
MsgBox("يرجى التأكد من إدخال عدد الوحدات", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً .. عدد الوحدات مطلوب")
Return
End If
MsgBox("المادة التي أخترتها مضافة فعلاً الى فاتورة البيع", vbMsgBoxRight + MsgBoxStyle.Information, "عذراً..")
End If
Next
Dim lastrow = dgvBill.Rows.Count - 1
dgvBill.Rows.RemoveAt(lastrow)
End If
End If
Dim NewRow = dgvBill.Rows.Count - 1
Dim RowTotal = dgvBill.Rows.Count - 1
sumRowTotal = 0
dgvBill.Rows(RowTotal).Cells("Price").Value = "-"
dgvBill.Rows(RowTotal).Cells("Total").Value = sumRowTotal
End Sub

- يتم احتساب المبلغ المتبقي في حال سدادجزء من القيمة المبيعات عن طريق مربع نص tbAmountPaid وذلك عن طريق كتابة الكود داخل حدث ال tbAmountPaid_TextChanged
Private Sub tbAmountPaid_TextChanged(sender As Object, e As EventArgs) Handles tbAmountPaid.TextChanged
Try
If tbAmountPaid.Text = "" Then
tbAmountPaid.Text = "0"
End If
If lbBillAmount.Text = "0" Then
MsgBox("مجموع مبلغ الفاتورة غير متوفر", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً ")
tbAmountPaid.Text = "0"
Return
End If
Dim AmountPaid As Integer = CInt(tbAmountPaid.Text)
Dim BillAmount As Integer = CInt(lbBillAmount.Text)
If AmountPaid >= BillAmount Then
MsgBox("المبلغ المسدد اكبر من مجموع الفاتورة ", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً ")
tbAmountPaid.Text = "0"
Return
Else
lbRemainingAmount.Text = CStr(BillAmount - AmountPaid)
End If
Catch ex As Exception
End Try
End Sub
If tbAmountPaid.Text = "" Then
tbAmountPaid.Text = "0"
End If
MsgBox("مجموع مبلغ الفاتورة غير متوفر", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً ")
Return
End If
MsgBox("المبلغ المسدد اكبر من مجموع الفاتورة ", vbMsgBoxRight + MsgBoxStyle.Critical, "عذراً ")
Return
Else
lbRemainingAmount.Text = CStr(BillAmount - AmountPaid)
Catch ex As Exception
End Sub
- اشعار السداد: يتم تحديد اشعار للسداد في حال تغيير حالة الاداة cbNotifications من False الى True وذلك عن النقر عليها ، فيتم تفعيل الادوات الخاصة بتحديد التاريخ
Private Sub
cbNotifications_CheckedChanged(sender As Object, e As EventArgs) Handles
cbNotifications.CheckedChanged
If
cbNotifications.Checked = True Then
cbPayDay.Enabled
= True
cbPayMonth.Enabled = True
cbPayYear.Enabled = True
End If
If
cbNotifications.Checked = False Then
cbPayDay.Enabled = False
cbPayMonth.Enabled = False
cbPayYear.Enabled = False
End If
End
Sub
Private Sub
cbNotifications_CheckedChanged(sender As Object, e As EventArgs) Handles
cbNotifications.CheckedChanged
If
cbNotifications.Checked = True Then
cbPayDay.Enabled
= True
cbPayMonth.Enabled = True
cbPayYear.Enabled = True
End If
If
cbNotifications.Checked = False Then
cbPayDay.Enabled = False
cbPayMonth.Enabled = False
cbPayYear.Enabled = False
End If
End Sub
- يتم عرض التاريخ داخل الادوات الخاصة بتاريخ السداد عن طريق الكود التالي
Private Sub
frmForwardSales_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim da As New OleDbDataAdapter("Select
ItemName, SellingPrice From QueryItemsProfit order by ID", con)
Dim dt As New DataTable
dt.Clear()
da.Fill(dt)
dgvItems.DataSource
= dt
With dgvItems
.Columns("ItemName").HeaderText = "اسم المادة"
.Columns("ItemName").Width = 300
.Columns("ItemName").HeaderCell.Style.Alignment
= DataGridViewContentAlignment.MiddleCenter
.Columns("SellingPrice").HeaderText = "سعر البيع "
.Columns("SellingPrice").Width = 100
.Columns("SellingPrice").DefaultCellStyle.Alignment
= DataGridViewContentAlignment.MiddleCenter
.Columns("SellingPrice").HeaderCell.Style.Alignment
= DataGridViewContentAlignment.MiddleCenter
End With
Dim daID As New
OleDbDataAdapter
Dim dtID As New DataTable
daID = New
OleDbDataAdapter("SELECT * FROM tblBillID where ID = 1", con)
daID.Fill(dtID)
Dim LastID As Integer =
dtID.Rows(0).Item("LastID")
Dim MaxID As Integer = LastID + 1
tbBillNo.Text = CStr(MaxID)
For d = 1 To 31
cbDay.Items.Add(d)
cbPayDay.Items.Add(d)
Next
cbDay.Text =
Today.Day
cbPayDay.Text = Today.Day
For m = 1 To 12
cbMonth.Items.Add(m)
cbPayMonth.Items.Add(m)
Next
cbMonth.Text =
Today.Month
cbPayMonth.Text = Today.Month +
1
For y = 2020 To 2050
cbYear.Items.Add(y)
cbPayYear.Items.Add(y)
Next
cbYear.Text =
Today.Year
cbPayYear.Text = Today.Year
End
Sub
dt.Clear()
da.Fill(dt)
dgvItems.DataSource = dt
With dgvItems
.Columns("ItemName").Width = 300
.Columns("SellingPrice").HeaderText = "سعر البيع "
.Columns("SellingPrice").Width = 100
Dim daID As New OleDbDataAdapter
daID = New OleDbDataAdapter("SELECT * FROM tblBillID where ID = 1", con)
Dim LastID As Integer = dtID.Rows(0).Item("LastID")
For d = 1 To 31
cbPayDay.Items.Add(d)
Next
cbDay.Text = Today.Day
cbPayDay.Text = Today.Day
For m = 1 To 12
cbPayMonth.Items.Add(m)
Next
cbMonth.Text = Today.Month
cbPayMonth.Text = Today.Month + 1
For y = 2020 To 2050
cbPayYear.Items.Add(y)
Next
cbYear.Text = Today.Year
cbPayYear.Text = Today.Year
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



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