diff --git a/prototype/e-commerce.db.copy b/prototype/e-commerce.db.copy
deleted file mode 100644
index e4c39c9..0000000
Binary files a/prototype/e-commerce.db.copy and /dev/null differ
diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java
index 0081c88..7a7e7fe 100644
--- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java
+++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java
@@ -5,8 +5,10 @@ import java.util.List;
import org.hso.ecommerce.entities.shop.Article;
import org.hso.ecommerce.entities.shop.Category;
+import org.hso.ecommerce.entities.supplier.ArticleOffer;
import org.hso.ecommerce.repos.shop.ArticleRepository;
import org.hso.ecommerce.repos.shop.CategoryRepository;
+import org.hso.ecommerce.repos.shop.OffersRepository;
import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -26,6 +28,9 @@ public class InternArticleController {
@Autowired
private final CategoryRepository categoryRepository = null;
+ @Autowired
+ private final OffersRepository offersRepository = null;
+
@GetMapping("/")
public String internListedArticles(Model model) {
@@ -57,39 +62,65 @@ public class InternArticleController {
}
@PostMapping("/{id}/saveChanges")
- public RedirectView saveChanges(
- @PathVariable int id,
- @RequestParam("title") String title,
- @RequestParam("description") String description,
- @RequestParam("units-per-slot") String warehouseUnitsPerSlot,
- @RequestParam("price_netto") String pricenetto,
- @RequestParam("reorderMaxPrice") String reorderMaxPrice,
- @RequestParam("autobuy") Boolean shouldReorder,
- @RequestParam("categories") String categories) {
+ public RedirectView saveChanges(@PathVariable(required = true) int id,
+ @RequestParam(value = "title", required = true) String title,
+ @RequestParam(value = "description", required = true) String description,
+ @RequestParam(value = "units-per-slot", required = true) String warehouseUnitsPerSlot,
+ @RequestParam(value = "price_netto", required = true) String pricenetto,
+ @RequestParam(value = "reorderMaxPrice", required = true) String reorderMaxPrice,
+ @RequestParam(value = "autobuy", required = true) Boolean shouldReorder,
+ @RequestParam(value = "categories", required = true) String categories) {
- Article oldArticle = articleRepository.findArticleById(id);
+ Article tmpArticle = articleRepository.findArticleById(id); // get the old article
// TODO img
String[] separatedCategories = categories.split("\n");
- oldArticle.categories.clear();
+ tmpArticle.categories.clear();
- // loop through all categories strings and create a new category if a new one; also adds the categorys to the article
+ // loop through all categories strings and create a new category if a new one;
+ // also adds the categorys to the article
for (String category : separatedCategories) {
- oldArticle.categories.add(categoryRepository.findCategoryByName(category.trim())
+ tmpArticle.categories.add(categoryRepository.findCategoryByName(category.trim())
.orElseGet(() -> new Category(category.trim())));
}
- oldArticle.shouldReorder = shouldReorder;
- oldArticle.reorderMaxPrice = (int) (Float.parseFloat(reorderMaxPrice) * 100);
- oldArticle.shopPricePerUnitNetCent = (int) (Float.parseFloat(pricenetto) * 100);
- oldArticle.warehouseUnitsPerSlot = Integer.parseInt(warehouseUnitsPerSlot);
- oldArticle.title = title;
- oldArticle.description = description;
+ tmpArticle.shouldReorder = shouldReorder;
+ tmpArticle.reorderMaxPrice = (int) (Float.parseFloat(reorderMaxPrice) * 100);
+ tmpArticle.shopPricePerUnitNetCent = (int) (Float.parseFloat(pricenetto) * 100);
+ tmpArticle.warehouseUnitsPerSlot = Integer.parseInt(warehouseUnitsPerSlot);
+ tmpArticle.title = title;
+ tmpArticle.description = description;
- articleRepository.save(oldArticle); // save updated article
+ articleRepository.save(tmpArticle); // save updated article
return new RedirectView("../"); // return to overview page
+
+ }
+
+ @PostMapping("/addArticle/{id}")
+ public RedirectView addArticle(@PathVariable(required = true) String id) {
+ // article is not already listed, create new one
+ int offeredArticleID = Integer.parseInt(id);
+
+ Article tmpArticle = new Article();
+
+ ArticleOffer offeredArticle = offersRepository.findOfferedArticleById(offeredArticleID);
+
+ // set default values
+ tmpArticle.description = "";
+ tmpArticle.reorderMaxPrice = 0;
+ tmpArticle.shopPricePerUnitNetCent = offeredArticle.pricePerUnitNet;
+ tmpArticle.shouldReorder = false;
+ tmpArticle.title = offeredArticle.title;
+ tmpArticle.warehouseUnitsPerSlot = 1;
+ tmpArticle.image = articleRepository.findAll().get(0).image; // TODO set any static default image
+ tmpArticle.related = offeredArticle;
+
+ articleRepository.save(tmpArticle); // save new article
+
+ // return to edit article page
+ return new RedirectView("../" + articleRepository.findArticleIDByRelatedID(offeredArticleID).get());
}
public static class UImodelArticles {
@@ -115,13 +146,13 @@ public class InternArticleController {
this.title = article.title;
this.price_netto = String.format("%.2f", ((float) article.shopPricePerUnitNetCent / 100));
this.price = String.format("%.2f", ((float) article.getPriceGross() / 100));
-
+
StringBuilder result = new StringBuilder();
for (Category temp : article.categories) {
result.append(temp.name + " ");
}
- this.categorie = result.toString();
+ this.categorie = result.toString();
this.stock = stock;
this.offer_id = article.related.id;
@@ -143,8 +174,7 @@ public class InternArticleController {
public boolean shouldReorder;
public String warehouseUnitsPerSlot;
public String description;
-
-
+
public String getImgPath() {
return imgPath;
}
@@ -246,15 +276,15 @@ public class InternArticleController {
this.title = article.title;
this.price_netto = String.format("%.2f", ((float) article.shopPricePerUnitNetCent / 100));
this.price = String.format("%.2f", ((float) article.getPriceGross() / 100));
-
+
StringBuilder result = new StringBuilder();
for (Category temp : article.categories) {
result.append(temp.name);
result.append("\n");
}
- this.categorie = result.toString();
-
+ this.categorie = result.toString();
+
this.stock = stock;
this.offer_id = article.related.id;
this.id = article.id;
diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/suppliers/SupplierOfferController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/suppliers/SupplierOfferController.java
index 685f8f8..3ef21bf 100644
--- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/suppliers/SupplierOfferController.java
+++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/suppliers/SupplierOfferController.java
@@ -2,17 +2,16 @@ package org.hso.ecommerce.controller.intern.suppliers;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import org.hso.ecommerce.entities.supplier.ArticleOffer;
-import org.hso.ecommerce.repos.shop.CategoryRepository;
+import org.hso.ecommerce.repos.shop.ArticleRepository;
import org.hso.ecommerce.repos.shop.OffersRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/intern/")
@@ -21,6 +20,9 @@ public class SupplierOfferController {
@Autowired
private final OffersRepository offersRepository = null;
+ @Autowired
+ private final ArticleRepository articleRepository = null;
+
@GetMapping("supplierOffers")
public String internListedArticles(Model model) {
@@ -28,7 +30,7 @@ public class SupplierOfferController {
for (ArticleOffer article : offersRepository.findAll()) {
UImodelOfferedArticle tmp = new UImodelOfferedArticle();
- tmp.addData(article,"supplierName01", 4884, 5);
+ tmp.addData(article, "supplierName01", 4884, articleRepository.findArticleIDByRelatedID(article.id)); //TODO display supplier name with link
totals.add(tmp);
}
@@ -38,6 +40,7 @@ public class SupplierOfferController {
public class UImodelOfferedArticle {
+ long offer_id;
String title;
String manufacturer;
String articlenumber;
@@ -46,6 +49,23 @@ public class SupplierOfferController {
String price;
String ads;
int listedArticleId;
+ boolean offerIsListed; //true --> offered article is listed
+
+ public long getOffer_id() {
+ return offer_id;
+ }
+
+ public void setOffer_id(long offer_id) {
+ this.offer_id = offer_id;
+ }
+
+ public boolean isOfferIsListed() {
+ return offerIsListed;
+ }
+
+ public void setOfferIsListed(boolean offerIsListed) {
+ this.offerIsListed = offerIsListed;
+ }
public String getTitle() {
return title;
@@ -111,18 +131,26 @@ public class SupplierOfferController {
this.listedArticleId = listedArticleId;
}
- public void addData(ArticleOffer article, String supplierName, int supplierId, int listedArticleId) {
+ public void addData(ArticleOffer article, String supplierName, int supplierId,
+ Optional
- + + + + + +