1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| const preTab= [ { ref: 'montant_immo_1', id:'planmontant_1_', fct: gTest_a, def:0.00, isTest:true }
, { ref: 'taux_immo_1', id:'plantaux_1_', fct: gInt }
, { ref: 'duree_immo_1', id:'planduree_1_', fct: calc_12e }
, { ref: 'dureediff_immo_1', id:'plandureediff_1_', fct: calc_12e }
, { ref: 'chxdiff_immo_1', id:'planchxdiff_1_', fct: calc_12e }
, { ref: 'ass_immo_1_calc', id:'plancalcass_1_', fct: gNRadios }
, { ref: 'ass_immo_1_taux', id:'planasstaux_1_', fct: gTxt }
, { ref: 'ass_immo_1_taux_c', id:'planasstauxc_1_', fct: gTxt }
, { ref: 'ass_immo_1_qte', id:'planassqte_1_', fct: calc_100e }
, { ref: 'ass_immo_1_qte_c', id:'planassqtec_1_', fct: calc_100e }
]
function gTest_a( id, simul, def, test )
{
let el = document.getElementsByName(id+simul)
test.ok = (el && el.value != '0.00')
return test.ok ? parseInt(el.value ) : def
}
function gTxt ( id, simul ) { return document.getElementById(id+simul).value; }
function gInt ( id, simul ) { return parseInt(document.getElementById(id+simul).value); }
function calc_12e ( id, simul )
{
let v = parseInt(document.getElementById(id+simul).value);
return (v>1) ? v/12 : v;
}
function calc_100e ( id, simul )
{
let v = parseInt(document.getElementById(id+simul).value);
return (v!=0) ? v/100 : 0;
}
function gNRadios ( id, simul )
{
let El_Rs = document.getElementsByName(id+simul)
, Rval = null
;
for(let i=0;i<El_Rs.length;i++)
{
if (El_Rs[i].checked)
{
Rval = El_Rs[i].value;
break;
}
}
return Rval;
}
function CalculM1( simul )
{
let inV = { }
, run = { ok: true }
, Lissage = { montant_a : 0
, montant_b : 0
// ...
, montant_z : 0
}
for (let prepa of preTab)
{
if ( prepa.isTest )
{
inV[prepa.ref] = prepa.fct( prepa.id, simul, prepa.def, run )
}
else
{
if ( run.ok ) inV[prepa.ref] = prepa.fct( prepa.id, simul )
}
}
if ( inV.montant_immo_1 > 0 )
{
Lissage.montant_a = inV.montant_immo_1 * inV.taux_immo_1 / inV.duree_immo_1
}
// etc ...
// tu peux aussi créer une table d'inférences pour faire ces calculs
GraphLissage( Lissage ) // appel mutli arguments = tous les élements de l'objet Lissage
}
CalculM1('4')
function GraphLissage( objArg )
{
// objArg.montant_a ... objArg.montant_z
} |
Partager