127 lines
3.7 KiB
JavaScript
127 lines
3.7 KiB
JavaScript
/*
|
|
*
|
|
* CONTROLES DE REMPLISSAGE DE CHAMP ET AUTRES
|
|
*
|
|
*/
|
|
var CACHER = 'fast';
|
|
var AFFICHER = 'slow';
|
|
|
|
// Saisie de Revenu Fiscal de Référence ou Base TD du séjour
|
|
function numberCheck(champ){
|
|
if(document.getElementById(champ).value.length == 0){
|
|
document.getElementById(champ).value = 0;
|
|
}
|
|
|
|
if(parseInt(document.getElementById(champ).value) < 0){
|
|
document.getElementById(champ).value = 0;
|
|
}
|
|
|
|
if(champ == 'nbPartCAES'){
|
|
if(parseFloat(document.getElementById(champ).value.replace(",","."))%0.5 != 0 || parseFloat(document.getElementById(champ).value.replace(",",".")) < 1){
|
|
document.getElementById(champ).value = 1;
|
|
}
|
|
}
|
|
|
|
if(champ == 'nbj'){
|
|
if(parseInt(document.getElementById(champ).value) > 22){
|
|
document.getElementById(champ).value = 22;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Fonction pour garder deux chiffres après la virgule pour les champs calculés
|
|
function toMoney(num){
|
|
num = parseInt(Math.round(num*100));
|
|
return num/100;
|
|
}
|
|
|
|
/*
|
|
*
|
|
* XHTTP REQUEST
|
|
*
|
|
*/
|
|
var xhr = new XMLHttpRequest();
|
|
|
|
function calculer(){
|
|
// On prend les valeurs de l'étape 1
|
|
var rfr = parseFloat(document.getElementById("rfr").value.replace(",","."));
|
|
var nbPartCAES = parseFloat(document.getElementById("nbPartCAES").value.replace(",","."));
|
|
var btd = parseFloat(document.getElementById("btd").value.replace(",","."));
|
|
var nbj = parseInt(document.getElementById("nbj").value.replace(",","."));
|
|
|
|
// Si le Revenu Fiscal de Référence ou la Base TD du séjour ne sont pas des chiffres (on fait ces tests pour les anciens navigateurs qui gèrent pas le type number)
|
|
if(isNaN(rfr) || isNaN(btd)){
|
|
document.getElementById("erreur1").style.display="block";
|
|
} else {
|
|
rfr = parseFloat(rfr);
|
|
btd = parseFloat(btd);
|
|
// Si le Revenu Fiscal de Référence ou la Base TD du séjour sont négatifs
|
|
if(rfr<0 || btd<0){
|
|
document.getElementById("erreur1").style.display="block";
|
|
} else {
|
|
document.getElementById("erreur1").style.display="none";
|
|
|
|
xhr.open("GET", "/calcul_td/E1TD/"+Math.ceil(rfr/nbPartCAES),true);
|
|
xhr.onreadystatechange = afficher;
|
|
xhr.send(null);
|
|
|
|
// On cache tous le bloc de résultat
|
|
$("#res").hide(CACHER);
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
* FONCTION CALLBACK
|
|
*
|
|
*/
|
|
|
|
function afficher(){
|
|
if(xhr.readyState == 4){
|
|
$("#res").show(AFFICHER);
|
|
|
|
// On prend ce qui est retourné par la requête XHTTP
|
|
var res = eval('(' + xhr.responseText + ')');
|
|
|
|
// On prend les valeurs de l'étape 1
|
|
var rfr = parseFloat(document.getElementById("rfr").value.replace(",","."));
|
|
var nbPartCAES = parseFloat(document.getElementById("nbPartCAES").value.replace(",","."));
|
|
var btd = parseFloat(document.getElementById("btd").value.replace(",","."));
|
|
var nbj = parseInt(document.getElementById("nbj").value);
|
|
var td = 0;
|
|
|
|
// On affiche le TD famille
|
|
document.getElementById("tdf").innerHTML = res.td_famille + " %";
|
|
|
|
// On affiche le TD jeunes
|
|
document.getElementById("tdj").innerHTML = res.td_jeunes + " %";
|
|
|
|
// On affiche le TD CESU
|
|
document.getElementById("tdc").innerHTML = res.td_cesu + " %";
|
|
|
|
// On calcule le Quotient Familial
|
|
document.getElementById("qf").innerHTML = Math.ceil(rfr/nbPartCAES) + " €";
|
|
|
|
// On affiche la base TD du séjour
|
|
document.getElementById("tds").innerHTML = btd + " €";
|
|
|
|
// On affiche le coût du séjour famille
|
|
document.getElementById("csf").innerHTML = toMoney(btd - ((btd * parseFloat(res.td_famille))/100)) + " €";
|
|
|
|
// On affiche le coût du séjour jeunes
|
|
if(nbj == 0){
|
|
document.getElementById("csj").innerHTML = "-- €";
|
|
} else {
|
|
var cout_jour = btd/nbj;
|
|
var subv = 0;
|
|
if(cout_jour > 100){
|
|
subv = parseFloat(res.td_jeunes);
|
|
}else{
|
|
subv = (parseFloat(res.td_jeunes) * cout_jour)/100;
|
|
}
|
|
document.getElementById("csj").innerHTML = toMoney(btd - (subv * nbj)) + " €";
|
|
}
|
|
}
|
|
}
|