From e634bf2edfb0c9fd2a508ddfb9be72c323cb0d44 Mon Sep 17 00:00:00 2001 From: jacobo10s <142448228+JACOBO10S@users.noreply.github.com> Date: Tue, 30 Sep 2025 13:42:28 +0200 Subject: [PATCH] Create 2 --- 2 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 2 diff --git a/2 b/2 new file mode 100644 index 0000000000..ba814ce5bb --- /dev/null +++ b/2 @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.17; + + +abstract contract Employee +{ + uint public idNumber; + uint public managerId; + + constructor(uint _idNumber, uint _managerId) + { + idNumber = _idNumber; + managerId = _managerId; + } + + function getAnnualCost() public virtual returns (uint); +} + +contract Salaried is Employee +{ + uint public annualSalary; + + constructor(uint _idNumber, uint _managerId, uint _annualSalary) + Employee(_idNumber, _managerId) + { + annualSalary = _annualSalary; + } + + function getAnnualCost() public override view returns (uint) + { + return annualSalary; + } +} + +contract Hourly is Employee +{ + uint public hourlyRate; + + constructor(uint _idNumber, uint _managerId, uint _hourlyRate) Employee(_idNumber, _managerId) + { + hourlyRate = _hourlyRate; + } + + function getAnnualCost() public override view returns (uint) + { + return hourlyRate * 2080; + } +} + +contract Manager +{ + uint[] public employeeIds; + + function addReport(uint _reportId) public + { + employeeIds.push(_reportId); + } + + function resetReports() public + { + delete employeeIds; + } +} + +contract Salesperson is Hourly +{ + constructor(uint _idNumber, uint _managerId, uint _hourlyRate) + Hourly(_idNumber, _managerId, _hourlyRate) {} +} + + +contract EngineeringManager is Salaried, Manager +{ + constructor(uint _idNumber, uint _managerId, uint _annualSalary) + Salaried(_idNumber, _managerId, _annualSalary) {} +} + +contract InheritanceSubmission { + address public salesPerson; + address public engineeringManager; + + constructor(address _salesPerson, address _engineeringManager) { + salesPerson = _salesPerson; + engineeringManager = _engineeringManager; + } +}