From 1102ed57f24c6989b48db5e61e867ff57cc45e82 Mon Sep 17 00:00:00 2001
From: ayaZouity <aya.zouity@marketingconfort.com>
Date: Wed, 9 Apr 2025 15:16:54 +0100
Subject: [PATCH] Enhance item filtering by excluding deleted items based on
 status and source

---
 CHANGELOG.md                                                  | 2 ++
 .../mydressin/repositories/CartRepository.java                | 3 +--
 .../mydressin/services/impl/CartServiceImp.java               | 4 ++++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 239d23a..685be22 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 867f4b4..259a5b7 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 ecce6f0..7ad0537 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());
-- 
GitLab