<?php
/**
 * Vérifie les identifiants de connexion et instancie les variables de session
 
 * @param $loginSaisi 
 * @param $mdpSaisi
 * @return un booléen true si utilisateur connu, false sinon 
*/
function verifierIdentification($loginSaisi,$mdpSaisi ) {
    require "connexion.php" ;
    $sql="select * from elior_utilisateur" ;
    $exec=$bdd->query($sql);
    $trouve = false ;
    $fin=false ;
    while (!$trouve && !$fin)
    {
        if ($ligne = $exec->fetch())
        {

            if ($ligne['login']==$loginSaisi && $ligne['mdp']==$mdpSaisi)
            {
                $trouve = true ;
                $_SESSION['ident']=$ligne['nom'].' '.$ligne['prenom']."&nbsp;&nbsp;&nbsp;&nbsp;" ;
                $_SESSION['idUtil']=$ligne['id'] ;
                $_SESSION['statut']=$ligne['statut'] ;
            }
        }
        else
        {
            $fin = true ;
        }
    }
    return $trouve ;
}

function getLesDatesCommandes($dateLimite, $idUtil)
{
    require "connexion.php" ;
    $sql="select distinct dateMenu "
            . "from elior_menu m "
            . "where dateMenu >= '$dateLimite' "
            . "and exists (select * from elior_commande c where m.dateMenu = c.dateMenu and c.idUtil = $idUtil) "
            . "order by dateMenu ASC" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}



function getLesDatesNonCommandes($dateLimite, $idUtil)
{
    require "connexion.php" ;
    $sql="select distinct dateMenu "
            . "from elior_menu m "
            . "where dateMenu >= '$dateLimite' "
            . "and not exists (select * from elior_commande c where m.dateMenu = c.dateMenu and c.idUtil = $idUtil) "
            . "order by dateMenu ASC" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function getLesDatesMenus()
{
    require "connexion.php" ;
    $sql="select distinct dateMenu from elior_menu order by dateMenu DESC" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function getLesMenus()
{
    require "connexion.php" ;
    $sql="select * from elior_menu ORDER BY dateMenu DESC, numMenu ASC LIMIT 0 , 120" ;
    $exec=$bdd->prepare($sql) ;   
    $exec->execute() ;
    return $exec;
}

function getLesMenusDate($dateJour)
{
    require "connexion.php" ;
    $sql="select m.*, f.libelleformule, f.tarifformule "
            . "from elior_menu m "
            . "left join elior_formule f on m.menuidformule = f.idformule "
            . "where m.dateMenu = '$dateJour' "
            . "order by m.menuidformule, m.numMenu" ;
    $exec=$bdd->prepare($sql) ;
    
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function getMontantRepasCommande($dateMenu, $numMenu)
{
    require "connexion.php" ;
    $sql="select f.tarifformule "
            . "from elior_menu m "
            . "left join elior_formule f on m.menuidformule = f.idformule "
            . "where m.dateMenu='$dateMenu' and m.numMenu=$numMenu" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $ligne = $exec->fetch();

    if ($ligne && $ligne['tarifformule'] != null) {
        return $ligne['tarifformule'] ;
    }
    $params = getParams();
    return $params['prixRepas'];
}

function getPrixMinMenuDate($dateMenu)
{
    require "connexion.php" ;
    $sql="select min(ifnull(f.tarifformule, p.prixRepas)) as prixMini "
            . "from elior_menu m "
            . "left join elior_formule f on m.menuidformule = f.idformule "
            . "cross join elior_params p "
            . "where m.dateMenu='$dateMenu'" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $ligne = $exec->fetch();

    if ($ligne && $ligne['prixMini'] != null) {
        return $ligne['prixMini'] ;
    }
    $params = getParams();
    return $params['prixRepas'];
}

function getTarifMinFormule()
{
    require "connexion.php" ;
    $sql="select min(tarifformule) as tarifMini from elior_formule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $ligne = $exec->fetch();

    if ($ligne && $ligne['tarifMini'] != null) {
        return $ligne['tarifMini'] ;
    }
    $params = getParams();
    return $params['prixRepas'];
}

function getLesComptesEleves()
{
    require "connexion.php" ;
    $sql="select nom, prenom, idClasse, creditRepas from elior_utilisateur where (idClasse=1 OR idClasse=2) order by nom, prenom" ;
    $exec=$bdd->prepare($sql) ;  
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function getLesMenusJour($dateJour)
{
    require "connexion.php" ;
    $sql="select * from elior_menu where dateMenu = '$dateJour' order by numMenu" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function majMenu($dateMenu, $numMenu, $descMenu, $menuidformule)
{       
    $descMenu = addslashes($descMenu);
    require "connexion.php";
    $sql = "UPDATE elior_menu
            SET descriptionMenu='$descMenu', menuidformule=$menuidformule
            WHERE dateMenu = '$dateMenu' AND numMenu = $numMenu";
    $exec = $bdd->prepare($sql);
    $exec->execute();
}

function ajoutMenu($dateMenu, $numMenu, $descMenu, $menuidformule)
{       
    $descMenu = addslashes($descMenu);
    require "connexion.php";
    $sql = "INSERT INTO elior_menu (dateMenu, numMenu, descriptionMenu, menuidformule)
            VALUES ('$dateMenu', $numMenu, '$descMenu', $menuidformule)";
    $exec = $bdd->prepare($sql);
    $exec->execute();
}
function supMenu($dateMenu, $numMenu)
{       
    require "connexion.php" ;
    $sql="DELETE FROM elior_menu "
            . "where dateMenu = '$dateMenu' and numMenu = $numMenu" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function enrmdp($mdp, $idUtil)
{       
    require "connexion.php" ;
    $mdp=MD5($mdp);
    $sql="UPDATE elior_utilisateur "
            . "SET mdp='$mdp' "
            . "where id = '$idUtil'" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function majParams($heureDebutCde, $prixRepasOrNbRepasDecouvert, $nbRepasDecouvert = null)
{       
    require "connexion.php" ;
    if ($nbRepasDecouvert === null) {
        $nbRepasDecouvert = $prixRepasOrNbRepasDecouvert;
        $sql="UPDATE elior_params "
                . "SET heureDebutCde='$heureDebutCde', nbRepasDecouvert=$nbRepasDecouvert" ;
    } else {
        $prixRepas = $prixRepasOrNbRepasDecouvert;
        $sql="UPDATE elior_params "
                . "SET heureDebutCde='$heureDebutCde', prixRepas='$prixRepas', nbRepasDecouvert=$nbRepasDecouvert" ;
    }
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function getNbMenusDate($dateJour)
{
    require "connexion.php" ;
    $sql="select count(*) as nb from elior_menu where dateMenu = '$dateJour'" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur['nb'];
}

function getLesCommandesJour($date)
{
    require "connexion.php" ;
    $sql="select * from elior_commande "
            . "inner join elior_utilisateur on id = idUtil and dateMenu = '$date' order by numMenu, nom, prenom ASC" ;
    $exec=$bdd->query($sql) ;
    return $exec ;
}

function getParams()
{
    require "connexion.php" ;
    $sql="select * from elior_params " ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur;
}

function getNbMenusJour($date)
{
    require "connexion.php" ;
    $sql="select * from elior_menu "
            . "where dateMenu = '$date'" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

function getNbCommandesJour($date)
{
    require "connexion.php" ;
    $sql="select * from elior_commande "
            . "where dateMenu = '$date'" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

function getNbCommandesMenuJour($date, $numMenu)
{
    require "connexion.php" ;
    $sql="select * from elior_commande "
            . "where dateMenu = '$date' and numMenu=$numMenu" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

function getLesCommandesUtil($idUtil)
{
    require "connexion.php" ;
    $sql="select * from elior_commande c "
            . "inner join elior_menu m on c.dateMenu = m.dateMenu and c.numMenu = m.numMenu where idUtil = $idUtil order by c.dateMenu DESC" ;
    $exec=$bdd->query($sql) ;
    return $exec ;
}

function getNbCommandesUtilMois($mm, $aa, $idUtil)
{
    require "connexion.php" ;
    $sql="select * from elior_commande where idUtil = $idUtil and year(dateMenu) = $aa and month(dateMenu) = $mm" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

function getMontantCommandesUtilMois($mm, $aa, $idUtil)
{
    require "connexion.php" ;
    $sql="select sum(ifnull(f.tarifformule, p.prixRepas)) as total "
            . "from elior_commande c "
            . "inner join elior_menu m on c.dateMenu = m.dateMenu and c.numMenu = m.numMenu "
            . "left join elior_formule f on m.menuidformule = f.idformule "
            . "cross join elior_params p "
            . "where c.idUtil = $idUtil and year(c.dateMenu) = $aa and month(c.dateMenu) = $mm" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $ligne = $exec->fetch();
    if ($ligne && $ligne['total'] != null) {
        return $ligne['total'] ;
    }
    return 0 ;
}

function getCommandeAujourdhui($date, $idUtil)
{
    require "connexion.php" ;
    $sql="select * from elior_commande where idUtil = $idUtil and dateMenu = '$date'" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

function enregistrerCommande($dateMenu,$numMenu,$idUtil ) {
    require "connexion.php" ;
    $sql="INSERT INTO elior_commande values ('$dateMenu',$numMenu, $idUtil)" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
    //diminution du crédit repas
    $prixRepas = getMontantRepasCommande($dateMenu, $numMenu) ;
    $sql="update elior_utilisateur SET creditRepas = creditRepas - $prixRepas where id=$idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
 }    

 function annulerCommande($dateMenu, $idUtil) {
    require "connexion.php" ;
    $sql="select numMenu from elior_commande where dateMenu='$dateMenu' and idUtil = $idUtil" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $ligne = $exec->fetch() ;
    $numMenu = 0 ;
    if ($ligne) $numMenu = $ligne['numMenu'] ;

    $sql="DELETE FROM elior_commande where dateMenu='$dateMenu' and idUtil = $idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
    
    //augmentation du crédit repas
    if ($numMenu > 0) {
        $prixRepas = getMontantRepasCommande($dateMenu, $numMenu);
    } else {
        $params = getParams();
        $prixRepas = $params['prixRepas'];
    }
    $sql="update elior_utilisateur SET creditRepas = creditRepas + $prixRepas where id=$idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
 }
 
 function getLesEleves()
 {
    require "connexion.php" ;
    $sql="select id, nom, prenom, creditRepas, idClasse "
            . "from elior_utilisateur "
            . "where (idClasse=1 or idClasse=2) "
            . "order by nom, prenom " ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
 }
 
 function getUnEtudiant($idEleve)
{
    require "connexion.php" ;
    $sql="select * from elior_utilisateur where id = $idEleve" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur;
}

function getLesRepasCumul($dateDebut, $dateFin)
{
    require "connexion.php" ;
    
    //analyse des filtres
    $where = "dateMenu between '$dateDebut' and '$dateFin' " ;
    
    $sql="select dateMenu, COUNT(*) as nbRepas "
            ." from elior_utilisateur "
            ." left join elior_commande on elior_utilisateur.id = idUtil "
            ." where ".$where." "
            . "group by dateMenu " 
            . "order by dateMenu ASC " ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
 }
 
function getLesRepasDetail($dateDebut, $dateFin)
{
    require "connexion.php" ;
    
    $where = "c.dateMenu between '$dateDebut' and '$dateFin' " ;
    
    $sql="select c.dateMenu, u.nom, u.prenom, m.descriptionMenu, f.libelleformule "
            ." from elior_commande c "
            ." inner join elior_utilisateur u on u.id = c.idUtil "
            ." inner join elior_menu m on m.dateMenu = c.dateMenu and m.numMenu = c.numMenu "
            ." inner join elior_formule f on f.idformule = m.menuidformule "
            ." where ".$where." "
            . "order by c.dateMenu ASC, f.libelleformule ASC, m.numMenu ASC, u.nom ASC, u.prenom ASC" ;
            
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

function getLesRepasFormule($dateDebut, $dateFin)
{
    require "connexion.php" ;
    
    $where = "c.dateMenu between '$dateDebut' and '$dateFin' " ;
    
    $sql="select f.libelleformule, COUNT(*) as nbRepas "
            ." from elior_commande c "
            ." inner join elior_menu m on m.dateMenu = c.dateMenu and m.numMenu = c.numMenu "
            ." inner join elior_formule f on f.idformule = m.menuidformule "
            ." where ".$where." "
            . "group by f.idformule, f.libelleformule "
            . "order by f.libelleformule ASC" ;
            
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}
 
 function getLesPaiements($dateDebut, $dateFin, $typeReglement, $idEleve)
 {
    require "connexion.php" ;
    
    //analyse des filtres
    $where = "datePaiement between '$dateDebut' and '$dateFin' " ;
    
    if ($typeReglement != 3) $where .= " and typeReglement=".$typeReglement ;
    
    if ($idEleve != 0) $where .= " and idEleve=".$idEleve ;
    
    $sql="select elior_paiement.id, idEleve, nom, prenom, datePaiement, montant, typeReglement, remarques "
            ." from elior_utilisateur "
            ." left join elior_paiement on elior_utilisateur.id = idEleve "
            ." where ".$where." "
            . "order by datePaiement DESC " ;

    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
 }
 
 function exportPaiements($dateDebut, $dateFin, $typeReglement, $idEleve)
 {
    require "connexion.php" ;
    
    //analyse des filtres
    $where = "datePaiement between '$dateDebut' and '$dateFin' " ;
    
    if ($typeReglement != 3) $where .= " and typeReglement=".$typeReglement ;
    
    if ($idEleve != 0) $where .= " and idEleve=".$idEleve ;
    
    $sql="select elior_paiement.id, idEleve, nom, prenom, datePaiement, montant, typeReglement, remarques "
            ." from elior_utilisateur "
            ." left join elior_paiement on elior_utilisateur.id = idEleve "
            ." where ".$where." "
            . "order by datePaiement DESC " ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    
    $nomFichier = "bts_paiements_export.csv" ;
			
    $fp = fopen($nomFichier, 'w');
	
    fwrite($fp, mb_convert_encoding("Date;Nom;Prénom;Montant;Type règlement;Remarques\n", 'ISO-8859-1', 'UTF-8'));
    foreach ($curseur as $ligne)
    {
        if ($ligne['typeReglement'] == 1) $typeReglement = "Espèces";
        if ($ligne['typeReglement'] == 2) $typeReglement = "Chèque";
        $ligne_xls=  getDateJMA($ligne['datePaiement']).";".mb_convert_encoding($ligne['nom'],'ISO-8859-1', 'UTF-8').";".mb_convert_encoding($ligne['prenom'],'ISO-8859-1', 'UTF-8').";".$ligne['montant'].";".mb_convert_encoding($typeReglement,'ISO-8859-1', 'UTF-8').";".mb_convert_encoding($ligne['remarques'],'ISO-8859-1', 'UTF-8') ;
        fwrite($fp, $ligne_xls."\n");
    }  
    fclose($fp);
 }
 
 function exportRepas($dateDebut, $dateFin, $typeRepas, $lesRepasPris)
 {
    require "connexion.php" ;
    
    $nomFichier = "bts_listerepas_export.csv" ;
			
    $fp = fopen($nomFichier, 'w');
    
    fwrite($fp, "BTS - Nombre de repas du ".getDateJMA($dateDebut)." au ".getDateJMA($dateFin)."\n\n");
    
    $cumulNbRepas = 0 ;
    if ($typeRepas == 2)
        fwrite($fp, mb_convert_encoding("Date;Nom;Prénom;Menu;Formule\n", 'ISO-8859-1', 'UTF-8'));
    else if ($typeRepas == 3)
        fwrite($fp, mb_convert_encoding("Formule;Nombre de repas\n", 'ISO-8859-1', 'UTF-8'));
    else 
        fwrite($fp, mb_convert_encoding("Date;Nombre de repas\n", 'ISO-8859-1', 'UTF-8'));
    
    foreach ($lesRepasPris as $ligne)
{
    if ($typeRepas == 2)
    {
        $ligne_xls = getDateJMA($ligne['dateMenu']).";"
            .mb_convert_encoding($ligne['nom'],'ISO-8859-1', 'UTF-8').";"
            .mb_convert_encoding($ligne['prenom'],'ISO-8859-1', 'UTF-8').";"
            .mb_convert_encoding($ligne['descriptionMenu'],'ISO-8859-1', 'UTF-8').";"
            .mb_convert_encoding($ligne['libelleformule'],'ISO-8859-1', 'UTF-8');
        $cumulNbRepas++ ;
    }
    else if ($typeRepas == 3)
    {
        $ligne_xls = mb_convert_encoding($ligne['libelleformule'],'ISO-8859-1', 'UTF-8').";".$ligne['nbRepas'];
        $cumulNbRepas += $ligne['nbRepas'] ;
    }
    else 
    {
        $ligne_xls = getDateJMA($ligne['dateMenu']).";".$ligne['nbRepas'] ;
        $cumulNbRepas += $ligne['nbRepas'] ;
    }
    fwrite($fp, $ligne_xls."\n");
} 
    if ($typeRepas == 2)
{
    fwrite($fp, ";;;;Nombre total de repas;".$cumulNbRepas."\n");
}
else if ($typeRepas == 3)
{
    fwrite($fp, "Nombre total de repas;".$cumulNbRepas."\n");
}
else
{
    fwrite($fp, "Nombre total de repas;".$cumulNbRepas."\n");
}
    fclose($fp);
 }
 
 function getDescriptionMenu($dateMenu,$numMenu) 
 {
     require "connexion.php" ;

    $sql="select descriptionMenu "
            ." from elior_menu "
            ." where dateMenu='$dateMenu' and numMenu=$numMenu" ;

    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur['descriptionMenu'];
 }
 
 function getSolde($idEleve) 
 {
     require "connexion.php" ;

    $sql="select creditRepas "
            ." from elior_utilisateur "
            ." where id=$idEleve" ;

    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur['creditRepas'];
 }
 
 function getLePaiement($id)
 {
    require "connexion.php" ;

    $sql="select elior_paiement.id, idEleve, nom, prenom, datePaiement, montant, typeReglement, remarques "
            ." from elior_utilisateur "
            ." left join elior_paiement on elior_utilisateur.id = idEleve "
            ." where elior_paiement.id=$id" ;

    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur;
 }
 
 function enregistrerPaiement($idEleve, $datePaiement, $montant, $typeReglement, $remarques) 
 {
    require "connexion.php" ;
    $remarques = addslashes($remarques) ;
    $sql="INSERT INTO elior_paiement (idEleve, datePaiement, montant, typeReglement, remarques) "
            . " values ($idEleve, '$datePaiement',$montant, $typeReglement, '$remarques')" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;$remarques = addslashes($remarques) ;
    
    //augmenter le crédit repas de l'élève
    $sql="update elior_utilisateur set creditRepas = creditRepas + $montant where id = $idEleve" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
 }
 function modifierPaiement($idEleve, $datePaiement, $montant, $typeReglement, $remarques, $id) 
 {
    require "connexion.php" ;
    $remarques = addslashes($remarques) ;
    //récupération ancien montant enregistrer
    $lePaiement = getLePaiement($id) ;
    $montantAvant = $lePaiement['montant'] ;
    $montantApres = $montant ;
    
    //mise à jour du paiement
    $sql="UPDATE elior_paiement 
          SET datePaiement = '$datePaiement', montant=$montant, typeReglement=$typeReglement, remarques='$remarques', idEleve=$idEleve
          WHERE id=$id";

    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
    //mise à jour du crédit repas de l'élève si le le montant a changé
    $diff = $montantApres - $montantAvant ;
    
    $sql="update elior_utilisateur set creditRepas = creditRepas + $diff where id = $idEleve" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
 }
 
  function supprimerPaiement($id) 
 {
    require "connexion.php" ;
    //récupération ancien montant enregistrer
    $lePaiement = getLePaiement($id) ;
    $idEleve = $lePaiement['idEleve'] ;
    $montantAvant = $lePaiement['montant'] ;
    $montantApres = 0;
    
    //mise à jour du paiement
    $sql="DELETE from elior_paiement 
          WHERE id=$id";

    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
    //mise à jour du crédit repas de l'élève si le le montant a changé
    $diff = $montantApres - $montantAvant ;
    
    $sql="update elior_utilisateur set creditRepas = creditRepas + $diff where id = $idEleve" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
 }

 function getLesFormules()
{
    require "connexion.php";
    $sql = "SELECT * FROM elior_formule ORDER BY libelleformule ASC";
    $exec = $bdd->prepare($sql);
    $exec->execute();
    return $exec->fetchAll();
}

function getToutesLesFormules()
{
    require "connexion.php" ;
    $sql="select * from elior_formule order by libelleformule ASC" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetchAll();
}

function getLaFormule($idformule)
{
    require "connexion.php" ;
    $sql="select * from elior_formule where idformule = $idformule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetch();
}

function existeLibelleFormule($libelleformule)
{
    require "connexion.php" ;
    $libelleformule = addslashes($libelleformule) ;
    $sql="select * from elior_formule where libelleformule = '$libelleformule'" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->rowCount();
}

function existeLibelleFormuleAutre($idformule, $libelleformule)
{
    require "connexion.php" ;
    $libelleformule = addslashes($libelleformule) ;
    $sql="select * from elior_formule where libelleformule = '$libelleformule' and idformule <> $idformule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->rowCount();
}

function ajoutFormule($libelleformule, $tarifformule)
{
    require "connexion.php" ;
    $libelleformule = addslashes($libelleformule) ;
    $sql="insert into elior_formule (libelleformule, tarifformule)
          values ('$libelleformule', $tarifformule)" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function majFormule($idformule, $libelleformule, $tarifformule)
{
    require "connexion.php" ;
    $libelleformule = addslashes($libelleformule) ;
    $sql="update elior_formule
          set libelleformule = '$libelleformule', tarifformule = $tarifformule
          where idformule = $idformule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function getNbMenusFormule($idformule)
{
    require "connexion.php" ;
    $sql="select count(*) as nb from elior_menu where menuidformule = $idformule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch();
    return $curseur['nb'];
}

function supprFormule($idformule)
{
    require "connexion.php" ;
    $sql="delete from elior_formule where idformule = $idformule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function getLesUtilisateurs()
{
    require "connexion.php" ;
    $sql = "SELECT id, nom, prenom, idClasse, login, statut, creditRepas "
         . "FROM elior_utilisateur "
         . "ORDER BY nom, prenom ASC" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetchAll() ;
}

function getUnUtilisateur($id)
{
    require "connexion.php" ;
    $sql = "SELECT id, nom, prenom, idClasse, login, statut, creditRepas "
         . "FROM elior_utilisateur "
         . "WHERE id = $id" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetch() ;
}

function loginExiste($login, $idExclure = 0)
{
    require "connexion.php" ;
    $sql = "SELECT COUNT(*) as nb FROM elior_utilisateur "
         . "WHERE login = '$login' AND id != $idExclure" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur = $exec->fetch() ;
    return ($curseur['nb'] > 0) ;
}

function ajouterUtilisateur($nom, $prenom, $idClasse, $login, $statut)
{
    require "connexion.php" ;
    $mdpDefaut = md5("pass") ;
    $nom    = addslashes($nom) ;
    $prenom = addslashes($prenom) ;
    $login  = addslashes($login) ;
    $sql = "INSERT INTO elior_utilisateur (nom, prenom, idClasse, login, mdp, statut, creditRepas) "
         . "VALUES ('$nom', '$prenom', $idClasse, '$login', '$mdpDefaut', $statut, 0)" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
}

function modifierUtilisateur($id, $nom, $prenom, $idClasse, $login, $statut)
{
    require "connexion.php" ;
    $nom    = addslashes($nom) ;
    $prenom = addslashes($prenom) ;
    $login  = addslashes($login) ;
    $sql = "UPDATE elior_utilisateur "
         . "SET nom='$nom', prenom='$prenom', idClasse=$idClasse, login='$login', statut=$statut "
         . "WHERE id = $id" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
}

function supprimerUtilisateur($id)
{
    require "connexion.php" ;
    $sql = "DELETE FROM elior_utilisateur WHERE id = $id" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
}

function utilisateurADesCommandes($id)
{
    require "connexion.php" ;
    $sql = "SELECT COUNT(*) as nb FROM elior_commande WHERE idUtil = $id" ;
    $exec = $bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur = $exec->fetch() ;
    return ($curseur['nb'] > 0) ;
}
?>