<?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 * from elior_menu where dateMenu = '$dateJour' order by numMenu" ;
    $exec=$bdd->prepare($sql) ;
    
    $exec->execute() ;
    $curseur=$exec->fetchAll();
    return $curseur;
}

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, $idFormule)
{       
    $descMenu = addslashes($descMenu) ; // addslashes permet d'intégrer les simples guillemets ex: "poulet à l'américaine"
    require "connexion.php" ;
    $sql="UPDATE elior_menu "
            . "SET descriptionMenu='$descMenu', idFormule=$idFormule "
            . "where dateMenu = '$dateMenu' and numMenu = $numMenu" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function ajoutMenu($dateMenu, $numMenu, $descMenu, $idFormule)
{       
    $descMenu = addslashes($descMenu) ;
    require "connexion.php" ;
    $sql="INSERT INTO elior_menu "
            . "values ('$dateMenu', $numMenu, '$descMenu', $idFormule)" ;
    //exécution de la requete
    $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, $prixRepas, $nbRepasDecouvert)
{       
    require "connexion.php" ;
    $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 getCommandeAujourdhui($date, $idUtil)
{
    require "connexion.php" ;
    $sql="select * from elior_commande where idUtil = $idUtil and dateMenu = '$date'" ;
    $exec=$bdd->query($sql) ;
    return $exec->rowCount() ;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Code modifié Maéven
function enregistrerCommande($dateMenu,$numMenu, $prixFormule, $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
    $sql="update elior_utilisateur SET creditRepas = creditRepas - $prixFormule where id=$idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
 }    


 function annulerCommande($dateMenu, $idUtil) {
    require "connexion.php" ;

    //Il faut qu'on récupère le prix de la formule associée au menu que l'on souhaite annuler
    $sql="select prixFormule from elior_commande ec inner join elior_menu em
          on em.numMenu = ec.numMenu AND em.dateMenu = ec.dateMenu
          inner join elior_formule ef on ef.idFormule = em.idFormule
          where ec.dateMenu = ? AND ec.idUtil = ?;";
    $exec=$bdd->prepare($sql) ;
    $data=[$dateMenu, $idUtil];
    $exec->execute($data) ;
    $prix = $exec->fetch();
    //On récupère la valeur du prix
    $prixRepas = $prix['prixFormule'];

    //On supprime la commande
    $sql="DELETE FROM elior_commande where dateMenu=? and idUtil = ?;" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $data=[$dateMenu, $idUtil];
    $exec->execute($data) ;    
    
    //augmentation du crédit repas
    $sql="update elior_utilisateur SET creditRepas = creditRepas + $prixRepas where id = ?" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $data=[$idUtil];
    $exec->execute($data) ;
 }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 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" ;
    
    //analyse des filtres
    $where = "dateMenu between '$dateDebut' and '$dateFin' " ;
    
    $sql="select dateMenu,nom, prenom "
            ." from elior_utilisateur "
            ." left join elior_commande on elior_utilisateur.id = idUtil "
            ." where ".$where." "
            . "order by dateMenu 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, utf8_decode("Date;Nom;Prénom\n"));
        fwrite($fp, mb_convert_encoding("Date;Nom;Prénom\n", 'ISO-8859-1', 'UTF-8'));
    else 
        //fwrite($fp, utf8_decode("Date;Nombre de repas\n"));
        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']).";".utf8_decode($ligne['nom']).";".utf8_decode($ligne['prenom']) ;
            $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') ;
            $cumulNbRepas++ ;
        }
        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 {
        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() ;
    
 }

 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //Code rajouté Maéven :
function supprimerUtilisateur($id){
    require "connexion.php" ;
    $sql = "delete from elior_utilisateur where id = ?";
    $exec=$bdd->prepare($sql) ;
    $data = [$id] ;
    $exec->execute($data) ;
}

function existeIdUtilisateur($id){
    require "connexion.php";
    $sql = "select id from elior_utilisateur where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$id];
    $exec->execute($data);
    //Si on a un résultat, c'est que l'id existe, dans ce cas on renvoie true, sinon on renvoie false
    if ($exec->rowCount() > 0){
        return true;
    }
    else{
        return false;
    }
}

function ajouterUtilisateur($nom, $prenom, $idClasse, $statut, $login, $mdp){
    require "connexion.php" ;
    $sql = "insert into elior_utilisateur (nom, prenom, idClasse, statut, login, mdp, creditRepas)
            values ( ? , ? , ? , ? , ? , ? , 0);" ;
    $exec=$bdd->prepare($sql);
    $data=[$nom, $prenom, $idClasse, $statut, $login, $mdp];
    $exec->execute($data);
}

function modifIdUtilisateur($idChangemnt, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set id = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$idChangemnt, $idUser];
    $exec->execute($data);
}

function modifNomUtilisateur($nomChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set nom = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$nomChangement, $idUser];
    $exec->execute($data);
}

function modifPrenomUtilisateur($prenomChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set prenom = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$prenomChangement, $idUser];
    $exec->execute($data);
}

function modifIdClasseUtilisateur($idClasseChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set idClasse = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$idClasseChangement, $idUser];
    $exec->execute($data);
}

function modifLoginUtilisateur($loginChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set login = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$loginChangement, $idUser];
    $exec->execute($data);
}

function modifMdpUtilisateur($mdpChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set mdp = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$mdpChangement, $idUser];
    $exec->execute($data);
}

function modifStatutUtilisateur($statutChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set statut = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$statutChangement, $idUser];
    $exec->execute($data);
}

function modifCreditRepasUtilisateur($creditRepasChangement, $idUser){
    require "connexion.php" ;
    $sql = "update elior_utilisateur set creditRepas = ? where id = ?";
    $exec=$bdd->prepare($sql);
    $data=[$creditRepasChangement, $idUser];
    $exec->execute($data);
}

function getLesMenusFormule($idFormule, $numMenu, $dateMenu){
    require "connexion.php" ;
    $sql = "select numMenu, descriptionMenu, idFormule from elior_menu where idFormule = ? and numMenu = ? and dateMenu = ?;";
    $exec=$bdd->prepare($sql);
    $data=[$idFormule, $numMenu, $dateMenu];
    $exec->execute($data);
    $curseur=$exec->fetchAll();
    return $curseur;
}

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

function getIdPrixFormule($dateMenu, $numMenu){
    require "connexion.php" ;
    $sql = "select ef.idFormule, ef.prixFormule from elior_menu em inner join elior_formule ef on ef.idFormule = em.idFormule where dateMenu = ? and numMenu = ?;";
    $exec=$bdd->prepare($sql);
    $data=[$dateMenu, $numMenu];
    $exec->execute($data);
    $curseur=$exec->fetch();
    return $curseur;
}

function getFormuleLaPlusChere(){
    require "connexion.php" ;
    $sql = "select max(prixFormule) from elior_formule;";
    $exec=$bdd->query($sql);
    $exec->execute();
    $curseur=$exec->fetch();
    return $curseur;
}

function getFormuleLaMoinsChere(){
    require "connexion.php" ;
    $sql = "select min(prixFormule) from elior_formule;";
    $exec=$bdd->query($sql);
    $exec->execute();
    $curseur=$exec->fetch();
    return $curseur;
}
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Fonctions de Romain
function getUneFormule($idFormule)
{
    require "connexion.php" ;
    $sql="SELECT * FROM elior_formule WHERE idFormule=$idFormule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    $curseur=$exec->fetch() ;
    return $curseur ;
}

// Vérifie si un libellé existe déjà (en excluant éventuellement une formule lors d'une modification)
function libelleFormuleExiste($libelle, $idFormule = null)
{
    require "connexion.php" ;
    $libelle = addslashes($libelle) ;
    if ($idFormule === null) {
        $sql="SELECT COUNT(*) FROM elior_formule WHERE libelleFormule='$libelle'" ;
    } else {
        $sql="SELECT COUNT(*) FROM elior_formule WHERE libelleFormule='$libelle' AND idFormule != $idFormule" ;
    }
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetchColumn() > 0 ;
}

// Vérifie si une formule est utilisée par au moins un menu (empêche la suppression)
function formuleUtilisee($idFormule)
{
    require "connexion.php" ;
    $sql="SELECT COUNT(*) FROM elior_menu WHERE idFormule=$idFormule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    return $exec->fetchColumn() > 0 ;
}

// Ajoute une nouvelle formule
function ajouterFormule($libelle, $tarif)
{
    require "connexion.php" ;
    $libelle = addslashes($libelle) ;
    $sql="INSERT INTO elior_formule (libelleFormule, prixFormule) VALUES ('$libelle', $tarif)" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

// Modifie le libellé et le tarif d'une formule existante
function modifierFormule($idFormule, $libelle, $tarif)
{
    require "connexion.php" ;
    $libelle = addslashes($libelle) ;
    $sql="UPDATE elior_formule SET libelleFormule='$libelle', prixFormule=$tarif WHERE idFormule=$idFormule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

// Supprime une formule (uniquement si non utilisée, contrôle fait dans le contrôleur)
function supprimerFormule($idFormule)
{
    require "connexion.php" ;
    $sql="DELETE FROM elior_formule WHERE idFormule=$idFormule" ;
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
}

function getLesRepasParFormule($dateDebut, $dateFin)
{
   require "connexion.php" ;
    // On compte le nombre de repas par formule sur la période donnée
    $sql="SELECT count(*) as nbRepas, libelleFormule from elior_commande
        inner join elior_menu on elior_menu.dateMenu=elior_commande.dateMenu and elior_menu.numMenu=elior_commande.numMenu
        inner join elior_formule on elior_menu.idFormule=elior_formule.idFormule
        where elior_commande.dateMenu between ? and ?
        GROUP BY libelleFormule;" ;
    $exec=$bdd->prepare($sql) ;
    $data=[$dateDebut, $dateFin];
    $exec->execute($data) ;
    $curseur=$exec->fetchAll() ;
    return $curseur ;
}

//Eliot
function affichFormules()
{

    require "connexion.php";
    $sql="select libelleFormule, prixFormule from elior_formule";
    $exec=$bdd->prepare($sql);
    $exec->execute();
    $curseur=$exec->fetchAll();
    return $curseur;

}

function getMenus($ladateAMJ)
{
    require "connexion.php";
    $sql="select a.idFormule, libelleFormule, numMenu, descriptionMenu from elior_formule a inner join elior_menu b on a.idFormule = b.idFormule where dateMenu = '$ladateAMJ' order by libelleFormule, numMenu";
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
    $curseur = $exec -> fetchAll();
    return $curseur;
}

function enregistrerCommande2($dateMenu,$numMenu,$idUtil, $idFormule ) {
    require "connexion.php" ;
    $sql="INSERT INTO elior_commande values ('$dateMenu',$numMenu, $idUtil)" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
    
    $sql="select prixFormule from elior_formule where idFormule=$idFormule" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
    $laFormule = $exec -> fetch();
    $prixRepas = $laFormule["prixFormule"];
    
    $sql="update elior_utilisateur SET creditRepas = creditRepas - $prixRepas where id=$idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;
 }    

 function annulerCommande2($dateMenu, $idUtil) {
    require "connexion.php" ;
    

    $sql="select idFormule from elior_menu where dateMenu='$dateMenu'" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
    $resultat = $exec -> fetch();
    $idFormule = $resultat["idFormule"];
    
    $sql="select prixFormule from elior_formule where idFormule='$idFormule'" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
    $laFormule = $exec -> fetch();
    $prixFormule = $laFormule["prixFormule"];

    $sql="update elior_utilisateur set creditRepas = creditRepas + $prixFormule where id=$idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;

    $sql="DELETE FROM elior_commande where dateMenu='$dateMenu' and idUtil = $idUtil" ;
    //exécution de la requete
    $exec=$bdd->prepare($sql) ;
    $exec->execute() ;    
 }

function ajouterFormule2($libelle, $prix)
{
    require "connexion.php";
    $sql="select libelleFormule from elior_formule where libelleFormule = ?";
    $tableau = [$libelle];
    $exec=$bdd->prepare($sql);
    $exec->execute($tableau);
    $curseur=$exec->fetchAll();
    if (Count($curseur) > 0)
    {
        return false;
    }
    else
    {
        require "connexion.php";
        $sql="insert into elior_formule (libelleFormule, prixFormule) values (?,?)";
        $tableau = [$libelle, $prix];
        $exec=$bdd->prepare($sql);
        $exec->execute($tableau);
        $curseur=$exec;
        return $curseur;
    }

}

function modifierFormule2($ancien_libelle, $libelle, $prix)
{
    if ($ancien_libelle == $libelle)
    {
        require "connexion.php";
        $sql="update elior_formule set prixFormule = ? where libelleFormule = ?";
        $tableau = [$prix, $libelle];
        $exec=$bdd->prepare($sql);
        $exec->execute($tableau);
        $curseur=$exec;
        return $curseur;
    }
    else
    {
        require "connexion.php";
        $sql="select libelleFormule from elior_formule where libelleFormule = ?";
        $tableau = [$libelle];
        $exec=$bdd->prepare($sql);
        $exec->execute($tableau);
        $curseur=$exec->fetchAll();
        if (Count($curseur) > 0)
        {
            return false;
        }
        else
        {
            require "connexion.php";
            $sql="update elior_formule set libelleFormule = ?, prixFormule = ? where libelleFormule = ?";
            $tableau = [$libelle, $prix, $ancien_libelle];
            $exec=$bdd->prepare($sql);
            $exec->execute($tableau);
            $curseur=$exec;
            return $curseur;
        }
    }

}

function supprFormule2($libelle)
{
    require "connexion.php";
    $sql="select libelleFormule from elior_menu as a inner join elior_formule as b on a.idFormule = b.idFormule where libelleFormule = ?";
    $tableau = [$libelle];
    $exec=$bdd->prepare($sql);
    $exec->execute($tableau);
    $curseur=$exec->fetchAll();
    if (Count($curseur) > 0)
    {
        return false;
    }
    else
    {
        $sql="delete from elior_formule where libelleFormule = ?";
        $tableau = [$libelle];
        $exec=$bdd->prepare($sql);
        $curseur=$exec->execute($tableau);
        return $curseur;
    }

}
?>