Esempio n. 1
0
 /**
  * Update the value of a product feature.
  *
  * @param FeatureProductUpdateEvent $event
  */
 public function updateFeatureProductValue(FeatureProductUpdateEvent $event)
 {
     // If the feature is not free text, it may have one ore more values.
     // If the value exists, we do not change it
     // If the value does not exists, we create it.
     //
     // If the feature is free text, it has only a single value.
     // Etiher create or update it.
     $featureProductQuery = FeatureProductQuery::create()->filterByFeatureId($event->getFeatureId())->filterByProductId($event->getProductId());
     if ($event->getIsTextValue() !== true) {
         $featureProductQuery->filterByFeatureAvId($event->getFeatureValue());
     }
     $featureProduct = $featureProductQuery->findOne();
     if ($featureProduct == null) {
         $featureProduct = new FeatureProduct();
         $featureProduct->setDispatcher($event->getDispatcher())->setProductId($event->getProductId())->setFeatureId($event->getFeatureId());
     }
     if ($event->getIsTextValue() == true) {
         $featureProduct->setFreeTextValue($event->getFeatureValue());
     } else {
         $featureProduct->setFeatureAvId($event->getFeatureValue());
     }
     $featureProduct->save();
     $event->setFeatureProduct($featureProduct);
 }