Error fixes and added main method function and objects

<SRS> SRS01 : Authentication </SRS>

 <Changes>
  - Fixed polymorphism errors in Employee base class by adding virtual destructor.
  - Corrected constructor mismatch in GeneralEmployee to properly call Employee constructor with EmployeeType.
  - Created UserInterface object in main() and invoked run() to start role-based menus.
 </Changes>

 <Review>
   Smitha Mohan
 </Review>
This commit is contained in:
Tinu Johnson
2026-04-06 17:39:09 +05:30
parent 719bf5e7b3
commit 18afdc4189
13 changed files with 126 additions and 123 deletions
@@ -1,4 +1,7 @@
#include "UserInterface.h"
int main()
{
UserInterface userInterFace;
userInterFace.run();
return 0;
}
@@ -102,7 +102,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -62,5 +62,5 @@ public:
void addAttendance(std::shared_ptr<Attendance> attendance);
void addLeave(std::shared_ptr<Leave> leave);
Enums::EmployeeType getEmployeeType() const;
~Employee() = default;
virtual ~Employee() = default;
};
@@ -15,8 +15,7 @@ public:
const std::string& email,
const std::string& teamId,
std::shared_ptr<Payroll> payroll,
Enums::EmployeeDesignation designation)
: Employee(id, password, name, phone, email, teamId, payroll), m_designation(designation) {}
Enums::EmployeeDesignation designation) : Employee(id, password, name, phone, email, teamId,Enums::EmployeeType::GENERAL, payroll), m_designation(designation) {}
Enums::EmployeeDesignation getDesignation() const;
void setDesignation(Enums::EmployeeDesignation designation);
~GeneralEmployee() = default;
@@ -31,7 +31,7 @@ bool AdminMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
/*case 1:
m_zenvyController.createHRManager();
break;
case 2:
@@ -42,7 +42,7 @@ bool AdminMenu::handleOperation(int choice)
break;
case 4:
m_zenvyController.deactivateEmployee();
break;
break;*/
case 5:
return false;
default:
@@ -31,7 +31,7 @@ bool EmployeeMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
/*case 1:
m_zenvyController.applyLeave();
break;
case 2:
@@ -69,7 +69,7 @@ bool EmployeeMenu::handleOperation(int choice)
break;
case 13:
m_zenvyController.viewAnnouncements();
break;
break;*/
case 14:
return false;
default:
@@ -31,7 +31,7 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
/*case 1:
m_zenvyController.applyLeave();
break;
case 2:
@@ -60,7 +60,7 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
break;
case 10:
m_zenvyController.updatePayroll();
break;
break;*/
case 11:
return false;
default:
@@ -31,39 +31,39 @@ bool HRManagerMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
m_zenvyController.applyLeave();
break;
case 2:
m_zenvyController.viewPayslip();
break;
case 3:
m_zenvyController.viewPayslipHistory();
break;
case 4:
m_zenvyController.viewEmployees();
break;
case 5:
m_zenvyController.searchEmployee();
break;
case 6:
m_zenvyController.viewNotifications();
break;
case 7:
m_zenvyController.viewAnnouncements();
break;
case 8:
m_zenvyController.createEmployee();
break;
case 9:
m_zenvyController.regularizeAttenance();
break;
case 10:
m_zenvyController.updateLeaveRequest();
break;
case 11:
m_zenvyController.registercandidateAsEmployee();
break;
//case 1:
// m_zenvyController.applyLeave();
// break;
//case 2:
// m_zenvyController.viewPayslip();
// break;
//case 3:
// m_zenvyController.viewPayslipHistory();
// break;
//case 4:
// m_zenvyController.viewEmployees();
// break;
//case 5:
// m_zenvyController.searchEmployee();
// break;
//case 6:
// m_zenvyController.viewNotifications();
// break;
//case 7:
// m_zenvyController.viewAnnouncements();
// break;
//case 8:
// m_zenvyController.createEmployee();
// break;
//case 9:
// m_zenvyController.regularizeAttenance();
// break;
//case 10:
// m_zenvyController.updateLeaveRequest();
// break;
//case 11:
// m_zenvyController.registercandidateAsEmployee();
// break;
case 12:
return false;
default:
@@ -31,7 +31,7 @@ bool ITExecutiveMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
/*case 1:
m_zenvyController.applyLeave();
break;
case 2:
@@ -54,7 +54,7 @@ bool ITExecutiveMenu::handleOperation(int choice)
break;
case 8:
m_zenvyController.resolveTicket();
break;
break;*/
case 9:
return false;
default:
@@ -31,42 +31,42 @@ bool TalentExecutiveMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
m_zenvyController.applyLeave();
break;
case 2:
m_zenvyController.viewPayslip();
break;
case 3:
m_zenvyController.viewPayslipHistory();
break;
case 4:
m_zenvyController.viewEmployees();
break;
case 5:
m_zenvyController.searchEmployee();
break;
case 6:
m_zenvyController.viewNotifications();
break;
case 7:
m_zenvyController.viewAnnouncements();
break;
case 8:
m_zenvyController.createNewJob();
break;
case 9:
m_zenvyController.viewJobOpenings();
break;
case 10:
m_zenvyController.addCandidate();
break;
case 11:
m_zenvyController.updateCandidateStatus();
break;
case 12:
m_zenvyController.viewShortlistedCandidates();
break;
//case 1:
// m_zenvyController.applyLeave();
// break;
//case 2:
// m_zenvyController.viewPayslip();
// break;
//case 3:
// m_zenvyController.viewPayslipHistory();
// break;
//case 4:
// m_zenvyController.viewEmployees();
// break;
//case 5:
// m_zenvyController.searchEmployee();
// break;
//case 6:
// m_zenvyController.viewNotifications();
// break;
//case 7:
// m_zenvyController.viewAnnouncements();
// break;
//case 8:
// m_zenvyController.createNewJob();
// break;
//case 9:
// m_zenvyController.viewJobOpenings();
// break;
//case 10:
// m_zenvyController.addCandidate();
// break;
//case 11:
// m_zenvyController.updateCandidateStatus();
// break;
//case 12:
// m_zenvyController.viewShortlistedCandidates();
// break;
case 13:
return false;
default:
@@ -31,45 +31,45 @@ bool TeamExecutiveMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
m_zenvyController.applyLeave();
break;
case 2:
m_zenvyController.viewPayslip();
break;
case 3:
m_zenvyController.viewPayslipHistory();
break;
case 4:
m_zenvyController.viewEmployees();
break;
case 5:
m_zenvyController.searchEmployee();
break;
case 6:
m_zenvyController.viewNotifications();
break;
case 7:
m_zenvyController.viewAnnouncements();
break;
case 8:
m_zenvyController.createTeam();
break;
case 9:
m_zenvyController.updateTeam();
break;
case 10:
m_zenvyController.removeTeam();
break;
case 11:
m_zenvyController.assignEmployee();
break;
case 12:
m_zenvyController.unassignEmployee();
break;
case 13:
m_zenvyController.viewTeams();
break;
//case 1:
// m_zenvyController.applyLeave();
// break;
//case 2:
// m_zenvyController.viewPayslip();
// break;
//case 3:
// m_zenvyController.viewPayslipHistory();
// break;
//case 4:
// m_zenvyController.viewEmployees();
// break;
//case 5:
// m_zenvyController.searchEmployee();
// break;
//case 6:
// m_zenvyController.viewNotifications();
// break;
//case 7:
// m_zenvyController.viewAnnouncements();
// break;
//case 8:
// m_zenvyController.createTeam();
// break;
//case 9:
// m_zenvyController.updateTeam();
// break;
//case 10:
// m_zenvyController.removeTeam();
// break;
//case 11:
// m_zenvyController.assignEmployee();
// break;
//case 12:
// m_zenvyController.unassignEmployee();
// break;
//case 13:
// m_zenvyController.viewTeams();
// break;
case 14:
return false;
default:
@@ -31,7 +31,7 @@ bool TeamLeadMenu::handleOperation(int choice)
{
switch (choice)
{
case 1:
/*case 1:
m_zenvyController.applyLeave();
break;
case 2:
@@ -75,7 +75,7 @@ bool TeamLeadMenu::handleOperation(int choice)
break;
case 15:
m_zenvyController.updateLeaveRequest();
break;
break;*/
case 16:
return false;
default:
@@ -52,6 +52,7 @@ bool UserInterface::handleOperation(int choice)
return false;
default:
std::cout << "Enter a valid choice!" << std::endl;
util::pressEnter();
}
return true;
}