Compare commits
5 Commits
a6fe645909
...
features/f
| Author | SHA1 | Date | |
|---|---|---|---|
| b3c1e10da6 | |||
| b0e0caf3bb | |||
| c9f7afb23d | |||
| 08a4762a83 | |||
| d38784b682 |
@@ -1,14 +1,17 @@
|
||||
package io.gmss.fiscad.controllers.rfu.metier;
|
||||
|
||||
|
||||
import io.gmss.fiscad.entities.infocad.parametre.Structure;
|
||||
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
|
||||
import io.gmss.fiscad.entities.user.User;
|
||||
import io.gmss.fiscad.enums.StatusAvis;
|
||||
import io.gmss.fiscad.exceptions.*;
|
||||
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
|
||||
import io.gmss.fiscad.interfaces.infocad.parametre.StructureService;
|
||||
import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService;
|
||||
import io.gmss.fiscad.paylaods.ApiResponse;
|
||||
import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb;
|
||||
import io.gmss.fiscad.paylaods.request.crudweb.StructurePaylaodWeb;
|
||||
import io.gmss.fiscad.security.CurrentUser;
|
||||
import io.gmss.fiscad.security.UserPrincipal;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -29,6 +32,8 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.client.HttpClientErrorException;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@@ -39,6 +44,8 @@ import org.springframework.web.client.HttpClientErrorException;
|
||||
public class ImpositionsTfuController {
|
||||
|
||||
private final ImpositionsTfuService impositionsTfuService;
|
||||
private final StructureService structureService;
|
||||
|
||||
private final EnqueteService enqueteService;
|
||||
private static final Logger logger = LoggerFactory.getLogger(ImpositionsTfuController.class);
|
||||
|
||||
@@ -54,11 +61,22 @@ public class ImpositionsTfuController {
|
||||
HttpStatus.OK
|
||||
);
|
||||
}
|
||||
User user=currentUser.getUser();
|
||||
|
||||
if(impositionsTfuPaylaodWeb.getStructureId()==null){
|
||||
return new ResponseEntity<>(
|
||||
new ApiResponse<>(false, null, "Veuillez préciser la strucuture."),
|
||||
HttpStatus.OK
|
||||
);
|
||||
}
|
||||
|
||||
User user = currentUser.getUser();
|
||||
|
||||
StructurePaylaodWeb st = structureService.getStructureById(impositionsTfuPaylaodWeb.getStructureId()).orElseGet(null);
|
||||
|
||||
|
||||
if(user.getStructure().getId()!=impositionsTfuPaylaodWeb.getStructureId()){
|
||||
return new ResponseEntity<>(
|
||||
new ApiResponse<>(false, null, "Vous n'etes pas autorisé à accéder à cette ressource."),
|
||||
new ApiResponse<>(false, null, "Vous n'etes pas autorisé à accéder à cette ressource. Votre centre : "+ user.getStructure().getNom() +" le centre de liquidation : "+ st.getNom()),
|
||||
HttpStatus.OK
|
||||
);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,8 @@ public class ExerciceController {
|
||||
@PreAuthorize("hasAuthority('CREATE_EXERCICE')")
|
||||
public ResponseEntity<?> createExercice(@RequestBody @Valid @Validated Exercice exercice) {
|
||||
try {
|
||||
|
||||
|
||||
exercice = exerciceService.createExercice(exercice);
|
||||
return new ResponseEntity<>(
|
||||
new ApiResponse<>(true, exercice, "Exercice créé avec succès."),
|
||||
|
||||
@@ -27,6 +27,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Formula;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
@@ -183,6 +184,14 @@ public class Enquete extends BaseEntity implements Serializable {
|
||||
private Integer nbreIndivisiaire;
|
||||
private String autreAdresse;
|
||||
private Float superficie ;
|
||||
@Formula("""
|
||||
(
|
||||
SELECT COUNT(DISTINCT (bat.id))
|
||||
FROM enquete e
|
||||
join batiment bat on bat.parcelle_id =e.parcelle_id
|
||||
WHERE bat.parcelle_id = parcelle_id
|
||||
)
|
||||
""")
|
||||
private Integer nbreBatiment;
|
||||
private Integer nbrePiscine;
|
||||
private Long montantMensuelleLocation;
|
||||
|
||||
@@ -51,6 +51,7 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
|
||||
private String datePieceAdmin;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
|
||||
private StatusAvis statusAvis;
|
||||
@Formula("""
|
||||
(
|
||||
@@ -59,6 +60,7 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
|
||||
WHERE d.impositions_tfu_id = id
|
||||
)
|
||||
""")
|
||||
@Transient
|
||||
private Integer nombreAvis;
|
||||
@Formula("""
|
||||
(
|
||||
@@ -68,6 +70,7 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
|
||||
and (d.nature_impot='FNB' or d.nature_impot='FB')
|
||||
)
|
||||
""")
|
||||
@Transient
|
||||
private Integer nombreAvisFnb;
|
||||
@Formula("""
|
||||
(
|
||||
@@ -78,7 +81,9 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
|
||||
and d.batiment_id is not null
|
||||
)
|
||||
""")
|
||||
@Transient
|
||||
private Integer nombreAvisBatiment;
|
||||
|
||||
@Formula("""
|
||||
(
|
||||
SELECT COUNT(DISTINCT (d.annee, d.code_commune, d.personne_id))
|
||||
@@ -88,6 +93,7 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
|
||||
and d.unite_logement_id is not null
|
||||
)
|
||||
""")
|
||||
@Transient
|
||||
private Integer nombreAvisUniteLog;
|
||||
|
||||
@Column(columnDefinition = "TEXT")
|
||||
|
||||
@@ -22,7 +22,15 @@ import java.time.LocalDate;
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Where(clause = " deleted = false")
|
||||
//@Where(clause = " deleted = false")
|
||||
@Table(
|
||||
uniqueConstraints = {
|
||||
@UniqueConstraint(
|
||||
name = "uk_participer_equipe_user",
|
||||
columnNames = {"equipe_id", "user_id"}
|
||||
)
|
||||
}
|
||||
)
|
||||
public class Participer extends BaseEntity implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
|
||||
@@ -21,6 +21,11 @@ import java.time.LocalDate;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Where(clause = " deleted = false")
|
||||
@Table(
|
||||
uniqueConstraints = {
|
||||
@UniqueConstraint(name = "uk_exercice_annee", columnNames = "annee")
|
||||
}
|
||||
)
|
||||
public class Exercice extends BaseEntity implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
|
||||
@@ -2,6 +2,7 @@ package io.gmss.fiscad.implementations.rfu.metier;
|
||||
|
||||
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
|
||||
import io.gmss.fiscad.entities.rfu.metier.Participer;
|
||||
import io.gmss.fiscad.exceptions.ApplicationException;
|
||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||
import io.gmss.fiscad.interfaces.rfu.metier.ParticiperService;
|
||||
@@ -41,12 +42,22 @@ public class ParticiperServiceImpl implements ParticiperService {
|
||||
throw new BadRequestException("Impossible de créer la participation: L'équipe doit être précisée.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (participerPaylaodWeb.getUserId() == null) {
|
||||
throw new BadRequestException("Impossible de créer la participation : Le participant doit être précisé.");
|
||||
}else {
|
||||
if(!userRepository.existsById(participerPaylaodWeb.getUserId()))
|
||||
throw new BadRequestException("Impossible de créer un nouveau participer: Le participant doit être précisé.");
|
||||
}
|
||||
|
||||
if (participerRepository.existsByEquipeIdAndUserId(
|
||||
participerPaylaodWeb.getEquipeId(),
|
||||
participerPaylaodWeb.getUserId())) {
|
||||
throw new ApplicationException("Cet utilisateur participe déjà à cette équipe.");
|
||||
}
|
||||
|
||||
|
||||
Participer participer= entityFromPayLoadService.getParticiperFromPayLoadWeb(participerPaylaodWeb);
|
||||
participer= participerRepository.save(participer);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package io.gmss.fiscad.implementations.rfu.parametre;
|
||||
|
||||
import io.gmss.fiscad.entities.rfu.parametre.Exercice;
|
||||
import io.gmss.fiscad.exceptions.ApplicationException;
|
||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||
import io.gmss.fiscad.interfaces.rfu.parametre.ExerciceService;
|
||||
@@ -22,8 +23,14 @@ public class ExerciceServiceImpl implements ExerciceService {
|
||||
|
||||
@Override
|
||||
public Exercice createExercice(Exercice exercice) throws BadRequestException {
|
||||
if (exercice.getId() != null) {
|
||||
throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
|
||||
if (exercice.getId() == null) {
|
||||
if (exerciceRepository.existsByAnnee(exercice.getAnnee())) {
|
||||
throw new ApplicationException("Un exercice existe déjà pour l'année " + exercice.getAnnee() + ".");
|
||||
}
|
||||
} else {
|
||||
if (exerciceRepository.existsByAnneeAndIdNot(exercice.getAnnee(), exercice.getId())) {
|
||||
throw new ApplicationException("Un exercice existe déjà pour l'année " + exercice.getAnnee() + ".");
|
||||
}
|
||||
}
|
||||
return exerciceRepository.save(exercice);
|
||||
}
|
||||
|
||||
@@ -137,9 +137,10 @@ public class UserServiceImpl implements UserService {
|
||||
public UserPaylaodWeb updateUser(Long id, UserPaylaodWeb userPaylaodWeb) {
|
||||
|
||||
if ((userRepository.findByUsername(userPaylaodWeb.getLogin()).isEmpty())
|
||||
|| (userRepository.findByEmail(userPaylaodWeb.getEmail()).isEmpty())) {
|
||||
&& (userRepository.findByEmail(userPaylaodWeb.getEmail()).isEmpty())) {
|
||||
throw new BadRequestException("Cet utilisateur n'existe pas.");
|
||||
}
|
||||
|
||||
if (userPaylaodWeb.getId() == null) {
|
||||
throw new BadRequestException("Cet utilisateur n'existe déjà.");
|
||||
}
|
||||
|
||||
@@ -121,6 +121,10 @@ FROM impositions_tfu imp
|
||||
order by exo.annee,dimp.parcelle_id,dimp.nature_impot, dimp.montant_taxe-coalesce(dimp.acompte,0)-coalesce(dimp.retenu_irf,0) desc ;
|
||||
|
||||
|
||||
select * from e_avis_view
|
||||
|
||||
select *
|
||||
from impositions_tfu;
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
@@ -63,6 +63,15 @@ $$;
|
||||
|
||||
call integrer_eavis();
|
||||
|
||||
select * from eavis
|
||||
call integrer_eavis_detail();
|
||||
|
||||
delete from eavis;
|
||||
select *
|
||||
from e_avis_view ;
|
||||
|
||||
select * from eavis;
|
||||
|
||||
|
||||
select * from eavis_detail;
|
||||
|
||||
select *
|
||||
from donnees_imposition_tfu;
|
||||
@@ -20,8 +20,8 @@ BEGIN
|
||||
AS
|
||||
SELECT *
|
||||
FROM dblink
|
||||
( 'host=193.181.208.4 port=5433 dbname=sigibe_test user=sigibe_test_user password=sigibe_test_pwd',
|
||||
--v_conn,
|
||||
(
|
||||
v_conn,
|
||||
format($SQL$
|
||||
SELECT
|
||||
exercice,
|
||||
@@ -55,7 +55,7 @@ BEGIN
|
||||
ilot,
|
||||
parcelle
|
||||
|
||||
$SQL$, '08.1')--commune_id)
|
||||
$SQL$, commune_id)
|
||||
)
|
||||
AS src
|
||||
(
|
||||
@@ -149,10 +149,9 @@ select left(code,4) as code_commune_fiscad, code as code_quartier_fiscad,nom as
|
||||
from quartier;
|
||||
|
||||
|
||||
create or replace function get_dblink_connection_sigibe() returns text
|
||||
create function get_dblink_connection_sigibe() returns text
|
||||
language sql
|
||||
as
|
||||
$$
|
||||
SELECT 'host=193.181.208.4 port=5433 dbname=sigibe_test user=sigibe_test_user password=sigibe_test_pwd';
|
||||
$$;
|
||||
|
||||
$$;
|
||||
@@ -12,6 +12,7 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface ParticiperRepository extends JpaRepository<Participer, Long> {
|
||||
boolean existsByEquipeIdAndUserId(Long equipeId, Long userId);
|
||||
@Query("""
|
||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParticiperPayloadWeb(
|
||||
p.id,
|
||||
|
||||
@@ -10,5 +10,8 @@ import java.util.Optional;
|
||||
|
||||
public interface ExerciceRepository extends JpaRepository<Exercice, Long> {
|
||||
Optional<Exercice> findFirstByAnnee(int annee);
|
||||
boolean existsByAnnee(Integer annee);
|
||||
|
||||
boolean existsByAnneeAndIdNot(Integer annee, Long id);
|
||||
}
|
||||
|
||||
|
||||
@@ -88,25 +88,26 @@ public interface AvoirFonctionRepository extends JpaRepository<AvoirFonction, Lo
|
||||
Page<AvoirFonctionPaylaodWeb> findAllAvoirFonctionToDtoPageable(Pageable pageable);
|
||||
|
||||
@Query("""
|
||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.AvoirFonctionPaylaodWeb(
|
||||
af.id,
|
||||
af.dateDebut,
|
||||
af.dateFin,
|
||||
f.id,
|
||||
f.code,
|
||||
f.nom,
|
||||
u.id,
|
||||
u.username,
|
||||
u.nom,
|
||||
u.prenom,
|
||||
u.email,
|
||||
af.titre
|
||||
)
|
||||
FROM AvoirFonction af
|
||||
LEFT JOIN af.user u
|
||||
LEFT JOIN af.fonction f
|
||||
WHERE u.id = :userId
|
||||
""")
|
||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.AvoirFonctionPaylaodWeb(
|
||||
af.id,
|
||||
af.dateDebut,
|
||||
af.dateFin,
|
||||
f.id,
|
||||
f.code,
|
||||
f.nom,
|
||||
u.id,
|
||||
u.username,
|
||||
u.nom,
|
||||
u.prenom,
|
||||
u.email,
|
||||
af.titre
|
||||
)
|
||||
FROM AvoirFonction af
|
||||
LEFT JOIN af.user u
|
||||
LEFT JOIN af.fonction f
|
||||
WHERE u.id = :userId
|
||||
AND (af.dateFin IS NULL OR af.dateFin >= CURRENT_DATE)
|
||||
""")
|
||||
List<AvoirFonctionPaylaodWeb> findAllAvoirFonctionByUserToDto(@Param("userId") Long userId);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user