53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Stemcell\Customer\Plugin;
|
|
|
|
use Magento\Customer\Model\Customer\DataProviderWithDefaultAddresses;
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Psr\Log\LoggerInterface;
|
|
use Stemcell\Customer\Model\ResourceModel\Salesperson;
|
|
|
|
class DataProviderWithDefaultAddressesPlugin
|
|
{
|
|
public function __construct(
|
|
protected Salesperson $salespersonResourceModel,
|
|
){
|
|
}
|
|
|
|
public function getSalesPerson(int $customerId)
|
|
{
|
|
$connection = $this->salespersonResourceModel->getConnection();
|
|
$query = $connection->query('select salesperson_id from customer_salesperson where customer_id = '. $customerId);
|
|
$result = $query->fetchAll();
|
|
if (!empty($result)) {
|
|
return array_column($result, 'salesperson_id');
|
|
}
|
|
return [];
|
|
}
|
|
|
|
public function afterGetData(
|
|
DataProviderWithDefaultAddresses $subject,
|
|
array $result
|
|
): array {
|
|
|
|
$logger = ObjectManager::getInstance()->get(LoggerInterface::class);
|
|
|
|
foreach ($result as $id => $entityData) {
|
|
if ($id) {
|
|
|
|
$result[$id]['customer']['extension_attributes']['customer_abbr'] = $entityData['customer']['customer_abbr'] ?? null;
|
|
|
|
$salesperson = $this->getSalesPerson($id);
|
|
// $logger->warning('$salesperson', $salesperson);
|
|
if ($salesperson) {
|
|
$result[$id]['customer']['salespersons'] = $salesperson;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
}
|