This repository has been archived on 2020-08-02. You can view files and clone it, but cannot push or open issues or pull requests.
e-commerce/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java

251 lines
6.4 KiB
Java
Raw Normal View History

2020-04-29 22:44:16 +02:00
package org.hso.ecommerce.controller.intern;
2020-04-28 22:41:29 +02:00
2020-05-10 15:26:50 +02:00
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hso.ecommerce.entities.shop.Article;
import org.hso.ecommerce.repos.shop.ArticleRepository;
2020-05-10 15:26:50 +02:00
import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryRepository;
import org.springframework.beans.factory.annotation.Autowired;
2020-04-28 22:41:29 +02:00
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.view.RedirectView;
2020-05-10 15:26:50 +02:00
@Controller
@RequestMapping("intern/articles")
2020-05-11 11:58:26 +02:00
public class InternArticleController {
2020-05-10 15:26:50 +02:00
@Autowired
private final ArticleRepository articleRepository = null;
2020-05-10 15:26:50 +02:00
@Autowired
private final WarehouseBookingPositionSlotEntryRepository warehouseEntryRepository = null;
2020-05-10 15:26:50 +02:00
@GetMapping("/")
2020-05-11 11:58:26 +02:00
public String internListedArticles(Model model) {
2020-05-10 15:26:50 +02:00
List<UImodelArticles> totals = new ArrayList<UImodelArticles>();
2020-05-10 15:26:50 +02:00
for (Article article : articleRepository.findAll()) {
UImodelArticles tmp = new UImodelArticles();
2020-05-11 11:58:26 +02:00
tmp.addListedArticle(article, warehouseEntryRepository.getArticleStock(article.id).orElse(0));
2020-05-10 15:26:50 +02:00
totals.add(tmp);
}
model.addAttribute("ListedArticles", totals);
return "intern/listedArticles/index";
}
@GetMapping("/{id}")
2020-05-11 11:58:26 +02:00
public String internListedArticlesId(Model model, @PathVariable String id) {
int articleid = Integer.parseInt(id);
UImodelArticle total = new UImodelArticle();
2020-05-11 11:58:26 +02:00
total.addArticle(articleRepository.findArticleById(articleid),
warehouseEntryRepository.getArticleStock(articleid).orElse(0));
2020-05-11 11:58:26 +02:00
model.addAttribute("ArticleID", total);
2020-05-10 15:26:50 +02:00
return "intern/listedArticles/id";
}
@PostMapping("/{id}/saveChanges")
public RedirectView saveChanges(
@ModelAttribute UImodelArticle changedArticleTotal,
@RequestParam("units-per-slot") String sWarehouseUnitsPerSlot,
@RequestParam("price_netto") String sPrice_netto,
@RequestParam("reorderMaxPrice") String sReorderMaxPrice,
@RequestParam("autobuy") String sShouldReorder,
@RequestParam("categories") String sCategories) {
Article oldArticle = articleRepository.findArticleById(changedArticleTotal.id);
// TODO img
// TODO categories
/*
* String separatedCategories[] = sCategories.split("\\r?\\n");
*
*
* for (int i = 0; i < separatedCategories.length; i++) {
*
* oldArticle.categories.add(separatedCategories[i]);
*
* }
*/
oldArticle.shouldReorder = (sShouldReorder.equals("true")) ? true : false;
oldArticle.reorderMaxPrice = (int) (Float.parseFloat(sReorderMaxPrice) * 100);
oldArticle.shopPricePerUnitNetCent = (int) (Float.parseFloat(sPrice_netto) * 100);
oldArticle.warehouseUnitsPerSlot = Integer.parseInt(sWarehouseUnitsPerSlot);
oldArticle.title = changedArticleTotal.title;
oldArticle.description = changedArticleTotal.description;
articleRepository.save(oldArticle); // save updated article
return new RedirectView("../"); //return to overview page
}
2020-05-10 15:26:50 +02:00
public static class UImodelArticles {
2020-05-10 15:26:50 +02:00
public String imgPath;
public String title;
public String price;
public String price_netto;
public String categorie;
public int stock;
public long offer_id;
public long id;
2020-05-11 11:58:26 +02:00
void addListedArticle(Article article, int stock) {
this.imgPath = article.image.path;
this.title = article.title;
this.price_netto = String.format("%.2f", ((float) article.shopPricePerUnitNetCent / 100));
this.price = String.format("%.2f", ((float) article.getPriceGross() / 100));
this.categorie = article.getCategories();
this.stock = stock;
this.offer_id = article.related.id;
this.id = article.id;
}
}
public static class UImodelArticle {
2020-05-11 11:58:26 +02:00
public String getImgPath() {
return imgPath;
}
public void setImgPath(String imgPath) {
this.imgPath = imgPath;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getPrice_netto() {
return price_netto;
}
public void setPrice_netto(String price_netto) {
this.price_netto = price_netto;
}
public String getReorderMaxPrice() {
return reorderMaxPrice;
}
public void setReorderMaxPrice(String reorderMaxPrice) {
this.reorderMaxPrice = reorderMaxPrice;
}
public String getCategorie() {
return categorie;
}
public void setCategorie(String categorie) {
this.categorie = categorie;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
public long getOffer_id() {
return offer_id;
}
public void setOffer_id(long offer_id) {
this.offer_id = offer_id;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public boolean isShouldReorder() {
return shouldReorder;
}
public void setShouldReorder(boolean shouldReorder) {
this.shouldReorder = shouldReorder;
}
public String getWarehouseUnitsPerSlot() {
return warehouseUnitsPerSlot;
}
public void setWarehouseUnitsPerSlot(String warehouseUnitsPerSlot) {
this.warehouseUnitsPerSlot = warehouseUnitsPerSlot;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
2020-05-11 11:58:26 +02:00
public String imgPath;
public String title;
public String price;
public String price_netto;
public String reorderMaxPrice;
2020-05-11 11:58:26 +02:00
public String categorie;
public int stock;
public long offer_id;
public long id;
public boolean shouldReorder;
public String warehouseUnitsPerSlot;
2020-05-11 11:58:26 +02:00
public String description;
void addArticle(Article article, int stock) {
2020-05-10 15:26:50 +02:00
this.imgPath = article.image.path;
this.title = article.title;
2020-05-11 11:58:26 +02:00
this.price_netto = String.format("%.2f", ((float) article.shopPricePerUnitNetCent / 100));
this.price = String.format("%.2f", ((float) article.getPriceGross() / 100));
2020-05-10 15:26:50 +02:00
this.categorie = article.getCategories();
this.stock = stock;
this.offer_id = article.related.id;
this.id = article.id;
this.reorderMaxPrice = String.format("%.2f", ((float) article.reorderMaxPrice / 100));
2020-05-11 11:58:26 +02:00
this.shouldReorder = article.shouldReorder;
this.warehouseUnitsPerSlot = String.valueOf(article.warehouseUnitsPerSlot);
2020-05-11 11:58:26 +02:00
this.description = article.description;
2020-05-10 15:26:50 +02:00
}
}
2020-04-28 22:41:29 +02:00
}