예제 #1
0
파일: menu.py 프로젝트: gitter-badger/stone
 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:
         controlador.update_estado_maquina(UNIDAD, 4)
         if controlador.get_papel_disponible(UNIDAD) >= 5:
             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()
예제 #2
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()
예제 #3
0
파일: compra.py 프로젝트: mattgaviota/stone
 def imprimir_todos(self):
     """
     Imprime todos los tickets que se hayan comprado.
     """
     id_log = controlador.insert_log(self.user, 'imprimir', UNIDAD)
     ticket_list = []
     for ticket, id_dia in self.reserva:
         row = None
         ticket_data = {}
         row = controlador.get_ticket_by_id(ticket)
         if row:
             id_ticket = row['id']
             ticket_data['fecha'] = row['fecha'].strftime('%d/%m/%Y')
             ticket_data['code'] = row['barcode']
             ticket_data['nombre'] = self.data['nombre'].decode('utf8')
             ticket_data['dni'] = self.data['dni'].decode('utf8')
             categoria = self.data['categoria'].decode('utf8')
             ticket_data['categoria'] = categoria
             ticket_data['facultad'] = self.data['facultad'].decode('utf8')
             ticket_data['unidad'] = UNIDAD
             mensaje = u"Gracias por usar el Comedor Universitario"
             ticket_data['mensaje'] = mensaje
             ticket_data['ticket'] = str(id_ticket)
             ticket_data['saldo'] = self.user['saldo']
             controlador.insert_ticket_log(id_ticket, id_log)
             ticket_list.append(ticket_data)
     controlador.update_papel_disponible(UNIDAD, 0, len(ticket_list))
     print_thread = Thread(target=impresora.imprimir_tickets_alumno,
                           args=ticket_list)
     print_thread.start()
예제 #4
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()
예제 #5
0
 def imprimir_todos(self):
     """
     Imprime todos los tickets que se hayan comprado.
     """
     id_log = controlador.insert_log(self.user, 'imprimir', UNIDAD)
     ticket_list = []
     for ticket, id_dia in self.reserva:
         row = None
         ticket_data = {}
         row = controlador.get_ticket_by_id(ticket)
         if row:
             id_ticket = row['id']
             ticket_data['fecha'] = row['fecha'].strftime('%d/%m/%Y')
             ticket_data['code'] = row['barcode']
             ticket_data['nombre'] = self.data['nombre'].decode('utf8')
             ticket_data['dni'] = self.data['dni'].decode('utf8')
             categoria = self.data['categoria'].decode('utf8')
             ticket_data['categoria'] = categoria
             ticket_data['facultad'] = self.data['facultad'].decode('utf8')
             ticket_data['unidad'] = UNIDAD
             mensaje = u"Gracias por usar el Comedor Universitario"
             ticket_data['mensaje'] = mensaje
             ticket_data['ticket'] = str(id_ticket)
             ticket_data['saldo'] = self.user['saldo']
             controlador.insert_ticket_log(id_ticket, id_log)
             ticket_list.append(ticket_data)
     controlador.update_papel_disponible(UNIDAD, 0, len(ticket_list))
     print_thread = Thread(
         target=impresora.imprimir_tickets_alumno,
         args=ticket_list
     )
     print_thread.start()
예제 #6
0
파일: cierre.py 프로젝트: mattgaviota/stone
 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()
예제 #7
0
파일: carga.py 프로젝트: mattgaviota/stone
 def cancel(self):
     """Vuelve a una pantalla anterior"""
     if self.total:
         print_status = impresora.check_status()
         papel_disponible = controlador.get_papel_disponible(UNIDAD)
         if ((print_status == 1)
                 or (print_status == 2 and papel_disponible >= 1)):
             log = controlador.insert_log(self.user, 'cargar', UNIDAD,
                                          str(self.total))
             log = str(log)
             nombre = self.data['nombre'].decode('utf8')
             dni = self.data['dni'].decode('utf8')
             categoria = self.data['categoria'].decode('utf8')
             facultad = self.data['facultad'].decode('utf8')
             fecha = str(int(time()))
             total = self.total
             code = fecha + '0' * (10 - len(log)) + log
             mensaje = u"Gracias por usar el Comedor Universitario"
             saldo = self.user['saldo']
             print_thread = Thread(target=impresora.imprimir_ticket_carga,
                                   args=(nombre, dni, facultad, categoria,
                                         code, UNIDAD, log, mensaje, total,
                                         saldo))
             print_thread.start()
             controlador.update_papel_disponible(UNIDAD, 0, 1)
     self.stop.set()
     self.cola_stop.put(True)
     self.manager.current = 'menu'
     self.manager.remove_widget(self.manager.get_screen('carga'))
예제 #8
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()
예제 #9
0
 def cancel(self):
     """Vuelve a una pantalla anterior"""
     if self.total:
         print_status = impresora.check_status()
         papel_disponible = controlador.get_papel_disponible(UNIDAD)
         if ((print_status == 1) or
                 (print_status == 2 and papel_disponible >= 1)
             ):
             log = controlador.insert_log(
                 self.user,
                 'cargar',
                 UNIDAD,
                 str(self.total)
             )
             log = str(log)
             nombre = self.data['nombre'].decode('utf8')
             dni = self.data['dni'].decode('utf8')
             categoria = self.data['categoria'].decode('utf8')
             facultad = self.data['facultad'].decode('utf8')
             fecha = str(int(time()))
             total = self.total
             code = fecha + '0' * (10 - len(log)) + log
             mensaje = u"Gracias por usar el Comedor Universitario"
             saldo = self.user['saldo']
             print_thread = Thread(
                 target=impresora.imprimir_ticket_carga,
                 args=(
                     nombre,
                     dni,
                     facultad,
                     categoria,
                     code,
                     UNIDAD,
                     log,
                     mensaje,
                     total,
                     saldo
                 )
             )
             print_thread.start()
             controlador.update_papel_disponible(UNIDAD, 0, 1)
     self.stop.set()
     self.cola_stop.put(True)
     self.manager.current = 'menu'
     self.manager.remove_widget(self.manager.get_screen('carga'))
예제 #10
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()
예제 #11
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()
예제 #12
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()