def cargar_datos(self): """Carga los datos del usuario dentro de la pantalla de anulación""" try: user_session.update(controlador.get_usuario(self.data['dni'])) self.user = user_session.get_user() except KeyError: self.user = user_session.get_user() self.data['dni'] = self.user['dni'] self.data['saldo'] = '$ %.0f' % (self.user['saldo']) self.data['categoria'] = controlador.get_categoria_nombre( self.user['id_categoria']) self.data['facultad'] = controlador.get_facultad( self.user['id_facultad']) self.data['ruta_foto'] = self.user['ruta_foto']
def comprar(self): """ Crea y accede a la pantalla de compra de tickets siempre y cuando haya papel en la impresora. """ estado = impresora.check_status() if estado == 1: controlador.update_estado_maquina(UNIDAD, 1) controlador.update_papel_disponible(UNIDAD, 2, 80) if not self.manager.has_screen('compra_1'): self.manager.add_widget(Compra1Screen(name='compra_1')) self.manager.current = 'compra_1' elif estado == 2: user = user_session.get_user() limite = controlador.get_categoria_limite(user['id_categoria']) controlador.update_estado_maquina(UNIDAD, 4) if controlador.get_papel_disponible(UNIDAD) >= limite: if not self.manager.has_screen('compra_1'): self.manager.add_widget(Compra1Screen(name='compra_1')) self.manager.current = 'compra_1' else: controlador.update_estado_maquina(UNIDAD, 2) mensaje = u"\rLa maquina no tiene papel." WarningPopup(mensaje).open() else: controlador.update_estado_maquina(UNIDAD, 5) mensaje = u"\rLa impresora está desconectada." WarningPopup(mensaje).open()
def __init__(self, dias, saldo, **kwargs): """Pantalla para comprar usando efectivo.""" self.user = user_session.get_user() id_log = controlador.insert_log(self.user, 'reservar', UNIDAD) self.reserva, full, state = controlador.reservar_tickets( self.user, dias, id_log, UNIDAD) self.data = {} self.saldo = saldo self.stop = Event() importe = controlador.get_categoria_importe(self.user['id_categoria']) self.faltante = (len(self.reserva) * importe) - saldo self.total_parcial = 0 self.bandera = True self.cargar_datos() self.cargar_threads() if state: if full: for dia in full: mensaje = "\rNo se pudo reservar: \r\n\t%s" % ( dia.strftime('%d/%m/%Y')) WarningPopup(mensaje).open() else: mensaje = "\rHubo un error al reservar \r\nIntente nuevamente" WarningPopup(mensaje).open() self.cancel() super(Compra2Screen, self).__init__(**kwargs)
def __init__(self, dias, saldo, **kwargs): """Pantalla para comprar usando efectivo.""" self.user = user_session.get_user() id_log = controlador.insert_log(self.user, 'reservar', UNIDAD) self.reserva, full, state = controlador.reservar_tickets( self.user, dias, id_log, UNIDAD ) self.data = {} self.saldo = saldo self.stop = Event() importe = controlador.get_categoria_importe(self.user['id_categoria']) self.faltante = (len(self.reserva) * importe) - saldo self.total_parcial = 0 self.bandera = True self.cargar_datos() self.cargar_threads() if state: if full: for dia in full: mensaje = "\rNo se pudo reservar: \r\n\t%s" % ( dia.strftime('%d/%m/%Y')) WarningPopup(mensaje).open() else: mensaje = "\rHubo un error al reservar \r\nIntente nuevamente" WarningPopup(mensaje).open() self.cancel() super(Compra2Screen, self).__init__(**kwargs)
def print_ticket_grupal(self, cant, delegacion, cat, date, recibo): """ Imprime el ticket grupal para el día(date), para la delegación dada y la cantidad solicitada. """ user = user_session.get_user() id_log = controlador.insert_log(user, 'comprar_grupal', UNIDAD) ticket_grupal = controlador.comprar_ticket_grupal( cant, delegacion, cat, date, recibo, id_log ) row = controlador.get_ticket_grupal_by_id(ticket_grupal) id_log = controlador.insert_log(user, 'imprimir_grupal', UNIDAD) controlador.insert_ticket_log(ticket_grupal, id_log) print_thread = Thread( target=impresora.imprimir_ticket_grupal, args=( user['nombre'], user['dni'], row['id'], UNIDAD, row['fecha'].strftime('%d/%m/%Y'), row['cantidad'], row['barcode'], row['importe'], row['delegacion'], row['recibo'] ) ) print_thread.start() Window.release_all_keyboards() self.cancel()
def apagar(self): """Cierra la sesion y apaga la maquina""" user = user_session.get_user() controlador.insert_log(user, 'apagar', UNIDAD, 'Control') user_session.close() controlador.update_all_activos() os.system("/sbin/shutdown -h now")
def imprimir(self): """imprime un ticket de control""" print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 1)): user = user_session.get_user() controlador.insert_log(user, 'imprimir', UNIDAD, 'Ticket de prueba') fecha = "dd/mm/aaaa" code = str(int(time())) + "0000000000" nom = user['nombre'] dni = user['dni'] cat = u"control" fac = u"Secretaría de Bienestar" msj = u"Ticket NO VALIDO" sdo = 0 ticket = "XXX" print_thread = Thread(target=impresora.imprimir_ticket_alumno, args=(nom, dni, fac, cat, code, UNIDAD, ticket, fecha, msj, sdo)) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 1) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def update_datos(self): """Actualiza los datos de la pantalla para plasmar cambios""" user_session.update(controlador.get_usuario(self.data['dni'])) self.user = user_session.get_user() self.cargar_datos() self.ids.saldo.text = self.data['saldo'] self.ids.nombre.text = self.data['nombre']
def print_ticket_cierre(self, unidad, date): """ Imprime el ticket de cierre de la unidad y del día(date) dado """ total, bills = controlador.get_total(unidad, date) user = user_session.get_user() desc = 'Control - Cierre de la maquina %d del dia %s' % ( unidad, date.strftime('%d/%m/%Y')) id_log = controlador.insert_log(user, 'retiro', unidad, desc) id_ticket = controlador.get_id_ticket_cierre(unidad, date) if not id_ticket: id_ticket = controlador.insert_ticket_cierre(id_log, total, unidad) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(unidad, date) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2)): print_thread = Thread(target=impresora.imprimir_ticket_cierre, args=(user['nombre'], id_ticket, unidad, hora, bills, total, ticket['barcode'], date.strftime('%d/%m/%Y'))) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def cargar_datos(self): """Carga los datos del usuario dentro de la pantalla de anulación""" self.user = user_session.get_user() self.data["nombre"] = self.user["nombre"] self.data["dni"] = self.user["dni"] self.data["saldo"] = "$%.0f" % (self.user["saldo"]) self.data["categoria"] = controlador.get_categoria_nombre(self.user["id_categoria"]) self.data["ruta_foto"] = self.user["ruta_foto"]
def cargar_datos(self): """Carga los datos del usuario dentro de la pantalla de anulación""" self.user = user_session.get_user() self.data['nombre'] = self.user['nombre'] self.data['dni'] = self.user['dni'] self.data['saldo'] = '$%.0f' % (self.user['saldo']) self.data['categoria'] = controlador.get_categoria_nombre( self.user['id_categoria']) self.data['ruta_foto'] = self.user['ruta_foto']
def cargar(self): """Crea y accede a la pantalla de carga de saldo""" self.user = user_session.get_user() if self.user["saldo"] >= 100: mensaje = "No puede cargar más de $ 100" WarningPopup(mensaje).open() else: if not self.manager.has_screen("carga"): self.manager.add_widget(CargaScreen(name="carga")) self.manager.current = "carga"
def cargar(self): """Crea y accede a la pantalla de carga de saldo""" self.user = user_session.get_user() if self.user['saldo'] >= 100: mensaje = "No puede cargar más de $ 100" WarningPopup(mensaje).open() else: if not self.manager.has_screen('carga'): self.manager.add_widget(CargaScreen(name='carga')) self.manager.current = 'carga'
def cancel(self): """ Limpia los campos y regresa a la pantalla scr_cancel. Si el usuario no esta activo cierra la sesión. """ self.clear() user = user_session.get_user() if user['estado'] == 1: user_session.close() self.manager.current = self.scr_cancel
def cargar_datos(self): """Carga los datos del usuario dentro de la pantalla de perfil""" try: user_session.update(controlador.get_usuario(self.data['dni'])) self.user = user_session.get_user() except KeyError: self.user = user_session.get_user() self.provincias_nombre = sorted(self.provincias.keys()) self.data['nombre'] = self.user['nombre'] self.data['dni'] = self.user['dni'] self.data['saldo'] = '$ %.0f' % (self.user['saldo']) self.data['categoria'] = controlador.get_categoria_nombre( self.user['id_categoria']) self.data['nombre'] = self.user['nombre'] self.data['email'] = self.user['email'] self.data['provincia'] = controlador.get_provincia( self.user['id_provincia']) self.data['facultad'] = controlador.get_facultad( self.user['id_facultad']) self.data['ruta_foto'] = self.user['ruta_foto']
def iniciar(self): """Accede a la pantalla principal del sistema""" user = user_session.get_user() hora = controlador.get_hora_inicio(UNIDAD) retiro = controlador.get_log(UNIDAD, 'retiro') if not hora: controlador.insert_log(user, 'iniciar', UNIDAD, '1er control') else: controlador.insert_log(user, 'iniciar', UNIDAD, 'control') user_session.close() self.manager.current = 'splash'
def cargar_datos(self): """Carga los datos del usuario dentro de la pantalla de compra""" self.user = user_session.get_user() self.data['nombre'] = self.user['nombre'] self.data['dni'] = self.user['dni'] self.data['saldo'] = "$ %.0f" % (self.user['saldo']) self.data['categoria'] = controlador.get_categoria_nombre( self.user['id_categoria']) self.data['facultad'] = controlador.get_facultad( self.user['id_facultad']) self.data['ruta_foto'] = self.user['ruta_foto'] self.data['cantidad'] = str(self.cantidad) self.saldo = self.user['saldo']
def billete_trabado(self): """ Registra los billetes trabados. """ self.update_ingreso("jam", True) controlador.insert_log(self.user, 'jam', UNIDAD) self.stop.set() self.cola_stop.put(True) user = user_session.get_user() controlador.insert_log(user, 'salir', UNIDAD, 'Billete trabado - bloqueo') controlador.update_activo(user, 0) user_session.close() sleep(2) self.bloquear()
def logout(self): """Cierra la sesion, libera las pantallas que no se van a usar y vuelve a la pantalla principal""" user = user_session.get_user() controlador.insert_log(user, 'salir', UNIDAD) controlador.update_activo(user, 0) user_session.close() if self.manager.has_screen('opciones'): self.manager.remove_widget(self.manager.get_screen('opciones')) if self.manager.has_screen('compra_1'): self.manager.remove_widget(self.manager.get_screen('compra_1')) if self.manager.has_screen('compra_2'): self.manager.remove_widget(self.manager.get_screen('compra_2')) self.manager.current = 'splash'
def __init__(self, **kwargs): """Pantalla para elegir los días de compra de tickets""" self.data = {} self.user = user_session.get_user() self.data['nombre'] = self.user['nombre'] self.data['dni'] = self.user['dni'] self.data['saldo'] = '$ %.0f' % (self.user['saldo']) self.data['categoria'] = controlador.get_categoria_nombre( self.user['id_categoria']) self.data['facultad'] = controlador.get_facultad( self.user['id_facultad']) self.data['ruta_foto'] = self.user['ruta_foto'] super(Compra1Screen, self).__init__(**kwargs) self.cargar_datos()
def validar(self): """Valida las entradas y chequea en la base de datos por el par dni - password""" if self.ids.dni.text: if not self.ids.dni.text.isdigit(): self.ids.dni.text = "" self.ids.dni.focus = True mensaje = u"Su DNI solo puede contenter números" WarningPopup(mensaje).open() elif len(self.ids.dni.text) >= 10: mensaje = u"\rSu DNI no puede tener\r\n más de 10 caracteres." self.ids.dni.focus = True WarningPopup(mensaje).open() elif not self.ids.passw.text: mensaje = u"Su PASSWORD no puede estar vacío" self.ids.passw.focus = True WarningPopup(mensaje).open() elif len(self.ids.passw.text) >= 64: mensaje = u"\rSu PASSWORD no puede tener\r\n" mensaje += u"más de 64 caracteres." self.ids.passw.focus = True WarningPopup(mensaje).open() else: dni = self.ids.dni.text password = self.ids.passw.text login = self.validar_login(dni, password) if login: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log( user, 'ingresar', UNIDAD, 'control - desbloqueo' ) self.manager.current = 'menu_control' self.manager.remove_widget( self.manager.get_screen('bloqueo') ) else: self.ids.passw.text = "" mensaje = u"DNI o PASSWORD incorrecto" WarningPopup(mensaje).open() else: mensaje = u"Su DNI no puede estar vacío" self.ids.dni.focus = True WarningPopup(mensaje).open()
def imprimir(self): """imprime un ticket de control""" print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 1) ): user = user_session.get_user() controlador.insert_log( user, 'imprimir', UNIDAD, 'Ticket de prueba' ) fecha = "dd/mm/aaaa" code = str(int(time())) + "0000000000" nom = user['nombre'] dni = user['dni'] cat = u"control" fac = u"Secretaría de Bienestar" msj = u"Ticket NO VALIDO" sdo = 0 ticket = "XXX" print_thread = Thread( target=impresora.imprimir_ticket_alumno, args=( nom, dni, fac, cat, code, UNIDAD, ticket, fecha, msj, sdo ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 1) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def billete_trabado(self): """ Registra los billetes trabados. """ self.update_ingreso("jam", True) controlador.insert_log(self.user, 'jam', UNIDAD) self.stop.set() self.cola_stop.put(True) user = user_session.get_user() controlador.insert_log( user, 'salir', UNIDAD, 'Billete trabado - bloqueo' ) controlador.update_activo(user, 0) user_session.close() sleep(2) self.bloquear()
def print_ticket_cierre(self, unidad, date): """ Imprime el ticket de cierre de la unidad y del día(date) dado """ total, bills = controlador.get_total(unidad, date) user = user_session.get_user() desc = 'Control - Cierre de la maquina %d del dia %s' % ( unidad, date.strftime('%d/%m/%Y') ) id_log = controlador.insert_log(user, 'retiro', unidad, desc) id_ticket = controlador.get_id_ticket_cierre(unidad, date) if not id_ticket: id_ticket = controlador.insert_ticket_cierre( id_log, total, unidad ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(unidad, date) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, unidad, hora, bills, total, ticket['barcode'], date.strftime('%d/%m/%Y') ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def validar(self): """Valida las entradas y llama al metodo que cambia el password""" if not self.ids.old_pass.text: mensaje = u"Debe ingresar el password actual" self.ids.old_pass.focus = True WarningPopup(mensaje).open() elif not self.ids.new_pass.text: mensaje = u"Debe ingresar el password nuevo" self.ids.new_pass.focus = True WarningPopup(mensaje).open() elif not self.ids.re_new_pass.text: mensaje = u"Debe repetir el password nuevo" self.ids.re_new_pass.focus = True WarningPopup(mensaje).open() else: user = user_session.get_user() response = self.cambiar_pass(user) if response == 1: mensaje = u"Su password se actualizo correctamente" WarningPopup(mensaje).open() self.clear() self.manager.current = self.scr_accept if self.scr_accept == 'profile': controlador.insert_log(user, 'perfil', UNIDAD) user_session.close() self.manager.remove_widget(self.manager.get_screen('pass')) elif response == 2: msje = u"\rEL password actual\r\n no coincide con el antiguo." WarningPopup(msje).open() self.clear() elif response == 3: mensaje = u"\rEl password actual\r\n no debe superar los 15" mensaje += u" caracteres\r\n y no puede contener" mensaje += u" símbolos extraños." WarningPopup(mensaje).open() self.clear() else: mensaje = u"El password nuevo no coincide" WarningPopup(mensaje).open() self.clear()
def __init__(self, dias, titulo, **kwargs): """Pantalla para confirmar e imprimir los tickets""" self.user = user_session.get_user() id_log = controlador.insert_log(self.user, 'reservar', UNIDAD) self.reserva, full, state = controlador.reservar_tickets( self.user, dias, id_log, UNIDAD) if state: if full: for dia in full: mensaje = "\rNo se pudo reservar: \r\n\t%s" % ( dia.strftime('%d/%m/%Y')) WarningPopup(mensaje).open() else: mensaje = "\rHubo un error al reservar \r\nIntente nuevamente" WarningPopup(mensaje).open() self.cancel() self.bandera = True self.data = {} self.dias = dias self.titulo = titulo self.cargar_datos() super(Compra3Screen, self).__init__(**kwargs)
def __init__(self, dias, titulo, **kwargs): """Pantalla para confirmar e imprimir los tickets""" self.user = user_session.get_user() id_log = controlador.insert_log(self.user, 'reservar', UNIDAD) self.reserva, full, state = controlador.reservar_tickets( self.user, dias, id_log, UNIDAD ) if state: if full: for dia in full: mensaje = "\rNo se pudo reservar: \r\n\t%s" % ( dia.strftime('%d/%m/%Y')) WarningPopup(mensaje).open() else: mensaje = "\rHubo un error al reservar \r\nIntente nuevamente" WarningPopup(mensaje).open() self.cancel() self.bandera = True self.data = {} self.dias = dias self.titulo = titulo self.cargar_datos() super(Compra3Screen, self).__init__(**kwargs)
def retirar(self): """ Controla que se pueda hacer un ticket de cierre para poder retirar el dinero. """ user = user_session.get_user() retiro = controlador.get_log(UNIDAD, 'retiro') hora = controlador.get_hora_inicio(UNIDAD) if not retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - 1er Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2)): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=(user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'])) print_thread.start() elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay registros para hoy" WarningPopup(mensaje).open() elif retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) total, bills = controlador.get_total(UNIDAD) id_ticket = controlador.get_id_ticket_cierre(UNIDAD) if not id_ticket: id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2)): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=(user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'])) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay rergistros para hoy" WarningPopup(mensaje).open() else: msje = u"\rNo puede hacer cierre\r\n sin iniciar antes el sistema." WarningPopup(msje).open()
def __init__(self, **kwargs): """Pantalla para anular los tickets del usuario""" self.data = {} self.user = user_session.get_user() super(AnularGrupalScreen, self).__init__(**kwargs)
def validar(self): """Valida las entradas y chequea en la base de datos por el par dni - password""" if self.ids.dni.text: if not self.ids.dni.text.isdigit(): self.ids.dni.text = "" self.ids.dni.focus = True mensaje = u"Su DNI solo puede contenter números" WarningPopup(mensaje).open() elif len(self.ids.dni.text) >= 10: mensaje = u"\rSu DNI no puede exceder\r\n los 10 caracteres." self.ids.dni.focus = True WarningPopup(mensaje).open() elif not self.ids.passw.text: mensaje = u"Su PASSWORD no puede estar vacío" self.ids.passw.focus = True WarningPopup(mensaje).open() elif len(self.ids.passw.text) >= 64: msje = u"\rSu PASSWORD no puede exceder\r\n los 64 caracteres." self.ids.passw.focus = True WarningPopup(msje).open() else: dni = self.ids.dni.text password = self.ids.passw.text login = self.validar_login(dni, password) if login: if login == 2: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log(user, 'ingresar', UNIDAD) controlador.update_activo(user, 1) self.manager.current = 'menu' elif login == 1: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log(user, 'ingresar', UNIDAD) self.manager.add_widget( PasswordScreen('splash', 'splash', 'pass') ) self.manager.current = 'pass' elif login == 6: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log( user, 'ingresar', UNIDAD, 'control' ) self.manager.current = 'menu_control' elif login == 5: self.clear() msje = u"\rYa has iniciado sesión\r\n en otra maquina." WarningPopup(msje).open() else: self.clear() mensaje = u"\rSu cuenta esta bloqueada.\r\n Dirijase" mensaje += u" a la Administración \r\n del Comedor" mensaje += u" Universitario." WarningPopup(mensaje).open() else: self.ids.passw.text = "" mensaje = u"DNI o PASSWORD incorrecto" WarningPopup(mensaje).open() else: mensaje = u"Su DNI no puede estar vacío" self.ids.dni.focus = True WarningPopup(mensaje).open()
def __init__(self, **kwargs): """Pantalla para anular los tickets del usuario""" self.data = {} self.popup = None self.user = user_session.get_user() super(AnularGrupalScreen, self).__init__(**kwargs)
def validar(self): """Valida las entradas y chequea en la base de datos por el par dni - password""" if self.ids.dni.text: if not self.ids.dni.text.isdigit(): self.ids.dni.text = "" self.ids.dni.focus = True mensaje = u"Su DNI solo puede contenter números" WarningPopup(mensaje).open() elif len(self.ids.dni.text) >= 10: mensaje = u"\rSu DNI no puede exceder\r\n los 10 caracteres." self.ids.dni.focus = True WarningPopup(mensaje).open() elif not self.ids.passw.text: mensaje = u"Su PASSWORD no puede estar vacío" self.ids.passw.focus = True WarningPopup(mensaje).open() elif len(self.ids.passw.text) >= 64: msje = u"\rSu PASSWORD no puede exceder\r\n los 64 caracteres." self.ids.passw.focus = True WarningPopup(msje).open() else: dni = self.ids.dni.text password = self.ids.passw.text login = self.validar_login(dni, password) if login: if login == 2: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log(user, 'ingresar', UNIDAD) controlador.update_activo(user, 1) self.manager.current = 'menu' elif login == 1: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log(user, 'ingresar', UNIDAD) self.manager.add_widget( PasswordScreen('splash', 'splash', 'pass')) self.manager.current = 'pass' elif login == 6: self.clear() user_session.init(controlador.get_usuario(dni), time()) user = user_session.get_user() controlador.insert_log(user, 'ingresar', UNIDAD, 'control') self.manager.current = 'menu_control' elif login == 5: self.clear() msje = u"\rYa has iniciado sesión\r\n en otra maquina." WarningPopup(msje).open() else: self.clear() mensaje = u"\rSu cuenta esta bloqueada.\r\n Dirijase" mensaje += u" a la Administración \r\n del Comedor" mensaje += u" Universitario." WarningPopup(mensaje).open() else: self.ids.passw.text = "" mensaje = u"DNI o PASSWORD incorrecto" WarningPopup(mensaje).open() else: mensaje = u"Su DNI no puede estar vacío" self.ids.dni.focus = True WarningPopup(mensaje).open()
def retirar(self): """ Controla que se pueda hacer un ticket de cierre para poder retirar el dinero. """ user = user_session.get_user() retiro = controlador.get_log(UNIDAD, 'retiro') hora = controlador.get_hora_inicio(UNIDAD) if not retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - 1er Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'] ) ) print_thread.start() elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay registros para hoy" WarningPopup(mensaje).open() elif retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) total, bills = controlador.get_total(UNIDAD) id_ticket = controlador.get_id_ticket_cierre(UNIDAD) if not id_ticket: id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'] ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay rergistros para hoy" WarningPopup(mensaje).open() else: msje = u"\rNo puede hacer cierre\r\n sin iniciar antes el sistema." WarningPopup(msje).open()