de LinuxmanR4, 2 años han pasado desde su publicación, escrito en Visual Basic.
Insertar vínculo
  1. Option Explicit
  2.  
  3. Function ISPT_Anual_2014(ByVal PercepcionesGravables As Double) As Double
  4.  
  5. '*****************************************************************************************************
  6. ' FUNCION PARA CALCULAR EL ISPT ANUAL
  7. ' Copyright (C) 2012 Francisco Javier de la Torre '
  8. ' Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
  9. ' Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
  10. ' versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
  11. ' Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
  12. ' sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
  13. ' Véase la Licencia Pública General de GNU para más detalles.
  14. ' Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
  15. ' sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
  16. '
  17. ' Francisco Javier de la Torre.
  18. ' http://linuxmanr4.com
  19. ' inguanzo@gmail.com
  20. '
  21. ' Actualización para el año 2014.
  22. ' Actualizacion y Correcciones para el 2012 gracias a Glezco21 y GRR.
  23. '
  24. '*****************************************************************************************************
  25.     Dim ISPT_anual(11, 2) As Double
  26.     Dim SUBSIDIO_AL_EMPLEO_ANUAL(11, 1) As Double
  27.     Dim ISPT_LimiteInferior As Double
  28.     Dim CuotaFija As Double
  29.     Dim PorcentajeSobreExcedente As Double
  30.     Dim i As Integer
  31.     Dim ISPT As Double
  32.     Dim SubsidioAlEmpleo As Double
  33.  
  34.     'Definición de las tablas iniciales
  35.    
  36.     'ISPT ANUAL
  37.     '==============================
  38.     'Limite inferior
  39.    
  40.     ISPT_anual(0, 0) = 0.01
  41.     ISPT_anual(1, 0) = 5952.85
  42.     ISPT_anual(2, 0) = 50524.93
  43.     ISPT_anual(3, 0) = 88793.05
  44.     ISPT_anual(4, 0) = 103218.01
  45.     ISPT_anual(5, 0) = 123580.21
  46.     ISPT_anual(6, 0) = 249243.49
  47.     ISPT_anual(7, 0) = 392841.97
  48.     ISPT_anual(8, 0) = 750000.01
  49.     ISPT_anual(9, 0) = 1000000.01
  50.     ISPT_anual(10, 0) = 3000000.01
  51.     ISPT_anual(11, 0) = 999999999   'Limite superior muy alto
  52.    
  53.     'Cuota fija
  54.     ISPT_anual(0, 1) = 0
  55.     ISPT_anual(1, 1) = 114.29
  56.     ISPT_anual(2, 1) = 2966.91
  57.     ISPT_anual(3, 1) = 7130.48
  58.     ISPT_anual(4, 1) = 9438.47
  59.     ISPT_anual(5, 1) = 13087.37
  60.     ISPT_anual(6, 1) = 39929.05
  61.     ISPT_anual(7, 1) = 73703.41
  62.     ISPT_anual(8, 1) = 180850.82
  63.     ISPT_anual(9, 1) = 260850.81
  64.     ISPT_anual(10, 1) = 940850.81
  65.     ISPT_anual(11, 1) = 0
  66.    
  67.     'Porcentaje sobre excedente
  68.     ISPT_anual(0, 2) = 0.0192
  69.     ISPT_anual(1, 2) = 0.064
  70.     ISPT_anual(2, 2) = 0.1088
  71.     ISPT_anual(3, 2) = 0.16
  72.     ISPT_anual(4, 2) = 0.1792
  73.     ISPT_anual(5, 2) = 0.2136
  74.     ISPT_anual(6, 2) = 0.2352
  75.     ISPT_anual(7, 2) = 0.3
  76.     ISPT_anual(8, 2) = 0.32
  77.     ISPT_anual(9, 2) = 0.34
  78.     ISPT_anual(10, 2) = 0.35
  79.     ISPT_anual(11, 2) = 0
  80.    
  81.     'SUBSIDIO AL EMPLEO
  82.     '==============================
  83.     'Limite inferior
  84.    
  85.     SUBSIDIO_AL_EMPLEO_ANUAL(0, 0) = 0.01
  86.     SUBSIDIO_AL_EMPLEO_ANUAL(1, 0) = 1768.97
  87.     SUBSIDIO_AL_EMPLEO_ANUAL(2, 0) = 2653.39
  88.     SUBSIDIO_AL_EMPLEO_ANUAL(3, 0) = 3472.85
  89.     SUBSIDIO_AL_EMPLEO_ANUAL(4, 0) = 3537.88
  90.     SUBSIDIO_AL_EMPLEO_ANUAL(5, 0) = 4446.16
  91.     SUBSIDIO_AL_EMPLEO_ANUAL(6, 0) = 4717.19
  92.     SUBSIDIO_AL_EMPLEO_ANUAL(7, 0) = 5335.43
  93.     SUBSIDIO_AL_EMPLEO_ANUAL(8, 0) = 6224.68
  94.     SUBSIDIO_AL_EMPLEO_ANUAL(9, 0) = 7113.91
  95.     SUBSIDIO_AL_EMPLEO_ANUAL(10, 0) = 7382.34
  96.     SUBSIDIO_AL_EMPLEO_ANUAL(11, 0) = 999999999   'Limite superior muy alto
  97.    
  98.     'Subsidio
  99.     SUBSIDIO_AL_EMPLEO_ANUAL(0, 1) = 407.02
  100.     SUBSIDIO_AL_EMPLEO_ANUAL(1, 1) = 406.83
  101.     SUBSIDIO_AL_EMPLEO_ANUAL(2, 1) = 406.62
  102.     SUBSIDIO_AL_EMPLEO_ANUAL(3, 1) = 392.77
  103.     SUBSIDIO_AL_EMPLEO_ANUAL(4, 1) = 382.46
  104.     SUBSIDIO_AL_EMPLEO_ANUAL(5, 1) = 354.23
  105.     SUBSIDIO_AL_EMPLEO_ANUAL(6, 1) = 324.87
  106.     SUBSIDIO_AL_EMPLEO_ANUAL(7, 1) = 294.63
  107.     SUBSIDIO_AL_EMPLEO_ANUAL(8, 1) = 253.54
  108.     SUBSIDIO_AL_EMPLEO_ANUAL(9, 1) = 217.61
  109.     SUBSIDIO_AL_EMPLEO_ANUAL(10, 1) = 0#
  110.     SUBSIDIO_AL_EMPLEO_ANUAL(11, 1) = 0#
  111.    
  112.     'Iniciamos el cálculo del ISPT anual.
  113.    
  114.     CuotaFija = 0: PorcentajeSobreExcedente = 0
  115.     'Buscamos un valor apropiado en la tabla del ISPT Anual
  116.     i = 0
  117.     Do
  118.         If ISPT_anual(i, 0) > PercepcionesGravables Then
  119.             ISPT_LimiteInferior = ISPT_anual(i - 1, 0)
  120.             CuotaFija = ISPT_anual(i - 1, 1)
  121.             PorcentajeSobreExcedente = ISPT_anual(i - 1, 2)
  122.             Exit Do
  123.         Else
  124.             i = i + 1
  125.         End If
  126.     Loop Until i = 12
  127.    
  128.     'Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISPT Anual
  129.    
  130.     ISPT = CuotaFija + ((PercepcionesGravables - ISPT_LimiteInferior) * PorcentajeSobreExcedente)
  131.    
  132.     ISPT = Round(ISPT, 2)
  133.    
  134.     'Ahora Buscamos el subsidio al empleo.
  135.    
  136.     SubsidioAlEmpleo = 0
  137.     i = 0
  138.     Do
  139.         If SUBSIDIO_AL_EMPLEO_ANUAL(i, 0) > (PercepcionesGravables / 12) Then
  140.             SubsidioAlEmpleo = SUBSIDIO_AL_EMPLEO_ANUAL(i - 1, 1)
  141.             Exit Do
  142.         Else
  143.             i = i + 1
  144.         End If
  145.     Loop Until i = 12
  146.     ISPT_Anual_2014 = ISPT - (SubsidioAlEmpleo * 12)
  147. End Function
  148.