Advertisement
teknoraver

Tasse

Feb 26th, 2016 (edited)
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var aliquote_irpef = [
  2.     { soglia :     0, percentuale : 23 },
  3.     { soglia : 15000, percentuale : 25 },
  4.     { soglia : 28000, percentuale : 35 },
  5.     { soglia : 50000, percentuale : 43 }
  6. ];
  7. var aliquote_lombardia = [
  8.     { soglia :     0, percentuale : 1.23 },
  9.     { soglia : 15000, percentuale : 1.58 },
  10.     { soglia : 28000, percentuale : 1.73 }
  11. ];
  12. var aliquote_inps = [
  13.     { soglia :     0, percentuale : 23.1 },
  14.     { soglia : 46123, percentuale : 24.1 }
  15. ];
  16.  
  17. function progressiva(lordo, aliquote) {
  18.     var tmp = 0;
  19.     for(var i = aliquote.length - 1; i >= 0; i--) {
  20.         if(lordo > aliquote[i].soglia) {
  21.             tmp += (lordo - aliquote[i].soglia) * aliquote[i].percentuale / 100;
  22.             lordo = aliquote[i].soglia;
  23.         }
  24.     }
  25.     return tmp;
  26. }
  27.  
  28. function detrazioni_dipendente(lordo) {
  29.     if(lordo <= 8000)
  30.         return 1880;
  31.     else if(lordo <= 28000)
  32.         return 978 + (902 * (28000 - lordo) / 20000);
  33.     else if(lordo <= 55000)
  34.         return 978 * ((55000 - lordo) / 27000);
  35.     else
  36.         return 0;
  37. }
  38.  
  39. function detrazioni_autonomo(lordo) {
  40.     if(lordo <= 4800)
  41.         return 1104;
  42.     else if(lordo <= 55000)
  43.         return 1104 * ((55000 - lordo) / 50200);
  44.     else
  45.         return 0;
  46. }
  47.  
  48. /**
  49.  * Calcola l'IRPEF
  50.  *
  51.  * @param {number} il lordo
  52.  * @param {string} il tipo di lavoro, "autonomo" "dipendente"
  53.  * @return {number} l'IRPEF da versare
  54.  * @customfunction
  55.  */
  56. function irpef(lordo, tipo) {
  57.     var det = 0;
  58.     if(tipo == 'autonomo')
  59.         det = detrazioni_autonomo(lordo);
  60.     else if(tipo == 'dipendente')
  61.         det = detrazioni_dipendente(lordo);
  62.  
  63.     return progressiva(lordo, aliquote_irpef) - det;
  64. }
  65.  
  66. /**
  67.  * Calcola l'addizionale regionale Lombardia
  68.  *
  69.  * @param {Number} il lordo
  70.  * @return {Number} l'addizionale regionale da versare
  71.  * @customfunction
  72.  */
  73. function lombardia(lordo) {
  74.     return progressiva(lordo, aliquote_lombardia);
  75. }
  76.  
  77. /**
  78.  * Calcola l'INPS
  79.  *
  80.  * @param {Number} il fatturato
  81.  * @param {String} il tipo di lavoro, "piva" per partita autonoma o "individuale" per società individuale
  82.  * @return {Number} l'INPS da versare
  83.  * @customfunction
  84.  */
  85. function inps(lordo, tipo) {
  86.     if(tipo == 'piva')
  87.         return lordo * 27.72 / 100;
  88.     else if(tipo == 'individuale') {
  89.         if(lordo < 15548)
  90.             lordo = 15548;
  91.         return progressiva(lordo, aliquote_inps) + 7.44;
  92.     }
  93.  
  94.     return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement