Files
kupshop/bundles/External/HannahBundle/Admin/Actions/UserSendCardPDFAction.php
2025-08-02 16:30:27 +02:00

63 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
namespace External\HannahBundle\Admin\Actions;
use External\HannahBundle\Email\OCUserCardEmail;
use External\HannahBundle\Util\User\UserUtil;
use KupShop\AdminBundle\Admin\Actions\AbstractAction;
use KupShop\AdminBundle\Admin\Actions\ActionResult;
use KupShop\AdminBundle\Admin\Actions\IAction;
use KupShop\KupShopBundle\Context\ContextManager;
use KupShop\KupShopBundle\Context\DomainContext;
use KupShop\KupShopBundle\Context\LanguageContext;
use Symfony\Contracts\Service\Attribute\Required;
class UserSendCardPDFAction extends AbstractAction implements IAction
{
#[Required]
public ContextManager $contextManager;
#[Required]
public OCUserCardEmail $userCardEmail;
#[Required]
public UserUtil $userUtil;
public function getTypes(): array
{
return ['users'];
}
public function getName(): string
{
return '[OC] Odeslat zákaznickou kartu';
}
public function execute(&$data, array $config, string $type): ActionResult
{
if (!$this->userUtil->getUserCard((int) $this->getId())) {
return new ActionResult(false, 'Uživatel nemá přiřazenou žádnou kartu!');
}
$user = \User::createFromId((int) $this->getId());
$message = $this->contextManager->activateContexts(
[
LanguageContext::class => $user->id_language ?? null,
DomainContext::class => $this->contextManager->getDomainFromLanguage($user->id_language ?? null),
],
function () use ($user) {
$this->userCardEmail->setUser($user);
return $this->userCardEmail->getEmail();
}
);
$message['to'] = $user['email'];
$this->userCardEmail->sendEmail($message);
return new ActionResult(true);
}
}