diff --git a/src/main/java/org/springframework/cheapy/model/Client.java b/src/main/java/org/springframework/cheapy/model/Client.java index 2981c9d98..41d81ca19 100644 --- a/src/main/java/org/springframework/cheapy/model/Client.java +++ b/src/main/java/org/springframework/cheapy/model/Client.java @@ -1,5 +1,6 @@ package org.springframework.cheapy.model; +import java.time.LocalTime; import java.util.List; import javax.persistence.CascadeType; @@ -9,8 +10,10 @@ import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import javax.validation.constraints.Digits; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +import org.springframework.format.annotation.DateTimeFormat; @Entity @Table(name = "clients") @@ -31,12 +34,14 @@ public class Client extends BaseEntity { private String address; // Hora de apertura del local - @NotBlank - private String init; + @DateTimeFormat(pattern = "HH:mm") + @NotNull(message = "Debe introducir una hora de apertura") + private LocalTime init; // Hora de cierre del local - @NotBlank - private String finish; + @DateTimeFormat(pattern = "HH:mm") + @NotNull(message = "Debe introducir una hora de cierre") + private LocalTime finish; @NotEmpty @Digits(fraction = 0, integer = 10) @@ -92,19 +97,19 @@ public class Client extends BaseEntity { this.address = address; } - public String getInit() { + public LocalTime getInit() { return init; } - public void setInit(String init) { + public void setInit(LocalTime init) { this.init = init; } - public String getFinish() { + public LocalTime getFinish() { return finish; } - public void setFinish(String finish) { + public void setFinish(LocalTime finish) { this.finish = finish; } diff --git a/src/main/java/org/springframework/cheapy/web/ClientController.java b/src/main/java/org/springframework/cheapy/web/ClientController.java index fef9d999e..f17923b36 100644 --- a/src/main/java/org/springframework/cheapy/web/ClientController.java +++ b/src/main/java/org/springframework/cheapy/web/ClientController.java @@ -7,7 +7,6 @@ import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import javax.websocket.server.PathParam; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -59,7 +58,13 @@ public class ClientController { } - + private boolean checkTimes(final Client client) { + boolean res = false; + if(client.getFinish()==null || client.getInit()==null || client.getFinish().isAfter(client.getInit())) { + res = true; + } + return res; + } @GetMapping("/clients/show") @@ -91,7 +96,11 @@ public class ClientController { Client clienteSesion = this.clientService.getCurrentClient(); - + + if(!this.checkTimes(clientEdit)) { + result.rejectValue("finish","" ,"La hora de cierre debe ser posterior a la hora de apertura"); + + } if (result.hasErrors()) { diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index 1074dcd4a..3e308ec2d 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -19,8 +19,8 @@ INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, us INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, username) VALUES (3, 'Lolo', 'Lopez', '25486596L', 'C/Macarena', '690670547' ,'Lolo@gmail.com','lolo'); INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, username) VALUES (4, 'Pepe', 'Lopez', '12456776V', 'C/Macarena', '690670547', 'Pepe@gmail.com','pepe'); -INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis','10:00','22:00','608726190', 'description 1', 'code1', 'ESPAÑOLA','manoli'); -INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (2,'bar david','david@gmail.com','C/Sevilla','09:30','22:00','608726190', 'description 2', 'code2', 'americana','david'); +INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis','10:00:00','22:00:00','608726190', 'description 1', 'code1', 'ESPAÑOLA','manoli'); +INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (2,'bar david','david@gmail.com','C/Sevilla','09:30:00','22:00:00','608726190', 'description 2', 'code2', 'americana','david'); INSERT INTO food_offers(start, end, code, status, client_id, food, discount) VALUES ('2021-08-14 12:00:00', '2021-08-15 12:00:00', 'FO-1', 'inactive', 1, 'macarrones', 15); INSERT INTO food_offers(start, end, code, status, client_id, food, discount) VALUES ('2021-08-15 12:00:00', '2021-08-16 12:00:00', 'FO-2', 'active', 1, 'macarrones con tomate', 10); diff --git a/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp b/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp index bd21204d0..163807396 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp @@ -9,7 +9,7 @@

- +

diff --git a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java index a0ef27af7..a6ca4f81c 100644 --- a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java @@ -8,6 +8,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import java.time.LocalDateTime; +import java.time.LocalTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -58,8 +59,8 @@ class FoodOfferControllerTest { client1.setName("client1"); client1.setEmail("client1"); client1.setAddress("client1"); - client1.setInit("01:00"); - client1.setFinish("01:01"); + client1.setInit(LocalTime.of(01, 00)); + client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); client1.setCode("client1"); diff --git a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java index 31ec0d75b..13815ff9a 100644 --- a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java @@ -8,6 +8,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import java.time.LocalDateTime; +import java.time.LocalTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -57,8 +58,8 @@ class NuOfferControllerTest { client1.setName("client1"); client1.setEmail("client1"); client1.setAddress("client1"); - client1.setInit("01:00"); - client1.setFinish("01:01"); + client1.setInit(LocalTime.of(01, 00)); + client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); client1.setCode("client1"); diff --git a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java index d2bc2c1aa..d05027011 100644 --- a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java @@ -8,6 +8,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import java.time.LocalDateTime; +import java.time.LocalTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -58,8 +59,8 @@ class SpeedOfferControllerTest { client1.setName("client1"); client1.setEmail("client1"); client1.setAddress("client1"); - client1.setInit("01:00"); - client1.setFinish("01:01"); + client1.setInit(LocalTime.of(01, 00)); + client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); client1.setCode("client1"); diff --git a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java index 64ff4c362..8ff0a094e 100644 --- a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java @@ -58,8 +58,8 @@ class TimeOfferControllerTest { client1.setName("client1"); client1.setEmail("client1"); client1.setAddress("client1"); - client1.setInit("01:00"); - client1.setFinish("01:01"); + client1.setInit(LocalTime.of(12, 00)); + client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); client1.setCode("client1");