Skip to content

Commit

Permalink
feat: transaction statistic status
Browse files Browse the repository at this point in the history
  • Loading branch information
M4rc0Russ0 committed Aug 13, 2024
1 parent 46d0029 commit 12307fd
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.UserExtractionParameters;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.ValidationStatus;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.entity.*;
import org.cardanofoundation.lob.app.accounting_reporting_core.repository.TransactionBatchRepositoryGateway;
import org.cardanofoundation.lob.app.accounting_reporting_core.resource.requests.*;
Expand Down Expand Up @@ -183,16 +184,42 @@ private TransactionView getTransactionView(TransactionEntity transactionEntity)
transactionEntity.getTransactionInternalNumber(),
transactionEntity.getEntryDate(),
transactionEntity.getTransactionType(),
transactionEntity.getStatus(),
getTransactionDispatchStatus(transactionEntity),
transactionEntity.getAutomatedValidationStatus(),
transactionEntity.getTransactionApproved(),
transactionEntity.getLedgerDispatchApproved(),
getAmountLcyTotalForAllItems(transactionEntity),
getTransactionItemView(transactionEntity),
getViolations(transactionEntity),
transactionEntity.getStatus()
getViolations(transactionEntity)

);
}

public LedgerDispatchStatusView getTransactionDispatchStatus(TransactionEntity transactionEntity) {

if (ValidationStatus.FAILED == transactionEntity.getAutomatedValidationStatus()) {
return LedgerDispatchStatusView.INVALID;
}

switch (transactionEntity.getLedgerDispatchStatus()) {
case MARK_DISPATCH -> {
return LedgerDispatchStatusView.APPROVE;
}
case NOT_DISPATCHED -> {
return LedgerDispatchStatusView.PENDING;
}
case DISPATCHED -> {
return LedgerDispatchStatusView.PUBLISH;
}
case COMPLETED -> {
return LedgerDispatchStatusView.PUBLISHED;
}
}
return LedgerDispatchStatusView.INVALID;

}

private Set<TransactionItemView> getTransactionItemView(TransactionEntity transaction) {
return transaction.getItems().stream().map(item -> {
return new TransactionItemView(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.TransactionStatus;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.TransactionType;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.ValidationStatus;
import org.cardanofoundation.lob.app.accounting_reporting_core.resource.requests.LedgerDispatchStatusView;

import java.math.BigDecimal;
import java.time.LocalDate;
Expand All @@ -28,12 +29,14 @@ public class TransactionView {
private LocalDate entryDate;

private TransactionType transactionType;
private TransactionStatus status = TransactionStatus.OK;
private LedgerDispatchStatusView statistic = LedgerDispatchStatusView.PENDING;
private ValidationStatus validationStatus = ValidationStatus.VALIDATED;
private boolean transactionApproved = false;
private boolean ledgerDispatchApproved = false;
private BigDecimal amountTotalLcy;
private Set<TransactionItemView> items = new LinkedHashSet<>();
private Set<ViolationView> violations = new LinkedHashSet<>();
private TransactionStatus status = TransactionStatus.OK;


}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.entity.Violation;
import org.cardanofoundation.lob.app.accounting_reporting_core.domain.entity.*;
import org.cardanofoundation.lob.app.accounting_reporting_core.repository.TransactionBatchRepositoryGateway;
import org.cardanofoundation.lob.app.accounting_reporting_core.resource.requests.LedgerDispatchStatusView;
import org.cardanofoundation.lob.app.accounting_reporting_core.service.internal.TransactionRepositoryGateway;
import org.cardanofoundation.lob.app.accounting_reporting_core.resource.presentation_layer_service.AccountingCorePresentationViewService;
import org.cardanofoundation.lob.app.accounting_reporting_core.resource.requests.BatchSearchRequest;
Expand Down Expand Up @@ -109,6 +110,8 @@ void testAllTransactions() {
assertEquals(Boolean.FALSE, result.get(1).isTransactionApproved());
assertEquals(Boolean.TRUE, result.get(1).isLedgerDispatchApproved());
assertEquals(ValidationStatus.FAILED, result.get(1).getValidationStatus());
assertEquals(LedgerDispatchStatusView.INVALID, result.get(1).getStatistic());
assertEquals(LedgerDispatchStatusView.PENDING, result.get(0).getStatistic());
assertEquals("tx-id2-internal", result.get(1).getInternalTransactionNumber());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
assertEquals(localDate.format(formatter).toString(), result.get(1).getEntryDate().toString());
Expand Down Expand Up @@ -254,4 +257,24 @@ void testExtractionTrigger() {
Mockito.verify(accountingCoreService, Mockito.times(1)).scheduleIngestion(Mockito.any(UserExtractionParameters.class));

}

@Test
void allTransactionsDispatchStatus() {
TransactionEntity transaction = new TransactionEntity();

assertEquals(LedgerDispatchStatusView.PENDING, accountingCorePresentationConverter.getTransactionDispatchStatus(transaction));

transaction.setLedgerDispatchStatus(LedgerDispatchStatus.MARK_DISPATCH);
assertEquals(LedgerDispatchStatusView.APPROVE, accountingCorePresentationConverter.getTransactionDispatchStatus(transaction));

transaction.setLedgerDispatchStatus(LedgerDispatchStatus.NOT_DISPATCHED);
assertEquals(LedgerDispatchStatusView.PENDING, accountingCorePresentationConverter.getTransactionDispatchStatus(transaction));

transaction.setLedgerDispatchStatus(LedgerDispatchStatus.DISPATCHED);
assertEquals(LedgerDispatchStatusView.PUBLISH, accountingCorePresentationConverter.getTransactionDispatchStatus(transaction));

transaction.setLedgerDispatchStatus(LedgerDispatchStatus.COMPLETED);
assertEquals(LedgerDispatchStatusView.PUBLISHED, accountingCorePresentationConverter.getTransactionDispatchStatus(transaction));

}
}

0 comments on commit 12307fd

Please sign in to comment.