Interface InventoryTransactionService<T extends InventoryTransaction>

All Superinterfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<T>
All Known Implementing Classes:
DefaultInventoryTransactionService

public interface InventoryTransactionService<T extends InventoryTransaction> extends com.broadleafcommerce.data.tracking.core.service.CrudEntityService<T>
Service to save and retrieve InventoryTransaction records.
Author:
Kelly Tisdell (ktisdell)
  • Method Details

    • readBySkuInventoryId

      org.springframework.data.domain.Page<T> readBySkuInventoryId(@NonNull String skuInventoryId, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads InventoryTransaction records by SkuInventory#getContextId().
      Parameters:
      skuInventoryId -
      page -
      contextInfo -
      Returns:
    • readBySkuInventoryIdAndTransactionType

      org.springframework.data.domain.Page<T> readBySkuInventoryIdAndTransactionType(@NonNull String skuInventoryId, @NonNull String transactionType, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads InventoryTransaction records by SkuInventory#getContextId() and InventoryTransactionType.
      Parameters:
      skuInventoryId -
      transactionType -
      page -
      contextInfo -
      Returns:
      See Also:
    • readByTransactionTypeAndReferenceNumber

      List<T> readByTransactionTypeAndReferenceNumber(@NonNull String transactionType, @NonNull String referenceNumber, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads InventoryTransaction records by InventoryTransactionType and a referenceNumber. The referenceNumber could be anything, but typically a unique identifier across a tenant (e.g. Fulfillment Group Item ID, Purchase Order Item ID, etc.)
      Parameters:
      transactionType -
      referenceNumber -
      contextInfo -
      Returns:
    • readByTransactionTypeAndReferenceNumberAndDateProcessedIsNull

      List<T> readByTransactionTypeAndReferenceNumberAndDateProcessedIsNull(@NonNull String transactionType, @NonNull String referenceNumber, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads InventoryTransaction records by InventoryTransactionType and a referenceNumber where the processed date is null. The referenceNumber could be anything, but typically a sales order number, a PO number, or another document number. This allows you to search for records that have not been processed yet.
      Parameters:
      transactionType -
      referenceNumber -
      contextInfo -
      Returns:
    • readReservationTransactionsBySkuInventoryIdAndReferenceNumber

      List<T> readReservationTransactionsBySkuInventoryIdAndReferenceNumber(@NonNull String skuInventoryId, @NonNull String referenceNumber, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Returns a list of InventoryTransaction records that have 1 or more transaction types for the same SkuInventory.getId() and reference number.
      Parameters:
      skuInventoryId -
      referenceNumber -
      contextInfo -
      Returns:
    • readByReferenceNumberAndTransactionTypes

      List<T> readByReferenceNumberAndTransactionTypes(@NonNull String referenceNumber, @NonNull Set<String> transactionTypes, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Returns a list of InventoryTransaction records for 1 or more transaction type with the same referenceNumber.
      Parameters:
      referenceNumber -
      transactionTypes -
      contextInfo -
      Returns:
    • readByReferenceNumbersAndTransactionTypes

      List<T> readByReferenceNumbersAndTransactionTypes(@NonNull List<String> referenceNumbers, @NonNull Set<String> transactionTypes, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Returns a list of InventoryTransaction records for 1 or more transaction type with for the given reference numbers.
      Parameters:
      referenceNumbers - the reference numbers to search for
      transactionTypes - the transaction types to search for
      contextInfo - context information around sandbox and multitenant state
      Returns:
      a list of InventoryTransaction records that have 1 or more transaction types for the given reference numbers
    • readByBatchId

      org.springframework.data.domain.Page<T> readByBatchId(@NonNull String batchId, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads a paginated list of InventoryTransaction records based on batchId.
      Parameters:
      batchId -
      page -
      contextInfo -
      Returns:
    • readByDateCreatedBeforeAndTransactionTypeIn

      org.springframework.data.domain.Page<T> readByDateCreatedBeforeAndTransactionTypeIn(Instant maxCreatedDate, Set<String> transactionTypes, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads a page of inventory transactions created before a certain date and of certain transaction types.
    • enhancedReadByDateCreatedBeforeAndTransactionTypeIn

      org.springframework.data.domain.Page<T> enhancedReadByDateCreatedBeforeAndTransactionTypeIn(Instant maxCreatedDate, Set<String> transactionTypes, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Reads a page of inventory transactions created before a certain date and of certain transaction types. This method supports the INCLUDE_APPLICATION_ID_PREDICATE context attribute to ignore the application filtering. See JpaInventoryTenantQueryHelper.buildContextFilters(com.broadleafcommerce.data.tracking.core.context.ContextInfo, jakarta.persistence.criteria.CriteriaQuery<D>, java.util.Map<java.lang.String, java.lang.Object>, jakarta.persistence.criteria.Root<D>, java.lang.Class<D>) for more information.
      Parameters:
      maxCreatedDate - Find transactions created before this date.
      transactionTypes - Find transactions with one of the given transactionTypes.
      page - Sublist of filtered transactions.
      contextInfo - The contextInfo of the request.
      Returns:
      Inventory transactions created before the given date, with one of the given statuses, belonging to any application of the tenant from the context.
    • enhancedDelete

      default void enhancedDelete(@NonNull String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Essentially CrudEntityHelper.delete(java.lang.String, com.broadleafcommerce.data.tracking.core.context.ContextInfo, com.broadleafcommerce.data.tracking.core.TrackableRepository<com.broadleafcommerce.data.tracking.core.Trackable>) that has been adapted to work with CustomizedInventoryTransactionRepository.enhancedFindByContextId(String, ContextInfo) to support the INCLUDE_APPLICATION_ID_PREDICATE context attribute to ignore the application filtering. See JpaInventoryTenantQueryHelper.buildContextFilters(com.broadleafcommerce.data.tracking.core.context.ContextInfo, jakarta.persistence.criteria.CriteriaQuery<D>, java.util.Map<java.lang.String, java.lang.Object>, jakarta.persistence.criteria.Root<D>, java.lang.Class<D>) for more information.
      Parameters:
      id - The ID of the InventoryTransaction to delete (archive).
      context - The context of the request.