arreglados problemas varios

This commit is contained in:
2025-11-01 12:07:28 +01:00
parent a01d74aeb2
commit 6afa78df68
20 changed files with 146 additions and 81 deletions

View File

@ -3,7 +3,7 @@ package com.imprimelibros.erp.cart;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface CartRepository extends JpaRepository<Cart, Long> {

View File

@ -14,6 +14,7 @@ import java.util.Objects;
import com.imprimelibros.erp.presupuesto.classes.PresupuestoFormatter;
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;
import com.imprimelibros.erp.cart.dto.CartDireccionRepository;
import com.imprimelibros.erp.cart.dto.DireccionCardDTO;
import com.imprimelibros.erp.cart.dto.DireccionShipment;
import com.imprimelibros.erp.cart.dto.UpdateCartRequest;
@ -27,6 +28,7 @@ import com.imprimelibros.erp.presupuesto.PresupuestoRepository;
public class CartService {
private final CartRepository cartRepo;
private final CartDireccionRepository cartDireccionRepo;
private final CartItemRepository itemRepo;
private final MessageSource messageSource;
private final PresupuestoRepository presupuestoRepo;
@ -36,11 +38,13 @@ public class CartService {
private final PedidoService pedidoService;
public CartService(CartRepository cartRepo, CartItemRepository itemRepo,
MessageSource messageSource, PresupuestoFormatter presupuestoFormatter,
PresupuestoRepository presupuestoRepo, Utils utils, DireccionService direccionService,
skApiClient skApiClient, PedidoService pedidoService) {
CartDireccionRepository cartDireccionRepo, MessageSource messageSource,
PresupuestoFormatter presupuestoFormatter, PresupuestoRepository presupuestoRepo,
Utils utils, DireccionService direccionService, skApiClient skApiClient,
PedidoService pedidoService) {
this.cartRepo = cartRepo;
this.itemRepo = itemRepo;
this.cartDireccionRepo = cartDireccionRepo;
this.messageSource = messageSource;
this.presupuestoRepo = presupuestoRepo;
this.utils = utils;
@ -379,6 +383,16 @@ public class CartService {
}
}
// delete cart directions by direccion id in ACTIVE carts
@Transactional
public void deleteCartDireccionesByDireccionId(Long direccionId) {
/*List<CartDireccion> cartDirecciones = cartDireccionRepo.findByDireccion_IdAndCart_Status(direccionId, Cart.Status.ACTIVE);
for (CartDireccion cd : cartDirecciones) {
cartDireccionRepo.deleteById(cd.getId());
}*/
cartDireccionRepo.deleteByDireccionIdAndCartStatus(direccionId, Cart.Status.ACTIVE);
}
/***************************************
* MÉTODOS PRIVADOS
***************************************/

View File

@ -1,7 +1,13 @@
package com.imprimelibros.erp.cart.dto;
import com.imprimelibros.erp.cart.Cart;
import com.imprimelibros.erp.cart.CartDireccion;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -12,4 +18,14 @@ public interface CartDireccionRepository extends JpaRepository<CartDireccion, Lo
// Lectura por cart_id (útil para componer respuestas)
List<CartDireccion> findByCartId(Long cartId);
@Modifying
@Transactional
@Query("""
delete from CartDireccion cd
where cd.direccion.id = :direccionId
and cd.cart.status = :status
""")
int deleteByDireccionIdAndCartStatus(@Param("direccionId") Long direccionId,
@Param("status") Cart.Status status);
}

View File

@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.imprimelibros.erp.cart.CartService;
import com.imprimelibros.erp.datatables.DataTable;
import com.imprimelibros.erp.datatables.DataTablesParser;
import com.imprimelibros.erp.datatables.DataTablesRequest;
@ -51,16 +52,18 @@ public class DireccionController {
protected final MessageSource messageSource;
protected final UserDao userRepo;
protected final TranslationService translationService;
protected final CartService cartService;
public DireccionController(DireccionRepository repo, PaisesService paisesService,
MessageSource messageSource, UserDao userRepo, TranslationService translationService,
DireccionService direccionService) {
DireccionService direccionService, CartService cartService) {
this.repo = repo;
this.paisesService = paisesService;
this.messageSource = messageSource;
this.userRepo = userRepo;
this.translationService = translationService;
this.direccionService = direccionService;
this.cartService = cartService;
}
@GetMapping()
@ -452,6 +455,7 @@ public class DireccionController {
}
try {
direccion.setDeleted(true);
direccion.setDeletedAt(Instant.now());
@ -462,6 +466,9 @@ public class DireccionController {
}
repo.saveAndFlush(direccion);
// eliminar referencias en carritos activos
cartService.deleteCartDireccionesByDireccionId(direccion.getId());
return ResponseEntity.ok(Map.of("message",
messageSource.getMessage("direcciones.exito.eliminado", null, locale)));

View File

@ -1,7 +1,6 @@
package com.imprimelibros.erp.presupuesto;
import com.imprimelibros.erp.common.Utils;
import com.imprimelibros.erp.configuracion.margenes_presupuestos.MargenPresupuesto;
import com.imprimelibros.erp.datatables.*;
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;

View File

@ -2,8 +2,6 @@ package com.imprimelibros.erp.users;
import org.springframework.security.core.userdetails.UserDetailsService;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

View File

@ -3,20 +3,11 @@ package com.imprimelibros.erp.users;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import java.text.Collator;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import com.imprimelibros.erp.direcciones.Direccion;
@Service
public class UserServiceImpl implements UserService {