e7f1b51d05
<UserStory> SER002: Create Service </UserStory>
<Changes>
1. Added integration between Controller and ServiceManagementService to support service creation.
2. Implemented ServiceManagementService::createService with validation for duplicate service IDs and insertion into datastore.
3. Enhanced AdminMenu with selectInventoryItems helper to display inventory in tabular format, allow selection, and handle exit condition.
4. Updated AdminMenu::createService to prompt for service name, allow inventory selection, capture labour cost, and create service via Controller.
</Changes>
<Test>
Acceptance Criteria:
1. Admin enters new service name.
2. Admin selects required parts for the services.
3. Service created and visible to customers.
Precondition:
1. Admin is logged into the system.
2. Inventory contains at least one active item.
3. Datastore is available for storing services.
Steps:
1. Navigate to Admin menu and choose "Create Service".
- Verify that the system prompts for service name.
2. Select inventory items from the tabular list.
- Verify that inactive items are skipped and active items can be added.
3. Enter labour cost and confirm creation.
- Verify that the service is created successfully and stored in datastore.
4. Check customer view.
- Verify that the newly created service is visible to customers.
</Test>
<Review>
Sreeja Reghukumar, please review
</Review>
149 lines
3.6 KiB
C++
149 lines
3.6 KiB
C++
#include "Controller.h"
|
|
#include "InventoryItem.h"
|
|
|
|
bool Controller::login(const std::string& username, const std::string& password)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
void Controller::logout()
|
|
{
|
|
}
|
|
|
|
void Controller::changePassword(const std::string& newPassword)
|
|
{
|
|
}
|
|
|
|
void Controller::createCustomer(const std::string& username, const std::string& password, const std::string& email, const std::string& phone)
|
|
{
|
|
}
|
|
|
|
const User* Controller::getAuthenticatedUser()
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
void Controller::createTechnician(const std::string& username, const std::string& password, const std::string& email, const std::string& phone)
|
|
{
|
|
}
|
|
|
|
void Controller::updateUserDetails(const std::string& email, const std::string& phone)
|
|
{
|
|
}
|
|
|
|
util::Map<std::string, const Service*> Controller::getServices()
|
|
{
|
|
return util::Map<std::string, const Service*>();
|
|
}
|
|
|
|
util::Map<std::string, const ComboPackage*> Controller::getComboPackages()
|
|
{
|
|
return util::Map<std::string, const ComboPackage*>();
|
|
}
|
|
|
|
void Controller::purchaseService(const util::Vector<std::string>& serviceIDs, const std::string& vehicleNumber, const std::string& vehicleBrand, const std::string& vehicleModel)
|
|
{
|
|
}
|
|
|
|
void Controller::purchaseComboPackage(const std::string& comboPackageID, const std::string& vehicleNumber, const std::string& vehicleBrand, const std::string& vehicleModel)
|
|
{
|
|
}
|
|
|
|
util::Map<std::string, const InventoryItem*> Controller::getInventoryItems()
|
|
{
|
|
}
|
|
|
|
const InventoryItem* Controller::getInventoryItem(const std::string& inventoryItemID)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
void Controller::addInventoryItem(const std::string& partName, int quantity, double price)
|
|
{
|
|
}
|
|
|
|
void Controller::removeInventoryItem(const std::string& inventoryItemID)
|
|
{
|
|
}
|
|
|
|
util::Map<std::string, const ServiceBooking*> Controller::getServiceBookings()
|
|
{
|
|
return util::Map<std::string, const ServiceBooking*>();
|
|
}
|
|
|
|
util::Map<std::string, const ServiceBooking*> Controller::getServiceBookingsByUser(const std::string userID)
|
|
{
|
|
return util::Map<std::string, const ServiceBooking*>();
|
|
}
|
|
|
|
util::Map<std::string, const User*> Controller::getUsers()
|
|
{
|
|
return util::Map<std::string, const User*>();
|
|
}
|
|
|
|
util::Map<std::string, const User*> Controller::getUsers(util::UserType userType)
|
|
{
|
|
return util::Map<std::string, const User*>();
|
|
}
|
|
|
|
void Controller::createJobCard(const std::string& bookingID, const std::string& technicianID, const std::string& serviceID)
|
|
{
|
|
}
|
|
|
|
void Controller::createService(const std::string& name, const util::Vector<std::string>& inventoryItemIDs, double laborCost)
|
|
{
|
|
m_serviceManagementService.createService(name, inventoryItemIDs, laborCost);
|
|
}
|
|
|
|
void Controller::removeService(const std::string& serviceID)
|
|
{
|
|
}
|
|
|
|
util::Map<std::string, const JobCard*> Controller::getJobCardsByUser()
|
|
{
|
|
return util::Map<std::string, const JobCard*>();
|
|
}
|
|
|
|
void Controller::completeJob(const std::string& jobID)
|
|
{
|
|
}
|
|
|
|
void Controller::removeUser(const std::string& userID)
|
|
{
|
|
}
|
|
|
|
void Controller::createComboPackage(const std::string& name, const util::Vector<std::string>& serviceIDs, double discountPercentage)
|
|
{
|
|
}
|
|
|
|
void Controller::removeComboPackage(const std::string& comboPackageID)
|
|
{
|
|
}
|
|
|
|
util::Map<std::string, const Invoice*> Controller::getInvoicesByUser()
|
|
{
|
|
return util::Map<std::string, const Invoice*>();
|
|
}
|
|
|
|
void Controller::completePayment(const std::string& invoiceID, util::PaymentMode paymentMode)
|
|
{
|
|
}
|
|
|
|
util::Vector<const Notification*> Controller::getNotifications()
|
|
{
|
|
return util::Vector<const Notification*>();
|
|
}
|
|
|
|
void Controller::deleteNotification(const std::string& notificationID)
|
|
{
|
|
}
|
|
|
|
void Controller::configureNotifications(const std::string& userID, bool paymentNotifications, bool serviceNotifications)
|
|
{
|
|
}
|
|
|
|
void Controller::runSystemChecks()
|
|
{
|
|
}
|
|
|