class Portal(Employee): database = {} color_obj = Colors.Color() def __init__(self): pass def createEmployeeDetails(self): d = {} l = {} loop_id = False loop_phone = False loop_email = False while loop_id == False: empId = int( input("%sEnter Employee Id:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white')))) empValidId = '' if empId in Portal.database: print("%sEmployee Id {} Already Exists.".format(empId) % Portal.color_obj.setColor('red')) time.sleep(2) else: empValidId = empId loop_id = True empName = input("%sEnter Employee Name:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) l.update({"Name": empName}) while loop_phone == False: empPhone = input("%sEnter Employee Phone Number:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) phoneObj = re.search(r'\d{3}-\d{3}-\d{4}', empPhone) empValidPhone = '' if phoneObj: empValidPhone = empPhone empValidPhone = self.checkPhoneValidation(empValidPhone) if empValidPhone == None: print( "%sPhone number {} which you entered is already exists" .format(empPhone) % Portal.color_obj.setColor('red')) else: l.update({"Phone": empValidPhone}) loop_phone = True else: print("%sPlease enter phone details as xxx-xxx-xxxx format" % Portal.color_obj.setColor('red')) while loop_email == False: empEmail = input("%sEnter Employee Email:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) emailObj = re.search(r'[\w.]+@[\w.]+', empEmail) empValidEmail = '' if emailObj: empValidEmail = empEmail empValidEmail = self.checkEmailValidation(empValidEmail) if empValidEmail == None: print("%sEmail id {} which you entered is already exists". format(empEmail) % Portal.color_obj.setColor('red')) else: l.update({"Email": empValidEmail}) loop_email = True else: print("%sPlease enter email details as [email protected] format" % Portal.color_obj.setColor('red')) d.update({empValidId: l}) Portal.database.update(d) def updateEmployeeDetails(self): loop = False if not Portal.database.items(): print("\n%sNo records found. First you create employee details" % Portal.color_obj.setColor('red')) time.sleep(2) print("\n%sProcess for creating new employee" % Portal.color_obj.setColor('white')) time.sleep(2) self.createEmployeeDetails() print("%sEmployee created successfully" % Portal.color_obj.setColor('green')) time.sleep(2) print("%sEmployee Id :" % Portal.color_obj.setColor('dark_green'), list(Portal.database.keys())) time.sleep(1) print("\n%sNow process for update employee details" % Portal.color_obj.setColor('white')) time.sleep(2) while loop == False: num = int( input("%sEnter employee id which you want to update: " % Portal.color_obj.setColor('white'))) if num in Portal.database: self.selectOption(num) print("%sEmployee details updated successfully" % Portal.color_obj.setColor('green')) time.sleep(2) print('\n%sNow select option for another process' % Portal.color_obj.setColor('white')) loop = True else: print( "%sEmployee Id {} doesn't exists in employee id list". format(num) % Portal.color_obj.setColor('red'), list(Portal.database.keys())) def selectOption(self, num): loop_phone_data = False loop_email_data = False record = Portal.database.get(num) print('''%sChoose option to update : Name Phone Email ''' % Portal.color_obj.setColor('orange')) print( "\n%sNOTE: Please select option as per format like option1,option2,option3,etc..." % Portal.color_obj.setColor('orange')) option = (input("%sEnter Options :%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white')))).split(',') for i in option: if i == "name" or i == "Name": name = input("%sEnter name which you want to update:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) record.update({'Name': name}) elif i == "phone" or i == "Phone": while loop_phone_data == False: phone = input("%sEnter phone which you want to update:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) phoneData = re.search(r'\d{3}-\d{3}-\d{4}', phone) empValidPhoneData = '' if phoneData: empValidPhoneData = phone empValidPhoneData = self.checkPhoneValidation( empValidPhoneData) if empValidPhoneData == None: print( "%sPhone number {} which you entered is already exists" .format(phone) % Portal.color_obj.setColor('red')) else: record.update({'Phone': empValidPhoneData}) loop_phone_data = True else: print( "%sPlease enter phone details as xxx-xxx-xxxx format" % Portal.color_obj.setColor('red')) elif i == "email" or i == "Email": while loop_email_data == False: email = input("%sEnter email which you want to update:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white'))) emailData = re.search(r'[\w.]+@[\w.]+', email) empValidEmailData = '' if emailData: empValidEmailData = email empValidEmailData = self.checkEmailValidation( empValidEmailData) if empValidEmailData == None: print( "%sEmail id {} which you entered is already exists" .format(email) % Portal.color_obj.setColor('red')) else: record.update({'Email': empValidEmailData}) loop_email_data = True else: print( "%sPlease enter email details as [email protected] format" % Portal.color_obj.setColor('red')) else: print("%sSelect valid options" % Portal.color_obj.setColor('red')) time.sleep(2) return self.selectOption(num) def getEmployeeDetailsById(self): loop_data = False while loop_data == False: data = int( input('%sEnter employee id:%s' % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('white')))) if data in Portal.database: print( "%sEmployee details for employeeId {}:%s".format(data) % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('green')), Portal.database.get(data)) loop_data = True else: print( "%sEmployee Id {} doesn't exist from employee list".format( data) % Portal.color_obj.setColor('red')) time.sleep(2) def printAllEmployee(self, database): if not Portal.database.items(): print("%sNo record found in employee list" % Portal.color_obj.setColor('red')) else: print( "%sAll Employee Details:%s" % (Portal.color_obj.setColor('blue'), Portal.color_obj.setColor('green')), database) time.sleep(2) def deleteEmployeeDetails(self): loop_data = False if not Portal.database.items(): print("\nNo records found. First you create employee details") time.sleep(2) print("\nProcess for creating new employee") time.sleep(2) self.createEmployeeDetails() print("%sEmployee created successfully" % Portal.color_obj.setColor('green')) time.sleep(2) print("\n%sNow Process for delete existing employee record" % Portal.color_obj.setColor('white')) while loop_data == False: data = int( input('%sEnter employee id:' % Portal.color_obj.setColor('blue'))) if data in Portal.database: Portal.database.pop(data) print("Employee id {} deleted successfully from employee list". format(data) % Portal.color_obj.setColor('green')) loop_data = True else: print("%sNo record found" % Portal.color_obj.setColor('red')) def checkPhoneValidation(self, empValidPhone): record = {} list1 = [] phone = None data = Portal.database.values() for data1 in data: record.update(data1) if "Phone" in record: list1.append(record.get("Phone")) if empValidPhone not in list1: #print "Phone which you entered is valid" phone = empValidPhone return phone else: return phone def checkEmailValidation(self, empValidEmail): record = {} list1 = [] email = None data = Portal.database.values() for data1 in data: record.update(data1) if "Email" in record: list1.append(record.get("Email")) if empValidEmail not in list1: #print "Phone which you entered is valid" email = empValidEmail return email else: return email
def employeeOpration(self, portal_obj): loop = False print('''Employee Details: 1) Create Employee 2) Update Employee 3) Get Employee by Id 4) Print All Employee 5) Delete Employee 6) Exit the program ''') color_obj = Colors.Color() while loop == False: option = input('Please Select any option : ') if option.isdigit(): op = int(option) if op == 1: print("\nYou select option", option, ", Now Process for creating new employee details") time.sleep(2) portal_obj.createEmployeeDetails() time.sleep(2) print('%sEmployee details created successfully' % color_obj.setColor('green')) time.sleep(2) print('') print('%sNow choose any option for another process' % color_obj.setColor('white')) time.sleep(2) self.employeeOpration(portal_obj) elif op == 2: print( "\nYou select option", option, ", Now Process for updating existing employee details") time.sleep(2) portal_obj.updateEmployeeDetails() self.employeeOpration(portal_obj) elif op == 3: print( "\nYou select option", option, ", Now Process for getting existing employee details based on employeeId" ) time.sleep(2) portal_obj.getEmployeeDetailsById() print('\n%sNow choose any option for another process' % color_obj.setColor('white')) self.employeeOpration(portal_obj) elif op == 4: print( "\nYou select option", option, ", Now Process for getting all employee with details") time.sleep(2) portal_obj.printAllEmployee(portal_obj.database) print('\n%sNow choose any option for another process' % color_obj.setColor('white')) self.employeeOpration(portal_obj) elif op == 5: print("\nYou select option", option, ", Now Process for deleting employee details") time.sleep(2) portal_obj.deleteEmployeeDetails() time.sleep(2) print('\n%sNow choose any option for another process' % color_obj.setColor('white')) self.employeeOpration(portal_obj) elif op == 6: print( "%sSuccessfully exit from Application. Thanking You...!!!" % color_obj.setColor('orange')) sys.exit() else: print( "\n%sYou select option {} is invalid. Please choose valid option" .format(option) % color_obj.setColor('red')) time.sleep(2) return self.employeeOpration(portal_obj) loop = True else: print("%sYou select wrong option" % color_obj.setColor('red')) time.sleep(1) print("%sPlease enter value as digit like 1,2,3,...." % color_obj.setColor('red'))