Example #1
0
 /**
  * @depends testCreate
  */
 public function testUpdate(ProductModel $product)
 {
     $event = new ProductUpdateEvent($product->getId());
     $defaultCategory = CategoryQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $brandId = BrandQuery::create()->findOne()->getId();
     $event->setLocale('fr_FR')->setTitle('test MAJ titre en français')->setDescription('test description fr')->setChapo('test chapo fr')->setPostscriptum('test postscriptum fr')->setVisible(1)->setDefaultCategory($defaultCategory)->setBrandId($brandId)->setRef($product->getRef())->setDispatcher($this->getDispatcher());
     $action = new Product();
     $action->update($event);
     $updatedProduct = $event->getProduct();
     $this->assertInstanceOf('Thelia\\Model\\Product', $updatedProduct);
     $updatedProduct->setLocale('fr_FR');
     $this->assertEquals('test MAJ titre en français', $updatedProduct->getTitle());
     $this->assertEquals('test description fr', $updatedProduct->getDescription());
     $this->assertEquals('test chapo fr', $updatedProduct->getChapo());
     $this->assertEquals('test postscriptum fr', $updatedProduct->getPostscriptum());
     $this->assertEquals(1, $updatedProduct->getVisible());
     $this->assertEquals($defaultCategory, $updatedProduct->getDefaultCategoryId());
     $PSE = $updatedProduct->getProductSaleElementss();
     $this->assertEquals(1, count($PSE));
     return $updatedProduct;
 }
Example #2
0
 /**
  * @param  LoopResultRow         $loopResultRow the current result row
  * @param  \Thelia\Model\Product $product
  * @param $default_category_id
  * @return mixed
  */
 private function associateValues($loopResultRow, $product, $default_category_id)
 {
     $display_initial_price = $product->getVirtualColumn('display_initial_price');
     if (is_null($display_initial_price)) {
         $display_initial_price = 1;
     }
     $loopResultRow->set("ID", $product->getId())->set("REF", $product->getRef())->set("IS_TRANSLATED", $product->getVirtualColumn('IS_TRANSLATED'))->set("LOCALE", $this->locale)->set("TITLE", $product->getVirtualColumn('i18n_TITLE'))->set("CHAPO", $product->getVirtualColumn('i18n_CHAPO'))->set("DESCRIPTION", $product->getVirtualColumn('i18n_DESCRIPTION'))->set("POSTSCRIPTUM", $product->getVirtualColumn('i18n_POSTSCRIPTUM'))->set("URL", $product->getUrl($this->locale))->set("META_TITLE", $product->getVirtualColumn('i18n_META_TITLE'))->set("META_DESCRIPTION", $product->getVirtualColumn('i18n_META_DESCRIPTION'))->set("META_KEYWORDS", $product->getVirtualColumn('i18n_META_KEYWORDS'))->set("POSITION", $product->getPosition())->set("VIRTUAL", $product->getVirtual() ? "1" : "0")->set("VISIBLE", $product->getVisible() ? "1" : "0")->set("TEMPLATE", $product->getTemplateId())->set("DEFAULT_CATEGORY", $default_category_id)->set("TAX_RULE_ID", $product->getTaxRuleId())->set("BRAND_ID", $product->getBrandId() ?: 0)->set("SHOW_ORIGINAL_PRICE", $display_initial_price);
     if ($this->getBackend_context() || $this->getWithPrevNextInfo()) {
         $visible = $this->getWithPrevNextVisible();
         // Find previous and next category
         $previousSearch = ProductQuery::create()->joinProductCategory()->where('ProductCategory.category_id = ?', $default_category_id)->filterByPosition($product->getPosition(), Criteria::LESS_THAN)->orderByPosition(Criteria::DESC);
         if ($visible !== Type\BooleanOrBothType::ANY) {
             $previousSearch->filterByVisible($visible ? 1 : 0);
         }
         $previous = $previousSearch->findOne();
         $nextSearch = ProductQuery::create()->joinProductCategory()->where('ProductCategory.category_id = ?', $default_category_id)->filterByPosition($product->getPosition(), Criteria::GREATER_THAN)->orderByPosition(Criteria::ASC);
         if ($visible !== Type\BooleanOrBothType::ANY) {
             $nextSearch->filterByVisible($visible ? 1 : 0);
         }
         $next = $nextSearch->findOne();
         $loopResultRow->set("HAS_PREVIOUS", $previous != null ? 1 : 0)->set("HAS_NEXT", $next != null ? 1 : 0)->set("PREVIOUS", $previous != null ? $previous->getId() : -1)->set("NEXT", $next != null ? $next->getId() : -1);
     }
     return $loopResultRow;
 }
Example #3
0
 /**
  * @param  LoopResultRow         $loopResultRow the current result row
  * @param  \Thelia\Model\Product $product
  * @param $defaultCategoryId
  * @return mixed
  */
 private function associateValues($loopResultRow, $product, $defaultCategoryId)
 {
     $display_initial_price = $product->getVirtualColumn('display_initial_price');
     if (is_null($display_initial_price)) {
         $display_initial_price = 1;
     }
     $loopResultRow->set("ID", $product->getId())->set("REF", $product->getRef())->set("IS_TRANSLATED", $product->getVirtualColumn('IS_TRANSLATED'))->set("LOCALE", $this->locale)->set("TITLE", $product->getVirtualColumn('i18n_TITLE'))->set("CHAPO", $product->getVirtualColumn('i18n_CHAPO'))->set("DESCRIPTION", $product->getVirtualColumn('i18n_DESCRIPTION'))->set("POSTSCRIPTUM", $product->getVirtualColumn('i18n_POSTSCRIPTUM'))->set("URL", $this->getReturnUrl() ? $product->getUrl($this->locale) : null)->set("META_TITLE", $product->getVirtualColumn('i18n_META_TITLE'))->set("META_DESCRIPTION", $product->getVirtualColumn('i18n_META_DESCRIPTION'))->set("META_KEYWORDS", $product->getVirtualColumn('i18n_META_KEYWORDS'))->set("POSITION", $product->getVirtualColumn('position_delegate'))->set("VIRTUAL", $product->getVirtual() ? "1" : "0")->set("VISIBLE", $product->getVisible() ? "1" : "0")->set("TEMPLATE", $product->getTemplateId())->set("DEFAULT_CATEGORY", $defaultCategoryId)->set("TAX_RULE_ID", $product->getTaxRuleId())->set("BRAND_ID", $product->getBrandId() ?: 0)->set("SHOW_ORIGINAL_PRICE", $display_initial_price);
     $this->findNextPrev($loopResultRow, $product, $defaultCategoryId);
     return $loopResultRow;
 }