Commit 014caa2c authored by N. Peraldi's avatar N. Peraldi

add php functions for generating cotisation values

parent 66d75416
<?php
/*
Template Name: Test
*/
/*
Template Name: Test
*/
get_header(); ?>
/*get_header();*/ ?>
<?php
......@@ -14,6 +14,7 @@ $ligne = fgetcsv($fichier,1024, ";");
//on effectue de nouveau cette instruction pour sauter les titres du tableau
$ligne = fgetcsv($fichier,1024,";");
$listeFinale = [];
function isWordIn($word,$list){
......@@ -27,14 +28,16 @@ function isWordIn($word,$list){
return false;
}
function deleteAccents($variable){
//fonction qui supprime les accents de la chaine et retourne la chaine
function createNameClass($variable){
//fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
$variable = str_replace("é","e",$variable);
$variable = str_replace("è","e",$variable);
$variable = str_replace("à","a",$variable);
$variable = str_replace("ç","c",$variable);
$variable = str_replace("ù","u",$variable);
$variable = str_replace(" ","_",$variable);
return $variable;
}
......@@ -42,8 +45,8 @@ function createSecondSelectList($liste){
//fonction qui crée la liste de classes qui sert pour le 2e select
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++){
$mot = str_replace(" ","_",$liste[$a][0]);
$mot = deleteAccents($mot);
$mot = createNameClass($liste[$a][0]);
if (!isWordIn($mot,$listeTempo)){
$listeTempo[] = ($mot);
......@@ -55,6 +58,21 @@ function createSecondSelectList($liste){
}
function createFirstSelectionList($liste){
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++){
$mot = $liste[$a][0];
if (!isWordIn($mot,$listeTempo)){
$listeTempo[] = ($mot);
}
}
return $listeTempo;
}
while ($ligne){
......@@ -65,301 +83,291 @@ while ($ligne){
fclose($fichier);
$secondSelectList = createSecondSelectList($listeFinale);
?>
<script>
var secondSelectList = [
"ville",
"departement",
"region",
"EPCIFiscalitePropre",
"etablissementPublic"
];
var listeCotisations = {
ville:{
T1:100,
T2:250,
T3:500,
T4:900,
T5:1500,
T6:2500,
T7:3000,
T8:3500,
T9:4000,
T10:4500,
T11:6000
},
departement:{
T1:4000,
T2:4500,
T3:6000
},
region:{
T1:4500,
T2:6000
},
EPCIFiscalitePropre:{
T1:1750,
T2:2500,
T3:3000,
T4:3500,
T5:4000,
T6:4500,
T7:6000
},
etablissementPublic:{
T1:250,
T2:500,
T3:1250,
T4:1750,
T5:2500
}
//on crée la première liste qui gère les textes de la première liste
$firstSelectionTextList = createFirstSelectionList($listeFinale);
//on crée la liste pour le 2e select qui contient le nom de toutes les classes
$secondSelectList = createSecondSelectList($listeFinale);
for ($i = 0; $i< count($secondSelectList); $i++){
echo "secondselectlist : " . $secondSelectList[$i] . "<br>";
}
?>
};
<script>
var secondSelectList = [
<?php
//on génère la variable secondSelectList avec php
for ($a = 0; $a < count($secondSelectList); $a++){
//liste des blocs qui peuvent être affichés / cachés
var blocks = ["link","paraSecondSelection","cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"];
echo "'" . $secondSelectList[$a] . "'";
if (($a + 1) < $secondSelectList){
echo ",\n";
}
}
?>
];
var listeCotisations = {
Ville:{
T1:100,
T2:250,
T3:500,
T4:900,
T5:1500,
T6:2500,
T7:3000,
T8:3500,
T9:4000,
T10:4500,
T11:6000
},
Departement:{
T1:4000,
T2:4500,
T3:6000
},
Region:{
T1:4500,
T2:6000
},
EPCI_a_fiscalite_propre:{
T1:1750,
T2:2500,
T3:3000,
T4:3500,
T5:4000,
T6:4500,
T7:6000
},
Etablissement_Public:{
T1:250,
T2:500,
T3:1250,
T4:1750,
T5:2500
}
};
//liste des blocs qui peuvent être affichés / cachés
var blocks = ["link","paraSecondSelection","cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"];
function displayMask(display){
//fonction qui affiche / cache les formulaires / informations en fonction des données entrées dans les formulaires
for(var h = 0; h< blocks.length; h++){
if (isWordIn(blocks[h],display)){
document.getElementById(blocks[h]).style.display = "block";
}
else{
document.getElementById(blocks[h]).style.display = "none";
}
function displayMask(display){
//fonction qui affiche / cache les formulaires / informations en fonction des données entrées dans les formulaires
for(var h = 0; h< blocks.length; h++){
if (isWordIn(blocks[h],display)){
document.getElementById(blocks[h]).style.display = "block";
}
else{
document.getElementById(blocks[h]).style.display = "none";
}
}
function displayMaskOptions(display){
//sert à afficher / cacher les options du 2e select menu
var tousLesElements = undefined;
}
}
function displayMaskOptions(display){
//sert à afficher / cacher les options du 2e select menu
for (var j = 0; j<secondSelectList.length ; j++){
//boucle for qui va parcourir la liste des classes des options disponibles
var tousLesElements = undefined;
if (display === secondSelectList[j]){
//si l'element en cours est celui de la classe recherchée
tousLesElements = document.getElementsByClassName(display);
for (var g = 0; g<tousLesElements.length; g++){
if(g === 0){
tousLesElements[g].selected=true;
}
for (var j = 0; j<secondSelectList.length ; j++){
//boucle for qui va parcourir la liste des classes des options disponibles
tousLesElements[g].hidden = false;
if (display === secondSelectList[j]){
//si l'element en cours est celui de la classe recherchée
tousLesElements = document.getElementsByClassName(display);
for (var g = 0; g<tousLesElements.length; g++){
if(g === 0){
//on passe la première option disponible en selected pour éviter un bug d'affichage
tousLesElements[g].selected=true;
}
}
else{
tousLesElements[g].hidden = false;
tousLesElements = document.getElementsByClassName(secondSelectList[j]);
for (var h = 0; h<tousLesElements.length; h++){
tousLesElements[h].hidden = true;
}
}
}
}
function firstAction() {
//fonction effectuée lorsque le premier select est validé
//on recup ce qui a été cliqué
var e = document.getElementById("firstSelect");
var strUser = e.options[e.selectedIndex].value;
//on reagit en fonction
//si il a cliqué vers individu, redirigé vers helloasso
if (strUser==="individu"){
linkRedirection("https://helloasso.com","Redirection vers HelloAsso");
displayMask(["link"]);
}
//si il a cliqué sur association
else if (strUser==="association"){
setCotisation(15);
displayMask(["cotisation","informationsCollectivite","boutonEnvoyer"]);
document.getElementById("secondSelection").required = false;
setEPCIRequired(false);
}
else{
else if(strUser==="EPCIMutualisant"){
//formulaire contenant la formule spécifique à EPCI mutualisant
displayMask(["formulaireEPCIMutualisant"]);
setEPCIRequired(true);
}
tousLesElements = document.getElementsByClassName(secondSelectList[j]);
else if (strUser==="none"){
//premier choix avec des tirets
displayMask([""]);
for (var h = 0; h<tousLesElements.length; h++){
tousLesElements[h].hidden = true;
}
}
}
//si il a cliqué sur autre chose : on cherche à connaitre la taille de la collectivité, on affiche le 2e select
else{
displayMaskOptions(strUser);
document.getElementById("secondSelection").required = true;
displayMask(["paraSecondSelection"]);
setEPCIRequired(false);
}
}
function firstAction() {
//fonction effectuée lorsque le premier select est validé
//on recup ce qui a été cliqué
var e = document.getElementById("firstSelect");
var strUser = e.options[e.selectedIndex].value;
/*for (var element in allForms){
//on reagit en fonction
if (element===strUser){
//si il a cliqué sur individu, redirigé vers helloasso
if (strUser==="individu"){
linkRedirection("https://helloasso.com","Redirection vers HelloAsso");
displayMask(["link"]);
}
//si il a cliqué sur association
else if (strUser==="association"){
setCotisation(15);
displayMask(["cotisation","informationsCollectivite","boutonEnvoyer"]);
document.getElementById("secondSelection").required = false;
setEPCIRequired(false);
}
document.getElementById(element).style.display = "block";
for (var j = 0; j < allForms[element].length; j++){
document.getElementById(allForms[element][j]).required = true;
}
else if(strUser==="EPCIMutualisant"){
//formulaire contenant la formule spécifique à EPCI mutualisant
displayMask(["formulaireEPCIMutualisant"]);
setEPCIRequired(true);
}
}
else{
else if (strUser==="none"){
//premier choix avec des tirets
displayMask([""]);
}
document.getElementById(element).style.display = "none";
//si il a cliqué sur autre chose : on cherche à connaitre la taille de la collectivité, on affiche le 2e select
else{
for (var i = 0; i < allForms[element].length; i++){
document.getElementById(allForms[element][i]).required = false;
}
}
}
displayMaskOptions(strUser);
document.getElementById("secondSelection").required = true;
displayMask(["paraSecondSelection"]);
setEPCIRequired(false);
*/
}
}
function isWordIn(word,list){
for (a = 0; a<list.length; a++){
if (word===list[a]){
return true
}
function isWordIn(word,list){
//le word est il contenu dans list ?
for (a = 0; a<list.length; a++){
if (word===list[a]){
return true
}
return false
}
function linkRedirection(link,title){
document.getElementById("linkRedirection").setAttribute("href",link);
document.getElementById("linkRedirection").setAttribute("title",title);
}
return false
}
function secondAction(){
var e = document.getElementById("secondSelection");
var selectedTranch = e.options[e.selectedIndex].getAttribute("id");
function linkRedirection(link,title){
//définit le lien de redirection et son titre
document.getElementById("linkRedirection").setAttribute("href",link);
document.getElementById("linkRedirection").setAttribute("title",title);
}
var tranch = selectedTranch.split("-");
setCotisation(listeCotisations[tranch[0]][tranch[1]]);
function secondAction(){
//fonction exécutée lorsque le 2e select est cliqué
var e = document.getElementById("secondSelection");
var selectedTranch = e.options[e.selectedIndex].getAttribute("id");
displayMask(["paraSecondSelection","cotisation","informationsCollectivite","boutonEnvoyer"]);
}
var tranch = selectedTranch.split("-");
setCotisation(listeCotisations[tranch[0]][tranch[1]]);
function setCotisation(x){
//définit le montant de la cotisation
document.getElementById("montantCotisation").innerHTML = x;
}
function setEPCIRequired(boolean){
//le formulaire EPCI est il requis ? cela varie selon les choix faits par l'utilisateur
document.getElementById("nombreHabitantsEPCI").required = boolean;
document.getElementById("nombreCommunesMembresEPCI").required = boolean;
}
displayMask(["paraSecondSelection","cotisation","informationsCollectivite","boutonEnvoyer"]);
}
function setCotisation(x){
//définit le montant de la cotisation
document.getElementById("montantCotisation").innerHTML = x;
document.getElementById("inputMontantCotisation").setAttribute("value",x);
}
function traitementEPCIMutualisant(){
//lorsque l'utilisateur valide les 2 nombres entrés pour l'EPCI, les traitements nécessaires sont ici
var nombreHabitants = document.getElementById("nombreHabitantsEPCI").value;
var nombreCommunesMembres = document.getElementById("nombreCommunesMembresEPCI").value;
function setEPCIRequired(boolean){
//le formulaire EPCI est il requis ? cela varie selon les choix faits par l'utilisateur
document.getElementById("nombreHabitantsEPCI").required = boolean;
document.getElementById("nombreCommunesMembresEPCI").required = boolean;
}
if (nombreHabitants !== ""){
if (nombreCommunesMembres !== ""){
var resultat = (0.035 * nombreHabitants) + (15 * nombreCommunesMembres) + 1200;
function traitementEPCIMutualisant(){
//lorsque l'utilisateur valide les 2 nombres entrés pour l'EPCI, les traitements nécessaires sont ici
var nombreHabitants = document.getElementById("nombreHabitantsEPCI").value;
var nombreCommunesMembres = document.getElementById("nombreCommunesMembresEPCI").value;
resultat = Math.round(resultat);
//cette fonction arrondit le nombre en fonction du nombre après la virgule.
//exemple :
// Math.round(20,4999) donnera 20
// Math.round(20,5) donnera 21
if (nombreHabitants !== ""){
if (nombreCommunesMembres !== ""){
var resultat = (0.035 * nombreHabitants) + (15 * nombreCommunesMembres) + 1200;
if (resultat>15000){
//le plafond est fixé à 15000
resultat = 15000;
}
resultat = Math.round(resultat);
//cette fonction arrondit le nombre en fonction du nombre après la virgule.
//exemple :
// Math.round(20,4999) donnera 20
// Math.round(20,5) donnera 21
setCotisation(resultat);
displayMask(["cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"]);
if (resultat>15000){
//le plafond est fixé à 15000
resultat = 15000;
}
setCotisation(resultat);
displayMask(["cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"]);
}
}
}
</script>
</script>
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
<b>Votre catégorie :</b>
</p>
<form action="contact.html" method="post">
<form action="contact.php" method="post">
<p>
<label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>
<select id="firstSelect" required="" name="firstSelection">
<option value="none">---</option>
<option class="optionFirstSelect" value="association">Association</option> <!-- valeur fixe : 15€ -->
<option class="optionFirstSelect" value="departement">Département</option>
<option class="optionFirstSelect" value="EPCIFiscalitePropre">EPCI à fiscalité propre</option>
<option class="optionFirstSelect" value="Departement">Département</option>
<option class="optionFirstSelect" value="EPCI_a_fiscalite_propre">EPCI à fiscalité propre</option>
<option class="optionFirstSelect" value="EPCIMutualisant">EPCI mutualisant</option>
<option class="optionFirstSelect" value="etablissementPublic">Etablissement public</option>
<option class="optionFirstSelect" value="Etablissement_Public">Etablissement public</option>
<option class="optionFirstSelect" value="individu">Individu </option> <!-- redirigé vers helloasso -->
<option class="optionFirstSelect" value="region">Région</option>
<option class="optionFirstSelect" value="ville">Ville</option>
<option class="optionFirstSelect" value="Region">Région</option>
<option class="optionFirstSelect" value="Ville">Ville</option>
</select>
</p>
<div id="link">
<a href="contact.html" id="linkRedirection" title="Page par défaut">Valider</a>
<a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
</div>
<div id="formulaireEPCIMutualisant">
......@@ -378,38 +386,38 @@ $secondSelectList = createSecondSelectList($listeFinale);
<label for="secondSelection">Veuillez sélectionner la taille :</label>
<select id="secondSelection" name="secondSelection">
<option class="ville" id="ville-T1" value="-1000">- de 1000</option>
<option class="ville" id="ville-T2" value="1001-2500">de 1 000 à 2 500</option>
<option class="ville" id="ville-T3" value="2501-5000">de 2 501 à 5 000</option>
<option class="ville" id="ville-T4" value="5001-10000">de 5 001 à 10 000</option>
<option class="ville" id="ville-T5" value="10001-20000">de 10 001 à 20 000</option>
<option class="ville" id="ville-T6" value="20001-30000">de 20 001 à 30 000</option>
<option class="ville" id="ville-T7" value="30001-50000">de 30 001 à 50 000</option>
<option class="ville" id="ville-T8" value="50001-80000">de 50 001 à 80 000</option>
<option class="ville" id="ville-T9" value="80001-100000">de 80 001 à 100 000</option>
<option class="ville" id="ville-T10" value="+100000">+ de 100 000</option>
<option class="ville" id="ville-T11" value="arrondissement">à arrondissement</option>
<option class="departement" id="departement-T1" value="-1000000">- de 1 000 000</option>
<option class="departement" id="departement-T2" value="1000001-2000000">de 1 000 001 à 2 000 000</option>
<option class="departement" id="departement-T3" value="+2000000">+ de 2 000 000</option>
<option class="region" id="region-T1" value="-2500000">- de 2 500 000</option>
<option class="region" id="region-T2" value="+2500000">+ de 2 500 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T1" value="-10000">- de 10 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T2" value="10001-50000">de 10 001 à 50 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T3" value="50001-100000">de 50 001 à 100 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T4" value="100001-250000">de 100 001 à 250 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T5" value="250001-500000">de 250 001 à 500 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T6" value="500001-1000000">de 500 001 à 1 000 000</option>
<option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T7" value="+1000000">+ de 1 000 000</option>
<option class="etablissementPublic" id="etablissementPublic-T1" value="-25">- de 25</option>
<option class="etablissementPublic" id="etablissementPublic-T2" value="25-50">de 25 à 50</option>
<option class="etablissementPublic" id="etablissementPublic-T3" value="51-100">de 51 à 100</option>
<option class="etablissementPublic" id="etablissementPublic-T4" value="101-500">de 101 à 500</option>
<option class="etablissementPublic" id="etablissementPublic-T5" value="+500">+ de 500</option>
<option class="Ville" id="Ville-T1" value="-1000">- de 1000</option>
<option class="Ville" id="Ville-T2" value="1001-2500">de 1 000 à 2 500</option>
<option class="Ville" id="Ville-T3" value="2501-5000">de 2 501 à 5 000</option>
<option class="Ville" id="Ville-T4" value="5001-10000">de 5 001 à 10 000</option>
<option class="Ville" id="Ville-T5" value="10001-20000">de 10 001 à 20 000</option>
<option class="Ville" id="Ville-T6" value="20001-30000">de 20 001 à 30 000</option>
<option class="Ville" id="Ville-T7" value="30001-50000">de 30 001 à 50 000</option>
<option class="Ville" id="Ville-T8" value="50001-80000">de 50 001 à 80 000</option>
<option class="Ville" id="Ville-T9" value="80001-100000">de 80 001 à 100 000</option>
<option class="Ville" id="Ville-T10" value="+100000">+ de 100 000</option>
<option class="Ville" id="Ville-T11" value="arrondissement">à arrondissement</option>
<option class="Departement" id="Departement-T1" value="-1000000">- de 1 000 000</option>
<option class="Departement" id="Departement-T2" value="1000001-2000000">de 1 000 001 à 2 000 000</option>
<option class="Departement" id="Departement-T3" value="+2000000">+ de 2 000 000</option>
<option class="Region" id="Region-T1" value="-2500000">- de 2 500 000</option>
<option class="Region" id="Region-T2" value="+2500000">+ de 2 500 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T1" value="-10000">- de 10 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T2" value="10001-50000">de 10 001 à 50 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T3" value="50001-100000">de 50 001 à 100 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T4" value="100001-250000">de 100 001 à 250 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T5" value="250001-500000">de 250 001 à 500 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T6" value="500001-1000000">de 500 001 à 1 000 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T7" value="+1000000">+ de 1 000 000</option>
<option class="Etablissement_Public" id="Etablissement_Public-T1" value="-25">- de 25</option>
<option class="Etablissement_Public" id="Etablissement_Public-T2" value="25-50">de 25 à 50</option>
<option class="Etablissement_Public" id="Etablissement_Public-T3" value="51-100">de 51 à 100</option>
<option class="Etablissement_Public" id="Etablissement_Public-T4" value="101-500">de 101 à 500</option>
<option class="Etablissement_Public" id="Etablissement_Public-T5" value="+500">+ de 500</option>
......@@ -418,6 +426,7 @@ $secondSelectList = createSecondSelectList($listeFinale);
<div id="cotisation">
<p>Montant de la cotisation : <span id="montantCotisation"></span></p>
<input type="hidden" id="inputMontantCotisation" value="0">
</div>
......@@ -470,4 +479,4 @@ $secondSelectList = createSecondSelectList($listeFinale);
</script>
<?php get_footer(); ?>
<?php /*get_footer();*/ ?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment