Merge branch 'feature-service-management-ser004' into feature-service-management
This commit is contained in:
+8
-1
@@ -1,6 +1,7 @@
|
||||
#include "Controller.h"
|
||||
#include "InventoryItem.h"
|
||||
#include "Service.h"
|
||||
#include "ServiceBooking.h"
|
||||
|
||||
bool Controller::login(const std::string& username, const std::string& password)
|
||||
{
|
||||
@@ -86,7 +87,13 @@ util::Map<std::string, const ServiceBooking*> Controller::getServiceBookings()
|
||||
|
||||
util::Map<std::string, const ServiceBooking*> Controller::getServiceBookingsByUser(const std::string userID)
|
||||
{
|
||||
return util::Map<std::string, const ServiceBooking*>();
|
||||
util::Map<std::string, const ServiceBooking*> readOnlyServiceBookingsByUserMap;
|
||||
util::Map<std::string, ServiceBooking*> currentServiceBookingsByUser = m_serviceManagementService.getServiceBookings(userID);
|
||||
for (int iterator = 0; iterator < currentServiceBookingsByUser.getSize(); iterator++)
|
||||
{
|
||||
readOnlyServiceBookingsByUserMap.insert(currentServiceBookingsByUser.getValueAt(iterator)->getId(), currentServiceBookingsByUser.getValueAt(iterator));
|
||||
}
|
||||
return readOnlyServiceBookingsByUserMap;
|
||||
}
|
||||
|
||||
util::Map<std::string, const User*> Controller::getUsers()
|
||||
|
||||
+18
@@ -102,3 +102,21 @@ void ServiceManagementService::removeService(const std::string& serviceID)
|
||||
throw std::runtime_error("Service not found.");
|
||||
}
|
||||
}
|
||||
|
||||
util::Map<std::string, ServiceBooking*> ServiceManagementService::getServiceBookings(const std::string& customerID)
|
||||
{
|
||||
util::Map<std::string, ServiceBooking*> currentServiceBookings = getServiceBookings();
|
||||
util::Map<std::string, ServiceBooking*> currentUserServiceBookings;
|
||||
if (currentServiceBookings.getSize() != 0)
|
||||
{
|
||||
for (int iterator = 0; iterator < currentServiceBookings.getSize(); iterator++)
|
||||
{
|
||||
auto currentServiceBooking = currentServiceBookings.getValueAt(iterator);
|
||||
if (currentServiceBooking->getCustomerId() == customerID)
|
||||
{
|
||||
currentUserServiceBookings.insert(currentServiceBooking->getId(), currentServiceBooking);
|
||||
}
|
||||
}
|
||||
}
|
||||
return currentUserServiceBookings;
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
#include <iomanip>
|
||||
#include "CustomerMenu.h"
|
||||
#include "InputHelper.h"
|
||||
#include "OutputHelper.h"
|
||||
#include "User.h"
|
||||
#include "ServiceBooking.h"
|
||||
#include "Enums.h"
|
||||
|
||||
void CustomerMenu::showMenu()
|
||||
{
|
||||
@@ -53,6 +57,44 @@ void CustomerMenu::selectComboPackage()
|
||||
|
||||
void CustomerMenu::viewServiceHistory()
|
||||
{
|
||||
util::clear();
|
||||
bool hasServiceHistory = false;
|
||||
const User* currentUser = m_controller.getAuthenticatedUser();
|
||||
std::string currentUserID = currentUser->getId();
|
||||
util::Map<std::string, const ServiceBooking*> serviceBookingsByCurrentUser = m_controller.getServiceBookingsByUser(currentUserID);
|
||||
if (serviceBookingsByCurrentUser.getSize() != 0)
|
||||
{
|
||||
std::cout << std::left
|
||||
<< std::setw(12) << "Booking ID"
|
||||
<< std::setw(20) << "Technician"
|
||||
<< std::setw(15) << "Vehicle Brand"
|
||||
<< std::setw(15) << "Vehicle Number"
|
||||
<< std::setw(15) << "Vehicle Model"
|
||||
<< std::setw(10) << "Discount %"
|
||||
<< std::setw(12) << "Status"
|
||||
<< std::endl;
|
||||
for (int iterator = 0; iterator < serviceBookingsByCurrentUser.getSize(); iterator++)
|
||||
{
|
||||
const ServiceBooking* currentBooking = serviceBookingsByCurrentUser.getValueAt(iterator);
|
||||
std::string technicianName = currentBooking->getAssignedTechnician() == nullptr
|
||||
? "Not Assigned"
|
||||
: currentBooking->getAssignedTechnician()->getName();
|
||||
std::cout << std::left
|
||||
<< std::setw(12) << currentBooking->getId()
|
||||
<< std::setw(20) << technicianName
|
||||
<< std::setw(15) << currentBooking->getVehicleBrand()
|
||||
<< std::setw(15) << currentBooking->getVehicleNumber()
|
||||
<< std::setw(15) << currentBooking->getVehicleModel()
|
||||
<< std::setw(10) << currentBooking->getDiscountPercentage()
|
||||
<< std::setw(12) << util::getServiceJobStatusString(currentBooking->getStatus())
|
||||
<< std::endl;
|
||||
hasServiceHistory = true;
|
||||
}
|
||||
}
|
||||
if (!hasServiceHistory)
|
||||
{
|
||||
std::cout << "No history available." << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void CustomerMenu::completePayments()
|
||||
|
||||
Reference in New Issue
Block a user