Slack notify
This commit is contained in:
85
src/Helper/Jtl.php
Normal file
85
src/Helper/Jtl.php
Normal 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user