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()
def comprar(self): """ Crea y accede a la pantalla de compra de tickets siempre y cuando haya papel en la impresora. """ estado = impresora.check_status() if estado == 1: controlador.update_estado_maquina(UNIDAD, 1) controlador.update_papel_disponible(UNIDAD, 2, 80) if not self.manager.has_screen('compra_1'): self.manager.add_widget(Compra1Screen(name='compra_1')) self.manager.current = 'compra_1' elif estado == 2: user = user_session.get_user() limite = controlador.get_categoria_limite(user['id_categoria']) controlador.update_estado_maquina(UNIDAD, 4) if controlador.get_papel_disponible(UNIDAD) >= limite: if not self.manager.has_screen('compra_1'): self.manager.add_widget(Compra1Screen(name='compra_1')) self.manager.current = 'compra_1' else: controlador.update_estado_maquina(UNIDAD, 2) mensaje = u"\rLa maquina no tiene papel." WarningPopup(mensaje).open() else: controlador.update_estado_maquina(UNIDAD, 5) mensaje = u"\rLa impresora está desconectada." WarningPopup(mensaje).open()
def 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()
def imprimir(self): """imprime un ticket de control""" print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 1)): user = user_session.get_user() controlador.insert_log(user, 'imprimir', UNIDAD, 'Ticket de prueba') fecha = "dd/mm/aaaa" code = str(int(time())) + "0000000000" nom = user['nombre'] dni = user['dni'] cat = u"control" fac = u"Secretaría de Bienestar" msj = u"Ticket NO VALIDO" sdo = 0 ticket = "XXX" print_thread = Thread(target=impresora.imprimir_ticket_alumno, args=(nom, dni, fac, cat, code, UNIDAD, ticket, fecha, msj, sdo)) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 1) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def 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()
def print_ticket_cierre(self, unidad, date): """ Imprime el ticket de cierre de la unidad y del día(date) dado """ total, bills = controlador.get_total(unidad, date) user = user_session.get_user() desc = 'Control - Cierre de la maquina %d del dia %s' % ( unidad, date.strftime('%d/%m/%Y')) id_log = controlador.insert_log(user, 'retiro', unidad, desc) id_ticket = controlador.get_id_ticket_cierre(unidad, date) if not id_ticket: id_ticket = controlador.insert_ticket_cierre(id_log, total, unidad) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(unidad, date) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2)): print_thread = Thread(target=impresora.imprimir_ticket_cierre, args=(user['nombre'], id_ticket, unidad, hora, bills, total, ticket['barcode'], date.strftime('%d/%m/%Y'))) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def 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'))
def imprimir(self): """imprime un ticket de control""" print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 1) ): user = user_session.get_user() controlador.insert_log( user, 'imprimir', UNIDAD, 'Ticket de prueba' ) fecha = "dd/mm/aaaa" code = str(int(time())) + "0000000000" nom = user['nombre'] dni = user['dni'] cat = u"control" fac = u"Secretaría de Bienestar" msj = u"Ticket NO VALIDO" sdo = 0 ticket = "XXX" print_thread = Thread( target=impresora.imprimir_ticket_alumno, args=( nom, dni, fac, cat, code, UNIDAD, ticket, fecha, msj, sdo ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 1) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def 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'))
def print_ticket_cierre(self, unidad, date): """ Imprime el ticket de cierre de la unidad y del día(date) dado """ total, bills = controlador.get_total(unidad, date) user = user_session.get_user() desc = 'Control - Cierre de la maquina %d del dia %s' % ( unidad, date.strftime('%d/%m/%Y') ) id_log = controlador.insert_log(user, 'retiro', unidad, desc) id_ticket = controlador.get_id_ticket_cierre(unidad, date) if not id_ticket: id_ticket = controlador.insert_ticket_cierre( id_log, total, unidad ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(unidad, date) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, unidad, hora, bills, total, ticket['barcode'], date.strftime('%d/%m/%Y') ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open()
def retirar(self): """ Controla que se pueda hacer un ticket de cierre para poder retirar el dinero. """ user = user_session.get_user() retiro = controlador.get_log(UNIDAD, 'retiro') hora = controlador.get_hora_inicio(UNIDAD) if not retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - 1er Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'] ) ) print_thread.start() elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay registros para hoy" WarningPopup(mensaje).open() elif retiro and hora: total, bills = controlador.get_total(UNIDAD) if total: desc = 'Control - Cierre' id_log = controlador.insert_log(user, 'retiro', UNIDAD, desc) total, bills = controlador.get_total(UNIDAD) id_ticket = controlador.get_id_ticket_cierre(UNIDAD) if not id_ticket: id_ticket = controlador.insert_ticket_cierre( id_log, total, UNIDAD ) ticket = controlador.get_ticket_cierre(id_ticket) hora = controlador.get_hora_inicio(UNIDAD) print_status = impresora.check_status() papel_disponible = controlador.get_papel_disponible(UNIDAD) if ((print_status == 1) or (print_status == 2 and papel_disponible >= 2) ): print_thread = Thread( target=impresora.imprimir_ticket_cierre, args=( user['nombre'], id_ticket, UNIDAD, hora, bills, total, ticket['barcode'] ) ) print_thread.start() controlador.update_papel_disponible(UNIDAD, 0, 2) elif print_status == 2: mensaje = u"No hay papel" WarningPopup(mensaje).open() else: mensaje = u"Impresora desconectada" WarningPopup(mensaje).open() else: mensaje = u"No hay rergistros para hoy" WarningPopup(mensaje).open() else: msje = u"\rNo puede hacer cierre\r\n sin iniciar antes el sistema." WarningPopup(msje).open()
def 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()