예제 #1
0
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()
예제 #2
0
 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
예제 #3
0
 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()
예제 #4
0
 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()
예제 #5
0
 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()
예제 #6
0
 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()
예제 #7
0
 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()
예제 #9
0
 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()
예제 #10
0
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()
예제 #11
0
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()
예제 #12
0
 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()
예제 #13
0
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()
예제 #14
0
 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()
예제 #15
0
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()
예제 #16
0
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()