Gestion des barem #152

Merged
judaur2005 merged 1 commits from features/crud_entites into develop 2026-03-10 21:37:56 +00:00
17 changed files with 237 additions and 157 deletions

View File

@@ -9,6 +9,8 @@ import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository;
import io.gmss.fiscad.security.CurrentUser;
import io.gmss.fiscad.security.UserPrincipal;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -183,9 +185,9 @@ public class DonneesImpositionTfuController {
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
}
}
@Operation(summary = "Générer les données fiscales TFU")
@PostMapping("/generer")
public ResponseEntity<?> genererDonneesFiscale(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
@Operation(summary = "Générer les données fiscales TFU des parcelle baties")
@PostMapping("/generer-batie")
public ResponseEntity<?> genererDonneesFiscale(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try {
Optional<ImpositionsTfu> optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId());
@@ -203,9 +205,13 @@ public class DonneesImpositionTfuController {
);
}
optionalImpositionsTfu.get().setStatusAvis(StatusAvis.GENERE);
impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscales(impositionsTfuPaylaodWeb);
if(userPrincipal==null){
return new ResponseEntity<>(
new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"),
HttpStatus.OK
);
}
impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId());
return new ResponseEntity<>(
new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition Générées avec succès."),

View File

@@ -53,10 +53,6 @@ public class ImpositionsTfuController {
);
}
User user=currentUser.getUser();
System.out.println(user.getId());
System.out.println(user.getStructure().getId());
System.out.println(impositionsTfuPaylaodWeb.getStructureId());
if(user.getStructure().getId()!=impositionsTfuPaylaodWeb.getStructureId()){
return new ResponseEntity<>(

View File

@@ -8,6 +8,7 @@ import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.enums.NatureImpot;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -71,11 +72,17 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
private int superficieParc;
private Long superficieAuSolBat;
private Long superficieAuSolUlog;
private String batieOuiNon;
private String exhonereOuiNon;
private String batimentExhonereOuiNon;
private String uniteLogementExhonereOuiNon;
//private String batieOuiNon;
//private String exhonereOuiNon;
//private String batimentExhonereOuiNon;
//private String uniteLogementExhonereOuiNon;
private Boolean batie;
private Boolean exonere;
private Boolean batimentExonere;
private Boolean uniteLogementExonere;
private Long valeurLocativeAdm;
private Long valeurLocativeAdm70Pour100;
private Long valeurLocativeAdmMetreCarre;
private Long montantLoyerAnnuel;
private Long tfuMetreCarre;
private Long tfuMinimum;
@@ -92,10 +99,15 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
private Long secteurId;
private Long zoneRfuId;
@ColumnDefault("0")
private float tauxParcelleNonBati;
private Long valeurAdministrativeParcelleNonBati;
private Long valeurAdminParcelleNb;
private Float tauxTfu;
private Long valeurAdminParcelleNbMetreCarre;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "impositions_tfu_id", nullable = false)
private ImpositionsTfu impositionsTfu ;
@Enumerated(EnumType.STRING)
private NatureImpot natureImpot;
private Long valeurBatiment;
private Long valeurParcelle;
}

View File

@@ -55,7 +55,10 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
@Enumerated(EnumType.STRING)
private StatusAvis statusAvis;
private Long nombreAvis;
private Integer nombreAvis;
private Integer nombreAvisFnb;
private Integer nombreAvisBatiment;
private Integer nombreAvisUniteLog;
@Column(columnDefinition = "TEXT")
private String motif;
@@ -65,7 +68,5 @@ public class ImpositionsTfu extends BaseEntity implements Serializable {
@JoinColumn(name = "impositions_tfu_id")
private List<DonneesImpositionTfu> donneesImpositionTfus;
public Long getNombreAvis(){
return donneesImpositionTfus==null?0l:donneesImpositionTfus.size();
}
}

View File

@@ -23,6 +23,8 @@ public class BaremRfuNonBati extends BaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long valeurAdministrative;
private Long valeurAdministrativeMetreCarre;
private Boolean auMetreCarre;
private Float taux;
@ManyToOne
private Commune commune;

View File

@@ -0,0 +1,6 @@
package io.gmss.fiscad.enums;
public enum NatureImpot {
TFU,
IRF
}

View File

@@ -12,5 +12,8 @@ public enum ParametersType {
CORPS_RESET_PASSWORD,
OBJET_CREATE_ACCOUNT,
CORPS_CREATE_ACCOUNT,
TOKEN_IFU_EN_LIGNE ;
TOKEN_IFU_EN_LIGNE,
TAUX_TFU_HABITATION,
TAUX_TFU_PROFESSIONNELLE,
TAUX_DEFAUT_SUPERFICIE_AU_SOL;
}

View File

@@ -5,6 +5,7 @@ public enum StatusAvis {
CLOTURE,
GENERATION_AUTORISE,
REJETE,
TFU_FNB_GENERE,
GENERE
}

View File

@@ -95,97 +95,51 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
@Override
@Transactional
public ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
// List<DonneesImpositionTfuResponse> donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
Long n=0l;
public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) {
Integer nb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId);
// for (DonneesImpositionTfuResponse donneesImpositionTfuResponse: donneesImpositionTfuResponses){
// DonneesImpositionTfu donneesImpositionTfu=new DonneesImpositionTfu();
// donneesImpositionTfu.setImpositionsTfu(impositionsTfu);
// donneesImpositionTfu.setZoneRfuId(donneesImpositionTfuResponse.getZoneRfuId());
// donneesImpositionTfu.setCodeQuartierVillage(donneesImpositionTfuResponse.getCodeQuartierVillage());
// donneesImpositionTfu.setNomQuartierVillage(donneesImpositionTfuResponse.getNomQuartierVillage());
// donneesImpositionTfu.setCodeArrondissement(donneesImpositionTfuResponse.getCodeArrondissement());
// donneesImpositionTfu.setNomArrondissement(donneesImpositionTfuResponse.getNomArrondissement());
// donneesImpositionTfu.setCodeCommune(donneesImpositionTfuResponse.getCodeCommune());
// donneesImpositionTfu.setNomCommune(donneesImpositionTfuResponse.getNomCommune());
// donneesImpositionTfu.setCodeDepartement(donneesImpositionTfuResponse.getCodeDepartement());
// donneesImpositionTfu.setNomDepartement(donneesImpositionTfuResponse.getNomDepartement());
// donneesImpositionTfu.setQ(donneesImpositionTfuResponse.getQ());
// donneesImpositionTfu.setIlot(donneesImpositionTfuResponse.getIlot());
// donneesImpositionTfu.setParcelle(donneesImpositionTfuResponse.getParcelle());
// donneesImpositionTfu.setLatitude(donneesImpositionTfuResponse.getLatitude());
// donneesImpositionTfu.setLongitude(donneesImpositionTfuResponse.getLongitude());
// donneesImpositionTfu.setNup(donneesImpositionTfuResponse.getNup());
// donneesImpositionTfu.setNupProvisoire(donneesImpositionTfuResponse.getNupProvisoire());
// donneesImpositionTfu.setSuperficieParc(donneesImpositionTfuResponse.getSuperficieParc());
// donneesImpositionTfu.setAdresseProp(donneesImpositionTfuResponse.getAdresseProp());
// donneesImpositionTfu.setAnnee(donneesImpositionTfuResponse.getAnnee());
// donneesImpositionTfu.setAdresseSc(donneesImpositionTfuResponse.getAdresseSc());
// donneesImpositionTfu.setBatieOuiNon(donneesImpositionTfuResponse.getBatieOuiNon());
// donneesImpositionTfu.setTfuMinimum(donneesImpositionTfuResponse.getTfuMinimum());
// donneesImpositionTfu.setCategorieBat(donneesImpositionTfuResponse.getCategorieBat());
// donneesImpositionTfu.setDateEnquete(donneesImpositionTfuResponse.getDateEnquete());
// donneesImpositionTfu.setEmailProp(donneesImpositionTfuResponse.getEmailProp());
// donneesImpositionTfu.setEmailSc(donneesImpositionTfuResponse.getEmailSc());
// donneesImpositionTfu.setMontantLoyerAnnuel(donneesImpositionTfuResponse.getMontantLoyerAnnuel());
// donneesImpositionTfu.setEnqueteId(donneesImpositionTfuResponse.getEnqueteId());
// donneesImpositionTfu.setExhonereOuiNon(donneesImpositionTfuResponse.getExhonereOuiNon());
// donneesImpositionTfu.setIfu(donneesImpositionTfuResponse.getIfu());
// donneesImpositionTfu.setNombreBat(donneesImpositionTfuResponse.getNombreBat());
// donneesImpositionTfu.setNombrePiscine(donneesImpositionTfuResponse.getNombrePiscine());
// donneesImpositionTfu.setNombreUlog(donneesImpositionTfuResponse.getNombreUlog());
// donneesImpositionTfu.setNomProp(donneesImpositionTfuResponse.getNomProp());
// donneesImpositionTfu.setNomSc(donneesImpositionTfuResponse.getNomSc());
// donneesImpositionTfu.setNpi(donneesImpositionTfuResponse.getNpi());
// donneesImpositionTfu.setNumBatiment(donneesImpositionTfuResponse.getNumBatiment()==null?"":donneesImpositionTfuResponse.getNumBatiment());
// donneesImpositionTfu.setNumUniteLogement(donneesImpositionTfuResponse.getNumUniteLogement()==null?"":donneesImpositionTfuResponse.getNumUniteLogement());
// donneesImpositionTfu.setPrenomProp(donneesImpositionTfuResponse.getPrenomProp());
// donneesImpositionTfu.setPrenomSc(donneesImpositionTfuResponse.getPrenomSc());
// donneesImpositionTfu.setRaisonSociale(donneesImpositionTfuResponse.getRaisonSociale());
// donneesImpositionTfu.setSecteurId(donneesImpositionTfuResponse.getSecteurId());
// donneesImpositionTfu.setStandingBat(donneesImpositionTfuResponse.getStandingBat());
// donneesImpositionTfu.setStructureId(donneesImpositionTfuResponse.getStructureId());
// donneesImpositionTfu.setSuperficieAuSolBat(donneesImpositionTfuResponse.getSuperficieAuSolBat());
// donneesImpositionTfu.setSuperficieAuSolUlog(donneesImpositionTfuResponse.getSuperficieAuSolUlog());
// donneesImpositionTfu.setTelProp(donneesImpositionTfuResponse.getTelProp());
// donneesImpositionTfu.setTelSc(donneesImpositionTfuResponse.getTelSc());
// donneesImpositionTfu.setTfuMetreCarre(donneesImpositionTfuResponse.getTfuMetreCarre());
// donneesImpositionTfu.setTitreFoncier(donneesImpositionTfuResponse.getTitreFoncier());
// donneesImpositionTfu.setValeurLocativeAdm(donneesImpositionTfuResponse.getValeurLocativeAdm());
// donneesImpositionTfu.setBatimentExhonereOuiNon(donneesImpositionTfuResponse.getBatimentExhonereOuiNon());
// donneesImpositionTfu.setUniteLogementExhonereOuiNon(donneesImpositionTfuResponse.getUniteLogementExhonereOuiNon());
// try {
// Optional<BaremRfuNonBati> baremRfuNonBatiOptional=baremRfuNonBatiRepository.findAllByCommune_IdAndZoneRfu_Id(impositionsTfu.getCommune().getId(),donneesImpositionTfu.getZoneRfuId());
// if(baremRfuNonBatiOptional.isPresent()){
// donneesImpositionTfu.setValeurAdministrativeParcelleNonBati(baremRfuNonBatiOptional.get().getValeurAdministrative());
// donneesImpositionTfu.setTauxParcelleNonBati(baremRfuNonBatiOptional.get().getTaux());
// }
//
//
// donneesImpositionTfuRepository.save(donneesImpositionTfu);
// n++;
// }catch (DataIntegrityViolationException e) {
// if (e.getCause() instanceof org.hibernate.exception.ConstraintViolationException constraintEx &&
// constraintEx.getSQLException().getSQLState().equals("23505")) {
// System.out.println("Doublon détecté (clé unique) !");
// } else {
// throw e;
// }
// }
// }
ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb);
impositionsTfu.setStatusAvis(StatusAvis.GENERE);
impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE);
impositionsTfu.setNombreAvisFnb(nb);
impositionsTfuRepository.save(impositionsTfu);
return impositionsTfuPaylaodWeb;
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
}
@Override
@Transactional
public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) {
// List<DonneesImpositionTfuResponse> donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
Integer nbb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId);
Integer nbulo= donneesImpositionTfuRepository.genererDonneesTfuBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId);
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);
impositionsTfuRepository.save(impositionsTfu);
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
}
@Override
public List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long impositionsId) {
return donneesImpositionTfuRepository.findAllByImpositionsTfu_Id(impositionsId);

View File

@@ -19,6 +19,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@AllArgsConstructor
@@ -48,6 +49,16 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
if (!impositionsTfus.isEmpty()) {
throw new BadRequestException("Une Imposition non annulée existe déjà");
}
List<StatusAvis> statusAvis= new ArrayList<>();
statusAvis.add(StatusAvis.EN_COURS);
statusAvis.add(StatusAvis.CLOTURE);
statusAvis.add(StatusAvis.GENERATION_AUTORISE);
Optional<ImpositionsTfu> optionalImpositionsTfu= impositionsTfuRepository.findDistinctByStructure_IdAndExercice_IdAndStatusAvisIn(impositionsTfuPaylaodWeb.getStructureId(),impositionsTfuPaylaodWeb.getExerciceId(),statusAvis);
if(optionalImpositionsTfu.isPresent()){
throw new BadRequestException("Une Imposition est déjà dans le workflow");
}
ImpositionsTfu impositionsTfu=entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb);
@@ -133,12 +144,15 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
@Override
public void deleteImpositionsTfu(Long id) throws NotFoundException {
// Optional<ImpositionsTfu> impositionsTfuOptional = impositionsTfuRepository.findById(id);
// if (impositionsTfuOptional.isPresent()) {
// impositionsTfuRepository.deleteById(impositionsTfuOptional.get().getId());
// } else {
// throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
// }
Optional<ImpositionsTfu> impositionsTfuOptional = impositionsTfuRepository.findById(id);
if (impositionsTfuOptional.isPresent()) {
if(!impositionsTfuOptional.get().getStatusAvis().equals(StatusAvis.EN_COURS)){
throw new NotFoundException("L'état actuel : "+impositionsTfuOptional.get().getStatusAvis()+ " ne permet pas de supprimer");
}
impositionsTfuRepository.deleteById(impositionsTfuOptional.get().getId());
} else {
throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
}
}
@Override

View File

@@ -26,7 +26,8 @@ public interface DonneesImpositionTfuService {
Optional<DonneesImpositionTfu> getDonneesImpositionTfuById(Long id);
ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb);
ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb,Long userId);
ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb,Long userId);
List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long impositionsId);
List<DonneesImpositionTfu> getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId);
}

View File

@@ -18,8 +18,12 @@ public class BaremRfuNonBatiPayloadWeb {
private Long zoneRfuId;
private String zoneRfuCode;
private String zoneRfuNom;
private Long valeurAdministrativeMetreCarre;
private Boolean auMetreCarre;
public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfuId, String zoneRfuCode, String zoneRfuNom) {
public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfuId, String zoneRfuCode, String zoneRfuNom,
Long valeurAdministrativeMetreCarre,
Boolean auMetreCarre) {
this.id = id;
this.valeurAdministrative = valeurAdministrative;
this.taux = taux;
@@ -29,5 +33,7 @@ public class BaremRfuNonBatiPayloadWeb {
this.zoneRfuId = zoneRfuId;
this.zoneRfuCode = zoneRfuCode;
this.zoneRfuNom = zoneRfuNom;
this.valeurAdministrativeMetreCarre = valeurAdministrativeMetreCarre;
this.auMetreCarre = auMetreCarre;
}
}

View File

@@ -1,6 +1,9 @@
package io.gmss.fiscad.paylaods.request.crudweb;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.gmss.fiscad.enums.NatureImpot;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -20,68 +23,84 @@ public class DonneesImpositionPaylaodWeb {
private String nomArrondissement;
private String codeQuartierVillage;
private String nomQuartierVillage;
private String q;
private String ilot;
private String parcelle;
private String nup;
private String titreFoncier;
private String numBatiment;
private String numUniteLogement;
private String ifu;
private String npi;
private String telProp;
private String emailProp;
private String nomProp;
private String prenomProp;
private String raisonSociale;
private String adresseProp;
private String telSc;
private String telRep;
private String emailRep;
private String nomRep;
private String prenomRep;
private String adresseRep;
private String longitude;
private String latitude;
private Integer superficieParc;
private Long superficieAuSolBat;
private Long superficieAuSolUlog;
private String batieOuiNon;
private String exhonereOuiNon;
private String batimentExhonereOuiNon;
private String uniteLogementExhonereOuiNon;
private Boolean batie;
private Boolean exonere;
private Boolean batimentExonere;
private Boolean uniteLogementExonere;
private Long valeurLocativeAdm;
private Long valeurBatiment;
private Long valeurParcelle;
private Long montantLoyerAnnuel;
private Long tfuMetreCarre;
private Long tfuMinimum;
private String standingBat;
private String categorieBat;
private Long nombrePiscine;
private Long nombreUlog;
private Long nombreBat;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate dateEnquete;
private Long serviceId;
private Long zoneRfu;
private Float tauxParcelleNonBati;
private String serviceCode;
private Long zoneRfuId;
private String zoneRfuNom;
private Float tauxTfu;
private Long valeurAdministrativeParcelleNonBati;
@Enumerated(EnumType.STRING)
private NatureImpot natureImpot;
private Long valeurLocativeAdmMetreCarre;
private Long valeurAdministrativeParcelleNonBatiAuMetreCarre;
public DonneesImpositionPaylaodWeb(Long id, Long annee, String codeDepartement, String nomDepartement, String codeCommune, String nomCommune, String codeArrondissement, String nomArrondissement, String codeQuartierVillage, String nomQuartierVillage, String q, String ilot, String parcelle, String nup, String titreFoncier, String numBatiment, String numUniteLogement, String ifu, String npi, String telProp, String emailProp, String nomProp, String prenomProp, String raisonSociale, String adresseProp, String telSc, String emailRep, String nomRep, String prenomRep, String adresseRep, String longitude, String latitude, Integer superficieParc, Long superficieAuSolBat, Long superficieAuSolUlog, String batieOuiNon, String exhonereOuiNon, String batimentExhonereOuiNon, String uniteLogementExhonereOuiNon, Long valeurLocativeAdm, Long montantLoyerAnnuel, Long tfuMetreCarre, Long tfuMinimum, String standingBat, String categorieBat, Long nombrePiscine, Long nombreUlog, Long nombreBat, LocalDate dateEnquete, Long serviceId, Long zoneRfu, Float tauxParcelleNonBati, Long valeurAdministrativeParcelleNonBati) {
public DonneesImpositionPaylaodWeb(Long id, Long annee, String codeDepartement, String nomDepartement, String codeCommune, String nomCommune, String codeArrondissement, String nomArrondissement, String codeQuartierVillage, String nomQuartierVillage, String q, String ilot, String parcelle, String nup, String titreFoncier, String numBatiment, String numUniteLogement, String ifu, String npi, String telProp, String emailProp, String nomProp, String prenomProp, String raisonSociale, String adresseProp, String telRep, String emailRep, String nomRep, String prenomRep, String adresseRep, String longitude, String latitude, Integer superficieParc, Long superficieAuSolBat, Long superficieAuSolUlog,
Boolean batie,
Boolean exonere,
Boolean batimentExonere,
Boolean uniteLogementExonere,
Long valeurLocativeAdm,
Long montantLoyerAnnuel,
Long tfuMetreCarre,
Long tfuMinimum,
String standingBat,
String categorieBat,
Long nombrePiscine,
Long nombreUlog,
Long nombreBat,
LocalDate dateEnquete,
Long serviceId,
Long zoneRfuId, Float tauxParcelleNonBati, Long valeurAdministrativeParcelleNonBati,
NatureImpot natureImpot,
String serviceCode,
String zoneRfuNom,
Long valeurBatiment,
Long valeurParcelle,
Long valeurLocativeAdmMetreCarre,
Long valeurAdministrativeParcelleNonBatiAuMetreCarre
) {
this.id = id;
this.annee = annee;
this.codeDepartement = codeDepartement;
@@ -107,7 +126,7 @@ public class DonneesImpositionPaylaodWeb {
this.prenomProp = prenomProp;
this.raisonSociale = raisonSociale;
this.adresseProp = adresseProp;
this.telSc = telSc;
this.telRep = telRep;
this.emailRep = emailRep;
this.nomRep = nomRep;
this.prenomRep = prenomRep;
@@ -117,10 +136,10 @@ public class DonneesImpositionPaylaodWeb {
this.superficieParc = superficieParc;
this.superficieAuSolBat = superficieAuSolBat;
this.superficieAuSolUlog = superficieAuSolUlog;
this.batieOuiNon = batieOuiNon;
this.exhonereOuiNon = exhonereOuiNon;
this.batimentExhonereOuiNon = batimentExhonereOuiNon;
this.uniteLogementExhonereOuiNon = uniteLogementExhonereOuiNon;
this.batie = batie;
this.exonere = exonere;
this.batimentExonere = batimentExonere;
this.uniteLogementExonere = uniteLogementExonere;
this.valeurLocativeAdm = valeurLocativeAdm;
this.montantLoyerAnnuel = montantLoyerAnnuel;
this.tfuMetreCarre = tfuMetreCarre;
@@ -132,8 +151,16 @@ public class DonneesImpositionPaylaodWeb {
this.nombreBat = nombreBat;
this.dateEnquete = dateEnquete;
this.serviceId = serviceId;
this.zoneRfu = zoneRfu;
this.tauxParcelleNonBati = tauxParcelleNonBati;
this.zoneRfuId = zoneRfuId;
this.tauxTfu = tauxParcelleNonBati;
this.valeurAdministrativeParcelleNonBati = valeurAdministrativeParcelleNonBati;
this.natureImpot = natureImpot;
this.serviceCode = serviceCode;
this.zoneRfuNom = zoneRfuNom;
this.valeurBatiment = valeurBatiment;
this.valeurParcelle = valeurParcelle;
this.valeurLocativeAdmMetreCarre = valeurLocativeAdmMetreCarre;
this.valeurAdministrativeParcelleNonBatiAuMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre;
}
}

View File

@@ -6,6 +6,7 @@ import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.decoupage.Commune;
import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.rfu.parametre.Exercice;
import io.gmss.fiscad.enums.NatureImpot;
import io.gmss.fiscad.enums.StatusAvis;
import jakarta.persistence.*;
import lombok.Data;
@@ -23,7 +24,10 @@ public class ImpositionsTfuPaylaodWeb {
private String datePieceAdmin;
@Enumerated(EnumType.STRING)
private StatusAvis statusAvis;
private Long nombreAvis;
private Integer nombreAvis;
private Integer nombreAvisFnb;
private Integer nombreAvisBatiment;
private Integer nombreAvisUniteLog;
@Column(columnDefinition = "TEXT")
private String motif;
private Long exerciceId;
@@ -33,8 +37,11 @@ public class ImpositionsTfuPaylaodWeb {
private String communeNom;
private Long structureId ;
private String structureNom ;
public ImpositionsTfuPaylaodWeb(Long id, LocalDate dateGeneration, LocalDate dateCloture, String referencePieceAdmin, String datePieceAdmin, StatusAvis statusAvis, Long nombreAvis, String motif, Long exerciceId, Integer exerciceAnnee, Long communeId, String communeCode, String communeNom, Long structureId, String structureNom) {
public ImpositionsTfuPaylaodWeb(Long id, LocalDate dateGeneration, LocalDate dateCloture, String referencePieceAdmin, String datePieceAdmin, StatusAvis statusAvis, Integer nombreAvis, String motif, Long exerciceId, Integer exerciceAnnee, Long communeId, String communeCode, String communeNom, Long structureId, String structureNom,
Integer nombreAvisFnb,
Integer nombreAvisBatiment,
Integer nombreAvisUniteLog
) {
this.id = id;
this.dateGeneration = dateGeneration;
this.dateCloture = dateCloture;
@@ -50,5 +57,8 @@ public class ImpositionsTfuPaylaodWeb {
this.communeNom = communeNom;
this.structureId = structureId;
this.structureNom = structureNom;
this.nombreAvisFnb = nombreAvisFnb;
this.nombreAvisBatiment = nombreAvisBatiment;
this.nombreAvisUniteLog = nombreAvisUniteLog;
}
}

View File

@@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse;
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;
@@ -122,6 +123,17 @@ public interface DonneesImpositionTfuRepository extends JpaRepository<DonneesImp
List<DonneesImpositionTfu> findAllByImpositionsTfu_Id(Long impositionId);
List<DonneesImpositionTfu> findAllByImpositionsTfu_IdAndCodeArrondissement(Long impositionId,String arrondissementCode);
@Query(value = "SELECT generer_donnees_imposition_tfu_batie(:structureId, :impositionId)", nativeQuery = true)
Integer genererDonneesTfuBatie(
@Param("structureId") Long structureId,
@Param("impositionId") Long impositionId
);
@Query(value = "SELECT generer_donnees_imposition_tfu_batie_unite_logement(:structureId, :impositionId)", nativeQuery = true)
Integer genererDonneesTfuBatieUniteLogement(
@Param("structureId") Long structureId,
@Param("impositionId") Long impositionId
);
}

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.persistence.repositories.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
import io.gmss.fiscad.enums.StatusAvis;
import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -15,6 +16,9 @@ import java.util.Optional;
public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu, Long> {
Optional<ImpositionsTfu> findAllByCommune_IdAndExercice_Id(Long communeId,Long ExerciceId);
Optional<ImpositionsTfu> findDistinctByStructure_IdAndExercice_IdAndStatusAvisIn(Long structureId, Long exerciceId, List<StatusAvis> statusAvis);
@Query(value = "select i.* " +
" from impositions_tfu i " +
" inner join commune c on c.id=i.commune_id" +
@@ -51,7 +55,10 @@ public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu,
c.code,
c.nom,
s.id,
s.nom
s.nom,
i.nombreAvisFnb,
i.nombreAvisBatiment,
i.nombreAvisUniteLog
)
FROM ImpositionsTfu i
LEFT JOIN i.exercice e
@@ -76,7 +83,10 @@ public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu,
c.code,
c.nom,
s.id,
s.nom
s.nom,
i.nombreAvisFnb,
i.nombreAvisBatiment,
i.nombreAvisUniteLog
)
FROM ImpositionsTfu i
LEFT JOIN i.exercice e
@@ -103,7 +113,10 @@ public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu,
c.code,
c.nom,
s.id,
s.nom
s.nom,
i.nombreAvisFnb,
i.nombreAvisBatiment,
i.nombreAvisUniteLog
)
FROM ImpositionsTfu i
LEFT JOIN i.exercice e
@@ -137,7 +150,10 @@ public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu,
c.code,
c.nom,
s.id,
s.nom
s.nom,
i.nombreAvisFnb,
i.nombreAvisBatiment,
i.nombreAvisUniteLog
)
FROM ImpositionsTfu i
LEFT JOIN i.exercice e
@@ -165,7 +181,10 @@ public interface ImpositionsTfuRepository extends JpaRepository<ImpositionsTfu,
c.code,
c.nom,
s.id,
s.nom
s.nom,
i.nombreAvisFnb,
i.nombreAvisBatiment,
i.nombreAvisUniteLog
)
FROM ImpositionsTfu i
LEFT JOIN i.exercice e

View File

@@ -26,7 +26,9 @@ Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long z
c.nom,
z.id,
z.code,
z.nom
z.nom,
b.valeurAdministrativeMetreCarre,
b.auMetreCarre
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
@@ -50,7 +52,9 @@ Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long z
c.nom,
z.id,
z.code,
z.nom
z.nom,
b.valeurAdministrativeMetreCarre,
b.auMetreCarre
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
@@ -71,7 +75,9 @@ Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long z
c.nom,
z.id,
z.code,
z.nom
z.nom,
b.valeurAdministrativeMetreCarre,
b.auMetreCarre
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
@@ -95,7 +101,9 @@ Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long z
c.nom,
z.id,
z.code,
z.nom
z.nom,
b.valeurAdministrativeMetreCarre,
b.auMetreCarre
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
@@ -120,7 +128,9 @@ Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long z
c.nom,
z.id,
z.code,
z.nom
z.nom,
b.valeurAdministrativeMetreCarre,
b.auMetreCarre
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c