예제 #1
0
파일: Jeu.py 프로젝트: Darkyler/Piscine
 def supprimer_Exemplaire(self):
     try:
         Exemplaire=EnsExemplaires.get_Exemplaire_dispo(self)
         EnsExemplaires.supprimerExemplaire(Exemplaire)
     except:
         print ("[ERREUR] Jeu :: Erreur lors de la suppression !")
         raise
예제 #2
0
파일: Emprunt.py 프로젝트: Darkyler/Piscine
	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
예제 #3
0
    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
예제 #4
0
    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()
예제 #5
0
파일: JeuView.py 프로젝트: Darkyler/Piscine
    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)
예제 #6
0
파일: Jeu.py 프로젝트: Deviljushiro/Piscine
 def get_nombre_exemplaires_dispo(self,disponible=1):
     return EnsExemplaires.get_nombre_exemplaires(self,disponible)
예제 #7
0
 def save(self):
     EnsExemplaires.insert(self)
예제 #8
0
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])
예제 #9
0
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
예제 #10
0
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])
예제 #11
0
 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)