You are on page 1of 3

class Employee:

def __init__(self , name , employee_id):


self.__name = name
self.__employee_id = employee_id

@property
def name(self):
return self.__name
@name.setter
def name(self , name):
self.__name = name

@property
def employee_id(self):
return self.__employee_id
@employee_id.setter
def employee_id(self , employee_id):
self.__employee_id = employee_id

def display_result(self):
return (f"\nName: {self.__name}"
f"\nEmployee ID: {self.__employee_id}")

class Hourly_worker(Employee):
def __init__(self ,name , employee_id , hourly_rate , hours_worked):
super().__init__(name , employee_id)
self.__hourly_rate = hourly_rate
self.hours_worked = hours_worked

@property
def hourly_rate(self):
return self.__hourly_rate
@hourly_rate.setter
def hourly_rate(self , hourly_rate):
self.__hourly_rate = hourly_rate

@property
def hours_worked(self):
return self.__hours_worked
@hours_worked.setter
def hours_worked(self , hours_worked):
self.__hours_worked = hours_worked

def calculate_payment(self):
return f"Calculated Earnings: {self.__hourly_rate * self.__hours_worked}"

def display_result(self):
return (super().display_result() + f"\nHourly Rate: {self.__hourly_rate}"
f"\nHours Worked: {self.__hours_worked}")

class Piece_worker(Employee):
def __init__(self ,name , employee_id , pieces_completed ,
rate_per_piece ):
super().__init__(name ,employee_id)
self.__pieces_completed = pieces_completed
self.__rate_per_piece = rate_per_piece
@property
def pieces_completed(self):
return self.__pieces_completed
@pieces_completed.setter
def pieces_completed(self , pieces_completed):
self.__pieces_completed = pieces_completed

@property
def rate_per_piece(self):
return self.__rate_per_piece
@rate_per_piece.setter
def rate_per_piece(self , rate_per_piece):
self.__rate_per_piece = rate_per_piece

def calculate_payment(self):
return f"Calculated Earnings: {self.__pieces_completed *
self.__rate_per_piece}"

def display_result(self):
return (super().display_result() + f"\nRate Per Piece:
{self.__rate_per_piece}"
f"\nPieces Completed")

class Sales_employee:
def __init__(self , sales_amount , commission_rate):
self.__sales_amount = sales_amount
self.__commission_rate = commission_rate

@property
def sales_amount(self):
return self.__sales_amount
@sales_amount.setter
def sales_amount(self , sales_amount):
self.__sales_amount = sales_amount

@property
def commission_rate(self):
return self.__commission_rate
@commission_rate.setter
def commission_rate(self , commission_rate):
self.__commission_rate = commission_rate

def display_result(self):
return (f"Commission Rate: {self.__commssion_rate}")

class Commission_worker(Employee , Sales_employee):


def __init__(self ,name , employee_id , sales_amount , commission_rate ,
base_salary):
Employee.__init__(self, name , employee_id)
Sales_employee.__init__(self , sales_amount , commission_rate)
self.__base_salary = base_salary

@property
def base_salary(self):
return self.__base_salary
@base_salary.setter
def base_salary(self , base_salary):
self.__base_salary = base_salary
def calculate_payment(self):
return (f"{super.calculate_pay() / 100}"
f"Calculated Earnings: {self.__commision_rate *
self.__base_salary}")

def display_result(self):
return(super().display_result() + f"Base Salary: {self.__base_salary}")

e = Employee("Emp1" , "325345626")
# name , employee_id , hourly_rate , hours_worked
hw = Hourly_worker("Hourly Worker" , "12453452", 500 , 15)
# name , employee_id , pieces_completed , rate_per_piece
pw = Piece_worker("Piece Worker" , "253673527", 20 , 450)
# sales_amount , commission_rate
se = Sales_employee(2000 , 700)
# name , employee_id , sales_amount , commission_rate , base_salary
cw = Commission_worker("Commission" , "23765644" , 7000 , 500 , 7500)

print("EMPLOYEE")
print(e.display_result)
print("HOURLY WORKER")
print(hw.display_result())
print(hw.calculate_payment())
print("PIECE WORKER")
print(pw.display_result())
print(pw.calculate_payment())
print("SALES EMPLOYEE")
print(se.display_result())
print(se.calculate_payment())
print("COMMISSION WORKER")
print(cw.display_result())
print(cw.calculate_payment())

You might also like