from commissionemployee import CommissionEmployee from decimal import Decimal class SalariedCommissionEmployee(CommissionEmployee): """ An employee who gets paid a salary plus a commission. """ def __init__(self, first_name, last_name, ssn, gross_sales, commission_rate, base_salary): """ Construct a SalariedCommissionEmployee object. @param first_name the employee's first name. @param last_name the employee's last name. @param ssn the employee's SSN. @param gross_sales the employee's gross sales.. @param commission_rate the employee's commission rate. @param base_salary the employee's base salary. """ # First initialize the base class object. super().__init__(first_name, last_name, ssn, gross_sales, commission_rate) # Then the attributes of this subclass. self.base_salary = base_salary # validate via property @property def base_salary(self): return self._base_salary @base_salary.setter def base_salary(self, salary): """ Set base salary or raise ValueError if invalid. @salary the salary. """ if salary < Decimal('0.00'): raise ValueError('Base salary must be >= to 0') self._base_salary = salary def earnings(self): """ @return the employee's earnings. """ return super().earnings() + self.base_salary def __repr__(self): """ @return the string representation of an SalariedCommissionEmployee object. """ return ('Salaried' + super().__repr__() + f'\nbase salary: ${self.base_salary:,.2f}') ########################################################################## # (C) Copyright 2019 by Deitel & Associates, Inc. and # # Pearson Education, Inc. All Rights Reserved. # # # # DISCLAIMER: The authors and publisher of this book have used their # # best efforts in preparing the book. These efforts include the # # development, research, and testing of the theories and programs # # to determine their effectiveness. The authors and publisher make # # no warranty of any kind, expressed or implied, with regard to these # # programs or to the documentation contained in these books. The authors # # and publisher shall not be liable in any event for incidental or # # consequential damages in connection with, or arising out of, the # # furnishing, performance, or use of these programs. # ########################################################################## # Additional material (C) Copyright 2024 by Ronald Mak