diff --git a/Class/class.newFiche.php b/Class/class.newFiche.php index 54cfa49..9fdf76c 100644 --- a/Class/class.newFiche.php +++ b/Class/class.newFiche.php @@ -1,7 +1,7 @@ execute(); } -} \ No newline at end of file +} diff --git a/Class/class.pdo.php b/Class/class.pdo.php index bc449f4..8dd8a2a 100644 --- a/Class/class.pdo.php +++ b/Class/class.pdo.php @@ -1,5 +1,7 @@ pdo = $pDO->getPdoGsb(); } + /** + * FONCTION QUI CONNECTE UN UTILISATEUR + */ public function connectUser(string $login, string $password): array|bool { $req = 'SELECT "uId", "uNom", "uPrenom", "uAdresse", "uCp", "uVille", "uSecteur", "uLabo", "parametre"."pLibelle" diff --git a/controleurs/c_connexion.php b/controleurs/c_connexion.php index 6bdae1b..02bba20 100644 --- a/controleurs/c_connexion.php +++ b/controleurs/c_connexion.php @@ -6,7 +6,7 @@ if (isset($_POST['login']) && isset($_POST['password'])) { //Récupère les données de l'utilisateur $data = $userClass->connectUser($_POST['login'], $_POST['password']); - if($data == false) { + if ($data == false) { header('location: index.php'); } @@ -30,64 +30,3 @@ if (isset($_POST['login']) && isset($_POST['password'])) { } else { include('vues/v_connexion.php'); } -die; -/* - - - -header('location: index.php?direction=home'); - -if (!isset($_REQUEST['action'])) { - $_REQUEST['action'] = 'demandeConnexion'; -} -$action = $_REQUEST['action']; -switch ($action) { - case 'demandeConnexion': { - session_unset(); - $param = $pdo->getParametre("adresse"); - $_SESSION['adr1'] = $param[1]['pLibelle']; //rue - $_SESSION['adr2'] = $param[2]['pLibelle'] . ' ' . $param[3]['pLibelle']; //codePostal et ville - include("vues/v_entete.php"); - include("vues/v_connexion.php"); - break; - } - case 'valideConnexion': { - $login = $_REQUEST['login']; - $mdp = $_REQUEST['mdp']; - $utilisateur = $pdo->getInfosUtilisateur($login, $mdp); - if (!is_array($utilisateur)) { - 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']; - $statut = $utilisateur['statut']; - connecter($id, $nom, $prenom, $statut); - if (date('m') - 1 > 0) { - $leMoisPrecedent = date('Y') * 100 + date('m') - 1; - } else { - $leMoisPrecedent = (date('Y') - 1) * 100 + 12; - } - //penser ici à faire la cloture du mois précédent ! - if ($statut == 'V') // si le remboursement pour le mois courant n'existe pas (=0) il faut le créer{ - $leMois = date('Ym'); - $leRemboursement = $pdo->existeRemboursement($id, $leMois); - if ($leRemboursement == 0) { - $pdo->creeNouveauRemboursement($id, $leMois); - } - } - header('location: index.php?uc=etatFrais&action=voir'); - } - break; - } - default: { - include("vues/v_entete.php"); - include("vues/v_connexion.php"); - break; - } -} -?> -*/ diff --git a/controleurs/c_ficheAvalider.php b/controleurs/c_ficheAvalider.php index bf2e9ab..12422ff 100644 --- a/controleurs/c_ficheAvalider.php +++ b/controleurs/c_ficheAvalider.php @@ -18,6 +18,4 @@ if ($_SESSION["typeU"] == "comptable") { $lesFiches = $gestionFiche->get_ficheAvalider(); - - -include("vues/v_fichesAvalider.php"); \ No newline at end of file +include("vues/v_fichesAvalider.php"); diff --git a/controleurs/c_nouvelleFiche.php b/controleurs/c_nouvelleFiche.php index ef3e74e..4e7c482 100644 --- a/controleurs/c_nouvelleFiche.php +++ b/controleurs/c_nouvelleFiche.php @@ -6,7 +6,6 @@ require_once(__DIR__ . '/../Class/class.newFiche.php'); $typeUser = $_SESSION['uType']; //visiteur ou comptable - $typeUser = 'visiteur';//$_SESSION['uType']; //visiteur ou comptable $userId = $_SESSION['uId']; //exemple: 'b34' /** @@ -40,6 +39,8 @@ if (isset($_GET['currentList'])) { //Date du header en français try { //sudo timedatectl set-local-rtc 1 + //sudo apt install php8.2-intl + //sudo service apache2 restart $format = new IntlDateFormatter( 'fr_FR', IntlDateFormatter::FULL, @@ -48,14 +49,12 @@ try { IntlDateFormatter::GREGORIAN, 'MMMM Y' ); - $dateHeader = $format->format($dateFormat); + $dateHeader = $format->format($dateTimeStamp); } catch (\Throwable $th) { $dateHeader = date('F Y', $dateTimeStamp); } -//$date = '202312'; //TESTVAR - //Instance de l'objet newFiche qui gère toute la partie bdd $newFiche = new Class_newFiche($pdo, $userId, $date); @@ -81,7 +80,6 @@ $totalFraisFiche = $newFiche->getMontantValide(); * ETAT DE LA FICHE */ $status = $newFiche->getStatus(); -$status = 'CR'; //créé $disabled = ($status !== 'CR') ? 'disabled' : ''; include(__DIR__ . '/../vues/v_newFiche.php'); diff --git a/include/aide javascript.txt b/include/aide javascript.txt deleted file mode 100644 index d576eb6..0000000 --- a/include/aide javascript.txt +++ /dev/null @@ -1,149 +0,0 @@ -http://www.toutjavascript.com/savoir/savoir06_2.php3 - -En javascript, la concaténation se fait avec le caractère plus (+) ou bien grace à la méthode concat(). - -Dans les deux exemples ci-dessous, la variable chaîne 3 contient la chaîne "Bonjour tout le monde" : - -var chaine1 = "Bonjour "; -var chaine2 = "tout le monde"; -var chaine3 = chaine1+chaine2; - -L'exemple ci-dessus est équivalent à l'exemple suivant : - -var chaine1 = "Bonjour "; -var chaine2 = "tout le monde"; -var chaine3 = chaine1.concat(chaine2); ---------------------------------------------------------- -indexOf: Retourne la position d'une sous-chaîne (lettre ou groupe de lettres) dans une chaîne de caractère, en effectuant la recherche de gauche à droite, à partir de la position spécifiée en paramètre. Retourne -1 si la sous-chaîne n'est pas trouvée dans la chaîne principale. - -var Chaine = 'Comment ça marche?'; -var Sous_Chaine = 'mar'; -var Sous_Chaine_2 = 'zzz'; - -var Resultat = Chaine.indexOf(Sous_Chaine); //Retourne 11 -var Resultat = Chaine.indexOf(Sous_Chaine_2); //Retourne -1 - ---------------------------------------------------------- - -Pour récupérer l'indice la ligne sélectionnée : - this.form.elements['liste'].selectedIndex -Pour récupérer le nombre de lignes : - this.form.elements['liste'].options.length -Pour récupérer la valeur de la ligne sélectionnée : - this.form.elements['liste'].options[this.form.elements['liste'].selectedIndex].value - -En JavaScript, la structure d'un élément de type SELECT reprend ce schéma : -name Nom de la liste -selectedIndex Indice de la ligne sélectionnée (ligne 1 : indice=0) -options Tableau des lignes -length Nombre de lignes - value Valeur d'une ligne - text Libellé d'une ligne - ---------------------------------------------------------- - -
- - -
-Grâce à this.form, on peut accéder au formulaire de l'élément en cours. - - ---------------------------------------------------------- - -Pour donner le focus au champ texte du haut de cette page, il faut appeler la méthode focus() sur cet élément. -document.forms["general"].elements["champ1"].focus() - -Pour donner le focus à un champ de formulaire à l'ouverture de la page, il faut ajouter cette ligne dans la balise BODY : -onLoad="document.forms['nomduform'].elements['nomchamp'].focus()" - --------------------------------------------------------- -Pour manipuler les nombres en javascript, il faut utiliser l'objet Math. -abs() - -x=Math.abs(y); - -La méthode abs() renvoie la valeur absolue (valeur positive) de y. Il supprime en quelque sorte le signe négatif d'un nombre. - -y = 4; -x = math.abs(y); -x = Math.abs(4); -x = math.abs(-4); -ont comme résultat -x = 4 - - - -ceil() - -x=Math.ceil(y); - -La méthode ceil() renvoie l'entier supérieur ou égal à y. - -Attention ! Cette fonction n'arrondit pas le nombre. -Comme montré dans l'exemple, si y = 1.01, la valeur de x sera mise à 2. - -y=1.01; -x=Math.ceil(y); -a comme résultat 2. - - - -floor() - -x=Math.floor(y); - -La méthode floor() renvoie l'entier inférieur ou égal à y. - -Attention ! Cette fonction n'arrondit pas le nombre. -Comme montré dans l'exemple, si y = 1.99, la valeur de x sera mise à 1. - -y=1.999; -x=Math.floor(y); -a comme résultat 1. - - - -round() - -x=Math.round(y); - -La méthode round() arrondit le nombre à l'entier le plus proche. - -y=20.355; -x=Math.round(y); -a comme résultat -x=20; - -Attention ! Certains calculs réclament une plus grande précision. Pour avoir deux décimales après la virgule, on utilisera la formule : - -x=(Math.round(y*100))/100; -et dans ce cas -x=20.36; - - - -max() - -x=Math.max(y,z); - -La méthode max(y,z) renvoie le plus grand des 2 nombres y et z. - -y=20; z=10; -x=Math.max(y,z); -a comme résultat -x=20; - - - -min() - -x=Math.min(y,z); - -La méthode min(y,z) renvoie le plus petit des 2 nombres y et z. - -y=20; z=10; -x=Math.min(y,z); -a comme résultat -x=10; \ No newline at end of file diff --git a/include/appelIni.php b/include/appelIni.php deleted file mode 100644 index 633f97b..0000000 --- a/include/appelIni.php +++ /dev/null @@ -1,37 +0,0 @@ -stocker le nom d'utilisateur et le mot de passe dans la classe n'est pas une très bonne idée pour le code mis en -production ... Une bonne solution consiste a stocker les paramètres de connexion à la base de données dans un fichier -.ini et à en restreindre l'accès. Par exemple de cette façon: - -private static $serveur='mysql:host=localhost'; -private static $bdd='dbname=gsb2021'; -private static $user='root' ; -private static $mdp='root' ; - -gsb.ini: -[database] -driver = mysql -host = localhost -port = 3306 -schema = gsb2021 -username = root -password = root - - -Database connection: - \ No newline at end of file diff --git a/include/class.pdogsb.php b/include/class.pdogsb.php deleted file mode 100644 index 6f84932..0000000 --- a/include/class.pdogsb.php +++ /dev/null @@ -1,632 +0,0 @@ -query("SET CHARACTER SET utf8");SET client_encoding = 'UTF8'; - } - public function _destruct() - { - PdoGsb::$monPdo = null; - } - /** - * Fonction statique qui cree l'unique instance de la classe - * Appel : $instancePdoGsb = PdoGsb::getPdoGsb(); - * @return l'unique objet de la classe PdoGsb - */ - public static function getPdoGsb() - { - if (PdoGsb::$monPdoGsb == null) { - PdoGsb::$monPdoGsb = new PdoGsb(); - } - return PdoGsb::$monPdoGsb; - } - - /** - * Retourne les informations d'un utilisateur - * @param $login - * @param $mdp - * @return l'id, le nom et le prenom sous la forme d'un tableau associatif - */ - public function getInfosUtilisateur($login, $mdp) - { - $req = "select \"uId\" as id, \"uNom\" as nom, \"uPrenom\" as prenom, \"uStatut\" as statut - from utilisateur - where \"uLogin\"='$login' - and \"uMdp\"='$mdp'"; - $req = $this->entourerNoms($req); - //echo $req; - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $ligne = $rs->fetch(); - return $ligne; - } - - /** - * Retourne les informations de la table Visiteur - * @return un tableau associatif - */ - public function getLesVisiteurs() - { - - - - - - - - } - /** - * Retourne deux valeurs indiquant si un ajout de frais est possible - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @paral etatRemboursement - */ - public function getAjoutFraisPossible($idVisiteur, $leMois, $etatRemboursement) - { - $possible = array('forfait' => "non", 'horsForfait' => "non", 'modifComptable' => 'non'); - if ($_SESSION['statut'] == '1' && $etatRemboursement == 'CR') { - $req = "select count(*) as nbForfaits - from forfait - where fId not in (select lfForfait - from ligneForfait - where lfVisiteur='$idVisiteur' - and lfMois = '$leMois')"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - if ($laLigne['nbForfaits'] == 0 ? $possible = array('forfait' => "non", 'horsForfait' => "oui", 'modifComptable' => 'non') : $possible = array('forfait' => "oui", 'horsForfait' => "oui", 'modifComptable' => 'non')) - ; - } else { - if ($_SESSION['statut'] != '1' && $etatRemboursement == 'CL') { - $possible = array('forfait' => "non", 'horsForfait' => "non", 'modifComptable' => "oui"); - } - } - return $possible; - } - - /** - * Retourne les informations pour ajout d'un nouveau frais forfaitaire - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return l'id, le libell, le montant sous la forme d'un tableau associatif - */ - public function getLesForfaitsPossibles() - { - $req = "select \"fId\", \"fLibelle\", \"fMontant\" - from forfait"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $lesLignes = $rs->fetchAll(); - return $lesLignes; - } - - /** - * Retourne le tarif KM pour un motorisation et une puissance donnee a une date - */ - public function getPrixKm($idVisiteur, $leMois) - { - $laDate = substr($leMois, 0, 4) . '-' . substr($leMois, 4, 2) . '-01'; - - $req = "SELECT 1;"; - - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - return $laLigne; - } - - /** - * Retourne sous forme d'un tableau associatif toutes les lignes de frais hors forfait concernees par les deux arguments - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return tous les champs des lignes de frais hors forfait sous la forme d'un tableau associatif - */ - public function getLesFraisHorsForfait($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $lesLignes = $rs->fetchAll(); - return $lesLignes; - } - - /** - */ - public function getLesFraisReportes($idVisiteur, $mois, $justifies) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $lesLignes = $rs->fetchAll(); - return $lesLignes; - } - - /** - * Retourne le nombre de justificatif d'un Visiteurpour un mois donnee - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return le nombre entier de justificatifs - */ - public function getNbjustificatifs($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - return $laLigne['nb']; - } - - /** - * Retourne le montant valide pour un remboursement (cumul des frais forfaitaires et des autres depenses (hors forfaits) - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return le montant - */ - public function getMontantValide($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - $montantValide = $laLigne['montant']; - return $montantValide; - } - - /** - * Retourne sous forme d'un tableau associatif toutes les lignes de frais au forfait concernees par les deux arguments - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return l'id, le libelle et la quantite sous la forme d'un tableau associatif - */ - public function getLesFraisForfait($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $lesLignes = $rs->fetchAll(); - return $lesLignes; - } - - /** - * Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $qte - */ - public function getUnFraisForfait($idVisiteur, $mois, $forfait) - { - $req = "select lfVisiteur, lfMois, lfForfait, lfQuantite, lfMontant, fLibelle - from ligneForfait inner join forfait on ligneForfait.lfForfait=forfait.fId - where lfVisiteur= '$idVisiteur' - and lfMois = '$mois' - and lfForfait = '$forfait'"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - return $laLigne; - } - - /** - * Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $qte - */ - public function majFraisForfait($idVisiteur, $mois, $forfait, $qte) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * supprime une ligneForfait pour un Visiteur et un mois donne - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $forfait - */ - public function supprimerFraisForfait($idVisiteur, $mois, $forfait) - { - $req = $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * ajoute une ligne dans la table ligneForfait pour un Visiteur et un mois donne - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $forfait - * @param $qte - * @param $montant - */ - public function ajoutFraisForfait($idVisiteur, $mois, $forfait, $qte, $montant) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $qte - */ - public function getUnFraisHorsForfait($idFrais) - { - $req = $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - return $laLigne; - } - - /** - * Met ajour la table ligneHorsForfait (nouvelles valeurs) - */ - public function majFraisHorsForfait($idFrais, $date, $libelle, $montant) - { - $dateFr = dateFrancaisVersAnglais($date); - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Met a jour la table ligneHorsForfait pour report au mois suivant - */ - public function transfertFraisHorsForfait($idFrais, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Cree un nouveau frais hors forfait pour un Visiteurun mois donne a partir des parametres - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @param $libelle : le libelle du frais - * @param $date : la date du frais au format français jj//mm/aaaa - * @param $montant : le montant - */ - public function ajoutFraisHorsForfait($idVisiteur, $mois, $date, $libelle, $montant) - { - $dateFr = dateFrancaisVersAnglais($date); - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Supprime le frais hors forfait dont l'id est passe en argument - * @param $idFrais - */ - public function supprimerFraisHorsForfait($idFrais, $libelle) - { - - - - - - - - - - } - - /** - * Retourne les mois pour lesquel un Visiteura une fiche de frais - * @param $idVisiteur - * @return un tableau associatif de clefs un mois -aaaamm- et de valeurs l'anne et le mois correspondant - */ - public function getLesMoisDisponibles($idVisiteur) - { - $tabMois = array('01' => "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"); - $req = "select \"rMois\" as mois - from remboursement - where \"rVisiteur\"='$idVisiteur' "; - if ($_SESSION['statut'] <> '1') { - $req = $req . "and \"rEtat\"<>'CR'"; - } - $req = $req . " order by \"rMois\" desc limit 12"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - $lesMois = array(); - $laLigne = $rs->fetch(); - while ($laLigne != null) { - $mois = $laLigne['mois']; - $numAnnee = substr($mois, 0, 4); - $numMois = $tabMois[substr($mois, 4, 2)]; - $lesMois["$mois"] = array("mois" => "$mois", "numAnnee" => "$numAnnee", "numMois" => "$numMois"); - $laLigne = $rs->fetch(); - } - return $lesMois; - } - - /** - */ - public function existeRemboursement($idVisiteur, $mois) - { - $req = "select count(*) as nb - from remboursement - where \"rVisiteur\"='$idVisiteur' - and \"rMois\"='$mois'"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - $laLigne = $rs->fetch(); - return $laLigne['nb']; - } - - /** - */ - public function getNbRemboursementsAValider() - { - $req = "SELECT 1 as nb;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - $laLigne = $rs->fetch(); - return $laLigne['nb']; - } - - /** - */ - public function creeNouveauRemboursement($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Retourne les informations d'une fiche de frais d'un Visiteur pour un mois donne - * @param $idVisiteur - * @param $mois sous la forme aaaamm - * @return un tableau avec des champs de jointure entre une fiche de frais et la ligne d'etat - */ - public function getInfosRemboursement($idVisiteur, $mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo()); - } - $laLigne = $rs->fetch(); - return $laLigne; - } - - /** - * Actualise le montant valide et le nb de justificatifs recus - */ - public function valideRemboursement($idVisiteur, $mois) - { - $NbJustificatifs = $this->getNbjustificatifs($idVisiteur, $mois); - $montantValide = $this->getMontantValide($idVisiteur, $mois); - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - PdoGsb::$monPdo->exec($req); - } - - /** - * Modifie l'etat et la date de modification d'une fiche de frais - * Modifie le champ idEtat et met la date de modif a aujourd'hui - * @param $idVisiteur - * @param $mois sous la forme aaaamm - */ - public function majRemboursement($idVisiteur, $mois, $etat) - { - $req = "update remboursement set \"rEtat\" = '$etat', \"rDateModif\" = now() - where \"rVisiteur\"='$idVisiteur' - and \"rMois\"='$mois'"; - PdoGsb::$monPdo->exec($req); - } - - /** - * Clos les fiches de frais - * Modifie le champ idEtat et met la date de modif a aujourd'hui - */ - public function clotureMois($mois) - { - $req = "SELECT 1;"; - //$req = $this->entourerNoms($req); - //PdoGsb::$monPdo->exec($req); - } - - /** - * Retourne les informations de la table TYPEPARAMETRE - */ - public function getLesParametres() - { - $req = "SELECT \"tlId\", \"tlLibelle\", \"tlBooleen\", \"tlChoixMultiple\", \"tlCumul\" - FROM \"typeParametre\" - ORDER BY \"tlLibelle\";"; - $req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la recherche dans la base de données.", $req, PdoGsb::$monPdo->errorInfo()); - } - $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\" - FROM parametre - WHERE \"pType\"='$type' - ORDER by \"pIndice\";"; - //echo $req; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la recherche des parametres dans la base de données.", $req, PdoGsb::$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, \"tlLibelle\", \"pPlancher\", \"pPlafond\" - FROM parametre INNER JOIN \"typeParametre\" ON \"typeParametre\".\"tlId\"=parametre.\"pType\" - WHERE pType='$type';"; - } else { - $req = "SELECT \"pType\", \"pIndice\", \"pLibelle\", \"tlLibelle\", \"pPlancher\", \"pPlafond\" - FROM parametre INNER JOIN \"typeParametre\" ON \"typeParametre\".\"tlId\"=parametre.\"pType\" - WHERE \"pType\"='$type' - AND \"pIndice\" like '$valeur';"; - } - $req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->query($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la recherche dans la base de données.", $req, PdoGsb::$monPdo->errorInfo()); - } - $ligne = $rs->fetch(); - return $ligne; - } - - - /** - * Met a jour une ligne de la table PARAMETRE - */ - public function majParametre($type, $valeur, $libelle, $territoire, $dep, $plancher, $plafond) - { - $req = "UPDATE parametre SET \"pLibelle\"='$libelle', \"pPlancher\"=$plancher, \"pPlafond\"=$plafond - WHERE \"pType\"='$type' - AND \"pIndice\"=$valeur;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->exec($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la mise a jour des parametres dans la base de données.", $req, PdoGsb::$monPdo->errorInfo()); - } - } - - /** - * supprime une ligne de la table PARAMETRE - */ - public function supprimeParametre($type, $valeur) - { - $req = "DELETE - FROM parametre - WHERE \"pType\"='$type' - AND \"pIndice\"=$valeur;"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->exec($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de la suppression d'un parametre dans la base de données.", $req, PdoGsb::$monPdo->errorInfo()); - } - } - - /** - * ajoute une ligne dans la table PARAMETRE - */ - public function ajoutParametre($type, $valeur, $libelle, $territoire, $dep, $plancher, $plafond) - { - $req = "INSERT INTO parametre - (\"pType\", \"pIndice\", \"pLibelle\", \"pPlancher\", \"pPlafond\") - VALUES ('$type', $valeur, '$libelle', $plancher, $plafond);"; - //$req = $this->entourerNoms($req); - $rs = PdoGsb::$monPdo->exec($req); - if ($rs === false) { - afficherErreurSQL("Probleme lors de l'insertion d'un parametre dans la base de données.", $req, PdoGsb::$monPdo->errorInfo()); - } - } - /** - * Fonction pour entourer les noms de tables et de champs par des guillemets doubles - */ - private function entourerNoms($requete) - { - $pattern = '/SELECT(.*?)[\n\r\s]FROM/i'; - echo 'le patron : ' . $pattern . ' la requete : ' . $requete; - preg_match_all($pattern, $requete, $matches); - - if (isset($matches[1])) { - var_dump($matches); - foreach ($matches[1] as $match) { - // Ajouter des guillemets doubles autour des noms de tables et de champs - $noms_entoures = preg_replace_callback('/\b([A-Za-z_][A-Za-z0-9_]*)\b/', function ($match) { - return '\"' . $match[0] . '\"'; - }, $match); - - $requete = str_replace($match, $noms_entoures, $requete); - } - } - //echo $requete; - return $requete; - } -} -?> \ No newline at end of file diff --git a/include/fct.inc.php b/include/fct.inc.php deleted file mode 100644 index da1c9ab..0000000 --- a/include/fct.inc.php +++ /dev/null @@ -1,202 +0,0 @@ - diff --git a/include/gsb.ini b/include/gsb.ini deleted file mode 100644 index 7a29bac..0000000 --- a/include/gsb.ini +++ /dev/null @@ -1,7 +0,0 @@ -[database] -driver = mysql -host = localhost -port = 3306 -schema = gsb2021 -username = root -password = root \ No newline at end of file diff --git a/include/menu.php b/include/menu.php index e5ce591..311fadc 100644 --- a/include/menu.php +++ b/include/menu.php @@ -1,8 +1,20 @@
-
+
\ No newline at end of file diff --git a/index.php b/index.php index 9464725..a4c6d42 100644 --- a/index.php +++ b/index.php @@ -1,20 +1,9 @@ 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 #logoGSB { - float : left; - width : 191px; - height : 122px; -} - -#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; -} -button{ - width : 60px; - height : 30px; - text-align:center; - vertical-align:middle; -} -input:hover, textarea:hover, select:hover{ - background-color : #FAFAE6; - cursor : pointer; -} - -/* 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.3em; - border-collapse : collapse; -} - -/* Style pour les lignes d'en-tête des tableaux */ -#contenu th { - background-color:#77AADD; - 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; -} - -#contenu h3 { - font-size : 1.2em; -} - -table.listeLegere { - margin-bottom : 0.5em; -} - -/* 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.5em; - vertical-align : top; -} - -table.listeLegere caption { - font-size : 1.1em; - text-align : left; - margin-bottom : 0.3em; -} -table.listeLegere td { - vertical-align:top; - font-weight:normal; -} -table.listeLegere th.eltForfait{ - width:320px; - color:black; -} -table.listeLegere th.date, table.listeLegere th.montant{ - width:70px; - color:black; -} -table.listeLegere th.libelle{ - width:405px; - color:black; -} - -#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; -} diff --git a/vues/v_homePage.php b/vues/v_homePage.php index 0c0a321..664fe28 100644 --- a/vues/v_homePage.php +++ b/vues/v_homePage.php @@ -1,4 +1,32 @@ -

BONJOUR VOUS ETES

-BONJOUR VOUS ETES + + -var_dump($_SESSION); +
+
+ Profil de l'utilisateur +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
diff --git a/vues/v_newFiche.php b/vues/v_newFiche.php index 1e04c02..247b0c0 100644 --- a/vues/v_newFiche.php +++ b/vues/v_newFiche.php @@ -86,6 +86,9 @@ € + diff --git a/vues/v_pied.php b/vues/v_pied.php deleted file mode 100644 index d0fdaae..0000000 --- a/vues/v_pied.php +++ /dev/null @@ -1,7 +0,0 @@ - - -
-

03/05/2023 Blain Pascal";?>

-
- - \ No newline at end of file diff --git a/vues/v_unFraisForfaitaire.php b/vues/v_unFraisForfaitaire.php deleted file mode 100644 index 9394a8d..0000000 --- a/vues/v_unFraisForfaitaire.php +++ /dev/null @@ -1,60 +0,0 @@ - -
- -SUPPRESSION D\'UN FRAIS FORFAITAIRE'; - echo '
';} - else - {echo '

EDITION D\'UN FRAIS FORFAITAIRE

'; - echo '';} -?> - - - - - - - - - - - - - - - - - -
QuantitéNature de la dépensePrixMontant
> -
-

- -
- -
- - - - \ No newline at end of file diff --git a/vues/v_unFraisHorsForfait.php b/vues/v_unFraisHorsForfait.php deleted file mode 100644 index 7f3164c..0000000 --- a/vues/v_unFraisHorsForfait.php +++ /dev/null @@ -1,55 +0,0 @@ - -
- -SUPPRESSION D\'UN FRAIS HORS FORFAIT'; - echo ' -
';} - else - {echo '

EDITION D\'UN FRAIS HORS FORFAIT

'; - echo ' - ';} -?> - - - - - - - - - - - - - -
DateNature de la dépenseMontant
-

- - - -

- -
- -
- - -