b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / Amasty / OrderExport / Model / OptionSource /
Filename/home/dev2.destoffenstraat.com/app/code/Amasty/OrderExport/Model/OptionSource/ParentEntity.php
Size2.03 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified14-Jun-2025 23:40
Last accessed22-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

declare(strict_types=1);

/**
* @author Amasty Team
* @copyright Copyright (c) Amasty (https://www.amasty.com)
* @package Export Orders for Magento 2
*/

namespace Amasty\OrderExport\Model\OptionSource;

use Amasty\ExportCore\Api\Config\EntityConfigInterface;
use Amasty\ExportCore\Export\Config\RelationConfigProvider;
use Magento\Framework\Data\OptionSourceInterface;
use Amasty\ExportCore\Export\Config\EntityConfigProvider;

class ParentEntity implements OptionSourceInterface
{
/**
* @var EntityConfigProvider
*/
private $entityConfigProvider;

/**
* @var RelationConfigProvider
*/
private $relationConfigProvider;

public function __construct(
EntityConfigProvider $entityConfigProvider,
RelationConfigProvider $relationConfigProvider
) {
$this->entityConfigProvider = $entityConfigProvider;
$this->relationConfigProvider = $relationConfigProvider;
}

public function toOptionArray()
{
$salesOrderConfig = $this->entityConfigProvider->get('sales_order');
$options = [
['value' => '', 'label' => __('-- Please Select --')],
['value' => $salesOrderConfig->getEntityCode(), 'label' => __($salesOrderConfig->getName())]
];

return array_merge(
$options,
$this->getNestedOptions($this->relationConfigProvider->get($salesOrderConfig->getEntityCode()))
);
}

public function getNestedOptions(?array $relationsConfig)
{
$result = [];
if (!empty($relationsConfig)) {
foreach ($relationsConfig as $relation) {
$childEntity = $this->entityConfigProvider->get($relation->getChildEntityCode());
$result[][] = ['value' => $childEntity->getEntityCode(), 'label' => __($childEntity->getName())];

if ($relation->getRelations()) {
$result[] = $this->getNestedOptions($relation->getRelations());
}
}
}

return array_merge([], ...$result);
}
}