feat: Export CSV des commandes équipements (Dashboard)
- Ajout de la génération de CSV des équipements choisis et non fournis pour la saison active. - Création du DotationService et ajout de la route /admin/equipements/export-commande. - Ajout du bouton d'export sur le tableau de bord principal (index.html).
This commit is contained in:
@@ -11,13 +11,42 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import java.util.List;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import com.astalange.core.service.DotationService;
|
||||
import com.astalange.core.repository.SaisonRepository;
|
||||
import com.astalange.core.entity.Saison;
|
||||
|
||||
@Controller
|
||||
public class DotationController {
|
||||
|
||||
private final DotationRepository dotationRepository;
|
||||
private final DotationService dotationService;
|
||||
private final SaisonRepository saisonRepository;
|
||||
|
||||
public DotationController(DotationRepository dotationRepository) {
|
||||
public DotationController(DotationRepository dotationRepository, DotationService dotationService, SaisonRepository saisonRepository) {
|
||||
this.dotationRepository = dotationRepository;
|
||||
this.dotationService = dotationService;
|
||||
this.saisonRepository = saisonRepository;
|
||||
}
|
||||
|
||||
@GetMapping("/admin/equipements/export-commande")
|
||||
public ResponseEntity<byte[]> exportCommande() {
|
||||
Saison saisonActive = saisonRepository.findByEstActiveTrue()
|
||||
.orElseThrow(() -> new IllegalStateException("Aucune saison active"));
|
||||
|
||||
String csvContent = dotationService.genererCsvCommandeEquipement(saisonActive);
|
||||
byte[] csvBytes = csvContent.getBytes(java.nio.charset.StandardCharsets.UTF_8);
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentDispositionFormData("attachment", "commande_equipements_" + LocalDate.now() + ".csv");
|
||||
headers.setContentType(MediaType.parseMediaType("text/csv; charset=UTF-8"));
|
||||
|
||||
return new ResponseEntity<>(csvBytes, headers, org.springframework.http.HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/dotations/{id}")
|
||||
|
||||
Reference in New Issue
Block a user