|
|
@@ -1,64 +0,0 @@ |
|
|
|
<?php |
|
|
|
|
|
|
|
namespace Lc\CaracoleBundle\EventSubscriber\Product; |
|
|
|
|
|
|
|
use Doctrine\ORM\EntityManagerInterface; |
|
|
|
|
|
|
|
use Lc\CaracoleBundle\Model\Address\AddressInterface; |
|
|
|
use Lc\CaracoleBundle\Model\Product\ProductInterface; |
|
|
|
use Lc\SovBundle\Doctrine\EntityInterface; |
|
|
|
use Lc\SovBundle\Doctrine\Extension\SluggableInterface; |
|
|
|
use Lc\SovBundle\Doctrine\Extension\SortableInterface; |
|
|
|
use Lc\SovBundle\Doctrine\Extension\StatusInterface; |
|
|
|
use Lc\SovBundle\Doctrine\Extension\TreeInterface; |
|
|
|
use Lc\SovBundle\Event\EntityComponentEvent; |
|
|
|
use Lc\SovBundle\Event\EntityManager\EntityManagerEvent; |
|
|
|
use Lc\SovBundle\Repository\AbstractRepositoryInterface; |
|
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface; |
|
|
|
|
|
|
|
class DuplicateProductfamilyEventSubscriber implements EventSubscriberInterface |
|
|
|
{ |
|
|
|
protected $em; |
|
|
|
protected $adminUrlGenerator; |
|
|
|
|
|
|
|
public function __construct(EntityManagerInterface $entityManager) |
|
|
|
{ |
|
|
|
$this->em = $entityManager; |
|
|
|
} |
|
|
|
|
|
|
|
public static function getSubscribedEvents() |
|
|
|
{ |
|
|
|
return [ |
|
|
|
EntityComponentEvent::DUPLICATE_EVENT => ['duplicateProductOnDuplicateEvent'], |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
public function duplicateProductOnDuplicateEvent(EntityComponentEvent $event) |
|
|
|
{ |
|
|
|
$entity = $event->getEntity(); |
|
|
|
|
|
|
|
$classMetadata = $this->em->getClassMetadata(get_class($entity)); |
|
|
|
|
|
|
|
/*foreach ($classMetadata->getAssociationMappings() as $associationMapping){ |
|
|
|
if(in_array(ProductInterface::class, class_implements($associationMapping['targetEntity']))){ |
|
|
|
|
|
|
|
/*foreach ($productFamily->getProducts() as $i => $product) { |
|
|
|
$newProduct = clone $product; |
|
|
|
$newProduct->setProductFamily($productFamily); |
|
|
|
$this->em->persist($newProduct); |
|
|
|
$productFamily->addProduct($newProduct); |
|
|
|
} |
|
|
|
|
|
|
|
$methodGet = 'get'.ucfirst($associationMapping['fieldName']); |
|
|
|
$methodSet = 'set'.ucfirst($associationMapping['fieldName']); |
|
|
|
if(method_exists($entity, $methodGet) && method_exists($entity, $methodSet)){ |
|
|
|
$newAddress = clone $entity->$methodGet(); |
|
|
|
$entity->$methodSet($newAddress); |
|
|
|
$this->em->persist($newAddress); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}*/ |
|
|
|
} |
|
|
|
|
|
|
|
} |