From f78e02ed3df93eed31f5c72b65a24392435f4344 Mon Sep 17 00:00:00 2001 From: Joel Thomas Date: Wed, 27 May 2026 18:47:49 +0530 Subject: [PATCH] Fix: handle NOTSET payment mode during invoice deserialization Changes: - Added support for PaymentMode::NOTSET in string-to-enum conversion to prevent invoice deserialization failures during system startup - Improved invoice table column labels and spacing for better readability and alignment in invoice display screens Fixes #1789 --- .../utilities/Enums.h | 4 ++++ .../views/MenuHelper.h | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/utilities/Enums.h b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/utilities/Enums.h index e410eff..16490f1 100644 --- a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/utilities/Enums.h +++ b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/utilities/Enums.h @@ -137,6 +137,10 @@ namespace util { return PaymentMode::OFFLINE; } + if (value == "NOTSET") + { + return PaymentMode::NOTSET; + } throw std::invalid_argument("Invalid PaymentMode string"); } diff --git a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/views/MenuHelper.h b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/views/MenuHelper.h index cd968eb..53c15f4 100644 --- a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/views/MenuHelper.h +++ b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/views/MenuHelper.h @@ -453,12 +453,12 @@ inline const Invoice* selectInvoiceToDisplay(util::MapgetBookingId() - << std::setw(15) << currentInvoice->getBooking()->getVehicleNumber() + << std::setw(20) << currentInvoice->getBooking()->getVehicleNumber() << std::setw(20) << ((currentTechnician && !currentTechnician->getName().empty()) ? currentTechnician->getName() : "NULL") << std::setw(15) << currentInvoice->getTotalAmount() << std::setw(25) << currentInvoice->getInvoiceDate().toString() - << std::setw(15) << util::getPaymentStatusString(currentInvoice->getStatus()) + << std::setw(20) << util::getPaymentStatusString(currentInvoice->getStatus()) << std::setw(15) << util::getPaymentModeString(currentInvoice->getPaymentMethod()) << std::endl; currentInvoicesIndexMap.insert(currentIndex++, currentInvoice);