Exemplo n.º 1
0
 private function createProduct(ProductForm $form)
 {
     $values = $form->getValues();
     $product = new Product($values->name, $values->price);
     $product->setDescription($values->description);
     if ($values->discountType === ProductForm::DISCOUNT_PERCENT) {
         $product->setDiscountPercent($values->discountPercent);
     } else {
         $product->setNominalDiscount($values->nominalDiscount);
     }
     $product->setCategories($this->categoryService->getByIds($values->categories));
     /** @var FileUpload $fileUpload */
     foreach ($values->imagesUpload as $fileUpload) {
         $this->productImageService->create($product, $fileUpload);
     }
     try {
         if (!$form->hasErrors()) {
             $this->productService->create($product);
             $this->flashMessage(sprintf('Product %s has been created.', $product->getName()));
             $this->redirect(':Admin:Product:List:');
         }
     } catch (EntityDuplicateException $e) {
         $form->addError(sprintf('Product with name %s already exists.', $product->getName()));
     }
 }