09-03-19, 08:34 PM
09-03-19, 09:38 PM
وعليكم السلام ورحمة الله وبركاته ،،
نفس طريقة خصم الكمية من المتجر عن البيع ....
تعمل حساب كمية الصنف الموجودة في الفاتورة وتعمل تحديث للكمية في المخزن كالتالي :
الكمية الموجودة في المخزن = الكمية الموجودة في المخزن + الكمية الموجوده في الفاتورة
15 هنا مثلاً الكمية الموجوده في الفاتورة عند حذفها .
سوف اعمل مثال قريباً إن شاء الله
نفس طريقة خصم الكمية من المتجر عن البيع ....
تعمل حساب كمية الصنف الموجودة في الفاتورة وتعمل تحديث للكمية في المخزن كالتالي :
الكمية الموجودة في المخزن = الكمية الموجودة في المخزن + الكمية الموجوده في الفاتورة
كود :
update table set itemquantity = itemquantity + 15 where itemcode=@itemcodeسوف اعمل مثال قريباً إن شاء الله
09-03-19, 09:58 PM
تحتاج لعمل 2 arrays واحدة تاخذ جميع ارقام الباركود او ارقام السلع وواحدة تاخذ الكميات
وتقوم بعمل ميثود لتحديث الكميات عن طريق for loop .
الحصول على جميع ارقام الباركود للمتجات في الفاتوره :
الحصول على جميع الكميات :
الميثود الخاصه بجلب الكميات المسجله في المخزون للزيادة عليها :
الميثود الخاصه بتحديث البيانات في الجدول :
الميثود الخاصة في تحديث الكميات
وتقوم بعمل ميثود لتحديث الكميات عن طريق for loop .
الحصول على جميع ارقام الباركود للمتجات في الفاتوره :
PHP كود :
Public Function getListOfbar(ByVal IDInvoices As Integer) As List(Of String)
Dim output As New List(Of String)()
Try
If Conn.State = ConnectionState.Open Then
Conn.Close()
End If
Conn.Open()
Dim cmd As OleDbCommand = Conn.CreateCommand
cmd.CommandText = "Select MaterialBarCode from SalesHistory where IDInvoices=@IDInvoices"
cmd.Prepare()
cmd.Parameters.AddWithValue("@IDInvoices", IDInvoices)
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader
While dr.Read()
output.Add(dr.GetValue(0))
End While
dr.Close()
Catch ex As OleDbException
' Do some logging or something.
MessageBox.Show("There was an error accessing your data. DETAIL: " & ex.Message)
End Try
Return output
End Function
الحصول على جميع الكميات :
PHP كود :
Public Function getListOfqunt(ByVal IDInvoices As Integer) As List(Of Integer)
Dim output As New List(Of Integer)()
Try
If Conn.State = ConnectionState.Open Then
Conn.Close()
End If
Conn.Open()
Dim cmd As OleDbCommand = Conn.CreateCommand
cmd.CommandText = "Select Quantity from SalesHistory where IDInvoices=@IDInvoices"
cmd.Prepare()
cmd.Parameters.AddWithValue("@IDInvoices", IDInvoices)
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader
While dr.Read()
output.Add(dr.GetValue(0))
End While
dr.Close()
Catch e As OleDbException
' Do some logging or something.
MessageBox.Show("There was an error accessing your data. DETAIL: " & e.ToString())
End Try
Return output
End Function
الميثود الخاصه بجلب الكميات المسجله في المخزون للزيادة عليها :
PHP كود :
Dim qunt As Integer = 0
Private Sub getdata(ByVal barcode As String)
If Conn.State = ConnectionState.Open Then
Conn.Close()
End If
Conn.Open()
Dim cmd As OleDbCommand = Conn.CreateCommand
cmd.CommandText = "Select QuantityAvailable from Materials where MaterialBarCode=@p1"
cmd.Prepare()
cmd.Parameters.AddWithValue("@p1", barcode)
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader
With dr.Read()
qunt = dr.GetValue(0)
End With
dr.Close()
End Sub
الميثود الخاصه بتحديث البيانات في الجدول :
PHP كود :
Private Sub update_qunt(ByVal qunt As Integer, ByVal barcode As String)
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
Dim cmd As New OleDb.OleDbCommand
cmd.Connection = Conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "UPDATE Materials SET QuantityAvailable= @QuantityAvailable WHERE MaterialBarCode= @MaterialBarCode"
cmd.Parameters.AddWithValue("QuantityAvailable", qunt)
cmd.Parameters.AddWithValue("@MaterialBarCode", barcode)
cmd.ExecuteScalar()
Conn.Close()
End Sub
PHP كود :
Private Sub update_Mat(ByVal value As Integer)
For i As Integer = 0 To getListOfbar(value).Count - 1
getdata(getListOfbar(value)(i))
Dim new_qun As Integer = qunt + Val(getListOfqunt(value)(i))
update_qunt(new_qun, getListOfbar(value)(i))
Next
End Sub
09-03-19, 10:55 PM
اعتذر اخوتي عن الخروج قليلا من الموضوع الرئيسي
ماذا لو كنت تستخدم معادلة لحساب متوسط سعر الشراء؟
هل ستكون النتائج صحيحة في الجرد او في حساب الارباح بعد عملية الارجاع؟
خصوصا لو قمت بشراء/توريد كمية جديدة بين عملية البيع والارجاع؟
ماذا لو كنت تستخدم معادلة لحساب متوسط سعر الشراء؟
هل ستكون النتائج صحيحة في الجرد او في حساب الارباح بعد عملية الارجاع؟
خصوصا لو قمت بشراء/توريد كمية جديدة بين عملية البيع والارجاع؟
09-03-19, 11:46 PM
السلام عليكم ورحمة الله وبركاته
فعلا هنا معضلة لان سعر متوسط الشراء سيتغير بناء على الكمية الموجودة في المخزن والكمية الموردة
وبعد عملية الارجاع سيزداد المخزون بمقدار الكمية المرتجعة
وهنا كيف سيتم حساب متوسط سعر الشراء لان المرتجع سيكون بالسعر القديم
هل سيكون المرتجع عبارة عن كمية جديدة موردة ومن ثم سيتم حساب متوسط سعر شراء جديد؟
ام ان هذه الكمية المرتجعة تعتبر فقط حروج من المخزن ثم اعادة دخول مع الغاء فاتورة البيع؟
وماذا عن سعر الكمية المرتجعة هل ستحسب بالسعر القديم ام الجديد؟
وكيف سيتم حساب الارباح بالرغم ان عملية البيع لم تتم
اعتقد ان افضل حل هو اعتبار المرتجع كمية خرجت من المخزن ثم اعيدت بالسعر القديم
مع حذف فاتورة البيع وعدم ادخالها في الحسابات
اتمنى ان نسمع اجابات ممن لديهم خبرة
دمتم بخير