"; + 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 . "
'
+ . $_SESSION['adr1'] . '
'
+ . $_SESSION['adr2']
+ . '
' . $_SESSION['adr3']
+ . '
' . $_SESSION['adr4']
+ . '
+ | ++ + | +
+ | ++ + | +
+
+ 2023 Pierre Renaudot";?>