-
Notifications
You must be signed in to change notification settings - Fork 9
/
banka.py
176 lines (163 loc) · 5.6 KB
/
banka.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# Testni projekt o banki.
# Sodelavci na projektu:
# - alenFMF
# - MarinaUVP
# - PoljanecB15
# - Larisa123
# - AnjaTrop
# - SavliE12
# - kulan89
# - martincesnovar
import modeli
class BancniTerminal:
def __init__(self):
self.oseba = None # izbrana oseba
self.racun = None # izbran račun
self.menu = "glavniMenu" # začetni meni
self.zazeni()
def zazeni(self):
# Glavna zanka, ki izbira menije in izvaja ustrezne funkcije.
while True:
if self.menu == "glavniMenu":
self.glavniMenu()
elif self.menu == "izberiOsebo":
self.izberiOsebo()
elif self.menu == "dodajOsebo":
self.dodajOsebo()
elif self.menu == "izpisRacunov":
self.izpisRacunov()
elif self.menu == "oOsebi":
self.oOsebi()
elif self.menu == "oRacunu":
self.oRacunu()
def glavniMenu(self):
# Meni: glavniMenu
print("-"*10)
print("O - Pregled Oseb")
print("X - Izhod")
izbira = input("> ")
if izbira.lower() == "o":
self.menu = "izberiOsebo"
elif izbira.lower() == "x":
exit()
def izberiOsebo(self):
# Meni: izberiOsebo
podatki = input("Priimek osebe: ");
stevec = 1
print("Izberi številko pred osebo ali drugo akcijo.")
osebe = modeli.poisciPriimek(podatki)
for emso, ime, priimek, _, _, _, _ in osebe:
print(stevec, priimek, ime, emso)
stevec += 1
print("D - Dodaj osebo")
print("N - Nazaj")
izbira = input("> ")
if izbira.lower() == "d":
self.menu = "dodajOsebo"
return
elif izbira.lower() == "n":
self.menu = "glavniMenu"
return
elif izbira.isdigit():
n = int(izbira) - 1
if n >= 0 and n < len(osebe):
self.oseba = osebe[n]
self.menu = "oOsebi"
return
def dodajOsebo(self):
# Meni: dodajOsebo
print("Dodajanje nove osebe")
ime = input("Ime: ")
priimek = input("Priimek: ")
emso = input("EMŠO: ")
ulica = input("Ulica: ")
stevilka = input("Hišna številka: ")
posta = input("Poštna številka: ")
try:
if not modeli.dodajOsebo(ime, priimek, emso, ulica,
stevilka, posta):
kraj = input("Kraj: ")
modeli.dodajKraj(posta, kraj)
modeli.dodajOsebo(ime, priimek, emso, ulica,
stevilka, posta)
print("Vnos osebe", ime, priimek, "uspešen")
except Exception as e:
print("Neuspešen vnos. Poskusi ponovno.", e)
self.menu = "glavniMenu"
def oOsebi(self):
# Meni: "oOsebi"
# Predpostavka: v self.oseba je izbrana oseba
emso, ime, priimek, ulica, hisna_stevilka, posta, kraj = self.oseba
print("""{0} {1}
EMŠO: {2}
Naslov: {3} {4}, {5} {6}""".format(ime, priimek, emso, ulica, hisna_stevilka, posta, kraj))
# P - Popravi podatke (naredimo kasneje)
# R - Izpis računov
print("N - Nazaj")
print("R - Izpis računov")
izbira = input("> ")
if izbira.lower() == "n":
self.menu = "izberiOsebo"
return
elif izbira.lower() == "r":
self.menu = "izpisRacunov"
return
def izpisRacunov(self):
# Meni: izpisRačunov
# Predpostavka: v self.oseba je izbrana oseba
print("Izpis računov za:", self.oseba[1] + " " + self.oseba[2])
# # - izbor računa
emso = self.oseba[0]
racuni = racunEMSO(emso)
stevec = 1
for racun in racuni:
print(stevec, racun)
stevec += 1
# D - Dodaj račun (ne gremo v nov meni, samo dodamo)
# N - Nazaj
print("D - Dodaj račun")
print("N - Nazaj")
izbira = input("> ")
if izbira.lower() == "n":
self.menu = "oOsebi"
return
elif izbira.lower() == "d":
print("Ali ste prepričani, da bi radi dodali račun za osebo:", self.oseba[1] + " " + self.oseba[2])
# Y - Da, dodaj nov račun
# N - Nazaj
izbira = input(">")
if izbira.lower() == "y":
try:
modeli.dodajRacun(emso)
print("Vnos novega računa uspešen")
except Exception as e:
print("Neuspešen vnos. Poskusi ponovno.", e)
elif izbira.lower() == "n":
self.menu = "izpisRacunov"
self.menu = "izpisRacunov"
def oRacunu(self):
# Meni: oRacunu
# Predpostavke: v self.oseba je izbrana oseba
# v self.racun je izbran racun
# Izpis stanja.
# I - Izpis transakcij
# P - Položi
# D - Dvigni
print("I - Izpis transakcij")
print("P - Položi")
print("D - Dvigni")
izbira = input("> ")
if izbira.lower() == 'i':
transakcije = modli.transakcije(self.racun)
for racun, znesek, datum in transakcije:
print(racun, znesek, datum)
elif izbira.lower() == 'p':
znesek = input('Vnesi znesek: ')
#konec
print("N - Nazaj")
izbira = input("> ")
if izbira.lower() == "n":
self.menu = "izpisRacunov"
return
#############
BancniTerminal()