'Lager 1 - Standardlager', 3 => 'Lager 3 - DLX', 5 => 'Lager 5 - Verkaufsfilale', 8 => 'Lager 8 - Standardlager', 10 => 'Lager 10 - OJ EF', ); public function __construct(ProductRepository $productRepository,WarehouseRepository $warehouseRepository,StockRepository $stockRepository, LoggerInterface $logger) { $this->productRepository = $productRepository; $this->warehouseRepository = $warehouseRepository; $this->stockRepository = $stockRepository; $this->logger = $logger; } /** * Holt alle Produkte und deren Lagerbestände * @return array */ public function getProducts(): array { $r = $this->productRepository->findAll(); $data = array(); foreach($r as $product){ $stock = $this->stockRepository->findBy(['product_id'=>$product->getId()]); if($stock){ foreach($stock as $s){ $warehouse = $s->getWarehouse(); $warehouseName = $warehouse->getName(); $data[$product->getId().$warehouseName] = [ 'gtin' => $product->getGtin(), 'stock' => $s->getInstock(), 'warehouse' => $this->arrLager[$warehouseName] ?? 'Lager ' . $warehouseName ]; } }else{ $data[$product->getId()] = [ 'gtin' => $product->getGtin(), 'stock' => 0, 'warehouse' => 0 ]; $this->logger->info('No stock for product '.$product->getId()); } // dump($data); } return $data; } /** * @param $data * @return void */ public function createExportFile($data): void { try { $writer = Writer::createFromPath(getcwd().'/jtl/cds-export.csv', 'w+'); $writer->insertAll(new \ArrayIterator($data)); }catch (\Exception $e){ $this->logger->error($e->getMessage()); } } }