fix Hiltes import

This commit is contained in:
Marko 2023-09-15 17:13:06 +02:00
parent 5bca054a32
commit 20a96ed78b
No known key found for this signature in database
9 changed files with 11553 additions and 17854 deletions

View File

@ -1 +0,0 @@
22.06.2023 16:25:46

View File

@ -1 +0,0 @@
13.09.2023 14:22:44

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -42,10 +42,7 @@ class HiltesImportCommand extends Command
}
protected function configure(): void
{
$this
->addArgument('arg1', InputArgument::OPTIONAL, 'Argument description')
->addOption('option1', null, InputOption::VALUE_NONE, 'Option description')
;
$this->addOption('delta', 'd', InputOption::VALUE_NONE, 'Delta Import');
}
protected function execute(InputInterface $input, OutputInterface $output): int

View File

@ -55,6 +55,9 @@ class HiltesImport
}
}
dump("Imported $count stocks");
//remove fertig file
unlink($this->currentDirPath.'/hiltes/h2c/WS.FERTIG');
}else
return array('success'=>1,'text'=>'No Files');
}else
@ -77,10 +80,10 @@ class HiltesImport
if ($finder->hasResults()) {
#dump($finder);
foreach ($finder as $file) {
if($file->getRelativePathname()=='WS.FERTIG'){
// if($file->getRelativePathname()=='WS.FERTIG'){
$hasFoundFertigFile = true;
continue;
}
// continue;
// }
$this->arrData['orgFiles']['data'][] = array(
'realPath' => $file->getRealPath(),
'fileSize' => $file->getFileInfo()->getSize(),
@ -134,6 +137,8 @@ class HiltesImport
}
unlink($file->getRealPath());
dump($c . ' Datensätze importiert');
return $c;
}
@ -170,56 +175,27 @@ class HiltesImport
protected function saveData(Array $arr){
//dump($arr);
#*** Speichert und/oder Holt WareHouse ab
$wareHouse = $this->checkWareHouseName($arr[2]);
$wareHouse = $this->checkWareHouseName($arr[3]);
#*** PRodukt wird angelegt oder geholt ****
#filiale;etikettnr;menge;
$prodId = $this->checkProduct($arr[0]);
#*** Ermitteln ob schon ein ID vorhadnen für ProdId und WareHouseId
if(!empty($wareHouse) && !empty($this->cachedStockIds[$prodId][$wareHouse->getId()])){
$stock = $this->cachedStockIds[$prodId][$wareHouse->getId()];
$gtin = $this->checkProduct(substr($arr[0],1));
#*** Ermitteln ob schon ein ID vorhanden für ProdId und WareHouseId
if(!empty($wareHouse) && !empty($this->cachedStockIds[$gtin][$wareHouse->getId()])){
$stock = $this->cachedStockIds[$gtin][$wareHouse->getId()];
//dd('JAAAAA');
}else{
$stock = new Stock();
$stock->setProductId($prodId);
$stock->setProductId($gtin);
$stock->setWarehouse($wareHouse);
}
//dd('CHCEK');
$stock->setInstock((int)$arr[1]);
$stock->setInstock((int)$arr[1]/100);
#$stock->setWarehouseId($wareHouseId);
//dump($stock);
$this->stockRepository->save($stock,true);
#dd($stock);
//$stock->setStock((int)$arr[2]);
#filiale;
//
// $warehouse = $this->warehouseRepository->findOneBy(['id'=> $arr[2]]);
//
//
//
// if($warehouse instanceof Warehouse){
// $stock->setWarehouseId($warehouse->getId());
// }else{
// $warehouse = new Warehouse();
// $warehouse->setId((int)$arr[2]);
// $warehouse->setPriority(0);
// $id = $this->warehouseRepository->add($warehouse, true);
// # $stock->setWarehouseId($id);
// }
#
// $stock->setWarehouseId($warehouse->getId());
// try{
// $this->stockRepository->upsert($stock);
// }catch (\Exception $e){
// $this->logger->error($e->getMessage());
// dump($e->getMessage());
// }
}
@ -228,6 +204,8 @@ class HiltesImport
* @return Warehouse|false|int|mixed|null
*/
private function checkWareHouseName(string $wareHouseName){
$wareHouseName = ltrim($wareHouseName,0);
#*** WEnn keine geCached Id Vorhanden
if(empty($this->cachedWarehouseIds[$wareHouseName])){
#*** Check

View File

@ -16,6 +16,18 @@ class Jtl
private $warehouseRepository;
private $logger;
/**
* @var string[] $arrLager
* Lagernamen aus der JTL Wawi
*/
private $arrLager = array(
1 => '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;
@ -41,12 +53,12 @@ class Jtl
if($stock){
foreach($stock as $s){
$warehouse = $s->getWarehouse();
$warehouseId = $warehouse->getId();
$warehouseName = $warehouse->getName();
$data[$product->getId().$warehouseId] = [
$data[$product->getId().$warehouseName] = [
'gtin' => $product->getGtin(),
'stock' => $s->getInstock(),
'warehouse' => $warehouseId
'warehouse' => $this->arrLager[$warehouseName] ?? 'Lager ' . $warehouseName
];
}