<?php
namespace App\EventListener\Central;
use App\Entity\Central\ArticleNumber\EuropeanArticleNumber;
use App\Entity\Central\Product\Product;
use App\EventListener\GenericEvent;
use App\Service\AppManager;
use Symfony\Component\HttpFoundation\Response;
class ProductListener
{
private AppManager $appManager;
public function __construct(AppManager $appManager)
{
$this->appManager = $appManager;
}
public function europeanArticleNumber(GenericEvent $genericEvent)
{
// TODO
return;
$product = $genericEvent->getSubject();
if (!$product instanceof Product) {
return;
}
if ($product->getId() === null) {
$europeanArticleNumberRepository = $this->appManager->getRepository(EuropeanArticleNumber::class);
foreach ($product->getEuropeanArticleNumbers() as $europeanArticleNumber) {
$existEuropeanArticleNumber = $europeanArticleNumberRepository->findByNumber($europeanArticleNumber->getNumber());
if ($existEuropeanArticleNumber instanceof EuropeanArticleNumber) {
$genericEvent->setResponse(new Response($existEuropeanArticleNumber->getProduct()->getId(), 201));
break;
}
}
}
}
}