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 f997310
Show file tree
Hide file tree
Showing 3 changed files with 35 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,41 @@ 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)

);
}

private 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;
}
case null, default -> {
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

0 comments on commit f997310

Please sign in to comment.