Merged PR 924: UserStory EMP007 View Employees
Related work items: #952
This commit is contained in:
@@ -109,11 +109,11 @@ std::string Payroll::serialize() const
|
||||
std::shared_ptr<Payroll> Payroll::deserialize(const std::string& record)
|
||||
{
|
||||
std::string id, employeeId;
|
||||
std::string basicSalaryStr, houseRentAllowanceString, foodAllowanceString, employeePFString, employerPFString;
|
||||
std::string basicSalaryString, houseRentAllowanceString, foodAllowanceString, employeePFString, employerPFString;
|
||||
std::istringstream serializedPayroll(record);
|
||||
std::getline(serializedPayroll, id, ',');
|
||||
std::getline(serializedPayroll, employeeId, ',');
|
||||
std::getline(serializedPayroll, basicSalaryStr, ',');
|
||||
std::getline(serializedPayroll, basicSalaryString, ',');
|
||||
std::getline(serializedPayroll, houseRentAllowanceString, ',');
|
||||
std::getline(serializedPayroll, foodAllowanceString, ',');
|
||||
std::getline(serializedPayroll, employeePFString, ',');
|
||||
@@ -121,7 +121,7 @@ std::shared_ptr<Payroll> Payroll::deserialize(const std::string& record)
|
||||
|
||||
try
|
||||
{
|
||||
double basicSalary = std::stod(basicSalaryStr);
|
||||
double basicSalary = std::stod(basicSalaryString);
|
||||
double houseRentAllowance = std::stod(houseRentAllowanceString);
|
||||
double foodAllowance = std::stod(foodAllowanceString);
|
||||
double employeePFContribution = std::stod(employeePFString);
|
||||
|
||||
@@ -162,48 +162,76 @@ namespace Enums {
|
||||
inline AccountStatus getAccountStatus(const std::string& input)
|
||||
{
|
||||
if (input == "ACTIVE")
|
||||
{
|
||||
return AccountStatus::ACTIVE;
|
||||
}
|
||||
if (input == "INACTIVE")
|
||||
{
|
||||
return AccountStatus::INACTIVE;
|
||||
}
|
||||
return AccountStatus::INACTIVE;
|
||||
}
|
||||
|
||||
inline EmployeeType getEmployeeType(const std::string& input)
|
||||
{
|
||||
if (input == "GENERAL")
|
||||
{
|
||||
return EmployeeType::GENERAL;
|
||||
}
|
||||
if (input == "IT")
|
||||
{
|
||||
return EmployeeType::IT;
|
||||
}
|
||||
if (input == "FINANCE")
|
||||
{
|
||||
return EmployeeType::FINANCE;
|
||||
}
|
||||
if (input == "TALENT_ACQUISITION")
|
||||
{
|
||||
return EmployeeType::TALENT_ACQUISITION;
|
||||
}
|
||||
if (input == "HR")
|
||||
{
|
||||
return EmployeeType::HR;
|
||||
}
|
||||
if (input == "TEAM")
|
||||
{
|
||||
return EmployeeType::TEAM;
|
||||
}
|
||||
if (input == "ADMIN")
|
||||
{
|
||||
return EmployeeType::ADMIN;
|
||||
}
|
||||
return EmployeeType::INVALID;
|
||||
}
|
||||
|
||||
inline TeamStatus getTeamStatus(const std::string& str)
|
||||
{
|
||||
if (str == "IN_TEAM")
|
||||
{
|
||||
return TeamStatus::IN_TEAM;
|
||||
}
|
||||
if (str == "NOT_IN_TEAM")
|
||||
{
|
||||
return TeamStatus::NOT_IN_TEAM;
|
||||
}
|
||||
return TeamStatus::NOT_IN_TEAM;
|
||||
}
|
||||
|
||||
inline EmployeeDesignation getEmployeeDesignation(const std::string& input)
|
||||
{
|
||||
if (input == "JUNIOR")
|
||||
{
|
||||
return EmployeeDesignation::JUNIOR;
|
||||
}
|
||||
if (input == "SENIOR")
|
||||
{
|
||||
return EmployeeDesignation::SENIOR;
|
||||
}
|
||||
if (input == "TEAM_LEAD")
|
||||
{
|
||||
return EmployeeDesignation::TEAM_LEAD;
|
||||
}
|
||||
return EmployeeDesignation::INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,10 @@ bool util::isPhoneNumberValid(const std::string& phoneNumber) {
|
||||
|
||||
bool util::isEmailValid(const std::string& email) {
|
||||
size_t index = email.find('@');
|
||||
if (index == std::string::npos) return false;
|
||||
if (index == std::string::npos)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (email.find('@', index + 1) != std::string::npos)
|
||||
{
|
||||
return false;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <iostream>
|
||||
#include "AdminMenu.h"
|
||||
#include "InputHelper.h"
|
||||
#include "OutputHelper.h"
|
||||
#include"InputHelper.h"
|
||||
#include"OutputHelper.h"
|
||||
#include "MenuHelper.h"
|
||||
|
||||
void AdminMenu::run()
|
||||
@@ -13,7 +13,7 @@ void AdminMenu::run()
|
||||
{
|
||||
int choice;
|
||||
util::clear();
|
||||
std::cout << "Admin Menu\n1. Create User\n2. View Employee\n3. Deactivate Employee\n4. Search Employee\n5. Update Profile\n6. Logout\nEnter your Choice: ";
|
||||
std::cout << "Admin Menu\n1. Create User\n2. View Employees\n3. Deactivate Employee\n4. Search Employee\n5. Update Profile\n6. Logout\nEnter your Choice: ";
|
||||
util::read(choice);
|
||||
if (!handleOperation(choice))
|
||||
{
|
||||
@@ -35,9 +35,9 @@ bool AdminMenu::handleOperation(int choice)
|
||||
case 1:
|
||||
createEmployee(m_zenvyController);
|
||||
break;
|
||||
/*case 2:
|
||||
m_zenvyController.viewEmployee();
|
||||
break;*/
|
||||
case 2:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
deactivateEmployee(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <iostream>
|
||||
#include<iomanip>
|
||||
#include "EmployeeMenu.h"
|
||||
#include "InputHelper.h"
|
||||
#include "OutputHelper.h"
|
||||
@@ -50,11 +51,11 @@ bool EmployeeMenu::handleOperation(int choice)
|
||||
break;
|
||||
case 6:
|
||||
m_zenvyController.viewTicketHistory();
|
||||
break;
|
||||
break;*/
|
||||
case 7:
|
||||
viewEmployees();
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
case 8:
|
||||
/*case 8:
|
||||
m_zenvyController.searchEmployee();
|
||||
break;
|
||||
case 9:
|
||||
@@ -83,6 +84,3 @@ bool EmployeeMenu::handleOperation(int choice)
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ void FinanceExecutiveMenu::updatePayroll()
|
||||
util::read(foodAllowance);
|
||||
std::cout << "Enter the New EmployeePFContribution: ";
|
||||
util::read(employeePFContribution);
|
||||
std::cout << "Enter the New EmplyerPFContribution: ";
|
||||
std::cout << "Enter the New EmployerPFContribution: ";
|
||||
util::read(employerPFContribution);
|
||||
m_zenvyController->updateSalary(employeeId, basicSalary, houseRentAllowance, foodAllowance, employeePFContribution, employerPFContribution);
|
||||
std::cout << "Payroll Updated";
|
||||
@@ -67,9 +67,9 @@ bool FinanceExecutiveMenu::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;
|
||||
@@ -99,5 +99,3 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,39 +32,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 1:
|
||||
// m_zenvyController.applyLeave();
|
||||
// break;
|
||||
//case 2:
|
||||
// m_zenvyController.viewPayslip();
|
||||
// break;
|
||||
//case 3:
|
||||
// m_zenvyController.viewPayslipHistory();
|
||||
// break;
|
||||
case 4:
|
||||
m_zenvyController.viewEmployees();
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
case 5:
|
||||
m_zenvyController.searchEmployee();
|
||||
break;
|
||||
case 6:
|
||||
m_zenvyController.viewNotifications();
|
||||
break;
|
||||
case 7:
|
||||
m_zenvyController.viewAnnouncements();
|
||||
break;*/
|
||||
//case 5:
|
||||
// m_zenvyController.searchEmployee();
|
||||
// break;
|
||||
//case 6:
|
||||
// m_zenvyController.viewNotifications();
|
||||
// break;
|
||||
//case 7:
|
||||
// m_zenvyController.viewAnnouncements();
|
||||
// break;
|
||||
case 8:
|
||||
createEmployee(m_zenvyController);
|
||||
break;
|
||||
/*case 9:
|
||||
m_zenvyController.regularizeAttenance();
|
||||
break;
|
||||
case 10:
|
||||
m_zenvyController.updateLeaveRequest();
|
||||
break;
|
||||
case 11:
|
||||
m_zenvyController.registercandidateAsEmployee();
|
||||
break;*/
|
||||
//case 9:
|
||||
// m_zenvyController.regularizeAttenance();
|
||||
// break;
|
||||
//case 10:
|
||||
// m_zenvyController.updateLeaveRequest();
|
||||
// break;
|
||||
//case 11:
|
||||
// m_zenvyController.registercandidateAsEmployee();
|
||||
// break;
|
||||
case 12:
|
||||
updateProfile(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -40,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:
|
||||
|
||||
@@ -119,3 +119,36 @@ inline void deactivateEmployee(const std::shared_ptr<ZenvyController>& controlle
|
||||
util::pressEnter();
|
||||
}
|
||||
}
|
||||
|
||||
inline void viewEmployees(std::shared_ptr<ZenvyController> m_zenvyController)
|
||||
{
|
||||
util::clear();
|
||||
std::cout << "Employee List\n";
|
||||
auto employees = m_zenvyController->getEmployees();
|
||||
if (employees.empty())
|
||||
{
|
||||
std::cout << "No employees found\n";
|
||||
util::pressEnter();
|
||||
return;
|
||||
}
|
||||
std::cout << std::left
|
||||
<< std::setw(15) << "Employee ID"
|
||||
<< std::setw(25) << "Name"
|
||||
<< std::setw(25) << "Role"
|
||||
<< std::setw(25) << "Email"
|
||||
<< std::setw(15) << "Phone"
|
||||
<< std::setw(10) << "TeamId"
|
||||
<< std::endl;
|
||||
for (const auto& iterator : employees)
|
||||
{
|
||||
std::cout << std::left
|
||||
<< std::setw(15) << iterator->getId()
|
||||
<< std::setw(25) << iterator->getEmployeeName()
|
||||
<< std::setw(25) << Enums::getEmployeeTypeString(iterator->getEmployeeType())
|
||||
<< std::setw(25) << iterator->getEmployeeEmail()
|
||||
<< std::setw(15) << iterator->getEmployeePhone()
|
||||
<< std::setw(10) << iterator->getEmployeeTeamId()
|
||||
<< std::endl;
|
||||
}
|
||||
util::pressEnter();
|
||||
}
|
||||
|
||||
@@ -41,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;
|
||||
|
||||
@@ -41,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;
|
||||
|
||||
@@ -49,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:
|
||||
|
||||
Reference in New Issue
Block a user