From aec566935c86316ac48f03b4acdb276f8ba526e7 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Sat, 21 Mar 2026 15:15:36 +0100 Subject: [PATCH] fusion maj parcelle,batiment,ulo et leur enquete --- .../DonneesImpositionTfuController.java | 24 +++ .../DonneesImpositionTfuServiceImpl.java | 19 +- .../metier/DonneesImpositionTfuService.java | 1 + .../generer_donnees_imposition_irf_batie.sql | 10 - ...es_imposition_irf_batie_unite_logement.sql | 17 +- .../generer_donnees_imposition_srtb_batie.sql | 17 +- ...s_imposition_srtb_batie_unite_logement.sql | 16 +- .../generer_donnees_imposition_tfu_batie.sql | 38 ++-- ...es_imposition_tfu_batie_unite_logement.sql | 9 +- ...nerer_donnees_imposition_tfu_non_batie.sql | 186 +++++++++++++++++- .../DonneesImpositionTfuRepository.java | 89 ++++++++- 11 files changed, 364 insertions(+), 62 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java index 7ce5f2f..c250025 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java @@ -460,4 +460,28 @@ public class DonneesImpositionTfuController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } + + @GetMapping("/all/by-exercice-id/by-structure-id/{exerciceId}/{structureId}") + public ResponseEntity getAllDonneesImpositionTfuByExerciceIdAndStructureId(@PathVariable Long exerciceId, @PathVariable Long structureId) { + try { + System.out.println("NOUS SOMMES ICI"); + return new ResponseEntity<>( + new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByExerciceAndStructureId(exerciceId,structureId), "Liste des caractéristiques chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } } 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 58d40b1..1040520 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 @@ -117,13 +117,13 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ Integer nbulo= donneesImpositionTfuRepository.genererDonneesTfuBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); - Integer nbirfbt= donneesImpositionTfuRepository.genererDonneesIrfBatie(impositionsTfuPaylaodWeb.getId(),userId); - - Integer nbirfulo= donneesImpositionTfuRepository.genererDonneesIrfBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); - - Integer nbsrtbbt= donneesImpositionTfuRepository.genererDonneesSrtbBatie(impositionsTfuPaylaodWeb.getId(),userId); - - Integer nbsrtbulo= donneesImpositionTfuRepository.genererDonneesSrtbBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); +// Integer nbirfbt= donneesImpositionTfuRepository.genererDonneesIrfBatie(impositionsTfuPaylaodWeb.getId(),userId); +// +// Integer nbirfulo= donneesImpositionTfuRepository.genererDonneesIrfBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); +// +// Integer nbsrtbbt= donneesImpositionTfuRepository.genererDonneesSrtbBatie(impositionsTfuPaylaodWeb.getId(),userId); +// +// Integer nbsrtbulo= donneesImpositionTfuRepository.genererDonneesSrtbBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); @@ -197,4 +197,9 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ public Page getDonneesFiscalesByExerciceAndStructureIdPageable(Long exerciceId, Long structureId, Pageable pageable) { return donneesImpositionTfuRepository.findAllByExericeIdStructureIdPageable(exerciceId,structureId,pageable); } + + @Override + public List getDonneesFiscalesByExerciceAndStructureId(Long exerciceId, Long structureId) { + return donneesImpositionTfuRepository.findAllByExericeIdStructureId(exerciceId,structureId); + } } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java index 86b6668..6b187b5 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java @@ -43,5 +43,6 @@ public interface DonneesImpositionTfuService { Page getDonneesFiscalesByImpositionSrtbIdBatieUniteLogPageable(Long impositionsTfuId, Pageable pageable); Page getDonneesFiscalesByExerciceAndStructureIdPageable(Long exerciceId, Long structureId, Pageable pageable); + List getDonneesFiscalesByExerciceAndStructureId(Long exerciceId, Long structureId); } diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie.sql index e98f4c3..44f6cac 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie.sql @@ -283,13 +283,3 @@ WHERE impositions_tfu_id = p_impositions_tfu_id RETURN v_rows_inserted; END; $$; - - -delete from donnees_imposition_tfu; - - -select donnees_imposition_tfu.superficie_au_sol_loue,valeur_locative_adm,taux_tfu,montant_taxe, * from donnees_imposition_tfu -where nature_impot='IRF'; - -select generer_donnees_imposition_irf_batie(4,35); - diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie_unite_logement.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie_unite_logement.sql index 8bce4ff..014a7bf 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie_unite_logement.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_irf_batie_unite_logement.sql @@ -234,7 +234,14 @@ FROM parcelle p JOIN arrondissement a ON a.id = q.arrondissement_id JOIN commune c ON c.id = a.commune_id JOIN departement d ON d.id = c.departement_id - JOIN secteur_decoupage sd ON sd.quartier_id = q.id + --JOIN secteur_decoupage sd ON sd.quartier_id = q.id + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id JOIN secteur sect ON sect.id = sd.secteur_id JOIN section ses ON ses.id = sect.section_id JOIN "structure" st ON st.id = ses.structure_id @@ -332,11 +339,3 @@ WHERE impositions_tfu_id = p_impositions_tfu_id RETURN v_rows_inserted; END; $$; - - -delete from donnees_imposition_tfu; - -select generer_donnees_imposition_irf_batie_unite_logement(4,35); - -select donnees_imposition_tfu.superficie_au_sol_loue,valeur_locative_adm,taux_tfu,montant_taxe, * from donnees_imposition_tfu -where nature_impot='IRF'; \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie.sql index 7d281c1..b9dffcd 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie.sql @@ -202,7 +202,14 @@ FROM parcelle p JOIN arrondissement a ON a.id = q.arrondissement_id JOIN commune c ON c.id = a.commune_id JOIN departement d ON d.id = c.departement_id - JOIN secteur_decoupage sd ON sd.quartier_id = q.id + --JOIN secteur_decoupage sd ON sd.quartier_id = q.id + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id JOIN secteur sect ON sect.id = sd.secteur_id JOIN section ses ON ses.id = sect.section_id JOIN "structure" st ON st.id = ses.structure_id @@ -255,11 +262,3 @@ END; $$; ---delete from donnees_imposition_tfu; - - -select donnees_imposition_tfu.superficie_au_sol_loue,valeur_locative_adm,taux_tfu,montant_taxe, * from donnees_imposition_tfu -where nature_impot='SRTB'; - -select generer_donnees_imposition_srtb_batie(4,35); - diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie_unite_logement.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie_unite_logement.sql index 9f18eaa..18a81e3 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie_unite_logement.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_srtb_batie_unite_logement.sql @@ -215,7 +215,14 @@ FROM parcelle p JOIN arrondissement a ON a.id = q.arrondissement_id JOIN commune c ON c.id = a.commune_id JOIN departement d ON d.id = c.departement_id - JOIN secteur_decoupage sd ON sd.quartier_id = q.id + --JOIN secteur_decoupage sd ON sd.quartier_id = q.id + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id JOIN secteur sect ON sect.id = sd.secteur_id JOIN section ses ON ses.id = sect.section_id JOIN "structure" st ON st.id = ses.structure_id @@ -302,10 +309,3 @@ RETURN v_rows_inserted; END; $$; - -delete from donnees_imposition_tfu; - -select generer_donnees_imposition_srtb_batie_unite_logement(4,35); - -select donnees_imposition_tfu.superficie_au_sol_loue,valeur_locative_adm,taux_tfu,montant_taxe, * from donnees_imposition_tfu -where nature_impot='SRTB'; \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie.sql index 219376f..9c9c1b6 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie.sql @@ -160,19 +160,19 @@ SELECT 'TFU', p.superficie, eb.superficie_au_sol, - case -------valeur_batiment - WHEN eb.valeur_batiment_reel IS NOT NULL AND eb.valeur_batiment_reel <> 0 THEN eb.valeur_batiment_reel - WHEN eb.valeur_batiment_calcule IS NOT NULL AND eb.valeur_batiment_calcule <> 0 THEN eb.valeur_batiment_calcule - WHEN eb.valeur_batiment_estime IS NOT NULL AND eb.valeur_batiment_estime <> 0 THEN eb.valeur_batiment_estime - ELSE 0 - END, + COALESCE( + NULLIF(eb.valeur_batiment_reel, 0), + NULLIF(eb.valeur_batiment_calcule, 0), + NULLIF(eb.valeur_batiment_estime, 0), + 0 + ), brb.valeur_locative, - case ----- montant_loyer_annuel - WHEN eb.montant_locatif_annuel_declare IS NOT NULL AND eb.montant_locatif_annuel_declare <> 0 THEN eb.montant_locatif_annuel_declare - WHEN eb.montant_locatif_annuel_calcule IS NOT NULL AND eb.montant_locatif_annuel_calcule <> 0 THEN eb.montant_locatif_annuel_calcule - WHEN eb.montant_locatif_annuel_estime IS NOT NULL AND eb.montant_locatif_annuel_estime <> 0 THEN eb.montant_locatif_annuel_estime - ELSE 0 - END, + COALESCE( + NULLIF(eb.montant_locatif_annuel_declare, 0), + NULLIF(eb.montant_locatif_annuel_calcule, 0), + NULLIF(eb.montant_locatif_annuel_estime, 0), + 0 + ), brb.tfu_metre_carre, brb.tfu_minimum, p_impositions_tfu_id, @@ -198,7 +198,7 @@ SELECT end, 0, ------ valeur_locative_adm : en attente de update case -----tfu_superficie_au_sol_reel - when eb.categorie_usage='HABITATION' then eb.superficie_au_sol * brb.valeur_locative * v_taux_tfu/100 + when eb.categorie_usage='HABITATION' then eb.superficie_au_sol * brb.valeur_locative * v_taux_tfu/100 +eb.nombre_piscine * v_tfu_piscine_unitaire else 0 end, eb.nombre_piscine * v_tfu_piscine_unitaire, @@ -231,7 +231,14 @@ FROM parcelle p JOIN arrondissement a ON a.id = q.arrondissement_id JOIN commune c ON c.id = a.commune_id JOIN departement d ON d.id = c.departement_id - JOIN secteur_decoupage sd ON sd.quartier_id = q.id + --JOIN secteur_decoupage sd ON sd.quartier_id = q.id + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id JOIN secteur sect ON sect.id = sd.secteur_id JOIN section ses ON ses.id = sect.section_id JOIN "structure" st ON st.id = ses.structure_id @@ -335,4 +342,5 @@ WHERE impositions_tfu_id = p_impositions_tfu_id ); RETURN v_rows_inserted; END; -$$; \ No newline at end of file +$$; + diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie_unite_logement.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie_unite_logement.sql index ab3de1b..9b3989e 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie_unite_logement.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_batie_unite_logement.sql @@ -246,7 +246,14 @@ FROM parcelle p JOIN arrondissement a ON a.id = q.arrondissement_id JOIN commune c ON c.id = a.commune_id JOIN departement d ON d.id = c.departement_id - JOIN secteur_decoupage sd ON sd.quartier_id = q.id + --JOIN secteur_decoupage sd ON sd.quartier_id = q.id + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id JOIN secteur sect ON sect.id = sd.secteur_id JOIN section ses ON ses.id = sect.section_id JOIN "structure" st ON st.id = ses.structure_id diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_non_batie.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_non_batie.sql index 8790708..bb2e935 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_non_batie.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/generer_donnees_imposition_tfu_non_batie.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION public.generer_donnees_imposition_tfu_non_batie( +/*CREATE OR REPLACE FUNCTION public.generer_donnees_imposition_tfu_non_batie( p_impositions_tfu_id BIGINT, p_user_id BIGINT ) @@ -159,4 +159,186 @@ GET DIAGNOSTICS v_rows_inserted = ROW_COUNT; RETURN v_rows_inserted; END; -$$; \ No newline at end of file +$$;*/ + +CREATE OR REPLACE FUNCTION public.generer_donnees_imposition_tfu_non_batie( + p_impositions_tfu_id BIGINT, + p_user_id BIGINT +) + RETURNS INTEGER + LANGUAGE plpgsql +AS +$$ +DECLARE + v_rows_inserted INTEGER; + v_annee BIGINT; + v_structure_id BIGINT; +BEGIN + + -- récupération de l'année + SELECT ex.annee, it.structure_id + INTO STRICT v_annee, v_structure_id + FROM impositions_tfu it + JOIN exercice ex ON ex.id = it.exercice_id + WHERE it.id = p_impositions_tfu_id; + + + INSERT INTO donnees_imposition_tfu( + annee, + code_departement, + nom_departement, + code_commune, + nom_commune, + code_arrondissement, + nom_arrondissement, + code_quartier_village, + nom_quartier_village, + q, + ilot, + parcelle, + nup, + titre_foncier, + ifu, + npi, + tel_prop, + email_prop, + nom_prop, + prenom_prop, + raison_sociale, + adresse_prop, + tel_sc, + nom_sc, + prenom_sc, + longitude, + latitude, + batie, + exonere, + date_enquete, + structure_id, + zone_rfu_id, + nature_impot, + superficie_parc, + impositions_tfu_id, + deleted, + created_at, + created_by, + "source", + updated_at, + updated_by, + taux_tfu, + valeur_admin_parcelle_nb, + valeur_admin_parcelle_nb_metre_carre, + montant_taxe + ) + SELECT + v_annee, + d.code, + d.nom, + c.code, + c.nom, + a.code, + a.nom, + q.code, + q.nom, + p.q, + p.i, + p.p, + p.nup, + ep.numero_titre_foncier, + pers.ifu, + pers.npi, + pers.tel1, + pers.email, + pers.nom, + pers.prenom, + pers.raison_sociale, + pers.adresse, + ep.representant_tel, + ep.representant_nom, + ep.representant_prenom, + p.longitude, + p.latitude, + false, + ( + CURRENT_DATE >= ep.date_debut_exemption + AND CURRENT_DATE <= COALESCE(ep.date_fin_exemption, CURRENT_DATE) + ), + ep.date_enquete, + st.id, + ep.zone_rfu_id, + 'TFU', + p.superficie, + p_impositions_tfu_id, + false, + current_date, + p_user_id, + 'FISCAD', + current_date, + p_user_id, + brnb.taux, + CASE + WHEN brnb.au_metre_carre = true + THEN brnb.valeur_administrative_metre_carre * ep.superficie + ELSE brnb.valeur_administrative + END, + brnb.valeur_administrative_metre_carre, + CASE + WHEN brnb.au_metre_carre = true + THEN brnb.valeur_administrative_metre_carre * ep.superficie * brnb.taux / 100 + ELSE brnb.valeur_administrative * brnb.taux / 100 + END + FROM parcelle p + + LEFT JOIN ( + SELECT DISTINCT ON (parcelle_id) + parcelle_id, + superficie, + personne_id, + numero_titre_foncier, + date_enquete, + representant_tel, + representant_nom, + representant_prenom, + representant_npi, + date_debut_exemption, + date_fin_exemption, + zone_rfu_id + FROM enquete + ORDER BY parcelle_id, date_enquete DESC + ) ep ON ep.parcelle_id = p.id + + LEFT JOIN personne pers ON pers.id = ep.personne_id + + JOIN quartier q ON q.id = p.quartier_id + JOIN arrondissement a ON a.id = q.arrondissement_id + JOIN commune c ON c.id = a.commune_id + JOIN departement d ON d.id = c.departement_id + +-- ✅ CORRECTION ICI + JOIN ( + SELECT DISTINCT ON (quartier_id) + quartier_id, + secteur_id + FROM secteur_decoupage + ORDER BY quartier_id + ) sd ON sd.quartier_id = q.id + + JOIN secteur sect ON sect.id = sd.secteur_id + JOIN section ses ON ses.id = sect.section_id + JOIN "structure" st ON st.id = ses.structure_id + + LEFT JOIN barem_rfu_non_bati brnb + ON (brnb.commune_id = c.id AND brnb.zone_rfu_id = ep.zone_rfu_id) + + WHERE p.batie = false + AND st.id = v_structure_id + + ON CONFLICT DO NOTHING; + + GET DIAGNOSTICS v_rows_inserted = ROW_COUNT; + + RETURN v_rows_inserted; + +END; +$$; + 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 26d53d1..ed2fc1f 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 @@ -555,7 +555,7 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( - @Query(""" + @Query(value = """ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.id, d.annee, @@ -625,10 +625,97 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( WHERE itfu.exercice.id = :exerciceId and s.id= :structureId order by d.nomProp,d.nomProp asc + """, + countQuery = """ + select count(*) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.exercice.id = :exerciceId + and s.id= :structureId """) Page findAllByExericeIdStructureIdPageable( Long exerciceId, Long structureId, Pageable pageable ); + + + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( + d.id, + d.annee, + d.codeDepartement, + d.nomDepartement, + d.codeCommune, + d.nomCommune, + d.codeArrondissement, + d.nomArrondissement, + d.codeQuartierVillage, + d.nomQuartierVillage, + d.q, + d.ilot, + d.parcelle, + d.nup, + d.titreFoncier, + d.numBatiment, + d.numUniteLogement, + d.ifu, + d.npi, + d.telProp, + d.emailProp, + d.nomProp, + d.prenomProp, + d.raisonSociale, + d.adresseProp, + d.telSc, + d.emailSc, + d.nomSc, + d.prenomSc, + d.adresseSc, + d.longitude, + d.latitude, + d.superficieParc, + d.superficieAuSolBat, + d.superficieAuSolUlog, + d.batie, + d.exonere, + d.batimentExonere, + d.uniteLogementExonere, + d.valeurLocativeAdm, + d.montantLoyerAnnuel, + d.tfuMetreCarre, + d.tfuMinimum, + d.standingBat, + d.categorieBat, + d.nombrePiscine, + d.nombreUlog, + d.nombreBat, + d.dateEnquete, + s.id, + z.id, + d.valeurAdminParcelleNb, + d.natureImpot, + s.code, + z.nom, + d.valeurBatiment, + d.valeurParcelle, + d.valeurLocativeAdmMetreCarre, + d.valeurAdminParcelleNbMetreCarre, + d.montantTaxe + ) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.exercice.id = :exerciceId + and s.id= :structureId + order by d.nomProp,d.nomProp asc + """) + List findAllByExericeIdStructureId( + Long exerciceId, + Long structureId + ); }