Commit Graph

71 Commits

Author SHA1 Message Date
Ajmal Jalaludeen f15d5b7f1d Updates based on comments
<UserStory> EMP012 : Add Shorlisted Candidates As Employee </UserStory>

<Changes>
- Added clear method to clear console before displaying candidate details in MenuHelper.cpp
- Removed spaces in MenuHelper.h
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-16 10:15:16 +05:30
Ajmal Jalaludeen 1836be1234 To Add Shortlisted Candidates As Employee
<UserStory> EMP012 : Add Shorlisted Candidates As Employee </UserStory>

<Changes>
- Added getShorlistedCandidates method in ZenvyController
- Added candidateMap to store candidate data in DataStore.h
- Added addShortlistedCandidatesAsEmployee method in EmployeeManagementService.h and implemented the logic.
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-16 10:14:43 +05:30
Tinu Johnson 508f043228 Merged PR 964: UserStory EMP005 Update Designation
Related work items: #949
2026-04-16 09:42:01 +05:30
Tinu Johnson ce86b7f59e Update Update Designation functionality based on review
<UserStory> EMP005 : Update Designation </UserStory>

<Changes>
 - Refactor GeneralEmployee constructors clean.
 - update Designation logic.
 - Improve menu display messages.
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-16 09:31:22 +05:30
Tinu Johnson 55f94f4d45 Update Update Designation functionality
<UserStory> EMP005 : Update Designation </UserStory>

<Changes>
 - Enabled HR Manager menu option to update employee designation
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-16 09:31:16 +05:30
Tinu Johnson 5398f5a0ee Add Update Designation functionality for General Employees
<UserStory> EMP005 : Update Designation </UserStory>

<Changes>
 - Added updateDesignation method in ZenvyController and EmployeeManagementService.
 - Implemented update designation logic with authorization checks.
 - Enabled Admin menu option to update employee designation
 - Display employee designation in employee selection list
 - Extended GeneralEmployee to expose and update designation
 - Integrated role selection flow in MenuHelper.
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-16 09:28:38 +05:30
joelthomastrenser a8ca6be135 Merged PR 965: UserStory EMP009 Generate Payslips
Related work items: #954
2026-04-14 17:32:19 +05:30
joelthomastrenser 454cd2d342 Implement Payslip Generation Feature
<UserStory> EMP009 : Generate Payslips </UserStory>

<Changes>
 - Updated Payslip model to store employee, salary, and date details
 - Added payslip storage to DataStore and file load/save support
 - Added logic to generate payslips once per month per employee
 - Restricted payslip generation to finance role
 - Linked payslips to employees during load and creation
 - Added month, year, and day helpers to Timestamp
 - Added payslip generation option to Finance Executive menu
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-14 17:31:27 +05:30
Jissin Mathew be01a05937 Merged PR 962: Implement View Employee Profile
Related work items: #947
2026-04-14 17:12:30 +05:30
joelthomastrenser 06d3760663 Implement Review Fixes
<UserStory> EMP003 : View Profile </UserStory>

<Changes>
- Avoid unecessary copies.
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-14 17:09:29 +05:30
Jissin Sam Mathew f5adcdea30 Implement View Employee Profile
<UserStory>EMP003: View Employee Profile</UserStory>

<Changes>

- Added `viewProfile` method in MenuHelper to display employee details including ID, name, role, email, phone, team, and payroll.
- Integrated `viewProfile(m_zenvyController)` into all role-specific menus (Employee, Finance Executive, HR Manager, IT Executive, Talent Executive, Team Lead).
- Implemented safe downcasting for `GeneralEmployee` to access designation details.
- Enhanced output formatting with section headers and null checks for team ID and payroll.
- Improved error handling with runtime exception when employee record is missing.

</Changes>

<Review>

Smitha Mohan

</Review>
2026-04-14 13:41:50 +05:30
joelthomastrenser 8447935fe4 Refactor employee fetch with type filter and login check
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Removed old getEmployees() implementation
 - Added templated getEmployees(...) for filtering by employee type
 - Default now skips admin and returns only active employees
 - Blocked login for inactive employees with proper error
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-13 22:43:48 +05:30
joelthomastrenser 07f547dce7 Minor fixes in employee listing and menus
<SRS> SRS02 : Employee Management </SRS>

<Changes>
- Sorted active employees by ID when listing
- Handled empty employee lists in menus
- Stopped deactivation when no employee is selected
- Showed "NULL" when team ID is missing
- Removed unnecessary error throw in payroll menu
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-13 18:28:22 +05:30
Ajmal Jalaludeen cac8dbfc35 Merged PR 935: UserStory EMP006 Search Employee
Related work items: #951
2026-04-13 17:24:07 +05:30
Ajmal Jalaludeen 7ffaae3752 Updated Menu Helper
<UserStory> EMP006 : Search Employee </UserStory>

<Changes>
- Updated searchEmployee method logic in MenuHelper.h helper file.
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-13 17:08:47 +05:30
joelthomastrenser a294dc57c4 Merge branch 'feature-employee-management' into feature-employee-management-emp006 2026-04-13 16:05:56 +05:30
Tinu Johnson 21657b9b89 Merged PR 924: UserStory EMP007 View Employees
Related work items: #952
2026-04-13 13:27:22 +05:30
joelthomastrenser ed1cf4e306 Minor fixes and formatting updates in payroll, enums, and menus
<SRS> SRS02 : Employee Management </SRS>

<Changes>
- Fixed variable naming issue in Payroll deserialization
- Added braces for consistency in enum string-to-value helpers
- Improved readability in validation logic
- Corrected typo in Finance Executive payroll menu text
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-13 11:46:55 +05:30
joelthomastrenser 7fc468ac4b Merge branch 'feature-employee-management' into feature-employee-management-emp007 2026-04-13 11:37:24 +05:30
joelthomastrenser 8668a615ea Merged PR 957: Employee system updates
- Cleaned up employee menus and selection flow
- Fixed payroll ID issues and update logic
- Added saving/loading for employees and payroll
- Improved and centralized validation checks
- Added FileManager for file handling and cleanup
2026-04-13 10:44:14 +05:30
joelthomastrenser 282ab721b5 Improved employee view formatting and menu text
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Updated "View Employee" to "View Employees" in Admin Menu
 - Added clear screen and header for employee list display
 - Improved column spacing and alignment for better readability
 - Reordered fields for a cleaner layout
 - Added pressEnter prompt after viewing employees
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-11 17:54:20 +05:30
joelthomastrenser 2c9740e776 Merge branch 'feature-employee-management' into feature-employee-management-emp007 2026-04-11 17:41:57 +05:30
joelthomastrenser aa21853a65 Refactored employee selection and cleaned up menu logic
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Removed getSelectedUserId() from FinanceExecutiveMenu
 - Added reusable selectEmployeeId() in MenuHelper
 - Simplified deactivateEmployee() using common selection logic
 - Fixed missing break in HRManagerMenu
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-11 14:59:41 +05:30
joelthomastrenser 66c80fd055 Fixed payroll ID handling and improved payroll update flow
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Fixed Payroll constructor to use given ID during deserialization
 - Cleaned up salary update logic in PayslipManagementService
 - Improved employee selection display in Finance menu
 - Added employee type column in selection list
 - Fixed typo in Employee menu (Ticket)
 - Added confirmation message after payroll update
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-11 12:58:09 +05:30
joelthomastrenser 47b44ccaa0 Added payroll persistance and updated Talent Acquisition role
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Added Payroll  getHeaders, serialize and deserialize functions
 - Stored payrolls in DataStore
 - Loaded and saved payrolls along with employees
 - Linked payroll to employees during creation and load
 - Added employeeId to Payroll
- Renamed TAG role to TALENT_ACQUISITION across the project
 - Added missing TalentExecutive case in Employee deserialization
 - Added constructor to TalentExecutive for FileManager integration
 - Renamed ID counters to m_uid for consistency
 - Updated salary values in ApplicationConfig
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-11 12:13:23 +05:30
joelthomastrenser 1d94f1680c Refactored validation logic and centralized employee validators
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Moved employee validation logic (active type check, email and phone duplication) to Validator utility
 - Updated service to use util::hasActiveEmployeeOfType, util::isEmailDuplicate, and util::isPhoneDuplicate
 - Integrated validator usage in MenuHelper for input validation
 - Cleaned up formatting and minor inconsistencies
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-10 20:29:55 +05:30
joelthomastrenser c50700e70c Added CSV header support and persistence for employees
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Added header handling in FileManager load by skipping first line during deserialization
 - Added support for writing headers using T::getHeaders() in FileManager save
 - Implemented getHeaders() for Employee and GeneralEmployee models
 - Added saveEmployees functionality in EmployeeManagementService
 - Added persistStates method in ZenvyController
 - Added deserialization failure check with exception handling
 - Minor formatting cleanup in FileIO
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-10 19:41:08 +05:30
joelthomastrenser eac6fa72df Added validation checks for employee creation
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Added helper function to check for existing active employee of a given type
 - Enforced business rule to allow only one active employee per non-general type
 - Added duplicate email validation before employee creation
 - Added duplicate phone number validation before employee creation
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-10 16:43:28 +05:30
joelthomastrenser 03be8f81d2 Refactored employee creation menu and centralized helper logic
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Removed duplicate employee creation helper functions from AdminMenu and HRManagerMenu
 - Centralized employee creation flow into MenuHelper.cpp
 - Updated createEmployee to use current employee type for access control
 - Fixed parameter order bug in createEmployee (email, name, phone)
 - Improved menu titles for all roles (removed generic system header)
 - Added util::pressEnter() for better UX on invalid input across menus
 - Added newline before pause in InputHelper::pressEnter
 - Cleaned up minor formatting issues
</Changes>
2026-04-10 13:33:41 +05:30
joelthomastrenser 451ed4fec2 Added employee persistence, serialization, and file loading support
<SRS>SRS02 : Employee Management </SRS>

<Changes>
 - Implemented serialization and deserialization for Employee and GeneralEmployee models
 - Added FileManager integration to load employees from CSV files
 - Introduced ApplicationConfig entries for employee file paths
 - Updated Employee ID handling (getEmployeeId → getId) across project
 - Modified FileIO to auto-create file if not found instead of throwing exception
 - Added constructors for all employee types to support deserialization
 - Implemented loadEmployees in service and loadStates in controller
 - Ensured default admin creation if none exists during load
 - Added StringHelper utility for extracting numeric IDs
 - Extended Enums with string conversion and parsing utilities
 - Added initial CSV files for Employee and GeneralEmployee data
 - Improved login error message formatting and minor cleanup
 - Setup gitignore to not track csv files
</Changes>
2026-04-10 13:17:50 +05:30
joelthomastrenser d29e38ef75 Added FileManager DLL and cleanup code
<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Created FileIO for reading and writing files
 - Created FileManager to use FileIO
 - Set up Trenser.FileManager as a DLL
 - Linked DLL with Trenser.Zenvy project
 - Fixed duplicate function issue by marking deactivateEmployee as inline
 - Cleaned up unused methods in controller and service
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-09 20:32:48 +05:30
Princy Jerin 2031f510d5 Merged PR 932: UserStory EMP002 Deactivate Employee
Related work items: #946
2026-04-08 11:50:23 +05:30
joelthomastrenser 4d4974efd7 Protect Admin account from deactivation
<UserStory> EMP002 : Deactivate Employee </UserStory>

<Changes>
- Ensure admin account cannot be deactivated
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 11:47:00 +05:30
joelthomastrenser a955b64462 Ensure Role based access
<UserStory> EMP002 : Deactivate Employee </UserStory>

<Changes>
- Ensure Role based access
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 11:41:31 +05:30
Princy Jerin daf33e1aab Implement Review Fixes
<UserStory> EMP002 : Deactivate Employee </UserStory>

<Changes>
- Updated employee listing to display in a tabular format with headers
- Renamed helper function from listActiveEmployees to listEmployees
- Updated error messages
- Removed blank spaces
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 11:41:25 +05:30
Princy Jerin f85614ecc5 Implement Deactive Employee functionality
<UserStory>
EMP002 : Deactivate Employee
</UserStory>

<Changes>
- Added deactivateEmployee logic to set employee status to INACTIVE
- Enabled Deactivate Employee option in AdminMenu
- Implemented listing of active employees for selection
- Connected UI flow for employee deactivation
- Fix minor syntax issues
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 11:36:50 +05:30
Tinu Johnson e470dbc791 Updated MenuHelper.h
<UserStory> EMP007 : View Employees </UserStory>

<Changes>
 - Updated logic in viewEmployees() method.
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-08 11:04:09 +05:30
Jissin Mathew a001b7d159 Merged PR 921: UserStory EMP008 Update Salary Details
Related work items: #953
2026-04-08 10:24:42 +05:30
Ajmal Jalaludeen a3e622ff8e Updated Menu Helper and all User Menu
<UserStory> EMP006 : Search Employee </UserStory>

<Changes>
- Updated MenuHelper.h helper file for input validation
- Updated search employee logic in employee management service
- Removed comments in Enums.h and EmployeeManagementService.h
- Included MenuHelper.h in all User Menu files
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 10:19:21 +05:30
Jissin Sam Mathew 0290467528 Implement Review Suggestion
<UserStory>EMP008: Update Salary Details</UserStory>

    <Changes>
  - Refactored salary update and employee selection:
  • Removed unnecessary const qualifiers from double parameters
  • Renamed variables
  • Replaced count() with find() for map lookups
  • Excluded ADMIN employees from salary updates and selection lists
  • Applied util::enforceAuthorization for access control
- Improved readability and consistency:
  • Enhanced tabular output using setw() with left alignment
    Implement Update Salary
    </Changes>

    <Review>
    Smitha Mohan
    </Review>
2026-04-08 10:18:23 +05:30
Jissin Sam Mathew 63627075ef Implement Update Salary
<UserStory>EMP08: Update Salary Details</UserStory>

<Changes>
- Added `updateSalary` method in ZenvyController to connect payroll updates with PayslipManagementService
- Implemented `PayslipManagementService::updateSalary` with employee existence and Finance-role authorization checks
- Extended Payroll model with setter methods for salary components
- Improved error handling with clear runtime exceptions for invalid index selection, unauthorized access, and missing employees
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-08 10:17:16 +05:30
Tinu Johnson c27ca5240a Added MenuHelper feature for ViewEmployee
<UserStory> EMP007 : View Employees </UserStory>

<Changes>
 - Added MenuHelper.cpp and MenuHelper.h to project configuration
 - Moved viewEmployees() implementation from individual menu classes into MenuHelper
 - Added inline viewEmployees(shared_ptr<ZenvyController>) helper with formatted output
 - Added enumToString() to MenuHelper for employee role display
 - Updated AdminMenu, EmployeeMenu, FinanceExecutiveMenu, HRManagerMenu,
   ITExecutiveMenu, TalentExecutiveMenu, TeamExecutiveMenu, and TeamLeadMenu
   to use viewEmployees(m_zenvyController) instead of per‑menu implementations
 - Removed old viewEmployees() method from EmployeeMenu
 - Updated menu options to reflect new centralized viewEmployees() function
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-07 20:32:30 +05:30
Tinu Johnson f75bbaaae8 Merged PR 933: UserStory EMP004 Update Personal Details
Related work items: #948
2026-04-07 20:31:25 +05:30
Tinu Johnson b3b9299c70 Added Profile Update Feature for all menu
<UserStory> EMP004 : Update Personal Details </UserStory>

<Changes>
 - Added MenuHelper.cpp and MenuHelper.h and integrated them into project
 - Moved updateProfile() logic from individual menus into MenuHelper
 - Added inline updateProfile(shared_ptr<ZenvyController>) to MenuHelper
 - Updated AdminMenu, EmployeeMenu, HRManagerMenu, FinanceExecutiveMenu,
   ITExecutiveMenu, TalentExecutiveMenu, TeamExecutiveMenu, and TeamLeadMenu
   to use centralized updateProfile()
 - Added getCurrentEmployee() and updateProfile() to ZenvyController
 - Added corresponding implementations in EmployeeManagementService
 - Minor layout and option text improvements across all menus
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-07 20:25:33 +05:30
Ajmal Jalaludeen 47a9065c3b Add Search Employee for All Users
<UserStory> EMP006 : Search Employee </UserStory>

<Changes>
 - Added MenuHelper.cpp and MenuHelper.h helper files to project
- Added searchEmployee method in ZenvyController returning employee type and list
 - Implemented search Employee logic in Employement Management Service
 - Connected searchEmployee to all the User Menu
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-07 20:11:20 +05:30
Tinu Johnson 6256b9ea82 Implement Review fixes
<UserStory> EMP007 : View All Employees  </UserStory>

<Changes>
 - Added check for empty employee map
 - Filtered only ACTIVE employees
 - Added formatted table using <iomanip> in EmplopyeeMenu::viewEmployee()
 - Added check for empty employee list
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-07 19:19:08 +05:30
Tinu Johnson 1785660e94 Add Employee Listing Feature
<UserStory> EMP007 : View All Employees  </UserStory>

<Changes>
 - Implemented getEmployees() in ZenvyController to return list of employees
 - Added working getEmployees() implementation in EmployeeManagementService
 - Fixed iterator usage to correctly extract map values into Employees vector
 - Added viewEmployees() UI flow in EmployeeMenu
 - Integrated employee listing into EmployeeMenu option flow
 - Added enumToString() helper for printing employee roles
 - Improved formatting and filtering of ACTIVE employees in employee listing
 - Performed minor code cleanup and consistency adjustments in controller and menu
</Changes>

<Review>
  Smitha Mohan
</Review>
2026-04-07 17:38:53 +05:30
joelthomastrenser 247e5dc6f6 Merged PR 920: UserStory EMP001 Create Employee
Related work items: #943
2026-04-07 17:36:30 +05:30
joelthomastrenser ef5ac42a92 Implement employee creation
<UserStory>EMP001 Create Employee</UserStory>

<Changes>
- Updated employee creation flow to support different employee types and designations
- Set a default initial password for new employees
- Added basic authorization check utility
- Cleaned up employee model constructors for better consistency
Minor code cleanup and refactoring
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-07 15:07:44 +05:30
joelthomastrenser 07bd979685 Set up employee management codebase
<SRS>SRS02 : Employee Management </SRS>

<Changes>
- Renamed EmployeeManagememtService to EmployeeManagementService
- Added basic employee management service structure
- Connected employee management into controller and datastore
- Updated project config files
- Added auto ID generation across models
- Added payroll-related config constants
</Changes>

<Review>
Smitha Mohan
</Review>
2026-04-07 10:51:38 +05:30