Add View Payslip feature for employees
<UserStory> EMP010 : View Payslip </UserStory> <Changes> - Added Timestamp support to Payroll and Payslip models - Implemented getPayslipForMonth flow from Controller to Service - Enabled payslip retrieval based on year and month - Updated menus to allow payslip viewing - Enhanced MenuHelper with a unified viewPayslip helper - Added date-based filtering using Timestamp utilities </Changes> <Review> Smitha Mohan </Review>
This commit is contained in:
@@ -33,14 +33,14 @@ bool EmployeeMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
/*
|
||||
case 1:
|
||||
|
||||
/*case 1:
|
||||
m_zenvyController.applyLeave();
|
||||
break;
|
||||
break;*/
|
||||
case 2:
|
||||
m_zenvyController.viewPayslip();
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 3:
|
||||
/*case 3:
|
||||
m_zenvyController.viewPayslipHistory();
|
||||
break;
|
||||
case 4 :
|
||||
|
||||
@@ -32,6 +32,9 @@ bool HRManagerMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -32,6 +32,9 @@ bool ITExecutiveMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -296,4 +296,43 @@ inline void searchEmployee(std::shared_ptr<ZenvyController> m_zenvyController)
|
||||
std::cout << "No Employee found with this name" << std::endl;
|
||||
}
|
||||
util::pressEnter();
|
||||
}
|
||||
}
|
||||
|
||||
inline void viewPayslip(std::shared_ptr<ZenvyController> controller)
|
||||
{
|
||||
int year, month;
|
||||
util::clear();
|
||||
std::cout << "Enter the year: ";
|
||||
util::read(year);
|
||||
std::cout << "\nEnter the month: ";
|
||||
util::read(month);
|
||||
auto employee = controller->getCurrentEmployee();
|
||||
if (!employee)
|
||||
{
|
||||
std::cout << "No authenticated employee.\n";
|
||||
util::pressEnter();
|
||||
return;
|
||||
}
|
||||
auto result = controller->getPayslipForMonth(employee->getId(), year, month);
|
||||
auto payroll = result.first;
|
||||
auto payslip = result.second;
|
||||
if (payroll && payslip)
|
||||
{
|
||||
std::cout << "\nPayslip for " << employee->getEmployeeName()
|
||||
<< " (" << year << "-" << std::setw(2) << std::setfill('0') << month << ")\n\n";
|
||||
|
||||
std::cout << "Basic Salary : " << payroll->getBasicSalary() << "\n";
|
||||
std::cout << "House Rent Allowance : " << payroll->getHouseRentAllowance() << "\n";
|
||||
std::cout << "Food Allowance : " << payroll->getFoodAllowance() << "\n";
|
||||
std::cout << "Employee PF Contribution : " << payroll->getEmployeePFContribution() << "\n";
|
||||
std::cout << "Employer PF Contribution : " << payroll->getEmployerPFContribution() << "\n";
|
||||
std::cout << "----------------------------------------\n";
|
||||
std::cout << "Net Salary (after deductions): " << payslip->getSalary() << "\n";
|
||||
std::cout << "Generated on: " << payslip->getTimestamp().toString() << "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Payslip not available for " << year << "-" << month << ".\n";
|
||||
}
|
||||
util::pressEnter();
|
||||
}
|
||||
|
||||
@@ -32,6 +32,9 @@ bool TalentExecutiveMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -32,6 +32,9 @@ bool TeamExecutiveMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 4:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
@@ -32,6 +32,9 @@ bool TeamLeadMenu::handleOperation(int choice)
|
||||
{
|
||||
switch (choice)
|
||||
{
|
||||
case 2:
|
||||
viewPayslip(m_zenvyController);
|
||||
break;
|
||||
case 7:
|
||||
viewEmployees(m_zenvyController);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user