برنامج إدارة المبيعات: الدرس - 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

ملاحضة: الكود المحدد باللون الاصفر هو الكود الجديد الخاص بالدرس الحالي 




  •  يتم احتساب المبلغ المتبقي في حال سدادجزء من القيمة المبيعات عن طريق مربع نص 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


  • اشعار السداد: يتم تحديد اشعار  للسداد في حال تغيير حالة الاداة 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 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

ملاحضة: الكود المحدد باللون الاصفر هو الكود الجديد الخاص بالدرس الحالي 


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

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





شرح عرض الفواتير- برنامج ادارة المطاعم
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 - الدرس الثامن: انشاء وتوزيع صلاحيات التحكم للمستخدمين :