Exemple #1
0
 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']
Exemple #2
0
 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']
Exemple #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()
Exemple #4
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)
Exemple #5
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()
Exemple #6
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)
Exemple #7
0
 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()
Exemple #8
0
 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")
Exemple #9
0
 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")
Exemple #10
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()
Exemple #11
0
 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']
Exemple #12
0
 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']
Exemple #13
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()
Exemple #14
0
 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"]
Exemple #15
0
 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']
Exemple #16
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"
Exemple #17
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'
Exemple #18
0
 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
Exemple #19
0
 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
Exemple #20
0
 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']
Exemple #21
0
 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']
Exemple #22
0
 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'
Exemple #23
0
 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'
Exemple #24
0
 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']
Exemple #25
0
 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']
Exemple #26
0
 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()
Exemple #27
0
 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'
Exemple #28
0
 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()
Exemple #29
0
 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'
Exemple #30
0
 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()
Exemple #31
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()
Exemple #32
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()
Exemple #33
0
 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()
Exemple #34
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()
Exemple #35
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()
Exemple #36
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()
Exemple #37
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)
Exemple #38
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)
Exemple #39
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()
Exemple #40
0
 def __init__(self, **kwargs):
     """Pantalla para anular los tickets del usuario"""
     self.data = {}
     self.user = user_session.get_user()
     super(AnularGrupalScreen, self).__init__(**kwargs)
Exemple #41
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()
Exemple #42
0
 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)
Exemple #43
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()
Exemple #44
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()