تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة
#1
انا تابعت دورة الاستاذ خالد السعداني في دورة المبيعات
بس هو مكملش ازاي اخصم من المخزن
ممكن يا جماعة تساعدوني
انا اسف
ده كود حفظ الفاتورة
    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click

        If state = "add" Then


            Dim StrInser As String = "Insert Into TBL_ORDERS (order_date, SalesMan, Des, ID_Customer) values(@order_date, @SalesMan , @Des, @ID_Customer)"
            cmd = New OleDb.OleDbCommand(StrInser, con)

            cmd.Parameters.Add(New OleDb.OleDbParameter("@order_date", OleDb.OleDbType.Date)).Value = DtOrder.Value.Date
            cmd.Parameters.Add(New OleDb.OleDbParameter("@SalesMan", OleDb.OleDbType.VarChar)).Value = txtSalesMan.Text
            cmd.Parameters.Add(New OleDb.OleDbParameter("@Des", OleDb.OleDbType.VarChar)).Value = txtDes.Text
            cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_Customer", OleDb.OleDbType.Integer)).Value = txtCustId.Text

            con.Open()
            cmd.ExecuteNonQuery()




            cmd = New OleDb.OleDbCommand("select max (id) from TBL_ORDERS", con)

            Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
            dr.Read()
            Dim Id_Order As Integer = dr(0)
            dr.Close()


            ''''''''

            Dim ID_Product, Qty As Integer
            Dim Price2, Amount As Double

            StrInser = "Insert into TBL_ORDER_DETALIS (ID_Product, id_order, qty, price2, amount) values (@ID_Product, @id_order, @qty, @price2, @amount) "



            For i As Integer = 0 To DGVProduct.RowCount - 2
                ID_Product = DGVProduct.Rows(i).Cells(0).Value
                Qty = DGVProduct.Rows(i).Cells(2).Value
                Price2 = DGVProduct.Rows(i).Cells(3).Value
                Amount = DGVProduct.Rows(i).Cells(4).Value

                cmd = New OleDb.OleDbCommand(StrInser, con)



                cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_Product", OleDb.OleDbType.Integer)).Value = ID_Product
                cmd.Parameters.Add(New OleDb.OleDbParameter("@id_order", OleDb.OleDbType.Integer)).Value = Id_Order
                cmd.Parameters.Add(New OleDb.OleDbParameter("@qty", OleDb.OleDbType.Integer)).Value = Qty
                cmd.Parameters.Add(New OleDb.OleDbParameter("@price2", OleDb.OleDbType.Currency)).Value = Price2
                cmd.Parameters.Add(New OleDb.OleDbParameter("@amount", OleDb.OleDbType.Currency)).Value = Amount

                cmd.ExecuteNonQuery()
            Next
            con.Close()
            MsgBox("تمت الإضافة بنجاح", MsgBoxStyle.Information, "الإضافة")

        Else

            Dim strUbdate As String = "update tbl_orders set order_date = @order_date, salesman = @salesman, des = @des, id_customer = @id_customer where ID = " & Me.ID_ORDER
            cmd = New OleDb.OleDbCommand(strUbdate, con)

            cmd.Parameters.Add(New OleDb.OleDbParameter("@order_date", OleDb.OleDbType.Date)).Value = DtOrder.Value.Date
            cmd.Parameters.Add(New OleDb.OleDbParameter("@SalesMan", OleDb.OleDbType.VarChar)).Value = txtSalesMan.Text
            cmd.Parameters.Add(New OleDb.OleDbParameter("@Des", OleDb.OleDbType.VarChar)).Value = txtDes.Text
            cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_Customer", OleDb.OleDbType.Integer)).Value = txtCustId.Text

            con.Open()
            cmd.ExecuteNonQuery()




            cmd = New OleDb.OleDbCommand("select max (id) from TBL_ORDERS", con)

            Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
            dr.Read()
            Dim Id_Order As Integer = dr(0)
            dr.Close()


            cmd = New OleDb.OleDbCommand("Delete from TBL_ORDER_DETALIS where id_order = " & Id_Order, con)
            cmd.ExecuteNonQuery()


            ''''''''

            Dim ID_Product, Qty As Integer
            Dim Price2, Amount As Double

            strUbdate = "Insert into TBL_ORDER_DETALIS (ID_Product, id_order, qty, price2, amount) values (@ID_Product, @id_order, @qty, @price2, @amount) "



            For i As Integer = 0 To DGVProduct.RowCount - 2
                ID_Product = DGVProduct.Rows(i).Cells(0).Value
                Qty = DGVProduct.Rows(i).Cells(2).Value
                Price2 = DGVProduct.Rows(i).Cells(3).Value
                Amount = DGVProduct.Rows(i).Cells(4).Value

                cmd = New OleDb.OleDbCommand(strUbdate, con)



                cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_Product", OleDb.OleDbType.Integer)).Value = ID_Product
                cmd.Parameters.Add(New OleDb.OleDbParameter("@id_order", OleDb.OleDbType.Integer)).Value = Id_Order
                cmd.Parameters.Add(New OleDb.OleDbParameter("@qty", OleDb.OleDbType.Integer)).Value = Qty
                cmd.Parameters.Add(New OleDb.OleDbParameter("@price2", OleDb.OleDbType.Currency)).Value = Price2
                cmd.Parameters.Add(New OleDb.OleDbParameter("@amount", OleDb.OleDbType.Currency)).Value = Amount

                cmd.ExecuteNonQuery()
            Next
            con.Close()
            MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.Information, "التعديل")



        End If










    End Sub
الرد }}}
تم الشكر بواسطة:
#2
اخي الغالي فى هذه الدورة لم ينشيء الاستاذ الغالى خالد السعداني برنامج احترافى ولاكن المقصود منه هو توضيح الصورة من خلال مثال عملي للتطبيق على التعامل مع قواعد البيانات من خلال الدوت نت
المصود هنا انك يمكنك في ضوء ما شرح وقدم فى الدورة عمل التطبيق كما يحلوا لك (الابتكار) بمعني ان الاستاذ خالد وضع كمية فى المخزن مسبقا لكي يقارن الفاتورة بالكمية المتوافرة واختصر الموضوع لتصل الفكرة
ولكن فى الحقيقة المخزن تتم عليه 4 حركات وهي
اضافة - صرف - مرتجع صرف - مرتجع اضافة--- ومن خلال هذه الحركات ياتي الرصيد الذي يتم مقارنة لحظة الصرف
الخلاصة : الموضوع بسيط سوف تنشئ جدول للحركة طبقا للحالات
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم