/** * @return string */ protected function getExportFile() { $result = $this->getContainer()->get('oro_importexport.handler.export')->handleExport('price_list_product_prices_export_to_csv', 'orob2b_pricing_product_price', ProcessorRegistry::TYPE_EXPORT, 'csv', null, ['price_list_id' => $this->priceList->getId()]); $result = json_decode($result->getContent(), true); $chains = explode('/', $result['url']); return $this->getContainer()->get('oro_importexport.file.file_system_operator')->getTemporaryFile(end($chains))->getRealPath(); }
/** * @param Website $website * @param PriceList $priceList */ public function setPriceListToWebsite(Website $website, PriceList $priceList = null) { $oldPriceList = $this->getPriceListByWebsite($website); if ($oldPriceList && $priceList && $oldPriceList->getId() === $priceList->getId()) { return; } if ($oldPriceList) { $oldPriceList->removeWebsite($website); } if ($priceList) { $priceList->addWebsite($website); } }
/** * @param Product $product * @param ProductUnit $productUnit * @param float $quantity * @param string $currency * @param PriceList $priceList * @return Price */ protected function getPrice(Product $product, ProductUnit $productUnit, $quantity, $currency, PriceList $priceList) { $productUnitQuantity = new ProductUnitQuantity($product, $productUnit, $quantity); $identifier = $productUnitQuantity->getIdentifier(); if (!isset($this->prices[$priceList->getId()][$currency][$identifier])) { $prices = $this->productPriceProvider->getMatchedPrices([$productUnitQuantity], $currency, $priceList); $this->prices[$priceList->getId()][$currency][$identifier] = $prices[$identifier]; } $price = $this->prices[$priceList->getId()][$currency][$identifier]; return $price ?: Price::create(mt_rand(10, 1000), $currency); }