35 lines
943 B
PHP
35 lines
943 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\OrderNumber\Plugin;
|
|
|
|
use Esun\OrderNumber\Model\WebsiteSequenceFactory;
|
|
use Magento\Framework\DB\Sequence\SequenceInterface;
|
|
use Magento\Sales\Model\Order;
|
|
use Magento\SalesSequence\Model\Manager;
|
|
use Magento\Store\Model\StoreManagerInterface;
|
|
|
|
class SalesSequenceManagerPlugin
|
|
{
|
|
public function __construct(
|
|
private readonly StoreManagerInterface $storeManager,
|
|
private readonly WebsiteSequenceFactory $websiteSequenceFactory
|
|
) {
|
|
}
|
|
|
|
public function afterGetSequence(
|
|
Manager $subject,
|
|
SequenceInterface $result,
|
|
string $entityType,
|
|
int $storeId
|
|
): SequenceInterface {
|
|
if ($entityType !== Order::ENTITY) {
|
|
return $result;
|
|
}
|
|
|
|
$websiteId = (int)$this->storeManager->getStore($storeId)->getWebsiteId();
|
|
|
|
return $this->websiteSequenceFactory->create(['websiteId' => $websiteId]);
|
|
}
|
|
}
|