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