Fixed Reviewed Changes
This commit is contained in:
+2
-2
@@ -472,7 +472,7 @@ Returns:
|
||||
*/
|
||||
util::Map<std::string, const Invoice*> Controller::getAllInvoices()
|
||||
{
|
||||
auto invoices = m_paymentManagementService.getAllInvoice();
|
||||
auto invoices = m_paymentManagementService.getAllInvoices();
|
||||
util::Map<std::string, const Invoice*> readOnlyInvoice;
|
||||
for (int iterator = 0; iterator < invoices.getSize(); iterator++)
|
||||
{
|
||||
@@ -489,7 +489,7 @@ Parameters:
|
||||
Returns:
|
||||
- void
|
||||
*/
|
||||
void Controller::confirmPayment(std::string invoiceID)
|
||||
void Controller::confirmPayment(const std::string& invoiceID)
|
||||
{
|
||||
m_paymentManagementService.confirmPayment(invoiceID);
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
void removeComboPackage(const std::string& comboPackageID);
|
||||
util::Map<std::string, const Invoice*> getInvoicesByUser();
|
||||
util::Map<std::string, const Invoice*> getAllInvoices();
|
||||
void confirmPayment(std::string invoiceID);
|
||||
void confirmPayment(const std::string& invoiceID);
|
||||
void completePayment(const std::string& invoiceID, util::PaymentMode paymentMode);
|
||||
util::Vector<const Notification*> getNotifications();
|
||||
void deleteNotification(const std::string& notificationID);
|
||||
|
||||
+12
-16
@@ -394,7 +394,7 @@ Parameters:
|
||||
Returns:
|
||||
- util::Map<std::string, Invoice*>&: Map of invoice IDs to invoice objects
|
||||
*/
|
||||
util::Map<std::string, Invoice*>& PaymentManagementService::getAllInvoice()
|
||||
util::Map<std::string, Invoice*>& PaymentManagementService::getAllInvoices()
|
||||
{
|
||||
return m_dataStore.getInvoices();
|
||||
}
|
||||
@@ -410,26 +410,22 @@ Returns:
|
||||
Throws:
|
||||
- std::runtime_error if the invoice ID is invalid
|
||||
*/
|
||||
void PaymentManagementService::confirmPayment(std::string invoiceID)
|
||||
void PaymentManagementService::confirmPayment(const std::string& invoiceID)
|
||||
{
|
||||
std::string title, message;
|
||||
auto& currentInvoices = m_dataStore.getInvoices();
|
||||
int invoiceIndex = currentInvoices.find(invoiceID);
|
||||
if (invoiceIndex != -1)
|
||||
if (invoiceIndex == -1)
|
||||
{
|
||||
Invoice* invoice = currentInvoices.getValueAt(invoiceIndex);
|
||||
if (invoice && invoice->getStatus() != util::PaymentStatus::COMPLETED)
|
||||
{
|
||||
User* currentUser = invoice->getBooking()->getCustomer();
|
||||
invoice->setPaymentDate(util::Timestamp());
|
||||
invoice->setStatus(util::PaymentStatus::COMPLETED);
|
||||
title = "Payment Confirmed";
|
||||
message = "Payment Confirmed for Invoice ID " + invoiceID;
|
||||
sendNotification(currentUser, title, message);
|
||||
}
|
||||
throw std::runtime_error("Payment confirmation failed: invalid invoice ID.");
|
||||
}
|
||||
else
|
||||
Invoice* invoice = currentInvoices.getValueAt(invoiceIndex);
|
||||
if (!invoice || invoice->getStatus() != util::PaymentStatus::PAID)
|
||||
{
|
||||
throw std::runtime_error("Payment failed: invalid invoice ID.");
|
||||
throw std::runtime_error("Payment confirmation failed: invoice is not awaiting confirmation.");
|
||||
}
|
||||
User* currentUser = invoice->getBooking()->getCustomer();
|
||||
invoice->setStatus(util::PaymentStatus::COMPLETED);
|
||||
std::string title = "Payment Confirmed";
|
||||
std::string message = "Payment Confirmed for Invoice ID " + invoiceID;
|
||||
sendNotification(currentUser, title, message);
|
||||
}
|
||||
+2
-2
@@ -28,8 +28,8 @@ public:
|
||||
void generateInvoice(ServiceBooking* booking);
|
||||
util::Map<std::string, Invoice*> getInvoices(const std::string& customerID);
|
||||
void completePayment(const std::string& invoiceID, util::PaymentMode paymentMode);
|
||||
util::Map<std::string, Invoice*>& getAllInvoice();
|
||||
void confirmPayment(std::string invoiceID);
|
||||
util::Map<std::string, Invoice*>& getAllInvoices();
|
||||
void confirmPayment(const std::string& invoiceID);
|
||||
void sendPaymentReminders();
|
||||
void sendNotification(User* user, const std::string& title, const std::string& message) override;
|
||||
void attach(User* user) override;
|
||||
|
||||
@@ -503,7 +503,7 @@ void AdminMenu::displayUsers()
|
||||
/*
|
||||
Function: confirmPayment
|
||||
Description: Confirms payment for a selected invoice. Validates invoice status, updates payment date,
|
||||
sets status to PAID, and sends a notification to the customer.
|
||||
sets status to COMPLETED, and sends a notification to the customer.
|
||||
Parameters:
|
||||
- invoiceID: std::string, ID of the invoice to confirm
|
||||
Returns:
|
||||
@@ -520,19 +520,19 @@ void AdminMenu::confirmPayment()
|
||||
util::pressEnter();
|
||||
return;
|
||||
}
|
||||
bool hasPaidInvoice = false;
|
||||
bool hasConfirmableInvoice = false;
|
||||
for (int index = 0; index < invoiceList.getSize(); ++index)
|
||||
{
|
||||
const Invoice* invoice = invoiceList.getValueAt(index);
|
||||
if (invoice && invoice->getStatus() == util::PaymentStatus::PAID)
|
||||
{
|
||||
hasPaidInvoice = true;
|
||||
hasConfirmableInvoice = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasPaidInvoice)
|
||||
if (!hasConfirmableInvoice)
|
||||
{
|
||||
std::cout << "No pending invoices available for payment.\n";
|
||||
std::cout << "No invoices awaiting confirmation.\n";
|
||||
util::pressEnter();
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user