chargement initial
This commit is contained in:
126
caotek_mesavoirs/static/js/calcul_td.js
Normal file
126
caotek_mesavoirs/static/js/calcul_td.js
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
*
|
||||
* 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)) + " €";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user