/** * Toggle Sale activity * * @param SaleToggleActivityEvent $event * @throws \Propel\Runtime\Exception\PropelException */ public function toggleActivity(SaleToggleActivityEvent $event) { $sale = $event->getSale(); $con = Propel::getWriteConnection(SaleTableMap::DATABASE_NAME); $con->beginTransaction(); try { $sale->setDispatcher($event->getDispatcher())->setActive(!$sale->getActive())->save($con); // Update related products sale status $event->getDispatcher()->dispatch(TheliaEvents::UPDATE_PRODUCT_SALE_STATUS, new ProductSaleStatusUpdateEvent($sale)); $event->setSale($sale); $con->commit(); } catch (PropelException $e) { $con->rollback(); throw $e; } }