function clsCoerenza(objsessione) { var _me = this; var _objsessione = objsessione; this.param1 = function() { return new function() { this.patrimonio_finanziario = 0; this.investimenti_breve = 0; this.investimenti_medio = 0; this.investimenti_lungo = 0; } } this.param2 = function() { return new function() { this.patrimonio_finanziario = 0; this.investimenti_breve = 0; this.investimenti_medio = 0; this.investimenti_lungo = 0; this.ideale_breve = 0; this.ideale_medio = 0; this.ideale_lungo = 0; } } this.param3 = function() { return new function() { this.patrimonio_finanziario = 0; this.indice_breve_termine = 0; this.indice_medio_termine = 0; this.indice_lungo_termine = 0; } } /* ------- Calcolo operatività generale --------------------------------------------- */ this.calcola_totali = function() { var objobiettivi = _objsessione.dati.obiettivi; var objreturn = new function() { this.perc_1 = 0; this.perc_2 = 0; this.perc_3 = 0; this.obiettivi_breve_termine = 0; this.obiettivi_medio_termine = 0; this.obiettivi_lungo_termine = 0; this.obiettivi_totale = 0; } var obiettivi_breve = objobiettivi.totaliperperiodo(_objsessione.anno,3); var obiettivi_medio = objobiettivi.totaliperperiodo(_objsessione.anno+4,6); var obiettivi_lungo = objobiettivi.totaliperperiodo(_objsessione.anno+11,100); var totale = obiettivi_breve + obiettivi_medio + obiettivi_lungo; var perc1=0, perc2=0, perc3=0; if (totale!=0) { objreturn.perc_1 = Math.round(obiettivi_breve/totale*100,3); objreturn.perc_2 = Math.round(obiettivi_medio/totale*100,3); objreturn.perc_3 = Math.round(obiettivi_lungo/totale*100,3); } objreturn.obiettivi_breve_termine = obiettivi_breve; objreturn.obiettivi_medio_termine = obiettivi_medio; objreturn.obiettivi_lungo_termine = obiettivi_lungo; objreturn.obiettivi_totale = totale; return objreturn; } this.investimento_ideale = function(objparam1) { var objreturn = null; var patrimonio_finanziario = objparam1.patrimonio_finanziario; var investimenti_breve = objparam1.investimenti_breve; var investimenti_medio = objparam1.investimenti_medio; var investimenti_lungo = objparam1.investimenti_lungo; var totale_ideale=0; var coerenza_indice=0; var titolo=""; var entrate_0 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno,0); var entrate_1 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+1,0); var entrate_2 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+2,0); var entrate_3 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+3,0); var entrate_4 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+4,0); var entrate_5 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+5,0); var entrate_6 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+6,0); var entrate_7 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+7,0); var entrate_8 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+8,0); var entrate_9 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+9,0); var entrate_10 = _objsessione.dati.entrate_lavoro.totaliperperiodoconpensione(_objsessione.anno+10,0); var reddito_0 = entrate_0.totale; var reddito_1 = entrate_1.totale; var reddito_2 = entrate_2.totale; var reddito_3 = entrate_3.totale; var reddito_4 = entrate_4.totale; var reddito_5 = entrate_5.totale; var reddito_6 = entrate_6.totale; var reddito_7 = entrate_7.totale; var reddito_8 = entrate_8.totale; var reddito_9 = entrate_9.totale; var reddito_10 = entrate_10.totale; var straodinarie_0 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno,0); var straodinarie_1 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+1,0); var straodinarie_2 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+2,0); var straodinarie_3 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+3,0); var straodinarie_4 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+4,0); var straodinarie_5 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+5,0); var straodinarie_6 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+6,0); var straodinarie_7 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+7,0); var straodinarie_8 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+8,0); var straodinarie_9 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+9,0); var straodinarie_10 = _objsessione.dati.entrate_straordinarie.totaliperperiodo(_objsessione.anno+10,0); var rendite_0 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno,0); var rendite_1 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+1,0); var rendite_2 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+2,0); var rendite_3 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+3,0); var rendite_4 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+4,0); var rendite_5 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+5,0); var rendite_6 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+6,0); var rendite_7 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+7,0); var rendite_8 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+8,0); var rendite_9 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+9,0); var rendite_10 = _objsessione.dati.entrate_rendita.totaliperperiodo(_objsessione.anno+10,0); var entrate_0 = reddito_0 + rendite_0 + straodinarie_0; var entrate_1 = reddito_1 + rendite_1 + straodinarie_1; var entrate_2 = reddito_2 + rendite_2 + straodinarie_2; var entrate_3 = reddito_3 + rendite_3 + straodinarie_3; var entrate_4 = reddito_4 + rendite_4 + straodinarie_4; var entrate_5 = reddito_5 + rendite_5 + straodinarie_5; var entrate_6 = reddito_6 + rendite_6 + straodinarie_6; var entrate_7 = reddito_7 + rendite_7 + straodinarie_7; var entrate_8 = reddito_8 + rendite_8 + straodinarie_8; var entrate_9 = reddito_9 + rendite_9 + straodinarie_9; var entrate_10 = reddito_10 + rendite_10 + straodinarie_10; var tenorevita_0 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno,0); var tenorevita_1 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+1,0); var tenorevita_2 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+2,0); var tenorevita_3 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+3,0); var tenorevita_4 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+4,0); var tenorevita_5 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+5,0); var tenorevita_6 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+6,0); var tenorevita_7 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+7,0); var tenorevita_8 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+8,0); var tenorevita_9 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+9,0); var tenorevita_10 = _objsessione.dati.uscite.totaliperperiodo(_objsessione.anno+10,0); var obiettivi_0 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno,0); var obiettivi_1 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+1,0); var obiettivi_2 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+2,0); var obiettivi_3 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+3,0); var obiettivi_4 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+4,0); var obiettivi_5 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+5,0); var obiettivi_6 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+6,0); var obiettivi_7 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+7,0); var obiettivi_8 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+8,0); var obiettivi_9 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+9,0); var obiettivi_10 = _objsessione.dati.obiettivi.totaliperperiodo(_objsessione.anno+10,0); var uscite_0 = tenorevita_0 + obiettivi_0; var uscite_1 = tenorevita_1 + obiettivi_1; var uscite_2 = tenorevita_2 + obiettivi_2; var uscite_3 = tenorevita_3 + obiettivi_3; var uscite_4 = tenorevita_4 + obiettivi_4; var uscite_5 = tenorevita_5 + obiettivi_5; var uscite_6 = tenorevita_6 + obiettivi_6; var uscite_7 = tenorevita_7 + obiettivi_7; var uscite_8 = tenorevita_8 + obiettivi_8; var uscite_9 = tenorevita_9 + obiettivi_9; var uscite_10 = tenorevita_10 + obiettivi_10; var necessario_0 = uscite_0 - entrate_0; var necessario_1 = uscite_1 - entrate_1 + necessario_0; var necessario_2 = uscite_2 - entrate_2 + necessario_1; var necessario_3 = uscite_3 - entrate_3 + necessario_2; var ideale_breve=0, ideale_medio=0, ideale_lungo=0, ideale_totale=0; var ideale_breve_perc=0, ideale_medio_perc=0, ideale_lungo_perc=0; var delta_breve=0, delta_medio=0, delta_lungo=0; var coerenza_breve=0, coerenza_medio=0, coerenza_lungo=0, coerenza_totale=0; ideale_breve = Math.max(tenorevita_0, tenorevita_1, tenorevita_2, tenorevita_3) + obiettivi_0 + obiettivi_1 + obiettivi_2 + obiettivi_3; // max tra il tenore di vita 0-3 e somma di uscite 0 - 3 if (patrimonio_finanziario < ideale_breve) { ideale_breve = patrimonio_finanziario; } var necessario_4 = uscite_4 - entrate_4; var necessario_5 = uscite_5 - entrate_5 + necessario_4; var necessario_6 = uscite_6 - entrate_6 + necessario_5; var necessario_7 = uscite_7 - entrate_7 + necessario_6; var necessario_8 = uscite_8 - entrate_8 + necessario_7; var necessario_9 = uscite_9 - entrate_9 + necessario_8; var necessario_10 = uscite_10 - entrate_10 + necessario_9; ideale_medio = Math.max(necessario_4, necessario_5, necessario_6, necessario_7, necessario_8, necessario_9, necessario_10); // max tra il necessario 4-10 if (ideale_medio < 0) { ideale_medio = 0; } if (patrimonio_finanziario > ideale_breve){ if (ideale_medio > (patrimonio_finanziario - ideale_breve)){ ideale_medio = patrimonio_finanziario - ideale_breve; ideale_lungo = 0; }else{ ideale_lungo = patrimonio_finanziario - ideale_breve - ideale_medio; } }else{ ideale_medio = 0; } /*objreturn.ideale_breve = ideale_breve; objreturn.ideale_medio = ideale_medio; objreturn.ideale_lungo = ideale_lungo;*/ var objparam2 = _me.param2(); objparam2.patrimonio_finanziario = patrimonio_finanziario; objparam2.investimenti_breve = investimenti_breve; objparam2.investimenti_medio = investimenti_medio; objparam2.investimenti_lungo = investimenti_lungo; objparam2.ideale_breve = ideale_breve; objparam2.ideale_medio = ideale_medio; objparam2.ideale_lungo = ideale_lungo; objreturn = _me.calcola_delta(objparam2); if (patrimonio_finanziario>0) { if (investimenti_breve+investimenti_medio+investimenti_lungo>patrimonio_finanziario) { } else { investimenti_breve = patrimonio_finanziario - investimenti_medio - investimenti_lungo; objreturn.investimenti_breve = investimenti_breve; } } return objreturn; } this.calcola_delta = function(objparam2) { var objreturn = new function() { this.patrimonio_finanziario = 0; this.investimenti_breve = 0; this.investimenti_medio = 0; this.investimenti_lungo = 0; this.ideale_breve = 0; this.ideale_medio = 0; this.ideale_lungo = 0; this.ideale_totale = 0; this.ideale_breve_perc = 0; this.ideale_medio_perc = 0; this.ideale_lungo_perc = 0; this.delta_breve = 0; this.delta_medio = 0; this.delta_lungo = 0; this.coerenza_breve = 0; this.coerenza_medio = 0; this.coerenza_lungo = 0; this.coerenza_indice = 0; this.coerenza_descrizione = ""; this.coerenza_colore_indice = ""; } var patrimonio_finanziario = parseInt(objparam2.patrimonio_finanziario); var investimenti_breve = parseInt(objparam2.investimenti_breve); var investimenti_medio = parseInt(objparam2.investimenti_medio); var investimenti_lungo = parseInt(objparam2.investimenti_lungo); var ideale_breve = parseInt(objparam2.ideale_breve); var ideale_medio = parseInt(objparam2.ideale_medio); var ideale_lungo = parseInt(objparam2.ideale_lungo); var objparam3 = _me.param3(); ideale_breve = patrimonio_finanziario - ideale_medio - ideale_lungo; objreturn.ideale_totale = patrimonio_finanziario; objreturn.delta_breve = investimenti_breve - ideale_breve; objreturn.delta_medio = investimenti_medio - ideale_medio; objreturn.delta_lungo = investimenti_lungo - ideale_lungo; var indice_breve = 0; var indice_medio = 0; var indice_lungo = 0; var indice_di_coerenza = -100; if (patrimonio_finanziario > 0){ indice_breve = parseInt((investimenti_breve - ideale_breve) / patrimonio_finanziario *100); indice_medio = parseInt((investimenti_medio - ideale_medio) / patrimonio_finanziario *100); indice_lungo = parseInt((investimenti_lungo - ideale_lungo) / patrimonio_finanziario *100); } objreturn.patrimonio_finanziario = patrimonio_finanziario; objreturn.investimenti_breve = parseInt(objparam2.investimenti_breve); objreturn.investimenti_medio = parseInt(objparam2.investimenti_medio); objreturn.investimenti_lungo = parseInt(objparam2.investimenti_lungo); objreturn.ideale_breve = parseInt(objparam2.ideale_breve); objreturn.ideale_medio = parseInt(objparam2.ideale_medio); objreturn.ideale_lungo = parseInt(objparam2.ideale_lungo); objreturn.ideale_totale = objreturn.ideale_breve + objreturn.ideale_medio + objreturn.ideale_lungo; objreturn.delta_breve = investimenti_breve - ideale_breve; objreturn.delta_medio = investimenti_medio - ideale_medio; objreturn.delta_lungo = investimenti_lungo - ideale_lungo; objreturn.ideale_breve_perc = Math.abs(Math.round(ideale_breve / objreturn.ideale_totale * 100)); objreturn.ideale_medio_perc = Math.abs(Math.round(ideale_medio / objreturn.ideale_totale * 100)); objreturn.ideale_lungo_perc = Math.abs(Math.round(ideale_lungo / objreturn.ideale_totale * 100)); objreturn.indice_breve = - Math.abs(Math.round(objreturn.delta_breve / patrimonio_finanziario * 100)); objreturn.indice_medio = - Math.abs(Math.round(objreturn.delta_medio / patrimonio_finanziario * 100)); objreturn.indice_lungo = - Math.abs(Math.round(objreturn.delta_lungo / patrimonio_finanziario * 100)); objparam3.patrimonio_finanziario = patrimonio_finanziario; objparam3.indice_breve_termine = indice_breve; objparam3.indice_medio_termine = indice_medio; objparam3.indice_lungo_termine = indice_lungo; objreturn.coerenza_indice = _me.calcola_indice(objparam3); if (objreturn.coerenza_indice >= 80) { objreturn.coerenza_descrizione = "INVESTIMENTI MOLTO COERENTI"; } else if (objreturn.coerenza_indice >= 50) { objreturn.coerenza_descrizione = "INVESTIMENTI COERENTI"; } else if (objreturn.coerenza_indice >= 0) { objreturn.coerenza_descrizione = "INVESTIMENTI POCO COERENTI"; } else { objreturn.coerenza_descrizione = "INVESTIMENTI NON COERENTI"; } objreturn.coerenza_colore_indice = _me.colore_indice(objreturn.coerenza_indice); return objreturn; } this.calcola_indice = function(objparam3) { var totale_indice = Math.abs(objparam3.indice_breve_termine)+Math.abs(objparam3.indice_medio_termine)+Math.abs(objparam3.indice_lungo_termine); var indice_coerenza = -100; if (objparam3.patrimonio_finanziario>0) { indice_coerenza = 100 - totale_indice; } return indice_coerenza; } this.colore_indice = function(indice) { var colore="#000000"; if (indice >= 80){ colore = "#4169E1"; } else if(indice >= 50){ colore = "#6B8E23"; } else if(indice >= 0){ colore = "#A52A2A"; } else{ colore = "#ff0000"; } return colore; } }