38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\LingxingErp\Observer;
|
|
|
|
use Esun\LingxingErp\Model\Warehouse\WarehouseRepository;
|
|
use Magento\Framework\App\RequestInterface;
|
|
use Magento\Framework\Event\Observer;
|
|
use Magento\Framework\Event\ObserverInterface;
|
|
use Magento\InventoryApi\Api\Data\SourceInterface;
|
|
|
|
class SaveSourceWarehouseMapping implements ObserverInterface
|
|
{
|
|
public function __construct(private readonly WarehouseRepository $warehouseRepository)
|
|
{
|
|
}
|
|
|
|
public function execute(Observer $observer): void
|
|
{
|
|
$request = $observer->getData('request');
|
|
$source = $observer->getData('source');
|
|
if (!$source instanceof SourceInterface || !$request instanceof RequestInterface) {
|
|
return;
|
|
}
|
|
|
|
$general = $request->getParam('general');
|
|
if (!is_array($general) || !array_key_exists('lingxing_wid', $general)) {
|
|
return;
|
|
}
|
|
|
|
$value = trim((string)$general['lingxing_wid']);
|
|
$this->warehouseRepository->assignSource(
|
|
(string)$source->getSourceCode(),
|
|
$value === '' ? null : (int)$value
|
|
);
|
|
}
|
|
}
|