class Controller: def __init__(self): self.model = Model() self.view = View() def start(self): self.view.start() self.main_menu() def update_lists(self, fs, vs): fields = [] vals = [] for f, v in zip(fs, vs): if v != '': fields.append(f + ' = %s') vals.append(v) return fields, vals def main_menu(self): o = '0' while o != 3: self.view.menu() self.view.option('3') o = input() if o == '1': self.menu_cartelera() elif o == '2': self.view.ask('Admin: ') ad = input() self.view.ask('Password: '******'CREDENCIALES INCORRECTAS') elif o == '3': self.view.end() self.model.close_db() return else: self.view.no_valid_option() return #Usuario regular def menu_cartelera(self): o = '0' while o != 3: self.view.menu_cartelera() self.view.option('3') o = input() if o == '1': fecha = date.today() self.cartelera_de_dia(fecha) elif o == '2': self.view.ask('Ingrese la Fecha (YYYY-MM-DD): ') fecha = input() self.cartelera_de_dia(fecha) elif o == '3': return else: self.view.no_valid_option() return def cartelera_de_dia(self, fecha): p = self.model.leer_peliculas() if type(p) == list: f = self.model.leer_funciones_dia(fecha) if type(f) == list: peliculas_del_dia = [] cont = 0 for recordF in f: for recordP in p: contp = 0 if recordP[0] == recordF[2]: if cont == 0: peliculas_del_dia.append(recordP) else: for x in peliculas_del_dia: if recordP == x: contp += 1 if contp == 0: peliculas_del_dia.append(recordP) cont += 1 self.view.leer_cartelera_dia(peliculas_del_dia, f) self.view.ask('¿Desea comprar un boleto?(Y/N): ') r = input() if r.lower() == 'y': self.view.ask('Ingrese el numero de Funcion: ') f = input() while r.lower() == 'y': b = self.comprar_boleto(f) if b == True: self.view.ask( '¿Desea comprar OTRO boleto de esta misma funcion?(Y/N): ' ) r = input() else: r = 'n' else: self.view.error('PROBLEMA AL LEER LAS FUNCIONES') else: self.view.error('PROBLEMA AL LEER LAS PELICULAS') def comprar_boleto(self, id_funcion): caracteres_asientos = [] funcion = self.model.leer_funcion(id_funcion) if type(funcion) == tuple: id_sala = funcion[1] sala = self.model.leer_sala(id_sala) asientos_sala = self.model.leer_asientos_sala(id_sala) boletos = self.model.leer_boletos() for recordA in asientos_sala: j = 0 for recordB in boletos: if recordB[1] == recordA[0] and recordB[0] == int( id_funcion): j = 1 caracteres_asientos.append('X') if j == 0: caracteres_asientos.append('0') self.view.leer_asientos_sala(caracteres_asientos, sala) self.view.ask('¿Que fila quieres?: ') fila = input() self.view.ask('¿Que asiento quieres?: ') asiento = input() filas = { 'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12 } asi = self.model.leer_asiento(id_sala, asiento, filas[fila.upper()]) check = self.model.leer_boleto(id_funcion, asi[0]) if type(check) != tuple: o = self.model.crear_boleto( id_funcion, asi[0], ) if o == True: self.view.msg('¡Boleto comprado exitosamente!') self.leer_boleto(id_funcion, asiento, filas[fila.upper()]) else: self.view.error(o) else: print('¡Asiento ocupado, escoge otro!') else: self.view.msg('ERROR. FUNCION INVALIDA') return False return True def leer_boleto(self, id_funcion, asiento, fila): fun = self.model.leer_funcion(id_funcion) peli = self.model.leer_pelicula(fun[2]) self.view.leer_boleto(peli[1], peli[2], fun[3], fun[4], asiento, fila) #Administracion def menu_admin(self): o = '0' while o != 5: self.view.menu_admin() self.view.option('5') o = input() if o == '1': self.menu_funciones() elif o == '2': self.menu_peliculas() elif o == '3': self.menu_salas() elif o == '4': self.menu_administradores() elif o == '5': return else: self.view.no_valid_option() return #Funciones def menu_funciones(self): o = '0' while o != 9: self.view.menu_funciones() self.view.option('9') o = input() if o == '1': self.crear_funcion() elif o == '2': self.leer_funciones() elif o == '3': self.leer_funcion() elif o == '4': self.leer_funciones_dia() elif o == '5': self.leer_funciones_peli() elif o == '6': self.leer_funciones_sala() elif o == '7': self.actualizar_funcion() elif o == '8': self.eliminar_funcion() elif o == '9': return else: self.view.no_valid_option() return def ask_fun(self): self.view.ask('ID Sala: ') id_s = input() self.view.ask('ID Pelicula: ') id_p = input() self.view.ask('Fecha(YYYY-MM-DD): ') fe = input() self.view.ask('Hora(HH:MM:SS): ') ho = input() return [id_s, id_p, fe, ho] def crear_funcion(self): id_s, id_p, fe, ho = self.ask_fun() out = self.model.crear_funcion(id_s, id_p, fe, ho) if out == True: self.view.msg('Funcion agregada correctamente') else: if out.errno == 1062: self.view.error('LA FUNCION ESTA REPETIDA') else: self.view.error('NO SE PUDO AGREGAR LA FUNCION. REVISE.') return def leer_funciones(self): out = self.model.leer_funciones() if type(out) == list: self.view.leer_funciones(out) else: self.view.error('PROBLEMA AL VER FUNCIONES. REVISA.') return def leer_funcion(self): self.view.ask('ID Funcion: ') id_f = input() out = self.model.leer_funcion(id_f) if type(out) == tuple: self.view.leer_funcion(out) else: if out == None: self.view.error('LA FUNCION NO EXISTE') else: self.view.error('PROBLEMA AL LEER FUNCION. REVISA.') return def leer_funciones_dia(self): self.view.ask('Dia(YYYY-MM-DD): ') dia = input() out = self.model.leer_funciones_dia(dia) if type(out) == list: self.view.leer_funciones(out) else: self.view.error('PROBLEMA AL VER FUNCIONES. REVISA.') return def leer_funciones_peli(self): self.view.ask('ID Peli: ') id_p = input() out = self.model.leer_funciones_pelicula(id_p) if type(out) == list: self.view.leer_funciones(out) else: self.view.error('PROBLEMA AL VER FUNCIONES. REVISA.') return def leer_funciones_sala(self): self.view.ask('ID Sala: ') id_s = input() out = self.model.leer_funciones_sala(id_s) if type(out) == list: self.view.leer_funciones(out) else: self.view.error('PROBLEMA AL VER FUNCIONES. REVISA.') return def actualizar_funcion(self): self.view.ask('ID Funcion: ') id_f = input() out = self.model.leer_funcion(id_f) if type(out) == tuple: self.view.leer_funcion(out) else: if out == None: self.view.error('LA FUNCION NO EXISTE') else: self.view.error('PROBLEMA AL LEER FUNCION. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vacio para dejarlo igual):') whole_vals = self.ask_fun() fields, vals = self.update_lists( ['id_sala', 'id_peli', 'fecha_f', 'hora_f'], whole_vals) vals.append(id_f) vals = tuple(vals) out = self.model.actualizar_funcion(fields, vals) if out == True: self.view.ok(id_f, 'actualizado') else: self.view.error('NO SE PUDO ACTUALIZAR LA PELICULA') return def eliminar_funcion(self): self.view.ask('ID Funcion: ') id_f = input() count = self.model.eliminar_funcion(id_f) if count != 0: self.view.ok(id_f, 'borro') else: if count == 0: self.view.error('LA FUNCION NO EXISTE') else: self.view.error('PROBLEMA AL BORRAR LA FUNCION. REVISA.') return #Salas def menu_salas(self): o = '0' while o != 6: self.view.menu_salas() self.view.option('6') o = input() if o == '1': self.crear_sala() elif o == '2': self.leer_salas() elif o == '3': self.leer_sala() elif o == '4': self.actualizar_sala() elif o == '5': self.eliminar_sala() elif o == '6': return else: self.view.no_valid_option() return def ask_sala(self): self.view.ask('ID Sala: ') id_s = input() self.view.ask('Filas: ') nf = input() self.view.ask('Asientos por fila: ') na = input() return [id_s, nf, na] def ask_sala_update(self): self.view.ask('Filas: ') nf = input() self.view.ask('Asientos por fila: ') na = input() return [nf, na] def crear_sala(self): print('DIMENSION MAXIMA: 12 Filas x 25 Asientos por fila') id_s, nf, na = self.ask_sala() out = self.model.crear_sala(id_s, nf, na) if out == True: self.view.msg('Sala agregada correctamente.') i = 1 while i < int(nf) + 1: j = 1 while j < int(na) + 1: self.model.crear_asientos_sala(id_s, j, i) j += 1 print('fila: ', i) i += 1 else: if out.errno == 1062: self.view.error('LA SALA ESTA REPETIDA') else: self.view.error('NO SE PUDO AGREGAR LA SALA. REVISE.') return def leer_salas(self): out = self.model.leer_salas() if type(out) == list: self.view.leer_salas(out) else: self.view.error('PROBLEMA AL VER SALAS. REVISA.') return def leer_sala(self): self.view.ask('ID Sala: ') id_a = input() out = self.model.leer_sala(id_a) if type(out) == tuple: self.view.leer_sala(out) else: if out == None: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBLEMA AL LEER SALA. REVISA.') return def actualizar_sala(self): self.view.ask('ID Sala: ') id_s = input() out = self.model.leer_sala(id_s) if type(out) == tuple: self.view.leer_sala(out) else: if out == None: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBLEMA AL LEER SALA. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vacio para dejarlo igual):') whole_vals = self.ask_sala_update() fields, vals = self.update_lists(['num_filas', 'asientos_por_fila'], whole_vals) vals.append(id_s) vals = tuple(vals) out = self.model.actualizar_sala(fields, vals) if out == True: self.view.ok(id_s, 'actualizado') self.model.eliminar_asientos(id_s) i = 1 while i < out[1] + 1: j = 1 while j < (out[2] + 1): self.model.crear_asientos_sala(id_s, j, i) j += 1 i += 1 else: self.view.error('NO SE PUDO ACTUALIZAR LA SALA') print(out) return def eliminar_sala(self): self.view.ask('ID Sala: ') id_s = input() count = self.model.eliminar_sala(id_s) if count != 0: self.view.ok(id_s, 'borro') else: if count == 0: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBLEMA AL BORRAR LA SALA. REVISA.') return #Peliculas def menu_peliculas(self): o = '0' while o != 6: self.view.menu_peliculas() self.view.option('6') o = input() if o == '1': self.crear_pelicula() elif o == '2': self.leer_peliculas() elif o == '3': self.leer_pelicula() elif o == '4': self.actualizar_pelicula() elif o == '5': self.eliminar_pelicula() elif o == '6': return else: self.view.no_valid_option() return def ask_peli(self): self.view.ask('Titulo: ') titu = input() self.view.ask('Duracion: ') dura = input() self.view.ask('Director: ') dire = input() self.view.ask('Sinopsis: ') sino = input() return [titu, dura, dire, sino] def crear_pelicula(self): titu, dura, dire, sino = self.ask_peli() out = self.model.crear_pelicula(titu, dura, dire, sino) if out == True: self.view.ok(titu, 'agrego') else: if out.errno == 1062: self.view.error('LA PELICULA ESTA REPETIDA') else: self.view.error('NO SE PUDO AGREGAR LA PELICULA. REVISE.') return def leer_peliculas(self): out = self.model.leer_peliculas() if type(out) == list: self.view.leer_peliculas(out) else: self.view.error('PROBLEMA AL VER PELICULAS. REVISA.') return def leer_pelicula(self): self.view.ask('ID Peli: ') id_p = input() out = self.model.leer_pelicula(id_p) if type(out) == tuple: self.view.leer_pelicula(out) else: if out == None: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL LEER PELICULA. REVISA.') return def actualizar_pelicula(self): self.view.ask('ID Peli: ') id_p = input() out = self.model.leer_pelicula(id_p) if type(out) == tuple: self.view.leer_pelicula(out) else: if out == None: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL LEER PELICULA. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vacio para dejarlo igual):') whole_vals = self.ask_peli() fields, vals = self.update_lists( ['titulo_p', 'duracion_p', 'director_p', 'sinopsis'], whole_vals) vals.append(id_p) vals = tuple(vals) out = self.model.actualizar_peli(fields, vals) if out == True: self.view.ok(id_p, 'actualizado') else: self.view.error('NO SE PUDO ACTUALIZAR LA PELICULA') print(out) return def eliminar_pelicula(self): self.view.ask('ID Pelicula: ') id_p = input() count = self.model.eliminar_peli(id_p) if count != 0: self.view.ok(id_p, 'borro') else: if count == 0: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL BORRAR LA PELICULA. REVISA.') return #administradores def menu_administradores(self): o = '0' while o != 5: self.view.menu_administradores() self.view.option('5') o = input() if o == '1': self.crear_admin() elif o == '2': self.leer_admins() elif o == '3': self.actualizar_admin() elif o == '4': self.eliminar_admin() elif o == '5': return else: self.view.no_valid_option() return def ask_admin(self): self.view.ask('User: '******'Password: '******'agrego') else: if out.errno == 1062: self.view.error('EL ADMIN ESTA REPETIDO') else: self.view.error('NO SE PUDO AGREGAR EL ADMIN. REVISE.') return def leer_admins(self): out = self.model.leer_administradores() if type(out) == list: self.view.leer_admins(out) else: self.view.error('PROBLEMA AL VER ADMINISTRADORES. REVISA.') return def actualizar_admin(self): self.view.ask('ID Admin: ') id_a = input() out = self.model.leer_admin(id_a) if type(out) == tuple: self.view.leer_admin(out) else: if out == None: self.view.error('EL ADMINISTRADOR NO EXISTE') else: self.view.error('PROBLEMA AL LEER ADMINISTRADOR. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vacio para dejarlo igual):') whole_vals = self.ask_admin() fields, vals = self.update_lists(['user_admin', 'pass_admin'], whole_vals) vals.append(id_a) vals = tuple(vals) out = self.model.actualizar_admin(fields, vals) if out == True: self.view.ok(id_a, 'actualizado') else: self.view.error('NO SE PUDO ACTUALIZAR EL ADMINISTRADOR') return def eliminar_admin(self): self.view.ask('ID Admin: ') id_a = input() count = self.model.eliminar_admin(id_a) if count != 0: self.view.ok(id_a, 'borro') else: if count == 0: self.view.error('EL ADMINISTRADOR NO EXISTE') else: self.view.error('PROBLEMA AL BORRAR EL ADMINISTRADOR. REVISA.') return
class Controller: def __init__(self): self.model = Model() self.view = View() def start(self): self.view.start() self.main_menu() def main_menu(self): o = '0' while o != '3': self.view.main_menu() self.view.option('3') o = input() if o == '1': self.user_menu() elif o == '2': self.admin_menu() elif o == '3': self.view.end() else: self.view.not_valid_option() return def update_lists(self, fs, vs): fields = [] vals = [] for f, v in zip(fs, vs): #zip une de uno por uno if v != '': fields.append(f + ' = %s') vals.append(v) return fields, vals def admin_menu(self): o = '0' while o != '10': self.view.admin_menu() self.view.option('10') o = input() if o == '1': self.usuario_menu() elif o == '2': self.admins_menu() elif o == '3': self.pelicula_menu() elif o == '4': self.sala_menu() elif o == '5': self.horario_menu() elif o == '6': self.asiento_menu() elif o == '7': self.hora_peli_menu() elif o == '8': self.sala_peli_menu() elif o == '9': self.ticket_menu() elif o == '10': self.view.end() else: self.view.not_valid_option() return def user_menu(self): o = '0' while o != '10': self.view.user_menu() self.view.option('10') o = input() if o == '1': self.crear_usuario() elif o == '2': self.ver_sala() elif o == '3': self.leer_salas() elif o == '4': self.leer_estrenos() elif o == '5': self.leer_preestrenos() elif o == '6': self.crear_asiento() elif o == '7': self.leer_asientos_sala() elif o == '8': self.leer_horario_peliculas() elif o == '9': self.leer_costo_pelicula() elif o == '10': self.view.end() else: self.view.not_valid_option() return """ ******************************* *Controlador para los clientes* ******************************* """ def usuario_menu(self): o = '0' while o != '6': self.view.clients_menu() self.view.option('6') o = input() if o == '1': self.crear_usuario() elif o == '2': self.leer_usuario() elif o == '3': self.leer_todo_usuarios() elif o == '4': self.actualizar_usuarios() elif o == '5': self.borrar_usuario() elif o == '6': self.view.end() else: self.view.not_valid_option() return def pedir_usuario(self): self.view.ask('Nombre: ') u_nombre = input() self.view.ask('Apellido: ') u_apellidos = input() self.view.ask('Correo: ') u_correo = input() self.view.ask('Telefono: ') u_telefono = input() return [u_nombre, u_apellidos, u_correo, u_telefono] def crear_usuario(self): u_nombre, u_apellidos, u_correo, u_telefono = self.pedir_usuario() out = self.model.crear_usuario(u_nombre, u_apellidos, u_correo, u_telefono) if out == True: self.view.ok(u_nombre + ' ' + u_apellidos, 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL CCLIENTE. REVISA.') return def leer_usuario(self): self.view.ask('ID del usuario: ') id_usuario = input() cliente = self.model.leer_un_usuario(id_usuario) if type(cliente) == tuple: self.view.show_client_header(' Datos del cliente ' + id_usuario + ' ') self.view.show_a_client(cliente) self.view.show_client_midder() self.view.show_client_footer() else: if cliente == None: self.view.error('EL USUARIO NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL USUARIO: REVISA.') return def leer_todo_usuarios(self): clientes = self.model.leer_todo_usuarios() if type(clientes) == list: self.view.show_client_header(' Todos los clientes ') for cliente in clientes: self.view.show_a_client(cliente) self.view.show_client_midder() self.view.show_client_footer() else: self.view.error('PROBLEMA AL LEER EL USUARIO: REVISA.') return def actualizar_usuarios(self): self.view.ask(' ID de cliente a modificar: ') id_usuario = input() cliente = self.model.leer_un_usuario(id_usuario) if type(cliente) == tuple: self.view.show_client_header(' Datos del cliente ' + id_usuario + ' ') self.view.show_a_client(cliente) self.view.show_client_midder() self.view.show_client_footer() else: if cliente == None: self.view.error('EL CLIENTE NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL CLIENTE. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vaciar para dejar igual):') whole_vals = self.pedir_usuario() fields, vals = self.update_lists( ['u_nombre', 'u_apellidos', 'u_correo', 'u_telefono'], whole_vals) vals.append(id_usuario) vals = tuple(vals) out = self.model.actualizar_usuarios(fields, vals) if out == True: self.view.ok(id_usuario, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR EL CLIENTE. REVISA.') return def borrar_usuario(self): self.view.ask('Id de cliente a borrar: ') id_usuario = input() count = self.model.borrar_usuario(id_usuario) if count != 0: self.view.ok(id_usuario, 'borro') else: if count == 0: self.view.error('EL CLIENTE NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR EL CLIENTE. REVISA.') return """ ************************************** *Controlador para los administradores* ************************************** """ def admins_menu(self): o = '0' while o != '6': self.view.admins_menu() self.view.option('6') o = input() if o == '1': self.crear_admin() elif o == '2': self.leer_admin() elif o == '3': self.leer_todo_admin() elif o == '4': self.actualizar_admin() elif o == '5': self.borrar_admin() elif o == '6': return else: self.view.not_valid_option() return def pedir_admin(self): self.view.ask('Nombre: ') a_nombre = input() self.view.ask('Apellido: ') a_apellidos = input() self.view.ask('Puesto: ') a_posicion = input() self.view.ask('Correo: ') a_correo = input() self.view.ask('Telefono: ') a_telefono = input() self.view.ask('Contraseña: ') a_pass = input() return [ a_nombre, a_apellidos, a_posicion, a_correo, a_telefono, a_pass ] def crear_admin(self): a_nombre, a_apellidos, a_posicion, a_correo, a_telefono, a_pass = self.pedir_admin( ) out = self.model.crear_admin(a_nombre, a_apellidos, a_posicion, a_correo, a_telefono, a_pass) if out == True: self.view.ok(a_nombre + ' ' + a_apellidos, 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL ADMINISTRADOR. REVISA.') return def leer_admin(self): self.view.ask('ID del administrador: ') id_admin = input() admin = self.model.leer_un_admin(id_admin) if type(admin) == tuple: self.view.show_admin_header(' Datos del administrador ' + id_admin + ' ') self.view.show_a_admin(admin) self.view.show_admin_midder() self.view.show_admin_footer() else: if admin == None: self.view.error('EL ADMINISTRADOR NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL ADMINISTRADOR: REVISA.') return def leer_todo_admin(self): admins = self.model.leer_todo_admin() if type(admins) == list: self.view.show_admin_header(' Todos los administradores ') for admin in admins: self.view.show_a_admin(admin) self.view.show_admin_midder() self.view.show_admin_footer() else: self.view.error('PROBLEMA AL LEER EL ADMINISTRADOR: REVISA.') return def actualizar_admin(self): self.view.ask(' ID de administrador a modificar: ') id_admin = input() admin = self.model.leer_un_admin(id_admin) if type(admin) == tuple: self.view.show_admin_header(' Datos del administrador ' + id_admin + ' ') self.view.show_a_admin(admin) self.view.show_admin_midder() self.view.show_admin_footer() else: if admin == None: self.view.error('EL ADMINISTRADOR NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL ADMINISTRADOR. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vaciar para dejar igual):') whole_vals = self.pedir_admin() fields, vals = self.update_lists([ 'a_nombre', 'a_apellidos', 'a_posicion', 'a_correo', 'a_telefono', 'a_pass' ], whole_vals) vals.append(id_admin) vals = tuple(vals) out = self.model.actualizar_admin(fields, vals) if out == True: self.view.ok(id_admin, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR EL ADMINISTRADOR. REVISA.') return def borrar_admin(self): self.view.ask('Id del administrador a borrar: ') id_admin = input() count = self.model.borrar_admin(id_admin) if count != 0: self.view.ok(id_admin, 'borro') else: if count == 0: self.view.error('EL ADMINISTRADOR NO EXISTE') else: self.view.error( 'PROBELEMA AL BORRAR EL ADMINISTRADOR. REVISA.') return """ ******************************* *Controlador para los pelicula* ******************************* """ def pelicula_menu(self): o = '0' while o != '7': self.view.peliculas_menu() self.view.option('7') o = input() if o == '1': self.crear_pelicula() elif o == '2': self.leer_pelicula() elif o == '3': self.leer_todo_peliculas() elif o == '4': self.leer_lenguaje_pelicula() elif o == '5': self.actualizar_pelicula() elif o == '6': self.borrar_pelicula() elif o == '7': return else: self.view.not_valid_option() return def pedir_pelicula(self): self.view.ask('Nombre: ') nombre = input() self.view.ask('Lenguaje: ') lenguaje = input() self.view.ask('Sinopsis: ') sinopsis = input() return [nombre, lenguaje, sinopsis] def crear_pelicula(self): nombre, lenguaje, sinopsis = self.pedir_pelicula() out = self.model.crear_pelicula(nombre, lenguaje, sinopsis) if out == True: self.view.ok(nombre + ' ', 'agrego') else: self.view.error('NO SE PUDO AGREGAR LA PELICULA. REVISA.') return def leer_pelicula(self): self.view.ask('ID del pelicula: ') id_pelicula = input() pelicula = self.model.leer_pelicula(id_pelicula) if type(pelicula) == tuple: self.view.show_movie_header(' Datos de la pelicula ' + id_pelicula + ' ') self.view.show_a_movie(pelicula) self.view.show_movie_midder() self.view.show_movie_footer() else: if pelicula == None: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA PELICULA: REVISA.') return def leer_todo_peliculas(self): peliculas = self.model.leer_todas_peliculas() if type(peliculas) == list: self.view.show_admin_header(' Todos las peliculas ') for pelicula in peliculas: self.view.show_a_movie(pelicula) self.view.show_movie_midder() self.view.show_movie_footer() else: self.view.error('PROBLEMA AL LEER LA PELICULA: REVISA.') return def leer_lenguaje_pelicula(self): self.view.ask('ID del pelicula: ') id_pelicula = input() pelicula = self.model.lenguaje_pelicula(id_pelicula) if type(pelicula) == tuple: self.view.show_movie_header(' Lenguaje de la pelicula ' + id_pelicula + ' ') self.view.show_movie_languaje(pelicula) self.view.show_movie_midder() self.view.show_movie_footer() else: if pelicula == None: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA PELICULA: REVISA.') return def actualizar_pelicula(self): self.view.ask(' ID de pelicula a modificar: ') id_pelicula = input() pelicula = self.model.leer_pelicula(id_pelicula) if type(pelicula) == tuple: self.view.show_movie_header(' Datos de la pelicula ' + id_pelicula + ' ') self.view.show_a_movie(pelicula) self.view.show_movie_midder() self.view.show_movie_footer() else: if pelicula == None: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA PELICULA. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vaciar para dejar igual):') whole_vals = self.pedir_pelicula() fields, vals = self.update_lists(['nombre', 'lenguaje', 'sinopsis'], whole_vals) vals.append(id_pelicula) vals = tuple(vals) out = self.model.actualizar_pelicula(fields, vals) if out == True: self.view.ok(id_pelicula, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR LA PELICULA. REVISA.') return def borrar_pelicula(self): self.view.ask('Id de la pelicula a borrar: ') id_pelicula = input() count = self.model.borrar_pelicula(id_pelicula) if count != 0: self.view.ok(id_pelicula, 'borro') else: if count == 0: self.view.error('LA PELICULA NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR LA PELICULA. REVISA.') return """ **************************** *Controlador para las Salas* **************************** """ def sala_menu(self): o = '0' while o != '7': self.view.salas_menu() self.view.option('7') o = input() if o == '1': self.crear_sala() elif o == '2': self.leer_sala() elif o == '3': self.leer_salas() elif o == '4': self.leer_lenguaje_pelicula() elif o == '5': self.actualizar_sala() elif o == '6': self.borrar_sala() elif o == '7': return else: self.view.not_valid_option() return def pedir_sala(self): self.view.ask('No. Sala: ') no_sala = input() self.view.ask('Filas (1-13): ') fila = input() self.view.ask('Pasillos (1-11): ') pasillo = input() self.view.ask('Tipo (3D, VIP, Normal): ') tipo = input() return [no_sala, fila, pasillo, tipo] def crear_sala(self): no_sala, fila, pasillo, tipo = self.pedir_sala() out = self.model.crear_sala(no_sala, fila, pasillo, tipo) if out == True: self.view.ok(no_sala + ' ', 'agrego') else: self.view.error('NO SE PUDO AGREGAR LA SALA. REVISA.') return def leer_sala(self): self.view.ask('No. de la sala: ') no_sala = input() sala = self.model.leer_sala(no_sala) if type(sala) == tuple: self.view.show_sala_header(' Datos de la sala ' + no_sala + ' ') self.view.show_sala(sala) self.view.show_sala_midder() self.view.show_sala_footer() else: if sala == None: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA SALA: REVISA.') return def leer_salas(self): salas = self.model.leer_salas() if type(salas) == list: self.view.show_sala_header(' Todos las salas ') for sala in salas: self.view.show_sala(sala) self.view.show_sala_midder() self.view.show_sala_footer() else: self.view.error('PROBLEMA AL LEER LA SALA: REVISA.') return def actualizar_sala(self): self.view.ask(' No. de sala a modificar: ') no_sala = input() sala = self.model.leer_sala(no_sala) if type(sala) == tuple: self.view.show_sala_header(' Datos de la sala ' + no_sala + ' ') self.view.show_sala(sala) self.view.show_sala_midder() self.view.show_sala_footer() else: if sala == None: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA SALA. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vaciar para dejar igual):') whole_vals = self.pedir_sala() fields, vals = self.update_lists( ['no_sala', 'pasillo', 'fila', 'tipo'], whole_vals) vals.append(no_sala) vals = tuple(vals) out = self.model.actualizar_sala(fields, vals) if out == True: self.view.ok(no_sala, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR LA SALA. REVISA.') return def borrar_sala(self): self.view.ask('Id de la sala a borrar: ') no_sala = input() count = self.model.borrar_sala(no_sala) if count != 0: self.view.ok(no_sala, 'borro') else: if count == 0: self.view.error('LA SALA NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR LA SALA. REVISA.') return """ ******************************* *Controlador para los horarios* ******************************* """ def horario_menu(self): o = '0' while o != '6': self.view.horario_menu() self.view.option('6') o = input() if o == '1': self.crear_horario() elif o == '2': self.leer_horario() elif o == '3': self.leer_estrenos() elif o == '4': self.leer_preestrenos() elif o == '5': self.borrar_horario() elif o == '6': return else: self.view.not_valid_option() return def crear_horario(self): self.view.ask('Horario (yyy-mm-dd): ') id_horario = input() self.view.ask('ID Administrador: ') id_admin = input() self.view.ask('ID Pelicula: ') id_pelicula = input() self.view.ask('Estrenos: ') estrenos = input() self.view.ask('Preestrenos: ') prestrenos = input() out = self.model.crear_horario(id_horario, id_admin, id_pelicula, estrenos, prestrenos) if out == True: self.view.ok(id_horario + ' ', 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL HORARIO. REVISA.') return def leer_horario(self): self.view.ask('ID del Horario: ') id_horario = input() horario = self.model.leer_horario(id_horario) if type(horario) == tuple: self.view.show_date_header(' Datos de la fecha ' + id_horario + ' ') self.view.show_date(horario) self.view.show_date_midder() self.view.show_date_footer() else: if horario == None: self.view.error('LA FECHA NO EXISTE') else: self.view.error('PROBLEMA AL LEER LA FECHA: REVISA.') return def leer_estrenos(self): estrenos = self.model.leer_estrenos() if type(estrenos) == list: self.view.show_date_header(' Todos los horarios ') for estreno in estrenos: self.view.show_estrenos(estreno) self.view.show_date_midder() self.view.show_date_footer() else: self.view.error('PROBLEMA AL LEER LAS PELICULAS: REVISA.') return def leer_preestrenos(self): estrenos = self.model.leer_prestrenos() if type(estrenos) == list: self.view.show_date_header(' Todos los estrenos ') for estreno in estrenos: self.view.show_estrenos(estreno) self.view.show_date_midder() self.view.show_date_footer() else: self.view.error('PROBLEMA AL LEER LOS ESTRENOS: REVISA.') return def actualizar_horario(self): self.view.ask('ID de la fecha a modificar: ') id_horario = input() horario = self.model.leer_horario(id_horario) if type(horario) == tuple: self.view.show_date_header(' Datos del horario ' + id_horario + ' ') self.view.show_date(horario) self.view.show_date_footer() else: if horario == None: self.view.error('EL HORARIO NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL HORARIO. REVISA.') return self.view.msg( 'Ingresa los valores a morificar (vacio para dejarlo igual): ') self.view.ask('Fecha (yy/mm/dd):') id_horario = input() self.view.ask('Administrador: ') id_admin = input() self.view.ask('ID Pelicula: ') id_pelicula = input() self.view.ask('Estrenos: ') estrenos = input() self.view.ask('Preestrenos: ') prestrenos = input() whole_vals = [id_horario, id_admin, id_pelicula, estrenos, prestrenos] fields, vals = self.update_lists([ 'id_horario', 'id_admin', 'id_pelicula', 'estrenos', 'prestrenos' ], whole_vals) vals.append(id_horario) vals = tuple(vals) out = self.model.actualizar_horario(fields, vals) if out == True: self.view.ok(id_horario, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR EL HORARIO. REVISA.') return def borrar_horario(self): self.view.ask('Id del horario a borrar: ') id_horario = input() self.view.ask('Id de la pelicula a borrar: ') id_pelicula = input() count = self.model.borrar_horario(id_horario, id_pelicula) if count != 0: self.view.ok(id_horario, 'borro') else: if count == 0: self.view.error('EL HORARIO NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR. REVISA.') return """ ******************************* *Controlador para los asientos* ******************************* """ def asiento_menu(self): o = '0' while o != '5': self.view.asiento_menu() self.view.option('5') o = input() if o == '1': self.crear_asiento() elif o == '2': self.leer_asientos_usuario() elif o == '3': self.leer_asientos_sala() #elif o == '5': # self.actualizar_pelicula() elif o == '4': self.borrar_asiento() elif o == '5': return else: self.view.not_valid_option() return def pedir_asiento(self): self.view.ask('Pasillo: ') pasillo = input() self.view.ask('Filas: ') fila = input() self.view.ask('id_usuario: ') id_usuario = input() self.view.ask('No. Sala: ') no_sala = input() self.view.ask('Tipo (Ocupado, Apartado): ') asiento = input() return [pasillo, fila, id_usuario, no_sala, asiento] def pedir_asiento_sala(self): self.view.ask('Pasillo: ') pasillo = input() self.view.ask('Filas: ') fila = input() self.view.ask('Tipo (Ocupado, Apartado): ') asiento = input() return [pasillo, fila, asiento] def crear_asiento(self): pasillo, fila, id_usuario, no_sala, asiento = self.pedir_asiento() out = self.model.crear_asiento(pasillo, fila, id_usuario, no_sala, asiento) if out == True: self.view.ok(pasillo + '-' + fila, 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL ASIENTO. REVISA.') return def leer_asientos_usuario(self): self.view.ask('ID de Usuario: ') id_usuario = input() self.view.ask('No. Sala: ') no_sala = input() asientos = self.model.leer_asientos_usuario(id_usuario, no_sala) if type(asientos) == list: self.view.show_date_header(' Asientos del usuario ') for asiento in asientos: self.view.show_asiento_user(asiento) self.view.show_asiento_midder() self.view.show_asiento_footer() else: self.view.error('PROBLEMA AL LEER LOS ASIENTOS: REVISA.') return def leer_asientos_sala(self): self.view.ask('No. Sala: ') no_sala = input() asientos = self.model.leer_asientos_sala(no_sala) if type(asientos) == list: self.view.show_date_header(' Asientos de la sala ') for asiento in asientos: self.view.show_asiento_sala(asiento) self.view.show_asiento_midder() self.view.show_asiento_footer() else: self.view.error('PROBLEMA AL LEER LOS ASIENTOS: REVISA.') return def actualizar_asiento(self): self.view.ask('Pasillo a modificar: ') pasillo = input() self.view.ask('Fila a modificar: ') fila = input() self.view.ask('Sala a modificar: ') no_sala = input() sala = self.model.leer_asientos_sala(no_sala) if type(sala) == list: self.view.show_asiento_header(' Datos del asiento ' + fila + '- ' + pasillo + ' ') self.view.show_asiento(sala) self.view.show_asiento_midder() self.view.show_asiento_footer() else: if sala == None: self.view.error('EL ASIENTO NO EXISTE') else: self.view.error('PROBLEMA AL LEER EL ASIENTO. REVISA.') return self.view.msg( 'Ingresa los valores a modificar (vaciar para dejar igual):') whole_vals = self.pedir_asiento_sala() fields, vals = self.update_lists(['pasillo', 'fila', 'asiento'], whole_vals) vals.append(no_sala) vals = list(vals) out = self.model.actualizar_asiento(fields, vals) if out == True: self.view.ok(no_sala, 'actualizo') else: self.view.error('NO SE PUDO ACTUALIZAR EL ASIENTO. REVISA.') return def borrar_asiento(self): self.view.ask('Pasillo de usuario a borrar (A-M): ') pasillo = input() self.view.ask('Fila de usuario a borrar (1-11): ') fila = input() self.view.ask('Sala de usuario a borrar: ') no_sala = input() count = self.model.borrar_asiento(pasillo, fila, no_sala) if count != 0: self.view.ok(pasillo + ' - ' + fila + ' ', 'borro') else: if count == 0: self.view.error('EL ASIENTO NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR EL ASIENTO. REVISA.') return """ ***************************************** *Controlador para los horarios_peliculas* ***************************************** """ def hora_peli_menu(self): o = '0' while o != '5': self.view.hora_peli_menu() self.view.option('5') o = input() if o == '1': self.crear_horario_pelicula() elif o == '2': self.leer_horario_peliculas() elif o == '3': self.leer_peliculas_fecha() #elif o == '5': # self.actualizar_pelicula() elif o == '4': self.borrar_horario_pelicula() elif o == '5': return else: self.view.not_valid_option() return def pedir_horario_peli(self): self.view.ask('ID horario (yyyy-mmm-dd): ') id_horario = input() self.view.ask('ID pelicula: ') id_pelicula = input() self.view.ask('Hora: (hh:mm): ') hora = input() #hora = time.strftime("%I:%M") #print(hora) return [id_horario, id_pelicula, hora] def crear_horario_pelicula(self): id_horario, id_pelicula, hora = self.pedir_horario_peli() out = self.model.crear_horario_pelicula(id_horario, id_pelicula, hora) if out == True: self.view.ok(id_horario + '-' + hora, 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL HORARIO-PELICULA. REVISA.') return def leer_horario_peliculas(self): peliculas = self.model.leer_horario_peliculas() if type(peliculas) == list: self.view.show_hora_peli_header(' Todos los horarios-peliculas ') for pelicula in peliculas: self.view.show_hora_peli(pelicula) self.view.show_hora_peli_midder() self.view.show_hora_peli_footer() else: self.view.error('PROBLEMA AL LEER HORARIO PELICULAS: REVISA.') return def leer_peliculas_fecha(self): self.view.ask('ID horario (yyyy-mmm-dd): ') id_horario = input() peliculas = self.model.leer_peliculas_fecha(id_horario) if type(peliculas) == list: self.view.show_hora_peli_header(' Todos los horarios-peliculas ') for pelicula in peliculas: self.view.show_hora_peli(pelicula) self.view.show_hora_peli_midder() self.view.show_hora_peli_footer() else: self.view.error('PROBLEMA AL LEER HORARIO PELICULAS: REVISA.') return def borrar_horario_pelicula(self): self.view.ask('Id del horario-pelicula a borrar: ') id_hora_peli = input() count = self.model.borrar_horario_pelicula(id_hora_peli) if count != 0: self.view.ok(id_hora_peli, 'borro') else: if count == 0: self.view.error('EL HORARIO NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR. REVISA.') return """ ************************************ *Controles para los salas_peliculas* ************************************ """ def sala_peli_menu(self): o = '0' while o != '4': self.view.sala_peli_menu() self.view.option('4') o = input() if o == '1': self.crear_sala_pelicula() elif o == '2': self.leer_costo_pelicula() elif o == '3': self.borrar_sala_peli() #elif o == '5': # self.actualizar_pelicula() elif o == '4': return else: self.view.not_valid_option() return def pedir_sala_pelicula(self): self.view.ask('No. Sala: ') no_sala = input() self.view.ask('ID Pelicula: ') id_pelicula = input() self.view.ask('Costo: ') costo = input() return [no_sala, id_pelicula, costo] def crear_sala_pelicula(self): no_sala, id_pelicula, costo = self.pedir_sala_pelicula() out = self.model.crear_sala_pelicula(no_sala, id_pelicula, costo) if out == True: self.view.ok(no_sala + '-' + id_pelicula, 'agrego') else: self.view.error('NO SE PUDO AGREGAR EL ASIENTO. REVISA.') return def leer_costo_pelicula(self): self.view.ask('ID Pelicula: ') id_pelicula = input() peliculas = self.model.leer_precio_pelicula(id_pelicula) if type(peliculas) == list: self.view.show_sala_peli_header(' Datos de la pelicula ' + id_pelicula + ' ') for pelicula in peliculas: self.view.show_costo_peli(pelicula) self.view.show_sala_peli_midder() self.view.show_sala_peli_footer() else: self.view.error('PROBLEMA AL LEER LA PELICULA: REVISA.') return def borrar_sala_peli(self): self.view.ask('No de sala a borrar: ') no_sala = input() self.view.ask('ID de pelicula a borrar: ') id_pelicula = input() count = self.model.borrar_sala_peli(no_sala, id_pelicula) if count != 0: self.view.ok(no_sala + ' - ' + id_pelicula + ' ', 'borro') else: if count == 0: self.view.error('SALA-PELICULA NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR SALA-PELICULA. REVISA.') return """ **************************** *Controles para los tickets* **************************** """ def ticket_menu(self): o = '0' while o != '4': self.view.ticket_menu() self.view.option('4') o = input() if o == '1': self.crear_ticket() elif o == '2': self.leer_ticket() #elif o == '5': # self.actualizar_pelicula() elif o == '3': self.borrar_pelicula() elif o == '4': return else: self.view.not_valid_option() return def crear_ticket(self): self.view.ask('ID del usuario: ') id_usuario = input() self.view.ask('ID de la pelicula: ') id_pelicula = input() self.view.ask('No. sala: ') no_sala = input() total_asientos = len( self.model.leer_asientos_usuario(id_usuario, no_sala)) costo = self.model.leer_precio_P_S(id_pelicula, no_sala) total_pago = int(total_asientos * float(costo[1])) out = self.model.crear_ticket(id_usuario, total_asientos, total_pago) if out == True: self.view.ok(id_pelicula, 'pago') else: self.view.error('NO SE PUDO PAGAR. REVISA.') return def leer_ticket(self): self.view.ask('ID del Usuario: ') id_usuario = input() tickets = self.model.leer_ticket_usuario(id_usuario) if type(tickets) == list: self.view.show_ticket_header(' Datos de el duario ' + id_usuario + ' ') for ticket in tickets: self.view.show_ticket(ticket) self.view.show_ticket_midder() self.view.show_ticket_footer() else: self.view.error('PROBLEMA AL LEER EL TICKET: REVISA.') return def borrar_ticket(self): self.view.ask('ID del ticket: ') id_ticket = input() count = self.model.borrar_ticket(id_ticket) if count != 0: self.view.ok(id_ticket, 'borro') else: if count == 0: self.view.error('EL TICKET NO EXISTE') else: self.view.error('PROBELEMA AL BORRAR EL TICKET. REVISA.') return def ver_sala(self): self.view.ask('No. Sala: ') no_sala = input() a = [ ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M' ] b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] u = self.model.leer_asientos_sala(no_sala) s = self.model.leer_sala(no_sala) print() print('***********', s[3], '***********') print() for i in a[s[1]:0:-1]: print(i + " |", end="") for j in b[0:s[2]]: aux = int(0) for f in range(len(u)): if ((i, j, 'ocupado') == u[f]): print(' O ', end="") aux += 1 elif ((i, j, 'apartado') == u[f]): print(' A ', end="") aux += 1 if (aux): continue else: print(' L ', end="") print() print(" ", end="") for i in b[0:s[2]]: print(i, " ", end="") print()