Skip to content

Commit

Permalink
MODDCB-67: ITEM_CHECKED_IN->CLOSED: Implement DCB transaction status … (
Browse files Browse the repository at this point in the history
#48)

MODDCB-67: ITEM_CHECKED_IN->CLOSED: Implement DCB transaction status transition (Borrowing library)
  • Loading branch information
DmytroBykov1 authored Nov 21, 2023
1 parent 0aa7d47 commit 044fa49
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
import org.folio.dcb.service.CirculationService;
import org.folio.dcb.service.LibraryService;
import org.springframework.stereotype.Service;

import java.util.UUID;

import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.*;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.AWAITING_PICKUP;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.CREATED;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.CLOSED;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.ITEM_CHECKED_IN;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.OPEN;

@Log4j2
@Service("borrowingLibraryService")
Expand Down Expand Up @@ -48,6 +51,10 @@ public void updateTransactionStatus(TransactionEntity dcbTransaction, Transactio
} else if(OPEN == currentStatus && AWAITING_PICKUP == requestedStatus) {
circulationService.checkInByBarcode(dcbTransaction);
updateTransactionEntity(dcbTransaction, requestedStatus);
}else if (ITEM_CHECKED_IN == currentStatus && CLOSED == requestedStatus) {
log.info("updateTransactionStatus:: transaction status transition from {} to {} for the item with barcode {} ",
ITEM_CHECKED_IN.getValue(), CLOSED.getValue(), dcbTransaction.getItemBarcode());
updateTransactionEntity(dcbTransaction, requestedStatus);
} else {
String error = String.format("updateTransactionStatus:: status update from %s to %s is not implemented", currentStatus, requestedStatus);
log.warn(error);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import static org.folio.dcb.domain.dto.DcbTransaction.RoleEnum.BORROWER;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.AWAITING_PICKUP;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.CREATED;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.CLOSED;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.ITEM_CHECKED_IN;
import static org.folio.dcb.domain.dto.TransactionStatus.StatusEnum.OPEN;
import static org.folio.dcb.utils.EntityUtils.DCB_TRANSACTION_ID;
import static org.folio.dcb.utils.EntityUtils.PICKUP_SERVICE_POINT_ID;
Expand Down Expand Up @@ -74,4 +76,14 @@ void createTransactionTest() {
verify(baseLibraryService).createBorrowingLibraryTransaction(DCB_TRANSACTION_ID, createDcbTransactionByRole(BORROWER), PICKUP_SERVICE_POINT_ID);
}

@Test
void testTransactionStatusUpdateFromItemCheckedInToClosed() {
var transactionEntity = createTransactionEntity();
transactionEntity.setStatus(ITEM_CHECKED_IN);
TransactionStatus transactionStatus = TransactionStatus.builder().status(CLOSED).build();
borrowingLibraryService.updateTransactionStatus(transactionEntity, transactionStatus);

Assertions.assertEquals(CLOSED, transactionEntity.getStatus());
}

}

0 comments on commit 044fa49

Please sign in to comment.