src/Controller/Produit/Produit/ProduitController.php line 130

Open in your IDE?
  1. <?php
  2. /*
  3.     (c) Noel Kenfack <noel.kenfack@yahoo.fr> Février 2015
  4. */
  5. namespace App\Controller\Produit\Produit;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use App\Entity\Produit\Produit\Produit;
  9. use App\Entity\Produit\Produit\Animationproduit;
  10. use App\Entity\Produit\Produit\Livraisonexpress;
  11. use App\Entity\Produit\Produit\Coutlivraison;
  12. use App\Entity\Produit\Produit\Panier;
  13. use App\Entity\Users\User\User;
  14. use App\Entity\Produit\Produit\Produitpanier;
  15. use App\Entity\Produit\Produit\Imgproduit;
  16. use App\Form\Produit\Produit\ProduitType;
  17. use App\Form\Produit\Produit\ProduiteditType;
  18. use App\Form\Produit\Produit\CoutlivraisonType;
  19. use App\Form\Produit\Produit\CoutlivraisoneditType;
  20. use App\Entity\Produit\Produit\Souscategorie;
  21. use App\Entity\Projet\Projet\Typeprojet;
  22. use App\Entity\Projet\Projet\Faqpme;
  23. use App\Form\Projet\Projet\FaqpmeType;
  24. use App\Entity\Projet\Projet\Projet;
  25. use App\Entity\Produit\Service\Ville;
  26. use App\Entity\General\Template\Recherche;
  27. use App\Service\Servicetext\GeneralServicetext;
  28. use App\Entity\Users\User\Imgslide;
  29. use Symfony\Component\HttpFoundation\Request;
  30. use App\Service\AfPdf\PDFProduit
  31. use Symfony\Component\HttpFoundation\File\UploadedFile;
  32. use App\Entity\Projet\Projet\Projetmobile;
  33. use App\Entity\Produit\Produit\Detailproduit;
  34. use App\Entity\Produit\Produit\Produitboutique;
  35. use App\Entity\Produit\Service\Pays;
  36. use App\Entity\Produit\Produit\Marqueproduit;
  37. use App\Entity\Users\Adminuser\Parametreadmin;
  38. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  39. use App\Service\Email\Singleemail;
  40. use App\Entity\Users\Annonce\Annonceaction;
  41. use App\Entity\Produit\Produit\Categorie;
  42. use App\Entity\Users\User\Adminstruct;
  43. use Symfony\Component\Validator\Validator\ValidatorInterface;
  44. use App\Service\Servicetext\FileUploader;
  45. class ProduitController extends AbstractController
  46. {
  47. private $params;
  48. private $_servicemail;
  49. private $fileUploader;
  50. public function __construct(ParameterBagInterface $paramsFileUploader $fileUploaderSingleemail $servicemail)
  51. {
  52.     $this->params $params;
  53.     $this->_servicemail $servicemail;
  54.     $this->fileUploader $fileUploader;
  55. }
  56. public function modifierproduit(Produit $produitGeneralServicetext $service)
  57. {
  58.     $formpro $this->createForm(ProduiteditType::class, $produit, array('cat' => $produit->getsouscategorie()->getTypeprojet()));//($produit->getsouscategorie()->getTypeprojet())
  59.     $coutlivraison = new Coutlivraison($service);
  60.     $formlivraison $this->createForm(new CoutlivraisonType(), $coutlivraison);
  61.     $formsupp $this->createFormBuilder()->getForm(); 
  62.     return $this->render($service->getThemeDirectory().'/Users/Adminuser/Produit/modifierproduit.html.twig',
  63.     array('produit'=>$produit,'formpro'=>$formpro->createView(),'formsupp'=>$formsupp->createView(),
  64.     'formlivraison'=>$formlivraison->createView()));
  65. }
  66. public function miseajourproduit(Produit $produitGeneralServicetext $serviceRequest $request)
  67. {
  68.     $em $this->getDoctrine()->getManager();
  69.     $formpro $this->createForm(ProduiteditType::class, $produit, array('cat' => $produit->getsouscategorie()->getTypeprojet()));
  70.     if($request->getMethod() == 'POST')
  71.     {
  72.         $formpro->handleRequest($request);
  73.         if($formpro->isValid()){
  74.             $em->flush();
  75.         }else{
  76.             if( count($liste_img) > $nbimgproduit )
  77.             {
  78.               $this->get('session')->getFlashBag()->add('images','Trop d\'image pour ce produit.');
  79.             }else{
  80.               $this->get('session')->getFlashBag()->add('images','Données invalides.');
  81.             }
  82.         }
  83.     }
  84.     return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
  85.     array('id'=>$produit->getId())));
  86. }
  87. public function supprimerimage(Imgproduit $imgproduitRequest $request)
  88. {
  89.     $em $this->getDoctrine()->getManager();
  90.     $formsupp $this->createFormBuilder()->getForm(); 
  91.     $produit $imgproduit->getProduit();
  92.     if($request->getMethod() == 'POST'){
  93.         $formsupp->handleRequest($request);
  94.         if($formsupp->isValid()){
  95.             if(count($produit->getImgproduits()) > 1)
  96.             {
  97.                 $em->remove($imgproduit);
  98.                 $em->flush();
  99.                 $this->get('session')->getFlashBag()->add('informationsupp','Suppression effectuée avec succés');
  100.             }else{
  101.                 $this->get('session')->getFlashBag()->add('informationsupp','Un produit doit avoir au mions une images');
  102.             }
  103.             return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
  104.         }
  105.     }
  106.     $this->get('session')->getFlashBag()->add('supprime_image',$imgproduit->getId());
  107.     $this->get('session')->getFlashBag()->add('supprime_image',$imgproduit->getProduit()->getNom());
  108.     return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
  109. }
  110. public function listeproduituser(Souscategorie $souscategorieGeneralServicetext $service)
  111. {
  112.     $em $this->getDoctrine()->getManager();
  113.     $liste_produit $em->getRepository(Produit::class)
  114.                         ->myFindBy($souscategorie->getId());
  115.     $liste_slide $em->getRepository(Imgslide::class)
  116.                           ->myFindAll();
  117.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/listeproduituser.html.twig'
  118.     array('souscategorie'=>$souscategorie,'liste_produit'=>$liste_produit,'liste_slide'=>$liste_slide));
  119. }
  120. public function detailproduit(Produit $produitGeneralServicetext $service)
  121. {
  122.     $em $this->getDoctrine()->getManager();
  123.     $produit_similaire $em->getRepository(Produit::class)
  124.                             ->findProduitExclu($produit->getSouscategorie()->getId(), $produit->getId(), 7);
  125.     $detail_produit $em->getRepository(Detailproduit::class)
  126.                          ->findBy(array('produit'=>$produit), array('date'=>'asc'));
  127.     $liste_point $em->getRepository(Coutlivraison::class)
  128.                       ->getPointDeVenteProduit($produit->getId(),1,500);
  129.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/detailproduit.html.twig'
  130.     array('produit'=>$produit'produit_similaire'=>$produit_similaire'detail_produit'=>$detail_produit
  131.     'liste_point'=>$liste_point));
  132. }
  133. public function likeproduct()
  134. {
  135.     if(isset($_GET['id']))
  136.     {
  137.     $id $_GET['id'];
  138.     }else{
  139.     $id 0;
  140.     }
  141.     $em $this->getDoctrine()->getManager();
  142.     $produit $em->getRepository(Produit::class)
  143.                      ->find($id);
  144.     if($produit != null and $this->getUser() != null){
  145.     $userlikes $produit->getUserlikes();
  146.     $trouve false;
  147.     foreach($userlikes as $user)
  148.     {
  149.         if($this->getUser() == $user)
  150.         {
  151.             $trouve true;
  152.         }
  153.     }
  154.     if($trouve == false)
  155.     {
  156.         $produit->addUserlike($this->getUser());
  157.         $em->flush();
  158.     }
  159.     echo 1;
  160.     exit;
  161.     }else{
  162.     echo 0;
  163.     exit;
  164.     }
  165. }
  166. public function ajouterpanier()
  167. {
  168.     if(isset($_POST['id']))
  169.     {
  170.         $id $_POST['id'];
  171.     }else{
  172.         $id 1;
  173.     }
  174.     if(isset($_POST['livraison']))
  175.     {
  176.         $livraison $_POST['livraison'];
  177.     }else{
  178.         $livraison 1;
  179.     }
  180.     if(isset($_POST['quantite']))
  181.     {
  182.         $quantite $_POST['quantite'];
  183.     }else{
  184.         $quantite 1;
  185.     }
  186.     $produitboutique null;
  187.     $em $this->getDoctrine()->getManager();
  188.     $produit $em->getRepository(Produit::class)
  189.                      ->find($id);
  190.     $coutlivraison $em->getRepository(Coutlivraison::class)
  191.                      ->find($livraison);
  192.                      
  193.     if($produit != null){
  194.         $idcard 0;
  195.         if(isset($_COOKIE["PIDCARD"]) and $_COOKIE["PIDCARD"] != 'empty')
  196.         {
  197.             $idcard $_COOKIE["PIDCARD"];
  198.         }
  199.         
  200.         $prixlivraison 0;
  201.         $livraisonexpress null;
  202.         $acteur null;
  203.         $projet null;
  204.         
  205.         if(isset($_POST['idboutique']) and isset($_POST['ville']) and isset($_POST['quartier']) and isset($_POST['cout']))
  206.         {
  207.             $tabb explode('_'$_POST['idboutique']);
  208.             $ville $em->getRepository(Ville::class)
  209.                         ->myFindByName($_POST['ville']);
  210.             
  211.             $prixlivraison $_POST['cout'];
  212.             if(count($tabb) >= and $tabb[0] == 'struct')
  213.             {
  214.                 $projet $em->getRepository(Projet::class)
  215.                             ->find($tabb[1]);
  216.                 if($ville != null)
  217.                 {
  218.                     $livraisonexpress $em->getRepository(Livraisonexpress::class)
  219.                                         ->myFindByProjet($tabb[1], $ville->getId(), $_POST['quartier']);
  220.                 }else{
  221.                     $livraisonexpress $em->getRepository(Livraisonexpress::class)
  222.                                         ->myFindByQuartier($tabb[1], $_POST['ville'], $_POST['quartier']);
  223.                 }
  224.             }else if(count($tabb) >= and  $tabb[0] == 'user')
  225.             {
  226.                 $acteur $em->getRepository(User::class)
  227.                             ->find($tabb[1]);
  228.                 if($ville != null)
  229.                 {
  230.                 $livraisonexpress $em->getRepository(Livraisonexpress::class)
  231.                                     ->myFindByUser($tabb[1], $ville->getId(), $_POST['quartier']);
  232.                 }else{
  233.                 $livraisonexpress $em->getRepository(Livraisonexpress::class)
  234.                                     ->myFindByQuartierUser($tabb[1], $_POST['ville'], $_POST['quartier']);
  235.                 }
  236.             }
  237.             
  238.             if($livraisonexpress == null)
  239.             {
  240.                 $livraisonexpress = new Livraisonexpress();
  241.                 $livraisonexpress->setQuartiertext($_POST['quartier']);
  242.                 $livraisonexpress->setVilletext($_POST['ville']);
  243.                 $livraisonexpress->setMontant($prixlivraison);
  244.                 if($acteur != null)
  245.                 {
  246.                     $livraisonexpress->setUser($acteur);
  247.                 }
  248.                 if($projet != null)
  249.                 {
  250.                     $livraisonexpress->setProjet($projet);
  251.                 }
  252.                 if($ville != null)
  253.                 {
  254.                     $livraisonexpress->setVille($ville);
  255.                 }
  256.                 $em->persist($livraisonexpress);
  257.                 $em->flush();
  258.             }
  259.         }
  260.         
  261.         if(isset($_POST['produitboutique']))
  262.         { 
  263.             $produitboutique $em->getRepository(Produitboutique::class)
  264.                                   ->find($_POST['produitboutique']);
  265.         }
  266.         
  267.         if($produitboutique == null and $projet != null){
  268.             $produitboutique $em->getRepository(Produitboutique::class)
  269.                                   ->findOneBy(array('produit'=>$produit,'projet'=>$projet));
  270.         }
  271.         
  272.         $oldpanier $em->getRepository(Panier::class)
  273.                          ->findOneBy(array('id'=>$idcard,'sousmis'=>0));
  274.         if($oldpanier == null and $this->getUser() != null)
  275.         {
  276.             $oldpanier $em->getRepository(Panier::class)
  277.                          ->findOneBy(array('user'=>$this->getUser(),'sousmis'=>0));
  278.         }
  279.         
  280.         if($oldpanier == null)
  281.         {
  282.             $panier = new Panier();
  283.             $panier->setUser($this->getUser());
  284.             $em->persist($panier);
  285.             
  286.             $produitpanier = new Produitpanier();
  287.             $produitpanier->setPanier($panier);
  288.             $produitpanier->setQuantite($quantite);
  289.             if($produitboutique == null)
  290.             {
  291.                 $produitpanier->setProduit($produit);
  292.                 $produitpanier->setPrixunitaire($produit->getNewprise());
  293.                 $produitpanier->setPrixgros($produit->getNewprise());
  294.             }else{
  295.                 $produitpanier->setProduit($produitboutique->getProduit());
  296.                 $produitpanier->setProduitboutique($produitboutique);
  297.                 $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  298.                 
  299.                 if($projet != null and $projet->getBoutiquemobile() == true)
  300.                 {
  301.                     if($produitboutique->getProduit()->getProduitgro() != null)
  302.                     {
  303.                         $oldproduitpanier $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
  304.                                                ->findLastCommande($produitboutique->getId());
  305.                                                
  306.                         if($oldproduitpanier != null)
  307.                         {
  308.                             $produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  309.                         }else{
  310.                             $produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  311.                         }
  312.                     }
  313.                     
  314.                     $produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
  315.                 }else{
  316.                     $produitpanier->setPrixgros($produitboutique->getPrixachat());
  317.                     $produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
  318.                 }
  319.             }
  320.             
  321.             if($coutlivraison != null)
  322.             {
  323.                 $produitpanier->setCoutlivraison($coutlivraison);
  324.             }
  325.             if($livraisonexpress != null)
  326.             {
  327.                 $produitpanier->setPrixlivraison($prixlivraison);
  328.                 $produitpanier->setLivraisonexpress($livraisonexpress);
  329.             }
  330.             $em->persist($produitpanier);
  331.             $em->flush();
  332.             
  333.             // Stock les infos du cookie
  334.             $cookie_info = array(
  335.                 'name'  => 'PIDCARD',
  336.                 'value' => $panier->getId(),
  337.                 'time'  => time() + (3600 24 360)
  338.             );
  339.             
  340.             // Cree le cookie
  341.             setCookie($cookie_info['name'], $cookie_info['value'], $cookie_info['time'],'/');
  342.             setCookie('PIDCARDDUR',$cookie_info['time'], $cookie_info['time'],'/');
  343.         }else{
  344.             if(count($oldpanier->getProduitpaniers()) != 0)
  345.             {
  346.                 $listprod $oldpanier->getProduitpaniers();
  347.                 
  348.                 $trouve false;
  349.                 $produitpanier null;
  350.                 foreach($listprod as $prod)
  351.                 {
  352.                     if($prod->getProduit() == $produit)
  353.                     {
  354.                         $prod->setQuantite($prod->getQuantite() + $quantite);
  355.                         $produitpanier $prod;
  356.                         $trouve true;
  357.                         break;
  358.                     }
  359.                 }
  360.                 
  361.                 if($trouve == false)
  362.                 {
  363.                     $produitpanier = new Produitpanier();
  364.                     $produitpanier->setPanier($oldpanier);
  365.                     $produitpanier->setQuantite($quantite);
  366.                     if($coutlivraison != null)
  367.                     {
  368.                         $produitpanier->setCoutlivraison($coutlivraison);
  369.                     }
  370.                     if($livraisonexpress != null)
  371.                     {
  372.                         $produitpanier->setPrixlivraison($prixlivraison);
  373.                         $produitpanier->setLivraisonexpress($livraisonexpress);
  374.                     }
  375.                     
  376.                     if($produitboutique == null)
  377.                     {
  378.                         $produitpanier->setProduit($produit);
  379.                         $produitpanier->setPrixunitaire($produit->getNewprise());
  380.                         $produitpanier->setPrixgros($produit->getNewprise());
  381.                     }else{
  382.                         
  383.                         $produitpanier->setProduit($produitboutique->getProduit());
  384.                         $produitpanier->setProduitboutique($produitboutique);
  385.                         $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  386.                         $produitpanier->setPrixgros($produitboutique->getNewprise());
  387.                         if($projet != null and $projet->getBoutiquemobile() == true)
  388.                         {
  389.                             
  390.                             if($produitboutique->getProduit()->getProduitgro() != null)
  391.                             {
  392.                                 $oldproduitpanier $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
  393.                                                        ->findLastCommande($produitboutique->getId(), $produitboutique->getProduit()->getProduitgro()->getId());
  394.                             
  395.                                 if($oldproduitpanier != null)
  396.                                 {
  397.                                     $produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  398.                                 }else{
  399.                                     $produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  400.                                 }
  401.                             }
  402.                             
  403.                             $produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
  404.                         }else{
  405.                             $produitpanier->setPrixgros($produitboutique->getPrixachat());
  406.                             $produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
  407.                         }
  408.                     }
  409.             
  410.                     $em->persist($produitpanier);
  411.                 }else{
  412.                     if($produitboutique != null)
  413.                     {
  414.                         $produitpanier->setProduitboutique($produitboutique);
  415.                         $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  416.                         $produitpanier->setPrixgros($produitboutique->getNewprise());
  417.                     }
  418.                 }
  419.             }else{
  420.                 $produitpanier = new Produitpanier();
  421.                 $produitpanier->setPanier($oldpanier);
  422.                 $produitpanier->setQuantite($quantite);
  423.                 if($coutlivraison != null)
  424.                 {
  425.                     $produitpanier->setCoutlivraison($coutlivraison);
  426.                 }
  427.                 
  428.                 if($livraisonexpress != null)
  429.                 {
  430.                     $produitpanier->setPrixlivraison($prixlivraison);
  431.                     $produitpanier->setLivraisonexpress($livraisonexpress);
  432.                 }
  433.                 
  434.                 if($produitboutique == null)
  435.                 {
  436.                     $produitpanier->setProduit($produit);
  437.                     $produitpanier->setPrixunitaire($produit->getNewprise());
  438.                     $produitpanier->setPrixgros($produit->getNewprise());
  439.                 }else{
  440.                     $produitpanier->setProduit($produitboutique->getProduit());
  441.                     $produitpanier->setProduitboutique($produitboutique);
  442.                     $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  443.                     $produitpanier->setPrixgros($produitboutique->getNewprise());
  444.                     
  445.                     if($projet != null and $projet->getBoutiquemobile() == true)
  446.                     {
  447.                         if($produitboutique->getProduit()->getProduitgro() != null)
  448.                         {
  449.                             $oldproduitpanier $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
  450.                                                    ->findLastCommande($produitboutique->getId(), $produitboutique->getProduit()->getProduitgro()->getId());
  451.                         
  452.                             if($oldproduitpanier != null)
  453.                             {
  454.                                 $produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  455.                             }else{
  456.                                 $produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
  457.                             }
  458.                         }
  459.                         
  460.                         $produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
  461.                     }else{
  462.                         $produitpanier->setPrixgros($produitboutique->getPrixachat());
  463.                         $produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
  464.                     }
  465.                 }
  466.                 
  467.                 $em->persist($produitpanier);
  468.             }
  469.             $em->flush();
  470.         }
  471.     echo 1;
  472.     exit;
  473.     }else{
  474.         echo 0;
  475.         exit;
  476.     }
  477. }
  478. public function addpanier(Produit $produit)
  479. {
  480.     $em $this->getDoctrine()->getManager();
  481.     if($this->getUser() != null)
  482.     {
  483.         $oldpanier $em->getRepository(Panier::class)
  484.                         ->findOneBy(array('user'=>$this->getUser(),'payer'=>0));
  485.         if($oldpanier == null)
  486.         {
  487.             $panier = new Panier();
  488.             $panier->setUser($this->getUser());
  489.             $em->persist($panier);
  490.             $produitpanier = new Produitpanier();
  491.             $produitpanier->setPanier($panier);
  492.             $produitpanier->setProduit($produit);
  493.             $em->persist($produitpanier);
  494.             $em->flush();
  495.         }else{
  496.             if(count($oldpanier->getProduitpaniers()) != 0)
  497.             {
  498.                 $listprod $oldpanier->getProduitpaniers();
  499.                 $trouve false;
  500.                 foreach($listprod as $prod)
  501.                 {
  502.                     if($prod->getProduit() == $produit)
  503.                     {
  504.                         $prod->setQuantite($prod->getQuantite() + 1);
  505.                         $trouve true;
  506.                         break;
  507.                     }
  508.                 }
  509.                 if($trouve == false)
  510.                 {
  511.                     $produitpanier = new Produitpanier();
  512.                     $produitpanier->setPanier($oldpanier);
  513.                     $produitpanier->setProduit($produit);
  514.                     $em->persist($produitpanier);
  515.                 }
  516.             }else{
  517.                 $produitpanier = new Produitpanier();
  518.                 $produitpanier->setPanier($oldpanier);
  519.                 $produitpanier->setProduit($produit);
  520.                 $em->persist($produitpanier);
  521.             }
  522.             $em->flush();
  523.         }
  524.     $this->get('session')->getFlashBag()->add('ajoutproduit','Produit ajouter avec succès');
  525.     }else{
  526.     $this->get('session')->getFlashBag()->add('ajoutproduit','Une erreur a été rencontrée !');
  527.     }
  528.     return $this->redirect($this->generateUrl('produit_produit_liste_produit_souscategorie',array('id'=>$produit->getSouscategorie()->getId())));
  529. }
  530. public function reglementcommande(Panier $panierGeneralServicetext $service)
  531. {
  532.     $em $this->getDoctrine()->getManager();
  533.     $nbprod 0;
  534.     $produitpanier null;
  535.     
  536.     $produitpanier $panier->getProduitpaniers();
  537.     foreach($produitpanier as $prodpan)
  538.     {
  539.         $nbprod $nbprod $prodpan->getQuantite();
  540.         $prodpan->getProduit()->setEm($em);
  541.         $prodpan->setEm($em);
  542.     }
  543.               
  544.     if(count($produitpanier) > and $panier->getSousmis() == false)
  545.     {
  546.         return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/reglementcommande.html.twig'
  547.         array('panier'=>$panier,'produitpanier'=>$produitpanier'nbprod'=>$nbprod));
  548.     }else{
  549.         $this->get('session')->getFlashBag()->add('information','Le panier que vous assayez de payer est vide ou a déjà été payé !');    
  550.         return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  551.     }
  552. }
  553. public function editcommande()
  554. {
  555.     if(isset($_GET['id']))
  556.     {
  557.         $id $_GET['id'];
  558.     }else{
  559.         $id 0;
  560.     }
  561.     if(isset($_GET['quantite']))
  562.     {
  563.         $quantite $_GET['quantite'];
  564.     }else{
  565.         $quantite 0;
  566.     }
  567.     $em $this->getDoctrine()->getManager();
  568.     $prodpan $em->getRepository(Produitpanier::class)
  569.                      ->find($id);
  570.     if($prodpan != null)
  571.     {
  572.         $prodpan->setQuantite($quantite);
  573.         $em->flush();
  574.         echo 1;
  575.         exit;
  576.     }else{
  577.         echo 0;
  578.         exit;
  579.     }
  580. }
  581. public function eleveproduit()
  582. {
  583.     $em $this->getDoctrine()->getManager();
  584.     if(isset($_GET['id']))
  585.     {
  586.         $id $_GET['id'];
  587.     }else{
  588.         $id 0;
  589.     }
  590.     $prodpan $em->getRepository(Produitpanier::class)
  591.                      ->find($id);
  592.     
  593.     $idcard 0;
  594.     if(isset($_COOKIE["PIDCARD"]) and $_COOKIE["PIDCARD"] != 'empty')
  595.     {
  596.         $idcard $_COOKIE["PIDCARD"];
  597.     }
  598.         
  599.     if($prodpan != null)
  600.     {
  601.         $panier $prodpan->getPanier();
  602.         $em $this->getDoctrine()->getManager();
  603.         $em->remove($prodpan);
  604.         $em->flush();
  605.         
  606.         echo 1;
  607.         exit;
  608.     }
  609.     echo 0;
  610.     exit;
  611. }
  612. public function supprimerproduit()
  613. {
  614.     $em $this->getDoctrine()->getManager();
  615.     
  616.     if(isset($_POST['idprod']))
  617.     {
  618.         $idprod $_POST['idprod'];
  619.     }else{
  620.         $idprod 0;
  621.     }
  622.     
  623.     $produit $em->getRepository(Produit::class)
  624.                   ->find($idprod);
  625.     if($produit != null)
  626.     {
  627.         $produitpan $em->getRepository(Produitpanier::class)
  628.                          ->findBy(array('produit'=>$produit));
  629.         if(count($produitpan) == 0){
  630.             
  631.                 $produitboutique $em->getRepository(Produitboutique::class)
  632.                                       ->findBy(array('produit'=>$produit));
  633.                 if(count($produitboutique) == 0){     
  634.                     $liste_image $produit->getImgproduits();
  635.                     foreach($liste_image as $img)
  636.                     {
  637.                         $em->remove($img);
  638.                     }
  639.                     
  640.                     $em->remove($produit);
  641.                     $em->flush();
  642.                     
  643.                     echo 1;
  644.                     exit;
  645.                 }else{
  646.                     echo 3;
  647.                     exit;
  648.                 }
  649.         }else{
  650.             echo 2;
  651.             exit;
  652.         }
  653.     }else{
  654.         echo 0;
  655.         exit;
  656.     }    
  657. }
  658. public function rechercheproduit(GeneralServicetext $service$type$page$donnee)
  659. {
  660.     $em $this->getDoctrine()->getManager();
  661.     $liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
  662.     $liste_projet = new \Doctrine\Common\Collections\ArrayCollection();
  663.     if (isset($_POST['donnee']) ){
  664.         $donnee $_POST['donnee'];
  665.     }
  666.     if($type == 1)
  667.     {
  668.         $liste_produit $em->getRepository(Produit::class)
  669.                             ->findProduit($donnee$page15);
  670.         $nombrepage ceil(count($liste_produit)/15);
  671.     }else{
  672.         $liste_projet $em->getRepository(Projet::class)
  673.                            ->searchingprojetpage($donnee$page15);
  674.         $nombrepage ceil(count($liste_projet)/15);
  675.     }
  676.     
  677.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/recherche.html.twig'
  678.     array('liste_produit'=>$liste_produit,'liste_projet'=>$liste_projet,'nombrepage'=>$nombrepage,
  679.     'type'=>$type,'page'=>$page,'donnee'=>$donnee));
  680. }
  681. public function addcoutlivraison(Produit $produitGeneralServicetext $serviceRequest $request)
  682. {
  683.     $em $this->getDoctrine()->getManager();
  684.     $coutlivraison = new Coutlivraison($service);
  685.     $formlivraison $this->createForm(CoutlivraisonType::class, $coutlivraison);
  686.     if ($request->getMethod() == 'POST'){
  687.     $formlivraison->handleRequest($request);
  688.     $coutlivraison->setUser($this->getUser());
  689.     $coutlivraison->setProduit($produit);
  690.     $oldcout $em->getRepository(Coutlivraison::class)
  691.                   ->findOneBy(array('ville'=>$coutlivraison->getVille(),'produit'=>$produit));
  692.     if ($formlivraison->isValid() and $oldcout == null){
  693.         $em->persist($coutlivraison);
  694.         $em->flush();
  695.         $this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
  696.     }
  697.     }
  698.     return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
  699. }
  700. public function modifcoutlivraison(Coutlivraison $coutlivraison)
  701. {
  702.     $em $this->getDoctrine()->getManager();
  703.     if (isset($_POST['coutlivraison']) and is_numeric($_POST['coutlivraison'])){
  704.         $coutlivraison->setMontant(htmlspecialchars($_POST['coutlivraison']));
  705.         $em->flush();
  706.         $this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
  707.     }
  708.     return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
  709.     array('id'=>$coutlivraison->getProduit()->getId())));
  710. }
  711. public function supprimercoutlivraison(Coutlivraison $coutlivraison)
  712. {
  713.     $produit $coutlivraison->getProduit();
  714.     $em $this->getDoctrine()->getManager();
  715.     $em->remove($coutlivraison);
  716.     $em->flush();
  717.     return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
  718.     array('id'=>$produit->getId())));
  719. }
  720. ////////////---------------------------------Afex Market
  721. public function domaineactivite()
  722. {
  723.     $em $this->getDoctrine()->getManager();
  724.     if(isset($_POST['paysid']) and isset($_POST['marqueid']) and isset($_POST['scatid']) and isset($_POST['secteurid']) and isset($_POST['villename']))
  725.     {
  726.         $ville $em->getRepository(Ville::class)
  727.                      ->myFindByName($_POST['villename']);
  728.         $idv 0;
  729.         if($ville != null and $_POST['villename'] != '')
  730.         {
  731.             $idv $ville->getId();
  732.         }            
  733.         return $this->redirect($this->generateUrl('produit_produit_acceuil_sousdomaine_type_market_place',
  734.         array('idscat'=>$_POST['scatid'],'idpays'=>$_POST['paysid'],'idmarque'=>$_POST['marqueid'],'idtype'=>$_POST['secteurid'], 'idville'=>$idv)));
  735.     }
  736.     return $this->redirect($this->generateUrl('produit_produit_acceuil_sousdomaine_type_market_place'));
  737. }
  738. public function acceuilproduit($idscat$idpays$idmarque$idtype$page$idvilleGeneralServicetext $service)
  739. {
  740.     $em $this->getDoctrine()->getManager();
  741.     
  742.     $souscategorie $em->getRepository(Souscategorie::class)
  743.                         ->find($idscat);
  744.     $pays $em->getRepository(Pays::class)
  745.                      ->find($idpays);
  746.     $marque $em->getRepository(Marqueproduit::class)
  747.                      ->find($idmarque);    
  748.     $typeprojet $em->getRepository(Typeprojet::class)
  749.                      ->find($idtype);
  750.     
  751.     $ville $em->getRepository(Ville::class)
  752.                      ->find($idville);
  753.     if($pays == null)
  754.     {
  755.         $param $this->params->get('pays');
  756.         $pays $em->getRepository(Pays::class)
  757.                      ->findPaysCurrent($param);
  758.     }
  759.     
  760.     if($pays != null)
  761.     {
  762.         if($souscategorie != null)
  763.         {
  764.             if($marque != null)
  765.             {
  766.                 if($typeprojet != null)
  767.                 {
  768.                     if($ville != null)
  769.                     {
  770.                         $liste_produit $em->getRepository(Produit::class)
  771.                                             ->myfindProduitVilleTypeMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
  772.                     }else{
  773.                         $liste_produit $em->getRepository(Produit::class)
  774.                                             ->myfindProduitTypeMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$typeprojet->getId(),$page,12);
  775.                     }
  776.                 }else{
  777.                     if($ville != null)
  778.                     {
  779.                         $liste_produit $em->getRepository(Produit::class)
  780.                                             ->myfindProduitVilleMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$ville->getId(),$page,12);
  781.                     }else{
  782.                         $liste_produit $em->getRepository(Produit::class)
  783.                                             ->myfindProduitMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$page,12);
  784.                     }
  785.                 }
  786.             }else{
  787.                 if($typeprojet != null)
  788.                 {
  789.                     if($ville != null)
  790.                     {
  791.                         $liste_produit $em->getRepository(Produit::class)
  792.                                             ->myfindProduitVilleTypeScatPays($souscategorie->getId(),$pays->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
  793.                     }else{
  794.                         $liste_produit $em->getRepository(Produit::class)
  795.                                             ->myfindProduitTypeScatPays($souscategorie->getId(),$pays->getId(),$typeprojet->getId(),$page,12);
  796.                     }
  797.                 }else{
  798.                     if($ville != null)
  799.                     {
  800.                         $liste_produit $em->getRepository(Produit::class)
  801.                                             ->myfindProduitVilleScatPays($souscategorie->getId(),$pays->getId(),$ville->getId(),$page,12);
  802.                     }else{
  803.                         $liste_produit $em->getRepository(Produit::class)
  804.                                             ->myfindProduitScatPays($souscategorie->getId(),$pays->getId(),$page,12);
  805.                     }
  806.                 }
  807.             }
  808.         }else{
  809.             
  810.             if($marque != null)
  811.             {
  812.                 if($typeprojet != null)
  813.                 {
  814.                     if($ville != null)
  815.                     {
  816.                         $liste_produit $em->getRepository(Produit::class)
  817.                                             ->myfindProduitVilleTypeMarquePays($pays->getId(),$marque->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
  818.                     }else{
  819.                         $liste_produit $em->getRepository(Produit::class)
  820.                                             ->myfindProduitTypeMarquePays($pays->getId(),$marque->getId(),$typeprojet->getId(),$page,12);
  821.                     }
  822.                 }else{
  823.                     if($ville != null)
  824.                     {
  825.                         $liste_produit $em->getRepository(Produit::class)
  826.                                             ->myfindProduitVilleMarquePays($pays->getId(),$marque->getId(),$ville->getId(),$page,12);
  827.                     }else{
  828.                         $liste_produit $em->getRepository(Produit::class)
  829.                                             ->myfindProduitMarquePays($pays->getId(),$marque->getId(),$page,12);
  830.                     }
  831.                 }
  832.             }else{
  833.                 if($typeprojet != null)
  834.                 {
  835.                     if($ville != null)
  836.                     {
  837.                         $liste_produit $em->getRepository(Produit::class)
  838.                                             ->myfindProduitVilleTypePays($pays->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
  839.                     }else{
  840.                         $liste_produit $em->getRepository(Produit::class)
  841.                                             ->myfindProduitTypePays($pays->getId(),$typeprojet->getId(),$page,12);
  842.                     }
  843.                 }else{
  844.                     if($ville != null)
  845.                     {
  846.                         $liste_produit $em->getRepository(Produit::class)
  847.                                             ->myfindProduitVillePays($pays->getId(),$ville->getId(),$page,12);
  848.                     }else{
  849.                         $liste_produit $em->getRepository(Produit::class)
  850.                                             ->myfindProduitPays($pays->getId(),$page,12);
  851.                     }
  852.                 }
  853.             }
  854.         }
  855.     }else{
  856.         $liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
  857.     }
  858.     
  859.     $liste_pays $em->getRepository(Pays::class)
  860.                      ->myfindAll();    
  861.     $liste_marque $em->getRepository(Marqueproduit::class)
  862.                      ->myfindAll();
  863.     $liste_scat $em->getRepository(Souscategorie::class)
  864.                      ->myfindAll();
  865.     $type_projet $em->getRepository(Typeprojet::class)
  866.                      ->myFindAll();    
  867.     
  868.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/acceuilproduit.html.twig'
  869.     array('page'=>$page'liste_produit'=>$liste_produit'liste_pays'=>$liste_pays'liste_marque'=>$liste_marque
  870.     'liste_scat'=>$liste_scat,'type_projet'=>$type_projet'souscategorie'=>$souscategorie'marque'=>$marque,'typeprojet'=>$typeprojet
  871.     'pays'=>$pays'ville'=>$ville'nombrepage' => ceil(count($liste_produit)/12),'idscat'=>$idscat,'idpays'=>$idpays,'idmarque'=>$idmarque,
  872.     'idtype'=>$idtype,'idville'=>$idville));
  873. }
  874. public function menuleftmplace(Projet $projetGeneralServicetext $service)
  875. {
  876.     $em $this->getDoctrine()->getManager();
  877.     $offrembill $em->getRepository(Parametreadmin::class)
  878.                      ->findOneBy(array('type'=>'offrembill'));
  879.                       
  880.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/menuleftmplace.html.twig'
  881.     array('projet'=>$projet'offrembill'=>$offrembill));
  882. }
  883. public function accesbinplacename($id$pageGeneralServicetext $serviceRequest $request)
  884. {
  885.     $em $this->getDoctrine()->getManager();
  886.     $projet $em->getRepository(Projet::class)
  887.                   ->find($id);
  888.     if($projet == null)
  889.     {
  890.         throw $this->createNotFoundException();  
  891.     }
  892.     
  893.     $faqpme = new Faqpme($service);
  894.     $form $this->createForm(FaqpmeType::class, $faqpme);
  895.     
  896.     $nbfaqpme 200;
  897.     if($request->getMethod() == 'POST')
  898.     {
  899.         $form->handleRequest($request);
  900.         $faqpme->setProjet($projet);
  901.         
  902.         $nbstruct $em->getRepository(Faqpme::class)
  903.                        ->findBy(array('projet'=>$projet));
  904.                           
  905.         if ($form->isValid() and count($nbstruct) <= $nbfaqpme){
  906.             $em->persist($faqpme);
  907.             $em->flush();
  908.         }else{
  909.             if(count($nbstruct) > $nbfaqpme)
  910.             {
  911.                 $this->get('session')->getFlashBag()->add('information','Le seuil des publications est atteind.');
  912.             }else{
  913.                 $this->get('session')->getFlashBag()->add('information','Données invalides.');
  914.             }
  915.         }
  916.     }
  917.     
  918.     $liste_faqpme $em->getRepository(Faqpme::class)
  919.                        ->listefaqStruct($projet->getId(),$page,4);
  920.                        
  921.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/accesbinplacename.html.twig',
  922.     array('projet'=>$projet,'categorie'=>$projet->getTypeprojet(), 'liste_faqpme'=>$liste_faqpme
  923.     'form'=>$form->createView(),'page'=>$page'nombrepage'=> ceil(count($liste_faqpme)/4)));
  924. }
  925. public function bannieremarket(Projet $projetGeneralServicetext $service)
  926. {
  927.     $em $this->getDoctrine()->getManager();
  928.     /*
  929.     $annonces = $em->getRepository(Annonceaction::class)
  930.                   ->findBy(array('projet'=>$projet));
  931.     $projet->setNbannonce(count($annonces));
  932.     $liste_prod = $em->getRepository(Produit::class)
  933.                         ->findBy(array('projet'=>$projet));
  934.     $panier_impaye = $em->getRepository('ProduitProduitBundle:Panier')
  935.                         ->findBy(array('projet'=>$projet,'livrer'=>false));
  936.     */
  937.     $liste_prod $em->getRepository(Produit::class)
  938.                     ->getPublicProductBinplace($projet->getId(),1,2000);
  939.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/bannieremarket.html.twig',
  940.     array('projet'=>$projet,'liste_prod'=>$liste_prod));
  941. }
  942. public function menusousdomainebinplace(Projet $projetGeneralServicetext $service)
  943. {
  944.     $em $this->getDoctrine()->getManager();
  945.     $liste_scat $em->getRepository(Souscategorie::class)
  946.                      ->listeScatMPlace($projet->getId());
  947.                         
  948.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/menusousdomainebinplace.html.twig',
  949.     array('projet'=>$projet,'liste_scat'=>$liste_scat));
  950. }
  951. public function ajouternouveauxproduits($position$ideGeneralServicetext $service)
  952. {
  953.     $em $this->getDoctrine()->getManager();
  954.     $liste_cat $em->getRepository(Categorie::class)
  955.                         ->myFindAll();
  956.     $liste_marque $em->getRepository(Marqueproduit::class)
  957.                         ->myFindAll();    
  958.     $produit $em->getRepository(Produit::class)
  959.                   ->find($ide);
  960.                   
  961.                   
  962.     $boutiques_mobile = new \Doctrine\Common\Collections\ArrayCollection();
  963.     if($this->getUser() != null)
  964.     {
  965.         $boutiques_mobile $em->getRepository(Projet::class)
  966.                                ->findBy(array('user'=>$this->getUser(),'boutiquemobile'=>1));
  967.     }
  968.     
  969.     $adminstruct $em->getRepository(Adminstruct::class)
  970.                       ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  971.     if($adminstruct != null){
  972.         $liste_projetmobile $em->getRepository(Projetmobile::class)
  973.                                  ->findBy(array('projet'=>$adminstruct->getProjet()), array('date'=>'desc'),1);
  974.         foreach($liste_projetmobile as $projetmobile)
  975.         {
  976.             if($projetmobile->getMobile()->getBoutiquemobile() == true)
  977.             {
  978.                 $boutiques_mobile[] = $projetmobile->getMobile();
  979.             }
  980.         }
  981.     }
  982.     
  983.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/ajouternouveauxproduits.html.twig',
  984.     array('position'=>$position'ide'=>$ide'liste_cat'=>$liste_cat'liste_marque'=>$liste_marque
  985.     'produit'=>$produit'boutiques_mobile'=>$boutiques_mobile));
  986. }
  987. public function modificationnouveauproduit(Produit $produitGeneralServicetext $service)
  988. {
  989.     if($this->getUser() == $produit->getProjet()->getUser())
  990.     {
  991.         $formpro $this->createForm(ProduitType::class, $produit, array('cat'=>$produit->getsouscategorie()->getTypeprojet()));
  992.         $coutlivraison = new Coutlivraison($service);
  993.         $formlivraison $this->createForm(CoutlivraisoneditType::class, $coutlivraison);
  994.         $formsupp $this->createFormBuilder()->getForm(); 
  995.         return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/modificationnouveauproduit.html.twig',
  996.         array('produit'=>$produit,'projet'=>$produit->getProjet(),'formpro'=>$formpro->createView(),'formsupp'=>$formsupp->createView(),'formlivraison'=>$formlivraison->createView()));
  997.     }else{
  998.         return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name',array('binplace'=>$produit->getProjet()->getBinplace())));
  999.     }
  1000. }
  1001. public function ajoutcoutlivraison(Produit $produitRequest $requestGeneralServicetext $service)
  1002. {
  1003.     $em $this->getDoctrine()->getManager();
  1004.     $coutlivraison = new Coutlivraison($service);
  1005.     $formlivraison $this->createForm(CoutlivraisoneditType::class, $coutlivraison);
  1006.     if ($request->getMethod() == 'POST' and isset($_POST['villelivraison'])){
  1007.     $formlivraison->handleRequest($request);
  1008.     $coutlivraison->setUser($this->getUser());
  1009.     $coutlivraison->setProduit($produit);
  1010.     $ville $em->getRepository(Ville::class)
  1011.                         ->findOneBy(array('nom'=>trim(htmlspecialchars($_POST['villelivraison']))));
  1012.     if($ville == null)
  1013.     {
  1014.         $ville = new ville($service);
  1015.         $ville->setUser($this->getUser());
  1016.         $ville->setNom(trim(htmlspecialchars($_POST['villelivraison'])));
  1017.         $em->persist($ville);
  1018.     }
  1019.     $coutlivraison->setVille($ville);
  1020.     $oldcout $em->getRepository(Coutlivraison::class)
  1021.                              ->findOneBy(array('ville'=>$coutlivraison->getVille(),'produit'=>$produit));
  1022.     if ($formlivraison->isValid() and $oldcout == null){
  1023.         $em->persist($coutlivraison);
  1024.         $em->flush();
  1025.         $this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
  1026.     }else{
  1027.         $this->get('session')->getFlashBag()->add('informationsupp','Une erreur rencontrée. Vérifier l\'existance du produit dans cette ville');
  1028.     }
  1029.     }
  1030.     return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
  1031.     array('id'=>$produit->getId())));
  1032. }
  1033. public function updatebinplaceproduit(Produit $produitGeneralServicetext $serviceRequest $request)
  1034. {
  1035.     $em $this->getDoctrine()->getManager();
  1036.     $formpro $this->createForm(ProduitType::class, $produit, array('cat'=>$produit->getsouscategorie()->getTypeprojet()));
  1037.     if($request->getMethod() == 'POST')
  1038.     {
  1039.         $formpro->handleRequest($request);
  1040.         $produit->setUser($this->getUser());
  1041.         $imgpro $produit->getImgpro();
  1042.         $imgpro->setServicetext($service);
  1043.         $imgpro->setProduit($produit);
  1044.         $liste_img $produit->getImgproduits();
  1045.         $nbimgproduit $this->params->get('nbimgparproduit');
  1046.         if($formpro->isValid() and count($liste_img) <= $nbimgproduit){
  1047.             $em->persist($imgpro);
  1048.             $em->flush();
  1049.             $this->get('session')->getFlashBag()->add('images','Modification enregistrée avec succès.');
  1050.         }else{
  1051.             if( count($liste_img) > $nbimgproduit )
  1052.             {
  1053.               $this->get('session')->getFlashBag()->add('images','Trop d\'image pour ce produit.');
  1054.             }else{
  1055.               $this->get('session')->getFlashBag()->add('images','Données invalides.');
  1056.             }
  1057.         }
  1058.     }
  1059.     return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
  1060.     array('id'=>$produit->getId())));
  1061. }
  1062. public function updatecoutlivraison(Coutlivraison $coutlivraison)
  1063. {
  1064.     $em $this->getDoctrine()->getManager();
  1065.     if (isset($_POST['coutlivraison']) and is_numeric($_POST['coutlivraison'])){
  1066.         $coutlivraison->setMontant(htmlspecialchars($_POST['coutlivraison']));
  1067.         $em->flush();
  1068.         $this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
  1069.     }
  1070.     return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
  1071.     array('id'=>$coutlivraison->getProduit()->getId())));
  1072. }
  1073. public function supprimercoutlivraisonuser(Coutlivraison $coutlivraison)
  1074. {
  1075.     $produit $coutlivraison->getProduit();
  1076.     $em $this->getDoctrine()->getManager();
  1077.     $em->remove($coutlivraison);
  1078.     $em->flush();
  1079.     return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
  1080.     array('id'=>$coutlivraison->getProduit()->getId())));
  1081. }
  1082. public function autorechercheproduit($taille)
  1083. {
  1084.     $em $this->getDoctrine()->getManager();
  1085.     if(isset($_POST['donnee']))
  1086.     {
  1087.         $donnee $_POST['donnee'];
  1088.     }else{
  1089.         $donnee '';
  1090.     }
  1091.     $devise $this->params->get('devise');
  1092.     $produittaille ceil($taille/2);
  1093.     $projettaille ceil($taille/2);
  1094.     $liste_produit $em->getRepository(Produit::class)
  1095.                         ->findLastProduit($donnee,$produittaille);
  1096.     $liste_projet $em->getRepository(Projet::class)
  1097.                        ->findLastProjet($donnee,$projettaille);
  1098.     $tab = array();
  1099.     foreach($liste_produit as $produit){
  1100.         $d = array();
  1101.         $compt 0;
  1102.         $imgproduit $produit->getBestProduit();
  1103.         if($imgproduit != null)
  1104.         {
  1105.             $d['drapeau'] = $imgproduit->getWebpath();
  1106.         }else{
  1107.             $d['drapeau'] = 'template/images/logomarket.png';
  1108.         }
  1109.         
  1110.         $d['nom'] = $produit->getNom();
  1111.         $d['slogan'] = $produit->subdescription(25);
  1112.         $d['relation'] = $produit->getNewprise().''.$devise;
  1113.         $d['link'] = $this->generateUrl('produit_produit_detail_produit_market', array('id'=>$produit->getId()));
  1114.         $tab[] = $d;
  1115.     }
  1116.     
  1117.     /*foreach($liste_projet as $projet){
  1118.         $d = array();
  1119.         if($projet->getImgprofilprojet() != null)
  1120.         {
  1121.             $d['drapeau'] = $projet->getImgprofilprojet()->getWebpath();
  1122.         }else{
  1123.             $d['drapeau'] = 'template/images/logomarket.png';
  1124.         }
  1125.         $d['nom'] = $projet->getNom();
  1126.         if($projet->getSlogan() != null)
  1127.         {
  1128.             $d['slogan'] = $projet->resizeSlogan(25);
  1129.         }else{
  1130.             $d['slogan'] = $projet->getTypeprojet()->getNom();
  1131.         }
  1132.         $d['relation'] = $projet->getNbproduit().' Produit(s)';
  1133.         $d['link'] = $this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId()));
  1134.         $tab[] = $d;
  1135.     }*/
  1136.     
  1137.     return new Response(json_encode($tab));
  1138. }
  1139. public function soumettrerecherche(GeneralServicetext $service)
  1140. {
  1141.     if(isset($_POST['donnee']))
  1142.     {
  1143.         $tabdonnee explode('|'$_POST['donnee']);
  1144.         $donnee trim($tabdonnee[0]);
  1145.     }else{
  1146.         $donnee '';
  1147.     }
  1148.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/soumettrerecherche.html.twig',
  1149.      array('donnee'=>$donnee));
  1150. }
  1151. public function autorecherchesoumission(GeneralServicetext $service$donnee,$page)
  1152. {
  1153.     $em $this->getDoctrine()->getManager();
  1154.     $session $this->get('session');
  1155.     $villelivraison $session->get('villelivraison');
  1156.     
  1157.     if($this->getUser() != null and $villelivraison != null)
  1158.     {
  1159.         $liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
  1160.         $liste_cout $em->getRepository(Coutlivraison::class)
  1161.                        ->searchingproduitpage($donnee,$page,6,$villelivraison);
  1162.         foreach($liste_cout as $cout)
  1163.         {
  1164.             $liste_produit[] = $cout->getProduit();
  1165.         }
  1166.     }else{
  1167.         $liste_produit $em->getRepository(Produit::class)
  1168.                        ->searchingproduitpage($donnee,$page,6);
  1169.     }
  1170.     
  1171.     
  1172.     $liste_projet $em->getRepository(Projet::class)
  1173.                        ->searchingprojetpage($donnee,$page,6);
  1174.     if($this->getUser() != null and $villelivraison != null)
  1175.     {
  1176.     $all_produit $em->getRepository(Coutlivraison::class)
  1177.                    ->findLastProduit($donnee,1000000,$villelivraison);    
  1178.     }else{
  1179.     $all_produit $em->getRepository(Produit::class)
  1180.                    ->findLastProduit($donnee,1000000);
  1181.     }        
  1182.     
  1183.                    
  1184.     $all_projet $em->getRepository(Projet::class)
  1185.                        ->findLastProjet($donnee,1000000);
  1186.     if( count($liste_produit) > count($liste_projet) )
  1187.     {
  1188.         $nombrepage ceil(count($liste_produit)/6);
  1189.     }else{
  1190.         $nombrepage ceil(count($liste_projet)/6);
  1191.     }
  1192.     foreach($liste_projet as $projet)
  1193.     {
  1194.         $annonces $em->getRepository(Annonceaction::class)
  1195.                       ->findBy(array('projet'=>$projet));
  1196.         $projet->setNbannonce(count($annonces));
  1197.         
  1198.     }
  1199.     $top_produit = new \Doctrine\Common\Collections\ArrayCollection();
  1200.     if((count($all_produit) + count($all_projet)) == 0)
  1201.     {
  1202.     $repository $em->getRepository(Produit::class);
  1203.     if($this->getUser() != null and $villelivraison != null)
  1204.     {
  1205.         $liste_cout $em->getRepository(Coutlivraison::class)
  1206.                          ->topproduitville(8,$this->getUser()->getVillelivraison());
  1207.         foreach($liste_cout as $cout)
  1208.         {
  1209.             $top_produit[] = $cout->getProduit();
  1210.         }
  1211.     }else{
  1212.     $top_produit $repository->topProduit(8);
  1213.     }
  1214.     }
  1215.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/autorecherchesoumission.html.twig',
  1216.     array('top_produit'=>$top_produit,'donnee'=>$donnee,'all_produit'=>$all_produit,'all_projet'=>$all_projet,'liste_produit'=>$liste_produit,'liste_projet'=>$liste_projet,'nombrepage'=>$nombrepage,'page'=>$page));
  1217. }
  1218. public function addnewimageproduit(GeneralServicetext $serviceValidatorInterface $validatorRequest $request)
  1219. {
  1220.     $em $this->getDoctrine()->getManager();
  1221.     $session $this->get('session');
  1222.     $valide true;
  1223.     if(!isset($_POST['content_produit']) or !isset($_FILES['imageproduit']) or !isset($_POST['identifiantproduit']))
  1224.     {
  1225.         echo '0$$$$$$0$$$$$$0';
  1226.         exit;
  1227.     }else{
  1228.         $tab_content explode('$$$$$$',$_POST['content_produit']);
  1229.         if(count($tab_content) >= 6)
  1230.         {
  1231.             $titre trim(htmlspecialchars($tab_content[0]));
  1232.             $description trim(htmlspecialchars($tab_content[1]));
  1233.             $prix trim(htmlspecialchars($tab_content[2]));
  1234.             $categorie trim(htmlspecialchars($tab_content[3]));
  1235.             $idmarque trim(htmlspecialchars($tab_content[4]));
  1236.             $produitdetail trim(htmlspecialchars($tab_content[5]));
  1237.             
  1238.             if(isset($_POST['identifiantproduit']) and $_POST['identifiantproduit'] == 0)
  1239.             {
  1240.                 $scat $em->getRepository(Souscategorie::class)
  1241.                                     ->find($categorie);
  1242.                 $marque $em->getRepository(Marqueproduit::class)
  1243.                                     ->find($idmarque);
  1244.                 if($scat != null)
  1245.                 {
  1246.                 $vente = new Produit($service);
  1247.                 $vente->setNom($titre);
  1248.                 $vente->setDescription($description);
  1249.                 $vente->setNewprise($prix);
  1250.                 $vente->setSouscategorie($scat);
  1251.                 $vente->setMarqueproduit($marque);
  1252.                 $session->set('idproduit',$vente->getId());
  1253.                 if($this->getUser() != null)
  1254.                 {
  1255.                     $vente->setUser($this->getUser());
  1256.                 }
  1257.                 
  1258.                 if($produitdetail == 2)
  1259.                 {
  1260.                     $vente->setProduitdetail(true);
  1261.                 }else{
  1262.                     $vente->setProduitdetail(false);
  1263.                 }
  1264.                 $liste_erreursprod $validator->validate($vente);
  1265.                 if(count($liste_erreursprod) <= 0)
  1266.                 {
  1267.                     $image = new Imgproduit();
  1268.                     $image->setServicetext($service);
  1269.                     $uploadedFile $request->files->get('imageproduit');
  1270.                     $liste_erreursimg $validator->validate($image);
  1271.                     if(count($liste_erreursimg) <= and $uploadedFile){
  1272.                         $em->persist($vente);
  1273.                         $em->flush();
  1274.                         $image->setProduit($vente);
  1275.                         $profilFileName $this->fileUploader->publicFileUpload($uploadedFile$image->getUploadRootDir(), 'image');
  1276.                         $image->updateSaveFile($profilFileName);
  1277.                         $em->persist($image);
  1278.                         $em->flush();
  1279.                         echo ''.$image->getId().'$$$$$$'.$image->getWebPath().'$$$$$$'.$vente->getId();
  1280.                         exit;
  1281.                     }else{
  1282.                         echo '0$$$$$$4$$$$$$0';
  1283.                         exit;
  1284.                     }
  1285.                 }else{
  1286.                     echo '0$$$$$$3$$$$$$0';
  1287.                     exit;
  1288.                 }
  1289.                 
  1290.             }else{
  1291.                 echo '0$$$$$$6$$$$$$0';
  1292.                 exit;
  1293.             }
  1294.             }else{
  1295.                 if(isset($_POST['identifiantproduit']) and $_POST['identifiantproduit'] != 0)
  1296.                 {
  1297.                     $vente $em->getRepository(Produit::class)
  1298.                                        ->find($_POST['identifiantproduit']);
  1299.                     if($vente != null)
  1300.                     {
  1301.                         $envoi $session->get('idproduit');
  1302.                         if($vente->getUser() == $this->getUser() or $envoi == $vente->getId())
  1303.                         {
  1304.                         $image = new Imgproduit();
  1305.                         $image->setServicetext($service);
  1306.                         
  1307.                         $uploadedFile $request->files->get('imageproduit');
  1308.                         $liste_erreursimg $validator->validate($image);
  1309.                         if(count($liste_erreursimg) <= and $uploadedFile){
  1310.                             if($this->getUser() != null)
  1311.                             {
  1312.                                 $vente->setUser($this->getUser());
  1313.                             }
  1314.                             $image->setProduit($vente);
  1315.                             $profilFileName $this->fileUploader->publicFileUpload($uploadedFile$image->getUploadRootDir(), 'image');
  1316.                             $image->updateSaveFile($profilFileName);
  1317.                             $em->persist($image);
  1318.                             $em->flush();
  1319.                             echo ''.$image->getId().'$$$$$$'.$image->getWebPath().'$$$$$$'.$vente->getId();
  1320.                             exit;
  1321.                         }else{
  1322.                             echo '0$$$$$$4$$$$$$0';
  1323.                             exit;
  1324.                         }
  1325.                         }else{
  1326.                             echo '0$$$$$$7$$$$$$0';
  1327.                             exit;
  1328.                         }
  1329.                     }else{
  1330.                         echo '0$$$$$$5$$$$$$0';
  1331.                         exit;
  1332.                     }
  1333.                     
  1334.                 }else{
  1335.                     echo '0$$$$$$2$$$$$$0';
  1336.                     exit;
  1337.                 }
  1338.             }
  1339.         }else{
  1340.             echo '0$$$$$$1$$$$$$0';
  1341.             exit;
  1342.         }
  1343.     }
  1344. }
  1345. public function deleteimageproduit()
  1346. {
  1347.     if(isset($_POST['id']))
  1348.     {
  1349.         $id $_POST['id'];
  1350.     }else{
  1351.         $id 5;
  1352.     }
  1353.     $em $this->getDoctrine()->getManager();
  1354.     
  1355.     $image $em->getRepository(Imgproduit::class)
  1356.                 ->find($id);
  1357.     $session $this->get('session');
  1358.     $envoi $session->get('idproduit');
  1359.     if($image != null and ($image->getProduit()->getUser() == $this->getUser() or $envoi == $image->getProduit()->getId()))
  1360.     {
  1361.         $produit $image->getProduit();
  1362.         if(count($produit->getImgproduits()) > 1)
  1363.         {
  1364.             $em->remove($image);
  1365.             $em->flush();
  1366.             echo 1;
  1367.             exit;
  1368.         }else{
  1369.             echo 2;
  1370.             exit;
  1371.         }
  1372.     }else{
  1373.         echo 0;
  1374.         exit;
  1375.     }
  1376. }
  1377. public function targuemplace($idprod$newbplaceGeneralServicetext $service//newbplace est une variable de passer la ligne de controlle ci-dessous.
  1378. {
  1379.     $em $this->getDoctrine()->getManager();
  1380.     $session $this->get('session');
  1381.     if(isset($_POST['idprod']))
  1382.     {
  1383.         $idprod $_POST['idprod'];
  1384.     }else{
  1385.         $idprod $idprod;
  1386.     }
  1387.     
  1388.     if($idprod 0)
  1389.     {
  1390.         $produit $em->getRepository(Produit::class)
  1391.                       ->find($idprod);
  1392.                 
  1393.         $envoi $session->get('idproduit');
  1394.         
  1395.         $adminstruct $em->getRepository(Adminstruct::class)
  1396.                                       ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  1397.                                       
  1398.         if($produit != null and ($produit->getUser() == $this->getUser() or $envoi == $produit->getId() or $newbplace == 'passs' or $adminstruct != null))//Ligne de controle -------------- 
  1399.         {
  1400.             $session->set('idproduit'$produit->getId());
  1401.             
  1402.             if(isset($_POST['contentproduit']))//pour la mise à jour du produit
  1403.             {
  1404.                 $tab_content explode('$$$$$$',$_POST['contentproduit']);
  1405.                 if(count($tab_content) >= 6)
  1406.                 {
  1407.                     $titre $tab_content[0];
  1408.                     if($service->chaineValide($titre3,150))
  1409.                     {
  1410.                         $produit->setNom($titre);
  1411.                     }
  1412.                     $description $tab_content[1];
  1413.                     if($service->chaineValide($description3,600))
  1414.                     {
  1415.                         $produit->setDescription($description);
  1416.                     }
  1417.                     $prix $tab_content[2];
  1418.                     if($service->prixValide($prix))
  1419.                     {
  1420.                         $produit->setNewprise($prix);
  1421.                     }
  1422.                     
  1423.                     $scat $em->getRepository(Souscategorie::class)
  1424.                                     ->find($tab_content[3]);
  1425.                     $marque $em->getRepository(Marqueproduit::class)
  1426.                                     ->find($tab_content[4]);
  1427.                     if($scat != null)
  1428.                     {
  1429.                         $produit->setSouscategorie($scat);
  1430.                     }
  1431.                     if($marque != null)
  1432.                     {
  1433.                         $produit->setMarqueproduit($marque);
  1434.                     }
  1435.                     $produitdetail $tab_content[5];
  1436.                     if($produitdetail == 2)
  1437.                     {
  1438.                         $produit->setProduitdetail(true);
  1439.                     }else{
  1440.                         $produit->setProduitdetail(false);
  1441.                     }
  1442.                     $em->flush();
  1443.                 }
  1444.             }
  1445.             
  1446.             $type_projet $em->getRepository(Typeprojet::class)
  1447.                               ->myFindAll();
  1448.             
  1449.             $liste_projet = new \Doctrine\Common\Collections\ArrayCollection();
  1450.             if($this->getUser() != null)
  1451.             {
  1452.                 if($produit->getProduitdetail() == true)
  1453.                 {
  1454.                     $liste_projet $em->getRepository(Projet::class)
  1455.                                        ->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
  1456.                     
  1457.                     $adminstruct $em->getRepository(Adminstruct::class)
  1458.                                       ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  1459.                     if($adminstruct != null){
  1460.                         $liste_projetmobile $em->getRepository(Projetmobile::class)
  1461.                                                  ->findBy(array('projet'=>$adminstruct->getProjet()), array('date'=>'desc'),1);
  1462.                         foreach($liste_projetmobile as $projetmobile)
  1463.                         {
  1464.                             if($projetmobile->getMobile()->getBoutiquemobile() == true)
  1465.                             {
  1466.                                 $liste_projet[] = $projetmobile->getMobile();
  1467.                             }
  1468.                         }
  1469.                     }
  1470.     
  1471.                 }else{
  1472.                     $liste_projet $em->getRepository(Projet::class)
  1473.                                        ->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));
  1474.                                        
  1475.                     $adminstruct $em->getRepository(Adminstruct::class)
  1476.                                       ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  1477.                     if($adminstruct != null and $adminstruct->getProjet()->getBoutiquemobile() == false){
  1478.                         
  1479.                         $liste_projet[] = $adminstruct->getProjet();
  1480.                         
  1481.                     }
  1482.                 }
  1483.             }else{
  1484.                 if($produit->getUser() != null)
  1485.                 {
  1486.                     if($produit->getProduitdetail() == true)
  1487.                     {
  1488.                     $liste_projet $em->getRepository(Projet::class)
  1489.                                    ->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
  1490.                     }else{
  1491.                     $liste_projet $em->getRepository(Projet::class)
  1492.                                    ->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));    
  1493.                     }
  1494.                 }
  1495.             }
  1496.             return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/targuemplace.html.twig',
  1497.              array('type_projet'=>$type_projet'produit'=>$produit'liste_projet'=>$liste_projet));
  1498.         }else{
  1499.             echo 0;
  1500.             exit;
  1501.         }
  1502.     }else{
  1503.         echo 0;
  1504.         exit;
  1505.     }
  1506. }
  1507. public function persoproduitcommande(GeneralServicetext $service)
  1508. {
  1509.     $em $this->getDoctrine()->getManager();
  1510.     if(isset($_POST['id']))
  1511.     {
  1512.         $id $_POST['id'];
  1513.     }else{
  1514.         $id 0;
  1515.     }
  1516.     $produit $em->getRepository(Produit::class)
  1517.                   ->find($id);
  1518.     $produit_boutique $em->getRepository(Produitboutique::class)
  1519.                            ->findBy(array('produit'=>$produit));
  1520.                            
  1521.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Panier/persoproduitcommande.html.twig',
  1522.     array('produit_boutique'=>$produit_boutique'produit'=>$produit));
  1523. }
  1524. public function packvalidationproduit(Produit $produitGeneralServicetext $service)
  1525. {
  1526.     $em $this->getDoctrine()->getManager();
  1527.     $session $this->get('session');
  1528.     $session->set('idproduit'0);
  1529.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/packvalidationproduit.html.twig',
  1530.     array('produit'=>$produit));
  1531. }
  1532. public function autorechercheproduitgros($taille=500)
  1533. {
  1534.     $em $this->getDoctrine()->getManager();
  1535.     if(isset($_POST['donnee']))
  1536.     {
  1537.         $donnee $_POST['donnee'];
  1538.     }else{
  1539.         $donnee '';
  1540.     }
  1541.     $devise $this->params->get('devise');
  1542.     $produit_boutique $em->getRepository(Produitboutique::class)
  1543.                         ->findProduitGros($donnee,$taille);
  1544.     $tab = array();
  1545.     foreach($produit_boutique as $produitboutique){
  1546.         $d = array();
  1547.         $compt 0;
  1548.         $imgproduit $produitboutique->getProduit()->getBestProduit();
  1549.         if($imgproduit != null)
  1550.         {
  1551.             $d['drapeau'] = $imgproduit->getWebpath();
  1552.         }else{
  1553.             $d['drapeau'] = 'template/images/logomarket.png';
  1554.         }
  1555.         
  1556.         $entreprises 'Grossiste: '.$produitboutique->getProjet()->getNom();
  1557.         if($produitboutique->getNom() != null)
  1558.         {
  1559.             $nom $produitboutique->getNom();
  1560.         }else{
  1561.             $nom $produitboutique->getProduit()->getNom();
  1562.         }
  1563.         $d['nom'] = $nom;
  1564.         $d['slogan'] = $entreprises;
  1565.         $d['relation'] = $produitboutique->getNewprise().''.$devise;
  1566.         $d['link'] = $produitboutique->getId();
  1567.         $tab[] = $d;
  1568.     }
  1569.     return new Response(json_encode($tab));
  1570. }
  1571. public function intanceproduitboutique(Projet $projetGeneralServicetext $service)
  1572. {
  1573.     $em $this->getDoctrine()->getManager();
  1574.     $repository $em->getRepository(Produitboutique::class);
  1575.     $liste_produit $repository->getPublicProductMobile($projet->getId(),1,2000);
  1576.     
  1577.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/intanceproduitboutique.html.twig',
  1578.     array('projet'=>$projet'liste_produit'=>$liste_produit));
  1579. }
  1580. public function listeproduit(Projet $projet$page$nbperpageGeneralServicetext $service)
  1581. {
  1582.     $em $this->getDoctrine()->getManager();
  1583.     
  1584.     if(isset($_GET['page']))
  1585.     {
  1586.         $page $_GET['page'];
  1587.     }else{
  1588.         $page $page;
  1589.     }
  1590.     
  1591.     if(isset($_GET['nbperpage']))
  1592.     {
  1593.         $nbperpage $_GET['nbperpage'];
  1594.     }else{
  1595.         $nbperpage $nbperpage;
  1596.     }
  1597.     
  1598.     $repository $em->getRepository(Produitboutique::class);
  1599.     $liste_produit $repository->getPublicProductMobile($projet->getId(),$page,$nbperpage);
  1600.     
  1601.     $pdf = new PDFProduit('P','mm','A4');
  1602.     $addpagedeux false;
  1603.     
  1604.     $pdf->AliasNbPages();
  1605.     $pdf->AddPage();
  1606.     $page 1;
  1607.     $pdf->myheader('Impression du: '.date('d').'-'.date('m').'-'.date('Y'),'Noel K.','Prix Officiels sur market.afhunt.com');
  1608.     $pdf->headerdescriptionLivreurMobile();
  1609.     
  1610.     $nbligne 0;
  1611.     $total 0;
  1612.     $nbarticle 0;
  1613.     
  1614.     foreach($liste_produit as $produitboutique)
  1615.     {
  1616.         if($produitboutique->getProjet()->getBoutiquemobile() == false)
  1617.         {
  1618.             $prixachat $produitboutique->getPrixachat();
  1619.         }else{
  1620.             $produitgro $produitboutique->getProduit()->getProduitgro();
  1621.             
  1622.             $repository $em->getRepository(Projetmobile::class);
  1623.             $projetmobile $repository->findOneBy(array('mobile'=>$projet));
  1624.                 
  1625.             if($produitgro != null and $projetmobile != null)
  1626.             {
  1627.                 $repository $em->getRepository(Produitboutique::class);
  1628.                 $produitboutiquegros $repository->findOneBy(array('projet'=>$projetmobile->getProjet(), 'produit'=>$produitgro));
  1629.     
  1630.                 if($produitgro->getNbpiece() > and $produitboutiquegros != null)
  1631.                 {
  1632.                     $prixachat ceil($produitboutiquegros->getPrixachat()/$produitgro->getNbpiece());
  1633.                 }else{
  1634.                     $prixachat $produitboutique->getNewprise();
  1635.                 }
  1636.             }else{
  1637.                 $prixachat $produitboutique->getNewprise();
  1638.             }
  1639.         }
  1640.         
  1641.         $prixvente $produitboutique->getNewprise();
  1642.         $pdf->addProductLivreurMobile($produitboutique->getProduit()->getRef(), $service->retireAccent($produitboutique->getProduit()->name(35)),$prixachat $prixvente);
  1643.         
  1644.         if($nbligne >= 30 and $nbligne <= 36)
  1645.         {
  1646.             $addpagedeux true;
  1647.             $y $pdf->GetY();
  1648.             if ($y  >= 250){
  1649.                 $pdf->AddPage();
  1650.                 $pdf->setY(15);
  1651.                 $addpagedeux false;
  1652.             }
  1653.         }else{
  1654.             $addpagedeux false;
  1655.         }
  1656.         $nbligne++;
  1657.     }
  1658.     if($addpagedeux == true)
  1659.     {
  1660.         $pdf->AddPage();
  1661.         $addpagedeux false;
  1662.     }
  1663.     $pluscouteux '____';
  1664.     $moinscouteux '____';
  1665.     $pluscommander '____';
  1666.     
  1667.     $pdf->statistique($pluscouteux$moinscouteux$pluscommander'Boutique : Yaounde ','Quartier: Biyem-Assi''Tel: 693839823','680288416',$page,$service->retireAccent($projet->getNom()),'Noel K.','Auteur');
  1668.     $pdf->Output();
  1669. }
  1670. public function produitsdisponibles(Projet $projetGeneralServicetext $service)
  1671. {
  1672.     $em $this->getDoctrine()->getManager();
  1673.     $repository $em->getRepository(Produit::class);
  1674.     //$array_prod = $repository->produitsBoutiques($projet->getId());//On sélectionne un tableau contenant les ID des produits Vendu
  1675.     $pb_produit $em->getRepository(Produitboutique::class)
  1676.                     ->getPublicProductMobile($projet->getId(),1,2000);
  1677.     $array_prod = array(0);
  1678.     $i 1;
  1679.     foreach($pb_produit as $prob)
  1680.     {
  1681.         $array_prod[$i] = $prob->getProduit()->getId();
  1682.         $i++;
  1683.     }
  1684.     if($projet->getBoutiquemobile() == true)
  1685.     {
  1686.         $detail 1;
  1687.     }else{
  1688.         $detail 0;
  1689.     }
  1690.     $liste_produit $repository->produitsDisponibles($array_prod,$detail,1,5000); //On selectionne l'ensemble des produits dont l'ID ne figure pas dans le tableau ci-dessus.
  1691.     
  1692.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/produitsdisponibles.html.twig',
  1693.     array('projet'=>$projet'liste_produit'=>$liste_produit));
  1694. }
  1695. public function produitsfavoris(GeneralServicetext $service$page)
  1696. {
  1697.     $em $this->getDoctrine()->getManager();
  1698.     $liste_produit $em->getRepository(Animationproduit::class)
  1699.                         ->produitsfavoris($page12);
  1700.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/produitsfavoris.html.twig',
  1701.     array('liste_produit'=>$liste_produit,'page'=>$page,'nombrepage' => ceil(count($liste_produit)/12)));
  1702. }
  1703. }