src/EventSubscriber/commercesSubscriber.php line 101

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Commune;
  4. use App\Entity\CommercesTemp;
  5. use App\Entity\Commerces;
  6. use App\Entity\TypeAnnonceur;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityDeletedEvent;
  9. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityPersistedEvent;
  10. use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityDeletedEvent;
  11. use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityPersistedEvent;
  12. use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityUpdatedEvent;
  13. use mysql_xdevapi\Exception;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. class commercesSubscriber implements EventSubscriberInterface
  16. {
  17.     private $entityManager;
  18.     public function __construct(EntityManagerInterface $entityManager)
  19.     {
  20.         $this->entityManager $entityManager;
  21.     }
  22.     public static function getSubscribedEvents()
  23.     {
  24.         return [
  25.             AfterEntityPersistedEvent::class => ['addCommerceTem'],
  26.             BeforeEntityUpdatedEvent::class => ['updateCommerceTem'],
  27.             BeforeEntityDeletedEvent::class =>['deleteCommerceTem']
  28.         ];
  29.     }
  30.     public function addCommerceTem(AfterEntityPersistedEvent $event)
  31.     {
  32.         try{
  33.             $entity $event->getEntityInstance();
  34.           // dd($entity,$entity->getCommune()->getIdProvince());
  35.             if (($entity instanceof Commerces)) {
  36.                 $communess $entity ->getCommune();
  37.                 $com $communess->getEditionEnPreparation();
  38.               //  dd($communess, $com);
  39.             if( $com != null){
  40.                     $categorie$entity->getRubrique()->getCategorieRubrique();
  41.                  // dd($categorie,$entity->getTypeAnnonceur());
  42.                     $type $categorie != null $this->entityManager->getRepository(TypeAnnonceur::class)->find($categorie->getId()) : $entity->getTypeAnnonceur();
  43.                     $entity->setTypeAnnonceur($type);
  44.                     $this->entityManager->persist($entity);
  45.                     $this->entityManager->flush();
  46.                 $commerceTemp = new CommercesTemp();
  47.                 $commerceTemp->setCommune($entity->getCommune());
  48.                 $commerceTemp->setProvince($entity->getProvince());
  49.                 $commerceTemp->setRubrique($entity->getRubrique());
  50.                 $commerceTemp->setPersonneDeContact($entity->getPersonneDeContact());
  51.                 $commerceTemp->setDenominationCommerciale($entity->getDenominationCommerciale());
  52.                 $commerceTemp->setTypeAnnonceur($entity->getTypeAnnonceur());
  53.                 $commerceTemp->setNom($entity->getNom());
  54.                 $commerceTemp->setTel($entity->getTel());
  55.                 $commerceTemp->setAdresse($entity->getAdresse());
  56.                 $commerceTemp->setNumMaison($entity->getNumMaison());
  57.                 $commerceTemp->setCp($entity->getCp());
  58.                 $commerceTemp->setVille($entity->getVille());
  59.                 $commerceTemp->setEmail($entity->getEmail());
  60.                 $commerceTemp->setUrl($entity->getUrl());
  61.                 $commerceTemp->setCommentaire($entity->getCommentaire());
  62.                 $commerceTemp->setNoteInterne($entity->getNoteInterne());
  63.                 $commerceTemp->setCreatedBy($entity->getCreatedBy());
  64.                 $commerceTemp->setColor($entity->getColor());
  65.                 $commerceTemp->setNumeroPub($entity->getNumeroPub());
  66.                 $commerceTemp->setLastUpdate($entity->getLastUpdate());
  67.                 $commerceTemp->setLastContact($entity->getLastContact());
  68.                 $commerceTemp->setImage('');
  69.                 $commerceTemp->setPrix(0);
  70.                 $commerceTemp->setFormat(0);
  71.                 $commerceTemp->setVente(0);
  72.                 $commerceTemp->setLigne(0);
  73.                 $commerceTemp->setNEdition($entity->getNEdition());
  74.                 $commerceTemp->setAncienId($entity->getId());
  75.                 $this->entityManager->persist($commerceTemp);
  76.                 $this->entityManager->flush();
  77.             }
  78. //dd($commerceTemp);
  79.             }
  80.         } catch (\Doctrine\ORM\ORMException $e){
  81.             return $e;
  82.         }
  83.     }
  84.     public function updateCommerceTem(BeforeEntityUpdatedEvent $event)
  85.     {
  86.         try{
  87.             $entity $event->getEntityInstance();
  88.             if (($entity instanceof Commerces)) {
  89.                 $categorie$entity->getRubrique()->getCategorieRubrique();
  90.                //  dd($categorie,$entity->getTypeAnnonceur());
  91.                // $type = $categorie != null ? $this->entityManager->getRepository(TypeAnnonceur::class)->find($categorie->getId()) : $entity->getTypeAnnonceur();
  92.                 $type $entity->getTypeAnnonceur();
  93.                // dd($categorie,$entity->getTypeAnnonceur(),$type);
  94.                 $entity->setTypeAnnonceur($type);
  95.                 $entity->setProvince($entity->getCommune()->getIdProvince());
  96.                 $this->entityManager->persist($entity);
  97.                 $this->entityManager->flush();
  98.                 $commerceT $this->entityManager->getRepository(CommercesTemp::class)->findOneBy(["ancienId"=>$entity->getId()]);
  99.                // dd($commerceT);
  100.                 if(!$commerceT) {
  101.                     $commerceT $this->entityManager->getRepository(CommercesTemp::class)->findOneBy(["nom" => $entity->getNom()]);
  102.                 }
  103.                 /*if(!$commerceT){
  104.                     $conn = $this->entityManager->getConnection();
  105.                     $sql = "SELECT * from commerces_temp  where commune_id=".$entity->getCommune()." AND (ancien_id =".$entity->getId()." OR nom=".$entity->getNom().");";
  106.                     $stmt = $conn->prepare($sql);
  107.                     $result = $stmt->execute();
  108.                     dd("in update",$result);
  109.                 }*/
  110.                 if($commerceT){
  111.                           //  dd($entityManager1,$entityManager,$entity);
  112.                         $commerceT->setCommune($entity->getCommune());
  113.                         $commerceT->setProvince($entity->getCommune()->getIdProvince());
  114.                         $commerceT->setRubrique($entity->getRubrique());
  115.                         $commerceT->setPersonneDeContact($entity->getPersonneDeContact());
  116.                         $commerceT->setDenominationCommerciale($entity->getDenominationCommerciale());
  117.                         $commerceT->setTypeAnnonceur($entity->getTypeAnnonceur());
  118.                         $commerceT->setNom($entity->getNom());
  119.                         $commerceT->setTel($entity->getTel());
  120.                         $commerceT->setAdresse($entity->getAdresse());
  121.                         $commerceT->setNumMaison($entity->getNumMaison());
  122.                         $commerceT->setCp($entity->getCp());
  123.                         $commerceT->setVille($entity->getVille());
  124.                         $commerceT->setEmail($entity->getEmail());
  125.                         $commerceT->setUrl($entity->getUrl());
  126.                         $commerceT->setCommentaire($entity->getCommentaire());
  127.                         $commerceT->setNoteInterne($entity->getNoteInterne());
  128.                         $commerceT->setCreatedBy($entity->getCreatedBy());
  129.                         $commerceT->setColor($entity->getColor());
  130.                         $commerceT->setNumeroPub($entity->getNumeroPub());
  131.                         $commerceT->setLastUpdate($entity->getLastUpdate());
  132.                         $commerceT->setLastContact($entity->getLastContact());
  133.                             //Champs ne doivent pas changer dans commercesTemp
  134.                             // $entityManager->setImage($entity->getImage());
  135.                             //  $entityManager->setPrix($entity->getPrix());
  136.                             //  $entityManager->setFormat($entity->getFormat());
  137.                             //   $entityManager->setVente($entity->getVente());
  138.                             // $entityManager->setLigne($entity->getLigne());
  139.                           //  $entityManager->setNEdition($entity->getNEdition());
  140.                       /* $this->entityManager->persist($commerceT);
  141.                         $this->entityManager->flush();*/
  142.                     }
  143.             }
  144.         } catch (\Doctrine\ORM\ORMException $e){
  145.             return $e;
  146.         }
  147.     }
  148.     public function deleteCommerceTem(BeforeEntityDeletedEvent $event)
  149.     {
  150.         try{
  151.             $entity $event->getEntityInstance();
  152.             if (($entity instanceof Commerces)) {
  153.                 $commerceTem1 $this->entityManager->getRepository(CommercesTemp::class)->findOneBy(["ancienId"=>$entity->getId()]);
  154.                 if(!$commerceTem1){
  155.                     $commerceTem1 $this->entityManager->getRepository(CommercesTemp::class)->findOneBy(["nom"=>$entity->getNom()]);
  156.                 }
  157.                // dd($commerceTem1);
  158.                 $id$commerceTem1 $commerceTem1->getId(): null;
  159.                 if($id){
  160.                     $conn $this->entityManager->getConnection();
  161.                     $sql "DELETE from commerces_temp  where id =".$id;
  162.                     $stmt $conn->prepare($sql);
  163.                     $stmt->execute();
  164.                 }
  165.                // dd($commerceTem1,$id);
  166.               //  $this->entityManager->createQueryBuilder()->delete('CommercesTemp','c')->where('s.id = :id')->setParameter('id', $id)->getQuery()->execute();
  167.                // $this->entityManager->createNativeQuery("DELETE from commercesTemp where  id= ?",$id);
  168.                /* $this->entityManager->remove($commerceTem1);
  169.                 $this->entityManager->persist($commerceTem1);
  170.                 $this->entityManager->flush();*/
  171.             }
  172.         } catch (\Doctrine\ORM\ORMException $e){
  173.             return $e;
  174.         }
  175.     }
  176. }