main.py 6.68 KB
Newer Older
Louis Lechevalier's avatar
Louis Lechevalier committed
1
import psycopg2
2
import fonction
Louis Lechevalier's avatar
Louis Lechevalier committed
3
4

HOST = "tuxa.sme.utc"
Adrien Simon's avatar
Adrien Simon committed
5
6
USER = "nf18p013"  # "nf18p008"
PASSWORD = "XLFuujH5"  # "IeBhD9xe"
7
DATABASE = "dbnf18p013"
Louis Lechevalier's avatar
Louis Lechevalier committed
8
# Open connection
Adrien Simon's avatar
Adrien Simon committed
9
10
11
conn = psycopg2.connect(
    "host=%s dbname=%s user=%s password=%s" % (HOST, DATABASE, USER, PASSWORD)
)
Louis Lechevalier's avatar
Louis Lechevalier committed
12
13
14
# Open a cursor to send SQL commands
cur = conn.cursor()

15

Adrien Simon's avatar
Adrien Simon committed
16
17
# menu

Adrien Simon's avatar
Adrien Simon committed
18
19
main_user_choice = 0
while main_user_choice != 5:
Adrien Simon's avatar
Adrien Simon committed
20
21
22
23
24
25
    print("1/ Gestion des utilisateurs et des réservations")
    print("2/ Gestion des parkings et des zones")
    print("3/ Statistiques générales")
    print("4/ Maintenance BDD")
    print("5/ Quitter")

Adrien Simon's avatar
Adrien Simon committed
26
    main_user_choice = int(input("Dans quel menu souhaitez vous vous rendre ? "))
Adrien Simon's avatar
Adrien Simon committed
27

Adrien Simon's avatar
Adrien Simon committed
28
    if main_user_choice == 1:
Adrien Simon's avatar
Adrien Simon committed
29
30
31
32
33
34
35
36
37
        print("11/ Ajouter un abonné")
        print("12/ Ajouter un occasionnel")
        print("13/ Supprimer un abonné")
        print("14/ Renouveler abonnement")
        print("15/ Visualiser la liste des abonnés")
        print("16/ Créer une réservation abonné")
        print("17/ Créer une réservation occasionnel")
        print("18/ Mettre à jour les réductions fidélité")

Adrien Simon's avatar
Adrien Simon committed
38
    if main_user_choice == 2:
Adrien Simon's avatar
Adrien Simon committed
39
40
41
42
43
44
        print("21/ Ajouter zone")
        print("22/ Ajouter parking")
        print("23/ Modifier le tarif d'une zone")
        print("24/ Visualiser le nombre de places dispos dans un parking")
        print("25/ Modifier la zone d'un parking ")

Adrien Simon's avatar
Adrien Simon committed
45
    if main_user_choice == 3:
Adrien Simon's avatar
Adrien Simon committed
46
47
48
49
50
51
52
53
54
55
        print("31/ Renvoyer le nombre de places prises par abonne/ticket/automate")
        print("32/ Statistiques des tickets pris sur un parking Particulier")
        print("33/ Statistiques des tickets pris sur l'ensemble des parkings")
        print("34/ Nombre d'abonne")
        print("35/ Nombre d'occasionnel")
        print("36/ Nombre total d'utilisateur différents")
        print("37/ Nombre de 2 roues enregistrés")
        print("38/ Nombre de camions enregistrés")
        print("39/ Nombre de véhicules simples enregistrés")

Adrien Simon's avatar
Adrien Simon committed
56
    if main_user_choice == 4:
Adrien Simon's avatar
Adrien Simon committed
57
58
59
60
        print("41/ insertion automatique de donnees")
        print("42/ Creer/Reinitialiser la BDD")
        print("43/ Supprimer la BDD")

Adrien Simon's avatar
Adrien Simon committed
61
    if main_user_choice in [1, 2, 3, 4]:
Adrien Simon's avatar
Adrien Simon committed
62
        user_choice = int(input("Que souhaitez vous faire ? "))
Adrien Simon's avatar
Adrien Simon committed
63
64
    else:
        user_choice = 0
Adrien Simon's avatar
Adrien Simon committed
65
66
67
68
69
70

    # SOUS MENU 1

    if user_choice == 11:
        qst = int(input("etes vous déja venu ? oui : 1, non : 2"))
        if qst == 1:
Pierre-Guerin's avatar
Pierre-Guerin committed
71
            fonction.supprimerOccasionnel(conn)
Adrien Simon's avatar
Adrien Simon committed
72
        fonction.ajouterAbonne(conn, 25)
Louis Lechevalier's avatar
Louis Lechevalier committed
73

Adrien Simon's avatar
Adrien Simon committed
74
    elif user_choice == 12:
75
        fonction.ajouterOccasionnel(conn)
Louis Lechevalier's avatar
Louis Lechevalier committed
76

Adrien Simon's avatar
Adrien Simon committed
77
78
79
    elif user_choice == 13:
        mail = input("adresse mail de l'abonne à supprimer :")
        fonction.supprimerAbonne(conn, mail)
Louis Lechevalier's avatar
Louis Lechevalier committed
80

Adrien Simon's avatar
Adrien Simon committed
81
82
83
84
85
86
    elif user_choice == 14:
        idAbo = int(
            input(
                "Quel est le numero d'identifiant de l'abonné dont il faut renouveler l'abonnement ?"
            )
        )
87
        fonction.renouvelerAbonnement(conn, idAbo)
Louis Lechevalier's avatar
Louis Lechevalier committed
88

Adrien Simon's avatar
Adrien Simon committed
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
    elif user_choice == 15:
        fonction.listeAbonne(conn)

    elif user_choice == 16:
        date = input("date de la réservation (YYYY-MM-DD)")
        choix = int(input("Abonne : 1 | Guichet : 2 | Automate : 3 "))
        if choix == 1:
            typeFournisseurPlace = "abonne"
        elif choix == 2:
            typeFournisseurPlace = "guichet"
        elif choix == 3:
            typeFournisseurPlace = "automate"
        compte = input("Quel est l'email du compte ?")
        choix = int(input("Camion : 1 | Deux roues : 2 | Vehicule simple : 3 "))
        if choix == 1:
            typeVehicule = "camion"
        elif choix == 2:
            typeVehicule = "2 roues"
        elif choix == 3:
            typeVehicule = "vehicule simple"
        nomParking = input("Quel est le nom du parking concerne par la réservation?")
        fonction.reservationAbonne(
            conn, date, typeFournisseurPlace, compte, typeVehicule, nomParking
        )

    elif user_choice == 17:
        date = input("date de la réservation (YYYY-MM-DD)")
        choix = int(input("Abonne : 1 | Guichet : 2 | Automate : 3 "))
        if choix == 1:
            typeFournisseurPlace = "abonne"
        elif choix == 2:
            typeFournisseurPlace = "guichet"
        elif choix == 3:
            typeFournisseurPlace = "automate"

        choix = int(input("Camion : 1 | Deux roues : 2 | Vehicule simple : 3 "))
        if choix == 1:
            typeVehicule = "camion"
        elif choix == 2:
            typeVehicule = "2 roues"
        elif choix == 3:
            typeVehicule = "vehicule simple"
        nomParking = input("Quel est le nom du parking concerne par la réservation?")
        fonction.reservationOccasionnel(
            conn, date, typeFournisseurPlace, typeVehicule, nomParking
        )

    elif user_choice == 18:
Adrien Simon's avatar
Adrien Simon committed
137
        fonction.majReduction(conn)
Adrien Simon's avatar
Adrien Simon committed
138
139
140
141
142
143

    # SOUS MENU 2

    elif user_choice == 21:
        nomZone = input("Quel est le nom de la nouvelle zone ?")
        prixZone = float(input("Quel est le prix associé à la zone ?"))
144
        fonction.ajouterZone(conn, nomZone, prixZone)
Louis Lechevalier's avatar
Louis Lechevalier committed
145

Adrien Simon's avatar
Adrien Simon committed
146
    elif user_choice == 22:
147
        fonction.ajouterParking(conn)
Louis Lechevalier's avatar
Louis Lechevalier committed
148

Adrien Simon's avatar
Adrien Simon committed
149
150
151
    elif user_choice == 23:
        nomZone = input("nom de la zone à modifier :")
        nouveauTarif = input("Quel est le nouveau tarif de la zone ?")
152
        fonction.modifierTarifZone(conn, nomZone, nouveauTarif)
Louis Lechevalier's avatar
Louis Lechevalier committed
153

Adrien Simon's avatar
Adrien Simon committed
154
    elif user_choice == 24:
Pierre-Guerin's avatar
Pierre-Guerin committed
155
        fonction.nbPlacesDansParking(conn)
Louis Lechevalier's avatar
Louis Lechevalier committed
156

Adrien Simon's avatar
Adrien Simon committed
157
158
159
160
161
162
163
164
    elif user_choice == 25:
        parking = input("nom du parking à modifier :")
        zone = input("zone à attribuer au parking :")
        fonction.modifierZoneParking(conn, parking, zone)

    # SOUS MENU 3

    elif user_choice == 31:
Pierre-Guerin's avatar
Pierre-Guerin committed
165
        fonction.nombrePlacesPrises(conn)
Adrien Simon's avatar
Adrien Simon committed
166
167

    elif user_choice == 32:
Pierre-Guerin's avatar
Pierre-Guerin committed
168
169
        fonction.NbreTicketsParkingsParticulier(conn)

Adrien Simon's avatar
Adrien Simon committed
170
    elif user_choice == 33:
Pierre-Guerin's avatar
Pierre-Guerin committed
171
172
        fonction.NbreTicketsParkings(conn)

Adrien Simon's avatar
Adrien Simon committed
173
    elif user_choice == 34:
Pierre-Guerin's avatar
Pierre-Guerin committed
174
175
        fonction.nombreAbonne(conn)

Adrien Simon's avatar
Adrien Simon committed
176
    elif user_choice == 35:
Pierre-Guerin's avatar
Pierre-Guerin committed
177
178
        fonction.nombreOccasionnel(conn)

Adrien Simon's avatar
Adrien Simon committed
179
    elif user_choice == 36:
Pierre-Guerin's avatar
Pierre-Guerin committed
180
181
        fonction.nombreUtilisateurs(conn)

Adrien Simon's avatar
Adrien Simon committed
182
    elif user_choice == 37:
183
184
        fonction.nombreDeuxRouesEnregistres(conn)

Adrien Simon's avatar
Adrien Simon committed
185
    elif user_choice == 38:
186
187
        fonction.nombreCamionsEnregistres(conn)

Adrien Simon's avatar
Adrien Simon committed
188
    elif user_choice == 39:
189
190
        fonction.nombreVSEnregistres(conn)

Adrien Simon's avatar
Adrien Simon committed
191
192
193
194
195
    # SOUS MENU 4

    if user_choice == 41:
        data: str = ""
        with open("Insert.sql", "r") as f:
196
            for l in f:
Adrien Simon's avatar
Adrien Simon committed
197
198
199
200
201
202
203
204
205
206
207
                data += l
        cur.execute(data)
        conn.commit()
        print("donnees inserees \n\n")

    elif user_choice == 42:
        # create bdd
        bdd: str = ""
        with open("CREATE.sql", "r") as f:
            for l in f:
                bdd += l
208
209
        cur.execute(bdd)
        conn.commit()
210

Adrien Simon's avatar
Adrien Simon committed
211
212
    elif user_choice == 43:
        fonction.supprimerBDD(conn)