From c27ca5240a76428e1181265b1af6d364a4ad524a Mon Sep 17 00:00:00 2001 From: Tinu Johnson Date: Tue, 7 Apr 2026 20:32:30 +0530 Subject: [PATCH] Added MenuHelper feature for ViewEmployee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EMP007 : View Employees - Added MenuHelper.cpp and MenuHelper.h to project configuration - Moved viewEmployees() implementation from individual menu classes into MenuHelper - Added inline viewEmployees(shared_ptr) helper with formatted output - Added enumToString() to MenuHelper for employee role display - Updated AdminMenu, EmployeeMenu, FinanceExecutiveMenu, HRManagerMenu, ITExecutiveMenu, TalentExecutiveMenu, TeamExecutiveMenu, and TeamLeadMenu to use viewEmployees(m_zenvyController) instead of per‑menu implementations - Removed old viewEmployees() method from EmployeeMenu - Updated menu options to reflect new centralized viewEmployees() function Smitha Mohan --- .../Trenser.Zenvy/Trenser.Zenvy.vcxproj | 2 + .../Trenser.Zenvy/views/AdminMenu.cpp | 7 ++- .../Trenser.Zenvy/views/EmployeeMenu.cpp | 56 ++----------------- .../Trenser.Zenvy/views/EmployeeMenu.h | 1 - .../views/FinanceExecutiveMenu.cpp | 7 ++- .../Trenser.Zenvy/views/HRManagerMenu.cpp | 7 ++- .../Trenser.Zenvy/views/ITExecutiveMenu.cpp | 7 ++- .../Trenser.Zenvy/views/MenuHelper.cpp | 1 + .../Trenser.Zenvy/views/MenuHelper.h | 54 ++++++++++++++++++ .../views/TalentExecutiveMenu.cpp | 7 ++- .../Trenser.Zenvy/views/TeamExecutiveMenu.cpp | 7 ++- .../Trenser.Zenvy/views/TeamLeadMenu.cpp | 7 ++- 12 files changed, 89 insertions(+), 74 deletions(-) create mode 100644 Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp create mode 100644 Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj index 7b35079..3116d41 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj +++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj @@ -172,6 +172,7 @@ + @@ -222,6 +223,7 @@ + diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp index ecad349..d0c9d1f 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp @@ -2,6 +2,7 @@ #include "AdminMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include "MenuHelper.h" void AdminMenu::run() { @@ -36,11 +37,11 @@ bool AdminMenu::handleOperation(int choice) break; case 2: m_zenvyController.createEmployee(); - break; + break;*/ case 3: - m_zenvyController.viewEmployee(); + viewEmployees(m_zenvyController); break; - case 4: + /*case 4: m_zenvyController.deactivateEmployee(); break;*/ case 5: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp index 02c903f..c80732b 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp @@ -1,8 +1,9 @@ #include #include #include "EmployeeMenu.h" -#include"InputHelper.h" -#include"OutputHelper.h" +#include "InputHelper.h" +#include "OutputHelper.h" +#include "MenuHelper.h" void EmployeeMenu::run() { @@ -51,7 +52,7 @@ bool EmployeeMenu::handleOperation(int choice) m_zenvyController.viewTicketHistory(); break;*/ case 7: - viewEmployees(); + viewEmployees(m_zenvyController); break; /*case 8: m_zenvyController.searchEmployee(); @@ -79,52 +80,3 @@ bool EmployeeMenu::handleOperation(int choice) return true; } -void EmployeeMenu::viewEmployees() -{ - std::cout << std::left - << std::setw(10) << "EMPID" - << std::setw(20) << "Name" - << std::setw(15) << "Role" - << std::setw(10) << "TeamId" - << std::setw(25) << "Email" - << std::setw(15) << "Phone" - << std::endl; - auto employees = m_zenvyController->getEmployee(); - if (employees.empty()) - { - std::cout << "No employees found\n"; - return; - } - for (const auto& iterator : employees) - { - std::cout << std::left - << std::setw(10) << iterator->getEmployeeId() - << std::setw(20) << iterator->getEmployeeName() - << std::setw(15) << enumToString(iterator->getEmployeeType()) - << std::setw(10) << iterator->getEmployeeTeamId() - << std::setw(25) << iterator->getEmployeeEmail() - << std::setw(15) << iterator->getEmployeePhone() - << std::endl; - } -} - -std::string enumToString(Enums::EmployeeType type) -{ - switch (type) - { - case Enums::EmployeeType::IT: - return "IT Executive"; - case Enums::EmployeeType::FINANCE: - return "Finance Executive"; - case Enums::EmployeeType::GENERAL: - return "General Employee"; - case Enums::EmployeeType::HR: - return "HR"; - case Enums::EmployeeType::TAG: - return "Talent Acquacition Executive"; - case Enums::EmployeeType::TEAM: - return "Team Executive"; - case Enums::EmployeeType::INVALID: - return "Invalid"; - } -} \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h index 3ed9b3a..f082b66 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h @@ -10,6 +10,5 @@ public: EmployeeMenu() : m_zenvyController(std::make_shared()) {}; void run(); bool handleOperation(int); - void viewEmployees(); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp index 081d281..edb0b4d 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp @@ -2,6 +2,7 @@ #include "FinanceExecutiveMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void FinanceExecutiveMenu::run() { @@ -39,11 +40,11 @@ bool FinanceExecutiveMenu::handleOperation(int choice) break; case 3: m_zenvyController.viewPayslipHistory(); - break; + break;*/ case 4: - m_zenvyController.viewEmployees(); + viewEmployees(m_zenvyController); break; - case 5: + /*case 5: m_zenvyController.searchEmployee(); break; case 6: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp index 7bf812c..d1fe2b3 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp @@ -2,6 +2,7 @@ #include "HRManagerMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void HRManagerMenu::run() { @@ -40,9 +41,9 @@ bool HRManagerMenu::handleOperation(int choice) //case 3: // m_zenvyController.viewPayslipHistory(); // break; - //case 4: - // m_zenvyController.viewEmployees(); - // break; + case 4: + viewEmployees(m_zenvyController); + break; //case 5: // m_zenvyController.searchEmployee(); // break; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp index 836ca39..3823d53 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp @@ -2,6 +2,7 @@ #include "ITExecutiveMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void ITExecutiveMenu::run() { @@ -39,11 +40,11 @@ bool ITExecutiveMenu::handleOperation(int choice) break; case 3: m_zenvyController.viewPayslipHistory(); - break; + break;*/ case 4: - m_zenvyController.viewEmployees(); + viewEmployees(m_zenvyController); break; - case 5: + /*case 5: m_zenvyController.searchEmployee(); break; case 6: diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp new file mode 100644 index 0000000..36b2e02 --- /dev/null +++ b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp @@ -0,0 +1 @@ +#include "MenuHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h new file mode 100644 index 0000000..83c6d69 --- /dev/null +++ b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h @@ -0,0 +1,54 @@ +#pragma once +#include +#include "InputHelper.h" +#include "OutputHelper.h" + +inline void viewEmployees(std::shared_ptr m_zenvyController) +{ + std::cout << std::left + << std::setw(10) << "EMPID" + << std::setw(20) << "Name" + << std::setw(15) << "Role" + << std::setw(10) << "TeamId" + << std::setw(25) << "Email" + << std::setw(15) << "Phone" + << std::endl; + auto employees = m_zenvyController->getEmployee(); + if (employees.empty()) + { + std::cout << "No employees found\n"; + return; + } + for (const auto& iterator : employees) + { + std::cout << std::left + << std::setw(10) << iterator->getEmployeeId() + << std::setw(20) << iterator->getEmployeeName() + << std::setw(15) << enumToString(iterator->getEmployeeType()) + << std::setw(10) << iterator->getEmployeeTeamId() + << std::setw(25) << iterator->getEmployeeEmail() + << std::setw(15) << iterator->getEmployeePhone() + << std::endl; + } +} + +std::string enumToString(Enums::EmployeeType type) +{ + switch (type) + { + case Enums::EmployeeType::IT: + return "IT Executive"; + case Enums::EmployeeType::FINANCE: + return "Finance Executive"; + case Enums::EmployeeType::GENERAL: + return "General Employee"; + case Enums::EmployeeType::HR: + return "HR"; + case Enums::EmployeeType::TAG: + return "Talent Acquacition Executive"; + case Enums::EmployeeType::TEAM: + return "Team Executive"; + case Enums::EmployeeType::INVALID: + return "Invalid"; + } +} \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp index 45fbfba..686c74c 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp @@ -2,6 +2,7 @@ #include "TalentExecutiveMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void TalentExecutiveMenu::run() { @@ -40,9 +41,9 @@ bool TalentExecutiveMenu::handleOperation(int choice) //case 3: // m_zenvyController.viewPayslipHistory(); // break; - //case 4: - // m_zenvyController.viewEmployees(); - // break; + case 4: + viewEmployees(m_zenvyController); + break; //case 5: // m_zenvyController.searchEmployee(); // break; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp index 12c300b..a2c3232 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp @@ -2,6 +2,7 @@ #include "TeamExecutiveMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void TeamExecutiveMenu::run() { @@ -40,9 +41,9 @@ bool TeamExecutiveMenu::handleOperation(int choice) //case 3: // m_zenvyController.viewPayslipHistory(); // break; - //case 4: - // m_zenvyController.viewEmployees(); - // break; + case 4: + viewEmployees(m_zenvyController); + break; //case 5: // m_zenvyController.searchEmployee(); // break; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp index 4204fb7..3a581e6 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp @@ -2,6 +2,7 @@ #include "TeamLeadMenu.h" #include"InputHelper.h" #include"OutputHelper.h" +#include"MenuHelper.h" void TeamLeadMenu::run() { @@ -48,11 +49,11 @@ bool TeamLeadMenu::handleOperation(int choice) break; case 6: m_zenvyController.viewTicketHistory(); - break; + break;*/ case 7: - m_zenvyController.viewEmployees(); + viewEmployees(m_zenvyController); break; - case 8: + /*case 8: m_zenvyController.searchEmployee(); break; case 9: