Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var aliquote_irpef = [
- { soglia : 0, percentuale : 23 },
- { soglia : 15000, percentuale : 25 },
- { soglia : 28000, percentuale : 35 },
- { soglia : 50000, percentuale : 43 }
- ];
- var aliquote_lombardia = [
- { soglia : 0, percentuale : 1.23 },
- { soglia : 15000, percentuale : 1.58 },
- { soglia : 28000, percentuale : 1.73 }
- ];
- var aliquote_inps = [
- { soglia : 0, percentuale : 23.1 },
- { soglia : 46123, percentuale : 24.1 }
- ];
- function progressiva(lordo, aliquote) {
- var tmp = 0;
- for(var i = aliquote.length - 1; i >= 0; i--) {
- if(lordo > aliquote[i].soglia) {
- tmp += (lordo - aliquote[i].soglia) * aliquote[i].percentuale / 100;
- lordo = aliquote[i].soglia;
- }
- }
- return tmp;
- }
- function detrazioni_dipendente(lordo) {
- if(lordo <= 8000)
- return 1880;
- else if(lordo <= 28000)
- return 978 + (902 * (28000 - lordo) / 20000);
- else if(lordo <= 55000)
- return 978 * ((55000 - lordo) / 27000);
- else
- return 0;
- }
- function detrazioni_autonomo(lordo) {
- if(lordo <= 4800)
- return 1104;
- else if(lordo <= 55000)
- return 1104 * ((55000 - lordo) / 50200);
- else
- return 0;
- }
- /**
- * Calcola l'IRPEF
- *
- * @param {number} il lordo
- * @param {string} il tipo di lavoro, "autonomo" "dipendente"
- * @return {number} l'IRPEF da versare
- * @customfunction
- */
- function irpef(lordo, tipo) {
- var det = 0;
- if(tipo == 'autonomo')
- det = detrazioni_autonomo(lordo);
- else if(tipo == 'dipendente')
- det = detrazioni_dipendente(lordo);
- return progressiva(lordo, aliquote_irpef) - det;
- }
- /**
- * Calcola l'addizionale regionale Lombardia
- *
- * @param {Number} il lordo
- * @return {Number} l'addizionale regionale da versare
- * @customfunction
- */
- function lombardia(lordo) {
- return progressiva(lordo, aliquote_lombardia);
- }
- /**
- * Calcola l'INPS
- *
- * @param {Number} il fatturato
- * @param {String} il tipo di lavoro, "piva" per partita autonoma o "individuale" per società individuale
- * @return {Number} l'INPS da versare
- * @customfunction
- */
- function inps(lordo, tipo) {
- if(tipo == 'piva')
- return lordo * 27.72 / 100;
- else if(tipo == 'individuale') {
- if(lordo < 15548)
- lordo = 15548;
- return progressiva(lordo, aliquote_inps) + 7.44;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement