miércoles, 15 de julio de 2015

Impuesto Sobre la renta

Tassa de interes anual hasta el 2016 aplicado a la escala salarial en Republica Dominicana

Objetivo

Calcular la tasa de interes anual aplicado a la escala salarial de la Republica dominicana hasta el 2016:
1. Renta hasta RD$ 399,923.00                                         = Exento
2. Renta desde RD$ 399,923.01 hasta RD$ 599,884.00       = 15% del excedente de RD$ 399,923.01
3. Renta desde RD$ 599,884.01 hasta RD$ 833,171.00       = RD$29,994.00 mas el 20% del excedente de RD$ 599,884.01
4. Rentas desde RD$ 833,171.01 en adelante                    = RD$ 76,652.00 más el 25% del excedente de RD$ 833,171.01

Nota

Esta es una aplicacion de escritorio, pero puede ser facirmente aplicado a una aplicacion web

Vista previa

Vista Previa

Codigo C#

  private void button1_Click(object sender, EventArgs e)
        {
            double SueldoBruto = 0;                 // Sueldo bruto ingresado por el usuario.
            double ISR = 0;                         // Impuesto Sobre la Renta.
            const double AFP = 2.87;                // Administradoras de fondos de pensiones.
            const double ARL = 3.04;                // Administradora de riesgos laborales.

            const double LISR2 = 399923.01 / 12;    // Limite inferior de la escala 2.
            const double LISR3 = 599884.01 / 12;    // Limite inferior de la escala 3.
            const double LISR4 = 833171.01 / 12;    // Limite inferior de la escala 4.
            const double PCISR2 = 15.0  / 12;       // Porciento aplicado a la escala 2.
            const double PCISR3 = 20.0 / 12;        // Porciento aplicado a la escala 3.
            const double PCISR4 = 25.0 / 12;        // Porciento aplicado a la escala 4.
            const double incr3 = 29994.0 / 12;      // Valor fijo aplicado a la escala 3.
            const double incr4 = 76652.0 / 12;      // Valor fijo aplicado a la escala 4.         

            if ((double.TryParse(textBox1.Text, out SueldoBruto)))
            {
                // determinar el valor de ISR segun la escala salarial
                //No hay decuento, segun la escala 1
                if ((SueldoBruto <= LISR2))
                {
                    ISR += ISR;

                } // 15% anual, segun la escala 2
                else 
                {
                    double excedente;

                    if ((SueldoBruto <= LISR3))
                    {
                        // como es al excedente de LISR2, debemos hacer una resta con el sueldo
                        excedente = SueldoBruto - (LISR2);

                        // determino el descuento segun escala 2
                        ISR = (excedente * PCISR2) / 100;

                    } // 20% anual, , segun la escala 3
                    else 
                    {
                        if ((SueldoBruto <= LISR4))
                        {
                            // como es al excedente de LISR3, debemos hacer una resta con el sueldo
                            excedente = SueldoBruto - (LISR3);

                            // determino el descuento mas incr3, segun la escala 3
                            ISR = ((excedente * PCISR3 / 100) + (incr3));

                        } // 25% anual, , segun la escala 4
                        else
                        {
                            // como es al excedente de LISR4, debemos hacer una resta con el sueldo
                            excedente = SueldoBruto - (LISR4);

                            // determino el descuento mas incr4, segun la escala 4
                            ISR = ((excedente * PCISR4 / 100) + (incr4));
                        }
                    }
                }
                double SueldoNexto = SueldoBruto - (((SueldoBruto * AFP) / 100) + ((SueldoBruto * ARL) / 100) + (ISR));

                listBox1.Items.Clear();

                listBox1.Items.Add("Sueldo Bruto: \tRD$" + Convert.ToString(SueldoBruto));
                listBox1.Items.Add("AFP: \t\t" + Convert.ToString(AFP) + "%");
                listBox1.Items.Add("ARL: \t\t" + Convert.ToString(ARL) + "%");
                listBox1.Items.Add("ISR: \t\t" + Convert.ToString(ISR) + "%");
                listBox1.Items.Add("Total a descontar: \tRD$" + Convert.ToString(((SueldoBruto * AFP) / 100) + ((SueldoBruto * ARL) / 100) + (ISR)));
                listBox1.Items.Add("Sueldo Neto: \tRD$" + Convert.ToString(SueldoNexto));
            }
            else
            {
                MessageBox.Show("Ingrese sueldo");                
            }
        }
    

Codigo Visual basic

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SueldoBruto As Double               REM Sueldo bruto ingresado por el usuario.
        Dim ISR As Double = 0                   REM Impuesto Sobre la Renta.
        Const AFP As Double = 2.87              REM Administradoras de fondos de pensiones.
        Const ARL As Double = 3.04              REM Administradora de riesgos laborales.

        Const LISR2 As Double = 399923.01 / 12  REM Limite inferior de la escala 2
        Const LISR3 As Double = 599884.01 / 12  REM Limite inferior de la escala 3
        Const LISR4 As Double = 833171.01 / 12  REM Limite inferior de la escala 4
        Const PCISR2 As Double = 15 / 12        REM Porciento aplicado a la escala 2
        Const PCISR3 As Double = 20 / 12        REM Porciento aplicado a la escala 3
        Const PCISR4 As Double = 25 / 12        REM Porciento aplicado a la escala 4
        Const incr3 As Double = 29994.0 / 12    REM Valor fijo aplicado a la escala 3
        Const incr4 As Double = 76652.0 / 12    REM Valor fijo aplicado a la escala 4

        If (Double.TryParse(TextBox1.Text, SueldoBruto)) Then
            REM determinar el valor de ISR segun la escala salarial
            If (SueldoBruto <= LISR2) Then 'No hay decuento, segun la escala 1
                ISR = ISR

            Else REM 15% anual, segun la escala 2
                Dim excedente As Double

                If (SueldoBruto <= LISR3) Then
                    REM como es al excedente de LISR1, debemos hacer una resta con el sueldo
                    excedente = SueldoBruto - (LISR2)

                    REM determino el descuento segun escala 2
                    ISR = (excedente * PCISR2) / 100

                Else REM 20% anual
                    If (SueldoBruto <= LISR4) Then
                        REM como es al excedente de LISR2, debemos hacer una resta con el sueldo
                        excedente = SueldoBruto - (LISR3)

                        REM determino el descuento mas incr1, segun la escala 3
                        ISR = ((excedente * PCISR3 / 100) + (incr3))

                    Else REM 25% anual
                        REM como es al excedente de LISR3, debemos hacer una resta con el sueldo
                        excedente = SueldoBruto - (LISR4)

                        REM determino el descuento mas incr2, segun la escala 4
                        ISR = ((excedente * PCISR4 / 100) + (incr4))
                    End If
                End If
            End If
            Dim SueldoNexto As Double = SueldoBruto - (((SueldoBruto * AFP) / 100) + ((SueldoBruto * ARL) / 100) + (ISR))

            ListBox1.Items.Clear()

            ListBox1.Items.Add("Sueldo Bruto: " + vbTab + vbTab + "RD$" + CStr(SueldoBruto))
            ListBox1.Items.Add("AFP: " + vbTab + vbTab + vbTab + CStr(AFP) + "%")
            ListBox1.Items.Add("ARL: " + vbTab + vbTab + vbTab + CStr(ARL) + "%")
            ListBox1.Items.Add("ISR: " + vbTab + vbTab + vbTab + CStr(ISR) + "%")
            ListBox1.Items.Add("Total a descontar: " + vbTab + vbTab + "RD$" + CStr(((SueldoBruto * AFP) / 100) + ((SueldoBruto * ARL) / 100) + (ISR)))
            ListBox1.Items.Add("Sueldo Neto: " + vbTab + vbTab + "RD$" + CStr(SueldoNexto))

        Else
            MessageBox.Show("Ingrese sueldo")
        End If
    End Sub
    

Descripcion del codigo

Todo el codigo va a estar contenido dentro de la estructura condicional

         If (Double.TryParse(TextBox1.Text, SueldoBruto)) Then

        Else
            MessageBox.Show("Ingrese sueldo")
        End If
    

donde el metodo  

        Double.TryParse(TextBox1.Text, SueldoBruto)    

va a evaluar el valor ingresado por el ususario en la caja de texto, de ser un valor valido hara la conversion al tipo Double y lo asignara a la
variable SueldoBruto, luego retornara un valor de true a la condiccion para que ejecute todo el codigo, de lo contrario enviara un mensaje para
que ingrese un valor valido.

Tambien podriamos hacer uso de: Instrucción Try...Catch...Finally (Visual Basic). Esta instrucción proporciona una manera de
controlar algunos o todos los errores posibles que pueden ocurrir en un bloque de código determinado mientras se
ejecuta el código. Si piensa que se puede producir una excepción determinada en una sección concreta del
código, incluya éste en un bloque Try y utilice un bloque Catch para conservar el control y tratar la excepción que se produce.

Descarga
C# VB