From 18afdc4189d92c91a3dddc5ca634e7517002ffd1 Mon Sep 17 00:00:00 2001 From: Tinu Johnson Date: Mon, 6 Apr 2026 17:39:09 +0530 Subject: [PATCH] Error fixes and added main method function and objects SRS01 : Authentication - 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. Smitha Mohan --- Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp | 5 +- .../Trenser.Zenvy/Trenser.Zenvy.vcxproj | 2 +- Trenser.Zenvy/Trenser.Zenvy/models/Employee.h | 2 +- .../Trenser.Zenvy/models/GeneralEmployee.h | 3 +- .../Trenser.Zenvy/views/AdminMenu.cpp | 4 +- .../Trenser.Zenvy/views/EmployeeMenu.cpp | 4 +- .../views/FinanceExecutiveMenu.cpp | 4 +- .../Trenser.Zenvy/views/HRManagerMenu.cpp | 66 ++++++++-------- .../Trenser.Zenvy/views/ITExecutiveMenu.cpp | 4 +- .../views/TalentExecutiveMenu.cpp | 72 ++++++++--------- .../Trenser.Zenvy/views/TeamExecutiveMenu.cpp | 78 +++++++++---------- .../Trenser.Zenvy/views/TeamLeadMenu.cpp | 4 +- .../Trenser.Zenvy/views/UserInterface.cpp | 1 + 13 files changed, 126 insertions(+), 123 deletions(-) diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp index 5aa1174..4413069 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp @@ -1,4 +1,7 @@ +#include "UserInterface.h" int main() { - + UserInterface userInterFace; + userInterFace.run(); + return 0; } \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj index d128542..4424458 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj +++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj @@ -102,7 +102,7 @@ true _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - $(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;%(AdditionalIncludeDirectories) + $(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories) Console diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h index ef6e6b0..3509db1 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h @@ -62,5 +62,5 @@ public: void addAttendance(std::shared_ptr attendance); void addLeave(std::shared_ptr leave); Enums::EmployeeType getEmployeeType() const; - ~Employee() = default; + virtual ~Employee() = default; }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h index 0485bbb..6307e28 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h @@ -15,8 +15,7 @@ public: const std::string& email, const std::string& teamId, std::shared_ptr 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; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp index 2f6c762..ecad349 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp index ab5f108..99e3bc0 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp index c4b3578..081d281 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp index 283812a..7bf812c 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp index de23bbe..836ca39 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp index 9e6cc7d..45fbfba 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp index 0f0c197..12c300b 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp index 35e89cd..4204fb7 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp @@ -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: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp index 3bc4e6e..3429c22 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp @@ -52,6 +52,7 @@ bool UserInterface::handleOperation(int choice) return false; default: std::cout << "Enter a valid choice!" << std::endl; + util::pressEnter(); } return true; }