-
Notifications
You must be signed in to change notification settings - Fork 0
/
Code Sample
183 lines (152 loc) · 6.31 KB
/
Code Sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
__author__ = 'stdio'
from time import localtime
import sys
from random import randint
class Employee:
#Common base for all employees
emp_counter = 0
#Create constructor to initialise objects
def __init__(self, name, id, pin, work_status):
self.name = name
self.id = id
self.pin = pin
self.work_status = work_status
Employee.emp_counter += 1
#Create login method to allow employees sign in
def login(self):
id = input("Please enter your ID: ")
pin = int(input("Please enter your pin: "))
if self.id == id and self.pin == pin:
your_time = localtime()
exact_time = str(your_time.tm_hour) + ":" + str(your_time.tm_min) + ":" + str(your_time.tm_sec)
print("You've logged in at exactly", exact_time, "\n")
else:
print("\nWrong ID/Pin entered!!\n"
"Access Denied\n")
#Create logout method to allow employees sign out
def logout(self):
id = input("Please enter your ID: ")
pin = int(input("Please enter your pin: "))
if self.id == id and self.pin == pin:
your_time = localtime()
exact_time = str(your_time.tm_hour) + ":" + str(your_time.tm_min) + ":" + str(your_time.tm_sec)
print("You've logged out at exactly", exact_time, "\n")
else:
print("\nWrong ID/Pin entered!!\n"
"Access Denied\n")
#Create method to allow employees acces to view profiles
def viewProfile(self):
id = input("Please enter your ID: ")
pin = int(input("Please enter your pin: "))
if self.id == id and self.pin == pin:
print("\nID No.:", self.id, "\n"
"Name:", self.name, "\n"
"Work Status:", self.work_status, "\n")
else:
print("\nWrong ID/Pin entered!!\nAccess Denied\n")
class Administrator(Employee):
#Create constructor to initialise objects
def __init__(self, name, id, pin, work_status, system_password):
Employee.__init__(self, name, id, pin, work_status)
self.system_password = system_password
#Create method to allow administrator access to view all employee profiles
def viewAllProfiles(self, employee_list):
system_passwd = input("\nAccess Granted!!!\nPlease enter the system password: ")
if system_passwd == self.system_password:
for i in employee_list:
print("\nID No.:", i.id, "\nName:", i.name, "\nWork Status:", i.work_status, "\n")
#Create method to allow adding employees
def addEmployee(self, employee_list):
system_passwd = input("Please enter the system password: ")
if system_passwd == self.system_password:
name = input("Please enter the name of the employee: ")
id = generateEmployeeID()
pin = generateEmployeePin()
workStatus = "INSERVICE"
speciality = input("Please enter the speciality if it's a doctor otherwise enter none: ")
if speciality == "Doctor":
emp = Employee(name, id, pin, workStatus, speciality)
else:
emp = Employee(name, id, pin, workStatus)
employee_list.append(emp)
print("Employee has been successfully added!!!\n")
else:
print("\nWrong ID/Pin entered!!\nAccess Denied\n")
#Create method to edit employee profiles
def editEmployeeProfile(self):
pass
class Doctor(Employee):
##Create constructor to initialise objects
def __init__(self, name, id, pin, work_status, speciality):
Employee.__init__(self, name, id, pin, work_status)
self.speciality = speciality
class Nurse(Employee):
##Create constructor to initialise objects
def __init__(self, name, id, pin, work_status):
Employee.__init__(self, name, id, pin, work_status)
#Create method for Nurse to input patient vitals
def takeVital(self):
vital = input("Enter patient vital to send to patient folder")
print("Patient vital entered is", vital)
#Create method to generate pin
def generateEmployeeID():
the_type = input("Please the employee type: ")
if the_type == "Doctor":
baseID = "DOC/"
numb = input("Please enter last three pin number to add to base pin: ")
id = baseID + numb
return id
else:
baseID = "NUR/"
numb = input("Please enter last three pin number to add to base pin: ")
id = baseID + numb
return id
def generateEmployeePin():
the_type = input("Please the employee type: ")
if the_type == "Doctor":
pin = randint(50000, 99999)
return pin
else:
pin = randint(10000, 49999)
return pin
emp1 = Doctor("Andy Alorwu", "DOC/123", 56789, "INSERVICE", "GYNAECOLOGIST")
emp2 = Nurse("Dennis Opoku Boadu", "NUR/256", 35421, "INSERVICE")
emp3 = Administrator("Samantha Tetteh", "ADMIN/987", 82459, "INSERVICE", "ADMINh0sp1t@l")
employeeList = [emp3, emp1, emp2]
print(employeeList[1].id, employeeList[1].pin)
while True:
ans = int(input("Welcome to Office"
"\nPlease select an option"
"\n1. Login\t\t\t2. View Profiles\t\t\t3. Logout\t\t\t4. Administrator\n"
"option: "))
if ans == 1:
a = int(input("What is your employee number: "))
employeeList[a].login()
continue
elif ans == 2:
a = int(input("What is your employee number: "))
employeeList[a].viewProfile()
continue
elif ans == 3:
a = int(input("What is your employee number: "))
islast = input("Are you the last employee? y/n\n"
"Reply here: ")
if islast == 'y':
employeeList[a].logout()
sys.exit(0)
else:
employeeList[a].logout()
continue
else:
a = input("What is your employee number: ")
answ = int(input("Please select another option\n"
"1. View All Profiles\n"
"2. Edit Profiles\n"
"3. Add Employee\n"
"Option: "))
if answ == 1:
employeeList[0].viewAllProfiles(employeeList)
elif answ == 2:
employeeList[0].editEmployeeProfiles()
else:
employeeList[0].addEmployee(employeeList)