-
Notifications
You must be signed in to change notification settings - Fork 0
/
InterfazUsuario.py
379 lines (294 loc) · 11.7 KB
/
InterfazUsuario.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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
# -*- coding: iso-8859-15 -*-
import sys
"""
Clase InterfazUsuario:
Clase dedicada a la interaccion con el usuario.
Segun la accion que se desea realizar se piden los datos necesarios.
"""
class InterfazUsuario:
"""
Constructor de la clase:
Se inicializa la lista donde se guardaran los datos a procesar.
"""
def __init__(self):
self.datos = []
"""
metodo obtenerAccion:
En este menu se filtra con que actor se desea interactuar durante el
proceso.
"""
def obtenerAccion(self):
correcto = False
while(not(correcto)):
print "\n\n>Seleccione la acción que desea ejecutar:"
print "1.- Manejo de clientes"
print "2.- Manejo de productos"
print "3.- Manejo de afiliaciones"
print "4.- Manejo de consumos"
print "5.- Facturacion"
print "6.- Salir"
seleccion = raw_input('Seleccion:')
if(seleccion.isdigit()):
seleccion = int(seleccion)
correcto = ((seleccion>0) and (seleccion<7))
if(int(seleccion)==6):
sys.exit("Programa finalizado.")
self.obtenerDatos(int(seleccion))
"""
metodo obtenerCliente:
En este menu se obtienen los datos completos del cliente.
"""
def obtenerCliente(self):
print ">Por favor, ingresa los datos principales del cliente"
print "El cliente es:"
print "1. Jurídico"
print "2. Natural"
seleccion = raw_input('Seleccion:')
self.datos.append(int(seleccion)-1)
if (int(seleccion)==2):
self.datos.append(raw_input('Nombre del cliente:'))
ci = 'a'
while(not ci.isdigit()):
ci = raw_input('Cédula: ')
if (not ci.isdigit()):
print 'La cédula debe ser un número'
self.datos.append(int(ci))
self.datos.append(raw_input('Dirección de domicilio:'))
else:
self.datos.append(raw_input('Nombre de la empresa:'))
rif = raw_input('RIF: ')
self.datos.append(rif)
self.datos.append(raw_input('Dirección del establecimiento:'))
"""
metodo obtenerClaveCliente:
En este menu se obtienen los datos minimos para reconocer cliente.
"""
def obtenerClaveCliente(self):
print ">Por favor, ingresa los datos principales del cliente"
print "El cliente es:"
print "1. Natural"
print "2. Jurídico"
seleccion = raw_input('Seleccion:')
if (int(seleccion)==1):
ci='a'
while(not ci.isdigit()):
ci = raw_input('Cedula:')
if (not ci.isdigit()):
print 'La cédula debe ser un número'
self.datos.append(int(ci))
else:
rif = raw_input('RIF: ')
self.datos.append(rif)
"""
metodo obtenerProducto:
En este menu se obtienen los datos completos del producto.
"""
def obtenerProducto(self):
print ">Por favor, ingresa los datos principales del producto a agregar"
print "El cliente dueño del producto es:"
print "1. Natural"
print "2. Jurídico"
seleccion = raw_input('Seleccion:')
if (int(seleccion)==1):
ci = raw_input('Cedula:')
self.datos.append(int(ci))
else:
rif = raw_input('RIF: ')
self.datos.append(rif)
self.datos.append(raw_input('Nombre del producto:'))
id_emp = 'a'
while(not id_emp.isdigit()):
id_emp = raw_input('Identificador del producto en la empresa:')
if (not id_emp.isdigit()):
print 'El identificador debe ser un número'
self.datos.append(int(id_emp))
self.datos.append(raw_input('RIF de la empresa:'))
self.datos.append(raw_input('Nombre del plan:'))
"""
metodo obtenerClaveProducto:
En este menu se obtienen los datos minimos para reconocer un producto.
"""
def obtenerClaveProducto(self):
print ">Por favor, ingresa los datos principales del producto:"
self.datos.append(raw_input('Nombre del producto:'))
id_emp = 'a'
while(not id_emp.isdigit()):
id_emp = raw_input('Identificador del producto en la empresa:')
if (not id_emp.isdigit()):
print 'El identificador debe ser un número'
self.datos.append(int(id_emp))
"""
metodo obtenerServicio:
En este menu se obtienen los datos minimos para reconocer un servicio.
"""
def obtenerServicio(self):
print ">Ahora, por favor, ingresa los datos principales del servicio que desea:"
self.datos.append(raw_input('Nombre del servicio:'))
def obtenerConsumo(self):
print ">Por favor, ingresa los datos del consumo"
self.datos.append(raw_input("Ingrese la fecha del consumo de la siguiente manera: YYYY-MM-DD hh:mm:ss:"))
costo = 'a'
while(not costo.isdigit()):
costo = raw_input('Identificador costo del consumo:')
if (not costo.isdigit()):
print 'El costo debe ser un número positivo'
self.datos.append(int(costo))
self.datos.append(raw_input("Ingrese el nombre del servicio:"))
self.datos.append(raw_input("Ingrese el nombre del producto:"))
id_emp = 'a'
while(not id_emp.isdigit()):
id_emp = raw_input('Identificador del producto en la empresa:')
if (not id_emp.isdigit()):
print 'El identificador debe ser un número'
self.datos.append(int(id_emp))
def obtenerFactura(self):
print ">Por favor, ingrese los datos necesarios para hacer el consumo"
print "El cliente al que se facturará es:"
print "1. Natural"
print "2. Jurídico"
seleccion = raw_input('Seleccion:')
if (int(seleccion)==1):
ci='a'
while(not ci.isdigit()):
ci = raw_input('Cedula:')
if (not ci.isdigit()):
print 'La cédula debe ser un número'
self.datos.append(int(ci))
else:
rif = raw_input('RIF: ')
self.datos.append(rif)
mes='a'
while(not mes.isdigit()):
mes = raw_input("Mes a facturar:")
if (not mes.isdigit()):
print 'El mes debe ser un número'
self.datos.append(int(mes))
anio='a'
while(not anio.isdigit()):
anio = raw_input("Año de la factura:")
if (not anio.isdigit()):
print 'El año debe ser un número'
self.datos.append(int(anio))
correcto = False
while(not correcto):
print "Se facturarán sus productos"
print "1. Con plan prepago"
print "2. Con plan postpago"
seleccion = raw_input('Seleccion:')
if (seleccion.isdigit()):
seleccion = (int(seleccion))
correcto = ((seleccion>0)and(seleccion<3))
if(int(seleccion)==1):
self.datos.append("pre")
else:
self.datos.append("pos")
"""
metodo obtenerDatos:
Este metodo tiene todo los submenus para cada actor y ofrece las
acciones que se puede realizar.
"""
def obtenerDatos(self,seleccion):
seleccion = int(seleccion)
print ">Qué desea hacer?"
if(seleccion==1):
correcto = False
while(not correcto):
print "1.- Agregar un cliente"
print "2.- Consultar la información de un cliente"
print "3.- Regresar"
opcion = raw_input('Seleccion:')
if (opcion.isdigit()):
opcion = (int(opcion))
correcto = ((opcion>0)and(opcion<4))
if(opcion==3):
return
self.datos.append(int(opcion))
if(int(opcion)==1):
self.obtenerCliente()
elif (int(opcion)==2):
self.obtenerClaveCliente()
elif(seleccion==2):
correcto = False
while(not correcto):
print "1.-Registrar producto"
print "2.-Buscar un producto"
print "3.-Eliminar un producto o desafiliar un plan del producto"
print "4.- Regresar"
opcion = raw_input('Seleccion:')
if (opcion.isdigit()):
opcion = (int(opcion))
correcto = ((opcion>0)and(opcion<5))
if(opcion==4):
return
self.datos.append(int(opcion)+2)
if(int(opcion)>1):
self.obtenerClaveProducto()
elif(int(opcion)==1):
self.obtenerProducto()
elif(seleccion==3):
correcto = False
while(not correcto):
print "1.-Afiliar un producto a un plan."
print "2.-Afiliar un producto a un servicio."
print "3.-Desafiliar un producto de un servicio."
print "4.-Consultar planes asociados a un producto."
print "5.-Consultar servicios asociados a un producto."
print "6.- Regresar"
opcion = raw_input('Seleccion:')
if (opcion.isdigit()):
opcion = (int(opcion))
correcto = ((opcion>0)and(opcion<7))
if(opcion==6):
return
self.datos.append(int(opcion)+5)
if (int(opcion)==1):
self.obtenerProducto()
elif ((int(opcion)==2) or (int(opcion)==3)):
self.obtenerClaveProducto()
self.obtenerServicio()
elif ((int(opcion)==4)or (int(opcion)==5)):
self.obtenerClaveProducto()
elif(seleccion==4):
correcto = False
while(not correcto):
print "1.- Mostrar todos los consumos del producto."
print "2.- Registrar un consumo de un producto"
print "3.- Regresar"
opcion = raw_input('Seleccion:')
if (opcion.isdigit()):
opcion = (int(opcion))
correcto = ((opcion>0)and(opcion<4))
if(opcion==3):
return
self.datos.append(int(opcion)+10)
if (int(opcion)==1):
self.obtenerClaveProducto()
elif (int(opcion)==2):
self.obtenerConsumo()
elif(seleccion==5):
correcto = False
while(not correcto):
print "1.-Facturar a un cliente"
print "2.- Regresar"
opcion = raw_input('Seleccion:')
if (opcion.isdigit()):
opcion = (int(opcion))
correcto = ((opcion>0)and(opcion<3))
if(opcion==2):
return
self.datos.append(int(opcion)+12)
if(int(opcion)==1):
self.obtenerFactura()
"""
metodo obtenerConexion:
En este menu se obtienen los datos necesarios para hacer la conexion
con la base de datos.
"""
def obtenerConexion(self):
bdname=raw_input("Introduzca nombre de la base de datos:")
username=raw_input("Introduzca su username:")
password=raw_input("Introduzca su password:")
self.datos = [bdname, password, username]
#Se obtiene la lista con los datos completos
def getDatos(self):
return self.datos