Slack notify

This commit is contained in:
Marko
2023-06-14 17:02:24 +02:00
parent 0579a62931
commit 30a8e73f21
33 changed files with 1334 additions and 1137 deletions

85
src/Helper/Jtl.php Normal file
View File

@@ -0,0 +1,85 @@
<?php
namespace App\Helper;
use App\Repository\ProductRepository;
use App\Repository\StockRepository;
use App\Repository\WarehouseRepository;
use Psr\Log\LoggerInterface;
use League\Csv\Writer;
class Jtl
{
private $productRepository;
private $stockRepository;
private $warehouseRepository;
private $logger;
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();
$warehouseId = $warehouse->getId();
$data[$product->getId().$warehouseId] = [
'gtin' => $product->getGtin(),
'stock' => $s->getInstock(),
'warehouse' => $warehouseId
];
}
}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('./jtl/cds-export.csv', 'x');
$writer->insertAll(new \ArrayIterator($data));
}catch (\Exception $e){
$this->logger->error($e->getMessage());
}
}
}