def get_on_emp(self, date): name_list = [] onEmps = self.dvoy.get_on_emp(date) allEmps = Employee_Data().get_crew_dict() for onemp in onEmps: temp_list = [] for key, value in allEmps.items(): for ssn in onemp: if key == ssn: temp_list.append(value[0]) if temp_list != []: name_list.append(temp_list) return self.dvoy.get_on_emp(date), name_list
def get_off_emp(self, date): allEmps = Employee_Data().get_crew_dict() onEmps, name_list = self.get_on_emp(date) # print(onEmps) offEmps = [] i = 0 for emp, value in allEmps.items(): if i != 0: isOff = True for onemp in onEmps: if emp in onemp: isOff = False if isOff == True: offEmps.append(value[0]) i += 1 return offEmps
class DataAPI: def __init__(self): self.demp = Employee_Data() self.ddes = Destination_Data() def storenewemplyee(self, new_empl): return self.demp.register_employee_Data(new_empl) def new_emp_id(self): the_new_emp_id = new_emp_id() return the_new_emp_id def get_counter_from_data_emp(self): emp_data = Employee_Data() the_id = emp_data.new_emp_id() return the_id def get_pilots(self): return self.demp.get_pilots() def get_dest(self): return self.ddes.get_dest()
def __init__ (self): #self.dapi = dapi_in self.demp = Employee_Data()
class Employee_LL : def __init__ (self): #self.dapi = dapi_in self.demp = Employee_Data() '''def register_employee_LL(self): if new_emp_ready_for_print = new_emp.emp_comma_to_string ''' """ def addnewemployee(self, dapi_in, new_empl ) : # first we should check if this is a doubel registration .. if ( self.dapi.getemployee( new_empl.ssn) == None ) : # kasta villu til baka um að notandi er þegar til. pass # svörum svarinu sem við fáum þegar við köstum þessu niður í skrá return self.dapi.storenewemplyee( new_empl ) """ def get_chosen_emp(self, emp_ssn) : return self.demp.get_chosen_emp(emp_ssn) def addnewemployee(self, ssn, name, role, rank, licence, address, phonenumber): '''Áfram senda skipun um að skrifa í csv skjal''' self.demp.register_employee_Data(ssn, name, role, rank, licence, address, phonenumber) def check_emp_ssn(self,ssn) : '''check if emp already exists by checkin curretn employees ssn''' counter = 1 crew_dict = self.demp.get_crew_dict() for key in crew_dict.keys() : if counter > 1 : if key == ssn : return False counter += 1 return True def check_name(self, name) : for cha in name : if cha.isdigit() : return False return True def check_phonenumber(self,phonenumber) : for cha in phonenumber : if cha.isalpha() or len(phonenumber) != 7 : return False return True def check_ssn(self,ssn) : for cha in ssn : if cha.isalpha() or len(ssn) != 10 : return False return True def change_employee_address(self, new_address, emp_ssn) : '''passa að employeeinn sé til''' self.demp.change_emp_addr_data(new_address, emp_ssn) def change_employee_role_rank(self, new_role, new_rank, emp_ssn) : '''passa að employeeinn sé til''' self.demp.change_emp_role_rank_data(new_role, new_rank, emp_ssn) def change_employee_licence(self, new_licence, emp_ssn) : '''passa að employeeinn sé til''' self.demp.change_emp_lice_data(new_licence, emp_ssn) def change_employee_phonenumber(self, new_phonenumber,emp_ssn) : '''passa að employeeinn sé til''' self.demp.change_emp_phone_data(new_phonenumber, emp_ssn) def get_pilots(self): return self.demp.get_pilots() def get_cabin(self) : return self.demp.get_cabin() def get_pilots_with_NABAE146(self): return self.demp.get_pilots_with_NABAE146() def get_pilots_with_NAFokkerF28(self): return self.demp.get_pilots_with_NAFokkerF28() def get_pilots_with_NAFokker100(self): return self.demp.get_pilots_with_NAFokker100()
def __init__(self): self.empll = Employee_LL() self.airc = Aircraft_LL() self.dest = Destination_LL() self.demp = Employee_Data() self.voy = Voyage_LL()
class LL_API: def __init__(self): self.empll = Employee_LL() self.airc = Aircraft_LL() self.dest = Destination_LL() self.demp = Employee_Data() self.voy = Voyage_LL() def addnewvoyage(self, flight_number, departing_from, arriving_at, departure, arrival): self.voy.addnewvoyage(flight_number, departing_from, arriving_at, departure, arrival) def addnewemplyee(self, ssn, name, role, rank, licence, address, phonenumber): self.empll.addnewemployee(ssn, name, role, rank, licence, address, phonenumber) def check_name(self, name): return self.empll.check_name(name) def check_phonenumber(self, phonenumber): return self.empll.check_phonenumber(phonenumber) def check_ssn(self, ssn): return self.empll.check_ssn(ssn) def check_emp_ssn(self, ssn): return self.empll.check_emp_ssn(ssn) def print_chosen_emp(self, emp_ssn): return self.empll.get_chosen_emp(emp_ssn) def change_empl_address(self, new_address, emp_ssn): self.empll.change_employee_address(new_address, emp_ssn) def change_empl_role_rank(self, new_role, new_rank, emp_ssn): self.empll.change_employee_role_rank(new_role, new_rank, emp_ssn) def change_empl_licence(self, new_licence, emp_ssn): self.empll.change_employee_licence(new_licence, emp_ssn) def change_empl_phonenumber(self, new_phonenumber, emp_ssn): self.empll.change_employee_phonenumber(new_phonenumber, emp_ssn) def addnewdestination(self, identity, destination, flight_time): self.dest.addnewdestination(identity, destination, flight_time) def check_id(self, identity): return self.dest.check_id(identity) def addnewaircraft(self, nickname, aircraftID, planeTypeId, capacity, manufacturer): self.airc.addnewaircraft(nickname, aircraftID, planeTypeId, capacity, manufacturer) def check_aircraftid(self, aircraftID): return self.airc.check_aircraftid(aircraftID) def voy_dest(self): return self.voy.voy_dest() def check_flight_number(self, flight_number): return self.voy.check_flight_number(flight_number) def flight_number(self, flight_number): return self.voy.flight_number(flight_number) def get_dest(self): return self.dest.get_dest() def display_voy(self): return self.voy.get_voyage() def get_all_emp(self): return self.demp.get_all_emp() def get_pilots(self): return self.empll.get_pilots() def get_cabin(self): return self.empll.get_cabin() def display_cert_worksheet(self, week, ssn): return self.voy.emp_voy_for_week(week, ssn) def get_pilots_with_NABAE146(self): return self.empll.get_pilots_with_NABAE146() def get_pilots_with_NAFokkerF28(self): return self.empll.get_pilots_with_NAFokkerF28() def get_pilots_with_NAFokker100(self): return self.empll.get_pilots_with_NAFokker100() def display_pilot_by_aircraft(self): self.disp.disp_pilot_by_aircraft() def voy_dest_and_arriving_at(self, val): return self.voy.voy_dest_and_arriving_at(val) def voy_calculating_flight_times(self, val, departure_not_iso, departing_from): return self.voy.voy_calculating_flight_times(val, departure_not_iso, departing_from) def find_staff_with_chosen_rank(self, rank, flightNumber): return self.voy.find_available_staff_with_chosen_rank( rank, flightNumber) def picked_emp_for_voyage(self, picked, aircraftID, flightNumber): self.voy.picked_emp_for_voyage(picked, aircraftID, flightNumber) def find_aircrafts(self): return self.voy.find_aircrafts() def certain_date_voy(self, date): return self.voy.certain_date_voy(date) def certain_week_voy(self, week): return self.voy.certain_week_voy(week) def get_on_emp(self, date): return self.voy.get_on_emp(date) def get_off_emp(self, date): return self.voy.get_off_emp(date) def check_time(self, year, month, day, hour, minute): return self.voy.check_time(year, month, day, hour, minute) def print_chosen_emer(self, des_id): return self.dest.get_chosen_emer(des_id) def change_emer_name(self, new_name, des_id): return self.dest.change_emer_name(new_name, des_id) def change_emer_number(self, new_number, des_id): return self.dest.change_emer_number(new_number, des_id)
def __init__(self): self.demp = Employee_Data() self.ddes = Destination_Data()
def get_counter_from_data_emp(self): emp_data = Employee_Data() the_id = emp_data.new_emp_id() return the_id
class Voyage_LL: def __init__(self): #self.dapi = dapi_in self.dvoy = Voyage_Data() self.ddata = Destination_Data() self.demp = Employee_Data() self.dair = Aircraft_Data() def addnewvoyage(self, flight_number, departing_from, arriving_at, departure, arrival): '''Vantar að tékka hvort emp sé til með ssn tékki''' self.dvoy.register_voyage_data(flight_number, departing_from, arriving_at, departure, arrival) def voy_dest(self): return self.ddata.get_dest_dict() #x = input("sdfg") def get_voyage(self): return self.dvoy.get_voyage() def voy_dest_and_arriving_at(self, val): dest_dict = self.ddata.get_dest_dict() counter = 1 for key, value in dest_dict.items(): if key == "Keflavik": pass else: if val == counter: arriving_at = value[0] voy_dest_time = int(value[1]) counter += 1 return arriving_at, voy_dest_time def voy_calculating_flight_times(self, val, departure_not_iso, departing_from): arriving_at, voy_dest_time = self.voy_dest_and_arriving_at(val) arrival_not_iso = departure_not_iso + timedelta(hours=voy_dest_time) departure = departure_not_iso.isoformat() arrival = arrival_not_iso.isoformat() departure_return = (arrival_not_iso + timedelta(hours=1)).isoformat() arrival_return = (arrival_not_iso + timedelta(hours=1) + timedelta(hours=voy_dest_time)).isoformat() departing_from_return = arriving_at arriving_return = departing_from return departure, arrival, departing_from_return, arriving_return, departure_return, arrival_return def check_flight_number(self, flight_number): if len(flight_number) != 6: return False elif flight_number[0:2] != "NA" or flight_number[2:].isalpha(): return False else: return True def flight_number(self, flight_number): voy_dict = self.dvoy.get_voy_dict() for key, items in voy_dict.items(): if key == flight_number: return False return True def create_crew_voyage(self): voy_dict = self.dvoy.get_voyage def find_staff_with_chosen_rank(self, rank): crew_dict = self.demp.get_crew_dict() emps_with_chosen_rank = [] #for line in crew_dict.items(): for key, value in crew_dict.items(): temp_list = [] if value[2] == rank: temp_list.append(key) temp_list.append(value[0]) emps_with_chosen_rank.append(temp_list) return emps_with_chosen_rank def find_available_staff_with_chosen_rank(self, rank, flightNumber): available_staff = [] emps_with_chosen_rank = self.find_staff_with_chosen_rank(rank) dep_date, ar_date = self.get_date(flightNumber) dep_offemps = self.get_off_emp(dep_date) ar_offemps = self.get_off_emp(ar_date) for emp in emps_with_chosen_rank: if emp[1] in dep_offemps and emp[1] in ar_offemps: available_staff.append(emp) return available_staff def get_date(self, flightnumber): return self.dvoy.get_date(flightnumber) def picked_emp_for_voyage(self, picked, aircraftID, flightNumber): captain, copilot, fsm, fa1, fa2 = picked self.dvoy.assign_crew_to_voyage(aircraftID, captain, copilot, fsm, fa1, fa2) self.overwrite_voy_dict(flightNumber, aircraftID, captain, copilot, fsm, fa1, fa2) flightNumber = self.find_next_flightnumber(flightNumber) self.dvoy.assign_crew_to_voyage(aircraftID, captain, copilot, fsm, fa1, fa2) self.overwrite_voy_dict(flightNumber, aircraftID, captain, copilot, fsm, fa1, fa2) def overwrite_voy_dict(self, flightNumber, aircraftID, captain, copilot, fsm, fa1, fa2): voy_dict = self.dvoy.get_voy_dict() for key, value in voy_dict.items(): if key == flightNumber: value.append(aircraftID) value.append(captain) value.append(copilot) value.append(fsm) value.append(fa1) value.append(fa2) self.dvoy.overwrite_voy_file(voy_dict) def find_aircrafts(self): return self.dair.get_aircraft_dict() def find_next_flightnumber(self, flightNumber): voy_dict = self.dvoy.get_voy_dict() return_flight = False for key, value in voy_dict.items(): if return_flight == True: return key if key == flightNumber: return_flight = True return None def certain_date_voy(self, date): return self.dvoy.get_date_voy(date) def certain_week_voy(self, week): return self.dvoy.get_week_voy(week) def get_on_emp(self, date): name_list = [] onEmps = self.dvoy.get_on_emp(date) allEmps = Employee_Data().get_crew_dict() for onemp in onEmps: temp_list = [] for key, value in allEmps.items(): for ssn in onemp: if key == ssn: temp_list.append(value[0]) if temp_list != []: name_list.append(temp_list) return self.dvoy.get_on_emp(date), name_list def get_off_emp(self, date): allEmps = Employee_Data().get_crew_dict() onEmps, name_list = self.get_on_emp(date) # print(onEmps) offEmps = [] i = 0 for emp, value in allEmps.items(): if i != 0: isOff = True for onemp in onEmps: if emp in onemp: isOff = False if isOff == True: offEmps.append(value[0]) i += 1 return offEmps def emp_voy_for_week(self, week, ssn): manned_voy_list, na = self.dvoy.get_week_voy(week) employee_voy_dict = [] for line in manned_voy_list: man_counter = 6 while man_counter <= 10: temp_employee_voy_dict = [] if line[man_counter] == ssn: temp_employee_voy_dict.append(line[:5]) employee_voy_dict.append(temp_employee_voy_dict) man_counter += 1 name = self.get_name_for_ssn(ssn) return employee_voy_dict, name def get_name_for_ssn(self, ssn): emp_values = self.demp.get_chosen_emp(ssn) return emp_values[0] def check_time(self, year, month, day, hour, minute): time = "{}-{}-{}T{}:{}:00".format(year, month, day, hour, minute) print(time) voy_dict = self.dvoy.get_voy_dict() for key, value in voy_dict.items(): time_str = value[2] if time == time_str: return False return True
def __init__(self): #self.dapi = dapi_in self.dvoy = Voyage_Data() self.ddata = Destination_Data() self.demp = Employee_Data() self.dair = Aircraft_Data()