Merged PR 968: UserStory EMP011 View Payslip History
Related work items: #956
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
#include<stdexcept>
|
#include<stdexcept>
|
||||||
#include"DataStore.h"
|
#include"DataStore.h"
|
||||||
|
|
||||||
|
using payslipMap = std::map<std::string, std::shared_ptr<Payslip>>;
|
||||||
|
|
||||||
class PayslipManagementService
|
class PayslipManagementService
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -92,6 +92,23 @@ namespace Enums {
|
|||||||
INVALID_PASSWORD
|
INVALID_PASSWORD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class Month
|
||||||
|
{
|
||||||
|
JANUARY,
|
||||||
|
FEBRUARY,
|
||||||
|
MARCH,
|
||||||
|
APRIL,
|
||||||
|
MAY,
|
||||||
|
JUNE,
|
||||||
|
JULY,
|
||||||
|
AUGUST,
|
||||||
|
SEPTEMBER,
|
||||||
|
OCTOBER,
|
||||||
|
NOVEMBER,
|
||||||
|
DECEMBER,
|
||||||
|
INVALID
|
||||||
|
};
|
||||||
|
|
||||||
inline std::string getAccountStatusString(AccountStatus status)
|
inline std::string getAccountStatusString(AccountStatus status)
|
||||||
{
|
{
|
||||||
switch (status)
|
switch (status)
|
||||||
@@ -171,6 +188,41 @@ namespace Enums {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline std::string getMonthString(Month month)
|
||||||
|
{
|
||||||
|
switch (month)
|
||||||
|
{
|
||||||
|
case Month::JANUARY :
|
||||||
|
return "January";
|
||||||
|
case Month::FEBRUARY:
|
||||||
|
return "February";
|
||||||
|
case Month::MARCH:
|
||||||
|
return "March";
|
||||||
|
case Month::APRIL:
|
||||||
|
return "April";
|
||||||
|
case Month::MAY:
|
||||||
|
return "May";
|
||||||
|
case Month::JUNE:
|
||||||
|
return "June";
|
||||||
|
case Month::JULY:
|
||||||
|
return "July";
|
||||||
|
case Month::AUGUST:
|
||||||
|
return "August";
|
||||||
|
case Month::SEPTEMBER:
|
||||||
|
return "September";
|
||||||
|
case Month::OCTOBER:
|
||||||
|
return "October";
|
||||||
|
case Month::NOVEMBER:
|
||||||
|
return "November";
|
||||||
|
case Month::DECEMBER:
|
||||||
|
return "December";
|
||||||
|
case Month::INVALID:
|
||||||
|
return "Invalid Month";
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline AccountStatus getAccountStatus(const std::string& input)
|
inline AccountStatus getAccountStatus(const std::string& input)
|
||||||
{
|
{
|
||||||
if (input == "ACTIVE")
|
if (input == "ACTIVE")
|
||||||
@@ -246,4 +298,39 @@ namespace Enums {
|
|||||||
}
|
}
|
||||||
return EmployeeDesignation::INVALID;
|
return EmployeeDesignation::INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline Month getMonth(const int inputMonth)
|
||||||
|
{
|
||||||
|
switch (inputMonth)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
return Month::JANUARY;
|
||||||
|
case 2:
|
||||||
|
return Month::FEBRUARY;
|
||||||
|
case 3:
|
||||||
|
return Month::MARCH;
|
||||||
|
case 4:
|
||||||
|
return Month::APRIL;
|
||||||
|
case 5:
|
||||||
|
return Month::MAY;
|
||||||
|
case 6:
|
||||||
|
return Month::JUNE;
|
||||||
|
case 7:
|
||||||
|
return Month::JULY;
|
||||||
|
case 8:
|
||||||
|
return Month::AUGUST;
|
||||||
|
case 9:
|
||||||
|
return Month::SEPTEMBER;
|
||||||
|
case 10:
|
||||||
|
return Month::OCTOBER;
|
||||||
|
case 11:
|
||||||
|
return Month::NOVEMBER;
|
||||||
|
case 12:
|
||||||
|
return Month::DECEMBER;
|
||||||
|
default:
|
||||||
|
return Month::INVALID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,25 +33,12 @@ bool EmployeeMenu::handleOperation(int choice)
|
|||||||
{
|
{
|
||||||
switch (choice)
|
switch (choice)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*case 1:
|
|
||||||
m_zenvyController.applyLeave();
|
|
||||||
break;*/
|
|
||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
m_zenvyController.viewPayslip();
|
||||||
break;
|
break;
|
||||||
/*case 3:
|
case 3:
|
||||||
m_zenvyController.viewPayslipHistory();
|
viewPayslipHistory(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
case 4 :
|
|
||||||
m_zenvyController.raiseTicket();
|
|
||||||
break;
|
|
||||||
case 5 :
|
|
||||||
m_zenvyController.viewTicket();
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
m_zenvyController.viewTicketHistory();
|
|
||||||
break;*/
|
|
||||||
case 7:
|
case 7:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
|
|||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ bool HRManagerMenu::handleOperation(int choice)
|
|||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ bool ITExecutiveMenu::handleOperation(int choice)
|
|||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include "Enums.h"
|
#include "Enums.h"
|
||||||
@@ -16,6 +18,33 @@
|
|||||||
void createEmployee(std::shared_ptr<ZenvyController> controller);
|
void createEmployee(std::shared_ptr<ZenvyController> controller);
|
||||||
void updateDesignation(std::shared_ptr<ZenvyController> m_zenvyController);
|
void updateDesignation(std::shared_ptr<ZenvyController> m_zenvyController);
|
||||||
|
|
||||||
|
inline void viewPayslipHistory(std::shared_ptr<ZenvyController> controller)
|
||||||
|
{
|
||||||
|
auto employeePayslips = controller->getCurrentEmployee()->getEmployeePayslips();
|
||||||
|
util::clear();
|
||||||
|
std::cout << "Payslips\n" << std::endl;
|
||||||
|
std::cout << std::left
|
||||||
|
<< std::setw(15) << "Date"
|
||||||
|
<< std::setw(15) << "Payslip ID"
|
||||||
|
<< std::setw(15) << "Employee ID"
|
||||||
|
<< std::setw(12) << "Salary"
|
||||||
|
<< std::setw(25) << "TimeStamp"
|
||||||
|
<< std::endl;
|
||||||
|
for (const auto& payslip : employeePayslips)
|
||||||
|
{
|
||||||
|
std::ostringstream dateStream;
|
||||||
|
dateStream << payslip.second->getTimestamp().getYear() << " - " << Enums::getMonthString(Enums::getMonth(payslip.second->getTimestamp().getMonth()));
|
||||||
|
std::cout << std::left
|
||||||
|
<< std::setw(15) << dateStream.str()
|
||||||
|
<< std::setw(15) << payslip.first
|
||||||
|
<< std::setw(15) << payslip.second->getEmployeeId()
|
||||||
|
<< std::setw(12) << payslip.second->getSalary()
|
||||||
|
<< std::setw(25) << payslip.second->getTimestamp().toString()
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
util::pressEnter();
|
||||||
|
}
|
||||||
|
|
||||||
inline void viewProfile(std::shared_ptr<ZenvyController> controller)
|
inline void viewProfile(std::shared_ptr<ZenvyController> controller)
|
||||||
{
|
{
|
||||||
util::clear();
|
util::clear();
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ bool TalentExecutiveMenu::handleOperation(int choice)
|
|||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ bool TeamExecutiveMenu::handleOperation(int choice)
|
|||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ bool TeamLeadMenu::handleOperation(int choice)
|
|||||||
case 2:
|
case 2:
|
||||||
viewPayslip(m_zenvyController);
|
viewPayslip(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
viewPayslipHistory(m_zenvyController);
|
||||||
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
viewEmployees(m_zenvyController);
|
viewEmployees(m_zenvyController);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user