diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp index 0b6535a..8338cd9 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "AdminMenu.h" #include"InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h index 6144d4e..88ca794 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp index a833dd4..33978b9 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include #include "EmployeeMenu.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h index 907ab82..d29f301 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h @@ -4,14 +4,13 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" class EmployeeMenu { private: - ZenvyController m_zenvyController; + ZenvyController* m_zenvyController; public: EmployeeMenu() : m_zenvyController(new ZenvyController()) {}; void run(); diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp index c19318f..68a5d26 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "FinanceExecutiveMenu.h" #include "InputHelper.h" @@ -67,6 +66,15 @@ void FinanceExecutiveMenu::updatePayroll() } } +void FinanceExecutiveMenu::generatePayslips() +{ + util::Timestamp currentTimestamp; + util::clear(); + m_zenvyController->generatePayslips(); + std::cout << "Generated payslips for the month of " << currentTimestamp.getMonth() << "-" << currentTimestamp.getYear() << " successfully."; + util::pressEnter(); +} + /* * Function: FinanceExecutiveMenu::handleOperation * Description: Handles the finance executive’s menu choice and executes the corresponding action diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h index 664aa49..038658f 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include #include diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp index ac108dd..3875de5 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "HRManagerMenu.h" #include "InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h index ed7c5fa..158deaf 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp index f491dd4..6ae71ea 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "ITExecutiveMenu.h" #include "InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h index 5d32d37..e6cf86e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp index bba68d0..cfcc4c4 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.cpp @@ -70,9 +70,9 @@ static Enums::EmployeeDesignation getEmployeeDesignation() } } -void createEmployee(std::shared_ptr controller) +void createEmployee(ZenvyController* m_zenvyController) { - auto currentEmployee = controller->getCurrentEmployee(); + auto currentEmployee = m_zenvyController->getCurrentEmployee(); Enums::EmployeeType employeeType = getEmployeeType(currentEmployee->getEmployeeType()); Enums::EmployeeDesignation employeeDesignation = Enums::EmployeeDesignation::INVALID; std::string name, email, phone; @@ -98,12 +98,12 @@ void createEmployee(std::shared_ptr controller) util::read(email); std::cout << "Enter Phone: "; util::read(phone); - controller->createEmployee(employeeType, employeeDesignation, email, name, phone); + m_zenvyController->createEmployee(employeeType, employeeDesignation, email, name, phone); std::cout << "\nCreated Employee Successfully."; util::pressEnter(); } - void updateDesignation(std::shared_ptr m_zenvyController) + void updateDesignation(ZenvyController* m_zenvyController) { std::string selectedEmployeeId = selectEmployeeId(m_zenvyController->getEmployees(Enums::EmployeeType::GENERAL)); if (selectedEmployeeId.empty()) @@ -123,7 +123,7 @@ void createEmployee(std::shared_ptr controller) } } -void displayCandidateDetails(const std::vector>& shorlistedCandidates) +void displayCandidateDetails(const std::vector shorlistedCandidates) { util::clear(); std::cout << std::left @@ -148,12 +148,12 @@ void displayCandidateDetails(const std::vector>& shor } } -void addShortlistedCandidateAsEmployee(const std::shared_ptr& controller) +void addShortlistedCandidateAsEmployee(const ZenvyController* m_zenvyController) { int index; std::string name, email, phone; util::clear(); - std::vector> shortlistedCandidates = controller->getShorlistedCandidates(); + std::vector shortlistedCandidates = m_zenvyController->getShorlistedCandidates(); if (shortlistedCandidates.empty()) { std::cout << "No candidates Found!"; @@ -163,13 +163,13 @@ void addShortlistedCandidateAsEmployee(const std::shared_ptr& c displayCandidateDetails(shortlistedCandidates); std::cout << "Enter the Index: "; util::read(index); - auto currentEmployee = controller->getCurrentEmployee(); + auto currentEmployee = m_zenvyController->getCurrentEmployee(); Enums::EmployeeType employeeType; Enums::EmployeeDesignation employeeDesignation = Enums::EmployeeDesignation::INVALID; if (index > 0 && index <= shortlistedCandidates.size()) { employeeType = getEmployeeType(currentEmployee->getEmployeeType()); - std::shared_ptr candidate = shortlistedCandidates[index - 1]; + Candidate* candidate = shortlistedCandidates[index - 1]; switch (employeeType) { case Enums::EmployeeType::INVALID: @@ -190,7 +190,7 @@ void addShortlistedCandidateAsEmployee(const std::shared_ptr& c util::read(email); name = candidate->getCandidateName(); phone = candidate->getCandidatePhone(); - controller->createEmployee(employeeType, employeeDesignation, email, name, phone); + m_zenvyController->createEmployee(employeeType, employeeDesignation, email, name, phone); candidate->setCandidateStatus(Enums::CandidateStatus::HIRED); std::cout << "\nCreated Employee Successfully."; util::pressEnter(); diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h index cd82082..7cee5cb 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h @@ -15,12 +15,14 @@ #include "MenuHelper.h" #include "Validator.h" -void createEmployee(std::shared_ptr controller); -void updateDesignation(std::shared_ptr m_zenvyController); +void createEmployee(ZenvyController* m_zenvyController); +void updateDesignation(ZenvyController* m_zenvyController); +void displayCandidateDetails(const std::vector shorlistedCandidates); +void addShortlistedCandidateAsEmployee(const ZenvyController* m_zenvyController); -inline void viewPayslipHistory(std::shared_ptr controller) +inline void viewPayslipHistory(ZenvyController* m_zenvyController) { - auto employeePayslips = controller->getCurrentEmployee()->getEmployeePayslips(); + auto employeePayslips = m_zenvyController->getCurrentEmployee()->getEmployeePayslips(); util::clear(); if (employeePayslips.empty()) { @@ -51,10 +53,10 @@ inline void viewPayslipHistory(std::shared_ptr controller) util::pressEnter(); } -inline void viewProfile(std::shared_ptr controller) +inline void viewProfile(ZenvyController* m_zenvyController) { util::clear(); - std::shared_ptr currentEmployee = controller->getCurrentEmployee(); + const Employee* currentEmployee = m_zenvyController->getCurrentEmployee(); if (currentEmployee) { std::cout << std::left @@ -64,7 +66,7 @@ inline void viewProfile(std::shared_ptr controller) << "Email: " << currentEmployee->getEmployeeEmail() << std::endl << "Phone: " << currentEmployee->getEmployeePhone() << std::endl; if (currentEmployee->getEmployeeType() == Enums::EmployeeType::GENERAL) { - if (auto generalEmployee = std::dynamic_pointer_cast(currentEmployee)) + if (auto generalEmployee = dynamic_cast(currentEmployee)) { std::cout << "Designation: " << Enums::getEmployeeDesignationString(generalEmployee->getDesignation()) << std::endl; } @@ -94,10 +96,7 @@ inline void viewProfile(std::shared_ptr controller) } } -void displayCandidateDetails(const std::vector>& shorlistedCandidates); -void addShortlistedCandidateAsEmployee(const std::shared_ptr& controller); - -inline void updateProfile(std::shared_ptr m_zenvyController) +inline void updateProfile(ZenvyController* m_zenvyController) { int choice; std::string name, phone; @@ -148,10 +147,10 @@ inline void updateProfile(std::shared_ptr m_zenvyController) } } -inline std::string selectEmployeeId(std::vector> allEmployees) +inline std::string selectEmployeeId(std::vector& allEmployees) { int choice; - std::map> employeeList; + std::map employeeList; int index = 0; util::clear(); if (allEmployees.empty()) @@ -177,7 +176,7 @@ inline std::string selectEmployeeId(std::vector> << std::setw(20) << "Employee Designation" << std::endl; for (const auto& employee : employeeList) { - auto generalEmployee = std::dynamic_pointer_cast(employee.second); + auto generalEmployee = dynamic_cast(employee.second); std::cout << std::left << std::setw(10) << employee.first << std::setw(15) << employee.second->getId() @@ -209,14 +208,14 @@ inline std::string selectEmployeeId(std::vector> } } -inline void deactivateEmployee(const std::shared_ptr& controller) +inline void deactivateEmployee(const ZenvyController* m_zenvyController) { - std::string selectedEmployeeId = selectEmployeeId(controller->getEmployees()); + std::string selectedEmployeeId = selectEmployeeId(m_zenvyController->getEmployees()); if (selectedEmployeeId.empty()) { return; } - if (controller->deactivateEmployee(selectedEmployeeId)) + if (m_zenvyController->deactivateEmployee(selectedEmployeeId)) { std::cout << "Employee deactivated successfully\n"; util::pressEnter(); @@ -228,7 +227,7 @@ inline void deactivateEmployee(const std::shared_ptr& controlle } } -inline void viewEmployees(std::shared_ptr m_zenvyController) +inline void viewEmployees(ZenvyController* m_zenvyController) { util::clear(); std::cout << "Employee List\n"; @@ -261,13 +260,13 @@ inline void viewEmployees(std::shared_ptr m_zenvyController) util::pressEnter(); } -inline void searchEmployee(std::shared_ptr m_zenvyController) +inline void searchEmployee(ZenvyController* m_zenvyController) { std::string name; util::clear(); std::cout << "Enter Employee Name: "; util::read(name); - std::pair>> searchResults = m_zenvyController->searchEmployee(name); + std::pair> searchResults = m_zenvyController->searchEmployee(name); if (!(searchResults.second).empty()) { std::cout << std::left @@ -333,7 +332,7 @@ inline void searchEmployee(std::shared_ptr m_zenvyController) util::pressEnter(); } -inline void viewPayslip(std::shared_ptr controller) +inline void viewPayslip(ZenvyController* m_zenvyController) { int year, month; util::clear(); @@ -341,14 +340,14 @@ inline void viewPayslip(std::shared_ptr controller) util::read(year); std::cout << "Enter the month: "; util::read(month); - auto employee = controller->getCurrentEmployee(); + auto employee = m_zenvyController->getCurrentEmployee(); if (!employee) { std::cout << "No authenticated employee.\n"; util::pressEnter(); return; } - auto result = controller->getPayslipForMonth(employee->getId(), year, month); + auto result = m_zenvyController->getPayslipForMonth(employee->getId(), year, month); auto payroll = result.first; auto payslip = result.second; if (payroll && payslip) diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp index c16f65a..69e6cbd 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "TalentExecutiveMenu.h" #include "InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h index 93946ae..92e5a23 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp index ed22416..9cfacf6 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "TeamExecutiveMenu.h" #include "InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h index 747b5d4..307d26e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp index bb44739..6ead718 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include "TeamLeadMenu.h" #include "InputHelper.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h index 159f485..e34eee3 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include"ZenvyController.h" diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp index 2e619c4..50acbe5 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #include #include #include diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h index e400ba6..6952830 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h @@ -4,7 +4,6 @@ * Author: Trenser * Created: 02-Apr-2026 */ - #pragma once #include #include "AdminMenu.h"