trabajando en añadir

This commit is contained in:
2025-10-24 16:15:05 +02:00
parent 3517918afe
commit 2ed032d7c6
18 changed files with 1412 additions and 47 deletions

View File

@ -0,0 +1,77 @@
package com.imprimelibros.erp.direcciones;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface DireccionRepository
extends JpaRepository<Direccion, Long>,
JpaSpecificationExecutor<Direccion> {
@Query("""
SELECT
d.id AS id,
d.alias AS alias,
d.att AS att,
d.direccion AS direccion,
d.cp AS cp,
d.ciudad AS ciudad,
d.provincia AS provincia,
d.paisCode3 AS paisCode3,
p.keyword AS paisKeyword,
d.telefono AS telefono,
d.direccionFacturacion AS direccionFacturacion,
d.razonSocial AS razonSocial,
d.tipoIdentificacionFiscal AS tipoIdentificacionFiscal,
d.identificacionFiscal AS identificacionFiscal,
u.fullName AS cliente
FROM Direccion d
JOIN d.user u
LEFT JOIN Paises p ON d.paisCode3 = p.code3
WHERE (:userId IS NULL OR u.id = :userId)
""")
List<DireccionView> findAllWithPaisAndUser(@Param("userId") Long userId);
//findbyidwithPaisAndUser
@Query("""
SELECT
d.id AS id,
d.alias AS alias,
d.att AS att,
d.direccion AS direccion,
d.cp AS cp,
d.ciudad AS ciudad,
d.provincia AS provincia,
d.paisCode3 AS paisCode3,
p.keyword AS paisKeyword,
d.telefono AS telefono,
d.direccionFacturacion AS direccionFacturacion,
d.razonSocial AS razonSocial,
d.tipoIdentificacionFiscal AS tipoIdentificacionFiscal,
d.identificacionFiscal AS identificacionFiscal,
u.fullName AS cliente
FROM Direccion d
JOIN d.user u
LEFT JOIN Paises p ON d.paisCode3 = p.code3
WHERE (d.id = :id)
""")
Optional<DireccionView> findByIdWithPaisAndUser(@Param("id") Long id);
@Query(value = "SELECT * FROM direcciones", nativeQuery = true)
List<DireccionView> findAllWithDeleted();
// find by user_id
List<Direccion> findByUserId(Long userId);
// find by user_id with deleted
@Query(value = "SELECT * FROM direcciones WHERE user_id = :userId", nativeQuery = true)
List<Direccion> findByUserIdWithDeleted(@Param("userId") Long userId);
}