diff --git a/controleurs/c_connexion.php b/controleurs/c_connexion.php new file mode 100644 index 0000000..20e3b80 --- /dev/null +++ b/controleurs/c_connexion.php @@ -0,0 +1,59 @@ +getInfosPompier($login,$mdp); + + if(!is_array( $utilisateur)){ + $formulaire ="frmIdentification"; + $champ ="login"; + include("vues/v_entete.php"); + ajouterErreur("Login ou mot de passe incorrect"); + include("vues/v_erreurs.php"); + include("vues/v_connexion.php"); + } + else{ + $id = $utilisateur['id']; + $nom = $utilisateur['nom']; + $prenom = $utilisateur['prenom']; + $a1 = $utilisateur['cNom']; + $a2 = $utilisateur['cAdresse']; + $a3 = "(GT de ".$utilisateur['cGroupement'].")"; + $a4 = $utilisateur['cTel']; + connecter($utilisateur['pCis'],$id,$nom,$prenom,$utilisateur['pStatut'], $a1, $a2, $a3, $a4); + header ('location: index.php?choixTraitement=pompiers&action=voir'); + } + break; + } + default :{ + $formulaire ="frmIdentification"; + $champ ="login"; + include("vues/v_entete.php"); + include("vues/v_connexion.php"); + break; + } +} +?> \ No newline at end of file diff --git a/controleurs/c_disponibilitée.php b/controleurs/c_disponibilitée.php new file mode 100644 index 0000000..0f9f7ec --- /dev/null +++ b/controleurs/c_disponibilitée.php @@ -0,0 +1,19 @@ +majActivite( + $_SESSION['cis'], + $_SESSION['idUtilisateur'], + $_POST['date'], + $_POST['tranche'], + $_POST['dispo'] +); + diff --git a/controleurs/c_gardes.php b/controleurs/c_gardes.php new file mode 100644 index 0000000..de3bb45 --- /dev/null +++ b/controleurs/c_gardes.php @@ -0,0 +1,45 @@ +getParametre("tranche"); + $lesTypesDispos = $pdo->getParametre("dispo"); + $lesPompiers = $pdo->getLesPompiers($_SESSION['cis']); + $lesDispos = $pdo->getDisposHebdo("*", $semaine, $annee); + include("vues/v_ficheGardes.php"); + break; + } +//----------------------------------------- +case 'majGarde': + { + $Garde = ($_REQUEST["ztExGarde"] == "0") ? 1 : 0; + $pdo->majGarde(); + header ('location: index.php?choixTraitement=gardes&action=voir&zSemaine='.$_REQUEST["zSemaine"].'&zAnnee='.$_REQUEST["zAnnee"]); + break; + } +//----------------------------------------- +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +?> diff --git a/controleurs/c_interventions.php b/controleurs/c_interventions.php new file mode 100644 index 0000000..e09bdb3 --- /dev/null +++ b/controleurs/c_interventions.php @@ -0,0 +1,67 @@ +getParametre("tranche"); + $lesTypesDispos = $pdo->getParametre("dispo"); + $titre="CIS"; //Centre d'incendie et de secours :"; + $lesCasernes = $pdo->getLesCasernes($_SESSION["adr1"]); + include("vues/v_choixCaserne.php"); + $lesPompiers = $pdo->getLesPompiers($choix); + $lesInterventions=$pdo->getLesInterventions($choix); + $intervention=1; + $lesParticipants= $pdo->getLesParticipants($choix, $intervention); + include("vues/v_Intervention.php"); + break; + } + +//----------------------------------------- +case 'majGarde': + { + $pdo->majGarde($_REQUEST["ztLaDate"], $_REQUEST["ztLaTranche"], $_REQUEST["ztExGarde"], $_REQUEST["ztPompier"]); + header ('location: index.php?choixTraitement=gardes&action=voir&zSemaine='.$_REQUEST["zSemaine"].'&zAnnee='.$_REQUEST["zAnnee"]); + break; + } + +//----------------------------------------- +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +/* +table equipe: +eCis smallint(6) +ePompier smallint(6) +eIntervention smallint(6) + +table intervention : +iCis smallint(6) +iId smallint(6) +iLieu varchar(50) +iDescription varchar(255) +iDate datetime +iTranche tinyint(3) +iHeureDebut datetime +iHeureFin datetime + */ +?> diff --git a/controleurs/c_param.php b/controleurs/c_param.php new file mode 100644 index 0000000..d2f1516 --- /dev/null +++ b/controleurs/c_param.php @@ -0,0 +1,85 @@ +getLesParametres(); + include("vues/v_choixParam.php"); + $enteteParametre=$lesParametres[$noP-1]; + $lesInfosParametre = $pdo->getParametre($choix,"*"); + include("vues/v_ficheParametre.php"); + $stat="2"; + break; + } +//-----------------------------------------liste détaillée pour un parametre +case 'liste': + { + include("vues/v_entete.php"); + $lesParametres=$pdo->getLesParametres(); + include("vues/v_choixParam.php"); + + $lesStatistiques = $pdo->getParametre($choix, $indice); + $titre2=$lesStatistiques[0]['libelle']; + include("vues/v_listeStat.php"); + break; + } +//----------------------------------------- AJOUT +case 'ajouter': +case 'modifier': +case 'supprimer': + { + include("vues/v_entete.php"); + $infosParam = $pdo->getInfosParam($type, $valeur); + include("vues/v_unParam.php"); + break; + } +//----------------------------------------- VALIDATIONS +case 'validerAjouter': + {// enregistrement de la ligne et retour + if ($_REQUEST['zOk']=="OK") {$pdo->ajoutParametre($type, $valeur, addslashes ($_REQUEST['zLibelle']), $plancher, $plafond);} + header ('location: index.php?choixTraitement=parametres&action=voir&lstParam='.$type); + } +//----------------------------------------- MODIFICATION +case 'validerModifier': + { + if ($_REQUEST['zOk']=="OK") {$pdo->majParametre($type, $valeur, addslashes ($_REQUEST['zLibelle']), $plancher, $plafond);} + header ('location: index.php?choixTraitement=parametres&action=voir&lstParam='.$type); + break; + } +//----------------------------------------- SUPPRESSION +case 'validerSupprimer': + { + if ($_REQUEST['zOk']=="OK") {$pdo->supprimeParametre($type, $valeur);} + header ('location: index.php?choixTraitement=parametres&action=voir&lstParam='.$type); + break; + } +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +?> \ No newline at end of file diff --git a/controleurs/c_pompiers.php b/controleurs/c_pompiers.php new file mode 100644 index 0000000..70aa370 --- /dev/null +++ b/controleurs/c_pompiers.php @@ -0,0 +1,136 @@ +getLesPompiers($_SESSION['cis']); + include("vues/v_choixPompier.php"); // Formulaire de choix des pompiers + + $lesInfosPompier = $pdo->getInfosPompier("*",$choix); + $lesTranches = $pdo->getParametre("tranche"); + $lesGardes = $pdo->getInfosGardes($choix); + + if(!isset($_REQUEST['zSemaine'])) { + $_REQUEST['zSemaine'] = date('W'); + } + $semaine = $_REQUEST['zSemaine']; + + if(!isset($_REQUEST['zAnnee'])) { + $_REQUEST['zAnnee'] = date('Y'); + } + $annee = $_REQUEST['zAnnee']; + $lesDispos = $pdo->getDisposHebdo($choix, $semaine, $annee); + //echo "annee:".$annee."pompier: ".$choix."semaine : ".$semaine; + $premierJour = strtotime("+$semaine weeks", mktime(0,0,0,1,1,$annee)); + + if (date('w',$premierJour) != 1){ + $premierJour = strtotime("last monday", $premierJour); + } + $lesTypesDispos = $pdo->getParametre("dispo"); + include("vues/v_fichePompier.php"); + + break; + } +//----------------------------------------- FORMULAIRE DE SAISIE +case 'ajouter': +case 'modifier': +case 'supprimer': + { + $formulaire ="frmA"; + $champ ="ztNom"; + include("vues/v_entete.php"); + $choix= $_REQUEST['lstPompiers']; + $lesInfosPompier = $pdo->getInfosPompier("*",$choix); + $lesTypes = $pdo->getParametre("typePer"); + $lesGrades = $pdo->getParametre("grade"); + $lesStatuts = $pdo->getParametre("statAgt"); + include("vues/v_unPompier.php"); + break; + } +//----------------------------------------- VALIDATION +case 'validerAjouter': +case 'validerModifier': +case 'validerSupprimer': + { + $valeur = $_REQUEST['agent']; + if ($_REQUEST['zOk']=="OK") + { + if ($action==="validerSupprimer") {$pdo->supprimePompier($valeur);} + else + { + $nom = addslashes ($_REQUEST['ztNom']); + $prenom = addslashes ($_REQUEST['ztPrenom']); + $type = $_REQUEST['lstType']; + $grade = $_REQUEST['lstGrade']; + $statut = $_REQUEST['lstStatut']; + $cis = $_REQUEST['zCis']; + $mail = $_REQUEST['ztMail']; + $login = $_REQUEST['ztLogin']; + $mdp = md5($_REQUEST['ztMdp']); if($_REQUEST['brMdp']==0 AND $action==="validerModifier") {$mdp="*";} + $adresse = addslashes ($_REQUEST['ztAdresse']); + + if (strlen($_REQUEST['ztCP'])>1){ + $cp = $_REQUEST['ztCP'];} else {$cp = "Null"; + } + $ville = addslashes($_REQUEST['ztVille']); + + if (strlen($_REQUEST['ztTel'])>1) { + $tel = str_replace(" ", "", $_REQUEST['ztTel']); + $tel=str_replace(".", "", $tel); + $tel=str_replace("/", "", $tel); + } else { + $tel="Null"; + } + $commentaire = addslashes ($_REQUEST['ztObs']); + if ($action === "validerAjouter") { + $pdo->ajoutPompier($cis, $valeur,$nom,$prenom,$statut,$mail,$login,$mdp,$grade,$type,$adresse,$cp,$ville,$tel,$commentaire); + $sujet = "nouveau compte"; + $msg = "Bonjour " . $prenom . " " . $nom . ", \r\nLe Castel vient de créer un compte pour vous ...\r\n"; + } else { + $pdo->majPompier($cis, $valeur,$nom,$prenom,$statut,$mail,$login,$mdp,$grade,$type,$adresse,$cp,$ville,$tel,$commentaire); + $sujet = "nouveau mot de passe"; + $msg = "Bonjour " . $prenom . " " . $nom . ", \r\nLe Castel vient de modifier votre mot de passe ...\r\n"; + } + $entete = "From: Pascal Blain \r\n"; + $entete .= "Mime-Version: 1.0\r\n"; + $entete .= "Content-type: text/html; charset=utf-8\r\n"; + $entete .= "\r\n"; + $msg .= "Statut : " . $statut."\r\n"; + $msg .= "Identifiant : " . $login."\r\n"; + $msg .= "Mot de passe : " . $_REQUEST['ztMdp'] . "\r\n"; + //$pdo->envoyerMail($mail, $sujet, $msg, $entete); + } + } + header ('location: index.php?choixTraitement=pompiers&action=voir&lstPompiers=' . $valeur); + break; + } + +//----------------------------------------- +case 'majActivite': + { + $pdo->majActivite($_REQUEST["ztLaDate"], $_REQUEST["ztLaTranche"], $_REQUEST["ztExDispo"],$_REQUEST["brDispo"] ); + header ('location: index.php?choixTraitement=pompiers&action=voir&zSemaine='.$_REQUEST["zSemaine"].'&zAnnee='.$_REQUEST["zAnnee"]); + break; + } + +//----------------------------------------- +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +?> diff --git a/images/Thumbs.db b/images/Thumbs.db new file mode 100644 index 0000000..ca14538 Binary files /dev/null and b/images/Thumbs.db differ diff --git a/images/add.png b/images/add.png new file mode 100644 index 0000000..7d89701 Binary files /dev/null and b/images/add.png differ diff --git a/images/ajout.gif b/images/ajout.gif new file mode 100644 index 0000000..59d14ed Binary files /dev/null and b/images/ajout.gif differ diff --git a/images/ajouter.jpg b/images/ajouter.jpg new file mode 100644 index 0000000..63f0db6 Binary files /dev/null and b/images/ajouter.jpg differ diff --git a/images/ajoutmembre.png b/images/ajoutmembre.png new file mode 100644 index 0000000..73218e3 Binary files /dev/null and b/images/ajoutmembre.png differ diff --git a/images/alerte moyen.jpg b/images/alerte moyen.jpg new file mode 100644 index 0000000..4b52ec0 Binary files /dev/null and b/images/alerte moyen.jpg differ diff --git a/images/alerte.jpg b/images/alerte.jpg new file mode 100644 index 0000000..bb3d87a Binary files /dev/null and b/images/alerte.jpg differ diff --git a/images/alerte.png b/images/alerte.png new file mode 100644 index 0000000..62ea777 Binary files /dev/null and b/images/alerte.png differ diff --git a/images/alerte_petit.jpg b/images/alerte_petit.jpg new file mode 100644 index 0000000..2d88751 Binary files /dev/null and b/images/alerte_petit.jpg differ diff --git a/images/annuler.jpg b/images/annuler.jpg new file mode 100644 index 0000000..48d6578 Binary files /dev/null and b/images/annuler.jpg differ diff --git a/images/bt-print.gif b/images/bt-print.gif new file mode 100644 index 0000000..3868905 Binary files /dev/null and b/images/bt-print.gif differ diff --git a/images/bt-send.gif b/images/bt-send.gif new file mode 100644 index 0000000..9e4d674 Binary files /dev/null and b/images/bt-send.gif differ diff --git a/images/castel.png b/images/castel.png new file mode 100644 index 0000000..1cddff4 Binary files /dev/null and b/images/castel.png differ diff --git a/images/cocheB.gif b/images/cocheB.gif new file mode 100644 index 0000000..80fde56 Binary files /dev/null and b/images/cocheB.gif differ diff --git a/images/cocheR.gif b/images/cocheR.gif new file mode 100644 index 0000000..573a6d4 Binary files /dev/null and b/images/cocheR.gif differ diff --git a/images/cocheV.gif b/images/cocheV.gif new file mode 100644 index 0000000..03764a8 Binary files /dev/null and b/images/cocheV.gif differ diff --git a/images/copyleft.png b/images/copyleft.png new file mode 100644 index 0000000..ebaed0b Binary files /dev/null and b/images/copyleft.png differ diff --git a/images/cp.gif b/images/cp.gif new file mode 100644 index 0000000..1ea5ba3 Binary files /dev/null and b/images/cp.gif differ diff --git a/images/danger.jpg b/images/danger.jpg new file mode 100644 index 0000000..4808925 Binary files /dev/null and b/images/danger.jpg differ diff --git a/images/deconnexion.png b/images/deconnexion.png new file mode 100644 index 0000000..f303727 Binary files /dev/null and b/images/deconnexion.png differ diff --git a/images/droite.gif b/images/droite.gif new file mode 100644 index 0000000..ebfe68e Binary files /dev/null and b/images/droite.gif differ diff --git a/images/droite_.gif b/images/droite_.gif new file mode 100644 index 0000000..97c5276 Binary files /dev/null and b/images/droite_.gif differ diff --git a/images/editer.jpg b/images/editer.jpg new file mode 100644 index 0000000..c23b2e1 Binary files /dev/null and b/images/editer.jpg differ diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000..68f069d Binary files /dev/null and b/images/favicon.ico differ diff --git a/images/favicon.ico castel.ico b/images/favicon.ico castel.ico new file mode 100644 index 0000000..1cddff4 Binary files /dev/null and b/images/favicon.ico castel.ico differ diff --git a/images/fermer.png b/images/fermer.png new file mode 100644 index 0000000..8528699 Binary files /dev/null and b/images/fermer.png differ diff --git a/images/fleche_oblique.png b/images/fleche_oblique.png new file mode 100644 index 0000000..241f6a5 Binary files /dev/null and b/images/fleche_oblique.png differ diff --git a/images/gauche.gif b/images/gauche.gif new file mode 100644 index 0000000..a67761a Binary files /dev/null and b/images/gauche.gif differ diff --git a/images/gauche_.gif b/images/gauche_.gif new file mode 100644 index 0000000..0cf0000 Binary files /dev/null and b/images/gauche_.gif differ diff --git a/images/goDernier.gif b/images/goDernier.gif new file mode 100644 index 0000000..aa558af Binary files /dev/null and b/images/goDernier.gif differ diff --git a/images/goPrecedent.gif b/images/goPrecedent.gif new file mode 100644 index 0000000..8100aab Binary files /dev/null and b/images/goPrecedent.gif differ diff --git a/images/goPremier.gif b/images/goPremier.gif new file mode 100644 index 0000000..06f8646 Binary files /dev/null and b/images/goPremier.gif differ diff --git a/images/goSuivant.gif b/images/goSuivant.gif new file mode 100644 index 0000000..78eee73 Binary files /dev/null and b/images/goSuivant.gif differ diff --git a/images/group.png b/images/group.png new file mode 100644 index 0000000..40b2044 Binary files /dev/null and b/images/group.png differ diff --git a/images/imprimer.gif b/images/imprimer.gif new file mode 100644 index 0000000..92a363b Binary files /dev/null and b/images/imprimer.gif differ diff --git a/images/infobulle.png b/images/infobulle.png new file mode 100644 index 0000000..1d28652 Binary files /dev/null and b/images/infobulle.png differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000..df1a527 Binary files /dev/null and b/images/logo.png differ diff --git a/images/milieu.gif b/images/milieu.gif new file mode 100644 index 0000000..76c2f66 Binary files /dev/null and b/images/milieu.gif differ diff --git a/images/milieu_.gif b/images/milieu_.gif new file mode 100644 index 0000000..a2b408d Binary files /dev/null and b/images/milieu_.gif differ diff --git a/images/modif.gif b/images/modif.gif new file mode 100644 index 0000000..21d0c91 Binary files /dev/null and b/images/modif.gif differ diff --git a/images/picto_disconnect.png b/images/picto_disconnect.png new file mode 100644 index 0000000..bd7bc4f Binary files /dev/null and b/images/picto_disconnect.png differ diff --git a/images/plus.png b/images/plus.png new file mode 100644 index 0000000..e22c9d5 Binary files /dev/null and b/images/plus.png differ diff --git a/images/plusB.png b/images/plusB.png new file mode 100644 index 0000000..4a7ab89 Binary files /dev/null and b/images/plusB.png differ diff --git a/images/plusBleu.png b/images/plusBleu.png new file mode 100644 index 0000000..2409704 Binary files /dev/null and b/images/plusBleu.png differ diff --git a/images/plusGrand.png b/images/plusGrand.png new file mode 100644 index 0000000..32d66be Binary files /dev/null and b/images/plusGrand.png differ diff --git a/images/recherche.jpg b/images/recherche.jpg new file mode 100644 index 0000000..a7da02b Binary files /dev/null and b/images/recherche.jpg differ diff --git a/images/recherche2.jpg b/images/recherche2.jpg new file mode 100644 index 0000000..ea0ab63 Binary files /dev/null and b/images/recherche2.jpg differ diff --git a/images/recherche3.jpg b/images/recherche3.jpg new file mode 100644 index 0000000..ecbf685 Binary files /dev/null and b/images/recherche3.jpg differ diff --git a/images/rechercher.jpg b/images/rechercher.jpg new file mode 100644 index 0000000..044d66e Binary files /dev/null and b/images/rechercher.jpg differ diff --git a/images/supprimer.gif b/images/supprimer.gif new file mode 100644 index 0000000..ede2830 Binary files /dev/null and b/images/supprimer.gif differ diff --git a/images/supprimer.jpg b/images/supprimer.jpg new file mode 100644 index 0000000..3b14da8 Binary files /dev/null and b/images/supprimer.jpg differ diff --git a/images/users.png b/images/users.png new file mode 100644 index 0000000..2e06d79 Binary files /dev/null and b/images/users.png differ diff --git a/images/validation.jpg b/images/validation.jpg new file mode 100644 index 0000000..dbf0f9d Binary files /dev/null and b/images/validation.jpg differ diff --git a/images/valider.jpg b/images/valider.jpg new file mode 100644 index 0000000..1dc5a9b Binary files /dev/null and b/images/valider.jpg differ diff --git a/include/class.pdo.php b/include/class.pdo.php new file mode 100644 index 0000000..7e9e503 --- /dev/null +++ b/include/class.pdo.php @@ -0,0 +1,502 @@ +query("SET CHARACTER SET utf8"); + } + public function _destruct() + { + PdoBD::$monPdo = null; + } + + /** + * Fonction statique qui cree l'unique instance de la classe PdoBD + * Appel : $instancePdoBD = PdoBD::getPdoBD(); + */ + public static function getPdoBD() + { + if (PdoBD::$monPdoBD == null) { + PdoBD::$monPdoBD = new PdoBD(); + } + return PdoBD::$monPdoBD; + } + + /** + * Retourne les informations d'un centre de coordination + */ + public function getLesCasernes($leCentre) + { + $req = "SELECT cId, cNom, cAdresse, cTel, cGroupement + FROM caserne + WHERE cGroupement='" . $leCentre . "' + ORDER BY cNom;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des casernes ..", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les informations des pompiers + */ + public function getLesPompiers($cis) + { + $req = "SELECT pCis, pId, pNom, pPrenom, pStatut + FROM pompier + WHERE pCis=" . $cis . " + ORDER BY pNom;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des pompiers ..", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les informations d'un pompier sous la forme d'un tableau associatif + */ + public function getInfosPompier($login, $mdp) + { + $req = "SELECT pCis, pId as id, pNom as nom, pPrenom as prenom, pStatut, pMail, pLogin, pMdp, pGrade, pAdresse, pCp, pVille, pBip, pCommentaire, + 'la caserne' as cNom, 'adresse' as cAdresse, 'telephone' as cTel, 'le groupement' as cGroupement, 'le grade' as wGrade, 'le statut' as wStatut, 'le type' as wType + FROM pompier"; + if ($login === "*") { + $req .= " WHERE pCis=" . $_SESSION['cis'] . " AND pId = $mdp"; + } else { + $req .= " WHERE pLogin='$login' + AND pMdp='$mdp'"; + } + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des informations d'un pompier...", $req, PdoBD::$monPdo->errorInfo()); + } + $ligne = $rs->fetch(); + return $ligne; + } + + /** + * Met à jour l'activité d'un pompier sur une tranche + */ + public function majActivite($cis, $idUser, $jour, $tranche, $newDispo) + { + $existedTranche = 'SELECT aDisponibilite FROM `activite` + WHERE aCis = ' . $cis . ' AND aDateGarde = "' . $jour . '" AND aTranche = ' . $tranche . ' AND aPompier = ' . $idUser . ';'; + $rs = PdoBD::$monPdo->query($existedTranche); + var_dump($rs); + + if ($rs === false) { + afficherErreurSQL("Probleme lors de la mise à jour de l'activité dans la base de données.", $existedTranche, PdoBD::$monPdo->errorInfo()); + } else { + + if (count($rs->fetch()) !== 2) { + $req = 'INSERT INTO activite (aCis, aPompier, aDateGarde, aTranche, aDisponibilite, aGarde) + VALUES (' . $cis . ', + ' . $idUser . ', + ' . $jour . ', + ' . $tranche . ', + ' . $newDispo . ', 0);'; + } else { + $req = 'UPDATE activite + SET aDisponibilite = ' . $newDispo . ' + WHERE aCis = ' . $cis . ' + AND aPompier = ' . $idUser . ' + AND aDateGarde = "' . $jour . '" + AND aTranche = ' . $tranche . ';'; + } + var_dump($req); + $rs = PdoBD::$monPdo->exec($req); + + if ($rs === false) { + afficherErreurSQL("Probleme lors de la mise à jour de l'activité dans la base de données.", $existedTranche, PdoBD::$monPdo->errorInfo()); + } + } + } + + /** + * Met à jour la garde d'un pompier sur une tranche + */ + public function majGarde() + { + $req = " + "; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la mise à jour de la garde dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + /** + * Met à jour une ligne de la table pompier + */ + public function majPompier($cis, $valeur, $nom, $prenom, $statut, $mail, $login, $mdp, $grade, $type, $adresse, $cp, $ville, $tel, $commentaire) + { + $req = " + + + + + ;"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la mise à jour du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + /** + * supprime une ligne de la table pompier + */ + public function supprimePompier($cis, $valeur) + { + $req = " + + ;"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la suppression du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + /** + * ajoute une ligne dans la table pompier + */ + public function ajoutPompier($cis, $valeur, $nom, $prenom, $statut, $mail, $login, $mdp, $grade, $type, $adresse, $cp, $ville, $tel, $commentaire) + { + $req = "INSERT INTO pompier + (pCis,pId,pNom,pPrenom,pStatut,pMail,pLogin,pMdp,pGrade,pType, pAdresse,pCp,pVille,pBip,pCommentaire,pDateEnreg,pDateModif) + VALUES + ( + );"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de l'insertion du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + /** + * Retourne les informations des gardes d'un pompier (ou des pompiers) sous la forme d'un tableau associatif + */ + public function getInfosGardes($pompier) + { + $req = "SELECT aPompier, DATE_FORMAT(aDateGarde,'%d/%m/%Y') as wDate, aTranche, pLibelle as tLibelle + FROM activite INNER JOIN parametre ON pType='tranche' AND aTranche=pIndice + WHERE aCis=" . $_SESSION['cis']; + if ($pompier <> "*") { + $req .= " AND aPompier=" . $pompier; + } + $req .= " AND aGarde=True + ORDER BY aPompier, aDateGarde DESC, aTranche ASC;"; + + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des gardes d'un pompier...", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les informations des disponibilites hebdomadaires d'un pompier sous la forme d'un tableau associatif + */ + public function getDisposHebdo($pompier, $semaine, $annee) + { + $premierJour = strtotime("+$semaine weeks", mktime(0, 0, 0, 1, 1, $annee)); //renvoie la date du lundi + + if (date('w', $premierJour) != 1) { + $premierJour = strtotime("last monday", $premierJour); + } + $debut = date('Y/m/d', $premierJour); + $fin = date('Y/m/d', strtotime("6 days", $premierJour)); + + $req = "SELECT pId, pNom, pPrenom, DATE_FORMAT(aDateGarde,'%d/%m/%Y') as wDate, aTranche, aDisponibilite, aGarde, d.pValeur as dCouleur + FROM (activite INNER JOIN parametre t ON t.pType='tranche'AND aTranche=t.pIndice + INNER JOIN parametre d ON d.pType='dispo' AND aDisponibilite=d.pIndice) + RIGHT OUTER JOIN pompier ON aCis=pCis AND aPompier=pId + WHERE aCis=" . $_SESSION['cis']; + + if ($pompier <> "*") { + $req .= " AND aPompier=" . $pompier; + } + $req .= " AND aDateGarde BETWEEN '" . $debut . "' AND '" . $fin . "' + AND aDisponibilite>0 + ORDER BY aPompier, aDateGarde ASC, aTranche ASC;"; + $rs = PdoBD::$monPdo->query($req); + + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des gardes d'un pompier...", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + $lesDispos = array(); + + if ($pompier <> "*") { + for ($jour = 0; $jour <= 6; $jour++) { + $laDate = date('d/m/Y', strtotime('+' . $jour . ' day', $premierJour)); + $lesDispos[$pompier][$laDate] = array( + 'dPompier' => $pompier, + 'dDate' => $laDate, + 'd1' => 0, + 'd2' => 0, + 'd3' => 0, + 'd4' => 0, + 'g1' => 0, + 'g2' => 0, + 'g3' => 0, + 'g4' => 0, + 'c1' => 'gray', + 'c2' => 'gray', + 'c3' => 'gray', + 'c4' => 'gray' + ); + } + } else { + $req = "SELECT pCis, pId, pNom, pPrenom, pStatut + FROM pompier + WHERE pCis=" . $_SESSION['cis'] . " + ORDER BY pNom, pPrenom;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des pompiers ..", $req, PdoBD::$monPdo->errorInfo()); + } + $lesPompiers = $rs->fetchAll(); + + foreach ($lesPompiers as $unPompier) { + $pompier = $unPompier['pId']; + for ($jour = 0; $jour <= 6; $jour++) { + $laDate = date('d/m/Y', strtotime('+' . $jour . ' day', $premierJour)); + $lesDispos[$pompier][$laDate] = array( + 'dPompier' => $pompier, + 'dDate' => $laDate, + 'd1' => 0, + 'd2' => 0, + 'd3' => 0, + 'd4' => 0, + 'g1' => 0, + 'g2' => 0, + 'g3' => 0, + 'g4' => 0, + 'c1' => 'gray', + 'c2' => 'gray', + 'c3' => 'gray', + 'c4' => 'gray' + ); + } + } + } + foreach ($lesLignes as $uneLigne) { + $pompier = $uneLigne['pId']; + $laDate = $uneLigne['wDate']; + $dispo = "d" . $uneLigne['aTranche']; + $garde = "g" . $uneLigne['aTranche']; + $couleur = "c" . $uneLigne['aTranche']; + $lesDispos[$pompier][$laDate][$dispo] = $uneLigne['aDisponibilite']; + $lesDispos[$pompier][$laDate][$garde] = $uneLigne['aGarde']; + $lesDispos[$pompier][$laDate][$couleur] = $uneLigne['dCouleur']; + } + /* echo "
";
+						  print_r($lesDispos);
+						  echo "
";*/ + return $lesDispos; + } + + /** + * Retourne dans un tableau associatif les informations de la table tranche + */ + public function getLesTranches() + { + $req = "SELECT pIndice as tId, pLibelle as tLibelle + FROM parametre WHERE pType='tranche' + ORDER by 1;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la recherche des tranches dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les informations de la table typeParametre + */ + public function getLesParametres() + { + $req = "SELECT tpId, tpLibelle, tpBooleen, tpChoixMultiple + FROM typeParametre + ORDER BY tpLibelle;"; + $rs = PdoBD::$monPdo->query($req); + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne dans un tableau associatif les informations de la table PARAMETRE (pour un type particulier) + */ + public function getParametre($type) + { + $req = "SELECT pIndice, pLibelle, pValeur, pPlancher, pPlafond "; + if ($type == "typePer") { + $req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pType WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb"; + } elseif ($type == "statAgt") { + $req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pStatut WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb"; + } elseif ($type == "grade") { + $req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pgrade WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb"; + } else { + $req .= ", 0 as nb"; + } + $req .= " FROM parametre + WHERE pType='$type' + ORDER by pIndice;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la recherche des parametres " . $type . " dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne dans un tableau associatifles informations de la table PARAMETRE (pour un type particulier) + */ + public function getInfosParam($type, $valeur) + { + if ($valeur == "NULL") { + $req = "SELECT pType, max(pIndice)+1 AS pIndice, ' ' AS pLibelle, tpLibelle + FROM parametre INNER JOIN typeParametre ON typeParametre.tpId=parametre.pType + WHERE pType='$type';"; + } else { + $req = "SELECT pType, pIndice, pLibelle, tpLibelle, pPlancher, pPlafond + FROM parametre INNER JOIN typeParametre ON typeParametre.tpId=parametre.pType + WHERE pType='$type' + AND pIndice='$valeur';"; + } + $rs = PdoBD::$monPdo->query($req); + $ligne = $rs->fetch(); + return $ligne; + } + + /** + * Met a jour une ligne de la table PARAMETRE + */ + public function majParametre($type, $valeur, $libelle, $plancher, $plafond) + { + $req = "UPDATE parametre SET pLibelle='$libelle', pPlancher='$plancher', pPlafond='$plafond' + WHERE pType='$type' + AND pIndice=$valeur;"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la modification d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + /** + * supprime une ligne de la table PARAMETRE + */ + public function supprimeParametre($type, $valeur) + { + $req = "DELETE + FROM parametre + WHERE pType='$type' + AND pIndice=$valeur;"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la suppression d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + /** + * ajoute une ligne dans la table PARAMETRE + */ + public function ajoutParametre($type, $valeur, $libelle, $plancher, $plafond) + { + $req = "INSERT INTO parametre + (pType, pIndice, pLibelle, pPlancher, pPlafond) + VALUES ('$type', $valeur, '$libelle', $plancher, $plafond);"; + $rs = PdoBD::$monPdo->exec($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de l'insertion d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo()); + } + } + + + /** + * envoyer un message electronique + */ + public function envoyerMail($mail, $sujet, $msg, $entete) + { + if (mail($mail, $sujet, $msg, null) == false) { + echo 'Suite à un problème technique, votre message n a pas été envoyé a ' . $mail . ' sujet' . $sujet . 'message ' . $msg . ' entete ' . $entete; + } + } + + /** + * Retourne les informations d'une intervention + */ + public function getInfosIntervention($intervention) + { + $req = "SELECT iCis, iId, iLieu, iDescription, iDate , iTranche, iHeureDebut, iHeureFin + FROM intervention + WHERE iId=" . $intervention . ";"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture de l'intervention ...", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les informations de toutes les interventions d'une caserne + */ + public function getLesInterventions($cis) + { + $req = "SELECT iCis, iId, iLieu, iDescription, iDate , iTranche, iHeureDebut, iHeureFin + FROM intervention + WHERE iCis=" . $cis . " + ORDER BY iId;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des interventions de la caserne ...", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + + /** + * Retourne les participants à une intervention + */ + public function getLesParticipants($cis, $intervention) + { + $req = "SELECT pId, pNom, pPrenom + FROM pompier INNER JOIN equipe ON pompier.pId=equipe.ePompier AND pompier.pCis=equipe.eCis + WHERE eIntervention=" . $intervention . " + AND eCis=" . $cis . " + ORDER BY pNom, pPrenom;"; + $rs = PdoBD::$monPdo->query($req); + if ($rs === false) { + afficherErreurSQL("Probleme lors de la lecture des participants ..", $req, PdoBD::$monPdo->errorInfo()); + } + $lesLignes = $rs->fetchAll(); + return $lesLignes; + } + +} + +?> \ No newline at end of file diff --git a/include/fct.inc.php b/include/fct.inc.php new file mode 100644 index 0000000..41fce0c --- /dev/null +++ b/include/fct.inc.php @@ -0,0 +1,206 @@ + "Janvier", + '02' => "Février", + '03' => "Mars", + '04' => "Avril", + '05' => "Mai", + '06' => "Juin", + '07' => "Juillet", + '08' => "Août", + '09' => "Septembre", + '10' => "Octobre", + '11' => "Novembre", + '12' => "Décembre"); + return $tabMois[$mois]; +} + +/* gestion des erreurs*/ +/** + * Indique si une valeur est un entier positif ou nul + * @param $valeur + * @return vrai ou faux +*/ +function estEntierPositif($valeur) +{ + return preg_match("/[^0-9]/", $valeur) == 0; +} + +/** + * Indique si un tableau de valeurs est constitué d'entiers positifs ou nuls + * @param $tabEntiers : le tableau + * @return vrai ou faux +*/ +function estTableauEntiers($tabEntiers) +{ + $ok = true; + foreach($tabEntiers as $unEntier) + { + if(!estEntierPositif($unEntier)){$ok=false;} + } + return $ok; +} +/** + * Vérifie si une date est inférieure d'un an à la date actuelle + * @param $dateTestee + * @return vrai ou faux +*/ +function estDateDepassee($dateTestee) +{ + $dateActuelle=date("d/m/Y"); + @list($jour,$mois,$annee) = explode('/',$dateActuelle); + $annee--; + $AnPasse = $annee.$mois.$jour; + @list($jourTeste,$moisTeste,$anneeTeste) = explode('/',$dateTestee); + return ($anneeTeste.$moisTeste.$jourTeste < $AnPasse); +} +/** + * Vérifie la validité du format d'une date française jj/mm/aaaa + * @param $date + * @return vrai ou faux +*/ +function estDateValide($date){ + $tabDate = explode('/',$date); + $dateOK = true; + if (count($tabDate) != 3) { + $dateOK = false; + } + else { + if (!estTableauEntiers($tabDate)) { + $dateOK = false; + } + else { + if (!checkdate($tabDate[1], $tabDate[0], $tabDate[2])) { + $dateOK = false; + } + } + } + return $dateOK; +} + +/** + * Ajoute le libelle d'une erreur au tableau des erreurs + * @param $msg : le libellé de l'erreur + */ +function ajouterErreur($msg){ + if (! isset($_REQUEST['erreurs'])){ + $_REQUEST['erreurs']=array(); + } + $_REQUEST['erreurs'][]=$msg; +} + +/** + * Retoune le nombre de lignes du tableau des erreurs + * @return le nombre d'erreurs + */ +function nbErreurs(){ + if (!isset($_REQUEST['erreurs'])){ + return 0; + } + else{ + return count($_REQUEST['erreurs']); + } +} + +/** afficherErreurSQL : + Affichage de messages lors l'accès à la bdd avec une requete SQL + @param $message : message a afficher + @param $req : requete executee + @param $info : erreur constatee +*/ +function afficherErreurSQL($message, $req, $info) { + echo $message . "
"; + echo "Requete : " . $req . "
"; + echo "Code erreur : " . $info[0] . ", Message : " . $info[2]; + die(); +} +?> \ No newline at end of file diff --git a/include/proceduresJava.js b/include/proceduresJava.js new file mode 100644 index 0000000..5202a4e --- /dev/null +++ b/include/proceduresJava.js @@ -0,0 +1,312 @@ +// proceduresJava.js / version modifiée le 18/09/2023 par Pascal Blain +var ongletActif=1; +// ========================= passer le focus à un champ +function donner_focus(frm,champ) { + document.forms[frm].elements[champ].focus(); + } +// ========================= fonction gestion de la fenetre de saisie d'une disponibilité +function majDispo(laDate, laTranche, exDispo) { + document.getElementById("ztJour").innerHTML = laDate; + document.getElementById("brDispo" + exDispo).checked=true; + document.forms["frmActivites"].ztLaDate.value = laDate.substring(6) + "/" + laDate.substring(3,5) + "/" + laDate.substring(0,2); + document.forms["frmActivites"].ztLaTranche.value= laTranche; + document.forms["frmActivites"].ztExDispo.value = exDispo; + location.href="#fenetreDispo"; + } +// ========================= fonction gestion des gardes +function majGarde(laDate, laTranche, laGarde, lePompier) { + document.forms["frmDispos"].ztLaDate.value = laDate.substring(6) + "/" + laDate.substring(3,5) + "/" + laDate.substring(0,2); + document.forms["frmDispos"].ztLaTranche.value = laTranche; + document.forms["frmDispos"].ztExGarde.value = laGarde; + document.forms["frmDispos"].ztPompier.value = lePompier; + document.forms["frmDispos"].action = "index.php?choixTraitement=gardes&action=majGarde"; + document.forms["frmDispos"].submit(); + } +// ========================= fonction de navigation dans le calendrier des dispos +function autreSemaine(semaine, annee) { + document.forms["frmDispos"].zSemaine.value = semaine; + document.forms["frmDispos"].zAnnee.value = annee; + document.forms["frmDispos"].submit(); + } +// ========================= fonctions de navigation dans la liste de choix +function premier(frm, liste) { + document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[0].value; + document.forms[frm].submit(); + } +function precedent(frm, liste) { + document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[Math.max(0,document.forms[frm].elements[liste].selectedIndex-1)].value; + document.forms[frm].submit(); + } +function suivant(frm, liste) { + document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(Math.min((document.forms[frm].elements[liste].options.length-1),document.forms[frm].elements[liste].selectedIndex+1))].value; + document.forms[frm].submit(); + } +function dernier(frm, liste) { + document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(document.forms[frm].elements[liste].options.length-1)].value; + document.forms[frm].submit(); + } +// ========================= +function faire(frm, action) { + document.forms[frm].action.value = action; + if(action=="supprimer") {alert("ATTENTION : \n demande de suppression \n cette action est irreversible !");} + document.forms[frm].submit(); + } +// ========================= +function validerAutre(frm, ordreAc, ordreCe, onglet) +{ + document.getElementById("zOrdreAc").value=ordreAc; + document.getElementById("zOrdreCe").value=ordreCe; + document.getElementById("zOnglet").value=onglet; + document.forms[frm].submit(); +} +// ========================= +function voirListe(type, indice, colonne) +{ + document.forms["choixP"].zType.value=type; + document.forms["choixP"].zIndice.value=indice; + document.forms["choixP"].zColonne.value=colonne; + document.forms["choixP"].action.value = "liste"; + document.forms["choixP"].submit(); +} + +// ========================= fonction annulation de saisie ou modification +function annuler(frm){ + document.forms[frm].elements["zOk"].value="nonOk"; + document.forms[frm].submit(); + } + +// ========================= validation des données d'un usager (version 2) +function validerUsager(frm) +{ //var champ=frm.elements["ztNom"]; + if(!verifTexte(frm, frm.elements["ztNom"], 40)) {return false;} + else {if(!verifTexte(frm, frm.elements["ztPrenom"], 24)) {return false;} + else {if(!verifMail(frm, frm.elements["ztEMail"])) {return false;} + else {return true;} + } + } +} +// ========================= +function verifMail(frm, champ) +{ + var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/; + if(regex.test(champ.value) || champ.value.length<1) + {surligne(champ, false); return true;} + else + {surligne(champ, true); return false;} +} +// ========================= fonctions de controle de validité d'un champ +function surligne(frm, champ, erreur) +{ + if(erreur) + {champ.style.backgroundColor = "#f55"; alert("Champ '"+champ.id+"' incorrect ...\nMerci de corriger"); document.getElementById(champ.id).focus(); frm.elements["zOk"].value="nonOk";} + else + {champ.style.backgroundColor = "#fff"; frm.elements["zOk"].value="OK";} +} + +// ========================= fonctions de controle de validité d'un champ texte (longueur) +function verifTexte(frm, champ,longueur) +{ + if(champ.value.length < 2 || champ.value.length > longueur) + {surligne(frm, champ, true); return false;} + else + {surligne(frm, champ, false); return true;} +} +// ========================= fonctions de controle de validité du code postal +function verifCP(frm, champ) +{ var str = champ.value; + var insee = str.substring(0,5); + var dep = str.substring(0,2); + var cPostal = str.substring(6,11); + var secteur= str.substring(12,16); + var ville = str.substring(17,57); + var cp = parseInt(cPostal); + if(isNaN(cp) || cp < 1000 || cp > 99999) {surligne(frm, champ, true); alert(cp); return false;} // + else { surligne(frm, champ, false); + frm.elements["ztCP"].value =cPostal; + frm.elements["ztVille"].value =ville; + frm.elements["ztCommune"].value =insee; + frm.elements["departement"].value =dep; + if(frm.name="frmUsager") + { + for (var i=0;i31)) && (ok==1) ) {alert(j+" n'est pas un jour correct..."); laDate.style.backgroundColor="#f55"; ok=false;} + if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {alert(m+" n'est pas un mois correct ..."); laDate.style.backgroundColor="#f55"; ok=false;} + if ( ((isNaN(a))||(aamax)) && (ok==1) ) {alert(a+" n'est pas une année correcte: utiliser 4 chiffres, \n elle doit être comprise entre "+amini+" et "+amax); laDate.style.backgroundColor="#f55"; ok=false;} + if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {alert("Les séparateurs doivent être des "+separateur); laDate.style.backgroundColor="#f55"; ok=false;} + if (ok==true) { + var d2=new Date(a,m-1,j); + j2=d2.getDate(); + m2=d2.getMonth()+1; + a2=d2.getFullYear(); + if (a2<=100) {a2=1900+a2} + if ( (j!=j2)||(m!=m2)||(a!=a2) ) {alert("La date "+d+" n'existe pas !"); laDate.style.backgroundColor="#f55"; ok=false;} + } + } + return ok; +} +// ========================= formate un nombre avec 2 chiffres après la virgule et un espace separateur de milliers +function format_euro(valeur) { + var ndecimal=2; + var separateur=' '; + var deci=Math.round( Math.pow(10,ndecimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ; + var val=Math.floor(Math.abs(valeur)); + if ((ndecimal==0)||(deci==Math.pow(10,ndecimal))) {val=Math.floor(Math.abs(valeur)); deci=0;} + var val_format=val+""; + var nb=val_format.length; + for (var i=1;i<4;i++) + { + if (val>=Math.pow(10,(3*i))) + { + val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i)); + } + } + if (ndecimal>0) + { + var decim=""; + for (var j=0;j<(ndecimal-deci.toString().length);j++) {decim+="0";} + deci=decim+deci.toString(); + val_format=val_format+","+deci; + } + if (parseFloat(valeur)<0) {val_format="-"+val_format;} + return val_format; +} + +// ========================= affiche l'onglet choisi + function Affiche(ongletChoisi, nb) +{ + for(i=1;i= 0) + { + while (origine.options.selectedIndex >= 0) /* boucle tant qu'il reste des éléments sélectionnés */ + { + valeur = origine.options[origine.options.selectedIndex].value; /* valeur de l'élément sélectionné */ + texte = origine.options[origine.options.selectedIndex].text; /* texte de l'élément sélectionné */ + origine.options[origine.options.selectedIndex] = null; /* suppression de l'element selectione dans la liste d'origine */ + destination.options[destination.options.length] = new Option(texte, valeur);/* ajout dans la liste destination */ + } + var nbElements=destination.length; + var tbl = new Array(nbElements, 2) + + for(ligne=0;ligne \ No newline at end of file diff --git a/styles/styles.css b/styles/styles.css new file mode 100644 index 0000000..e3bd341 --- /dev/null +++ b/styles/styles.css @@ -0,0 +1,638 @@ +/* Styles des divisions principales de la page */ + +#navigation { + position: relative; + float: right; + top : -2.75em; + right: 2em; + padding: 0em; + color: rgb(0,85,227); +} +#sommaire { + float: right; + margin-top : 20px; + margin-right: -20px; + padding: 0em; + color: rgb(0,85,227); +} +#sommaire ul { + padding:0; + margin:0; + list-style-type:none; +} +#sommaire li +{ + vertical-align: middle; + margin-left:2px; + float:left; /*pour IE*/ +} + +#sommaire ul li a +{ + vertical-align: middle; + display:block; + float:left; + width:80px; + text-decoration:none; + text-align:center; + /*background-color:#6495ED; + color:black; + //padding:5px; + border-width:2px; + border-style:solid; + border-color:#DCDCDC #696969 #696969 #DCDCDC; /*pour avoir un effet "outset" avec IE */ +} +#sommaire ul li a:hover +{ + color: purple; /*rgb(0,85,227);*/ + font-size: 16px; + /*background-color:#D3D3D3; + border-color: #696969 #DCDCDC #DCDCDC #696969; */ +} +#sommaire ul li ul { + display:none; +} +#sommaire ul li:hover ul { + display:block; +} +#sommaire li:hover ul li { + float:none; +} +#sommaire li ul { + position:absolute; + } + +#stats { + position: absolute; + top: 1em; + left: 0.5em; + background-color: #ffff00; + font-size:0.75em; +} +body{ + background-color: #77AADD; + /* //background-image: url(imgs/FONDGLOBAL.jpg); */ + background-repeat: repeat-x; + margin:0% 0%; + padding : 0.6em; + font-family:"Trebuchet MS",Verdana,Geneva,Arial,Helvetica,sans-serif; + font-size:0.8em; +} +#page { + background-color:white; + width : 65%; + margin : auto ; + border : 0.2em solid black; + padding : 0.1em; +} +#entete{ + background-color:rgb(72,198,236); + color : #980101; + border: solid 0.1em #980101; + height: 100px; + padding: 0em; + border-collapse: separate; +} +#pied{ + clear : both; + border : solid 0.2em #980101; + margin-left : 18%; + margin-top : 1em; + padding:0.4em; + padding: 0.2em; + border-collapse: separate; +} +#menu{ + position: relative; + float:right; + right: 0px; + margin-top : -240px; + margin-left: -10px; + padding: 0em; + background-color:transparent; + color: rgb(0,85,227); + width: 80px; +} + +#contenu{ + border: none; + padding: 1.1em; + background-color: white; + border-left : groove 0.8em #980101; + margin-top : 1.1em; + margin-left: 82px; /*162px; /*18%; */ +/* permet de fixer une hauteur mini sur les navigateurs modernes */ + min-height:27em; +/* pour obtenir le même effet sur IE, sachant que si le contenu dépasse, il "poussera" la hauteur en ne respectant pas la norme. On se joue de ses lacunes */ + height:27em; +} + +/* pour rétablir le mauvais effet sur les nav. modernes */ +html>body #contenu{ + height:auto; +} + +/* style à appliquer à la balise ul d'identifiant menulist */ +ul#menuList{ + list-style:none; + margin:0px; + padding:0px; + width:98%; + font-size: 1em; +} + +/* style à appliquer aux éléments de la balise ul d'identifiant menulist */ +ul#menuList li { + position:relative; + margin:0px; + padding:0px; +} + +/* apparences des liens dans listes et sous-listes non numérotées */ +ul#menuList a { + color:rgb(0,85,227); + display:block; + text-decoration:none; + width:100%; +} +ul#menuList a:hover { + background: rgb(0,85,227); + color: white; +} + +#entete #logo { + float : left; + width : 74px; + height : 100px; +} + +#entete h1 { + margin-top : 50px; + margin-right: 20px; + font-size : x-large; + text-align: right; +} + +#contenu pre { + width:95%; + overflow : scroll; +} +#contenu h2 { + font-size : large; + text-align:left; + margin:0; + margin-bottom:0.5em; +} + +.logoValidW3c { + display: inline; +} +#libValidW3c{ + display : inline; + vertical-align:middle; +} + +/* Style des formulaires */ +.corpsForm { + border : solid 0.1em #000; + border-bottom-width:1px; + margin-bottom : 0em; + width : 95%; +} +.piedForm { + border-bottom-width : 0.1em; + border-left-width : 0.1em; + border-right-width : 0.1em; + border-top-width : 0em; + border-style : solid; + border-color : #000; + text-align:right ; + width : 95%; + margin-top:0em; +} +form { + margin-bottom:1em; +} +.corpsForm legend { + font-weight:bold; + font-size:1.2em; +} +.corpsForm label{ + float: left; + text-align:right; + width:33%; + margin: 0; + padding: 0 .5em 0 0; + line-height: 1.8; +} +input, button, textarea, select{ + font-family:"Trebuchet MS", sans-serif; + font-size : 1em; +} + +input:focus{ + background-color: #ECB2E4; +} +button{ + width : 60px; + height : 30px; + text-align:center; + vertical-align:middle; +} +input:hover, textarea:hover, select:hover{ + background-color : #FAFAE6; + cursor : pointer; +} +.controle { + width:75px; +} +.controleLong { + width:195px; +} +.stNb { + width:40px; + text-align:center; +} + +.stNb a:link { + color: red; + +} + +.stTitre { + width:40px; + text-align:center; + font-weight: bold; +} + +.stTitre2 { + width:80px; + text-align:center; + font-weight: bold; +} + +/* Le texte des messages d'erreur est de couleur rose sur fond ocre et de +taille de caractères légèrement supérieure à la normale */ +.erreur{ + background-color:rgb(237,210,229); + color:rgb(203,28,128); + font-size:1.1em; + margin-left:200px; + width:75%; +} +.centre { + text-align:center; +} + +.info { + background-color:rgb(178,207,81); + color : white; + font-size:1.1em; + width : 95% +} + +.encadre { + border : solid 0.1em #000; + width : 100%; +} +/* Style pour les liens de la page principale */ +#contenu .corpsTexte { + width:80%; + font-size:1.2em; +} + +/* Style pour les liens de la page principale */ +#contenu a { + font-size : 1.1em; + color:gray; + text-decoration:none; +} +#contenu a:hover { + text-decoration:underline; + background-color : #D9BB7A; + font-size : 1em; +} + +/* Style pour les parties importantes de la page principale */ +#contenu strong { + font-weight:bold; +} + +/* Styles pour les tableaux de la page principale */ +#contenu table { + background-color:#FFF; + border : 0.1em solid #777777; + color:black; + margin-right : auto ; + margin-left:0.2em; + border-collapse : collapse; +} + +/* Style pour les lignes d'en-tête des tableaux */ +#contenu th { + background-color:#E9F1FE; + /* //bleu clair ou bleu plus soutenu : #77AADD; */ + width: 130px; + height: 21px; + /* //text-align: left; */ + vertical-align:top; + /*font-weight:bold;*/ + border-bottom:0.1em solid #777777; + /* //font-size:1.1em; */ +} + +#contenu td { + border :1px solid #777777; + /* //font-size:1.1em; */ + } + +#contenu h3 { + font-size : 1.2em; +} + +table{ + width:100%; + border-collapse:collapse; +} +fieldset{ + border-radius : 12px; + border:2px solid ; + border-color: purple; +} +legend{ + font-size: 20px; +} + +table.listeLegere { + margin-bottom : 0.3em; +} + +table.stats { + width: 80px; + /* //150px; */ + border-collapse:collapse; +} + +table.stats th { + border : dotted rgb(178,207,81) 0.1em; + background-color:#E9F1FE; + /* //bleu clair */ + padding: 0em; + text-align: center; + vertical-align : top; + witdh: 33%; +} + +table.stats td { + border : dotted rgb(178,207,81) 0.1em; + padding: 0em; + text-align: center; + vertical-align : top; + witdh: 33%; +} + +/* Tableaux quadrillés utilisés pour l'affichage de listes avec contenu léger*/ +table.listeLegere th, table.listeLegere td { + border : dotted rgb(178,207,81) 0.1em; + padding:0.2em; + vertical-align : top; +} + +table.listeLegere caption { + font-size : 1.1em; + text-align : left; + margin-bottom : 0.2em; +} +table.listeLegere td { + width: 100px; + vertical-align:top; + font-weight:normal; +} + +#contenu h2 { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 14px; + font-weight: bold; + color: #1D2941; + text-decoration: none; + border : 1px solid #6988BE; + padding-left: 25px; + background-color: #E9F1FE; + height : 28px; +} + +#contenu img { + height : 21px; + border-style: none; + float : left; +} + +#contenu li img:hover { + height : 26px; +} + +.lesOnglets +{ + margin: 0; + padding:0 0 0 5px; +} + +.unOnglet +{ + background-color:white; + margin-top:-1px; + padding:5px; + display:none; + border:1px solid #AAA; + border-radius:4px; + -webkit-border-radius:4px; + -moz-border-radius:4px; + color:#555; + cursor: text; +} +.onglet +{ + display:inline-block; + margin:5px 2px 0 2px; + padding:5px 10px ; + border:1px solid #AAA; + border-bottom:none; + border-radius:5px 5px 0 0; + -webkit-border-radius:4px 4px 0 0; + -moz-border-radius:4px 4px 0 0; + color:#555; + cursor: pointer; + font-weight:bold; +} +.inactif +{ + background:#EEE; +} +.inactif:hover +{ + background:#AAA; +} +.actif +{ + background:white; + border-bottom:2px solid white; + padding-bottom:4px; + cursor:text; +} +.fdroite { + display: inline-block; + border-bottom: 7px solid #FFFFFF; + border-top: 7px solid #FFFFFF; + border-left: 10px solid #9743CC; +} +.fbas { + display: inline-block; + border-left: 7px solid #FFFFFF; + border-right: 7px solid #FFFFFF; + border-top: 10px solid #AABBCC; +} +.fgauche { + display: inline-block; + border-bottom: 7px solid #FFFFFF; + border-right: 10px solid #9743CC; + border-top: 7px solid #FFFFFF; +} +.fhaut { + display: inline-block; + border-bottom: 10px solid #AABBCC; + border-left: 7px solid #FFFFFF; + border-right: 7px solid #FFFFFF; +} +.boite { + border: 1px solid #ddd; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + background-color: #ffffff; + padding: 10px; +} + +.boite input[type="text"] { + height: 16px; + line-height: 16px; +} + +.boite form { + margin: 0px; +} + +#tableau th.semaine { + color: #666666; + text-align : center; + vertical-align: middle; + background-color: #fafae0; +} + +#tableau td.semaine { + background-color: #000080; + height: 30px; + text-align: center; + vertical-align: middle; + font-size: 12px; +} + +#tableau td.weekend { + background-color: #e4e8eb; + height: 30px; + text-align: center; + vertical-align: middle; + font-size: 12px; +} + +#tableau td.today { + background-color: #ffe9e5; + color: #000080; +} +.tableau { + background-color: #ebeff2; + border-color: #3DA9C9; + border-width: 1px; + border-style: solid; + border-collapse: separate; + border-spacing: 1px; + text-align: center; + vertical-align: middle; +} + +.tableau th { + font-size: 10px; + background-color: #3DA9C9; + color: #000080; + font-weight: bold; + padding: 0px 0px 0px 0px; + text-align: center; + vertical-align: middle; + border-collapse: separate; + border-style: solid; + border-width: 1px; + border-color: gray; +} +.tableau th div { + width: 25px; +} + +.tableau td { + text-align: center; + vertical-align: middle; + font-size: 12px; + padding: 1px; + margin: 1px; + border-spacing: 2px; + border-color: gray; +} + +.tableau td.semaine { + background-color: #ffffff; + height: 30px; + text-align: center; + font-size: 10px; + width: 25px; + vertical-align: middle; +} + +.tableau td.weekend { + background-color: #e4e8eb; + height: 30px; + text-align: center; + font-size: 10px; + width: 25px; + vertical-align: middle; +} + +.tableau th.today { + background-color: #F98F7D; + color: #000080; +} + +.tableau td.today { + background-color: #ffe9e5; + color: #000080; +} +#pompiers{ + background-color: #ebeff2; + border-color: #3DA9C9; + border-width: 1px; + font-size: 12px; + border-style: solid; + width: 100%; + border-collapse: separate; + border-spacing: 1px; +} + +#pompiers th { + background-color: #3DA9C9; + color: #000080; + font-size: 12px; + font-weight: bold; + padding: 0px 0px 0px 0px; + vertical-align: middle; +} +.select-dispo{ + cursor: pointer; +} + diff --git a/vues/v_choixCaserne.php b/vues/v_choixCaserne.php new file mode 100644 index 0000000..4baae3b --- /dev/null +++ b/vues/v_choixCaserne.php @@ -0,0 +1,41 @@ + + +
+

'.$titre; ?> + +

+ + '; + ?> + + +
+ diff --git a/vues/v_choixParam.php b/vues/v_choixParam.php new file mode 100644 index 0000000..49cbca7 --- /dev/null +++ b/vues/v_choixParam.php @@ -0,0 +1,44 @@ + + +
+

' ?> +

+ + + + + '; + ?> + + +
+ + \ No newline at end of file diff --git a/vues/v_choixPompier.php b/vues/v_choixPompier.php new file mode 100644 index 0000000..31e2ffb --- /dev/null +++ b/vues/v_choixPompier.php @@ -0,0 +1,69 @@ + + +
+

'; + +if ($_SESSION['statut'] == 1) { + echo ' + + '; + $choix = $_SESSION['idUtilisateur']; +} else { + echo ' + '; +} +echo (' +

+ + + + "> + + + + +
+ diff --git a/vues/v_connexion.php b/vues/v_connexion.php new file mode 100644 index 0000000..88dc041 --- /dev/null +++ b/vues/v_connexion.php @@ -0,0 +1,20 @@ + +
+

Merci de vous identifier pour accéder aux dossiers

+
+
Identification utilisateur +

+ + +

+

+ + +



+ + +

+
+
+

+
diff --git a/vues/v_entete.php b/vues/v_entete.php new file mode 100644 index 0000000..b5697b0 --- /dev/null +++ b/vues/v_entete.php @@ -0,0 +1,61 @@ + + + + SDIS29 + + + + + + + + ');"> +
+
+ +
+ '; + + if ($_SESSION['statut'] == 2) { + echo ' +
  • parametres|
  • +
  • gardes|
  • '; + } + if ($_SESSION['statut'] == 3) { + echo '
  • interventions|
  • '; + } + echo ' +
  • pompiers|
  • +
  • Bienvenue ' . $_SESSION['prenom'] . ' ' . strtoupper($_SESSION['nom']) . '
  • +
  • déconnexion
  • + '; + } + ?> +

    Gestion des gardes et des interventions

    +
    +

    ' + . $_SESSION['adr1'] . '
    ' + . $_SESSION['adr2'] + . '
    ' . $_SESSION['adr3'] + . '
    ' . $_SESSION['adr4'] + . '

    +
    + '); + } + ?> +
    + \ No newline at end of file diff --git a/vues/v_erreurs.php b/vues/v_erreurs.php new file mode 100644 index 0000000..27418d8 --- /dev/null +++ b/vues/v_erreurs.php @@ -0,0 +1,10 @@ +
    +
      + $erreur"; + } + ?> +
    +
    \ No newline at end of file diff --git a/vues/v_ficheGardes.php b/vues/v_ficheGardes.php new file mode 100644 index 0000000..6642f68 --- /dev/null +++ b/vues/v_ficheGardes.php @@ -0,0 +1,66 @@ + +
    +
    Feuille de gardes +
    + + + + + + +
    + + + + + + ";?> + + + + + '.$nomJour[$jour].' '.date('d/m',strtotime('+'.$jour.' day',$premierJour)).''); + } + + echo "".PHP_EOL." "; + for($jour=0; $jour<= 6; $jour++) + { + foreach ($lesTranches as $uneTranche) + {echo '';} + } + echo PHP_EOL." "; + + foreach ($lesPompiers as $unPompier) + { + echo ""; + + + + + + + + + + + + + + + + + + + + echo "".PHP_EOL." "; + } +?> + + +
    ')" onmouseover="document.gauche.src='images/gauche_.gif'" onmouseout="document.gauche.src='images/gauche.gif'"type="image">Semaine ')" onmouseover="document.droite.src='images/droite_.gif'" onmouseout="document.droite.src='images/droite.gif'"type="image">
     
    Volontaires'.$uneTranche["pIndice"].'
    ".$unPompier['pNom']." ".$unPompier['pPrenom']."
    +
    +
    \ No newline at end of file diff --git a/vues/v_ficheParametre.php b/vues/v_ficheParametre.php new file mode 100644 index 0000000..d029361 --- /dev/null +++ b/vues/v_ficheParametre.php @@ -0,0 +1,101 @@ + + + '); +/*================================================================================================== */ +echo(" +
    +
    Parametre + + + +
    CodeDescription
     ".$enteteParametre['tpId']."".$enteteParametre['tpLibelle']."
    +

    + + + + + + +
    +
    Valeurs + "); + $numPa=1; + foreach ($lesInfosParametre as $uneLigne) + { + if ($numPa<9) + {$numPa=$numPa+1; + $type = $choix; + $indice = $uneLigne['pIndice']; + + echo(" + + + "); + } + } + while ($numPa<9) + { + echo(""); + $numPa=$numPa+1; + } + +echo("
    ".$uneLigne['pIndice']." ".$uneLigne['pLibelle'].""); + if ($uneLigne['nb']<>0) + {echo("".$uneLigne['nb']."");} + else + {echo($uneLigne['nb']);} + echo(""); + if ($uneLigne['nb']!=0) {echo " ";} + else {echo (" + ");} + echo (" +
    ...  
    +
    +
    (suite) + "); + $numP=1; + foreach ($lesInfosParametre as $uneLigne) + { + if ($numP>=9) + { + $type = $choix; + $indice = $uneLigne['pIndice']; + + echo(" + + + "); + } + $numP=$numP+1; + } + if ($numP<9) {$numP=9;} + while ($numP<17) + { + echo(""); + $numP=$numP+1; + } +echo("
    ".$uneLigne['pIndice']." ".$uneLigne['pLibelle'].""); + if ($uneLigne['nb']<>0) + {echo("".$uneLigne['nb']."");} + else + {echo($uneLigne['nb']);} + echo(""); + if ($uneLigne['nb']!=0) {echo " ";} + else {echo (" + ");} + echo (" +
    ...  
    +
    +
    +
    Observations + + + + +
    ...
    +
    +
    + "); +?> \ No newline at end of file diff --git a/vues/v_fichePompier.php b/vues/v_fichePompier.php new file mode 100644 index 0000000..2a10e2d --- /dev/null +++ b/vues/v_fichePompier.php @@ -0,0 +1,282 @@ + + + + + +
      +
    • '.$titre1.'
    • +
    • '.$titre2.'
    • +
    • '.$titre3.'
    • +
    '); +/*================================================================================================== DISPONIBILITEES (1) */ +echo (" +
    +
    X indique une garde"); ?> + + +
    + + +
    + + + + + + + ";?> + + + + + + + ' + . $nomJour[$jour] . ' ' + . date('d/m', strtotime('+' . $jour . ' day', $premierJour)) . '' + ); + } + ?> + + + + + ' . $tranche . ''; + } + } + ?> + + + + + getDisposHebdo() return les dispo + for($jour = 0; $jour <= 6; $jour++) { + $leJour = date('Y-m-d', strtotime('+' . $jour . ' day', $premierJour)); + $dateTab = date('d/m/Y', strtotime('+' . $jour . ' day', $premierJour)); + for($tranche = 1; $tranche <= 4; $tranche++){ + $couleur = 'c' . $tranche; + $garde = 'g' . $tranche; + $dispo = 'd' . $tranche; + echo(' + + '); + } + } + } + ?> + + +
    ')" onmouseover="document.gauche.src='images/gauche_.gif'" onmouseout="document.gauche.src='images/gauche.gif'"type="image">Semaine ')" onmouseover="document.droite.src='images/droite_.gif'" onmouseout="document.droite.src='images/droite.gif'"type="image">
    ' . (($uneLigne[$dateTab][$garde] == 1) ? 'X' : '') . '
    +
    +
    + X +

    ma disponibilité
    pour le

    +
    + + + + + +
    + 3) { + echo '
    ';} + $i++; + } + ?> +
    + + +
    +
    +
    + + +
    "); +/*================================================================================================== GARDES (2)*/ +echo (" + "); +/*================================================================================================== COORDONNEES (3) */ + echo (" + "); + +/*================================================================================================== Onglet X */ +echo (" + + + +"); +?> \ No newline at end of file diff --git a/vues/v_intervention.php b/vues/v_intervention.php new file mode 100644 index 0000000..d0f6932 --- /dev/null +++ b/vues/v_intervention.php @@ -0,0 +1,98 @@ + + + +
      +
    • '.$titre.'
    • +
    • onglet 2
    • +
    • onglet 3
    • +
    '); + +/*================================================================================================== nouvelle intervention (1) */ +echo(" +
    +
    Nouvelle intervention + + + + +
    DescriptionDateLieuHoraires
    ".$infosIntervention['iDescription']."".$infosIntervention['iDdate']."".$infosIntervention['iLieu']."de ".$infosIntervention['iHeureDebut']." à ".$infosIntervention['iHeureFin']."
    ".$infosIntervention['programme1']."
    +
    + + + + + +
    +
    ajouter des intervenantsIntervenants + "); + $numPa = 0; + + foreach ($lesParticipants as $unParticipant) { + if ( $unParticipant['rOrdre'] == 1 AND $numPa < 7) { + $numPa = $numPa+1; + $participant=$unParticipant['uNom'] . " " . $unParticipant['uPrenom']; + echo(""); + } + } +echo("
    " . $participant . " x
    +
    +
    (suite) + "); + $numP = 0; + foreach ($lesParticipants as $unParticipant) { + if ($unParticipant['rOrdre'] == 1 ) { + $numP = $numP+1; + if ($numP > 7) { + $participant = $unParticipant['uNom'] . " " . $unParticipant['uPrenom']; + echo(""); + } + } + } + while ($numP<14) { + echo(" + + "); + $numP = $numP+1; + } +echo("
    ".$participant." x
    ... 
    +
    +
    +
    Observations + + + + +
    ".$infosIntervention['commentaire1']."
    +
    +
    "); +/*================================================================================================== Onglet (2) */ + +echo (" + "); + +/*================================================================================================== Onglet 3 */ +echo (" + + + +"); +?> \ No newline at end of file diff --git a/vues/v_listeStat.php b/vues/v_listeStat.php new file mode 100644 index 0000000..57b0eb9 --- /dev/null +++ b/vues/v_listeStat.php @@ -0,0 +1,47 @@ + + +
    '); +echo("
    " . $titre1 . " +

    ".$titre2."

    (" . count($lesStatistiques) . " usagers "); + +if ($colonne == 'B') { + echo ("déjà présents durant la période précédente"); +} +if ($colonne == 'D') { + echo ("arrivés en cours de période"); +} +if ($colonne == 'F') { + echo ("sortis en cours de période"); +} +if ($colonne == 'S') { + echo ("en cours d'instruction ou suivis"); +} +if ($colonne == 'C') { + echo ("sortis ou réorientés"); +} +echo (")

    + + + "); + +foreach ($lesStatistiques as $uneLigne) { + if ($uneLigne['uHomme'] == 1) { + $sexe = "M"; + } else { + $sexe = "F"; + } + echo(" + + + + + + + "); +} +echo ("
    Nom de l'usagerGenreVillené(e) leNo CAFEntrée leSortie le
    ".$uneLigne['uNom']." ".$uneLigne['uPrenom']."".$sexe."".$uneLigne['uCp']." ".$uneLigne['uVille']."".$uneLigne['uDateNaissance']."".$uneLigne['uNumCaf']."".$uneLigne['wEntree']."".$uneLigne['wSortie']."
    +
    +
    +"); +?> diff --git a/vues/v_pied.php b/vues/v_pied.php new file mode 100644 index 0000000..835ce48 --- /dev/null +++ b/vues/v_pied.php @@ -0,0 +1,9 @@ + + +
    +

    + + 2023 Pierre Renaudot";?>

    +
    + + \ No newline at end of file diff --git a/vues/v_unParam.php b/vues/v_unParam.php new file mode 100644 index 0000000..512795b --- /dev/null +++ b/vues/v_unParam.php @@ -0,0 +1,48 @@ + +
    +SUPPRESSION DE LA VALEUR D\'UN PARAMETRE'; + echo "
    ";} + if ($action==="modifier") + {echo '

    MODIFICATION DE LA VALEUR D\'UN PARAMETRE

    '; + echo "";} + if ($action==="ajouter") + {echo '

    AJOUT DE LA VALEUR D\'UN PARAMETRE

    '; + echo "";} +?> + +
    + + + "); + echo (" + + "); +echo (" +
    +
    + +
    Indice "); + if ($action==="ajouter") {echo "";} + else {echo $infosParam['pIndice'];} +echo ("
    Valeur "); + if ($action==="ajouter") {echo "";$actif=null;} + if ($action==="modifier") {echo "";$actif=null;} + if ($action==="supprimer") {echo $infosParam['pLibelle'];$actif="disabled='disabled'";} +echo ("
    Plancher
    Plafond
    + "); ?> + + + + +
    + +

    + + + +

    +
    +
    \ No newline at end of file diff --git a/vues/v_unPompier.php b/vues/v_unPompier.php new file mode 100644 index 0000000..1f6edc6 --- /dev/null +++ b/vues/v_unPompier.php @@ -0,0 +1,67 @@ + +
    +SUPPRESSION DU POMPIER '.$lesInfosPompier['nom'].' '.$lesInfosPompier['prenom'].''; + echo '
    '; + } + if ($_REQUEST['action']=="modifier") { + echo '

    MODIFICATION DU POMPIER '.$lesInfosPompier['nom'].' '.$lesInfosPompier['prenom'].'

    '; + echo ''; + } + if ($_REQUEST['action']=="ajouter") { + echo "

    AJOUT D'UN NOUVEAU POMPIER

    "; + echo ' + '; + } + echo (" + + + + +
    +
    Coordonnées + + "); + + if ($_REQUEST['action']=="supprimer"){ //-------------------------------------------------------- cas suppression + echo (" +
    + + + +
    + "); +} +//------------------------------------------------------------------------------------ cas ajout ou modification + +if ($_REQUEST['action'] == "modifier") { + echo ("
    + "); +} +if ($_REQUEST['action'] == "ajouter") { + echo (" Nom + +
    "); +} +?> + + + + + + +
    +
    Observations + +
    +
    + + + + "> + + +
    +
    \ No newline at end of file