ironing out erp bugs

This commit is contained in:
2025-09-27 01:08:30 +02:00
parent 2bb5dbd8fa
commit b0c2eb352e
19 changed files with 142 additions and 119 deletions

View File

@@ -28,10 +28,7 @@ import zw.qantra.tm.domain.services.processors.handlers.FormattingHandler;
import zw.qantra.tm.domain.services.processors.handlers.LogicPipeline;
import zw.qantra.tm.domain.services.processors.handlers.RecipientsUpdateHandler;
import zw.qantra.tm.domain.services.processors.handlers.ValidationHandler;
import zw.qantra.tm.domain.services.processors.handlers.erp.JournalEntryHandler;
import zw.qantra.tm.domain.services.processors.handlers.erp.PaymentEntryHandler;
import zw.qantra.tm.domain.services.processors.handlers.erp.PurchaseInvoiceHandler;
import zw.qantra.tm.domain.services.processors.handlers.erp.SalesInvoiceHandler;
import zw.qantra.tm.domain.services.processors.handlers.erp.*;
import zw.qantra.tm.domain.models.TransactionEvent;
import zw.qantra.tm.exceptions.ApiException;
import zw.qantra.tm.utils.Utils;
@@ -50,6 +47,12 @@ public class TransactionService {
private final RecipientService recipientService;
private final TransactionEventService transactionEventService;
private final SalesInvoiceHandler salesInvoiceHandler;
private final JournalEntryHandler journalEntryHandler;
private final PaymentEntryHandler paymentEntryHandler;
private final PurchaseInvoiceHandler purchaseInvoiceHandler;
private final PurchasePaymentEntryHandler purchasePaymentEntryHandler;
public Transaction integration(Transaction transaction) {
transaction.setType(RequestType.INTEGRATION);
@@ -62,8 +65,8 @@ public class TransactionService {
LogicPipeline<Transaction, Transaction> transactionLogic =
new LogicPipeline<>(new ValidationHandler())
.addHandler(new JournalEntryHandler()) // todo: do this in a separate thread
.addHandler(new PaymentEntryHandler()); // todo: do this in a separate thread
.addHandler(journalEntryHandler) // todo: do this in a separate thread
.addHandler(paymentEntryHandler); // todo: do this in a separate thread
transaction = transactionLogic.execute(transaction);
Provider provider = providerService.getProviderRepository()
@@ -84,7 +87,7 @@ public class TransactionService {
transaction.setIntegrationStatus(transaction.getStatus());
transactionRepository.save(transaction);
}catch (Exception e){
e.printStackTrace();
e.getCause().printStackTrace();
transaction.setStatus(Status.FAILED);
transaction.setResponseCode("01");
transaction.setErrorMessage(e.getMessage());
@@ -94,8 +97,8 @@ public class TransactionService {
// run post integration logic
LogicPipeline<Transaction, Transaction> postTransactionLogic =
new LogicPipeline<>(new PurchaseInvoiceHandler()) // todo: do this in a separate thread
.addHandler(new PurchaseInvoiceHandler()); // todo: do this in a separate thread
new LogicPipeline<>(purchaseInvoiceHandler) // todo: do this in a separate thread
.addHandler(purchasePaymentEntryHandler); // todo: do this in a separate thread
transaction = postTransactionLogic.execute(transaction);
transactionEvent.setStatus(transaction.getStatus());
@@ -204,7 +207,7 @@ public class TransactionService {
// run post transaction logic
LogicPipeline<Transaction, Transaction> postTransactionLogic =
new LogicPipeline<>(new RecipientsUpdateHandler(recipientService))
.addHandler(new SalesInvoiceHandler());// todo: do this in a separate thread
.addHandler(salesInvoiceHandler);// todo: do this in a separate thread
transaction = postTransactionLogic.execute(transaction);
transactionEvent.setStatus(transaction.getStatus());
@@ -267,7 +270,7 @@ public class TransactionService {
try {
AdditionalData additionalData = additionalDataService.getAdditionalDataRepository()
.findByTransactionIdAndRequestType(id, RequestType.INTEGRATION).orElseThrow(() ->
.findByTransactionIdAndRequestType(id.toString(), RequestType.INTEGRATION).orElseThrow(() ->
new ApiException("Additional data not found for transaction ID: " + id + " and request type: " + RequestType.INTEGRATION));
transaction.setAdditionalData(Utils.fromJson(additionalData.getJsonString(), List.class));
} catch (ApiException e) {