تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل رصيد العميل بعد حفظ الفاتورة
#1
السلام عليكم اخوانى الكرام

عندى فى شاشة العملاء حقل مخصص لرصيد العميل وعند استدعاء العميل فى شاشة الفاتورة وضعت تشيك بوكس لتحديد اذا كان العميل لة رصيد فيتم خصم الفاتورة من رصيدة المسجل لدية وذلك من خلال الضغط true على التشيك بوكس
وهذا هو الكود تم استدعائة فى زر الحفظ وقبل اجراء الحفظ وضعت الكود وعند الضغط لا تحصل معايا مشكلة ويتم حفظ الفاتورة ولكن لا يعمل اب ديت لرصيد العميل فى جدول العملاء

فارجو الايضاح والرد وشكرا لكم 

كود :
Try
           '===============================================================
           If chkcustomerbalance.Checked = True Then
               Dim balancenew2, invamo, cusbalan As Double
               invamo = Val(InvoiceAmount.Text)
               cusbalan = Val(CustomerBalanceBill.Text)
               balancenew2 = invamo - cusbalan

               If con.State = ConnectionState.Closed Then con.Open()

               Dim cmd3 As New SqlCommand
               cmd3.Connection = con
               cmd3.CommandType = CommandType.Text
               cmd3.CommandText = "UPDATE Customers SET CustomerBalance=@CustomerBalance WHERE CustomerName=@CustomerName"
               cmd3.Parameters.AddWithValue("@CustomerBalance", balancenew2)
               cmd3.Parameters.AddWithValue("@CustomerName", CustomerID.Text)
               cmd3.ExecuteScalar()
               con.Close()
           End If
           '===============================================================
           Insert_Sales(InvoicID.Text, InvoicDate.Value, CustomerID.Text, InvoiceAmount.Text, ItemsNo.Text, EmpID.Text)
           Insert_SalesDetails()
           LoseQty()
       Catch
           Exit Sub
       End Try
الرد }}}
تم الشكر بواسطة:
#2
يرجى الرد من فضلكم
الرد }}}
تم الشكر بواسطة:
#3
(26-02-19, 08:09 PM)mostafa nada كتب : يرجى الرد من فضلكم

اخي الفاضل موضوعك ليس كود تطلبه وتقوم بنسخة ولصقة وخلاص ..

موضوعك يجب ان تنتبه لأنه يحتوي على عمليتين وكلها مالية بمعنى ...

زيادة رصيد حساب + خصم رصيد حساب ؟

لنفرض ان عملية واحدة تمت بنجاح وقبل تنفيذ العملية الثانية حصل مثلاً إنقطاع الكهرباء او احد قام بفصل الكهرباء عن الجهاز أو أي سبب آخر ..

هنا تحصل كارثة ..

الأفضل في هذه العملية ،، تستخدم (transaction)


أقرأ هنا عن الموضوع
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة:
#4
(26-02-19, 09:11 PM)حريف برمجة كتب :
(26-02-19, 08:09 PM)mostafa nada كتب : يرجى الرد من فضلكم

اخي الفاضل موضوعك ليس كود تطلبه وتقوم بنسخة ولصقة وخلاص ..

موضوعك يجب ان تنتبه لأنه يحتوي على عمليتين وكلها مالية بمعنى ...

زيادة رصيد حساب + خصم رصيد حساب ؟

لنفرض ان عملية واحدة تمت بنجاح وقبل تنفيذ العملية الثانية حصل مثلاً إنقطاع الكهرباء او احد قام بفصل الكهرباء عن الجهاز أو أي سبب آخر ..

هنا تحصل كارثة ..

الأفضل في هذه العملية ،، تستخدم (transaction)


أقرأ هنا عن الموضوع




اخى الفاضل انت للاسف لم يتضح لك الكود او انك مفهمتش انا اقصد اية 
انا هنا فى الاول لا اتعامل فى الكود بفيزا او حولات بنكية من والى !
ثانيا انا هنا اعمل على تحديث فقط جدول العملاء وذلك عند الضغط على زر حفظ الفاتورة بشرط انا تم النقر على التشيك بوكس الخاص باذا كان العميل يرديد ان يخصم مبلغ الفاتورة من الرصيد الخاص بى فى العملاء 

وعلى سبيل المثال : اذا كان هذا العميل هو فى حسابة مسبقاً 500 ج قام بدفعها مقدما بدون ان ياخذ بيها شى 
وبعد كدة جه عمل فاتورة وثمن هذة الفاتورة هى 300ج وهنا عند حفظ الفاتورة موظف الكاشير او المحاسب يسأل العميل اذا كان يريد دفع الفاتورة وبدون خصم رصيدة الموجود مسبقا وهو ال 500ج ام لا اذا وافق فعند الضغط على True فى التشيك بوكس يخصم ال 300 ج  من رصيد الموجود وهو ال 500 ج وبعد ذلك يتم عملية التحديث للمبلغ ويصبح 200ج !!!
اذا كان غير ذلك واراد العميل ان يدفع ثمن الفاتورة فيفضل رصيدة زى ماهو بدون خصم!!!
اتمنى ان تكون فهمتنى اخى الكريم وكل ما فى الموضوع هو اريد ان استعلم بان هذا الكود فى خطأ ام لا مع العلم ان هو بيتم حفظ الفاتورة وبدون اجراء التحديث الخاص بمبلغ العميل 
الرد }}}
تم الشكر بواسطة:
#5
اذا ارفقت مثال فقط للجزئية المطلوب تعديلها ،، ستجد الحل بشكل اسرع .
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة:
#6
وعليكم السلام ورحمة الله وبركاته

مرحباً اخى mostafa nada

اولاً راجع معى كلاً من التالى

1- بخصوص هذا الجزء من الكود
كود :
UPDATE Customers SET CustomerBalance=@CustomerBalance WHERE CustomerName=@CustomerName

2- وايضاً هنا
كود :
cmd3.Parameters.AddWithValue("@CustomerName", CustomerID.Text)

ثانياً لماذا لم يتم تحديث رصيد العميل بالقيمة الجديدة
هل لاحظت فى الاسطر بالاعلى التى اشرت اليها

يتجد فى كود التحديث تستدعى العميل من خلال CustomerName
اى من خلال اسم العميل
بينما انت تقوم باعطاء قيمة اسم العميل من خلال CustomerID.Text
تماماً القيمة هى رقم العميل وليس اسم العميل

فلحل المشكلة كل ما عليك تحويل الاسطر المذكورة الى هذا النحو
كود :
UPDATE Customers SET CustomerBalance=@CustomerBalance WHERE CustomerID=@CustomerID

لا اعلم اذا كان كود العميل عبارة عن CustomerID ام انه ID فقط فقم بتغيير المسما طبقاً لما لديك
من ثم التالى
كود :
cmd3.Parameters.AddWithValue("@CustomerID", CustomerID.Text)

بكده ستكون قمت بحل المشكلة بامر الله

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: mostafa nada
#7
(27-02-19, 03:47 AM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته

مرحباً اخى mostafa nada

اولاً راجع معى كلاً من التالى

1- بخصوص هذا الجزء من الكود
كود :
UPDATE Customers SET CustomerBalance=@CustomerBalance WHERE CustomerName=@CustomerName

2- وايضاً هنا
كود :
cmd3.Parameters.AddWithValue("@CustomerName", CustomerID.Text)

ثانياً لماذا لم يتم تحديث رصيد العميل بالقيمة الجديدة
هل لاحظت فى الاسطر بالاعلى التى اشرت اليها

يتجد فى كود التحديث تستدعى العميل من خلال CustomerName
اى من خلال اسم العميل
بينما انت تقوم باعطاء قيمة اسم العميل من خلال CustomerID.Text
تماماً القيمة هى رقم العميل وليس اسم العميل

فلحل المشكلة كل ما عليك تحويل الاسطر المذكورة الى هذا النحو
كود :
UPDATE Customers SET CustomerBalance=@CustomerBalance WHERE CustomerID=@CustomerID

لا اعلم اذا كان كود العميل عبارة عن CustomerID ام انه ID فقط فقم بتغيير المسما طبقاً لما لديك
من ثم التالى
كود :
cmd3.Parameters.AddWithValue("@CustomerID", CustomerID.Text)

بكده ستكون قمت بحل المشكلة بامر الله

تحياتى لك
وتمنياتى لك التوفيق

شكرا لك اخى الكريم بالفعل تم حل المشكلة .. جزاك الله كل خير على التوضيح والشرك وبارك الله فيك
الرد }}}
تم الشكر بواسطة:
#8
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:
#9
(27-02-19, 02:34 AM)mostafa nada كتب :
(26-02-19, 09:11 PM)حريف برمجة كتب :
(26-02-19, 08:09 PM)mostafa nada كتب : يرجى الرد من فضلكم

اخي الفاضل موضوعك ليس كود تطلبه وتقوم بنسخة ولصقة وخلاص ..

موضوعك يجب ان تنتبه لأنه يحتوي على عمليتين وكلها مالية بمعنى ...

زيادة رصيد حساب + خصم رصيد حساب ؟

لنفرض ان عملية واحدة تمت بنجاح وقبل تنفيذ العملية الثانية حصل مثلاً إنقطاع الكهرباء او احد قام بفصل الكهرباء عن الجهاز أو أي سبب آخر ..

هنا تحصل كارثة ..

الأفضل في هذه العملية ،، تستخدم (transaction)


أقرأ هنا عن الموضوع




اخى الفاضل انت للاسف لم يتضح لك الكود او انك مفهمتش انا اقصد اية 
انا هنا فى الاول لا اتعامل فى الكود بفيزا او حولات بنكية من والى !
ثانيا انا هنا اعمل على تحديث فقط جدول العملاء وذلك عند الضغط على زر حفظ الفاتورة بشرط انا تم النقر على التشيك بوكس الخاص باذا كان العميل يرديد ان يخصم مبلغ الفاتورة من الرصيد الخاص بى فى العملاء 

وعلى سبيل المثال : اذا كان هذا العميل هو فى حسابة مسبقاً 500 ج قام بدفعها مقدما بدون ان ياخذ بيها شى 
وبعد كدة جه عمل فاتورة وثمن هذة الفاتورة هى 300ج وهنا عند حفظ الفاتورة موظف الكاشير او المحاسب يسأل العميل اذا كان يريد دفع الفاتورة وبدون خصم رصيدة الموجود مسبقا وهو ال 500ج ام لا اذا وافق فعند الضغط على True فى التشيك بوكس يخصم ال 300 ج  من رصيد الموجود وهو ال 500 ج وبعد ذلك يتم عملية التحديث للمبلغ ويصبح 200ج !!!
اذا كان غير ذلك واراد العميل ان يدفع ثمن الفاتورة فيفضل رصيدة زى ماهو بدون خصم!!!
اتمنى ان تكون فهمتنى اخى الكريم وكل ما فى الموضوع هو اريد ان استعلم بان هذا الكود فى خطأ ام لا مع العلم ان هو بيتم حفظ الفاتورة وبدون اجراء التحديث الخاص بمبلغ العميل 

ممكن توضح يخصم 300 من أي حساب ؟

أيضا يضيف 300 إلى أي حساب ؟
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: