Merged PR 968: UserStory EMP011 View Payslip History
Related work items: #956
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
#include<stdexcept>
|
||||
#include"DataStore.h"
|
||||
|
||||
using payslipMap = std::map<std::string, std::shared_ptr<Payslip>>;
|
||||
|
||||
class PayslipManagementService
|
||||
{
|
||||
private:
|
||||
|
||||
@@ -92,6 +92,23 @@ namespace Enums {
|
||||
INVALID_PASSWORD
|
||||
};
|
||||
|
||||
enum class Month
|
||||
{
|
||||
JANUARY,
|
||||
FEBRUARY,
|
||||
MARCH,
|
||||
APRIL,
|
||||
MAY,
|
||||
JUNE,
|
||||
JULY,
|
||||
AUGUST,
|
||||
SEPTEMBER,
|
||||
OCTOBER,
|
||||
NOVEMBER,
|
||||
DECEMBER,
|
||||
INVALID
|
||||
};
|
||||
|
||||
inline std::string getAccountStatusString(AccountStatus 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)
|
||||
{
|
||||
if (input == "ACTIVE")
|
||||
@@ -246,4 +298,39 @@ namespace Enums {
|
||||
}
|
||||
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)
|
||||
{
|
||||
|
||||
/*case 1:
|
||||
m_zenvyController.applyLeave();
|
||||
break;*/
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
m_zenvyController.viewPayslip();
|
||||
break;
|
||||
/*case 3:
|
||||
m_zenvyController.viewPayslipHistory();
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4 :
|
||||
m_zenvyController.raiseTicket();
|
||||
break;
|
||||
case 5 :
|
||||
m_zenvyController.viewTicket();
|
||||
break;
|
||||
case 6:
|
||||
m_zenvyController.viewTicketHistory();
|
||||
break;*/
|
||||
case 7:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -67,6 +67,10 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -35,6 +35,9 @@ bool HRManagerMenu::handleOperation(int choice)
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -35,6 +35,9 @@ bool ITExecutiveMenu::handleOperation(int choice)
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <utility>
|
||||
#include "Enums.h"
|
||||
@@ -16,6 +18,33 @@
|
||||
void createEmployee(std::shared_ptr<ZenvyController> controller);
|
||||
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)
|
||||
{
|
||||
util::clear();
|
||||
|
||||
@@ -35,6 +35,9 @@ bool TalentExecutiveMenu::handleOperation(int choice)
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -35,6 +35,9 @@ bool TeamExecutiveMenu::handleOperation(int choice)
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -35,6 +35,9 @@ bool TeamLeadMenu::handleOperation(int choice)
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
viewPayslipHistory(m_zenvyController);
|
||||
break;
|
||||
case 7:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user