<?php
namespace App\EventListener\Custom\Eshop;
use App\Entity\Central\Client\Client;
use App\Entity\Client\PointOfSale\PointOfSaleMove;
use App\Entity\Client\Store\StoreHeader;
use App\EventListener\GenericEvent;
use App\Model\ShellExec;
use App\Service\AppManager;
use App\Service\Central\Client\ClientFlagManager;
use App\Service\ShellExecManager;
use App\Utils\ClientUtils;
use Eshop\Entity\Customer\CustomerOrder;
use GraphQL\Resolver\FlagResolver;
use Symfony\Component\HttpKernel\KernelInterface;
class PostListener
{
private ShellExecManager $shellExecManager;
public function __construct(ShellExecManager $shellExecManager)
{
$this->shellExecManager = $shellExecManager;
}
public function sendConfirmedOrderEmail(GenericEvent $genericEvent)
{
/** @var CustomerOrder $entity */
$entity = $genericEvent->getSubject();
if (!$entity instanceof CustomerOrder || !$entity->isConfirmed()) {
return;
}
$client = $genericEvent->getAppManager()->getClient();
if(!$client instanceof Client || $client->hasFlag(ClientFlagManager::HAVE_ESHOP) === false){
return;
}
$shellExec = new ShellExec('eshop:send_confirmed_order', $client->getId() . ' ' . $entity->getId() . ' --kernel=eshop');
$this->shellExecManager->runShellExec($shellExec, true);
}
}