Refactor: Move equipment price and mandatory status to Categorie relationship
- Created CategorieEquipement entity to act as a join table between Category and Equipment. - Moved 'obligatoire' and 'prix' (formerly prixContribution) fields from Equipement to the new CategorieEquipement entity. - Added Flyway migrations V14 and V15 to update the database schema and migrate existing data. - Updated Categorie UI to use a select dropdown and price input for managing category-specific equipment configurations. - Replaced 'equipement.obligatoire' and 'equipement.prixContribution' calls with their new category-level equivalents in logic and templates. - Updated pricing calculation in Licence entity to source prices dynamically from the Categorie configuration. - Updated Dotation generation logic to sync with category requirements automatically.
This commit is contained in:
+14
-3
@@ -1,7 +1,9 @@
|
||||
package com.astalange.web.controller;
|
||||
|
||||
import com.astalange.core.entity.Equipement;
|
||||
import com.astalange.core.entity.Saison;
|
||||
import com.astalange.core.repository.EquipementRepository;
|
||||
import com.astalange.core.repository.SaisonRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -11,9 +13,11 @@ import org.springframework.web.bind.annotation.*;
|
||||
public class EquipementController {
|
||||
|
||||
private final EquipementRepository equipementRepository;
|
||||
private final SaisonRepository saisonRepository;
|
||||
|
||||
public EquipementController(EquipementRepository equipementRepository) {
|
||||
public EquipementController(EquipementRepository equipementRepository, SaisonRepository saisonRepository) {
|
||||
this.equipementRepository = equipementRepository;
|
||||
this.saisonRepository = saisonRepository;
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
@@ -38,8 +42,15 @@ public class EquipementController {
|
||||
|
||||
@PostMapping
|
||||
public String saveEquipement(@ModelAttribute("equipement") Equipement equipement) {
|
||||
if (equipement.getObligatoire() == null) {
|
||||
equipement.setObligatoire(false);
|
||||
|
||||
if (equipement.getId() == null) {
|
||||
Saison activeSaison = saisonRepository.findByEstActiveTrue()
|
||||
.orElseThrow(() -> new IllegalStateException("Aucune saison active trouvée"));
|
||||
equipement.setSaison(activeSaison);
|
||||
} else {
|
||||
Equipement existing = equipementRepository.findById(equipement.getId())
|
||||
.orElseThrow(() -> new IllegalArgumentException("Invalid equipment ID: " + equipement.getId()));
|
||||
equipement.setSaison(existing.getSaison());
|
||||
}
|
||||
equipementRepository.save(equipement);
|
||||
return "redirect:/equipements";
|
||||
|
||||
Reference in New Issue
Block a user