تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشروع احتساب الضريبة على الراتب
#11
شكرا اخي الكريم لكن حاولت التعديل للشرائح ولم انجح بدي عذبك معي سأرسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
أول ٥٠٠٠ تخضع ل ٥ بالمئة وثاني ٥٠٠٠ ٧ بالمئة وثثثالث ٥٠٠٠ ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ ومافوق يخضع ٢٢ بالمئةة وشكرا لك عم عذبك الاكواد التي ارسلتها لي اشتغلت تمام

اخي شكرا لكك تما اشتغلت الاكواد لكن حاولت اعدل عليها ولم استطع سارسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
بعدها ٥٠٠٠ تخخضع ٥ بالمئة ثم ٥٠٠٠ بعدها ٧ بالمئة ثم ٥٠٠٠ بعدها ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ وما اكثر ييخضع ٢٢ بالمئة

(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 ObjectAs EventArgsHandles btnExc.Click
        Salary 
= If(Int32.TryParse(txtSalary.Text.ToString0), txtSalary.Text.ToString0)
 
       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 

اعلمنا بالنتيجة
بالتوفيق

اخي شكرا لكك تما اشتغلت الاكواد لكن حاولت اعدل عليها ولم استطع سارسل لك الشرائح كما هي
١٥٠٠٠ الاولى معفاة
بعدها ٥٠٠٠ تخخضع ٥ بالمئة ثم ٥٠٠٠ بعدها ٧ بالمئة ثم ٥٠٠٠ بعدها ٩ بالمئة ثم ٨٠٠٠ بعدها ١١ بالمئة ثم ١٢٠٠٠ بعدها ١٣ بالمئة ثم ١٥٠٠٠ بعدها ١٦ بالمئة ثم ١٠٠٠٠ بعدها ١٩ بالمئة ثم راتب ٧٥٠٠٠ وما اكثر ييخضع ٢٢ بالمئة

الرد }}}
تم الشكر بواسطة: EMADSSS , asemshahen5 , حريف برمجة
#12
شكرا للاخ ابو ليلى قمت بتجريب الاكواد واشتغلت جيدا ياريت تكرم علينا وتعدل الاكواد كما اوضح السيد سلام وفق الشرائح التي وضعها مؤخرا ولك الشكر
الرد }}}
تم الشكر بواسطة: asemshahen5 , حريف برمجة
#13
السلام عليكم و رحمة الله و بركاته


الشريحة الاخيرة عليها خلاف (اكبر 75000) المفروض ان تكون اكبر من 60000 لان هناك 15000 معفاة
وكذلك هناك تسلسل منطقي للحساب مفقود في هذا النظام , المفروض لا يتم الانتقال من شريحة الى شريحة حتى يكتمل نصاب الشريحة (شرائح صغيرة بخصم كبير و شرائح كبيرة بخصم صغير ) لا يوجد الية واضحة للحساب (عباقرة المالية  Big Grin )
-------------------------------------------------------------------------------
على اي حال صديقي هذا التعديل وفق المطلوب
اضف صناديق نصوص الى النموئج السابق (من 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
بالتوفيق اخي
سؤال:هل تعمل محاسب في دائرة حكومية
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: asemshahen5 , EMADSSS , ابو روضة , ابو روضة
#14
شكرا اخي هذا المطلوب
فقط كان خطأ بالشريحة ٣ قمت بتصحيحه وهو خصم ٤٥٠ وليس ٥٥٠ على الشريحة ٣
شكرا لك بالنسبة لسؤالك نعم
الرد }}}
تم الشكر بواسطة: asemshahen5
#15
الشكر الكبير للاخ ابو ليلى الاكواد تعمل بشل ممتاز
الرد }}}
تم الشكر بواسطة: asemshahen5
#16
اخي الكريم كيف بقدر اجبر العملية الحسابية للراتب المقطوع اذا كان به فواصل عشرية او اقدر الغيها لاني ربطت التكست بوكس الخاصة بالراتب المقطوع بقيمه ياتي بها من تكست اخر احيانا يكون بها مراتب عشرية عندها عم يعطي رسالة المبلغ اقل من 15000
وشكرا
الرد }}}
تم الشكر بواسطة: asemshahen5
#17
السلام عليكم و رحمة الله و بركاته
دقق في نوع الارقام المستخدم.
PHP كود :
Dim NewSalary As Integer Nothing
Salary 
= If(Int32.TryParse(txtSalary.Text.ToString0), txtSalary.Text.ToString0
كما ترى نوعها Integer حولها الى Double و تنتهي المشكلة ان شاء الله

(29-11-19, 07:15 PM)سلام م كتب : شكرا اخي هذا المطلوب
فقط كان خطأ بالشريحة ٣ قمت بتصحيحه وهو خصم ٤٥٠ وليس ٥٥٠ على الشريحة ٣
شكرا لك بالنسبة لسؤالك  نعم

الخطأ جاء عن طريق النسخ من الكود الاول عندما كانت الشريحة3 تخضع لخصم 11% و الان اصبحت على 9%
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: asemshahen5 , سلام م



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


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