include_once "content/fonctions/membres.php"; include_once "content/fonctions/jeux.php"; $onPeutReserver = false; if ($getParamUn) { $idJeuAReserver = $getParamUn; $infosJeu = infosJeuDepuisId($idJeuAReserver); if (!$infosJeu) { $codeMessage = "jeuInvalide"; $idJeuAReserver = false; } else { $listeResa = reservationsEnCoursMembre($pseudoMembre); $infosMembre = infosMembreDepuisPseudo($pseudoMembre); if ($infosMembre["fin_abo"] > time() + ($settings["nbJoursReservation"] + 1) * 24 * 3600) { if (count($listeResa) < $settings["nbReservationsMax"]) { $nbExemplairesJeu = count(exemplairesDunJeu($idJeuAReserver)); $nbReservNonFinies = nbReservationsJeuNonFinies($idJeuAReserver, $settings["nbJoursReservation"]); $nbPretsNonFinis = nbPretsEnCoursNonFinisJeu($idJeuAReserver, $settings["nbJoursReservation"]); if ($nbReservNonFinies + $nbPretsNonFinis < $nbExemplairesJeu) { // Ok, on peut réserver ! $onPeutReserver = true; } else { // Erreur ! Pas assez de jeux pour répondre à la demande $codeMessage = "reserverNbReservMaxAtteintPourCeJeu"; } } else { // Erreur ! Trop de réservations pour ce membre $codeMessage = "reserverNbReservAtteint"; } } else { // Erreur ! Abo fini avant fin réservation $codeMessage = "reserverAboFiniAvantFinReserv";
function empruntNonBloque($idJeu, $pseudo) { // Renvoie TRUE si l'emprunt n'est pas bloqué par les réservations, ou si le membre dispose bien d'une réservation pour ce jeu // Membre dispose de la réservation du jeu en cours ? $sql = 'SELECT * FROM ludo_reservation WHERE pseudo=:pseudo AND dateFin > :now AND dateEmprunt IS NULL;'; $requete = $GLOBALS['bd']->prepare($sql); $requete->bindValue(':pseudo', $pseudo, PDO::PARAM_INT); $requete->bindValue(':now', time(), PDO::PARAM_INT); $requete->execute(); $result = $requete->fetchAll(PDO::FETCH_ASSOC); if (isset($result[0])) { // C'est bon, il peut emprunter return true; } else { // Emprunt possible : nbExemplairesDispo > nbExemplairesReserves if (nbExemplairesJeu($idJeu) > nbReservationsJeuNonFinies($idJeu, 0)) { return true; } else { return false; } } return $result; }