diff --git a/Cambios de DP6Entrega.txt b/Cambios de DP6Entrega.txt new file mode 100644 index 0000000..261eed1 --- /dev/null +++ b/Cambios de DP6Entrega.txt @@ -0,0 +1,10 @@ +Cambios de DP6Entrega + +- Mensaje de error en el registro de Consumer y Clerk +- Revisar el pattern de teléfono. No funcionaba con un teléfono de Chile +- Cambiar populate.xml para crear más items y que la paginación funcione. +- Puedes entrar en una URL de admin siendo consumer. +- Modificar security del proyecto. +- La URL del botón de crear clerk está mal. +- Faltan los servicios de issue de Git (https://github.com/DPIRPSG/DP6Entrega/issues/16) +- \ No newline at end of file diff --git a/Roadmap of this lesson.pdf b/Roadmap of this lesson.pdf new file mode 100644 index 0000000..7b945b1 Binary files /dev/null and b/Roadmap of this lesson.pdf differ diff --git a/UML/Domain model.pdf b/UML/Domain model.pdf new file mode 100644 index 0000000..5de922f Binary files /dev/null and b/UML/Domain model.pdf differ diff --git a/UML/Domain model.png b/UML/Domain model.png new file mode 100644 index 0000000..97fc5dc Binary files /dev/null and b/UML/Domain model.png differ diff --git a/UML/V2.1_Acme-Supermarket_DM_A.asta b/UML/V2.1_Acme-Supermarket_DM_A.asta new file mode 100644 index 0000000..c682bd7 Binary files /dev/null and b/UML/V2.1_Acme-Supermarket_DM_A.asta differ diff --git a/WorkSpace/Acme-Certifications/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Acme-Certifications/pom.properties b/WorkSpace/Acme-Certifications/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Acme-Certifications/pom.properties index 4da7b79..2d75d98 100644 --- a/WorkSpace/Acme-Certifications/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Acme-Certifications/pom.properties +++ b/WorkSpace/Acme-Certifications/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Acme-Certifications/pom.properties @@ -1,7 +1,7 @@ #Generated by Maven Integration for Eclipse -#Thu Nov 26 19:13:20 CET 2015 +#Mon Dec 21 13:43:45 CET 2015 version=1.0 groupId=Design-and-Testing m2e.projectName=Acme-Certifications -m2e.projectLocation=E\:\\Proyecto\\DP5Entrega\\WorkSpace\\Acme-Certifications +m2e.projectLocation=E\:\\Proyecto\\DP6Entrega\\WorkSpace\\Acme-Certifications artifactId=Acme-Certifications diff --git a/WorkSpace/Acme-Supermarket/README.txt b/WorkSpace/Acme-Supermarket/README.txt new file mode 100644 index 0000000..98dc9b7 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/README.txt @@ -0,0 +1,11 @@ +A continuación se detallan lo que hemos considerado aspectos importantes a tener en cuenta en nuestra implementación del proyecto y que no están reflejados en otras zonas del mismo: + +Respecto a las "queries": +-Query C/1: Aunque podría tener más sentido no tener en cuenta los "orders" cancelados, hemos decidido tener en cuenta todo tipo de "orders" que hayan sido creadas debido a que el enunciado pide exactamente los "orders placed", es decir, pedidos realizados, sin distinción alguna en cuanto a si han sido cancelados, entregados o cualquier estado del mismo. + +-Query B/5: Esta query referente al ratio la hemos interpretado como el número de pedidos cancelados en el mes actual entre el número de pedidos encargados dicho mes ("Placed" en el vocabulario del Statement). Según otras interpretaciones, podría entenderse entre el número de pedidos cancelados en el mes actual entre el número de pedidos encargados sin tener en cuenta la fecha de encargo. Esto nos pareció poco útil ya que en una cadena de gran tamaño a medida que pasase el tiempo el ratio sería muy próximo a cero, sirviendo el ratio de poco como método estadístico. + +-Query A/1: Se nos pide el item (o items) que tiene(o tengan) comentarios sin más. Sin embargo hemos visto oportuno filtrarlos no teniendo en cuenta aquellos items que hayan sido borrados (lo cuál sólo implica un cambio de valor en el atributo "deleted" de cada item). + +Respecto al D06-Controllers +- Nos hemos percatado que nos piden lo siguiente: "It’s very important that your “PopulateDatabase.xml” file provides at least six items and six contracts.". En el dominio de nuestro problema no hemos encontrado una equivalencia a los contracts con lo que hemos decidido interpretarlos como los pedidos (Orders). \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/AboutUsController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/AboutUsController.java new file mode 100644 index 0000000..2c4455b --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/AboutUsController.java @@ -0,0 +1,43 @@ +package controllers; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import domain.CustomizationInfo; + +import services.CustomizationInfoService; + +@Controller +@RequestMapping("/about-us") +public class AboutUsController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private CustomizationInfoService customizationInfoService; + + // Constructors ----------------------------------------------------------- + + public AboutUsController() { + super(); + } + + //About Us + + @RequestMapping(value = "/about-us") + public ModelAndView aboutUs(@RequestParam(required=false, defaultValue="94") int customizationInfoId){ + ModelAndView result; + CustomizationInfo customizationInfo; + + customizationInfo = customizationInfoService.findOne(customizationInfoId); + + result = new ModelAndView("about-us/about-us"); + result.addObject("customizationInfo", customizationInfo); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/AdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/AdministratorController.java deleted file mode 100644 index 4748585..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/java/controllers/AdministratorController.java +++ /dev/null @@ -1,49 +0,0 @@ -/* AdministratorController.java - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - * - */ - -package controllers; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -@Controller -@RequestMapping("/administrator") -public class AdministratorController extends AbstractController { - - // Constructors ----------------------------------------------------------- - - public AdministratorController() { - super(); - } - - // Action-1 --------------------------------------------------------------- - - @RequestMapping("/action-1") - public ModelAndView action1() { - ModelAndView result; - - result = new ModelAndView("administrator/action-1"); - - return result; - } - - // Action-2 --------------------------------------------------------------- - - @RequestMapping("/action-2") - public ModelAndView action2() { - ModelAndView result; - - result = new ModelAndView("administrator/action-2"); - - return result; - } - -} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/CommentController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/CommentController.java new file mode 100644 index 0000000..7a72a4f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/CommentController.java @@ -0,0 +1,122 @@ +package controllers; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ActorService; +import services.CommentService; +import services.ItemService; +import domain.Comment; +import domain.Item; + +@Controller +@RequestMapping("/comment") +public class CommentController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private CommentService commentService; + + @Autowired + private ItemService itemService; + + @Autowired + private ActorService actorService; + + + // Constructors -------------------------------------------------------- + + public CommentController() { + super(); + } + + + // Listing ------------------------------------------------------------ + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int itemId) { + ModelAndView result; + Collection comments; + Item item; + + item = itemService.findOne(itemId); + comments = commentService.findAllByItem(item); + + result = new ModelAndView("comment/list"); + result.addObject("comments", comments); + result.addObject("item", item); + result.addObject("requestURI", "comment/list.do"); + + return result; + } + + + // Creating -------------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(@RequestParam int itemId) { + ModelAndView result; + Comment comment; + Item item; + + item = itemService.findOne(itemId); + comment = commentService.createByItem(item); + result = createEditModelAndView(comment, item); + + return result; + } + + @RequestMapping(value="/create", method=RequestMethod.POST, params="save") + public ModelAndView save(@Valid Comment comment, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(comment, comment.getItem()); + } else { + try { + commentService.save(comment); + result = new ModelAndView("redirect:list.do?itemId=" + comment.getItem().getId()); + } catch (Throwable oops) { + result = createEditModelAndView(comment, comment.getItem(), "comment.commit.error"); + } + } + return result; + } + + + // Ancillary methods --------------------------------------------------- + + protected ModelAndView createEditModelAndView(Comment comment, Item item) { + ModelAndView result; + + result = createEditModelAndView(comment, item, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Comment comment, Item item, String message) { + ModelAndView result; + if(actorService.checkAuthority("ADMIN") || actorService.checkAuthority("CONSUMER") || actorService.checkAuthority("CLERK")){ + comment.setUserName(actorService.findByPrincipal().getName()); + }else{ + comment.setUserName("Anonymous"); + } + + result = new ModelAndView("comment/create"); + result.addObject("comment", comment); + result.addObject("item", item); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/CustomerController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/CustomerController.java deleted file mode 100644 index 2ce7ad7..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/java/controllers/CustomerController.java +++ /dev/null @@ -1,48 +0,0 @@ -/* CustomerController.java - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - * - */ - -package controllers; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -@Controller -@RequestMapping("/customer") -public class CustomerController extends AbstractController { - - // Constructors ----------------------------------------------------------- - - public CustomerController() { - super(); - } - - // Action-1 --------------------------------------------------------------- - - @RequestMapping("/action-1") - public ModelAndView action1() { - ModelAndView result; - - result = new ModelAndView("customer/action-1"); - - return result; - } - - // Action-2 --------------------------------------------------------------- - - @RequestMapping("/action-2") - public ModelAndView action2() { - ModelAndView result; - - result = new ModelAndView("customer/action-2"); - - return result; - } -} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/ItemController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/ItemController.java new file mode 100644 index 0000000..c961c43 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/ItemController.java @@ -0,0 +1,75 @@ +package controllers; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ExchangeRateService; +import services.ItemService; +import domain.ExchangeRate; +import domain.Item; + +@Controller +@RequestMapping(value = "/item") +public class ItemController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private ItemService itemService; + @Autowired + private ExchangeRateService exchangeRateService; + + // Constructors ---------------------------------------------------------- + + public ItemController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false, defaultValue="") String keyword, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection items; + Collection moneyList; + String keywordToFind; + ExchangeRate exchangeRate; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + items = itemService.findAll(); + + if (!keyword.equals("")) { + String[] keywordComoArray = keyword.split(" "); + for (int i = 0; i < keywordComoArray.length; i++) { + if (!keywordComoArray[i].equals("")) { + keywordToFind = keywordComoArray[i]; + items = itemService.findBySingleKeyword(keywordToFind); + break; + } + } + } + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + result = new ModelAndView("item/list"); + result.addObject("requestURI", "item/list.do?"); + result.addObject("items", items); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("keyword", keyword); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/ProfileController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/ProfileController.java deleted file mode 100644 index 0333df1..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/java/controllers/ProfileController.java +++ /dev/null @@ -1,50 +0,0 @@ -/* ProfileController.java - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - * - */ - -package controllers; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -@Controller -@RequestMapping("/profile") -public class ProfileController extends AbstractController { - - // Action-1 --------------------------------------------------------------- - - @RequestMapping("/action-1") - public ModelAndView action1() { - ModelAndView result; - - result = new ModelAndView("profile/action-1"); - - return result; - } - - // Action-2 --------------------------------------------------------------- - - @RequestMapping("/action-2") - public ModelAndView action2() { - ModelAndView result; - - result = new ModelAndView("profile/action-2"); - - return result; - } - - // Action-2 --------------------------------------------------------------- - - @RequestMapping("/action-3") - public ModelAndView action3() { - throw new RuntimeException("Oops! An exception was thrown."); - } - -} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/RegisterController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/RegisterController.java new file mode 100644 index 0000000..b31505a --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/RegisterController.java @@ -0,0 +1,93 @@ +package controllers; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import domain.Consumer; + +import services.ConsumerService; + +@Controller +@RequestMapping(value = "/consumer") +public class RegisterController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private ConsumerService consumerService; + + //Constructors ---------------------------------------------------------- + + public RegisterController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(){ + ModelAndView result; + Consumer consu; + + consu = consumerService.create(); + result = createEditModelAndView(consu); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Consumer consu, BindingResult binding){ + ModelAndView result; + boolean bindingError; + + if(binding.hasFieldErrors("folders")){ + bindingError = binding.getErrorCount() > 1; + }else{ + bindingError = binding.getErrorCount() > 0; + } + + if(bindingError){ + result = createEditModelAndView(consu); + } else { + try { + consumerService.save(consu); + result = new ModelAndView("redirect:../security/login.do"); + result.addObject("messageStatus", "consumer.commit.ok"); + + } catch (Throwable oops){ + result = createEditModelAndView(consu, "consumer.commit.error"); + } + } + + return result; + } + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Consumer consumer){ + ModelAndView result; + + result = createEditModelAndView(consumer, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Consumer consumer, String message){ + ModelAndView result; + + result = new ModelAndView("consumer/create"); + result.addObject("consumer", consumer); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/WelcomeController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/WelcomeController.java index 4506d04..974db49 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/controllers/WelcomeController.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/WelcomeController.java @@ -11,37 +11,110 @@ package controllers; import java.text.SimpleDateFormat; +import java.util.Collection; import java.util.Date; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; +import services.CustomizationInfoService; +import services.ExchangeRateService; +import services.ItemService; +import domain.CustomizationInfo; +import domain.ExchangeRate; +import domain.Item; + @Controller @RequestMapping("/welcome") public class WelcomeController extends AbstractController { - // Constructors ----------------------------------------------------------- + // Services ---------------------------------------------------------- + + @Autowired + private ItemService itemService; + + @Autowired + private ExchangeRateService exchangeRateService; + @Autowired + private CustomizationInfoService customizationInfoService; + + // Constructors ----------------------------------------------------------- + public WelcomeController() { super(); } - - // Index ------------------------------------------------------------------ + + // Index ------------------------------------------------------------------ @RequestMapping(value = "/index") - public ModelAndView index(@RequestParam(required=false, defaultValue="John Doe") String name) { + public ModelAndView index( + @RequestParam(required = false, defaultValue = "John Doe") String name, + @RequestParam(required = false) Integer exchangeRateId, + @CookieValue(value = "customizationInfo", required = false) CustomizationInfo customizationInfo, + @RequestParam(required = false) String customizationInfoId, + @RequestParam(required = false, defaultValue = "") String messageStatus, + HttpServletResponse response) { ModelAndView result; SimpleDateFormat formatter; String moment; - + ExchangeRate exchangeRate; + Collection moneyList; + Collection customizations; + int customId; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + customizations = customizationInfoService.findAll(); + + if (exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + Collection items; + Item item; + + items = itemService.findItemBestSelling(); + item = items.iterator().next(); + formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm"); moment = formatter.format(new Date()); - + result = new ModelAndView("welcome/index"); result.addObject("name", name); + result.addObject("item", item); result.addObject("moment", moment); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("customizations", customizations); + + if(messageStatus != ""){ + result.addObject("messageStatus", messageStatus); + } + + if(customizationInfo == null){ + customizationInfoId = "1"; + } + + if(customizationInfoId != null){ + customId = Integer.valueOf(customizationInfoId); + customizationInfo = customizationInfoService.findOne(customId); + response.addCookie(new Cookie("customLogo", customizationInfo.getLogo())); + response.addCookie(new Cookie("customName", customizationInfo.getName())); + response.addCookie(new Cookie("customDescrip", customizationInfo.getDescription())); + response.addCookie(new Cookie("customWelcome", customizationInfo.getWelcomeMessage())); + response.addCookie(new Cookie("customizationInfo", String.valueOf(customizationInfo.getId()))); + result = new ModelAndView("redirect:"); + } return result; } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/FolderActorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/FolderActorController.java new file mode 100644 index 0000000..ab186c4 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/FolderActorController.java @@ -0,0 +1,149 @@ +package controllers.actor; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ActorService; +import services.FolderService; + +import controllers.AbstractController; +import domain.Folder; + +@Controller +@RequestMapping(value = "/folder/actor") +public class FolderActorController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private FolderService folderService; + + @Autowired + private ActorService actorService; + + //Constructors ---------------------------------------------------------- + + public FolderActorController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(){ + ModelAndView result; + Collection folders; + + folders = folderService.findAllByActor(); + + result = new ModelAndView("folder/list"); + result.addObject("folders", folders); + result.addObject("requestURI", "folder/actor/list.do"); + + return result; + } + + // Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(){ + ModelAndView result; + Folder folder; + + folder = folderService.create(); + folder.setActor(actorService.findByPrincipal()); + + result = createEditModelAndView(folder); + + return result; + } + + // Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int folderId) { + + ModelAndView result; + Folder folder; + + folder = folderService.findOne(folderId); + Assert.notNull(folder); + + folderService.checkActor(folder); + + result = createEditModelAndView(folder); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Folder folder, BindingResult binding) { + ModelAndView result; + + folderService.checkActor(folder); + + if (binding.hasErrors()) { + result = createEditModelAndView(folder); + } else { + try { + folderService.save(folder); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(folder, "folder.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(@Valid Folder folder, BindingResult binding) { + ModelAndView result; + + folderService.checkActor(folder); + + if (binding.hasErrors()) { + result = createEditModelAndView(folder); + } else { + try { + folderService.delete(folder); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(folder, "folder.commit.error"); + } + } + + return result; + } + + // Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Folder folder) { + ModelAndView result; + + result = createEditModelAndView(folder, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Folder folder, String message){ + ModelAndView result; + + result = new ModelAndView("folder/edit"); + result.addObject("folder", folder); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/MessageActorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/MessageActorController.java new file mode 100644 index 0000000..8ba8626 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/actor/MessageActorController.java @@ -0,0 +1,235 @@ +package controllers.actor; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ActorService; +import services.FolderService; +import services.MessageService; + +import controllers.AbstractController; +import domain.Actor; +import domain.Folder; +import domain.Message; + +@Controller +@RequestMapping(value = "/message/actor") +public class MessageActorController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private MessageService messageService; + + @Autowired + private FolderService folderService; + + @Autowired + private ActorService actorService; + + //Constructors ---------------------------------------------------------- + + public MessageActorController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int folderId){ + ModelAndView result; + Collection messages; + Folder folder; + + folder = folderService.findOne(folderId); + + folderService.checkActor(folder); + + messages = messageService.findAllByFolder(folder); + + result = new ModelAndView("message/list"); + result.addObject("messa", messages); + result.addObject("folder", folder); + result.addObject("requestURI", "message/actor/list.do"); + + return result; + } + + @RequestMapping(value = "/display", method = RequestMethod.GET) + public ModelAndView display(@RequestParam int messageId){ + ModelAndView result; + Message messa; + Collection folders; + + messa = messageService.findOne(messageId); + folders = folderService.findByMessageAndActualActor(messa); + + result = new ModelAndView("message/display"); + result.addObject("messa", messa); + result.addObject("folders", folders); + + return result; + } + + + // Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(){ + ModelAndView result; + Message message; + + message = messageService.create(); + + message.setSender(actorService.findByPrincipal()); + + result = createSendModelAndView(message); + + return result; + } + + @RequestMapping(value = "/create", method = RequestMethod.POST, params = "send") + public ModelAndView save(@Valid Message message, BindingResult binding) { + ModelAndView result; + int sendId, actId; + + + sendId = message.getSender().getUserAccount().getId(); + actId = actorService.findByPrincipal().getUserAccount().getId(); + + Assert.isTrue(sendId == actId); + + + if (binding.hasErrors()) { + result = createSendModelAndView(message); + } else { + try { + messageService.firstSave(message); + result = new ModelAndView("redirect:../../folder/actor/list.do"); + } catch (Throwable oops) { + result = createSendModelAndView(message, "message.commit.error"); + } + } + + return result; + } + + // Edition ---------------------------------------------------------- + + @RequestMapping(value = "/delete", method = RequestMethod.GET) + public ModelAndView removeFromFolder(@RequestParam int messageId, @RequestParam int folderId){ + ModelAndView result; + Message message; + Folder folder; + + message = messageService.findOne(messageId); + + folder = folderService.findOne(folderId); + + messageService.deleteMessageFromFolder(message, folder); + + result = new ModelAndView("redirect:../../folder/actor/list.do"); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView addFolder(@RequestParam int messageId){ + ModelAndView result; + Message message; + + message = messageService.findOne(messageId); + + result = createEditModelAndView(message); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView addFolderSave(@Valid Message message, BindingResult binding){ + ModelAndView result; + int actId; + Collection folders; + + actId = actorService.findByPrincipal().getUserAccount().getId(); + + if (binding.hasErrors()) { + result = createEditModelAndView(message); + } else { + try { + folders = message.getFolders(); + for(Folder a:folders){ + if(!a.getMessages().contains(message)){ + Assert.isTrue(a.getActor().getUserAccount().getId() == actId); + + a.addMessage(message); + folderService.save(a); + } + } + result = new ModelAndView("redirect:/message/actor/display.do?messageId=" + message.getId()); + } catch (Throwable oops) { + result = createEditModelAndView(message, "message.commit.error"); + } + } + return result; + } + + + + // Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createSendModelAndView(Message input) { + ModelAndView result; + + result = createSendModelAndView(input, null); + + return result; + } + + protected ModelAndView createSendModelAndView(Message input, String message){ + ModelAndView result; + Collection actors; + + actors = actorService.findAll(); + + result = new ModelAndView("message/create"); + result.addObject("messa", input); + result.addObject("actors", actors); + result.addObject("message", message); + + return result; + } + + protected ModelAndView createEditModelAndView(Message input) { + ModelAndView result; + + result = createEditModelAndView(input, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Message input, String message){ + ModelAndView result; + Collection folders; + + folders = folderService.findAllByActor(); + + result = new ModelAndView("message/edit"); + result.addObject("messa", input); + result.addObject("foldersActor", folders); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CategoryAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CategoryAdministratorController.java new file mode 100644 index 0000000..102e624 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CategoryAdministratorController.java @@ -0,0 +1,139 @@ +package controllers.administrator; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.CategoryService; +import services.TaxService; +import controllers.AbstractController; +import domain.Category; +import domain.Tax; + +@Controller +@RequestMapping(value = "/category/administrator") +public class CategoryAdministratorController extends AbstractController { + + //Services ---------------------------------------------------------- + + @Autowired + private CategoryService categoryService; + + @Autowired + private TaxService taxService; + + //Constructors ---------------------------------------------------------- + + public CategoryAdministratorController() { + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Collection categories; + + categories = categoryService.findAll(); + + result = new ModelAndView("category/list"); + result.addObject("requestURI", "category/administrator/list.do"); + result.addObject("categories", categories); + + return result; + } + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create() { + ModelAndView result; + Category category; + + category = categoryService.create(); + result = createEditModelAndView(category); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int categoryId) { + ModelAndView result; + Category category; + + category = categoryService.findOne(categoryId); + Assert.notNull(category); + result = createEditModelAndView(category); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Category category, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(category); + } else { + try { + categoryService.save(category); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(category, "category.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(Category category, BindingResult binding) { + ModelAndView result; + + try { + categoryService.delete(category); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(category, + "category.commit.error"); + } + + return result; + } + + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Category category) { + ModelAndView result; + + result = createEditModelAndView(category, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Category category, String message) { + ModelAndView result; + Collection taxes; + + taxes = taxService.findAll(); + + result = new ModelAndView("category/edit"); + result.addObject("category", category); + result.addObject("taxes", taxes); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ClerkAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ClerkAdministratorController.java new file mode 100644 index 0000000..4fe7ee2 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ClerkAdministratorController.java @@ -0,0 +1,96 @@ +package controllers.administrator; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import services.ClerkService; + +import controllers.AbstractController; +import domain.Clerk; + +@Controller +@RequestMapping(value = "/clerk/administrator") +public class ClerkAdministratorController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private ClerkService clerkService; + + //Constructors ---------------------------------------------------------- + + public ClerkAdministratorController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(){ + ModelAndView result; + Clerk clerk; + + clerk = clerkService.create(); + result = createEditModelAndView(clerk); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Clerk clerk, BindingResult binding){ + ModelAndView result; + boolean bindingError; + + if(binding.hasFieldErrors("folders")){ + bindingError = binding.getErrorCount() > 1; + }else{ + bindingError = binding.getErrorCount() > 0; + } + + if(bindingError){ + result = createEditModelAndView(clerk); + } else { + try { + clerkService.save(clerk); + result = new ModelAndView("redirect:../.."); + result.addObject("messageStatus", "clerk.commit.ok"); + } catch (Throwable oops){ + System.out.println("Error oops: "+ oops); + result = createEditModelAndView(clerk, "clerk.commit.error"); + } + } + + return result; + } + + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Clerk clerk) { + ModelAndView result; + + result = createEditModelAndView(clerk, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Clerk clerk, String message){ + ModelAndView result; + + result = new ModelAndView("clerk/create"); + result.addObject("clerk", clerk); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CommentAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CommentAdministratorController.java new file mode 100644 index 0000000..ab75991 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/CommentAdministratorController.java @@ -0,0 +1,85 @@ +package controllers.administrator; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.CommentService; +import controllers.AbstractController; +import domain.Comment; +import domain.Item; + +@Controller +@RequestMapping("/comment/administrator") +public class CommentAdministratorController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private CommentService commentService; + + + // Constructors -------------------------------------------------------- + + public CommentAdministratorController() { + super(); + } + + // Deleting -------------------------------------------------------------- + + @RequestMapping(value = "/delete", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int commentId) { + ModelAndView result; + Comment comment; + + comment = commentService.findOne(commentId); + Assert.notNull(comment); + result = createEditModelAndView(comment, comment.getItem()); + + return result; + } + + @RequestMapping( + value = "/delete", method = RequestMethod.POST, params = "delete") + public ModelAndView delete( + Comment comment, BindingResult binding) { + ModelAndView result; + int itemId; + + try { + itemId = comment.getItem().getId(); + commentService.delete(comment); + result = new ModelAndView("redirect:/comment/list.do?itemId=" + itemId); + } catch (Throwable oops) { + result = createEditModelAndView(comment, comment.getItem(), "comment.commit.error"); + } + return result; + } + + // Ancillary methods --------------------------------------------------- + + protected ModelAndView createEditModelAndView(Comment comment, Item item) { + ModelAndView result; + + result = createEditModelAndView(comment, item, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Comment comment, Item item, String message) { + ModelAndView result; + + result = new ModelAndView("comment/delete"); + result.addObject("comment", comment); + result.addObject("item", item); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ConsumerAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ConsumerAdministratorController.java new file mode 100644 index 0000000..0ae9965 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ConsumerAdministratorController.java @@ -0,0 +1,56 @@ +package controllers.administrator; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import services.ConsumerService; + +import controllers.AbstractController; +import domain.Consumer; + +@Controller +@RequestMapping(value = "/consumer/administrator") +public class ConsumerAdministratorController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private ConsumerService consumerService; + + //Constructors ---------------------------------------------------------- + + public ConsumerAdministratorController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(){ + ModelAndView result; + Collection consumers; + + consumers = consumerService.findAll(); + + result = new ModelAndView("consumer/list"); + result.addObject("consumers", consumers); + result.addObject("requestURI", "consumer/administrator/list.do"); + + return result; + } + + + //Creation ---------------------------------------------------------- + + + //Edition ---------------------------------------------------------- + + + //Ancillary Methods ---------------------------------------------------------- + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/DashboardAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/DashboardAdministratorController.java new file mode 100644 index 0000000..ac7914e --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/DashboardAdministratorController.java @@ -0,0 +1,89 @@ +package controllers.administrator; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import services.ClerkService; +import services.ConsumerService; +import services.ItemService; +import services.OrderService; +import controllers.AbstractController; +import domain.Clerk; +import domain.Consumer; +import domain.Item; + +@Controller +@RequestMapping("/dashboard/administrator") +public class DashboardAdministratorController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private ConsumerService consumerService; + + @Autowired + private ItemService itemService; + + @Autowired + private ClerkService clerkService; + + @Autowired + private OrderService orderService; + + + // Constructors -------------------------------------------------------- + + public DashboardAdministratorController() { + super(); + } + + + // Listing ------------------------------------------------------------ + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Collection consumerMoreOrders; + Collection consumerSpentMoreMoney; + Collection bestSellingItem; + Collection worstSellingItem; + Collection clerkMoreOrders; + Collection clerkLessOrders; + Collection consumerCancelledMoreOrders; + Collection consumerCancelledLessOrders; + double ratioCancelledCurrentMonth; + Collection itemMoreComment; + + consumerMoreOrders = consumerService.findConsumerMoreOrders(); + consumerSpentMoreMoney = consumerService.findConsumerSpentMoreMoney(); + bestSellingItem = itemService.findItemBestSelling(); + worstSellingItem = itemService.findItemWorstSelling(); + clerkMoreOrders = clerkService.findClerkServedMoreOrders(); + clerkLessOrders = clerkService.findClerkServedLessOrders(); + consumerCancelledMoreOrders = consumerService.findConsumerMoreOrdersCancelled(); + consumerCancelledLessOrders = consumerService.findConsumerLessOrdersCancelled(); + ratioCancelledCurrentMonth = orderService.rateOrderCancelled(); + itemMoreComment = itemService.findItemMoreComments(); + + result = new ModelAndView("administrator/list"); + result.addObject("consumerMoreOrders", consumerMoreOrders); + result.addObject("consumerSpentMoreMoney", consumerSpentMoreMoney); + result.addObject("bestSellingItem", bestSellingItem); + result.addObject("worstSellingItem", worstSellingItem); + result.addObject("clerkMoreOrders", clerkMoreOrders); + result.addObject("clerkLessOrders", clerkLessOrders); + result.addObject("consumerCancelledMoreOrders", consumerCancelledMoreOrders); + result.addObject("consumerCancelledLessOrders", consumerCancelledLessOrders); + result.addObject("ratioCancelledCurrentMonth", ratioCancelledCurrentMonth); + result.addObject("itemMoreComment", itemMoreComment); + result.addObject("requestURI", "administrator/list.do"); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ItemAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ItemAdministratorController.java new file mode 100644 index 0000000..cbc4a7b --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/ItemAdministratorController.java @@ -0,0 +1,171 @@ +package controllers.administrator; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.CategoryService; +import services.ExchangeRateService; +import services.ItemService; + + +import controllers.AbstractController; +import domain.Category; +import domain.ExchangeRate; +import domain.Item; + +@Controller +@RequestMapping(value = "/item/administrator") +public class ItemAdministratorController extends AbstractController { + + //Services ---------------------------------------------------------- + + @Autowired + private ItemService itemService; + + @Autowired + private CategoryService categoryService; + + @Autowired + private ExchangeRateService exchangeRateService; + //Constructors ---------------------------------------------------------- + + public ItemAdministratorController() { + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false, defaultValue="") String keyword, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection items; + Collection moneyList; + String keywordToFind; + ExchangeRate exchangeRate; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + items = itemService.findAll(); + + if (!keyword.equals("")) { + String[] keywordComoArray = keyword.split(" "); + for (int i = 0; i < keywordComoArray.length; i++) { + if (!keywordComoArray[i].equals("")) { + keywordToFind = keywordComoArray[i]; + items = itemService.findBySingleKeyword(keywordToFind); + break; + } + } + } + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + result = new ModelAndView("item/list"); + result.addObject("requestURI", "item/administrator/list.do?"); + result.addObject("items", items); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("keyword", keyword); + + return result; + } + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create() { + ModelAndView result; + Item item; + + item = itemService.create(); + result = createEditModelAndView(item); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int itemId) { + ModelAndView result; + Item item; + + item = itemService.findOne(itemId); + Assert.notNull(item); + result = createEditModelAndView(item); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Item item, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(item); + } else { + try { + itemService.save(item); + result = new ModelAndView("redirect:list.do?keyword="); + } catch (Throwable oops) { + result = createEditModelAndView(item, "item.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(Item item, BindingResult binding) { + ModelAndView result; + + try { + itemService.delete(item); + result = new ModelAndView("redirect:list.do?keyword="); + } catch (Throwable oops) { + result = createEditModelAndView(item, + "item.commit.error"); + } + + return result; + } + + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Item item) { + ModelAndView result; + + result = createEditModelAndView(item, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Item item, String message) { + ModelAndView result; + Collection categories; + + categories = categoryService.findAll(); + + result = new ModelAndView("item/edit"); + result.addObject("item", item); + result.addObject("categories", categories); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/OrderAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/OrderAdministratorController.java new file mode 100644 index 0000000..164dd97 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/OrderAdministratorController.java @@ -0,0 +1,75 @@ +package controllers.administrator; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ExchangeRateService; +import services.OrderService; + +import controllers.AbstractController; +import domain.ExchangeRate; +import domain.Order; + +@Controller +@RequestMapping(value = "/order/administrator") +public class OrderAdministratorController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private OrderService orderService; + + @Autowired + private ExchangeRateService exchangeRateService; + + //Constructors ---------------------------------------------------------- + + public OrderAdministratorController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false) Integer exchangeRateId){ + ModelAndView result; + Collection orders; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + orders = orderService.findAll(); + + result = new ModelAndView("order/list"); + result.addObject("orders", orders); + result.addObject("requestURI", "order/administrator/list.do"); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + + return result; + } + + + //Creation ---------------------------------------------------------- + + + //Edition ---------------------------------------------------------- + + + //Ancillary Methods ---------------------------------------------------------- + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/StorageAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/StorageAdministratorController.java new file mode 100644 index 0000000..ddc9df8 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/StorageAdministratorController.java @@ -0,0 +1,163 @@ +package controllers.administrator; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ExchangeRateService; +import services.ItemService; +import services.StorageService; +import services.WareHouseService; +import controllers.AbstractController; +import domain.ExchangeRate; +import domain.Item; +import domain.Storage; +import domain.WareHouse; + +@Controller +@RequestMapping(value = "/storage/administrator") +public class StorageAdministratorController extends AbstractController { + + // Services ---------------------------------------------------------- + @Autowired + private StorageService storageService; + + @Autowired + private WareHouseService wareHouseService; + + @Autowired + private ItemService itemService; + + @Autowired + private ExchangeRateService exchangeRateService; + + // Constructors ---------------------------------------------------------- + + public StorageAdministratorController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int warehouseId, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection storages; + boolean byWarehouse; + WareHouse warehouse; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + byWarehouse = true; + storages = storageService.findAllByWarehouseId(warehouseId); + warehouse = wareHouseService.findOne(warehouseId); + + result = new ModelAndView("storage/list"); + result.addObject("requestURI", "storage/administrator/list.do"); + result.addObject("byWarehouse", byWarehouse); + result.addObject("storages", storages); + result.addObject("warehouseId", warehouseId); + result.addObject("warehouse", warehouse); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + + return result; + } + + // Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(@RequestParam int warehouseId){ + ModelAndView result; + Storage storage; + WareHouse wareHouse; + + wareHouse = wareHouseService.findOne(warehouseId); + storage = storageService.create(); + storage.setWareHouse(wareHouse); + + result = createEditModelAndView(storage); + + return result; + } + + // Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int storageId){ + ModelAndView result; + Storage stora; + + stora = storageService.findOne(storageId); + + Assert.notNull(stora); + + result = createEditModelAndView(stora); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Storage stora, BindingResult binding){ + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(stora); + } else { + try { + storageService.updateQuantityByWareHouseAndItem(stora.getWareHouse(), stora.getItem(), stora.getUnits()); + result = new ModelAndView("redirect:list.do?warehouseId=" + stora.getWareHouse().getId()); + } catch (Throwable oops) { + result = createEditModelAndView(stora, "storage.commit.error"); + } + } + + return result; + } + + + // Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Storage storage) { + ModelAndView result; + + result = createEditModelAndView(storage, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Storage storage, String message) { + ModelAndView result; + Collection items; + Collection warehouses; + + items = itemService.findAll(); + warehouses = wareHouseService.findAll(); + + result = new ModelAndView("storage/edit"); + result.addObject("storage", storage); + result.addObject("items", items); + result.addObject("warehouses", warehouses); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/TaxAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/TaxAdministratorController.java new file mode 100644 index 0000000..cde092d --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/TaxAdministratorController.java @@ -0,0 +1,129 @@ +package controllers.administrator; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.TaxService; +import controllers.AbstractController; +import domain.Tax; + +@Controller +@RequestMapping(value = "/tax/administrator") +public class TaxAdministratorController extends AbstractController { + //Services ---------------------------------------------------------- + + @Autowired + private TaxService taxService; + + //Constructors ---------------------------------------------------------- + + public TaxAdministratorController() { + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Collection taxes; + + taxes = taxService.findAll(); + + result = new ModelAndView("tax/list"); + result.addObject("requestURI", "tax/administrator/list.do"); + result.addObject("taxes", taxes); + + return result; + } + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create() { + ModelAndView result; + Tax tax; + + tax = taxService.create(); + result = createEditModelAndView(tax); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int taxId) { + ModelAndView result; + Tax tax; + + tax = taxService.findOne(taxId); + Assert.notNull(tax); + result = createEditModelAndView(tax); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Tax tax, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(tax); + } else { + try { + taxService.save(tax); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(tax, "tax.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(Tax tax, BindingResult binding) { + ModelAndView result; + + try { + taxService.delete(tax); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(tax, + "tax.commit.error"); + } + + return result; + } + + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(Tax tax) { + ModelAndView result; + + result = createEditModelAndView(tax, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Tax tax, String message) { + ModelAndView result; + + result = new ModelAndView("tax/edit"); + result.addObject("tax", tax); + result.addObject("message", message); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/WarehouseAdministratorController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/WarehouseAdministratorController.java new file mode 100644 index 0000000..76a6a27 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/administrator/WarehouseAdministratorController.java @@ -0,0 +1,140 @@ +package controllers.administrator; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.WareHouseService; + +import controllers.AbstractController; +import domain.WareHouse; + +@Controller +@RequestMapping(value = "/warehouse/administrator") +public class WarehouseAdministratorController extends AbstractController { + + // Services ---------------------------------------------------------- + @Autowired + private WareHouseService wareHouseService; + + // Constructors ---------------------------------------------------------- + + public WarehouseAdministratorController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Collection warehouses; + + warehouses = wareHouseService.findAll(); + result = new ModelAndView("warehouse/list"); + result.addObject("requestURI", "warehouse/administrator/list.do"); + result.addObject("warehouses", warehouses); + + return result; + } + + // Creation ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(){ + ModelAndView result; + WareHouse warehouse; + + warehouse = wareHouseService.create(); + + result = createEditModelAndView(warehouse); + + return result; + } + + // Edition ---------------------------------------------------------- + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int warehouseId) { + + ModelAndView result; + WareHouse wareHouse; + + wareHouse = wareHouseService.findOne(warehouseId); + Assert.notNull(wareHouse); + result = createEditModelAndView(wareHouse); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid WareHouse wareHouse, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(wareHouse); + } else { + try { + wareHouseService.save(wareHouse); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(wareHouse, "warehouse.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(@Valid WareHouse wareHouse, BindingResult binding) { + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(wareHouse); + } else { + try { + wareHouseService.delete(wareHouse); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + if(oops.getMessage().equals("The warehouse isn't empty")){ + result = createEditModelAndView(wareHouse, "warehouse.commit.error.notempty"); + }else{ + result = createEditModelAndView(wareHouse, "warehouse.commit.error"); + } + + } + } + + return result; + } + + // Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(WareHouse warehouse) { + ModelAndView result; + + result = createEditModelAndView(warehouse, null); + + return result; + } + + protected ModelAndView createEditModelAndView(WareHouse warehouse, String message){ + ModelAndView result; + + result = new ModelAndView("warehouse/edit"); + result.addObject("warehouse", warehouse); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/ItemClerkController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/ItemClerkController.java new file mode 100644 index 0000000..8577bf4 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/ItemClerkController.java @@ -0,0 +1,85 @@ +package controllers.clerk; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ExchangeRateService; +import services.ItemService; + + +import controllers.AbstractController; +import domain.ExchangeRate; +import domain.Item; + +@Controller +@RequestMapping(value = "/item/clerk") +public class ItemClerkController extends AbstractController { + + //Services ---------------------------------------------------------- + + @Autowired + private ItemService itemService; + + @Autowired + private ExchangeRateService exchangeRateService; + + //Constructors ---------------------------------------------------------- + + public ItemClerkController() { + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false, defaultValue="") String keyword, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection items; + Collection moneyList; + String keywordToFind; + ExchangeRate exchangeRate; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + items = itemService.findAll(); + + if (!keyword.equals("")) { + String[] keywordComoArray = keyword.split(" "); + for (int i = 0; i < keywordComoArray.length; i++) { + if (!keywordComoArray[i].equals("")) { + keywordToFind = keywordComoArray[i]; + items = itemService.findBySingleKeyword(keywordToFind); + break; + } + } + } + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + result = new ModelAndView("item/list"); + result.addObject("requestURI", "item/clerk/list.do?"); + result.addObject("items", items); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("keyword", keyword); + + return result; + } + + //Creation ---------------------------------------------------------- + + //Edition ---------------------------------------------------------- + + //Ancillary Methods ---------------------------------------------------------- +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderClerkController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderClerkController.java new file mode 100644 index 0000000..f74a1a7 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderClerkController.java @@ -0,0 +1,106 @@ +package controllers.clerk; + +import java.util.Collection; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ClerkService; +import services.ExchangeRateService; +import services.OrderService; +import controllers.AbstractController; +import domain.Clerk; +import domain.ExchangeRate; +import domain.Order; + +@Controller +@RequestMapping(value = "/order/clerk") +public class OrderClerkController extends AbstractController{ + + //Services ---------------------------------------------------------- + + @Autowired + private OrderService orderService; + + @Autowired + private ClerkService clerkService; + + @Autowired + private ExchangeRateService exchangeRateService; + + //Constructors ---------------------------------------------------------- + + public OrderClerkController(){ + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false, defaultValue="") String messageStatus, @RequestParam(required=false) Integer exchangeRateId){ + ModelAndView result; + Collection orders; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + orders = orderService.findAllNotAssigned(); + orders.addAll(orderService.findAllByClerk()); + + result = new ModelAndView("order/list"); + result.addObject("requestURI", "order/clerk/list.do"); + result.addObject("orders", orders); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + + if(messageStatus != ""){ + result.addObject("messageStatus", messageStatus); + } + + return result; + } + + //Assign ---------------------------------------------------------- + + @RequestMapping(value = "/self-assign", method = RequestMethod.GET) + public ModelAndView assign(@RequestParam int orderId){ + ModelAndView result; + Clerk clerk ; + Order order; + + try{ + order = orderService.findOne(orderId); + Assert.notNull(order); + clerk = clerkService.findByprincipal(); + Assert.notNull(clerk); + + orderService.assignToClerkManual(clerk, order); + result = new ModelAndView("redirect: list.do"); + result.addObject("messageStatus", "order.self-assign.ok"); + } catch (Throwable ops){ + result = new ModelAndView("redirect: list.do"); + result.addObject("messageStatus", "order.self-assign.error"); + + + } + return result; + } + + //Edition ---------------------------------------------------------- + + //Ancillary Methods ---------------------------------------------------------- +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderItemClerkController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderItemClerkController.java new file mode 100644 index 0000000..377cf8f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/OrderItemClerkController.java @@ -0,0 +1,213 @@ +package controllers.clerk; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ExchangeRateService; +import services.ItemService; +import services.OrderItemService; +import services.OrderService; +import services.WareHouseService; +import controllers.AbstractController; +import domain.ExchangeRate; +import domain.Item; +import domain.Order; +import domain.OrderItem; +import domain.WareHouse; + +@Controller +@RequestMapping(value = "/order-item/clerk") +public class OrderItemClerkController extends AbstractController { + + + //Services ---------------------------------------------------------- + + @Autowired + private OrderItemService orderItemService; + + @Autowired + private WareHouseService warehouseService; + + @Autowired + private ItemService itemService; + + @Autowired + private OrderService orderService; + + @Autowired + private ExchangeRateService exchangeRateService; + + //Constructors ---------------------------------------------------------- + + public OrderItemClerkController() { + super(); + } + + //Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int orderId, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection ordersItem; + Order order; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + order = orderService.findOne(orderId); + ordersItem = orderItemService.findAllByOrderId(orderId); + + result = new ModelAndView("order-item/list"); + result.addObject("requestURI", "order-item/clerk/list.do"); + result.addObject("orders-item", ordersItem); + result.addObject("order", order); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("orderId", orderId); + + return result; + } + + @RequestMapping(value = "/confirm", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int orderId, @RequestParam int warehouseId) { + ModelAndView result; + String warehouse; + + warehouse = warehouseService.findOne(warehouseId).getName(); + + + result = new ModelAndView("order-item/confirm"); + result.addObject("requestURI", "order-item/clerk/confirm.do"); + result.addObject("warehouse", warehouse); + result.addObject("orderId", orderId); + + return result; + } + + //Creation ---------------------------------------------------------- + + @RequestMapping(value = "/serve", method = RequestMethod.GET) + public ModelAndView create(@RequestParam int orderItemId) { + ModelAndView result; + OrderItem orderItem; + + orderItem = orderItemService.findOne(orderItemId); + Assert.notNull(orderItem); + + result = createEditModelAndView(orderItem); + + return result; + } + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/serve", method = RequestMethod.POST, params = "serve") + public ModelAndView save(@Valid OrderItem orderItem, @RequestParam String unitsToServe, BindingResult binding) { + ModelAndView result; + Order order; + Item item; + String sku; + int orderId; + int warehouseId; + WareHouse warehouse; + int units; + + + + warehouse = null; + + orderId = orderItem.getOrder().getId(); + sku = orderItem.getSku(); + + order = orderItem.getOrder(); + item = itemService.findOneBySKU(sku); + + if (binding.hasErrors()) { + result = createEditModelAndView(orderItem); + } else { + try { + units = Integer.parseInt(unitsToServe); + + warehouse = warehouseService.addItemToOrderItem(item, units, + order); + warehouseId = warehouse.getId(); + result = new ModelAndView("redirect:confirm.do?orderId=" + + orderId + "&warehouseId=" + warehouseId); + } catch (NumberFormatException oops) { + result = createEditModelAndView(orderItem, + "orderItem.commit.error.quantity"); + } catch (Throwable oops) { + System.out.println(oops); + if (oops.getMessage().equals( + "No hay suficientes unidades en los almacenes")) { + result = createEditModelAndView(orderItem, + "orderItem.commit.error.warehouse"); + + } else { + result = createEditModelAndView(orderItem, + "orderItem.commit.error"); + } + } + } + return result; + } + + //Ancillary Methods ---------------------------------------------------------- + + protected ModelAndView createEditModelAndView(OrderItem orderItem) { + ModelAndView result; + + result = createEditModelAndView(orderItem, null); + + return result; + } + + protected ModelAndView createEditModelAndView(OrderItem orderItem, String message) { + ModelAndView result; + int units; + int unitsServed; + int orderId; + + Order order; + Item item; + + units = orderItem.getUnits(); + unitsServed = orderItem.getUnitsServed(); + orderId = orderItem.getOrder().getId(); + + order = orderService.findOne(orderItem.getOrder().getId()); + item = itemService.findOneBySKU(orderItem.getSku()); + + result = new ModelAndView("order-item/serve"); + result.addObject("orderItem", orderItem); + result.addObject("message", message); + result.addObject("unitsNum", units); + result.addObject("unitsServedNum", unitsServed); + result.addObject("orderId", orderId); + + result.addObject("order", order); + result.addObject("item", item); + + + return result; + } +} + diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/StorageClerkController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/StorageClerkController.java new file mode 100644 index 0000000..91b52a9 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/StorageClerkController.java @@ -0,0 +1,104 @@ +package controllers.clerk; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ItemService; +import services.ExchangeRateService; +import services.StorageService; +import services.WareHouseService; +import controllers.AbstractController; +import domain.Item; +import domain.ExchangeRate; +import domain.Storage; +import domain.WareHouse; + +@Controller +@RequestMapping(value = "/storage/clerk") +public class StorageClerkController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private StorageService storageService; + + @Autowired + private WareHouseService warehouseService; + + @Autowired + private ItemService itemService; + + @Autowired + private ExchangeRateService exchangeRateService; + + // Constructors ---------------------------------------------------------- + + public StorageClerkController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView listByWarehouse(@RequestParam Integer warehouseId, @RequestParam Integer itemId, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection storages; + boolean byWarehouse; + boolean byItem; + WareHouse warehouse; + Item item; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + if(warehouseId != null) { + byWarehouse = true; + + warehouse = warehouseService.findOne(warehouseId); + storages = storageService.findAllByWarehouseId(warehouseId); + result = new ModelAndView("storage/list"); + result.addObject("requestURI", "storage/clerk/list.do"); + result.addObject("storages", storages); + result.addObject("byWarehouse", byWarehouse); + result.addObject("warehouse", warehouse); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("warehouseId", warehouseId); + } else { + byItem = true; + + item = itemService.findOne(itemId); + storages = storageService.findAllByItemId(itemId); + result = new ModelAndView("storage/list"); + result.addObject("requestURI", "storage/clerk/list.do"); + result.addObject("storages", storages); + result.addObject("byItem", byItem); + result.addObject("item", item); + } + + + + return result; + } + + // Creation ---------------------------------------------------------- + + // Edition ---------------------------------------------------------- + + // Ancillary Methods ---------------------------------------------------------- + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/WarehouseClerkController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/WarehouseClerkController.java new file mode 100644 index 0000000..5585a37 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/clerk/WarehouseClerkController.java @@ -0,0 +1,51 @@ +package controllers.clerk; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import services.WareHouseService; + +import controllers.AbstractController; +import domain.WareHouse; + +@Controller +@RequestMapping(value = "/warehouse/clerk") +public class WarehouseClerkController extends AbstractController { + + // Services ---------------------------------------------------------- + @Autowired + private WareHouseService warehouseService; + + // Constructors ---------------------------------------------------------- + + public WarehouseClerkController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Collection warehouses; + + warehouses = warehouseService.findAll(); + result = new ModelAndView("warehouse/list"); + result.addObject("requestURI", "warehouse/clerk/list.do"); + result.addObject("warehouses", warehouses); + + return result; + } + + // Creation ---------------------------------------------------------- + + // Edition ---------------------------------------------------------- + + // Ancillary Methods ---------------------------------------------------------- + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ContentConsumerController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ContentConsumerController.java new file mode 100644 index 0000000..0c9871a --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ContentConsumerController.java @@ -0,0 +1,147 @@ +package controllers.consumer; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import services.ConsumerService; +import services.ContentService; +import services.ExchangeRateService; + +import controllers.AbstractController; +import domain.Consumer; +import domain.Content; +import domain.Item; +import domain.ExchangeRate; + +@Controller +@RequestMapping(value = "/content/consumer") +public class ContentConsumerController extends AbstractController{ + + // Services ---------------------------------------------------------- + @Autowired + private ContentService contentService; + @Autowired + private ConsumerService consumerService; + + @Autowired + private ExchangeRateService exchangeRateService; + + // Constructors ---------------------------------------------------------- + + public ContentConsumerController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam int shoppingCartId, @RequestParam(required=false) Integer exchangeRateId) { + ModelAndView result; + Collection contents; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + contents = contentService.findByShoppingCart(shoppingCartId); + result = new ModelAndView("content/list"); + result.addObject("requestURI", "content/consumer/list.do"); + result.addObject("contents", contents); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("shoppingCartId", shoppingCartId); + + return result; + } + + // Edition ---------------------------------------------------------- + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int contentId){ + ModelAndView result; + Content content; + + content = contentService.findOneByContentId(contentId); + Assert.notNull(content); + result = createEditModelAndView(content); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Content content, BindingResult binding){ + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(content); + } else { + try { + contentService.save(content); + result = new ModelAndView("redirect:list.do?shoppingCartId=" + content.getShoppingCart().getId()); + } catch (Throwable oops) { + result = createEditModelAndView(content, "content.commit.error"); + } + } + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "delete") + public ModelAndView delete(Content content, BindingResult binding){ + ModelAndView result; + Consumer actualConsumer; + + actualConsumer = content.getShoppingCart().getConsumer(); + + try{ + Assert.isTrue(actualConsumer.equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can delete its content"); + contentService.deleteComplete(content); + result = new ModelAndView("redirect:list.do?shoppingCartId=" + content.getShoppingCart().getId()); + }catch(Throwable oops){ + result = createEditModelAndView(content, "content.commit.error"); + } + + return result; + } + + // Ancilary methods ------------------------------------------------- + protected ModelAndView createEditModelAndView(Content content) { + ModelAndView result; + + result = createEditModelAndView(content, null); + + return result; + } + + protected ModelAndView createEditModelAndView(Content content, String message){ + ModelAndView result; + Item item; + + item = content.getItem(); + + result = new ModelAndView("content/edit"); + result.addObject("content", content); + result.addObject("item", item); + result.addObject("message", message); + + return result; + } + + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ItemConsumerController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ItemConsumerController.java new file mode 100644 index 0000000..3232f34 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ItemConsumerController.java @@ -0,0 +1,116 @@ +package controllers.consumer; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import controllers.AbstractController; + +import services.ConsumerService; +import services.ExchangeRateService; +import services.ItemService; +import services.ShoppingCartService; +import domain.Consumer; +import domain.ExchangeRate; +import domain.Item; +import domain.ShoppingCart; + +@Controller +@RequestMapping(value = "/item/consumer") +public class ItemConsumerController extends AbstractController { + + // Services ---------------------------------------------------------- + + @Autowired + private ItemService itemService; + + @Autowired + private ShoppingCartService shoppingCartService; + + @Autowired + private ConsumerService consumerService; + + @Autowired + private ExchangeRateService exchangeRateService; + + // Constructors ---------------------------------------------------------- + + public ItemConsumerController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false, defaultValue="") String keyword, @RequestParam(required=false) Integer exchangeRateId, @RequestParam(required=false, defaultValue="") String messageStatus) { + ModelAndView result; + Collection items; + Collection moneyList; + String keywordToFind; + ExchangeRate exchangeRate; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + items = itemService.findAll(); + + if (!keyword.equals("")) { + String[] keywordComoArray = keyword.split(" "); + for (int i = 0; i < keywordComoArray.length; i++) { + if (!keywordComoArray[i].equals("")) { + keywordToFind = keywordComoArray[i]; + items = itemService.findBySingleKeyword(keywordToFind); + break; + } + } + } + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + result = new ModelAndView("item/list"); + result.addObject("requestURI", "item/consumer/list.do?"); + result.addObject("items", items); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + result.addObject("keyword", keyword); + + if(messageStatus != ""){ + result.addObject("messageStatus", messageStatus); + } + + return result; + } + + @RequestMapping(value = "/add", method = RequestMethod.GET) + public ModelAndView add(@RequestParam int itemId){ + ModelAndView result; + ShoppingCart shoppingCart; + Item item; + Consumer consumer; + + try{ + consumer = consumerService.findByPrincipal(); + shoppingCart = shoppingCartService.findByConsumer(consumer); + item = itemService.findOne(itemId); + shoppingCartService.addItem(shoppingCart, item); + result = new ModelAndView("redirect:list.do"); + result.addObject("messageStatus", "item.add.ok"); + result.addObject("keyword", ""); + }catch(Throwable oops){ + result = new ModelAndView("redirect:list.do"); + result.addObject("messageStatus", "item.commit.error"); + result.addObject("keyword", ""); + } + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/OrderConsumerController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/OrderConsumerController.java new file mode 100644 index 0000000..e98ff8a --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/OrderConsumerController.java @@ -0,0 +1,183 @@ +package controllers.consumer; + +import java.util.Collection; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import controllers.AbstractController; + +import domain.Consumer; +import domain.Order; +import services.ConsumerService; +import domain.ExchangeRate; +import services.ExchangeRateService; +import services.OrderService; +import services.ShoppingCartService; + +@Controller +@RequestMapping(value = "/order/consumer") +public class OrderConsumerController extends AbstractController { + + // Services ---------------------------------------------------------- + @Autowired + private OrderService orderService; + @Autowired + private ShoppingCartService ShoppingCartService; + @Autowired + private ConsumerService consumerService; + @Autowired + private ExchangeRateService exchangeRateService; + + + // Constructors ---------------------------------------------------------- + public OrderConsumerController(){ + super(); + } + + // Listing ---------------------------------------------------------- + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list(@RequestParam(required=false) Integer exchangeRateId, @RequestParam(required=false, defaultValue="") String messageStatus){ + ModelAndView result; + Collection orders; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + orders = orderService.findAllByConsumer(); + + result = new ModelAndView("order/list"); + result.addObject("orders", orders); + result.addObject("requestURI", "order/consumer/list.do"); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + + if(messageStatus != ""){ + result.addObject("messageStatus", messageStatus); + } + + return result; + } + + //Creation --------------------------------------------------------- + @RequestMapping(value = "/create", method = RequestMethod.GET) + public ModelAndView create(@RequestParam(required=false) Integer exchangeRateId){ + ModelAndView result; + Order order; + ExchangeRate exchangeRate; + Collection moneyList; + + exchangeRate = null; + moneyList = exchangeRateService.findAll(); + + if(exchangeRateId != null) { + exchangeRate = exchangeRateService.findOne(exchangeRateId); + } else { + exchangeRate = exchangeRateService.findOneByName("Euros"); + } + + order = ShoppingCartService.createCheckOut(); + result = createEditModelAndView(order); + result.addObject("moneyList", moneyList); + result.addObject("exchangeRate", exchangeRate); + + return result; + } + + + //Edition ---------------------------------------------------------- + + @RequestMapping(value = "/create", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid Order order, BindingResult binding){ + ModelAndView result; + Consumer actualConsumer; + + actualConsumer = order.getConsumer(); + + Assert.isTrue(actualConsumer.equals(consumerService.findByPrincipal()), "Only the owner of the order can save it"); + + boolean bindingError; + + if(binding.hasFieldErrors("orderItems")){ + bindingError = binding.getErrorCount() > 1; + }else{ + bindingError = binding.getErrorCount() > 0; + } + + if(bindingError){ + result = createEditModelAndView(order); + } else { + try { + ShoppingCartService.saveCheckOut(order, order.getConsumer()); + result = new ModelAndView("redirect:list.do"); + } catch (Throwable oops) { + if(oops.getMessage().equals("order.commit.error.creditcard.date")){ + result = createEditModelAndView(order, "order.commit.error.creditcard.date"); + }else{ + result = createEditModelAndView(order, "order.commit.create.error"); + } + } + } + + return result; + } + + @RequestMapping(value = "/cancel", method = RequestMethod.GET) + public ModelAndView cancel(@RequestParam int orderId){ + ModelAndView result; + Order order; + Consumer actualConsumer; + + try{ + order = orderService.findOne(orderId); + actualConsumer = order.getConsumer(); + Assert.isTrue(actualConsumer.equals(consumerService.findByPrincipal()), "Only the owner of the order can cancel it"); + orderService.cancelOrder(order); + result = new ModelAndView("redirect:list.do"); + result.addObject("messageStatus", "order.commit.ok"); + }catch(Throwable oops){ + result = new ModelAndView("redirect:list.do"); + result.addObject("messageStatus", "order.commit.error"); + } + + return result; + } + + + //Ancillary Methods ---------------------------------------------------------- + protected ModelAndView createEditModelAndView(Order order){ + ModelAndView result; + + result = createEditModelAndView(order,null); + + return result; + } + + protected ModelAndView createEditModelAndView(Order order, String message){ + ModelAndView result; + + + result = new ModelAndView("order/create"); + result.addObject("order", order); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ShoppingCartConsumerController.java b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ShoppingCartConsumerController.java new file mode 100644 index 0000000..8525457 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/controllers/consumer/ShoppingCartConsumerController.java @@ -0,0 +1,107 @@ +package controllers.consumer; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.Assert; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import controllers.AbstractController; + +import domain.Consumer; +import domain.ShoppingCart; + +import services.ConsumerService; +import services.ShoppingCartService; + +@Controller +@RequestMapping(value = "/shopping-cart/consumer") +public class ShoppingCartConsumerController extends AbstractController{ + + // Services ---------------------------------------------------------- + @Autowired + private ShoppingCartService shoppingCartService; + @Autowired + private ConsumerService consumerService; + + // Constructors ---------------------------------------------------------- + + public ShoppingCartConsumerController() { + super(); + } + + // Listing ---------------------------------------------------------- + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ModelAndView list() { + ModelAndView result; + Consumer consumer; + ShoppingCart shoppingCart; + + consumer = consumerService.findByPrincipal(); + shoppingCart = shoppingCartService.findByConsumer(consumer); + + result = new ModelAndView("shopping-cart/list"); + result.addObject("requestURI", "shopping-cart/consumer/list.do"); + result.addObject("shoppingCarts", shoppingCart); + + return result; + } + + // Edition ---------------------------------------------------------- + @RequestMapping(value = "/edit", method = RequestMethod.GET) + public ModelAndView edit(@RequestParam int shoppingCartId){ + ModelAndView result; + ShoppingCart shoppingCart; + + shoppingCart = shoppingCartService.finOneByShoppingCartId(shoppingCartId); + Assert.notNull(shoppingCart); + result = createEditModelAndView(shoppingCart); + + return result; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST, params = "save") + public ModelAndView save(@Valid ShoppingCart shoppingCart, BindingResult binding){ + ModelAndView result; + + if (binding.hasErrors()) { + result = createEditModelAndView(shoppingCart); + } else { + try { + Assert.isTrue(shoppingCart.getConsumer().equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can save it"); + shoppingCartService.save(shoppingCart); + result = new ModelAndView("redirect:/shopping-cart/consumer/list.do"); + } catch (Throwable oops) { + result = createEditModelAndView(shoppingCart, "shoppingCart.commit.error"); + } + } + + return result; + } + + // Ancilary methods ------------------------------------------------- + protected ModelAndView createEditModelAndView(ShoppingCart shoppingCart) { + ModelAndView result; + + result = createEditModelAndView(shoppingCart, null); + + return result; + } + + protected ModelAndView createEditModelAndView(ShoppingCart shoppingCart, String message){ + ModelAndView result; + + result = new ModelAndView("shopping-cart/edit"); + result.addObject("shopping-cart", shoppingCart); + result.addObject("message", message); + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ActorToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ActorToStringConverter.java new file mode 100644 index 0000000..bd1cae7 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ActorToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Actor; + +@Component +@Transactional +public class ActorToStringConverter implements Converter { + + @Override + public String convert(Actor actor) { + String result; + + if (actor == null) + result = null; + else + result = String.valueOf(actor.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/AdministratorToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/AdministratorToStringConverter.java new file mode 100644 index 0000000..450d29f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/AdministratorToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Administrator; + +@Component +@Transactional +public class AdministratorToStringConverter implements Converter { + + @Override + public String convert(Administrator administrator) { + String result; + + if (administrator == null) + result = null; + else + result = String.valueOf(administrator.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/AuthorityToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/AuthorityToStringConverter.java new file mode 100644 index 0000000..36ca463 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/AuthorityToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import security.Authority; + +@Component +@Transactional +public class AuthorityToStringConverter implements Converter { + + @Override + public String convert(Authority authority) { + String result; + + if (authority == null) + result = null; + else + result = authority.getAuthority(); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/CategoryToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/CategoryToStringConverter.java new file mode 100644 index 0000000..15cd9ca --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/CategoryToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Category; + +@Component +@Transactional +public class CategoryToStringConverter implements Converter { + + @Override + public String convert(Category category) { + String result; + + if (category == null) + result = null; + else + result = String.valueOf(category.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ClerkToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ClerkToStringConverter.java new file mode 100644 index 0000000..b670a29 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ClerkToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Clerk; + +@Component +@Transactional +public class ClerkToStringConverter implements Converter { + + @Override + public String convert(Clerk clerk) { + String result; + + if (clerk == null) + result = null; + else + result = String.valueOf(clerk.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/CommentToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/CommentToStringConverter.java new file mode 100644 index 0000000..bde5e73 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/CommentToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Comment; + +@Component +@Transactional +public class CommentToStringConverter implements Converter { + + @Override + public String convert(Comment comment) { + String result; + + if (comment == null) + result = null; + else + result = String.valueOf(comment.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ConsumerToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ConsumerToStringConverter.java new file mode 100644 index 0000000..ef6a065 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ConsumerToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Consumer; + +@Component +@Transactional +public class ConsumerToStringConverter implements Converter { + + @Override + public String convert(Consumer consumer) { + String result; + + if (consumer == null) + result = null; + else + result = String.valueOf(consumer.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ContentToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ContentToStringConverter.java new file mode 100644 index 0000000..fd39738 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ContentToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Content; + +@Component +@Transactional +public class ContentToStringConverter implements Converter { + + @Override + public String convert(Content content) { + String result; + + if (content == null) + result = null; + else + result = String.valueOf(content.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/CreditCardToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/CreditCardToStringConverter.java new file mode 100644 index 0000000..3bdef2b --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/CreditCardToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.CreditCard; + +@Component +@Transactional +public class CreditCardToStringConverter implements Converter { + + @Override + public String convert(CreditCard creditCard) { + String result; + + if (creditCard == null) + result = null; + else + result = creditCard.getNumber(); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/CustomizationInfoToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/CustomizationInfoToStringConverter.java new file mode 100644 index 0000000..c515838 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/CustomizationInfoToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.CustomizationInfo; + +@Component +@Transactional +public class CustomizationInfoToStringConverter implements Converter { + + @Override + public String convert(CustomizationInfo customizationInfo) { + String result; + + if (customizationInfo == null) + result = null; + else + result = String.valueOf(customizationInfo.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ExchangeRateToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ExchangeRateToStringConverter.java new file mode 100644 index 0000000..b69e754 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ExchangeRateToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.ExchangeRate; + +@Component +@Transactional +public class ExchangeRateToStringConverter implements Converter { + + @Override + public String convert(ExchangeRate exchangeRate) { + String result; + + if (exchangeRate == null) + result = null; + else + result = String.valueOf(exchangeRate.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/FolderToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/FolderToStringConverter.java new file mode 100644 index 0000000..8efea0e --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/FolderToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Folder; + +@Component +@Transactional +public class FolderToStringConverter implements Converter { + + @Override + public String convert(Folder folder) { + String result; + + if (folder == null) + result = null; + else + result = String.valueOf(folder.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ItemToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ItemToStringConverter.java new file mode 100644 index 0000000..4198b72 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ItemToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Item; + +@Component +@Transactional +public class ItemToStringConverter implements Converter { + + @Override + public String convert(Item item) { + String result; + + if (item == null) + result = null; + else + result = String.valueOf(item.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/MessageToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/MessageToStringConverter.java new file mode 100644 index 0000000..dfb9569 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/MessageToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Message; + +@Component +@Transactional +public class MessageToStringConverter implements Converter { + + @Override + public String convert(Message message) { + String result; + + if (message == null) + result = null; + else + result = String.valueOf(message.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderItemToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderItemToStringConverter.java new file mode 100644 index 0000000..aaade2d --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderItemToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.OrderItem; + +@Component +@Transactional +public class OrderItemToStringConverter implements Converter { + + @Override + public String convert(OrderItem orderItem) { + String result; + + if (orderItem == null) + result = null; + else + result = String.valueOf(orderItem.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderToStringConverter.java new file mode 100644 index 0000000..e1e90aa --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/OrderToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Order; + +@Component +@Transactional +public class OrderToStringConverter implements Converter { + + @Override + public String convert(Order order) { + String result; + + if (order == null) + result = null; + else + result = String.valueOf(order.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/ShoppingCartToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/ShoppingCartToStringConverter.java new file mode 100644 index 0000000..09bf301 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/ShoppingCartToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.ShoppingCart; + +@Component +@Transactional +public class ShoppingCartToStringConverter implements Converter { + + @Override + public String convert(ShoppingCart shoppingCart) { + String result; + + if (shoppingCart == null) + result = null; + else + result = String.valueOf(shoppingCart.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StorageToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StorageToStringConverter.java new file mode 100644 index 0000000..ef8c3c8 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StorageToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Storage; + +@Component +@Transactional +public class StorageToStringConverter implements Converter { + + @Override + public String convert(Storage storage) { + String result; + + if (storage == null) + result = null; + else + result = String.valueOf(storage.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToActorConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToActorConverter.java new file mode 100644 index 0000000..59e6be9 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToActorConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ActorRepository; +import domain.Actor; + +@Component +@Transactional +public class StringToActorConverter implements Converter { + + @Autowired + ActorRepository actorRepository; + + @Override + public Actor convert(String text) { + Actor result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = actorRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAdministratorConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAdministratorConverter.java new file mode 100644 index 0000000..c33dbfe --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAdministratorConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.AdministratorRepository; +import domain.Administrator; + +@Component +@Transactional +public class StringToAdministratorConverter implements Converter { + + @Autowired + AdministratorRepository administratorRepository; + + @Override + public Administrator convert(String text) { + Administrator result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = administratorRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAuthorityConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAuthorityConverter.java new file mode 100644 index 0000000..d7933a3 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToAuthorityConverter.java @@ -0,0 +1,27 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import security.Authority; + +@Component +@Transactional +public class StringToAuthorityConverter implements Converter { + + @Override + public Authority convert(String text) { + Authority result; + + try { + result = new Authority(); + result.setAuthority(text); + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCategoryConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCategoryConverter.java new file mode 100644 index 0000000..b0f5210 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCategoryConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.CategoryRepository; +import domain.Category; + +@Component +@Transactional +public class StringToCategoryConverter implements Converter { + + @Autowired + CategoryRepository categoryRepository; + + @Override + public Category convert(String text) { + Category result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = categoryRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToClerkConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToClerkConverter.java new file mode 100644 index 0000000..99104ee --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToClerkConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ClerkRepository; +import domain.Clerk; + +@Component +@Transactional +public class StringToClerkConverter implements Converter { + + @Autowired + ClerkRepository clerkRepository; + + @Override + public Clerk convert(String text) { + Clerk result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = clerkRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCommentConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCommentConverter.java new file mode 100644 index 0000000..f427de6 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCommentConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.CommentRepository; +import domain.Comment; + +@Component +@Transactional +public class StringToCommentConverter implements Converter { + + @Autowired + CommentRepository commentRepository; + + @Override + public Comment convert(String text) { + Comment result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = commentRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToConsumerConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToConsumerConverter.java new file mode 100644 index 0000000..4ea7f76 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToConsumerConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ConsumerRepository; +import domain.Consumer; + +@Component +@Transactional +public class StringToConsumerConverter implements Converter { + + @Autowired + ConsumerRepository consumerRepository; + + @Override + public Consumer convert(String text) { + Consumer result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = consumerRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToContentConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToContentConverter.java new file mode 100644 index 0000000..980c0c9 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToContentConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ContentRepository; +import domain.Content; + +@Component +@Transactional +public class StringToContentConverter implements Converter { + + @Autowired + ContentRepository contentRepository; + + @Override + public Content convert(String text) { + Content result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = contentRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCreditCardConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCreditCardConverter.java new file mode 100644 index 0000000..e0dad86 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCreditCardConverter.java @@ -0,0 +1,27 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.CreditCard; + +@Component +@Transactional +public class StringToCreditCardConverter implements Converter { + + @Override + public CreditCard convert(String text) { + CreditCard result; + + try { + result = new CreditCard(); + result.setNumber(text); + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCustomizationInfoConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCustomizationInfoConverter.java new file mode 100644 index 0000000..707cf0d --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToCustomizationInfoConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.CustomizationInfoRepository; +import domain.CustomizationInfo; + +@Component +@Transactional +public class StringToCustomizationInfoConverter implements Converter { + + @Autowired + CustomizationInfoRepository customizationInfoRepository; + + @Override + public CustomizationInfo convert(String text) { + CustomizationInfo result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = customizationInfoRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToExchangeRateConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToExchangeRateConverter.java new file mode 100644 index 0000000..8b91c6d --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToExchangeRateConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ExchangeRateRepository; +import domain.ExchangeRate; + +@Component +@Transactional +public class StringToExchangeRateConverter implements Converter { + + @Autowired + ExchangeRateRepository exchangeRateRepository; + + @Override + public ExchangeRate convert(String text) { + ExchangeRate result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = exchangeRateRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToFolderConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToFolderConverter.java new file mode 100644 index 0000000..041e6ce --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToFolderConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.FolderRepository; +import domain.Folder; + +@Component +@Transactional +public class StringToFolderConverter implements Converter { + + @Autowired + FolderRepository folderRepository; + + @Override + public Folder convert(String text) { + Folder result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = folderRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToItemConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToItemConverter.java new file mode 100644 index 0000000..047090e --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToItemConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ItemRepository; +import domain.Item; + +@Component +@Transactional +public class StringToItemConverter implements Converter { + + @Autowired + ItemRepository itemRepository; + + @Override + public Item convert(String text) { + Item result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = itemRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToMessageConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToMessageConverter.java new file mode 100644 index 0000000..4d2f3ac --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToMessageConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.MessageRepository; +import domain.Message; + +@Component +@Transactional +public class StringToMessageConverter implements Converter { + + @Autowired + MessageRepository messageRepository; + + @Override + public Message convert(String text) { + Message result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = messageRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderConverter.java new file mode 100644 index 0000000..57f99d5 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.OrderRepository; +import domain.Order; + +@Component +@Transactional +public class StringToOrderConverter implements Converter { + + @Autowired + OrderRepository orderRepository; + + @Override + public Order convert(String text) { + Order result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = orderRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderItemConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderItemConverter.java new file mode 100644 index 0000000..dfc054a --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToOrderItemConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.OrderItemRepository; +import domain.OrderItem; + +@Component +@Transactional +public class StringToOrderItemConverter implements Converter { + + @Autowired + OrderItemRepository orderItemRepository; + + @Override + public OrderItem convert(String text) { + OrderItem result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = orderItemRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToShoppingCartConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToShoppingCartConverter.java new file mode 100644 index 0000000..b9380aa --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToShoppingCartConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.ShoppingCartRepository; +import domain.ShoppingCart; + +@Component +@Transactional +public class StringToShoppingCartConverter implements Converter { + + @Autowired + ShoppingCartRepository shoppingCartRepository; + + @Override + public ShoppingCart convert(String text) { + ShoppingCart result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = shoppingCartRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToStorageConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToStorageConverter.java new file mode 100644 index 0000000..c67cd16 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToStorageConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.StorageRepository; +import domain.Storage; + +@Component +@Transactional +public class StringToStorageConverter implements Converter { + + @Autowired + StorageRepository storageRepository; + + @Override + public Storage convert(String text) { + Storage result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = storageRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToTaxConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToTaxConverter.java new file mode 100644 index 0000000..97a86d8 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToTaxConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.TaxRepository; +import domain.Tax; + +@Component +@Transactional +public class StringToTaxConverter implements Converter { + + @Autowired + TaxRepository taxRepository; + + @Override + public Tax convert(String text) { + Tax result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = taxRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToWareHouseConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToWareHouseConverter.java new file mode 100644 index 0000000..bf214e1 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/StringToWareHouseConverter.java @@ -0,0 +1,38 @@ +package converters; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import repositories.WareHouseRepository; +import domain.WareHouse; + +@Component +@Transactional +public class StringToWareHouseConverter implements Converter { + + @Autowired + WareHouseRepository wareHouseRepository; + + @Override + public WareHouse convert(String text) { + WareHouse result; + int id; + + try { + if (StringUtils.isEmpty(text)) + result = null; + else { + id = Integer.valueOf(text); + result = wareHouseRepository.findOne(id); + } + } catch (Throwable oops) { + throw new IllegalArgumentException(oops); + } + + return result; + } + +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/TaxToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/TaxToStringConverter.java new file mode 100644 index 0000000..d452c7c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/TaxToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.Tax; + +@Component +@Transactional +public class TaxToStringConverter implements Converter { + + @Override + public String convert(Tax tax) { + String result; + + if (tax == null) + result = null; + else + result = String.valueOf(tax.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/converters/WareHouseToStringConverter.java b/WorkSpace/Acme-Supermarket/src/main/java/converters/WareHouseToStringConverter.java new file mode 100644 index 0000000..7bf7693 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/converters/WareHouseToStringConverter.java @@ -0,0 +1,25 @@ +package converters; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import domain.WareHouse; + +@Component +@Transactional +public class WareHouseToStringConverter implements Converter { + + @Override + public String convert(WareHouse wareHouse) { + String result; + + if (wareHouse == null) + result = null; + else + result = String.valueOf(wareHouse.getId()); + + return result; + } + +} \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/java/domain/Actor.java b/WorkSpace/Acme-Supermarket/src/main/java/domain/Actor.java index dfd99e2..b715039 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/domain/Actor.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/domain/Actor.java @@ -11,7 +11,6 @@ import javax.persistence.OneToOne; import javax.validation.Valid; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.Email; @@ -61,7 +60,6 @@ public void setEmail(String email) { this.email = email; } - @Pattern(regexp = "^(\\+?\\d{1,3}?[- .]?)?\\(?(?:\\d{2,3})\\)?[- .]?\\d\\d\\d[- .]?\\d\\d\\d\\d$") @Valid public String getPhone() { return phone; diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ActorRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ActorRepository.java index a878f65..6761793 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ActorRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ActorRepository.java @@ -5,7 +5,6 @@ import org.springframework.stereotype.Repository; import domain.Actor; -import domain.Administrator; @Repository public interface ActorRepository extends JpaRepository { diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ClerkRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ClerkRepository.java index 344c808..d893936 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ClerkRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ClerkRepository.java @@ -6,7 +6,6 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; -import domain.Administrator; import domain.Clerk; @Repository diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ContentRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ContentRepository.java index b6d7940..40263f6 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ContentRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ContentRepository.java @@ -16,4 +16,8 @@ public interface ContentRepository extends JpaRepository { @Query("select c from Content c where c.shoppingCart.id = ?1") Collection findByShoppingCartID(int shoppingCartId); + + @Query("Select c from Content c where c.item.id = ?1") + Collection findAllByItemId(int itemId); + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ExchangeRateRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ExchangeRateRepository.java index 6bfc4d2..c56da6e 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ExchangeRateRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ExchangeRateRepository.java @@ -1,6 +1,7 @@ package repositories; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import domain.ExchangeRate; @@ -8,4 +9,7 @@ @Repository public interface ExchangeRateRepository extends JpaRepository { + @Query("select e from ExchangeRate e where e.name = ?1") + ExchangeRate findOneByName(String name); + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ItemRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ItemRepository.java index 26e28e7..cf93643 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/ItemRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/ItemRepository.java @@ -11,16 +11,16 @@ @Repository public interface ItemRepository extends JpaRepository { - @Query("select i from Item i where i.deleted is false and i.sku IN (select oi.sku from OrderItem oi join oi.order o where o.deliveryMoment is not null group by oi.sku having max(oi.units) = (select max(oi.units) from OrderItem oi))") + @Query("select i from Item i where i.deleted is false and i.sku IN (select oi.sku from OrderItem oi group by oi.sku having sum(oi.units)>=ALL(select sum(oi.units) from OrderItem oi group by oi.sku having oi.sku IN (select i.sku from Item i where i.deleted is false)))") Collection findItemBestSelling(); - @Query("select i from Item i where i.deleted is false and i.sku IN (select oi.sku from OrderItem oi join oi.order o where o.deliveryMoment is not null group by oi.sku having min(oi.units) = (select min(oi.units) from OrderItem oi))") + @Query("select i from Item i where i.deleted is false and i.sku IN (select oi.sku from OrderItem oi group by oi.sku having sum(oi.units)<=ALL(select sum(oi.units) from OrderItem oi group by oi.sku having oi.sku IN (select i.sku from Item i where i.deleted is false)))") Collection findItemWorstSelling(); @Query("select i from Item i where i.deleted is false and i.comments.size = (select max(i.comments.size) from Item i where i.deleted is false) group by i") Collection findItemMoreComments(); - @Query("select i from Item i where i.deleted = false") + @Query("select i from Item i where i.deleted = false order by i.category") Collection findAllNotDeleted(); @Query("select i from Item i where i.deleted = false and i.category.id = ?1") @@ -38,9 +38,12 @@ public interface ItemRepository extends JpaRepository { // @Query("select i from Item i where i.deleted = false and i.sku like '%?1%' or i.name like '%?1%' or i.description like '%?1%'") // Collection findBySingleKeyword(String keyword); - @Query("select i from Item i where i.deleted = false and i.sku like concat('%',?1,'%') or i.name like concat('%',?1,'%') or i.description like concat('%',?1,'%')") + @Query("select i from Item i where i.deleted = false and (i.sku like concat('%',?1,'%') or i.name like concat('%',?1,'%') or i.description like concat('%',?1,'%'))") Collection findBySingleKeyword(String keyword); @Query("select c.item from ShoppingCart s join s.contents c where c.item.deleted = false and s.id = ?1") Collection findAllByShoppingCartId(int shoppingCartId); + + @Query("Select i from Item i where i.sku like ?1") + Item findOneBySKU(String sku); } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderItemRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderItemRepository.java index 3fd2cff..25244d5 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderItemRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderItemRepository.java @@ -1,6 +1,9 @@ package repositories; +import java.util.Collection; + import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import domain.OrderItem; @@ -8,4 +11,7 @@ @Repository public interface OrderItemRepository extends JpaRepository { + @Query("Select o from OrderItem o where o.order.id = ?1") + Collection findAllByOrderId(int orderId); + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderRepository.java index bde2bc4..bc584fe 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/OrderRepository.java @@ -20,4 +20,10 @@ public interface OrderRepository extends JpaRepository { @Query("select o from Order o where o.ticker = ?1") Order findByTicker(String ticker); + + @Query("select o from Order o where o.consumer.id = ?1 order by o.placementMoment") + Collection findAllByConsumerId(int id); + + @Query("select o from Order o where o.clerk.id = ?1 order by o.placementMoment") + Collection findAllByClerkId(int id); } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/repositories/StorageRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/repositories/StorageRepository.java index c5937e6..782b3b7 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/repositories/StorageRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/repositories/StorageRepository.java @@ -1,5 +1,7 @@ package repositories; +import java.util.Collection; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -11,4 +13,10 @@ public interface StorageRepository extends JpaRepository { @Query("select s from Storage s where s.wareHouse.id = ?1 and s.item.id = ?2") Storage findByWareHouseIdAndItemId(int wareHouseId, int itemId); + + @Query("select s from Storage s where s.wareHouse.id = ?1") + Collection findAllByWarehouseId(int warehouseId); + + @Query("select s from Storage s where s.item.id = ?1") + Collection findAllByItemId(int itemId); } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/security/LoginController.java b/WorkSpace/Acme-Supermarket/src/main/java/security/LoginController.java index a98c271..5b246c4 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/security/LoginController.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/security/LoginController.java @@ -43,6 +43,7 @@ public LoginController() { @RequestMapping("/login") public ModelAndView login( @Valid @ModelAttribute Credentials credentials, + @RequestParam(required=false, defaultValue="") String messageStatus, BindingResult bindingResult, @RequestParam(required = false) boolean showError) { Assert.notNull(credentials); @@ -53,6 +54,10 @@ public ModelAndView login( result = new ModelAndView("security/login"); result.addObject("credentials", credentials); result.addObject("showError", showError); + + if(messageStatus != ""){ + result.addObject("messageStatus", messageStatus); + } return result; } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountRepository.java b/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountRepository.java index 5f2caab..b5409f1 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountRepository.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountRepository.java @@ -11,7 +11,6 @@ package security; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; diff --git a/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountService.java b/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountService.java index 413adc7..dc443a7 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/security/UserAccountService.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Collection; +import org.springframework.security.authentication.encoding.Md5PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +24,7 @@ public UserAccountService(){ super(); } // Simple CRUD methods ---------------------------------------------------- - private UserAccount create(String authority){ + public UserAccount create(String authority){ UserAccount result; Authority au; Collection authorities = new ArrayList(); @@ -46,11 +47,26 @@ public UserAccount createComplete(String username, String Password, String autho result = this.create(authority); - result.setUsername(username); result.setPassword(Password); return result; } + + /** + * This method hashCode the password + */ + public UserAccount modifyPassword(UserAccount input){ + Md5PasswordEncoder encoder; + String newPassword; + + encoder = new Md5PasswordEncoder(); + + newPassword = encoder.encodePassword(input.getPassword(), null); + + input.setPassword(newPassword); + + return input; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ActorService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ActorService.java index 19591d6..d35d432 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ActorService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ActorService.java @@ -36,6 +36,13 @@ public ActorService(){ // Simple CRUD methods ---------------------------------------------------- + public Collection findAll(){ + Collection result; + + result = actorRepository.findAll(); + + return result; + } // Other business methods ------------------------------------------------- @@ -64,18 +71,24 @@ public boolean checkAuthority(String authority){ boolean result; Actor actor; Collection authorities; - - actor = this.findByPrincipal(); - authorities = actor.getUserAccount().getAuthorities(); result = false; - - for (Authority a : authorities) { - if(a.getAuthority().equals(authority.toUpperCase())){ - result = true; - break; + + try { + actor = this.findByPrincipal(); + authorities = actor.getUserAccount().getAuthorities(); + + for (Authority a : authorities) { + if(a.getAuthority().equals(authority.toUpperCase())){ + result = true; + break; + } } + } catch (IllegalArgumentException e) { + result = false; } + + return result; } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/CategoryService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/CategoryService.java index 4ccf967..e64f67e 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/CategoryService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/CategoryService.java @@ -99,6 +99,14 @@ public Category findByItem(Item item){ return result; } + + public Category findOne(int categoryId) { + Category result; + + result = categoryRepository.findOne(categoryId); + + return result; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ClerkService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ClerkService.java index 4828fbb..5371591 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ClerkService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ClerkService.java @@ -1,5 +1,6 @@ package services; +import java.util.ArrayList; import java.util.Collection; import org.springframework.beans.factory.annotation.Autowired; @@ -9,11 +10,14 @@ import domain.Clerk; import domain.Folder; +import domain.Message; import domain.Order; import repositories.ClerkRepository; +import security.Authority; import security.LoginService; import security.UserAccount; +import security.UserAccountService; @Service @Transactional @@ -31,6 +35,9 @@ public class ClerkService { @Autowired private ActorService actorService; + @Autowired + private UserAccountService userAccountService; + //Constructors ----------------------------------------------------------- public ClerkService(){ @@ -44,15 +51,15 @@ public ClerkService(){ */ //req: 17.1 public Clerk create(){ + Assert.isTrue(actorService.checkAuthority("ADMIN"), "Only an admin can create clerk"); + Clerk result; - Collection folders; - Assert.isTrue(actorService.checkAuthority("ADMIN"), "Only an admin can create clerk"); - + UserAccount userAccount; result = new Clerk(); - folders = folderService.initializeSystemFolder(result); - result.setFolders(folders); + userAccount = userAccountService.create("CLERK"); + result.setUserAccount(userAccount); return result; } @@ -63,10 +70,53 @@ public Clerk create(){ //req: 17.1 public void save(Clerk clerk){ Assert.notNull(clerk); - Assert.isTrue(actorService.checkAuthority("ADMIN") || actorService.checkAuthority("CLERK"), "Only an admin or a clerk can save clerk"); + Assert.isTrue(actorService.checkAuthority("ADMIN") || actorService.checkAuthority("CLERK"), "Only an admin or a clerk can save clerks"); - - clerkRepository.save(clerk); + boolean result = true; + for(Authority a: clerk.getUserAccount().getAuthorities()){ + if(!a.getAuthority().equals("CLERK")){ + result = false; + break; + } + } + Assert.isTrue(result, "A clerk can only be a authority.clerk"); + + Clerk modify; + + if(clerk.getId() == 0){ + Collection folders; + Collection sent; + Collection received; + Collection orders; + UserAccount auth; + + //Encoding password + auth = clerk.getUserAccount(); + auth = userAccountService.modifyPassword(auth); + clerk.setUserAccount(auth); + + // Initialize folders + folders = folderService.initializeSystemFolder(clerk); + clerk.setFolders(folders); + + sent = new ArrayList(); + received = new ArrayList(); + clerk.setSent(sent); + clerk.setReceived(received); + + //Initialize orders + orders = new ArrayList(); + clerk.setOrders(orders); + } + + modify = clerkRepository.save(clerk); + + if(clerk.getId() == 0){ + Collection folders; + + folders = folderService.initializeSystemFolder(modify); + folderService.save(folders); + } } /** diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/CommentService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/CommentService.java index 2b73a6c..c311db4 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/CommentService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/CommentService.java @@ -70,6 +70,15 @@ public void delete(Comment comment){ commentRepository.delete(comment.getId()); } + public Comment findOne(int commentId) { + Comment result; + + result = commentRepository.findOne(commentId); + Assert.notNull(result, "Comment " + commentId + " don't exist"); + + return result; + } + //Other business methods ------------------------------------------------- /** diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ConsumerService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ConsumerService.java index 31a9d24..3af42fd 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ConsumerService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ConsumerService.java @@ -1,5 +1,6 @@ package services; +import java.util.ArrayList; import java.util.Collection; import org.springframework.beans.factory.annotation.Autowired; @@ -9,10 +10,15 @@ import domain.Consumer; import domain.Folder; +import domain.Message; +import domain.Order; +import domain.ShoppingCart; import repositories.ConsumerRepository; +import security.Authority; import security.LoginService; import security.UserAccount; +import security.UserAccountService; @Service @Transactional @@ -30,6 +36,12 @@ public class ConsumerService { @Autowired private ActorService actorService; + @Autowired + private UserAccountService userAccountService; + + @Autowired + private ShoppingCartService shoppingCartService; + //Constructors ----------------------------------------------------------- public ConsumerService(){ @@ -44,13 +56,13 @@ public ConsumerService(){ // req: 10.1 public Consumer create(){ Consumer result; - Collection folders; + UserAccount userAccount; result = new Consumer(); - folders = folderService.initializeSystemFolder(result); - result.setFolders(folders); - + userAccount = userAccountService.create("CONSUMER"); + result.setUserAccount(userAccount); + return result; } @@ -60,8 +72,58 @@ public Consumer create(){ // req: 10.1 public void save(Consumer consumer){ Assert.notNull(consumer); + + Consumer modify; + + boolean result = true; + for(Authority a: consumer.getUserAccount().getAuthorities()){ + if(!a.getAuthority().equals("CONSUMER")){ + result = false; + break; + } + } + Assert.isTrue(result, "A consumer can only be a authority.consumer"); + + if(consumer.getId() == 0){ + Collection folders; + Collection sent; + Collection received; + Collection orders; + UserAccount auth; + ShoppingCart shoppingCart; + + //Encoding password + auth = consumer.getUserAccount(); + auth = userAccountService.modifyPassword(auth); + consumer.setUserAccount(auth); + + // Initialize folders + folders = folderService.initializeSystemFolder(consumer); + consumer.setFolders(folders); + + sent = new ArrayList(); + received = new ArrayList(); + consumer.setSent(sent); + consumer.setReceived(received); + + //Initialize orders + orders = new ArrayList(); + consumer.setOrders(orders); + + //Initialize shoppingCart + shoppingCart = shoppingCartService.create(consumer); + consumer.setShoppingCart(shoppingCart); + + } + modify = consumerRepository.save(consumer); + + if(consumer.getId() == 0){ + Collection folders; - consumerRepository.save(consumer); + folders = folderService.initializeSystemFolder(modify); + folderService.save(folders); + } + } /** diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ContentService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ContentService.java index 87b17a2..362078c 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ContentService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ContentService.java @@ -7,6 +7,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import domain.Consumer; import domain.Content; import domain.Item; import domain.ShoppingCart; @@ -50,6 +51,10 @@ public Content create(){ public void save(Content content){ Assert.notNull(content); + + Consumer actualConsumer = content.getShoppingCart().getConsumer(); + + Assert.isTrue(actualConsumer.equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can save the order"); if(content.getUnits() == 0){ this.deleteComplete(content); @@ -105,6 +110,18 @@ private Collection findByShoppingCart(ShoppingCart shoppingCart){ return result; } + public Collection findByShoppingCart(int shoppingCartId){ + Collection result; + ShoppingCart shoppingCart; + + shoppingCart = shoppingCartService.finOneByShoppingCartId(shoppingCartId); + Assert.isTrue(shoppingCart.getConsumer().equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can list its items"); + + result = contentRepository.findByShoppingCartID(shoppingCartId); + + return result; + } + /** * NO USAR. Usar ShoppingCartService.consultItemQuantity */ @@ -183,4 +200,26 @@ public void deleteComplete(Content content){ shoppingCart.setContents(contents); shoppingCartService.save(shoppingCart); } + + public Content findOneByContentId(int contentId){ + Content content; + + content = contentRepository.findOne(contentId); + + Consumer actualConsumer = content.getShoppingCart().getConsumer(); + + Assert.isTrue(actualConsumer.equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can edit it"); + + return content; + } + + public Collection findAllByItemId(int itemId) { + Assert.notNull(itemId); + + Collection result; + + result = contentRepository.findAllByItemId(itemId); + + return result; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/CustomizationInfoService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/CustomizationInfoService.java new file mode 100644 index 0000000..6b81acb --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/CustomizationInfoService.java @@ -0,0 +1,41 @@ +package services; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; + +import domain.CustomizationInfo; + +import repositories.CustomizationInfoRepository; + +@Service +@Transactional +public class CustomizationInfoService { + + // Managed repository ----------------------------------------------------- + + @Autowired + private CustomizationInfoRepository customizationInfoRepository; + + + public CustomizationInfo findOne(int customizationInfoId) { + Assert.notNull(customizationInfoId); + + CustomizationInfo result; + + result = customizationInfoRepository.findOne(customizationInfoId); + + return result; + } + + public Collection findAll(){ + Collection result; + + result = customizationInfoRepository.findAll(); + + return result; + } +} diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ExchangeRateService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ExchangeRateService.java index b34c074..2f64887 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ExchangeRateService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ExchangeRateService.java @@ -65,8 +65,28 @@ public Collection findAll(){ return result; } + + // Other business methods ------------------------------------------------- - + public ExchangeRate findOne(int exchangeRateId) { + Assert.notNull(exchangeRateId); + + ExchangeRate result; + + result = exchangeRateRepository.findOne(exchangeRateId); + + return result; + } + + public ExchangeRate findOneByName(String name) { + Assert.notNull(name); + + ExchangeRate result; + + result = exchangeRateRepository.findOneByName(name); + + return result; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/FolderService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/FolderService.java index 81dfbc2..40604cf 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/FolderService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/FolderService.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Collection; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,6 +27,9 @@ public class FolderService { @Autowired private ActorService actorService; + @Autowired + private MessageService messageService; + //Constructors ----------------------------------------------------------- public FolderService(){ @@ -42,8 +44,12 @@ public FolderService(){ //req: 24.2 public Folder create(){ Folder result; + Collection messages; result = new Folder(); + messages = new ArrayList(); + + result.setMessages(messages); return result; } @@ -62,6 +68,25 @@ public Folder save(Folder folder){ return result; } + /** + * Guarda varias folder + */ + //req: 24.2 + public Collection save(Collection folder){ + Assert.notNull(folder); + + Collection result; + + result = new ArrayList(); + + for(Folder a:folder){ + result.add(folderRepository.save(a)); + } + + + return result; + } + /** * Elimina un folder. No elimina carpetas del sistema */ @@ -78,6 +103,18 @@ public void delete(Folder folder){ folderRepository.delete(folder); } + public Folder findOne(int folderId){ + Folder result; + + result = folderRepository.findOne(folderId); + + Assert.notNull(result); + + checkActor(result); + + return result; + } + //Other business methods ------------------------------------------------- /** @@ -152,8 +189,8 @@ public Collection initializeSystemFolder(Actor actor){ names = new ArrayList(); names.add("Inbox"); - names.add("Outbox"); - names.add("Trashbox"); + names.add("OutBox"); + names.add("TrashBox"); for (String string : names) { @@ -209,4 +246,37 @@ public void moveMessage(Folder origin, Folder destination, Message m){ this.removeMessage(origin, m); } + + + public void checkActor(Folder folder){ + int actId; + int inputId; + + actId = folder.getActor().getUserAccount().getId(); + inputId = actorService.findByPrincipal().getUserAccount().getId(); + + Assert.isTrue(actId == inputId, "folder.modify.notOwner"); + } + + public Collection findByMessageAndActualActor(Message messa){ + messageService.checkActor(messa); + + Collection result; + Collection folders; + Actor actor; + + actor = actorService.findByPrincipal(); + result = new ArrayList(); + + folders = folderRepository.findAllByActorId(actor.getId()); + + for (Folder f: folders){ + if(f.getMessages().contains(messa)){ + result.add(f); + } + } + + + return result; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ItemService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ItemService.java index 9cbe70f..ce2c555 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ItemService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ItemService.java @@ -8,6 +8,7 @@ import org.springframework.util.Assert; import domain.Category; +import domain.Content; import domain.Item; import domain.ShoppingCart; import domain.Tax; @@ -31,6 +32,9 @@ public class ItemService { @Autowired private ConsumerService consumerService; + @Autowired + private ContentService contentService; + //Constructors ----------------------------------------------------------- public ItemService(){ @@ -59,11 +63,18 @@ public Item create(){ public void delete(Item item){ Assert.notNull(item); Assert.isTrue(item.getId() != 0); + Assert.isTrue(actorService.checkAuthority("ADMIN"), "Only an admin can delete items"); + + Collection contents; - Assert.isTrue(actorService.checkAuthority("ADMIN"), "Only an admin can create items"); + contents = contentService.findAllByItemId(item.getId()); item.setDeleted(true); this.save(item); + + for(Content content : contents) { + contentService.deleteComplete(content); + } } /** @@ -238,4 +249,14 @@ public Collection findItemMoreComments(){ return result; } + public Item findOneBySKU(String sku) { + Assert.notNull(sku); + + Item result; + + result = itemRepository.findOneBySKU(sku); + + return result; + } + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/MessageService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/MessageService.java index 4bea0e6..0685a28 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/MessageService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/MessageService.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -45,10 +46,16 @@ public MessageService(){ public Message create(){ Message result; Collection folders; + Collection recipients; folders = new ArrayList(); + recipients = new ArrayList(); result = new Message(); + result.setFolders(folders); + result.setRecipients(recipients); + result.setSender(actorService.findByPrincipal()); + result.setMoment(new Date()); return result; } @@ -61,12 +68,26 @@ private Message save(Message message){ Assert.notNull(message); Assert.isTrue(message.getSender().equals(actorService.findByPrincipal()), "Only the sender can save the message"); + message.setMoment(new Date()); + Message result; result = messageRepository.save(message); return result; } + + public Message findOne(int messageId){ + Message result; + + result = messageRepository.findOne(messageId); + + Assert.notNull(result, "message.findOne.UnknownID"); + + checkActor(result); + + return result; + } //Other business methods ------------------------------------------------- @@ -134,6 +155,34 @@ public void deleteMessageFromFolder(Message message, Folder folder){ Assert.isTrue(folder.getActor().equals(actorService.findByPrincipal()), "Only the owner of the folder can delete a message"); folderService.removeMessage(folder, message); - } + } + + + + public void checkActor(Message input){ + int actId; + int inputId; + + boolean res; + + actId = actorService.findByPrincipal().getUserAccount().getId(); + inputId = input.getSender().getUserAccount().getId(); + res = false; + + if (actId == inputId) { + res = true; + } else { + for (Actor a : input.getRecipients()) { + inputId = a.getUserAccount().getId(); + + if (actId == inputId) { + res = true; + break; + } + } + } + + Assert.isTrue(res, "message.consult.notOwner"); + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/OrderItemService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/OrderItemService.java index 593cb05..1de02a3 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/OrderItemService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/OrderItemService.java @@ -149,6 +149,26 @@ private OrderItem createByShoppingCart(Item item, Order order, int units){ return result; } + + public Collection findAllByOrderId(int orderId) { + Assert.notNull(orderId); + + Collection result; + + result = orderItemRepository.findAllByOrderId(orderId); + + return result; + } + + public OrderItem findOne(int orderItemId) { + Assert.notNull(orderItemId); + + OrderItem result; + + result = orderItemRepository.findOne(orderItemId); + + return result; + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/OrderService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/OrderService.java index 0b78fa1..f88a388 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/OrderService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/OrderService.java @@ -1,8 +1,11 @@ package services; +import java.text.DecimalFormat; +import java.util.Calendar; import java.util.Collection; import java.util.Date; +import org.springframework.aop.AopInvocationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -10,6 +13,7 @@ import domain.Clerk; import domain.Consumer; +import domain.CreditCard; import domain.Order; import domain.OrderItem; import domain.ShoppingCart; @@ -69,10 +73,15 @@ private Order create(){ * Guarda o actualiza una order */ //req: 11.7 - public void save(Order order){ + public Order save(Order order){ Assert.notNull(order); - orderRepository.saveAndFlush(order); + Order result; + + //orderRepository.saveAndFlush(order); + result = orderRepository.save(order); + + return result; } /** @@ -89,9 +98,48 @@ public Collection findAll(){ return result; } + public Order findOne(int id){ + Order result; + + result = orderRepository.findOne(id); + Assert.notNull(result); + + return result; + } + //Other business methods ------------------------------------------------- + /** + * Guarda la Order desde ShoppingCart. NO USAR. Usar desde ShoppingCartService.saveCheckOut. + */ + public void saveFromShoppingCart(ShoppingCart shoppingCart, Order order){ + Assert.notNull(shoppingCart); + Assert.notNull(order); + + Collection orderItems; + double amount; + + //Check CreditCard + Assert.isTrue(this.checkCreditcard(order.getCreditCard()), "order.commit.error.creditcard.date"); + + // Adding OrderItems + orderItems = orderItemService.createByShoppingCart(shoppingCart, order); + order.setOrderItems(orderItems); + + + // Calculate amount + amount = this.amountCalculate(orderItems); + Assert.isTrue(amount == order.getAmount(), "order.commit.AmountChanged"); + + order = this.save(order); + + //Saving OrderItems + orderItems = orderItemService.createByShoppingCart(shoppingCart, order); + orderItemService.save(orderItems); + } + + /** * Crea una Order desde ShoppingCart. NO USAR. Usar desde ShoppingCartService.createCheckOut. */ @@ -117,9 +165,8 @@ public Order createFromShoppingCart(ShoppingCart shoppingCart, Consumer consumer result.setAmount(amount); // Adding Order to Consumer - consumer.addOrder(result); + result.setConsumer(consumer); - // consumerService.save(consumer); return result; } @@ -206,13 +253,17 @@ private double amountCalculate(Collection orderItems){ Assert.notEmpty(orderItems); double result; + DecimalFormat df; result = 0.0; + df = new DecimalFormat("#.00"); for (OrderItem orderItem : orderItems) { result += orderItem.getPrice() * orderItem.getUnits(); } - + + result = Double.parseDouble(df.format(result)); + return result; } @@ -224,7 +275,7 @@ public void cancelOrder(Order order){ Assert.notNull(order); Assert.isTrue(order.getId() != 0); Assert.isTrue(order.getConsumer().equals(consumerService.findByPrincipal()), "Only the owner can cancel the order"); - + Assert.isTrue(order.getCancelMoment() == null,"order.cancel.error.isCancelled"); Clerk clerk; clerk = clerkService.findByOrder(order); @@ -271,7 +322,7 @@ public void assignToClerkManual(Clerk clerk, Order order){ * Devuelven las orders no asignadas a ningún clerk siendo la primera la más antigua */ //ref: 18.3 - private Collection findAllNotAssigned(){ + public Collection findAllNotAssigned(){ Assert.isTrue(actorService.checkAuthority("ADMIN")||actorService.checkAuthority("CLERK"), "Only an admin or a clerk can list the orders"); Collection result; @@ -290,8 +341,11 @@ public double rateOrderCancelled(){ Assert.isTrue(actorService.checkAuthority("ADMIN")||actorService.checkAuthority("CLERK"), "Only an admin or a clerk can list the orders"); double result; - - result = orderRepository.rateOrderCancelled(); + try { + result = orderRepository.rateOrderCancelled(); + } catch (AopInvocationException e) { + result = 0; + } return result; } @@ -307,6 +361,57 @@ public void completedOrder(Order order) { this.save(order); } + + public Collection findAllByClerk(){ + Collection result; + Clerk clerk; + + clerk = clerkService.findByprincipal(); + + Assert.notNull(clerk); + + result = orderRepository.findAllByClerkId(clerk.getId()); + + return result; + } + + public Collection findAllByConsumer(){ + Collection result; + Consumer consu; + + consu = consumerService.findByPrincipal(); + + Assert.notNull(consu); + + result = orderRepository.findAllByConsumerId(consu.getId()); + + return result; + } + + /** + * Comprueba fecha creditCard + */ + private boolean checkCreditcard(CreditCard input){ + boolean result; + int actMonth, actYear; + Calendar act; + + result = true; + act = Calendar.getInstance(); + + actMonth = act.get(Calendar.MONTH); + actYear = act.get(Calendar.YEAR); + + if (input.getExpirationYear() == actYear) { + if(input.getExpirationMonth() < actMonth){ + result = false; + } + }else if (input.getExpirationYear() < actYear){ + result = false; + } + + return result; + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/ShoppingCartService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/ShoppingCartService.java index 25cf2d9..9f30aad 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/ShoppingCartService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/ShoppingCartService.java @@ -1,11 +1,15 @@ package services; +import java.util.ArrayList; +import java.util.Collection; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import domain.Consumer; +import domain.Content; import domain.Item; import domain.Order; import domain.ShoppingCart; @@ -43,6 +47,22 @@ public ShoppingCartService(){ //Simple CRUD methods ---------------------------------------------------- + /** + * Inicializa un carrito + */ + public ShoppingCart create(Consumer consumer){ + ShoppingCart result; + Collection content; + + result = new ShoppingCart(); + content = new ArrayList(); + + result.setConsumer(consumer); + result.setContents(content); + + return result; + } + /** * Guarda los cambios del carrito. Usar solo para comentarios. */ @@ -70,6 +90,7 @@ public Order createCheckOut(){ ShoppingCart shoppingCart; consumer = consumerService.findByPrincipal(); + Assert.notNull(consumer); shoppingCart = this.findByConsumer(consumer); // Create a order with their orderItems (none is persist) @@ -87,7 +108,7 @@ public void saveCheckOut(Order order, Consumer consumer){ Assert.notNull(consumer); Assert.isTrue(order.getConsumer().equals(consumer), "Only the owner can keep order"); - orderService.save(order); + orderService.saveFromShoppingCart(consumer.getShoppingCart(), order); this.emptyShoppingCart(consumer); } @@ -168,4 +189,14 @@ public void addComment(ShoppingCart shoppingCart, String comment){ shoppingCart.addComment(comment); shoppingCartRepository.save(shoppingCart); } + + public ShoppingCart finOneByShoppingCartId(int shoppingCartId){ + ShoppingCart shoppingCart; + + shoppingCart = shoppingCartRepository.findOne(shoppingCartId); + + Assert.isTrue(shoppingCart.getConsumer().equals(consumerService.findByPrincipal()), "Only the owner of the shopping cart can display it"); + + return shoppingCart; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/StorageService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/StorageService.java index b24ecb6..7495c53 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/StorageService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/StorageService.java @@ -1,5 +1,7 @@ package services; +import java.util.Collection; + import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; @@ -34,7 +36,7 @@ public StorageService(){ * USAR EN WareHouse. Devuelve WareHouse preparado para ser modificado. Necesita usar save para que persista en la base de datos */ //req: 17.5 - private Storage create(){ + public Storage create(){ Storage result; result = new Storage(); @@ -66,6 +68,16 @@ private void delete(Storage storage){ storageRepository.delete(storage); } + + public Storage findOne(int id){ + Storage result; + + result = storageRepository.findOne(id); + + Assert.notNull(result); + + return result; + } //Other business methods ------------------------------------------------- @@ -73,7 +85,7 @@ private void delete(Storage storage){ * Dado un wareHouse y un item, busca el storage */ //req: 17.5 - private Storage findByWareHouseAndItem(WareHouse wareHouse, Item item){ + public Storage findByWareHouseAndItem(WareHouse wareHouse, Item item){ Assert.notNull(wareHouse); Assert.notNull(item); @@ -148,7 +160,30 @@ public int quantityByWareHouseAndItem(WareHouse wareHouse, Item item){ storage = this.findByWareHouseAndItem(wareHouse, item); result = storage.getUnits(); + Assert.notNull(result, "No hay unidades en el almacen: " + wareHouse.getName()); + return result; } + + public Collection findAllByWarehouseId(int warehouseId) { + Assert.notNull(warehouseId); + + Collection result; + + result = storageRepository.findAllByWarehouseId(warehouseId); + + return result; + } + + public Collection findAllByItemId(int itemId) { + Assert.notNull(itemId); + + Collection result; + + result = storageRepository.findAllByItemId(itemId); + + return result; + } + } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/TaxService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/TaxService.java index 0ed7eda..0bf9e6c 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/TaxService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/TaxService.java @@ -7,12 +7,11 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import repositories.TaxRepository; import domain.Category; import domain.Item; import domain.Tax; -import repositories.TaxRepository; - @Service @Transactional public class TaxService { @@ -92,5 +91,14 @@ public Tax findByCategory(Category category){ return result; } + + public Tax findOne(int taxId) { + Tax result; + + result = taxRepository.findOne(taxId); + Assert.notNull(result, "Comment " + taxId + " don't exist"); + + return result; + } } diff --git a/WorkSpace/Acme-Supermarket/src/main/java/services/WareHouseService.java b/WorkSpace/Acme-Supermarket/src/main/java/services/WareHouseService.java index dc03e74..695b781 100644 --- a/WorkSpace/Acme-Supermarket/src/main/java/services/WareHouseService.java +++ b/WorkSpace/Acme-Supermarket/src/main/java/services/WareHouseService.java @@ -1,5 +1,6 @@ package services; +import java.util.ArrayList; import java.util.Collection; import org.springframework.beans.factory.annotation.Autowired; @@ -7,13 +8,13 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import repositories.WareHouseRepository; import domain.Item; import domain.Order; import domain.OrderItem; +import domain.Storage; import domain.WareHouse; -import repositories.WareHouseRepository; - @Service @Transactional public class WareHouseService { @@ -61,15 +62,31 @@ public Collection findAll(){ return result; } + /** + * Devuelve el warehouse con el id + */ + public WareHouse findOne(int id){ + WareHouse result; + + result = wareHouseRepository.findOne(id); + Assert.notNull(result); + + return result; + } + /** * Devuelve WareHouse preparado para ser modificado. Necesita usar save para que persista en la base de datos */ //req: 17.3 public WareHouse create(){ WareHouse result; + Collection storages; + storages = new ArrayList(); result = new WareHouse(); + result.setStorages(storages); + return result; } @@ -116,40 +133,66 @@ public void changeItemQuantity(WareHouse wareHouse, Item item, int quantity){ /** * Actualiza la cantidad de item en un WareHouse y de orderItem en una order */ - public void addItemToOrderItem(WareHouse wareHouse, Item item, int quantity, Order order){ - Assert.isTrue(storageService.quantityByWareHouseAndItem(wareHouse, item) >= quantity, "No se pueden añadir a una order mas items de los que hay en el WareHouse"); + public WareHouse addItemToOrderItem(Item item, int quantity, Order order) { + // Assert.isTrue(storageService.quantityByWareHouseAndItem(wareHouse, + // item) >= quantity, + // "No se pueden añadir a una order mas items de los que hay en el WareHouse"); + Assert.isTrue(clerkService.findByprincipal().equals(order.getClerk()), + "Only the clerk of the order can add items"); + Assert.isTrue(order.getCancelMoment() == null, "No se pueden servir unidades de un pedido cancelado"); + Assert.notNull(quantity, "No puedes pasar una cantidad vacia"); - Assert.isTrue(clerkService.findByprincipal().equals(order.getClerk()), "Only the clerk of the order can add items"); + WareHouse result; OrderItem orderItem; Collection orderItems; + Collection warehouses; int unitsServed; + + warehouses = wareHouseRepository.findAll(); + + result = null; orderItem = null; orderItems = order.getOrderItems(); - for(OrderItem o : orderItems) { - if(item.getSku().equals(o.getSku())) { + for (OrderItem o : orderItems) { + if (item.getSku().equals(o.getSku())) { orderItem = o; break; } } - + Assert.notNull(orderItem, "No existe OrderItem del Item pasado"); - + unitsServed = orderItem.getUnitsServed() + quantity; - - Assert.isTrue(unitsServed <= orderItem.getUnits(), "Se intentan añadir mas unidades de las solicitadas por el OrderItem"); - - storageService.subtractQuantityByWareHouseAndItem(wareHouse, item, quantity); - orderItem.setUnitsServed(unitsServed); - + + Assert.isTrue(unitsServed <= orderItem.getUnits(), + "Se intentan añadir mas unidades de las solicitadas por el OrderItem"); + for (WareHouse warehouse : warehouses) { + try { + if (storageService.quantityByWareHouseAndItem(warehouse, item) >= quantity) { + storageService.subtractQuantityByWareHouseAndItem(warehouse, + item, quantity); + orderItem.setUnitsServed(unitsServed); + result = warehouse; + break; + } + } catch (Exception e) { + result = null; + } + + } + Assert.notNull(result, "No hay suficientes unidades en los almacenes"); orderItemService.save(orderItem); + + return result; } /** * Elimina una cantidad de items del wareHouse */ //ref: 18.4 + @SuppressWarnings("unused") private void removeItemQuantity(WareHouse wareHouse, Item item, int quantityToEliminate){ int actualQuantity; Integer finalQuantity; diff --git a/WorkSpace/Acme-Supermarket/src/main/resources/PopulateDatabase.xml b/WorkSpace/Acme-Supermarket/src/main/resources/PopulateDatabase.xml index 4af4540..4fc8325 100644 --- a/WorkSpace/Acme-Supermarket/src/main/resources/PopulateDatabase.xml +++ b/WorkSpace/Acme-Supermarket/src/main/resources/PopulateDatabase.xml @@ -16,6 +16,30 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> + + + + + + + + + + + + + + + + + + + + + + + + @@ -251,6 +275,8 @@ + + @@ -674,35 +700,78 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + @@ -717,6 +786,7 @@ Chocolate + @@ -744,6 +814,7 @@ Smart-TV + @@ -768,6 +839,7 @@ Colonia + @@ -795,6 +867,7 @@ Carne + @@ -836,6 +909,79 @@ + + + + + + + + Tomates + Verduras + Frescos + + + + + + + + + + + + + + + + + + + + + + Lechugas + Verduras + Frescas + + + + + + + + + + + + + + + + + + + + + + Tablet + Buena + Electronica + + + + + + + + + + + + + + + @@ -944,6 +1090,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1098,23 +1280,44 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1152,7 +1355,7 @@ - + @@ -1168,7 +1371,7 @@ - + @@ -1274,6 +1477,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1465,4 +1713,80 @@ + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + + + + + + + + + + TV + Full-HD + Smart-TV + + + + + + + + + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/converters.xml b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/converters.xml index b2cd0c5..ba254c1 100644 --- a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/converters.xml +++ b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/converters.xml @@ -18,10 +18,65 @@ "> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/i18n-l10n.xml b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/i18n-l10n.xml index 80ee9e8..7078e14 100644 --- a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/i18n-l10n.xml +++ b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/i18n-l10n.xml @@ -25,13 +25,24 @@ /views/welcome/messages /views/administrator/messages - /views/customer/messages - /views/profile/messages + /views/consumer/messages + /views/clerk/messages /views/category/messages /views/item/messages /views/order/messages /views/shopping-cart/messages + /views/comment/messages + /views/warehouse/messages + /views/storage/messages + /views/content/messages + /views/tax/messages + /views/order-item/messages + /views/folder/messages + /views/message/messages + /views/about-us/messages + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/security.xml b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/security.xml index ecca80e..24a3969 100644 --- a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/security.xml +++ b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/security.xml @@ -34,24 +34,48 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - \ No newline at end of file + diff --git a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/tiles.xml index 3b9d3b4..247a341 100644 --- a/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/resources/spring/config/tiles.xml @@ -20,12 +20,21 @@ /views/administrator/tiles.xml /views/consumer/tiles.xml - /views/profile/tiles.xml + /views/clerk/tiles.xml /views/category/tiles.xml /views/item/tiles.xml /views/order/tiles.xml /views/shopping-cart/tiles.xml + /views/comment/tiles.xml + /views/warehouse/tiles.xml + /views/storage/tiles.xml + /views/content/tiles.xml + /views/tax/tiles.xml + /views/order-item/tiles.xml + /views/folder/tiles.xml + /views/message/tiles.xml + /views/about-us/tiles.xml \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/favicon.ico b/WorkSpace/Acme-Supermarket/src/main/webapp/favicon.ico index 8ed7992..17d62b6 100644 Binary files a/WorkSpace/Acme-Supermarket/src/main/webapp/favicon.ico and b/WorkSpace/Acme-Supermarket/src/main/webapp/favicon.ico differ diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/about-us.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/about-us.jsp new file mode 100644 index 0000000..8c3c5a6 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/about-us.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/messages.properties new file mode 100644 index 0000000..e69de29 diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/messages_es.properties new file mode 100644 index 0000000..e69de29 diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles.xml new file mode 100644 index 0000000..0315717 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles_es.xml new file mode 100644 index 0000000..9c0574f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/about-us/tiles_es.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/list.jsp index 67193cc..19bc481 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/list.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/list.jsp @@ -13,112 +13,147 @@ - +

+ name="consumerMoreOrders" requestURI="${requestURI}" id="row"> - + + + + - +

+ name="consumerSpentMoreMoney" requestURI="${requestURI}" id="row"> - - + + + + - +

+ name="bestSellingItem" requestURI="${requestURI}" id="row"> - + + + + - +

+ name="worstSellingItem" requestURI="${requestURI}" id="row"> - + + + + - +

+ name="clerkMoreOrders" requestURI="${requestURI}" id="row"> - - - + + + + + - +

+ name="clerkLessOrders" requestURI="${requestURI}" id="row"> - - + + + + + - +

+ name="consumerCancelledMoreOrders" requestURI="${requestURI}" id="row"> - - + + + + - +

+ name="consumerCancelledLessOrders" requestURI="${requestURI}" id="row"> - + + + + - - - - - - +

+ + + + + + + + + + -
- +

+ name="itemMoreComment" requestURI="${requestURI}" id="row"> - + + + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages.properties index 4595f68..b2839cc 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages.properties @@ -7,20 +7,22 @@ # http://www.tdg-seville.info/License.html -administrator.consumerMoreOrders = The consumer/s who has/have placed more orders. -administrator.consumerSpentMoreMoney = The consumer/s who has/have spent more money on their orders. -administrator.bestSellingItem = The best-selling item/s in the inventory. -administrator.worstSellingItem = The worst-selling item/s in the inventory. +administrator.consumerMoreOrders = The consumer/s who has/have placed more orders. +administrator.consumerSpentMoreMoney = The consumer/s who has/have spent more money on their orders. +administrator.bestSellingItem = The best-selling item/s in the inventory. +administrator.worstSellingItem = The worst-selling item/s in the inventory. -administrator.clerkMoreOrders = The clerk/s who has/have served and delivered more orders. -administrator.clerkLessOrders = The clerk/s who has/have served and delivered less orders. -administrator.consumerCancelledMoreOrders = The consumer/s who has/have cancelled more orders. -administrator.consumerCancelledLessOrders = The consumer/s who has/have cancelled less orders. -administrator.ratioCancelledCurrentMonth = The ratio of orders that have been cancelled during the current month. +administrator.clerkMoreOrders = The clerk/s who has/have served and delivered more orders. +administrator.clerkLessOrders = The clerk/s who has/have served and delivered less orders. +administrator.consumerCancelledMoreOrders = The consumer/s who has/have cancelled more orders. +administrator.consumerCancelledLessOrders = The consumer/s who has/have cancelled less orders. +administrator.ratioCancelledCurrentMonth = The ratio of orders that have been cancelled during the current month. -administrator.itemMoreComment = The item/s that has/have more comments. +administrator.ratio.null = Insufficient data: There are no orders cancelled and/or placed this month. -consumer.name = Name -item.name = Name -clerk.name = Name -ratio.name = Name \ No newline at end of file +administrator.itemMoreComment = The item/s that has/have more comments. + +consumer.name = Name +item.name = Name +clerk.name = Name +ratio.name = Ratio \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages_es.properties index 86b355b..3236d2c 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/messages_es.properties @@ -7,20 +7,22 @@ # http://www.tdg-seville.info/License.html -administrator.consumerMoreOrders = El cliente que ha identificado más pedidos. -administrator.consumerSpentMoreMoney = El cliente que ha gastado más dinero en sus pedidos. -administrator.bestSellingItem = El item más vendido del inventario. -administrator.worstSellingItem = El item peor vendido del inventario. +administrator.consumerMoreOrders = El cliente que ha realizado más pedidos. +administrator.consumerSpentMoreMoney = El cliente que ha gastado más dinero en sus pedidos. +administrator.bestSellingItem = El artículo más vendido del inventario. +administrator.worstSellingItem = El artículo peor vendido del inventario. -administrator.clerkMoreOrders = El empleado que ha servido y entregado más pedidos. -administrator.clerkLessOrders = El empleado que ha servido y entregado menos pedidos. -administrator.consumerCancelledMoreOrders = El cliente que ha cancelado más pedidos. -administrator.consumerCancelledLessOrders = El cliente que ha cancelado menos pedidos. -administrator.ratioCancelledCurrentMonth = El ratio de pedidos que han sido cancelados durante el mes actual. +administrator.clerkMoreOrders = El empleado que ha servido y entregado más pedidos. +administrator.clerkLessOrders = El empleado que ha servido y entregado menos pedidos. +administrator.consumerCancelledMoreOrders = El cliente que ha cancelado más pedidos. +administrator.consumerCancelledLessOrders = El cliente que ha cancelado menos pedidos. +administrator.ratioCancelledCurrentMonth = El ratio de pedidos que han sido cancelados durante el mes actual. -administrator.itemMoreComment = El item que tiene más comentarios. +administrator.ratio.null = Datos insuficientes: No hay ningún pedido cancelado y/o realizado este mes. -consumer.name = Nombre -item.name = Nombre -clerk.name = Nombre -ratio.name = Nombre \ No newline at end of file +administrator.itemMoreComment = El artículo que tiene más comentarios. + +consumer.name = Nombre +item.name = Nombre +clerk.name = Nombre +ratio.name = Ratio \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles.xml index 721d040..5f7f5f7 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles.xml @@ -17,7 +17,7 @@ - + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles_es.xml index ecb914c..0ddd484 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/administrator/tiles_es.xml @@ -17,7 +17,7 @@ - + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/list.jsp index 7f8463a..f4e9df9 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/list.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/list.jsp @@ -13,35 +13,47 @@ + name="categories" requestURI="${requestURI}" id="row_Category"> - + - + + + - + + + - - + + - + + + - + + +
-
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages.properties index 061a233..76fbe47 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages.properties @@ -14,4 +14,6 @@ category.list.description = Description category.list.picture = Picture category.list.taxName = Tax name category.list.taxValue = Tax value -category.list.create = Create \ No newline at end of file +category.list.create = Create + +category.commit.error = Cannot commit this operation \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages_es.properties index 7463a70..e269f76 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/category/messages_es.properties @@ -14,4 +14,6 @@ category.list.description = Descripci category.list.picture = Imagen category.list.taxName = Nombre de la tasa category.list.taxValue = Valor de la tasa -category.list.create = Crear \ No newline at end of file +category.list.create = Crear + +category.commit.error = No se puede completar su operación \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/create.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/create.jsp new file mode 100644 index 0000000..ad212f0 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/create.jsp @@ -0,0 +1,79 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + "/> +   + " + onclick="javascript: relativeRedir('/');" /> +
+ +
+ +
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages.properties new file mode 100644 index 0000000..9f3f71f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages.properties @@ -0,0 +1,22 @@ +# messages.properties +# +# Copyright (C) 2013 Universidad de Sevilla +# +# The use of this project is hereby constrained to the conditions of the +# TDG Licence, a copy of which you may download from +# http://www.tdg-seville.info/License.html + +clerk.name = Name +clerk.surname = Surname +clerk.email = Email +clerk.phone = Phone +clerk.username = Username +clerk.password = Password +clerk.order = Pedido + +clerk.save = Save +clerk.cancel = Cancel + +clerk.commit.error = Cannot commit this operation +clerk.commit.ok = Succesful register + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages_es.properties new file mode 100644 index 0000000..43d2172 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/messages_es.properties @@ -0,0 +1,21 @@ +# messages_es.properties +# +# Copyright (C) 2013 Universidad de Sevilla +# +# The use of this project is hereby constrained to the conditions of the +# TDG Licence, a copy of which you may download from +# http://www.tdg-seville.info/License.html + +clerk.name = Nombre +clerk.surname = Apellidos +clerk.email = Correo electrónico +clerk.phone = Teléfono +clerk.username = Nombre de usuario +clerk.password = Contraseña +clerk.order = Order + +clerk.save = Guardar +clerk.cancel = Cancelar + +clerk.commit.error = No se pudo realizar la operación +clerk.commit.ok = Registro correcto diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles.xml new file mode 100644 index 0000000..ce68677 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles_es.xml similarity index 57% rename from WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles_es.xml rename to WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles_es.xml index 02d7bd4..94c6fb5 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/clerk/tiles_es.xml @@ -16,14 +16,9 @@ - - - - - - - - + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/create.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/create.jsp new file mode 100644 index 0000000..3dd476c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/create.jsp @@ -0,0 +1,53 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + "/> +   + " + onclick="javascript: relativeRedir('/comment/list.do?itemId=${comment.item.id}');" /> +
+ +
+ + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/delete.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/delete.jsp new file mode 100644 index 0000000..bf6ad71 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/delete.jsp @@ -0,0 +1,41 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ + + + + + + + + +

:

+ + +

:

+ + +

:

+ + +

:

+ + + " + onclick="return confirm('')" /> +   + " + onclick="javascript: relativeRedir('/comment/list.do?itemId=${item.id}');" /> + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/list.jsp new file mode 100644 index 0000000..34dbc20 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/list.jsp @@ -0,0 +1,65 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages.properties new file mode 100644 index 0000000..79f13ae --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages.properties @@ -0,0 +1,20 @@ +comment.item = Concerning the item +comment.itemPlural = Concerning the item + +comment.delete = Delete + +comment.userName = User name +comment.anonymous = Anonymous +comment.title = Title +comment.text = Text +comment.rating = Rating + +comment.create = Create a new comment + +comment.create.save = Save +comment.create.cancel = Cancel + +comment.confirm.delete = Delete this comment? +comment.delete.cancel = Cancel + +comment.commit.error = Cannot commit this operation \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages_es.properties new file mode 100644 index 0000000..a6bff08 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/messages_es.properties @@ -0,0 +1,20 @@ +comment.item = Referente al artículo +comment.itemPlural = Referentes al artículo + +comment.delete = Eliminar + +comment.userName = Nombre de usuario +comment.anonymous = Anónimo +comment.title = Título +comment.text = Texto +comment.rating = Puntuación + +comment.create = Crear un nuevo comentario + +comment.create.save = Guardar +comment.create.cancel = Cancelar + +comment.confirm.delete = ¿Está seguro de que quiere borrar el comentario seleccionado? +comment.delete.cancel = Cancelar + +comment.commit.error = No se puede realizar la operación \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles.xml new file mode 100644 index 0000000..a14fe08 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles_es.xml new file mode 100644 index 0000000..2177927 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/comment/tiles_es.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/create.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/create.jsp index 41bbe39..206708d 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/create.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/create.jsp @@ -1,13 +1,3 @@ -<%-- - * action-1.jsp - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - --%> - <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> @@ -24,57 +14,65 @@ + + + + + + - +
- +
- +
- +
- - + + + - - + +
- - + + - - + +
+ "/> + value=""/>   " - onclick="javascript: relativeRedir('../../');" /> + value="" + onclick="javascript: relativeRedir('/');" />
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/list.jsp new file mode 100644 index 0000000..c9b7c62 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/list.jsp @@ -0,0 +1,47 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages.properties index 4172e3e..f793fda 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages.properties @@ -6,11 +6,16 @@ # TDG Licence, a copy of which you may download from # http://www.tdg-seville.info/License.html -consumer.create.name = Name -consumer.create.surname = Surname -consumer.create.email = Email -consumer.create.phone = Phone -consumer.create.username = Username -consumer.create.password = Password -consumer.create.save = Save -consumer.create.cancel = Cancel \ No newline at end of file +consumer.name = Name +consumer.surname = Surname +consumer.email = Email +consumer.phone = Phone +consumer.username = Username +consumer.password = Password + +consumer.save = Save +consumer.cancel = Cancel + +consumer.commit.error = Cannot commit this operation +consumer.commit.ok = Succesful register + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages_es.properties index 4c9a8cb..307c355 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/messages_es.properties @@ -6,11 +6,15 @@ # TDG Licence, a copy of which you may download from # http://www.tdg-seville.info/License.html -consumer.create.name = Nombre -consumer.create.surname = Apellidos -consumer.create.email = Correo electrónico -consumer.create.phone = Teléfono -consumer.create.username = Nombre de usuario -consumer.create.password = Contraseña -consumer.create.save = Guardar -consumer.create.cancel = Cancelar \ No newline at end of file +consumer.name = Nombre +consumer.surname = Apellidos +consumer.email = Correo electrónico +consumer.phone = Teléfono +consumer.username = Nombre de usuario +consumer.password = Contraseña + +consumer.save = Guardar +consumer.cancel = Cancelar + +consumer.commit.error = No se pudo realizar la operación +consumer.commit.ok = Registro correcto diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles.xml index c47116c..dab268a 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles.xml @@ -1,15 +1,5 @@ - - @@ -21,4 +11,9 @@ + + + + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles_es.xml index bd6bee6..c6c0987 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/consumer/tiles_es.xml @@ -20,5 +20,10 @@ + + + + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/edit.jsp new file mode 100644 index 0000000..f304a2c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/edit.jsp @@ -0,0 +1,43 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ + + + + + + + + + + : + + + +

+ + + " + onclick="return confirm('')"/>  + + " + onclick="return confirm('')" />  + + " + onclick="javascript: relativeRedir('content/consumer/list.do?shoppingCartId=${content.shoppingCart.id}');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/list.jsp new file mode 100644 index 0000000..eb9e714 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/list.jsp @@ -0,0 +1,88 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +
+ + " />  +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages.properties new file mode 100644 index 0000000..e536a09 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages.properties @@ -0,0 +1,27 @@ +content.units = Units + +content.item = Item +content.item.name = Name +content.item.description = Description +content.item.price = Unit Price +content.item.price.tax = Unit Price without Tax + +content.shoppingCart.comment = Comments + +content.edit = Edit item +content.edit.url = Edit + +content.delete = Delete + +content.cancel = Cancel +content.save = Save + +content.commit.error = Cannot commit this operation + +content.checkout = Checkout + +content.save.advise = You are going to change the number of units, are you sure? +content.delete.advise = You are going to remove an item from the shopping cart, are you sure? + +content.change = Change +content.exchangeRate = The prices are shown in \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages_es.properties new file mode 100644 index 0000000..b5ee9b1 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/messages_es.properties @@ -0,0 +1,27 @@ +content.units = Unidades + +content.item = Artículo +content.item.name = Nombre +content.item.description = Descripción +content.item.price = Precio Unidad +content.item.price.tax = Precio Unidad sin Tasa + +content.shoppingCart.comment = Comentarios + +content.edit = Editar artículo +content.edit.url = Editar + +content.delete = Borrar + +content.cancel = Cancelar +content.save = Guardar + +content.commit.error = No se pudo completar la operación + +content.checkout = Realizar pedido + +content.save.advise = Usted va a cambiar el número de unidades, ¿está seguro? +content.delete.advise = Usted va a eliminar un artículo de su carrito, ¿está seguro? + +content.change = Cambiar +content.exchangeRate = Los precios se muestran en diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles.xml new file mode 100644 index 0000000..e396e0a --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles_es.xml new file mode 100644 index 0000000..e228214 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/content/tiles_es.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/edit.jsp new file mode 100644 index 0000000..e024644 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/edit.jsp @@ -0,0 +1,43 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + : + + + +
+ + + " />  + + " + onclick="return confirm('')" />  + + " + onclick="javascript: relativeRedir('folder/actor/list.do');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/list.jsp new file mode 100644 index 0000000..7bd4ef6 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/list.jsp @@ -0,0 +1,61 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages.properties new file mode 100644 index 0000000..c651fed --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages.properties @@ -0,0 +1,15 @@ +folder.name = Name +folder.messages = Show messages + + +folder.edit = Edit +folder.delete = Delete +folder.create = Create folder +folder.save = Save +folder.cancel = Cancel + +folder.editHeader = Options + +folder.commit.error = Cannot commit this operation + +folder.confirm.delete = Are you sure you want to delete the folder? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages_es.properties new file mode 100644 index 0000000..03cecf6 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/messages_es.properties @@ -0,0 +1,14 @@ +folder.name = Nombre +folder.messages = Ver mensajes + +folder.edit = Editar +folder.delete = Eliminar +folder.create = Crear carpeta +folder.save = Guardar +folder.cancel = Cancelar + +folder.editHeader = Opciones + +folder.commit.error = No se pudo realizar la operación + +folder.confirm.delete = ¿Estas seguro de que deseas borrar la carpeta? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles.xml new file mode 100644 index 0000000..5ccfcc0 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles_es.xml new file mode 100644 index 0000000..4797f68 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/folder/tiles_es.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/edit.jsp index 673e2ac..76e09c3 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/edit.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/edit.jsp @@ -42,7 +42,7 @@ : - +
@@ -63,7 +63,7 @@ : - +
@@ -71,29 +71,16 @@ : - - - - - - - - - - - - - - + + +
- - " />  - + " />  " @@ -101,7 +88,7 @@ " - onclick="javascript: relativeRedir('item/administrator/list.do');" /> + onclick="javascript: relativeRedir('item/administrator/list.do?keyword=');" />
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/list.jsp index 236cd8d..72abde6 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/list.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/list.jsp @@ -1,57 +1,123 @@ <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> - + <%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> - + + +
+ + " />  +
+ +
+ + + +
+ + name="items" requestURI="${requestURI}" id="row_Item"> - - + ')"> + + - + - + - - + - + - - + + + + + + + + + - - + + - + + + - + + + + + + + + - - + + + + - - + + + + + + + + - + + - + + + +
+ + " />  +
+ +
@@ -61,8 +127,11 @@
- - - - "/> - \ No newline at end of file + + + + + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages.properties index 957ba03..dd2ef1a 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages.properties @@ -2,9 +2,15 @@ item.sku = SKU item.category = Category item.name = Name item.price = Price +item.price.tax = Price without Tax item.description = Description item.tags = Tags item.picture = Picture +item.comments = Comments + +item.exchangeRate = The prices are shown in + +item.storage = See storages in warehouses item.add = Add to shopping cart item.edit = Edit @@ -12,7 +18,13 @@ item.create = Create item.save = Save item.delete = Delete item.cancel = Cancel +item.search = Search +item.change = Change item.confirm.delete = Delete this item? -item.search.button = Search \ No newline at end of file +item.search.button = Search + +item.commit.error = Cannot commit this operation +item.add.ok = Item added +item.add.advise = You are goind to add this item to your shopping cart, are you sure? \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages_es.properties index 7f0bebb..c2b0f31 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/messages_es.properties @@ -2,9 +2,15 @@ item.sku = SKU item.category = Categoría item.name = Nombre item.price = Precio +item.price.tax = Precio sin Tasa item.description = Descripción item.tags = Etiquetas item.picture = Foto +item.comments = Comentarios + +item.exchangeRate = Los precios se muestran en + +item.storage = Ver disponibilidad en almacenes item.add = Añadir al carrito item.edit = Editar @@ -12,7 +18,13 @@ item.create = Crear item.save = Salvar item.delete = Borrar item.cancel = Cancelar +item.search = Buscar +item.change = Cambiar + +item.confirm.delete = ¿Está seguro de que quiere borrar el artículo seleccionado? -item.confirm.delete = ¿Está seguro de que quiere borrar el objeto seleccionado? +item.search.button = Buscar -item.search.button = Buscar \ No newline at end of file +item.commit.error = No se puede completar su operación +item.add.ok = Artículo añadido +item.add.advise = Va a añadir este artículo a su carrito, ¿está seguro? \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles.xml index 395b014..90d0fef 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles.xml @@ -5,7 +5,7 @@ - + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles_es.xml index 6c37e77..3639f37 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/item/tiles_es.xml @@ -5,7 +5,7 @@ - + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/footer.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/footer.jsp index f631df9..29b843e 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/footer.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/footer.jsp @@ -10,10 +10,12 @@ <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
- + +
Copyright © Acme-Supermarket Co., Inc. \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/header.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/header.jsp index af017f5..3a2ab90 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/header.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/header.jsp @@ -9,29 +9,33 @@ --%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> - +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%>
- Acme-Supermarket Co., Inc. + + ${cookie['customName'].value} +
+ +
    -
  • +
  • -
  • +
    • -
    • +
    • @@ -45,19 +49,19 @@
  • -
  • -
  • +
  • +
  • -
  • +
  • -
  • +
  • -
  • +
  • @@ -72,3 +76,5 @@ en | es
+ + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages.properties index 076bf3d..792a0c1 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages.properties @@ -27,4 +27,6 @@ master.page.list.consumers = Consumers master.page.list.orders = Orders master.page.messages = Messages -master.page.logout = Logout \ No newline at end of file +master.page.logout = Logout + +master.page.aboutUs = About us \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages_es.properties index fcfdbbf..94b531a 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/master-page/messages_es.properties @@ -12,7 +12,7 @@ master.page.login = Entrar master.page.shopping-cart = Carrito master.page.orders = Pedidos -master.page.dashboard = Tablón +master.page.dashboard = Panel master.page.new-clerk = Nuevo Empleado master.page.warehouses = Almacenes @@ -27,4 +27,6 @@ master.page.list.consumers = Consumidores master.page.list.orders = Pedidos master.page.messages = Mensajes -master.page.logout = Salir \ No newline at end of file +master.page.logout = Salir + +master.page.aboutUs = Sobre nosotros \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/create.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/create.jsp new file mode 100644 index 0000000..390c53c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/create.jsp @@ -0,0 +1,53 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + : + + + +
+ + + + : + + + +
+ + + : + + + +
+ + + " />  + + " + onclick="javascript: relativeRedir('folder/actor/list.do');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/display.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/display.jsp new file mode 100644 index 0000000..0f5397f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/display.jsp @@ -0,0 +1,64 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
:
: + + +   + + + + +
:
: +   + +
:
:
+
+ + +
+ + + +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/edit.jsp new file mode 100644 index 0000000..5bb529d --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/edit.jsp @@ -0,0 +1,40 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + : + + + +
+ + + " />  + + " + onclick="javascript: relativeRedir('message/actor/display.do?messageId=${messa.id}');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/list.jsp new file mode 100644 index 0000000..8f58e8c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/list.jsp @@ -0,0 +1,55 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ + + + + + + + + + + + + + ')"> + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages.properties new file mode 100644 index 0000000..6406670 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages.properties @@ -0,0 +1,21 @@ +message.folder = Folder + +message.name = Name +message.moment = Moment +message.subject = Subject +message.body = Body +message.recipients = Recipients +message.sender = Sender +message.folders = Folders + +message.edit = Edit +message.display = Display +message.delete = Remove from folder +message.create = Send message +message.save = Save +message.cancel = Cancel +message.addToFolder = Add to Folders + +message.commit.error = Cannot commit this operation + +message.confirm.delete = Are you sure you want to delete the message? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages_es.properties new file mode 100644 index 0000000..aa12718 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/messages_es.properties @@ -0,0 +1,21 @@ +message.folder = Carpeta + +message.name = Nombre +message.moment = Fecha envio +message.subject = Asunto +message.body = Cuerpo +message.recipients = Destinatarios +message.sender = Remitente +message.folders = Carpetas + +message.edit = Editar +message.display = Ver +message.delete = Eliminar de la carpeta +message.create = Enviar mensaje +message.save = Guardar +message.cancel = Cancelar +message.addToFolder = Añadir a carpetas + +message.commit.error = No se pudo realizar la operación + +message.confirm.delete = ¿Estas seguro de que deseas borrar el mensaje? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles.xml new file mode 100644 index 0000000..c5d71d6 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles_es.xml new file mode 100644 index 0000000..c308fae --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/message/tiles_es.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/confirm.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/confirm.jsp new file mode 100644 index 0000000..4305de2 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/confirm.jsp @@ -0,0 +1,22 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + +
+
+ + +" + onclick="javascript: relativeRedir('order-item/clerk/list.do?orderId=${orderId}');" /> +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/list.jsp new file mode 100644 index 0000000..f1eefc0 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/list.jsp @@ -0,0 +1,90 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+ +
+ +
+ + " />  +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +" + onclick="javascript: relativeRedir('order/clerk/list.do');" /> +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages.properties new file mode 100644 index 0000000..b25dd61 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages.properties @@ -0,0 +1,28 @@ +orderItem.serve = Serve + +orderItem.order = Order +orderItem.item = Item + +orderItem.sku = SKU +orderItem.name = Name +orderItem.price = Price +orderItem.price.tax = Price without Tax +orderItem.units = Units +orderItem.unitsServed = Units served + +orderItem.unitsToServe = Units to serve + +orderItem.serve = Serve +orderItem.cancel = Cancel +orderItem.return = Return + +orderItem.commit.error = Cannot commit this operation + +orderItem.confirm = You have added the units from the warehouse + +orderItem.change = Change + +orderItem.exchangeRate = The prices are shown in + +orderItem.commit.error.warehouse = There aren't enough units in the warehouses +orderItem.commit.error.quantity = You cannot pass an empty quantity diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages_es.properties new file mode 100644 index 0000000..31b26a0 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/messages_es.properties @@ -0,0 +1,28 @@ +orderItem.serve = Servir + +orderItem.order = Pedido +orderItem.item = Artículo + +orderItem.sku = SKU +orderItem.name = Nombre +orderItem.price = Precio +orderItem.price.tax = Precio sin Tasa +orderItem.units = Unidades +orderItem.unitsServed = Unidades servidas + +orderItem.unitsToServe = Unidades para servir + +orderItem.serve = Servir +orderItem.cancel = Cancelar +orderItem.return = Volver + +orderItem.commit.error = No se puede completar su operación + +orderItem.confirm = Has añadido las unidades del almacén + +orderItem.change = Cambiar + +orderItem.exchangeRate = Los precios se muestran en + +orderItem.commit.error.warehouse = No hay suficientes unidades en los almacenes +orderItem.commit.error.quantity = No puedes pasar una cantidad vacía diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/serve.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/serve.jsp new file mode 100644 index 0000000..544e300 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/serve.jsp @@ -0,0 +1,58 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+

:

+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + "/> + + " + onclick="javascript: relativeRedir('order-item/clerk/list.do?orderId=${orderId}');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles.xml new file mode 100644 index 0000000..41a7a0e --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles_es.xml new file mode 100644 index 0000000..5171a7e --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order-item/tiles_es.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/create.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/create.jsp new file mode 100644 index 0000000..6651f44 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/create.jsp @@ -0,0 +1,118 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +
+ " />  +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ +
+
+ +

:

+ + + " + onclick="return confirm('')"/> +   + " + onclick="javascript: relativeRedir('shopping-cart/consumer/list.do');" /> +
+ +
+
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/list.jsp index 8340557..743d932 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/list.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/list.jsp @@ -1,41 +1,147 @@ <%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> + pageEncoding="ISO-8859-1"%> <%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> - + + +
+ " />  +
+ +
+ + + +
+ + + name="orders" requestURI="${requestURI}" id="row_order"> + + + + + + ')"> + + + + + + + - - - - - + + + + + + + + + - - + + + + - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages.properties index b8dfdf1..108a4c6 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages.properties @@ -1,7 +1,39 @@ -order.ticker = Ticker -order.placementMoment = Placement Moment -order.deliveryMoment = Delivery Moment -order.cancelMoment = Cancel Moment -order.amount = Amount -order.clerk = Clerk -order.consumer = Consumer \ No newline at end of file +order.ticker = Ticker +order.placementMoment = Placement Moment +order.address = Address +order.deliveryMoment = Delivery Moment +order.cancelMoment = Cancel Moment +order.creditCard = Credit Card +order.creditCard.brandName = Brand Name +order.creditCard.cvvCode = CVV Code +order.creditCard.expirationMonth = Expiration Month +order.creditCard.expirationYear = Expiration Year +order.creditCard.holderName = Holder Name +order.creditCard.number = Number +order.creditCard.number.list = Credit Card Number +order.amount = Amount +order.clerk = Clerk +order.consumer = Consumer +order.orderItems = List of Items to serve the Order + +order.edit = Edit +order.checkout = Checkout +order.delete = Cancel order +order.confirm.delete = This order will be canceled +order.cancel = Cancel +order.cancel.advise = You are going to cancel this order, are you sure? + +order.commit.error.creditcard.date = Invalid CreditCard date + +order.commit.create.error = Cannot commit this operation +order.commit.error = Cannot cancel the order +order.commit.ok = Order canceled +order.self-assign = Assign + +order.self-assign.error = Cannot commit this operation +order.self-assign.ok = The operation was successful + +order.checkout.advise = The set of items of your shopping cart will be ordered, are you sure? + +order.change = Change +order.exchangeRate = The prices are shown in \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages_es.properties index b8e6482..332aaa9 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/messages_es.properties @@ -1,7 +1,38 @@ -order.ticker = Ticker -order.placementMoment = Fecha de encargo -order.deliveryMoment = Fecha de entrega -order.cancelMoment = Fecha de cancelación -order.amount = Coste -order.clerk = Empleado -order.consumer = Consumidor \ No newline at end of file +order.ticker = Ticker +order.placementMoment = Fecha de encargo +order.address = Dirección +order.deliveryMoment = Fecha de entrega +order.cancelMoment = Fecha de cancelación +order.creditCard = Tarjeta de crédito +order.creditCard.brandName = Tipo de tarjeta +order.creditCard.cvvCode = Código CVV +order.creditCard.expirationMonth = Mes de expiración +order.creditCard.expirationYear = Año de expiración +order.creditCard.holderName = Nombre del titular +order.creditCard.number = Número +order.creditCard.number.list = Número de la tarjeta de crédito +order.amount = Coste +order.clerk = Empleado +order.consumer = Consumidor +order.orderItems = Lista de Artículos para servir el Pedido + +order.edit = Editar +order.checkout = Realizar pedido +order.delete = Cancelar pedido +order.confirm.delete = Este pedido será cancelado +order.cancel = Cancelar +order.cancel.advise = Va a cancelar este pedido, ¿está usted seguro? + +order.commit.error.creditcard.date = Fecha de la tarjeta de crédito incorrecta +order.commit.create.error = No se pudo realizar la operación +order.commit.error = No se puedo cancelar el pedido +order.commit.ok = Pedido cancelado +order.self-assign = Asignar + +order.self-assign.error = No se pudo realizar la operación +order.self-assign.ok = La operación se realizó correctamente + +order.checkout.advise = El conjunto de artículo de su carrito será pedido, ¿está seguro? + +order.change = Cambiar +order.exchangeRate = Los precios se muestran en \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles.xml index 4f6519e..992f631 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles.xml @@ -9,4 +9,9 @@ + + + + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles_es.xml index 4ed1dc8..c1df8c2 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/order/tiles_es.xml @@ -9,4 +9,9 @@ + + + + +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-1.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-1.jsp deleted file mode 100644 index b9a0c82..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-1.jsp +++ /dev/null @@ -1,19 +0,0 @@ -<%-- - * action-1.jsp - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - --%> - -<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> - -<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> -<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> -<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> -<%@taglib prefix="display" uri="http://displaytag.sf.net"%> - -

diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-2.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-2.jsp deleted file mode 100644 index 5560ed8..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/action-2.jsp +++ /dev/null @@ -1,19 +0,0 @@ -<%-- - * action-2.jsp - * - * Copyright (C) 2013 Universidad de Sevilla - * - * The use of this project is hereby constrained to the conditions of the - * TDG Licence, a copy of which you may download from - * http://www.tdg-seville.info/License.html - --%> - -<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> - -<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> -<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> -<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> -<%@taglib prefix="display" uri="http://displaytag.sf.net"%> - -

diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages.properties deleted file mode 100644 index ad1c042..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages.properties +++ /dev/null @@ -1,10 +0,0 @@ -# messages.properties -# -# Copyright (C) 2013 Universidad de Sevilla -# -# The use of this project is hereby constrained to the conditions of the -# TDG Licence, a copy of which you may download from -# http://www.tdg-seville.info/License.html - -profile.action.1 = This is action 1 in the profile -profile.action.2 = This is action 2 in the profile \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages_es.properties deleted file mode 100644 index 153281b..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/messages_es.properties +++ /dev/null @@ -1,10 +0,0 @@ -# messages_es.properties -# -# Copyright (C) 2013 Universidad de Sevilla -# -# The use of this project is hereby constrained to the conditions of the -# TDG Licence, a copy of which you may download from -# http://www.tdg-seville.info/License.html - -profile.action.1 = Esta es la acción 1 del perfil -profile.action.2 = Esta es la acción 2 del perfil \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles.xml deleted file mode 100644 index 45086aa..0000000 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/profile/tiles.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/security/login.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/security/login.jsp index 3f79267..f4cd9ec 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/security/login.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/security/login.jsp @@ -40,4 +40,13 @@ " /> - \ No newline at end of file + + + + + + + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/edit.jsp new file mode 100644 index 0000000..454343c --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/edit.jsp @@ -0,0 +1,45 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + +
+ +
+ +

+ + + + : + + + +

+ + + " + onclick="return confirm('')"/>  + + " + onclick="javascript: relativeRedir('shopping-cart/consumer/list.do');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/list.jsp index adbfc22..faaaf34 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/list.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/list.jsp @@ -12,52 +12,32 @@ - + name="shoppingCarts" requestURI="${requestURI}" id="row_SCart"> + + + + + + + + + + + + + + - ')"> - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - ')"> - - - - - " - onclick="javascript: relativeRedir('/');" /> \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages.properties index 705eaec..a0d7354 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages.properties @@ -1,10 +1,19 @@ -item.picture = Picture -item.name = Name -item.price = Price -item.content = Units - -item.delete = Delete -item.confirm.delete = Delete this item? -item.checkout = Checkout this shopping cart -item.confirm.checkout = Are you sure you want to checkout? -item.save = Save +shoppingCart.checkout = Checkout this shopping cart +shoppingCart.confirm.checkout = Are you sure you want to checkout? + +shoppingCart.comments = Comments +shoppingCart.contents = List of Items + +shoppingCart.comments.create = Add comment +shoppingCart.comments.edit = Edit +shoppingCart.comments.edit.url = Edit comment +shoppingCart.comments.save = Save +shoppingCart.comments.delete = Delete +shoppingCart.comments.cancel = Cancel +shoppingCart.commit.error = Cannot commit this operation + +shoppingCart.comment.save.advise = You are going to save the shopping cart's comments, are you sure? + +shoppingCart.comments.addComment = To add a comment, add a "," after the last one and write what you want. +shoppingCart.comments.editComment = To edit a comment, modify it in the input box. +shoppingCart.comments.deleteComment = To delete a comment, remove the "," and the comment to erase. \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages_es.properties index 0c7cf1b..a99dfb5 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/messages_es.properties @@ -1,10 +1,19 @@ -item.picture = Imagen -item.name = Nombre -item.price = Precio -item.content = Unidades - -item.delete = Borrar -item.confirm.delete = ¿Borrar este item? -item.checkout = Realizar pedido -item.confirm.checkout = ¿Está seguro de que quiere realizar este pedido? -item.save = Guardar \ No newline at end of file +shoppingCart.checkout = Realizar pedido +shoppingCart.confirm.checkout = ¿Está seguro de que quiere realizar este pedido? + +shoppingCart.comments = Comentarios +shoppingCart.contents = Lista de artículos + +shoppingCart.comments.create = Añadir comentario +shoppingCart.comments.edit = Editar +shoppingCart.comments.edit.url = Editar comentario +shoppingCart.comments.save = Guardar +shoppingCart.comments.delete = Borrar +shoppingCart.comments.cancel = Cancelar +shoppingCart.commit.error = No se puedo completar la operación + +shoppingCart.comment.save.advise = Usted va a actualizar los comentarios del carrito, ¿está seguro? + +shoppingCart.comments.addComment = Para añadir un comentario, añada una "," tras el último comentario y escriba lo que quiera. +shoppingCart.comments.editComment = Para editar un comentario, modifíquelo en el cajón editable. +shoppingCart.comments.deleteComment = Para borrar un comentario, quitar la "," y el comentario a borrar. \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles.xml index c4e98e4..2df9977 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles.xml @@ -5,8 +5,13 @@ - + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles_es.xml index 4d9d18c..383bf2f 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles_es.xml +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/shopping-cart/tiles_es.xml @@ -9,4 +9,9 @@ + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/edit.jsp new file mode 100644 index 0000000..2459556 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/edit.jsp @@ -0,0 +1,51 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + +

:

+

:

+ + + + + + + + + + + + + + + : + + + +
+
+ + + : + + + +

+ + + " />  + + " + onclick="javascript: relativeRedir('storage/administrator/list.do?warehouseId=${storage.wareHouse.id}');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/list.jsp new file mode 100644 index 0000000..de492f0 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/list.jsp @@ -0,0 +1,120 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + +

+ : +

+ +
+ +
+ " />  +
+ +
+ + + +
+ +

+ +

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages.properties new file mode 100644 index 0000000..d745644 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages.properties @@ -0,0 +1,23 @@ +storage.units = Units +storage.item = Item +storage.warehouse = WareHouse + +storage.edit = Edit units + +storage.item.name = Name +storage.item.description = Description +storage.item.price = Price +storage.item.price.tax = Price without Tax + +storage.save = Save +storage.delete = Delete +storage.cancel = Cancel +storage.create = Add item + +storage.warehouse.name = Name +storage.warehouse.address = Address + +storage.commit.error = Cannot commit this operation + +storage.change = Change +storage.exchangeRate = The prices are shown in \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages_es.properties new file mode 100644 index 0000000..ef48cfb --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/messages_es.properties @@ -0,0 +1,23 @@ +storage.units = Unidades +storage.item = Artículo +storage.warehouse = Almacén + +storage.edit = Editar unidades + +storage.item.name = Nombre +storage.item.description = Descripción +storage.item.price = Precio +storage.item.price.tax = Precio sin Tasa + +storage.save = Guardar +storage.delete = Eliminar +storage.cancel = Cancelar +storage.create = Añadir artículo + +storage.warehouse.name = Nombre +storage.warehouse.address = Dirección + +storage.commit.error = No se pudo realizar la operación + +storage.change = Cambiar +storage.exchangeRate = Los precios se muestran en \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles.xml new file mode 100644 index 0000000..41936dd --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles_es.xml new file mode 100644 index 0000000..4c50608 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/storage/tiles_es.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/edit.jsp new file mode 100644 index 0000000..b3c7e2f --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/edit.jsp @@ -0,0 +1,50 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + " />  + + + " /> + " + onclick="return confirm('')" />  + + + " + onclick="javascript: relativeRedir('tax/administrator/list.do');" /> + +
+ +
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/list.jsp new file mode 100644 index 0000000..2248348 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/list.jsp @@ -0,0 +1,50 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages.properties new file mode 100644 index 0000000..b575457 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages.properties @@ -0,0 +1,13 @@ +tax.edit = Update + +tax.name = Name +tax.value = Value + +tax.list.create = Create a new tax +tax.edit.create = Create +tax.save = Save +tax.delete = Delete +tax.cancel = Cancel + +tax.confirm.delete = Delete this tax? +tax.commit.error = Cannot commit this operation \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages_es.properties new file mode 100644 index 0000000..502a753 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/messages_es.properties @@ -0,0 +1,13 @@ +tax.edit = Actualizar + +tax.name = Nombre +tax.value = Valor + +tax.list.create = Crear una nueva tasa +tax.edit.create = Crear +tax.save = Guardar +tax.delete = Eliminar +tax.cancel = Cancelar + +tax.confirm.delete = ¿Está seguro de que desea eliminar esta tasa? +tax.commit.error = No se puede completar su operación \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles.xml new file mode 100644 index 0000000..3401c19 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles_es.xml new file mode 100644 index 0000000..0945fe1 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/tax/tiles_es.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/edit.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/edit.jsp new file mode 100644 index 0000000..3a8b8d5 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/edit.jsp @@ -0,0 +1,46 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + : + + + +
+ + + : + + + +
+ + + " />  + + " + onclick="return confirm('')" />  + + " + onclick="javascript: relativeRedir('warehouse/administrator/list.do');" /> +
+ +
\ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/list.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/list.jsp new file mode 100644 index 0000000..21a6916 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/list.jsp @@ -0,0 +1,65 @@ +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages.properties new file mode 100644 index 0000000..06ea837 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages.properties @@ -0,0 +1,14 @@ +warehouse.name = Name +warehouse.address = Address +warehouse.storage = List of items + +warehouse.create = Create +warehouse.edit = Edit +warehouse.save = Save +warehouse.delete = Delete +warehouse.cancel = Cancel + +warehouse.commit.error = Cannot commit this operation +warehouse.commit.error.notempty = The warehouse isn't empty + +warehouse.confirm.delete = Are you sure you want to delete the warehouse? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages_es.properties new file mode 100644 index 0000000..43015b9 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/messages_es.properties @@ -0,0 +1,14 @@ +warehouse.name = Nombre +warehouse.address = Dirección +warehouse.storage = Lista de objetos + +warehouse.create = Crear +warehouse.edit = Editar +warehouse.save = Guardar +warehouse.delete = Eliminar +warehouse.cancel = Cancelar + +warehouse.commit.error = No se pudo realizar la operación +warehouse.commit.error.notempty = El almacén no está vacío + +warehouse.confirm.delete = ¿Estas seguro de que deseas borrar el almacén? diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles.xml new file mode 100644 index 0000000..0ae57f7 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles_es.xml b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles_es.xml new file mode 100644 index 0000000..7c516f2 --- /dev/null +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/warehouse/tiles_es.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/index.jsp b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/index.jsp index 6c64141..e8aabed 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/index.jsp +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/index.jsp @@ -8,24 +8,123 @@ * http://www.tdg-seville.info/License.html --%> -<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +<%@page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> -<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="jstl" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@taglib prefix="security" uri="http://www.springframework.org/security/tags"%> +<%@taglib prefix="security" + uri="http://www.springframework.org/security/tags"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> -

- - - - - - - -

-

${moment}

+ + + + + + + +: +
+ " />  +
+ +
+ + +
+ " />  +
+ +
+ + + +
+
+ +

+ +

+ +

+ + ${moment} +

+ + + + +

+ + : +

+ +

+ + : + +

+

+ + : + +

+

+ + : + +

+

+ + : + +

+

+ + : + +

+

+ + : +

+

+ + +

+ + + + +
diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages.properties index 751f10a..ec8954a 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages.properties @@ -8,6 +8,20 @@ welcome.greeting.prefix = Greetings, welcome.greeting.middle = welcome to Acme-Supermarket -welcome.greeting.suffix = ! -welcome.greeting.current.time = Current time is \ No newline at end of file +welcome.greeting.current.time = Current time is + +consumer.item.bestSelling = One of the best-selling items! +consumer.item.add = Add to shopping cart +consumer.item.category = Category +consumer.item.name = Name +consumer.item.price = Price +consumer.item.description = Description +consumer.item.tags = Tags +consumer.item.picture = Picture +consumer.item.comments = Comments + +welcome.change = Change +welcome.exchangeRate = The prices are shown in + +customization.description = Choose your customization diff --git a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages_es.properties b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages_es.properties index 9b32c5b..aab46e9 100644 --- a/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages_es.properties +++ b/WorkSpace/Acme-Supermarket/src/main/webapp/views/welcome/messages_es.properties @@ -8,6 +8,20 @@ welcome.greeting.prefix = ¡Saludos, welcome.greeting.middle = bienvenido a Acme-Supermarket -welcome.greeting.suffix = ! -welcome.greeting.current.time = Día y hora actuales: \ No newline at end of file +welcome.greeting.current.time = Día y hora actuales: + +consumer.item.bestSelling = ¡Uno de los artículos más vendidos! +consumer.item.add = Añadir al carrito +consumer.item.category = Categoría +consumer.item.name = Nombre +consumer.item.price = Precio +consumer.item.description = Descripción +consumer.item.tags = Etiquetas +consumer.item.picture = Foto +consumer.item.comments = Comentarios + +welcome.change = Cambiar +welcome.exchangeRate = Los precios se muestran en + +customization.description = Elige tu personalización diff --git a/WorkSpace/Acme-Supermarket/src/test/java/services/ClerkServiceTest.java b/WorkSpace/Acme-Supermarket/src/test/java/services/ClerkServiceTest.java index cfdad81..56a952c 100644 --- a/WorkSpace/Acme-Supermarket/src/test/java/services/ClerkServiceTest.java +++ b/WorkSpace/Acme-Supermarket/src/test/java/services/ClerkServiceTest.java @@ -12,7 +12,6 @@ import org.springframework.transaction.annotation.Transactional; import security.UserAccount; -import security.UserAccountService; import utilities.AbstractTest; import domain.Clerk; import domain.Message; @@ -29,8 +28,6 @@ public class ClerkServiceTest extends AbstractTest{ // Service under test ------------------------- @Autowired private ClerkService clerkService; - @Autowired - private UserAccountService userAccountService; // Test --------------------------------------- @Test @@ -57,14 +54,15 @@ public void testCreate1(){ System.out.println(c.getName()); } - userAccount = userAccountService.createComplete("Clerk99", "91ec1f9322200048c9496d036a694f86", "CLERK"); - result = clerkService.create(); + userAccount = result.getUserAccount(); result.setName("Manuel"); result.setEmail("manuel@mail.com"); result.setPhone("666123123"); result.setSurname("García"); + userAccount.setUsername("Clerk99"); + userAccount.setPassword("Clerk99"); result.setUserAccount(userAccount); result.setReceived(received); result.setSent(sent); diff --git a/WorkSpace/Acme-Supermarket/src/test/java/services/ConsumerServiceTest.java b/WorkSpace/Acme-Supermarket/src/test/java/services/ConsumerServiceTest.java index 0b08e8a..b96cd19 100644 --- a/WorkSpace/Acme-Supermarket/src/test/java/services/ConsumerServiceTest.java +++ b/WorkSpace/Acme-Supermarket/src/test/java/services/ConsumerServiceTest.java @@ -13,7 +13,6 @@ import org.springframework.transaction.annotation.Transactional; import security.UserAccount; -import security.UserAccountService; import utilities.AbstractTest; import domain.Consumer; import domain.Message; @@ -30,9 +29,7 @@ public class ConsumerServiceTest extends AbstractTest{ // Service under test ------------------------- @Autowired private ConsumerService consumerService; - @Autowired - private UserAccountService userAccountService; - + // Test --------------------------------------- @Test public void testConsumerCancelledMoreOrders1(){ @@ -112,14 +109,16 @@ public void testCreate1(){ System.out.println(c.getName()); } authenticate(null); - userAccount = userAccountService.createComplete("Consumer99", "91ec1f9333300048c9496d036a694f86", "CONSUMER"); result = consumerService.create(); + userAccount = result.getUserAccount(); result.setName("Fatima"); result.setEmail("fatima@mail.com"); result.setPhone("666123321"); result.setSurname("Caballero"); + userAccount.setUsername("Consumer99"); + userAccount.setPassword("Consumer99"); result.setUserAccount(userAccount); result.setReceived(received); result.setSent(sent); diff --git a/WorkSpace/Acme-Supermarket/src/test/java/services/ItemServiceTest.java b/WorkSpace/Acme-Supermarket/src/test/java/services/ItemServiceTest.java index 1b009bc..c6bc2e4 100644 --- a/WorkSpace/Acme-Supermarket/src/test/java/services/ItemServiceTest.java +++ b/WorkSpace/Acme-Supermarket/src/test/java/services/ItemServiceTest.java @@ -363,8 +363,8 @@ public void testUpdate1(){ authenticate("admin"); - itemId = 54; - System.out.println("Pretendemos modificar el item con el id 54, ¿Existe?, ¿Cuál es?:"); + itemId = 64; + System.out.println("Pretendemos modificar el item con el id 64, ¿Existe?, ¿Cuál es?:"); all = itemService.findAll(); item = null; for (Item i: all){ @@ -404,13 +404,14 @@ public void testDelete1(){ authenticate("admin"); - itemId = 54; - System.out.println("Pretendemos eliminar el item con el id 54, ¿Existe?, ¿Tiene la propiedad deleted = false?:"); + itemId = 64; + System.out.println("Pretendemos eliminar el item con el id 64, ¿Existe?, ¿Tiene la propiedad deleted = false?:"); item = itemService.findOne(itemId); System.out.println("Nombre: " + item.getName()); System.out.println("Id: " + item.getId()); System.out.println("deleted: " + item.getDeleted() + "\n"); itemService.delete(item); + System.out.println("Ya se ha pulsado en Delete, el item debe estar en la BBDD con la propiedad deleted = true, ¿Es así?:"); itemDeleted = itemService.findOne(itemId); System.out.println("Nombre: " + itemDeleted.getName()); diff --git a/WorkSpace/Acme-Supermarket/src/test/java/services/OrderServiceTest.java b/WorkSpace/Acme-Supermarket/src/test/java/services/OrderServiceTest.java index 5e0c8dd..6d2c2dc 100644 --- a/WorkSpace/Acme-Supermarket/src/test/java/services/OrderServiceTest.java +++ b/WorkSpace/Acme-Supermarket/src/test/java/services/OrderServiceTest.java @@ -14,7 +14,6 @@ import domain.Item; import domain.Order; import domain.OrderItem; -import domain.WareHouse; import utilities.AbstractTest; @@ -99,7 +98,6 @@ public void testOrderRatio1(){ double ratio; authenticate("admin"); - ratio = orderService.rateOrderCancelled(); System.out.println("Ratio: " + ratio); @@ -150,13 +148,11 @@ public void testOrderDeliveredWhenItemsServed1(){ Order order; OrderItem orderItem; OrderItem orderItemServed; - WareHouse warehouse; Item item; authenticate("clerk1"); System.out.println("Vamos a servir todas las unidades de este orderItem:"); - warehouse = warehouseService.findAll().iterator().next(); item = itemService.findAll().iterator().next(); order = orderService.findAll().iterator().next(); orderItem = order.getOrderItems().iterator().next(); @@ -166,7 +162,7 @@ public void testOrderDeliveredWhenItemsServed1(){ System.out.println("Servimos sus unidades restantes:"); - warehouseService.addItemToOrderItem(warehouse, item, 2, order); + warehouseService.addItemToOrderItem(item, 2, order); System.out.println("Comprobemos que ya tenga deliveryMoment a hoy y unidades servidas 2:"); orderItemServed = order.getOrderItems().iterator().next(); diff --git a/WorkSpace/Acme-Supermarket/src/test/java/services/WarehouseServiceTest.java b/WorkSpace/Acme-Supermarket/src/test/java/services/WarehouseServiceTest.java index 3b0e7f4..e9e4b12 100644 --- a/WorkSpace/Acme-Supermarket/src/test/java/services/WarehouseServiceTest.java +++ b/WorkSpace/Acme-Supermarket/src/test/java/services/WarehouseServiceTest.java @@ -119,8 +119,8 @@ public void testWarehouseAtLeastOneOfItem1(){ authenticate("clerk1"); - System.out.println("Veamos el/los WareHouse que tienen el item con id 54:"); - itemId = 54; + System.out.println("Veamos el/los WareHouse que tienen el item con id 64:"); + itemId = 64; item = itemService.findOne(itemId); all = warehouseService.findAllByItem(item); for(WareHouse w: all){ @@ -337,8 +337,8 @@ public void testRemoveAndServe1(){ System.out.println("\nQuitamos un par de unidades cada Warehouse"); order = orderService.findAll().iterator().next(); - warehouseService.addItemToOrderItem(warehouse1, item1, 1, order); - warehouseService.addItemToOrderItem(warehouse2, item2, 1, order); + warehouseService.addItemToOrderItem(item1, 1, order); + warehouseService.addItemToOrderItem(item2, 1, order); System.out.println("\nComprobamos ahora el número de unidades de cada item en su correspondiente Warehouse:"); warehouses = warehouseService.findAll(); diff --git a/WorkSpace/Acme-Supermarket/target/classes/PopulateDatabase.xml b/WorkSpace/Acme-Supermarket/target/classes/PopulateDatabase.xml index 4af4540..4fc8325 100644 --- a/WorkSpace/Acme-Supermarket/target/classes/PopulateDatabase.xml +++ b/WorkSpace/Acme-Supermarket/target/classes/PopulateDatabase.xml @@ -16,6 +16,30 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> + + + + + + + + + + + + + + + + + + + + + + + + @@ -251,6 +275,8 @@ + + @@ -674,35 +700,78 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + @@ -717,6 +786,7 @@ Chocolate + @@ -744,6 +814,7 @@ Smart-TV + @@ -768,6 +839,7 @@ Colonia + @@ -795,6 +867,7 @@ Carne + @@ -836,6 +909,79 @@ + + + + + + + + Tomates + Verduras + Frescos + + + + + + + + + + + + + + + + + + + + + + Lechugas + Verduras + Frescas + + + + + + + + + + + + + + + + + + + + + + Tablet + Buena + Electronica + + + + + + + + + + + + + + + @@ -944,6 +1090,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1098,23 +1280,44 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1152,7 +1355,7 @@ - + @@ -1168,7 +1371,7 @@ - + @@ -1274,6 +1477,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1465,4 +1713,80 @@ + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + + + + + + + + + + TV + Full-HD + Smart-TV + + + + + + + + + + + + + + + + + Dulce + Turron + Chocolate + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/target/classes/spring/config/converters.xml b/WorkSpace/Acme-Supermarket/target/classes/spring/config/converters.xml index b2cd0c5..ba254c1 100644 --- a/WorkSpace/Acme-Supermarket/target/classes/spring/config/converters.xml +++ b/WorkSpace/Acme-Supermarket/target/classes/spring/config/converters.xml @@ -18,10 +18,65 @@ "> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/target/classes/spring/config/i18n-l10n.xml b/WorkSpace/Acme-Supermarket/target/classes/spring/config/i18n-l10n.xml index 80ee9e8..7078e14 100644 --- a/WorkSpace/Acme-Supermarket/target/classes/spring/config/i18n-l10n.xml +++ b/WorkSpace/Acme-Supermarket/target/classes/spring/config/i18n-l10n.xml @@ -25,13 +25,24 @@ /views/welcome/messages /views/administrator/messages - /views/customer/messages - /views/profile/messages + /views/consumer/messages + /views/clerk/messages /views/category/messages /views/item/messages /views/order/messages /views/shopping-cart/messages + /views/comment/messages + /views/warehouse/messages + /views/storage/messages + /views/content/messages + /views/tax/messages + /views/order-item/messages + /views/folder/messages + /views/message/messages + /views/about-us/messages + + \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/target/classes/spring/config/security.xml b/WorkSpace/Acme-Supermarket/target/classes/spring/config/security.xml index ecca80e..24a3969 100644 --- a/WorkSpace/Acme-Supermarket/target/classes/spring/config/security.xml +++ b/WorkSpace/Acme-Supermarket/target/classes/spring/config/security.xml @@ -34,24 +34,48 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - \ No newline at end of file + diff --git a/WorkSpace/Acme-Supermarket/target/classes/spring/config/tiles.xml b/WorkSpace/Acme-Supermarket/target/classes/spring/config/tiles.xml index 3b9d3b4..247a341 100644 --- a/WorkSpace/Acme-Supermarket/target/classes/spring/config/tiles.xml +++ b/WorkSpace/Acme-Supermarket/target/classes/spring/config/tiles.xml @@ -20,12 +20,21 @@ /views/administrator/tiles.xml /views/consumer/tiles.xml - /views/profile/tiles.xml + /views/clerk/tiles.xml /views/category/tiles.xml /views/item/tiles.xml /views/order/tiles.xml /views/shopping-cart/tiles.xml + /views/comment/tiles.xml + /views/warehouse/tiles.xml + /views/storage/tiles.xml + /views/content/tiles.xml + /views/tax/tiles.xml + /views/order-item/tiles.xml + /views/folder/tiles.xml + /views/message/tiles.xml + /views/about-us/tiles.xml \ No newline at end of file diff --git a/WorkSpace/Acme-Supermarket/target/m2e-wtp/web-resources/META-INF/maven/Acme-Supermarket/Acme-Supermarket/pom.properties b/WorkSpace/Acme-Supermarket/target/m2e-wtp/web-resources/META-INF/maven/Acme-Supermarket/Acme-Supermarket/pom.properties index b85892f..1d27be0 100644 --- a/WorkSpace/Acme-Supermarket/target/m2e-wtp/web-resources/META-INF/maven/Acme-Supermarket/Acme-Supermarket/pom.properties +++ b/WorkSpace/Acme-Supermarket/target/m2e-wtp/web-resources/META-INF/maven/Acme-Supermarket/Acme-Supermarket/pom.properties @@ -1,7 +1,7 @@ #Generated by Maven Integration for Eclipse -#Thu Nov 26 21:00:48 CET 2015 +#Tue Dec 22 19:25:28 CET 2015 version=1.4 groupId=Acme-Supermarket m2e.projectName=Acme-Supermarket -m2e.projectLocation=E\:\\Proyecto\\DP5Entrega\\WorkSpace\\Acme-Supermarket +m2e.projectLocation=Z\:\\Carpeta Compartida\\DP6Entrega\\WorkSpace\\Acme-Supermarket artifactId=Acme-Supermarket diff --git a/WorkSpace/Curricula (Students)/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Curricula/pom.properties b/WorkSpace/Curricula (Students)/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Curricula/pom.properties index 725ee38..b274ed1 100644 --- a/WorkSpace/Curricula (Students)/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Curricula/pom.properties +++ b/WorkSpace/Curricula (Students)/target/m2e-wtp/web-resources/META-INF/maven/Design-and-Testing/Curricula/pom.properties @@ -1,7 +1,7 @@ #Generated by Maven Integration for Eclipse -#Thu Nov 12 19:37:21 CET 2015 +#Mon Dec 21 14:33:25 CET 2015 version=1.0 groupId=Design-and-Testing m2e.projectName=Curricula (Students) -m2e.projectLocation=X\:\\L06 Workspace\\Curricula (Students) +m2e.projectLocation=E\:\\Proyecto\\DP6Entrega\\WorkSpace\\Curricula (Students) artifactId=Curricula