Professional Documents
Culture Documents
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
def display_info(self):
return f"Name: {self._name}"
@property
def employee_id(self):
return self._employee_id
@name.setter
def employee_id(self, employee_id):
self._employee_id = employee_id
def display_info(self):
return (f"Name: {self._name}"
f"Employee Id: {self._employee_id}")
class HourlyWorker(Employee):
def __init__(self, name, employee_id, hours_worked, hourly_rate):
super().__init__(name, employee_id)
self._hours_worked = hours_worked
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
@property
def hourly_rate(self):
return self._hourly_rate
@hourly_rate.setter
def hourly_rate(self, hourly_rate):
self._hourly_rate = hourly_rate
def calculate_payment(self):
return self._hours_worked * self._hourly_rate
def display_info(self):
return (f"HourlyWorker\n{super().display_info()}\n"
f"Hours Worked: {self._hours_worked}\n"
f"Hourly Rate: {self._hourly_rate}")
# CLASS PIECEWORKER
class PieceWorker(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_produced
@pieces_completed.setter
def pieces_produced(self, pieces_completed):
self._pieces_produced = 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 self._pieces_produced * self._rate_per_piece
def display_info(self):
return (f"PieceWorker\n{super().display_info()}\n"
f"Pieces Produced: {self._pieces_produced}\n"
f"Rate Per Piece: {self._rate_per_piece}")
class SalesEmployee(Employee):
def __init__(self,name, employee_id, sales_amount, commission_rate):
super().__init__(name, employee_id)
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 commssion_rate(self, commission_rate):
self._commission_rate = commission_rate
def display_info(self):
return (f"Sales Amount: {self._sales_amount}\n"
f"Commission Rate: {self._commission_rate}%")
# CLASS HOURLYWORKER
# CLASS COMMISSIONWORKER
class CommissionWorker(SalesEmployee):
def __init__(self, name, employee_id, sales_amount,
commission_rate,base_salary):
super().__init__(name, employee_id,sales_amount, commission_rate)
self._base_salary = base_salary
@property
def base_salary(self):
return self._base_salary
@base_salary.setter
def sales_amount(self, sales_amount):
self._sales_amount = sales_amount
def calculate_payment(self):
return ((self._sales_amount * self._commission_rate) / 100) +
self._base_salary
def display_info(self):
return (f"CommissionWorker\n{super().display_info()}\n"
f"Base Salary: {self._sales_amount}\n")
# CLASS ENGINEERINGMANAGER