b230e3062c
<UserStory> ADM002: Remove Technician or Customer </UserStory>
<Changes>
1. Integrated UserManagementService and ServiceManagementService into Controller for user removal operations.
2. Added Controller::removeUser to validate user existence, cancel related service bookings and technician jobs, and mark user inactive.
3. Updated JobCard and ServiceBooking models to use util::ServiceJobStatus consistently and store technician references as User* instead of strings.
4. Extended util::ServiceJobStatus enum with PENDING and CANCELLED states, including string conversion support.
5. Implemented ServiceManagementService methods to cancel customer service bookings and technician jobs, with inventory restocking and notifications.
6. Enhanced AdminMenu::removeUser to list active users, validate index input, confirm deletion, and invoke Controller::removeUser.
7. Added helper functions in AdminMenu to filter active users and display them with formatted output including user type.
</Changes>
<Test>
Precondition:
1. Admin is logged into the system.
2. Technician accounts exist in the system.
3. Technician has active job assignments.
Steps:
1. Navigate to Admin Menu and select "Remove User".
2. System displays list of active users with IDs, usernames, and user types.
- Verify that inactive users are excluded from the list.
3. Admin selects technician ID for removal.
- Verify that system confirms deletion before proceeding.
4. Technician is removed from job assignment list.
- Verify that associated jobs are cancelled, inventory is restocked, and notifications are sent.
</Test>
<Review>
Sreeja Reghukumar
</Review>
240 lines
9.4 KiB
XML
240 lines
9.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<ItemGroup>
|
|
<Filter Include="Source Files">
|
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
</Filter>
|
|
<Filter Include="Header Files">
|
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
|
</Filter>
|
|
<Filter Include="Resource Files">
|
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
</Filter>
|
|
<Filter Include="Header Files\Factories">
|
|
<UniqueIdentifier>{fc4022ec-cad1-4c5b-b5e3-87bdf86cdee3}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Utilities">
|
|
<UniqueIdentifier>{8c0e50bf-dbb3-4956-954a-e9bc7108a8f5}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Utilities">
|
|
<UniqueIdentifier>{6fc56811-874c-4c53-a31c-09c5da36f98a}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Views">
|
|
<UniqueIdentifier>{dade4e36-41ab-463b-a4f2-346219bf4bc8}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Services">
|
|
<UniqueIdentifier>{994018a4-a8e6-4dcd-9b5b-161fe467ea1a}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Models">
|
|
<UniqueIdentifier>{bf335df2-eccb-452b-99a0-be92078a30c8}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Models">
|
|
<UniqueIdentifier>{d668bff5-2da8-4200-aa0e-bd9db89c0ecf}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Controllers">
|
|
<UniqueIdentifier>{ad539cf4-b697-49b9-a999-4729618139d1}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Controllers">
|
|
<UniqueIdentifier>{94a14e13-7aaa-4f08-bcb2-618873e5198e}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Views">
|
|
<UniqueIdentifier>{defecdb5-b5c7-488d-a9d4-553755129f9c}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\DataStores">
|
|
<UniqueIdentifier>{b5d0f583-e687-416b-8c80-cd0d0037bc94}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\DataStores">
|
|
<UniqueIdentifier>{a2807ab4-4d53-4e18-b4cd-13d0d552b057}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Services">
|
|
<UniqueIdentifier>{05ab7ce1-f55a-4c76-96ed-f855a79921b9}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Core">
|
|
<UniqueIdentifier>{423a60cb-8b4e-41f5-9c05-80cc9a91dfba}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Header Files\Core\Patterns">
|
|
<UniqueIdentifier>{49f35205-bfa9-4f04-a9b3-9b74d33640d6}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Core">
|
|
<UniqueIdentifier>{1b53d284-7064-416f-9293-2bc17fa44b0c}</UniqueIdentifier>
|
|
</Filter>
|
|
<Filter Include="Source Files\Core\Patterns">
|
|
<UniqueIdentifier>{8057b93d-51a9-42df-b06e-01ce395f6308}</UniqueIdentifier>
|
|
</Filter>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="Trenser.VehicleServiceSystem.cpp">
|
|
<Filter>Source Files</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="utilities\Timestamp.cpp">
|
|
<Filter>Source Files\Utilities</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="utilities\Validator.cpp">
|
|
<Filter>Source Files\Utilities</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="controllers\Controller.cpp">
|
|
<Filter>Source Files\Controllers</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="views\AdminMenu.cpp">
|
|
<Filter>Source Files\Views</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="views\CustomerMenu.cpp">
|
|
<Filter>Source Files\Views</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="views\TechnicianMenu.cpp">
|
|
<Filter>Source Files\Views</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="views\UserInterface.cpp">
|
|
<Filter>Source Files\Views</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\AuthenticationManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\InventoryManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\PaymentManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\ServiceManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\UserManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="datastores\DataStore.cpp">
|
|
<Filter>Source Files\DataStores</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="services\NotificationManagementService.cpp">
|
|
<Filter>Source Files\Services</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="core\patterns\Observer.cpp">
|
|
<Filter>Source Files\Core\Patterns</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="core\patterns\Subject.cpp">
|
|
<Filter>Source Files\Core\Patterns</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\User.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\Notification.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\Invoice.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\InventoryItem.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\ServiceBooking.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\Service.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\JobCard.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
<ClCompile Include="models\ComboPackage.cpp">
|
|
<Filter>Source Files\Models</Filter>
|
|
</ClCompile>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="utilities\InputHelper.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Map.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\OutputHelper.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Timestamp.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Validator.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Vector.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="factories\Factory.h">
|
|
<Filter>Header Files\Factories</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="controllers\Controller.h">
|
|
<Filter>Header Files\Controllers</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="views\AdminMenu.h">
|
|
<Filter>Header Files\Views</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="views\CustomerMenu.h">
|
|
<Filter>Header Files\Views</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="views\TechnicianMenu.h">
|
|
<Filter>Header Files\Views</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="views\UserInterface.h">
|
|
<Filter>Header Files\Views</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\AuthenticationManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\InventoryManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\PaymentManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\ServiceManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\UserManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="datastores\DataStore.h">
|
|
<Filter>Header Files\DataStores</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="services\NotificationManagementService.h">
|
|
<Filter>Header Files\Services</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="core\patterns\Observer.h">
|
|
<Filter>Header Files\Core\Patterns</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="core\patterns\Subject.h">
|
|
<Filter>Header Files\Core\Patterns</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\User.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\Notification.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Enums.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\Invoice.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\ServiceBooking.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\InventoryItem.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\Service.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\JobCard.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="models\ComboPackage.h">
|
|
<Filter>Header Files\Models</Filter>
|
|
</ClInclude>
|
|
<ClInclude Include="utilities\Utility.h">
|
|
<Filter>Header Files\Utilities</Filter>
|
|
</ClInclude>
|
|
</ItemGroup>
|
|
</Project> |