Files
esun3d/app/code/Esun/LingxingErp/Observer/SaveSourceWarehouseMapping.php
T
2026-09-15 10:35:56 +08:00

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
);
}
}