diff --git a/FinalJawaraMain.py b/FinalJawaraMain.py new file mode 100644 index 0000000..6d8dd6d --- /dev/null +++ b/FinalJawaraMain.py @@ -0,0 +1,492 @@ +import tkinter as tk +from tkinter import ttk +from PIL import ImageTk, Image +import jawaraSQL +from designSpecTest import * +#import timetable + +class Main: + def __init__(self): + self.master = tk.Tk() + self.master.wm_title("Jawara") + self.master.geometry("1000x500") + self.mainContainer = tk.Frame(self.master, bg = "#c3c3c3") + self.mainContainer.grid(row = 0, column = 1) + self.sidePanelFrame = tk.Frame(self.master, bg = "#c3c3c3") + self.sidePanelFrame.grid(row = 0, column = 0) + self.frames = {} + self.CreateLoginScreen() + self.CreatePlantOperatorSidePanel() + self.CreatePlantManagerSidePanel() + self.CreateProductEngineerSidePanel() + self.CreateAccessoriesProductionOperativeSidePanel() + self.CreateAccessoriesProductionManagerSidePanel() + self.CreateMachineStatusScreen() + self.CreateScheduleScreen() + self.CreateJobPreparationScreen() + self.CreateOperatorTimetableScreen() + self.CreateGenerateReportScreen() + self.CreateProductLineInfoScreen() + self.CreateDesignSpecScreen() + self.CreateManufacturingInstructionsScreen() + self.CreateMaterialInfoScreen() + self.CreateCompanyMeetingScreen() + self.CreateLogOutScreen() + self.CreateCompanyEventsScreen() + self.RaiseLogin() + + def CreatePlantOperatorSidePanel(self): + self.sideFrame = tk.Frame(self.sidePanelFrame) + self.sideFrame.config(bg = "#c3c3c3") + self.SidePanelButton("Dashboard", self.RaiseDashboard, 0) + self.SidePanelButton("Machine Status", self.RaiseMachineStatus, 1) + self.SidePanelButton("Schedule", self.RaiseSchedule, 2) + self.SidePanelButton("Company Meeting", self.RaiseCompanyMeeting, 3) + self.SidePanelButton("Company Events", self.RaiseCompanyEvents, 4) + self.SidePanelButton("Log out", self.RaiseLogOut, 5) + self.frames["POSide"] = self.sideFrame + + def CreatePlantManagerSidePanel(self): + self.sideFrame = tk.Frame(self.sidePanelFrame) + self.sideFrame.config(bg = "#c3c3c3") + self.SidePanelButton("Dashboard", self.RaiseDashboard, 0) + self.SidePanelButton("Machine Status", self.RaiseMachineStatus, 1) + self.SidePanelButton("Operator Timetable", self.RaiseOperatorTimetable, 2) + self.SidePanelButton("Company Meeting", self.RaiseCompanyMeeting, 3) + self.SidePanelButton("Company Events", self.RaiseCompanyEvents, 4) + self.SidePanelButton("Log out", self.RaiseLogOut, 5) + self.frames["PMSide"] = self.sideFrame + + def CreateProductEngineerSidePanel(self): + self.sideFrame = tk.Frame(self.sidePanelFrame) + self.sideFrame.config(bg = "#c3c3c3") + self.SidePanelButton("Dashboard", self.RaiseDashboard, 0) + self.SidePanelButton("Product Line Info", self.RaiseProductLineInfo, 1) + self.SidePanelButton("Design Spec", self.RaiseDesignSpec, 2) + self.SidePanelButton("Manufacturing Info", self.RaiseManufacturingInstructions, 3) + self.SidePanelButton("Generate Report", self.RaiseGenerateReport, 4) + self.SidePanelButton("Company Meeting", self.RaiseCompanyMeeting, 5) + self.SidePanelButton("Company Events", self.RaiseCompanyEvents, 6) + self.SidePanelButton("Log out", self.RaiseLogOut, 7) + self.frames["PESide"] = self.sideFrame + + def CreateAccessoriesProductionOperativeSidePanel(self): + self.sideFrame = tk.Frame(self.sidePanelFrame) + self.sideFrame.config(bg = "#c3c3c3") + self.SidePanelButton("Dashboard", self.RaiseDashboard, 0) + self.SidePanelButton("Design Spec", self.RaiseDesignSpec, 1) + self.SidePanelButton("Material Info", self.RaiseMaterialInfo, 2) + self.SidePanelButton("Company Meeting", self.RaiseCompanyMeeting, 3) + self.SidePanelButton("Company Events", self.RaiseCompanyEvents, 4) + self.SidePanelButton("Log out", self.RaiseLogOut, 5) + self.frames["APOSide"] = self.sideFrame + + def CreateAccessoriesProductionManagerSidePanel(self): + self.sideFrame = tk.Frame(self.sidePanelFrame) + self.sideFrame.config(bg = "#c3c3c3") + self.SidePanelButton("Dashboard", self.RaiseDashboard, 0) + self.SidePanelButton("Manufacturing Info", self.RaiseManufacturingInstructions, 1) + self.SidePanelButton("Machine Status", self.RaiseMachineStatus, 2) + self.SidePanelButton("Schedule", self.RaiseSchedule, 3) + self.SidePanelButton("Operator Timetable", self.RaiseOperatorTimetable, 4) + self.SidePanelButton("Material Info", self.RaiseMaterialInfo, 5) + self.SidePanelButton("Generate Report", self.RaiseGenerateReport, 6) + self.SidePanelButton("Company Meeting", self.RaiseCompanyMeeting, 7) + self.SidePanelButton("Company Events", self.RaiseCompanyEvents, 8) + self.SidePanelButton("Log out", self.RaiseLogOut, 9) + self.frames["APMSide"] = self.sideFrame + + def CreateDashboardScreen(self, jobTitleMsg, jobImg): + self.DashboardFrame = tk.Frame(self.mainContainer) + self.DashboardFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.DashboardFrame, text = "Dashboard", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, padx = 100, pady = 15) + personalisedMessage = tk.Label(self.DashboardFrame, text = jobTitleMsg, bg = "#AAC9DD") + personalisedMessage.grid(row = 2, column = 0, padx = 100, pady = 15) + self.AddImage(self.DashboardFrame, jobImg, 3, 0) + box = tk.Label(self.DashboardFrame, text = "", bg = "#AAC9DD") + box.grid(row = 4, column = 0, padx = 100, pady = 15) + self.frames["Dashboard"] = self.DashboardFrame + + def CreateMachineStatusScreen(self): + self.MachineStatusFrame = tk.Frame(self.mainContainer) + tabControl = ttk.Notebook(self.MachineStatusFrame) + tab1 = ttk.Frame(tabControl) + tabControl.add(tab1, text ='Machine Status') + tabControl.pack(expand = 1, fill ="both") + tk.Label(tab1,text ="Welcome to Machine Status Control").grid(column = 0, row = 0, padx = 30, pady = 30) + v = tk.IntVar() + v.set(1) + languages = [("Working", 101), ("Not Working", 102), ("Needs Supervision", 103)] + def ShowChoice(): + print(v.get()) + tk.Label(self.MachineStatusFrame, + text="""Choose the machine Status:""", + justify = tk.LEFT, + padx = 20).pack() + for language, val in languages: + tk.Radiobutton(self.MachineStatusFrame, text=language, indicatoron = 0, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=tk.W) + self.frames["MachineStatus"] = self.MachineStatusFrame + + def CreateScheduleScreen(self): + self.ScheduleFrame = tk.Frame(self.mainContainer) + self.ScheduleFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.ScheduleFrame, text = "Production Schedule", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, columnspan = 7, padx = 100, pady = 30) + self.GridMaker(self.ScheduleFrame, ["","Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], 2, 0) + self.GridMaker(self.ScheduleFrame, ["08:00 - 10:00","Task", "Task", "Task", "Task", "Task"], 3, 0) + self.GridMaker(self.ScheduleFrame, ["10:00 - 12:00","Task", "Task", "Task", "Task", "Task"], 4, 0) + self.GridMaker(self.ScheduleFrame, ["12:00 - 14:00","Task", "Task", "Task", "Task", "Task"], 5, 0) + self.GridMaker(self.ScheduleFrame, ["14:00 - 16:00", "Task", "Task", "Task", "Task", "Task"], 6, 0) + self.GridMaker(self.ScheduleFrame, ["16:00 - 18:00","Task", "Task", "Task", "Task", "Task"], 7, 0) + self.frames["Schedule"] = self.ScheduleFrame + + def CreateJobPreparationScreen(self): + self.JobPreparationFrame = tk.Frame(self.mainContainer) + self.JobPreparationFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.JobPreparationFrame, text = "Job Preparation", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, padx = 100, pady = 30) + self.frames["JobPreparation"] = self.JobPreparationFrame + + def CreateOperatorTimetableScreen(self): + self.OperatorTimetableFrame = tk.Frame(self.mainContainer) + self.OperatorTimetableFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.OperatorTimetableFrame, text = "Operator Timetable", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0,columnspan = 7, padx = 100, pady = 30) + #timetableButton = tk.Button(self.OperatorTimetableFrame, text = "Open Timetable", command = timetable.open_timetable_root(), height = 2, width = 15) + #timetableButton.grid(row = 2, column = 0, padx = 10, pady = 10) + self.frames["OperatorTimetable"] = self.OperatorTimetableFrame + + def CreateGenerateReportScreen(self): + self.GenerateReportFrame = tk.Frame(self.mainContainer) + self.GenerateReportFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.GenerateReportFrame, text = "Generate Report", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, padx = 100, pady = 30) + self.frames["GenerateReport"] = self.GenerateReportFrame + + def CreateProductLineInfoScreen(self): + self.ProductLineInfoFrame = tk.Frame(self.mainContainer) + self.ProductLineInfoFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.ProductLineInfoFrame, text = "Product Line Info", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, columnspan = 5, padx = 25, pady = 15) + newProductSubheading = tk.Label(self.ProductLineInfoFrame, text = "New Products:", bg = "#AAC9DD") + newProductSubheading.grid(row = 2, column = 0, padx = 25, pady = 5) + self.AddMultiImage(self.ProductLineInfoFrame, ["Product1.jfif", "Product2.jfif", "Product3.jfif", "Product4.jfif", "Product5.jfif"], 3) + self.ProductNum(self.ProductLineInfoFrame, 4, ["Product 1", "Product 2", "Product 3", "Product 4", "Product 5"]) + availableProductSubheading = tk.Label(self.ProductLineInfoFrame, text = "Available Products:", bg = "#AAC9DD") + availableProductSubheading.grid(row = 5, column = 0, padx = 25, pady = 5) + self.AddMultiImage(self.ProductLineInfoFrame, ["Product6.jfif", "Product7.jpg", "Product8.jfif", "Product9.png", "Product10.jfif"], 6) + self.ProductNum(self.ProductLineInfoFrame, 7, ["Product 1", "Product 2", "Product 3", "Product 4", "Product 5"]) + self.frames["ProductLineInfo"] = self.ProductLineInfoFrame + + def CreateDesignSpecScreen(self): + self.DesignSpecFrame = tk.Frame(self.mainContainer) + def nextpage(): + import designSpecTest + empty_label = tk.Label(self.DesignSpecFrame, text=" ") + jawara_label = tk.Label(self.DesignSpecFrame, text="Jawara", font="Verdana 24 bold", fg="Red") + title_label = tk.Label(self.DesignSpecFrame, text="Design Specifications", font=("Verdana 23 bold"), fg="Black") + button_roadster = tk.Button(self.DesignSpecFrame, text = "Roadster", height=4, width=20, command= open_roadster_page ) + button_SUV = tk.Button(self.DesignSpecFrame, text="Sport Utility Vehicle (SUV)",height=4, width=20, command= open_suv_page) + button_hatchback = tk.Button(self.DesignSpecFrame, text="Hatchback",height = 4, width=20, command= open_hatchback_page) + button_sedan = tk.Button(self.DesignSpecFrame, text="Sedan",height=4, width=20, command= open_sedan_page) + jawara_label.grid(row = 0, column = 0) + title_label.grid(row = 0, column = 2) + button_roadster.grid(row=2, column=0) + button_SUV.grid(row=3, column=0) + button_hatchback.grid(row=4, column=0) + button_sedan.grid(row=5, column=0) + + self.frames["DesignSpec"] = self.DesignSpecFrame + + def CreateManufacturingInstructionsScreen(self): + self.ManufacturingInstructionsFrame = tk.Frame(self.mainContainer) + self.ManufacturingInstructionsFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.ManufacturingInstructionsFrame, text = "Manufacturing Information", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, columnspan = 5, padx = 25, pady = 30) + TechnicalDrawingsSubheading = tk.Label(self.ManufacturingInstructionsFrame, text = "TechnicalDrawings:", bg = "#AAC9DD") + TechnicalDrawingsSubheading.grid(row = 2, column = 0, padx = 15, pady = 5) + self.AddMultiImage(self.ManufacturingInstructionsFrame, ["TechnicalD1.jfif", "TechnicalD2.jfif", "TechnicalD3.jfif", "TechnicalD4.jfif", "TechnicalD5.jfif"], 3) + self.ProductNum(self.ManufacturingInstructionsFrame, 4, ["Model 1", "Model 2", "Model 3", "Model 4", "Model 5"]) + ManufacturingInfoSubheading = tk.Label(self.ManufacturingInstructionsFrame, text = "Manufacturing Instructions:", bg = "#AAC9DD") + ManufacturingInfoSubheading.grid(row = 5, column = 0, padx = 15, pady = 5) + manufactInst = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum + dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Facilisis + gravida neque convallis a cras semper auctor neque vitae. A arcu cursus vitae congue mauris rhoncus aenean vel. Cursus sit amet dictum sit amet. Feugiat + scelerisque varius morbi enim nunc faucibus a pellentesque. Amet purus gravida quis blandit turpis. Diam maecenas ultricies mi eget mauris pharetra et + ultrices neque. Consequat nisl vel pretium lectus quam. Cras fermentum odio eu feugiat pretium nibh. Eu consequat ac felis donec et odio pellentesque. + Eget mi proin sed libero enim sed. Aenean euismod elementum nisi quis. + + A diam sollicitudin tempor id. Est pellentesque elit ullamcorper dignissim cras tincidunt. Sed felis eget velit aliquet sagittis id consectetur purus + ut. Penatibus et magnis dis parturient montes nascetur ridiculus mus. Elit ut aliquam purus sit amet luctus. Habitant morbi tristique senectus et netus + et malesuada. Vivamus arcu felis bibendum ut tristique et egestas quis. Sed vulputate mi sit amet mauris commodo quis imperdiet massa. Dictum sit amet + justo donec enim. Fermentum odio eu feugiat pretium nibh ipsum consequat nisl. Mauris a diam maecenas sed enim ut sem viverra. Nulla facilisi morbi + tempus iaculis urna id volutpat lacus laoreet. Nulla pharetra diam sit amet nisl suscipit adipiscing bibendum. Mattis molestie a iaculis at erat. Id + faucibus nisl tincidunt eget. Ac orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. Metus aliquam eleifend mi in nulla posuere. In + mollis nunc sed id semper risus in hendrerit. Molestie at elementum eu facilisis sed. Amet cursus sit amet dictum.""" + ManufacturingInstructions = tk.Label(self.ManufacturingInstructionsFrame, text = manufactInst, bg = "#AAC9DD") + ManufacturingInstructions.grid(row = 6, column = 0, columnspan = 5, padx = 15, pady = 5) + self.frames["ManufacturingInstructions"] = self.ManufacturingInstructionsFrame + + def CreateMaterialInfoScreen(self): + self.MaterialInfoFrame = tk.Frame(self.mainContainer) + self.MaterialInfoFrame.config(bg = "#AAC9DD") + mainTitle = tk.Label(self.MaterialInfoFrame, text = "Material Info", bg = "#AAC9DD") + mainTitle.grid(row = 1, column = 0, padx = 100, pady = 30) + self.frames["MaterialInfo"] = self.MaterialInfoFrame + + def CreateCompanyMeetingScreen(self): + self.CompanyMeetingFrame = tk.Frame(self.mainContainer) + temp_date = "12/12/2022" + date = temp_date + temp_time = "11AM" + time = temp_time + temp_location = "Floor 3, Room no. 8" + location = temp_location + meeting_img = self.AddSecondImage(self.CompanyMeetingFrame, "meeting.jpg", 2, 0) + jawara_label = tk.Label(self.CompanyMeetingFrame, text="Jawara", font="Verdana 24 bold", fg="Red") + meeting_label = tk.Label(self.CompanyMeetingFrame, text= "Company Meeting", font= "Verdana 20", fg="Black") + date_text = tk.Label(self.CompanyMeetingFrame, text= "Date:"+date, font="Verdana 10", bg="Light Blue") + time_text = tk.Label(self.CompanyMeetingFrame, text="Time:"+ time, font="Verdana 10", bg="Light Blue") + place_text= tk.Label(self.CompanyMeetingFrame, text="Location:"+location, font="Verdana 10", bg="Light Blue") + image_label = tk.Label(self.CompanyMeetingFrame, image=meeting_img) + jawara_label.grid(row=0, column=0) + meeting_label.grid(row=1, column=0) + image_label.grid(row=2, column=0) + date_text.grid(row=3, column=0) + time_text.grid(row=4, column=0) + place_text.grid(row=5, column=0) + self.frames["CompanyMeeting"] = self.CompanyMeetingFrame + + def CreateCompanyEventsScreen(self): + self.CompanyEventsFrame = tk.Frame(self.mainContainer) + lorem_ipsum ="""Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse maximus fringilla ipsum, et ornare lectus imperdiet sit amet. Etiam +feugiat quam ligula, at laoreet leo blandit vel. Nullam ornare tellus a tellus accumsan, id euismod erat aliquet. Pellentesque blandit justo a +rutrum scelerisque. In commodo euismod felis sed tempor. In hac habitasse platea dictumst. Maecenas ornare nec ipsum at lobortis. Sed +ac odio felis. Ut vitae magna quis augue lacinia suscipit vel quis ante. Quisque a sodales quam. Duis vulputate, metus imperdiet accumsan +venenatis, purus felis aliquam libero, ut rhoncus magna turpis a ipsum. Ut vestibulum, lacus sed molestie tristique, magna magna +accumsan felis, vel suscipit ipsum nunc nec nulla. Donec sed luctus lorem. Curabitur in turpis imperdiet, feugiat justo id, finibus tellus. +Quisque iaculis eu risus id fermentum.""" + jawara_label = tk.Label(self.CompanyEventsFrame, text="Jawara", font="Verdana 24 bold", fg="Red") + events_label = tk.Label(self.CompanyEventsFrame, text= "Latest Events", font= "Verdana 20", fg="Black") + placeholder_text = tk.Label(self.CompanyEventsFrame, text=lorem_ipsum, font="Verdana 10", bg="Light Blue") + date_label = tk.Label(self.CompanyEventsFrame, text="Today", font="Verdana 12") + jawara_label.grid(row=0, column=0) + events_label.grid(row=1, column=0) + date_label.grid(row=2, column=0) + placeholder_text.grid(row=3, column=0) + self.frames["CompanyEvents"] = self.CompanyEventsFrame + + + + def CreateLoginScreen(self): + self.LoginFrame = tk.Frame(self.mainContainer) + self.LoginFrame.config(bg = "#AAC9DD") + titleLabel = tk.Label(self.LoginFrame, text = "Login Screen", bg = "#AAC9DD") + titleLabel.grid(row = 0, padx = 100, pady = 30, columnspan = 2) + userLabel = tk.Label(self.LoginFrame, text = "Username", bg = "#AAC9DD") + userLabel.grid(row = 1, column = 0) + self.userEntry = tk.Entry(self.LoginFrame) + self.userEntry.grid(row = 1, column = 1) + passwordLabel = tk.Label(self.LoginFrame, text = "Password", bg = "#AAC9DD") + passwordLabel.grid(row = 2, column = 0) + self.passwordEntry = tk.Entry(self.LoginFrame) + self.passwordEntry.grid(row = 2, column = 1) + enterButton = tk.Button(self.LoginFrame, text ="Login", command = self.ValidateUser) + enterButton.grid(row = 3, column = 0) + self.infoLabel = tk.Label(self.LoginFrame, text = "", fg = "red", bg = "#AAC9DD") + self.infoLabel.grid(row = 4, column = 0) + self.frames["Login"] = self.LoginFrame + + def CreateLogOutScreen(self): + self.logOutFrame = tk.Frame(self.mainContainer) + self.logOutFrame.config(bg = "#AAC9DD") + logOutButton = tk.Button(self.logOutFrame, text = "logOut", command = self.LogOut) + logOutButton.grid(row = 0, column = 0, padx = 20, pady = 20) + self.frames["LogOut"] = self.logOutFrame + + def ValidateUser(self): + self.username = self.userEntry.get() + self.password = self.passwordEntry.get() + valid = jawaraSQL.CheckLogin(self.username, self.password) + self.userEntry.delete(0,"end") + self.passwordEntry.delete(0,"end") + if valid: + job = jawaraSQL.CheckJob(self.username) + if job == ('PlantOperator',): + self.sideFrame.grid(row = 0, column = 0) + self.CreateDashboardScreen("Welcome Plant Operator", "PlantOP.jfif") + self.RaisePOSide() + self.RaiseDashboard() + + elif job == ('PlantManager',): + self.sideFrame.grid(row = 0, column = 0) + self.CreateDashboardScreen("Welcome Plant Manager", "PlantM.jfif") + self.RaisePMSide() + self.RaiseDashboard() + + elif job == ('ProductEngineer',): + self.sideFrame.grid(row = 0, column = 0) + self.CreateDashboardScreen("Welcome Product Engineer", "ProductE.jfif") + self.RaisePESide() + self.RaiseDashboard() + + elif job == ('AccessoriesProductionOperative',): + self.sideFrame.grid(row = 0, column = 0) + self.CreateDashboardScreen("Welcome Accessories Production Operative", "AccessoriesPO.jfif") + self.RaiseAPOSide() + self.RaiseDashboard() + + elif job == ('AccessoriesProductionManager',): + self.sideFrame.grid(row = 0, column = 0) + self.CreateDashboardScreen("Welcome Accessories Production Manager", "AccessoriesPM.jpg") + self.RaiseAPMSide() + self.RaiseDashboard() + + else: + self.infoLabel = tk.Label(self.LoginFrame, text = "INCORRECT", fg = "red", bg = "#AAC9DD") + + def LogOut(self): + for widget in self.sidePanelFrame.winfo_children(): + widget.grid_forget() + self.FrameToRaise = self.frames["Login"] + self.RaiseFrame() + + + def RaiseFrame(self): + for widget in self.mainContainer.winfo_children(): + widget.grid_forget() + self.FrameToRaise.grid(row = 0, column = 0, sticky = "nesw") + self.FrameToRaise.tkraise() + + def RaiseSideFrame(self): + for widget in self.sidePanelFrame.winfo_children(): + widget.grid_forget() + self.FrameToRaise.grid(row = 0, column = 0, sticky = "nesw") + self.FrameToRaise.tkraise() + + def RaiseDashboard(self): + self.FrameToRaise = self.frames["Dashboard"] + self.RaiseFrame() + + def RaiseLogin(self): + self.FrameToRaise = self.frames["Login"] + self.RaiseFrame() + + def RaisePOSide(self): + self.FrameToRaise = self.frames["POSide"] + self.RaiseSideFrame() + + def RaisePMSide(self): + self.FrameToRaise = self.frames["PMSide"] + self.RaiseSideFrame() + + def RaisePESide(self): + self.FrameToRaise = self.frames["PESide"] + self.RaiseSideFrame() + + def RaiseAPOSide(self): + self.FrameToRaise = self.frames["APOSide"] + self.RaiseSideFrame() + + def RaiseAPMSide(self): + self.FrameToRaise = self.frames["APMSide"] + self.RaiseSideFrame() + + def RaiseMachineStatus(self): + self.FrameToRaise = self.frames["MachineStatus"] + self.RaiseFrame() + + def RaiseSchedule(self): + self.FrameToRaise = self.frames["Schedule"] + self.RaiseFrame() + + def RaiseJobPreparation(self): + self.FrameToRaise = self.frames["JobPreparation"] + self.RaiseFrame() + + def RaiseOperatorTimetable(self): + self.FrameToRaise = self.frames["OperatorTimetable"] + self.RaiseFrame() + + def RaiseGenerateReport(self): + self.FrameToRaise = self.frames["GenerateReport"] + self.RaiseFrame() + + def RaiseProductLineInfo(self): + self.FrameToRaise = self.frames["ProductLineInfo"] + self.RaiseFrame() + + def RaiseDesignSpec(self): + self.FrameToRaise = self.frames["DesignSpec"] + self.RaiseFrame() + + def RaiseManufacturingInstructions(self): + self.FrameToRaise = self.frames["ManufacturingInstructions"] + self.RaiseFrame() + + def RaiseMaterialInfo(self): + self.FrameToRaise = self.frames["MaterialInfo"] + self.RaiseFrame() + + def RaiseLogOut(self): + self.FrameToRaise = self.frames["LogOut"] + self.RaiseFrame() + + def RaiseCompanyMeeting(self): + self.FrameToRaise = self.frames["CompanyMeeting"] + self.RaiseFrame() + + def RaiseCompanyEvents(self): + self.FrameToRaise = self.frames["CompanyEvents"] + self.RaiseFrame() + + + def AddImage(self,frame, path, rowNum, colNum): + img = ImageTk.PhotoImage(Image.open(path).resize((150, 150))) + Product1Image = tk.Label(frame, image = img) + Product1Image.photo = img + Product1Image.grid(row = rowNum, column = colNum) + + def AddSecondImage(self,frame, path, rowNum, colNum): + img = ImageTk.PhotoImage(Image.open(path).resize((200, 150))) + Product1Image = tk.Label(frame, image = img) + Product1Image.photo = img + Product1Image.grid(row = rowNum, column = colNum) + + def ProductNum(self,frame, rowNum, txt): + col = 0 + for i in txt: + Product = tk.Label(frame, text = i, bg = "#AAC9DD") + Product.grid(row = rowNum, column = col, padx = 50, pady = 5) + col += 1 + + def AddMultiImage(self, frame, path, row): + col = 0 + for i in path: + self.AddImage(frame, i, row, col) + col += 1 + + def SidePanelButton(self, txt, cmnd, rowNum): + button = tk.Button(self.sideFrame, text = txt, command = cmnd, height = 2, width = 15) + button.grid(row = rowNum, column = 0, padx = 10, pady = 10) + + def GridMaker(self,frame, txt, rowNum, col): + for i in txt: + cell = tk.Button(frame, text = i, height = 2, width = 15) + cell.grid(row = rowNum, column = col) + col += 1 + + + + + + + + + + + + +app = Main() diff --git a/Product1.jfif b/Product1.jfif new file mode 100644 index 0000000..3011360 Binary files /dev/null and b/Product1.jfif differ diff --git a/Product10.jfif b/Product10.jfif new file mode 100644 index 0000000..6ff5de4 Binary files /dev/null and b/Product10.jfif differ diff --git a/Product2.jfif b/Product2.jfif new file mode 100644 index 0000000..424758b Binary files /dev/null and b/Product2.jfif differ diff --git a/Product3.jfif b/Product3.jfif new file mode 100644 index 0000000..451a1ae Binary files /dev/null and b/Product3.jfif differ diff --git a/Product4.jfif b/Product4.jfif new file mode 100644 index 0000000..3e59131 Binary files /dev/null and b/Product4.jfif differ diff --git a/Product5.jfif b/Product5.jfif new file mode 100644 index 0000000..0e45f0c Binary files /dev/null and b/Product5.jfif differ diff --git a/Product6.jfif b/Product6.jfif new file mode 100644 index 0000000..de33228 Binary files /dev/null and b/Product6.jfif differ diff --git a/Product7.jpg b/Product7.jpg new file mode 100644 index 0000000..3b66f78 Binary files /dev/null and b/Product7.jpg differ diff --git a/Product8.jfif b/Product8.jfif new file mode 100644 index 0000000..f719e6c Binary files /dev/null and b/Product8.jfif differ diff --git a/Product9.png b/Product9.png new file mode 100644 index 0000000..e7594c2 Binary files /dev/null and b/Product9.png differ diff --git a/TechnicalD1.jfif b/TechnicalD1.jfif new file mode 100644 index 0000000..a4ae42b Binary files /dev/null and b/TechnicalD1.jfif differ diff --git a/TechnicalD2.jfif b/TechnicalD2.jfif new file mode 100644 index 0000000..2b0054a Binary files /dev/null and b/TechnicalD2.jfif differ diff --git a/TechnicalD3.jfif b/TechnicalD3.jfif new file mode 100644 index 0000000..2fd8d82 Binary files /dev/null and b/TechnicalD3.jfif differ diff --git a/TechnicalD4.jfif b/TechnicalD4.jfif new file mode 100644 index 0000000..6197925 Binary files /dev/null and b/TechnicalD4.jfif differ diff --git a/TechnicalD5.jfif b/TechnicalD5.jfif new file mode 100644 index 0000000..5f5f4e8 Binary files /dev/null and b/TechnicalD5.jfif differ diff --git a/jawaraSQL.py b/jawaraSQL.py new file mode 100644 index 0000000..cc96d5f --- /dev/null +++ b/jawaraSQL.py @@ -0,0 +1,26 @@ +import sqlite3 as sql + +mydb = sql.connect("jawaraDB") +c = mydb.cursor() + +def CheckLogin(username, password): + c.execute("""SELECT Username FROM tblUsers""") + values = c.fetchall() + validUser = False + valid = False + for i in values: + if i[0][:] == username: + validUser = True + user = i[0][:] + if validUser: + c.execute("""SELECT Password FROM tblUsers WHERE Username = '{0}'""".format(user)) + userPassword = c.fetchone() + if password == userPassword[0][:]: + valid = True + return valid + +def CheckJob(username): + c.execute("""SELECT Job FROM tblUsers WHERE Username = '{0}'""".format(username)) + job = c.fetchone() + return job +