ironing out erp bugs
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user