Exemple #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()
 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 AssocierCommandeClient(nom, prenom, id_commande):
     conf = [False, False]
     (cur, conn) = bdd.ouvrirConnexion()
     bdd.executerReq(cur,
                     "SELECT idc FROM client WHERE nom=%s AND prenom=%s ;",
                     (
                         nom,
                         prenom,
                     ))
     client = cur.fetchone()
     bdd.executerReq(cur, "SELECT * FROM commande WHERE idc=%s ;",
                     (id_commande, ))
     tout = cur.fetchone()
     if tout != None:
         conf[0] = True
         if client != None:
             conf[1] = True
             id_client = client[0]
             bdd.executerReq(
                 cur,
                 "UPDATE lien_client_commande SET idcl=%s WHERE idco=%s ;",
                 (
                     id_client,
                     id_commande,
                 ))
             bdd.validerModifs(conn)
     bdd.fermerConnexion(cur, conn)
     return conf
 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 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 MarquerCommandeLivree(id_commande):
        (cur, conn) = bdd.ouvrirConnexion()
        bdd.executerReq(cur, "UPDATE commande SET livree=%s WHERE idc=%s;", (
            True,
            id_commande,
        ))
        bdd.validerModifs(conn)
        bdd.fermerConnexion(cur, conn)


#if __name__ == "__main__":
#com=Commande('2004-10-19 10:23:54','2004-10-25 16:20:00',True,'Dorade 1 Orange 5')
#ch=com.chaine_course
#print(ch)
#liste_course=com.conversion_liste_course(ch)
#date_commande=com.date_de_commande
#print(liste_course)
#ex=com.verification_existence(liste_course,date_commande)
#print(ex)
#qu=com.verification_quantite(liste_course,date_commande)
#print(qu)
#trie=com.trierListeDeCourse(liste_course)
#print(trie)
#poids=com.calculPoids(liste_course)
#print(poids)
#volume=com.calculVolume(liste_course)
#print(volume)
#com.interaction(liste_course)
#print(liste_course)
 def MarquerCommandePrete(id_commande):
     (cur, conn) = bdd.ouvrirConnexion()
     bdd.executerReq(cur, "UPDATE commande SET prete=%s WHERE idc=%s;", (
         True,
         id_commande,
     ))
     bdd.validerModifs(conn)
     bdd.fermerConnexion(cur, conn)
Exemple #9
0
def supprCommande(Commande):
    '''
    Supprime si elle existe une commande de la base de données
    '''
    numero = Commande.numero
    cur, conn = bdd.ouvrirConnexion()
    id_Com = numero
    if id_Com != None:
        bdd.executerReq(
            cur, "DELETE FROM commandes WHERE numero=%d;" % (int(id_Com[0])))
        bdd.validerModifs(conn)
    bdd.fermerConnexion(cur, conn)
 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
Exemple #11
0
def supprClient(Client):
    '''
    Supprime un client dans la base de données
    '''
    nom = Client.nom
    prenom = Client.prenom
    cur, conn = bdd.ouvrirConnexion()
    bdd.executerReq(cur, "SELECT id FROM clients WHERE nom=%s AND prenom=%s;",
                    (nom, prenom))
    id_Cli = cur.fetchone()
    if id_Cli != None:
        bdd.executerReq(
            cur, "DELETE FROM clients WHERE id=%d;" % (int(id_Cli[0]), ))
        bdd.validerModifs(conn)
    bdd.fermerConnexion(cur, conn)
 def retirerProduit(self, liste_course):
     (cur, conn) = bdd.ouvrirConnexion()
     for i in range(0, len(liste_course) - 1, 2):
         article = liste_course[i]
         bdd.executerReq(cur,
                         "SELECT stock_reel FROM produit WHERE nom=%s;",
                         (article, ))
         quantite_nouv = int(cur.fetchone()[0]) - int(liste_course[i + 1])
         bdd.executerReq(cur,
                         "UPDATE produit SET stock_reel=%s WHERE nom=%s;", (
                             quantite_nouv,
                             article,
                         ))
         bdd.validerModifs(conn)
     bdd.fermerConnexion(cur, conn)
Exemple #13
0
def remplirCommandes_Clients(commande, idcli):
    '''
    Remplir la table de liens commandes_clients à partir d'un objet commande
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    idc = commande.numero
    try:
        bdd.executerReq(
            cur, "INSERT INTO commandes_clients (idc,idcli) VALUES (%s,%s);",
            (idc, idcli))
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
Exemple #14
0
def visCli():
    '''
    Affiche dans le terminal la liste des clients présents dans la base de données
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(cur, "SELECT * FROM clients;")
        for cli in cur:
            for i in range(0, len(cli)):
                print(cli[i])
            print('---------')
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
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()
Exemple #16
0
def volumeArticle(ref):
    '''
    Retourne le volume d'un article
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(cur, "SELECT volume FROM articles WHERE reference=%s;",
                        (ref, ))
        vol = cur.fetchone()
        if vol == None:
            raise Exception("Article non present")
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
    return vol
def listeCom():
    '''
    Retourne la liste des commandes présentes dans la base de données
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    lst = list()
    try:
        bdd.executerReq(cur, "SELECT * FROM commandes;")
        for cli in cur:
            for i in range(0, len(cli)):
                lst.append(cli[i])
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
    return lst
Exemple #18
0
def visUnCom(Commande):
    '''
    Affiche dans le terminal la liste une commande spécifique présents dans la base de données
    '''
    numero = Commande.numero
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(cur, "SELECT * FROM commandes WHERE numero = %s;",
                        (numero))
        for cli in cur:
            for i in range(0, len(cli)):
                print(cli[i])
            print('---------')
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
Exemple #19
0
def visUnArt(Article):
    '''
    Affiche dans le terminal la liste un article spécifique présent dans la base de données
    '''
    reference = Article.reference
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(cur, "SELECT * FROM articles WHERE reference = %s;",
                        (reference))
        for cli in cur:
            for i in range(0, len(cli)):
                print(cli[i])
            print('---------')
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
 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()
Exemple #21
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()
Exemple #22
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()
def suppression():
    '''
    Supprime les différentes tables dans la base de données
    '''
    cur, conn = bdd.ouvrirConnexion()

    # commandes_clients
    bdd.executerReq(cur, "DROP TABLE commandes_clients;")
    # clients
    bdd.executerReq(cur, "DROP TABLE clients;")
    # commandes_articles
    bdd.executerReq(cur, "DROP TABLE commandes_articles;")
    # commandes
    bdd.executerReq(cur, "DROP TABLE commandes;")
    # articles
    bdd.executerReq(cur, "DROP TABLE articles;")

    bdd.validerModifs(conn)
    bdd.fermerConnexion(cur, conn)
 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()
Exemple #25
0
def creerListeCommandesEnAttente():
    '''
    Retorune la liste des comandes(numeros,poids,volume) qui ne sont pas encore traité (dont l'attribut prete en à False)
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(
            cur, "SELECT numero, poids ,volume FROM commandes \
                                WHERE prete=False \
                                ORDER BY ddc;")
        lca = []
        for com in cur:
            lca.append(com)
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        return lca
        bdd.fermerConnexion(cur, conn)
Exemple #26
0
def visUnCli(Client):
    '''
    Affiche dans le terminal un client spécifique présents dans la base de données
    '''
    nom = Client.nom
    prenom = Client.prenom
    (cur, conn) = bdd.ouvrirConnexion()
    try:
        bdd.executerReq(cur,
                        "SELECT * FROM clients WHERE nom=%s AND prenom=%s;",
                        (nom, prenom))
        for cli in cur:
            for i in range(0, len(cli)):
                print(cli[i])
            print('---------')
        bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
Exemple #27
0
def remplirCommandes_Articles(commande):
    '''
    Remplir la table de liens commandes_articles à partir d'un objet Commande   
    '''
    (cur, conn) = bdd.ouvrirConnexion()
    idc = commande.numero
    try:
        for elem in commande.lsa:
            splitelem = elem.split(' ')
            ida = splitelem[0]
            qte = splitelem[2]
            bdd.executerReq(
                cur,
                "INSERT INTO commandes_articles (idc,ida,quantite) VALUES (%s,%s,%s);",
                (idc, ida, qte))
            bdd.validerModifs(conn)
    except DatabaseError:
        raise
    finally:
        bdd.fermerConnexion(cur, conn)
def suppression():
    cur, conn = bdd.ouvrirConnexion()

    # Employe
    bdd.executerReq(cur, "DROP TABLE employe;")
    # Client
    bdd.executerReq(cur, "DROP TABLE client;")
    # Commande
    bdd.executerReq(cur, "DROP TABLE commande;")
    # Emplacement
    bdd.executerReq(cur, "DROP TABLE emplacement;")
    # Magasin
    bdd.executerReq(cur, "DROP TABLE magasin;")
    # Produit
    bdd.executerReq(cur, "DROP TABLE produit;")
    # Lien client-commande
    bdd.executerReq(cur, "DROP TABLE lien_client_commande;")

    bdd.validerModifs(conn)
    bdd.fermerConnexion(cur, conn)
Exemple #29
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()
Exemple #30
0
def supprimerArticle(Article):
    '''
    Supprime si il existe 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()
        bdd.executerReq(
            cur,
            "SELECT reference FROM articles WHERE nom=%s AND poids=%s AND volume=%s;",
            (nom, poids, volume))
        id_Art = cur.fetchone()
        if id_Art != None:
            bdd.executerReq(
                cur,
                "DELETE FROM articles WHERE reference=%d;" % (int(id_Art[0])))
            bdd.validerModifs(conn)
        bdd.fermerConnexion(cur, conn)