From c6a4e68d3848db0d5d2705ef9a3f64cf06b4d227 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Fri, 31 Jul 2026 13:03:07 +0100 Subject: [PATCH] reajustement workflow --- .../rfu/metier/DonneesImpositionTfu.java | 2 +- .../entities/rfu/metier/ImpositionsTfu.java | 35 ++++++++- .../infocad/metier/EnqueteServiceImpl.java | 6 +- .../DonneesImpositionTfuServiceImpl.java | 16 ++--- .../crudweb/DonneesImpositionPaylaodWeb.java | 5 +- .../crudweb/ImpositionsTfuPaylaodWeb.java | 1 + .../export_donnee_imposition_vers_sigibe.sql | 72 ------------------- .../DonneesImpositionTfuRepository.java | 30 +++++--- .../service/EntityFromPayLoadService.java | 1 + 9 files changed, 71 insertions(+), 97 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java index 2737bae..1a3906a 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java @@ -94,7 +94,7 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable { private Long nombrePiscine; private Long nombreUlog; private Long nombreBat; - // @Column(nullable = true, columnDefinition = "boolean default true") + @Column(nullable = true, columnDefinition = "boolean default true") private Boolean homologable ; @JsonFormat(pattern = "dd-MM-yyyy") @JsonDeserialize(using = LocalDateDeserializer.class) diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java index 5e635f4..bca29be 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java @@ -15,6 +15,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import org.hibernate.annotations.Formula; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -54,10 +55,42 @@ public class ImpositionsTfu extends BaseEntity implements Serializable { @Enumerated(EnumType.STRING) private StatusAvis statusAvis; - + @Formula(""" + ( + SELECT COUNT(DISTINCT (d.annee, d.code_commune, d.personne_id)) + FROM donnees_imposition_tfu d + WHERE d.impositions_tfu_id = id + ) + """) private Integer nombreAvis; + @Formula(""" + ( + SELECT COUNT(DISTINCT (d.annee, d.code_commune, d.personne_id)) + FROM donnees_imposition_tfu d + WHERE d.impositions_tfu_id = id + and (d.nature_impot='FNB' or d.nature_impot='FB') + ) + """) private Integer nombreAvisFnb; + @Formula(""" + ( + SELECT COUNT(DISTINCT (d.annee, d.code_commune, d.personne_id)) + FROM donnees_imposition_tfu d + WHERE d.impositions_tfu_id = id + and d.nature_impot='FB' + and d.batiment_id is not null + ) + """) private Integer nombreAvisBatiment; + @Formula(""" + ( + SELECT COUNT(DISTINCT (d.annee, d.code_commune, d.personne_id)) + FROM donnees_imposition_tfu d + WHERE d.impositions_tfu_id = id + and d.nature_impot='FB' + and d.unite_logement_id is not null + ) + """) private Integer nombreAvisUniteLog; @Column(columnDefinition = "TEXT") diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java index f2714e3..6a001ce 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java @@ -440,18 +440,16 @@ public class EnqueteServiceImpl implements EnqueteService { throw new NotAcceptableException("Impossible de valider : Le statut actuel "+optionalEnquete.get().getStatutEnquete()+" ne le permet pas."); } + System.out.println("ICIC"); + Enquete enquete = optionalEnquete.get(); enquete.setDateValidation(LocalDate.now()); enquete.setStatutEnquete(StatutEnquete.CONTROLE); enquete.setSynchronise(true); - enquete= enqueteRepository.save(enquete); - - if(enquete.getEdeclarationPropriete()!=null) { edeclarationProprieteService.updateEdeclarationProprieteStatut(enquete.getEdeclarationPropriete().getId(), StatutEdeclarationPropriete.TRAITE); } - return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null); } diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java index 62df991..b8e7059 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java @@ -106,7 +106,7 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE); - impositionsTfu.setNombreAvisFnb(nb); + //impositionsTfu.setNombreAvisFnb(nb); impositionsTfuRepository.save(impositionsTfu); @@ -132,7 +132,7 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ Integer nb= donneesImpositionTfuRepository.genererDonneesTfuNonBatie(impositionsTfuPaylaodWeb.getId(),userId,parcelleId); ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE); - impositionsTfu.setNombreAvisFnb(nb); + //impositionsTfu.setNombreAvisFnb(nb); impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } @@ -158,9 +158,9 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); impositionsTfu.setStatusAvis(StatusAvis.GENERE); - impositionsTfu.setNombreAvis(nbb+nbulo+ (impositionsTfu.getNombreAvisFnb()==null?0:impositionsTfu.getNombreAvisFnb())); - impositionsTfu.setNombreAvisBatiment(nbb); - impositionsTfu.setNombreAvisUniteLog(nbulo); + //impositionsTfu.setNombreAvis(nbb+nbulo+ (impositionsTfu.getNombreAvisFnb()==null?0:impositionsTfu.getNombreAvisFnb())); + //impositionsTfu.setNombreAvisBatiment(nbb); + //impositionsTfu.setNombreAvisUniteLog(nbulo); impositionsTfuRepository.save(impositionsTfu); @@ -214,9 +214,9 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ impositionsTfu.setStatusAvis(StatusAvis.GENERE); - impositionsTfu.setNombreAvis(impositionsTfu.getNombreAvis()+1); - impositionsTfu.setNombreAvisBatiment(impositionsTfu.getNombreAvisFnb()+1); - impositionsTfu.setNombreAvisUniteLog(impositionsTfu.getNombreAvisUniteLog()+1); + //impositionsTfu.setNombreAvis(impositionsTfu.getNombreAvis()+1); + //impositionsTfu.setNombreAvisBatiment(impositionsTfu.getNombreAvisFnb()+1); + //impositionsTfu.setNombreAvisUniteLog(impositionsTfu.getNombreAvisUniteLog()+1); impositionsTfuRepository.save(impositionsTfu); diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java index 64d6638..feed135 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java @@ -76,6 +76,7 @@ public class DonneesImpositionPaylaodWeb { private Long valeurLocativeAdmMetreCarre; private Long valeurAdminParcelleNbMetreCarre; private Float montantTaxe; + private Boolean homologable ; public DonneesImpositionPaylaodWeb(Long id, Long annee, @@ -135,7 +136,8 @@ public class DonneesImpositionPaylaodWeb { Long valeurParcelle, Long valeurLocativeAdmMetreCarre, Long valeurAdministrativeParcelleNonBatiAuMetreCarre, - Float montantTaxe + Float montantTaxe, + Boolean homologable ) { this.id = id; this.annee = annee; @@ -197,5 +199,6 @@ public class DonneesImpositionPaylaodWeb { this.valeurLocativeAdmMetreCarre = valeurLocativeAdmMetreCarre; this.valeurAdminParcelleNbMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre; this.montantTaxe = montantTaxe; + this.homologable = homologable == null || homologable; } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ImpositionsTfuPaylaodWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ImpositionsTfuPaylaodWeb.java index c97e3e9..b093e69 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ImpositionsTfuPaylaodWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ImpositionsTfuPaylaodWeb.java @@ -11,6 +11,7 @@ import io.gmss.fiscad.enums.StatusAvis; import jakarta.persistence.*; import lombok.Data; import lombok.NoArgsConstructor; +import org.hibernate.annotations.Formula; import java.time.LocalDate; diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/export_donnee_imposition_vers_sigibe.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/export_donnee_imposition_vers_sigibe.sql index 8b04489..b60269f 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/export_donnee_imposition_vers_sigibe.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/export_donnee_imposition_vers_sigibe.sql @@ -1,75 +1,3 @@ ----------------- -/* -create or replace view e_avis_view as -WITH first_parcelle_imposition AS ( - SELECT DISTINCT ON (personne_id) - personne_id, - parcelle_id - FROM donnees_imposition_tfu - ORDER BY personne_id, annee,parcelle_id -), - cca_unique AS ( - SELECT DISTINCT ON (cc.commune_id, cc.personne_id) - cc.structure_id, - cc.personne_id, - cc.commune_id, - COALESCE(qu.code, qu_imp.code) AS r_quartier_contact, - COALESCE(parc.q, parc_imp.q) AS q_contact, - COALESCE(parc.i, parc_imp.i) AS i_contact, - COALESCE(parc.p, parc_imp.p) AS p_contact - - FROM commune_centre_assignation cc - - LEFT JOIN parcelle parc - ON parc.id = cc.parcelle_id - - LEFT JOIN quartier qu - ON qu.id = parc.quartier_id - - LEFT JOIN first_parcelle_imposition dpi - ON dpi.personne_id = cc.personne_id - - LEFT JOIN parcelle parc_imp - ON parc_imp.id = dpi.parcelle_id - - LEFT JOIN quartier qu_imp - ON qu_imp.id = parc_imp.quartier_id - ORDER BY cc.commune_id, cc.personne_id, cc.structure_id -) -SELECT distinct - null as id_avis, - concat(c.code,'-',dimp.ifu,'-',exo.annee) as r_avis, - exo.annee as exercice, - c.code as r_commune, - st.code as r_centre_impot, - dimp.personne_id as id_contribuable_foncier, - dimp.ifu as ifu, - dimp.npi as npi, - dimp.ifu as nc, - dimp.raison_sociale as raison_sociale, - dimp.nom_prop as nom , - dimp.prenom_prop as prenom, - imp.date_generation as date_liquidation, - current_date as date_information, - cca.r_quartier_contact, - cca.q_contact, - cca.i_contact, - cca.p_contact -FROM impositions_tfu imp - INNER JOIN donnees_imposition_tfu dimp - ON dimp.impositions_tfu_id = imp.id - LEFT JOIN exercice exo - ON exo.id = imp.exercice_id - LEFT JOIN commune c - ON c.id = imp.commune_id - LEFT JOIN cca_unique cca - ON cca.personne_id = dimp.personne_id - AND cca.commune_id = imp.commune_id - LEFT JOIN structure st - ON st.id = cca.structure_id -order by c.code,st.code,r_quartier_contact,i_contact,p_contact; */ - - create or replace view e_avis_view as WITH first_parcelle_imposition AS ( SELECT DISTINCT ON (personne_id) diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java index c1078e6..99350b4 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java @@ -189,7 +189,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -267,7 +268,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -343,7 +345,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -420,7 +423,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -498,7 +502,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -576,7 +581,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -653,7 +659,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -865,7 +872,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -953,7 +961,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu @@ -1035,7 +1044,8 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.valeurParcelle, d.valeurLocativeAdmMetreCarre, d.valeurAdminParcelleNbMetreCarre, - d.montantTaxe + d.montantTaxe, + d.homologable ) FROM DonneesImpositionTfu d JOIN d.impositionsTfu itfu diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index d041927..ab301b3 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -133,6 +133,7 @@ public class EntityFromPayLoadService { caracteristique.setTypeCaracteristique(optionalTypeCaracteristique.orElse(null)); caracteristique.setCode(caracteristiquePayloadWeb.getCode()); caracteristique.setLibelle(caracteristiquePayloadWeb.getLibelle()); + caracteristique.setActif(caracteristiquePayloadWeb.isActif()); caracteristique.setTypeImmeuble(caracteristiquePayloadWeb.getTypeImmeuble()); return caracteristique; }