def supprimer_Exemplaire(self): try: Exemplaire=EnsExemplaires.get_Exemplaire_dispo(self) EnsExemplaires.supprimerExemplaire(Exemplaire) except: print ("[ERREUR] Jeu :: Erreur lors de la suppression !") raise
def __init__(self, Emprunt_id = None, User=None, Jeu=None,Exemplaire=None,date_emprunt=None,date_echeance=None,date_rendu=None): self.Emprunt_id = Emprunt_id #Id de l'emprunt self.User = User #Id de l'adhérent if Emprunt_id == None: # Test si l'exemplaire est disponible if EnsReservation.Reservation_EnCours(User) and EnsReservation.get_Reservation_User().get_Jeu() == self.Jeu: EnsReservation.supprimer_Reservation(EnsReservation.get_Reservation_User(User)) print ("Reservation supprimé !") if EnsExemplaires.get_nombre_exemplaires(Jeu,disponible=1) > 0: self.Exemplaire = EnsExemplaires.get_Exemplaire_dispo(Jeu) else: self.Exemplaire=None print ("Oops, ce jeu n'est pas disponible !") raise self.date_rendu = date_rendu # PréCondition: Exemplaire Disponible ! if (date_emprunt == None and self.Exemplaire.get_Est_disponible() and not(EnsEmprunt.a_un_emprunt_en_cours(User))): self.date_emprunt = date.today() # TEST DU retard #self.date_emprunt = date(2015,10,21) self.date_echeance = self.calcul_Date_Echeance() try: EnsExemplaires.get_Exemplaire(self.Exemplaire.get_Exemplaire_id()).set_Est_disponible(False) self.save() print ("Un emprunt a été créé !") except: print ("Oops, impossible d'emprunter, déjà un emprunt en cours ?!") raise else: print ("Oops ! Emprunt non valide !") raise self.date_emprunt = date_emprunt self.date_echeance = date_echeance else: self.Exemplaire=Exemplaire self.date_emprunt=date_emprunt self.date_echeance=date_echeance self.date_rendu=date_rendu
def setmydata(self): ligne = 0 Emprunts = EnsEmprunt.printAll() for Emprunt in Emprunts: self.Table.setItem(ligne, 0, QTableWidgetItem(str(EnsUtilisateurs.get_user(Emprunt[1]).get_username()))) self.Table.setItem(ligne, 1, QTableWidgetItem(str(EnsExemplaires.get_Exemplaire(Emprunt[2]).get_Jeu_Exemplaire().get_Nom_jeu()))) self.Table.setItem(ligne, 2, QTableWidgetItem(str(Emprunt[3]))) self.Table.setItem(ligne, 3, QTableWidgetItem(str(Emprunt[4]))) ligne=ligne+1
def __init__(self,Reservation_id = None, user = None, Jeu = None, Extension = None ,Exemplaire = None,date_Reservation = None, Terminer = False) : self.Reservation_id = Reservation_id self.user = user self.Jeu = Jeu self.Extension = Extension if Reservation_id == None: # Test si l'exemplaire est disponible if EnsExemplaires.get_nombre_exemplaires(Jeu,disponible=1) > 0: self.Exemplaire = EnsExemplaires.get_Exemplaire_dispo(Jeu) else: self.Exemplaire=None print ("Oops, ce jeu n'est pas disponible !") raise self.Terminer = Terminer if date_Reservation == None: self.date_Reservation = date.today() else: self.date_Reservation = date_Reservation reservation_perime()
def __init__(self,item="",session="",*args): # ESPACEMENT super(JeuView, self).__init__() spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.session = session self.Display = QWidget() self.Display.setMinimumSize(300, 300) self.item = int(item) self.selectedGame = EnsJeux.get_Jeu(self.item) QWidget.__init__(self) HBox1 = QHBoxLayout() Grid = QVBoxLayout() # Titre Principale font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(36) selectedGame=EnsJeux.get_Jeu(self.item) Titre = QLabel(str(selectedGame.get_Nom_jeu())) Titre.setFont(font) HBox1.addWidget(spacer) if (selectedGame.get_nombre_exemplaires_dispo() > 0): Icon = QLabel("<html><img src='./img/green.png' height='35' width='35'></html>") else: Icon = QLabel("<html><img src='./img/red.png' height='35' width='35'></html>") HBox1.addWidget(Icon) HBox1.addWidget(Titre) HBox1.addWidget(spacer) Grid.addLayout(HBox1) Grid.addWidget(spacer) # TOUS LES CHAMPS NomJeuTxt = QLabel("Nom du jeu: ") NomJeu=QLabel(str(selectedGame.get_Nom_jeu())) EditeurTxt = QLabel("Editeur: ") Editeur=QLabel(str(selectedGame.get_Editeur())) AnneeTxt=QLabel("Annee: ") Annee=QLabel(str(selectedGame.get_Annee())) AgeMinTxt=QLabel("Age minimum: ") AgeMin=QLabel(str(selectedGame.get_AgeMini())) NbJoueursTxt=QLabel("Nombre de joueurs: ") NbJoueurs=QLabel(str(selectedGame.get_NombreJoueurs())) NbExtensionsTxt=QLabel("Nombre d'extensions: ") NbExtensions=QLabel(str(EnsExtensions.nombre_extensions_Jeu(selectedGame))) NbExTxt=QLabel("Nombre d'exemplaires: ") NbEx=QLabel(str(selectedGame.get_nombre_exemplaires())) NbExDispoTxt=QLabel("Nombre d'exemplaires disponibles: ") NbExDispo=QLabel(str(selectedGame.get_nombre_exemplaires_dispo())) # Grande Horizontale Milieu HBoxCentre = QHBoxLayout() # Vertical Gauche VBoxTextes = QVBoxLayout() # Horizontale Gauches HBoxGauche = QHBoxLayout() VBoxTextes.addLayout(HBoxGauche) VBox1 = QVBoxLayout() VBox2 = QVBoxLayout() HBoxGauche.addLayout(VBox1) HBoxGauche.addLayout(VBox2) # Ajout des Widgets de texte VBox1.addWidget(NomJeuTxt) VBox2.addWidget(NomJeu) VBox1.addWidget(EditeurTxt) VBox2.addWidget(Editeur) VBox1.addWidget(AnneeTxt) VBox2.addWidget(Annee) VBox1.addWidget(AgeMinTxt) VBox2.addWidget(AgeMin) VBox1.addWidget(NbJoueursTxt) VBox2.addWidget(NbJoueurs) VBox1.addWidget(NbExtensionsTxt) VBox2.addWidget(NbExtensions) VBox1.addWidget(NbExTxt) VBox2.addWidget(NbEx) VBox1.addWidget(NbExDispoTxt) VBox2.addWidget(NbExDispo) if selectedGame.get_nombre_exemplaires_dispo() == 0 and selectedGame.get_nombre_exemplaires() > 0: RetourPrevuTxt=QLabel(u"\nRetour prévu: ") RetourPrevu=QLabel(str(EnsEmprunt.get_Emprunt_Exemplaire(EnsExemplaires.get_Exemplaire(jeu_id=selectedGame.get_Jeu_id())).get_date_echeance())) VBox1.addWidget(RetourPrevuTxt) VBox2.addWidget(RetourPrevu) # Verticale Droite VBoxBoutons = QVBoxLayout() HBoxCentre.addLayout(VBoxTextes) Blank = QVBoxLayout() Blank.addWidget(spacer) HBoxCentre.addLayout(Blank) HBoxCentre.addLayout(VBoxBoutons) Extensions = QPushButton("Afficher Extensions") Emprunter = QPushButton("Emprunter") Reserver = QPushButton("Reserver (Non Disponible)") Modifier = QPushButton("Modifier") Supprimer = QPushButton("Supprimer") ajouterExemplaire = QPushButton("Ajouter un exemplaire") retirerExemplaire = QPushButton("Retirer un exemplaire") # Ajout des widgets Boutons VBoxBoutons.addWidget(Extensions) VBoxBoutons.addWidget(Emprunter) VBoxBoutons.addWidget(Reserver) if self.session != None and self.session.est_admin(): VBoxBoutons.addWidget(Modifier) VBoxBoutons.addWidget(Supprimer) VBoxBoutons.addWidget(ajouterExemplaire) VBoxBoutons.addWidget(retirerExemplaire) Grid.addLayout(HBoxCentre) if self.session != None: self.User = self.session.get_session_User() Extensions.clicked.connect(self.afficherExtensions) Emprunter.clicked.connect(self.emprunter) ajouterExemplaire.clicked.connect(self.ajouterExemplaire) Supprimer.clicked.connect(self.supprimer) retirerExemplaire.clicked.connect(self.retirerExemplaire) Modifier.clicked.connect(self.modifier) Reserver.clicked.connect(self.reserver) # ESPACEMENT spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) Grid.addWidget(spacer) self.setLayout(Grid)
def get_nombre_exemplaires_dispo(self,disponible=1): return EnsExemplaires.get_nombre_exemplaires(self,disponible)
def save(self): EnsExemplaires.insert(self)
def rechercher_Exemplaire (Exemplaire): cur.execute("""SELECT * FROM EnsEmprunt WHERE Exemplaire_id = ?""",(Exemplaire.get_Exemplaire_id())) res = cur.fetchall() return Emprunt(Emprunt_id=res[0],User=EnsUtilisateurs.get_user(res[1]),Exemplaire=EnsExemplaires.get_Exemplaire(res[2]),date_emprunt=res[3],date_echeance=res[4],date_rendu=res[5])
def get_emprunt_en_cours(User): if a_un_emprunt_en_cours(User): cur.execute("""SELECT * FROM EnsEmprunt WHERE user_id = ? AND date_rendu IS NULL""",(User.get_user_id(),) ) res = cur.fetchone() return Emprunt(Emprunt_id=res[0],User=EnsUtilisateurs.get_user(res[1]),Exemplaire=EnsExemplaires.get_Exemplaire(res[2]),date_emprunt=res[3],date_echeance=res[4],date_rendu=res[5]) else: return None
def get_Emprunt (Emprunt_id): cur.execute("""SELECT * FROM EnsEmprunt WHERE emprunt_id = (?)""",(Emprunt_id,)) res = cur.fetchone() return Emprunt(Emprunt_id=res[0],User=EnsUtilisateurs.get_user(res[1]),Exemplaire=EnsExemplaires.get_Exemplaire(res[2]),date_emprunt=res[3],date_echeance=res[4],date_rendu=res[5])
def save(self): if self.Exemplaire_id == None: EnsExemplaires.insert(self) ## Attention ne pas modifier la PREMIERE INSTANCE INSEREE TOUJOURS RECUPERER LA NOUVELLE else: EnsExemplaires.update(self)