Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def mainMenu():
- print("""
- ###############################################################################
- # #
- # Clive's Carpets #
- # Please Login Below! #
- # #
- ###############################################################################
- """)
- validateUser()
- def adminMenu():
- while True:
- print("""
- ###############################################################################
- # #
- # Clive's Carpets #
- # Admin Menu #
- # #
- # 1 - Add a New User #
- # 2 - Quotes #
- # 3 - Exit #
- # #
- ###############################################################################
- """)
- adminMenu = input("Which option would you like to choose? '1' , '2' or '3': ")
- if adminMenu == "1":
- userInput()
- break
- elif adminMenu == "2":
- quoteMenu()
- break
- elif adminMenu == "3":
- exit()
- break
- def userMenu():
- print("\nUser Menu")
- userMenu = input("\nDo you wish to create a new quote? 'Yes' 'No': ")
- if userMenu.lower() == "yes":
- newQuote()
- elif userMenu.lower() == "no":
- exit()
- else:
- userMenu()
- def newQuote():
- CARPET = 22.50
- carpetCost = 0
- GRIPPER = 1.10
- gripperCost = 0
- RATE = 65
- labour = 0
- underlayPicker = 0
- underlay = 0
- underlayCost = 0
- width = 0
- length = 0
- perimeter = 0
- squareMeter = 0
- rawMaterialsCost = 0
- totalCost = 0
- quotationCount=len(open("quotations.txt","r").readlines())
- quotationID = "CC"+str(quotationCount+1)
- while True:
- customerID=input("\nInput the Customer ID: ")
- if len(customerID)>12:
- print("\nCustomerID has to be less than 12 characters (5 characters House Number + 7 character Postcode")
- else:
- break
- while True:
- length=float(input("\nInput the total length of the room (m): "))
- if length>30:
- print("\nRoom Is too long!")
- else:
- break
- while True:
- width=float(input("\nInput the total width of the room (m): "))
- if width>5:
- print("\nRoom is too wide!")
- else:
- break
- while True:
- perimeter=float(input("\nInput the total perimeter of the room (m): "))
- if perimeter>300:
- print("\nYou had better double check!")
- else:
- break
- while True:
- print("""
- ###############################################################################
- # #
- # Clive's Carpets #
- # Underlay Picker #
- # #
- # Which underlay would the customer like: #
- # 1 - First Step: £5.99 per square meter #
- # 2 - Monarch: £7.99 per square meter #
- # 3 - Royal: £60.00 per square meter #
- # #
- # 4 - Exit #
- # #
- ###############################################################################
- """)
- underlayPicker=input("Which underlay would the customer like? Option '1', '2', '3' or '4': ")
- if underlayPicker =="1":
- underlay = 5.99
- break
- elif underlayPicker =="2":
- underlay = 7.99
- break
- elif underlayPicker =="3":
- underlay = 60
- break
- elif underlayPicker =="4":
- quit()
- else:
- print("\nThat is not a valid entry you must select '1', '2', '3' or '4'")
- squareMeter = length * width
- squareMeter = float(str(round(squareMeter, 2,)))
- perimeter = round(perimeter + 0.49)
- carpetCost = squareMeter * CARPET
- carpetCost = float(str(round(carpetCost, 2)))
- gripperCost = perimeter * GRIPPER
- gripperCost = float(str(round(gripperCost, 2)))
- underlayCost = squareMeter * underlay
- underlayCost = float(str(round(underlayCost, 2)))
- if squareMeter < 17:
- labour = RATE
- elif squareMeter > 16:
- labour = (squareMeter / 16) * RATE
- labour = float(str(round(labour, 2)))
- rawMaterialsCost = carpetCost + gripperCost + underlayCost
- rawMaterialsCost = float(str(round(rawMaterialsCost, 2)))
- totalCost = rawMaterialsCost + labour
- totalCost = float(str(round(totalCost, 2)))
- print("\nQuotation "+str(quotationID)+" for Customer "+str(customerID))
- print("\nRoom Size in Sq.M: "+str(squareMeter))
- print("\nRoom Perimiter in M: "+str(perimeter))
- print("\nCarpet Cost: £"+"{:.2f}".format(carpetCost))
- print("\nGripper Cost: £"+"{:.2f}".format(gripperCost))
- print("\nUnderlay Cost: £"+"{:.2f}".format(underlayCost))
- print("\nRaw Materials Cost: £"+"{:.2f}".format(rawMaterialsCost))
- print("\nLabour Cost: £"+"{:.2f}".format(labour))
- print("\nTotal Cost: £"+"{:.2f}".format(totalCost))
- quotationIDStore=quotationID.ljust(10)
- customerID=customerID.lower()
- customerID=customerID.replace(" ", "")
- customerIDStore=customerID.ljust(12)
- squareMeter=str(squareMeter)
- squareMeterStore=squareMeter.ljust(10)
- perimeter=str(perimeter)
- perimeterStore=perimeter.ljust(10)
- carpetCost=str(carpetCost)
- carpetCostStore=carpetCost.ljust(10)
- gripperCost=str(gripperCost)
- gripperCostStore=gripperCost.ljust(10)
- underlayCost=str(underlayCost)
- underlayCostStore=underlayCost.ljust(10)
- rawMaterialsCost=str(rawMaterialsCost)
- rawMaterialsCostStore=rawMaterialsCost.ljust(10)
- labour=str(labour)
- labourStore=labour.ljust(10)
- totalCost=str(totalCost)
- totalCostStore=totalCost.ljust(10)
- store=open("quotations.txt","a")
- iStore=quotationIDStore+customerIDStore+squareMeterStore+perimeterStore+carpetCostStore+gripperCostStore+underlayCostStore+rawMaterialsCostStore+labourStore+totalCostStore+"\n"
- store.write(iStore)
- store.close()
- print("\nQuotation saved to Customer Records")
- def showQuotation():
- file = open('quotation.txt','r+')
- for line in file:
- quotationID = line[0:10]
- quotationID = quotationID.strip()
- customerID = line [10:22]
- customerID = customerID.strip()
- squareMeter = line [22:32]
- squareMeter = squareMeter.strip()
- squareMeter = float(squareMeter)
- perimeter = line[32:42]
- perimeter = perimeter.strip()
- perimeter = float(perimeter)
- carpetCost = line[42:52]
- carpetCost = carpetCost.strip()
- carpetCost = float(carpetCost)()
- gripperCost = line[52:62]
- gripperCost = gripperCost.strip()
- gripperCost = float(grippperCost)
- underlayCost = line[62:72]
- underlayCost = underlayCost.strip()
- underlayCost = float(gripperCost)
- rawMaterialsCost = line[72:82]
- rawMaterialsCost = float(rawMaterialsCost)
- rawMaterialsCost = rawMaterialsCost.strip()
- labour = line [82:92]
- labour = labour.strip()
- labour = float(labour)
- totalCost = line[92:102]
- totalCost = totalCost.strip()
- totalCost = float(totalCost)
- print("\nQuotation "+str(quotationID)+" for Customer "+str(customerID))
- print("\nRoom Size in Sq.M: "+str(squareMeter))
- print("\nRoom Perimiter in M: "+str(perimeter))
- print("\nCarpet Cost: £"+"(:.2f)".format(carpetCost))
- print("\nGripper Cost: £"+"(:.2f)".format(gripperCost))
- print("\nUnderlay Cost: £"+"(:.2f)".format(underlayCost))
- print("\nRaw Materials Cost: £"+"(:.2f)".format(rawMaterialsCost))
- print("\nLabour Cost: £"+"(:.2f)".format(labour))
- print("\nTotal Cost: £"+"(:.2f)".format(totalCost))
- def quoteMenu():
- quoteMenu()
- def userInput():
- userType, username, password1, password2 = "", "", "", ""
- while True:
- userType = input("What type of user are you creating?\n(1) Admin \n(2) Defnyddiwr \n")
- if userType == "-1":
- mainMenu()
- if len(userType) > 1:
- print("\nInvalid Input.\n")
- elif userType.isdigit() != True:
- print("Please enter a number!")
- elif int(userType) <1:
- print("\nInvalid Input.\n")
- elif int(userType) >2:
- print("\nInvalid Input.\n")
- else:
- break
- while True:
- username = input("\nPlease enter the username of the new user: ")
- if username == "-1":
- mainMenu()
- if len(username) >10:
- print("\nThe username must be less than 11 characters.\n")
- elif username.isalpha() == False:
- print("\nThe username must only contain alpha.\n")
- else:
- break
- while True:
- password1 = input("\nPlease enter the password for the user: ")
- if password1 == "-1":
- mainMenu()
- if len(password1) > 10:
- print("\nThe password must be less than 11 characters.\n")
- password2 = input("\nPlease enter the password again: ")
- if password2 == "-1":
- mainMenu()
- if len(password2) > 10:
- print("\nThe password must be less than 11 characters.\n")
- if password1 != password2:
- print("\nThe password does not match,retry.\n")
- else:
- break
- while True:
- FirstName = input("\nPlease enter your first name: ")
- if FirstName == "-1":
- mainMenu()
- if len(FirstName) >25:
- print("\nYour first name must be less than 25 characters.\n")
- else:
- break
- while True:
- Surname = input("\nPlease enter your surname: ")
- if Surname == "-1":
- mainMenu()
- if len(Surname) >25:
- print("\nYour surname must be less than 25 characters.\n")
- else:
- break
- while True:
- Telephone = input("\nPlease enter your telephone: ")
- try:
- int(Telephone)
- except:
- print("The telephone number must be a number")
- if Telephone == "-1":
- mainMenu()
- if len(Telephone) >16:
- print("\nThe telephone number must be less than 16 characters.\n")
- else:
- break
- while True:
- Town = input("\nPlease enter your town: ")
- if Town == "-1":
- mainMenu()
- if len(Town) >15:
- print("\nYour town must be less than 15 characters.\n")
- else:
- break
- username = username.lower()
- password1 = password1.lower()
- password2 = password2.lower()
- FirstName = FirstName.lower()
- Surname = Surname.lower()
- Telephone = Telephone.lower()
- Town = Town.lower()
- userTypeStore = str(userType).ljust(2)
- usernameStore = username.ljust(10)
- passwordStore = password1.ljust(10)
- FirstNameStore = FirstName.ljust(25)
- SurnameStore = Surname.ljust(25)
- TelephoneStore = Telephone.ljust(16)
- TownStore = Town.ljust(15)
- store = open("users.txt","a")
- iStore = usernameStore + passwordStore + userTypeStore + FirstNameStore + SurnameStore + TelephoneStore + TownStore + "\n"
- store.write(iStore)
- store.close()
- print("\nNew User Created: ")
- print("Usertype: ",userType)
- print("Username: ",username)
- print("Password: ",("*"*len(password1)))
- print("First Name: ",FirstName)
- print("Surname: ",Surname)
- print("Telephone: ",Telephone)
- print("Town: ",Town)
- mainMenu()
- def validateUser():
- validateUserType = ""
- validateUsername = ""
- validatePassword = ""
- username = str(input("\nPlease enter your username: \n"))
- password = str(input("\nPlease enter your password: \n"))
- while True:
- try:
- readUsers = open("users.txt","r")
- validateCounter = 0
- while True:
- location = readUsers.readline()
- validateUserType = location[20:22]
- validateUserType = validateUserType.strip()
- validateUsername = location [0:10]
- validateUsername = validateUsername.strip()
- validateUsername = validateUsername.lower()
- username = username.lower()
- validatePassword = location[10:20]
- validatePassword = validatePassword.strip()
- validatePassword = validatePassword.lower()
- password = password.lower()
- if location == "":
- readUsers.close()
- break
- if validateUserType == str(1) and validateUsername == username and validatePassword == password:
- validateCounter = validateCounter + 1
- adminMenu()
- break
- if validateUserType == str(2) and validateUsername == username and validatePassword == password:
- validateCounter = validateCounter + 1
- userMenu()
- break
- if validateCounter ==0:
- print("\nThere is no user in the file with those login details. \n")
- validateUser()
- except FileNotFoundError:
- print("There is no Users file for you to search! How about making your first account?\nTop Tip, make it a System Administrator Account!\n")
- userInput()
- def main():
- mainMenu()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement