public function update(ProductUpdateEvent $event)
    {
        if (null !== $product = ProductQuery::create()->findPk($event->getProductId())) {
            $con = Propel::getWriteConnection(ProductTableMap::DATABASE_NAME);
            $con->beginTransaction();

            try {
                $prevRef = $product->getRef();

                $product
                    ->setDispatcher($this->eventDispatcher)
                    ->setRef($event->getRef())
                    ->setLocale($event->getLocale())
                    ->setTitle($event->getTitle())
                    ->setDescription($event->getDescription())
                    ->setChapo($event->getChapo())
                    ->setPostscriptum($event->getPostscriptum())
                    ->setVisible($event->getVisible() ? 1 : 0)
                    ->setVirtual($event->getVirtual() ? 1 : 0)
                    ->setBrandId($event->getBrandId() <= 0 ? null : $event->getBrandId())

                    ->save($con)
                ;

                // Update default PSE (if product has no attributes and the product's ref change)
                $defaultPseRefChange = $prevRef !== $product->getRef()
                    && 0 === $product->getDefaultSaleElements()->countAttributeCombinations();
                if ($defaultPseRefChange) {
                    $defaultPse = $product->getDefaultSaleElements();
                    $defaultPse->setRef($product->getRef())->save();
                }

                // Update default category (if required)
                $product->setDefaultCategory($event->getDefaultCategory());

                $event->setProduct($product);
                $con->commit();
            } catch (PropelException $e) {
                $con->rollBack();
                throw $e;
            }
        }
    }
public function update(ProductUpdateEvent $event)
    {
        if (null !== $product = ProductQuery::create()->findPk($event->getProductId())) {
            $con = Propel::getWriteConnection(ProductTableMap::DATABASE_NAME);
            $con->beginTransaction();

            try {
                $prevRef = $product->getRef();

                $product
                    ->setDispatcher($this->eventDispatcher)
                    ->setRef($event->getRef())
                    ->setLocale($event->getLocale())
                    ->setTitle($event->getTitle())
                    ->setDescription($event->getDescription())
                    ->setChapo($event->getChapo())
                    ->setPostscriptum($event->getPostscriptum())
                    ->setVisible($event->getVisible() ? 1 : 0)
                    ->setVirtual($event->getVirtual() ? 1 : 0)
                    ->setBrandId($event->getBrandId() <= 0 ? null : $event->getBrandId())

                    ->save($con)
                ;

                // Update default PSE (if product has no attributes and the product's ref change)
                $defaultPseRefChange = $prevRef !== $product->getRef()
                    && 0 === $product->getDefaultSaleElements()->countAttributeCombinations();
                if ($defaultPseRefChange) {
                    $defaultPse = $product->getDefaultSaleElements();
                    $defaultPse->setRef($product->getRef())->save();
                }

                // Update default category (if required)
                $product->setDefaultCategory($event->getDefaultCategory());

                $event->setProduct($product);
                $con->commit();
            } catch (PropelException $e) {
                $con->rollBack();
                throw $e;
            }
        }
    }
public function update ( ProductUpdateEvent $ event ) { if ( null !== $ product = ProductQuery :: create ( ) -> findPk ( $ event -> getProductId ( ) ) ) { $ con = Propel :: getWriteConnection ( ProductTableMap :: DATABASE_NAME ) ; $ con -> beginTransaction ( ) ; try { $ prevRef = $ product -> getRef ( ) ; $ product -> setDispatcher ( $ this -> eventDispatcher ) -> setRef ( $ event -> getRef ( ) ) -> setLocale ( $ event -> getLocale ( ) ) -> setTitle ( $ event -> getTitle ( ) ) -> setDescription ( $ event -> getDescription ( ) ) -> setChapo ( $ event -> getChapo ( ) ) -> setPostscriptum ( $ event -> getPostscriptum ( ) ) -> setVisible ( $ event -> getVisible ( ) ? 1 : 0 ) -> setVirtual ( $ event -> getVirtual ( ) ? 1 : 0 ) -> setBrandId ( $ event -> getBrandId ( ) <= 0 ? null : $ event -> getBrandId ( ) ) -> save ( $ con ) ; // Update default PSE (if product has no attributes and the product's ref change) $ defaultPseRefChange = $ prevRef !== $ product -> getRef ( ) && 0 === $ product -> getDefaultSaleElements ( ) -> countAttributeCombinations ( ) ; if ( $ defaultPseRefChange ) { $ defaultPse = $ product -> getDefaultSaleElements ( ) ; $ defaultPse -> setRef ( $ product -> getRef ( ) ) -> save ( ) ; } // Update default category (if required) $ product -> setDefaultCategory ( $ event -> getDefaultCategory ( ) ) ; $ event -> setProduct ( $ product ) ; $ con -> commit ( ) ; } catch ( PropelException $ e ) { $ con -> rollBack ( ) ; throw $ e ; } } }
Change a product

@param \Thelia\Core\Event\Product\ProductUpdateEvent $event
@throws PropelException
@throws \Exception
Change a product