/**
  * @param OrmResultAfter $event
  */
 public function onResultAfter(OrmResultAfter $event)
 {
     $currencies = $this->getCurrencies();
     if (!$currencies) {
         return;
     }
     /** @var ResultRecord[] $records */
     $records = $event->getRecords();
     $productIds = [];
     foreach ($records as $record) {
         $productIds[] = $record->getValue('id');
     }
     /** @var ProductPriceRepository $priceRepository */
     $priceRepository = $this->doctrineHelper->getEntityRepository('OroB2BPricingBundle:ProductPrice');
     $priceList = $this->getPriceList();
     $showTierPrices = $this->priceListRequestHandler->getShowTierPrices();
     $prices = $priceRepository->findByPriceListIdAndProductIds($priceList->getId(), $productIds, $showTierPrices);
     $groupedPrices = $this->groupPrices($prices);
     foreach ($records as $record) {
         $record->addData(['showTierPrices' => $showTierPrices]);
         $productId = $record->getValue('id');
         $priceContainer = [];
         foreach ($currencies as $currencyIsoCode) {
             $columnName = $this->buildColumnName($currencyIsoCode);
             if (isset($groupedPrices[$productId][$currencyIsoCode])) {
                 $priceContainer[$columnName] = $groupedPrices[$productId][$currencyIsoCode];
             } else {
                 $priceContainer[$columnName] = [];
             }
         }
         if ($priceContainer) {
             $record->addData($priceContainer);
         }
     }
 }
 /**
  * @param OrmResultAfter $event
  */
 public function onResultAfter(OrmResultAfter $event)
 {
     /** @var ResultRecord[] $records */
     $records = $event->getRecords();
     foreach ($records as $record) {
         $record->addData(['isDraft' => $record->getValue('statusName') === RequestStatus::DRAFT]);
     }
 }
示例#3
0
 /**
  * Gets prepared SQL and parameters from executed query
  * and stores them in DataGrid config object
  *
  * @param OrmResultAfter $event
  */
 public function onResultAfter(OrmResultAfter $event)
 {
     $config = $event->getDatagrid()->getConfig();
     $path = sprintf('%s[%s]', MetadataObject::OPTIONS_KEY, StoreSqlExtension::STORE_SQL);
     if ($config->offsetGetByPath($path, false)) {
         $config->offsetAddToArrayByPath(StoreSqlExtension::STORED_SQL_PATH, [StoreSqlExtension::SQL => QueryUtils::getExecutableSql($event->getQuery())]);
     }
 }
 /**
  * @param OrmResultAfter $event
  */
 public function onResultAfter(OrmResultAfter $event)
 {
     if (!$this->paginationManager->isEnabled()) {
         return;
     }
     $dataGrid = $event->getDatagrid();
     if (!$this->paginationManager->isDatagridApplicable($dataGrid)) {
         return;
     }
     // clear all data as long as we can't guarantee that storage data is valid
     $entityName = $this->getEntityName($dataGrid);
     $this->storage->clearData($entityName);
 }