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()
class Controller: """ ********************************************************* * Controlador de la base de datos de la venta de tickets* ********************************************************* """ def __init__(self): self.model = Model() self.view = View() def start(self): self.view.start() self.menu_sesion() """ ************************************************ * Controles Generales * ************************************************ """ def menu_sesion(self): while 1: self.view.menu_sesion() self.view.preguntar('Usuario: ') usuario = input() self.view.preguntar('Contraseña: ') contraseña = input() admin = self.model.leer_usuario_contraseña(usuario, contraseña) if type(admin) == tuple: print('Bienvenido/a ' + usuario) if admin[0] == 'Si': self.menu_admin(usuario) elif admin[0] == 'No': self.menu_general(usuario) else: if admin == None: self.view.error('Credenciales incorrectas') else: self.view.error('Problema al leer el usuario, revise') return def menu_general(self, usuario): opcion = '0' while opcion != '5': self.view.menu_general() self.view.opcion('5') opcion = input() if opcion == '1': self.agregar_ticket(usuario) elif opcion == '2': self.leer_todo_horarios_disponibles() elif opcion == '3': self.leer_horario_pelicula() elif opcion == '4': self.leer_horario_dia() elif opcion == '5': self.view.end() return else: self.view.opcion_invalida() return def menu_admin(self, usuario): opcion = '0' while opcion != '10': self.view.menu_admin() self.view.opcion('10') opcion = input() if opcion == '1': self.agregar_ticket(usuario) elif opcion == '2': self.leer_todo_horarios_disponibles() elif opcion == '3': self.menu_peliculas() elif opcion == '4': self.menu_horarios() elif opcion == '5': self.menu_usuarios() elif opcion == '6': self.menu_salas() elif opcion == '7': self.menu_asientos() elif opcion == '8': self.menu_salas_asientos() elif opcion == '9': self.menu_tickets() elif opcion == '10': self.view.end() return else: self.view.opcion_invalida() return def actualizar_listas(self, fs, vs): campos = [] valores = [] for f, v in zip(fs, vs): if v != '': campos.append(f + ' = %s') valores.append(v) return campos, valores """ ************************************************ * Controles de peliculas * ************************************************ """ def menu_peliculas(self): opcion = '0' while opcion != '6': self.view.menu_peliculas() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_todo_peliculas() elif opcion == '2': self.leer_id_peliculas() elif opcion == '3': self.agregar_pelicula() elif opcion == '4': self.actualizar_pelicula() elif opcion == '5': self.borrar_pelicula() elif opcion == '6': return else: self.view.opcion_invalida() return def pregunta_pelicula(self): self.view.preguntar('Titulo: ') titulo = input() self.view.preguntar('Descripcion: ') descripcion = input() self.view.preguntar('Duracion(minutos): ') duracion = input() self.view.preguntar('Idioma(Ingles/Español): ') idioma = input() self.view.preguntar('Subtitulos(Ingles/Español/No): ') subtitulos = input() self.view.preguntar('Clasificacion(AA/A/B/B-15/C/D): ') clasificacion = input() self.view.preguntar('Precio(Pesos): ') precio = input() return [ titulo, descripcion, duracion, idioma, subtitulos, clasificacion, precio ] def leer_id_peliculas(self): self.view.preguntar('ID: ') i_id = input() pelicula = self.model.leer_id_peliculas(i_id) if type(pelicula) == tuple: self.view.mostrar_cabecera_pelicula(' Datos de la pelicula ' + i_id + ' ') self.view.mostrar_pelicula(pelicula) self.view.mostrar_separador_pelicula() self.view.mostrar_pie_pelicula() else: if pelicula == None: self.view.error('La pelicula no existe') else: self.view.error('Problema al leer la pelicula, revise') return def leer_todo_peliculas(self): peliculas = self.model.leer_todo_peliculas() if type(peliculas) == list: self.view.mostrar_cabecera_pelicula(' Todas las Peliculas ') for pelicula in peliculas: self.view.mostrar_pelicula(pelicula) self.view.mostrar_separador_pelicula() self.view.mostrar_pie_pelicula() else: self.view.error('Problema al leer las peliculas, revise') return def agregar_pelicula(self): self.view.preguntar("ID: ") ID = input() titulo, descripcion, duracion, idioma, subtitulos, clasificacion, precio = self.pregunta_pelicula( ) salida = self.model.agregar_pelicula(ID, titulo, descripcion, duracion, idioma, subtitulos, clasificacion, precio) if salida == True: self.view.Ok(titulo, 'agrego') else: if salida.errno == 1062: self.view.error('La pelicula esta repetida.') else: self.view.error('No se pudo agregar la pelicula, revise.') return def actualizar_pelicula(self): self.view.preguntar('ID de la pelicula a modificar: ') i_ID = input() ID = self.model.leer_id_peliculas(i_ID) if type(ID) == tuple: self.view.mostrar_cabecera_pelicula(' Datos de la pelicula ' + i_ID + ' ') self.view.mostrar_pelicula(ID) self.view.mostrar_separador_pelicula() self.view.mostrar_pie_pelicula() else: if ID == None: self.view.error('La pelicula no existe') else: self.view.error('Problema al leer el ID, revise') return self.view.mensaje( 'Ingresa los valores a modificar (Vacio para dejarlo igual): ') todos_valores = self.pregunta_pelicula() campos, valores = self.actualizar_listas([ 'titulo', 'descripcion', 'duracion', 'idioma', 'subtitulos', 'clasificacion', 'precio_pelicula' ], todos_valores) valores.append(i_ID) valores = tuple(valores) salida = self.model.actualizar_pelicula(campos, valores) if salida == True: self.view.Ok(i_ID, 'Actualizo') else: self.view.error('No se pudo actualizar el ID, Revise.') return def borrar_pelicula(self): self.view.preguntar('ID de la pelicula a borrar: ') i_ID = input() count = self.model.borrar_pelicula(i_ID) if count != 0: self.view.Ok(i_ID, 'Borro') else: if count == 0: self.view.error('La pelicula no existe') else: self.view.error('Problema al leer el codigo, revise.') """ ************************************************ * Controles de Usuarios * ************************************************ """ def menu_usuarios(self): opcion = '0' while opcion != '6': self.view.menu_usuarios() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_todo_usuarios() elif opcion == '2': self.leer_username_usuarios() elif opcion == '3': self.agregar_usuario() elif opcion == '4': self.actualizar_usuario() elif opcion == '5': self.borrar_usuario() elif opcion == '6': return else: self.view.opcion_invalida() return def pregunta_usuario(self): self.view.preguntar('Nombre de usuario: ') username = input() self.view.preguntar('Nombre: ') nombre = input() self.view.preguntar('Apellido Paterno: ') apellido_pat = input() self.view.preguntar('Apellido Materno: ') apellido_mat = input() self.view.preguntar('Contraseña: ') contraseña = input() self.view.preguntar('Administrador?(Si/No): ') admin = input() return [ username, nombre, apellido_pat, apellido_mat, contraseña, admin ] def pregunta_usuario_act(self): self.view.preguntar('Nombre: ') nombre = input() self.view.preguntar('Apellido Paterno: ') apellido_pat = input() self.view.preguntar('Apellido Materno: ') apellido_mat = input() self.view.preguntar('Contraseña: ') contraseña = input() self.view.preguntar('Administrador?(Si/No): ') admin = input() return [nombre, apellido_pat, apellido_mat, contraseña, admin] def leer_todo_usuarios(self): usuarios = self.model.leer_todo_usuarios() if type(usuarios) == list: self.view.mostrar_cabecera_usuario(' Todos los Usuarios ') for usuario in usuarios: self.view.mostrar_usuario(usuario) self.view.mostrar_separador_usuario() self.view.mostrar_pie_usuario() else: self.view.error('Problema al leer el usuario, revise') return def leer_username_usuarios(self): self.view.preguntar('Nombre de usuario: ') username = input() usuario = self.model.leer_username_usuarios(username) if type(usuario) == tuple: self.view.mostrar_cabecera_usuario(' Datos del usuario ' + username + ' ') self.view.mostrar_usuario(usuario) self.view.mostrar_separador_usuario() self.view.mostrar_pie_usuario() else: if usuario == None: self.view.error('El usuario no existe') else: self.view.error('Problema al leer el usuario, revise') return def agregar_usuario(self): username, nombre, apellido_pat, apellido_mat, contraseña, admin = self.pregunta_usuario( ) salida = self.model.agregar_usuario(username, nombre, apellido_pat, apellido_mat, contraseña, admin) if salida == True: self.view.Ok(username, 'agrego') else: if salida.errno == 1062: self.view.error('El usuario ya existe.') else: self.view.error('No se pudo agregar el usuario, revise.') return def actualizar_usuario(self): self.view.preguntar('Nombre de usuario a modificar: ') i_username = input() usuario = self.model.leer_username_usuarios(i_username) if type(usuario) == tuple: self.view.mostrar_cabecera_usuario(' Datos de ' + i_username + ' ') self.view.mostrar_usuario(usuario) self.view.mostrar_separador_usuario() self.view.mostrar_pie_usuario() else: if usuario == None: self.view.error('El usuario no existe') else: self.view.error( 'Problema al leer el nombre de usuario, revise') return self.view.mensaje( 'Ingresa los valores a modificar (Vacio para dejarlo igual): ') todos_valores = self.pregunta_usuario_act() campos, valores = self.actualizar_listas( ['nombre', 'apellido_pat', 'apellido_mat', 'contraseña', 'admin'], todos_valores) valores.append(i_username) valores = tuple(valores) salida = self.model.actualizar_usuario(campos, valores) if salida == True: self.view.Ok(i_username, 'Actualizo') else: self.view.error('No se pudo actualizar el usuario, Revise.') return def borrar_usuario(self): self.view.preguntar('Nombre de usuario de la pelicula a borrar: ') i_username = input() count = self.model.borrar_usuario(i_username) if count != 0: self.view.Ok(i_username, 'Borro') else: if count == 0: self.view.error('El usuario no existe') else: self.view.error('Problema al borrar el usuario, revise.') """ ************************************************ * Controles de Asientos * ************************************************ """ def menu_asientos(self): opcion = '0' while opcion != '6': self.view.menu_asientos() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_todo_asientos() elif opcion == '2': self.leer_id_asiento() elif opcion == '3': self.agregar_asiento() elif opcion == '4': self.actualizar_asiento() elif opcion == '5': self.borrar_asiento() elif opcion == '6': return else: self.view.opcion_invalida() return def pregunta_asiento(self): self.view.preguntar('Categoria: ') categoria = input() return [categoria] def leer_todo_asientos(self): asientos = self.model.leer_todo_asientos() if type(asientos) == list: self.view.mostrar_cabecera_asiento(' Todos los Asientos ') for asiento in asientos: self.view.mostrar_asiento(asiento) self.view.mostrar_separador_asiento() self.view.mostrar_pie_asiento() else: self.view.error('Problema al leer el asiento, revise') return def leer_id_asiento(self): self.view.preguntar('Id del tipo de asiento: ') i_asiento_id = input() asiento = self.model.leer_id_asiento(i_asiento_id) if type(asiento) == tuple: self.view.mostrar_cabecera_asiento(' Datos del asiento ' + i_asiento_id + ' ') self.view.mostrar_asiento(asiento) self.view.mostrar_separador_asiento() self.view.mostrar_pie_asiento() else: if asiento == None: self.view.error('El tipo de asiento no existe') else: self.view.error('Problema al leer el tipo de asiento, revise') return def agregar_asiento(self): self.view.preguntar("ID: ") ID = input() self.view.preguntar("Categoria: ") categoria = input() salida = self.model.agregar_asiento(ID, categoria) if salida == True: self.view.Ok(ID, 'agrego') else: if salida.errno == 1062: self.view.error('El tipo de asiento ya existe.') else: self.view.error( 'No se pudo agregar el tipo de asiento, revise.') return def actualizar_asiento(self): self.view.preguntar('ID del asiento a modificar: ') i_asiento_id = input() asiento = self.model.leer_id_asiento(i_asiento_id) if type(asiento) == tuple: self.view.mostrar_cabecera_asiento(' Datos de ' + i_asiento_id + ' ') self.view.mostrar_asiento(asiento) self.view.mostrar_separador_asiento() self.view.mostrar_pie_asiento() else: if asiento == None: self.view.error('El asiento no existe') else: self.view.error( 'Problema al leer el ID del tipo de asiento, revise') return self.view.mensaje( 'Ingresa los valores a modificar (Vacio para dejarlo igual): ') todos_valores = self.pregunta_asiento() campos, valores = self.actualizar_listas(['categoria'], todos_valores) valores.append(i_asiento_id) valores = tuple(valores) salida = self.model.actualizar_asiento(campos, valores) if salida == True: self.view.Ok(i_asiento_id, 'Actualizo') else: self.view.error( 'No se pudo actualizar el tipo de asiento, Revise.') return def borrar_asiento(self): self.view.preguntar('ID del tipo de asiento a borrar: ') i_asiento_id = input() count = self.model.borrar_asiento(i_asiento_id) if count != 0: self.view.Ok(i_asiento_id, 'Borro') else: if count == 0: self.view.error('El tipo de asiento no existe') else: self.view.error( 'Problema al borrar el tipo de asiento, revise.') """ ************************************************ * Controles de Salas * ************************************************ """ def menu_salas(self): opcion = '0' while opcion != '6': self.view.menu_salas() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_todo_salas() elif opcion == '2': self.leer_numero_sala() elif opcion == '3': self.agregar_sala() elif opcion == '4': self.actualizar_sala() elif opcion == '5': self.borrar_sala() elif opcion == '6': return else: self.view.opcion_invalida() return def pregunta_sala(self): self.view.preguntar('Tipo de sala: ') tipo = input() self.view.preguntar('Descripcion: ') descripcion = input() self.view.preguntar('Precio de sala(Pesos): ') precio_sala = input() return [tipo, descripcion, precio_sala] def leer_todo_salas(self): salas = self.model.leer_todo_salas() if type(salas) == list: self.view.mostrar_cabecera_sala(' Todos las salas ') for sala in salas: self.view.mostrar_sala(sala) self.view.mostrar_separador_sala() self.view.mostrar_pie_sala() else: self.view.error( 'Problema al leer la informacion de la sala, revise') return def leer_numero_sala(self): self.view.preguntar('Numero de la sala: ') i_numero_sala = input() sala = self.model.leer_numero_sala(i_numero_sala) if type(sala) == tuple: self.view.mostrar_cabecera_sala(' Datos del asiento ' + i_numero_sala + ' ') self.view.mostrar_sala(sala) self.view.mostrar_separador_sala() self.view.mostrar_pie_sala() else: if sala == None: self.view.error('La sala no existe') else: self.view.error( 'Problema al leer la informacion de la sala, revise') return def agregar_sala(self): self.view.preguntar("Numero de sala: ") numero_sala = input() tipo, descripcion, precio_sala = self.pregunta_sala() salida = self.model.agregar_sala(numero_sala, tipo, descripcion, precio_sala) if salida == True: self.view.Ok(numero_sala, 'agrego') else: if salida.errno == 1062: self.view.error('El numero de sala ya existe.') else: self.view.error('No se pudo agregar la sala, revise.') return def actualizar_sala(self): self.view.preguntar('Numero de la sala a modificar: ') i_numero_sala = input() sala = self.model.leer_numero_sala(i_numero_sala) if type(sala) == tuple: self.view.mostrar_cabecera_sala(' Datos de ' + i_numero_sala + ' ') self.view.mostrar_sala(sala) self.view.mostrar_separador_sala() self.view.mostrar_pie_sala() else: if sala == None: self.view.error('La sala no existe') else: self.view.error( 'Problema al leer la informacion de la sala, revise') return self.view.mensaje( 'Ingresa los valores a modificar (Vacio para dejarlo igual): ') todos_valores = self.pregunta_sala() campos, valores = self.actualizar_listas( ['tipo', 'descripcion', 'precio_sala'], todos_valores) valores.append(i_numero_sala) valores = tuple(valores) salida = self.model.actualizar_sala(campos, valores) if salida == True: self.view.Ok(i_numero_sala, 'Actualizo') else: self.view.error( 'No se pudo actualizar la informacion de la sala, Revise.') return def borrar_sala(self): self.view.preguntar('Numero de la sala a borrar: ') i_numero_sala = input() count = self.model.borrar_sala(i_numero_sala) if count != 0: self.view.Ok(i_numero_sala, 'Borro') else: if count == 0: self.view.error('La sala no existe') else: self.view.error('Problema al borrar la sala, revise.') """ ************************************************ * Controles de Salas_Asientos * ************************************************ """ def menu_salas_asientos(self): opcion = '0' while opcion != '6': self.view.menu_salas_asientos() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_asientos_salas() elif opcion == '2': self.leer_sala_asiento() elif opcion == '3': self.agregar_asiento_sala() elif opcion == '4': self.borrar_asiento_sala() elif opcion == '5': self.actualizar_cantidad_asientos() elif opcion == '6': return else: self.view.opcion_invalida() return def leer_asientos_salas(self): self.view.preguntar('Numero de la sala: ') i_numero_sala = input() asientos = self.model.leer_asientos_sala(i_numero_sala) if type(asientos) == list: self.view.mostrar_cabecera_sala_asiento(' Todos los asientos ') for asiento in asientos: self.view.mostrar_asientos_sala(asiento) self.view.mostrar_separador_sala_asiento() self.view.mostrar_pie_sala_asiento() else: self.view.error( 'Problema al leer la informacion de la sala, revise') return def leer_asientos_cantidad(self, i_numero_sala): cantidad = self.model.leer_asientos_cantidad(i_numero_sala) total = 0 if type(cantidad) == list: for tipo in cantidad: total += tipo[0] return total else: self.view.error('Problema de cantidad, revise') return def leer_sala_asiento(self): self.view.preguntar('ID del asiento: ') i_id_asiento = input() salas = self.model.leer_sala_asiento(i_id_asiento) if type(salas) == list: self.view.mostrar_cabecera_sala_asiento(' Todas las salas ') for sala in salas: self.view.mostrar_sala_asiento(sala) self.view.mostrar_separador_sala_asiento() self.view.mostrar_pie_sala_asiento() else: self.view.error( 'Problema al leer la informacion del asiento, revise') return def agregar_asiento_sala(self): self.view.preguntar( "A que sala quiere agregar el nuevo tipo de asiento: ") i_numero_sala = input() self.view.preguntar("Que tipo de asiento desea agregar: ") i_id_asiento = input() self.view.preguntar("Cuantos asientos desea agregar: ") i_cantidad = input() salida = self.model.agregar_asiento_sala(i_numero_sala, i_id_asiento, i_cantidad) if salida == True: self.view.Ok(i_id_asiento, 'agrego') else: if salida.errno == 1062: self.view.error('La sala ya cuenta con ese tipo de asientos.') else: self.view.error( 'No se pudo agregar el tipo de asiento, revise.') return def borrar_asiento_sala(self): self.view.preguntar('Numero de la sala: ') i_numero_sala = input() self.view.preguntar('Tipo de asiento: ') i_asiento_id = input() count = self.model.borrar_asiento_sala(i_numero_sala, i_asiento_id) if count != 0: self.view.Ok(i_asiento_id, 'Borro') else: if count == 0: self.view.error('La sala no tiene ese tipo de asiento') else: self.view.error( 'Problema al borrar el tipo de asiento, revise.') def actualizar_cantidad_asientos(self): self.view.preguntar("Que sala? : ") i_numero_sala = input() self.view.preguntar("Que tipo de asiento?: ") i_id_asiento = input() self.view.preguntar("Cuantos asientos tendra ahora: ") i_cantidad = input() salida = self.model.actualizar_cantidad_asientos( i_numero_sala, i_id_asiento, i_cantidad) if salida == True: self.view.Ok(i_numero_sala, 'modifico') else: if salida.errno == 1062: self.view.error('La sala no tiene ese tipo de asientos.') else: self.view.error( 'No se pudo modificar el tipo de asiento, revise.') return """ ************************************************ * Controles de Horarios * ************************************************ """ def menu_horarios(self): opcion = '0' while opcion != '6': self.view.menu_horarios() self.view.opcion('6') opcion = input() if opcion == '1': self.leer_todo_horarios_disponibles() elif opcion == '2': self.leer_todo_horarios_no_disponibles() elif opcion == '3': self.agregar_horario() elif opcion == '4': self.actualizar_actualizar_horario() elif opcion == '5': self.borrar_horario() elif opcion == '6': return else: self.view.opcion_invalida() return def pregunta_horario(self): self.view.preguntar("ID de la pelicula: ") h_pelicula_id = input() self.view.preguntar("Numero de sala: ") h_numero_sala = input() self.view.preguntar("Ya termino la pelicula?(Si/No): ") terminado = input() return [h_pelicula_id, h_numero_sala, terminado] def leer_todo_horarios_disponibles(self): horarios = self.model.leer_todo_horarios_disponibles() if type(horarios) == list: self.view.mostrar_cabecera_sala( ' Todos los horarios disponibles: ') for horario in horarios: self.view.mostrar_horario(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: self.view.error( 'Problema al leer la informacion del horario, revise') return def leer_todo_horarios_no_disponibles(self): horarios = self.model.leer_todo_horarios_no_disponibles() if type(horarios) == list: self.view.mostrar_cabecera_sala( ' Todos los horarios no disponibles: ') for horario in horarios: self.view.mostrar_horario(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: self.view.error( 'Problema al leer la informacion del horario, revise') return def leer_horario_pelicula(self): self.view.preguntar("ID de la pelicula: ") i_pelicula_id = input() horarios = self.model.leer_horario_pelicula(i_pelicula_id) if type(horarios) == list: self.view.mostrar_cabecera_sala('Todos los horarios disponibles: ') for horario in horarios: self.view.mostrar_horario(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: self.view.error( 'Problema al leer la informacion del horario, revise') return def leer_horario_dia(self): self.view.preguntar('Dia? (formato DD): ') dia = input() self.view.preguntar('Mes? (formato MM): ') mes = input() self.view.preguntar('Año?(formato YYYY): ') año = input() fecha_hora_inicial = año + '-' + mes + '-' + dia + ' ' + ':00:00' + ':00' dia = int(dia) + 1 dia = str(dia) fecha_hora_final = año + '-' + mes + '-' + dia + ' ' + ':00:00' + ':00' horarios = self.model.leer_horario_dia(fecha_hora_inicial, fecha_hora_final) if type(horarios) == list: self.view.mostrar_cabecera_sala('Todos los horarios disponibles: ') for horario in horarios: self.view.mostrar_horario(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: self.view.error( 'Problema al leer la informacion del horario, revise') return def agregar_horario(self): self.view.preguntar('ID de la pelicula?: ') h_pelicula_id = input() self.view.preguntar('Numero de la sala: ') h_numero_sala = input() self.view.preguntar('Dia? (formato DD): ') dia = input() self.view.preguntar('Mes? (formato MM): ') mes = input() self.view.preguntar('Año?(formato YYYY): ') año = input() self.view.preguntar('Hora?(formato hh:mm): ') hora = input() fecha_hora = año + '-' + mes + '-' + dia + ' ' + hora + ':00' asientos_disponibles = self.leer_asientos_cantidad(h_numero_sala) terminado = 'No' salida = self.model.agregar_horario(h_pelicula_id, h_numero_sala, fecha_hora, asientos_disponibles, terminado) if salida == True: self.view.Ok(h_pelicula_id, 'agrego') else: self.view.error('No se pudo agregar el horario, revise.') return def actualizar_actualizar_horario(self): self.view.preguntar('ID del horario a modificar ') horario_id = input() horario = self.model.leer_id_horario(horario_id) if type(horario) == tuple: self.view.mostrar_cabecera_horario(' Datos de ' + horario_id + ' ') self.view.mostrar_horario(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: if horario == None: self.view.error('El horario no existe') else: self.view.error( 'Problema al leer la informacion del horario, revise') return self.view.mensaje( 'Ingresa los valores a modificar (Vacio para dejarlo igual): ') todos_valores = self.pregunta_horario() campos, valores = self.actualizar_listas( ['h_pelicula_id', 'h_numero_sala', 'terminado'], todos_valores) valores.append(horario_id) valores = tuple(valores) salida = self.model.actualizar_horario(campos, valores) if salida == True: self.view.Ok(horario_id, 'Actualizo') else: self.view.error( 'No se pudo actualizar la informacion del horario, Revise.') return def borrar_horario(self): self.view.preguntar('ID del horario a borrar: ') horario_id = input() count = self.model.borrar_horario(horario_id) if count != 0: self.view.Ok(horario_id, 'Borro') else: if count == 0: self.view.error('El horario no existe') else: self.view.error('Problema al borrar el horario, revise.') """ ************************************************ * Controles de Tickets * ************************************************ """ def menu_tickets(self): opcion = '0' while opcion != '4': self.view.menu_tickets() self.view.opcion('4') opcion = input() if opcion == '1': self.mostrar_todo_tickets() elif opcion == '2': self.mostrar_usuario_tickets() elif opcion == '3': self.mostrar_horario_tickets() elif opcion == '4': return else: self.view.opcion_invalida() return def mostrar_todo_tickets(self): tickets = self.model.mostrar_todo_tickets() if type(tickets) == list: self.view.mostrar_cabecera_pelicula(' Todos los tickets ') for ticket in tickets: self.view.mostrar_ticket(ticket) self.view.mostrar_separador_ticket() self.view.mostrar_pie_ticket() else: self.view.error('Problema al leer los tickets, revise') return def mostrar_usuario_tickets(self): self.view.preguntar('Que nombre de usuario?: ') i_username = input() tickets = self.model.mostrar_usuario_tickets(i_username) if type(tickets) == list: self.view.mostrar_cabecera_pelicula( ' Todas los tickets de usuario ') for ticket in tickets: self.view.mostrar_ticket(ticket) self.view.mostrar_separador_ticket() self.view.mostrar_pie_ticket() else: self.view.error('Problema al leer los tickets, revise') return def mostrar_horario_tickets(self): self.view.preguntar('ID del horario: ') i_ID = input() tickets = self.model.mostrar_horario_tickets(i_ID) if type(tickets) == list: self.view.mostrar_cabecera_pelicula( ' Todos los tickets del horario ') for ticket in tickets: self.view.mostrar_ticket(ticket) self.view.mostrar_separador_ticket() self.view.mostrar_pie_ticket() else: self.view.error('Problema al leer los tickets, revise') return def agregar_ticket(self, i_username): self.view.preguntar("ID del horario: ") i_horario_id = input() if self.model.leer_disponible_horario(i_horario_id) == 1: if self.model.asiento_disponible(i_horario_id) == 1: precio_ticket = self.model.obtener_precio_ticket(i_horario_id) salida = self.model.agregar_ticket(i_username, i_horario_id, precio_ticket) if salida == True: self.view.Ok(i_horario_id, 'agrego') self.model.reducir_asiento(i_horario_id) print( "================================Datos del ticket================================" ) horario = self.model.leer_id_horario_ticket(i_horario_id) print('Vendedor: ' + i_username) print('Precio: ' + str(precio_ticket) + ' Pesos') self.view.mostrar_horario_ticket(horario) self.view.mostrar_separador_horario() self.view.mostrar_pie_horario() else: self.view.error('No se pudo agregar el ticket, revise.') return elif self.model.asiento_disponible(i_horario_id) == 0: print('========== No hay asiento disponible ==========') elif self.model.leer_disponible_horario(i_horario_id) == 0: print( '=========== Horario no disponible, intente de nuevo ===========' ) else: self.view.error('El horario no existe.') return