Merge branch 'feature-customer-management-cus007' into feature-customer-management
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
#include "CustomerMenu.h"
|
||||
#include "Service.h"
|
||||
#include "InventoryItem.h"
|
||||
#include "ComboPackage.h"
|
||||
#include "Service.h"
|
||||
#include "InputHelper.h"
|
||||
#include "OutputHelper.h"
|
||||
#include "Validator.h"
|
||||
@@ -154,8 +156,70 @@ void CustomerMenu::selectService()
|
||||
util::pressEnter();
|
||||
}
|
||||
|
||||
static const ComboPackage* selectComboPackageFromPackages(const util::Map<std::string, const ComboPackage*>& comboPackages)
|
||||
{
|
||||
util::Map<int, const ComboPackage*> activeComboPackages;
|
||||
int currentIndex = 1;
|
||||
int userInputIndex;
|
||||
std::cout << std::left
|
||||
<< std::setw(10) << "Index"
|
||||
<< std::setw(15) << "Combo Package ID"
|
||||
<< std::setw(15) << "Combo Package Name"
|
||||
<< std::setw(15) << "Estimate Cost"
|
||||
<< std::endl;
|
||||
for (int index = 0; index < comboPackages.getSize(); index++)
|
||||
{
|
||||
const ComboPackage* currentComboPackage = comboPackages.getValueAt(index);
|
||||
if (currentComboPackage->getState() != util::State::ACTIVE)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
activeComboPackages.insert(currentIndex, currentComboPackage);
|
||||
std::cout << std::left
|
||||
<< std::setw(10) << currentIndex
|
||||
<< std::setw(15) << currentComboPackage->getId()
|
||||
<< std::setw(25) << currentComboPackage->getPackageName()
|
||||
<< std::setw(15) << calculateComboServiceEstimatedCost(currentComboPackage)
|
||||
<< std::endl;
|
||||
currentIndex++;
|
||||
}
|
||||
if (activeComboPackages.getSize() == 0)
|
||||
{
|
||||
std::cout << "No active combo packages available." << std::endl;
|
||||
return nullptr;
|
||||
}
|
||||
std::cout << "Enter combo package index: ";
|
||||
util::read(userInputIndex);
|
||||
if (activeComboPackages.find(userInputIndex) == -1)
|
||||
{
|
||||
std::cout << "Invalid combo package index." << std::endl;
|
||||
return nullptr;
|
||||
}
|
||||
return activeComboPackages[userInputIndex];
|
||||
}
|
||||
|
||||
void CustomerMenu::selectComboPackage()
|
||||
{
|
||||
std::string vehicleNumber, vehicleBrand, vehicleModel;
|
||||
auto comboPackages = m_controller.getComboPackages();
|
||||
util::clear();
|
||||
const ComboPackage* selectedComboPackage = selectComboPackageFromPackages(comboPackages);
|
||||
if (selectedComboPackage == nullptr)
|
||||
{
|
||||
std::cout << "Failed to book combo package!";
|
||||
util::pressEnter();
|
||||
return;
|
||||
}
|
||||
util::clear();
|
||||
std::cout << "Enter vehicle number: ";
|
||||
util::read(vehicleNumber);
|
||||
std::cout << "Enter vehicle brand: ";
|
||||
util::read(vehicleBrand);
|
||||
std::cout << "Enter vehicle model: ";
|
||||
util::read(vehicleModel);
|
||||
m_controller.purchaseComboPackage(selectedComboPackage->getId(), vehicleNumber, vehicleBrand, vehicleModel);
|
||||
std::cout << "Combo Package has been booked successfully";
|
||||
util::pressEnter();
|
||||
}
|
||||
|
||||
void CustomerMenu::viewServiceHistory()
|
||||
|
||||
Reference in New Issue
Block a user