تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود اضافه كميه كانت مباعه بعد حذف الفاتوره
#1
السلام عليكم
هل من طريقه عند حذف فاتوره مبيعات ارجاع الكميه المباعه اتوماتيكيا الى الكميه الموجوده فى المخزن من نفس الصنف
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته ،،

نفس طريقة خصم الكمية من المتجر عن البيع ....

تعمل حساب كمية الصنف الموجودة في الفاتورة وتعمل تحديث للكمية في المخزن كالتالي :

الكمية الموجودة في المخزن = الكمية الموجودة في المخزن + الكمية الموجوده في الفاتورة 


كود :
update table set itemquantity = itemquantity + 15 where itemcode=@itemcode
15 هنا مثلاً الكمية الموجوده في الفاتورة عند حذفها .
سوف اعمل مثال قريباً إن شاء الله
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , محمد كريّم
#3
تحتاج لعمل 2 arrays واحدة تاخذ جميع ارقام الباركود او ارقام السلع وواحدة تاخذ الكميات
وتقوم بعمل ميثود لتحديث الكميات عن طريق 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 IntegerByVal 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_qungetListOfbar(value)(i))
 
       Next

    End Sub 

الرد }}}
تم الشكر بواسطة: sendbad100 , ابراهيم ايبو , محمد كريّم
#4
اعتذر اخوتي عن الخروج قليلا من الموضوع الرئيسي


ماذا لو كنت تستخدم معادلة لحساب متوسط سعر الشراء؟
هل ستكون النتائج صحيحة في الجرد او في حساب الارباح بعد عملية الارجاع؟
خصوصا لو قمت بشراء/توريد كمية جديدة بين عملية البيع والارجاع؟

الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , Rabeea Qbaha
#5
السلام عليكم ورحمة الله وبركاته
فعلا هنا معضلة لان سعر متوسط الشراء سيتغير بناء على الكمية الموجودة في المخزن والكمية الموردة
وبعد عملية الارجاع سيزداد المخزون بمقدار الكمية المرتجعة 
وهنا كيف سيتم حساب متوسط سعر الشراء لان المرتجع سيكون بالسعر القديم
هل سيكون المرتجع عبارة عن كمية جديدة موردة ومن ثم سيتم حساب متوسط سعر شراء جديد؟
ام ان هذه الكمية المرتجعة تعتبر فقط حروج من المخزن ثم اعادة دخول مع الغاء فاتورة البيع؟
وماذا عن سعر الكمية المرتجعة هل ستحسب بالسعر القديم ام الجديد؟
وكيف سيتم حساب الارباح بالرغم ان عملية البيع لم تتم
اعتقد ان افضل حل هو اعتبار المرتجع كمية خرجت من المخزن ثم اعيدت  بالسعر القديم 
مع حذف فاتورة البيع وعدم ادخالها في  الحسابات 
اتمنى ان نسمع اجابات ممن لديهم خبرة 
دمتم بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: محمد كريّم , Rabeea Qbaha , Rabeea Qbaha


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اضافه سجل row جديد سلام و محبه2090 0 105 02-03-24, 11:04 PM
آخر رد: سلام و محبه2090
  عرض فورم اذا كانت القيمة 0 h2551996 6 681 11-01-23, 09:14 PM
آخر رد: h2551996
  الفاتوره الاكترونيه للمرحله الثانية الربط Kit909 6 1,636 29-10-22, 09:19 PM
آخر رد: Marayrezdh
  [VB.NET] كميه مباعه اكبر من كميه مخزنه ali_ahmed12 6 791 01-10-22, 08:43 PM
آخر رد: أبو خالد الشكري
  [سؤال] كود اضافه حسن الجلب 0 380 09-09-22, 09:57 PM
آخر رد: حسن الجلب
  التحكم بالبرنامج ( عند المستخدم ) عن طريق برنامج اخر (تعديل - حذف - اضافه - تغير كود) mohamedallams 2 1,145 06-09-22, 10:32 PM
آخر رد: رضوان الجماعي
  [سؤال] كيفيه اضافه ملف نصي الي قاعده بيانات اكسس حسن الجلب 1 650 02-08-22, 01:57 AM
آخر رد: سعود
  مشكله في اضافه رصيد والصرف فراس محي 4 1,110 20-04-22, 10:18 AM
آخر رد: فراس محي
  سوال عن اضافه كمبو بوكس الى الداتا جريد فيو alazhry 2 1,087 09-10-21, 06:45 PM
آخر رد: ahmed4
  [سؤال] عايز كود اضافه بيانات اخليه من نوع كومبوبوكس حسن الجلب 3 1,370 01-02-21, 12:56 AM
آخر رد: fghj3

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


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