<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<SRS> SRS01 : Authentication </SRS>
<Changes>
- Fixed polymorphism errors in Employee base class by adding virtual destructor.
- Corrected constructor mismatch in GeneralEmployee to properly call Employee constructor with EmployeeType.
- Created UserInterface object in main() and invoked run() to start role-based menus.
</Changes>
<Review>
Smitha Mohan
</Review>
<SRS> SRS01 : Authentication </SRS>
<Changes>
- Added basic UI structure with UserInterface and role-based menus (Admin, HR, IT, Finance, Talent, Team, TeamLead, Employee).
- Created menu classes for different roles, each with run() and handleOperation() methods.
</Changes>
<Review>
Smitha Mohan
</Review>
<UserStory>AUTH001 : Login </UserStory>
<Changes>
- Introduced ApplicationConfig for default configuration values
- Implemented authentication flow in AuthenticationManagementService
- Added login and logout handling in ZenvyController
- Updated enums to include INVALID values and TEAM employee type
- Implemented login UI flow with role-based menu routing
</Changes>
<Review>
Smitha Mohan
</Review>
<SRS> SRS01 : Authentication </SRS>
<Changes>
- Added EmployeeType and LoginStatus enums
- Extended Employee model to store employee type
- Updated Employee constructors to initialize employee type
- Added getter for employee type in Employee model
</Changes>
<Review>
Smitha Mohan
</Review>