From dbfaeee1f77c1576d9620096b214a5e2868b3e0b Mon Sep 17 00:00:00 2001 From: jleroy2023 Date: Wed, 16 Jul 2025 16:24:14 +0200 Subject: [PATCH] =?UTF-8?q?G=C3=A9n=C3=A9ration=20facture=20et=20location?= =?UTF-8?q?=20end=20date=20set?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/fr/eni/demo/bll/FactureService.java | 2 ++ .../fr/eni/demo/bll/FactureServiceImpl.java | 7 +++++ .../java/fr/eni/demo/bll/LocationService.java | 2 ++ .../fr/eni/demo/bll/LocationServiceImpl.java | 21 ++++++++++++- .../eni/demo/controller/ClientController.java | 1 + .../demo/controller/FactureController.java | 31 ++++++++++++++++--- .../fr/eni/demo/security/SecurityConfig.java | 2 +- 7 files changed, 59 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/eni/demo/bll/FactureService.java b/src/main/java/fr/eni/demo/bll/FactureService.java index f65dcf8..b424861 100644 --- a/src/main/java/fr/eni/demo/bll/FactureService.java +++ b/src/main/java/fr/eni/demo/bll/FactureService.java @@ -1,6 +1,7 @@ package fr.eni.demo.bll; import fr.eni.demo.bo.Facture; +import fr.eni.demo.bo.Location; import java.util.List; @@ -8,4 +9,5 @@ public interface FactureService { List getByClient(Long clientId); List getAll(); List getUnpayed(); + void add(Facture facture); } diff --git a/src/main/java/fr/eni/demo/bll/FactureServiceImpl.java b/src/main/java/fr/eni/demo/bll/FactureServiceImpl.java index 73129ee..d241c8d 100644 --- a/src/main/java/fr/eni/demo/bll/FactureServiceImpl.java +++ b/src/main/java/fr/eni/demo/bll/FactureServiceImpl.java @@ -1,6 +1,7 @@ package fr.eni.demo.bll; import fr.eni.demo.bo.Facture; +import fr.eni.demo.bo.Location; import fr.eni.demo.dal.FactureRepository; import org.springframework.stereotype.Service; @@ -35,4 +36,10 @@ public class FactureServiceImpl implements FactureService { public List getUnpayed() { return factureRepo.findByDatePayEmpty(); } + + @Override + public void add(Facture facture) { + factureRepo.save(facture); + } + } diff --git a/src/main/java/fr/eni/demo/bll/LocationService.java b/src/main/java/fr/eni/demo/bll/LocationService.java index ce67a0c..8c9b56d 100644 --- a/src/main/java/fr/eni/demo/bll/LocationService.java +++ b/src/main/java/fr/eni/demo/bll/LocationService.java @@ -3,5 +3,7 @@ package fr.eni.demo.bll; import fr.eni.demo.bo.Location; public interface LocationService { + Location findById(int id); void add(Location location); + void updateDateEnd(int id, Location location); } diff --git a/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java b/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java index 6a569dd..5de00dc 100644 --- a/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java +++ b/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java @@ -1,20 +1,39 @@ package fr.eni.demo.bll; +import fr.eni.demo.bo.Adresse; import fr.eni.demo.bo.Location; import fr.eni.demo.dal.LocationRepository; -import org.springframework.beans.factory.annotation.Autowired; +import jakarta.persistence.EntityNotFoundException; import org.springframework.stereotype.Service; +import java.util.Date; + @Service public class LocationServiceImpl implements LocationService { + private LocationRepository locationRepository; public LocationServiceImpl(LocationRepository locationRepository) { this.locationRepository = locationRepository; } + @Override + public Location findById(int id) { + return locationRepository.findById(id) + .orElseThrow(() -> new EntityNotFoundException("Location non trouvée")); + } + @Override public void add(Location location) { locationRepository.save(location); } + + @Override + public void updateDateEnd(int id, Location location) { + Location existing = findById(id); + location.setId(existing.getId()); + location.setEndDate(new Date()); + locationRepository.save(location); + } + } diff --git a/src/main/java/fr/eni/demo/controller/ClientController.java b/src/main/java/fr/eni/demo/controller/ClientController.java index 0c0ccf3..3daa48e 100644 --- a/src/main/java/fr/eni/demo/controller/ClientController.java +++ b/src/main/java/fr/eni/demo/controller/ClientController.java @@ -58,6 +58,7 @@ public class ClientController { clientService.delete(id); return buildResponse("Address deleted", true, new HashMap<>()); } + private ResponseEntity> buildResponse(String message, boolean status, Object data) { Map response = new HashMap<>(); response.put("message", message); diff --git a/src/main/java/fr/eni/demo/controller/FactureController.java b/src/main/java/fr/eni/demo/controller/FactureController.java index a638b02..de7587d 100644 --- a/src/main/java/fr/eni/demo/controller/FactureController.java +++ b/src/main/java/fr/eni/demo/controller/FactureController.java @@ -2,10 +2,12 @@ package fr.eni.demo.controller; import fr.eni.demo.bll.FactureService; import fr.eni.demo.bo.Facture; +import fr.eni.demo.bo.Location; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,26 +23,45 @@ public class FactureController { @GetMapping public ResponseEntity> getAllFactures() { List result = factureService.getAll(); - return buildResponse(result); + return buildResponse("List all order", true, result); } // Factures par client @GetMapping("/client/{clientId}") public ResponseEntity> getFactureByClient(@PathVariable Long clientId) { - return buildResponse(factureService.getByClient(clientId)); + List result = factureService.getByClient(clientId); + return buildResponse("List order customer", true, result); } // Factures impayees @GetMapping("/unpayed") public ResponseEntity> getUnpayedFactures() { List result = factureService.getUnpayed(); - return buildResponse(result); + return buildResponse("List unpayed older", true, result); } - private ResponseEntity> buildResponse(Object data) { + // Génère une facture + @PostMapping + public ResponseEntity> setFacture(@RequestBody List locations) { + double price = 0; + for(Location location : locations){ + price += location.getStock().getDailyPrice(); + + } + Facture facture = new Facture(); + facture.setClient(locations.get(0).getClient()); + facture.setDatePay(new Date()); + facture.setPrice(price); + factureService.add(facture); + return buildResponse("Older created", true, new HashMap<>()); + } + + private ResponseEntity> buildResponse(String message, boolean status, Object data) { Map response = new HashMap<>(); + response.put("message", message); + response.put("status", status); response.put("data", data); - response.put("status", 200); return ResponseEntity.ok(response); } + } diff --git a/src/main/java/fr/eni/demo/security/SecurityConfig.java b/src/main/java/fr/eni/demo/security/SecurityConfig.java index 6e82b89..80c282c 100644 --- a/src/main/java/fr/eni/demo/security/SecurityConfig.java +++ b/src/main/java/fr/eni/demo/security/SecurityConfig.java @@ -66,7 +66,7 @@ public class SecurityConfig { UserDetails user = User.builder() .username("user") .password(encoder.encode("password")) - .roles("USER") + .roles("EMPLOYE") .build(); return new InMemoryUserDetailsManager(user);