Merge pull request 'liquidation pour une parcelle' (#208) from features/fiche_refonte into develop

Reviewed-on: #208
This commit was merged in pull request #208.
This commit is contained in:
2026-04-30 16:04:27 +00:00
7 changed files with 96 additions and 10 deletions

View File

@@ -36,7 +36,7 @@ public class DeclarationNcController {
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createDeclarationNc(@RequestBody @Valid @Validated DeclarationNcPayloadWeb declarationNcPayloadWeb) { public ResponseEntity<?> createDeclarationNc(@RequestBody DeclarationNcPayloadWeb declarationNcPayloadWeb) {
try { try {
declarationNcPayloadWeb = declarationNcService.createDeclarationNc(declarationNcPayloadWeb); declarationNcPayloadWeb = declarationNcService.createDeclarationNc(declarationNcPayloadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(

View File

@@ -36,19 +36,22 @@ public class DeclarationNc extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDerniereDeclaration; private LocalDate dateDerniereDeclaration;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDeclarationNc; private LocalDate dateDeclarationNc;
private String nc; private String nc;
private String q;
private String i;
private String p;
private String numeroTitreFoncier;
private String nup;
private String observation; private String observation;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Structure structure; private Structure structure;
private Long enqueteExternalKey; private Long enqueteExternalKey;
@JsonIgnore @JsonIgnore

View File

@@ -12,6 +12,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneReposit
import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.persistence.repositories.rfu.metier.CommuneCentreAssignationRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.CommuneCentreAssignationRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService; import io.gmss.fiscad.service.EntityFromPayLoadService;
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;
@@ -60,7 +61,7 @@ public class CommuneCentreAssignationServiceImpl implements CommuneCentreAssigna
Optional<CommuneCentreAssignationPaylaodWeb> communeCentreAssignationPaylaodWebOptional=communeCentreAssignationRepository.findbyCommuneAndPersonne(user.getStructure().getCommune().getId(),communeCentreAssignationPaylaodWeb.getPersonneId()); Optional<CommuneCentreAssignationPaylaodWeb> communeCentreAssignationPaylaodWebOptional=communeCentreAssignationRepository.findbyCommuneAndPersonne(user.getStructure().getCommune().getId(),communeCentreAssignationPaylaodWeb.getPersonneId());
if(communeCentreAssignationPaylaodWeb.getId()==null && communeCentreAssignationPaylaodWebOptional.isPresent()){ if(communeCentreAssignationPaylaodWeb.getId()==null && communeCentreAssignationPaylaodWebOptional.isPresent()){
throw new BadRequestException("Impossible de créer une nouvelle assignation de centre: Le contribuable est déjà assigné au centre : "+communeCentreAssignationPaylaodWebOptional.get().getStructureNom()); throw new NotAcceptableException("Impossible de créer une nouvelle assignation de centre: Le contribuable est déjà assigné au centre : "+communeCentreAssignationPaylaodWebOptional.get().getStructureNom());
} }

View File

@@ -38,6 +38,11 @@ public class DeclarationNcServiceImpl implements DeclarationNcService {
if (!structureRepository.existsById(declarationNcPayloadWeb.getStructureId())) { if (!structureRepository.existsById(declarationNcPayloadWeb.getStructureId())) {
throw new BadRequestException("Veuillez préciser le centre."); throw new BadRequestException("Veuillez préciser le centre.");
} }
List<DeclarationNcPayloadWeb> declarationNcPayloadWebs= declarationNcRepository.findAllDeclarationNcByNcNotPersonneToDto(declarationNcPayloadWeb.getNc(),declarationNcPayloadWeb.getPersonneId());
if (!declarationNcPayloadWebs.isEmpty()) {
throw new BadRequestException("Ce numéro Contribuable est déjà rattaché à un autre IFU");
}
DeclarationNc declarationNc= entityFromPayLoadService.getDeclarationNcFromPayLoadWeb(declarationNcPayloadWeb); DeclarationNc declarationNc= entityFromPayLoadService.getDeclarationNcFromPayLoadWeb(declarationNcPayloadWeb);
declarationNc =declarationNcRepository.save(declarationNc); declarationNc =declarationNcRepository.save(declarationNc);

View File

@@ -15,6 +15,11 @@ public class DeclarationNcPayloadWeb {
private LocalDate dateDerniereDeclaration; private LocalDate dateDerniereDeclaration;
private LocalDate dateDeclarationNc; private LocalDate dateDeclarationNc;
private String nc; private String nc;
private String q;
private String i;
private String p;
private String numeroTitreFoncier;
private String nup;
private Long structureId; private Long structureId;
private String structureCode; private String structureCode;
private String structureNom; private String structureNom;
@@ -24,7 +29,14 @@ public class DeclarationNcPayloadWeb {
private String personneRaisonSociale; private String personneRaisonSociale;
private String observation; private String observation;
public DeclarationNcPayloadWeb(Long id, LocalDate dateDerniereDeclaration, LocalDate dateDeclarationNc, String nc, Long structureId, String structureCode, String structureNom, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, String observation) { public DeclarationNcPayloadWeb(Long id, LocalDate dateDerniereDeclaration, LocalDate dateDeclarationNc, String nc, Long structureId, String structureCode, String structureNom, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale,
String observation,
String q,
String i,
String p,
String numeroTitreFoncier,
String nup
) {
this.id = id; this.id = id;
this.dateDerniereDeclaration = dateDerniereDeclaration; this.dateDerniereDeclaration = dateDerniereDeclaration;
this.dateDeclarationNc = dateDeclarationNc; this.dateDeclarationNc = dateDeclarationNc;
@@ -36,6 +48,11 @@ public class DeclarationNcPayloadWeb {
this.personneNom = personneNom; this.personneNom = personneNom;
this.personnePrenom = personnePrenom; this.personnePrenom = personnePrenom;
this.personneRaisonSociale = personneRaisonSociale; this.personneRaisonSociale = personneRaisonSociale;
this.q = q;
this.i = i;
this.p = p;
this.numeroTitreFoncier = numeroTitreFoncier;
this.observation = observation; this.observation = observation;
this.nup = nup;
} }
} }

View File

@@ -28,7 +28,12 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
p.nom, p.nom,
p.prenom, p.prenom,
p.raisonSociale, p.raisonSociale,
d.observation d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
) )
FROM DeclarationNc d FROM DeclarationNc d
LEFT JOIN d.structure s LEFT JOIN d.structure s
@@ -50,7 +55,12 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
p.nom, p.nom,
p.prenom, p.prenom,
p.raisonSociale, p.raisonSociale,
d.observation d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
) )
FROM DeclarationNc d FROM DeclarationNc d
LEFT JOIN d.structure s LEFT JOIN d.structure s
@@ -71,7 +81,12 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
p.nom, p.nom,
p.prenom, p.prenom,
p.raisonSociale, p.raisonSociale,
d.observation d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
) )
FROM DeclarationNc d FROM DeclarationNc d
LEFT JOIN d.structure s LEFT JOIN d.structure s
@@ -93,7 +108,12 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
p.nom, p.nom,
p.prenom, p.prenom,
p.raisonSociale, p.raisonSociale,
d.observation d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
) )
FROM DeclarationNc d FROM DeclarationNc d
LEFT JOIN d.structure s LEFT JOIN d.structure s
@@ -116,7 +136,12 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
p.nom, p.nom,
p.prenom, p.prenom,
p.raisonSociale, p.raisonSociale,
d.observation d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
) )
FROM DeclarationNc d FROM DeclarationNc d
LEFT JOIN d.structure s LEFT JOIN d.structure s
@@ -135,4 +160,34 @@ public interface DeclarationNcRepository extends JpaRepository<DeclarationNc, Lo
Pageable pageable Pageable pageable
); );
@Query("""
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.DeclarationNcPayloadWeb(
d.id,
d.dateDerniereDeclaration,
d.dateDeclarationNc,
d.nc,
s.id,
s.code,
s.nom,
p.id,
p.nom,
p.prenom,
p.raisonSociale,
d.observation,
d.q,
d.i,
d.p,
d.numeroTitreFoncier,
d.nup
)
FROM DeclarationNc d
LEFT JOIN d.structure s
LEFT JOIN d.personne p
WHERE d.nc= :nc
and p.id <> :personneId
""")
List<DeclarationNcPayloadWeb> findAllDeclarationNcByNcNotPersonneToDto(@Param("nc") String nc, @Param("personneId") Long personneId);
} }

View File

@@ -211,6 +211,11 @@ public class EntityFromPayLoadService {
declarationNc.setStructure(optionalStructure.orElse(null)); declarationNc.setStructure(optionalStructure.orElse(null));
declarationNc.setPersonne(optionalPersonne.orElse(null)); declarationNc.setPersonne(optionalPersonne.orElse(null));
declarationNc.setNc(declarationNcPayloadWeb.getNc()); declarationNc.setNc(declarationNcPayloadWeb.getNc());
declarationNc.setQ(declarationNcPayloadWeb.getQ());
declarationNc.setI(declarationNcPayloadWeb.getI());
declarationNc.setP(declarationNcPayloadWeb.getP());
declarationNc.setNumeroTitreFoncier(declarationNcPayloadWeb.getNumeroTitreFoncier());
declarationNc.setNup(declarationNcPayloadWeb.getNup());
declarationNc.setDateDerniereDeclaration(declarationNcPayloadWeb.getDateDerniereDeclaration()); declarationNc.setDateDerniereDeclaration(declarationNcPayloadWeb.getDateDerniereDeclaration());
declarationNc.setDateDeclarationNc(declarationNcPayloadWeb.getDateDeclarationNc()); declarationNc.setDateDeclarationNc(declarationNcPayloadWeb.getDateDeclarationNc());
return declarationNc ; return declarationNc ;