RE: مشروع احتساب الضريبة على الراتب - سلام م - 29-11-19
شكرا اخي الكريم لكن حاولت التعديل للشرائح ولم انجح بدي عذبك معي سأرسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
أول ٥٠٠٠ تخضع ل ٥ بالمئة وثاني ٥٠٠٠ ٧ بالمئة وثثثالث ٥٠٠٠ ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ ومافوق يخضع ٢٢ بالمئةة وشكرا لك عم عذبك الاكواد التي ارسلتها لي اشتغلت تمام
اخي شكرا لكك تما اشتغلت الاكواد لكن حاولت اعدل عليها ولم استطع سارسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
بعدها ٥٠٠٠ تخخضع ٥ بالمئة ثم ٥٠٠٠ بعدها ٧ بالمئة ثم ٥٠٠٠ بعدها ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ وما اكثر ييخضع ٢٢ بالمئة
(29-11-19, 03:49 AM)ابو ليلى كتب : حيث ذلك صمم نموذج بسيط وضع عليه الادوات مع المسميات كما في الصورة
ضع الكود التالي لديك
PHP كود :
Dim Salary As Integer = Nothing Dim NewSalary As Integer = Nothing Dim LastDisc As Integer = Nothing Dim Totaldisc As Integer = Nothing
Private Sub btnExc_Click(sender As Object, e As EventArgs) Handles btnExc.Click Salary = If(Int32.TryParse(txtSalary.Text.ToString, 0), txtSalary.Text.ToString, 0) If Salary < 15000 Then MsgBox("لايمكن ان يكون الراتب اقل من 15000") ClearAll() txtSalary.Focus() Exit Sub End If
NewSalary = Salary - 15000 'اول 15000 معفاة
Select Case NewSalary Case <= 5000 'شريحة اولى t1.Text = NewSalary * 0.05 t2.Text = 0 t3.Text = 0 t4.Text = 0 Case 5001 To 10000 'شريحة ثانية t1.Text = 250 NewSalary -= 5000 t2.Text = NewSalary * 0.07 t3.Text = 0 t4.Text = 0 Case 10001 To 15000 'شريحة ثالثة t1.Text = 250 t2.Text = 350 NewSalary -= 10000 t3.Text = NewSalary * 0.11 t4.Text = 0 Case >= 15000 'شريحة اخيرة t1.Text = 250 t2.Text = 350 t3.Text = 550 NewSalary = NewSalary - 15000 LastDisc = (NewSalary * 0.22) t4.Text = LastDisc NewSalary = NewSalary - LastDisc End Select
Totaldisc = Val(t1.Text) + Val(t2.Text) + Val(t3.Text) + Val(t4.Text) txtTotalDiscount.Text = Totaldisc txtResult.Text = Salary - Totaldisc
End Sub
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click ClearAll() End Sub
Private Sub ClearAll() For Each ctrl As Control In GroupBox1.Controls If TypeOf (ctrl) Is TextBox Then ctrl.Text = String.Empty End If Next txtSalary.Focus() End Sub
Private Sub txtSalary_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtSalary.KeyPress If Char.IsDigit(e.KeyChar) = False And Char.IsControl(e.KeyChar) = False Then e.Handled = True End If End Sub
اعلمنا بالنتيجة
بالتوفيق
اخي شكرا لكك تما اشتغلت الاكواد لكن حاولت اعدل عليها ولم استطع سارسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
بعدها ٥٠٠٠ تخخضع ٥ بالمئة ثم ٥٠٠٠ بعدها ٧ بالمئة ثم ٥٠٠٠ بعدها ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ وما اكثر ييخضع ٢٢ بالمئة
RE: مشروع احتساب الضريبة على الراتب - EMADSSS - 29-11-19
شكرا للاخ ابو ليلى قمت بتجريب الاكواد واشتغلت جيدا ياريت تكرم علينا وتعدل الاكواد كما اوضح السيد سلام وفق الشرائح التي وضعها مؤخرا ولك الشكر
RE: مشروع احتساب الضريبة على الراتب - ابو ليلى - 29-11-19
السلام عليكم و رحمة الله و بركاته
الشريحة الاخيرة عليها خلاف (اكبر 75000) المفروض ان تكون اكبر من 60000 لان هناك 15000 معفاة
وكذلك هناك تسلسل منطقي للحساب مفقود في هذا النظام , المفروض لا يتم الانتقال من شريحة الى شريحة حتى يكتمل نصاب الشريحة (شرائح صغيرة بخصم كبير و شرائح كبيرة بخصم صغير ) لا يوجد الية واضحة للحساب (عباقرة المالية )
-------------------------------------------------------------------------------
على اي حال صديقي هذا التعديل وفق المطلوب
اضف صناديق نصوص الى النموئج السابق (من t1 الى t8) بحيث تتوافق مع عدد الشرائح
انسخ الكود وضعه لديك
كود :
Dim Salary As Integer = Nothing
Dim NewSalary As Integer = Nothing
Private Sub btnExc_Click(sender As Object, e As EventArgs) Handles btnExc.Click
Salary = If(Int32.TryParse(txtSalary.Text.ToString, 0), txtSalary.Text.ToString, 0)
If Salary < 15000 Then
MsgBox("لايمكن ان يكون الراتب اقل من 15000")
ClearAll()
txtSalary.Focus()
Exit Sub
End If
NewSalary = Salary - 15000 'اول 15000 معفاة
Select Case NewSalary
Case <= 5000 'شريحة اولى على 5000 بخصم 5
t1.Text = NewSalary * 0.05
ZeroTxt({"t2", "t3", "t4", "t5", "t6", "t7", "t8"})
Case 5001 To 10000 'شريحة ثانية على 5000 بخصم 7
t1.Text = 250
NewSalary -= 5000
t2.Text = NewSalary * 0.07
ZeroTxt({"t3", "t4", "t5", "t6", "t7", "t8"})
Case 10001 To 15000 'شريحة ثالثة على 5000 بخصم 9
t1.Text = 250
t2.Text = 350
NewSalary -= 10000
t3.Text = NewSalary * 0.09
ZeroTxt({"t4", "t5", "t6", "t7", "t8"})
Case 15001 To 23000 'شريحة رابعة على 8000 بخصم 11
t1.Text = 250
t2.Text = 350
t3.Text = 550
NewSalary = NewSalary - 15000
t4.Text = NewSalary * 0.11
ZeroTxt({"t5", "t6", "t7", "t8"})
Case 23001 To 35000 'شريحة خامسة على 12000 بخصم 13
t1.Text = 250
t2.Text = 350
t3.Text = 550
t4.Text = 880
NewSalary = NewSalary - 27000
t5.Text = NewSalary * 0.13
ZeroTxt({"t6", "t7", "t8"})
Case 35001 To 50000 'شريحة سادسة على 15000 بخصم 16
t1.Text = 250
t2.Text = 350
t3.Text = 550
t4.Text = 880
t5.Text = 1560
NewSalary = NewSalary - 35000
t6.Text = NewSalary * 0.16
ZeroTxt({"t7", "t8"})
Case 50001 To 60000 'شريحة سابعة على 10000 بخصم 19
t1.Text = 250
t2.Text = 350
t3.Text = 550
t4.Text = 880
t5.Text = 1560
t6.Text = 2400
NewSalary = NewSalary - 50000
t7.Text = NewSalary * 0.19
ZeroTxt({"t8"})
Case > 60000 'شريحة اخيرة اكبر من 60000 بخصم 22
t1.Text = 250
t2.Text = 350
t3.Text = 550
t4.Text = 880
t5.Text = 1560
t6.Text = 2400
t7.Text = 1900
NewSalary = NewSalary - 60000
t8.Text = (NewSalary * 0.22)
End Select
txtTotalDiscount.Text = Val(t1.Text) + Val(t2.Text) + Val(t3.Text) + Val(t4.Text) + Val(t5.Text) + Val(t6.Text) + Val(t7.Text) + Val(t8.Text)
txtResult.Text = Salary - Val(txtTotalDiscount.Text)
End Sub
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click
ClearAll()
End Sub
Private Sub ClearAll()
For Each ctrl As Control In GroupBox1.Controls
If TypeOf (ctrl) Is TextBox Then
ctrl.Text = String.Empty
End If
Next
txtSalary.Focus()
End Sub
Private Sub ZeroTxt(ControlsNames As String())
For Each ctrl As Control In GroupBox1.Controls
If TypeOf (ctrl) Is TextBox Then
If ControlsNames.Contains(ctrl.Name) Then
ctrl.Text = 0
End If
End If
Next
End Sub
Private Sub txtSalary_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtSalary.KeyPress
If Char.IsDigit(e.KeyChar) = False And Char.IsControl(e.KeyChar) = False Then
e.Handled = True
End If
End Sub
بالتوفيق اخي
سؤال:هل تعمل محاسب في دائرة حكومية
RE: مشروع احتساب الضريبة على الراتب - سلام م - 29-11-19
شكرا اخي هذا المطلوب
فقط كان خطأ بالشريحة ٣ قمت بتصحيحه وهو خصم ٤٥٠ وليس ٥٥٠ على الشريحة ٣
شكرا لك بالنسبة لسؤالك نعم
RE: مشروع احتساب الضريبة على الراتب - EMADSSS - 29-11-19
الشكر الكبير للاخ ابو ليلى الاكواد تعمل بشل ممتاز
RE: مشروع احتساب الضريبة على الراتب - EMADSSS - 30-11-19
اخي الكريم كيف بقدر اجبر العملية الحسابية للراتب المقطوع اذا كان به فواصل عشرية او اقدر الغيها لاني ربطت التكست بوكس الخاصة بالراتب المقطوع بقيمه ياتي بها من تكست اخر احيانا يكون بها مراتب عشرية عندها عم يعطي رسالة المبلغ اقل من 15000
وشكرا
RE: مشروع احتساب الضريبة على الراتب - ابو ليلى - 30-11-19
السلام عليكم و رحمة الله و بركاته
دقق في نوع الارقام المستخدم.
PHP كود :
Dim NewSalary As Integer = Nothing Salary = If(Int32.TryParse(txtSalary.Text.ToString, 0), txtSalary.Text.ToString, 0)
كما ترى نوعها Integer حولها الى Double و تنتهي المشكلة ان شاء الله
(29-11-19, 07:15 PM)سلام م كتب : شكرا اخي هذا المطلوب
فقط كان خطأ بالشريحة ٣ قمت بتصحيحه وهو خصم ٤٥٠ وليس ٥٥٠ على الشريحة ٣
شكرا لك بالنسبة لسؤالك نعم
الخطأ جاء عن طريق النسخ من الكود الاول عندما كانت الشريحة3 تخضع لخصم 11% و الان اصبحت على 9%
|