Skip to content

Commit e351398

Browse files
authored
Add files via upload
0 parents  commit e351398

File tree

4 files changed

+202
-0
lines changed

4 files changed

+202
-0
lines changed

booking.py

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
from hotel import Hotel
2+
from driver import Driver
3+
import datetime
4+
5+
class Booking:
6+
def __init__(self, datetimeOfPickup, fromAirport, hotel, numPassengers):
7+
self._hotel = hotel
8+
self._numPassengers = numPassengers
9+
self._driver = None
10+
self._datetimeOfPickup = datetimeOfPickup
11+
self._fromAirport = fromAirport
12+
13+
@property
14+
def numPassengers(self):
15+
return self._numPassengers
16+
17+
@property
18+
def driver(self):
19+
return self._driver
20+
21+
@property
22+
def datetimeOfPickup(self):
23+
return self._datetimeOfPickup
24+
25+
@property
26+
def from_airport(self):
27+
return self._fromAirport
28+
29+
@datetimeOfPickup.setter
30+
def datatimeOfPickup(self, datetimeOfPickup):
31+
self._datetimeOfPickup = datetimeOfPickup
32+
33+
@numPassengers.setter
34+
def numPassengers(self, numPassengers):
35+
self._numPassengers = numPassengers
36+
37+
@driver.setter
38+
def driver(self, driver):
39+
self._driver = driver
40+
41+
def __str__(self):
42+
if self._driver:
43+
driver = str(self.driver)
44+
else:
45+
driver = "No"
46+
if self._fromAirport:
47+
from_air = "To Hotel"
48+
else:
49+
from_air = "From Hotel"
50+
return "Date/time" + str(self.datetimeOfPickup) + " " + from_air + "\n\t" + str(self._hotel) + " " \
51+
+ str(self._numPassengers) + "\n\tAssigned: " + driver
52+
53+
54+
if __name__ == "__main__":
55+
booking_0 = Booking(datetime.datetime(2019, 12, 1, 12, 45), True, Hotel('Zenite', 'One Road P111'), 4)
56+
print(booking_0.datetimeOfPickup)
57+
booking_0.datatimeOfPickup += datetime.timedelta(hours=1)
58+
print(booking_0.datetimeOfPickup)
59+
print(booking_0._hotel._name)
60+
print(str(booking_0))

driver.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Driver:
2+
def __init__(self, name, vehno):
3+
self._name = name
4+
self._vehNo = vehno
5+
6+
@property
7+
def name(self):
8+
return self._name
9+
10+
@property
11+
def vehno(self):
12+
return self._vehNo
13+
14+
@vehno.setter
15+
def vehno(self, vehNo):
16+
self.vehNo = vehNo
17+
18+
def __str__(self):
19+
return "Driver Name: {} Vehicle number: {}".format(self.name, self._vehNo)
20+
21+
22+
if __name__ == "__main__":
23+
assert (Driver('Alan', 'A1110'))
24+
driver_0 = Driver('Alan', 'A1110')
25+
driver_0.vehno = 'A1111'
26+
print(str(driver_0))

hotel.py

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Hotel:
2+
def __init__(self, name, address):
3+
self._name = name
4+
self._address = address
5+
6+
@property
7+
def name(self):
8+
return self._name
9+
10+
@property
11+
def address(self):
12+
return self._address
13+
14+
def __str__(self):
15+
return "Hotel Name: {} Address: {}".format(self._name, self._address)
16+
17+
18+
if __name__ == "__main__":
19+
assert (Hotel("Zenite", "1, One Road P111"))
20+
print(str(Hotel("Zenite", "1, One Road P111")))

transport_serv.py

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
from hotel import Hotel
2+
from driver import Driver
3+
from booking import Booking
4+
import datetime
5+
6+
7+
class TransportServices:
8+
def __init__(self):
9+
self._drivers = []
10+
self._hotels = []
11+
self._bookings = []
12+
13+
def searchHotel(self, hotel_name):
14+
for i in self.hotels:
15+
if hotel_name == i.name:
16+
return i
17+
return None
18+
19+
def searchDriver(self, name, vehNo):
20+
for i in self._drivers:
21+
if name == i.name or vehNo == i.vehNo:
22+
return i
23+
return None
24+
25+
def searchBooking(self, datetimeOfPickup, fromAirport, name):
26+
for i in self._bookings:
27+
if datetimeOfPickup == i.datetimeOfPickup or fromAirport == i.fromAirport or name == i.hotel.name:
28+
return i
29+
return None
30+
31+
def addHotel(self, hotel):
32+
if hotel not in self._hotels:
33+
self._hotels.append(hotel)
34+
35+
def addDriver(self, driver):
36+
if driver not in self._drivers:
37+
self._drivers.append(driver)
38+
39+
def addBooking(self, booking):
40+
if booking not in self._bookings:
41+
self._bookings.append(booking)
42+
43+
def removeDriver(self, name, contact):
44+
for i in self._drivers:
45+
if name == i.name or contact == i.vehNo:
46+
self._drivers.remove(i)
47+
48+
def removeBooking(self, datetimeOfPickup, fromAirport, name):
49+
for i in self._bookings:
50+
if datetimeOfPickup == i.datetimeOfPickup or fromAirport == i.fromAirport or name == i.hotel.name:
51+
self._bookings.remove(i)
52+
53+
def assignDriver(self, datetimeOfPickup, fromAirport, hotelname, drivername, vehNo):
54+
driver_to_assign = ''
55+
booking_to_assign = ''
56+
for i in self._bookings:
57+
if datetimeOfPickup == i.datetimeOfPickup or fromAirport == i.fromAirport or hotelname == i.hotel.name:
58+
booking_to_assign = i
59+
for i in self._drivers:
60+
if drivername == i.name or vehNo == i.vehNo:
61+
driver_to_assign = i
62+
booking_to_assign.driver = driver_to_assign
63+
64+
def hotelsStr(self):
65+
out_str = ''
66+
for i in self._hotels:
67+
out_str += str(i)+'\n'
68+
return out_str
69+
70+
def driversStr(self):
71+
out_str = ''
72+
for i in self._drivers:
73+
out_str += str(i)+'\n'
74+
return out_str
75+
76+
def bookingsStr(self):
77+
out_str = ''
78+
for i in self._bookings:
79+
out_str += str(i)+'\n'
80+
return out_str
81+
82+
83+
if __name__ == '__main__':
84+
t_service_0 = TransportServices()
85+
drivers = {"Alan": "A1111", "Betty": "B2222", "Charlie": "C3333"}
86+
for item in drivers:
87+
t_service_0.addDriver(Driver(item, drivers[item]))
88+
hotels = {'Zenite': 'One Road P111', 'Young Lodge': '2, Two Road P222'}
89+
for item in hotels:
90+
t_service_0.addHotel(Hotel(item, hotels[item]))
91+
for i in range(2):
92+
t_service_0.addBooking(Booking(datetime.datetime(2019, 12, i+1, 12-int(3**i), 45), True,
93+
t_service_0._hotels[0], 4-int(3*i)))
94+
print(t_service_0.bookingsStr())
95+
print(t_service_0.hotelsStr())
96+
print(t_service_0.driversStr())

0 commit comments

Comments
 (0)