def sauvegardeClientmodif(Client1, Client2): ''' Sauvegarde les modifications apportées à un client dans la base de données ''' nom1 = Client1.nom prenom1 = Client1.prenom nom2 = Client2.nom prenom2 = Client2.prenom if nom1 != "" and prenom1 != "" and nom2 != "" and prenom2 != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "SELECT id FROM clients WHERE nom = %s AND prenom = %s;", (nom1, prenom1)) id_cli1 = cur.fetchone() if id_cli1 != None: bdd.executerReq( cur, "UPDATE clients SET nom = %s,prenom=%s \ WHERE nom = %s AND prenom = %s;", (nom2, prenom2, nom1, prenom1)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def ajoutProduit(self, nom, categorie, quantite): #attention, le poids est celui du produit seul. conf = False if nom != "" and categorie != "" and quantite != "": (cur, conn) = bdd.ouvrirConnexion() try: #on verifie si le produit ajouter existe deja. Si c'est la cas, on mettera a jour les stock. #on part du principe que le poids et le volume est unique pour le nom. bdd.executerReq(cur, "SELECT * FROM produit WHERE nom = %s ;", (nom, )) res1 = cur.fetchall() if res1 != []: res = res1[0] conf = True idd = res[0] stockVirt_nouv = int(res[5]) + quantite stockReel_nouv = int(res[6]) + quantite bdd.executerReq( cur, "UPDATE produit SET stock_virtuel=%s, stock_reel=%s WHERE idp=%s;", ( stockVirt_nouv, stockReel_nouv, idd, )) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide() return conf
def suppressionClient(self, nom, prenom): if nom != "" and prenom != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "SELECT * FROM client WHERE nom = %s AND prenom = %s;", ( nom, prenom, )) res = cur.fetchone() if res != None: bdd.executerReq( cur, "DELETE FROM client WHERE nom=%s AND prenom=%s", ( nom, prenom, )) bdd.validerModifs(conn) bdd.fermerConnexion(cur, conn) return True except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def nouveauProduit(self, nom, categorie, volume, poids, quantite, frais): if nom != "" and categorie != "" and volume != "" and poids != "" and quantite != "" and frais != "": (cur, conn) = bdd.ouvrirConnexion() try: #verification que c'est bien un nouveau produit bdd.executerReq(cur, "SELECT * FROM produit WHERE nom = %s ;", (nom, )) res = cur.fetchone() if res == None: bdd.executerReq( cur, "INSERT INTO produit (nom, categorie, volume, poids, stock_virtuel, stock_reel,frais) \ VALUES (%s, %s, %s, %s, %s, %s, %s);", ( nom, categorie, volume, poids, quantite, quantite, frais, )) bdd.validerModifs(conn) bdd.fermerConnexion(cur, conn) return True except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def modificationClient(self, nom_ancien, prenom_ancien, nom_nouv, prenom_nouv, adresse_nouv, accord_sub_nouv, telephone_nouv, adresse_mail_nouv): if nom_ancien != "" and prenom_ancien !="" and nom_nouv != "" and prenom_nouv !="" and adresse_nouv != "" \ and accord_sub_nouv !="" and telephone_nouv !="" and adresse_mail_nouv !="" : (cur, conn) = bdd.ouvrirConnexion() try: #on verifie l'existence du client qui doit être modifie. bdd.executerReq( cur, "SELECT idc FROM client WHERE nom = %s AND prenom = %s;", ( nom_ancien, prenom_ancien, )) res = cur.fetchone() if res != None: idd = res[0] bdd.executerReq(cur, " UPDATE client SET nom=%s, prenom=%s, adresse=%s, accord_sub=%s, telephone=%s, adresse_mail=%s WHERE idc= %s ;", \ (nom_nouv, prenom_nouv, adresse_nouv, accord_sub_nouv, telephone_nouv, adresse_mail_nouv, idd, )) bdd.validerModifs(conn) bdd.fermerConnexion(cur, conn) return True except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def verification_capacite(self,nom_emplacement,quantite): """On verifie que l'emplacement selectionne n'est pas en sur capacite""" #on va faire la somme des stock_reel de la zone selectionnee, retourne True si cette somme est inferieur a la capacite de la zone. #une zone pourra contenir plusieur categories differentes. if nom_emplacement != "": (cur, conn) = bdd.ouvrirConnexion() try: #on selectionne la ou les categories qui sont dans la zone demandee. bdd.executerReq(cur, "SELECT categorie FROM emplacement WHERE nom=%s;" , (nom_emplacement,)) res = cur.fetchone() #print(res) #on fait la somme des produits qui sont dans cette zone. bdd.executerReq(cur, "SELECT SUM(stock_reel) FROM produit WHERE categorie =%s;" , (res[0],)) summ = cur.fetchone() somme_finale = int(summ[0])+quantite #print(summ[0]) #on selectionne la capacite de la zone demandee. bdd.executerReq(cur, "SELECT capacite FROM emplacement WHERE nom=%s;" , (nom_emplacement,)) capa = cur.fetchone() #print(capa[0]) #on test en comparant capa[0] et summ[0]. if somme_finale > int(capa[0]) : #print("Attention, la capacite de l'emplacement ne peut pas etre depassee. !") return False else: #print("On peut encore ajouter des produits dans cet emplacement") return True except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def enleverProduit(self, nom, quantite): conf = [False, False, False] if nom != "": (cur, conn) = bdd.ouvrirConnexion() try: #on verifie si le produit que l'on souhaite supprimer existe. bdd.executerReq(cur, "SELECT * FROM produit WHERE nom = %s; ", (nom, )) res = cur.fetchone() if res != None: conf[0] = True if quantite == 0: conf[1] = True bdd.executerReq( cur, "DELETE FROM produit WHERE nom = %s; ", (nom, )) bdd.validerModifs(conn) else: idp = res[0] stockVirt_nouv = res[5] - quantite #print(res[5]) #print(stockVirt_nouv) stockReel_nouv = res[6] - quantite #on s'assure de ne pas supprimer trop de produits if stockVirt_nouv > 0 and stockReel_nouv > 0: conf[2] = True req1 = ( "UPDATE produit SET stock_virtuel=%s, stock_reel=%s WHERE idp=%s;" % ( stockVirt_nouv, stockReel_nouv, idp, )) bdd.executerReq(cur, req1) bdd.validerModifs(conn) print("suppression du produit reussie") else: print( "impossible d'enlever autant de produit, diminuez la quantite!" ) else: print( "suppression impossible, assurez-vous de l'existence de ce produit" ) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide() return conf
def sauvegardeClient(nom, prenom): ''' Sauvegarde un client dans la base de donnees à l'aide du nom et du prenom du client ''' if nom != "" and prenom != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "INSERT INTO clients (nom, prenom)\ VALUES (%s, %s);", (nom, prenom)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def ajoutClient(self, nom, prenom, adresse, accord_sub, telephone, adresse_mail): if nom != "" and prenom != "" and accord_sub != "" and telephone != "" and adresse_mail != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "INSERT INTO client (nom, prenom, adresse, accord_sub, telephone, adresse_mail) \ VALUES (%s, %s, %s, %s, %s, %s);", (nom, prenom, adresse, accord_sub, telephone, adresse_mail)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def sauvegardeModifComRetiree(Commande): ''' Sauvegarde dans la base de données les modifications apportées à l'attribut retiree d'une commande ''' retiree = Commande.retiree numero = Commande.numero if retiree != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "UPDATE commandes SET retiree=%s\ WHERE numero = %s;", (retiree, numero)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def sauvegardeClient(Client): ''' Sauvegarde un client dans la base de données ''' nom1 = Client.nom prenom1 = Client.prenom if nom1 != "" and prenom1 != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "INSERT INTO clients (nom, prenom)\ VALUES (%s, %s);", (nom1, prenom1)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def annulerCommande(self, id_commande): if id_commande != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq(cur, "SELECT * FROM commande WHERE idc=%s;", (id_commande, )) tout = cur.fetchone() if tout != None: bdd.executerReq(cur, "DELETE FROM commande WHERE idc=%s;", (id_commande, )) bdd.validerModifs(conn) bdd.fermerConnexion(cur, conn) return True except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def enregistrerArticle(Article): ''' Sauvegarde un article dans la base de données ''' nom = Article.nom poids = Article.poids volume = Article.volume if nom != "" and poids != "" and volume != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "INSERT INTO articles (nom ,poids , volume) \ VALUES (%s,%s,%s);", (nom, poids, volume)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def modificationProduit(self, nom_ancien, nom_nouv, categorie_nouv, volume_nouv, poids_nouv, stock_virtuel_nouv, stock_reel_nouv, frais_nouv): if nom_ancien != "" and nom_nouv !="" and categorie_nouv != "" and volume_nouv !="" and poids_nouv != "" \ and stock_virtuel_nouv !="" and stock_reel_nouv !="" and frais_nouv !="" : (cur, conn) = bdd.ouvrirConnexion() try: #on verifie l'existence du produit que l'on souhaite modifier. bdd.executerReq(cur, "SELECT idp FROM produit WHERE nom = %s;", (nom_ancien, )) res = cur.fetchone() if res != None: print("le produit est modifie") #print(res[0]) idp = res[0] bdd.executerReq( cur, " UPDATE produit SET nom=%s, categorie=%s, volume=%s, poids=%s, stock_virtuel=%s, stock_reel=%s, frais=%s \ WHERE idp= %s ;", ( nom_nouv, categorie_nouv, volume_nouv, poids_nouv, stock_virtuel_nouv, stock_reel_nouv, frais_nouv, idp, )) bdd.validerModifs(conn) bdd.fermerConnexion(cur, conn) return True else: print( "le produit ne peut pas etre modifie. Assurez-vous de son existence ou des parametres de modifications." ) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def modifClient(nom1, prenom1, nom2, prenom2): ''' Modifie le client (nom1,prenom1) si il existe en client(nom2,prenom2) ''' if nom1 != "" and prenom1 != "" and nom2 != "" and prenom2 != "": (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "SELECT id FROM clients WHERE nom = %s AND prenom = %s;", (nom1, prenom1)) id_cli1 = cur.fetchone() if id_cli1 != None: bdd.executerReq( cur, "UPDATE clients SET nom = %s,prenom=%s \ WHERE nom = %s AND prenom = %s;", (nom2, prenom2, nom1, prenom1)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()
def enregistrerCommande(Commande): ''' Sauvegarde une commmande ans la base de données ''' ddc = Commande.ddc ddr = Commande.ddr if ddc != "" and ddr != "": ddcSplit = ddc.split('/') ddrSplit = ddr.split('-') (cur, conn) = bdd.ouvrirConnexion() try: bdd.executerReq( cur, "INSERT INTO commandes (ddc,ddr,poids,volume) \ VALUES (to_date('%s/%s/%s', 'DD/MM/YYYY'),to_date('%s/%s/%s', 'DD/MM/YYYY'),%s,%s);", (int(ddcSplit[0]), int(ddcSplit[1]), int(ddcSplit[2]), int(ddrSplit[2]), int(ddrSplit[1]), int( ddrSplit[0]), Commande.poids, Commande.volume)) bdd.validerModifs(conn) except Exception: raise finally: bdd.fermerConnexion(cur, conn) else: raise exceptions.ExceptionEntreeVide()