| 12
 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