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
@@ -0,0 +1,55 @@
package com.astalange.web.controller;
import com.astalange.core.entity.Equipement;
import com.astalange.core.repository.EquipementRepository;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/equipements")
public class EquipementController {
private final EquipementRepository equipementRepository;
public EquipementController(EquipementRepository equipementRepository) {
this.equipementRepository = equipementRepository;
}
@GetMapping
public String listEquipements(Model model) {
model.addAttribute("equipements", equipementRepository.findAll());
return "parametrage/equipements_list";
}
@GetMapping("/new")
public String showCreateForm(Model model) {
model.addAttribute("equipement", new Equipement());
return "parametrage/equipements_form";
}
@GetMapping("/{id}/edit")
public String showEditForm(@PathVariable Long id, Model model) {
Equipement equipement = equipementRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("Invalid equipment ID: " + id));
model.addAttribute("equipement", equipement);
return "parametrage/equipements_form";
}
@PostMapping
public String saveEquipement(@ModelAttribute("equipement") Equipement equipement) {
if (equipement.getObligatoire() == null) {
equipement.setObligatoire(false);
}
equipementRepository.save(equipement);
return "redirect:/equipements";
}
@PostMapping("/{id}/delete")
public String deleteEquipement(@PathVariable Long id) {
Equipement equipement = equipementRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("Invalid equipment ID: " + id));
equipementRepository.delete(equipement);
return "redirect:/equipements";
}
}