diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp index 98be55b..a2f2a56 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp @@ -14,7 +14,7 @@ void EmployeeMenu::run() { int choice; util::clear(); - std::cout << "Employee Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. Raise Ticket\n5. View Ticket\n6. View Ticket History\n7. View Employees\n8. Search Employee\n9. View Team Members\n10. Book Meeting Room\n11. View Booking History\n12. View Notification\n13. View Announcements\n14. Update Profile\n15. Logout\nEnter your Choice: "; + std::cout << "Employee Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. Raise Ticket\n5. View Ticket\n6. View Ticket History\n7. View Employees\n8. Search Employee\n9. View Team Members\n10. Book Meeting Room\n11. View Booking History\n12. View Notification\n13. View Announcements\n14. Update Profile\n15. View Profile\n16. Exit\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -62,6 +62,9 @@ bool EmployeeMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 15: + viewProfile(m_zenvyController); + break; + case 16: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp index 396603f..70885aa 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.cpp @@ -13,7 +13,7 @@ void FinanceExecutiveMenu::run() { int choice; util::clear(); - std::cout << "Finance Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Resolve Ticket\n9. Generate Payslip\n10. Update Payroll\n11. Update Profile\n12. Logout\nEnter your Choice: "; + std::cout << "Finance Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Resolve Ticket\n9. Generate Payslip\n10. Update Payroll\n11. Update Profile\n12. View Profile \n13. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -68,6 +68,9 @@ bool FinanceExecutiveMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 12: + viewProfile(m_zenvyController); + break; + case 13: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp index bcf6ce8..0709976 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.cpp @@ -13,7 +13,7 @@ void HRManagerMenu::run() { int choice; util::clear(); - std::cout << "HR Manager Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create Employee\n9. Regularize Attendance\n10. Update Leave Request\n11. Register CandidateAsEmployee\n12. Update Profile\n13. Deactivate Employee\n14. Logout\nEnter your Choice: "; + std::cout << "HR Manager Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create Employee\n9. Regularize Attendance\n10. Update Leave Request\n11. Register CandidateAsEmployee\n12. Update Profile\n13. Deactivate Employee\n14. View Profile\n15. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -48,6 +48,9 @@ bool HRManagerMenu::handleOperation(int choice) deactivateEmployee(m_zenvyController); break; case 14: + viewProfile(m_zenvyController); + break; + case 15: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp index f9aa3d3..d691228 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.cpp @@ -13,7 +13,7 @@ void ITExecutiveMenu::run() { int choice; util::clear(); - std::cout << "IT Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Resolve Ticket\n9. Update Profile\n10. Logout\nEnter your Choice: "; + std::cout << "IT Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Resolve Ticket\n9. Update Profile\n10. View Profile\n11. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -42,6 +42,9 @@ bool ITExecutiveMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 10: + viewProfile(m_zenvyController); + break; + case 11: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h index 1b7aac7..09b084e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/MenuHelper.h @@ -15,6 +15,49 @@ void createEmployee(std::shared_ptr controller); +inline void viewProfile(std::shared_ptr controller) +{ + util::clear(); + std::shared_ptr currentEmployee = controller->getCurrentEmployee(); + if (currentEmployee) + { + std::cout << std::left + << "Employee ID: " << currentEmployee->getId() << std::endl + << "Name: " << currentEmployee->getEmployeeName() << std::endl + << "Role: " << Enums::getEmployeeTypeString(currentEmployee->getEmployeeType()) << std::endl + << "Email: " << currentEmployee->getEmployeeEmail() << std::endl + << "Phone: " << currentEmployee->getEmployeePhone() << std::endl; + if (currentEmployee->getEmployeeType() == Enums::EmployeeType::GENERAL) { + if (auto generalEmployee = std::dynamic_pointer_cast(currentEmployee)) + { + std::cout << "Designation: " << Enums::getEmployeeDesignationString(generalEmployee->getDesignation()) << std::endl; + } + } + std::cout << "Team ID: " << (currentEmployee->getEmployeeTeamId().empty() ? "NULL " : (currentEmployee->getEmployeeTeamId())) << std::endl + << "Team Status: " << Enums::getTeamStatusString(currentEmployee->getEmployeeTeamStatus()) << std::endl; + if (const auto& payroll = currentEmployee->getPayroll()) + { + std::cout << std::endl + << "Payroll Details" << std::endl + << "Payroll ID: " << payroll->getId() << std::endl + << "Basic Salary: " << payroll->getBasicSalary() << std::endl + << "Employee PF Contribution: " << payroll->getEmployeePFContribution() << std::endl + << "Employer PF Contribution: " << payroll->getEmployerPFContribution() << std::endl + << "Food Allowance: " << payroll->getFoodAllowance() << std::endl + << "House Rent Allowance: " << payroll->getHouseRentAllowance() << std::endl; + } + else + { + std::cout << "Unable to fetch the payroll details\n"; + } + util::pressEnter(); + } + else + { + throw std::runtime_error("Unexpected Error Occured"); + } +} + inline void updateProfile(std::shared_ptr m_zenvyController) { int choice; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp index 18afc15..1c28319 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.cpp @@ -13,7 +13,7 @@ void TalentExecutiveMenu::run() { int choice; util::clear(); - std::cout << "Talent Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create New Job\n9. View Job Opening\n10. Add Candidate\n11. UpdateCandidate Status\n12. View Shortlisted Candidate\n13. Update Profile\n14. Logout\nEnter your Choice: "; + std::cout << "Talent Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create New Job\n9. View Job Opening\n10. Add Candidate\n11. UpdateCandidate Status\n12. View Shortlisted Candidate\n13. Update Profile\n14. View Profile\n15. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -42,6 +42,9 @@ bool TalentExecutiveMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 14: + viewProfile(m_zenvyController); + break; + case 15: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp index d0fd1f9..89ebf9d 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.cpp @@ -13,7 +13,7 @@ void TeamExecutiveMenu::run() { int choice; util::clear(); - std::cout << "Team Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create Team\n9. Update Team\n10. Remove Team\n11. Assign Employee\n12. Unassign Employee\n13. View Teams\n14. Update Profile\n15. Logout\nEnter your Choice: "; + std::cout << "Team Executive Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. View Employees\n5. Search Employee\n6. View Notification\n7. View Announcements\n8. Create Team\n9. Update Team\n10. Remove Team\n11. Assign Employee\n12. Unassign Employee\n13. View Teams\n14. Update Profile\n15. View Profile\n16. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -42,6 +42,9 @@ bool TeamExecutiveMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 15: + viewProfile(m_zenvyController); + break; + case 16: return false; default: std::cout << "Enter a valid choice!" << std::endl; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp index 694b509..0084158 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.cpp @@ -13,7 +13,7 @@ void TeamLeadMenu::run() { int choice; util::clear(); - std::cout << "Team Lead Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. Raise Ticke\n5. View Ticket\n6. View Ticket History\n7. View Employees\n8. Search Employee\n9. View Team Members\n10. Book Meeting Room\n11. View Booking History\n12. View Notification\n13. View Announcements\n4. Regularize Attendance\n15. Update Leave Request\n16. Update Profile\n17. Logout\nEnter your Choice: "; + std::cout << "Team Lead Menu\n1. Apply Leave\n2. View Payslip\n3. View Payslip History\n4. Raise Ticke\n5. View Ticket\n6. View Ticket History\n7. View Employees\n8. Search Employee\n9. View Team Members\n10. Book Meeting Room\n11. View Booking History\n12. View Notification\n13. View Announcements\n4. Regularize Attendance\n15. Update Leave Request\n16. Update Profile\n17. View Profile\n18. Logout\nEnter your Choice: "; util::read(choice); if (!handleOperation(choice)) { @@ -42,6 +42,9 @@ bool TeamLeadMenu::handleOperation(int choice) updateProfile(m_zenvyController); break; case 17: + viewProfile(m_zenvyController); + break; + case 18: return false; default: std::cout << "Enter a valid choice!" << std::endl;