<?php /** * Fonctions pour l'application GSB * @package default * @author PB et GM * @version 3.0 version MVC modifiee le 03/05/2023 à 11H01 par Blain Pascal */ /** * Teste si un quelconque visiteur est connecté * @return vrai ou faux */ function estConnecte(){ return isset($_SESSION['idUtilisateur']); } /** * Enregistre dans une variable session les infos d'un visiteur * @param $idUtilisateur * @param $idVisiteur * @param $nom * @param $prenom * @param $typeUtilisateur */ function connecter($id,$nom,$prenom,$statut){ $_SESSION['idUtilisateur']= $id; $_SESSION['idVisiteur']= $id; $_SESSION['nom']= $nom; $_SESSION['prenom']= $prenom; $_SESSION['statut']= $statut; if ($statut=='1') $_SESSION['typeUtilisateur'] = 'Visiteur'; if ($statut=='2') $_SESSION['typeUtilisateur'] = 'Administrateur'; if ($statut=='0') $_SESSION['typeUtilisateur'] = 'Comptable'; } /** * Detruit la session active */ function deconnecter(){ session_destroy(); } /** * Transforme une date au format français jj/mm/aaaa vers le format anglais aaaa-mm-jj * @param $madate au format jj/mm/aaaa * @return la date au format anglais aaaa-mm-jj */ function dateFrancaisVersAnglais($maDate){ @list($jour,$mois,$annee) = explode('/',$maDate); return date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee)); } /** * Transforme une date au format format anglais aaaa-mm-jj vers le format français jj/mm/aaaa * @param $madate au format aaaa-mm-jj * @return la date au format format français jj/mm/aaaa */ function dateAnglaisVersFrancais($maDate) { @list($annee,$mois,$jour)=explode('-',$maDate); $date="$jour"."/".$mois."/".$annee; return $date; } /** * retourne le mois au format aaaamm selon le jour dans le mois * @param $date au format jj/mm/aaaa * @return le mois au format aaaamm */ function getMois($date) { @list($jour,$mois,$annee) = explode('/',$date); if(strlen($mois) == 1){ $mois = "0".$mois; } return $annee.$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; } /** * Verifie que le tableau de frais ne contient que des valeurs numeriques * @param $lesFrais * @return vrai ou faux */ function lesQteFraisValides($lesFrais){ return estTableauEntiers($lesFrais); } /** * Vérifie la validité des trois arguments : la date, le libellé du frais et le montant * des message d'erreurs sont ajoutés au tableau des erreurs * @param $dateFrais * @param $libelle * @param $montant */ function valideInfosFrais($dateFrais,$libelle,$montant){ if($dateFrais==""){ ajouterErreur("Le champ date ne doit pas etre vide"); } else{ if(!estDatevalide($dateFrais)){ ajouterErreur("Date invalide"); } else{ if(estDateDepassee($dateFrais)){ ajouterErreur("date d'enregistrement du frais dépassé, plus de 1 an"); } } } if($libelle == ""){ ajouterErreur("Le champ description ne peut pas etre vide"); } if($montant == ""){ ajouterErreur("Le champ montant ne peut pas etre vide"); } else if( !is_numeric($montant) ){ ajouterErreur("Le champ montant doit être numérique"); } } /** * 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']); } } ?>