diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java index dd2a35f..2043bbb 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java @@ -483,37 +483,7 @@ public class EnqueteController { - @PutMapping("/cloturer-enquete") - public ResponseEntity cloturerEnquete(@CurrentUser UserPrincipal userPrincipal) { - try { - if(userPrincipal==null){ - return new ResponseEntity<>( - new ApiResponse<>(true, null, "Accès non autorisé"), - HttpStatus.NOT_ACCEPTABLE - ); - } - User user= userPrincipal.getUser(); - - return new ResponseEntity<>( - new ApiResponse<>(true, enqueteService.cloturerEnqueteParcelleBatimentUniteLogementByUserId(user.getId()), "enquete cloturées 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/controllers/rfu/metier/DonneesImpositionTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java index cc7163d..0e038ef 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 @@ -7,6 +7,7 @@ import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.exceptions.*; 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.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -184,29 +185,33 @@ public class DonneesImpositionTfuController { } @Operation(summary = "Générer les données fiscales TFU") @PostMapping("/generer") - public ResponseEntity genererDonneesFiscale(@RequestBody ImpositionsTfu impositionsTfu) { + public ResponseEntity genererDonneesFiscale(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { try { - Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfu.getId()); + Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId()); if(optionalImpositionsTfu.isEmpty()){ return new ResponseEntity<>( - new ApiResponse<>(false, null, "L'imposition tfu n'est pas trouvée."), + new ApiResponse<>(false, null, "L'instance d'imposition n'est pas trouvée."), HttpStatus.OK ); } - if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.CREE)){ + if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.GENERATION_AUTORISE)){ return new ResponseEntity<>( - new ApiResponse<>(false, null, "le statut actuel ne permet pas cette opération."), + new ApiResponse<>(false, null, "l'état actuel : "+optionalImpositionsTfu.get().getStatusAvis()+" ne permet pas cette opération."), HttpStatus.OK ); } optionalImpositionsTfu.get().setStatusAvis(StatusAvis.GENERE); + + impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscales(impositionsTfuPaylaodWeb); + return new ResponseEntity<>( - new ApiResponse<>(true, donneesImpositionTfuService.genererDonneesFiscales(optionalImpositionsTfu.get()), "DonneesImpositionTfu trouvée avec succès."), + new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition Générées 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); diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java index 4091853..bb06b17 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java @@ -3,15 +3,20 @@ package io.gmss.fiscad.controllers.rfu.metier; 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.rfu.metier.ImpositionsTfuService; import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; 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; import jakarta.validation.Valid; +import jakarta.ws.rs.NotAcceptableException; +import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.PageRequest; @@ -25,6 +30,7 @@ import org.springframework.web.client.HttpClientErrorException; @RestController +@AllArgsConstructor @RequestMapping(value = "api/impositions-tfu", produces = MediaType.APPLICATION_JSON_VALUE) @SecurityRequirement(name = "bearer") @Tag(name = "Impositions TFU") @@ -32,15 +38,30 @@ import org.springframework.web.client.HttpClientErrorException; public class ImpositionsTfuController { private final ImpositionsTfuService impositionsTfuService; + private final EnqueteService enqueteService; private static final Logger logger = LoggerFactory.getLogger(ImpositionsTfuController.class); - public ImpositionsTfuController(ImpositionsTfuService impositionsTfuService) { - this.impositionsTfuService = impositionsTfuService; - } + @PostMapping("/create") - public ResponseEntity createImpositionsTfu(@RequestBody @Valid @Validated ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + public ResponseEntity createImpositionsTfu(@CurrentUser UserPrincipal currentUser,@RequestBody @Valid @Validated ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { try { + if(currentUser==null){ + + return new ResponseEntity<>( + new ApiResponse<>(true, null, "Vous n'etes pas autorisé à accéder à cette ressource."), + HttpStatus.OK + ); + } + User user=currentUser.getUser(); + + if(user.getStructure().getId()!=impositionsTfuPaylaodWeb.getStructureId()){ + return new ResponseEntity<>( + new ApiResponse<>(true, null, "Vous n'etes pas autorisé à accéder à cette ressource."), + HttpStatus.OK + ); + } + impositionsTfuPaylaodWeb = impositionsTfuService.createImpositionsTfu(impositionsTfuPaylaodWeb); return new ResponseEntity<>( new ApiResponse<>(true, impositionsTfuPaylaodWeb, "Unite de logement créé avec succès."), @@ -62,6 +83,46 @@ public class ImpositionsTfuController { } } + + @PutMapping("/cloturer-enquete") + public ResponseEntity cloturer(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb ) { + try { + + if(userPrincipal==null){ + return new ResponseEntity<>( + new ApiResponse<>(true, null, "Accès non autorisé"), + HttpStatus.NOT_ACCEPTABLE + ); + } + + + User user= userPrincipal.getUser(); + if(user.getStructure().getId()!=impositionsTfuPaylaodWeb.getStructureId()){ + return new ResponseEntity<>( + new ApiResponse<>(true,null, "Vous n'êtes pas autorisé à cloturer les enquetes du : "+user.getStructure().getNom()), + HttpStatus.OK + ); + } + return new ResponseEntity<>( + new ApiResponse<>(true, impositionsTfuService.cloturerImpositionsTfu(impositionsTfuPaylaodWeb), "enquete cloturées 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); + } + } + // @PutMapping("/update/{id}") // public ResponseEntity updateImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { // try { @@ -85,12 +146,16 @@ public class ImpositionsTfuController { // } // } + @Operation( + summary = "Autoriser la génération des avis d'un centre", + description = "Permet d'autoriser la génération des avis d'un centre pour un exervice données" + ) - @PutMapping("/valider/{id}") - public ResponseEntity validerImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + @PutMapping("/autoriser-generation-avis") + public ResponseEntity autoriserImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, impositionsTfuService.validerImpositionsTfu(impositionsTfuPaylaodWeb), "Unite de logement mise à jour avec succès."), + new ApiResponse<>(true, impositionsTfuService.autoriserGenerationImpositionsTfu(impositionsTfuPaylaodWeb), "Unite de logement mise à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -109,11 +174,11 @@ public class ImpositionsTfuController { } } - @PutMapping("/annuler/{id}") - public ResponseEntity annulerImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + @PutMapping("/rejeter") + public ResponseEntity annulerImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, impositionsTfuService.annulerImpositionsTfu(impositionsTfuPaylaodWeb), "Unite de logement mise à jour avec succès."), + new ApiResponse<>(true, impositionsTfuService.rejeterImpositionsTfu(impositionsTfuPaylaodWeb), "Unite de logement mise à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { 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 9baba36..6c8bf4a 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 @@ -97,5 +97,5 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable { @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "impositions_tfu_id", nullable = false) - private ImpositionsTfu impositionsTfu; + private ImpositionsTfu impositionsTfu ; } diff --git a/src/main/java/io/gmss/fiscad/enums/StatusAvis.java b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java index 50fe7dd..4f369df 100755 --- a/src/main/java/io/gmss/fiscad/enums/StatusAvis.java +++ b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java @@ -1,8 +1,10 @@ package io.gmss.fiscad.enums; public enum StatusAvis { - CREE, //Equivaut à la cloture des enquêtes et des mise à jour + Creation d'une imposition - GENERE, - ANNULE, - VALIDE, + EN_COURS, + CLOTURE, + GENERATION_AUTORISE, + REJETE, + GENERE + } diff --git a/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java b/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java index 5fde2b4..b574293 100755 --- a/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java +++ b/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java @@ -2,7 +2,7 @@ package io.gmss.fiscad.enums; public enum StatutEnquete { EN_COURS, - DECLARATION, + // DECLARATION, FINALISE, REJETE, VALIDE, 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 2d013f8..952d30c 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 @@ -349,7 +349,7 @@ public class EnqueteServiceImpl implements EnqueteService { Enquete enquete = optionalEnquete.get(); enquete.setDateValidation(LocalDate.now()); enquete.setStatutEnquete(StatutEnquete.VALIDE); - enquete.setSynchronise(false); + enquete.setSynchronise(true); return enqueteRepository.save(enquete); } @@ -544,22 +544,22 @@ public class EnqueteServiceImpl implements EnqueteService { @Override @Transactional - public int cloturerEnqueteParcelleBatimentUniteLogementByUserId(Long userId) { + public int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId) { Optional optionalUser= userRepository.findById(userId); int nbreEnquete=0; if(optionalUser.isPresent() && optionalUser.get().getStructure()!=null){ Long structureId=optionalUser.get().getStructure().getId(); - nbreEnquete=cloturerEnqueteParcelleBatimentUniteLogementByStructureId(structureId); + nbreEnquete=cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(structureId,exerciceId); } return nbreEnquete; } @Override @Transactional - public int cloturerEnqueteParcelleBatimentUniteLogementByStructureId(Long structureId) { - Integer nombreParcelleImpacte=enqueteRepository.clotureEnqueteParcelle(structureId); - Integer nombreBatiment=enqueteBatimentRepository.clotureEnqueteBatiment(structureId); - Integer nombreUniteLogement=enqueteUniteLogementRepository.clotureEnqueteUniteLogement(structureId); + public int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long structureId,Long exerciceId) { + Integer nombreParcelleImpacte=enqueteRepository.clotureEnqueteParcelle(structureId,exerciceId); + Integer nombreBatiment=enqueteBatimentRepository.clotureEnqueteBatiment(structureId,exerciceId); + Integer nombreUniteLogement=enqueteUniteLogementRepository.clotureEnqueteUniteLogement(structureId,exerciceId); return nombreParcelleImpacte; } 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 ebd2822..fa4444d 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 @@ -4,9 +4,11 @@ import io.gmss.fiscad.entities.decoupage.Arrondissement; import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; +import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; +import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse; import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository; @@ -15,6 +17,7 @@ import io.gmss.fiscad.persistence.repositories.rfu.metier.DonneesImpositionTfuRe import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; import jakarta.transaction.Transactional; import lombok.AllArgsConstructor; import org.springframework.dao.DataIntegrityViolationException; @@ -36,6 +39,7 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ private final BaremRfuNonBatiRepository baremRfuNonBatiRepository; private final ExerciceRepository exerciceRepository; private final ArrondissementRepository arrondissementRepository; + private final EntityFromPayLoadService entityFromPayLoadService; @@ -91,86 +95,95 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ @Override @Transactional - public Long genererDonneesFiscales(ImpositionsTfu impositionsTfu) { - List donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee()); + public ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + + // List donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee()); Long n=0l; - 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 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; - } - } - } + + + +// 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 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); impositionsTfuRepository.save(impositionsTfu); - return n; + + return impositionsTfuPaylaodWeb; } @Override diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java index d98ba5e..0eab857 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java @@ -5,11 +5,14 @@ import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +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.request.crudweb.ImpositionsTfuPaylaodWeb; import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; +import jakarta.transaction.Transactional; +import jakarta.ws.rs.NotAcceptableException; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -25,37 +28,38 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { private final ImpositionsTfuRepository impositionsTfuRepository; private final StructureService structureService; private final EntityFromPayLoadService entityFromPayLoadService; + private final EnqueteService enqueteService; /** * Permet de créer pour un centre la synthèse de l'imposition de l'année en prélude de la - * génération des avis d'imposition : 1- cloture de enquete et creation de imposition tfu + * génération des avis d'imposition * @param impositionsTfuPaylaodWeb * @return * @throws BadRequestException */ @Override + @Transactional public ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { if (impositionsTfuPaylaodWeb.getId() != null) { throw new BadRequestException("Impossible de créer une nouvelle unité de logement ayant un id non null."); } - List impositionsTfus=impositionsTfuRepository.getImpositionsTfuByStructureAndExercice(impositionsTfuPaylaodWeb.getStructureId(),impositionsTfuPaylaodWeb.getExerciceId()); + List impositionsTfus=impositionsTfuRepository.getImpositionsTfuByStructureAndExercice(impositionsTfuPaylaodWeb.getStructureId(), impositionsTfuPaylaodWeb.getExerciceId()); if (!impositionsTfus.isEmpty()) { throw new BadRequestException("Une Imposition non annulée existe déjà"); } ImpositionsTfu impositionsTfu=entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); - impositionsTfu.setStatusAvis(StatusAvis.CREE); - -//TODO : cloture des enquetes + impositionsTfu.setStatusAvis(StatusAvis.EN_COURS); impositionsTfu =impositionsTfuRepository.save(impositionsTfu); + return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } @Override - public ImpositionsTfuPaylaodWeb annulerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { + public ImpositionsTfuPaylaodWeb rejeterImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { if (impositionsTfuPaylaodWeb.getId() == null) { throw new BadRequestException("Impossible d'annuler une imposition ayant un id null."); } @@ -63,21 +67,55 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données."); } ImpositionsTfu impositionsTfu= entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); - impositionsTfu.setStatusAvis(StatusAvis.ANNULE); + if(!impositionsTfu.getStatusAvis().equals(StatusAvis.CLOTURE)){ + throw new NotAcceptableException("L'état actuel :"+impositionsTfu.getStatusAvis()+"Ne permet pas de passer au l'état rejete"); + } + + impositionsTfu.setStatusAvis(StatusAvis.REJETE); + impositionsTfu =impositionsTfuRepository.save(impositionsTfu); + return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); + } + + + @Override + @Transactional + public ImpositionsTfuPaylaodWeb cloturerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { + if (impositionsTfuPaylaodWeb.getId() == null) { + throw new BadRequestException("Impossible de cloturer une imposition ayant un id null."); + } + if (!impositionsTfuRepository.existsById(impositionsTfuPaylaodWeb.getId())) { + throw new NotFoundException("Impossible de trouver l'imposition spécifiée dans notre base de données."); + } + + ImpositionsTfu impositionsTfu= entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); + + if(!impositionsTfu.getStatusAvis().equals(StatusAvis.EN_COURS) && !impositionsTfu.getStatusAvis().equals(StatusAvis.REJETE)){ + throw new NotAcceptableException("L'état actuel :"+impositionsTfu.getStatusAvis()+"Ne permet pas de passer au l'état rejete"); + } + + impositionsTfu.setDateCloture(LocalDate.now()); + enqueteService.cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(impositionsTfu.getStructure().getId(),impositionsTfu.getExercice().getId()); + impositionsTfu.setStatusAvis(StatusAvis.CLOTURE); impositionsTfu =impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } @Override - public ImpositionsTfuPaylaodWeb validerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { + public ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { if (impositionsTfuPaylaodWeb.getId() == null) { throw new BadRequestException("Impossible de valider une imposition ayant un id null."); } if (!impositionsTfuRepository.existsById(impositionsTfuPaylaodWeb.getId())) { - throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données."); + throw new NotFoundException("Impossible de trouver l'imposition spécifiée dans notre base de données."); } + ImpositionsTfu impositionsTfu= entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); - impositionsTfu.setStatusAvis(StatusAvis.VALIDE); + + if(!impositionsTfu.getStatusAvis().equals(StatusAvis.CLOTURE)){ + throw new NotFoundException("L'état actuel : "+impositionsTfu.getStatusAvis()+ " ne permet pas de passer à l'état Autorisé"); + } + impositionsTfu.setDateGeneration(LocalDate.now()); + impositionsTfu.setStatusAvis(StatusAvis.GENERATION_AUTORISE); impositionsTfu =impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } @@ -95,12 +133,12 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { @Override public void deleteImpositionsTfu(Long id) throws NotFoundException { - Optional 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 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."); +// } } @Override diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java index 77b99f0..6c8052b 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java @@ -58,6 +58,6 @@ public interface EnqueteService { public List getEnqueteValideNonSynch(Long terminalId); - int cloturerEnqueteParcelleBatimentUniteLogementByStructureId(Long strucutreId); - int cloturerEnqueteParcelleBatimentUniteLogementByUserId(Long userId); + int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long strucutreId,Long exerciceId); + int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId); } 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 b968664..71d37eb 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 @@ -4,6 +4,7 @@ import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -25,7 +26,7 @@ public interface DonneesImpositionTfuService { Optional getDonneesImpositionTfuById(Long id); - Long genererDonneesFiscales(ImpositionsTfu impositionsTfu); + ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb); List getDonneesFiscalesByImposition(Long impositionsId); List getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java index 0ff092c..586f2b6 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java @@ -13,8 +13,9 @@ import java.util.Optional; public interface ImpositionsTfuService { ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; - ImpositionsTfuPaylaodWeb annulerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; - ImpositionsTfuPaylaodWeb validerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; + ImpositionsTfuPaylaodWeb rejeterImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; + ImpositionsTfuPaylaodWeb cloturerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; + ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb updateImpositionsTfu(Long id, ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws NotFoundException; 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 new file mode 100644 index 0000000..29959c0 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java @@ -0,0 +1,139 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.time.LocalDate; +@NoArgsConstructor +@Data +public class DonneesImpositionPaylaodWeb { + private Long id; + private Long annee; + private String codeDepartement; + private String nomDepartement; + private String codeCommune; + private String nomCommune; + private String codeArrondissement; + 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 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 Long valeurLocativeAdm; + 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 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 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) { + this.id = id; + this.annee = annee; + this.codeDepartement = codeDepartement; + this.nomDepartement = nomDepartement; + this.codeCommune = codeCommune; + this.nomCommune = nomCommune; + this.codeArrondissement = codeArrondissement; + this.nomArrondissement = nomArrondissement; + this.codeQuartierVillage = codeQuartierVillage; + this.nomQuartierVillage = nomQuartierVillage; + this.q = q; + this.ilot = ilot; + this.parcelle = parcelle; + this.nup = nup; + this.titreFoncier = titreFoncier; + this.numBatiment = numBatiment; + this.numUniteLogement = numUniteLogement; + this.ifu = ifu; + this.npi = npi; + this.telProp = telProp; + this.emailProp = emailProp; + this.nomProp = nomProp; + this.prenomProp = prenomProp; + this.raisonSociale = raisonSociale; + this.adresseProp = adresseProp; + this.telSc = telSc; + this.emailRep = emailRep; + this.nomRep = nomRep; + this.prenomRep = prenomRep; + this.adresseRep = adresseRep; + this.longitude = longitude; + this.latitude = latitude; + this.superficieParc = superficieParc; + this.superficieAuSolBat = superficieAuSolBat; + this.superficieAuSolUlog = superficieAuSolUlog; + this.batieOuiNon = batieOuiNon; + this.exhonereOuiNon = exhonereOuiNon; + this.batimentExhonereOuiNon = batimentExhonereOuiNon; + this.uniteLogementExhonereOuiNon = uniteLogementExhonereOuiNon; + this.valeurLocativeAdm = valeurLocativeAdm; + this.montantLoyerAnnuel = montantLoyerAnnuel; + this.tfuMetreCarre = tfuMetreCarre; + this.tfuMinimum = tfuMinimum; + this.standingBat = standingBat; + this.categorieBat = categorieBat; + this.nombrePiscine = nombrePiscine; + this.nombreUlog = nombreUlog; + this.nombreBat = nombreBat; + this.dateEnquete = dateEnquete; + this.serviceId = serviceId; + this.zoneRfu = zoneRfu; + this.tauxParcelleNonBati = tauxParcelleNonBati; + this.valeurAdministrativeParcelleNonBati = valeurAdministrativeParcelleNonBati; + } +} diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java index bc8e42a..62e83d7 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java @@ -39,8 +39,9 @@ public interface EnqueteRepository extends JpaRepository { WHERE e.parcelle.id=p.id AND stru.id= :structureId ) + AND e.exercice.id = :exerciceId """) - Integer clotureEnqueteParcelle(@Param("structureId") Long structureId); + Integer clotureEnqueteParcelle(@Param("structureId") Long structureId,@Param("exerciceId") Long exerciceId); @Query(value = "select distinct " + " e.id," + diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java index b92e831..61ce554 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java @@ -35,8 +35,9 @@ public interface EnqueteBatimentRepository extends JpaRepository