Files
Training-VehicleService-May26/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem.vcxproj.filters
T
Avinash Rajesh a6e19017ca Implement Create Combo Package Functionality
<UserStory> ADM006:Create Combo Package </UserStory>

<Changes>
    1. Added ServiceManagementService::createComboPackage to validate package name, included services, and discount percentage before creation.
    2. Integrated Controller::createComboPackage to delegate combo package creation to ServiceManagementService.
    3. Enhanced AdminMenu::createComboPackages to allow admin input for package name, service selection, and discount percentage.
    4. Implemented service validation to ensure only active services are selectable and that duplicate combos are prevented.
    5. Added formatted output for service listing with cost calculation and confirmation messages upon successful package creation.
</Changes>

<Test>

  Precondition:
  1. Admin is logged into the system.
  2. At least two active services exist in the system.
  3. ServiceManagementService is connected to DataStore for services and combo packages.

  Steps:
  1. Navigate to Admin Menu and select "Create Combo Package".
  2. Enter package name, select two active services, and provide discount percentage.
    - Verify that system validates service IDs and ensures discount is between 0 and 100.
  3. Attempt to create a package with invalid service IDs or duplicate services.
    - Verify that system rejects with appropriate error messages.
  4. Enter valid package details.
    - Verify that combo package is saved successfully and visible to customers.
</Test>

<Review>
Sreeja Reghukumar
</Review>
2026-05-21 13:08:24 +05:30

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>