diff --git a/CHANGELOG.md b/CHANGELOG.md index 239d23a8f283841d9bb9839f615a314d76bdfab5..685be22b6683f69dba64608eaa63c3ff59e74162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ ### Added - MYD-739/Fix List with sale sessions stats - Add delete item functionality in back office and display sale session ID +- Enhance item filtering by excluding deleted items based on status and source + ### Changed diff --git a/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java b/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java index 867f4b400d00aa2b1f765ec8004259e69ff94a67..259a5b78ab501779f275dc55aab8f12e3c45b8bb 100644 --- a/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java +++ b/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java @@ -76,9 +76,8 @@ public interface CartRepository extends JpaRepository<Cart, Long>, JpaSpecificat List<Object[]> findActiveClientsCountByDay(LocalDateTime startDate, LocalDateTime endDate, ItemSource source); - @Query("SELECT c FROM Cart c " + - "WHERE EXISTS (SELECT ic1 FROM c.items ic1) " + + "WHERE EXISTS (SELECT ic1 FROM c.items ic1 WHERE ic1.status != 'DELETED_BO' ) " + " AND LOWER(c.status) = 'open' " + " AND ((-1L) in :clientIds OR c.clientId IN :clientIds) " + " AND ((-1L) in :productIds OR EXISTS (SELECT ic2 FROM c.items ic2 WHERE ic2.productId IN :productIds))") diff --git a/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java b/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java index ecce6f086de0c50d7cb8c735170859bb65f1b228..7ad05378ae8939f663c8aa1c23d57e522dd35213 100644 --- a/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java +++ b/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java @@ -1036,11 +1036,15 @@ public class CartServiceImp implements CartService { } }); } + List<ProductDetailsCartDTO> productDetailsCartDTOS = cart.getItems().stream() .map(item -> mapItemToProductDetails(item, productMap)) .filter(Objects::nonNull) + .filter(item -> !item.getStatus().equals(ItemCartStatus.DELETED_BO)) + .filter(item -> !(item.getStatus().equals(ItemCartStatus.DELETED_SITE) && item.getSource().equals(ItemSource.WEB))) .toList(); + cartDTO.setSubTotalPrice(productDetailsCartDTOS.stream() .mapToDouble(ProductDetailsCartDTO::getTotalPrice) .sum());