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 cancel(self): """Vuelve a una pantalla anterior""" self.stop.set() self.cola_stop.put(True) if self.total_parcial: total = self.total_parcial log = controlador.insert_log(self.user, 'cargar', UNIDAD, str(self.total_parcial)) controlador.update_saldo(self.user, self.total_parcial, 0) self.update_datos() if impresora.check_status() == 1: log = str(log) nom = self.data['nombre'].decode('utf8') dni = self.data['dni'].decode('utf8') cat = self.data['categoria'].decode('utf8') fac = self.data['facultad'].decode('utf8') fecha = str(int(time())) pco = total code = fecha + '0' * (10 - len(log)) + log msj = u"Gracias por usar el Comedor Universitario" sdo = self.user['saldo'] print_thread = Thread(target=impresora.imprimir_ticket_carga, args=(nom, dni, fac, cat, code, UNIDAD, log, msj, pco, sdo)) print_thread.start() id_log = controlador.insert_log(self.user, 'cancelar', UNIDAD) controlador.cancelar_tickets(self.reserva) self.manager.current = 'compra_1' self.update_ingreso("", True) self.manager.remove_widget(self.manager.get_screen('compra_2'))
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""" self.stop.set() self.cola_stop.put(True) if self.total_parcial: total = self.total_parcial log = controlador.insert_log( self.user, 'cargar', UNIDAD, str(self.total_parcial) ) controlador.update_saldo(self.user, self.total_parcial, 0) self.update_datos() if impresora.check_status() == 1: log = str(log) nom = self.data['nombre'].decode('utf8') dni = self.data['dni'].decode('utf8') cat = self.data['categoria'].decode('utf8') fac = self.data['facultad'].decode('utf8') fecha = str(int(time())) pco = total code = fecha + '0' * (10 - len(log)) + log msj = u"Gracias por usar el Comedor Universitario" sdo = self.user['saldo'] print_thread = Thread( target=impresora.imprimir_ticket_carga, args=(nom, dni, fac, cat, code, UNIDAD, log, msj, pco, sdo) ) print_thread.start() id_log = controlador.insert_log(self.user, 'cancelar', UNIDAD) controlador.cancelar_tickets(self.reserva) self.manager.current = 'compra_1' self.update_ingreso("", True) self.manager.remove_widget(self.manager.get_screen('compra_2'))
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 try_papel(self): """Verifica el estado del papel en la maquina.""" self.ids.papel.text = "probando..." sleep(0.5) estado = impresora.check_status() if estado == 1: self.ids.papel.text = u"\rImpresora Conectada\r\nPapel Ok" controlador.update_estado_maquina(UNIDAD, 1) elif estado == 2: self.ids.papel.text = u"\rImpresora Conectada\r\nSin Papel" controlador.update_estado_maquina(UNIDAD, 4) else: self.ids.papel.text = u"\rImpresora No Conectada" controlador.update_estado_maquina(UNIDAD, 2)
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()