src/AdminBundle/Controller/DefaultController.php line 18

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Controller;
  3. use AdminBundle\Entity\User;
  4. use AdminBundle\Form\UserType;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  6. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use Symfony\Component\Filesystem\Filesystem;
  8. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  9. use Symfony\Component\HttpFoundation\Request;
  10. class DefaultController extends Controller
  11. {
  12.     /**
  13.      * @Route("/", name="homepage")
  14.      */
  15.     public function indexAction(Request $request)
  16.     {
  17.         $em $this->getDoctrine()->getManager();
  18.         $users $em->getRepository('AdminBundle:User')->findByRole(3);
  19.         $acheteurs $em->getRepository('AdminBundle:User')->findByRole(2);
  20.         $offres $em->getRepository('FournisseurBundle:Offre')->findByIs_active(0);
  21.         $varietes $em->getRepository('AdminBundle:Variete')->findAll();
  22.         $souks $em->getRepository('AdminBundle:Souk')->findAll();
  23.         $professionnels $em->getRepository('AdminBundle:Professionnel')->findAll();
  24.         $actualites $em->getRepository('AdminBundle:Actualite')->findAll();
  25.         $n count($users);
  26.         $n2 count($acheteurs);
  27.         $n3 count($offres);
  28.         $n4 count($varietes);
  29.         $n5 count($souks);
  30.         $n6 count($professionnels);
  31.         $n7 count($actualites);
  32.         $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse` WHERE `variete_id`=1  GROUP BY `semaine` order by `semaine` DESC';
  33.         $statement $em->getConnection()->prepare($RAW_QUERY);
  34.         $statement->execute();
  35.         $elements $statement->fetchAll();
  36.         if (count($elements) < 2) {
  37.             $mejhoul 0;
  38.             $signeMejhoul "+";
  39.         } else {
  40.             $i 1;
  41.             foreach ($elements as $element) {
  42.                 if ($i == 1) {
  43.                     $montant1 $element["p"];
  44.                 }
  45.                 if ($i == 2) {
  46.                     $montant2 $element["p"];
  47.                     break;
  48.                 }
  49.                 $i $i 1;
  50.             }
  51.             $mejhoul $montant2 $montant1 100;
  52.             if ($montant1 >= $montant2)
  53.                 $signeMejhoul "+";
  54.             else
  55.                 $signeMejhoul "-";
  56.         }
  57.         $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse` WHERE `variete_id`=5  GROUP BY `semaine` order by `semaine` DESC';
  58.         $statement $em->getConnection()->prepare($RAW_QUERY);
  59.         $statement->execute();
  60.         $elements $statement->fetchAll();
  61.         if (count($elements) < 2) {
  62.             $bouzekri 0;
  63.             $signeBouzekri "+";
  64.         } else {
  65.             $i 1;
  66.             foreach ($elements as $element) {
  67.                 if ($i == 1) {
  68.                     $montant1 $element["p"];
  69.                 }
  70.                 if ($i == 2) {
  71.                     $montant2 $element["p"];
  72.                     break;
  73.                 }
  74.                 $i $i 1;
  75.             }
  76.             $bouzekri $montant2 $montant1 100;
  77.             if ($montant1 >= $montant2)
  78.                 $signeBouzekri "+";
  79.             else
  80.                 $signeBouzekri "-";
  81.         }
  82. //boufegouss
  83. $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse` WHERE `variete_id`=4  GROUP BY `semaine` order by `semaine` DESC';
  84.         $statement $em->getConnection()->prepare($RAW_QUERY);
  85.         $statement->execute();
  86.         $elements $statement->fetchAll();
  87.         if (count($elements) < 2) {
  88.             $bouf 0;
  89.             $signebouf "+";
  90.         } else {
  91.             $i 1;
  92.             foreach ($elements as $element) {
  93.                 if ($i == 1) {
  94.                     $montant1 $element["p"];
  95.                 }
  96.                 if ($i == 2) {
  97.                     $montant2 $element["p"];
  98.                     break;
  99.                 }
  100.                 $i $i 1;
  101.             }
  102.             $bouf $montant2 $montant1 100;
  103.             if ($montant1 >= $montant2)
  104.                 $signebouf "+";
  105.             else
  106.                 $signebouf "-";
  107.         }
  108. //khalt
  109. $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse` WHERE `variete_id`=6  GROUP BY `semaine` order by `semaine` DESC';
  110.         $statement $em->getConnection()->prepare($RAW_QUERY);
  111.         $statement->execute();
  112.         $elements $statement->fetchAll();
  113.         if (count($elements) < 2) {
  114.             $bouf2 0;
  115.             $signebouf2 "+";
  116.         } else {
  117.             $i 1;
  118.             foreach ($elements as $element) {
  119.                 if ($i == 1) {
  120.                     $montant1 $element["p"];
  121.                 }
  122.                 if ($i == 2) {
  123.                     $montant2 $element["p"];
  124.                     break;
  125.                 }
  126.                 $i $i 1;
  127.             }
  128.             $bouf2 $montant2 $montant1 100;
  129.             if ($montant1 >= $montant2)
  130.                 $signebouf2 "+";
  131.             else
  132.                 $signebouf2 "-";
  133.         }
  134. //aziza
  135. $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse` WHERE `variete_id`=7  GROUP BY `semaine` order by `semaine` DESC';
  136.         $statement $em->getConnection()->prepare($RAW_QUERY);
  137.         $statement->execute();
  138.         $elements $statement->fetchAll();
  139.         if (count($elements) < 2) {
  140.             $bouf3 0;
  141.             $signebouf3 "+";
  142.         } else {
  143.             $i 1;
  144.             foreach ($elements as $element) {
  145.                 if ($i == 1) {
  146.                     $montant1 $element["p"];
  147.                 }
  148.                 if ($i == 2) {
  149.                     $montant2 $element["p"];
  150.                     break;
  151.                 }
  152.                 $i $i 1;
  153.             }
  154.             $bouf3 $montant2 $montant1 100;
  155.             if ($montant1 >= $montant2)
  156.                 $signebouf3 "+";
  157.             else
  158.                 $signebouf3 "-";
  159.         }
  160.         $RAW_QUERY 'SELECT semaine as s,avg(prix) as p FROM `bourse`  GROUP BY `semaine` order by `semaine` DESC';
  161.         $statement $em->getConnection()->prepare($RAW_QUERY);
  162.         $statement->execute();
  163.         $elements $statement->fetchAll();
  164.         if (count($elements) < 2) {
  165.             $bouzekrii 0;
  166.             $signeBouzekrii "+";
  167.         } else {
  168.             $i 1;
  169.             foreach ($elements as $element) {
  170.                 if ($i == 1) {
  171.                     $montant1 $element["p"];
  172.                 }
  173.                 if ($i == 2) {
  174.                     $montant2 $element["p"];
  175.                     break;
  176.                 }
  177.                 $i $i 1;
  178.             }
  179.             $bouzekrii $montant2 $montant1 100;
  180.             if ($montant1 >= $montant2)
  181.                 $signeBouzekrii "+";
  182.             else
  183.                 $signeBouzekrii "-";
  184.         }
  185.         $tab = array(000000000000);
  186.         $RAW_QUERY 'SELECT month(created) as m,count(*) as v FROM `offre` WHERE year(created)=year(now()) GROUP BY month(created)';
  187.         $statement $em->getConnection()->prepare($RAW_QUERY);
  188.         $statement->execute();
  189.         $elements $statement->fetchAll();
  190.         foreach ($elements as $element) {
  191.             $tab[$element["m"] - 1] = $element["v"];
  192.         }
  193.         $res "[";
  194.         foreach ($tab as $key => $value) {
  195.             $res $res "," $value;
  196.         }
  197.         $res $res "]";
  198.         $tab = array(000000000000);
  199.         $RAW_QUERY 'SELECT month(created) as m,count(*) as v FROM `offre` WHERE `is_vendu` = 1 and year(created)=year(now()) GROUP BY month(created)';
  200.         $statement $em->getConnection()->prepare($RAW_QUERY);
  201.         $statement->execute();
  202.         $elements $statement->fetchAll();
  203.         foreach ($elements as $element) {
  204.             $tab[$element["m"] - 1] = $element["v"];
  205.         }
  206.         $res2 "[";
  207.         foreach ($tab as $key => $value) {
  208.             $res2 $res2 "," $value;
  209.         }
  210.         $res2 $res2 "]";
  211.         return $this->render('AdminBundle:Default:index.html.twig', array("nombreGIE" => $n"nombreAcheteurs" => $n2"nombreOffres" => $n3,
  212.             "nombreVarietes" => $n4"bourseMejhoul" => $mejhoul"signeMejhoul" => $signeMejhoul
  213.             "boursemoyenne" => $bouzekrii"signemoyenne" => $signeBouzekrii,
  214.             "boursebouf" => $bouf"signebouf" => $signebouf,
  215.             "boursekhalt" => $bouf2"signekhalt" => $signebouf2,
  216.             "bourseaziza" => $bouf3"signeaziza" => $signebouf3,
  217.             "bourseBouzekri" => $bouzekri"signeBouzekri" => $signeBouzekri,
  218.             "nombresouks" => $n5"nombreprofessionnels" => $n6"nombreactualites" => $n7,
  219.             "dataoffre" => $res"dataachat" => $res2));
  220.     }
  221.     /**
  222.      * @Route("/admin/ajouter_utilisateur", name="ajouter_user")
  223.      */
  224.     public function ajouterUserAction(Request $request)
  225.     {
  226.         $form $this->createForm(UserType::class);
  227.         $form->handleRequest($request);
  228.         //var_dump($this->get('kernel')->getRootDir()); exit();
  229.         if ($form->isSubmitted()) {
  230.             $em $this->getDoctrine()->getManager();
  231.             $user = new User();
  232.             $username $form["username"]->getData();
  233.             $email $form["email"]->getData();
  234.             $repository $em->getRepository("AdminBundle:User");
  235.             $user2 $em->getRepository('AdminBundle:User')->findByUsername($username);
  236.             $user3 $em->getRepository('AdminBundle:User')->findByEmail($email);
  237.             if ($user2) {
  238.                 $this->addFlash(
  239.                     'message',
  240.                     'Identifiant existe déja dans la BD, veuillez choisir un autre.'
  241.                 );
  242.                 return $this->render('AdminBundle:Default:register.html.twig', array(
  243.                     'form' => $form->createView(),
  244.                 ));
  245.             }
  246.             if ($user3) {
  247.                 $this->addFlash(
  248.                     'message',
  249.                     'Email existe déja dans la BD, veuillez choisir un autre.'
  250.                 );
  251.                 return $this->render('AdminBundle:Default:register.html.twig', array(
  252.                     'form' => $form->createView(),
  253.                 ));
  254.             }
  255.             $nom $form["nom"]->getData();
  256.             $prenom $form["prenom"]->getData();
  257.             $password $form["password"]->getData();
  258.             $role $form['role']->getData();
  259.             $file $form["image"]->getData();
  260.             $user->setUsername($username);
  261.             $user->setEmail($email);
  262.             $user->setNom($nom);
  263.             $user->setPrenom($prenom);
  264.             $user->setEnabled(1);
  265.             $user->setRole($role);
  266.             if ($role === 1) {
  267.                 $roles 'ROLE_ADMIN';
  268.             } elseif ($role === 2) {
  269.                 $roles 'ROLE_ACHETEUR';
  270.             } else {
  271.                 $roles 'ROLE_FOURNISSEUR';
  272.             }
  273.             $user->setRoles([$roles]);
  274.             $characters '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  275.             $charactersLength strlen($characters);
  276.             $randomString '';
  277.             for ($i 0$i 10$i++) {
  278.                 $randomString .= $characters[rand(0$charactersLength 1)];
  279.             }
  280.             $user->setSalt($randomString);
  281.             $encoder $this->get('security.encoder_factory')->getEncoder($user);
  282.             $encodedPassword $encoder->encodePassword($password$user->getSalt());
  283.             $user->setPassword($encodedPassword);
  284.             if ($file != null) {
  285.                 $fileName md5(uniqid()) . '.' $file->guessExtension();
  286.                 try {
  287.                     $file->move(
  288.                         $this->getParameter('images_directory'),
  289.                         $fileName
  290.                     );
  291.                 } catch (FileException $e) {
  292.                     // ... handle exception if something happens during file upload
  293.                 }
  294.                 //$temp = "http://" . $request->getHost() ."/pmp/pmp-api/web/assets/files/images/" . $fileName;
  295.                 $user->setImage($fileName);
  296.             }
  297.             $em->persist($user);
  298.             $em->flush();
  299.             return $this->redirectToRoute('list_users');
  300.         }
  301.         return $this->render('AdminBundle:Default:register.html.twig', array(
  302.             'form' => $form->createView(),
  303.         ));
  304.     }
  305.     /**
  306.      * @Route("/admin/liste_utilisateur", name="list_users")
  307.      */
  308.     public function listUserAction(Request $request)
  309.     {
  310.         $em $this->getDoctrine()->getManager();
  311.         $repository $em->getRepository("AdminBundle:User");
  312.         $users $repository->findBy([],['id'=>'desc']);
  313.         return $this->render('AdminBundle:Default:listusers.html.twig', array(
  314.             'users' => $users,
  315.         ));
  316.     }
  317.     /**
  318.      *
  319.      * @Route("/admin/supprimer_utilisateur/{id}", name="remove_user")
  320.      */
  321.     public function removeUserAction(User $user)
  322.     {
  323.         $em $this->getDoctrine()->getManager();
  324.         try {
  325.             $em->remove($user);
  326.             $em->flush();
  327.             $fileSystem = new Filesystem();
  328.             //$end = array_slice(explode('/', $user->getImage()), -1)[0];
  329.             if ($user->getImage() != null) {
  330.                 $path $this->getParameter('images_directory') . "/" $user->getImage();
  331.                 $fileSystem->remove($path);
  332.             }
  333.         } catch (\Doctrine\DBAL\DBALException $e) {
  334.             $this->addFlash(
  335.                 'message',
  336.                 'une erreur est survenu !.'
  337.             );
  338.             return $this->redirect($this->generateUrl('list_users'));
  339.         }
  340.         return $this->redirectToRoute('list_users');
  341.     }
  342.     /**
  343.      *
  344.      * @Route("/admin/modifier_utilisateur/{id}", name="edit_user")
  345.      */
  346.     public function editRegisterAction(Request $requestUser $user)
  347.     {
  348.         $em $this->getDoctrine()->getManager();
  349.         $form $this->createForm(UserType::class, $user);
  350.         $form->handleRequest($request);
  351.         $session $this->get('session');
  352.         if ($form->isSubmitted()) {
  353.             $oldusername $session->get('oldusername');
  354.             $oldemail $session->get('oldemail');
  355.             $oldimage $session->get('oldimage');
  356.             if (strcmp($oldusername$form["username"]->getData()) !== 0) {
  357.                 $otherUser $em->getRepository('AdminBundle:User')->findByUsername($form["username"]->getData());
  358.                 if ($otherUser) {
  359.                     $this->addFlash(
  360.                         'message',
  361.                         'Identifiant existe déja dans la BD, veuillez choisir un autre.'
  362.                     );
  363.                     return $this->render('AdminBundle:Default:modifieruser.html.twig', array(
  364.                         'form' => $form->createView(),
  365.                     ));
  366.                 }
  367.             }
  368.             if (strcmp($oldemail$form["email"]->getData()) !== 0) {
  369.                 $otherUser $em->getRepository('AdminBundle:User')->findByEmail($form["email"]->getData());
  370.                 if ($otherUser) {
  371.                     $this->addFlash(
  372.                         'message',
  373.                         'Email existe déja dans la BD, veuillez choisir un autre.'
  374.                     );
  375.                     return $this->render('AdminBundle:Default:modifieruser.html.twig', array(
  376.                         'form' => $form->createView(),
  377.                     ));
  378.                 }
  379.             }
  380.             $password $form["password"]->getData();
  381.             $role $form['role']->getData();
  382.             $encoder $this->get('security.encoder_factory')->getEncoder($user);
  383.             $encodedPassword $encoder->encodePassword($password$user->getSalt());
  384.             $user->setPassword($encodedPassword);
  385.             $user->setRole($role);
  386.             if ($role === 1) {
  387.                 $roles 'ROLE_ADMIN';
  388.             } elseif ($role === 2) {
  389.                 $roles 'ROLE_ACHETEUR';
  390.             } else {
  391.                 $roles 'ROLE_FOURNISSEUR';
  392.             }
  393.             $user->setRoles([$roles]);
  394.             $file $user->getImage();
  395.             if ($file != null) {
  396.                 $fileName md5(uniqid()) . '.' $file->guessExtension();
  397.                 try {
  398.                     $file->move(
  399.                         $this->getParameter('images_directory'),
  400.                         $fileName
  401.                     );
  402.                 } catch (FileException $e) {
  403.                 }
  404.                 //$temp = "http://" . $request->getHost() ."/pmp/pmp-api/web/assets/files/images/" . $fileName;
  405.                 $user->setImage($fileName);
  406.             } else {
  407.                 $user->setImage($oldimage);
  408.             }
  409.             $em->flush();
  410.             return $this->redirectToRoute('list_users');
  411.         } else {
  412.             $session->set('oldusername'$user->getUsername());
  413.             $session->set('oldemail'$user->getEmail());
  414.             $session->set('oldimage'$user->getImage());
  415.         }
  416.         return $this->render('AdminBundle:Default:modifieruser.html.twig', array(
  417.             'form' => $form->createView(),
  418.         ));
  419.     }
  420.     /**
  421.      *
  422.      * @Route("/admin/blocker_utilisateur/{id}", name="blocker_user")
  423.      */
  424.     public function blockerUserAction(User $user)
  425.     {
  426.         $em $this->getDoctrine()->getManager();
  427.         $user->setEnabled(false);
  428.         $em->persist($user);
  429.         $em->flush();
  430.         return $this->redirectToRoute('list_users');
  431.     }
  432.     /**
  433.      *
  434.      * @Route("/admin/activer_utilisateur/{id}", name="activer_user")
  435.      */
  436.     public function activerUserAction(User $user)
  437.     {
  438.         $em $this->getDoctrine()->getManager();
  439.         $user->setEnabled(true);
  440.         $em->persist($user);
  441.         $em->flush();
  442.         return $this->redirectToRoute('list_users');
  443.     }
  444.     /**
  445.      *
  446.      * @Route("/admin/trace", name="trace")
  447.      */
  448.     public function traceAction()
  449.     {
  450.         $em $this->getDoctrine()->getManager();
  451.         $repository $em->getRepository("AdminBundle:Trace");
  452.         $traces $repository->findBy([],['created'=>'desc']);
  453.         return $this->render('AdminBundle:Trace:index.html.twig', array(
  454.             'traces' => $traces,
  455.         ));
  456.     }
  457. }