39 lines
1.4 KiB
PHP
39 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Stemcell\Customer\Observer;
|
|
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Magento\Framework\Event\Observer;
|
|
use Magento\Framework\Event\ObserverInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
use Stemcell\Customer\Model\ResourceModel\Salesperson;
|
|
|
|
class SalespersonsCustomerSave implements ObserverInterface
|
|
{
|
|
public function __construct(
|
|
protected Salesperson $salespersonResourceModel,
|
|
){
|
|
}
|
|
|
|
public function execute(Observer $observer)
|
|
{
|
|
/* @var $request \Magento\Framework\App\RequestInterface */
|
|
$request = $observer->getData('request');
|
|
/* @var $request \Magento\Customer\Api\Data\CustomerInterface */
|
|
$customer = $observer->getData('customer');
|
|
$salesperson = $request->getParam('customer');
|
|
|
|
$connection = $this->salespersonResourceModel->getConnection();
|
|
if (isset($salesperson['salespersons']) && is_array($salesperson['salespersons'])) {
|
|
$data = [];
|
|
foreach ($salesperson['salespersons'] as $item) {
|
|
$data[] = ['customer_id' => $customer->getId(), 'salesperson_id' => $item];
|
|
}
|
|
$connection->beginTransaction();
|
|
$connection->delete('customer_salesperson', 'customer_id = '. $customer->getId());
|
|
$connection->insertMultiple('customer_salesperson', $data);
|
|
$connection->commit();
|
|
}
|
|
}
|
|
}
|