feat: gestion des dotations equipements et historique des paiements

This commit is contained in:
2026-05-19 22:15:33 +02:00
parent ee85d38c43
commit 5e0b9ab02a
15 changed files with 435 additions and 7 deletions
@@ -3,25 +3,39 @@ package com.astalange.web.controller;
import com.astalange.core.entity.Adherent;
import com.astalange.core.entity.Categorie;
import com.astalange.core.entity.Licence;
import com.astalange.core.entity.Dotation;
import com.astalange.core.entity.Equipement;
import com.astalange.core.repository.AdherentRepository;
import com.astalange.core.repository.CategorieRepository;
import com.astalange.core.repository.LicenceRepository;
import com.astalange.core.repository.DotationRepository;
import com.astalange.core.repository.EquipementRepository;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Controller
public class LicenceController {
private final AdherentRepository adherentRepository;
private final CategorieRepository categorieRepository;
private final LicenceRepository licenceRepository;
private final EquipementRepository equipementRepository;
private final DotationRepository dotationRepository;
public LicenceController(AdherentRepository adherentRepository, CategorieRepository categorieRepository, LicenceRepository licenceRepository) {
public LicenceController(AdherentRepository adherentRepository,
CategorieRepository categorieRepository,
LicenceRepository licenceRepository,
EquipementRepository equipementRepository,
DotationRepository dotationRepository) {
this.adherentRepository = adherentRepository;
this.categorieRepository = categorieRepository;
this.licenceRepository = licenceRepository;
this.equipementRepository = equipementRepository;
this.dotationRepository = dotationRepository;
}
@PostMapping("/adherents/{id}/licences")
@@ -29,7 +43,8 @@ public class LicenceController {
@PathVariable Long id,
@RequestParam Long categorieId,
@RequestParam String saison,
@RequestParam String etat) {
@RequestParam String etat,
@RequestParam(required = false) String numeroLicence) {
Adherent adherent = adherentRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("Invalid Adherent ID"));
@@ -41,8 +56,21 @@ public class LicenceController {
licence.setCategorie(categorie);
licence.setSaison(saison);
licence.setEtat(etat);
licence.setNumeroLicence(numeroLicence);
licenceRepository.save(licence);
licence = licenceRepository.save(licence);
// Auto-initialize dotations for all configured equipments
List<Equipement> equipements = equipementRepository.findAll();
for (Equipement eq : equipements) {
Dotation dotation = new Dotation();
dotation.setLicence(licence);
dotation.setEquipement(eq);
dotation.setTaille("");
dotation.setFlocage("");
dotation.setFourni(false);
dotationRepository.save(dotation);
}
return "redirect:/adherents/" + id + "/edit";
}