diff --git a/src/main/java/org/springframework/cheapy/model/NuOffer.java b/src/main/java/org/springframework/cheapy/model/NuOffer.java index 5a52a5756..edcd42ffc 100644 --- a/src/main/java/org/springframework/cheapy/model/NuOffer.java +++ b/src/main/java/org/springframework/cheapy/model/NuOffer.java @@ -10,11 +10,8 @@ import javax.validation.constraints.NotNull; @Table(name = "nu_offers") public class NuOffer extends Offer { - /** - * - */ private static final long serialVersionUID = 1L; - + @NotNull private Integer gold; diff --git a/src/main/java/org/springframework/cheapy/model/SpeedOffer.java b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java index 0ef65d7a2..021a89106 100644 --- a/src/main/java/org/springframework/cheapy/model/SpeedOffer.java +++ b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java @@ -10,9 +10,6 @@ import javax.validation.constraints.NotNull; @Table(name = "speed_offers") public class SpeedOffer extends Offer { - /** - * - */ private static final long serialVersionUID = 1L; @NotNull diff --git a/src/main/java/org/springframework/cheapy/service/NuOfferService.java b/src/main/java/org/springframework/cheapy/service/NuOfferService.java index 475a2e7ab..fc1e2d2e9 100644 --- a/src/main/java/org/springframework/cheapy/service/NuOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/NuOfferService.java @@ -30,7 +30,6 @@ public class NuOfferService { public void saveNuOffer(final NuOffer nuOffer) throws DataAccessException { // - this.nuOfferRepository.save(nuOffer); } diff --git a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java index ca2b08036..eb6f4de6c 100644 --- a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java @@ -28,10 +28,8 @@ public class SpeedOfferService { return this.speedOfferRepository.findAllSpeedOffer(); } - - - public void saveSpeedOffer(final SpeedOffer speedOffer) throws DataAccessException { - + + public void saveSpeedOffer(final SpeedOffer speedOffer) throws DataAccessException { // this.speedOfferRepository.save(speedOffer); } diff --git a/src/main/java/org/springframework/cheapy/web/NuOfferController.java b/src/main/java/org/springframework/cheapy/web/NuOfferController.java index c6ad3c47f..5ef8bf890 100644 --- a/src/main/java/org/springframework/cheapy/web/NuOfferController.java +++ b/src/main/java/org/springframework/cheapy/web/NuOfferController.java @@ -1,15 +1,30 @@ package org.springframework.cheapy.web; +import java.security.Principal; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import javax.validation.Valid; + +import org.springframework.beans.BeanUtils; +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.cheapy.model.StatusOffer; +import org.springframework.cheapy.model.TimeOffer; +import org.springframework.cheapy.service.FoodOfferService; import org.springframework.cheapy.model.Client; import org.springframework.cheapy.model.NuOffer; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.service.ClientService; + import org.springframework.cheapy.service.NuOfferService; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; + import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; @@ -27,14 +42,17 @@ public class NuOfferController { private final NuOfferService nuOfferService; private final ClientService clientService; - - public NuOfferController(final NuOfferService nuOfferService,ClientService clientService) { this.nuOfferService = nuOfferService; this.clientService = clientService; } + @InitBinder + public void setAllowedFields(WebDataBinder dataBinder) { + dataBinder.setDisallowedFields("id"); + } + @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); @@ -95,4 +113,100 @@ public class NuOfferController { + @GetMapping(value = "/offers/nu/{nuOfferId}/edit") + public String updateNuOffer(@PathVariable("nuOfferId") final int nuOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } + + NuOffer nuOffer=this.nuOfferService.findNuOfferById(nuOfferId); + model.put("nuOffer", nuOffer); + return VIEWS_NU_OFFER_CREATE_OR_UPDATE_FORM; + } + + @PostMapping(value = "/offers/nu/{nuOfferId}/edit") + public String updateNuOffer(@Valid final NuOffer nuOfferEdit, final BindingResult result, @PathVariable("nuOfferId") final int nuOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } + + if (result.hasErrors()) { + model.put("nuOffer", nuOfferEdit); + return VIEWS_NU_OFFER_CREATE_OR_UPDATE_FORM; + + } else { + + NuOffer nuOfferOld=this.nuOfferService.findNuOfferById(nuOfferId); + + BeanUtils.copyProperties(nuOfferEdit, nuOfferOld, "id", "client_id"); + + this.nuOfferService.saveNuOffer(nuOfferOld); + + return "offers/offersList"; + } + + } + + @GetMapping(value ="/offers/nu/{nuOfferId}/edit") + public String initUpdateNuOfferForm(@PathVariable("nuOfferId") int nuOfferId, Model model) { + NuOffer nuOffer=this.nuOfferService.findNuOfferById(nuOfferId); + model.addAttribute(nuOffer); + return VIEWS_NU_OFFER_CREATE_OR_UPDATE_FORM; + } + + @PostMapping("/offers/nu/{nuOfferId}/edit") + public String processUpdateOwnerForm(@Valid NuOffer nuOffer, BindingResult result, + @PathVariable("nuOfferId") int nuOfferId) { + if (result.hasErrors()) { + return VIEWS_NU_OFFER_CREATE_OR_UPDATE_FORM; + } + else { + nuOffer.setId(nuOfferId); + this.nuOfferService.saveNuOffer(nuOffer); + return "redirect:/offers/nu/{nuOfferId}"; + } + } + + @GetMapping(value = "/offers/nu/{nuOfferId}/disable") + public String disableNuOffer(@PathVariable("nuOfferId") final int nuOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } +// +// if (this.tieneCitasAceptadasYPendientes(vehiculoId)) { +// model.addAttribute("x", true); +// +// } else { +// model.addAttribute("x", false); +// } + + NuOffer nuOffer=this.nuOfferService.findNuOfferById(nuOfferId); + model.put("nuOffer", nuOffer); + return "nuOffers/nuOffersDisable"; + } + + @PostMapping(value = "/offers/nu/{nuOfferId}/disable") + public String disableNuOfferForm(@PathVariable("nuOfferId") final int nuOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } +// +// if (this.tieneCitasAceptadasYPendientes(vehiculoId)) { +// return "redirect:/cliente/vehiculos/{vehiculoId}/disable"; +// +// } else { + NuOffer nuOffer=this.nuOfferService.findNuOfferById(nuOfferId); + + nuOffer.setType(StatusOffer.inactive); + + this.nuOfferService.saveNuOffer(nuOffer); + + return "redirect:"; + + } + } diff --git a/src/main/java/org/springframework/cheapy/web/SpeedOfferController.java b/src/main/java/org/springframework/cheapy/web/SpeedOfferController.java index f9678e4bc..f0db3618b 100644 --- a/src/main/java/org/springframework/cheapy/web/SpeedOfferController.java +++ b/src/main/java/org/springframework/cheapy/web/SpeedOfferController.java @@ -16,10 +16,21 @@ package org.springframework.cheapy.web; +import java.security.Principal; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import javax.validation.Valid; +import org.springframework.beans.BeanUtils; +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.cheapy.model.StatusOffer; +import org.springframework.cheapy.model.TimeOffer; +import org.springframework.cheapy.service.FoodOfferService; +import org.springframework.cheapy.service.NuOfferService; import org.springframework.cheapy.model.Client; import org.springframework.cheapy.model.SpeedOffer; import org.springframework.cheapy.model.StatusOffer; @@ -94,4 +105,81 @@ public class SpeedOfferController { model.put("speedOffer", speedOffer); return "speedOffers/speedOffersShow"; } + + @GetMapping(value = "/offers/speed/{speedOfferId}/edit") + public String updateNuOffer(@PathVariable("speedOfferId") final int speedOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } + + SpeedOffer speedOffer=this.speedOfferService.findSpeedOfferById(speedOfferId); + model.put("speedOffer", speedOffer); + return VIEWS_SPEED_OFFER_CREATE_OR_UPDATE_FORM; + } + + @PostMapping(value = "/offers/speed/{speedOfferId}/edit") + public String updateNuOffer(@Valid final SpeedOffer speedOfferEdit, final BindingResult result, @PathVariable("speedOfferId") final int speedOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } + + if (result.hasErrors()) { + model.put("speedOffer", speedOfferEdit); + return VIEWS_SPEED_OFFER_CREATE_OR_UPDATE_FORM; + + } else { + + SpeedOffer speedOfferOld=this.speedOfferService.findSpeedOfferById(speedOfferId); + + BeanUtils.copyProperties(speedOfferEdit, speedOfferOld, "id", "client_id"); + + this.speedOfferService.saveSpeedOffer(speedOfferOld); + + return "redirect:"; + } + + } + + @GetMapping(value = "/offers/speed/{speedOfferId}/disable") + public String disableSpeedOffer(@PathVariable("speedOfferId") final int speedOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } +// +// if (this.tieneCitasAceptadasYPendientes(vehiculoId)) { +// model.addAttribute("x", true); +// +// } else { +// model.addAttribute("x", false); +// } + + SpeedOffer speedOffer=this.speedOfferService.findSpeedOfferById(speedOfferId); + model.put("speedOffer", speedOffer); + return "speedOffers/speedOffersDisable"; + } + + @PostMapping(value = "/offers/speed/{speedOfferId}/disable") + public String disableNuOfferForm(@PathVariable("speedOfferId") final int speedOfferId, final Principal principal, final ModelMap model) { + +// if (!this.comprobarIdentidad(principal, vehiculoId)) { +// return "exception"; +// } +// +// if (this.tieneCitasAceptadasYPendientes(vehiculoId)) { +// return "redirect:/cliente/vehiculos/{vehiculoId}/disable"; +// +// } else { + SpeedOffer speedOffer=this.speedOfferService.findSpeedOfferById(speedOfferId); + + speedOffer.setType(StatusOffer.inactive); + + this.speedOfferService.saveSpeedOffer(speedOffer); + + return "redirect:"; + + } + } diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index 30ae2672e..14b4a7b0d 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -35,3 +35,4 @@ INSERT INTO speed_offers(start, end, code, type, client_id, gold, discount_gold, INSERT INTO time_offers(start, end, code, type, client_id, init, finish, discount) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, '12:00:00', '13:00:00', '10%'); INSERT INTO speed_offers(start, end, code, type, client_id, gold, discount_gold, silver, discount_silver, bronze, discount_bronze) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null,5,'25%',10,'15%',15,'10%' ); INSERT INTO nu_offers(start, end, code, type, client_id, gold, discount_gold, silver, discount_silver, bronze, discount_bronze) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null,15,'25%',10,'15%',5,'10%' ); + diff --git a/src/main/webapp/WEB-INF/jsp/foodOffers/foodOffersDisable.jsp b/src/main/webapp/WEB-INF/jsp/foodOffers/foodOffersDisable.jsp new file mode 100644 index 000000000..6f14e9ba0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/foodOffers/foodOffersDisable.jsp @@ -0,0 +1,24 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="petclinic" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + +

¿Esta seguro de que quiere eliminar su oferta?

+ + + + + + + + + + Volver + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersDisable.jsp b/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersDisable.jsp new file mode 100644 index 000000000..83fa94c10 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersDisable.jsp @@ -0,0 +1,27 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="petclinic" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + +

¿Esta seguro de que quiere dar de baja su offer?

+ + + + + + + + + + + + + Volver + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersShow.jsp b/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersShow.jsp index 431d2a4d6..9a189337c 100644 --- a/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/nuOffers/nuOffersShow.jsp @@ -6,7 +6,7 @@ -

Oferta por número de comensales

+

Oferta por n�mero de comensales

@@ -48,9 +48,14 @@
- <%-- - + + - Edit Owner --%> + Editar Oferta + + + + + Eliminar Oferta
diff --git a/src/main/webapp/WEB-INF/jsp/speedOffers/createOrUpdateSpeedOfferForm.jsp b/src/main/webapp/WEB-INF/jsp/speedOffers/createOrUpdateSpeedOfferForm.jsp index 0e35b6ed3..f813733b0 100644 --- a/src/main/webapp/WEB-INF/jsp/speedOffers/createOrUpdateSpeedOfferForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/speedOffers/createOrUpdateSpeedOfferForm.jsp @@ -27,6 +27,9 @@ + + + diff --git a/src/main/webapp/WEB-INF/jsp/speedOffers/speedOffersDisable.jsp b/src/main/webapp/WEB-INF/jsp/speedOffers/speedOffersDisable.jsp new file mode 100644 index 000000000..0e2febbf0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/speedOffers/speedOffersDisable.jsp @@ -0,0 +1,27 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="petclinic" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + +

¿Esta seguro de que quiere dar de baja su offer?

+ + + + + + + + + + + + + Volver + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/timeOffers/timeOffersDisable.jsp b/src/main/webapp/WEB-INF/jsp/timeOffers/timeOffersDisable.jsp new file mode 100644 index 000000000..0baaaabcc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/timeOffers/timeOffersDisable.jsp @@ -0,0 +1,24 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="petclinic" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + +

¿Esta seguro de que quiere eliminar su oferta?

+ + + + + + + + + + Volver + +
+