mirror of
https://github.com/Karaka-Management/oms-Exchange.git
synced 2026-01-27 08:18:41 +00:00
detached head fixes?
This commit is contained in:
commit
ce16c22f74
|
|
@ -14,50 +14,54 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Exchange\Interfaces\GSD;
|
||||
|
||||
use phpOMS\Utils\IO\Zip\Zip;
|
||||
use Modules\Accounting\Models\CostCenter;
|
||||
use Modules\Accounting\Models\CostCenterMapper;
|
||||
use Modules\Accounting\Models\CostObject;
|
||||
use Modules\Accounting\Models\CostObjectMapper;
|
||||
use Modules\Admin\Models\Account;
|
||||
use Modules\Admin\Models\Address;
|
||||
use Modules\Profile\Models\Profile;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\Localization\ISO639x1Enum;
|
||||
use Modules\ItemManagement\Models\Item;
|
||||
use Modules\Profile\Models\ContactType;
|
||||
use phpOMS\Localization\ISO3166TwoEnum;
|
||||
use phpOMS\System\File\Local\Directory;
|
||||
use Modules\Accounting\Models\CostCenter;
|
||||
use Modules\Accounting\Models\CostObject;
|
||||
use Modules\Profile\Models\ContactElement;
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\ClientManagement\Models\Client;
|
||||
use Modules\ItemManagement\Models\ItemL11n;
|
||||
use Modules\Exchange\Models\ImporterAbstract;
|
||||
use Modules\ItemManagement\Models\ItemMapper;
|
||||
use Modules\Accounting\Models\CostCenterMapper;
|
||||
use Modules\Accounting\Models\CostObjectMapper;
|
||||
use Modules\ItemManagement\Models\ItemL11nType;
|
||||
use Modules\SupplierManagement\Models\Supplier;
|
||||
use phpOMS\DataStorage\Database\DatabaseStatus;
|
||||
use Modules\ClientManagement\Models\ClientMapper;
|
||||
use Modules\ItemManagement\Models\NullItemL11nType;
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use Modules\ItemManagement\Models\ItemAttributeType;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDArticle;
|
||||
use Modules\ItemManagement\Models\ItemL11nTypeMapper;
|
||||
use Modules\SupplierManagement\Models\SupplierMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCustomer;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDSupplier;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostCenter;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostObject;
|
||||
use Modules\ItemManagement\Models\ItemAttributeTypeL11n;
|
||||
use Modules\ItemManagement\Models\NullItemAttributeType;
|
||||
use Modules\ItemManagement\Models\ItemAttributeTypeMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDArticleMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCustomerMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDSupplierMapper;
|
||||
use phpOMS\DataStorage\Database\Connection\ConnectionFactory;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostCenter;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostCenterMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostObject;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCostObjectMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCustomer;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDCustomerMapper;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDSupplier;
|
||||
use Modules\Exchange\Interfaces\GSD\Model\GSDSupplierMapper;
|
||||
use Modules\Exchange\Models\ImporterAbstract;
|
||||
use Modules\ItemManagement\Models\Item;
|
||||
use Modules\ItemManagement\Models\ItemAttributeType;
|
||||
use Modules\ItemManagement\Models\ItemAttributeTypeL11n;
|
||||
use Modules\ItemManagement\Models\ItemAttributeTypeL11nMapper;
|
||||
use Modules\ItemManagement\Models\ItemAttributeTypeMapper;
|
||||
use Modules\ItemManagement\Models\ItemL11n;
|
||||
use Modules\ItemManagement\Models\ItemL11nType;
|
||||
use Modules\ItemManagement\Models\ItemL11nTypeMapper;
|
||||
use Modules\ItemManagement\Models\ItemMapper;
|
||||
use Modules\ItemManagement\Models\NullItemAttributeType;
|
||||
use Modules\ItemManagement\Models\NullItemL11nType;
|
||||
use Modules\Media\Controller\Controller;
|
||||
use Modules\Media\Models\Media;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use Modules\Profile\Models\ContactElement;
|
||||
use Modules\Profile\Models\ContactType;
|
||||
use Modules\Profile\Models\Profile;
|
||||
use Modules\SupplierManagement\Models\Supplier;
|
||||
use Modules\SupplierManagement\Models\SupplierMapper;
|
||||
use phpOMS\DataStorage\Database\Connection\ConnectionAbstract;
|
||||
use phpOMS\DataStorage\Database\Connection\ConnectionFactory;
|
||||
use phpOMS\DataStorage\Database\DatabaseStatus;
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\Localization\ISO3166TwoEnum;
|
||||
use phpOMS\Localization\ISO639x1Enum;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\System\File\Local\Directory;
|
||||
use phpOMS\Utils\IO\Zip\Zip;
|
||||
|
||||
/**
|
||||
* GSD import class
|
||||
|
|
@ -77,6 +81,14 @@ final class Importer extends ImporterAbstract
|
|||
*/
|
||||
private ?ConnectionAbstract $remote = null;
|
||||
|
||||
/**
|
||||
* Account
|
||||
*
|
||||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private int $account = 1;
|
||||
|
||||
/**
|
||||
* Import all data in time span
|
||||
*
|
||||
|
|
@ -115,17 +127,19 @@ final class Importer extends ImporterAbstract
|
|||
$end = new \DateTime($request->getData('end') ?? 'now');
|
||||
|
||||
$this->remote = ConnectionFactory::create([
|
||||
'db' => (string) ($request->getData('db') ?? ''),
|
||||
'host' => (string) ($request->getData('host') ?? ''),
|
||||
'port' => (int) ($request->getData('port') ?? 0),
|
||||
'database' => (string) ($request->getData('database') ?? ''),
|
||||
'login' => (string) ($request->getData('login') ?? ''),
|
||||
'password' => (string) ($request->getData('password') ?? ''),
|
||||
'db' => (string) ($request->getData('db') ?? ''),
|
||||
'host' => (string) ($request->getData('host') ?? ''),
|
||||
'port' => (int) ($request->getData('port') ?? 0),
|
||||
'database' => (string) ($request->getData('database') ?? ''),
|
||||
'login' => (string) ($request->getData('login') ?? ''),
|
||||
'password' => (string) ($request->getData('password') ?? ''),
|
||||
'datetimeformat' => (string) ($request->getData('datetimeformat') ?? 'Y-m-d H:i:s'),
|
||||
]);
|
||||
|
||||
$this->remote->connect();
|
||||
|
||||
$this->account = $request->getHeader()->getAccount();
|
||||
|
||||
if ($this->remote->getStatus() !== DatabaseStatus::OK) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -422,17 +436,40 @@ final class Importer extends ImporterAbstract
|
|||
$itemAttrType = $this->createItemAttributeTypes();
|
||||
$itemAttrValue = $this->createItemAttributeValues($itemAttrType);
|
||||
|
||||
$images = [];
|
||||
$images = [];
|
||||
$imagePath = Controller::FILE_PATH . '/Modules/ItemManagement/Articles/Images';
|
||||
|
||||
$media = [];
|
||||
if (!empty($files)) {
|
||||
if (!\file_exists(__DIR__ . '/temp')) {
|
||||
\mkdir(__DIR__ . '/temp');
|
||||
if (!\is_dir($imagePath)) {
|
||||
\mkdir($imagePath, 0755, true);
|
||||
}
|
||||
|
||||
Zip::unpack($files['tmp_name'], __DIR__ . '/temp/');
|
||||
$jpgOld = Directory::listByExtension($imagePath, 'jpg');
|
||||
$pngOld = Directory::listByExtension($imagePath, 'png');
|
||||
$imagesOld = \array_merge($jpgOld, $pngOld);
|
||||
|
||||
$jpg = Directory::listByExtension(__DIR__ . '/temp/', 'jpg');
|
||||
$png = Directory::listByExtension(__DIR__ . '/temp/', 'png');
|
||||
Zip::unpack($files['tmp_name'], $imagePath);
|
||||
|
||||
$jpg = Directory::listByExtension($imagePath, 'jpg');
|
||||
$png = Directory::listByExtension($imagePath, 'png');
|
||||
$images = \array_merge($jpg, $png);
|
||||
$images = \array_diff($images, $imagesOld);
|
||||
|
||||
foreach ($images as $image) {
|
||||
$number = (int) \explode('.', $image)[0];
|
||||
|
||||
$media[$number] = new Media();
|
||||
$media[$number]->setName((string) $number);
|
||||
$media[$number]->setType('backend_image');
|
||||
$media[$number]->setPath('/Modules/Media/Files/Modules/ItemManagement/Articles/Images/' . $image);
|
||||
$media[$number]->setVirtualPath('/Modules/ItemManagement/Articles/Images');
|
||||
$media[$number]->setExtension(\explode('.', $image)[1]);
|
||||
$media[$number]->setSize(\filesize($imagePath . '/' . $image));
|
||||
$media[$number]->setCreatedBy(new NullAccount($this->account));
|
||||
|
||||
MediaMapper::create($media[$number]);
|
||||
}
|
||||
}
|
||||
|
||||
//$itemAttrType['segment'] = new ItemAttributeType();
|
||||
|
|
@ -440,15 +477,10 @@ final class Importer extends ImporterAbstract
|
|||
//$itemAttrType['devaluation'] = new ItemAttributeType();
|
||||
|
||||
foreach ($articles as $article) {
|
||||
$obj = new Item();
|
||||
$obj->setNumber(\trim($article->number, ",. \t"));
|
||||
$number = (int) \trim($article->number, ",. \t");
|
||||
|
||||
foreach ($images as $image) {
|
||||
if (\stripos($image, $article->number) !== false) {
|
||||
var_dump($image);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$obj = new Item();
|
||||
$obj->setNumber((string) $number);
|
||||
|
||||
// German Language
|
||||
$obj->addL11n(new ItemL11n(
|
||||
|
|
@ -486,16 +518,12 @@ final class Importer extends ImporterAbstract
|
|||
ISO639x1Enum::_EN
|
||||
));
|
||||
|
||||
// @todo: implement
|
||||
// api upload media
|
||||
//$obj->addMedia();
|
||||
if (isset($media[$number])) {
|
||||
$obj->addFile($media[$number]);
|
||||
}
|
||||
|
||||
ItemMapper::create($obj);
|
||||
}
|
||||
|
||||
if (\file_exists(__DIR__ . '/temp')) {
|
||||
Directory::delete(__DIR__ . '/temp');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ final class GSDCustomerMapper extends DataMapperAbstract
|
|||
|
||||
protected static array $ownsOne = [
|
||||
'addr' => [
|
||||
'mapper' => GSDAddressMapper::class,
|
||||
'self' => 'AdressId',
|
||||
'mapper' => GSDAddressMapper::class,
|
||||
'external' => 'AdressId',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ final class GSDSupplierMapper extends DataMapperAbstract
|
|||
|
||||
protected static array $ownsOne = [
|
||||
'addr' => [
|
||||
'mapper' => GSDAddressMapper::class,
|
||||
'self' => 'AdressId',
|
||||
'mapper' => GSDAddressMapper::class,
|
||||
'external' => 'AdressId',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user