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 090df2f..175a003 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 @@ -187,7 +187,59 @@ public class DonneesImpositionTfuController { } @Operation(summary = "Générer les données fiscales TFU des parcelle baties") @PostMapping("/generer-batie") - public ResponseEntity genererDonneesFiscale(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + public ResponseEntity genererDonneesFiscaleBatie(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + try { + Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId()); + + if(optionalImpositionsTfu.isEmpty()){ + return new ResponseEntity<>( + new ApiResponse<>(false, null, "L'instance d'imposition n'est pas trouvée."), + HttpStatus.OK + ); + } + + if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.TFU_FNB_GENERE)){ + return new ResponseEntity<>( + new ApiResponse<>(false, null, "l'état actuel : "+optionalImpositionsTfu.get().getStatusAvis()+" ne permet pas cette opération."), + HttpStatus.OK + ); + } + + if(userPrincipal==null){ + return new ResponseEntity<>( + new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"), + HttpStatus.OK + ); + } + impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId()); + + return new ResponseEntity<>( + new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition des fonciers batis 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); + } 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); + } + } + + + + + @Operation(summary = "Générer les données fiscales TFU des parcelle baties") + @PostMapping("/generer-non-batie") + public ResponseEntity genererDonneesImpositionNonBaties(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { try { Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId()); @@ -205,16 +257,16 @@ public class DonneesImpositionTfuController { ); } - if(userPrincipal==null){ - return new ResponseEntity<>( - new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"), - HttpStatus.OK - ); - } - impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId()); + if(userPrincipal==null){ + return new ResponseEntity<>( + new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"), + HttpStatus.OK + ); + } + impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleNonBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId()); return new ResponseEntity<>( - new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition Générées avec succès."), + new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition pour les fonciers non batis Générées avec succès."), HttpStatus.OK ); 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 bd75f2d..8c72c1e 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 @@ -101,6 +101,7 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable { @ColumnDefault("0") private Long valeurAdminParcelleNb; private Float tauxTfu; + private Float montantTaxe; private Long valeurAdminParcelleNbMetreCarre; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) 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 98b0fe3..2a29be7 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 @@ -96,12 +96,10 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ @Override @Transactional public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) { - Integer nb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId); + Integer nb= donneesImpositionTfuRepository.genererDonneesTfuNonBatie(impositionsTfuPaylaodWeb.getId(),userId); ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); - - impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE); impositionsTfu.setNombreAvisFnb(nb); @@ -115,7 +113,6 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ @Transactional public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) { - // List donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee()); Integer nbb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId); Integer nbulo= donneesImpositionTfuRepository.genererDonneesTfuBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId); @@ -133,13 +130,6 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } - - - - - - - @Override public List getDonneesFiscalesByImposition(Long impositionsId) { return donneesImpositionTfuRepository.findAllByImpositionsTfu_Id(impositionsId); diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java index a7fb4dd..1a623a9 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DonneesImpositionPaylaodWeb.java @@ -70,11 +70,12 @@ public class DonneesImpositionPaylaodWeb { private Long zoneRfuId; private String zoneRfuNom; private Float tauxTfu; - private Long valeurAdministrativeParcelleNonBati; + private Long valeurAdminParcelleNb; @Enumerated(EnumType.STRING) private NatureImpot natureImpot; private Long valeurLocativeAdmMetreCarre; - private Long valeurAdministrativeParcelleNonBatiAuMetreCarre; + private Long valeurAdminParcelleNbMetreCarre; + private Float montantTaxe; public DonneesImpositionPaylaodWeb(Long id, Long annee, String codeDepartement, String nomDepartement, String codeCommune, String nomCommune, String codeArrondissement, String nomArrondissement, String codeQuartierVillage, String nomQuartierVillage, String q, String ilot, String parcelle, String nup, String titreFoncier, String numBatiment, String numUniteLogement, String ifu, String npi, String telProp, String emailProp, String nomProp, String prenomProp, String raisonSociale, String adresseProp, String telRep, String emailRep, String nomRep, String prenomRep, String adresseRep, String longitude, String latitude, Integer superficieParc, Long superficieAuSolBat, Long superficieAuSolUlog, Boolean batie, @@ -99,7 +100,8 @@ public class DonneesImpositionPaylaodWeb { Long valeurBatiment, Long valeurParcelle, Long valeurLocativeAdmMetreCarre, - Long valeurAdministrativeParcelleNonBatiAuMetreCarre + Long valeurAdministrativeParcelleNonBatiAuMetreCarre, + Float montantTaxe ) { this.id = id; this.annee = annee; @@ -153,14 +155,14 @@ public class DonneesImpositionPaylaodWeb { this.serviceId = serviceId; this.zoneRfuId = zoneRfuId; this.tauxTfu = tauxParcelleNonBati; - this.valeurAdministrativeParcelleNonBati = valeurAdministrativeParcelleNonBati; + this.valeurAdminParcelleNb = valeurAdministrativeParcelleNonBati; this.natureImpot = natureImpot; this.serviceCode = serviceCode; this.zoneRfuNom = zoneRfuNom; this.valeurBatiment = valeurBatiment; this.valeurParcelle = valeurParcelle; this.valeurLocativeAdmMetreCarre = valeurLocativeAdmMetreCarre; - this.valeurAdministrativeParcelleNonBatiAuMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre; - + this.valeurAdminParcelleNbMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre; + this.montantTaxe = montantTaxe; } } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java index 0c314fb..2567e9e 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java @@ -136,4 +136,12 @@ public interface DonneesImpositionTfuRepository extends JpaRepository