@RequestMapping(value = "/product/{prod}", method = RequestMethod.DELETE) @Transactional public ResponseEntity<ProductResult> doIt( @PathVariable("prod") String product, Authentication auth) { if (!ApplicationSecurity.isRoot(auth)) { return new ResponseEntity<ProductResult>(HttpStatus.FORBIDDEN); } Product reqProduct = new Product(product, null); List<String> errors = DomainValidator.checkForErrors(reqProduct); if (!errors.isEmpty()) { return new ResponseEntity<ProductResult>( new ProductResult(reqProduct, errors), HttpStatus.BAD_REQUEST); } if (!products.exists(reqProduct.getName())) { return new ResponseEntity<ProductResult>( new ProductResult(reqProduct, Product.NOT_FOUND), HttpStatus.NOT_FOUND); } products.delete(reqProduct.getName()); components.deleteByKeyProduct(reqProduct.getName()); properties.deleteByKeyProduct(reqProduct.getName()); userProducts.deleteByKeyProduct(reqProduct.getName()); return new ResponseEntity<ProductResult>(HttpStatus.OK); }
// add product to database using a product object public boolean addProductEntry(Product product, String server_name) { boolean success = true; this.product_list.add(product); // add product to database addStoredLocation(product.getName(), server_name); // update stored locations of product return success; }
// retrieve stored list of products from products file public Product[] getStoredProducts() { Product[] products = (Product[]) readFile(getProductFileName()); // print names of products being returned for (Product product : products) { System.out.println("getStoredProducts: Returned " + product.getName()); } return products; }
// retrieve product from database public Product getProductEntry(String name) { Product product = null; for (Product entry : getProducts()) { if (entry != null && entry.getName().equals(name)) { product = entry; break; } } return product; }
// remove product from database public boolean deleteProduct(String name) { boolean success = true; Iterator<Product> products = this.product_list.iterator(); while (products.hasNext()) { Product entry = products.next(); if (entry.getName().equals(name)) { success = this.product_list.remove(entry); removeStoredLocation(name); // remove product entry break; } } return success; }
private void createProductListAndOffersMap() { productList = new ArrayList<>(); offersMap = new HashMap<>(); List<Long> productsId = optimizationParams.getProductsId(); for (Long productId : productsId) { Product product = productRepository.findOne(productId); if (product != null) { List<Offer> offerList = offerRepository.findByIdProduct(productId); if (offerList.size() > 0) { productList.add(product); offersMap.put(product, offerList); } else { missedProductList.add(new MissedProduct(product.getName())); } } else { missedProductList.add(new MissedProduct("Id: " + productId)); } } }
public void addProductsServicesToSale( boolean isDraft, Sale saleFromDB, List<SaleProductService> productsServices) throws IabakoStockException { Enterprise enterprise = getEnterpriseFromSessionUser(); String productsServicesAsString = ""; Map<Product, Double> stockReductionMap = new HashMap<Product, Double>(); // 1. Create productService as String (for table results) saleFromDB.setProductsServicesAsString(null); saleDAO.cleanProductService(saleFromDB); for (SaleProductService productService : productsServices) { String quantityString = productService.getQuantity() == 0d || productService.getQuantity() / new Double(productService.getQuantity()).intValue() == 1 ? new Double(productService.getQuantity()).intValue() + "" : ServerTools.formatAmount( saleFromDB.getEnterprise().getLanguage(), productService.getQuantity()); if (productService.getProduct() != null) { if (!productService.getProduct().isStockDisabled()) { Double quantity = stockReductionMap.get(productService.getProduct()); stockReductionMap.put( productService.getProduct(), quantity == null ? productService.getQuantity() : quantity + productService.getQuantity()); } quantityString += productService.getProduct().getPriceUnit() == PriceUnit.unit ? "" : messages.getLabel(productService.getProduct().getPriceUnit().getLabelKey()); productsServicesAsString += productService.getProduct().getName() + " (" + quantityString + ")\n"; } else { productsServicesAsString += productService.getService().getName() + " (" + quantityString + ")\n"; } } if (!GenericTools.isEmpty(productsServicesAsString)) { productsServicesAsString = productsServicesAsString.substring(0, productsServicesAsString.lastIndexOf("\n")); productsServicesAsString = productsServicesAsString.length() > 1000 ? productsServicesAsString.substring(0, 1000) : productsServicesAsString; saleFromDB.setProductsServicesAsString(productsServicesAsString); saleFromDB.setProductsServices(productsServices); } // 2. Reset Product/Service Enterprise (and do not change Enterprise!) boolean enterpriseHasChildren = enterprise.getAllRelatedEnterprises().size() > 1; Product prod; Service service; for (SaleProductService saleProductService : saleFromDB.getProductsServices()) { if ((prod = saleProductService.getProduct()) != null && saleProductService.getProduct().getEnterprise() == null) { saleProductService .getProduct() .setEnterprise( enterpriseHasChildren ? productDAO.findById(prod.getId()).getEnterprise() : enterprise); } else if ((service = saleProductService.getService()) != null && saleProductService.getService().getEnterprise() == null) { saleProductService .getService() .setEnterprise( enterpriseHasChildren ? serviceDAO.findById(service.getId()).getEnterprise() : enterprise); } } // 3. Stock reduction if (isDraft) { return; } if (stockReductionMap.keySet().isEmpty()) { return; } ProductStockModification productStockModification = productDAO.persistProductStockModification(false); String errorMessage = ""; for (Product product : stockReductionMap.keySet()) { if (product.getQuantity() < stockReductionMap.get(product)) { String unit = messages.getLabel(product.getPriceUnit().getLabelKey()); unit = GenericTools.isEmpty(unit) ? " " + messages.getLabel("stock_unit") : unit; String stringQuantity = product.getQuantity() == 0d || product.getQuantity() / new Double(product.getQuantity()).intValue() == 1 ? new Double(product.getQuantity()).intValue() + "" : ServerTools.formatAmount( saleFromDB.getEnterprise().getLanguage(), product.getQuantity()); errorMessage += "\n" + messages.getLabel( "stock_sale_not_enough_text", product.getName(), stringQuantity, unit); } product.setQuantity( ServerTools.round(product.getQuantity() - stockReductionMap.get(product))); productDAO.merge(product); productDAO.trackStockModification( product, product.getQuantity(), stockReductionMap.get(product) * -1, productStockModification); } if (!GenericTools.isEmpty(errorMessage)) { errorMessage += messages.getLabel("stock_sale_not_enough_resolve_text"); throw new IabakoStockException("stock_sale_not_enough_title", errorMessage, true); } // 4. Tag management for (SaleProductService saleProductService : saleFromDB.getProductsServices()) { if ((prod = saleProductService.getProduct()) != null && saleProductService.getProduct().getBusinessTag() != null) { BusinessTagSale businessTagSale = new BusinessTagSale(); businessTagSale.setBusinessTag(prod.getBusinessTag()); businessTagSale.setProduct(prod); businessTagSale.setSale(saleFromDB); saleFromDB.getBusinessTagList().add(businessTagSale); } else if ((service = saleProductService.getService()) != null && saleProductService.getService().getBusinessTag() != null) { BusinessTagSale businessTagSale = new BusinessTagSale(); businessTagSale.setBusinessTag(service.getBusinessTag()); businessTagSale.setService(service); businessTagSale.setSale(saleFromDB); saleFromDB.getBusinessTagList().add(businessTagSale); } } }