Exemple #1
0
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()
Exemple #2
0
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