Esempio n. 1
0
 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)
Esempio n. 2
0
 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()
Esempio n. 3
0
 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()
Esempio n. 4
0
 def registrar_usuario(self, estado=1):
     """Registra los usuarios de acuerdo a lo ingresado en el formulario.
     Llamando a los metodos insert_usuario y a send_mail"""
     user = controlador.get_usuario(self.ids.dni.text)
     if not user:
         data = {}
         data['dni'] = self.ids.dni.text
         data['nombre'] = self.ids.nombre.text
         data['lu'] = self.ids.lu.text
         data['email'] = self.ids.mail.text
         data['id_facultad'] = self.facultades[self.ids.facultad.text]
         data['id_provincia'] = self.provincias[self.ids.provincia.text]
         password = utils.generar_pass()
         data['password'] = utils.ofuscar_pass(password)
         data['estado'] = estado  # 0 bloqueado / 1 registrado
         data['id_perfil'] = controlador.get_perfil('Alumno')
         data['id_categoria'] = controlador.get_categoria_id('Regular')
         # insertamos el usuario en la db
         controlador.insert_usuario(data, UNIDAD)
         # Enviamos el mail de confirmación
         datos_mail = controlador.get_configuracion()
         mail_thread = Thread(
             target=mailserver.send_mail,
             args=(data['nombre'], data['email'], password, datos_mail)
         )
         mail_thread.start()
         mensaje = "\rGracias por registrarte!!\r\n\r\n"
         mensaje += "Comprueba tu mail\r\n para completar el registro"
         WarningPopup(mensaje).open()
     else:
         mensaje = "Ya existe un usario con ese DNI"
         WarningPopup(mensaje).open()
Esempio n. 5
0
 def validar(self):
     """Valida las entradas de texto y actualiza el perfil de usuario si
      todo esta bien."""
     if not self.ids.email.text:
         mensaje = u"Su EMAIL no puede estar vacío"
         self.ids.email.focus = True
         WarningPopup(mensaje).open()
     elif len(self.ids.email.text) >= 64:
         mensaje = u"\rSu EMAIL no puede tener\r\n más de 64 caracteres."
         self.ids.email.text = ""
         self.ids.email.focus = True
         WarningPopup(mensaje).open()
     elif not self.mailvalidator(self.ids.email.text):
         mensaje = u"Su EMAIL está mal formado."
         self.ids.email.text = ""
         self.ids.email.focus = True
         WarningPopup(mensaje).open()
     elif not self.ids.provincia.text:
         mensaje = u"Debe especificar una PROVINCIA"
         WarningPopup(mensaje).open()
     else:
         mensaje = "Perfil actualizado correctamente"
         WarningPopup(mensaje).open()
         self.update_profile()
         self.manager.current = 'opciones'
Esempio n. 6
0
 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()
Esempio n. 7
0
 def medio_de_pago(self):
     """
     Función que se ejecuta al presionar continuar. Decide en base al saldo
     disponible a que pantalla saltar.
     Si el saldo es mayor al importe necesario para realizar la compra va a
     la pantalla de confirmación.
     Si el saldo es menor o insuficiente para realizar la compra va a la
     pantalla de ingreso de billetes.
     """
     sleep(1)
     dias = self.controlar_dias()
     if dias:
         if self.user['saldo'] >= self.importe:
             if len(dias) <= self.tickets_posibles:
                 titulo = "Paso 2: Confirmar Pago"
                 self.manager.add_widget(
                     Compra3Screen(dias, titulo, name='compra_3'))
                 self.manager.current = 'compra_3'
             else:
                 self.manager.add_widget(
                     Compra2Screen(dias,
                                   self.user['saldo'],
                                   name='compra_2'))
                 self.manager.current = 'compra_2'
         else:
             self.manager.add_widget(
                 Compra2Screen(dias, self.user['saldo'], name='compra_2'))
             self.manager.current = 'compra_2'
     else:
         mensaje = "La fecha DESDE debe ser menor a HASTA"
         WarningPopup(mensaje).open()
Esempio n. 8
0
 def registro(self):
     """ Ingresa a la pantalla de registro si hay internet. """
     if internet_on():
         self.manager.current = "formulario"
     else:
         msje = u"\rInternet sin conexión\r\n Intente nuevamente."
         WarningPopup(msje).open()
Esempio n. 9
0
 def leer_billetes(self, cola_billetes):
     """
     Inicia el proceso de lectura de billetes. Cuando detecta un billete
     actualiza la pantalla para mostrar lo ingresado y permite que el
     billete se cargue en la maquina.
     """
     while True:
         try:
             self.valor = cola_billetes.get(False)
         except Empty:
             continue
         if self.stop.is_set():
             return
         else:
             if self.valor:
                 if self.valor == -1:
                     self.billete_trabado()
                     sleep(1)
                 else:
                     if self.user['saldo'] + self.valor > 100:
                         Thread(target=self.stack,
                                args=(self.cola_bool, 2)).start()
                         mensaje = "No puede cargar mas de $ 100"
                         WarningPopup(mensaje).open()
                     else:
                         self.update_ingreso(str(self.valor), False)
             else:
                 self.update_ingreso("no", True)
         sleep(0.1)
Esempio n. 10
0
 def check_fecha(self):
     """ Verifica que la fecha sea correcta y menor o igual a la actual. """
     year = int(self.ids.year.text)
     mes = self.ids.mes.values.index(self.ids.mes.text) + 1
     dia = int(self.ids.dia.text)
     unidad = controlador.get_maquina_ubicacion(
         self.unidades[self.ids.unidad.text])
     try:
         date = datetime(year, mes, dia)
         if date <= datetime.now():
             self.print_ticket_cierre(unidad, date)
         else:
             mensaje = u"Fecha Inválida"
             WarningPopup(mensaje).open()
     except ValueError:
         mensaje = u"Fecha Inválida"
         WarningPopup(mensaje).open()
Esempio n. 11
0
 def validar_anulacion(self):
     """Verifica que el numero ingresado corresponda a un ticket valido
     para el usuario y que sea antes de la hora máxima permitida."""
     if self.ids.id_ticket.text:
         if not self.ids.id_ticket.text.isdigit():
             self.ids.id_ticket.text = ""
             self.ids.id_ticket.focus = True
             mensaje = "\rEl código del ticket\r\n solo tiene números."
             WarningPopup(mensaje).open()
         else:
             fecha = controlador.has_ticket(self.user,
                                            self.ids.id_ticket.text)
             hora_max = controlador.get_hora_anulacion()
             if fecha:
                 codigo = self.check_hora(fecha, hora_max)
                 if codigo == 1:
                     return fecha.strftime('%d/%m/%Y')  # anular
                 elif codigo == 0:
                     self.ids.id_ticket.text = ""
                     self.ids.id_ticket.focus = True
                     mensaje = "\rNo puede anular un ticket\r\n"
                     mensaje += "despues de las %d hs." % (hora_max)
                     WarningPopup(mensaje).open()
                     return 0  # nada
                 else:
                     self.ticket_vencido()
                     self.ids.id_ticket.text = ""
                     self.ids.id_ticket.focus = True
                     mensaje = "\rNo puede anular un ticket\r\n despues"
                     mensaje += " de la fecha\r\n de servicio.\r\n\r\n"
                     mensaje += "Su ticket se venció."
                     WarningPopup(mensaje).open()
                     return 0  # vencer
             else:
                 self.ids.id_ticket.text = ""
                 self.ids.id_ticket.focus = True
                 mensaje = "El código del ticket\r\n no es valido."
                 WarningPopup(mensaje).open()
     else:
         self.ids.id_ticket.text = ""
         self.ids.id_ticket.focus = True
         mensaje = "\rEl código del ticket\r\n no puede estar vacío."
         WarningPopup(mensaje).open()
Esempio n. 12
0
 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'
Esempio n. 13
0
 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)
Esempio n. 14
0
 def check_fecha(self):
     """ Verifica que la fecha sea correcta y menor o igual a la actual. """
     year = int(self.ids.year.text)
     mes = self.ids.mes.values.index(self.ids.mes.text) + 1
     dia = int(self.ids.dia.text)
     cant = int(self.ids.cantidad.text)
     delegacion = self.ids.delegacion.text
     recibo = self.ids.recibo.text
     cat = (
         self.categorias[self.ids.categorias.text],
         self.ids.categorias.text
     )
     try:
         date = datetime(year, mes, dia)
         if date >= datetime.now():
             self.print_ticket_grupal(cant, delegacion, cat, date, recibo)
         else:
             mensaje = u"Fecha Inválida"
             WarningPopup(mensaje).open()
     except ValueError:
         mensaje = u"Fecha Inválida"
         WarningPopup(mensaje).open()
Esempio n. 15
0
 def validar_anulacion(self):
     """Verifica que el numero ingresado corresponda a un ticket valido
     para el usuario y que sea antes de la hora máxima permitida."""
     if self.ids.id_ticket.text:
         if not self.ids.id_ticket.text.isdigit():
             self.ids.id_ticket.text = ""
             self.ids.id_ticket.focus = True
             mensaje = "\rEl código del ticket\r\n solo tiene números."
             WarningPopup(mensaje).open()
         else:
             fecha = controlador.has_ticket_grupal(self.ids.id_ticket.text)
             if fecha:
                 return fecha.strftime('%d/%m/%Y')  # anular
             else:
                 self.ids.id_ticket.text = ""
                 self.ids.id_ticket.focus = True
                 mensaje = "El código del ticket\r\n no es valido."
                 WarningPopup(mensaje).open()
     else:
         self.ids.id_ticket.text = ""
         self.ids.id_ticket.focus = True
         mensaje = "\rEl código del ticket\r\n no puede estar vacío."
         WarningPopup(mensaje).open()
Esempio n. 16
0
 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()
Esempio n. 17
0
 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()
Esempio n. 18
0
 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()
Esempio n. 19
0
 def validar(self):
     """Valida las entradas de texto y manda a registrar al usuario
     si todo esta bien."""
     if self.ids.dni.text:
         if not self.ids.dni.text.isdigit():
             mensaje = u"Su DNI solo puede contenter números"
             self.ids.dni.text = ""
             self.ids.dni.focus = True
             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.text = ""
             self.ids.dni.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.nombre.text:
             mensaje = u"Su NOMBRE no puede estar vacío"
             self.ids.nombre.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.nombre.text) >= 45:
             msje = u"\rSu NOMBRE no puede tener\r\n más de 45 caracteres."
             self.ids.nombre.text = ""
             self.ids.nombre.focus = True
             WarningPopup(msje).open()
         elif not self.ids.lu.text:
             mensaje = u"Su LU no puede estar vacía"
             self.ids.lu.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.lu.text.isdigit():
             mensaje = u"Su LU solo puede contenter números"
             self.ids.lu.text = ""
             self.ids.lu.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.lu.text) >= 8:
             mensaje = u"\rSu LU no puede tener\r\n más de 8 caracteres."
             self.ids.lu.text = ""
             self.ids.lu.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.mail.text:
             mensaje = u"Su EMAIL no puede estar vacío"
             self.ids.mail.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.mail.text) >= 64:
             msje = u"\rSu EMAIL no puede tener\r\n más de 64 caracteres."
             self.ids.mail.text = ""
             self.ids.mail.focus = True
             WarningPopup(msje).open()
         elif not mailvalidator(self.ids.mail.text):
             mensaje = u"\rSu EMAIL está mal formado.\r\n Recuerde que este"
             mensaje += u" mail se usará\r\n para confirmar su registro."
             self.ids.mail.text = ""
             self.ids.mail.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.facultad.text:
             mensaje = u"Debe especificar una FACULTAD"
             WarningPopup(mensaje).open()
         elif not self.ids.provincia.text:
             mensaje = u"Debe especificar una PROVINCIA"
             WarningPopup(mensaje).open()
         else:
             if utils.internet_on():
                 chequeo = chequear_alumno(
                     self.ids.lu.text, self.ids.dni.text
                 )
                 if chequeo == 1:
                     self.registrar_usuario()
                     self.clear()
                     self.manager.current = 'splash'
                 elif chequeo == 2:
                     self.registrar_usuario(0)
                     self.clear()
                     self.manager.current = 'splash'
                 else:
                     mensaje = u"Su DNI o LU es incorrecto"
                     WarningPopup(mensaje).open()
             else:
                 msje = u"\rInternet no disponible\r\n Intente más tarde."
                 WarningPopup(msje).open()
     else:
         mensaje = u"Su DNI no puede estar vacío"
         self.ids.dni.focus = True
         WarningPopup(mensaje).open()
Esempio n. 20
0
 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()