def lastName(self): try: if len(self.name) == 4: return self.name[2] else: return self.name[1] except IndexError as e: logFile(str(e)+" in "+os.path.basename(__file__)) return self.name
def __init__(self, data): try: if len(data) == 8 or len(data) == 9: self.photo = data[4] else: self.photo = data[10] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) self.photo = ""
def __init__(self, data): try: if data[5] != "1": self.thing = data[2].split() else: self.thing = "" except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) self.thing = ""
def __init__(self, data): try: if data in Error(data).errorList: self.company = data elif len(data) == 8 or len(data) == 9: self.company = data[7] else: self.company = data[13] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) self.company = ""
def location(self): try: if len(self.photo) <= 1: return "Texture/Photos/00000-0-0.png" elif not self.photo.endswith(".png"): return "Texture/Photos/00000-0-0.png" else: return "Texture/Photos/{0}".format(self.photo) except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "Texture/Photos/00000-0-0.png"
def location(self): try: if self.company == "Pinnacle Aerospace": return "Texture/Logos/PA.png" elif self.company == "Sonora Offshore": return "Texture/Logos/OTSA.png" else: return "Texture/Logos/OTSA.png" except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "Texture/Logos/OTSA.png"
def chooseBackground(self): try: self.ib = self.thing[0:2][0] if self.ib == "Guiso1": return "Texture/Interactive_background_1.png" elif self.ib == "Guiso2": return "Texture/Interactive_background_2.png" elif self.ib == "Guiso3": return "Texture/Interactive_background_3.png" else: return "Texture/Interactive_background_4.png" except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "Texture/Interactive_background_4.png"
def dishType(self): try: if self.dish in Error(self.dish).errorList: return "Status: Error {0}".format(hex(int(self.dish))) elif self.dish == 8: return "Status: VIP" elif self.dish == 9: return "Status: No food" elif self.dish == 1: return "Status: Served" else: dishName = "" for spliting in self.dish[0:1]: dishName += "{0} ".format(spliting) return dishName except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "Status: Fatal error"
def dishName(self): try: if self.dish in Error(self.dish).errorList: return "{0}".format(Error(int(self.dish)).errorDatabase()) elif self.dish == 8: return "Select the dish" elif self.dish == 9: return "No order" elif self.dish == 1: return "You already served" else: dishName = '' for spliting in self.dish[1:]: dishName += '{0} '.format(spliting) return dishName[1:-2] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "Fatal error"
def __init__(self, data): try: if len(data) == 8: # Verify if is vip self.dish = 8 elif len(data) == 9: # Verify if no order self.dish = 9 elif data in Error(data).errorList: # Verify if is error self.dish = data elif data[5] == "1": # Verify if is served self.dish = 1 else: self.dish = data[2].split() # Verify if is normal employee except TypeError as e: logFile(str(e)+" in "+os.path.basename(__file__)) if data in Error(data).errorList: self.dish = data elif data[5] == "1": self.dish = 1 else: self.dish = data[2].split()
def updateStatus(row): try: db = ViewMySQLdb().connDB() except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) if e[0] == 1049: return "110000" elif e[0] == 1045: return "110010" else: return "110020" try: cur = db.cursor() served = cur.execute("UPDATE Current_menu SET served='1' WHERE menu_id=%s;", (row[0], )) cur.execute("UPDATE Current_menu SET date=NOW() WHERE menu_id=%s;", (row[0], )) db.commit() db.close() return served except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "150000"
def viewStatus(badge): try: currentDay = str(datetime.now()).split()[0] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "100000" try: db = ViewMySQLdb().connDB() except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) if e[0] == 1049: return "110000" elif e[0] == 1045: return "110010" else: return "110020" try: cur = db.cursor() cur.execute("SELECT * FROM Current_menu JOIN Employees, Company WHERE Current_menu.employee_id=Employees.employee_id AND Current_menu.company_id=Company.company_id") for row in cur.fetchall(): if row[8] == badge: if str(row[4]).split()[0] == currentDay: db.close() return row[5] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "120000"
def update_data(self, sec): if GPIO.input(17): badgeData = throwInData() self.badge = catchResult(badgeData) self.employee.text = OnScreen(self.badge).joinAll()[2] self.dish.text = OnScreen(self.badge).joinAll()[1] self.dishid.text = OnScreen(self.badge).joinAll()[0] self.photo.source = OnScreen(self.badge).joinAll()[5] self.company.source = OnScreen(self.badge).joinAll()[3] self.ib.source = OnScreen(self.badge).joinAll()[4] self.status = viewStatus(badgeData) elif GPIO.input(27): try: if self.status == "0": updateStatus(self.badge) self.dishid.text = "Status: Served" except Exception as e: logFile(str(e) + " in " + os.path.basename(__file__)) pass elif GPIO.input(22): convertXLSX() sys.exit()
def catchResult(badge): vipList = ["5300C84782"] try: currentDay = str(datetime.now()).split()[0] except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "100000" try: db = ViewMySQLdb().connDB() except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) if e[0] == 1049: return "110000" elif e[0] == 1045: return "110010" else: return "110020" try: cur = db.cursor() cur.execute("SELECT * FROM Current_menu JOIN Employees, Company WHERE Current_menu.employee_id=Employees.employee_id AND Current_menu.company_id=Company.company_id") except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "120000" try: for row in cur.fetchall(): if row[8] == badge: if str(row[4]).split()[0] == currentDay: db.close() return row elif badge in vipList: cur.execute("SELECT * FROM Employees JOIN Company WHERE Employees.company_id=Company.company_id AND badge=%s;", (badge, )) for vip in cur.fetchall(): return vip if badge not in vipList: cur.execute("SELECT * FROM Employees JOIN Company WHERE Employees.company_id=Company.company_id AND badge=%s;", (badge, )) for noVip in cur.fetchall(): y = [] for x in noVip: y.append(x) y.append("0x0") return y db.close() if badge == "DEFCONMODE": return "130000" return "130010" except Exception as e: logFile(str(e)+" in "+os.path.basename(__file__)) return "140000"
def convertXLSX(): import os import shutil from xlsxwriter import Workbook from datetime import datetime from ViewMySQLdb import ViewMySQLdb from createLog import logFile realPath = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) tmpPath = "/Resources/Temp/" nowIs = str(datetime.now()).split()[0] try: db = ViewMySQLdb().connDB() cur = db.cursor() cur.execute( "SELECT * FROM Current_menu JOIN Employees, Company WHERE Current_menu.employee_id=Employees.employee_id AND Current_menu.company_id=Company.company_id AND SUBSTR(Current_menu.date,1,10)=%s", (nowIs, )) rawData = cur.fetchall() if rawData: workbook = Workbook(realPath + tmpPath + "Current_menu.xlsx") worksheet = workbook.add_worksheet(nowIs) worksheet.set_column('A:E', 40) cellFormat = workbook.add_format({ 'valign': 'center', 'fg_color': '#D7E4BC', 'border': 1 }) data = [] for row in rawData: arrangedData = [row[7]] + [row[13]] + [row[2]] + [str(row[4]) ] + [row[5]] data.append(arrangedData) worksheet.add_table( 'A1:E1000', { 'data': data, 'columns': [ { 'header': 'Name', 'format': cellFormat }, { 'header': 'Company', 'format': cellFormat }, { 'header': 'Dish', 'format': cellFormat }, { 'header': 'Date', 'format': cellFormat }, { 'header': 'Status', 'format': cellFormat }, ] }) workbook.close() db.close() shutil.copy( realPath + tmpPath + "Current_menu.xlsx", realPath + tmpPath + "Service Control/Current_menu.xlsx") os.rename( realPath + tmpPath + "Service Control/Current_menu.xlsx", realPath + tmpPath + "Service Control/{0}.xlsx".format(nowIs)) else: return "Error to read information from database!" except Exception as e: logFile(str(e) + " in " + os.path.basename(__file__)) return "Fatal Error"