Merge pull request 'develop' (#145) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 53s

Reviewed-on: #145
This commit was merged in pull request #145.
This commit is contained in:
2026-03-09 18:53:16 +00:00
17 changed files with 408 additions and 171 deletions

View File

@@ -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);
}
}
} }

View File

@@ -7,6 +7,7 @@ import io.gmss.fiscad.enums.StatusAvis;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService;
import io.gmss.fiscad.paylaods.ApiResponse; 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.persistence.repositories.rfu.metier.ImpositionsTfuRepository;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; 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") @Operation(summary = "Générer les données fiscales TFU")
@PostMapping("/generer") @PostMapping("/generer")
public ResponseEntity<?> genererDonneesFiscale(@RequestBody ImpositionsTfu impositionsTfu) { public ResponseEntity<?> genererDonneesFiscale(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try { try {
Optional<ImpositionsTfu> optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfu.getId()); Optional<ImpositionsTfu> optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId());
if(optionalImpositionsTfu.isEmpty()){ if(optionalImpositionsTfu.isEmpty()){
return new ResponseEntity<>( 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 HttpStatus.OK
); );
} }
if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.CREE)){ if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.GENERATION_AUTORISE)){
return new ResponseEntity<>( 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 HttpStatus.OK
); );
} }
optionalImpositionsTfu.get().setStatusAvis(StatusAvis.GENERE); optionalImpositionsTfu.get().setStatusAvis(StatusAvis.GENERE);
impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscales(impositionsTfuPaylaodWeb);
return new ResponseEntity<>( 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 HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);

View File

@@ -3,15 +3,20 @@ package io.gmss.fiscad.controllers.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatusAvis;
import io.gmss.fiscad.exceptions.*; 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.interfaces.rfu.metier.ImpositionsTfuService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb;
import io.gmss.fiscad.security.CurrentUser; import io.gmss.fiscad.security.CurrentUser;
import io.gmss.fiscad.security.UserPrincipal; 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.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.ws.rs.NotAcceptableException;
import lombok.AllArgsConstructor;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
@@ -25,6 +30,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RestController @RestController
@AllArgsConstructor
@RequestMapping(value = "api/impositions-tfu", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "api/impositions-tfu", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Impositions TFU") @Tag(name = "Impositions TFU")
@@ -32,15 +38,30 @@ import org.springframework.web.client.HttpClientErrorException;
public class ImpositionsTfuController { public class ImpositionsTfuController {
private final ImpositionsTfuService impositionsTfuService; private final ImpositionsTfuService impositionsTfuService;
private final EnqueteService enqueteService;
private static final Logger logger = LoggerFactory.getLogger(ImpositionsTfuController.class); private static final Logger logger = LoggerFactory.getLogger(ImpositionsTfuController.class);
public ImpositionsTfuController(ImpositionsTfuService impositionsTfuService) {
this.impositionsTfuService = impositionsTfuService;
}
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createImpositionsTfu(@RequestBody @Valid @Validated ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { public ResponseEntity<?> createImpositionsTfu(@CurrentUser UserPrincipal currentUser,@RequestBody @Valid @Validated ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try { 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); impositionsTfuPaylaodWeb = impositionsTfuService.createImpositionsTfu(impositionsTfuPaylaodWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, impositionsTfuPaylaodWeb, "Unite de logement créé avec succès."), 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}") // @PutMapping("/update/{id}")
// public ResponseEntity<?> updateImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { // public ResponseEntity<?> updateImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
// try { // 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}") @PutMapping("/autoriser-generation-avis")
public ResponseEntity<?> validerImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { public ResponseEntity<?> autoriserImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try { try {
return new ResponseEntity<>( 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 HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -109,11 +174,11 @@ public class ImpositionsTfuController {
} }
} }
@PutMapping("/annuler/{id}") @PutMapping("/rejeter")
public ResponseEntity<?> annulerImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { public ResponseEntity<?> annulerImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try { try {
return new ResponseEntity<>( 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 HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -1,8 +1,10 @@
package io.gmss.fiscad.enums; package io.gmss.fiscad.enums;
public enum StatusAvis { public enum StatusAvis {
CREE, //Equivaut à la cloture des enquêtes et des mise à jour + Creation d'une imposition EN_COURS,
GENERE, CLOTURE,
ANNULE, GENERATION_AUTORISE,
VALIDE, REJETE,
GENERE
} }

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.enums;
public enum StatutEnquete { public enum StatutEnquete {
EN_COURS, EN_COURS,
DECLARATION, // DECLARATION,
FINALISE, FINALISE,
REJETE, REJETE,
VALIDE, VALIDE,

View File

@@ -349,7 +349,7 @@ public class EnqueteServiceImpl implements EnqueteService {
Enquete enquete = optionalEnquete.get(); Enquete enquete = optionalEnquete.get();
enquete.setDateValidation(LocalDate.now()); enquete.setDateValidation(LocalDate.now());
enquete.setStatutEnquete(StatutEnquete.VALIDE); enquete.setStatutEnquete(StatutEnquete.VALIDE);
enquete.setSynchronise(false); enquete.setSynchronise(true);
return enqueteRepository.save(enquete); return enqueteRepository.save(enquete);
} }
@@ -544,22 +544,22 @@ public class EnqueteServiceImpl implements EnqueteService {
@Override @Override
@Transactional @Transactional
public int cloturerEnqueteParcelleBatimentUniteLogementByUserId(Long userId) { public int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId) {
Optional<User> optionalUser= userRepository.findById(userId); Optional<User> optionalUser= userRepository.findById(userId);
int nbreEnquete=0; int nbreEnquete=0;
if(optionalUser.isPresent() && optionalUser.get().getStructure()!=null){ if(optionalUser.isPresent() && optionalUser.get().getStructure()!=null){
Long structureId=optionalUser.get().getStructure().getId(); Long structureId=optionalUser.get().getStructure().getId();
nbreEnquete=cloturerEnqueteParcelleBatimentUniteLogementByStructureId(structureId); nbreEnquete=cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(structureId,exerciceId);
} }
return nbreEnquete; return nbreEnquete;
} }
@Override @Override
@Transactional @Transactional
public int cloturerEnqueteParcelleBatimentUniteLogementByStructureId(Long structureId) { public int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long structureId,Long exerciceId) {
Integer nombreParcelleImpacte=enqueteRepository.clotureEnqueteParcelle(structureId); Integer nombreParcelleImpacte=enqueteRepository.clotureEnqueteParcelle(structureId,exerciceId);
Integer nombreBatiment=enqueteBatimentRepository.clotureEnqueteBatiment(structureId); Integer nombreBatiment=enqueteBatimentRepository.clotureEnqueteBatiment(structureId,exerciceId);
Integer nombreUniteLogement=enqueteUniteLogementRepository.clotureEnqueteUniteLogement(structureId); Integer nombreUniteLogement=enqueteUniteLogementRepository.clotureEnqueteUniteLogement(structureId,exerciceId);
return nombreParcelleImpacte; return nombreParcelleImpacte;
} }

View File

@@ -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.DonneesImpositionTfu;
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; 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.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; 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.paylaods.response.DonneesImpositionTfuResponse;
import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository;
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository; 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.metier.ImpositionsTfuRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DataIntegrityViolationException;
@@ -36,6 +39,7 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository; private final BaremRfuNonBatiRepository baremRfuNonBatiRepository;
private final ExerciceRepository exerciceRepository; private final ExerciceRepository exerciceRepository;
private final ArrondissementRepository arrondissementRepository; private final ArrondissementRepository arrondissementRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
@@ -91,86 +95,95 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
@Override @Override
@Transactional @Transactional
public Long genererDonneesFiscales(ImpositionsTfu impositionsTfu) { public ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
List<DonneesImpositionTfuResponse> donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
// List<DonneesImpositionTfuResponse> donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
Long n=0l; 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<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 && // for (DonneesImpositionTfuResponse donneesImpositionTfuResponse: donneesImpositionTfuResponses){
constraintEx.getSQLException().getSQLState().equals("23505")) { // DonneesImpositionTfu donneesImpositionTfu=new DonneesImpositionTfu();
System.out.println("Doublon détecté (clé unique) !"); // donneesImpositionTfu.setImpositionsTfu(impositionsTfu);
} else { // donneesImpositionTfu.setZoneRfuId(donneesImpositionTfuResponse.getZoneRfuId());
throw e; // 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);
impositionsTfuRepository.save(impositionsTfu); impositionsTfuRepository.save(impositionsTfu);
return n;
return impositionsTfuPaylaodWeb;
} }
@Override @Override

View File

@@ -5,11 +5,14 @@ import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.enums.StatusAvis;
import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; 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.infocad.parametre.StructureService;
import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService; import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService;
import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService; import io.gmss.fiscad.service.EntityFromPayLoadService;
import jakarta.transaction.Transactional;
import jakarta.ws.rs.NotAcceptableException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@@ -25,16 +28,18 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
private final ImpositionsTfuRepository impositionsTfuRepository; private final ImpositionsTfuRepository impositionsTfuRepository;
private final StructureService structureService; private final StructureService structureService;
private final EntityFromPayLoadService entityFromPayLoadService; 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 * 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 * @param impositionsTfuPaylaodWeb
* @return * @return
* @throws BadRequestException * @throws BadRequestException
*/ */
@Override @Override
@Transactional
public ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { public ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException {
if (impositionsTfuPaylaodWeb.getId() != null) { if (impositionsTfuPaylaodWeb.getId() != null) {
throw new BadRequestException("Impossible de créer une nouvelle unité de logement ayant un id non null."); throw new BadRequestException("Impossible de créer une nouvelle unité de logement ayant un id non null.");
@@ -45,17 +50,16 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
} }
ImpositionsTfu impositionsTfu=entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); ImpositionsTfu impositionsTfu=entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb);
impositionsTfu.setStatusAvis(StatusAvis.CREE);
//TODO : cloture des enquetes
impositionsTfu.setStatusAvis(StatusAvis.EN_COURS);
impositionsTfu =impositionsTfuRepository.save(impositionsTfu); impositionsTfu =impositionsTfuRepository.save(impositionsTfu);
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
} }
@Override @Override
public ImpositionsTfuPaylaodWeb annulerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { public ImpositionsTfuPaylaodWeb rejeterImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException {
if (impositionsTfuPaylaodWeb.getId() == null) { if (impositionsTfuPaylaodWeb.getId() == null) {
throw new BadRequestException("Impossible d'annuler une imposition ayant un id 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."); 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 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); impositionsTfu =impositionsTfuRepository.save(impositionsTfu);
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
} }
@Override @Override
public ImpositionsTfuPaylaodWeb validerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { public ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException {
if (impositionsTfuPaylaodWeb.getId() == null) { if (impositionsTfuPaylaodWeb.getId() == null) {
throw new BadRequestException("Impossible de valider une imposition ayant un id null."); throw new BadRequestException("Impossible de valider une imposition ayant un id null.");
} }
if (!impositionsTfuRepository.existsById(impositionsTfuPaylaodWeb.getId())) { 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 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); impositionsTfu =impositionsTfuRepository.save(impositionsTfu);
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
} }
@@ -95,12 +133,12 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
@Override @Override
public void deleteImpositionsTfu(Long id) throws NotFoundException { public void deleteImpositionsTfu(Long id) throws NotFoundException {
Optional<ImpositionsTfu> impositionsTfuOptional = impositionsTfuRepository.findById(id); // Optional<ImpositionsTfu> impositionsTfuOptional = impositionsTfuRepository.findById(id);
if (impositionsTfuOptional.isPresent()) { // if (impositionsTfuOptional.isPresent()) {
impositionsTfuRepository.deleteById(impositionsTfuOptional.get().getId()); // impositionsTfuRepository.deleteById(impositionsTfuOptional.get().getId());
} else { // } else {
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 la nouvelle unité de logement spécifiée dans notre base de données.");
} // }
} }
@Override @Override

View File

@@ -58,6 +58,6 @@ public interface EnqueteService {
public List<EnqueteNonSyncResponse> getEnqueteValideNonSynch(Long terminalId); public List<EnqueteNonSyncResponse> getEnqueteValideNonSynch(Long terminalId);
int cloturerEnqueteParcelleBatimentUniteLogementByStructureId(Long strucutreId); int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long strucutreId,Long exerciceId);
int cloturerEnqueteParcelleBatimentUniteLogementByUserId(Long userId); int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId);
} }

View File

@@ -4,6 +4,7 @@ import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; 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.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@@ -25,7 +26,7 @@ public interface DonneesImpositionTfuService {
Optional<DonneesImpositionTfu> getDonneesImpositionTfuById(Long id); Optional<DonneesImpositionTfu> getDonneesImpositionTfuById(Long id);
Long genererDonneesFiscales(ImpositionsTfu impositionsTfu); ImpositionsTfuPaylaodWeb genererDonneesFiscales(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb);
List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long impositionsId); List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long impositionsId);
List<DonneesImpositionTfu> getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId); List<DonneesImpositionTfu> getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId);
} }

View File

@@ -13,8 +13,9 @@ import java.util.Optional;
public interface ImpositionsTfuService { public interface ImpositionsTfuService {
ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb createImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException;
ImpositionsTfuPaylaodWeb annulerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb rejeterImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException;
ImpositionsTfuPaylaodWeb validerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb cloturerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException;
ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException;
ImpositionsTfuPaylaodWeb updateImpositionsTfu(Long id, ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws NotFoundException; ImpositionsTfuPaylaodWeb updateImpositionsTfu(Long id, ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws NotFoundException;

View File

@@ -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;
}
}

View File

@@ -39,8 +39,9 @@ public interface EnqueteRepository extends JpaRepository<Enquete, Long> {
WHERE e.parcelle.id=p.id WHERE e.parcelle.id=p.id
AND stru.id= :structureId 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 " + @Query(value = "select distinct " +
" e.id," + " e.id," +

View File

@@ -35,8 +35,9 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
WHERE eb.batiment.parcelle.id=p.id WHERE eb.batiment.parcelle.id=p.id
AND stru.id= :structureId AND stru.id= :structureId
) )
AND eb.exercice.id = :exerciceId
""") """)
Integer clotureEnqueteBatiment(@Param("structureId") Long structureId); Integer clotureEnqueteBatiment(@Param("structureId") Long structureId,@Param("exerciceId") Long exerciceId);
@Query( @Query(

View File

@@ -34,8 +34,9 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
WHERE eul.uniteLogement.batiment.parcelle.id=p.id WHERE eul.uniteLogement.batiment.parcelle.id=p.id
AND stru.id= :structureId AND stru.id= :structureId
) )
AND eul.exercice.id = :exerciceId
""") """)
Integer clotureEnqueteUniteLogement(@Param("structureId") Long structureId); Integer clotureEnqueteUniteLogement(@Param("structureId") Long structureId,@Param("exerciceId") Long exerciceId);
@Query(nativeQuery = true, @Query(nativeQuery = true,
value = "select eul.id as idBackend, " + value = "select eul.id as idBackend, " +
"eul.terminal_id as terminalId, " + "eul.terminal_id as terminalId, " +

View File

@@ -668,11 +668,11 @@ public class EntityFromPayLoadService {
eul.setRepresentantNpi(enqueteUniteLogementPayloadWeb.getRepresentantNpi()); eul.setRepresentantNpi(enqueteUniteLogementPayloadWeb.getRepresentantNpi());
eul.setNombrePiscine(enqueteUniteLogementPayloadWeb.getNombrePiscine()); eul.setNombrePiscine(enqueteUniteLogementPayloadWeb.getNombrePiscine());
// eul.setStatutEnquete(StatutEnquete.EN_COURS); // eul.setStatutEnquete(StatutEnquete.EN_COURS);
if(!enqueteUniteLogementPayloadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){ //if(!enqueteUniteLogementPayloadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){
eul.setStatutEnquete(StatutEnquete.EN_COURS); eul.setStatutEnquete(StatutEnquete.EN_COURS);
}else{ // }else{
eul.setStatutEnquete(enqueteUniteLogementPayloadWeb.getStatutEnquete()); // eul.setStatutEnquete(enqueteUniteLogementPayloadWeb.getStatutEnquete());
} // }
return eul; return eul;
} }
@@ -762,11 +762,11 @@ public class EntityFromPayLoadService {
enqueteBatiment.setRepresentantNpi(enqueteBatimentPayloadWeb.getRepresentantNpi()); enqueteBatiment.setRepresentantNpi(enqueteBatimentPayloadWeb.getRepresentantNpi());
enqueteBatiment.setNombrePiscine(enqueteBatimentPayloadWeb.getNombrePiscine()); enqueteBatiment.setNombrePiscine(enqueteBatimentPayloadWeb.getNombrePiscine());
//enqueteBatiment.setStatutEnquete(StatutEnquete.EN_COURS); //enqueteBatiment.setStatutEnquete(StatutEnquete.EN_COURS);
if(!enqueteBatimentPayloadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){ //if(!enqueteBatimentPayloadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){
enqueteBatiment.setStatutEnquete(StatutEnquete.EN_COURS); enqueteBatiment.setStatutEnquete(StatutEnquete.EN_COURS);
}else{ // }else{
enqueteBatiment.setStatutEnquete(enqueteBatimentPayloadWeb.getStatutEnquete()); // enqueteBatiment.setStatutEnquete(enqueteBatimentPayloadWeb.getStatutEnquete());
} // }
return enqueteBatiment; return enqueteBatiment;
} }
@@ -825,11 +825,11 @@ public class EntityFromPayLoadService {
enquete.setDateEnquete(LocalDate.now()); enquete.setDateEnquete(LocalDate.now());
enquete.setLitige(enquetePayLoadWeb.getLitige()); enquete.setLitige(enquetePayLoadWeb.getLitige());
if(!enquetePayLoadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){ // if(!enquetePayLoadWeb.getStatutEnquete().equals(StatutEnquete.DECLARATION)){
enquete.setStatutEnquete(StatutEnquete.EN_COURS); enquete.setStatutEnquete(StatutEnquete.EN_COURS);
}else{ // }else{
enquete.setStatutEnquete(enquetePayLoadWeb.getStatutEnquete()); // enquete.setStatutEnquete(enquetePayLoadWeb.getStatutEnquete());
} // }
enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation()); enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse()); enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier()); enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());