Merge branch 'feature-payment-management-pay002' into feature-payment-management
This commit is contained in:
+37
@@ -54,4 +54,41 @@ void PaymentManagementService::generateInvoice(ServiceBooking* booking)
|
||||
Invoice* invoice = Factory::getObject<Invoice>(bookingID, booking, util::Timestamp(), totalLabourCost, completeInventoryItemMapOfBooking, totalPartsCost, discountPercentage, totalServiceCost, util::Timestamp(), util::PaymentMode::NOTSET, util::PaymentStatus::PENDING);
|
||||
util::Map<std::string, Invoice*>& currentInvoices = m_dataStore.getInvoices();
|
||||
currentInvoices.insert(invoice->getId(), invoice);
|
||||
}
|
||||
|
||||
util::Map<std::string, Invoice*> PaymentManagementService::getInvoices(const std::string& customerID)
|
||||
{
|
||||
util::Map<std::string, Invoice*>& currentInvoices = m_dataStore.getInvoices();
|
||||
util::Map<std::string, Invoice*> currentUserInvoices;
|
||||
for (int iterator = 0; iterator < currentInvoices.getSize(); iterator++)
|
||||
{
|
||||
Invoice* currentInvoice = currentInvoices.getValueAt(iterator);
|
||||
if (currentInvoice->getBooking()->getCustomerId() == customerID)
|
||||
{
|
||||
currentUserInvoices.insert(currentInvoice->getId(), currentInvoice);
|
||||
}
|
||||
}
|
||||
return currentUserInvoices;
|
||||
}
|
||||
|
||||
void PaymentManagementService::completePayment(const std::string& invoiceID, util::PaymentMode paymentMode)
|
||||
{
|
||||
auto& currentInvoices = m_dataStore.getInvoices();
|
||||
int invoiceIndex = currentInvoices.find(invoiceID);
|
||||
if (invoiceIndex != -1)
|
||||
{
|
||||
Invoice* invoice = currentInvoices.getValueAt(invoiceIndex);
|
||||
User* currentUser = invoice->getBooking()->getCustomer();
|
||||
invoice->setPaymentMethod(paymentMode);
|
||||
invoice->setPaymentDate(util::Timestamp());
|
||||
invoice->setStatus(util::PaymentStatus::COMPLETED);
|
||||
std::string title, message;
|
||||
title = "Payment successful";
|
||||
message = "Payment successful for invoice ID " + invoiceID;
|
||||
sendNotification(currentUser, title, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("Payment failed: invalid invoice ID.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user