main.py 7.69 KB
Newer Older
Leo Peron's avatar
Leo Peron committed
1
2
import requests as r
from typing import List
Leo Peron's avatar
Leo Peron committed
3
import display as d
Leo Peron's avatar
Leo Peron committed
4
5

req = r.Requests()
Leo Peron's avatar
Leo Peron committed
6
disp = d.Display(req)
Leo Peron's avatar
Leo Peron committed
7
8
9

def main():

10
    i = 0
Leo Peron's avatar
Leo Peron committed
11

12
13
14
15
16
17
18
19
20
21
22
    try:
        while True:
            print("GESTION DE COMPTES BANCAIRES")
            print("---------------------------- \n")
            print("Selectionnez l'action souhaitée")
            print("1. Connectez vous")
            print("2. Inscrivez vous")
            print("3. Modifier un profil")
            print("4. Supprimer un profil")
            print("5. Arreter le programme")

23
            i = int(input("Choississez l'option: "))
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

            if i == 5:
                return

            num = int(input("Entrez votre numéro de téléphone: "))

            if i == 1:
                raw = req.getUserByNum(num)
                if not raw:
                    print("Compte inexistant")
                else:
                    userInterface(raw)
            elif i == 2:
                createProfile(num)
            elif i == 3:
                modifyProfile(num)
            elif i==4:
                deleteProfile(num)
    finally:
        req.close()
Leo Peron's avatar
Leo Peron committed
44
45
46


def userInterface(raw: List[str]):
Leo Peron's avatar
Leo Peron committed
47
    i = 0
48
    while i != 12:
Leo Peron's avatar
Leo Peron committed
49
50
51
52
53
        print("---------------------------------------")
        print(
            f"Bonjour {raw[1]}, \n Numéro de téléphone: {raw[0]} \n Adresse: {raw[2]}"
        )
        print("---------------------------------------")
Leo Peron's avatar
Leo Peron committed
54
        print("1. Voir vos comptes")
Leo Peron's avatar
Leo Peron committed
55
        print("2. Voir vos opérations")
56
57
        print("3. Déclarer l'appartenance d'un compte")
        print("4. Retirer l'appartenance d'un compte")
Leo Peron's avatar
Leo Peron committed
58
59
60
61
        print("5. Réaliser une opération")
        print("6. Rechercher une opération")
        print("7. Rechercher un compte")
        print("8. Créer un compte")
62
63
64
        print("9. Supprimer un compte")
        print("10. Traiter une opération")
        print("11. Modifier l'état d'un compte")
Leo Peron's avatar
Leo Peron committed
65

66
        print("12. Se Deconnecter")
Leo Peron's avatar
Leo Peron committed
67

Leo Peron's avatar
Leo Peron committed
68
        i = int(input("Choississez l'option: "))
Leo Peron's avatar
Leo Peron committed
69

Leo Peron's avatar
Leo Peron committed
70
        if i == 1:
Leo Peron's avatar
Leo Peron committed
71
            disp.displayUserAccounts(raw[0])
Leo Peron's avatar
Leo Peron committed
72
        elif i==2:
Leo Peron's avatar
Leo Peron committed
73
74
75
76
77
78
79
            disp.displayUserOperations(raw[0])
        elif i == 3:
            disp.displayAllAccounts()
            addUser(raw[0])
        elif i == 4:
            disp.displayUserAccounts(raw[0])
            removeAccount(raw[0])
Leo Peron's avatar
Leo Peron committed
80
        elif i==5:
Leo Peron's avatar
Leo Peron committed
81
            makeOperation(raw[0])
Leo Peron's avatar
Leo Peron committed
82
83
            pass
        elif i==6:
Leo Peron's avatar
Leo Peron committed
84
            findOperation()
Leo Peron's avatar
Leo Peron committed
85
        elif i==7:
Leo Peron's avatar
Leo Peron committed
86
87
88
            findCompte()
        elif i==8:
            creerCompte(raw[0])
89
90
91
92
93
94
95
96
97
        elif i==9:
            disp.displayUserAccounts(raw[0])
            supprimerCompte(raw[0])
        elif i==10:
            disp.displayUntreatedUserOperations(raw[0])
            traiterOperation(raw[0])
        elif i==11:
            disp.displayUserAccounts(raw[0])
            modifierStatutCompte(raw[0])
Leo Peron's avatar
Leo Peron committed
98
99
100

# CONNEXION

101
102
103
104
105
106
107
108
109
def createProfile(num: int):
    nom = str(input("Entrez votre prénom et votre nom: "))
    adresse = str(input("Entrez votre adresse: "))
    result = req.createUser(num, nom, adresse)
    if result:
        print("Le client a bien été crée")
    else:
        print("Client déjà existant")

Leo Peron's avatar
Leo Peron committed
110
111
112
113
def modifyProfile(num: int):
    nom = str(input("Entrez votre prénom et votre nom"))
    adresse = str(input("Entrez votre adresse"))
    result = req.modifyUser(num, nom, adresse)
Leo Peron's avatar
Leo Peron committed
114
    if result:
Leo Peron's avatar
Leo Peron committed
115
        print("La modification a fonctionné")
Leo Peron's avatar
Leo Peron committed
116
    else:
Leo Peron's avatar
Leo Peron committed
117
118
119
120
121
122
        print("La modification n'a pas fonctionné")

def deleteProfile(num: int):
    result = req.deleteUser(num)
    if result:
        print("Votre compte a bien été supprimé")
Leo Peron's avatar
Leo Peron committed
123
    else:
Leo Peron's avatar
Leo Peron committed
124
        print("Votre compte n'a pas être supprimé")
Leo Peron's avatar
Leo Peron committed
125
126


Leo Peron's avatar
Leo Peron committed
127
# INTERFACE DE COMPTE
Leo Peron's avatar
Leo Peron committed
128

Leo Peron's avatar
Leo Peron committed
129
130
131
132
def addUser(num: int):
    type = str(input("A quel type de compte voulez-vous être ajouté ? "))
    id = str(input("Quel est l'id de ce compte ? "))
    result = req.addUserToAccount(num, id, type)
Leo Peron's avatar
Leo Peron committed
133
134
135
136
    if result:
        return print("Vous avez bien été ajouté à ce compte")
    else:
        return print("Ce compte n'existe pas ou il vous appartient déjà")
Leo Peron's avatar
Leo Peron committed
137
138

def removeAccount(num: int):
Leo Peron's avatar
Leo Peron committed
139
140
141
    type = str(input("A quel type de compte voulez-vous être retiré ? "))
    id = str(input("Quel est l'id de ce compte ? "))
    result = req.removeUserFromAccount(num, id, type)
Leo Peron's avatar
Leo Peron committed
142
143
144
145
    if result:
        return print("Vous avez bien été retiré de ce compte")
    else:
        return print("Ce compte n'existe pas ou il ne vous appartient pas")
Leo Peron's avatar
Leo Peron committed
146

Leo Peron's avatar
Leo Peron committed
147
148
149
150
151
def findOperation():
    type = str(input("Quel type d'opération cherchez-vous ? "))
    date = str(input("Quelle est la date de cette opération ? "))
    result = req.getOperationByDate(date, type)
    disp.printOperation(result, type)
Leo Peron's avatar
Leo Peron committed
152

Leo Peron's avatar
Leo Peron committed
153
154
155
156
157
def findCompte():
    type = str(input("Quel type de compte cherchez-vous ? "))
    id = str(input("Quel est l'id de ce compte ? "))
    result = req.getAccountById(id)
    disp.printAccount(result, result, type, False)
Leo Peron's avatar
Leo Peron committed
158

Leo Peron's avatar
Leo Peron committed
159
160
161
162
163
164
165
def makeOperation(num: int):
    typeOperation = str(input("Quel type d'opération voulez-vous faire ? "))
    montant = int(input("Quel est le montant de l'opération ? "))
    disp.displayUserAccounts(num)
    typeCompte = str(input("Sur quel type de compte voulez-vous faire l'opération ? "))
    id = int(input("Quel est l'id du compte ? "))
    result = req.createOperation(id, num, typeOperation, typeCompte, montant)
Leo Peron's avatar
Leo Peron committed
166
    if result:
Leo Peron's avatar
Leo Peron committed
167
        return print("L'opération a bien été effectué")
Leo Peron's avatar
Leo Peron committed
168
    else:
Leo Peron's avatar
Leo Peron committed
169
        return print("Erreur dans la réalisation de l'opération")
Leo Peron's avatar
Leo Peron committed
170

Leo Peron's avatar
Leo Peron committed
171
def creerCompte(num: int):
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
    typeCompte = str(input("Quel type de compte? "))

    result = None
    if typeCompte == "epargne":
        solde = float(input("Solde du compte: "))
        interet = float(input("Interet mensuel: "))
        plafond = float(input("Plafond du solde: "))
        result = req.createEpargneAccount(num, interet, plafond, solde)
    elif typeCompte == "revolving":
        solde = float(input("Solde du compte: "))
        taux = float(input("Taux journalier: "))
        montant = float(input("Montant minimal: "))
        result = req.createRevolvingAccount(num, solde, taux, montant)
    elif typeCompte == "courant":
        solde = float(input("Solde du compte: "))
        decouvert = float(input("Decouvert maximal: "))
        result = req.createCourantAccount(num, solde, decouvert)
    else:
        print("Le type de compte est invalide")
        return

    if result:
        print("Le compte a bien été crée")
    else:
        print("La création du compte a echoué")
Leo Peron's avatar
Leo Peron committed
197

198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
def supprimerCompte(num: int):
    typeCompte = str(input("Quel type de compte? "))
    id = str(input("Quel est l'id du compte à supprimer? "))
    result = req.deleteAccount(num, typeCompte, id)

    if result:
        print("Compte supprimé avec succès")
    else:
        print("Le compte n'existe pas ou la suppression du compte a échouée")

def traiterOperation(num: int):
    typeOperation = str(input("Quel est le type d'opération? "))
    id = int(input("Quel est l'id de l'opération? "))

    result = req.treatOperation(num, typeOperation, id)
    if result:
        print("L'opération a été traitée")
    else:
        confirmation = str(input("Le traitement a échoué. Souhaitez vous supprimer l'opération (O/N)? "))
        if confirmation in ["O", "o"]:
            result = req.deleteOperation(num, typeOperation, id)

def modifierStatutCompte(num: int):
    typeCompte = str(input("Quel type de compte voulez-vous modifier ? "))
    id = str(input("Quel est l'id de ce compte ? "))
    statut = str(input("Quel est le nouvel état du compte (Ouvert, Bloqué, Fermé) ? "))
    result = req.modifyAccountStatus(num, typeCompte, id, statut)

    if result:
        return print("Le statut du compte a bien été modifé")
    else:
        return print("Ce compte n'existe pas ou le changement de statut a échoué")


Leo Peron's avatar
Leo Peron committed
232
if __name__ == "__main__":
Leo Peron's avatar
Leo Peron committed
233
    main()